3599 lines
5.0 MiB
Plaintext
3599 lines
5.0 MiB
Plaintext
/*
|
||
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||
if you want to view the source, please visit the github repository of this plugin
|
||
*/
|
||
|
||
var hZe=Object.create;var fv=Object.defineProperty;var Rse=Object.getOwnPropertyDescriptor;var gZe=Object.getOwnPropertyNames;var yZe=Object.getPrototypeOf,vZe=Object.prototype.hasOwnProperty;var Fse=r=>{throw TypeError(r)};var kZe=(r,e,t)=>e in r?fv(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var y=(r,e)=>()=>(r&&(e=r(r=0)),e);var x=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),at=(r,e)=>{for(var t in e)fv(r,t,{get:e[t],enumerable:!0})},Ose=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of gZe(e))!vZe.call(r,a)&&a!==t&&fv(r,a,{get:()=>e[a],enumerable:!(n=Rse(e,a))||n.enumerable});return r};var st=(r,e,t)=>(t=r!=null?hZe(yZe(r)):{},Ose(e||!r||!r.__esModule?fv(t,"default",{value:r,enumerable:!0}):t,r)),NA=r=>Ose(fv({},"__esModule",{value:!0}),r),tt=(r,e,t,n)=>{for(var a=n>1?void 0:n?Rse(e,t):e,i=r.length-1,s;i>=0;i--)(s=r[i])&&(a=(n?s(e,t,a):s(a))||a);return n&&a&&fv(e,t,a),a};var I=(r,e,t)=>kZe(r,typeof e!="symbol"?e+"":e,t),Lse=(r,e,t)=>e.has(r)||Fse("Cannot "+t);var In=(r,e,t)=>(Lse(r,e,"read from private field"),t?t.call(r):e.get(r)),Tc=(r,e,t)=>e.has(r)?Fse("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),xo=(r,e,t,n)=>(Lse(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t);var bZe,Z5t,RA,zse,pB,mB,TZe,jse,Q5t,wZe,SZe,J5t,fB,hv=y(()=>{bZe=Math.pow(10,8)*24*60*60*1e3,Z5t=-bZe,RA=6048e5,zse=864e5,pB=6e4,mB=36e5,TZe=3600,jse=TZe*24,Q5t=jse*7,wZe=jse*365.2425,SZe=wZe/12,J5t=SZe*3,fB=Symbol.for("constructDateFrom")});function Bn(r,e){return typeof r=="function"?r(e):r&&typeof r=="object"&&fB in r?r[fB](e):r instanceof Date?new r.constructor(e):new Date(e)}var Pl=y(()=>{hv()});function ft(r,e){return Bn(e||r,r)}var Nn=y(()=>{Pl()});function yh(r,e,t){let n=ft(r,t==null?void 0:t.in);return isNaN(e)?Bn((t==null?void 0:t.in)||r,NaN):(e&&n.setDate(n.getDate()+e),n)}var FA=y(()=>{Pl();Nn()});function OA(r,e,t){let n=ft(r,t==null?void 0:t.in);if(isNaN(e))return Bn((t==null?void 0:t.in)||r,NaN);if(!e)return n;let a=n.getDate(),i=Bn((t==null?void 0:t.in)||r,n.getTime());i.setMonth(n.getMonth()+e+1,0);let s=i.getDate();return a>=s?i:(n.setFullYear(i.getFullYear(),i.getMonth(),a),n)}var hB=y(()=>{Pl();Nn()});var $se=y(()=>{});var Bse=y(()=>{});var Use=y(()=>{});var Hse=y(()=>{});var Vse=y(()=>{});var qse=y(()=>{});var Wse=y(()=>{});function wc(){return xZe}var xZe,gv=y(()=>{xZe={}});function Ni(r,e){var o,l,c,d,u,p,m,f;let t=wc(),n=(f=(m=(d=(c=e==null?void 0:e.weekStartsOn)!=null?c:(l=(o=e==null?void 0:e.locale)==null?void 0:o.options)==null?void 0:l.weekStartsOn)!=null?d:t.weekStartsOn)!=null?m:(p=(u=t.locale)==null?void 0:u.options)==null?void 0:p.weekStartsOn)!=null?f:0,a=ft(r,e==null?void 0:e.in),i=a.getDay(),s=(i<n?7:0)+i-n;return a.setDate(a.getDate()-s),a.setHours(0,0,0,0),a}var yv=y(()=>{gv();Nn()});function vh(r,e){return Ni(r,{...e,weekStartsOn:1})}var nS=y(()=>{yv()});function LA(r,e){let t=ft(r,e==null?void 0:e.in),n=t.getFullYear(),a=Bn(t,0);a.setFullYear(n+1,0,4),a.setHours(0,0,0,0);let i=vh(a),s=Bn(t,0);s.setFullYear(n,0,4),s.setHours(0,0,0,0);let o=vh(s);return t.getTime()>=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}var zA=y(()=>{Pl();nS();Nn()});function gB(r){let e=ft(r),t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+r-+t}var Yse=y(()=>{Nn()});function jA(r,...e){let t=Bn.bind(null,r||e.find(n=>typeof n=="object"));return e.map(t)}var yB=y(()=>{Pl()});function Ml(r,e){let t=ft(r,e==null?void 0:e.in);return t.setHours(0,0,0,0),t}var $A=y(()=>{Nn()});function Gse(r,e,t){let[n,a]=jA(t==null?void 0:t.in,r,e),i=Ml(n),s=Ml(a),o=+i-gB(i),l=+s-gB(s);return Math.round((o-l)/zse)}var vB=y(()=>{Yse();yB();hv();$A()});function Kse(r,e){let t=LA(r,e),n=Bn((e==null?void 0:e.in)||r,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),vh(n)}var kB=y(()=>{Pl();zA();nS()});var Zse=y(()=>{});var Qse=y(()=>{});var Jse=y(()=>{});var Xse=y(()=>{});var eoe=y(()=>{});function toe(r,e,t){return yh(r,e*7,t)}var roe=y(()=>{FA()});function noe(r,e,t){return OA(r,e*12,t)}var aoe=y(()=>{hB()});var ioe=y(()=>{});var soe=y(()=>{});var ooe=y(()=>{});var loe=y(()=>{});var coe=y(()=>{});var doe=y(()=>{});var uoe=y(()=>{});var poe=y(()=>{});var moe=y(()=>{});var foe=y(()=>{});function bB(r,e,t){let[n,a]=jA(t==null?void 0:t.in,r,e);return+Ml(n)==+Ml(a)}var hoe=y(()=>{yB();$A()});function goe(r){return r instanceof Date||typeof r=="object"&&Object.prototype.toString.call(r)==="[object Date]"}var TB=y(()=>{});function Ca(r){return!(!goe(r)&&typeof r!="number"||isNaN(+ft(r)))}var wB=y(()=>{TB();Nn()});var yoe=y(()=>{});var voe=y(()=>{});var koe=y(()=>{});var boe=y(()=>{});var Toe=y(()=>{});var woe=y(()=>{});var Soe=y(()=>{});var xoe=y(()=>{});var Coe=y(()=>{});var Eoe=y(()=>{});var Doe=y(()=>{});var Poe=y(()=>{});var Moe=y(()=>{});var Aoe=y(()=>{});function aS(r,e){let t=ft(r,e==null?void 0:e.in);return t.setHours(23,59,59,999),t}var _oe=y(()=>{Nn()});function BA(r,e){let t=ft(r,e==null?void 0:e.in),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}var Ioe=y(()=>{Nn()});var Noe=y(()=>{});var Roe=y(()=>{});var Foe=y(()=>{});var Ooe=y(()=>{});var Loe=y(()=>{});var zoe=y(()=>{});var joe=y(()=>{});var $oe=y(()=>{});var Boe=y(()=>{});var Uoe=y(()=>{});var Hoe=y(()=>{});var Voe=y(()=>{});var qoe=y(()=>{});var Woe=y(()=>{});function UA(r,e){let t=ft(r,e==null?void 0:e.in);return t.setDate(1),t.setHours(0,0,0,0),t}var Yoe=y(()=>{Nn()});var Goe=y(()=>{});function Koe(r,e){let t=ft(r,e==null?void 0:e.in),n=t.getFullYear();return t.setFullYear(n+1,0,0),t.setHours(23,59,59,999),t}var Zoe=y(()=>{Nn()});function HA(r,e){let t=ft(r,e==null?void 0:e.in);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}var SB=y(()=>{Nn()});var Qoe=y(()=>{});var Joe=y(()=>{});var Xoe=y(()=>{});var ele=y(()=>{});function vv(r,e){var o,l,c,d,u,p,m,f;let t=wc(),n=(f=(m=(d=(c=e==null?void 0:e.weekStartsOn)!=null?c:(l=(o=e==null?void 0:e.locale)==null?void 0:o.options)==null?void 0:l.weekStartsOn)!=null?d:t.weekStartsOn)!=null?m:(p=(u=t.locale)==null?void 0:u.options)==null?void 0:p.weekStartsOn)!=null?f:0,a=ft(r,e==null?void 0:e.in),i=a.getDay(),s=(i<n?-7:0)+6-(i-n);return a.setDate(a.getDate()+s),a.setHours(23,59,59,999),a}var tle=y(()=>{gv();Nn()});var rle=y(()=>{});var nle=y(()=>{});var ale=y(()=>{});var ile=y(()=>{});var sle=y(()=>{});var ole=y(()=>{});var lle=y(()=>{});var cle=y(()=>{});var CZe,dle,ule=y(()=>{CZe={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},dle=(r,e,t)=>{let n,a=CZe[r];return typeof a=="string"?n=a:e===1?n=a.one:n=a.other.replace("{{count}}",e.toString()),t!=null&&t.addSuffix?t.comparison&&t.comparison>0?"in "+n:n+" ago":n}});function VA(r){return(e={})=>{let t=e.width?String(e.width):r.defaultWidth;return r.formats[t]||r.formats[r.defaultWidth]}}var ple=y(()=>{});var EZe,DZe,PZe,mle,fle=y(()=>{ple();EZe={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},DZe={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},PZe={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},mle={date:VA({formats:EZe,defaultWidth:"full"}),time:VA({formats:DZe,defaultWidth:"full"}),dateTime:VA({formats:PZe,defaultWidth:"full"})}});var MZe,hle,gle=y(()=>{MZe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},hle=(r,e,t,n)=>MZe[r]});function kv(r){return(e,t)=>{let n=t!=null&&t.context?String(t.context):"standalone",a;if(n==="formatting"&&r.formattingValues){let s=r.defaultFormattingWidth||r.defaultWidth,o=t!=null&&t.width?String(t.width):s;a=r.formattingValues[o]||r.formattingValues[s]}else{let s=r.defaultWidth,o=t!=null&&t.width?String(t.width):r.defaultWidth;a=r.values[o]||r.values[s]}let i=r.argumentCallback?r.argumentCallback(e):e;return a[i]}}var yle=y(()=>{});var AZe,_Ze,IZe,NZe,RZe,FZe,OZe,vle,kle=y(()=>{yle();AZe={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},_Ze={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},IZe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},NZe={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},RZe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},FZe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},OZe=(r,e)=>{let t=Number(r),n=t%100;if(n>20||n<10)switch(n%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},vle={ordinalNumber:OZe,era:kv({values:AZe,defaultWidth:"wide"}),quarter:kv({values:_Ze,defaultWidth:"wide",argumentCallback:r=>r-1}),month:kv({values:IZe,defaultWidth:"wide"}),day:kv({values:NZe,defaultWidth:"wide"}),dayPeriod:kv({values:RZe,defaultWidth:"wide",formattingValues:FZe,defaultFormattingWidth:"wide"})}});function bv(r){return(e,t={})=>{let n=t.width,a=n&&r.matchPatterns[n]||r.matchPatterns[r.defaultMatchWidth],i=e.match(a);if(!i)return null;let s=i[0],o=n&&r.parsePatterns[n]||r.parsePatterns[r.defaultParseWidth],l=Array.isArray(o)?zZe(o,u=>u.test(s)):LZe(o,u=>u.test(s)),c;c=r.valueCallback?r.valueCallback(l):l,c=t.valueCallback?t.valueCallback(c):c;let d=e.slice(s.length);return{value:c,rest:d}}}function LZe(r,e){for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)&&e(r[t]))return t}function zZe(r,e){for(let t=0;t<r.length;t++)if(e(r[t]))return t}var ble=y(()=>{});function Tle(r){return(e,t={})=>{let n=e.match(r.matchPattern);if(!n)return null;let a=n[0],i=e.match(r.parsePattern);if(!i)return null;let s=r.valueCallback?r.valueCallback(i[0]):i[0];s=t.valueCallback?t.valueCallback(s):s;let o=e.slice(a.length);return{value:s,rest:o}}}var wle=y(()=>{});var jZe,$Ze,BZe,UZe,HZe,VZe,qZe,WZe,YZe,GZe,KZe,ZZe,Sle,xle=y(()=>{ble();wle();jZe=/^(\d+)(th|st|nd|rd)?/i,$Ze=/\d+/i,BZe={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},UZe={any:[/^b/i,/^(a|c)/i]},HZe={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},VZe={any:[/1/i,/2/i,/3/i,/4/i]},qZe={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},WZe={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},YZe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},GZe={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},KZe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},ZZe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Sle={ordinalNumber:Tle({matchPattern:jZe,parsePattern:$Ze,valueCallback:r=>parseInt(r,10)}),era:bv({matchPatterns:BZe,defaultMatchWidth:"wide",parsePatterns:UZe,defaultParseWidth:"any"}),quarter:bv({matchPatterns:HZe,defaultMatchWidth:"wide",parsePatterns:VZe,defaultParseWidth:"any",valueCallback:r=>r+1}),month:bv({matchPatterns:qZe,defaultMatchWidth:"wide",parsePatterns:WZe,defaultParseWidth:"any"}),day:bv({matchPatterns:YZe,defaultMatchWidth:"wide",parsePatterns:GZe,defaultParseWidth:"any"}),dayPeriod:bv({matchPatterns:KZe,defaultMatchWidth:"any",parsePatterns:ZZe,defaultParseWidth:"any"})}});var xB,Cle=y(()=>{ule();fle();gle();kle();xle();xB={code:"en-US",formatDistance:dle,formatLong:mle,formatRelative:hle,localize:vle,match:Sle,options:{weekStartsOn:0,firstWeekContainsDate:1}}});var Ele=y(()=>{Cle()});function Dle(r,e){let t=ft(r,e==null?void 0:e.in);return Gse(t,HA(t))+1}var CB=y(()=>{vB();SB();Nn()});function Ple(r,e){let t=ft(r,e==null?void 0:e.in),n=+vh(t)-+Kse(t);return Math.round(n/RA)+1}var EB=y(()=>{hv();nS();kB();Nn()});function qA(r,e){var d,u,p,m,f,h,g,v;let t=ft(r,e==null?void 0:e.in),n=t.getFullYear(),a=wc(),i=(v=(g=(m=(p=e==null?void 0:e.firstWeekContainsDate)!=null?p:(u=(d=e==null?void 0:e.locale)==null?void 0:d.options)==null?void 0:u.firstWeekContainsDate)!=null?m:a.firstWeekContainsDate)!=null?g:(h=(f=a.locale)==null?void 0:f.options)==null?void 0:h.firstWeekContainsDate)!=null?v:1,s=Bn((e==null?void 0:e.in)||r,0);s.setFullYear(n+1,0,i),s.setHours(0,0,0,0);let o=Ni(s,e),l=Bn((e==null?void 0:e.in)||r,0);l.setFullYear(n,0,i),l.setHours(0,0,0,0);let c=Ni(l,e);return+t>=+o?n+1:+t>=+c?n:n-1}var WA=y(()=>{gv();Pl();yv();Nn()});function Mle(r,e){var o,l,c,d,u,p,m,f;let t=wc(),n=(f=(m=(d=(c=e==null?void 0:e.firstWeekContainsDate)!=null?c:(l=(o=e==null?void 0:e.locale)==null?void 0:o.options)==null?void 0:l.firstWeekContainsDate)!=null?d:t.firstWeekContainsDate)!=null?m:(p=(u=t.locale)==null?void 0:u.options)==null?void 0:p.firstWeekContainsDate)!=null?f:1,a=qA(r,e),i=Bn((e==null?void 0:e.in)||r,0);return i.setFullYear(a,0,n),i.setHours(0,0,0,0),Ni(i,e)}var DB=y(()=>{gv();Pl();WA();yv()});function Ale(r,e){let t=ft(r,e==null?void 0:e.in),n=+Ni(t,e)-+Mle(t,e);return Math.round(n/RA)+1}var PB=y(()=>{hv();yv();DB();Nn()});function vr(r,e){let t=r<0?"-":"",n=Math.abs(r).toString().padStart(e,"0");return t+n}var MB=y(()=>{});var au,_le=y(()=>{MB();au={y(r,e){let t=r.getFullYear(),n=t>0?t:1-t;return vr(e==="yy"?n%100:n,e.length)},M(r,e){let t=r.getMonth();return e==="M"?String(t+1):vr(t+1,2)},d(r,e){return vr(r.getDate(),e.length)},a(r,e){let t=r.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return t.toUpperCase();case"aaa":return t;case"aaaaa":return t[0];case"aaaa":default:return t==="am"?"a.m.":"p.m."}},h(r,e){return vr(r.getHours()%12||12,e.length)},H(r,e){return vr(r.getHours(),e.length)},m(r,e){return vr(r.getMinutes(),e.length)},s(r,e){return vr(r.getSeconds(),e.length)},S(r,e){let t=e.length,n=r.getMilliseconds(),a=Math.trunc(n*Math.pow(10,t-3));return vr(a,e.length)}}});function Ile(r,e=""){let t=r>0?"-":"+",n=Math.abs(r),a=Math.trunc(n/60),i=n%60;return i===0?t+String(a):t+String(a)+e+vr(i,2)}function Nle(r,e){return r%60===0?(r>0?"-":"+")+vr(Math.abs(r)/60,2):kh(r,e)}function kh(r,e=""){let t=r>0?"-":"+",n=Math.abs(r),a=vr(Math.trunc(n/60),2),i=vr(n%60,2);return t+a+e+i}var Tv,AB,Rle=y(()=>{CB();EB();zA();PB();WA();MB();_le();Tv={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},AB={G:function(r,e,t){let n=r.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return t.era(n,{width:"abbreviated"});case"GGGGG":return t.era(n,{width:"narrow"});case"GGGG":default:return t.era(n,{width:"wide"})}},y:function(r,e,t){if(e==="yo"){let n=r.getFullYear(),a=n>0?n:1-n;return t.ordinalNumber(a,{unit:"year"})}return au.y(r,e)},Y:function(r,e,t,n){let a=qA(r,n),i=a>0?a:1-a;if(e==="YY"){let s=i%100;return vr(s,2)}return e==="Yo"?t.ordinalNumber(i,{unit:"year"}):vr(i,e.length)},R:function(r,e){let t=LA(r);return vr(t,e.length)},u:function(r,e){let t=r.getFullYear();return vr(t,e.length)},Q:function(r,e,t){let n=Math.ceil((r.getMonth()+1)/3);switch(e){case"Q":return String(n);case"QQ":return vr(n,2);case"Qo":return t.ordinalNumber(n,{unit:"quarter"});case"QQQ":return t.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return t.quarter(n,{width:"narrow",context:"formatting"});case"QQQQ":default:return t.quarter(n,{width:"wide",context:"formatting"})}},q:function(r,e,t){let n=Math.ceil((r.getMonth()+1)/3);switch(e){case"q":return String(n);case"qq":return vr(n,2);case"qo":return t.ordinalNumber(n,{unit:"quarter"});case"qqq":return t.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return t.quarter(n,{width:"narrow",context:"standalone"});case"qqqq":default:return t.quarter(n,{width:"wide",context:"standalone"})}},M:function(r,e,t){let n=r.getMonth();switch(e){case"M":case"MM":return au.M(r,e);case"Mo":return t.ordinalNumber(n+1,{unit:"month"});case"MMM":return t.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return t.month(n,{width:"narrow",context:"formatting"});case"MMMM":default:return t.month(n,{width:"wide",context:"formatting"})}},L:function(r,e,t){let n=r.getMonth();switch(e){case"L":return String(n+1);case"LL":return vr(n+1,2);case"Lo":return t.ordinalNumber(n+1,{unit:"month"});case"LLL":return t.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return t.month(n,{width:"narrow",context:"standalone"});case"LLLL":default:return t.month(n,{width:"wide",context:"standalone"})}},w:function(r,e,t,n){let a=Ale(r,n);return e==="wo"?t.ordinalNumber(a,{unit:"week"}):vr(a,e.length)},I:function(r,e,t){let n=Ple(r);return e==="Io"?t.ordinalNumber(n,{unit:"week"}):vr(n,e.length)},d:function(r,e,t){return e==="do"?t.ordinalNumber(r.getDate(),{unit:"date"}):au.d(r,e)},D:function(r,e,t){let n=Dle(r);return e==="Do"?t.ordinalNumber(n,{unit:"dayOfYear"}):vr(n,e.length)},E:function(r,e,t){let n=r.getDay();switch(e){case"E":case"EE":case"EEE":return t.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return t.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(n,{width:"short",context:"formatting"});case"EEEE":default:return t.day(n,{width:"wide",context:"formatting"})}},e:function(r,e,t,n){let a=r.getDay(),i=(a-n.weekStartsOn+8)%7||7;switch(e){case"e":return String(i);case"ee":return vr(i,2);case"eo":return t.ordinalNumber(i,{unit:"day"});case"eee":return t.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return t.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(a,{width:"short",context:"formatting"});case"eeee":default:return t.day(a,{width:"wide",context:"formatting"})}},c:function(r,e,t,n){let a=r.getDay(),i=(a-n.weekStartsOn+8)%7||7;switch(e){case"c":return String(i);case"cc":return vr(i,e.length);case"co":return t.ordinalNumber(i,{unit:"day"});case"ccc":return t.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return t.day(a,{width:"narrow",context:"standalone"});case"cccccc":return t.day(a,{width:"short",context:"standalone"});case"cccc":default:return t.day(a,{width:"wide",context:"standalone"})}},i:function(r,e,t){let n=r.getDay(),a=n===0?7:n;switch(e){case"i":return String(a);case"ii":return vr(a,e.length);case"io":return t.ordinalNumber(a,{unit:"day"});case"iii":return t.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return t.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return t.day(n,{width:"short",context:"formatting"});case"iiii":default:return t.day(n,{width:"wide",context:"formatting"})}},a:function(r,e,t){let a=r.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return t.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return t.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(r,e,t){let n=r.getHours(),a;switch(n===12?a=Tv.noon:n===0?a=Tv.midnight:a=n/12>=1?"pm":"am",e){case"b":case"bb":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return t.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return t.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(r,e,t){let n=r.getHours(),a;switch(n>=17?a=Tv.evening:n>=12?a=Tv.afternoon:n>=4?a=Tv.morning:a=Tv.night,e){case"B":case"BB":case"BBB":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return t.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return t.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(r,e,t){if(e==="ho"){let n=r.getHours()%12;return n===0&&(n=12),t.ordinalNumber(n,{unit:"hour"})}return au.h(r,e)},H:function(r,e,t){return e==="Ho"?t.ordinalNumber(r.getHours(),{unit:"hour"}):au.H(r,e)},K:function(r,e,t){let n=r.getHours()%12;return e==="Ko"?t.ordinalNumber(n,{unit:"hour"}):vr(n,e.length)},k:function(r,e,t){let n=r.getHours();return n===0&&(n=24),e==="ko"?t.ordinalNumber(n,{unit:"hour"}):vr(n,e.length)},m:function(r,e,t){return e==="mo"?t.ordinalNumber(r.getMinutes(),{unit:"minute"}):au.m(r,e)},s:function(r,e,t){return e==="so"?t.ordinalNumber(r.getSeconds(),{unit:"second"}):au.s(r,e)},S:function(r,e){return au.S(r,e)},X:function(r,e,t){let n=r.getTimezoneOffset();if(n===0)return"Z";switch(e){case"X":return Nle(n);case"XXXX":case"XX":return kh(n);case"XXXXX":case"XXX":default:return kh(n,":")}},x:function(r,e,t){let n=r.getTimezoneOffset();switch(e){case"x":return Nle(n);case"xxxx":case"xx":return kh(n);case"xxxxx":case"xxx":default:return kh(n,":")}},O:function(r,e,t){let n=r.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+Ile(n,":");case"OOOO":default:return"GMT"+kh(n,":")}},z:function(r,e,t){let n=r.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+Ile(n,":");case"zzzz":default:return"GMT"+kh(n,":")}},t:function(r,e,t){let n=Math.trunc(+r/1e3);return vr(n,e.length)},T:function(r,e,t){return vr(+r,e.length)}}});var Fle,Ole,QZe,Lle,zle=y(()=>{Fle=(r,e)=>{switch(r){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}},Ole=(r,e)=>{switch(r){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}},QZe=(r,e)=>{let t=r.match(/(P+)(p+)?/)||[],n=t[1],a=t[2];if(!a)return Fle(r,e);let i;switch(n){case"P":i=e.dateTime({width:"short"});break;case"PP":i=e.dateTime({width:"medium"});break;case"PPP":i=e.dateTime({width:"long"});break;case"PPPP":default:i=e.dateTime({width:"full"});break}return i.replace("{{date}}",Fle(n,e)).replace("{{time}}",Ole(a,e))},Lle={p:Ole,P:QZe}});function jle(r){return JZe.test(r)}function $le(r){return XZe.test(r)}function Ble(r,e,t){let n=tQe(r,e,t);if(console.warn(n),eQe.includes(r))throw new RangeError(n)}function tQe(r,e,t){let n=r[0]==="Y"?"years":"days of the month";return`Use \`${r.toLowerCase()}\` instead of \`${r}\` (in \`${e}\`) for formatting ${n} to the input \`${t}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var JZe,XZe,eQe,Ule=y(()=>{JZe=/^D+$/,XZe=/^Y+$/,eQe=["D","DD","YY","YYYY"]});function M(r,e,t){var d,u,p,m,f,h,g,v,b,k,w,S,C,E,D,P,O,z;let n=wc(),a=(u=(d=t==null?void 0:t.locale)!=null?d:n.locale)!=null?u:xB,i=(k=(b=(h=(f=t==null?void 0:t.firstWeekContainsDate)!=null?f:(m=(p=t==null?void 0:t.locale)==null?void 0:p.options)==null?void 0:m.firstWeekContainsDate)!=null?h:n.firstWeekContainsDate)!=null?b:(v=(g=n.locale)==null?void 0:g.options)==null?void 0:v.firstWeekContainsDate)!=null?k:1,s=(z=(O=(E=(C=t==null?void 0:t.weekStartsOn)!=null?C:(S=(w=t==null?void 0:t.locale)==null?void 0:w.options)==null?void 0:S.weekStartsOn)!=null?E:n.weekStartsOn)!=null?O:(P=(D=n.locale)==null?void 0:D.options)==null?void 0:P.weekStartsOn)!=null?z:0,o=ft(r,t==null?void 0:t.in);if(!Ca(o))throw new RangeError("Invalid time value");let l=e.match(nQe).map(R=>{let A=R[0];if(A==="p"||A==="P"){let F=Lle[A];return F(R,a.formatLong)}return R}).join("").match(rQe).map(R=>{if(R==="''")return{isToken:!1,value:"'"};let A=R[0];if(A==="'")return{isToken:!1,value:oQe(R)};if(AB[A])return{isToken:!0,value:R};if(A.match(sQe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+A+"`");return{isToken:!1,value:R}});a.localize.preprocessor&&(l=a.localize.preprocessor(o,l));let c={firstWeekContainsDate:i,weekStartsOn:s,locale:a};return l.map(R=>{if(!R.isToken)return R.value;let A=R.value;(!(t!=null&&t.useAdditionalWeekYearTokens)&&$le(A)||!(t!=null&&t.useAdditionalDayOfYearTokens)&&jle(A))&&Ble(A,e,String(r));let F=AB[A[0]];return F(o,A,a.localize,c)}).join("")}function oQe(r){let e=r.match(aQe);return e?e[1].replace(iQe,"'"):r}var rQe,nQe,aQe,iQe,sQe,Hle=y(()=>{Ele();gv();Rle();zle();Ule();wB();Nn();rQe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,nQe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,aQe=/^'([^]*?)'?$/,iQe=/''/g,sQe=/[a-zA-Z]/});var Vle=y(()=>{});var qle=y(()=>{});var Wle=y(()=>{});var Yle=y(()=>{});var Gle=y(()=>{});var Kle=y(()=>{});var Zle=y(()=>{});var Qle=y(()=>{});var Jle=y(()=>{});var Xle=y(()=>{});var ece=y(()=>{});var tce=y(()=>{});var rce=y(()=>{});var nce=y(()=>{});var ace=y(()=>{});var ice=y(()=>{});var sce=y(()=>{});var oce=y(()=>{});var lce=y(()=>{});var cce=y(()=>{});var dce=y(()=>{});var uce=y(()=>{});var pce=y(()=>{});var mce=y(()=>{});var fce=y(()=>{});var hce=y(()=>{});var gce=y(()=>{});var yce=y(()=>{});var vce=y(()=>{});var kce=y(()=>{});var bce=y(()=>{});var Tce=y(()=>{});var wce=y(()=>{});var Sce=y(()=>{});var xce=y(()=>{});var Cce=y(()=>{});var Ece=y(()=>{});var Dce=y(()=>{});var Pce=y(()=>{});var Mce=y(()=>{});var Ace=y(()=>{});function _B(r,e){return+ft(r)<+ft(e)}var _ce=y(()=>{Nn()});var Ice=y(()=>{});var Nce=y(()=>{});var Rce=y(()=>{});var Fce=y(()=>{});var Oce=y(()=>{});var Lce=y(()=>{});var zce=y(()=>{});var jce=y(()=>{});var $ce=y(()=>{});var Bce=y(()=>{});var Uce=y(()=>{});var Hce=y(()=>{});var Vce=y(()=>{});var qce=y(()=>{});var Wce=y(()=>{});var Yce=y(()=>{});var Gce=y(()=>{});var Kce=y(()=>{});var Zce=y(()=>{});var Qce=y(()=>{});var Jce=y(()=>{});var Xce=y(()=>{});var ede=y(()=>{});var tde=y(()=>{});var rde=y(()=>{});var nde=y(()=>{});var ade=y(()=>{});var ide=y(()=>{});var sde=y(()=>{});var ode=y(()=>{});var lde=y(()=>{});var cde=y(()=>{});var dde=y(()=>{});var ude=y(()=>{});var pde=y(()=>{});var mde=y(()=>{});var fde=y(()=>{});var hde=y(()=>{});var gde=y(()=>{});var yde=y(()=>{});function wv(r,e,t){return yh(r,-e,t)}var vde=y(()=>{FA()});var kde=y(()=>{});var bde=y(()=>{});var Tde=y(()=>{});var wde=y(()=>{});var Sde=y(()=>{});var xde=y(()=>{});var Cde=y(()=>{});var Ede=y(()=>{});var Dde=y(()=>{});var Pde=y(()=>{});var Mde=y(()=>{});var Ade=y(()=>{});var _de=y(()=>{});var Ide=y(()=>{});var Nde=y(()=>{});var Rde=y(()=>{});var Fde=y(()=>{});var Ode=y(()=>{});var Lde=y(()=>{});var zde=y(()=>{});var jde=y(()=>{});var $de=y(()=>{});var Bde=y(()=>{});var Ude=y(()=>{});var Hde=y(()=>{});function Us(r,e){var c;let t=()=>Bn(e==null?void 0:e.in,NaN),n=(c=e==null?void 0:e.additionalDigits)!=null?c:2,a=uQe(r),i;if(a.date){let d=pQe(a.date,n);i=mQe(d.restDateString,d.year)}if(!i||isNaN(+i))return t();let s=+i,o=0,l;if(a.time&&(o=fQe(a.time),isNaN(o)))return t();if(a.timezone){if(l=hQe(a.timezone),isNaN(l))return t()}else{let d=new Date(s+o),u=ft(0,e==null?void 0:e.in);return u.setFullYear(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate()),u.setHours(d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds(),d.getUTCMilliseconds()),u}return ft(s+o+l,e==null?void 0:e.in)}function uQe(r){let e={},t=r.split(YA.dateTimeDelimiter),n;if(t.length>2)return e;if(/:/.test(t[0])?n=t[0]:(e.date=t[0],n=t[1],YA.timeZoneDelimiter.test(e.date)&&(e.date=r.split(YA.timeZoneDelimiter)[0],n=r.substr(e.date.length,r.length))),n){let a=YA.timezone.exec(n);a?(e.time=n.replace(a[1],""),e.timezone=a[1]):e.time=n}return e}function pQe(r,e){let t=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+e)+"})|(\\d{2}|[+-]\\d{"+(2+e)+"})$)"),n=r.match(t);if(!n)return{year:NaN,restDateString:""};let a=n[1]?parseInt(n[1]):null,i=n[2]?parseInt(n[2]):null;return{year:i===null?a:i*100,restDateString:r.slice((n[1]||n[2]).length)}}function mQe(r,e){if(e===null)return new Date(NaN);let t=r.match(lQe);if(!t)return new Date(NaN);let n=!!t[4],a=iS(t[1]),i=iS(t[2])-1,s=iS(t[3]),o=iS(t[4]),l=iS(t[5])-1;if(n)return bQe(e,o,l)?gQe(e,o,l):new Date(NaN);{let c=new Date(0);return!vQe(e,i,s)||!kQe(e,a)?new Date(NaN):(c.setUTCFullYear(e,i,Math.max(a,s)),c)}}function iS(r){return r?parseInt(r):1}function fQe(r){let e=r.match(cQe);if(!e)return NaN;let t=IB(e[1]),n=IB(e[2]),a=IB(e[3]);return TQe(t,n,a)?t*mB+n*pB+a*1e3:NaN}function IB(r){return r&&parseFloat(r.replace(",","."))||0}function hQe(r){if(r==="Z")return 0;let e=r.match(dQe);if(!e)return 0;let t=e[1]==="+"?-1:1,n=parseInt(e[2]),a=e[3]&&parseInt(e[3])||0;return wQe(n,a)?t*(n*mB+a*pB):NaN}function gQe(r,e,t){let n=new Date(0);n.setUTCFullYear(r,0,4);let a=n.getUTCDay()||7,i=(e-1)*7+t+1-a;return n.setUTCDate(n.getUTCDate()+i),n}function Vde(r){return r%400===0||r%4===0&&r%100!==0}function vQe(r,e,t){return e>=0&&e<=11&&t>=1&&t<=(yQe[e]||(Vde(r)?29:28))}function kQe(r,e){return e>=1&&e<=(Vde(r)?366:365)}function bQe(r,e,t){return e>=1&&e<=53&&t>=0&&t<=6}function TQe(r,e,t){return r===24?e===0&&t===0:t>=0&&t<60&&e>=0&&e<60&&r>=0&&r<25}function wQe(r,e){return e>=0&&e<=59}var YA,lQe,cQe,dQe,yQe,qde=y(()=>{hv();Pl();Nn();YA={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},lQe=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,cQe=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,dQe=/^([+-])(\d{2})(?::?(\d{2}))?$/;yQe=[31,null,31,30,31,30,31,31,30,31,30,31]});var Wde=y(()=>{});var Yde=y(()=>{});var Gde=y(()=>{});var Kde=y(()=>{});var Zde=y(()=>{});var Qde=y(()=>{});var Jde=y(()=>{});var Xde=y(()=>{});var eue=y(()=>{});var tue=y(()=>{});var rue=y(()=>{});var nue=y(()=>{});var aue=y(()=>{});var iue=y(()=>{});var sue=y(()=>{});var oue=y(()=>{});var lue=y(()=>{});var cue=y(()=>{});var due=y(()=>{});var uue=y(()=>{});var pue=y(()=>{});var mue=y(()=>{});var fue=y(()=>{});var hue=y(()=>{});var gue=y(()=>{});var yue=y(()=>{});var vue=y(()=>{});var kue=y(()=>{});var bue=y(()=>{});var Tue=y(()=>{});var wue=y(()=>{});var Sue=y(()=>{});var xue=y(()=>{});var Cue=y(()=>{});var Eue=y(()=>{});var Due=y(()=>{});var Pue=y(()=>{});var Mue=y(()=>{});var Aue=y(()=>{});var _ue=y(()=>{});var Iue=y(()=>{});var Nue=y(()=>{});var Rue=y(()=>{});var Fue=y(()=>{});var Oue=y(()=>{});var Lue=y(()=>{});var Wr=y(()=>{$se();Vse();FA();Wse();Qse();qse();Jse();hB();Xse();eoe();roe();aoe();ioe();loe();coe();doe();uoe();poe();Pl();moe();foe();yoe();vB();voe();koe();boe();woe();Soe();xoe();Coe();Eoe();Poe();Moe();Aoe();Roe();Foe();Ooe();Loe();zoe();joe();$oe();Boe();Uoe();Voe();qoe();Woe();Goe();Qoe();Joe();_oe();Xoe();ele();rle();nle();ale();Ioe();ile();sle();ole();lle();tle();Zoe();cle();Hle();Vle();qle();Wle();Yle();Gle();Kle();Zle();Qle();Jle();Xle();ece();tce();rce();nce();CB();ace();sce();oce();lce();cce();dce();EB();zA();uce();pce();mce();fce();hce();Toe();gce();yce();vce();PB();kce();WA();Tce();wce();Sce();xce();Cce();Ece();Dce();Pce();Mce();Ace();_ce();TB();Ice();Nce();Rce();Fce();Oce();Noe();ice();Hce();Vce();qce();hoe();Yce();Kce();Zce();Jce();Xce();ede();rde();Gce();nde();Bse();Use();ade();ide();sde();ode();lde();cde();dde();ude();pde();mde();fde();hde();wB();gde();Hse();yde();kde();bde();wde();Sde();bce();xde();Tde();Cde();Ede();soe();Dde();Pde();Mde();Ade();ooe();_de();Ide();Nde();Rde();Fde();Ode();Lde();zde();jde();$de();Bde();Ude();Hde();Uce();qde();Wde();Yde();Gde();Kde();Zde();Qde();Jde();Xde();eue();tue();rue();nue();aue();iue();sue();oue();cue();due();$ce();uue();pue();mue();Bce();jce();Zse();fue();hue();lue();gue();yue();zce();vue();kue();$A();bue();Wce();nS();kB();Qce();Yoe();Hoe();tde();Tue();wue();yv();DB();SB();Sue();Cue();Eue();vde();Due();Doe();Pue();Mue();xue();Aue();_ue();Iue();Nue();Nn();Lce();Rue();Fue();Oue();Lue()});var iu=x(_t=>{"use strict";Object.defineProperty(_t,"__esModule",{value:!0});var Tn=require("obsidian"),NB="YYYY-MM-DD",RB="gggg-[W]ww",zue="YYYY-MM",jue="YYYY-[Q]Q",$ue="YYYY";function sS(r){var t,n;let e=window.app.plugins.getPlugin("periodic-notes");return e&&((n=(t=e.settings)==null?void 0:t[r])==null?void 0:n.enabled)}function oS(){var r,e,t,n;try{let{internalPlugins:a,plugins:i}=window.app;if(sS("daily")){let{format:c,folder:d,template:u}=((e=(r=i.getPlugin("periodic-notes"))==null?void 0:r.settings)==null?void 0:e.daily)||{};return{format:c||NB,folder:(d==null?void 0:d.trim())||"",template:(u==null?void 0:u.trim())||""}}let{folder:s,format:o,template:l}=((n=(t=a.getPluginById("daily-notes"))==null?void 0:t.instance)==null?void 0:n.options)||{};return{format:o||NB,folder:(s==null?void 0:s.trim())||"",template:(l==null?void 0:l.trim())||""}}catch(a){console.info("No custom daily note settings found!",a)}}function lS(){var r,e,t,n,a,i,s;try{let o=window.app.plugins,l=(r=o.getPlugin("calendar"))==null?void 0:r.options,c=(t=(e=o.getPlugin("periodic-notes"))==null?void 0:e.settings)==null?void 0:t.weekly;if(sS("weekly"))return{format:c.format||RB,folder:((n=c.folder)==null?void 0:n.trim())||"",template:((a=c.template)==null?void 0:a.trim())||""};let d=l||{};return{format:d.weeklyNoteFormat||RB,folder:((i=d.weeklyNoteFolder)==null?void 0:i.trim())||"",template:((s=d.weeklyNoteTemplate)==null?void 0:s.trim())||""}}catch(o){console.info("No custom weekly note settings found!",o)}}function cS(){var e,t,n,a;let r=window.app.plugins;try{let i=sS("monthly")&&((t=(e=r.getPlugin("periodic-notes"))==null?void 0:e.settings)==null?void 0:t.monthly)||{};return{format:i.format||zue,folder:((n=i.folder)==null?void 0:n.trim())||"",template:((a=i.template)==null?void 0:a.trim())||""}}catch(i){console.info("No custom monthly note settings found!",i)}}function dS(){var e,t,n,a;let r=window.app.plugins;try{let i=sS("quarterly")&&((t=(e=r.getPlugin("periodic-notes"))==null?void 0:e.settings)==null?void 0:t.quarterly)||{};return{format:i.format||jue,folder:((n=i.folder)==null?void 0:n.trim())||"",template:((a=i.template)==null?void 0:a.trim())||""}}catch(i){console.info("No custom quarterly note settings found!",i)}}function uS(){var e,t,n,a;let r=window.app.plugins;try{let i=sS("yearly")&&((t=(e=r.getPlugin("periodic-notes"))==null?void 0:e.settings)==null?void 0:t.yearly)||{};return{format:i.format||$ue,folder:((n=i.folder)==null?void 0:n.trim())||"",template:((a=i.template)==null?void 0:a.trim())||""}}catch(i){console.info("No custom yearly note settings found!",i)}}function Bue(...r){let e=[];for(let n=0,a=r.length;n<a;n++)e=e.concat(r[n].split("/"));let t=[];for(let n=0,a=e.length;n<a;n++){let i=e[n];!i||i==="."||t.push(i)}return e[0]===""&&t.unshift(""),t.join("/")}function SQe(r){let e=r.substring(r.lastIndexOf("/")+1);return e.lastIndexOf(".")!=-1&&(e=e.substring(0,e.lastIndexOf("."))),e}async function xQe(r){let e=r.replace(/\\/g,"/").split("/");if(e.pop(),e.length){let t=Bue(...e);window.app.vault.getAbstractFileByPath(t)||await window.app.vault.createFolder(t)}}async function pS(r,e){e.endsWith(".md")||(e+=".md");let t=Tn.normalizePath(Bue(r,e));return await xQe(t),t}async function Sv(r){let{metadataCache:e,vault:t}=window.app,n=Tn.normalizePath(r);if(n==="/")return Promise.resolve(["",null]);try{let a=e.getFirstLinkpathDest(n,""),i=await t.cachedRead(a),s=window.app.foldManager.load(a);return[i,s]}catch(a){return console.error(`Failed to read the daily note template '${n}'`,a),new Tn.Notice("Failed to read the daily note template"),["",null]}}function Al(r,e="day"){let t=r.clone().startOf(e).format();return`${e}-${t}`}function Uue(r){return r.replace(/\[[^\]]*\]/g,"")}function CQe(r,e){if(e==="week"){let t=Uue(r);return/w{1,2}/i.test(t)&&(/M{1,4}/.test(t)||/D{1,4}/.test(t))}return!1}function xv(r,e){return Hue(r.basename,e)}function EQe(r,e){return Hue(SQe(r),e)}function Hue(r,e){let n={day:oS,week:lS,month:cS,quarter:dS,year:uS}[e]().format.split("/").pop(),a=window.moment(r,n,!0);if(!a.isValid())return null;if(CQe(n,e)&&e==="week"){let i=Uue(n);if(/w{1,2}/i.test(i))return window.moment(r,n.replace(/M{1,4}/g,"").replace(/D{1,4}/g,""),!1)}return a}var FB=class extends Error{};async function Vue(r){let e=window.app,{vault:t}=e,n=window.moment,{template:a,format:i,folder:s}=oS(),[o,l]=await Sv(a),c=r.format(i),d=await pS(s,c);try{let u=await t.create(d,o.replace(/{{\s*date\s*}}/gi,c).replace(/{{\s*time\s*}}/gi,n().format("HH:mm")).replace(/{{\s*title\s*}}/gi,c).replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(p,m,f,h,g,v)=>{let b=n(),k=r.clone().set({hour:b.get("hour"),minute:b.get("minute"),second:b.get("second")});return f&&k.add(parseInt(h,10),g),v?k.format(v.substring(1).trim()):k.format(i)}).replace(/{{\s*yesterday\s*}}/gi,r.clone().subtract(1,"day").format(i)).replace(/{{\s*tomorrow\s*}}/gi,r.clone().add(1,"d").format(i)));return e.foldManager.save(u,l),u}catch(u){console.error(`Failed to create file: '${d}'`,u),new Tn.Notice("Unable to create new file.")}}function DQe(r,e){var t;return(t=e[Al(r,"day")])!=null?t:null}function PQe(){let{vault:r}=window.app,{folder:e}=oS(),t=r.getAbstractFileByPath(Tn.normalizePath(e));if(!t)throw new FB("Failed to find daily notes folder");let n={};return Tn.Vault.recurseChildren(t,a=>{if(a instanceof Tn.TFile){let i=xv(a,"day");if(i){let s=Al(i,"day");n[s]=a}}}),n}var OB=class extends Error{};function MQe(){let{moment:r}=window,e=r.localeData()._week.dow,t=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];for(;e;)t.push(t.shift()),e--;return t}function AQe(r){return MQe().indexOf(r.toLowerCase())}async function que(r){let{vault:e}=window.app,{template:t,format:n,folder:a}=lS(),[i,s]=await Sv(t),o=r.format(n),l=await pS(a,o);try{let c=await e.create(l,i.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(d,u,p,m,f,h)=>{let g=window.moment(),v=r.clone().set({hour:g.get("hour"),minute:g.get("minute"),second:g.get("second")});return p&&v.add(parseInt(m,10),f),h?v.format(h.substring(1).trim()):v.format(n)}).replace(/{{\s*title\s*}}/gi,o).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*(sunday|monday|tuesday|wednesday|thursday|friday|saturday)\s*:(.*?)}}/gi,(d,u,p)=>{let m=AQe(u);return r.weekday(m).format(p.trim())}));return window.app.foldManager.save(c,s),c}catch(c){console.error(`Failed to create file: '${l}'`,c),new Tn.Notice("Unable to create new file.")}}function _Qe(r,e){var t;return(t=e[Al(r,"week")])!=null?t:null}function IQe(){let r={};if(!Yue())return r;let{vault:e}=window.app,{folder:t}=lS(),n=e.getAbstractFileByPath(Tn.normalizePath(t));if(!n)throw new OB("Failed to find weekly notes folder");return Tn.Vault.recurseChildren(n,a=>{if(a instanceof Tn.TFile){let i=xv(a,"week");if(i){let s=Al(i,"week");r[s]=a}}}),r}var LB=class extends Error{};async function Wue(r){let{vault:e}=window.app,{template:t,format:n,folder:a}=cS(),[i,s]=await Sv(t),o=r.format(n),l=await pS(a,o);try{let c=await e.create(l,i.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(d,u,p,m,f,h)=>{let g=window.moment(),v=r.clone().set({hour:g.get("hour"),minute:g.get("minute"),second:g.get("second")});return p&&v.add(parseInt(m,10),f),h?v.format(h.substring(1).trim()):v.format(n)}).replace(/{{\s*date\s*}}/gi,o).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,o));return window.app.foldManager.save(c,s),c}catch(c){console.error(`Failed to create file: '${l}'`,c),new Tn.Notice("Unable to create new file.")}}function NQe(r,e){var t;return(t=e[Al(r,"month")])!=null?t:null}function RQe(){let r={};if(!Gue())return r;let{vault:e}=window.app,{folder:t}=cS(),n=e.getAbstractFileByPath(Tn.normalizePath(t));if(!n)throw new LB("Failed to find monthly notes folder");return Tn.Vault.recurseChildren(n,a=>{if(a instanceof Tn.TFile){let i=xv(a,"month");if(i){let s=Al(i,"month");r[s]=a}}}),r}var zB=class extends Error{};async function FQe(r){let{vault:e}=window.app,{template:t,format:n,folder:a}=dS(),[i,s]=await Sv(t),o=r.format(n),l=await pS(a,o);try{let c=await e.create(l,i.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(d,u,p,m,f,h)=>{let g=window.moment(),v=r.clone().set({hour:g.get("hour"),minute:g.get("minute"),second:g.get("second")});return p&&v.add(parseInt(m,10),f),h?v.format(h.substring(1).trim()):v.format(n)}).replace(/{{\s*date\s*}}/gi,o).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,o));return window.app.foldManager.save(c,s),c}catch(c){console.error(`Failed to create file: '${l}'`,c),new Tn.Notice("Unable to create new file.")}}function OQe(r,e){var t;return(t=e[Al(r,"quarter")])!=null?t:null}function LQe(){let r={};if(!Kue())return r;let{vault:e}=window.app,{folder:t}=dS(),n=e.getAbstractFileByPath(Tn.normalizePath(t));if(!n)throw new zB("Failed to find quarterly notes folder");return Tn.Vault.recurseChildren(n,a=>{if(a instanceof Tn.TFile){let i=xv(a,"quarter");if(i){let s=Al(i,"quarter");r[s]=a}}}),r}var jB=class extends Error{};async function zQe(r){let{vault:e}=window.app,{template:t,format:n,folder:a}=uS(),[i,s]=await Sv(t),o=r.format(n),l=await pS(a,o);try{let c=await e.create(l,i.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(d,u,p,m,f,h)=>{let g=window.moment(),v=r.clone().set({hour:g.get("hour"),minute:g.get("minute"),second:g.get("second")});return p&&v.add(parseInt(m,10),f),h?v.format(h.substring(1).trim()):v.format(n)}).replace(/{{\s*date\s*}}/gi,o).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,o));return window.app.foldManager.save(c,s),c}catch(c){console.error(`Failed to create file: '${l}'`,c),new Tn.Notice("Unable to create new file.")}}function jQe(r,e){var t;return(t=e[Al(r,"year")])!=null?t:null}function $Qe(){let r={};if(!Zue())return r;let{vault:e}=window.app,{folder:t}=uS(),n=e.getAbstractFileByPath(Tn.normalizePath(t));if(!n)throw new jB("Failed to find yearly notes folder");return Tn.Vault.recurseChildren(n,a=>{if(a instanceof Tn.TFile){let i=xv(a,"year");if(i){let s=Al(i,"year");r[s]=a}}}),r}function BQe(){var n,a;let{app:r}=window,e=r.internalPlugins.plugins["daily-notes"];if(e&&e.enabled)return!0;let t=r.plugins.getPlugin("periodic-notes");return t&&((a=(n=t.settings)==null?void 0:n.daily)==null?void 0:a.enabled)}function Yue(){var t,n;let{app:r}=window;if(r.plugins.getPlugin("calendar"))return!0;let e=r.plugins.getPlugin("periodic-notes");return e&&((n=(t=e.settings)==null?void 0:t.weekly)==null?void 0:n.enabled)}function Gue(){var t,n;let{app:r}=window,e=r.plugins.getPlugin("periodic-notes");return e&&((n=(t=e.settings)==null?void 0:t.monthly)==null?void 0:n.enabled)}function Kue(){var t,n;let{app:r}=window,e=r.plugins.getPlugin("periodic-notes");return e&&((n=(t=e.settings)==null?void 0:t.quarterly)==null?void 0:n.enabled)}function Zue(){var t,n;let{app:r}=window,e=r.plugins.getPlugin("periodic-notes");return e&&((n=(t=e.settings)==null?void 0:t.yearly)==null?void 0:n.enabled)}function UQe(r){let e={day:oS,week:lS,month:cS,quarter:dS,year:uS}[r];return e()}function HQe(r,e){return{day:Vue,month:Wue,week:que}[r](e)}_t.DEFAULT_DAILY_NOTE_FORMAT=NB;_t.DEFAULT_MONTHLY_NOTE_FORMAT=zue;_t.DEFAULT_QUARTERLY_NOTE_FORMAT=jue;_t.DEFAULT_WEEKLY_NOTE_FORMAT=RB;_t.DEFAULT_YEARLY_NOTE_FORMAT=$ue;_t.appHasDailyNotesPluginLoaded=BQe;_t.appHasMonthlyNotesPluginLoaded=Gue;_t.appHasQuarterlyNotesPluginLoaded=Kue;_t.appHasWeeklyNotesPluginLoaded=Yue;_t.appHasYearlyNotesPluginLoaded=Zue;_t.createDailyNote=Vue;_t.createMonthlyNote=Wue;_t.createPeriodicNote=HQe;_t.createQuarterlyNote=FQe;_t.createWeeklyNote=que;_t.createYearlyNote=zQe;_t.getAllDailyNotes=PQe;_t.getAllMonthlyNotes=RQe;_t.getAllQuarterlyNotes=LQe;_t.getAllWeeklyNotes=IQe;_t.getAllYearlyNotes=$Qe;_t.getDailyNote=DQe;_t.getDailyNoteSettings=oS;_t.getDateFromFile=xv;_t.getDateFromPath=EQe;_t.getDateUID=Al;_t.getMonthlyNote=NQe;_t.getMonthlyNoteSettings=cS;_t.getPeriodicNoteSettings=UQe;_t.getQuarterlyNote=OQe;_t.getQuarterlyNoteSettings=dS;_t.getTemplateInfo=Sv;_t.getWeeklyNote=_Qe;_t.getWeeklyNoteSettings=lS;_t.getYearlyNote=jQe;_t.getYearlyNoteSettings=uS});function Que(r){return r.replace(/\\/g,"/").replace(/^\/+/,"").replace(/\/+$/,"")}function Sc(r){let e=Array.isArray(r)?r:typeof r=="string"?r.split(","):[];return Array.from(new Set(e.map(t=>Que(t.trim())).filter(t=>t.length>0)))}function Cv(r,e){let t=Que(r);return e.some(n=>t===n||t.startsWith(`${n}/`))}var mS=y(()=>{});function VQe(r){let e=r.toLowerCase();return e==="true"||e==="false"?e==="true":r}function fS(r){let e=r.trim();return(e.startsWith("#")?e.slice(1).trim():e).replace(/\s+/g,"-")}function $B(r){return r.trim().toLowerCase()==="tags"}function qQe(r){return typeof r=="string"&&r.trim().length===0}function Jue(r,e){return r===e}function xc(r){let e=[],t=new Set,n=a=>{let i=fS(String(a));!i||t.has(i)||(t.add(i),e.push(i))};return Array.isArray(r)?(r.forEach(n),e):typeof r=="string"&&r.trim().length>0?(n(r),e):[]}function Ev(r,e,t){if(!e||!t)return;if($B(e)){let i=xc(r.tags),s=fS(t);i.some(l=>fS(l)===s)||i.push(s),r.tags=i;return}let n=VQe(t),a=r[e];if(Array.isArray(a)){a.some(i=>Jue(i,n))||a.push(n),r[e]=a;return}if(a==null||qQe(a)){r[e]=n;return}if(Jue(a,n)){r[e]=a;return}r[e]=[a,n]}var Dv=y(()=>{});var ipe,spe,su,Pv,Mv,ii,ot,is,ou,lu,cu,Ri,Wp,ope,lpe,Yr=y(()=>{ipe="tasknotes-mini-calendar-view",spe="tasknotes-agenda-view",su="tasknotes-pomodoro-view",Pv="tasknotes-pomodoro-stats-view",Mv="tasknotes-stats-view",ii="data-changed",ot="task-updated",is="task-deleted",ou="pomodoro-start",lu="pomodoro-complete",cu="pomodoro-interrupt",Ri="pomodoro-tick",Wp="date-changed",ope=[{id:"title",label:"Title",category:"text",supportedOperators:["is","is-not","contains","does-not-contain","is-empty","is-not-empty"],valueInputType:"text"},{id:"path",label:"Path",category:"select",supportedOperators:["contains","does-not-contain","is-empty","is-not-empty"],valueInputType:"select"},{id:"status",label:"Status",category:"select",supportedOperators:["is","is-not","is-empty","is-not-empty"],valueInputType:"select"},{id:"priority",label:"Priority",category:"select",supportedOperators:["is","is-not","is-empty","is-not-empty"],valueInputType:"select"},{id:"tags",label:"Tags",category:"select",supportedOperators:["contains","does-not-contain","is-empty","is-not-empty"],valueInputType:"select"},{id:"contexts",label:"Contexts",category:"select",supportedOperators:["contains","does-not-contain","is-empty","is-not-empty"],valueInputType:"select"},{id:"projects",label:"Projects",category:"select",supportedOperators:["contains","does-not-contain","is-empty","is-not-empty"],valueInputType:"select"},{id:"blockedBy",label:"Blocked By",category:"select",supportedOperators:["contains","does-not-contain","is-empty","is-not-empty"],valueInputType:"text"},{id:"blocking",label:"Blocking",category:"select",supportedOperators:["contains","does-not-contain","is-empty","is-not-empty"],valueInputType:"text"},{id:"due",label:"Due Date",category:"date",supportedOperators:["is","is-not","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty"],valueInputType:"date"},{id:"scheduled",label:"Scheduled Date",category:"date",supportedOperators:["is","is-not","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty"],valueInputType:"date"},{id:"completedDate",label:"Completed Date",category:"date",supportedOperators:["is","is-not","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty"],valueInputType:"date"},{id:"dateCreated",label:"Created Date",category:"date",supportedOperators:["is","is-not","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty"],valueInputType:"date"},{id:"dateModified",label:"Modified Date",category:"date",supportedOperators:["is","is-not","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty"],valueInputType:"date"},{id:"archived",label:"Archived",category:"boolean",supportedOperators:["is-checked","is-not-checked"],valueInputType:"none"},{id:"hasSubtasks",label:"Has Subtasks",category:"boolean",supportedOperators:["is-checked","is-not-checked"],valueInputType:"none"},{id:"timeEstimate",label:"Time Estimate",category:"numeric",supportedOperators:["is","is-not","is-greater-than","is-less-than","is-greater-than-or-equal","is-less-than-or-equal"],valueInputType:"number"},{id:"recurrence",label:"Recurrence",category:"special",supportedOperators:["is-empty","is-not-empty"],valueInputType:"none"},{id:"status.isCompleted",label:"Completed",category:"boolean",supportedOperators:["is-checked","is-not-checked"],valueInputType:"none"},{id:"dependencies.isBlocked",label:"Blocked",category:"boolean",supportedOperators:["is-checked","is-not-checked"],valueInputType:"none"},{id:"dependencies.isBlocking",label:"Blocking Others",category:"boolean",supportedOperators:["is-checked","is-not-checked"],valueInputType:"none"}],lpe=[{id:"is",label:"is",requiresValue:!0},{id:"is-not",label:"is not",requiresValue:!0},{id:"contains",label:"contains",requiresValue:!0},{id:"does-not-contain",label:"does not contain",requiresValue:!0},{id:"is-before",label:"is before",requiresValue:!0},{id:"is-after",label:"is after",requiresValue:!0},{id:"is-on-or-before",label:"is on or before",requiresValue:!0},{id:"is-on-or-after",label:"is on or after",requiresValue:!0},{id:"is-empty",label:"is empty",requiresValue:!1},{id:"is-not-empty",label:"is not empty",requiresValue:!1},{id:"is-checked",label:"is checked",requiresValue:!1},{id:"is-not-checked",label:"is not checked",requiresValue:!1},{id:"is-greater-than",label:"is greater than",requiresValue:!0},{id:"is-less-than",label:"is less than",requiresValue:!0},{id:"is-greater-than-or-equal",label:"is equal or greater than",requiresValue:!0},{id:"is-less-than-or-equal",label:"is equal or less than",requiresValue:!0}]});var fpe={};at(fpe,{DEFAULT_CORE_FIELDS:()=>dpe,DEFAULT_FIELD_GROUPS:()=>cpe,createDefaultFieldConfig:()=>upe,getFieldsByGroup:()=>rJe,getFieldsForModal:()=>ppe,initializeFieldConfig:()=>Cc,migrateUserFieldsToFieldConfig:()=>mpe});function upe(){return{version:1,fields:[...dpe],groups:[...cpe]}}function ppe(r,e){return r.fields.filter(t=>t.enabled).filter(t=>e?t.visibleInCreation:t.visibleInEdit).sort((t,n)=>{var o,l;let a=r.groups.find(c=>c.id===t.group),i=r.groups.find(c=>c.id===n.group),s=((o=a==null?void 0:a.order)!=null?o:0)-((l=i==null?void 0:i.order)!=null?l:0);return s!==0?s:t.order-n.order})}function rJe(r,e){let t=ppe(r,e),n=new Map;for(let a of t){let i=n.get(a.group)||[];i.push(a),n.set(a.group,i)}return n}function mpe(r){return!r||r.length===0?[]:r.map((e,t)=>({id:e.id||`user-${t}`,fieldType:"user",group:"custom",displayName:e.displayName||`Field ${t+1}`,visibleInCreation:!0,visibleInEdit:!0,order:t,enabled:!0}))}function Cc(r,e){if(r)return r;let t=upe();if(e&&e.length>0){let n=mpe(e);t.fields.push(...n)}return t}var cpe,dpe,vS=y(()=>{cpe=[{id:"basic",displayName:"Basic Information",order:0,collapsible:!1,defaultCollapsed:!1},{id:"metadata",displayName:"Metadata",order:1,collapsible:!0,defaultCollapsed:!1},{id:"organization",displayName:"Organization",order:2,collapsible:!0,defaultCollapsed:!1},{id:"dependencies",displayName:"Dependencies",order:3,collapsible:!0,defaultCollapsed:!1},{id:"custom",displayName:"Custom Fields",order:4,collapsible:!0,defaultCollapsed:!1}],dpe=[{id:"title",fieldType:"core",group:"basic",displayName:"Title",visibleInCreation:!0,visibleInEdit:!0,order:0,enabled:!0,required:!0},{id:"details",fieldType:"core",group:"basic",displayName:"Details",visibleInCreation:!0,visibleInEdit:!0,order:1,enabled:!0},{id:"contexts",fieldType:"core",group:"metadata",displayName:"Contexts",visibleInCreation:!0,visibleInEdit:!0,order:0,enabled:!0},{id:"tags",fieldType:"core",group:"metadata",displayName:"Tags",visibleInCreation:!0,visibleInEdit:!0,order:1,enabled:!0},{id:"time-estimate",fieldType:"core",group:"metadata",displayName:"Time Estimate",visibleInCreation:!0,visibleInEdit:!0,order:2,enabled:!0},{id:"projects",fieldType:"organization",group:"organization",displayName:"Projects",visibleInCreation:!0,visibleInEdit:!0,order:0,enabled:!0},{id:"subtasks",fieldType:"organization",group:"organization",displayName:"Subtasks",visibleInCreation:!0,visibleInEdit:!0,order:1,enabled:!0},{id:"blocked-by",fieldType:"dependency",group:"dependencies",displayName:"Blocked By",visibleInCreation:!0,visibleInEdit:!0,order:0,enabled:!0},{id:"blocking",fieldType:"dependency",group:"dependencies",displayName:"Blocking",visibleInCreation:!0,visibleInEdit:!0,order:1,enabled:!0}]});function hpe(r,e,t){if(!(e!=null&&e.fields))return!0;let n=e.fields.find(i=>i.id===r);if(!n)return!0;let a=t?n.visibleInCreation:n.visibleInEdit;return!!n.enabled&&!!a}function gpe(r,e){let{getFieldsByGroup:t}=(vS(),NA(fpe)),n=t(r,e);return[...r.groups||[]].sort((i,s)=>i.order-s.order).map(i=>({id:i.id,fields:n.get(i.id)||[]})).filter(i=>i.fields.length>0)}var VB=y(()=>{});function qB(r){let{container:e,fieldConfig:t,fieldRenderers:n,renderUserField:a}=r,i=n[t.id];return i?(i(e,t),!0):t.fieldType==="user"?(a(e,t),!0):!1}function ype(r){let e=gpe(r.config,r.isCreationMode),t={groupsRendered:0,fieldsRendered:0,ignoredFieldIds:[]};for(let n of e){let a=n.id==="basic"?n.fields.filter(s=>!nJe.has(s.id)):n.fields;if(a.length===0)continue;let i=r.container.createDiv({cls:"task-modal__field-group"});t.groupsRendered+=1;for(let s of a)qB({container:i,fieldConfig:s,fieldRenderers:r.fieldRenderers,renderUserField:r.renderUserField})?t.fieldsRendered+=1:t.ignoredFieldIds.push(s.id)}return t}var nJe,vpe=y(()=>{VB();nJe=new Set(["title","details"])});function WB(r){let e=typeof r=="function"?r():r,t=e==null?void 0:e.trim();return t||null}function aJe(r,e,t={}){let n=["TaskNotes"],a=WB(r);return a&&n.push(a),t.category&&n.push(t.category),t.operation&&n.push(t.operation),`${n.map(i=>`[${i}]`).join("")} ${e}`}function GA(r,e,t,n,a){let i=[aJe(t,n,a)];a!=null&&a.details&&i.push(a.details),(a==null?void 0:a.error)!==void 0&&i.push(a.error),r[e](...i)}function N(r={}){var n,a;let e=(n=r.sink)!=null?n:console,t=(a=r.isDebugEnabled)!=null?a:(()=>!1);return{debug(i,s){t()&&GA(e,"debug",r.tag,i,s)},info(i,s){GA(e,"info",r.tag,i,s)},warn(i,s){GA(e,"warn",r.tag,i,s)},error(i,s){GA(e,"error",r.tag,i,s)},child(i){let s=r.tag;return N({...r,tag:()=>{let o=WB(s),l=WB(i);return[o,l].filter(Boolean).join("/")}})}}}var K=y(()=>{});function kpe(r,e){let t=Object.keys(e).map(n=>iJe(r,n,e[n]));return t.length===1?t[0]:function(){t.forEach(n=>n())}}function iJe(r,e,t){let n=r[e],a=r.hasOwnProperty(e),i=a?n:function(){return Object.getPrototypeOf(r)[e].apply(this,arguments)},s=t(i);return n&&Object.setPrototypeOf(s,n),Object.setPrototypeOf(o,s),r[e]=o,l;function o(...c){return s===i&&r[e]===o&&l(),s.apply(this,c)}function l(){r[e]===o&&(a?r[e]=i:delete r[e]),s!==i&&(s=i,Object.setPrototypeOf(o,n||Function))}}var bpe=y(()=>{});var KB={};at(KB,{EmbeddableMarkdownEditor:()=>GB,getMarkdownEditorTooltipParent:()=>wpe});function sJe(r){let e=r.workspace.getActiveFile();if(!(e instanceof KA.TFile))throw new Error("Cannot resolve markdown editor prototype without an active markdown file.");let t=r.embedRegistry.embedByExtension.md({app:r,containerEl:activeWindow.createDiv()},e,"");t.editable=!0,t.showEditor();let n=t.editMode;if(!n)throw t.unload(),new Error("Markdown editor edit mode was not initialized");let a=Object.getPrototypeOf(Object.getPrototypeOf(n));return t.unload(),a.constructor}function oJe(){return typeof app=="undefined"?class{constructor(e,t,n){this.containerEl=activeWindow.createDiv();this.editor={cm:new du.EditorView};this.editorEl=activeWindow.createDiv();this.owner={editMode:null,editor:null};this._loaded=!1;this.app=e,this.containerEl=t}set(e){let t=this.editor.cm;t.dispatch({changes:{from:0,to:t.state.doc.length,insert:e}})}onUpdate(e,t){}buildLocalExtensions(){return[]}destroy(){}unload(){}}:sJe(app)}function wpe(r){var e,t;return(t=(e=r.ownerDocument)==null?void 0:e.body)!=null?t:activeDocument.body}var KA,Ec,du,Tpe,YB,GB,ZB=y(()=>{KA=require("obsidian"),Ec=require("@codemirror/state"),du=require("@codemirror/view");bpe();Tpe={cursorLocation:void 0,value:"",cls:"",placeholder:"",onEnter:()=>!1,onEscape:()=>{},onTab:()=>!1,onSubmit:()=>{},onBlur:()=>{},onPaste:()=>{},onChange:()=>{},extensions:[],enterVimInsertMode:!1,file:void 0};YB=class{constructor(e){this.view=e}getDoc(){return this}getValue(){return this.view.state.doc.toString()}setValue(e){this.view.dispatch({changes:{from:0,to:this.view.state.doc.length,insert:e}})}getLine(e){return this.view.state.doc.line(e+1).text}lineCount(){return this.view.state.doc.lines}lastLine(){return this.lineCount()-1}getSelection(){let e=this.view.state.selection.main;return this.view.state.doc.sliceString(e.from,e.to)}somethingSelected(){return!this.view.state.selection.main.empty}setHeading(e){let t=Math.max(0,Math.min(6,Number(e)||0)),n=t>0?`${"#".repeat(t)} `:"";this.updateSelectedLines(a=>{let i=a.replace(/^ {0,3}#{1,6}\s+/,"");return`${n}${i}`})}toggleBulletList(){let t=this.getSelectedLines().some(n=>/^\s*[-*+]\s+/.test(n.text));this.updateSelectedLines(n=>{var s;if(t)return n.replace(/^(\s*)[-*+]\s+/,"$1");let[,a="",i=""]=(s=n.match(/^(\s*)(.*)$/))!=null?s:[];return`${a}- ${i}`})}toggleNumberedList(){let t=this.getSelectedLines().some(n=>/^\s*\d+[.)]\s+/.test(n.text));this.updateSelectedLines((n,a)=>{var o;if(t)return n.replace(/^(\s*)\d+[.)]\s+/,"$1");let[,i="",s=""]=(o=n.match(/^(\s*)(.*)$/))!=null?o:[];return`${i}${a+1}. ${s}`})}toggleNumberList(){this.toggleNumberedList()}toggleCheckListStatus(){this.updateSelectedLines(e=>{var a;if(/^(\s*[-*+]\s+\[[ xX]\]\s*)/.test(e))return e.replace(/^(\s*[-*+]\s+\[)([ xX])(\]\s*)/,(i,s,o,l)=>`${s}${o.toLowerCase()==="x"?" ":"x"}${l}`);if(/^\s*[-*+]\s+/.test(e))return e.replace(/^(\s*[-*+]\s+)/,"$1[ ] ");let[,t="",n=""]=(a=e.match(/^(\s*)(.*)$/))!=null?a:[];return`${t}- [ ] ${n}`})}toggleCheckList(){this.toggleCheckListStatus()}getRange(e,t){return this.view.state.doc.sliceString(this.posToOffset(e),this.posToOffset(t))}replaceSelection(e){let t=this.view.state.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:e},range:Ec.EditorSelection.cursor(n.from+e.length)}));this.view.dispatch(t)}replaceRange(e,t,n){this.view.dispatch({changes:{from:this.posToOffset(t),to:this.posToOffset(n!=null?n:t),insert:e}})}getCursor(e="head"){let t=this.view.state.selection.main;switch(e){case"from":return this.offsetToPos(t.from);case"to":return this.offsetToPos(t.to);case"anchor":return this.offsetToPos(t.anchor);case"head":default:return this.offsetToPos(t.head)}}listSelections(){return this.view.state.selection.ranges.map(e=>({anchor:this.offsetToPos(e.anchor),head:this.offsetToPos(e.head)}))}setCursor(e,t){if(typeof e=="number"){this.setSelection({line:e,ch:t!=null?t:0});return}this.setSelection(e)}setSelection(e,t){this.view.dispatch({selection:Ec.EditorSelection.range(this.posToOffset(e),this.posToOffset(t!=null?t:e))})}setSelections(e,t=0){e.length!==0&&this.view.dispatch({selection:Ec.EditorSelection.create(e.map(n=>{var a;return Ec.EditorSelection.range(this.posToOffset(n.anchor),this.posToOffset((a=n.head)!=null?a:n.anchor))}),t)})}focus(){this.view.focus()}blur(){this.view.contentDOM.blur()}hasFocus(){return this.view.hasFocus}transaction(e){var a,i;if(e.replaceSelection!==void 0){this.replaceSelection(e.replaceSelection);return}let t=(a=e.changes)==null?void 0:a.map(s=>{var o;return{from:this.posToOffset(s.from),to:this.posToOffset((o=s.to)!=null?o:s.from),insert:s.text}}),n=(i=e.selections)!=null?i:e.selection?[e.selection]:void 0;this.view.dispatch({...t?{changes:t}:{},...n&&n.length>0?{selection:Ec.EditorSelection.create(n.map(s=>{var o;return Ec.EditorSelection.range(this.posToOffset(s.from),this.posToOffset((o=s.to)!=null?o:s.from))}))}:{}})}posToOffset(e){let t=Math.max(1,Math.min(e.line+1,this.view.state.doc.lines)),n=this.view.state.doc.line(t);return Math.max(n.from,Math.min(n.from+e.ch,n.to))}offsetToPos(e){let t=Math.max(0,Math.min(e,this.view.state.doc.length)),n=this.view.state.doc.lineAt(t);return{line:n.number-1,ch:t-n.from}}getSelectedLines(){let e=this.view.state.doc,t=new Set;for(let n of this.view.state.selection.ranges){let a=Math.min(n.from,n.to),i=Math.max(n.from,n.to),s=e.lineAt(a).number,o=e.lineAt(i).number;o>s&&i===e.line(o).from&&(o-=1);for(let l=s;l<=o;l+=1)t.add(l)}return Array.from(t).sort((n,a)=>n-a).map(n=>{let a=e.line(n);return{number:n,text:a.text}})}updateSelectedLines(e){let t=this.view.state.doc,n=this.getSelectedLines().map((a,i)=>{let s=t.line(a.number);return{from:s.from,to:s.to,insert:e(a.text,i)}});n.length!==0&&this.view.dispatch({changes:n})}},GB=class extends oJe(){constructor(t,n,a={}){super(t,n,{app:t,onMarkdownScroll:()=>{},getMode:()=>"source"});this.hasEnteredVimInsertMode=!1;this.options={...Tpe,...a},this.initial_value=this.options.value,this.scope=new KA.Scope(this.app.scope),this.scope.register(["Mod"],"Enter",(i,s)=>!0),this.scope.register(["Mod","Shift"],"Enter",(i,s)=>!0),this.owner.editMode=this,this.owner.editor=this.editor,this.activeEditorOwner={editMode:this,editor:new YB(this.editor.cm),file:this.getActiveEditorFile(),getMode:()=>"source"},this.set(a.value||""),this.uninstaller=kpe(this.app.workspace,{setActiveLeaf:i=>function(...s){var o;(o=this.activeCM)!=null&&o.hasFocus||i.call(this,...s)}}),this.options.onBlur!==Tpe.onBlur&&this.editor.cm.contentDOM.addEventListener("blur",()=>{this.app.keymap.popScope(this.scope),this._loaded&&this.options.onBlur(this)}),this.editor.cm.contentDOM.addEventListener("focusin",()=>{this.app.keymap.pushScope(this.scope),this.activeEditorOwner.file=this.getActiveEditorFile(),this.app.workspace.activeEditor=this.activeEditorOwner,this.options.enterVimInsertMode&&!this.hasEnteredVimInsertMode&&(this.hasEnteredVimInsertMode=!0,this.enterVimInsertMode())}),a.cls&&this.editorEl.classList.add(a.cls),a.cursorLocation&&this.editor.cm.dispatch({selection:Ec.EditorSelection.range(a.cursorLocation.anchor,a.cursorLocation.head)})}getActiveEditorFile(){var t;return this.options.file!==void 0?(t=this.options.file)!=null?t:null:this.app.workspace.getActiveFile()}get value(){return this.editor.cm.state.doc.toString()}setValue(t){this.set(t)}enterVimInsertMode(){window.setTimeout(()=>{var t,n;try{if(!this.app.vault.getConfig("vimMode"))return;let i=(t=window.CodeMirrorAdapter)==null?void 0:t.Vim;if(!i)return;let s=(n=this.editor.cm.cm)!=null?n:this.activeCM;if(!s)return;i.handleKey(s,"i","api")}catch(a){}},50)}onUpdate(t,n){super.onUpdate(t,n),n&&this.options.onChange(this.value,t)}buildLocalExtensions(){let t=super.buildLocalExtensions();return t.push((0,du.tooltips)({parent:wpe(this.containerEl)})),this.options.placeholder&&t.push((0,du.placeholder)(this.options.placeholder)),t.push(du.EditorView.domEventHandlers({paste:n=>{this.options.onPaste(n,this)}})),t.push(Ec.Prec.highest(du.keymap.of([{key:"Enter",run:n=>this.options.onEnter(this,!1,!1),shift:n=>this.options.onEnter(this,!1,!0)},{key:"Shift-Mod-Enter",run:n=>(this.options.onSubmit(this,!0),!0)},{key:"Mod-Enter",run:n=>(this.options.onSubmit(this,!1),!0)},{key:"Escape",run:n=>(this.options.onEscape(this),!0)},{key:"Tab",run:n=>this.options.onTab(this,!1)},{key:"Shift-Tab",run:n=>this.options.onTab(this,!0)}]))),this.options.extensions&&this.options.extensions.length>0&&t.push(...this.options.extensions),t}destroy(){this._loaded&&this.unload(),this.app.keymap.popScope(this.scope);let t=this.app.workspace;t.activeEditor===this.activeEditorOwner&&(t.activeEditor=null),this.uninstaller&&(this.uninstaller(),this.uninstaller=void 0),this.containerEl.empty(),super.destroy()}onunload(){this.destroy()}}});function cJe(){return(ZB(),NA(KB)).EmbeddableMarkdownEditor}function ZA(r,e,t){try{let n=cJe();return new n(r,e,{...t,onSubmit:(a,i)=>t.onSubmit(i),onTab:(a,i)=>t.onTab(i)})}catch(n){lJe.error("Failed to create markdown editor:",{category:"persistence",operation:"create-markdown-editor",error:n});let a=e.createEl("textarea",{cls:t.cls+"-fallback",placeholder:t.placeholder});return a.value=t.value,a.addEventListener("input",i=>{t.onChange(i.target.value)}),a.addEventListener("keydown",i=>{i.key==="Enter"&&(i.ctrlKey||i.metaKey)?(i.preventDefault(),t.onSubmit(i.shiftKey)):i.key==="Escape"?(i.preventDefault(),t.onEscape()):i.key==="Tab"&&t.onTab(i.shiftKey)&&i.preventDefault()}),null}}var lJe,QB=y(()=>{K();lJe=N({tag:"Modals/TaskModalEditorAdapter"})});function Spe(r){var n;let e=r.parent.createDiv("detail-label");e.textContent=r.label;let t=r.parent.createDiv("tn-task-modal__markdown-editor tn-task-modal__markdown-editor--details");return ZA(r.app,t,{value:r.value,placeholder:r.placeholder,cls:"details-editor",onChange:r.onChange,onSubmit:r.onSubmit,onEscape:r.onEscape,onTab:a=>r.tabMovesFocus?a?r.focusPreviousField():r.focusNextField():!1,file:(n=r.file)!=null?n:null})}function xpe(r,e){r==null||r.setValue(e)}function Cpe(r){r==null||r.destroy()}var JB=y(()=>{QB()});function dJe(r){if(r==null)return;let t=(Array.isArray(r)?r:[r]).filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0);return t.length>0?t:void 0}function _pe(r){let e=hJe(r),t=e.match(e2);if(t){let[,a,i,s]=t,o=Number(a),l=Number(i),c=Number(s);if(!Ipe(o,l,c))throw new Error(`Invalid date "${r}".`);return new Date(Date.UTC(o,l-1,c,0,0,0,0))}if(!gJe(e))throw new Error(`Invalid date "${r}".`);let n=new Date(e);if(!Npe(n))throw new Error(`Invalid date "${r}".`);return n}function pJe(r){if(!Npe(r))return"";let e=r.getUTCFullYear(),t=String(r.getUTCMonth()+1).padStart(2,"0"),n=String(r.getUTCDate()).padStart(2,"0");return`${e}-${t}-${n}`}function mJe(r){if(!/^\d{4}-\d{2}-\d{2}$/.test(r))throw new Error(`Invalid date "${r}". Expected YYYY-MM-DD.`);return _pe(r),r}function fJe(r){if(!r)return"";let e=r.trim();if(e2.test(e))return e;let t=e.indexOf("T");if(t>-1)return e.slice(0,t);let n=e.indexOf(" ");return n>-1&&e2.test(e.slice(0,n))?e.slice(0,n):pJe(_pe(e))}function Epe(r){let e=[],t=new Set;for(let n of r)if(typeof n=="string")try{let a=mJe(fJe(n.trim()));t.has(a)||(t.add(a),e.push(a))}catch(a){}return e}function hJe(r,e="Date string cannot be empty"){if(!r||r.trim().length===0)throw new Error(e);return r.trim()}function gJe(r){let e=r.match(uJe);if(!e)return!1;let[,t,n,a,i,s,o,,l,c,d]=e;return Ipe(Number(t),Number(n),Number(a))&&yJe(Number(i),Number(s),Number(o))&&vJe(l,c,d)}function Ipe(r,e,t){let n=new Date(Date.UTC(r,e-1,t,0,0,0,0));return n.getUTCFullYear()===r&&n.getUTCMonth()===e-1&&n.getUTCDate()===t}function yJe(r,e,t){return r>=0&&r<=23&&e>=0&&e<=59&&t>=0&&t<=59}function vJe(r,e,t){if(!r)return!0;let n=Number(e),a=Number(t);return!(n>14||a>59||n===14&&a!==0)}function Npe(r){return r instanceof Date&&!Number.isNaN(r.getTime())}function n2(r,e){return r[e]}function Fpe(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.map(e=>String(e)).join(", ");if(r!=null){if(typeof r=="object")return"";if(typeof r=="number"||typeof r=="boolean")return String(r)}}function Yp(r,e=Mpe){return Bpe(Xn(r),e)}function Gp(r,e=Ape){return Bpe(Xn(r),e)}function XA(r){let e=[],t=new Set,n=a=>{let i=Ope(String(a));!i||t.has(i)||(t.add(i),e.push(i))};return Array.isArray(r)?(r.forEach(n),e):(typeof r=="string"&&r.trim().length>0&&n(r),e)}function Ope(r){let e=r.trim();return(e.startsWith("#")?e.slice(1).trim():e).replace(/\s+/g,"-")}function a2(r,e,t,n=!1,a=[],i=Mpe,s=Ape){if(!e)return{};let o={path:t};if(typeof e.id=="string"&&e.id.trim().length>0&&(o.id=e.id),e[r.title]!==void 0){let l=Fpe(e[r.title]);l!==void 0&&l.trim().length>0?o.title=l:o.title=Dpe(t)}else(n||t)&&(o.title=Dpe(t));if(e[r.status]!==void 0&&(o.status=Yp(e[r.status],i)),e[r.priority]!==void 0&&(o.priority=Gp(e[r.priority],s)),e[r.due]!==void 0&&(o.due=Xn(e[r.due])),e[r.scheduled]!==void 0&&(o.scheduled=Xn(e[r.scheduled])),e[r.contexts]!==void 0&&(o.contexts=QA(e[r.contexts])),e[r.projects]!==void 0&&(o.projects=QA(e[r.projects])),e[r.attachments]!==void 0&&(o.attachments=dJe(e[r.attachments])),e[r.timeEstimate]!==void 0&&(o.timeEstimate=kJe(e[r.timeEstimate])),e[r.completedDate]!==void 0&&(o.completedDate=Xn(e[r.completedDate])),e[r.recurrence]!==void 0&&(o.recurrence=Xn(e[r.recurrence])),e[r.recurrenceAnchor]!==void 0){let l=e[r.recurrenceAnchor];l==="scheduled"||l==="completion"?o.recurrence_anchor=l:l!=null&&!Upe(l)&&(o.recurrence_anchor="scheduled")}if(e[r.dateCreated]!==void 0&&(o.dateCreated=Xn(e[r.dateCreated])),e[r.dateModified]!==void 0&&(o.dateModified=Xn(e[r.dateModified])),e[r.timeEntries]!==void 0&&(o.timeEntries=Array.isArray(e[r.timeEntries])?e[r.timeEntries]:[]),e[r.completeInstances]!==void 0){let l=e[r.completeInstances];o.complete_instances=Epe(Array.isArray(l)?l:[l])}if(e[r.skippedInstances]!==void 0){let l=e[r.skippedInstances];o.skipped_instances=Epe(Array.isArray(l)?l:[l])}if(e[r.recurrenceParent]!==void 0&&(o.recurrence_parent=Xn(e[r.recurrenceParent])),e[r.occurrenceDate]!==void 0&&(o.occurrence_date=Xn(e[r.occurrenceDate])),e[r.occurrenceMaterialization]!==void 0){let l=Xn(e[r.occurrenceMaterialization]);(l==="manual"||l==="on_completion"||l==="rolling")&&(o.occurrence_materialization=l)}if(e[r.occurrenceNextTrigger]!==void 0){let l=Xn(e[r.occurrenceNextTrigger]);(l==="completion"||l==="completion_or_skip")&&(o.occurrence_next_trigger=l)}if(e[r.occurrenceTemplate]!==void 0&&(o.occurrence_template=Xn(e[r.occurrenceTemplate])),e[r.occurrencePastHorizon]!==void 0&&(o.occurrence_past_horizon=Xn(e[r.occurrencePastHorizon])),e[r.occurrenceFutureHorizon]!==void 0&&(o.occurrence_future_horizon=Xn(e[r.occurrenceFutureHorizon])),r.blockedBy&&e[r.blockedBy]!==void 0&&(o.blockedBy=jpe(e[r.blockedBy])),e[r.icsEventId]!==void 0&&(o.icsEventId=QA(e[r.icsEventId])),e[r.googleCalendarEventId]!==void 0&&(o.googleCalendarEventId=Xn(e[r.googleCalendarEventId])),e[r.googleCalendarExceptionEventId]!==void 0&&(o.googleCalendarExceptionEventId=Xn(e[r.googleCalendarExceptionEventId])),e[r.googleCalendarExceptionOriginalScheduled]!==void 0&&(o.googleCalendarExceptionOriginalScheduled=Xn(e[r.googleCalendarExceptionOriginalScheduled])),e[r.googleCalendarMovedOriginalDates]!==void 0&&(o.googleCalendarMovedOriginalDates=QA(e[r.googleCalendarMovedOriginalDates])),e[r.reminders]!==void 0&&(o.reminders=bJe(e[r.reminders])),e[r.sortOrder]!==void 0&&(o.sortOrder=Xn(e[r.sortOrder])),e.tags!==void 0){let l=XA(e.tags);o.tags=l,o.archived=l.includes(r2(r.archiveTag))}if(a.length>0){let l={},c=o;for(let d of a)e[d.key]!==void 0&&(c[d.key]=e[d.key],l[d.key]=e[d.key]);Object.keys(l).length>0&&(o.customProperties={...o.customProperties,...l})}return o}function i2(r,e,t,n=!1,a=[]){let i={};if(e.title!==void 0&&!n&&(i[r.title]=e.title),e.status!==void 0&&(i[r.status]=Lpe(e.status)),e.priority!==void 0&&(i[r.priority]=e.priority),e.due!==void 0&&(i[r.due]=e.due),e.scheduled!==void 0&&(i[r.scheduled]=e.scheduled),e.contexts!==void 0&&(!Array.isArray(e.contexts)||e.contexts.length>0)&&(i[r.contexts]=e.contexts),e.projects!==void 0&&(!Array.isArray(e.projects)||e.projects.length>0)&&(i[r.projects]=e.projects),e.attachments!==void 0&&e.attachments.length>0&&(i[r.attachments]=e.attachments),e.timeEstimate!==void 0&&(i[r.timeEstimate]=e.timeEstimate),e.completedDate!==void 0&&(i[r.completedDate]=e.completedDate),e.recurrence!==void 0&&(i[r.recurrence]=e.recurrence),e.recurrence_anchor!==void 0&&(i[r.recurrenceAnchor]=e.recurrence_anchor),e.recurrence_parent!==void 0&&(i[r.recurrenceParent]=e.recurrence_parent),e.occurrence_date!==void 0&&(i[r.occurrenceDate]=e.occurrence_date),e.occurrence_materialization!==void 0&&(i[r.occurrenceMaterialization]=e.occurrence_materialization),e.occurrence_next_trigger!==void 0&&(i[r.occurrenceNextTrigger]=e.occurrence_next_trigger),e.occurrence_template!==void 0&&(i[r.occurrenceTemplate]=e.occurrence_template),e.occurrence_past_horizon!==void 0&&(i[r.occurrencePastHorizon]=e.occurrence_past_horizon),e.occurrence_future_horizon!==void 0&&(i[r.occurrenceFutureHorizon]=e.occurrence_future_horizon),e.dateCreated!==void 0&&(i[r.dateCreated]=e.dateCreated),e.dateModified!==void 0&&(i[r.dateModified]=e.dateModified),e.sortOrder!==void 0&&(i[r.sortOrder]=e.sortOrder),e.timeEntries!==void 0&&(i[r.timeEntries]=e.timeEntries),e.complete_instances!==void 0&&(i[r.completeInstances]=e.complete_instances),e.skipped_instances!==void 0&&e.skipped_instances.length>0&&(i[r.skippedInstances]=e.skipped_instances),e.blockedBy!==void 0){let u=Array.isArray(e.blockedBy)?e.blockedBy.map(d2).filter(p=>!!p):[];u.length>0&&(i[r.blockedBy]=$pe(u))}e.icsEventId!==void 0&&e.icsEventId.length>0&&(i[r.icsEventId]=e.icsEventId),e.googleCalendarEventId!==void 0&&(i[r.googleCalendarEventId]=e.googleCalendarEventId),e.googleCalendarExceptionEventId!==void 0&&(i[r.googleCalendarExceptionEventId]=e.googleCalendarExceptionEventId),e.googleCalendarExceptionOriginalScheduled!==void 0&&(i[r.googleCalendarExceptionOriginalScheduled]=e.googleCalendarExceptionOriginalScheduled),e.googleCalendarMovedOriginalDates!==void 0&&e.googleCalendarMovedOriginalDates.length>0&&(i[r.googleCalendarMovedOriginalDates]=e.googleCalendarMovedOriginalDates),e.reminders!==void 0&&e.reminders.length>0&&(i[r.reminders]=e.reminders);let s=XA(e.tags),o=t?r2(t):"",l=r2(r.archiveTag);o&&!s.includes(o)&&s.push(o),e.archived===!0&&!s.includes(l)?s.push(l):e.archived===!1&&(s=s.filter(u=>u!==l)),s.length>0&&(i.tags=s);let c=e.customProperties,d=e;for(let u of a)Object.prototype.hasOwnProperty.call(d,u.key)&&d[u.key]!==void 0?i[u.key]=d[u.key]:c&&Object.prototype.hasOwnProperty.call(c,u.key)&&c[u.key]!==void 0&&(i[u.key]=c[u.key]);return i}function Lpe(r){let e=r.toLowerCase();return e==="true"||e==="false"?e==="true":r}function e_(r,e){for(let[t,n]of Object.entries(r))if(n===e)return t;return null}function s2(r,e){return e_(r,e)!==null}function o2(r,e,t){return r[t]===e}function l2(r,e){return e.map(t=>r[t])}function c2(r){let e=[],t=Object.keys(r);for(let a of t)(!r[a]||r[a].trim()==="")&&e.push(`Field "${a}" cannot be empty`);let n=Object.values(r);return n.length!==new Set(n).size&&e.push("Field mappings must have unique property names"),{valid:e.length===0,errors:e}}function zpe(r){return Rpe.includes(r)}function d2(r){if(typeof r=="string"){let s=JA(r.trim());return s?{uid:s,reltype:t2}:null}if(!r||typeof r!="object")return null;let e=r,t=typeof e.uid=="string"?e.uid.trim():"";if(!t)return null;let n=typeof e.reltype=="string"?e.reltype.trim().toUpperCase():"",a=zpe(n)?n:t2,i=typeof e.gap=="string"&&e.gap.trim().length>0?e.gap.trim():void 0;return i?{uid:JA(t),reltype:a,gap:i}:{uid:JA(t),reltype:a}}function jpe(r){if(r==null)return;let e=(Array.isArray(r)?r:[r]).map(d2).filter(t=>!!t);return e.length>0?e:void 0}function $pe(r){return r.map(e=>{let n={uid:e.uid.startsWith("[[")?e.uid:`[[${e.uid}]]`,reltype:e.reltype};return e.gap&&e.gap.trim().length>0&&(n.gap=e.gap),n})}function JA(r){let e=r.trim(),t=e.match(/^\[\[([^|\]#]+)(?:#[^\]|]+)?(?:\|[^\]]+)?\]\]$/);if(t)return t[1].trim();let n=e.match(/^\[[^\]]+\]\(([^)#]+)(?:#[^)]+)?\)$/);return n?decodeURI(n[1].trim()):e}function Bpe(r,e=[]){if(r===void 0||e.length===0)return r;let t=e.find(o=>o.value===r);if(t)return t.value;let n=XB(e,o=>o.label===r);if(n)return n.value;let a=r.trim().toLocaleLowerCase();if(a.length===0)return r;let i=XB(e,o=>o.value.trim().toLocaleLowerCase()===a);if(i)return i.value;let s=XB(e,o=>o.label.trim().toLocaleLowerCase()===a);return s?s.value:r}function XB(r,e){let t=r.filter(e);return t.length===1?t[0]:void 0}function Xn(r){if(r!=null){if(typeof r=="string")return Upe(r)?void 0:r;if(typeof r=="number"||typeof r=="boolean")return String(r);if(Array.isArray(r))return r.length===1?Xn(r[0]):void 0}}function QA(r){return Array.isArray(r)?r.map(String):[String(r)]}function kJe(r){if(typeof r=="number")return r;if(typeof r=="string"&&r.trim()!==""){let e=Number(r);return Number.isNaN(e)?void 0:e}}function bJe(r){if(Array.isArray(r)){let e=r.filter(t=>t!=null);return e.length>0?e:void 0}return r!=null?[r]:void 0}function r2(r){var e;return(e=XA(r)[0])!=null?e:""}function Dpe(r){var e;return((e=r.split("/").pop())==null?void 0:e.replace(/\.md$/i,"").trim())||void 0}function Upe(r){return typeof r=="string"&&r.trim().length===0}var Ppe,Mpe,Ape,e2,uJe,t2,Rpe,u2=y(()=>{Ppe={title:"title",status:"status",priority:"priority",due:"due",scheduled:"scheduled",contexts:"contexts",projects:"projects",attachments:"attachments",timeEstimate:"timeEstimate",completedDate:"completedDate",dateCreated:"dateCreated",dateModified:"dateModified",recurrence:"recurrence",recurrenceAnchor:"recurrence_anchor",recurrenceParent:"recurrence_parent",occurrenceDate:"occurrence_date",occurrenceMaterialization:"occurrence_materialization",occurrenceNextTrigger:"occurrence_next_trigger",occurrenceTemplate:"occurrence_template",occurrencePastHorizon:"occurrence_past_horizon",occurrenceFutureHorizon:"occurrence_future_horizon",archiveTag:"archived",timeEntries:"timeEntries",completeInstances:"complete_instances",skippedInstances:"skipped_instances",blockedBy:"blockedBy",pomodoros:"pomodoros",icsEventId:"icsEventId",icsEventTag:"ics_event",googleCalendarEventId:"googleCalendarEventId",googleCalendarExceptionEventId:"googleCalendarExceptionEventId",googleCalendarExceptionOriginalScheduled:"googleCalendarExceptionOriginalScheduled",googleCalendarMovedOriginalDates:"googleCalendarMovedOriginalDates",reminders:"reminders",sortOrder:"tasknotes_manual_order"},Mpe=[{id:"none",value:"none",label:"None",color:"#cccccc",isCompleted:!1,excludeFromCycle:!1,order:0,autoArchive:!1,autoArchiveDelay:5},{id:"open",value:"open",label:"Open",color:"#808080",isCompleted:!1,excludeFromCycle:!1,order:1,autoArchive:!1,autoArchiveDelay:5},{id:"in-progress",value:"in-progress",label:"In progress",color:"#0066cc",isCompleted:!1,excludeFromCycle:!1,order:2,autoArchive:!1,autoArchiveDelay:5},{id:"done",value:"done",label:"Done",color:"#00aa00",isCompleted:!0,excludeFromCycle:!1,order:3,autoArchive:!1,autoArchiveDelay:5}],Ape=[{id:"none",value:"none",label:"None",color:"#cccccc",weight:0},{id:"low",value:"low",label:"Low",color:"#00aa00",weight:1},{id:"normal",value:"normal",label:"Normal",color:"#ffaa00",weight:2},{id:"high",value:"high",label:"High",color:"#ff0000",weight:3}];e2=/^(\d{4})-(\d{2})-(\d{2})$/,uJe=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d{1,3})?(?:Z|([+-])(\d{2}):(\d{2}))?$/;t2="FINISHTOSTART",Rpe=["FINISHTOSTART","FINISHTOFINISH","STARTTOSTART","STARTTOFINISH"]});var kS=y(()=>{u2()});var bh,p2=y(()=>{kS();bh=class{constructor(e,t=[],n=[],a=[]){this.mapping=e;this.userFields=t;this.statuses=n;this.priorities=a}updateUserFields(e){this.userFields=e}updateConfiguredValues(e,t){this.statuses=e,this.priorities=t}getUserFields(){return[...this.userFields]}toUserField(e){return n2(this.mapping,e)}mapFromFrontmatter(e,t,n){let a=e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0;return a2(this.mapping,a,t,n,this.userFields,this.statuses,this.priorities)}mapToFrontmatter(e,t,n){return i2(this.mapping,e,t,n,this.userFields)}updateMapping(e){this.mapping=e}getMapping(){return{...this.mapping}}lookupMappingKey(e){return e_(this.mapping,e)}isRecognizedProperty(e){return s2(this.mapping,e)}isPropertyForField(e,t){return o2(this.mapping,e,t)}toUserFields(e){return l2(this.mapping,e)}fromUserField(e){return this.lookupMappingKey(e)}static validateMapping(e){return c2(e)}}});var bS,t_=y(()=>{u2();bS=Ppe});var Av,Un,Th=y(()=>{Av=["MO","TU","WE","TH","FR","SA","SU"],Un=(function(){function r(e,t){if(t===0)throw new Error("Can't create weekday with n == 0");this.weekday=e,this.n=t}return r.fromStr=function(e){return new r(Av.indexOf(e))},r.prototype.nth=function(e){return this.n===e?this:new r(this.weekday,e)},r.prototype.equals=function(e){return this.weekday===e.weekday&&this.n===e.n},r.prototype.toString=function(){var e=Av[this.weekday];return this.n&&(e=(this.n>0?"+":"")+String(this.n)+e),e},r.prototype.getJsWeekday=function(){return this.weekday===6?0:this.weekday+1},r})()});function wh(r,e,t){t===void 0&&(t=" ");var n=String(r);return e=e>>0,n.length>e?String(n):(e=e-n.length,e>t.length&&(t+=Ut(t,e/t.length)),t.slice(0,e)+String(n))}var Gr,Hs,m2,Ra,Co,Ut,Hpe,Vpe,si,r_,Vs,Hn,Wt,Fi=y(()=>{Th();Gr=function(r){return r!=null},Hs=function(r){return typeof r=="number"},m2=function(r){return typeof r=="string"&&Av.includes(r)},Ra=Array.isArray,Co=function(r,e){e===void 0&&(e=r),arguments.length===1&&(e=r,r=0);for(var t=[],n=r;n<e;n++)t.push(n);return t},Ut=function(r,e){var t=0,n=[];if(Ra(r))for(;t<e;t++)n[t]=[].concat(r);else for(;t<e;t++)n[t]=r;return n},Hpe=function(r){return Ra(r)?r:[r]};Vpe=function(r,e,t){var n=r.split(e);return t?n.slice(0,t).concat([n.slice(t).join(e)]):n},si=function(r,e){var t=r%e;return t*e<0?t+e:t},r_=function(r,e){return{div:Math.floor(r/e),mod:si(r,e)}},Vs=function(r){return!Gr(r)||r.length===0},Hn=function(r){return!Vs(r)},Wt=function(r,e){return Hn(r)&&r.indexOf(e)!==-1}});var _l,TJe,Wpe,n_,Ype,wJe,_v,f2,Sh,SJe,TS,a_,xJe,uu,h2,i_,s_,g2,pu,Iv,wS,qpe,Gpe,oi=y(()=>{Fi();_l=function(r,e,t,n,a,i){return n===void 0&&(n=0),a===void 0&&(a=0),i===void 0&&(i=0),new Date(Date.UTC(r,e-1,t,n,a,i))},TJe=[31,28,31,30,31,30,31,31,30,31,30,31],Wpe=1e3*60*60*24,n_=9999,Ype=_l(1970,1,1),wJe=[6,0,1,2,3,4,5],_v=function(r){return r%4===0&&r%100!==0||r%400===0},f2=function(r){return r instanceof Date},Sh=function(r){return f2(r)&&!isNaN(r.getTime())},SJe=function(r,e){var t=r.getTime(),n=e.getTime(),a=t-n;return Math.round(a/Wpe)},TS=function(r){return SJe(r,Ype)},a_=function(r){return new Date(Ype.getTime()+r*Wpe)},xJe=function(r){var e=r.getUTCMonth();return e===1&&_v(r.getUTCFullYear())?29:TJe[e]},uu=function(r){return wJe[r.getUTCDay()]},h2=function(r,e){var t=_l(r,e+1,1);return[uu(t),xJe(t)]},i_=function(r,e){return e=e||r,new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()))},s_=function(r){var e=new Date(r.getTime());return e},g2=function(r){for(var e=[],t=0;t<r.length;t++)e.push(s_(r[t]));return e},pu=function(r){r.sort(function(e,t){return e.getTime()-t.getTime()})},Iv=function(r,e){e===void 0&&(e=!0);var t=new Date(r);return[wh(t.getUTCFullYear().toString(),4,"0"),wh(t.getUTCMonth()+1,2,"0"),wh(t.getUTCDate(),2,"0"),"T",wh(t.getUTCHours(),2,"0"),wh(t.getUTCMinutes(),2,"0"),wh(t.getUTCSeconds(),2,"0"),e?"Z":""].join("")},wS=function(r){var e=/^(\d{4})(\d{2})(\d{2})(T(\d{2})(\d{2})(\d{2})Z?)?$/,t=e.exec(r);if(!t)throw new Error("Invalid UNTIL value: ".concat(r));return new Date(Date.UTC(parseInt(t[1],10),parseInt(t[2],10)-1,parseInt(t[3],10),parseInt(t[5],10)||0,parseInt(t[6],10)||0,parseInt(t[7],10)||0))},qpe=function(r,e){var t=r.toLocaleString("sv-SE",{timeZone:e});return t.replace(" ","T")+"Z"},Gpe=function(r,e){var t=Intl.DateTimeFormat().resolvedOptions().timeZone,n=new Date(qpe(r,t)),a=new Date(qpe(r,e!=null?e:"UTC")),i=a.getTime()-n.getTime();return new Date(r.getTime()-i)}});var CJe,mu,o_=y(()=>{CJe=(function(){function r(e,t){this.minDate=null,this.maxDate=null,this._result=[],this.total=0,this.method=e,this.args=t,e==="between"?(this.maxDate=t.inc?t.before:new Date(t.before.getTime()-1),this.minDate=t.inc?t.after:new Date(t.after.getTime()+1)):e==="before"?this.maxDate=t.inc?t.dt:new Date(t.dt.getTime()-1):e==="after"&&(this.minDate=t.inc?t.dt:new Date(t.dt.getTime()+1))}return r.prototype.accept=function(e){++this.total;var t=this.minDate&&e<this.minDate,n=this.maxDate&&e>this.maxDate;if(this.method==="between"){if(t)return!0;if(n)return!1}else if(this.method==="before"){if(n)return!1}else if(this.method==="after")return t?!0:(this.add(e),!1);return this.add(e)},r.prototype.add=function(e){return this._result.push(e),!0},r.prototype.getValue=function(){var e=this._result;switch(this.method){case"all":case"between":return e;case"before":case"after":default:return e.length?e[e.length-1]:null}},r.prototype.clone=function(){return new r(this.method,this.args)},r})(),mu=CJe});function Nv(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");y2(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function pe(r,e,t){if(t||arguments.length===2)for(var n=0,a=e.length,i;n<a;n++)(i||!(n in e))&&(i||(i=Array.prototype.slice.call(e,0,n)),i[n]=e[n]);return r.concat(i||Array.prototype.slice.call(e))}var y2,Fa,fu=y(()=>{y2=function(r,e){return y2=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])},y2(r,e)};Fa=function(){return Fa=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++){t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},Fa.apply(this,arguments)}});var EJe,v2,Kpe=y(()=>{fu();o_();EJe=(function(r){Nv(e,r);function e(t,n,a){var i=r.call(this,t,n)||this;return i.iterator=a,i}return e.prototype.add=function(t){return this.iterator(t,this._result.length)?(this._result.push(t),!0):!1},e})(mu),v2=EJe});var DJe,xh,l_=y(()=>{DJe={dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],tokens:{SKIP:/^[ \r\n\t]+|^\.$/,number:/^[1-9][0-9]*/,numberAsText:/^(one|two|three)/i,every:/^every/i,"day(s)":/^days?/i,"weekday(s)":/^weekdays?/i,"week(s)":/^weeks?/i,"hour(s)":/^hours?/i,"minute(s)":/^minutes?/i,"month(s)":/^months?/i,"year(s)":/^years?/i,on:/^(on|in)/i,at:/^(at)/i,the:/^the/i,first:/^first/i,second:/^second/i,third:/^third/i,nth:/^([1-9][0-9]*)(\.|th|nd|rd|st)/i,last:/^last/i,for:/^for/i,"time(s)":/^times?/i,until:/^(un)?til/i,monday:/^mo(n(day)?)?/i,tuesday:/^tu(e(s(day)?)?)?/i,wednesday:/^we(d(n(esday)?)?)?/i,thursday:/^th(u(r(sday)?)?)?/i,friday:/^fr(i(day)?)?/i,saturday:/^sa(t(urday)?)?/i,sunday:/^su(n(day)?)?/i,january:/^jan(uary)?/i,february:/^feb(ruary)?/i,march:/^mar(ch)?/i,april:/^apr(il)?/i,may:/^may/i,june:/^june?/i,july:/^july?/i,august:/^aug(ust)?/i,september:/^sep(t(ember)?)?/i,october:/^oct(ober)?/i,november:/^nov(ember)?/i,december:/^dec(ember)?/i,comma:/^(,\s*|(and|or)\s*)+/i}},xh=DJe});var Zpe,PJe,MJe,AJe,Dc,Qpe=y(()=>{l_();Eo();Fi();Zpe=function(r,e){return r.indexOf(e)!==-1},PJe=function(r){return r.toString()},MJe=function(r,e,t){return"".concat(e," ").concat(t,", ").concat(r)},AJe=(function(){function r(e,t,n,a){if(t===void 0&&(t=PJe),n===void 0&&(n=xh),a===void 0&&(a=MJe),this.text=[],this.language=n||xh,this.gettext=t,this.dateFormatter=a,this.rrule=e,this.options=e.options,this.origOptions=e.origOptions,this.origOptions.bymonthday){var i=[].concat(this.options.bymonthday),s=[].concat(this.options.bynmonthday);i.sort(function(d,u){return d-u}),s.sort(function(d,u){return u-d}),this.bymonthday=i.concat(s),this.bymonthday.length||(this.bymonthday=null)}if(Gr(this.origOptions.byweekday)){var o=Ra(this.origOptions.byweekday)?this.origOptions.byweekday:[this.origOptions.byweekday],l=String(o);this.byweekday={allWeeks:o.filter(function(d){return!d.n}),someWeeks:o.filter(function(d){return!!d.n}),isWeekdays:l.indexOf("MO")!==-1&&l.indexOf("TU")!==-1&&l.indexOf("WE")!==-1&&l.indexOf("TH")!==-1&&l.indexOf("FR")!==-1&&l.indexOf("SA")===-1&&l.indexOf("SU")===-1,isEveryDay:l.indexOf("MO")!==-1&&l.indexOf("TU")!==-1&&l.indexOf("WE")!==-1&&l.indexOf("TH")!==-1&&l.indexOf("FR")!==-1&&l.indexOf("SA")!==-1&&l.indexOf("SU")!==-1};var c=function(d,u){return d.weekday-u.weekday};this.byweekday.allWeeks.sort(c),this.byweekday.someWeeks.sort(c),this.byweekday.allWeeks.length||(this.byweekday.allWeeks=null),this.byweekday.someWeeks.length||(this.byweekday.someWeeks=null)}else this.byweekday=null}return r.isFullyConvertible=function(e){var t=!0;if(!(e.options.freq in r.IMPLEMENTED)||e.origOptions.until&&e.origOptions.count)return!1;for(var n in e.origOptions){if(Zpe(["dtstart","tzid","wkst","freq"],n))return!0;if(!Zpe(r.IMPLEMENTED[e.options.freq],n))return!1}return t},r.prototype.isFullyConvertible=function(){return r.isFullyConvertible(this.rrule)},r.prototype.toString=function(){var e=this.gettext;if(!(this.options.freq in r.IMPLEMENTED))return e("RRule error: Unable to fully convert this rrule to text");if(this.text=[e("every")],this[ke.FREQUENCIES[this.options.freq]](),this.options.until){this.add(e("until"));var t=this.options.until;this.add(this.dateFormatter(t.getUTCFullYear(),this.language.monthNames[t.getUTCMonth()],t.getUTCDate()))}else this.options.count&&this.add(e("for")).add(this.options.count.toString()).add(this.plural(this.options.count)?e("times"):e("time"));return this.isFullyConvertible()||this.add(e("(~ approximate)")),this.text.join("")},r.prototype.HOURLY=function(){var e=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?e("hours"):e("hour"))},r.prototype.MINUTELY=function(){var e=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?e("minutes"):e("minute"))},r.prototype.DAILY=function(){var e=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.byweekday&&this.byweekday.isWeekdays?this.add(this.plural(this.options.interval)?e("weekdays"):e("weekday")):this.add(this.plural(this.options.interval)?e("days"):e("day")),this.origOptions.bymonth&&(this.add(e("in")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday?this._byweekday():this.origOptions.byhour&&this._byhour()},r.prototype.WEEKLY=function(){var e=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()).add(this.plural(this.options.interval)?e("weeks"):e("week")),this.byweekday&&this.byweekday.isWeekdays?this.options.interval===1?this.add(this.plural(this.options.interval)?e("weekdays"):e("weekday")):this.add(e("on")).add(e("weekdays")):this.byweekday&&this.byweekday.isEveryDay?this.add(this.plural(this.options.interval)?e("days"):e("day")):(this.options.interval===1&&this.add(e("week")),this.origOptions.bymonth&&(this.add(e("in")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday(),this.origOptions.byhour&&this._byhour())},r.prototype.MONTHLY=function(){var e=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()).add(e("months")),this.plural(this.options.interval)&&this.add(e("in"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?e("months"):e("month"))),this.bymonthday?this._bymonthday():this.byweekday&&this.byweekday.isWeekdays?this.add(e("on")).add(e("weekdays")):this.byweekday&&this._byweekday()},r.prototype.YEARLY=function(){var e=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()),this.add(e("years"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?e("years"):e("year"))),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday(),this.options.byyearday&&this.add(e("on the")).add(this.list(this.options.byyearday,this.nth,e("and"))).add(e("day")),this.options.byweekno&&this.add(e("in")).add(this.plural(this.options.byweekno.length)?e("weeks"):e("week")).add(this.list(this.options.byweekno,void 0,e("and")))},r.prototype._bymonthday=function(){var e=this.gettext;this.byweekday&&this.byweekday.allWeeks?this.add(e("on")).add(this.list(this.byweekday.allWeeks,this.weekdaytext,e("or"))).add(e("the")).add(this.list(this.bymonthday,this.nth,e("or"))):this.add(e("on the")).add(this.list(this.bymonthday,this.nth,e("and")))},r.prototype._byweekday=function(){var e=this.gettext;this.byweekday.allWeeks&&!this.byweekday.isWeekdays&&this.add(e("on")).add(this.list(this.byweekday.allWeeks,this.weekdaytext)),this.byweekday.someWeeks&&(this.byweekday.allWeeks&&this.add(e("and")),this.add(e("on the")).add(this.list(this.byweekday.someWeeks,this.weekdaytext,e("and"))))},r.prototype._byhour=function(){var e=this.gettext;this.add(e("at")).add(this.list(this.origOptions.byhour,void 0,e("and")))},r.prototype._bymonth=function(){this.add(this.list(this.options.bymonth,this.monthtext,this.gettext("and")))},r.prototype.nth=function(e){e=parseInt(e.toString(),10);var t,n=this.gettext;if(e===-1)return n("last");var a=Math.abs(e);switch(a){case 1:case 21:case 31:t=a+n("st");break;case 2:case 22:t=a+n("nd");break;case 3:case 23:t=a+n("rd");break;default:t=a+n("th")}return e<0?t+" "+n("last"):t},r.prototype.monthtext=function(e){return this.language.monthNames[e-1]},r.prototype.weekdaytext=function(e){var t=Hs(e)?(e+1)%7:e.getJsWeekday();return(e.n?this.nth(e.n)+" ":"")+this.language.dayNames[t]},r.prototype.plural=function(e){return e%100!==1},r.prototype.add=function(e){return this.text.push(" "),this.text.push(e),this},r.prototype.list=function(e,t,n,a){var i=this;a===void 0&&(a=","),Ra(e)||(e=[e]);var s=function(l,c,d){for(var u="",p=0;p<l.length;p++)p!==0&&(p===l.length-1?u+=" "+d+" ":u+=c+" "),u+=l[p];return u};t=t||function(l){return l.toString()};var o=function(l){return t&&t.call(i,l)};return n?s(e.map(o),a,n):e.map(o).join(a+" ")},r})(),Dc=AJe});function SS(r,e){e===void 0&&(e=xh);var t={},n=new _Je(e.tokens);if(!n.start(r))return null;return a(),t;function a(){n.expect("every");var p=n.acceptNumber();if(p&&(t.interval=parseInt(p[0],10)),n.isDone())throw new Error("Unexpected end");switch(n.symbol){case"day(s)":t.freq=ke.DAILY,n.nextSymbol()&&(s(),u());break;case"weekday(s)":t.freq=ke.WEEKLY,t.byweekday=[ke.MO,ke.TU,ke.WE,ke.TH,ke.FR],n.nextSymbol(),s(),u();break;case"week(s)":t.freq=ke.WEEKLY,n.nextSymbol()&&(i(),s(),u());break;case"hour(s)":t.freq=ke.HOURLY,n.nextSymbol()&&(i(),u());break;case"minute(s)":t.freq=ke.MINUTELY,n.nextSymbol()&&(i(),u());break;case"month(s)":t.freq=ke.MONTHLY,n.nextSymbol()&&(i(),u());break;case"year(s)":t.freq=ke.YEARLY,n.nextSymbol()&&(i(),u());break;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":t.freq=ke.WEEKLY;var m=n.symbol.substr(0,2).toUpperCase();if(t.byweekday=[ke[m]],!n.nextSymbol())return;for(;n.accept("comma");){if(n.isDone())throw new Error("Unexpected end");var f=l();if(!f)throw new Error("Unexpected symbol "+n.symbol+", expected weekday");t.byweekday.push(ke[f]),n.nextSymbol()}s(),d(),u();break;case"january":case"february":case"march":case"april":case"may":case"june":case"july":case"august":case"september":case"october":case"november":case"december":if(t.freq=ke.YEARLY,t.bymonth=[o()],!n.nextSymbol())return;for(;n.accept("comma");){if(n.isDone())throw new Error("Unexpected end");var h=o();if(!h)throw new Error("Unexpected symbol "+n.symbol+", expected month");t.bymonth.push(h),n.nextSymbol()}i(),u();break;default:throw new Error("Unknown symbol")}}function i(){var p=n.accept("on"),m=n.accept("the");if(p||m)do{var f=c(),h=l(),g=o();if(f)h?(n.nextSymbol(),t.byweekday||(t.byweekday=[]),t.byweekday.push(ke[h].nth(f))):(t.bymonthday||(t.bymonthday=[]),t.bymonthday.push(f),n.accept("day(s)"));else if(h)n.nextSymbol(),t.byweekday||(t.byweekday=[]),t.byweekday.push(ke[h]);else if(n.symbol==="weekday(s)")n.nextSymbol(),t.byweekday||(t.byweekday=[ke.MO,ke.TU,ke.WE,ke.TH,ke.FR]);else if(n.symbol==="week(s)"){n.nextSymbol();var v=n.acceptNumber();if(!v)throw new Error("Unexpected symbol "+n.symbol+", expected week number");for(t.byweekno=[parseInt(v[0],10)];n.accept("comma");){if(v=n.acceptNumber(),!v)throw new Error("Unexpected symbol "+n.symbol+"; expected monthday");t.byweekno.push(parseInt(v[0],10))}}else if(g)n.nextSymbol(),t.bymonth||(t.bymonth=[]),t.bymonth.push(g);else return}while(n.accept("comma")||n.accept("the")||n.accept("on"))}function s(){var p=n.accept("at");if(p)do{var m=n.acceptNumber();if(!m)throw new Error("Unexpected symbol "+n.symbol+", expected hour");for(t.byhour=[parseInt(m[0],10)];n.accept("comma");){if(m=n.acceptNumber(),!m)throw new Error("Unexpected symbol "+n.symbol+"; expected hour");t.byhour.push(parseInt(m[0],10))}}while(n.accept("comma")||n.accept("at"))}function o(){switch(n.symbol){case"january":return 1;case"february":return 2;case"march":return 3;case"april":return 4;case"may":return 5;case"june":return 6;case"july":return 7;case"august":return 8;case"september":return 9;case"october":return 10;case"november":return 11;case"december":return 12;default:return!1}}function l(){switch(n.symbol){case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":return n.symbol.substr(0,2).toUpperCase();default:return!1}}function c(){switch(n.symbol){case"last":return n.nextSymbol(),-1;case"first":return n.nextSymbol(),1;case"second":return n.nextSymbol(),n.accept("last")?-2:2;case"third":return n.nextSymbol(),n.accept("last")?-3:3;case"nth":var p=parseInt(n.value[1],10);if(p<-366||p>366)throw new Error("Nth out of range: "+p);return n.nextSymbol(),n.accept("last")?-p:p;default:return!1}}function d(){n.accept("on"),n.accept("the");var p=c();if(p)for(t.bymonthday=[p],n.nextSymbol();n.accept("comma");){if(p=c(),!p)throw new Error("Unexpected symbol "+n.symbol+"; expected monthday");t.bymonthday.push(p),n.nextSymbol()}}function u(){if(n.symbol==="until"){var p=Date.parse(n.text);if(!p)throw new Error("Cannot parse until date:"+n.text);t.until=new Date(p)}else n.accept("for")&&(t.count=parseInt(n.value[0],10),n.expect("number"))}}var _Je,Jpe=y(()=>{l_();Eo();_Je=(function(){function r(e){this.done=!0,this.rules=e}return r.prototype.start=function(e){return this.text=e,this.done=!1,this.nextSymbol()},r.prototype.isDone=function(){return this.done&&this.symbol===null},r.prototype.nextSymbol=function(){var e,t;this.symbol=null,this.value=null;do{if(this.done)return!1;var n=void 0;e=null;for(var a in this.rules){n=this.rules[a];var i=n.exec(this.text);i&&(e===null||i[0].length>e[0].length)&&(e=i,t=a)}if(e!=null&&(this.text=this.text.substr(e[0].length),this.text===""&&(this.done=!0)),e==null){this.done=!0,this.symbol=null,this.value=null;return}}while(t==="SKIP");return this.symbol=t,this.value=e,!0},r.prototype.accept=function(e){if(this.symbol===e){if(this.value){var t=this.value;return this.nextSymbol(),t}return this.nextSymbol(),!0}return!1},r.prototype.acceptNumber=function(){return this.accept("number")},r.prototype.expect=function(e){if(this.accept(e))return!0;throw new Error("expected "+e+" but found "+this.symbol)},r})()});function xS(r){return r<xt.HOURLY}var xt,hu=y(()=>{(function(r){r[r.YEARLY=0]="YEARLY",r[r.MONTHLY=1]="MONTHLY",r[r.WEEKLY=2]="WEEKLY",r[r.DAILY=3]="DAILY",r[r.HOURLY=4]="HOURLY",r[r.MINUTELY=5]="MINUTELY",r[r.SECONDLY=6]="SECONDLY"})(xt||(xt={}))});var Xpe,Rv,eme,tme,rme=y(()=>{Qpe();Jpe();Eo();hu();l_();Xpe=function(r,e){return e===void 0&&(e=xh),new ke(SS(r,e)||void 0)},Rv=["count","until","interval","byweekday","bymonthday","bymonth"];Dc.IMPLEMENTED=[];Dc.IMPLEMENTED[xt.HOURLY]=Rv;Dc.IMPLEMENTED[xt.MINUTELY]=Rv;Dc.IMPLEMENTED[xt.DAILY]=["byhour"].concat(Rv);Dc.IMPLEMENTED[xt.WEEKLY]=Rv;Dc.IMPLEMENTED[xt.MONTHLY]=Rv;Dc.IMPLEMENTED[xt.YEARLY]=["byweekno","byyearday"].concat(Rv);eme=function(r,e,t,n){return new Dc(r,e,t,n).toString()},tme=Dc.isFullyConvertible});var Fv,nme,c_=y(()=>{fu();hu();Fi();oi();Fv=(function(){function r(e,t,n,a){this.hour=e,this.minute=t,this.second=n,this.millisecond=a||0}return r.prototype.getHours=function(){return this.hour},r.prototype.getMinutes=function(){return this.minute},r.prototype.getSeconds=function(){return this.second},r.prototype.getMilliseconds=function(){return this.millisecond},r.prototype.getTime=function(){return(this.hour*60*60+this.minute*60+this.second)*1e3+this.millisecond},r})(),nme=(function(r){Nv(e,r);function e(t,n,a,i,s,o,l){var c=r.call(this,i,s,o,l)||this;return c.year=t,c.month=n,c.day=a,c}return e.fromDate=function(t){return new this(t.getUTCFullYear(),t.getUTCMonth()+1,t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),t.valueOf()%1e3)},e.prototype.getWeekday=function(){return uu(new Date(this.getTime()))},e.prototype.getTime=function(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond)).getTime()},e.prototype.getDay=function(){return this.day},e.prototype.getMonth=function(){return this.month},e.prototype.getYear=function(){return this.year},e.prototype.addYears=function(t){this.year+=t},e.prototype.addMonths=function(t){if(this.month+=t,this.month>12){var n=Math.floor(this.month/12),a=si(this.month,12);this.month=a,this.year+=n,this.month===0&&(this.month=12,--this.year)}},e.prototype.addWeekly=function(t,n){n>this.getWeekday()?this.day+=-(this.getWeekday()+1+(6-n))+t*7:this.day+=-(this.getWeekday()-n)+t*7,this.fixDay()},e.prototype.addDaily=function(t){this.day+=t,this.fixDay()},e.prototype.addHours=function(t,n,a){for(n&&(this.hour+=Math.floor((23-this.hour)/t)*t);;){this.hour+=t;var i=r_(this.hour,24),s=i.div,o=i.mod;if(s&&(this.hour=o,this.addDaily(s)),Vs(a)||Wt(a,this.hour))break}},e.prototype.addMinutes=function(t,n,a,i){for(n&&(this.minute+=Math.floor((1439-(this.hour*60+this.minute))/t)*t);;){this.minute+=t;var s=r_(this.minute,60),o=s.div,l=s.mod;if(o&&(this.minute=l,this.addHours(o,!1,a)),(Vs(a)||Wt(a,this.hour))&&(Vs(i)||Wt(i,this.minute)))break}},e.prototype.addSeconds=function(t,n,a,i,s){for(n&&(this.second+=Math.floor((86399-(this.hour*3600+this.minute*60+this.second))/t)*t);;){this.second+=t;var o=r_(this.second,60),l=o.div,c=o.mod;if(l&&(this.second=c,this.addMinutes(l,!1,a,i)),(Vs(a)||Wt(a,this.hour))&&(Vs(i)||Wt(i,this.minute))&&(Vs(s)||Wt(s,this.second)))break}},e.prototype.fixDay=function(){if(!(this.day<=28)){var t=h2(this.year,this.month-1)[1];if(!(this.day<=t))for(;this.day>t;){if(this.day-=t,++this.month,this.month===13&&(this.month=1,++this.year,this.year>n_))return;t=h2(this.year,this.month-1)[1]}}},e.prototype.add=function(t,n){var a=t.freq,i=t.interval,s=t.wkst,o=t.byhour,l=t.byminute,c=t.bysecond;switch(a){case xt.YEARLY:return this.addYears(i);case xt.MONTHLY:return this.addMonths(i);case xt.WEEKLY:return this.addWeekly(i,s);case xt.DAILY:return this.addDaily(i);case xt.HOURLY:return this.addHours(i,n,o);case xt.MINUTELY:return this.addMinutes(i,n,o,l);case xt.SECONDLY:return this.addSeconds(i,n,o,l,c)}},e})(Fv)});function k2(r){for(var e=[],t=Object.keys(r),n=0,a=t;n<a.length;n++){var i=a[n];Wt(sme,i)||e.push(i),f2(r[i])&&!Sh(r[i])&&e.push(i)}if(e.length)throw new Error("Invalid options: "+e.join(", "));return Fa({},r)}function ame(r){var e=Fa(Fa({},CS),k2(r));if(Gr(e.byeaster)&&(e.freq=ke.YEARLY),!(Gr(e.freq)&&ke.FREQUENCIES[e.freq]))throw new Error("Invalid frequency: ".concat(e.freq," ").concat(r.freq));if(e.dtstart||(e.dtstart=new Date(new Date().setMilliseconds(0))),Gr(e.wkst)?Hs(e.wkst)||(e.wkst=e.wkst.weekday):e.wkst=ke.MO.weekday,Gr(e.bysetpos)){Hs(e.bysetpos)&&(e.bysetpos=[e.bysetpos]);for(var t=0;t<e.bysetpos.length;t++){var n=e.bysetpos[t];if(n===0||!(n>=-366&&n<=366))throw new Error("bysetpos must be between 1 and 366, or between -366 and -1")}}if(!(e.byweekno||Hn(e.byweekno)||Hn(e.byyearday)||e.bymonthday||Hn(e.bymonthday)||Gr(e.byweekday)||Gr(e.byeaster)))switch(e.freq){case ke.YEARLY:e.bymonth||(e.bymonth=e.dtstart.getUTCMonth()+1),e.bymonthday=e.dtstart.getUTCDate();break;case ke.MONTHLY:e.bymonthday=e.dtstart.getUTCDate();break;case ke.WEEKLY:e.byweekday=[uu(e.dtstart)];break}if(Gr(e.bymonth)&&!Ra(e.bymonth)&&(e.bymonth=[e.bymonth]),Gr(e.byyearday)&&!Ra(e.byyearday)&&Hs(e.byyearday)&&(e.byyearday=[e.byyearday]),!Gr(e.bymonthday))e.bymonthday=[],e.bynmonthday=[];else if(Ra(e.bymonthday)){for(var a=[],i=[],t=0;t<e.bymonthday.length;t++){var n=e.bymonthday[t];n>0?a.push(n):n<0&&i.push(n)}e.bymonthday=a,e.bynmonthday=i}else e.bymonthday<0?(e.bynmonthday=[e.bymonthday],e.bymonthday=[]):(e.bynmonthday=[],e.bymonthday=[e.bymonthday]);if(Gr(e.byweekno)&&!Ra(e.byweekno)&&(e.byweekno=[e.byweekno]),!Gr(e.byweekday))e.bynweekday=null;else if(Hs(e.byweekday))e.byweekday=[e.byweekday],e.bynweekday=null;else if(m2(e.byweekday))e.byweekday=[Un.fromStr(e.byweekday).weekday],e.bynweekday=null;else if(e.byweekday instanceof Un)!e.byweekday.n||e.freq>ke.MONTHLY?(e.byweekday=[e.byweekday.weekday],e.bynweekday=null):(e.bynweekday=[[e.byweekday.weekday,e.byweekday.n]],e.byweekday=null);else{for(var s=[],o=[],t=0;t<e.byweekday.length;t++){var l=e.byweekday[t];if(Hs(l)){s.push(l);continue}else if(m2(l)){s.push(Un.fromStr(l).weekday);continue}!l.n||e.freq>ke.MONTHLY?s.push(l.weekday):o.push([l.weekday,l.n])}e.byweekday=Hn(s)?s:null,e.bynweekday=Hn(o)?o:null}return Gr(e.byhour)?Hs(e.byhour)&&(e.byhour=[e.byhour]):e.byhour=e.freq<ke.HOURLY?[e.dtstart.getUTCHours()]:null,Gr(e.byminute)?Hs(e.byminute)&&(e.byminute=[e.byminute]):e.byminute=e.freq<ke.MINUTELY?[e.dtstart.getUTCMinutes()]:null,Gr(e.bysecond)?Hs(e.bysecond)&&(e.bysecond=[e.bysecond]):e.bysecond=e.freq<ke.SECONDLY?[e.dtstart.getUTCSeconds()]:null,{parsedOptions:e}}function ime(r){var e=r.dtstart.getTime()%1e3;if(!xS(r.freq))return[];var t=[];return r.byhour.forEach(function(n){r.byminute.forEach(function(a){r.bysecond.forEach(function(i){t.push(new Fv(n,a,i,e))})})}),t}var b2=y(()=>{fu();hu();Fi();Eo();oi();Th();c_()});function DS(r){var e=r.split(`
|
||
`).map(IJe).filter(function(t){return t!==null});return Fa(Fa({},e[0]),e[1])}function ES(r){var e={},t=/DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\s]+)/i.exec(r);if(!t)return e;var n=t[1],a=t[2];return n&&(e.tzid=n),e.dtstart=wS(a),e}function IJe(r){if(r=r.replace(/^\s+|\s+$/,""),!r.length)return null;var e=/^([A-Z]+?)[:;]/.exec(r.toUpperCase());if(!e)return ome(r);var t=e[1];switch(t.toUpperCase()){case"RRULE":case"EXRULE":return ome(r);case"DTSTART":return ES(r);default:throw new Error("Unsupported RFC prop ".concat(t," in ").concat(r))}}function ome(r){var e=r.replace(/^RRULE:/i,""),t=ES(e),n=r.replace(/^(?:RRULE|EXRULE):/i,"").split(";");return n.forEach(function(a){var i=a.split("="),s=i[0],o=i[1];switch(s.toUpperCase()){case"FREQ":t.freq=xt[o.toUpperCase()];break;case"WKST":t.wkst=Do[o.toUpperCase()];break;case"COUNT":case"INTERVAL":case"BYSETPOS":case"BYMONTH":case"BYMONTHDAY":case"BYYEARDAY":case"BYWEEKNO":case"BYHOUR":case"BYMINUTE":case"BYSECOND":var l=NJe(o),c=s.toLowerCase();t[c]=l;break;case"BYWEEKDAY":case"BYDAY":t.byweekday=RJe(o);break;case"DTSTART":case"TZID":var d=ES(r);t.tzid=d.tzid,t.dtstart=d.dtstart;break;case"UNTIL":t.until=wS(o);break;case"BYEASTER":t.byeaster=Number(o);break;default:throw new Error("Unknown RRULE property '"+s+"'")}}),t}function NJe(r){if(r.indexOf(",")!==-1){var e=r.split(",");return e.map(lme)}return lme(r)}function lme(r){return/^[+-]?\d+$/.test(r)?Number(r):r}function RJe(r){var e=r.split(",");return e.map(function(t){if(t.length===2)return Do[t];var n=t.match(/^([+-]?\d{1,2})([A-Z]{2})$/);if(!n||n.length<3)throw new SyntaxError("Invalid weekday string: ".concat(t));var a=Number(n[1]),i=n[2],s=Do[i].weekday;return new Un(s,a)})}var T2=y(()=>{fu();hu();Th();oi();Eo()});var Ch,d_=y(()=>{oi();Ch=(function(){function r(e,t){if(isNaN(e.getTime()))throw new RangeError("Invalid date passed to DateWithZone");this.date=e,this.tzid=t}return Object.defineProperty(r.prototype,"isUTC",{get:function(){return!this.tzid||this.tzid.toUpperCase()==="UTC"},enumerable:!1,configurable:!0}),r.prototype.toString=function(){var e=Iv(this.date.getTime(),this.isUTC);return this.isUTC?":".concat(e):";TZID=".concat(this.tzid,":").concat(e)},r.prototype.getTime=function(){return this.date.getTime()},r.prototype.rezonedDate=function(){return this.isUTC?this.date:Gpe(this.date,this.tzid)},r})()});function PS(r){for(var e=[],t="",n=Object.keys(r),a=Object.keys(CS),i=0;i<n.length;i++)if(n[i]!=="tzid"&&Wt(a,n[i])){var s=n[i].toUpperCase(),o=r[n[i]],l="";if(!(!Gr(o)||Ra(o)&&!o.length)){switch(s){case"FREQ":l=ke.FREQUENCIES[r.freq];break;case"WKST":Hs(o)?l=new Un(o).toString():l=o.toString();break;case"BYWEEKDAY":s="BYDAY",l=Hpe(o).map(function(m){return m instanceof Un?m:Ra(m)?new Un(m[0],m[1]):new Un(m)}).toString();break;case"DTSTART":t=FJe(o,r.tzid);break;case"UNTIL":l=Iv(o,!r.tzid);break;default:if(Ra(o)){for(var c=[],d=0;d<o.length;d++)c[d]=String(o[d]);l=c.toString()}else l=String(o)}l&&e.push([s,l])}}var u=e.map(function(m){var f=m[0],h=m[1];return"".concat(f,"=").concat(h.toString())}).join(";"),p="";return u!==""&&(p="RRULE:".concat(u)),[t,p].filter(function(m){return!!m}).join(`
|
||
`)}function FJe(r,e){return r?"DTSTART"+new Ch(new Date(r),e).toString():""}var w2=y(()=>{Eo();Fi();Th();oi();d_()});function OJe(r,e){return Array.isArray(r)?!Array.isArray(e)||r.length!==e.length?!1:r.every(function(t,n){return t.getTime()===e[n].getTime()}):r instanceof Date?e instanceof Date&&r.getTime()===e.getTime():r===e}var cme,dme=y(()=>{o_();oi();Fi();cme=(function(){function r(){this.all=!1,this.before=[],this.after=[],this.between=[]}return r.prototype._cacheAdd=function(e,t,n){t&&(t=t instanceof Date?s_(t):g2(t)),e==="all"?this.all=t:(n._value=t,this[e].push(n))},r.prototype._cacheGet=function(e,t){var n=!1,a=t?Object.keys(t):[],i=function(d){for(var u=0;u<a.length;u++){var p=a[u];if(!OJe(t[p],d[p]))return!0}return!1},s=this[e];if(e==="all")n=this.all;else if(Ra(s))for(var o=0;o<s.length;o++){var l=s[o];if(!(a.length&&i(l))){n=l._value;break}}if(!n&&this.all){for(var c=new mu(e,t),o=0;o<this.all.length&&c.accept(this.all[o]);o++);n=c.getValue(),this._cacheAdd(e,n,t)}return Ra(n)?g2(n):n instanceof Date?s_(n):n},r})()});var ume,pme,LJe,zJe,Kp,li,mme,fme,jJe,$Je,Zp,ci,hme,gme,yme,vme,S2,kme=y(()=>{fu();Fi();ume=pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe([],Ut(1,31),!0),Ut(2,28),!0),Ut(3,31),!0),Ut(4,30),!0),Ut(5,31),!0),Ut(6,30),!0),Ut(7,31),!0),Ut(8,31),!0),Ut(9,30),!0),Ut(10,31),!0),Ut(11,30),!0),Ut(12,31),!0),Ut(1,7),!0),pme=pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe([],Ut(1,31),!0),Ut(2,29),!0),Ut(3,31),!0),Ut(4,30),!0),Ut(5,31),!0),Ut(6,30),!0),Ut(7,31),!0),Ut(8,31),!0),Ut(9,30),!0),Ut(10,31),!0),Ut(11,30),!0),Ut(12,31),!0),Ut(1,7),!0),LJe=Co(1,29),zJe=Co(1,30),Kp=Co(1,31),li=Co(1,32),mme=pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe([],li,!0),zJe,!0),li,!0),Kp,!0),li,!0),Kp,!0),li,!0),li,!0),Kp,!0),li,!0),Kp,!0),li,!0),li.slice(0,7),!0),fme=pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe([],li,!0),LJe,!0),li,!0),Kp,!0),li,!0),Kp,!0),li,!0),li,!0),Kp,!0),li,!0),Kp,!0),li,!0),li.slice(0,7),!0),jJe=Co(-28,0),$Je=Co(-29,0),Zp=Co(-30,0),ci=Co(-31,0),hme=pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe([],ci,!0),$Je,!0),ci,!0),Zp,!0),ci,!0),Zp,!0),ci,!0),ci,!0),Zp,!0),ci,!0),Zp,!0),ci,!0),ci.slice(0,7),!0),gme=pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe(pe([],ci,!0),jJe,!0),ci,!0),Zp,!0),ci,!0),Zp,!0),ci,!0),ci,!0),Zp,!0),ci,!0),Zp,!0),ci,!0),ci.slice(0,7),!0),yme=[0,31,60,91,121,152,182,213,244,274,305,335,366],vme=[0,31,59,90,120,151,181,212,243,273,304,334,365],S2=(function(){for(var r=[],e=0;e<55;e++)r=r.concat(Co(7));return r})()});function bme(r,e){var t=_l(r,1,1),n=_v(r)?366:365,a=_v(r+1)?366:365,i=TS(t),s=uu(t),o=Fa(Fa({yearlen:n,nextyearlen:a,yearordinal:i,yearweekday:s},BJe(r)),{wnomask:null});if(Vs(e.byweekno))return o;o.wnomask=Ut(0,n+7);var l,c,d=l=si(7-s+e.wkst,7);d>=4?(d=0,c=o.yearlen+si(s-e.wkst,7)):c=n-d;for(var u=Math.floor(c/7),p=si(c,7),m=Math.floor(u+p/4),f=0;f<e.byweekno.length;f++){var h=e.byweekno[f];if(h<0&&(h+=m+1),h>0&&h<=m){var g=void 0;h>1?(g=d+(h-1)*7,d!==l&&(g-=7-l)):g=d;for(var v=0;v<7&&(o.wnomask[g]=1,g++,o.wdaymask[g]!==e.wkst);v++);}}if(Wt(e.byweekno,1)){var g=d+m*7;if(d!==l&&(g-=7-l),g<n)for(var f=0;f<7&&(o.wnomask[g]=1,g+=1,o.wdaymask[g]!==e.wkst);f++);}if(d){var b=void 0;if(Wt(e.byweekno,-1))b=-1;else{var k=uu(_l(r-1,1,1)),w=si(7-k.valueOf()+e.wkst,7),S=_v(r-1)?366:365,C=void 0;w>=4?(w=0,C=S+si(k-e.wkst,7)):C=n-d,b=Math.floor(52+si(C,7)/4)}if(Wt(e.byweekno,b))for(var g=0;g<d;g++)o.wnomask[g]=1}return o}function BJe(r){var e=_v(r)?366:365,t=_l(r,1,1),n=uu(t);return e===365?{mmask:ume,mdaymask:fme,nmdaymask:gme,wdaymask:S2.slice(n),mrange:vme}:{mmask:pme,mdaymask:mme,nmdaymask:hme,wdaymask:S2.slice(n),mrange:yme}}var Tme=y(()=>{fu();oi();Fi();kme()});function wme(r,e,t,n,a,i){var s={lastyear:r,lastmonth:e,nwdaymask:[]},o=[];if(i.freq===ke.YEARLY)if(Vs(i.bymonth))o=[[0,t]];else for(var l=0;l<i.bymonth.length;l++)e=i.bymonth[l],o.push(n.slice(e-1,e+1));else i.freq===ke.MONTHLY&&(o=[n.slice(e-1,e+1)]);if(Vs(o))return s;s.nwdaymask=Ut(0,t);for(var l=0;l<o.length;l++)for(var c=o[l],d=c[0],u=c[1]-1,p=0;p<i.bynweekday.length;p++){var m=void 0,f=i.bynweekday[p],h=f[0],g=f[1];g<0?(m=u+(g+1)*7,m-=si(a[m]-h,7)):(m=d+(g-1)*7,m+=si(7-a[m]+h,7)),d<=m&&m<=u&&(s.nwdaymask[m]=1)}return s}var Sme=y(()=>{Eo();Fi()});function xme(r,e){e===void 0&&(e=0);var t=r%19,n=Math.floor(r/100),a=r%100,i=Math.floor(n/4),s=n%4,o=Math.floor((n+8)/25),l=Math.floor((n-o+1)/3),c=Math.floor(19*t+n-i-l+15)%30,d=Math.floor(a/4),u=a%4,p=Math.floor(32+2*s+2*d-c-u)%7,m=Math.floor((t+11*c+22*p)/451),f=Math.floor((c+p-7*m+114)/31),h=(c+p-7*m+114)%31+1,g=Date.UTC(r,f-1,h+e),v=Date.UTC(r,0,1);return[Math.ceil((g-v)/(1e3*60*60*24))]}var Cme=y(()=>{});var UJe,Eme,Dme=y(()=>{Fi();hu();Tme();Sme();Cme();c_();oi();UJe=(function(){function r(e){this.options=e}return r.prototype.rebuild=function(e,t){var n=this.options;if(e!==this.lastyear&&(this.yearinfo=bme(e,n)),Hn(n.bynweekday)&&(t!==this.lastmonth||e!==this.lastyear)){var a=this.yearinfo,i=a.yearlen,s=a.mrange,o=a.wdaymask;this.monthinfo=wme(e,t,i,s,o,n)}Gr(n.byeaster)&&(this.eastermask=xme(e,n.byeaster))},Object.defineProperty(r.prototype,"lastyear",{get:function(){return this.monthinfo?this.monthinfo.lastyear:null},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"lastmonth",{get:function(){return this.monthinfo?this.monthinfo.lastmonth:null},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"yearlen",{get:function(){return this.yearinfo.yearlen},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"yearordinal",{get:function(){return this.yearinfo.yearordinal},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"mrange",{get:function(){return this.yearinfo.mrange},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"wdaymask",{get:function(){return this.yearinfo.wdaymask},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"mmask",{get:function(){return this.yearinfo.mmask},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"wnomask",{get:function(){return this.yearinfo.wnomask},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"nwdaymask",{get:function(){return this.monthinfo?this.monthinfo.nwdaymask:[]},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"nextyearlen",{get:function(){return this.yearinfo.nextyearlen},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"mdaymask",{get:function(){return this.yearinfo.mdaymask},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"nmdaymask",{get:function(){return this.yearinfo.nmdaymask},enumerable:!1,configurable:!0}),r.prototype.ydayset=function(){return[Co(this.yearlen),0,this.yearlen]},r.prototype.mdayset=function(e,t){for(var n=this.mrange[t-1],a=this.mrange[t],i=Ut(null,this.yearlen),s=n;s<a;s++)i[s]=s;return[i,n,a]},r.prototype.wdayset=function(e,t,n){for(var a=Ut(null,this.yearlen+7),i=TS(_l(e,t,n))-this.yearordinal,s=i,o=0;o<7&&(a[i]=i,++i,this.wdaymask[i]!==this.options.wkst);o++);return[a,s,i]},r.prototype.ddayset=function(e,t,n){var a=Ut(null,this.yearlen),i=TS(_l(e,t,n))-this.yearordinal;return a[i]=i,[a,i,i+1]},r.prototype.htimeset=function(e,t,n,a){var i=this,s=[];return this.options.byminute.forEach(function(o){s=s.concat(i.mtimeset(e,o,n,a))}),pu(s),s},r.prototype.mtimeset=function(e,t,n,a){var i=this.options.bysecond.map(function(s){return new Fv(e,t,s,a)});return pu(i),i},r.prototype.stimeset=function(e,t,n,a){return[new Fv(e,t,n,a)]},r.prototype.getdayset=function(e){switch(e){case xt.YEARLY:return this.ydayset.bind(this);case xt.MONTHLY:return this.mdayset.bind(this);case xt.WEEKLY:return this.wdayset.bind(this);case xt.DAILY:return this.ddayset.bind(this);default:return this.ddayset.bind(this)}},r.prototype.gettimeset=function(e){switch(e){case xt.HOURLY:return this.htimeset.bind(this);case xt.MINUTELY:return this.mtimeset.bind(this);case xt.SECONDLY:return this.stimeset.bind(this)}},r})(),Eme=UJe});function Pme(r,e,t,n,a,i){for(var s=[],o=0;o<r.length;o++){var l=void 0,c=void 0,d=r[o];d<0?(l=Math.floor(d/e.length),c=si(d,e.length)):(l=Math.floor((d-1)/e.length),c=si(d-1,e.length));for(var u=[],p=t;p<n;p++){var m=i[p];Gr(m)&&u.push(m)}var f=void 0;l<0?f=u.slice(l)[0]:f=u[l];var h=e[c],g=a_(a.yearordinal+f),v=i_(g,h);Wt(s,v)||s.push(v)}return pu(s),s}var Mme=y(()=>{oi();Fi()});function u_(r,e){var t=e.dtstart,n=e.freq,a=e.interval,i=e.until,s=e.bysetpos,o=e.count;if(o===0||a===0)return gu(r);var l=nme.fromDate(t),c=new Eme(e);c.rebuild(l.year,l.month);for(var d=qJe(c,l,e);;){var u=c.getdayset(n)(l.year,l.month,l.day),p=u[0],m=u[1],f=u[2],h=VJe(p,m,f,c,e);if(Hn(s))for(var g=Pme(s,d,m,f,c,p),v=0;v<g.length;v++){var b=g[v];if(i&&b>i)return gu(r);if(b>=t){var k=Ame(b,e);if(!r.accept(k)||o&&(--o,!o))return gu(r)}}else for(var v=m;v<f;v++){var w=p[v];if(Gr(w))for(var S=a_(c.yearordinal+w),C=0;C<d.length;C++){var E=d[C],b=i_(S,E);if(i&&b>i)return gu(r);if(b>=t){var k=Ame(b,e);if(!r.accept(k)||o&&(--o,!o))return gu(r)}}}if(e.interval===0||(l.add(e,h),l.year>n_))return gu(r);xS(n)||(d=c.gettimeset(n)(l.hour,l.minute,l.second,0)),c.rebuild(l.year,l.month)}}function HJe(r,e,t){var n=t.bymonth,a=t.byweekno,i=t.byweekday,s=t.byeaster,o=t.bymonthday,l=t.bynmonthday,c=t.byyearday;return Hn(n)&&!Wt(n,r.mmask[e])||Hn(a)&&!r.wnomask[e]||Hn(i)&&!Wt(i,r.wdaymask[e])||Hn(r.nwdaymask)&&!r.nwdaymask[e]||s!==null&&!Wt(r.eastermask,e)||(Hn(o)||Hn(l))&&!Wt(o,r.mdaymask[e])&&!Wt(l,r.nmdaymask[e])||Hn(c)&&(e<r.yearlen&&!Wt(c,e+1)&&!Wt(c,-r.yearlen+e)||e>=r.yearlen&&!Wt(c,e+1-r.yearlen)&&!Wt(c,-r.nextyearlen+e-r.yearlen))}function Ame(r,e){return new Ch(r,e.tzid).rezonedDate()}function gu(r){return r.getValue()}function VJe(r,e,t,n,a){for(var i=!1,s=e;s<t;s++){var o=r[s];i=HJe(n,o,a),i&&(r[o]=null)}return i}function qJe(r,e,t){var n=t.freq,a=t.byhour,i=t.byminute,s=t.bysecond;return xS(n)?ime(t):n>=ke.HOURLY&&Hn(a)&&!Wt(a,e.hour)||n>=ke.MINUTELY&&Hn(i)&&!Wt(i,e.minute)||n>=ke.SECONDLY&&Hn(s)&&!Wt(s,e.second)?[]:r.gettimeset(n)(e.hour,e.minute,e.second,e.millisecond)}var x2=y(()=>{hu();oi();Dme();Eo();b2();Fi();d_();Mme();c_()});var Do,CS,sme,ke,Eo=y(()=>{oi();o_();Kpe();rme();hu();b2();T2();w2();dme();Th();x2();Do={MO:new Un(0),TU:new Un(1),WE:new Un(2),TH:new Un(3),FR:new Un(4),SA:new Un(5),SU:new Un(6)},CS={freq:xt.YEARLY,dtstart:null,interval:1,wkst:Do.MO,count:null,until:null,tzid:null,bysetpos:null,bymonth:null,bymonthday:null,bynmonthday:null,byyearday:null,byweekno:null,byweekday:null,bynweekday:null,byhour:null,byminute:null,bysecond:null,byeaster:null},sme=Object.keys(CS),ke=(function(){function r(e,t){e===void 0&&(e={}),t===void 0&&(t=!1),this._cache=t?null:new cme,this.origOptions=k2(e);var n=ame(e).parsedOptions;this.options=n}return r.parseText=function(e,t){return SS(e,t)},r.fromText=function(e,t){return Xpe(e,t)},r.fromString=function(e){return new r(r.parseString(e)||void 0)},r.prototype._iter=function(e){return u_(e,this.options)},r.prototype._cacheGet=function(e,t){return this._cache?this._cache._cacheGet(e,t):!1},r.prototype._cacheAdd=function(e,t,n){if(this._cache)return this._cache._cacheAdd(e,t,n)},r.prototype.all=function(e){if(e)return this._iter(new v2("all",{},e));var t=this._cacheGet("all");return t===!1&&(t=this._iter(new mu("all",{})),this._cacheAdd("all",t)),t},r.prototype.between=function(e,t,n,a){if(n===void 0&&(n=!1),!Sh(e)||!Sh(t))throw new Error("Invalid date passed in to RRule.between");var i={before:t,after:e,inc:n};if(a)return this._iter(new v2("between",i,a));var s=this._cacheGet("between",i);return s===!1&&(s=this._iter(new mu("between",i)),this._cacheAdd("between",s,i)),s},r.prototype.before=function(e,t){if(t===void 0&&(t=!1),!Sh(e))throw new Error("Invalid date passed in to RRule.before");var n={dt:e,inc:t},a=this._cacheGet("before",n);return a===!1&&(a=this._iter(new mu("before",n)),this._cacheAdd("before",a,n)),a},r.prototype.after=function(e,t){if(t===void 0&&(t=!1),!Sh(e))throw new Error("Invalid date passed in to RRule.after");var n={dt:e,inc:t},a=this._cacheGet("after",n);return a===!1&&(a=this._iter(new mu("after",n)),this._cacheAdd("after",a,n)),a},r.prototype.count=function(){return this.all().length},r.prototype.toString=function(){return PS(this.origOptions)},r.prototype.toText=function(e,t,n){return eme(this,e,t,n)},r.prototype.isFullyConvertibleToText=function(){return tme(this)},r.prototype.clone=function(){return new r(this.origOptions)},r.FREQUENCIES=["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],r.YEARLY=xt.YEARLY,r.MONTHLY=xt.MONTHLY,r.WEEKLY=xt.WEEKLY,r.DAILY=xt.DAILY,r.HOURLY=xt.HOURLY,r.MINUTELY=xt.MINUTELY,r.SECONDLY=xt.SECONDLY,r.MO=Do.MO,r.TU=Do.TU,r.WE=Do.WE,r.TH=Do.TH,r.FR=Do.FR,r.SA=Do.SA,r.SU=Do.SU,r.parseString=DS,r.optionsToString=PS,r})()});function _me(r,e,t,n,a,i){var s={},o=r.accept;function l(p,m){t.forEach(function(f){f.between(p,m,!0).forEach(function(h){s[Number(h)]=!0})})}a.forEach(function(p){var m=new Ch(p,i).rezonedDate();s[Number(m)]=!0}),r.accept=function(p){var m=Number(p);return isNaN(m)?o.call(this,p):!s[m]&&(l(new Date(m-1),new Date(m+1)),!s[m])?(s[m]=!0,o.call(this,p)):!0},r.method==="between"&&(l(r.args.after,r.args.before),r.accept=function(p){var m=Number(p);return s[m]?!0:(s[m]=!0,o.call(this,p))});for(var c=0;c<n.length;c++){var d=new Ch(n[c],i).rezonedDate();if(!r.accept(new Date(d.getTime())))break}e.forEach(function(p){u_(r,p.options)});var u=r._result;switch(pu(u),r.method){case"all":case"between":return u;case"before":return u.length&&u[u.length-1]||null;case"after":default:return u.length&&u[0]||null}}var Ime=y(()=>{d_();x2();oi()});function WJe(r,e){var t=[],n=[],a=[],i=[],s=ES(r),o=s.dtstart,l=s.tzid,c=QJe(r,e.unfold);return c.forEach(function(d){var u;if(d){var p=ZJe(d),m=p.name,f=p.parms,h=p.value;switch(m.toUpperCase()){case"RRULE":if(f.length)throw new Error("unsupported RRULE parm: ".concat(f.join(",")));t.push(DS(d));break;case"RDATE":var g=(u=/RDATE(?:;TZID=([^:=]+))?/i.exec(d))!==null&&u!==void 0?u:[],v=g[1];v&&!l&&(l=v),n=n.concat(Rme(h,f));break;case"EXRULE":if(f.length)throw new Error("unsupported EXRULE parm: ".concat(f.join(",")));a.push(DS(h));break;case"EXDATE":i=i.concat(Rme(h,f));break;case"DTSTART":break;default:throw new Error("unsupported property: "+m)}}}),{dtstart:o,tzid:l,rrulevals:t,rdatevals:n,exrulevals:a,exdatevals:i}}function YJe(r,e){var t=WJe(r,e),n=t.rrulevals,a=t.rdatevals,i=t.exrulevals,s=t.exdatevals,o=t.dtstart,l=t.tzid,c=e.cache===!1;if(e.compatible&&(e.forceset=!0,e.unfold=!0),e.forceset||n.length>1||a.length||i.length||s.length){var d=new p_(c);return d.dtstart(o),d.tzid(l||void 0),n.forEach(function(p){d.rrule(new ke(C2(p,o,l),c))}),a.forEach(function(p){d.rdate(p)}),i.forEach(function(p){d.exrule(new ke(C2(p,o,l),c))}),s.forEach(function(p){d.exdate(p)}),e.compatible&&e.dtstart&&d.rdate(o),d}var u=n[0]||{};return new ke(C2(u,u.dtstart||e.dtstart||o,u.tzid||e.tzid||l),c)}function MS(r,e){return e===void 0&&(e={}),YJe(r,GJe(e))}function C2(r,e,t){return Fa(Fa({},r),{dtstart:e,tzid:t})}function GJe(r){var e=[],t=Object.keys(r),n=Object.keys(Nme);if(t.forEach(function(a){Wt(n,a)||e.push(a)}),e.length)throw new Error("Invalid options: "+e.join(", "));return Fa(Fa({},Nme),r)}function KJe(r){if(r.indexOf(":")===-1)return{name:"RRULE",value:r};var e=Vpe(r,":",1),t=e[0],n=e[1];return{name:t,value:n}}function ZJe(r){var e=KJe(r),t=e.name,n=e.value,a=t.split(";");if(!a)throw new Error("empty property name");return{name:a[0].toUpperCase(),parms:a.slice(1),value:n}}function QJe(r,e){if(e===void 0&&(e=!1),r=r&&r.trim(),!r)throw new Error("Invalid empty string");if(!e)return r.split(/\s/);for(var t=r.split(`
|
||
`),n=0;n<t.length;){var a=t[n]=t[n].replace(/\s+$/g,"");a?n>0&&a[0]===" "?(t[n-1]+=a.slice(1),t.splice(n,1)):n+=1:t.splice(n,1)}return t}function JJe(r){r.forEach(function(e){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(e))throw new Error("unsupported RDATE/EXDATE parm: "+e)})}function Rme(r,e){return JJe(e),r.split(",").map(function(t){return wS(t)})}var Nme,E2=y(()=>{fu();Eo();D2();oi();Fi();T2();Nme={dtstart:null,cache:!1,unfold:!1,forceset:!1,compatible:!1,tzid:null}});function Fme(r){var e=this;return function(t){if(t!==void 0&&(e["_".concat(r)]=t),e["_".concat(r)]!==void 0)return e["_".concat(r)];for(var n=0;n<e._rrule.length;n++){var a=e._rrule[n].origOptions[r];if(a)return a}}}function Ome(r,e){if(!(r instanceof ke))throw new TypeError(String(r)+" is not RRule instance");Wt(e.map(String),String(r))||e.push(r)}function Lme(r,e){if(!(r instanceof Date))throw new TypeError(String(r)+" is not Date instance");Wt(e.map(Number),Number(r))||(e.push(r),pu(e))}function zme(r,e,t){var n=!t||t.toUpperCase()==="UTC",a=n?"".concat(r,":"):"".concat(r,";TZID=").concat(t,":"),i=e.map(function(s){return Iv(s.valueOf(),n)}).join(",");return"".concat(a).concat(i)}var p_,D2=y(()=>{fu();Eo();oi();Fi();Ime();E2();w2();p_=(function(r){Nv(e,r);function e(t){t===void 0&&(t=!1);var n=r.call(this,{},t)||this;return n.dtstart=Fme.apply(n,["dtstart"]),n.tzid=Fme.apply(n,["tzid"]),n._rrule=[],n._rdate=[],n._exrule=[],n._exdate=[],n}return e.prototype._iter=function(t){return _me(t,this._rrule,this._exrule,this._rdate,this._exdate,this.tzid())},e.prototype.rrule=function(t){Ome(t,this._rrule)},e.prototype.exrule=function(t){Ome(t,this._exrule)},e.prototype.rdate=function(t){Lme(t,this._rdate)},e.prototype.exdate=function(t){Lme(t,this._exdate)},e.prototype.rrules=function(){return this._rrule.map(function(t){return MS(t.toString())})},e.prototype.exrules=function(){return this._exrule.map(function(t){return MS(t.toString())})},e.prototype.rdates=function(){return this._rdate.map(function(t){return new Date(t.getTime())})},e.prototype.exdates=function(){return this._exdate.map(function(t){return new Date(t.getTime())})},e.prototype.valueOf=function(){var t=[];return!this._rrule.length&&this._dtstart&&(t=t.concat(PS({dtstart:this._dtstart}))),this._rrule.forEach(function(n){t=t.concat(n.toString().split(`
|
||
`))}),this._exrule.forEach(function(n){t=t.concat(n.toString().split(`
|
||
`).map(function(a){return a.replace(/^RRULE:/,"EXRULE:")}).filter(function(a){return!/^DTSTART/.test(a)}))}),this._rdate.length&&t.push(zme("RDATE",this._rdate,this.tzid())),this._exdate.length&&t.push(zme("EXDATE",this._exdate,this.tzid())),t},e.prototype.toString=function(){return this.valueOf().join(`
|
||
`)},e.prototype.clone=function(){var t=new e(!!this._cache);return this._rrule.forEach(function(n){return t.rrule(n.clone())}),this._exrule.forEach(function(n){return t.exrule(n.clone())}),this._rdate.forEach(function(n){return t.rdate(new Date(n.getTime()))}),this._exdate.forEach(function(n){return t.exdate(new Date(n.getTime()))}),t},e})(ke)});var Qp={};at(Qp,{ALL_WEEKDAYS:()=>Av,Frequency:()=>xt,RRule:()=>ke,RRuleSet:()=>p_,Weekday:()=>Un,datetime:()=>_l,rrulestr:()=>MS});var Ov=y(()=>{Eo();D2();E2();hu();Th();oi()});function vu(r){let e=Bme(r),t=e.match(m_);if(t){let[,a,i,s]=t,o=Number(a),l=Number(i),c=Number(s);if(!Hme(o,l,c))throw new Error(`Invalid date "${r}".`);return new Date(Date.UTC(o,l-1,c,0,0,0,0))}if(!Ume(e))throw new Error(`Invalid date "${r}".`);let n=new Date(e);if(!f_(n))throw new Error(`Invalid date "${r}".`);return n}function eXe(r){let e=Bme(r),t=e.match(m_);if(t){let[,a,i,s]=t,o=Number(a),l=Number(i),c=Number(s),d=new Date(o,l-1,c,0,0,0,0);if(!f_(d)||d.getFullYear()!==o||d.getMonth()!==l-1||d.getDate()!==c)throw new Error(`Invalid date "${r}".`);return d}if(!Ume(e))throw new Error(`Invalid date "${r}".`);let n=new Date(e);if(!f_(n))throw new Error(`Invalid date "${r}".`);return n}function yu(r){if(!f_(r))return"";let e=r.getUTCFullYear(),t=String(r.getUTCMonth()+1).padStart(2,"0"),n=String(r.getUTCDate()).padStart(2,"0");return`${e}-${t}-${n}`}function tXe(r){return yu(r)}function rXe(){let r=new Date,e=r.getFullYear(),t=String(r.getMonth()+1).padStart(2,"0"),n=String(r.getDate()).padStart(2,"0");return`${e}-${t}-${n}`}function M2(r){return vu(A2(r))}function nXe(r){return r?/T\d{2}:\d{2}/.test(r):!1}function A2(r){if(!r)return"";let e=r.trim();if(m_.test(e))return e;let t=e.indexOf("T");if(t>-1)return e.slice(0,t);let n=e.indexOf(" ");return n>-1&&m_.test(e.slice(0,n))?e.slice(0,n):yu(vu(e))}function Bme(r,e="Date string cannot be empty"){if(!r||r.trim().length===0)throw new Error(e);return r.trim()}function Ume(r){let e=r.match(XJe);if(!e)return!1;let[,t,n,a,i,s,o,,l,c,d]=e;return Hme(Number(t),Number(n),Number(a))&&aXe(Number(i),Number(s),Number(o))&&iXe(l,c,d)}function Hme(r,e,t){let n=new Date(Date.UTC(r,e-1,t,0,0,0,0));return n.getUTCFullYear()===r&&n.getUTCMonth()===e-1&&n.getUTCDate()===t}function aXe(r,e,t){return r>=0&&r<=23&&e>=0&&e<=59&&t>=0&&t<=59}function iXe(r,e,t){if(!r)return!0;let n=Number(e),a=Number(t);return!(n>14||a>59||n===14&&a!==0)}function f_(r){return r instanceof Date&&!Number.isNaN(r.getTime())}function I2(r,e){if(!r.recurrence||typeof r.recurrence!="string")return!0;try{let t=Kme(r);if(!t)return!1;let n=M2(tXe(e));return t.between(n,new Date(n.getTime()+1440*60*1e3-1),!0).length>0}catch(t){return!0}}function h_(r,e,t="done"){if(!r.recurrence)return r.status||"open";let n=yu(e);return(Array.isArray(r.complete_instances)?r.complete_instances:[]).includes(n)?t:r.status||"open"}function Jp(r,e,t){if(!r.recurrence||typeof r.recurrence!="string")return[];try{let n=Kme(r);if(!n)return[];let a=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),0,0,0,0)),i=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),23,59,59,999));return n.between(a,i,!0)}catch(n){let a=[],i=new Date(e);for(;i<=t;)I2(r,i)&&a.push(new Date(i)),i.setUTCDate(i.getUTCDate()+1);return a}}function Vme(r){if(!r.recurrence||typeof r.recurrence!="string")return null;let e=r.recurrence.match(/(?:^|;)COUNT=(\d+)(?:;|$)/);if(e){let t=Number.parseInt(e[1],10);return Number.isFinite(t)&&t>0?t:null}if(!/(?:^|;)UNTIL=/.test(r.recurrence))return null;try{let t=Zme(r),n=oXe(r.recurrence);if(!t||!n||n<t)return null;let a=Jp(r,t,n);return a.length>=sXe?null:a.length>0?a.length:null}catch(t){return null}}function N2(r,e={}){return r.recurrence?(r.recurrence_anchor||"scheduled")==="completion"?dXe(r,e):cXe(r,e):null}function qme(r,e=!0,t={}){let n=N2(r,t),a=null,i=null,s=null;if(n){try{let o=r.scheduled?vu(A2(r.scheduled)):null,l=r.due?vu(A2(r.due)):null;if(o&&l){let c=!e&&l.getTime()<n.getTime();if(e||c){let d=l.getTime()-o.getTime();s=new Date(n.getTime()+d)}}}catch(o){s=null}r.scheduled&&r.scheduled.includes("T")?a=`${yu(n)}T${r.scheduled.split("T")[1]}`:a=yu(n),s&&r.due&&r.due.includes("T")?i=`${yu(s)}T${r.due.split("T")[1]}`:s&&(i=yu(s))}return{scheduled:a,due:i}}function Wme(r){if(!r)return"";try{if(!r.includes("FREQ="))return"rrule";let e=r.replace(/DTSTART:[^;]+;?/,"");return _2.fromString(e).toText()}catch(e){return"rrule"}}function Yme(r){if(!r.recurrence||typeof r.recurrence!="string")return null;if(r.recurrence.includes("DTSTART:"))return r.recurrence;let e=r.scheduled||r.dateCreated;return e?`DTSTART:${Xme(e)};${r.recurrence}`:null}function g_(r,e){if(!r||typeof r!="string")return null;let t=Xme(e);return r.includes("DTSTART:")?r.replace(/DTSTART:[^;]+;?/,`DTSTART:${t};`):`DTSTART:${t};${r}`}function Gme(r,e,t){if(!r.recurrence||typeof r.recurrence!="string")return null;if(r.recurrence.includes("DTSTART:"))return r.recurrence;let n=r.scheduled||r.dateCreated;if(!n)return null;if(t){let d=vu(n);return`DTSTART:${efe(d)};${r.recurrence}`}let a=vu(n),i=a.getUTCFullYear(),s=String(a.getUTCMonth()+1).padStart(2,"0"),o=String(a.getUTCDate()).padStart(2,"0"),l=String(e.getHours()).padStart(2,"0"),c=String(e.getMinutes()).padStart(2,"0");return`DTSTART:${i}${s}${o}T${l}${c}00Z;${r.recurrence}`}function Kme(r){if(!r.recurrence||typeof r.recurrence!="string")return null;let e=Zme(r);if(!e)return null;let t=r.recurrence.replace(/DTSTART:[^;]+;?/,"").replace(/^;/,"").trim(),n=_2.parseString(t);return n.dtstart=e,new _2(n)}function Zme(r){return r.recurrence?R2(r.recurrence)||(r.scheduled?M2(r.scheduled):null)||(r.dateCreated?M2(r.dateCreated):null):null}function R2(r){let e=r.match(/DTSTART:(\d{8}(?:T\d{6}Z?)?)/);return e?Qme(e[1],!1):null}function oXe(r){let e=r.match(/(?:^|;)UNTIL=(\d{8}(?:T\d{6}Z?)?)(?:;|$)/);return e?Qme(e[1],!0):null}function Qme(r,e){let t=Number(r.slice(0,4)),n=Number(r.slice(4,6))-1,a=Number(r.slice(6,8));if(r.length===8)return e?new Date(Date.UTC(t,n,a,23,59,59,999)):new Date(Date.UTC(t,n,a,0,0,0,0));let i=Number(r.slice(9,11))||0,s=Number(r.slice(11,13))||0,o=Number(r.slice(13,15))||0;return new Date(Date.UTC(t,n,a,i,s,o,0))}function lXe(r){let e=r.match(/INTERVAL=(\d+)/);return e?Number.parseInt(e[1],10):1}function Jme(r){let e=lXe(r);return r.includes("FREQ=DAILY")?Math.max(30,e*2):r.includes("FREQ=WEEKLY")?Math.max(90,e*7*2):r.includes("FREQ=MONTHLY")?Math.max(400,e*31*2):r.includes("FREQ=YEARLY")?Math.max(800,e*366*2):365}function Xme(r){if(nXe(r)){let e=eXe(r),t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),s=String(e.getMinutes()).padStart(2,"0"),o=String(e.getSeconds()).padStart(2,"0");return`${t}${n}${a}T${i}${s}${o}Z`}return efe(vu(r))}function efe(r){let e=r.getUTCFullYear(),t=String(r.getUTCMonth()+1).padStart(2,"0"),n=String(r.getUTCDate()).padStart(2,"0");return`${e}${t}${n}`}function cXe(r,e){if(!r.recurrence)return null;let t=vu(e.today||$me()),n=Jme(r.recurrence),a=t,i=R2(r.recurrence);i&&i<t&&(a=i);let s=new Date(t.getTime()+n*24*60*60*1e3),o=Jp(r,a,s),l=new Set([...r.complete_instances||[],...r.skipped_instances||[]]);for(let c of o){let d=yu(c);if(!l.has(d)&&c>=t)return c}return null}function dXe(r,e){if(!r.recurrence||typeof r.recurrence!="string")return null;let t=vu(e.today||$me()),n=Jme(r.recurrence),a=R2(r.recurrence),i=a||t,s=new Date(i.getTime()+n*24*60*60*1e3),o=Jp(r,i,s),l=new Set(r.skipped_instances||[]),c=a?a.getTime():0;for(let d of o){let u=yu(d);if(d.getTime()>c&&d>=t&&!l.has(u))return d}return null}var m_,XJe,$me,P2,jme,_2,sXe,F2=y(()=>{Ov();m_=/^(\d{4})-(\d{2})-(\d{2})$/,XJe=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d{1,3})?(?:Z|([+-])(\d{2}):(\d{2}))?$/;$me=rXe;P2=Reflect.get(Qp,"default"),_2=(jme=ke)!=null?jme:P2==null?void 0:P2.RRule,sXe=1e4});var U2={};at(U2,{NATURAL_LANGUAGE_DATE_PATTERNS:()=>AS,addDaysToDateString:()=>Eh,addDaysToDateTime:()=>Lv,addMonthsToDateString:()=>fXe,addWeeksToDateString:()=>L2,addYearsToDateString:()=>hXe,combineDateAndTime:()=>La,convertUTCToLocalCalendarDate:()=>ku,createSafeDate:()=>mXe,createSafeUTCDate:()=>y_,createTimeFormatHelper:()=>SXe,createUTCDateForRRule:()=>Xp,createUTCDateFromLocalCalendarDate:()=>wn,formatDateAsUTCString:()=>PXe,formatDateForDisplay:()=>bu,formatDateForStorage:()=>ce,formatDateStringTime:()=>nfe,formatDateTime:()=>rfe,formatDateTimeForDisplay:()=>Vn,formatTime:()=>em,formatTimestampForDisplay:()=>v_,generateUTCCalendarDates:()=>$2,getCurrentDateString:()=>Il,getCurrentDateTimeString:()=>EXe,getCurrentTimestamp:()=>Ge,getDatePart:()=>de,getEndOfMonthString:()=>kXe,getEndOfWeekString:()=>yXe,getEndOfYearString:()=>TXe,getNaturalLanguageDateSuggestions:()=>AXe,getStartOfMonthString:()=>vXe,getStartOfWeekString:()=>gXe,getStartOfYearString:()=>bXe,getTimePart:()=>Oi,getTodayLocal:()=>Er,getTodayString:()=>nn,getUTCEndOfMonth:()=>w_,getUTCEndOfWeek:()=>B2,getUTCStartOfMonth:()=>T_,getUTCStartOfWeek:()=>b_,hasTimeComponent:()=>mr,isBeforeDateSafe:()=>Dh,isBeforeDateTimeAware:()=>Tu,isNaturalLanguageDate:()=>S_,isOverdueTimeAware:()=>Nl,isPastDate:()=>z2,isSameDateSafe:()=>Po,isToday:()=>_S,isTodayTimeAware:()=>k_,isTodayUTC:()=>j2,isValidDateInput:()=>MXe,normalizeCalendarBoundariesToUTC:()=>DXe,normalizeDateString:()=>pXe,parseDate:()=>uXe,parseDateAsLocal:()=>Ph,parseDateToLocal:()=>it,parseDateToUTC:()=>kt,parseTimestamp:()=>tfe,resolveNaturalLanguageDate:()=>Pc,startOfDayForDateString:()=>wXe,validateCompleteInstances:()=>CXe,validateDateInput:()=>O2,validateDateTimeInput:()=>xXe});function Oa(r){if(!r){let t=new Error("Date string cannot be empty");throw We.error("Date parsing error:",{category:"validation",operation:"date-parsing",details:{dateString:r},error:t.message}),t}let e=r.trim();try{let t=e.match(/^(\d{4}-\d{2}-\d{2})\s+(Mon|Tue|Wed|Thu|Fri|Sat|Sun|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)$/i);if(t){let n=t[1];return Oa(n)}if(e.startsWith("T")&&/^T\d{2}:\d{2}(:\d{2})?/.test(e)){let n=new Error(`Invalid date format - time without date: ${r}`);throw We.warn("Date parsing error - incomplete time format:",{category:"validation",operation:"date-parsing-incomplete-time-format",details:{original:r,trimmed:e},error:n.message}),n}if(/^\d{4}-W\d{2}$/.test(e)){let[n,a]=e.split("-W"),i=parseInt(n,10),s=parseInt(a,10);if(isNaN(i)||isNaN(s)){let u=new Error(`Invalid numeric values in ISO week format: ${r}`);throw We.warn("Date parsing error - invalid ISO week numbers:",{category:"validation",operation:"date-parsing-invalid-iso-week-numbers",details:{original:r,year:n,week:a,yearNum:i,weekNum:s}}),u}if(s<1||s>53){let u=new Error(`Invalid week number in ISO week format: ${r} (week must be 1-53)`);throw We.warn("Date parsing error - week number out of range:",{category:"validation",operation:"date-parsing-week-number-out-of-range",details:{original:r,weekNum:s},error:u.message}),u}let o=new Date(i,0,4),l=o.getDay(),c=new Date(o);c.setDate(o.getDate()-(l===0?6:l-1));let d=new Date(c);if(d.setDate(c.getDate()+(s-1)*7),!Ca(d)){let u=new Error(`Failed to calculate date from ISO week format: ${r}`);throw We.error("Date parsing error - ISO week calculation failed:",{category:"validation",operation:"date-parsing-iso-week-calculation",details:{original:r,yearNum:i,weekNum:s,jan4:o.toISOString(),targetWeekMonday:d.toString()}}),u}return d}if(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}(:\d{2})?/.test(e)){let n=e.replace(" ","T"),a=Us(n);if(!Ca(a)){let i=new Error(`Invalid space-separated datetime: ${r}`);throw We.warn("Date parsing error - space-separated datetime invalid:",{category:"validation",operation:"date-parsing-space-separated-datetime-invalid",details:{original:r,converted:n},error:i.message}),i}return a}if(e.includes("T")||e.includes("Z")||e.match(/[+-]\d{2}:\d{2}$/)){let n=Us(e);if(!Ca(n)){let a=new Error(`Invalid timezone-aware date: ${r}`);throw We.warn("Date parsing error - timezone-aware format invalid:",{category:"validation",operation:"date-parsing-timezone-aware-format-invalid",details:{original:r,trimmed:e},error:a.message}),a}return n}else{let n=e.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!n){let l=new Error(`Invalid date-only string: ${r} (expected format: yyyy-MM-dd)`);throw We.warn("Date parsing error - date-only format invalid:",{category:"validation",operation:"date-parsing-date-only-format-invalid",details:{original:r,trimmed:e,expectedFormat:"yyyy-MM-dd"},error:l.message}),l}let[,a,i,s]=n,o=new Date(parseInt(a,10),parseInt(i,10)-1,parseInt(s,10));if(!Ca(o)||o.getFullYear()!==parseInt(a,10)||o.getMonth()!==parseInt(i,10)-1||o.getDate()!==parseInt(s,10)){let l=new Error(`Invalid date values: ${r}`);throw We.warn("Date parsing error - invalid date values:",{category:"validation",operation:"date-parsing-invalid-date-values",details:{original:r,year:a,month:i,day:s},error:l.message}),l}return o}}catch(t){if(t instanceof Error&&t.message.includes("Invalid date"))throw t;let n=new Error(`Unexpected error parsing date "${r}": ${t instanceof Error?t.message:String(t)}`);throw We.error("Unexpected date parsing error:",{category:"validation",operation:"unexpected-date-parsing",details:{original:r,trimmed:e,stack:t instanceof Error?t.stack:void 0},error:t instanceof Error?t.message:String(t)}),n}}function kt(r){if(!r){let t=new Error("Date string cannot be empty");throw We.error("Date parsing error:",{category:"validation",operation:"date-parsing",details:{dateString:r},error:t.message}),t}let e=r.trim();try{let t=e.match(/^(\d{4}-\d{2}-\d{2})\s+(Mon|Tue|Wed|Thu|Fri|Sat|Sun|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)$/i);if(t){let a=t[1];return kt(a)}let n=e.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(n){let[,a,i,s]=n,o=parseInt(a,10),l=parseInt(i,10),c=parseInt(s,10);if(l<1||l>12)throw new Error(`Invalid month in date: ${r}`);if(c<1||c>31)throw new Error(`Invalid day in date: ${r}`);let d=new Date(Date.UTC(o,l-1,c));if(d.getUTCFullYear()!==o||d.getUTCMonth()!==l-1||d.getUTCDate()!==c)throw new Error(`Invalid date values: ${r}`);return d}return Oa(e)}catch(t){let n=new Error(`Failed to parse date to UTC: ${e}`);throw We.error("Date parsing error:",{category:"validation",operation:"date-parsing",details:{dateString:r,trimmed:e,stack:t instanceof Error?t.stack:void 0},error:t instanceof Error?t.message:String(t)}),n}}function it(r){return Oa(r)}function uXe(r){return Oa(r)}function Po(r,e){try{let t=de(r),n=de(e),a=kt(t),i=kt(n);return a.getTime()===i.getTime()}catch(t){return We.error("Error comparing dates:",{category:"validation",operation:"comparing-dates",details:{date1:r,date2:e},error:t}),!1}}function Dh(r,e){try{let t=de(r),n=de(e),a=kt(t),i=kt(n);return a.getTime()<i.getTime()}catch(t){return We.error("Error comparing dates for before:",{category:"validation",operation:"comparing-dates",details:{date1:r,date2:e},error:t}),!1}}function nn(){return M(new Date,"yyyy-MM-dd")}function Er(){let r=new Date;return new Date(r.getFullYear(),r.getMonth(),r.getDate())}function Ph(r){if(!r)throw new Error("Date string cannot be empty");let t=r.trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(t){let[,n,a,i]=t,s=new Date(parseInt(n,10),parseInt(a,10)-1,parseInt(i,10));if(!Ca(s)||s.getFullYear()!==parseInt(n,10)||s.getMonth()!==parseInt(a,10)-1||s.getDate()!==parseInt(i,10))throw new Error(`Invalid date values: ${r}`);return s}return Oa(r)}function pXe(r){if(!r)return r;try{if(r.includes("T")||r.includes("Z")||r.match(/[+-]\d{2}:\d{2}$/)){let t=r.split("T")[0];if(/^\d{4}-\d{2}-\d{2}$/.test(t))return t}let e=kt(r);return Ca(e)?ce(e):r}catch(e){return We.error("Error normalizing date string:",{category:"validation",operation:"normalizing-date-string",details:{dateString:r},error:e}),r}}function mXe(r,e,t){return new Date(r,e,t)}function y_(r,e,t){return new Date(Date.UTC(r,e,t))}function ku(r){let e=r.getUTCFullYear(),t=r.getUTCMonth(),n=r.getUTCDate();return new Date(e,t,n)}function O2(r){if(!r||r.trim()==="")return!0;try{return Oa(r),!0}catch(e){return!1}}function Eh(r,e){try{let t=Oa(r),n=yh(t,e);return M(n,"yyyy-MM-dd")}catch(t){throw We.error("Error adding days to date string:",{category:"validation",operation:"adding-days-date-string",details:{dateString:r,days:e},error:t}),t}}function L2(r,e){try{let t=Oa(r),n=toe(t,e);return M(n,"yyyy-MM-dd")}catch(t){throw We.error("Error adding weeks to date string:",{category:"validation",operation:"adding-weeks-date-string",details:{dateString:r,weeks:e},error:t}),t}}function fXe(r,e){try{let t=Oa(r),n=OA(t,e);return M(n,"yyyy-MM-dd")}catch(t){throw We.error("Error adding months to date string:",{category:"validation",operation:"adding-months-date-string",details:{dateString:r,months:e},error:t}),t}}function hXe(r,e){try{let t=Oa(r),n=noe(t,e);return M(n,"yyyy-MM-dd")}catch(t){throw We.error("Error adding years to date string:",{category:"validation",operation:"adding-years-date-string",details:{dateString:r,years:e},error:t}),t}}function gXe(r=1){try{let e=Ni(new Date,{weekStartsOn:r});return M(e,"yyyy-MM-dd")}catch(e){throw We.error("Error getting start of week:",{category:"validation",operation:"getting-start-of-week",error:e}),e}}function yXe(r=1){try{let e=vv(new Date,{weekStartsOn:r});return M(e,"yyyy-MM-dd")}catch(e){throw We.error("Error getting end of week:",{category:"validation",operation:"getting-end-of-week",error:e}),e}}function vXe(){try{let r=UA(new Date);return M(r,"yyyy-MM-dd")}catch(r){throw We.error("Error getting start of month:",{category:"validation",operation:"getting-start-of-month",error:r}),r}}function kXe(){try{let r=BA(new Date);return M(r,"yyyy-MM-dd")}catch(r){throw We.error("Error getting end of month:",{category:"validation",operation:"getting-end-of-month",error:r}),r}}function bXe(){try{let r=HA(new Date);return M(r,"yyyy-MM-dd")}catch(r){throw We.error("Error getting start of year:",{category:"validation",operation:"getting-start-of-year",error:r}),r}}function TXe(){try{let r=Koe(new Date);return M(r,"yyyy-MM-dd")}catch(r){throw We.error("Error getting end of year:",{category:"validation",operation:"getting-end-of-year",error:r}),r}}function wXe(r){try{return kt(r)}catch(e){throw We.error("Error getting start of day for date string:",{category:"validation",operation:"getting-start-of-day-date-string",details:{dateString:r},error:e}),e}}function _S(r){if(!r)return!1;try{let e=Ph(r),t=Er();return bB(e,t)}catch(e){return We.error("Error checking if date is today:",{category:"validation",operation:"checking-if-date-today",details:{dateString:r},error:e}),!1}}function z2(r){return Dh(r,nn())}function bu(r,e="MMM d, yyyy"){try{let t=Oa(r);return M(t,e)}catch(t){return We.error("Error formatting date for display:",{category:"validation",operation:"formatting-date-display",details:{dateString:r},error:t}),r}}function Ge(){let r=new Date,e=-r.getTimezoneOffset(),t=e>=0?"+":"-",n=m=>String(Math.abs(m)).padStart(2,"0"),a=n(Math.floor(Math.abs(e)/60)),i=n(Math.abs(e)%60),s=r.getFullYear(),o=n(r.getMonth()+1),l=n(r.getDate()),c=n(r.getHours()),d=n(r.getMinutes()),u=n(r.getSeconds()),p=String(r.getMilliseconds()).padStart(3,"0");return`${s}-${o}-${l}T${c}:${d}:${u}.${p}${t}${a}:${i}`}function Il(){let r=new Date,e=r.getFullYear(),t=String(r.getMonth()+1).padStart(2,"0"),n=String(r.getDate()).padStart(2,"0");return`${e}-${t}-${n}`}function tfe(r){try{if(!r)throw new Error("Timestamp string cannot be empty");let e=Us(r);if(!Ca(e))throw new Error(`Invalid timestamp: ${r}`);return e}catch(e){throw We.error("Error parsing timestamp:",{category:"validation",operation:"parsing-timestamp",details:{timestampString:r},error:e}),e}}function v_(r,e,t="24"){if(!r)return r;try{let n=tfe(r);return Ca(n)?M(n,e||(t==="12"?"MMM d, yyyy h:mm a":"MMM d, yyyy HH:mm")):r}catch(n){return We.error("Error formatting timestamp for display:",{category:"validation",operation:"formatting-timestamp-display",details:{timestampString:r},error:n}),r}}function mr(r){return r?/T\d{2}:\d{2}/.test(r):!1}function de(r){if(!r)return"";try{if(/^\d{4}-\d{2}-\d{2}$/.test(r))return r;let e=r.indexOf("T");if(e>-1)return r.substring(0,e);let t=kt(r);return ce(t)}catch(e){return We.error("Error extracting date part:",{category:"validation",operation:"extracting-date-part",details:{dateString:r},error:e}),r}}function Oi(r){if(!r||!mr(r))return null;try{let e=Oa(r);return M(e,"HH:mm")}catch(e){return We.error("Error extracting time part:",{category:"validation",operation:"extracting-time-part",details:{dateString:r},error:e}),null}}function em(r,e="24"){return Ca(r)?M(r,e==="12"?"h:mm a":"HH:mm"):(We.warn("Invalid date provided to formatTime:",{category:"validation",operation:"invalid-date-provided-formattime",details:{value:r}}),"")}function rfe(r,e="24"){return Ca(r)?M(r,e==="12"?"MMM d, yyyy h:mm a":"MMM d, yyyy HH:mm"):(We.warn("Invalid date provided to formatDateTime:",{category:"validation",operation:"invalid-date-provided-formatdatetime",details:{value:r}}),"")}function nfe(r,e="24"){if(!r||!mr(r))return r;try{let t=it(r);return em(t,e)}catch(t){return We.error("Error formatting date string time:",{category:"validation",operation:"formatting-date-string-time",details:{dateString:r},error:t}),r}}function SXe(r){return{formatDateTimeForDisplay:(e,t={})=>Vn(e,{...t,userTimeFormat:r}),formatTime:e=>em(e,r),formatDateTime:e=>rfe(e,r),formatDateStringTime:e=>nfe(e,r)}}function La(r,e){if(!r)return"";if(!e)return r;try{let t=r.match(/^(\d{4}-\d{2}-\d{2})$/);if(t)return/^\d{2}:\d{2}$/.test(e)?`${t[1]}T${e}`:(We.warn("Invalid time format, expected HH:mm:",{category:"validation",operation:"invalid-time-format-expected-hh-mm",details:{value:e}}),r);let n=de(r);return!n||!/^\d{4}-\d{2}-\d{2}$/.test(n)?(We.warn("Invalid date part from dateString:",{category:"validation",operation:"invalid-date-part-datestring",details:{dateString:r,datePart:n}}),r):/^\d{2}:\d{2}$/.test(e)?`${n}T${e}`:(We.warn("Invalid time format, expected HH:mm:",{category:"validation",operation:"invalid-time-format-expected-hh-mm",details:{value:e}}),r)}catch(t){return We.error("Error combining date and time:",{category:"validation",operation:"combining-date-and-time",details:{dateString:r,timeString:e},error:t}),r}}function Vn(r,e={}){if(!r)return"";let{dateFormat:t="MMM d, yyyy",timeFormat:n,showTime:a=!0,userTimeFormat:i="24"}=e,s=n||(i==="12"?"h:mm a":"HH:mm");try{let o=Oa(r);return mr(r)&&a?!t||t.trim()===""?M(o,s):M(o,`${t} ${s}`):!t||t.trim()===""?"":M(o,t)}catch(o){return We.error("Error formatting datetime for display:",{category:"validation",operation:"formatting-datetime-display",details:{dateString:r},error:o}),r}}function Tu(r,e){try{let t=kt(r),n=kt(e),a=t,i=n;if(mr(r)){let s=Oi(r);if(s){let[o,l]=s.split(":").map(Number);a=new Date(t),a.setUTCHours(o,l,0,0)}}if(mr(e)){let s=Oi(e);if(s){let[o,l]=s.split(":").map(Number);i=new Date(n),i.setUTCHours(o,l,0,0)}}return mr(r)&&!mr(e)?(i=new Date(n),i.setUTCHours(23,59,59,999)):!mr(r)&&mr(e)&&(a=new Date(t),a.setUTCHours(23,59,59,999)),a.getTime()<i.getTime()}catch(t){return We.error("Error comparing dates time-aware:",{category:"validation",operation:"comparing-dates-time-aware",details:{date1:r,date2:e},error:t}),!1}}function Nl(r,e,t){if(!r||t&&e)return!1;try{let n=new Date,a=kt(r);if(mr(r))return _B(a,n);{let i=kt(nn());return _B(a,i)}}catch(n){return We.error("Error checking overdue status:",{category:"validation",operation:"checking-overdue-status",details:{dateString:r},error:n}),!1}}function k_(r){if(!r)return!1;try{let e=mr(r)?Oa(r):Ph(r);return bB(e,new Date)}catch(e){return We.error("Error checking if today:",{category:"validation",operation:"checking-if-today",details:{dateString:r},error:e}),!1}}function xXe(r,e){if(!r||r.trim()==="")return!0;try{if(!O2(r))return!1;if(e&&e.trim()!==""){if(!/^\d{2}:\d{2}$/.test(e))return!1;let t=La(r,e);return O2(t)}return!0}catch(t){return!1}}function CXe(r){return Array.isArray(r)?r.filter(e=>{if(typeof e!="string"||!e.trim())return!1;let t=e.trim();if(t.startsWith("T")&&/^T\d{2}:\d{2}(:\d{2})?/.test(t)||!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;try{return Oa(t),!0}catch(n){return We.warn("Invalid complete_instances entry (date parsing failed):",{category:"validation",operation:"invalid-complete-instances-entry-date-parsing",details:{value:e},error:n}),!1}}).map(e=>e.trim()):[]}function EXe(){return M(new Date,"yyyy-MM-dd'T'HH:mm")}function Lv(r,e){try{let t=Oa(r),n=yh(t,e);return mr(r)?M(n,"yyyy-MM-dd'T'HH:mm"):M(n,"yyyy-MM-dd")}catch(t){throw We.error("Error adding days to datetime:",{category:"validation",operation:"adding-days-datetime",details:{dateString:r,days:e},error:t}),t}}function Xp(r){try{let e=r.match(/^(\d{4})-(\d{2})-(\d{2})/);if(!e)throw new Error(`Invalid date format for RRULE: ${r}`);let[,t,n,a]=e,i=parseInt(t,10),s=parseInt(n,10),o=parseInt(a,10);if(s<1||s>12)throw new Error(`Invalid month in date: ${r}`);if(o<1||o>31)throw new Error(`Invalid day in date: ${r}`);let l=new Date(Date.UTC(i,s-1,o));if(l.getUTCFullYear()!==i||l.getUTCMonth()!==s-1||l.getUTCDate()!==o)throw new Error(`Invalid date values: ${r}`);return l}catch(e){throw We.error("Error creating UTC date for RRULE:",{category:"validation",operation:"creating-utc-date-rrule",details:{dateString:r},error:e}),e}}function wn(r){let e=r.getFullYear(),t=r.getMonth(),n=r.getDate();return new Date(Date.UTC(e,t,n,0,0,0,0))}function j2(r){try{let e=Er(),t=wn(e);return r.getUTCFullYear()===t.getUTCFullYear()&&r.getUTCMonth()===t.getUTCMonth()&&r.getUTCDate()===t.getUTCDate()}catch(e){return We.error("Error in isTodayUTC:",{category:"validation",operation:"istodayutc",error:e}),!1}}function DXe(r,e){try{let t=M(r,"yyyy-MM-dd"),n=M(e,"yyyy-MM-dd"),a=Xp(t),i=Xp(n);return{utcStart:a,utcEnd:i}}catch(t){throw We.error("Error normalizing calendar boundaries to UTC:",{category:"provider",operation:"normalizing-calendar-boundaries-utc",details:{startDate:r,endDate:e},error:t}),t}}function PXe(r){try{let e=r.getUTCFullYear(),t=String(r.getUTCMonth()+1).padStart(2,"0"),n=String(r.getUTCDate()).padStart(2,"0");return`${e}-${t}-${n}`}catch(e){return We.error("Error formatting date as UTC string:",{category:"validation",operation:"formatting-date-as-utc-string",details:{date:r},error:e}),r.toISOString().split("T")[0]}}function ce(r){try{if(!r||!(r instanceof Date)||isNaN(r.getTime()))return We.warn("formatDateForStorage received invalid date:",{category:"validation",operation:"formatdateforstorage-received-invalid-date",details:{value:r}}),"";let e=r.getUTCFullYear(),t=String(r.getUTCMonth()+1).padStart(2,"0"),n=String(r.getUTCDate()).padStart(2,"0");return`${e}-${t}-${n}`}catch(e){return We.error("Error formatting date for storage:",{category:"validation",operation:"formatting-date-storage",details:{date:r},error:e}),""}}function $2(r,e){let t=[],n=ce(r),a=ce(e),i=Xp(n),s=Xp(a);for(;i<=s;)t.push(new Date(i)),i.setUTCDate(i.getUTCDate()+1);return t}function b_(r,e=1){let t=Xp(ce(r)),a=(t.getUTCDay()-e+7)%7,i=new Date(t);return i.setUTCDate(i.getUTCDate()-a),i}function B2(r,e=1){let t=b_(r,e),n=new Date(t);return n.setUTCDate(n.getUTCDate()+6),n}function T_(r){let e=Xp(ce(r));return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),1))}function w_(r){let e=Xp(ce(r));return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+1,0))}function S_(r){if(!r||typeof r!="string")return!1;let e=r.toLowerCase().trim().replace(/\s+/g," ");return e in AS?!0:[/^in\s+(\d+)\s+(days?)$/,/^(\d+)\s+(days?)\s+ago$/,/^in\s+(\d+)\s+(weeks?)$/,/^(\d+)\s+(weeks?)\s+ago$/].some(n=>n.test(e))}function MXe(r){if(typeof r!="string")return!1;let e=r.trim();if(e===""||S_(e))return!0;try{let t=Oa(e);return Ca(t)}catch(t){return!1}}function Pc(r){if(!r||typeof r!="string")return r;let e=r.toLowerCase().trim().replace(/\s+/g," ");if(e in AS)try{return AS[e]()}catch(t){return We.error("Error resolving natural language date:",{category:"validation",operation:"resolving-natural-language-date",details:{value:r},error:t}),r}try{let t=e.match(/^in\s+(\d+)\s+(days?)$/);if(t){let n=parseInt(t[1],10);return Eh(nn(),n)}if(t=e.match(/^(\d+)\s+(days?)\s+ago$/),t){let n=parseInt(t[1],10);return Eh(nn(),-n)}if(t=e.match(/^in\s+(\d+)\s+(weeks?)$/),t){let n=parseInt(t[1],10);return L2(nn(),n)}if(t=e.match(/^(\d+)\s+(weeks?)\s+ago$/),t){let n=parseInt(t[1],10);return L2(nn(),-n)}}catch(t){We.error("Error parsing relative natural language date:",{category:"validation",operation:"parsing-relative-natural-language-date",details:{value:r},error:t})}return r}function AXe(){let r=Object.keys(AS),e=["in 3 days","2 days ago","in 1 week","2 weeks ago"];return[...r,...e].sort()}var We,AS,Me=y(()=>{Wr();K();We=N({tag:"Utils/DateUtils"});AS={today:()=>nn(),tomorrow:()=>Eh(nn(),1),yesterday:()=>Eh(nn(),-1),"next week":()=>Eh(nn(),7),"last week":()=>Eh(nn(),-7)}});function Mh(r){return Yme(sfe(r))}function ife(r,e,t){return Gme(sfe(r),e,t)}function H2(r,e){var t;return N2(r,{today:(t=e==null?void 0:e.minOccurrenceDate)!=null?t:nn()})}function wu(r,e=!0,t){var n;return qme(r,e,{today:(n=t==null?void 0:t.minOccurrenceDate)!=null?n:nn()})}function sfe(r){let e=afe(r.scheduled),t=afe(r.dateCreated);return e===r.scheduled&&t===r.dateCreated?r:{...r,scheduled:e,dateCreated:t}}function afe(r){if(!r)return r;let e=r.trim().match(/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2})(Z|[+-]\d{2}:\d{2})?$/);if(!e)return r;let[,t,n,a=""]=e;return`${t}T${n}:00${a}`}var Ah=y(()=>{F2();F2();Me()});function _r(r,e=""){var a;let t=(a=r==null?void 0:r.trim())!=null?a:"";if(!t)return e;let n=t.toLowerCase();if(V2.has(n))return`var(--color-${n})`;if(n==="accent")return"var(--color-accent)";if(n.startsWith("color-")){let i=n.slice(6);if(V2.has(i)||i==="accent")return`var(--${n})`}return n.startsWith("--")?`var(${t})`:t}function Su(r){var i;let e=(i=r==null?void 0:r.trim())!=null?i:"",t=e.match(_Xe);if(!t)return e;let n=t[1].toLowerCase();if(n==="--color-accent")return"accent";let a=n.replace(/^--color-/,"");return V2.has(a)?a:e}function xu(r){return _r(r).startsWith("var(")}function C_(r){let e=_r(r);return e?!!(IXe.test(e)||xu(e)||lfe.test(e)):!1}function zv(r,e){let t=_r(r);if(!t)return`rgba(128, 128, 128, ${e})`;if(xu(t)||lfe.test(t))return`color-mix(in srgb, ${t} ${Math.round(e*100)}%, transparent)`;let n=t.replace("#","");if(/^[0-9a-f]{3}$/i.test(n)){let o=parseInt(n[0]+n[0],16),l=parseInt(n[1]+n[1],16),c=parseInt(n[2]+n[2],16);return`rgba(${o}, ${l}, ${c}, ${e})`}if(!/^[0-9a-f]{6}$/i.test(n))return`rgba(128, 128, 128, ${e})`;let a=parseInt(n.substring(0,2),16),i=parseInt(n.substring(2,4),16),s=parseInt(n.substring(4,6),16);return`rgba(${a}, ${i}, ${s}, ${e})`}var ofe,V2,_Xe,IXe,lfe,x_,cfe,Mc=y(()=>{ofe=["red","orange","yellow","green","cyan","blue","purple","pink"],V2=new Set(ofe),_Xe=/^var\(\s*(--[a-z0-9_-]+)\s*\)$/i,IXe=/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i,lfe=/^(?:rgb|rgba|hsl|hsla|oklch|lab|color|color-mix)\(/i,x_="#6366f1, red, blue, cyan",cfe=[...ofe,"accent","var(--color-accent)"]});async function jv(r,e){var a;let n=((a=E_.get(r))!=null?a:Promise.resolve()).catch(()=>{}).then(e);E_.set(r,n);try{return await n}finally{E_.get(r)===n&&E_.delete(r)}}async function Fr(r,e,t){await jv(e,()=>IS(r,e,t))}async function IS(r,e,t){await r.fileManager.processFrontMatter(e,t)}async function NS(r,e,t){return jv(e,()=>RS(r,e,t))}async function RS(r,e,t){return r.vault.process(e,t)}async function _h(r,e,t){return r.vault.create(e,t)}async function FS(r,e){await r.vault.createFolder(e)}async function Mo(r,e,t){await jv(e,()=>r.vault.modify(e,t))}async function q2(r,e,t){await r.vault.rename(e,t)}var E_,W2=y(()=>{E_=new WeakMap});function pfe(r){return window.moment(r)}function D_(r){if(!r.startsWith("---"))return{};let e=r.indexOf("---",3);if(e===-1)return{};let t=r.substring(3,e);try{return(0,Nh.parseYaml)(t)||{}}catch(n){return Ih.error("Error parsing frontmatter:",{category:"validation",operation:"parsing-frontmatter",error:n}),{}}}async function tm(r,e){try{let n=(0,Nh.normalizePath)(e).split("/").filter(i=>i.length>0),a="";for(let i of n)if(a=a?`${a}/${i}`:i,!await r.adapter.exists(a))try{await r.createFolder(a)}catch(s){if(!await r.adapter.exists(a))throw new Error(`Failed to create folder "${a}"`)}}catch(t){let n=t instanceof Error?t.message:String(t),a=t instanceof Error?t.stack:void 0;Ih.error("Error creating folder structure:",{category:"internal",operation:"creating-folder-structure",details:{stack:a,folderPath:e,normalizedPath:(0,Nh.normalizePath)(e)},error:n});let i=new Error(`Failed to create folder "${e}": ${n}`);throw a&&(i.stack=a),i}}function NXe(r,e){try{let t=new Date(r),n=new Date(e);if(isNaN(t.getTime())||isNaN(n.getTime()))return Ih.error("Invalid timestamps for duration calculation:",{category:"validation",operation:"invalid-timestamps-duration-calculation",details:{startTime:r,endTime:e}}),0;if(n<=t)return Ih.error("End time is not after start time:",{category:"internal",operation:"end-time-not-start-time",details:{startTime:r,endTime:e}}),0;let a=n.getTime()-t.getTime(),i=Math.round(a/(1e3*60));return Math.max(0,i)}catch(t){return Ih.error("Error calculating duration:",{category:"internal",operation:"calculating-duration",details:{startTime:r,endTime:e},error:t}),0}}function Li(r){return!r||!Array.isArray(r)?0:r.reduce((e,t)=>{if(!t.startTime||!t.endTime)return e;let n=NXe(t.startTime,t.endTime);return e+n},0)}function P_(r){return!r||!Array.isArray(r)?null:r.find(e=>e.startTime&&!e.endTime)||null}function M_(r){if(!r||r===0||isNaN(r))return"0m";let e=Math.floor(r/60),t=r%60;return e===0?`${t}m`:t===0?`${e}h`:`${e}h ${t}m`}function OS(r){if(r==="none")return"";let e=new Date,t;switch(r){case"today":t=e;break;case"tomorrow":t=new Date(e),t.setDate(e.getDate()+1);break;case"next-week":t=new Date(e),t.setDate(e.getDate()+7);break;default:return""}return M(t,"yyyy-MM-dd")}function RXe(r){return typeof r=="string"&&/^([01]\d|2[0-3]):[0-5]\d$/.test(r)}function Ac(r,e){let t=OS(r);return!t||!RXe(e)?t:La(t,e)}function Y2(r,e){return r.getUTCFullYear()===e.getUTCFullYear()&&r.getUTCMonth()===e.getUTCMonth()&&r.getUTCDate()===e.getUTCDate()}function mfe(r,e,t,n,a,i,s){var d;let o=r.metadataCache.getFileCache(n),l=o==null?void 0:o.frontmatter;if(l)if(a){let u=a.mapFromFrontmatter(l,t,i);return{title:u.title||"Untitled task",status:u.status||s||"open",priority:u.priority||"normal",due:u.due,scheduled:u.scheduled,path:t,archived:u.archived||!1,tags:u.tags||[],contexts:u.contexts||[],projects:u.projects||[],attachments:u.attachments||[],recurrence:u.recurrence,complete_instances:u.complete_instances,completedDate:u.completedDate,timeEstimate:u.timeEstimate,timeEntries:u.timeEntries,dateCreated:u.dateCreated,dateModified:u.dateModified,reminders:u.reminders}}else{let p=new bh(bS).mapFromFrontmatter(l,t,i);return{title:p.title||"Untitled task",status:p.status||s||"open",priority:p.priority||"normal",due:p.due,scheduled:p.scheduled,path:t,archived:p.archived||!1,tags:p.tags||[],contexts:p.contexts||[],projects:p.projects||[],attachments:p.attachments||[],recurrence:p.recurrence,complete_instances:p.complete_instances,completedDate:p.completedDate,timeEstimate:p.timeEstimate,timeEntries:p.timeEntries,dateCreated:p.dateCreated,dateModified:p.dateModified,reminders:p.reminders}}return{title:((d=t.split("/").pop())==null?void 0:d.replace(".md",""))||"Untitled",status:s||"open",priority:"normal",path:t,archived:!1,reminders:[]}}function rm(r){if(r.startsWith("---")){let e=r.match(/^---\s*\r?\n([\s\S]*?)\r?\n---\s*\r?\n?([\s\S]*)$/);if(e)return{frontmatter:e[1],body:e[2]||""}}return{frontmatter:null,body:r}}function ffe(r){let e=/^(\s*)([-*+]|\d+\.)(\s+\[)[xX](\].*)/gm,t=!1;return{content:r.replace(e,(a,i,s,o,l)=>(t=!0,`${i}${s}${o} ${l}`)),changed:t}}function A_(r,e){return I2(r,e)}function $v(r,e,t){return h_(r,e,t)}function Bv(r,e,t){return Jp(r,e,t)}function hfe(r){return Vme(r)}function gfe(r,e=!0){return wu(r,e)}function yfe(r){return Wme(r)}function dfe(r,e=!1){if(e&&r==="24:00")return ufe;let t=/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/.exec(r);return t?Number(t[1])*60+Number(t[2]):null}function FXe(r){if(!r||typeof r!="object")return!1;let e=r;if(!e.id||typeof e.id!="string"||!e.title||typeof e.title!="string"||!e.startTime||typeof e.startTime!="string"||!e.endTime||typeof e.endTime!="string")return!1;let t=dfe(e.startTime),n=dfe(e.endTime,!0);if(t===null||n===null||(e.endTime==="00:00"&&t>0?ufe:n)<=t||e.attachments&&!Array.isArray(e.attachments))return!1;if(e.attachments){for(let i of e.attachments)if(typeof i!="string"||!i.trim())return!1}return!(e.color&&typeof e.color!="string"||e.description&&typeof e.description!="string")}function OXe(r,e){try{let t=D_(r);if(!t||!t.timeblocks||!Array.isArray(t.timeblocks))return[];let n=[];for(let a of t.timeblocks)FXe(a)?n.push(a):Ih.warn(`Invalid timeblock in ${e}:`,{category:"validation",operation:"invalid-timeblock",details:{value:a}});return n}catch(t){return Ih.error(`Error extracting timeblocks from ${e}:`,{category:"internal",operation:"extracting-timeblocks",error:t}),[]}}function G2(){return`tb-${Date.now()}-${Math.random().toString(36).substring(2,11)}`}function LXe(r,e,t){return{...r,id:G2(),startTime:e,endTime:t,attachments:r.attachments?[...r.attachments]:void 0}}async function K2(r,e,t,n,a,i){let{getDailyNote:s,getAllDailyNotes:o,appHasDailyNotesPluginLoaded:l}=await Promise.resolve().then(()=>st(iu()));if(!l())throw new Error("Daily Notes plugin is not enabled");let c=o(),d=pfe(t),u=s(d,c);if(!u)throw new Error(`Daily note for ${t} not found`);let p=await r.vault.read(u),m=OXe(p,u.path),f=m.findIndex(v=>v.id===e);if(f===-1)throw new Error(`Timeblock ${e} not found`);let h=m[f];if(t===n){await zXe(r,u,e,a,i);return}await jXe(r,u,e);let g={...h,startTime:a,endTime:i};await kfe(r,n,g)}async function vfe(r,e,t,n,a){let i=LXe(t,n,a);return await kfe(r,e,i),i}async function zXe(r,e,t,n,a){let i=await r.vault.read(e),s=D_(i)||{};if(!s.timeblocks||!Array.isArray(s.timeblocks))throw new Error("No timeblocks found in frontmatter");let o=s.timeblocks.findIndex(l=>l.id===t);if(o===-1)throw new Error(`Timeblock ${t} not found`);s.timeblocks[o].startTime=n,s.timeblocks[o].endTime=a,await Z2(r,e,s,i)}async function jXe(r,e,t){let n=await r.vault.read(e),a=D_(n)||{};!a.timeblocks||!Array.isArray(a.timeblocks)||(a.timeblocks=a.timeblocks.filter(i=>i.id!==t),await Z2(r,e,a,n))}async function kfe(r,e,t){let{createDailyNote:n,getDailyNote:a,getAllDailyNotes:i}=await Promise.resolve().then(()=>st(iu())),s=pfe(e),o=i(),l=a(s,o);if(!l){try{l=await n(s)}catch(u){let p=u instanceof Error?u.message:String(u);throw new Error(`Failed to create daily note: ${p}. Please check your Daily Notes plugin configuration and ensure the daily notes folder exists.`)}if(!l)throw new Error("Failed to create daily note. Please check your Daily Notes plugin configuration and ensure the daily notes folder exists.")}let c=await r.vault.read(l),d=D_(c)||{};d.timeblocks||(d.timeblocks=[]),d.timeblocks.push(t),await Z2(r,l,d,c)}async function Z2(r,e,t,n){let a=n;if(n.startsWith("---")){let o=n.indexOf("---",3);o!==-1&&(a=n.substring(o+3))}let s=`---
|
||
${(0,Nh.stringifyYaml)(t)}---${a}`;await Mo(r,e,s)}function Rl(r){return!r||!Array.isArray(r)?[]:r.filter(e=>{if(typeof e!="string")return!1;let t=e.trim();return!(t.length===0||t==='""'||t==="''")})}function bfe(r,e){return g_(r,e)}function Tfe(r,e,t){return ife(r,e,t)}function za(r){return!r||typeof r!="string"?"":r.split(",").map(e=>fS(e)).filter(e=>e.length>0).join(", ")}function Cu(r){return!r||typeof r!="string"?"":r.replace(/[^a-zA-Z0-9-]/g,"-").toLowerCase()}var Nh,Ih,ufe,Ct=y(()=>{Nh=require("obsidian");Wr();p2();t_();Ah();Me();Dv();Mc();K();W2();Ih=N({tag:"Utils/Helpers"}),ufe=1440});function J(r){var e;if(r==null)return"";if(typeof r=="string")return r;if(typeof r=="number")return Number.prototype.toString.call(r);if(typeof r=="bigint")return BigInt.prototype.toString.call(r);if(typeof r=="boolean")return r?"true":"false";if(typeof r=="symbol")return(e=r.description)!=null?e:"";if(r instanceof Date)return r.toISOString();if(Array.isArray(r))return r.map(t=>J(t)).filter(t=>t.length>0).join(", ");try{let t=JSON.stringify(r);return typeof t=="string"?t:""}catch(t){return""}}function __(r){return Array.isArray(r)?r.map(e=>J(e)):[J(r)]}var kr=y(()=>{});var Ssr,nm,I_=y(()=>{kr();K();Ssr=N({tag:"Utils/ProjectMetadataResolver"}),nm=class{constructor(e){this.deps=e}buildMetadataRows(e,t,n){var s;let a=[],i=Math.min(e.length,3);for(let o=0;o<i;o++){let l=e[o];if(l)try{let c=n(l),d=[];for(let u of c){if(u.property.startsWith("literal:")){let m=u.property.slice(8);m&&d.push(m);continue}let p=this.resolve(u.property,t);p&&(u.showName?d.push(`${(s=u.displayName)!=null?s:u.property}: ${p}`):d.push(p))}d.length>0&&a.push(d.join(" "))}catch(c){}}return a}stringifyFmValue(e){if(e==null)return"";if(Array.isArray(e))return e.map(a=>this.stringifyFmValue(a)).filter(Boolean).join(", ");let t=typeof e;if(t==="string"){let a=e.trim(),i=a.match(/^\[\[([^\]]+)\]\]$/);if(i){let l=i[1].split("|");if(l.length>1&&l[1].trim())return l[1].trim();let c=l[0].split("#")[0].trim();return(c.split("/").pop()||c).replace(/\.md$/i,"")}let s=a.match(/^\[([^\]]+)\]\(([^)]+)\)$/);return s?s[1].trim():a}if(t==="number"||t==="boolean")return J(e);if(t==="object"){let n=e;if(typeof n.path=="string"){let a=n.path;return(a.split("/").pop()||a).replace(/\.md$/i,"")}return""}return""}resolve(e,t){if(!e)return"";if(e.startsWith("file."))switch(e){case"file.basename":return t.basename||"";case"file.name":return t.name||"";case"file.path":return t.path||"";case"file.parent":return t.parent||"";default:return""}if(e==="title")return t.title||"";if(e==="aliases"){let i=t.aliases||[];return i.length?i.join(", "):""}let n=e;e.startsWith("frontmatter:")&&(n=e.slice(12));let a=this.deps.getFrontmatter(t)||{};return this.stringifyFmValue(a[n])}}});function $Xe(r){let e=[],t="",n=0;for(;n<r.length;){let a=r[n];if(a==="\\"&&n+1<r.length){t+=r[n+1],n+=2;continue}if(a==="|"){e.push(t.trim()),t="",n++;continue}t+=a,n++}return e.push(t.trim()),e.filter(a=>a.length>0)}function BXe(r){return r.replace(/\\\|/g,"|").replace(/\\\)/g,")")}function _c(r){let e=[];if(!r)return e;let t=/\{([^}]*)\}/g,n,a=0;for(;(n=t.exec(r))!==null;){let s=r.slice(a,n.index);s.length>0&&e.push({property:`literal:${s}`,showName:!1}),a=t.lastIndex;let o=n[1].trim();if(!o)continue;let l=$Xe(o);if(l.length===0)continue;let c=l[0];if(!c)throw new Error("Missing property name in token");let d={property:c,showName:!1};for(let u=1;u<l.length;u++){let p=l[u];p==="n"?d.showName=!0:p.startsWith("n(")&&p.endsWith(")")?(d.showName=!0,d.displayName=BXe(p.slice(2,-1))):p==="s"&&(d.searchable=!0)}e.push(d)}let i=r.slice(a);return i.length>0&&e.push({property:`literal:${i}`,showName:!1}),e}var LS=y(()=>{});function wfe(r){return r!=null?r.trim():""}function UXe(r){let e=wfe(r);return e.length>0?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function HXe(r){return r?r.trim():""}function Uv(r){let e=HXe(r==null?void 0:r.propertyKey),t=wfe(r==null?void 0:r.propertyValue);return{key:e,value:t,enabled:e.length>0}}function Hv(r,e){if(!e.enabled)return!0;if(!r||typeof r!="object"||!(e.key in r))return!1;let t=r[e.key],n=UXe(e.value);if(n.length===0)return t!=null;let a=new Set(n.map(s=>s.toLowerCase())),i=s=>{if(s==null)return!1;if(Array.isArray(s))return s.some(o=>i(o));if(typeof s=="string")return a.has(s.trim().toLowerCase());if(typeof s=="number"||typeof s=="boolean")return a.has(String(s).toLowerCase());if(typeof s=="object")try{return a.has(JSON.stringify(s).toLowerCase())}catch(o){return!1}return a.has(J(s).toLowerCase())};return i(t)}var N_=y(()=>{kr()});var ja,Eu,Rh,br,Du=y(()=>{Me();ja=class extends Error{constructor(t,n,a){super(t);this.field=n;this.nodeId=a;this.name="FilterValidationError"}},Eu=class extends Error{constructor(t,n){super(t);this.nodeId=n;this.name="FilterEvaluationError"}},Rh=class Rh{static generateId(){return`filter_${Date.now()}_${++this.idCounter}`}static deepCloneFilterQuery(e){return JSON.parse(JSON.stringify(e))}static validateFilterNode(e,t=!0){if(!e||typeof e!="object")throw new ja("Filter node must be an object");if(!("id"in e)||!e.id||typeof e.id!="string")throw new ja("Filter node must have a valid string ID",void 0,"id"in e?String(e.id):"unknown");if(e.type==="condition")this.validateCondition(e,t);else if(e.type==="group")this.validateGroup(e,t);else{let n=e;throw new ja(`Unknown filter node type: ${String(n.type)}`,void 0,typeof n.id=="string"?n.id:void 0)}}static validateCondition(e,t=!0){if(typeof e.property!="string")throw new ja("Condition must have a valid property","property",e.id);if(t&&e.property==="")throw new ja("Property must be selected","property",e.id);if(e.property==="")return;if(!e.operator||typeof e.operator!="string")throw new ja("Condition must have a valid operator","operator",e.id);if(!this.getValidOperatorsForProperty(e.property).includes(e.operator))throw new ja(`Operator '${e.operator}' is not valid for property '${e.property}'`,"operator",e.id);if(t&&this.operatorRequiresValue(e.operator)&&(e.value===null||e.value===void 0||e.value===""))throw new ja(`Operator '${e.operator}' requires a value`,"value",e.id)}static validateGroup(e,t=!0){if(!e.conjunction||!["and","or"].includes(e.conjunction))throw new ja("Group must have a valid conjunction (and/or)","conjunction",e.id);if(!Array.isArray(e.children))throw new ja("Group must have a children array","children",e.id);e.children.forEach((n,a)=>{try{this.validateFilterNode(n,t)}catch(i){throw i instanceof ja?new ja(`Child ${a}: ${i.message}`,i.field,e.id):i}})}static getValidOperatorsForProperty(e){return typeof e=="string"&&e.startsWith("user:")?["is","is-not","contains","does-not-contain","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty","is-checked","is-not-checked","is-greater-than","is-less-than","is-greater-than-or-equal","is-less-than-or-equal"]:{"":[],title:["is","is-not","contains","does-not-contain","is-empty","is-not-empty"],path:["contains","does-not-contain","is-empty","is-not-empty"],status:["is","is-not","is-empty","is-not-empty"],priority:["is","is-not","is-empty","is-not-empty"],tags:["contains","does-not-contain","is-empty","is-not-empty"],contexts:["contains","does-not-contain","is-empty","is-not-empty"],projects:["contains","does-not-contain","is-empty","is-not-empty"],blockedBy:["contains","does-not-contain","is-empty","is-not-empty"],blocking:["contains","does-not-contain","is-empty","is-not-empty"],due:["is","is-not","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty"],scheduled:["is","is-not","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty"],completedDate:["is","is-not","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty"],dateCreated:["is","is-not","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty"],dateModified:["is","is-not","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty"],archived:["is-checked","is-not-checked"],hasSubtasks:["is-checked","is-not-checked"],"dependencies.isBlocked":["is-checked","is-not-checked"],"dependencies.isBlocking":["is-checked","is-not-checked"],timeEstimate:["is","is-not","is-greater-than","is-less-than","is-greater-than-or-equal","is-less-than-or-equal"],recurrence:["is-empty","is-not-empty"],"status.isCompleted":["is-checked","is-not-checked"]}[e]||[]}static isFilterNodeComplete(e){try{return this.validateFilterNode(e,!0),!0}catch(t){return!1}}static operatorRequiresValue(e){return!["is-empty","is-not-empty","is-checked","is-not-checked"].includes(e)}static getTaskPropertyValue(e,t){var n;switch(t){case"title":return e.title;case"path":return e.path;case"status":return e.status;case"priority":return e.priority;case"tags":return e.tags||[];case"contexts":return e.contexts||[];case"projects":return e.projects||[];case"blockedBy":return((n=e.blockedBy)==null?void 0:n.map(a=>a.uid))||[];case"blocking":return e.blocking||[];case"due":return e.due;case"scheduled":return e.scheduled;case"completedDate":return e.completedDate;case"dateCreated":return e.dateCreated;case"dateModified":return e.dateModified;case"archived":return e.archived;case"hasSubtasks":return e.hasSubtasks===!0;case"timeEstimate":return e.timeEstimate;case"recurrence":return e.recurrence;case"status.isCompleted":return;case"dependencies.isBlocked":return e.isBlocked===!0;case"dependencies.isBlocking":return e.isBlocking===!0;default:throw new Eu(`Unknown property: ${t}`)}}static applyOperator(e,t,n,a,i){try{switch(t){case"is":return this.isEqual(e,n,i);case"is-not":return!this.isEqual(e,n,i);case"contains":return this.contains(e,n,i);case"does-not-contain":return!this.contains(e,n,i);case"is-before":return this.isBefore(e,n);case"is-after":return this.isAfter(e,n);case"is-on-or-before":return this.isOnOrBefore(e,n);case"is-on-or-after":return this.isOnOrAfter(e,n);case"is-empty":return this.isEmpty(e);case"is-not-empty":return!this.isEmpty(e);case"is-checked":return e===!0;case"is-not-checked":return e!==!0;case"is-greater-than":return this.isGreaterThan(e,n);case"is-less-than":return this.isLessThan(e,n);case"is-greater-than-or-equal":return this.isGreaterThanOrEqual(e,n);case"is-less-than-or-equal":return this.isLessThanOrEqual(e,n);default:throw new Eu("Unknown operator",a)}}catch(s){throw s instanceof Eu?s:new Eu(`Error applying operator '${t}': ${s.message}`,a)}}static isEqual(e,t,n){if(n&&this.isDateProperty(n)&&typeof e=="string"&&typeof t=="string"&&(e||S_(t)))return this.isEqualDate(e,t);let a=(i,s)=>this.hasNumericComparison(i,s)?this.toFiniteNumber(i)===this.toFiniteNumber(s):i===s;return Array.isArray(e)?Array.isArray(t)?e.some(i=>t.some(s=>a(i,s))):e.some(i=>a(i,t)):Array.isArray(t)?t.some(i=>a(e,i)):a(e,t)}static hasNumericComparison(e,t){return!(typeof e=="number")&&!(typeof t=="number")?!1:this.toFiniteNumber(e)!==void 0&&this.toFiniteNumber(t)!==void 0}static toFiniteNumber(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(typeof e!="string")return;let t=e.trim();if(!t)return;let n=Number(t);return Number.isFinite(n)?n:void 0}static matchesHierarchicalTag(e,t){if(!e||!t)return!1;let n=e.toLowerCase(),a=t.toLowerCase();return!!(n===a||n.startsWith(a+"/")||n.includes(a))}static matchesHierarchicalTagExact(e,t){if(!e||!t)return!1;let n=e.toLowerCase(),a=t.toLowerCase();return!!(n===a||n.startsWith(a+"/"))}static matchesTagConditions(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;if(t.length===0)return!0;let n=[],a=[];for(let i of t)if(typeof i=="string"&&i.startsWith("-")){let s=i.slice(1);s&&a.push(s)}else typeof i=="string"&&n.push(i);for(let i of a)if(e.some(o=>this.matchesHierarchicalTag(o,i)))return!1;return n.length>0?n.some(i=>e.some(s=>this.matchesHierarchicalTag(s,i))):!0}static contains(e,t,n){if(Array.isArray(e))if(Array.isArray(t))if(n==="tags"){let a=e.filter(s=>typeof s=="string"),i=t.filter(s=>typeof s=="string");return Rh.matchesTagConditions(a,i)}else return t.some(a=>e.some(i=>typeof i=="string"&&typeof a=="string"&&i.toLowerCase().includes(a.toLowerCase())));else{let a=typeof t=="string"?t:String(t!=null?t:"");if(n==="tags"){let i=e.filter(s=>typeof s=="string");return Rh.matchesTagConditions(i,[a])}else{let i=a.toLowerCase();return e.some(s=>typeof s=="string"&&s.toLowerCase().includes(i))}}else if(typeof e=="string")if(Array.isArray(t))if(n==="tags"){let a=t.filter(i=>typeof i=="string");return Rh.matchesTagConditions([e],a)}else return t.some(a=>typeof a=="string"&&e.toLowerCase().includes(a.toLowerCase()));else return n==="tags"&&typeof t=="string"?Rh.matchesTagConditions([e],[t]):typeof t=="string"&&e.toLowerCase().includes(t.toLowerCase());return!1}static isBefore(e,t){if(!e||!t)return!1;try{let n=Pc(t);return Tu(e,n)}catch(n){return!1}}static isAfter(e,t){if(!e||!t)return!1;try{let n=Pc(t);return Tu(n,e)}catch(n){return!1}}static isOnOrBefore(e,t){if(!e||!t)return!1;try{let n=Pc(t);return Tu(e,n)||Po(de(e),de(n))}catch(n){return!1}}static isOnOrAfter(e,t){if(!e||!t)return!1;try{let n=Pc(t);return Tu(n,e)||Po(de(e),de(n))}catch(n){return!1}}static isDateProperty(e){return["due","scheduled","completedDate","dateCreated","dateModified"].includes(e)}static isEqualDate(e,t){try{let n=Pc(t);return Po(de(e),de(n))}catch(n){return!1}}static isEmpty(e){return e==null?!0:typeof e=="string"?e.trim()==="":Array.isArray(e)?e.length===0?!0:e.every(t=>{if(typeof t!="string")return!1;let n=t.trim();return n.length===0||n==='""'||n==="''"}):!1}static isGreaterThan(e,t){let n=typeof e=="number"?e:parseFloat(e),a=typeof t=="number"?t:parseFloat(t);return isNaN(n)||isNaN(a)?!1:n>a}static isLessThan(e,t){let n=typeof e=="number"?e:parseFloat(e),a=typeof t=="number"?t:parseFloat(t);return isNaN(n)||isNaN(a)?!1:n<a}static isGreaterThanOrEqual(e,t){let n=typeof e=="number"?e:parseFloat(e),a=typeof t=="number"?t:parseFloat(t);return isNaN(n)||isNaN(a)?!1:n>=a}static isLessThanOrEqual(e,t){let n=typeof e=="number"?e:parseFloat(e),a=typeof t=="number"?t:parseFloat(t);return isNaN(n)||isNaN(a)?!1:n<=a}};Rh.idCounter=0;br=Rh});function Vv(r){var n,a,i;let e=new Set;for(let s of(n=r==null?void 0:r.tags)!=null?n:[])J2(e,s.tag);let t=(a=r==null?void 0:r.frontmatter)!=null?a:null;for(let s of(i=(0,Sfe.parseFrontMatterTags)(t))!=null?i:[])J2(e,s);return Q2(e,t==null?void 0:t.tags),Q2(e,t==null?void 0:t.tag),Array.from(e)}function Q2(r,e){if(Array.isArray(e)){for(let t of e)Q2(r,t);return}if(typeof e=="string")for(let t of e.split(/[,\s]+/))J2(r,t)}function J2(r,e){if(typeof e!="string")return;let t=e.trim().replace(/^#/,"");t&&r.add(t)}var Sfe,R_=y(()=>{Sfe=require("obsidian")});function zS(r,e){if(!r||!e)return 0;let t=r.toLowerCase().split(" ").filter(Boolean),n=e.toLowerCase(),a=0,i=0;for(let s=0;s<t.length;s++){let o=t[s],l=n.indexOf(o,a);if(l===-1)return 0;i+=Math.max(0,100-l),n.startsWith(o,l)&&(i+=10),s>0&&l===a&&(i+=5),a=l+o.length}return i}var xfe=y(()=>{});var eU={};at(eU,{FileSuggestHelper:()=>X2,getActiveFolderPath:()=>F_,isPathInIncludedFolders:()=>O_,resolveIncludeFolders:()=>Dfe});function VXe(r){var t;let e=(t=r==null?void 0:r.app)==null?void 0:t.vault;return typeof(e==null?void 0:e.getFiles)=="function"?e.getFiles():typeof(e==null?void 0:e.getMarkdownFiles)=="function"?e.getMarkdownFiles():[]}function qXe(r,e){var t,n;if(e.extension==="md"){let a=(n=(t=r.app.metadataCache).fileToLinktext)==null?void 0:n.call(t,e,"",!0);return typeof a=="string"&&a.trim()?a:e.basename}return e.name||e.path.split("/").pop()||e.basename}function Efe(r){return r.trim().replace(/\\/g,"/").replace(/^\/+/,"").replace(/\/+$/,"")}function WXe(r,e=""){let t=Efe(e).split("/").filter(Boolean);for(let n of r.replace(/\\/g,"/").split("/"))!n||n==="."||(n===".."?t.pop():t.push(n));return t.join("/")}function YXe(r,e){let t=Efe(r);return t==="."||t===".."||t.startsWith("./")||t.startsWith("../")?WXe(t,e):t}function F_(r){var t,n,a,i;let e=(a=(n=(t=r==null?void 0:r.app)==null?void 0:t.workspace)==null?void 0:n.getActiveFile)==null?void 0:a.call(n);if(((i=e==null?void 0:e.parent)==null?void 0:i.path)!==void 0)return e.parent.path;if(typeof(e==null?void 0:e.path)=="string")return e.path.split("/").slice(0,-1).join("/")}function Dfe(r,e){return r.filter(t=>t.trim().length>0).map(t=>YXe(t,e))}function O_(r,e,t){return Dfe(e,t).some(a=>a===""||r===a||r.startsWith(`${a}/`))}var Cfe,X2,jS=y(()=>{Cfe=require("obsidian");xfe();LS();N_();Du();mS();R_();X2={async suggest(r,e,t=20,n,a=F_(r)){var o,l;let i=async()=>{var w,S,C,E,D,P,O;let c=VXe(r),d=[],u=Sc((w=r.settings)==null?void 0:w.excludedFolders),p=((E=(C=(S=r.settings)==null?void 0:S.projectAutosuggest)==null?void 0:C.rows)!=null?E:[]).slice(0,3),m=new Set;for(let z of p)try{let R=_c(z);for(let A of R)A.searchable&&!A.property.startsWith("literal:")&&m.add(A.property)}catch(R){}let f=(e||"").toLowerCase(),h=(D=n==null?void 0:n.requiredTags)!=null?D:[],g=(P=n==null?void 0:n.includeFolders)!=null?P:[],v=Uv(n);for(let z of c){if(Cv(z.path,u))continue;let R=r.app.metadataCache.getFileCache(z);if(h.length>0&&!br.matchesTagConditions(Vv(R),h)||g.length>0&&!O_(z.path,g,a))continue;if(v.enabled){let G=R==null?void 0:R.frontmatter;if(!Hv(G,v))continue}let A=z.basename,F="";if(R!=null&&R.frontmatter){let G=r.fieldMapper.mapFromFrontmatter(R.frontmatter,z.path,r.settings.storeTitleInFilename);F=typeof G.title=="string"?G.title:""}let $=R!=null&&R.frontmatter?(0,Cfe.parseFrontMatterAliases)(R.frontmatter)||[]:[],B=0,Q=f.length>0?zS(e,A):1;if(Q>0&&(B=Math.max(B,Q+15)),F){let G=zS(e,F);G>0&&(B=Math.max(B,G+5))}if(Array.isArray($)){for(let G of $)if(typeof G=="string"){let ie=zS(e,G);ie>0&&(B=Math.max(B,ie))}}if(m.size>0){let G=(R==null?void 0:R.frontmatter)||{};for(let ie of m){let Ee="";if(ie==="file.path")Ee=z.path;else if(ie==="file.parent")Ee=((O=z.parent)==null?void 0:O.path)||"";else if(ie==="file.basename")Ee=A;else if(ie==="title")Ee=F;else if(ie==="aliases")Ee=(Array.isArray($)?$.filter(re=>typeof re=="string"):[]).join(" ");else{let ee=G[ie];ee!=null&&(Array.isArray(ee)?Ee=ee.filter(re=>typeof re=="string").join(" "):typeof ee=="object"?Ee=JSON.stringify(ee):(typeof ee=="string"||typeof ee=="number"||typeof ee=="boolean")&&(Ee=String(ee)))}if(Ee){let ee=zS(e,Ee),re=ee>0?ee:Ee.toLowerCase().includes(f)?30:0;re>0&&(B=Math.max(B,re))}}}if(B>0){let G=[];F&&F!==A&&G.push(`title: ${F}`);let ie=Array.isArray($)?$.filter(ee=>typeof ee=="string"):[];ie.length&&G.push(`aliases: ${ie.join(", ")}`);let Ee=G.length?`${A} [${G.join(" | ")}]`:A;d.push({insertText:qXe(r,z),displayText:Ee,path:z.path,score:B})}}d.sort((z,R)=>R.score-z.score);let b=[],k=new Set;for(let z of d)if(!k.has(z.insertText)&&(b.push(z),k.add(z.insertText),b.length>=t))break;return b},s=(l=(o=r.settings)==null?void 0:o.suggestionDebounceMs)!=null?l:0;return s?new Promise(c=>{let d=r;d.__fileSuggestTimer&&window.clearTimeout(d.__fileSuggestTimer),d.__fileSuggestTimer=window.setTimeout(()=>{(async()=>{let u=await i();c(u)})()},s)}):i()}}});var Ic,GXe,Ao,qv=y(()=>{Ic=require("obsidian");I_();LS();N_();Du();R_();jS();K();GXe=N({tag:"Modals/ProjectSelectModal"}),Ao=class extends Ic.FuzzySuggestModal{constructor(e,t,n){super(e),this.plugin=t,this.onChoose=n,this.setPlaceholder("Type to search for project notes..."),this.setInstructions([{command:"\u2191\u2193",purpose:"to navigate"},{command:"\u21B5",purpose:"to select"},{command:"esc",purpose:"to cancel"}])}getItems(){var s,o,l,c,d,u,p;let e=this.app.vault.getAllLoadedFiles().filter(m=>m instanceof Ic.TFile&&m.extension==="md"&&!m.path.includes(".trash")),t=(l=(o=(s=this.plugin.settings)==null?void 0:s.projectAutosuggest)==null?void 0:o.requiredTags)!=null?l:[],n=(u=(d=(c=this.plugin.settings)==null?void 0:c.projectAutosuggest)==null?void 0:d.includeFolders)!=null?u:[],a=Uv((p=this.plugin.settings)==null?void 0:p.projectAutosuggest),i=F_(this.plugin);return t.length===0&&n.length===0&&!a.enabled?e:e.filter(m=>{if(!(m instanceof Ic.TFile))return!1;let f=this.app.metadataCache.getFileCache(m);if(t.length>0&&!br.matchesTagConditions(Vv(f),t)||n.length>0&&!O_(m.path,n,i))return!1;if(a.enabled){let h=f==null?void 0:f.frontmatter;if(!Hv(h,a))return!1}return!0})}getItemText(e){var s,o,l,c;if(!(e instanceof Ic.TFile))return e.name;let t=`${e.name} ${e.path}`,n=(l=(o=(s=this.plugin.settings)==null?void 0:s.projectAutosuggest)==null?void 0:o.rows)!=null?l:[],a=new Set;for(let d of n)try{let u=_c(d);for(let p of u)p.searchable&&!p.property.startsWith("literal:")&&a.add(p.property)}catch(u){}let i=this.app.metadataCache.getFileCache(e);if(i!=null&&i.frontmatter){let d=this.plugin.fieldMapper.mapFromFrontmatter(i.frontmatter,e.path,this.plugin.settings.storeTitleInFilename),u=typeof d.title=="string"?d.title:"";u&&(t+=` ${u}`);let p=(0,Ic.parseFrontMatterAliases)(i.frontmatter)||[];Array.isArray(p)&&p.length>0&&(t+=` ${p.join(" ")}`);for(let m of a){let f="";switch(m){case"file.path":f=e.path;break;case"file.parent":f=((c=e.parent)==null?void 0:c.name)||"";break;case"file.basename":f=e.basename;break;case"title":case"aliases":break;default:{let h=i.frontmatter[m];h!=null&&(f=Array.isArray(h)?h.join(" "):String(h));break}}f&&(t+=` ${f}`)}}return t}renderSuggestion(e,t){var s,o,l,c;let n=e.item;if(t.empty(),!(n instanceof Ic.TFile)){t.textContent=n.name;return}let a=t.createDiv({cls:"project-suggestion"}),i=((l=(o=(s=this.plugin.settings)==null?void 0:s.projectAutosuggest)==null?void 0:o.rows)!=null?l:[]).slice(0,3);if(i.length===0){a.createSpan({cls:"project-name",text:n.basename});return}try{let d=this.app.metadataCache.getFileCache(n),u=(d==null?void 0:d.frontmatter)||{},p=this.plugin.fieldMapper.mapFromFrontmatter(u,n.path,this.plugin.settings.storeTitleInFilename),m=typeof p.title=="string"?p.title:"",f=(0,Ic.parseFrontMatterAliases)(u)||[],h=Array.isArray(f)?f.filter(k=>typeof k=="string"):[],g={basename:n.basename,name:n.name,path:n.path,parent:((c=n.parent)==null?void 0:c.path)||"",title:m,aliases:h,frontmatter:u},v=new nm({getFrontmatter:()=>u});a.createDiv({cls:"project-name",text:n.basename});let b=v.buildMetadataRows(i,g,_c);for(let k of b){let w=a.createDiv({cls:"project-meta"});w.textContent=k}}catch(d){GXe.error("Error rendering project suggestion:",{category:"internal",operation:"rendering-project-suggestion",error:d}),a.createSpan({cls:"project-name",text:n.basename})}}onChooseItem(e,t){this.onChoose(e)}}});function qs(r){if(r==null)return[];let e=[],t="",n=0,a=null;for(let s=0;s<r.length;s++){let o=r[s],l=r[s+1];if(!a&&o==="["&&l==="["){n++,t+="[[",s++;continue}if(!a&&o==="]"&&l==="]"&&n>0){n--,t+="]]",s++;continue}if(!n&&(o==='"'||o==="'")){a===null?a=o:a===o&&(a=null),t+=o;continue}if(o===","&&n===0&&a===null){let c=t.trim();c&&e.push(c),t="";continue}t+=o}let i=t.trim();return i&&e.push(i),e}var am=y(()=>{});function L_(r){let e=r.search(/[#^]/);return(e===-1?r:r.slice(0,e)).trim()}function Et(r){if(!r)return r;let e=r.trim();if(e.startsWith("<")&&e.endsWith(">")){let n=e.slice(1,-1).trim(),a=/\.md$/i.test(n);try{n=decodeURIComponent(n)}catch(s){Pfe.debug("Failed to decode URI component:",{category:"internal",operation:"decode-uri-component",details:{value:n},error:s})}let i=L_(n);return a?n:i||n}if(e.startsWith("[[")&&e.endsWith("]]")){let n=e.slice(2,-2).trim(),a=n.indexOf("|"),i=a!==-1?n.substring(0,a):n;return L_(i)}let t=e.match(/^\[([^\]]*)\]\(([^)]+)\)$/);if(t){let n=t[2].trim();n.startsWith("<")&&n.endsWith(">")&&(n=n.slice(1,-1).trim());let a=/\.md$/i.test(n);try{n=decodeURIComponent(n)}catch(s){Pfe.debug("Failed to decode URI component:",{category:"internal",operation:"decode-uri-component",details:{value:n},error:s})}let i=L_(n);return a?n:i}return e}function Fl(r,e){if(!r)return"";let t=r.trim(),n=t.match(/^\[([^\]]+)\]\(([^)]+)\)$/);if(n){let a=n[1].trim(),i=n[2].trim(),s=Et(i),o=Mfe(s,e,a);if(o)return o;if(a)return a;let l=s.replace(/\.md$/i,""),c=l.split("/");return c[c.length-1]||l}if(t.startsWith("[[")&&t.endsWith("]]")){let a=t.slice(2,-2).trim(),i=a.indexOf("|");if(i!==-1){let d=a.slice(i+1).trim();if(d)return d}let s=L_(a.split("|")[0]||a)||Et(t),o=Mfe(s,e);if(o)return o;let l=s.replace(/\.md$/i,""),c=l.split("/");return c[c.length-1]||l}return t}function Mfe(r,e,t){let n=e==null?void 0:e.metadataCache.getFirstLinkpathDest(r,"");if(!n)return null;let a=KXe(n,e);return a&&ZXe(t,n,r)?a:(t==null?void 0:t.trim())||n.basename}function KXe(r,e){var a,i,s,o;let t=(s=e==null?void 0:e.metadataCache.getFileCache(r))!=null?s:(i=(a=e==null?void 0:e.metadataCache)==null?void 0:a.getCache)==null?void 0:i.call(a,r.path),n=(o=t==null?void 0:t.frontmatter)==null?void 0:o.title;return typeof n=="string"&&n.trim().length>0?n.trim():null}function ZXe(r,e,t){let n=(r==null?void 0:r.trim())||"";if(!n)return!0;let a=e.path.replace(/\.md$/i,""),i=t.replace(/\.md$/i,"");return new Set([e.name,e.basename,e.path,a,t,i]).has(n)}function Ws(r,e,t,n,a,i){if(i)return r.fileManager.generateMarkdownLink(e,t,n||"",a||"");let o=`[[${r.metadataCache.fileToLinktext(e,t,!0)}`;return n&&(o+=n),a&&(o+=`|${a}`),o+="]]",o}function z_(r,e,t,n,a){return Ws(r,e,t,"",n,a)}var Pfe,qn=y(()=>{K();Pfe=N({tag:"Utils/LinkUtils"})});function JXe(r){return QXe.includes(r)}function tU(r){if(typeof r=="string")return r;if(typeof r=="object"&&r!==null){let e=r.uid;return typeof e=="string"?e:""}return""}function os(r){if(typeof r=="string"){let e=r.trim();return e?{uid:Et(e),reltype:ss}:null}if(typeof r=="object"&&r!==null){let e=r,t=typeof e.uid=="string"?e.uid.trim():"";if(!t)return null;let n=Et(t),a=typeof e.reltype=="string"?e.reltype.trim().toUpperCase():"",i=JXe(a)?a:ss,s=typeof e.gap=="string"&&e.gap.trim().length>0?e.gap.trim():void 0;return s?{uid:n,reltype:i,gap:s}:{uid:n,reltype:i}}return null}function Fh(r){if(r==null)return;let e=Array.isArray(r)?r:[r],t=[];for(let n of e){let a=os(n);a&&t.push(a)}return t.length>0?t:void 0}function Afe(r){return r.map(e=>{let n={uid:e.uid.startsWith("[[")?e.uid:`[[${e.uid}]]`,reltype:e.reltype};return e.gap&&e.gap.trim().length>0&&(n.gap=e.gap),n})}function Ol(r,e,t){let n=tU(t);if(!n)return null;let a=Et(n);if(!a)return null;let i=new Set;i.add(a),a.endsWith(".md")&&i.add(a.replace(/\.md$/i,""));let s=(0,Wv.parseLinktext)(a);s.path&&s.path!==a&&i.add(s.path);for(let o of i){let l=r.metadataCache.getFirstLinkpathDest(o,e);if(l instanceof Wv.TFile)return{path:l.path,file:l};let c=r.vault.getAbstractFileByPath(o);if(c instanceof Wv.TFile)return{path:c.path,file:c}}return null}function _o(r,e,t,n){let a=r.vault.getAbstractFileByPath(t);return a instanceof Wv.TFile?Ws(r,a,e,"","",n):`[[${(t.split("/").pop()||t).replace(/\.md$/i,"")}]]`}var Wv,ss,QXe,Io=y(()=>{Wv=require("obsidian");am();qn();ss="FINISHTOSTART",QXe=["FINISHTOSTART","FINISHTOFINISH","STARTTOSTART","STARTTOFINISH"]});function j_(r,e){var t;return new _fe.Setting(r).setName(e.label).addButton(n=>{n.setButtonText(e.buttonText).setTooltip(e.buttonTooltip).onClick(e.onButtonClick),n.buttonEl.addClasses(["tn-btn","tn-btn--ghost"])}),(t=e.listElement)!=null?t:r.createDiv({cls:"task-projects-list"})}function Ife(r,e){return j_(e.container,{label:r.translate("modals.task.organization.projects"),buttonText:r.translate("modals.task.organization.addToProjectButton"),buttonTooltip:r.translate("modals.task.projectsTooltip"),onButtonClick:e.onButtonClick,listElement:e.listElement})}function Nfe(r,e){return j_(e.container,{label:r.translate("modals.task.organization.subtasks"),buttonText:r.translate("modals.task.organization.addSubtasksButton"),buttonTooltip:r.translate("modals.task.organization.addSubtasksTooltip"),onButtonClick:e.onButtonClick,listElement:e.listElement})}function Rfe(r,e){return j_(e.container,{label:r.translate("modals.task.dependencies.blockedBy"),buttonText:r.translate("modals.task.dependencies.addTaskButton"),buttonTooltip:r.translate("modals.task.dependencies.selectTaskTooltip"),onButtonClick:e.onButtonClick,listElement:e.listElement})}function Ffe(r,e){return j_(e.container,{label:r.translate("modals.task.dependencies.blocking"),buttonText:r.translate("modals.task.dependencies.addTaskButton"),buttonTooltip:r.translate("modals.task.dependencies.selectTaskTooltip"),onButtonClick:e.onButtonClick,listElement:e.listElement})}var _fe,Ofe=y(()=>{_fe=require("obsidian")});function zfe(r){let{task:e,plugin:t,excludeSelector:n,onSingleClick:a,onDoubleClick:i,contextMenuHandler:s,createBatchContextMenu:o}=r,l=n?`${Lfe}, ${n}`:Lfe,c=null,d=(S=!1)=>{let C=t.app.vault.getAbstractFileByPath(e.path);C instanceof rU.TFile&&(S?t.app.workspace.openLinkText(e.path,"",!0):t.app.workspace.getLeaf(!1).openFile(C))},u=async()=>{await t.openTaskEditModal(e)},p=async S=>{if(a){await a(S);return}if(S.ctrlKey||S.metaKey){d(!0);return}let C=t.settings.singleClickAction;C==="edit"?await u():C==="openNote"&&d(!1)},m=async S=>{if(i){await i(S);return}let C=t.settings.doubleClickAction;C==="edit"?await u():C==="openNote"&&d()},f=async S=>{if(S.target.closest(l))return;let E=t.taskSelectionService;if(E){if(S.shiftKey){S.stopPropagation(),E.isSelectionModeActive()||E.enterSelectionMode(),E.toggleSelection(e.path);return}E.isSelectionModeActive()&&(E.clearSelection(),E.exitSelectionMode())}if(S.stopPropagation(),t.settings.doubleClickAction==="none"){await p(S);return}c?(window.clearTimeout(c),c=null,await m(S)):c=window.setTimeout(()=>{c=null,p(S)},250)},h=S=>{f(S)},g=S=>{S.button!==1||S.target.closest(l)||(S.preventDefault(),S.stopPropagation(),c&&(window.clearTimeout(c),c=null),d(!0))},v=S=>{g(S)},b=S=>{},k=async S=>{S.preventDefault(),S.stopPropagation();let C=t.taskSelectionService;if(S.shiftKey&&C){if(C.isSelectionModeActive()||C.enterSelectionMode(),C.isSelected(e.path)||C.addToSelection(e.path),C.getSelectionCount()>0){let E=o==null?void 0:o(C.getSelectedPaths(),()=>{});E==null||E.show(S)}return}if(C&&C.getSelectionCount()>1){C.isSelected(e.path)||C.addToSelection(e.path);let E=o==null?void 0:o(C.getSelectedPaths(),()=>{});E==null||E.show(S);return}C!=null&&C.isSelectionModeActive()&&(C.clearSelection(),C.exitSelectionMode()),s&&await s(S)};return{clickHandler:h,auxclickHandler:v,dblclickHandler:b,contextmenuHandler:S=>{k(S)},cleanup:()=>{c&&(window.clearTimeout(c),c=null)}}}function jfe(r,e){return t=>{e.app.vault.getAbstractFileByPath(r.path)&&e.app.workspace.trigger("hover-link",{event:t,source:"tasknotes-task-card",hoverParent:t.currentTarget,targetEl:t.currentTarget,linktext:r.path,sourcePath:r.path})}}async function $fe(r,e,t,n,a){let i=(d=!1)=>{let u=e.app.vault.getAbstractFileByPath(r.path);u instanceof rU.TFile&&(d?e.app.workspace.openLinkText(r.path,"",!0):e.app.workspace.getLeaf(!1).openFile(u))},s=async()=>{await e.openTaskEditModal(r,a?()=>a():void 0)},o=async d=>{if(d.ctrlKey||d.metaKey){i(!0);return}let u=e.settings.singleClickAction;u==="edit"?await s():u==="openNote"&&i(!1)},l=async d=>{let u=e.settings.doubleClickAction;u==="edit"?await s():u==="openNote"&&i()};if(e.settings.doubleClickAction==="none"){await o(t);return}let c=$_.get(n);if(c)window.clearTimeout(c),$_.delete(n),await l(t);else{let d=window.setTimeout(()=>{$_.delete(n),o(t)},250);$_.set(n,d)}}var rU,Lfe,$_,nU=y(()=>{rU=require("obsidian"),Lfe=["a","button","input","textarea","select",'[role="button"]','[data-tn-no-drag="true"]','[data-tn-click-exclude="true"]',".tag"].join(", ");$_=new Map});var Bfe,Ea,Pu=y(()=>{Bfe=require("obsidian"),Ea=class extends Bfe.Menu{show(e){var t;if(e.instanceOf(MouseEvent))this.showAtMouseEvent(e);else if(e.instanceOf(KeyboardEvent)){let n=e.currentTarget;if(!n||!((t=n.instanceOf)!=null&&t.call(n,HTMLElement)))return;this.showAtPosition({x:n.getBoundingClientRect().left,y:n.getBoundingClientRect().bottom+4})}}}});var Ufe=y(()=>{});var Hfe,aU=y(()=>{Hfe={triggers:[{propertyId:"tags",trigger:"#",enabled:!0},{propertyId:"contexts",trigger:"@",enabled:!0},{propertyId:"projects",trigger:"+",enabled:!0},{propertyId:"status",trigger:"*",enabled:!0},{propertyId:"priority",trigger:"!",enabled:!1}]}});var Vfe,qfe=y(()=>{Vfe={code:"en",name:"English",chronoLocale:"en",dateTriggers:{due:["due","deadline","must be done by","by"],scheduled:["scheduled for","start on","begin on","work on","on","scheduled","start"]},recurrence:{frequencies:{daily:["daily","every day"],weekly:["weekly","every week"],monthly:["monthly","every month"],yearly:["yearly","annually","every year"]},every:["every"],other:["other"],weekdays:{monday:["monday"],tuesday:["tuesday"],wednesday:["wednesday"],thursday:["thursday"],friday:["friday"],saturday:["saturday"],sunday:["sunday"]},pluralWeekdays:{monday:["mondays"],tuesday:["tuesdays"],wednesday:["wednesdays"],thursday:["thursdays"],friday:["fridays"],saturday:["saturdays"],sunday:["sundays"]},ordinals:{first:["first"],second:["second"],third:["third"],fourth:["fourth"],last:["last"]},periods:{day:["day","days"],week:["week","weeks"],month:["month","months"],year:["year","years"]}},timeEstimate:{hours:["h","hr","hrs","hour","hours"],minutes:["m","min","mins","minute","minutes"]},fallbackStatus:{open:["todo","to do","open"],inProgress:["in progress","in-progress","doing"],done:["done","completed","finished"],cancelled:["cancelled","canceled"],waiting:["waiting","blocked","on hold"]},fallbackPriority:{urgent:["urgent","critical","highest"],high:["high","important"],normal:["medium","normal"],low:["low","minor"]}}});var Wfe,Yfe=y(()=>{Wfe={code:"es",name:"Espa\xF1ol",chronoLocale:"es",dateTriggers:{due:["vence","fecha l\xEDmite","debe terminarse","para el","antes del"],scheduled:["programado para","programado el","comenzar el","empezar el","trabajar en","el"]},recurrence:{frequencies:{daily:["diario","diaria","diariamente","cada d\xEDa","todos los d\xEDas","a diario"],weekly:["semanal","semanalmente","cada semana","todas las semanas","por semana"],monthly:["mensual","mensualmente","cada mes","todos los meses","por mes"],yearly:["anual","anualmente","cada a\xF1o","todos los a\xF1os","por a\xF1o"]},every:["cada","todos los","todas las"],other:["otro","otra"],weekdays:{monday:["lunes"],tuesday:["martes"],wednesday:["mi\xE9rcoles"],thursday:["jueves"],friday:["viernes"],saturday:["s\xE1bado"],sunday:["domingo"]},pluralWeekdays:{monday:["lunes"],tuesday:["martes"],wednesday:["mi\xE9rcoles"],thursday:["jueves"],friday:["viernes"],saturday:["s\xE1bados"],sunday:["domingos"]},ordinals:{first:["primer","primera","primero"],second:["segundo","segunda"],third:["tercer","tercera","tercero"],fourth:["cuarto","cuarta"],last:["\xFAltimo","\xFAltima"]},periods:{day:["d\xEDa","d\xEDas"],week:["semana","semanas"],month:["mes","meses"],year:["a\xF1o","a\xF1os"]}},timeEstimate:{hours:["h","hr","hrs","hora","horas"],minutes:["m","min","mins","minuto","minutos"]},fallbackStatus:{open:["pendiente","por hacer","abierto","todo"],inProgress:["en progreso","en curso","haciendo","trabajando"],done:["hecho","terminado","completado","finalizado"],cancelled:["cancelado","anulado"],waiting:["esperando","bloqueado","en espera"]},fallbackPriority:{urgent:["urgente","cr\xEDtico","cr\xEDtica","m\xE1ximo","m\xE1xima","prioritario","prioritaria"],high:["alto","alta","importante","elevado","elevada"],normal:["medio","media","normal","regular","est\xE1ndar"],low:["bajo","baja","menor","m\xEDnimo","m\xEDnima"]}}});var Gfe,Kfe=y(()=>{Gfe={code:"fr",name:"Fran\xE7ais",chronoLocale:"fr",dateTriggers:{due:["\xE9ch\xE9ance","date limite","doit \xEAtre termin\xE9","pour le","avant le"],scheduled:["programm\xE9 pour","programm\xE9 le","commencer le","d\xE9buter le","travailler sur","le"]},recurrence:{frequencies:{daily:["quotidien","quotidienne","quotidiennement","chaque jour","tous les jours","journalier","journali\xE8re"],weekly:["hebdomadaire","chaque semaine","toutes les semaines","par semaine"],monthly:["mensuel","mensuelle","mensuellement","chaque mois","tous les mois","par mois"],yearly:["annuel","annuelle","annuellement","chaque ann\xE9e","tous les ans","par an","par ann\xE9e"]},every:["chaque","tous les","toutes les"],other:["autre"],weekdays:{monday:["lundi"],tuesday:["mardi"],wednesday:["mercredi"],thursday:["jeudi"],friday:["vendredi"],saturday:["samedi"],sunday:["dimanche"]},pluralWeekdays:{monday:["lundis"],tuesday:["mardis"],wednesday:["mercredis"],thursday:["jeudis"],friday:["vendredis"],saturday:["samedis"],sunday:["dimanches"]},ordinals:{first:["premier","premi\xE8re"],second:["deuxi\xE8me","second","seconde"],third:["troisi\xE8me"],fourth:["quatri\xE8me"],last:["dernier","derni\xE8re"]},periods:{day:["jour","jours"],week:["semaine","semaines"],month:["mois"],year:["an","ans","ann\xE9e","ann\xE9es"]}},timeEstimate:{hours:["h","hr","hrs","heure","heures"],minutes:["m","min","mins","minute","minutes"]},fallbackStatus:{open:["\xE0 faire","ouvert","en attente","todo"],inProgress:["en cours","en progression","en train de faire"],done:["termin\xE9","fini","accompli","fait"],cancelled:["annul\xE9","abandonn\xE9"],waiting:["en attente","bloqu\xE9","suspendu"]},fallbackPriority:{urgent:["urgent","urgente","critique","maximum","prioritaire"],high:["\xE9lev\xE9","\xE9lev\xE9e","haut","haute","important","importante","sup\xE9rieur","sup\xE9rieure"],normal:["moyen","moyenne","normal","normale","standard","r\xE9gulier","r\xE9guli\xE8re"],low:["faible","bas","basse","mineur","mineure","minimum"]}}});var Zfe,Qfe=y(()=>{Zfe={code:"de",name:"Deutsch",chronoLocale:"de",dateTriggers:{due:["f\xE4llig","termin","abgabe","deadline","bis zum","bis"],scheduled:["geplant f\xFCr","geplant am","beginnen am","anfangen am","arbeiten an","am","geplant","starten"]},recurrence:{frequencies:{daily:["t\xE4glich","jeden Tag","alle Tage","tagaus tagein"],weekly:["w\xF6chentlich","jede Woche","alle Wochen"],monthly:["monatlich","jeden Monat","alle Monate"],yearly:["j\xE4hrlich","jedes Jahr","alle Jahre"]},every:["jede","jeden","jedes","alle"],other:["andere","anderen","anderes"],weekdays:{monday:["montag"],tuesday:["dienstag"],wednesday:["mittwoch"],thursday:["donnerstag"],friday:["freitag"],saturday:["samstag"],sunday:["sonntag"]},pluralWeekdays:{monday:["montags"],tuesday:["dienstags"],wednesday:["mittwochs"],thursday:["donnerstags"],friday:["freitags"],saturday:["samstags"],sunday:["sonntags"]},ordinals:{first:["erste","ersten","erster"],second:["zweite","zweiten","zweiter"],third:["dritte","dritten","dritter"],fourth:["vierte","vierten","vierter"],last:["letzte","letzten","letzter"]},periods:{day:["tag","tage"],week:["woche","wochen"],month:["monat","monate"],year:["jahr","jahre"]}},timeEstimate:{hours:["h","std","stunde","stunden"],minutes:["m","min","minute","minuten"]},fallbackStatus:{open:["offen","zu erledigen","ausstehend","todo"],inProgress:["in bearbeitung","wird bearbeitet","l\xE4uft","in arbeit"],done:["erledigt","fertig","abgeschlossen","gemacht"],cancelled:["abgebrochen","storniert","abgesagt"],waiting:["wartend","warten","blockiert","pausiert"]},fallbackPriority:{urgent:["dringend","eilig","kritisch","sofort","h\xF6chste"],high:["hoch","hohe","wichtig","priorit\xE4r"],normal:["normal","mittel","mittlere","standard"],low:["niedrig","niedrige","gering","geringe"]}}});var Jfe,Xfe=y(()=>{Jfe={code:"ru",name:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",chronoLocale:"ru",dateTriggers:{due:["\u0441\u0440\u043E\u043A","\u0434\u0435\u0434\u043B\u0430\u0439\u043D","\u0434\u043E","\u043A","\u0441\u0434\u0430\u0442\u044C \u0434\u043E"],scheduled:["\u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u043D\u0430","\u043D\u0430\u0447\u0430\u0442\u044C","\u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u043D\u0430\u0434","\u043D\u0430"]},recurrence:{frequencies:{daily:["\u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E","\u043A\u0430\u0436\u0434\u044B\u0439 \u0434\u0435\u043D\u044C","\u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0439","\u043A\u0430\u0436\u0434\u043E\u0434\u043D\u0435\u0432\u043D\u044B\u0439"],weekly:["\u0435\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E","\u043A\u0430\u0436\u0434\u0443\u044E \u043D\u0435\u0434\u0435\u043B\u044E","\u0435\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u044B\u0439"],monthly:["\u0435\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E","\u043A\u0430\u0436\u0434\u044B\u0439 \u043C\u0435\u0441\u044F\u0446","\u0435\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u044B\u0439"],yearly:["\u0435\u0436\u0435\u0433\u043E\u0434\u043D\u043E","\u043A\u0430\u0436\u0434\u044B\u0439 \u0433\u043E\u0434","\u0435\u0436\u0435\u0433\u043E\u0434\u043D\u044B\u0439"]},every:["\u043A\u0430\u0436\u0434\u044B\u0439","\u043A\u0430\u0436\u0434\u0443\u044E","\u043A\u0430\u0436\u0434\u043E\u0435","\u0432\u0441\u0435"],other:["\u0434\u0440\u0443\u0433\u043E\u0439","\u0434\u0440\u0443\u0433\u0443\u044E","\u0434\u0440\u0443\u0433\u043E\u0435"],weekdays:{monday:["\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A"],tuesday:["\u0432\u0442\u043E\u0440\u043D\u0438\u043A"],wednesday:["\u0441\u0440\u0435\u0434\u0430"],thursday:["\u0447\u0435\u0442\u0432\u0435\u0440\u0433"],friday:["\u043F\u044F\u0442\u043D\u0438\u0446\u0430"],saturday:["\u0441\u0443\u0431\u0431\u043E\u0442\u0430"],sunday:["\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435"]},pluralWeekdays:{monday:["\u043F\u043E \u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A\u0430\u043C"],tuesday:["\u043F\u043E \u0432\u0442\u043E\u0440\u043D\u0438\u043A\u0430\u043C"],wednesday:["\u043F\u043E \u0441\u0440\u0435\u0434\u0430\u043C"],thursday:["\u043F\u043E \u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430\u043C"],friday:["\u043F\u043E \u043F\u044F\u0442\u043D\u0438\u0446\u0430\u043C"],saturday:["\u043F\u043E \u0441\u0443\u0431\u0431\u043E\u0442\u0430\u043C"],sunday:["\u043F\u043E \u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u044F\u043C"]},ordinals:{first:["\u043F\u0435\u0440\u0432\u044B\u0439","\u043F\u0435\u0440\u0432\u0430\u044F","\u043F\u0435\u0440\u0432\u043E\u0435"],second:["\u0432\u0442\u043E\u0440\u043E\u0439","\u0432\u0442\u043E\u0440\u0430\u044F","\u0432\u0442\u043E\u0440\u043E\u0435"],third:["\u0442\u0440\u0435\u0442\u0438\u0439","\u0442\u0440\u0435\u0442\u044C\u044F","\u0442\u0440\u0435\u0442\u044C\u0435"],fourth:["\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044B\u0439","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0430\u044F","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435"],last:["\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439","\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F","\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0435"]},periods:{day:["\u0434\u0435\u043D\u044C","\u0434\u043D\u0438"],week:["\u043D\u0435\u0434\u0435\u043B\u044F","\u043D\u0435\u0434\u0435\u043B\u0438"],month:["\u043C\u0435\u0441\u044F\u0446","\u043C\u0435\u0441\u044F\u0446\u044B"],year:["\u0433\u043E\u0434","\u0433\u043E\u0434\u044B"]}},timeEstimate:{hours:["\u0447","\u0447\u0430\u0441","\u0447\u0430\u0441\u0430","\u0447\u0430\u0441\u043E\u0432"],minutes:["\u043C","\u043C\u0438\u043D","\u043C\u0438\u043D\u0443\u0442\u0430","\u043C\u0438\u043D\u0443\u0442\u044B","\u043C\u0438\u043D\u0443\u0442"]},fallbackStatus:{open:["\u043E\u0442\u043A\u0440\u044B\u0442\u043E","\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044E","\u043D\u043E\u0432\u043E\u0435","todo"],inProgress:["\u0432 \u0440\u0430\u0431\u043E\u0442\u0435","\u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F","\u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435"],done:["\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E","\u0433\u043E\u0442\u043E\u0432\u043E","\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E","\u0441\u0434\u0435\u043B\u0430\u043D\u043E"],cancelled:["\u043E\u0442\u043C\u0435\u043D\u0435\u043D\u043E","\u043E\u0442\u043C\u0435\u043D\u0451\u043D","\u043E\u0442\u043C\u0435\u043D\u0435\u043D\u0430"],waiting:["\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u0435","\u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u043E","\u043D\u0430 \u043F\u0430\u0443\u0437\u0435"]},fallbackPriority:{urgent:["\u0441\u0440\u043E\u0447\u043D\u043E","\u043A\u0440\u0438\u0442\u0438\u0447\u043D\u043E","\u044D\u043A\u0441\u0442\u0440\u0435\u043D\u043D\u043E","\u043D\u0435\u043C\u0435\u0434\u043B\u0435\u043D\u043D\u043E"],high:["\u0432\u044B\u0441\u043E\u043A\u0438\u0439","\u0432\u044B\u0441\u043E\u043A\u0430\u044F","\u0432\u0430\u0436\u043D\u043E","\u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u043D\u043E"],normal:["\u043D\u043E\u0440\u043C\u0430\u043B\u044C\u043D\u044B\u0439","\u043D\u043E\u0440\u043C\u0430\u043B\u044C\u043D\u0430\u044F","\u0441\u0440\u0435\u0434\u043D\u0438\u0439","\u0441\u0440\u0435\u0434\u043D\u044F\u044F"],low:["\u043D\u0438\u0437\u043A\u0438\u0439","\u043D\u0438\u0437\u043A\u0430\u044F","\u043D\u0435\u0432\u0430\u0436\u043D\u043E","\u043C\u043E\u0436\u043D\u043E \u043F\u043E\u0437\u0436\u0435"]}}});var ehe,the=y(()=>{ehe={code:"zh",name:"\u4E2D\u6587",chronoLocale:"zh",dateTriggers:{due:["\u622A\u6B62","\u5230\u671F","\u671F\u9650","\u5728","\u4E4B\u524D"],scheduled:["\u5B89\u6392\u5728","\u8BA1\u5212\u5728","\u5F00\u59CB\u5728","\u5728"]},recurrence:{frequencies:{daily:["\u6BCF\u5929","\u6BCF\u65E5","\u5929\u5929","\u65E5\u5E38"],weekly:["\u6BCF\u5468","\u6BCF\u661F\u671F","\u5468\u5468"],monthly:["\u6BCF\u6708","\u6BCF\u4E2A\u6708","\u6708\u6708"],yearly:["\u6BCF\u5E74","\u5E74\u5E74","\u6BCF\u4E00\u5E74"]},every:["\u6BCF","\u6BCF\u4E2A","\u6BCF\u4E00\u4E2A"],other:["\u5176\u4ED6","\u53E6\u4E00\u4E2A"],weekdays:{monday:["\u5468\u4E00","\u661F\u671F\u4E00","\u793C\u62DC\u4E00"],tuesday:["\u5468\u4E8C","\u661F\u671F\u4E8C","\u793C\u62DC\u4E8C"],wednesday:["\u5468\u4E09","\u661F\u671F\u4E09","\u793C\u62DC\u4E09"],thursday:["\u5468\u56DB","\u661F\u671F\u56DB","\u793C\u62DC\u56DB"],friday:["\u5468\u4E94","\u661F\u671F\u4E94","\u793C\u62DC\u4E94"],saturday:["\u5468\u516D","\u661F\u671F\u516D","\u793C\u62DC\u516D"],sunday:["\u5468\u65E5","\u661F\u671F\u65E5","\u793C\u62DC\u65E5"]},pluralWeekdays:{monday:["\u5468\u4E00","\u661F\u671F\u4E00","\u793C\u62DC\u4E00"],tuesday:["\u5468\u4E8C","\u661F\u671F\u4E8C","\u793C\u62DC\u4E8C"],wednesday:["\u5468\u4E09","\u661F\u671F\u4E09","\u793C\u62DC\u4E09"],thursday:["\u5468\u56DB","\u661F\u671F\u56DB","\u793C\u62DC\u56DB"],friday:["\u5468\u4E94","\u661F\u671F\u4E94","\u793C\u62DC\u4E94"],saturday:["\u5468\u516D","\u661F\u671F\u516D","\u793C\u62DC\u516D"],sunday:["\u5468\u65E5","\u661F\u671F\u65E5","\u793C\u62DC\u65E5"]},ordinals:{first:["\u7B2C\u4E00\u4E2A","\u7B2C\u4E00","\u9996\u4E2A"],second:["\u7B2C\u4E8C\u4E2A","\u7B2C\u4E8C"],third:["\u7B2C\u4E09\u4E2A","\u7B2C\u4E09"],fourth:["\u7B2C\u56DB\u4E2A","\u7B2C\u56DB"],last:["\u6700\u540E\u4E00\u4E2A","\u6700\u540E","\u672B\u5C3E"]},periods:{day:["\u5929","\u65E5"],week:["\u5468","\u661F\u671F"],month:["\u6708","\u4E2A\u6708"],year:["\u5E74"]}},timeEstimate:{hours:["\u5C0F\u65F6","\u65F6","\u4E2A\u5C0F\u65F6"],minutes:["\u5206\u949F","\u5206","\u4E2A\u5206\u949F"]},fallbackStatus:{open:["\u5F85\u529E","\u672A\u5B8C\u6210","\u5F00\u653E","\u65B0\u5EFA"],inProgress:["\u8FDB\u884C\u4E2D","\u6B63\u5728\u5904\u7406","\u5904\u7406\u4E2D","\u5DE5\u4F5C\u4E2D"],done:["\u5B8C\u6210","\u5DF2\u5B8C\u6210","\u7ED3\u675F","\u641E\u5B9A"],cancelled:["\u53D6\u6D88","\u5DF2\u53D6\u6D88","\u5E9F\u5F03"],waiting:["\u7B49\u5F85","\u6682\u505C","\u963B\u585E","\u5F85\u5B9A"]},fallbackPriority:{urgent:["\u7D27\u6025","\u6025\u8FEB","\u7ACB\u5373","\u9A6C\u4E0A"],high:["\u9AD8","\u91CD\u8981","\u9AD8\u4F18\u5148\u7EA7"],normal:["\u6B63\u5E38","\u666E\u901A","\u4E2D\u7B49","\u6807\u51C6"],low:["\u4F4E","\u4E0D\u91CD\u8981","\u4F4E\u4F18\u5148\u7EA7","\u6B21\u8981"]}}});var rhe,nhe=y(()=>{rhe={code:"ja",name:"\u65E5\u672C\u8A9E",chronoLocale:"ja",dateTriggers:{due:["\u671F\u9650","\u7DE0\u5207","\u3006\u5207","\u307E\u3067","\u307E\u3067\u306B","\u306B"],scheduled:["\u4E88\u5B9A","\u8A08\u753B","\u958B\u59CB","\u304B\u3089","\u306B\u958B\u59CB","\u3092\u958B\u59CB"]},recurrence:{frequencies:{daily:["\u6BCE\u65E5","\u65E5\u3005","\u6BCE\u65E5\u6BCE\u65E5","\u9023\u65E5"],weekly:["\u6BCE\u9031","\u9031\u6BCE","\u9031\u4E00","\u6BCE\u9031\u6BCE\u9031"],monthly:["\u6BCE\u6708","\u6708\u6BCE","\u6708\u4E00","\u6BCE\u6708\u6BCE\u6708"],yearly:["\u6BCE\u5E74","\u5E74\u6BCE","\u5E74\u4E00","\u6BCE\u5E74\u6BCE\u5E74","\u5E74\u6B21"]},every:["\u6BCE","\u5404","\u5168\u3066"],other:["\u4ED6\u306E","\u5225\u306E","\u7570\u306A\u308B"],weekdays:{monday:["\u6708\u66DC\u65E5","\u6708\u66DC","\u6708","\u3052\u3064\u3088\u3046\u3073"],tuesday:["\u706B\u66DC\u65E5","\u706B\u66DC","\u706B","\u304B\u3088\u3046\u3073"],wednesday:["\u6C34\u66DC\u65E5","\u6C34\u66DC","\u6C34","\u3059\u3044\u3088\u3046\u3073"],thursday:["\u6728\u66DC\u65E5","\u6728\u66DC","\u6728","\u3082\u304F\u3088\u3046\u3073"],friday:["\u91D1\u66DC\u65E5","\u91D1\u66DC","\u91D1","\u304D\u3093\u3088\u3046\u3073"],saturday:["\u571F\u66DC\u65E5","\u571F\u66DC","\u571F","\u3069\u3088\u3046\u3073"],sunday:["\u65E5\u66DC\u65E5","\u65E5\u66DC","\u65E5","\u306B\u3061\u3088\u3046\u3073"]},pluralWeekdays:{monday:["\u6708\u66DC\u65E5","\u6708\u66DC","\u6708","\u3052\u3064\u3088\u3046\u3073"],tuesday:["\u706B\u66DC\u65E5","\u706B\u66DC","\u706B","\u304B\u3088\u3046\u3073"],wednesday:["\u6C34\u66DC\u65E5","\u6C34\u66DC","\u6C34","\u3059\u3044\u3088\u3046\u3073"],thursday:["\u6728\u66DC\u65E5","\u6728\u66DC","\u6728","\u3082\u304F\u3088\u3046\u3073"],friday:["\u91D1\u66DC\u65E5","\u91D1\u66DC","\u91D1","\u304D\u3093\u3088\u3046\u3073"],saturday:["\u571F\u66DC\u65E5","\u571F\u66DC","\u571F","\u3069\u3088\u3046\u3073"],sunday:["\u65E5\u66DC\u65E5","\u65E5\u66DC","\u65E5","\u306B\u3061\u3088\u3046\u3073"]},ordinals:{first:["\u6700\u521D\u306E","\u7B2C\u4E00\u306E","\u4E00\u756A\u76EE\u306E","\u521D\u56DE"],second:["\u4E8C\u756A\u76EE\u306E","\u7B2C\u4E8C\u306E","\u6B21\u306E"],third:["\u4E09\u756A\u76EE\u306E","\u7B2C\u4E09\u306E"],fourth:["\u56DB\u756A\u76EE\u306E","\u7B2C\u56DB\u306E"],last:["\u6700\u5F8C\u306E","\u6700\u7D42\u306E","\u7D42\u308F\u308A\u306E"]},periods:{day:["\u65E5","\u65E5\u9593"],week:["\u9031","\u9031\u9593"],month:["\u6708","\u6708\u9593","\u30F6\u6708"],year:["\u5E74","\u5E74\u9593"]}},timeEstimate:{hours:["\u6642\u9593","\u6642","\u3058\u304B\u3093"],minutes:["\u5206","\u5206\u9593","\u3075\u3093","\u3077\u3093"]},fallbackStatus:{open:["\u672A\u7740\u624B","\u65B0\u898F","\u30AA\u30FC\u30D7\u30F3","\u958B\u59CB\u524D","\u5F85\u6A5F"],inProgress:["\u9032\u884C\u4E2D","\u4F5C\u696D\u4E2D","\u5B9F\u884C\u4E2D","\u51E6\u7406\u4E2D","\u9032\u884C"],done:["\u5B8C\u4E86","\u7D42\u4E86","\u6E08\u307F","\u7D42\u308F\u308A","\u9054\u6210"],cancelled:["\u30AD\u30E3\u30F3\u30BB\u30EB","\u4E2D\u6B62","\u53D6\u6D88","\u5EC3\u6B62","\u505C\u6B62"],waiting:["\u5F85\u6A5F","\u4FDD\u7559","\u30D6\u30ED\u30C3\u30AF","\u4E00\u6642\u505C\u6B62","\u5F85\u3061"]},fallbackPriority:{urgent:["\u7DCA\u6025","\u81F3\u6025","\u6025\u52D9","\u6700\u512A\u5148","\u3059\u3050\u306B"],high:["\u9AD8","\u91CD\u8981","\u9AD8\u512A\u5148\u5EA6","\u91CD\u70B9"],normal:["\u666E\u901A","\u901A\u5E38","\u6A19\u6E96","\u4E00\u822C","\u30CE\u30FC\u30DE\u30EB"],low:["\u4F4E","\u8EFD\u5FAE","\u5F8C\u56DE\u3057","\u4F4E\u512A\u5148\u5EA6","\u4F59\u88D5"]}}});var ahe,ihe=y(()=>{ahe={code:"it",name:"Italiano",chronoLocale:"it",dateTriggers:{due:["scadenza","entro","entro il","deve essere fatto entro","per il","termine"],scheduled:["programmato per","programmato il","iniziare il","lavorare su","il","per"]},recurrence:{frequencies:{daily:["giornaliero","giornaliera","quotidiano","quotidiana","ogni giorno","tutti i giorni","giornalmente"],weekly:["settimanale","ogni settimana","tutte le settimane","settimanalmente","alla settimana"],monthly:["mensile","ogni mese","tutti i mesi","mensilmente","al mese"],yearly:["annuale","ogni anno","tutti gli anni","annualmente","all'anno"]},every:["ogni","tutti i","tutte le"],other:["altro","altra","altri","altre"],weekdays:{monday:["luned\xEC"],tuesday:["marted\xEC"],wednesday:["mercoled\xEC"],thursday:["gioved\xEC"],friday:["venerd\xEC"],saturday:["sabato"],sunday:["domenica"]},pluralWeekdays:{monday:["luned\xEC"],tuesday:["marted\xEC"],wednesday:["mercoled\xEC"],thursday:["gioved\xEC"],friday:["venerd\xEC"],saturday:["sabati"],sunday:["domeniche"]},ordinals:{first:["primo","prima"],second:["secondo","seconda"],third:["terzo","terza"],fourth:["quarto","quarta"],last:["ultimo","ultima"]},periods:{day:["giorno","giorni"],week:["settimana","settimane"],month:["mese","mesi"],year:["anno","anni"]}},timeEstimate:{hours:["h","hr","ore","ora","o"],minutes:["m","min","minuto","minuti"]},fallbackStatus:{open:["da fare","aperto","pendente","todo","in sospeso"],inProgress:["in corso","in progresso","facendo","lavorando"],done:["fatto","completato","finito","terminato","chiuso"],cancelled:["cancellato","annullato","rimosso"],waiting:["in attesa","aspettando","bloccato","fermo"]},fallbackPriority:{urgent:["urgente","critico","critica","massimo","massima","prioritario","prioritaria"],high:["alto","alta","importante","elevato","elevata"],normal:["medio","media","normale","regolare","standard"],low:["basso","bassa","minore","minimo","minima"]}}});var she,ohe=y(()=>{she={code:"nl",name:"Nederlands",chronoLocale:"nl",dateTriggers:{due:["vervalt op","deadline","moet klaar zijn op","tegen","uiterlijk","voor"],scheduled:["gepland voor","gepland op","beginnen op","werken aan","op","voor"]},recurrence:{frequencies:{daily:["dagelijks","elke dag","alle dagen","per dag"],weekly:["wekelijks","elke week","alle weken","per week"],monthly:["maandelijks","elke maand","alle maanden","per maand"],yearly:["jaarlijks","elk jaar","alle jaren","per jaar"]},every:["elke","alle","iedere"],other:["andere","ander"],weekdays:{monday:["maandag"],tuesday:["dinsdag"],wednesday:["woensdag"],thursday:["donderdag"],friday:["vrijdag"],saturday:["zaterdag"],sunday:["zondag"]},pluralWeekdays:{monday:["maandagen"],tuesday:["dinsdagen"],wednesday:["woensdagen"],thursday:["donderdagen"],friday:["vrijdagen"],saturday:["zaterdagen"],sunday:["zondagen"]},ordinals:{first:["eerste"],second:["tweede"],third:["derde"],fourth:["vierde"],last:["laatste"]},periods:{day:["dag","dagen"],week:["week","weken"],month:["maand","maanden"],year:["jaar","jaren"]}},timeEstimate:{hours:["u","uur","uren","h"],minutes:["m","min","minuut","minuten"]},fallbackStatus:{open:["te doen","open","nog te doen","todo","openstaand"],inProgress:["bezig","in behandeling","aan het werk","lopend","in uitvoering"],done:["klaar","voltooid","gedaan","afgerond","gesloten"],cancelled:["geannuleerd","afgezegd","ingetrokken"],waiting:["wachtend","in de wacht","geblokkeerd","uitgesteld"]},fallbackPriority:{urgent:["urgent","kritiek","hoogste","spoed","direct"],high:["hoog","hoge","belangrijk","belangrijke"],normal:["normaal","normale","gemiddeld","standaard"],low:["laag","lage","klein","kleine","onbelangrijk"]}}});var lhe,che=y(()=>{lhe={code:"pt",name:"Portugu\xEAs",chronoLocale:"pt",dateTriggers:{due:["vencimento","prazo","deve estar pronto at\xE9","at\xE9","para","limite"],scheduled:["programado para","agendado para","come\xE7ar em","trabalhar em","em","no"]},recurrence:{frequencies:{daily:["di\xE1rio","di\xE1ria","diariamente","todos os dias","cada dia","por dia"],weekly:["semanal","semanalmente","toda semana","todas as semanas","por semana"],monthly:["mensal","mensalmente","todo m\xEAs","todos os meses","por m\xEAs"],yearly:["anual","anualmente","todo ano","todos os anos","por ano"]},every:["todo","toda","todos","todas","cada"],other:["outro","outra","outros","outras"],weekdays:{monday:["segunda","segunda-feira"],tuesday:["ter\xE7a","ter\xE7a-feira"],wednesday:["quarta","quarta-feira"],thursday:["quinta","quinta-feira"],friday:["sexta","sexta-feira"],saturday:["s\xE1bado"],sunday:["domingo"]},pluralWeekdays:{monday:["segundas","segundas-feiras"],tuesday:["ter\xE7as","ter\xE7as-feiras"],wednesday:["quartas","quartas-feiras"],thursday:["quintas","quintas-feiras"],friday:["sextas","sextas-feiras"],saturday:["s\xE1bados"],sunday:["domingos"]},ordinals:{first:["primeiro","primeira"],second:["segundo","segunda"],third:["terceiro","terceira"],fourth:["quarto","quarta"],last:["\xFAltimo","\xFAltima"]},periods:{day:["dia","dias"],week:["semana","semanas"],month:["m\xEAs","meses"],year:["ano","anos"]}},timeEstimate:{hours:["h","hr","hora","horas"],minutes:["m","min","minuto","minutos"]},fallbackStatus:{open:["a fazer","pendente","aberto","todo","por fazer"],inProgress:["em andamento","em progresso","fazendo","trabalhando","executando"],done:["feito","conclu\xEDdo","terminado","finalizado","completo"],cancelled:["cancelado","anulado","suspenso"],waiting:["aguardando","esperando","bloqueado","em espera"]},fallbackPriority:{urgent:["urgente","cr\xEDtico","cr\xEDtica","m\xE1ximo","m\xE1xima","priorit\xE1rio","priorit\xE1ria"],high:["alto","alta","importante","elevado","elevada"],normal:["m\xE9dio","m\xE9dia","normal","regular","padr\xE3o"],low:["baixo","baixa","menor","m\xEDnimo","m\xEDnima"]}}});var dhe,uhe=y(()=>{dhe={code:"sv",name:"Svenska",chronoLocale:"sv",dateTriggers:{due:["f\xF6rfaller","deadline","m\xE5ste vara klar","senast","till","innan"],scheduled:["schemalagd","planerad f\xF6r","b\xF6rja","arbeta med","den","p\xE5"]},recurrence:{frequencies:{daily:["dagligen","varje dag","alla dagar","per dag"],weekly:["veckovis","varje vecka","alla veckor","per vecka"],monthly:["m\xE5nadsvis","varje m\xE5nad","alla m\xE5nader","per m\xE5nad"],yearly:["\xE5rligen","varje \xE5r","alla \xE5r","per \xE5r"]},every:["varje","alla","var"],other:["annan","annat","andra"],weekdays:{monday:["m\xE5ndag"],tuesday:["tisdag"],wednesday:["onsdag"],thursday:["torsdag"],friday:["fredag"],saturday:["l\xF6rdag"],sunday:["s\xF6ndag"]},pluralWeekdays:{monday:["m\xE5ndagar"],tuesday:["tisdagar"],wednesday:["onsdagar"],thursday:["torsdagar"],friday:["fredagar"],saturday:["l\xF6rdagar"],sunday:["s\xF6ndagar"]},ordinals:{first:["f\xF6rsta"],second:["andra"],third:["tredje"],fourth:["fj\xE4rde"],last:["sista"]},periods:{day:["dag","dagar"],week:["vecka","veckor"],month:["m\xE5nad","m\xE5nader"],year:["\xE5r"]}},timeEstimate:{hours:["t","tim","timme","timmar","h"],minutes:["m","min","minut","minuter"]},fallbackStatus:{open:["att g\xF6ra","\xF6ppen","kvar","todo","v\xE4ntande"],inProgress:["p\xE5g\xE5ende","arbetar","g\xF6r","i process","under arbete"],done:["klar","f\xE4rdig","slutf\xF6rd","avslutad","gjord"],cancelled:["avbruten","inst\xE4lld","avbokad"],waiting:["v\xE4ntar","blockerad","pausad","vilande"]},fallbackPriority:{urgent:["br\xE5dskande","kritisk","h\xF6gsta","akut","omedelbar"],high:["h\xF6g","viktig","f\xF6rh\xF6jd","prioriterad"],normal:["normal","medel","standard","vanlig"],low:["l\xE5g","mindre","minimal","obetydlig"]}}});var phe,mhe=y(()=>{phe={code:"uk",name:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430",chronoLocale:"uk",dateTriggers:{due:["\u0442\u0435\u0440\u043C\u0456\u043D","\u0434\u0435\u0434\u043B\u0430\u0439\u043D","\u043C\u0430\u0454 \u0431\u0443\u0442\u0438 \u0433\u043E\u0442\u043E\u0432\u043E \u0434\u043E","\u0434\u043E","\u043D\u0435 \u043F\u0456\u0437\u043D\u0456\u0448\u0435","\u043A\u0440\u0430\u0439\u043D\u0456\u0439 \u0442\u0435\u0440\u043C\u0456\u043D"],scheduled:["\u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u043E \u043D\u0430","\u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0438\u0439","\u043F\u043E\u0447\u0430\u0442\u0438","\u043F\u0440\u0430\u0446\u044E\u0432\u0430\u0442\u0438 \u043D\u0430\u0434","\u043D\u0430","\u0432"]},recurrence:{frequencies:{daily:["\u0449\u043E\u0434\u043D\u044F","\u0449\u043E\u0434\u0435\u043D\u043D\u043E","\u043A\u043E\u0436\u0435\u043D \u0434\u0435\u043D\u044C","\u0432\u0441\u0456 \u0434\u043D\u0456","\u043D\u0430 \u0434\u0435\u043D\u044C"],weekly:["\u0449\u043E\u0442\u0438\u0436\u043D\u044F","\u0449\u043E\u0442\u0438\u0436\u043D\u0435\u0432\u043E","\u043A\u043E\u0436\u0435\u043D \u0442\u0438\u0436\u0434\u0435\u043D\u044C","\u0432\u0441\u0456 \u0442\u0438\u0436\u043D\u0456","\u043D\u0430 \u0442\u0438\u0436\u0434\u0435\u043D\u044C"],monthly:["\u0449\u043E\u043C\u0456\u0441\u044F\u0446\u044F","\u0449\u043E\u043C\u0456\u0441\u044F\u0447\u043D\u043E","\u043A\u043E\u0436\u0435\u043D \u043C\u0456\u0441\u044F\u0446\u044C","\u0432\u0441\u0456 \u043C\u0456\u0441\u044F\u0446\u0456","\u043D\u0430 \u043C\u0456\u0441\u044F\u0446\u044C"],yearly:["\u0449\u043E\u0440\u043E\u043A\u0443","\u0449\u043E\u0440\u0456\u0447\u043D\u043E","\u043A\u043E\u0436\u0435\u043D \u0440\u0456\u043A","\u0432\u0441\u0456 \u0440\u043E\u043A\u0438","\u043D\u0430 \u0440\u0456\u043A"]},every:["\u043A\u043E\u0436\u0435\u043D","\u043A\u043E\u0436\u043D\u0430","\u043A\u043E\u0436\u043D\u0435","\u0432\u0441\u0456"],other:["\u0456\u043D\u0448\u0438\u0439","\u0456\u043D\u0448\u0430","\u0456\u043D\u0448\u0435","\u0456\u043D\u0448\u0456"],weekdays:{monday:["\u043F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A"],tuesday:["\u0432\u0456\u0432\u0442\u043E\u0440\u043E\u043A"],wednesday:["\u0441\u0435\u0440\u0435\u0434\u0430"],thursday:["\u0447\u0435\u0442\u0432\u0435\u0440"],friday:["\u043F'\u044F\u0442\u043D\u0438\u0446\u044F"],saturday:["\u0441\u0443\u0431\u043E\u0442\u0430"],sunday:["\u043D\u0435\u0434\u0456\u043B\u044F"]},pluralWeekdays:{monday:["\u043F\u043E\u043D\u0435\u0434\u0456\u043B\u043A\u0438"],tuesday:["\u0432\u0456\u0432\u0442\u043E\u0440\u043A\u0438"],wednesday:["\u0441\u0435\u0440\u0435\u0434\u0438"],thursday:["\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0438"],friday:["\u043F'\u044F\u0442\u043D\u0438\u0446\u0456"],saturday:["\u0441\u0443\u0431\u043E\u0442\u0438"],sunday:["\u043D\u0435\u0434\u0456\u043B\u0456"]},ordinals:{first:["\u043F\u0435\u0440\u0448\u0438\u0439","\u043F\u0435\u0440\u0448\u0430","\u043F\u0435\u0440\u0448\u0435"],second:["\u0434\u0440\u0443\u0433\u0438\u0439","\u0434\u0440\u0443\u0433\u0430","\u0434\u0440\u0443\u0433\u0435"],third:["\u0442\u0440\u0435\u0442\u0456\u0439","\u0442\u0440\u0435\u0442\u044F","\u0442\u0440\u0435\u0442\u0454"],fourth:["\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438\u0439","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0430","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0435"],last:["\u043E\u0441\u0442\u0430\u043D\u043D\u0456\u0439","\u043E\u0441\u0442\u0430\u043D\u043D\u044F","\u043E\u0441\u0442\u0430\u043D\u043D\u0454"]},periods:{day:["\u0434\u0435\u043D\u044C","\u0434\u043D\u0456","\u0434\u043D\u0456\u0432"],week:["\u0442\u0438\u0436\u0434\u0435\u043D\u044C","\u0442\u0438\u0436\u043D\u0456","\u0442\u0438\u0436\u043D\u0456\u0432"],month:["\u043C\u0456\u0441\u044F\u0446\u044C","\u043C\u0456\u0441\u044F\u0446\u0456","\u043C\u0456\u0441\u044F\u0446\u0456\u0432"],year:["\u0440\u0456\u043A","\u0440\u043E\u043A\u0438","\u0440\u043E\u043A\u0456\u0432"]}},timeEstimate:{hours:["\u0433","\u0433\u043E\u0434","\u0433\u043E\u0434\u0438\u043D\u0430","\u0433\u043E\u0434\u0438\u043D\u0438","\u0433\u043E\u0434\u0438\u043D"],minutes:["\u0445\u0432","\u043C\u0456\u043D","\u0445\u0432\u0438\u043B\u0438\u043D\u0430","\u0445\u0432\u0438\u043B\u0438\u043D\u0438","\u0445\u0432\u0438\u043B\u0438\u043D"]},fallbackStatus:{open:["\u0437\u0440\u043E\u0431\u0438\u0442\u0438","\u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438\u0439","\u043E\u0447\u0456\u043A\u0443\u0454","todo","\u0432 \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u0456"],inProgress:["\u0432 \u0440\u043E\u0431\u043E\u0442\u0456","\u0432\u0438\u043A\u043E\u043D\u0443\u0454\u0442\u044C\u0441\u044F","\u0440\u043E\u0431\u043B\u044E","\u043F\u0440\u0430\u0446\u044E\u044E","\u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0456"],done:["\u0433\u043E\u0442\u043E\u0432\u043E","\u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043E","\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E","\u0437\u0430\u043A\u0456\u043D\u0447\u0435\u043D\u043E","\u0437\u0440\u043E\u0431\u043B\u0435\u043D\u043E"],cancelled:["\u0441\u043A\u0430\u0441\u043E\u0432\u0430\u043D\u043E","\u0432\u0456\u0434\u043C\u0456\u043D\u0435\u043D\u043E","\u043F\u0440\u0438\u043F\u0438\u043D\u0435\u043D\u043E"],waiting:["\u0447\u0435\u043A\u0430\u044E","\u043E\u0447\u0456\u043A\u0443\u044E","\u0437\u0430\u0431\u043B\u043E\u043A\u043E\u0432\u0430\u043D\u043E","\u043F\u0440\u0438\u0437\u0443\u043F\u0438\u043D\u0435\u043D\u043E"]},fallbackPriority:{urgent:["\u0442\u0435\u0440\u043C\u0456\u043D\u043E\u0432\u043E","\u043A\u0440\u0438\u0442\u0438\u0447\u043D\u043E","\u043D\u0430\u0439\u0432\u0438\u0449\u0438\u0439","\u043D\u0435\u0432\u0456\u0434\u043A\u043B\u0430\u0434\u043D\u043E","\u043F\u0440\u0456\u043E\u0440\u0438\u0442\u0435\u0442\u043D\u043E"],high:["\u0432\u0438\u0441\u043E\u043A\u0438\u0439","\u0432\u0438\u0441\u043E\u043A\u0430","\u0432\u0430\u0436\u043B\u0438\u0432\u043E","\u043F\u0456\u0434\u0432\u0438\u0449\u0435\u043D\u0438\u0439"],normal:["\u0441\u0435\u0440\u0435\u0434\u043D\u0456\u0439","\u0441\u0435\u0440\u0435\u0434\u043D\u044F","\u043D\u043E\u0440\u043C\u0430\u043B\u044C\u043D\u043E","\u0437\u0432\u0438\u0447\u0430\u0439\u043D\u043E","\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E"],low:["\u043D\u0438\u0437\u044C\u043A\u0438\u0439","\u043D\u0438\u0437\u044C\u043A\u0430","\u043C\u0435\u043D\u0448\u0438\u0439","\u043C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0438\u0439","\u043D\u0435\u0437\u043D\u0430\u0447\u043D\u0438\u0439"]}}});var fhe=y(()=>{});function ghe(r){return hhe[r]||hhe.en}var hhe,iU=y(()=>{qfe();Yfe();Kfe();Qfe();Xfe();the();nhe();ihe();ohe();che();uhe();mhe();fhe();hhe={en:Vfe,es:Wfe,fr:Gfe,de:Zfe,ru:Jfe,zh:ehe,ja:rhe,it:ahe,nl:she,pt:lhe,sv:dhe,uk:phe}});var B_,sU=y(()=>{B_=class{constructor(e,t=[]){this.config=e,this.userFields=t,this.triggerMap=new Map,this.propertyMap=new Map,this.buildMaps()}buildMaps(){this.triggerMap.clear(),this.propertyMap.clear();for(let e of this.config.triggers)e.enabled&&(this.triggerMap.set(e.trigger,e),this.propertyMap.set(e.propertyId,e))}getTriggerForProperty(e){return this.propertyMap.get(e)}getPropertyForTrigger(e){var t;return(t=this.triggerMap.get(e))==null?void 0:t.propertyId}getAllEnabledTriggers(){return this.config.triggers.filter(e=>e.enabled)}getTriggersOrderedByLength(){return this.getAllEnabledTriggers().sort((e,t)=>t.trigger.length-e.trigger.length)}usesNativeTagSuggester(){let e=this.getTriggerForProperty("tags");return(e==null?void 0:e.trigger)==="#"&&(e==null?void 0:e.enabled)}getTagTrigger(){let e=this.getTriggerForProperty("tags");return e!=null&&e.enabled?e.trigger:void 0}getContextTrigger(){let e=this.getTriggerForProperty("contexts");return e!=null&&e.enabled?e.trigger:void 0}getProjectTrigger(){let e=this.getTriggerForProperty("projects");return e!=null&&e.enabled?e.trigger:void 0}getStatusTrigger(){let e=this.getTriggerForProperty("status");return e!=null&&e.enabled?e.trigger:void 0}getPriorityTrigger(){let e=this.getTriggerForProperty("priority");return e!=null&&e.enabled?e.trigger:void 0}getUserField(e){return this.userFields.find(t=>t.id===e)}isUserField(e){return this.userFields.some(t=>t.id===e)}getSuggesterType(e){if(e==="tags")return this.usesNativeTagSuggester()?"native-tag":"list";if(e==="contexts")return"list";if(e==="projects")return"file";if(e==="status")return"status";if(e==="priority")return"priority";let t=this.getUserField(e);if(t)switch(t.type){case"text":return t.autosuggestFilter?"file":"list";case"list":return"list";case"boolean":return"boolean";default:return"none"}return"none"}updateConfig(e){this.config=e,this.buildMaps()}updateUserFields(e){this.userFields=e}}});var yhe=x((oU,lU)=>{(function(r,e){typeof oU=="object"&&typeof lU!="undefined"?lU.exports=e():typeof define=="function"&&define.amd?define(e):(r=typeof globalThis!="undefined"?globalThis:r||self).dayjs_plugin_quarterOfYear=e()})(oU,(function(){"use strict";var r="month",e="quarter";return function(t,n){var a=n.prototype;a.quarter=function(o){return this.$utils().u(o)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(o-1))};var i=a.add;a.add=function(o,l){return o=Number(o),this.$utils().p(l)===e?this.add(3*o,r):i.bind(this)(o,l)};var s=a.startOf;a.startOf=function(o,l){var c=this.$utils(),d=!!c.u(l)||l;if(c.p(o)===e){var u=this.quarter()-1;return d?this.month(3*u).startOf(r).startOf("day"):this.month(3*u+2).endOf(r).endOf("day")}return s.bind(this)(o,l)}}}))});var tr=x((cU,dU)=>{(function(r,e){typeof cU=="object"&&typeof dU!="undefined"?dU.exports=e():typeof define=="function"&&define.amd?define(e):(r=typeof globalThis!="undefined"?globalThis:r||self).dayjs=e()})(cU,(function(){"use strict";var r=1e3,e=6e4,t=36e5,n="millisecond",a="second",i="minute",s="hour",o="day",l="week",c="month",d="quarter",u="year",p="date",m="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(R){var A=["th","st","nd","rd"],F=R%100;return"["+R+(A[(F-20)%10]||A[F]||A[0])+"]"}},v=function(R,A,F){var $=String(R);return!$||$.length>=A?R:""+Array(A+1-$.length).join(F)+R},b={s:v,z:function(R){var A=-R.utcOffset(),F=Math.abs(A),$=Math.floor(F/60),B=F%60;return(A<=0?"+":"-")+v($,2,"0")+":"+v(B,2,"0")},m:function R(A,F){if(A.date()<F.date())return-R(F,A);var $=12*(F.year()-A.year())+(F.month()-A.month()),B=A.clone().add($,c),ue=F-B<0,Q=A.clone().add($+(ue?-1:1),c);return+(-($+(F-B)/(ue?B-Q:Q-B))||0)},a:function(R){return R<0?Math.ceil(R)||0:Math.floor(R)},p:function(R){return{M:c,y:u,w:l,d:o,D:p,h:s,m:i,s:a,ms:n,Q:d}[R]||String(R||"").toLowerCase().replace(/s$/,"")},u:function(R){return R===void 0}},k="en",w={};w[k]=g;var S="$isDayjsObject",C=function(R){return R instanceof O||!(!R||!R[S])},E=function R(A,F,$){var B;if(!A)return k;if(typeof A=="string"){var ue=A.toLowerCase();w[ue]&&(B=ue),F&&(w[ue]=F,B=ue);var Q=A.split("-");if(!B&&Q.length>1)return R(Q[0])}else{var G=A.name;w[G]=A,B=G}return!$&&B&&(k=B),B||!$&&k},D=function(R,A){if(C(R))return R.clone();var F=typeof A=="object"?A:{};return F.date=R,F.args=arguments,new O(F)},P=b;P.l=E,P.i=C,P.w=function(R,A){return D(R,{locale:A.$L,utc:A.$u,x:A.$x,$offset:A.$offset})};var O=(function(){function R(F){this.$L=E(F.locale,null,!0),this.parse(F),this.$x=this.$x||F.x||{},this[S]=!0}var A=R.prototype;return A.parse=function(F){this.$d=(function($){var B=$.date,ue=$.utc;if(B===null)return new Date(NaN);if(P.u(B))return new Date;if(B instanceof Date)return new Date(B);if(typeof B=="string"&&!/Z$/i.test(B)){var Q=B.match(f);if(Q){var G=Q[2]-1||0,ie=(Q[7]||"0").substring(0,3);return ue?new Date(Date.UTC(Q[1],G,Q[3]||1,Q[4]||0,Q[5]||0,Q[6]||0,ie)):new Date(Q[1],G,Q[3]||1,Q[4]||0,Q[5]||0,Q[6]||0,ie)}}return new Date(B)})(F),this.init()},A.init=function(){var F=this.$d;this.$y=F.getFullYear(),this.$M=F.getMonth(),this.$D=F.getDate(),this.$W=F.getDay(),this.$H=F.getHours(),this.$m=F.getMinutes(),this.$s=F.getSeconds(),this.$ms=F.getMilliseconds()},A.$utils=function(){return P},A.isValid=function(){return this.$d.toString()!==m},A.isSame=function(F,$){var B=D(F);return this.startOf($)<=B&&B<=this.endOf($)},A.isAfter=function(F,$){return D(F)<this.startOf($)},A.isBefore=function(F,$){return this.endOf($)<D(F)},A.$g=function(F,$,B){return P.u(F)?this[$]:this.set(B,F)},A.unix=function(){return Math.floor(this.valueOf()/1e3)},A.valueOf=function(){return this.$d.getTime()},A.startOf=function(F,$){var B=this,ue=!!P.u($)||$,Q=P.p(F),G=function(Je,la){var ai=P.w(B.$u?Date.UTC(B.$y,la,Je):new Date(B.$y,la,Je),B);return ue?ai:ai.endOf(o)},ie=function(Je,la){return P.w(B.toDate()[Je].apply(B.toDate("s"),(ue?[0,0,0,0]:[23,59,59,999]).slice(la)),B)},Ee=this.$W,ee=this.$M,re=this.$D,et="set"+(this.$u?"UTC":"");switch(Q){case u:return ue?G(1,0):G(31,11);case c:return ue?G(1,ee):G(0,ee+1);case l:var fe=this.$locale().weekStart||0,ut=(Ee<fe?Ee+7:Ee)-fe;return G(ue?re-ut:re+(6-ut),ee);case o:case p:return ie(et+"Hours",0);case s:return ie(et+"Minutes",1);case i:return ie(et+"Seconds",2);case a:return ie(et+"Milliseconds",3);default:return this.clone()}},A.endOf=function(F){return this.startOf(F,!1)},A.$set=function(F,$){var B,ue=P.p(F),Q="set"+(this.$u?"UTC":""),G=(B={},B[o]=Q+"Date",B[p]=Q+"Date",B[c]=Q+"Month",B[u]=Q+"FullYear",B[s]=Q+"Hours",B[i]=Q+"Minutes",B[a]=Q+"Seconds",B[n]=Q+"Milliseconds",B)[ue],ie=ue===o?this.$D+($-this.$W):$;if(ue===c||ue===u){var Ee=this.clone().set(p,1);Ee.$d[G](ie),Ee.init(),this.$d=Ee.set(p,Math.min(this.$D,Ee.daysInMonth())).$d}else G&&this.$d[G](ie);return this.init(),this},A.set=function(F,$){return this.clone().$set(F,$)},A.get=function(F){return this[P.p(F)]()},A.add=function(F,$){var B,ue=this;F=Number(F);var Q=P.p($),G=function(ee){var re=D(ue);return P.w(re.date(re.date()+Math.round(ee*F)),ue)};if(Q===c)return this.set(c,this.$M+F);if(Q===u)return this.set(u,this.$y+F);if(Q===o)return G(1);if(Q===l)return G(7);var ie=(B={},B[i]=e,B[s]=t,B[a]=r,B)[Q]||1,Ee=this.$d.getTime()+F*ie;return P.w(Ee,this)},A.subtract=function(F,$){return this.add(-1*F,$)},A.format=function(F){var $=this,B=this.$locale();if(!this.isValid())return B.invalidDate||m;var ue=F||"YYYY-MM-DDTHH:mm:ssZ",Q=P.z(this),G=this.$H,ie=this.$m,Ee=this.$M,ee=B.weekdays,re=B.months,et=B.meridiem,fe=function(la,ai,_n,Bs){return la&&(la[ai]||la($,ue))||_n[ai].slice(0,Bs)},ut=function(la){return P.s(G%12||12,la,"0")},Je=et||function(la,ai,_n){var Bs=la<12?"AM":"PM";return _n?Bs.toLowerCase():Bs};return ue.replace(h,(function(la,ai){return ai||(function(_n){switch(_n){case"YY":return String($.$y).slice(-2);case"YYYY":return P.s($.$y,4,"0");case"M":return Ee+1;case"MM":return P.s(Ee+1,2,"0");case"MMM":return fe(B.monthsShort,Ee,re,3);case"MMMM":return fe(re,Ee);case"D":return $.$D;case"DD":return P.s($.$D,2,"0");case"d":return String($.$W);case"dd":return fe(B.weekdaysMin,$.$W,ee,2);case"ddd":return fe(B.weekdaysShort,$.$W,ee,3);case"dddd":return ee[$.$W];case"H":return String(G);case"HH":return P.s(G,2,"0");case"h":return ut(1);case"hh":return ut(2);case"a":return Je(G,ie,!0);case"A":return Je(G,ie,!1);case"m":return String(ie);case"mm":return P.s(ie,2,"0");case"s":return String($.$s);case"ss":return P.s($.$s,2,"0");case"SSS":return P.s($.$ms,3,"0");case"Z":return Q}return null})(la)||Q.replace(":","")}))},A.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},A.diff=function(F,$,B){var ue,Q=this,G=P.p($),ie=D(F),Ee=(ie.utcOffset()-this.utcOffset())*e,ee=this-ie,re=function(){return P.m(Q,ie)};switch(G){case u:ue=re()/12;break;case c:ue=re();break;case d:ue=re()/3;break;case l:ue=(ee-Ee)/6048e5;break;case o:ue=(ee-Ee)/864e5;break;case s:ue=ee/t;break;case i:ue=ee/e;break;case a:ue=ee/r;break;default:ue=ee}return B?ue:P.a(ue)},A.daysInMonth=function(){return this.endOf(c).$D},A.$locale=function(){return w[this.$L]},A.locale=function(F,$){if(!F)return this.$L;var B=this.clone(),ue=E(F,$,!0);return ue&&(B.$L=ue),B},A.clone=function(){return P.w(this.$d,this)},A.toDate=function(){return new Date(this.valueOf())},A.toJSON=function(){return this.isValid()?this.toISOString():null},A.toISOString=function(){return this.$d.toISOString()},A.toString=function(){return this.$d.toUTCString()},R})(),z=O.prototype;return D.prototype=z,[["$ms",n],["$s",a],["$m",i],["$H",s],["$W",o],["$M",c],["$y",u],["$D",p]].forEach((function(R){z[R[1]]=function(A){return this.$g(A,R[0],R[1])}})),D.extend=function(R,A){return R.$i||(R(A,O,D),R.$i=!0),D},D.locale=E,D.isDayjs=C,D.unix=function(R){return D(1e3*R)},D.en=w[k],D.Ls=w,D.p={},D}))});var H,Ye,Ys,Ht=y(()=>{(function(r){r[r.AM=0]="AM",r[r.PM=1]="PM"})(H||(H={}));(function(r){r[r.SUNDAY=0]="SUNDAY",r[r.MONDAY=1]="MONDAY",r[r.TUESDAY=2]="TUESDAY",r[r.WEDNESDAY=3]="WEDNESDAY",r[r.THURSDAY=4]="THURSDAY",r[r.FRIDAY=5]="FRIDAY",r[r.SATURDAY=6]="SATURDAY"})(Ye||(Ye={}));(function(r){r[r.JANUARY=1]="JANUARY",r[r.FEBRUARY=2]="FEBRUARY",r[r.MARCH=3]="MARCH",r[r.APRIL=4]="APRIL",r[r.MAY=5]="MAY",r[r.JUNE=6]="JUNE",r[r.JULY=7]="JULY",r[r.AUGUST=8]="AUGUST",r[r.SEPTEMBER=9]="SEPTEMBER",r[r.OCTOBER=10]="OCTOBER",r[r.NOVEMBER=11]="NOVEMBER",r[r.DECEMBER=12]="DECEMBER"})(Ys||(Ys={}))});function vhe(r,e){r.assign("day",e.getDate()),r.assign("month",e.getMonth()+1),r.assign("year",e.getFullYear())}function khe(r,e){r.assign("hour",e.getHours()),r.assign("minute",e.getMinutes()),r.assign("second",e.getSeconds()),r.assign("millisecond",e.getMilliseconds()),r.assign("meridiem",e.getHours()<12?H.AM:H.PM)}function U_(r,e){r.imply("day",e.getDate()),r.imply("month",e.getMonth()+1),r.imply("year",e.getFullYear())}function bhe(r,e){r.imply("hour",e.getHours()),r.imply("minute",e.getMinutes()),r.imply("second",e.getSeconds()),r.imply("millisecond",e.getMilliseconds()),r.imply("meridiem",e.getHours()<12?H.AM:H.PM)}var uU=y(()=>{Ht()});function im(r,e,t,n,a=0){let i=0,s=0;for(;s<n;)i++,new Date(r,e-1,i).getDay()===t&&s++;return new Date(r,e-1,i,a)}function The(r,e,t,n=0){let a=t===0?7:t,i=new Date(r,e-1+1,1,12),s=i.getDay()===0?7:i.getDay(),o;return s===a?o=7:s<a?o=7+s-a:o=s-a,i.setDate(i.getDate()-o),new Date(r,e-1,i.getDate(),n)}function H_(r,e,t={}){var a;if(r==null)return null;if(typeof r=="number")return r;let n=(a=t[r])!=null?a:eet[r];return n==null?null:typeof n=="number"?n:e==null?null:(0,pU.default)(e).isAfter(n.dstStart(e.getFullYear()))&&!(0,pU.default)(e).isAfter(n.dstEnd(e.getFullYear()))?n.timezoneOffsetDuringDst:n.timezoneOffsetNonDst}var pU,eet,mU=y(()=>{pU=st(tr(),1);Ht();eet={ACDT:630,ACST:570,ADT:-180,AEDT:660,AEST:600,AFT:270,AKDT:-480,AKST:-540,ALMT:360,AMST:-180,AMT:-240,ANAST:720,ANAT:720,AQTT:300,ART:-180,AST:-240,AWDT:540,AWST:480,AZOST:0,AZOT:-60,AZST:300,AZT:240,BNT:480,BOT:-240,BRST:-120,BRT:-180,BST:60,BTT:360,CAST:480,CAT:120,CCT:390,CDT:-300,CEST:120,CET:{timezoneOffsetDuringDst:120,timezoneOffsetNonDst:60,dstStart:r=>The(r,Ys.MARCH,Ye.SUNDAY,2),dstEnd:r=>The(r,Ys.OCTOBER,Ye.SUNDAY,3)},CHADT:825,CHAST:765,CKT:-600,CLST:-180,CLT:-240,COT:-300,CST:-360,CT:{timezoneOffsetDuringDst:-300,timezoneOffsetNonDst:-360,dstStart:r=>im(r,Ys.MARCH,Ye.SUNDAY,2,2),dstEnd:r=>im(r,Ys.NOVEMBER,Ye.SUNDAY,1,2)},CVT:-60,CXT:420,ChST:600,DAVT:420,EASST:-300,EAST:-360,EAT:180,ECT:-300,EDT:-240,EEST:180,EET:120,EGST:0,EGT:-60,EST:-300,ET:{timezoneOffsetDuringDst:-240,timezoneOffsetNonDst:-300,dstStart:r=>im(r,Ys.MARCH,Ye.SUNDAY,2,2),dstEnd:r=>im(r,Ys.NOVEMBER,Ye.SUNDAY,1,2)},FJST:780,FJT:720,FKST:-180,FKT:-240,FNT:-120,GALT:-360,GAMT:-540,GET:240,GFT:-180,GILT:720,GMT:0,GST:240,GYT:-240,HAA:-180,HAC:-300,HADT:-540,HAE:-240,HAP:-420,HAR:-360,HAST:-600,HAT:-90,HAY:-480,HKT:480,HLV:-210,HNA:-240,HNC:-360,HNE:-300,HNP:-480,HNR:-420,HNT:-150,HNY:-540,HOVT:420,ICT:420,IDT:180,IOT:360,IRDT:270,IRKST:540,IRKT:540,IRST:210,IST:330,JST:540,KGT:360,KRAST:480,KRAT:480,KST:540,KUYT:240,LHDT:660,LHST:630,LINT:840,MAGST:720,MAGT:720,MART:-510,MAWT:300,MDT:-360,MESZ:120,MEZ:60,MHT:720,MMT:390,MSD:240,MSK:180,MST:-420,MT:{timezoneOffsetDuringDst:-360,timezoneOffsetNonDst:-420,dstStart:r=>im(r,Ys.MARCH,Ye.SUNDAY,2,2),dstEnd:r=>im(r,Ys.NOVEMBER,Ye.SUNDAY,1,2)},MUT:240,MVT:300,MYT:480,NCT:660,NDT:-90,NFT:690,NOVST:420,NOVT:360,NPT:345,NST:-150,NUT:-660,NZDT:780,NZST:720,OMSST:420,OMST:420,PDT:-420,PET:-300,PETST:720,PETT:720,PGT:600,PHOT:780,PHT:480,PKT:300,PMDT:-120,PMST:-180,PONT:660,PST:-480,PT:{timezoneOffsetDuringDst:-420,timezoneOffsetNonDst:-480,dstStart:r=>im(r,Ys.MARCH,Ye.SUNDAY,2,2),dstEnd:r=>im(r,Ys.NOVEMBER,Ye.SUNDAY,1,2)},PWT:540,PYST:-180,PYT:-240,RET:240,SAMT:240,SAST:120,SBT:660,SCT:240,SGT:480,SRT:-180,SST:-660,TAHT:-600,TFT:300,TJT:300,TKT:780,TLT:540,TMT:300,TVT:720,ULAT:480,UTC:0,UYST:-120,UYT:-180,UZT:300,VET:-210,VLAST:660,VLAT:660,VUT:660,WAST:120,WAT:60,WEST:60,WESZ:60,WET:0,WEZ:0,WFT:720,WGST:-120,WGT:-180,WIB:420,WIT:540,WITA:480,WST:780,WT:0,YAKST:600,YAKT:600,YAPT:600,YEKST:360,YEKT:360}});function whe(r,e){var n,a,i,s,o,l,c;let t=new Date(r);if(e.y&&(e.year=e.y,delete e.y),e.mo&&(e.month=e.mo,delete e.mo),e.M&&(e.month=e.M,delete e.M),e.w&&(e.week=e.w,delete e.w),e.d&&(e.day=e.d,delete e.d),e.h&&(e.hour=e.h,delete e.h),e.m&&(e.minute=e.m,delete e.m),e.s&&(e.second=e.s,delete e.s),e.ms&&(e.millisecond=e.ms,delete e.ms),"year"in e){let d=Math.floor(e.year);t.setFullYear(t.getFullYear()+d);let u=e.year-d;u>0&&(e.month=(n=e==null?void 0:e.month)!=null?n:0,e.month+=u*12)}if("quarter"in e){let d=Math.floor(e.quarter);t.setMonth(t.getMonth()+d*3)}if("month"in e){let d=Math.floor(e.month);t.setMonth(t.getMonth()+d);let u=e.month-d;u>0&&(e.week=(a=e==null?void 0:e.week)!=null?a:0,e.week+=u*4)}if("week"in e){let d=Math.floor(e.week);t.setDate(t.getDate()+d*7);let u=e.week-d;u>0&&(e.day=(i=e==null?void 0:e.day)!=null?i:0,e.day+=Math.round(u*7))}if("day"in e){let d=Math.floor(e.day);t.setDate(t.getDate()+d);let u=e.day-d;u>0&&(e.hour=(s=e==null?void 0:e.hour)!=null?s:0,e.hour+=Math.round(u*24))}if("hour"in e){let d=Math.floor(e.hour);t.setHours(t.getHours()+d);let u=e.hour-d;u>0&&(e.minute=(o=e==null?void 0:e.minute)!=null?o:0,e.minute+=Math.round(u*60))}if("minute"in e){let d=Math.floor(e.minute);t.setMinutes(t.getMinutes()+d);let u=e.minute-d;u>0&&(e.second=(l=e==null?void 0:e.second)!=null?l:0,e.second+=Math.round(u*60))}if("second"in e){let d=Math.floor(e.second);t.setSeconds(t.getSeconds()+d);let u=e.second-d;u>0&&(e.millisecond=(c=e==null?void 0:e.millisecond)!=null?c:0,e.millisecond+=Math.round(u*1e3))}if("millisecond"in e){let d=Math.floor(e.millisecond);t.setMilliseconds(t.getMilliseconds()+d)}return t}function Yv(r){let e={};for(let t in r)e[t]=-r[t];return e}var $S=y(()=>{});var She,fU,rr,te,Yt,pt=y(()=>{She=st(yhe(),1),fU=st(tr(),1);uU();mU();$S();fU.default.extend(She.default);rr=class r{constructor(e,t){I(this,"instant");I(this,"timezoneOffset");this.instant=e!=null?e:new Date,this.timezoneOffset=t!=null?t:null}static fromDate(e){return new r(e)}static fromInput(e,t){var i;if(e instanceof Date)return r.fromDate(e);let n=(i=e==null?void 0:e.instant)!=null?i:new Date,a=H_(e==null?void 0:e.timezone,n,t);return new r(n,a)}getDateWithAdjustedTimezone(){let e=new Date(this.instant);return this.timezoneOffset!==null&&e.setMinutes(e.getMinutes()-this.getSystemTimezoneAdjustmentMinute(this.instant)),e}getSystemTimezoneAdjustmentMinute(e,t){var i;(!e||e.getTime()<0)&&(e=new Date);let n=-e.getTimezoneOffset(),a=(i=t!=null?t:this.timezoneOffset)!=null?i:n;return n-a}getTimezoneOffset(){var e;return(e=this.timezoneOffset)!=null?e:-this.instant.getTimezoneOffset()}},te=class r{constructor(e,t){I(this,"knownValues");I(this,"impliedValues");I(this,"reference");I(this,"_tags",new Set);if(this.reference=e,this.knownValues={},this.impliedValues={},t)for(let a in t)this.knownValues[a]=t[a];let n=e.getDateWithAdjustedTimezone();this.imply("day",n.getDate()),this.imply("month",n.getMonth()+1),this.imply("year",n.getFullYear()),this.imply("hour",12),this.imply("minute",0),this.imply("second",0),this.imply("millisecond",0)}get(e){return e in this.knownValues?this.knownValues[e]:e in this.impliedValues?this.impliedValues[e]:null}isCertain(e){return e in this.knownValues}getCertainComponents(){return Object.keys(this.knownValues)}imply(e,t){return e in this.knownValues?this:(this.impliedValues[e]=t,this)}assign(e,t){return this.knownValues[e]=t,delete this.impliedValues[e],this}delete(e){delete this.knownValues[e],delete this.impliedValues[e]}clone(){let e=new r(this.reference);e.knownValues={},e.impliedValues={};for(let t in this.knownValues)e.knownValues[t]=this.knownValues[t];for(let t in this.impliedValues)e.impliedValues[t]=this.impliedValues[t];return e}isOnlyDate(){return!this.isCertain("hour")&&!this.isCertain("minute")&&!this.isCertain("second")}isOnlyTime(){return!this.isCertain("weekday")&&!this.isCertain("day")&&!this.isCertain("month")&&!this.isCertain("year")}isOnlyWeekdayComponent(){return this.isCertain("weekday")&&!this.isCertain("day")&&!this.isCertain("month")}isDateWithUnknownYear(){return this.isCertain("month")&&!this.isCertain("year")}isValidDate(){let e=this.dateWithoutTimezoneAdjustment();return!(e.getFullYear()!==this.get("year")||e.getMonth()!==this.get("month")-1||e.getDate()!==this.get("day")||this.get("hour")!=null&&e.getHours()!=this.get("hour")||this.get("minute")!=null&&e.getMinutes()!=this.get("minute"))}toString(){return`[ParsingComponents {
|
||
tags: ${JSON.stringify(Array.from(this._tags).sort())},
|
||
knownValues: ${JSON.stringify(this.knownValues)},
|
||
impliedValues: ${JSON.stringify(this.impliedValues)}},
|
||
reference: ${JSON.stringify(this.reference)}]`}dayjs(){return(0,fU.default)(this.dateWithoutTimezoneAdjustment())}date(){let e=this.dateWithoutTimezoneAdjustment(),t=this.reference.getSystemTimezoneAdjustmentMinute(e,this.get("timezoneOffset"));return new Date(e.getTime()+t*6e4)}addTag(e){return this._tags.add(e),this}addTags(e){for(let t of e)this._tags.add(t);return this}tags(){return new Set(this._tags)}dateWithoutTimezoneAdjustment(){let e=new Date(this.get("year"),this.get("month")-1,this.get("day"),this.get("hour"),this.get("minute"),this.get("second"),this.get("millisecond"));return e.setFullYear(this.get("year")),e}static createRelativeFromReference(e,t){let n=whe(e.getDateWithAdjustedTimezone(),t),a=new r(e);return a.addTag("result/relativeDate"),t.hour||t.minute||t.second?(a.addTag("result/relativeDateAndTime"),khe(a,n),vhe(a,n),a.assign("timezoneOffset",e.getTimezoneOffset())):(bhe(a,n),a.imply("timezoneOffset",e.getTimezoneOffset()),t.day?(a.assign("day",n.getDate()),a.assign("month",n.getMonth()+1),a.assign("year",n.getFullYear()),a.assign("weekday",n.getDay())):t.week?(a.assign("day",n.getDate()),a.assign("month",n.getMonth()+1),a.assign("year",n.getFullYear()),a.imply("weekday",n.getDay())):(a.imply("day",n.getDate()),t.month?(a.assign("month",n.getMonth()+1),a.assign("year",n.getFullYear())):(a.imply("month",n.getMonth()+1),t.year?a.assign("year",n.getFullYear()):a.imply("year",n.getFullYear())))),a}},Yt=class r{constructor(e,t,n,a,i){I(this,"refDate");I(this,"index");I(this,"text");I(this,"reference");I(this,"start");I(this,"end");this.reference=e,this.refDate=e.instant,this.index=t,this.text=n,this.start=a||new te(e),this.end=i}clone(){let e=new r(this.reference,this.index,this.text);return e.start=this.start?this.start.clone():null,e.end=this.end?this.end.clone():null,e}date(){return this.start.date()}addTag(e){return this.start.addTag(e),this.end&&this.end.addTag(e),this}addTags(e){return this.start.addTags(e),this.end&&this.end.addTags(e),this}tags(){let e=new Set(this.start.tags());if(this.end)for(let t of this.end.tags())e.add(t);return e}toString(){let e=Array.from(this.tags()).sort();return`[ParsingResult {index: ${this.index}, text: '${this.text}', tags: ${JSON.stringify(e)} ...}]`}}});function zi(r,e,t="\\s{0,5},?\\s{0,5}"){let n=e.replace(/\((?!\?)/g,"(?:");return`${r}${n}(?:${t}${n}){0,10}`}function tet(r){let e;return r instanceof Array?e=[...r]:r instanceof Map?e=Array.from(r.keys()):e=Object.keys(r),e}function oe(r){return`(?:${tet(r).sort((t,n)=>n.length-t.length).join("|").replace(/\./g,"\\.")})`}var Ot=y(()=>{});function ls(r){return r<100&&(r>50?r=r+1900:r=r+2e3),r}function fr(r,e,t){let n=(0,xhe.default)(r),a=n;a=a.month(t-1),a=a.date(e),a=a.year(n.year());let i=a.add(1,"y"),s=a.add(-1,"y");return Math.abs(i.diff(n))<Math.abs(a.diff(n))?a=i:Math.abs(s.diff(n))<Math.abs(a.diff(n))&&(a=s),a.year()}var xhe,Rn=y(()=>{xhe=st(tr(),1)});function ret(r){let e=r.toLowerCase();return hU[e]!==void 0?hU[e]:e==="a"||e==="an"||e=="the"?1:e.match(/few/)?3:e.match(/half/)?.5:e.match(/couple/)?2:e.match(/several/)?7:parseFloat(e)}function Kv(r){let e=r.toLowerCase();return gU[e]!==void 0?gU[e]:(e=e.replace(/(?:st|nd|rd|th)$/i,""),parseInt(e))}function om(r){if(/BE/i.test(r))return r=r.replace(/BE/i,""),parseInt(r)-543;if(/BCE?/i.test(r))return r=r.replace(/BCE?/i,""),-parseInt(r);if(/(AD|CE)/i.test(r))return r=r.replace(/(AD|CE)/i,""),parseInt(r);let e=parseInt(r);return ls(e)}function Ro(r){let e={},t=r,n=Che.exec(t);for(;n;)aet(e,n),t=t.substring(n[0].length).trim(),n=Che.exec(t);return Object.keys(e).length==0?null:e}function aet(r,e){if(e[0].match(/^[a-zA-Z]+$/))return;let t=ret(e[1]),n=BS[e[2].toLowerCase()];r[n]=t}var V_,yU,No,hU,gU,Ehe,BS,Dhe,Gv,sm,Phe,Che,net,Mhe,Mu,lm,da=y(()=>{Ot();Rn();V_={sunday:0,sun:0,"sun.":0,monday:1,mon:1,"mon.":1,tuesday:2,tue:2,"tue.":2,wednesday:3,wed:3,"wed.":3,thursday:4,thurs:4,"thurs.":4,thur:4,"thur.":4,thu:4,"thu.":4,friday:5,fri:5,"fri.":5,saturday:6,sat:6,"sat.":6},yU={january:1,february:2,march:3,april:4,may:5,june:6,july:7,august:8,september:9,october:10,november:11,december:12},No={...yU,jan:1,"jan.":1,feb:2,"feb.":2,mar:3,"mar.":3,apr:4,"apr.":4,jun:6,"jun.":6,jul:7,"jul.":7,aug:8,"aug.":8,sep:9,"sep.":9,sept:9,"sept.":9,oct:10,"oct.":10,nov:11,"nov.":11,dec:12,"dec.":12},hU={one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9,ten:10,eleven:11,twelve:12},gU={first:1,second:2,third:3,fourth:4,fifth:5,sixth:6,seventh:7,eighth:8,ninth:9,tenth:10,eleventh:11,twelfth:12,thirteenth:13,fourteenth:14,fifteenth:15,sixteenth:16,seventeenth:17,eighteenth:18,nineteenth:19,twentieth:20,"twenty first":21,"twenty-first":21,"twenty second":22,"twenty-second":22,"twenty third":23,"twenty-third":23,"twenty fourth":24,"twenty-fourth":24,"twenty fifth":25,"twenty-fifth":25,"twenty sixth":26,"twenty-sixth":26,"twenty seventh":27,"twenty-seventh":27,"twenty eighth":28,"twenty-eighth":28,"twenty ninth":29,"twenty-ninth":29,thirtieth:30,"thirty first":31,"thirty-first":31},Ehe={second:"second",seconds:"second",minute:"minute",minutes:"minute",hour:"hour",hours:"hour",day:"d",days:"d",week:"week",weeks:"week",month:"month",months:"month",quarter:"quarter",quarters:"quarter",year:"year",years:"year"},BS={s:"second",sec:"second",second:"second",seconds:"second",m:"minute",min:"minute",mins:"minute",minute:"minute",minutes:"minute",h:"hour",hr:"hour",hrs:"hour",hour:"hour",hours:"hour",d:"d",day:"d",days:"d",w:"w",week:"week",weeks:"week",mo:"month",mon:"month",mos:"month",month:"month",months:"month",qtr:"quarter",quarter:"quarter",quarters:"quarter",y:"year",yr:"year",year:"year",years:"year",...Ehe},Dhe=`(?:${oe(hU)}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s{0,2}an?)?|an?\\b(?:\\s{0,2}few)?|few|several|the|a?\\s{0,2}couple\\s{0,2}(?:of)?)`;Gv=`(?:${oe(gU)}|[0-9]{1,2}(?:st|nd|rd|th)?)`;sm="(?:[1-9][0-9]{0,3}\\s{0,2}(?:BE|AD|BC|BCE|CE)|[1-2][0-9]{3}|[5-9][0-9]|2[0-5])";Phe=`(${Dhe})\\s{0,3}(${oe(BS)})`,Che=new RegExp(Phe,"i"),net=`(${Dhe})\\s{0,3}(${oe(Ehe)})`,Mhe="\\s{0,5},?(?:\\s*and)?\\s{0,5}",Mu=zi("(?:(?:about|around)\\s{0,3})?",Phe,Mhe),lm=zi("(?:(?:about|around)\\s{0,3})?",net,Mhe)});var q,xe=y(()=>{q=class{constructor(){I(this,"cachedInnerPattern",null);I(this,"cachedPattern",null)}innerPatternHasChange(e,t){return this.innerPattern(e)!==t}patternLeftBoundary(){return"(\\W|^)"}pattern(e){return this.cachedInnerPattern&&!this.innerPatternHasChange(e,this.cachedInnerPattern)?this.cachedPattern:(this.cachedInnerPattern=this.innerPattern(e),this.cachedPattern=new RegExp(`${this.patternLeftBoundary()}${this.cachedInnerPattern.source}`,this.cachedInnerPattern.flags),this.cachedPattern)}extract(e,t){var a;let n=(a=t[1])!=null?a:"";t.index=t.index+n.length,t[0]=t[0].substring(n.length);for(let i=2;i<t.length;i++)t[i-1]=t[i];return this.innerExtract(e,t)}}});var iet,set,oet,US,Ahe=y(()=>{da();pt();xe();iet=new RegExp(`(?:(?:within|in|for)\\s*)?(?:(?:about|around|roughly|approximately|just)\\s*(?:~\\s*)?)?(${Mu})(?=\\W|$)`,"i"),set=new RegExp(`(?:within|in|for)\\s*(?:(?:about|around|roughly|approximately|just)\\s*(?:~\\s*)?)?(${Mu})(?=\\W|$)`,"i"),oet=new RegExp(`(?:within|in|for)\\s*(?:(?:about|around|roughly|approximately|just)\\s*(?:~\\s*)?)?(${lm})(?=\\W|$)`,"i"),US=class extends q{constructor(t){super();I(this,"strictMode");this.strictMode=t}innerPattern(t){return this.strictMode?oet:t.option.forwardDate?iet:set}innerExtract(t,n){if(n[0].match(/^for\s*the\s*\w+/))return null;let a=Ro(n[1]);return a?(t.debug(()=>{console.log(a),console.log(te.createRelativeFromReference(t.reference,a))}),te.createRelativeFromReference(t.reference,a)):null}}});var cet,_he,Ihe,det,Nhe,HS,Rhe=y(()=>{Rn();da();da();da();Ot();xe();cet=new RegExp(`(?:on\\s{0,3})?(${Gv})(?:\\s{0,3}(?:to|\\-|\\\u2013|until|through|till)?\\s{0,3}(${Gv}))?(?:-|/|\\s{0,3}(?:of)?\\s{0,3})(${oe(No)})(?:(?:-|/|,?\\s{0,3})(${sm}(?!\\w)))?(?=\\W|$)`,"i"),_he=1,Ihe=2,det=3,Nhe=4,HS=class extends q{innerPattern(){return cet}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=No[t[det].toLowerCase()],i=Kv(t[_he]);if(i>31)return t.index=t.index+t[_he].length,null;if(n.start.assign("month",a),n.start.assign("day",i),t[Nhe]){let s=om(t[Nhe]);n.start.assign("year",s)}else{let s=fr(e.refDate,i,a);n.start.imply("year",s)}if(t[Ihe]){let s=Kv(t[Ihe]);n.end=n.start.clone(),n.end.assign("day",s)}return n}}});var uet,pet,Fhe,vU,kU,VS,Ohe=y(()=>{Rn();da();da();da();Ot();xe();uet=new RegExp(`(${oe(No)})(?:-|/|\\s*,?\\s*)(${Gv})(?!\\s*(?:am|pm))\\s*(?:(?:to|\\-)\\s*(${Gv})\\s*)?(?:(?:-|/|\\s*,\\s*|\\s+)(${sm}))?(?=\\W|$)(?!\\:\\d)`,"i"),pet=1,Fhe=2,vU=3,kU=4,VS=class extends q{constructor(t){super();I(this,"shouldSkipYearLikeDate");this.shouldSkipYearLikeDate=t}innerPattern(){return uet}innerExtract(t,n){let a=No[n[pet].toLowerCase()],i=Kv(n[Fhe]);if(i>31||this.shouldSkipYearLikeDate&&!n[vU]&&!n[kU]&&n[Fhe].match(/^2[0-5]$/))return null;let s=t.createParsingComponents({day:i,month:a}).addTag("parser/ENMonthNameMiddleEndianParser");if(n[kU]){let c=om(n[kU]);s.assign("year",c)}else{let c=fr(t.refDate,i,a);s.imply("year",c)}if(!n[vU])return s;let o=Kv(n[vU]),l=t.createParsingResult(n.index,n[0]);return l.start=s,l.end=s.clone(),l.end.assign("day",o),l}}});var met,fet,het,Lhe,qS,zhe=y(()=>{da();Rn();Ot();da();xe();met=new RegExp(`((?:in)\\s*)?(${oe(No)})\\s*(?:(?:,|-|of)?\\s*(${sm})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,"i"),fet=1,het=2,Lhe=3,qS=class extends q{innerPattern(){return met}innerExtract(e,t){let n=t[het].toLowerCase();if(t[0].length<=3&&!yU[n])return null;let a=e.createParsingResult(t.index+(t[fet]||"").length,t.index+t[0].length);a.start.imply("day",1),a.start.addTag("parser/ENMonthNameParser");let i=No[n];if(a.start.assign("month",i),t[Lhe]){let s=om(t[Lhe]);a.start.assign("year",s)}else{let s=fr(e.refDate,1,i);a.start.imply("year",s)}return a}}});var get,yet,vet,jhe,ket,WS,$he=y(()=>{da();Ot();xe();get=new RegExp(`([0-9]{4})[-\\.\\/\\s](?:(${oe(No)})|([0-9]{1,2}))[-\\.\\/\\s]([0-9]{1,2})(?=\\W|$)`,"i"),yet=1,vet=2,jhe=3,ket=4,WS=class extends q{constructor(t){super();I(this,"strictMonthDateOrder");this.strictMonthDateOrder=t}innerPattern(){return get}innerExtract(t,n){let a=parseInt(n[yet]),i=parseInt(n[ket]),s=n[jhe]?parseInt(n[jhe]):No[n[vet].toLowerCase()];if(s<1||s>12){if(this.strictMonthDateOrder)return null;i>=1&&i<=12&&([s,i]=[i,s])}return i<1||i>31?null:{day:i,month:s,year:a}}}});var bet,Tet,wet,YS,Bhe=y(()=>{xe();bet=new RegExp("([0-9]|0[1-9]|1[012])/([0-9]{4})","i"),Tet=1,wet=2,YS=class extends q{innerPattern(){return bet}innerExtract(e,t){let n=parseInt(t[wet]),a=parseInt(t[Tet]);return e.createParsingComponents().imply("day",1).assign("month",a).assign("year",n)}}});function xet(r,e,t,n){return new RegExp(`${r}${e}(\\d{1,4})(?:(?:\\.|:|\uFF1A)(\\d{1,2})(?:(?::|\uFF1A)(\\d{2})(?:\\.(\\d{1,6}))?)?)?(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?${t}`,n)}function Cet(r,e){return new RegExp(`^(${r})(\\d{1,4})(?:(?:\\.|\\:|\\\uFF1A)(\\d{1,2})(?:(?:\\.|\\:|\\\uFF1A)(\\d{1,2})(?:\\.(\\d{1,6}))?)?)?(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?${e}`,"i")}var Uhe,Zv,q_,W_,GS,Da,Au=y(()=>{Ht();Uhe=2,Zv=3,q_=4,W_=5,GS=6,Da=class{constructor(e=!1){I(this,"strictMode");I(this,"cachedPrimaryPrefix",null);I(this,"cachedPrimarySuffix",null);I(this,"cachedPrimaryTimePattern",null);I(this,"cachedFollowingPhase",null);I(this,"cachedFollowingSuffix",null);I(this,"cachedFollowingTimePatten",null);this.strictMode=e}patternFlags(){return"i"}primaryPatternLeftBoundary(){return"(^|\\s|T|\\b)"}primarySuffix(){return"(?!/)(?=\\W|$)"}followingSuffix(){return"(?!/)(?=\\W|$)"}pattern(e){return this.getPrimaryTimePatternThroughCache()}extract(e,t){let n=this.extractPrimaryTimeComponents(e,t);if(!n)return t[0].match(/^\d{4}/)?(t.index+=4,null):(t.index+=t[0].length,null);let a=t.index+t[1].length,i=t[0].substring(t[1].length),s=e.createParsingResult(a,i,n);t.index+=t[0].length;let o=e.text.substring(t.index),c=this.getFollowingTimePatternThroughCache().exec(o);return i.match(/^\d{3,4}/)&&c&&(c[0].match(/^\s*([+-])\s*\d{2,4}$/)||c[0].match(/^\s*([+-])\s*\d{2}\W\d{2}/))?null:!c||c[0].match(/^\s*([+-])\s*\d{3,4}$/)?this.checkAndReturnWithoutFollowingPattern(s):(s.end=this.extractFollowingTimeComponents(e,c,s),s.end&&(s.text+=c[0]),this.checkAndReturnWithFollowingPattern(s))}extractPrimaryTimeComponents(e,t,n=!1){let a=e.createParsingComponents(),i=0,s=null,o=parseInt(t[Uhe]);if(o>100){if(this.strictMode||t[Zv]!=null)return null;i=o%100,o=Math.floor(o/100)}if(o>24)return null;if(t[Zv]!=null){if(t[Zv].length==1&&!t[GS])return null;i=parseInt(t[Zv])}if(i>=60)return null;if(o>12&&(s=H.PM),t[GS]!=null){if(o>12)return null;let l=t[GS][0].toLowerCase();l=="a"&&(s=H.AM,o==12&&(o=0)),l=="p"&&(s=H.PM,o!=12&&(o+=12))}if(a.assign("hour",o),a.assign("minute",i),s!==null?a.assign("meridiem",s):o<12?a.imply("meridiem",H.AM):a.imply("meridiem",H.PM),t[W_]!=null){let l=parseInt(t[W_].substring(0,3));if(l>=1e3)return null;a.assign("millisecond",l)}if(t[q_]!=null){let l=parseInt(t[q_]);if(l>=60)return null;a.assign("second",l)}return a}extractFollowingTimeComponents(e,t,n){let a=e.createParsingComponents();if(t[W_]!=null){let l=parseInt(t[W_].substring(0,3));if(l>=1e3)return null;a.assign("millisecond",l)}if(t[q_]!=null){let l=parseInt(t[q_]);if(l>=60)return null;a.assign("second",l)}let i=parseInt(t[Uhe]),s=0,o=-1;if(t[Zv]!=null?s=parseInt(t[Zv]):i>100&&(s=i%100,i=Math.floor(i/100)),s>=60||i>24)return null;if(i>=12&&(o=H.PM),t[GS]!=null){if(i>12)return null;let l=t[GS][0].toLowerCase();l=="a"&&(o=H.AM,i==12&&(i=0,a.isCertain("day")||a.imply("day",a.get("day")+1))),l=="p"&&(o=H.PM,i!=12&&(i+=12)),n.start.isCertain("meridiem")||(o==H.AM?(n.start.imply("meridiem",H.AM),n.start.get("hour")==12&&n.start.assign("hour",0)):(n.start.imply("meridiem",H.PM),n.start.get("hour")!=12&&n.start.assign("hour",n.start.get("hour")+12)))}return a.assign("hour",i),a.assign("minute",s),o>=0?a.assign("meridiem",o):n.start.isCertain("meridiem")&&n.start.get("hour")>12?n.start.get("hour")-12>i?a.imply("meridiem",H.AM):i<=12&&(a.assign("hour",i+12),a.assign("meridiem",H.PM)):i>12?a.imply("meridiem",H.PM):i<=12&&a.imply("meridiem",H.AM),a.date().getTime()<n.start.date().getTime()&&a.imply("day",a.get("day")+1),a}checkAndReturnWithoutFollowingPattern(e){if(e.text.match(/^\d$/)||e.text.match(/^\d\d\d+$/)||e.text.match(/\d[apAP]$/))return null;let t=e.text.match(/[^\d:.](\d[\d.]+)$/);if(t){let n=t[1];if(this.strictMode||n.includes(".")&&!n.match(/\d(\.\d{2})+$/)||parseInt(n)>24)return null}return e}checkAndReturnWithFollowingPattern(e){if(e.text.match(/^\d+-\d+$/))return null;let t=e.text.match(/[^\d:.](\d[\d.]+)\s*-\s*(\d[\d.]+)$/);if(t){if(this.strictMode)return null;let n=t[1],a=t[2];if(a.includes(".")&&!a.match(/\d(\.\d{2})+$/))return null;let i=parseInt(a),s=parseInt(n);if(i>24||s>24)return null}return e}getPrimaryTimePatternThroughCache(){let e=this.primaryPrefix(),t=this.primarySuffix();return this.cachedPrimaryPrefix===e&&this.cachedPrimarySuffix===t?this.cachedPrimaryTimePattern:(this.cachedPrimaryTimePattern=xet(this.primaryPatternLeftBoundary(),e,t,this.patternFlags()),this.cachedPrimaryPrefix=e,this.cachedPrimarySuffix=t,this.cachedPrimaryTimePattern)}getFollowingTimePatternThroughCache(){let e=this.followingPhase(),t=this.followingSuffix();return this.cachedFollowingPhase===e&&this.cachedFollowingSuffix===t?this.cachedFollowingTimePatten:(this.cachedFollowingTimePatten=Cet(e,t),this.cachedFollowingPhase=e,this.cachedFollowingSuffix=t,this.cachedFollowingTimePatten)}}});var KS,Hhe=y(()=>{Ht();Au();KS=class extends Da{constructor(e){super(e)}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|to|until|through|till|\\?)\\s*"}primaryPrefix(){return"(?:(?:at|from)\\s*)??"}primarySuffix(){return"(?:\\s*(?:o\\W*clock|at\\s*night|in\\s*the\\s*(?:morning|afternoon)))?(?!/)(?=\\W|$)"}extractPrimaryTimeComponents(e,t){let n=super.extractPrimaryTimeComponents(e,t);if(!n)return n;if(t[0].endsWith("night")){let a=n.get("hour");a>=6&&a<12?(n.assign("hour",n.get("hour")+12),n.assign("meridiem",H.PM)):a<6&&n.assign("meridiem",H.AM)}if(t[0].endsWith("afternoon")){n.assign("meridiem",H.PM);let a=n.get("hour");a>=0&&a<=6&&n.assign("hour",n.get("hour")+12)}return t[0].endsWith("morning")&&(n.assign("meridiem",H.AM),n.get("hour")<12&&n.assign("hour",n.get("hour"))),n.addTag("parser/ENTimeExpressionParser")}extractFollowingTimeComponents(e,t,n){let a=super.extractFollowingTimeComponents(e,t,n);return a&&a.addTag("parser/ENTimeExpressionParser"),a}}});var Eet,Det,ZS,Vhe=y(()=>{da();pt();xe();$S();Eet=new RegExp(`(${Mu})\\s{0,5}(?:ago|before|earlier)(?=\\W|$)`,"i"),Det=new RegExp(`(${lm})\\s{0,5}(?:ago|before|earlier)(?=\\W|$)`,"i"),ZS=class extends q{constructor(t){super();I(this,"strictMode");this.strictMode=t}innerPattern(){return this.strictMode?Det:Eet}innerExtract(t,n){let a=Ro(n[1]);return a?te.createRelativeFromReference(t.reference,Yv(a)):null}}});var Pet,Met,Aet,QS,qhe=y(()=>{da();pt();xe();Pet=new RegExp(`(${Mu})\\s{0,5}(?:later|after|from now|henceforth|forward|out)(?=(?:\\W|$))`,"i"),Met=new RegExp(`(${lm})\\s{0,5}(later|after|from now)(?=\\W|$)`,"i"),Aet=1,QS=class extends q{constructor(t){super();I(this,"strictMode");this.strictMode=t}innerPattern(){return this.strictMode?Met:Pet}innerExtract(t,n){let a=Ro(n[Aet]);return a?te.createRelativeFromReference(t.reference,a):null}}});var Qv,cs,_u=y(()=>{Qv=class{refine(e,t){return t.filter(n=>this.isValid(e,n))}},cs=class{refine(e,t){if(t.length<2)return t;let n=[],a=t[0],i=null;for(let s=1;s<t.length;s++){i=t[s];let o=e.text.substring(a.index+a.text.length,i.index);if(!this.shouldMergeResults(o,a,i,e))n.push(a),a=i;else{let l=a,c=i,d=this.mergeResults(o,l,c,e);e.debug(()=>{console.log(`${this.constructor.name} merged ${l} and ${c} into ${d}`)}),a=d}}return a!=null&&n.push(a),n}}});var an,Fo=y(()=>{_u();an=class extends cs{shouldMergeResults(e,t,n){return!t.end&&!n.end&&e.match(this.patternBetween())!=null}mergeResults(e,t,n){if(!t.start.isOnlyWeekdayComponent()&&!n.start.isOnlyWeekdayComponent()&&(n.start.getCertainComponents().forEach(i=>{t.start.isCertain(i)||t.start.imply(i,n.start.get(i))}),t.start.getCertainComponents().forEach(i=>{n.start.isCertain(i)||n.start.imply(i,t.start.get(i))})),t.start.date().getTime()>n.start.date().getTime()){let i=t.start.dayjs(),s=n.start.dayjs();n.start.isOnlyWeekdayComponent()&&s.add(7,"days").isAfter(i)?(s=s.add(7,"days"),n.start.imply("day",s.date()),n.start.imply("month",s.month()+1),n.start.imply("year",s.year())):t.start.isOnlyWeekdayComponent()&&i.add(-7,"days").isBefore(s)?(i=i.add(-7,"days"),t.start.imply("day",i.date()),t.start.imply("month",i.month()+1),t.start.imply("year",i.year())):n.start.isDateWithUnknownYear()&&s.add(1,"years").isAfter(i)?(s=s.add(1,"years"),n.start.imply("year",s.year())):t.start.isDateWithUnknownYear()&&i.add(-1,"years").isBefore(s)?(i=i.add(-1,"years"),t.start.imply("year",i.year())):[n,t]=[t,n]}let a=t.clone();return a.start=t.start,a.end=n.start,a.index=Math.min(t.index,n.index),t.index<n.index?a.text=t.text+e+n.text:a.text=n.text+e+t.text,a}}});var JS,Whe=y(()=>{Fo();JS=class extends an{patternBetween(){return/^\s*(to|-|–|until|through|till)\s*$/i}}});function Ll(r,e){e=e.add(1,"day"),Kr(r,e),Nc(r,e)}function Yhe(r,e){e=e.add(1,"day"),bU(r,e),Nc(r,e)}function Kr(r,e){r.assign("day",e.date()),r.assign("month",e.month()+1),r.assign("year",e.year())}function Ghe(r,e){r.assign("hour",e.hour()),r.assign("minute",e.minute()),r.assign("second",e.second()),r.assign("millisecond",e.millisecond()),r.get("hour")<12?r.assign("meridiem",H.AM):r.assign("meridiem",H.PM)}function bU(r,e){r.imply("day",e.date()),r.imply("month",e.month()+1),r.imply("year",e.year())}function Nc(r,e){r.imply("hour",e.hour()),r.imply("minute",e.minute()),r.imply("second",e.second()),r.imply("millisecond",e.millisecond())}var Gs=y(()=>{Ht()});function TU(r,e){let t=r.clone(),n=r.start,a=e.start;if(t.start=Khe(n,a),r.end!=null||e.end!=null){let i=r.end==null?r.start:r.end,s=e.end==null?e.start:e.end,o=Khe(i,s);if(r.end==null&&o.date().getTime()<t.start.date().getTime()){let l=o.dayjs().add(1,"day");o.isCertain("day")?Kr(o,l):bU(o,l)}t.end=o}return t}function Khe(r,e){let t=r.clone();return e.isCertain("hour")?(t.assign("hour",e.get("hour")),t.assign("minute",e.get("minute")),e.isCertain("second")?(t.assign("second",e.get("second")),e.isCertain("millisecond")?t.assign("millisecond",e.get("millisecond")):t.imply("millisecond",e.get("millisecond"))):(t.imply("second",e.get("second")),t.imply("millisecond",e.get("millisecond")))):(t.imply("hour",e.get("hour")),t.imply("minute",e.get("minute")),t.imply("second",e.get("second")),t.imply("millisecond",e.get("millisecond"))),e.isCertain("timezoneOffset")&&t.assign("timezoneOffset",e.get("timezoneOffset")),e.isCertain("meridiem")?t.assign("meridiem",e.get("meridiem")):e.get("meridiem")!=null&&t.get("meridiem")==null&&t.imply("meridiem",e.get("meridiem")),t.get("meridiem")==H.PM&&t.get("hour")<12&&(e.isCertain("hour")?t.assign("hour",t.get("hour")+12):t.imply("hour",t.get("hour")+12)),t.addTags(r.tags()),t.addTags(e.tags()),t}var Zhe=y(()=>{Ht();Gs()});var sn,Oo=y(()=>{_u();Zhe();sn=class extends cs{shouldMergeResults(e,t,n){return(t.start.isOnlyDate()&&n.start.isOnlyTime()||n.start.isOnlyDate()&&t.start.isOnlyTime())&&e.match(this.patternBetween())!=null}mergeResults(e,t,n){let a=t.start.isOnlyDate()?TU(t,n):TU(n,t);return a.index=t.index,a.text=t.text+e+n.text,a}}});var Jv,Qhe=y(()=>{Oo();Jv=class extends sn{patternBetween(){return new RegExp("^\\s*(T|at|after|before|on|of|,|-|\\.|\u2219|:)?\\s*$")}}});var _et,XS,Jhe=y(()=>{mU();_et=new RegExp("^\\s*,?\\s*\\(?([A-Z]{2,4})\\)?(?=\\W|$)","i"),XS=class{constructor(e){I(this,"timezoneOverrides");this.timezoneOverrides=e}refine(e,t){var a;let n=(a=e.option.timezones)!=null?a:{};return t.forEach(i=>{var m,f;let s=e.text.substring(i.index+i.text.length),o=_et.exec(s);if(!o)return;let l=o[1].toUpperCase(),c=(f=(m=i.start.date())!=null?m:i.refDate)!=null?f:new Date,d={...this.timezoneOverrides,...n},u=H_(l,c,d);if(u==null)return;e.debug(()=>{console.log(`Extracting timezone: '${l}' into: ${u} for: ${i.start}`)});let p=i.start.get("timezoneOffset");p!==null&&u!=p&&(i.start.isCertain("timezoneOffset")||l!=o[1])||i.start.isOnlyDate()&&l!=o[1]||(i.text+=o[0],i.start.isCertain("timezoneOffset")||i.start.assign("timezoneOffset",u),i.end!=null&&!i.end.isCertain("timezoneOffset")&&i.end.assign("timezoneOffset",u))}),t}}});var Iet,Net,Ret,Fet,zl,ex=y(()=>{Iet=new RegExp("^\\s*(?:\\(?(?:GMT|UTC)\\s?)?([+-])(\\d{1,2})(?::?(\\d{2}))?\\)?","i"),Net=1,Ret=2,Fet=3,zl=class{refine(e,t){return t.forEach(function(n){if(n.start.isCertain("timezoneOffset"))return;let a=e.text.substring(n.index+n.text.length),i=Iet.exec(a);if(!i)return;e.debug(()=>{console.log(`Extracting timezone: '${i[0]}' into : ${n}`)});let s=parseInt(i[Ret]),o=parseInt(i[Fet]||"0"),l=s*60+o;l>840||(i[Net]==="-"&&(l=-l),n.end!=null&&n.end.assign("timezoneOffset",l),n.start.assign("timezoneOffset",l),n.text+=i[0])}),t}}});var cm,wU=y(()=>{cm=class{refine(e,t){if(t.length<2)return t;let n=[],a=t[0];for(let i=1;i<t.length;i++){let s=t[i];if(s.index>=a.index+a.text.length){n.push(a),a=s;continue}let o=null,l=null;s.text.length>a.text.length?(o=s,l=a):(o=a,l=s),e.debug(()=>{console.log(`${this.constructor.name} remove ${l} by ${o}`)}),a=o}return a!=null&&n.push(a),n}}});var Xhe,tx,ege=y(()=>{Xhe=st(tr(),1);uU();tx=class{refine(e,t){return e.option.forwardDate&&t.forEach(n=>{let a=(0,Xhe.default)(e.reference.getDateWithAdjustedTimezone());if(n.start.isOnlyTime()&&e.reference.instant>n.start.date()){let i=e.reference.getDateWithAdjustedTimezone(),s=new Date(i);s.setDate(s.getDate()+1),U_(n.start,s),e.debug(()=>{console.log(`${this.constructor.name} adjusted ${n} time from the ref date (${i}) to the following day (${s})`)}),n.end&&n.end.isOnlyTime()&&(U_(n.end,s),n.start.date()>n.end.date()&&(s.setDate(s.getDate()+1),U_(n.end,s)))}if(n.start.isOnlyWeekdayComponent()&&a.isAfter(n.start.dayjs())&&(a.day()>=n.start.get("weekday")?a=a.day(n.start.get("weekday")+7):a=a.day(n.start.get("weekday")),n.start.imply("day",a.date()),n.start.imply("month",a.month()+1),n.start.imply("year",a.year()),e.debug(()=>{console.log(`${this.constructor.name} adjusted ${n} weekday (${n.start})`)}),n.end&&n.end.isOnlyWeekdayComponent()&&(a.day()>n.end.get("weekday")?a=a.day(n.end.get("weekday")+7):a=a.day(n.end.get("weekday")),n.end.imply("day",a.date()),n.end.imply("month",a.month()+1),n.end.imply("year",a.year()),e.debug(()=>{console.log(`${this.constructor.name} adjusted ${n} weekday (${n.end})`)}))),n.start.isDateWithUnknownYear()&&a.isAfter(n.start.dayjs()))for(let i=0;i<3&&a.isAfter(n.start.dayjs());i++)n.start.imply("year",n.start.get("year")+1),e.debug(()=>{console.log(`${this.constructor.name} adjusted ${n} year (${n.start})`)}),n.end&&!n.end.isCertain("year")&&(n.end.imply("year",n.end.get("year")+1),e.debug(()=>{console.log(`${this.constructor.name} adjusted ${n} month (${n.start})`)}))}),t}}});var rx,tge=y(()=>{_u();rx=class extends Qv{constructor(t){super();I(this,"strictMode");this.strictMode=t}isValid(t,n){return n.text.replace(" ","").match(/^\d*(\.\d*)?$/)?(t.debug(()=>{console.log(`Removing unlikely result '${n.text}'`)}),!1):n.start.isValidDate()?n.end&&!n.end.isValidDate()?(t.debug(()=>{console.log(`Removing invalid result: ${n} (${n.end})`)}),!1):this.strictMode?this.isStrictModeValid(t,n):!0:(t.debug(()=>{console.log(`Removing invalid result: ${n} (${n.start})`)}),!1)}isStrictModeValid(t,n){return n.start.isOnlyWeekdayComponent()?(t.debug(()=>{console.log(`(Strict) Removing weekday only component: ${n} (${n.end})`)}),!1):!0}}});var Oet,Let,zet,jet,rge,$et,nge,age,Bet,ige,sge,Iu,Y_=y(()=>{xe();Oet=new RegExp("([0-9]{4})\\-([0-9]{1,2})\\-([0-9]{1,2})(?:T([0-9]{1,2}):([0-9]{1,2})(?::([0-9]{1,2})(?:\\.(\\d{1,4}))?)?(Z|([+-]\\d{2}):?(\\d{2})?)?)?(?=\\W|$)","i"),Let=1,zet=2,jet=3,rge=4,$et=5,nge=6,age=7,Bet=8,ige=9,sge=10,Iu=class extends q{innerPattern(){return Oet}innerExtract(e,t){let n=e.createParsingComponents({year:parseInt(t[Let]),month:parseInt(t[zet]),day:parseInt(t[jet])});if(t[rge]!=null&&(n.assign("hour",parseInt(t[rge])),n.assign("minute",parseInt(t[$et])),t[nge]!=null&&n.assign("second",parseInt(t[nge])),t[age]!=null&&n.assign("millisecond",parseInt(t[age])),t[Bet]!=null)){let a=0;if(t[ige]){let i=parseInt(t[ige]),s=0;t[sge]!=null&&(s=parseInt(t[sge])),a=i*60,a<0?a-=s:a+=s}n.assign("timezoneOffset",a)}return n.addTag("parser/ISOFormatParser")}}});var Oh,SU=y(()=>{_u();Oh=class extends cs{mergeResults(e,t,n){let a=n.clone();return a.index=t.index,a.text=t.text+e+a.text,a.start.assign("weekday",t.start.get("weekday")),a.end&&a.end.assign("weekday",t.start.get("weekday")),a}shouldMergeResults(e,t,n){return t.start.isOnlyWeekdayComponent()&&!t.start.isCertain("hour")&&n.start.isCertain("day")&&e.match(/^,?\s*$/)!=null}}});function mn(r,e=!1){return r.parsers.unshift(new Iu),r.refiners.unshift(new Oh),r.refiners.unshift(new zl),r.refiners.unshift(new cm),r.refiners.push(new XS),r.refiners.push(new cm),r.refiners.push(new tx),r.refiners.push(new rx(e)),r}var Ks=y(()=>{Jhe();ex();wU();ege();tge();Y_();SU()});function di(r){let e=(0,dm.default)(r.getDateWithAdjustedTimezone()),t=new te(r,{});return Kr(t,e),Ghe(t,e),t.assign("timezoneOffset",r.getTimezoneOffset()),t.addTag("casualReference/now"),t}function Pa(r){let e=(0,dm.default)(r.getDateWithAdjustedTimezone()),t=new te(r,{});return Kr(t,e),Nc(t,e),t.addTag("casualReference/today"),t}function ui(r){return Lh(r,1).addTag("casualReference/yesterday")}function Lh(r,e){return Rc(r,-e)}function pi(r){return Rc(r,1).addTag("casualReference/tomorrow")}function Rc(r,e){let t=(0,dm.default)(r.getDateWithAdjustedTimezone()),n=new te(r,{});return t=t.add(e,"day"),Kr(n,t),Nc(n,t),n}function oge(r,e=22){let t=(0,dm.default)(r.getDateWithAdjustedTimezone()),n=new te(r,{});return Kr(n,t),n.imply("hour",e),n.imply("meridiem",H.PM),n.addTag("casualReference/tonight"),n}function G_(r,e=0){let t=(0,dm.default)(r.getDateWithAdjustedTimezone()),n=new te(r,{});return t.hour()<6&&(t=t.add(-1,"day")),Kr(n,t),n.imply("hour",e),n}function Xv(r,e=20){let t=new te(r,{});return t.imply("meridiem",H.PM),t.imply("hour",e),t.addTag("casualReference/evening"),t}function K_(r,e=20){let t=(0,dm.default)(r.getDateWithAdjustedTimezone()),n=new te(r,{});return t=t.add(-1,"day"),Kr(n,t),n.imply("hour",e),n.imply("meridiem",H.PM),n.addTag("casualReference/yesterday"),n.addTag("casualReference/evening"),n}function zh(r){let e=new te(r,{}),t=(0,dm.default)(r.getDateWithAdjustedTimezone());return t.hour()>2&&Yhe(e,t),e.assign("hour",0),e.imply("minute",0),e.imply("second",0),e.imply("millisecond",0),e.addTag("casualReference/midnight"),e}function ek(r,e=6){let t=new te(r,{});return t.imply("meridiem",H.AM),t.imply("hour",e),t.imply("minute",0),t.imply("second",0),t.imply("millisecond",0),t.addTag("casualReference/morning"),t}function lge(r,e=15){let t=new te(r,{});return t.imply("meridiem",H.PM),t.imply("hour",e),t.imply("minute",0),t.imply("second",0),t.imply("millisecond",0),t.addTag("casualReference/afternoon"),t}function tk(r){let e=new te(r,{});return e.imply("meridiem",H.AM),e.assign("hour",12),e.imply("minute",0),e.imply("second",0),e.imply("millisecond",0),e.addTag("casualReference/noon"),e}var dm,Zs=y(()=>{pt();dm=st(tr(),1);Gs();Ht()});var cge,Uet,nx,dge=y(()=>{cge=st(tr(),1);xe();Gs();Zs();Uet=/(now|today|tonight|tomorrow|overmorrow|tmr|tmrw|yesterday|last\s*night)(?=\W|$)/i,nx=class extends q{innerPattern(e){return Uet}innerExtract(e,t){let n=(0,cge.default)(e.refDate),a=t[0].toLowerCase(),i=e.createParsingComponents();switch(a){case"now":i=di(e.reference);break;case"today":i=Pa(e.reference);break;case"yesterday":i=ui(e.reference);break;case"tomorrow":case"tmr":case"tmrw":i=pi(e.reference);break;case"tonight":i=oge(e.reference);break;case"overmorrow":i=Rc(e.reference,2);break;default:a.match(/last\s*night/)&&(n.hour()>6&&(n=n.add(-1,"day")),Kr(i,n),i.imply("hour",0));break}return i.addTag("parser/ENCasualDateParser"),i}}});var Het,ax,uge=y(()=>{xe();Zs();Het=/(?:this)?\s{0,3}(morning|afternoon|evening|night|midnight|midday|noon)(?=\W|$)/i,ax=class extends q{innerPattern(){return Het}innerExtract(e,t){let n=null;switch(t[1].toLowerCase()){case"afternoon":n=lge(e.reference);break;case"evening":case"night":n=Xv(e.reference);break;case"midnight":n=zh(e.reference);break;case"morning":n=ek(e.reference);break;case"noon":case"midday":n=tk(e.reference);break}return n&&n.addTag("parser/ENCasualTimeParser"),n}}});function ea(r){let e={};for(let t in r)e[t]=-r[t];return e}function Z_(r,e){let t=r.clone(),n=r.dayjs();for(let a in e)n=n.add(e[a],a);return("day"in e||"d"in e||"week"in e||"month"in e||"year"in e)&&(t.imply("day",n.date()),t.imply("month",n.month()+1),t.imply("year",n.year())),("second"in e||"minute"in e||"hour"in e)&&(t.imply("second",n.second()),t.imply("minute",n.minute()),t.imply("hour",n.hour())),t}var Qs=y(()=>{});function ta(r,e,t){let n=r.getDateWithAdjustedTimezone(),a=Vet(n,e,t),i=new te(r);return i=Z_(i,{day:a}),i.assign("weekday",e),i}function Vet(r,e,t){let n=r.getDay();switch(t){case"this":return Q_(r,e);case"last":return pge(r,e);case"next":return n==Ye.SUNDAY?e==Ye.SUNDAY?7:e:n==Ye.SATURDAY?e==Ye.SATURDAY?7:e==Ye.SUNDAY?8:1+e:e<n&&e!=Ye.SUNDAY?Q_(r,e):Q_(r,e)+7}return qet(r,e)}function qet(r,e){let t=pge(r,e),n=Q_(r,e);return n<-t?n:t}function Q_(r,e){let t=r.getDay(),n=e-t;return n<0&&(n+=7),n}function pge(r,e){let t=r.getDay(),n=e-t;return n>=0&&(n-=7),n}var jl=y(()=>{Ht();pt();Qs()});var Wet,Yet,Get,Ket,ix,mge=y(()=>{da();Ot();xe();jl();Ht();Wet=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:on\\s*?)?(?:(this|last|past|next)\\s*)?(${oe(V_)}|weekend|weekday)(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(this|last|past|next)\\s*week)?(?=\\W|$)`,"i"),Yet=1,Get=2,Ket=3,ix=class extends q{innerPattern(){return Wet}innerExtract(e,t){let n=t[Yet],a=t[Ket],i=n||a;i=i||"",i=i.toLowerCase();let s=null;i=="last"||i=="past"?s="last":i=="next"?s="next":i=="this"&&(s="this");let o=t[Get].toLowerCase(),l;if(V_[o]!==void 0)l=V_[o];else if(o=="weekend")l=s=="last"?Ye.SUNDAY:Ye.SATURDAY;else if(o=="weekday"){let c=e.reference.getDateWithAdjustedTimezone().getDay();c==Ye.SUNDAY||c==Ye.SATURDAY?l=s=="last"?Ye.FRIDAY:Ye.MONDAY:(l=c-1,l=s=="last"?l-1:l+1,l=l%5+1)}else return null;return ta(e.reference,l,s)}}});var fge,Zet,Qet,Jet,sx,hge=y(()=>{da();pt();fge=st(tr(),1);xe();Ot();Zet=new RegExp(`(this|last|past|next|after\\s*this)\\s*(${oe(BS)})(?=\\s*)(?=\\W|$)`,"i"),Qet=1,Jet=2,sx=class extends q{innerPattern(){return Zet}innerExtract(e,t){let n=t[Qet].toLowerCase(),a=t[Jet].toLowerCase(),i=BS[a];if(n=="next"||n.startsWith("after")){let l={};return l[i]=1,te.createRelativeFromReference(e.reference,l)}if(n=="last"||n=="past"){let l={};return l[i]=-1,te.createRelativeFromReference(e.reference,l)}let s=e.createParsingComponents(),o=(0,fge.default)(e.reference.instant);return a.match(/week/i)?(o=o.add(-o.get("d"),"d"),s.imply("day",o.date()),s.imply("month",o.month()+1),s.imply("year",o.year())):a.match(/month/i)?(o=o.add(-o.date()+1,"d"),s.imply("day",o.date()),s.assign("year",o.year()),s.assign("month",o.month()+1)):a.match(/year/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),s.imply("day",o.date()),s.imply("month",o.month()+1),s.assign("year",o.year())),s}}});var Xet,ett,ttt,gge,yge,xU,ua,Nu=y(()=>{Rn();Xet=new RegExp("([^\\d]|^)([0-3]{0,1}[0-9]{1})[\\/\\.\\-]([0-3]{0,1}[0-9]{1})(?:[\\/\\.\\-]([0-9]{4}|[0-9]{2}))?(\\W|$)","i"),ett=1,ttt=5,gge=2,yge=3,xU=4,ua=class{constructor(e){I(this,"groupNumberMonth");I(this,"groupNumberDay");this.groupNumberMonth=e?yge:gge,this.groupNumberDay=e?gge:yge}pattern(){return Xet}extract(e,t){let n=t.index+t[ett].length,a=t.index+t[0].length-t[ttt].length;if(n>0&&e.text.substring(0,n).match("\\d/?$")||a<e.text.length&&e.text.substring(a).match("^/?\\d"))return;let i=e.text.substring(n,a);if(i.match(/^\d\.\d$/)||i.match(/^\d\.\d{1,2}\.\d{1,2}\s*$/)||!t[xU]&&i.indexOf("/")<0)return;let s=e.createParsingResult(n,i),o=parseInt(t[this.groupNumberMonth]),l=parseInt(t[this.groupNumberDay]);if((o<1||o>12)&&o>12)if(l>=1&&l<=12&&o<=31)[l,o]=[o,l];else return null;if(l<1||l>31)return null;if(s.start.assign("day",l),s.start.assign("month",o),t[xU]){let c=parseInt(t[xU]),d=ls(c);s.start.assign("year",d)}else{let c=fr(e.refDate,l,o);s.start.imply("year",c)}return s.addTag("parser/SlashDateFormatParser")}}});var rtt,ntt,ox,vge=y(()=>{da();pt();xe();$S();rtt=new RegExp(`(this|last|past|next|after|\\+|-)\\s*(${Mu})(?=\\W|$)`,"i"),ntt=new RegExp(`(this|last|past|next|after|\\+|-)\\s*(${lm})(?=\\W|$)`,"i"),ox=class extends q{constructor(t=!0){super();I(this,"allowAbbreviations");this.allowAbbreviations=t}innerPattern(){return this.allowAbbreviations?rtt:ntt}innerExtract(t,n){let a=n[1].toLowerCase(),i=Ro(n[2]);if(!i)return null;switch(a){case"last":case"past":case"-":i=Yv(i);break}return te.createRelativeFromReference(t.reference,i)}}});function att(r){return r.text.match(/^[+-]/i)!=null}function kge(r){return r.text.match(/^-/i)!=null}var lx,bge=y(()=>{_u();pt();da();Qs();lx=class extends cs{shouldMergeResults(e,t,n){return e.match(/^\s*$/i)?att(n)||kge(n):!1}mergeResults(e,t,n,a){let i=Ro(n.text);kge(n)&&(i=ea(i));let s=te.createRelativeFromReference(rr.fromDate(t.start.date()),i);return new Yt(t.reference,t.index,`${t.text}${e}${n.text}`,s)}}});function Tge(r){return r.text.match(/\s+(before|from)$/i)!=null}function itt(r){return r.text.match(/\s+(after|since)$/i)!=null}var cx,wge=y(()=>{_u();pt();da();$S();cx=class extends cs{patternBetween(){return/^\s*$/i}shouldMergeResults(e,t,n){return!e.match(this.patternBetween())||!Tge(t)&&!itt(t)?!1:!!n.start.get("day")&&!!n.start.get("month")&&!!n.start.get("year")}mergeResults(e,t,n){let a=Ro(t.text);Tge(t)&&(a=Yv(a));let i=te.createRelativeFromReference(rr.fromDate(n.start.date()),a);return new Yt(n.reference,t.index,`${t.text}${e}${n.text}`,i)}}});var stt,ott,dx,Sge=y(()=>{da();stt=new RegExp(`^\\s*(${sm})`,"i"),ott=1,dx=class{refine(e,t){return t.forEach(function(n){if(!n.start.isDateWithUnknownYear())return;let a=e.text.substring(n.index+n.text.length),i=stt.exec(a);if(!i||i[0].trim().length<=3)return;e.debug(()=>{console.log(`Extracting year: '${i[0]}' into : ${n}`)});let s=om(i[ott]);n.end!=null&&n.end.assign("year",s),n.start.assign("year",s),n.text+=i[0]}),t}}});var ux,xge=y(()=>{_u();ux=class extends Qv{constructor(){super()}isValid(e,t){let n=t.text.trim();return n===e.text.trim()?!0:n.toLowerCase()==="may"&&!e.text.substring(0,t.index).trim().match(/\b(in)$/i)?(e.debug(()=>{console.log(`Removing unlikely result: ${t}`)}),!1):n.toLowerCase().endsWith("the second")?(e.text.substring(t.index+t.text.length).trim().length>0&&e.debug(()=>{console.log(`Removing unlikely result: ${t}`)}),!1):!0}}});var jh,CU=y(()=>{Ahe();Rhe();Ohe();zhe();$he();Bhe();Hhe();Vhe();qhe();Whe();Qhe();Ks();dge();uge();mge();hge();Nu();vge();bge();wge();wU();Sge();xge();jh=class{createCasualConfiguration(e=!1){let t=this.createConfiguration(!1,e);return t.parsers.push(new nx),t.parsers.push(new ax),t.parsers.push(new qS),t.parsers.push(new sx),t.parsers.push(new ox),t.refiners.push(new ux),t}createConfiguration(e=!0,t=!1){let n=mn({parsers:[new ua(t),new US(e),new HS,new VS(t),new ix,new YS,new KS(e),new ZS(e),new QS(e)],refiners:[new Jv]},e);return n.parsers.unshift(new WS(e)),n.refiners.unshift(new cx),n.refiners.unshift(new lx),n.refiners.unshift(new cm),n.refiners.push(new Jv),n.refiners.push(new dx),n.refiners.push(new JS),n}}});var Be,px,ds=y(()=>{pt();CU();Be=class r{constructor(e){I(this,"parsers");I(this,"refiners");I(this,"defaultConfig",new jh);e=e||this.defaultConfig.createCasualConfiguration(),this.parsers=[...e.parsers],this.refiners=[...e.refiners]}clone(){return new r({parsers:[...this.parsers],refiners:[...this.refiners]})}parseDate(e,t,n){let a=this.parse(e,t,n);return a.length>0?a[0].start.date():null}parse(e,t,n){let a=new px(e,t,n),i=[];return this.parsers.forEach(s=>{let o=r.executeParser(a,s);i=i.concat(o)}),i.sort((s,o)=>s.index-o.index),this.refiners.forEach(function(s){i=s.refine(a,i)}),i}static executeParser(e,t){let n=[],a=t.pattern(e),i=e.text,s=e.text,o=a.exec(s);for(;o;){let l=o.index+i.length-s.length;o.index=l;let c=t.extract(e,o);if(!c){s=i.substring(o.index+1),o=a.exec(s);continue}let d=null;c instanceof Yt?d=c:c instanceof te?(d=e.createParsingResult(o.index,o[0]),d.start=c):d=e.createParsingResult(o.index,o[0],c);let u=d.index,p=d.text;e.debug(()=>console.log(`${t.constructor.name} extracted (at index=${u}) '${p}'`)),n.push(d),s=i.substring(u+p.length),o=a.exec(s)}return n}},px=class{constructor(e,t,n){I(this,"text");I(this,"option");I(this,"reference");I(this,"refDate");this.text=e,this.option=n!=null?n:{},this.reference=rr.fromInput(t,this.option.timezones),this.refDate=this.reference.instant}createParsingComponents(e){return e instanceof te?e:new te(this.reference,e)}createParsingResult(e,t,n,a){let i=typeof t=="string"?t:this.text.substring(e,t),s=n?this.createParsingComponents(n):null,o=a?this.createParsingComponents(a):null;return new Yt(this.reference,e,i,s,o)}debug(e){this.option.debug&&(this.option.debug instanceof Function?this.option.debug(e):this.option.debug.debug(e))}}});var DU={};at(DU,{Chrono:()=>Be,GB:()=>ltt,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>mx,configuration:()=>J_,parse:()=>ctt,parseDate:()=>dtt,strict:()=>EU});function ctt(r,e,t){return mx.parse(r,e,t)}function dtt(r,e,t){return mx.parseDate(r,e,t)}var J_,mx,EU,ltt,Cge=y(()=>{ds();pt();Ht();CU();J_=new jh,mx=new Be(J_.createCasualConfiguration(!1)),EU=new Be(J_.createConfiguration(!0,!1)),ltt=new Be(J_.createCasualConfiguration(!0))});var fx,Ege=y(()=>{Au();fx=class extends Da{primaryPrefix(){return"(?:(?:um|von)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|bis)\\s*"}extractPrimaryTimeComponents(e,t){return t[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(e,t)}}});function IU(r){let e=r.toLowerCase();return PU[e]!==void 0?PU[e]:e==="ein"||e==="einer"||e==="einem"||e==="einen"||e==="eine"?1:e.match(/wenigen/)?2:e.match(/halb/)||e.match(/halben/)?.5:e.match(/einigen/)?3:e.match(/mehreren/)?7:parseFloat(e)}function Mge(r){if(/v/i.test(r))return-parseInt(r.replace(/[^0-9]+/gi,""));if(/n/i.test(r))return parseInt(r.replace(/[^0-9]+/gi,""));if(/z/i.test(r))return parseInt(r.replace(/[^0-9]+/gi,""));let e=parseInt(r);return ls(e)}function Ige(r){let e={},t=r,n=Dge.exec(t);for(;n;)utt(e,n),t=t.substring(n[0].length),n=Dge.exec(t);return e}function utt(r,e){let t=IU(e[1]),n=hx[e[2].toLowerCase()];r[n]=t}var MU,AU,PU,hx,_U,Pge,Age,Dge,_ge,rk=y(()=>{Ot();Rn();MU={sonntag:0,so:0,montag:1,mo:1,dienstag:2,di:2,mittwoch:3,mi:3,donnerstag:4,do:4,freitag:5,fr:5,samstag:6,sa:6},AU={januar:1,j\u00E4nner:1,janner:1,jan:1,"jan.":1,februar:2,feber:2,feb:2,"feb.":2,m\u00E4rz:3,maerz:3,m\u00E4r:3,"m\xE4r.":3,mrz:3,"mrz.":3,april:4,apr:4,"apr.":4,mai:5,juni:6,jun:6,"jun.":6,juli:7,jul:7,"jul.":7,august:8,aug:8,"aug.":8,september:9,sep:9,"sep.":9,sept:9,"sept.":9,oktober:10,okt:10,"okt.":10,november:11,nov:11,"nov.":11,dezember:12,dez:12,"dez.":12},PU={eins:1,eine:1,einem:1,einen:1,einer:1,zwei:2,drei:3,vier:4,f\u00FCnf:5,fuenf:5,sechs:6,sieben:7,acht:8,neun:9,zehn:10,elf:11,zw\u00F6lf:12,zwoelf:12},hx={sek:"second",sekunde:"second",sekunden:"second",min:"minute",minute:"minute",minuten:"minute",h:"hour",std:"hour",stunde:"hour",stunden:"hour",tag:"d",tage:"d",tagen:"d",woche:"week",wochen:"week",monat:"month",monate:"month",monaten:"month",monats:"month",quartal:"quarter",quartals:"quarter",quartale:"quarter",quartalen:"quarter",a:"year",j:"year",jr:"year",jahr:"year",jahre:"year",jahren:"year",jahres:"year"},_U=`(?:${oe(PU)}|[0-9]+|[0-9]+\\.[0-9]+|halb?|halbe?|einigen?|wenigen?|mehreren?)`;Pge="(?:[0-9]{1,4}(?:\\s*[vn]\\.?\\s*(?:C(?:hr)?|(?:u\\.?|d\\.?(?:\\s*g\\.?)?)?\\s*Z)\\.?|\\s*(?:u\\.?|d\\.?(?:\\s*g\\.)?)\\s*Z\\.?)?)";Age=`(${_U})\\s{0,5}(${oe(hx)})\\s{0,5}`,Dge=new RegExp(Age,"i"),_ge=zi("",Age)});var ptt,mtt,ftt,htt,gx,Nge=y(()=>{rk();Ot();xe();jl();ptt=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:a[mn]\\s*?)?(?:(diese[mn]|letzte[mn]|n(?:\xE4|ae)chste[mn])\\s*)?(${oe(MU)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(diese|letzte|n(?:\xE4|ae)chste)\\s*woche)?(?=\\W|$)`,"i"),mtt=1,ftt=3,htt=2,gx=class extends q{innerPattern(){return ptt}innerExtract(e,t){let n=t[htt].toLowerCase(),a=MU[n],i=t[mtt],s=t[ftt],o=i||s;o=o||"",o=o.toLowerCase();let l=null;return o.match(/letzte/)?l="last":o.match(/chste/)?l="next":o.match(/diese/)&&(l="this"),ta(e.reference,a,l)}}});var gtt,ytt,vtt,Rge,Fge,Oge,yx,Lge=y(()=>{Ht();gtt=new RegExp("(^|\\s|T)(?:(?:um|von)\\s*)?(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s)?)?(?:\\s*Uhr)?(?:\\s*(morgens|vormittags|nachmittags|abends|nachts|am\\s+(?:Morgen|Vormittag|Nachmittag|Abend)|in\\s+der\\s+Nacht))?(?=\\W|$)","i"),ytt=new RegExp("^\\s*(\\-|\\\u2013|\\~|\\\u301C|bis(?:\\s+um)?|\\?)\\s*(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s)?)?(?:\\s*Uhr)?(?:\\s*(morgens|vormittags|nachmittags|abends|nachts|am\\s+(?:Morgen|Vormittag|Nachmittag|Abend)|in\\s+der\\s+Nacht))?(?=\\W|$)","i"),vtt=2,Rge=3,Fge=4,Oge=5,yx=class r{pattern(e){return gtt}extract(e,t){let n=e.createParsingResult(t.index+t[1].length,t[0].substring(t[1].length));if(n.text.match(/^\d{4}$/)||(n.start=r.extractTimeComponent(n.start.clone(),t),!n.start))return t.index+=t[0].length,null;let a=e.text.substring(t.index+t[0].length),i=ytt.exec(a);return i&&(n.end=r.extractTimeComponent(n.start.clone(),i),n.end&&(n.text+=i[0])),n}static extractTimeComponent(e,t){let n=0,a=0,i=null;if(n=parseInt(t[vtt]),t[Rge]!=null&&(a=parseInt(t[Rge])),a>=60||n>24)return null;if(n>=12&&(i=H.PM),t[Oge]!=null){if(n>12)return null;let s=t[Oge].toLowerCase();s.match(/morgen|vormittag/)&&(i=H.AM,n==12&&(n=0)),s.match(/nachmittag|abend/)&&(i=H.PM,n!=12&&(n+=12)),s.match(/nacht/)&&(n==12?(i=H.AM,n=0):n<6?i=H.AM:(i=H.PM,n+=12))}if(e.assign("hour",n),e.assign("minute",a),i!==null?e.assign("meridiem",i):n<12?e.imply("meridiem",H.AM):e.imply("meridiem",H.PM),t[Fge]!=null){let s=parseInt(t[Fge]);if(s>=60)return null;e.assign("second",s)}return e}}});var vx,zge=y(()=>{Fo();vx=class extends an{patternBetween(){return/^\s*(bis(?:\s*(?:am|zum))?|-)\s*$/i}}});var kx,jge=y(()=>{Oo();kx=class extends sn{patternBetween(){return new RegExp("^\\s*(T|um|am|,|-)?\\s*$")}}});var $ge,$h,NU=y(()=>{$ge=st(tr(),1);Ht();xe();Gs();Qs();$h=class r extends q{innerPattern(e){return/(diesen)?\s*(morgen|vormittag|mittags?|nachmittag|abend|nacht|mitternacht)(?=\W|$)/i}innerExtract(e,t){let n=(0,$ge.default)(e.refDate),a=t[2].toLowerCase(),i=e.createParsingComponents();return Nc(i,n),r.extractTimeComponents(i,a)}static extractTimeComponents(e,t){switch(t){case"morgen":e.imply("hour",6),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",H.AM);break;case"vormittag":e.imply("hour",9),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",H.AM);break;case"mittag":case"mittags":e.imply("hour",12),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",H.AM);break;case"nachmittag":e.imply("hour",15),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",H.PM);break;case"abend":e.imply("hour",18),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",H.PM);break;case"nacht":e.imply("hour",22),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",H.PM);break;case"mitternacht":e.get("hour")>1&&(e=Z_(e,{day:1})),e.imply("hour",0),e.imply("minute",0),e.imply("second",0),e.imply("meridiem",H.AM);break}return e}}});var Bge,ktt,btt,Ttt,bx,Uge=y(()=>{Bge=st(tr(),1);xe();Gs();NU();Zs();ktt=new RegExp("(jetzt|heute|morgen|\xFCbermorgen|uebermorgen|gestern|vorgestern|letzte\\s*nacht)(?:\\s*(morgen|vormittag|mittags?|nachmittag|abend|nacht|mitternacht))?(?=\\W|$)","i"),btt=1,Ttt=2,bx=class extends q{innerPattern(e){return ktt}innerExtract(e,t){let n=(0,Bge.default)(e.refDate),a=(t[btt]||"").toLowerCase(),i=(t[Ttt]||"").toLowerCase(),s=e.createParsingComponents();switch(a){case"jetzt":s=di(e.reference);break;case"heute":s=Pa(e.reference);break;case"morgen":Ll(s,n);break;case"\xFCbermorgen":case"uebermorgen":n=n.add(1,"day"),Ll(s,n);break;case"gestern":n=n.add(-1,"day"),Kr(s,n),Nc(s,n);break;case"vorgestern":n=n.add(-2,"day"),Kr(s,n),Nc(s,n);break;default:a.match(/letzte\s*nacht/)&&(n.hour()>6&&(n=n.add(-1,"day")),Kr(s,n),s.imply("hour",0));break}return i&&(s=$h.extractTimeComponents(s,i)),s}}});var wtt,Hge,Vge,Stt,qge,Tx,Wge=y(()=>{Rn();rk();rk();Ot();xe();wtt=new RegExp(`(?:am\\s*?)?(?:den\\s*?)?([0-9]{1,2})\\.(?:\\s*(?:bis(?:\\s*(?:am|zum))?|\\-|\\\u2013|\\s)\\s*([0-9]{1,2})\\.?)?\\s*(${oe(AU)})(?:(?:-|/|,?\\s*)(${Pge}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),Hge=1,Vge=2,Stt=3,qge=4,Tx=class extends q{innerPattern(){return wtt}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=AU[t[Stt].toLowerCase()],i=parseInt(t[Hge]);if(i>31)return t.index=t.index+t[Hge].length,null;if(n.start.assign("month",a),n.start.assign("day",i),t[qge]){let s=Mge(t[qge]);n.start.assign("year",s)}else{let s=fr(e.refDate,i,a);n.start.imply("year",s)}if(t[Vge]){let s=parseInt(t[Vge]);n.end=n.start.clone(),n.end.assign("day",s)}return n}}});var wx,Yge=y(()=>{rk();pt();xe();Qs();Ot();wx=class extends q{constructor(){super()}innerPattern(){return new RegExp(`(?:\\s*((?:n\xE4chste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?|vor|in)\\s*)?(${_U})?(?:\\s*(n\xE4chste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?)?\\s*(${oe(hx)})`,"i")}innerExtract(e,t){let n=t[2]?IU(t[2]):1,a=hx[t[4].toLowerCase()],i={};i[a]=n;let s=t[1]||t[3]||"";if(s=s.toLowerCase(),!!s)return(/vor/.test(s)||/letzte/.test(s)||/vergangen/.test(s))&&(i=ea(i)),te.createRelativeFromReference(e.reference,i)}}});var Sx,Gge=y(()=>{rk();pt();xe();Sx=class extends q{innerPattern(){return new RegExp(`(?:in|f\xFCr|w\xE4hrend)\\s*(${_ge})(?=\\W|$)`,"i")}innerExtract(e,t){let n=Ige(t[1]);return te.createRelativeFromReference(e.reference,n)}}});var OU={};at(OU,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>RU,createCasualConfiguration:()=>Kge,createConfiguration:()=>FU,parse:()=>Ctt,parseDate:()=>Ett,strict:()=>xtt});function Ctt(r,e,t){return RU.parse(r,e,t)}function Ett(r,e,t){return RU.parseDate(r,e,t)}function Kge(r=!0){let e=FU(!1,r);return e.parsers.unshift(new $h),e.parsers.unshift(new bx),e.parsers.unshift(new wx),e}function FU(r=!0,e=!0){return mn({parsers:[new Iu,new ua(e),new fx,new yx,new Tx,new gx,new Sx],refiners:[new vx,new kx]},r)}var RU,xtt,Zge=y(()=>{Ks();ds();pt();Ht();Nu();Y_();Ege();Nge();Lge();zge();jge();Uge();NU();Wge();Yge();Gge();RU=new Be(Kge()),xtt=new Be(FU(!0))});var Qge,xx,Jge=y(()=>{Qge=st(tr(),1);Ht();xe();Gs();Zs();xx=class extends q{innerPattern(e){return/(maintenant|aujourd'hui|demain|hier|cette\s*nuit|la\s*veille)(?=\W|$)/i}innerExtract(e,t){let n=(0,Qge.default)(e.refDate),a=t[0].toLowerCase(),i=e.createParsingComponents();switch(a){case"maintenant":return di(e.reference);case"aujourd'hui":return Pa(e.reference);case"hier":return ui(e.reference);case"demain":return pi(e.reference);default:a.match(/cette\s*nuit/)?(Kr(i,n),i.imply("hour",22),i.imply("meridiem",H.PM)):a.match(/la\s*veille/)&&(n=n.add(-1,"day"),Kr(i,n),i.imply("hour",0))}return i}}});var Cx,Xge=y(()=>{Ht();xe();Cx=class extends q{innerPattern(e){return/(cet?)?\s*(matin|soir|après-midi|aprem|a midi|à minuit)(?=\W|$)/i}innerExtract(e,t){let n=t[2].toLowerCase(),a=e.createParsingComponents();switch(n){case"apr\xE8s-midi":case"aprem":a.imply("hour",14),a.imply("minute",0),a.imply("meridiem",H.PM);break;case"soir":a.imply("hour",18),a.imply("minute",0),a.imply("meridiem",H.PM);break;case"matin":a.imply("hour",8),a.imply("minute",0),a.imply("meridiem",H.AM);break;case"a midi":a.imply("hour",12),a.imply("minute",0),a.imply("meridiem",H.AM);break;case"\xE0 minuit":a.imply("hour",0),a.imply("meridiem",H.AM);break}return a}}});var Ex,eye=y(()=>{Au();Ex=class extends Da{primaryPrefix(){return"(?:(?:[\xE0a])\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|[\xE0a]|\\?)\\s*"}extractPrimaryTimeComponents(e,t){return t[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(e,t)}}});var Dx,tye=y(()=>{Oo();Dx=class extends sn{patternBetween(){return new RegExp("^\\s*(T|\xE0|a|au|vers|de|,|-)?\\s*$")}}});var Px,rye=y(()=>{Fo();Px=class extends an{patternBetween(){return/^\s*(à|a|au|-)\s*$/i}}});function BU(r){let e=r.toLowerCase();return LU[e]!==void 0?LU[e]:e==="une"||e==="un"?1:e.match(/quelques?/)?3:e.match(/demi-?/)?.5:parseFloat(e)}function HU(r){let e=r.toLowerCase();return e=e.replace(/(?:er)$/i,""),parseInt(e)}function iye(r){if(/AC/i.test(r))return r=r.replace(/BC/i,""),-parseInt(r);if(/AD/i.test(r)||/C/i.test(r))return r=r.replace(/[^\d]+/i,""),parseInt(r);let e=parseInt(r);return e<100&&(e>50?e=e+1900:e=e+2e3),e}function eI(r){let e={},t=r,n=nye.exec(t);for(;n;)Dtt(e,n),t=t.substring(n[0].length),n=nye.exec(t);return e}function Dtt(r,e){let t=BU(e[1]),n=Mx[e[2].toLowerCase()];r[n]=t}var zU,jU,LU,Mx,$U,UU,aye,sye,nye,X_,um=y(()=>{Ot();zU={dimanche:0,dim:0,lundi:1,lun:1,mardi:2,mar:2,mercredi:3,mer:3,jeudi:4,jeu:4,vendredi:5,ven:5,samedi:6,sam:6},jU={janvier:1,jan:1,"jan.":1,f\u00E9vrier:2,f\u00E9v:2,"f\xE9v.":2,fevrier:2,fev:2,"fev.":2,mars:3,mar:3,"mar.":3,avril:4,avr:4,"avr.":4,mai:5,juin:6,jun:6,juillet:7,juil:7,jul:7,"jul.":7,ao\u00FBt:8,aout:8,septembre:9,sep:9,"sep.":9,sept:9,"sept.":9,octobre:10,oct:10,"oct.":10,novembre:11,nov:11,"nov.":11,d\u00E9cembre:12,decembre:12,dec:12,"dec.":12},LU={un:1,deux:2,trois:3,quatre:4,cinq:5,six:6,sept:7,huit:8,neuf:9,dix:10,onze:11,douze:12,treize:13},Mx={sec:"second",seconde:"second",secondes:"second",min:"minute",mins:"minute",minute:"minute",minutes:"minute",h:"hour",hr:"hour",hrs:"hour",heure:"hour",heures:"hour",jour:"d",jours:"d",semaine:"week",semaines:"week",mois:"month",trimestre:"quarter",trimestres:"quarter",ans:"year",ann\u00E9e:"year",ann\u00E9es:"year"},$U=`(?:${oe(LU)}|[0-9]+|[0-9]+\\.[0-9]+|une?\\b|quelques?|demi-?)`;UU="(?:[0-9]{1,2}(?:er)?)";aye="(?:[1-9][0-9]{0,3}\\s*(?:AC|AD|p\\.\\s*C(?:hr?)?\\.\\s*n\\.)|[1-2][0-9]{3}|[5-9][0-9])";sye=`(${$U})\\s{0,5}(${oe(Mx)})\\s{0,5}`,nye=new RegExp(sye,"i"),X_=zi("",sye)});var Ptt,Mtt,Att,Ax,oye=y(()=>{um();Ot();xe();jl();Ptt=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:(?:ce)\\s*)?(${oe(zU)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(dernier|prochain)\\s*)?(?=\\W|\\d|$)`,"i"),Mtt=1,Att=2,Ax=class extends q{innerPattern(){return Ptt}innerExtract(e,t){let n=t[Mtt].toLowerCase(),a=zU[n];if(a===void 0)return null;let i=t[Att];i=i||"",i=i.toLowerCase();let s=null;return i=="dernier"?s="last":i=="prochain"&&(s="next"),ta(e.reference,a,s)}}});var _tt,Itt,Ntt,lye,cye,dye,_x,uye=y(()=>{Ht();_tt=new RegExp("(^|\\s|T)(?:(?:[\xE0a])\\s*)?(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s|:)?)?(?:\\s*(A\\.M\\.|P\\.M\\.|AM?|PM?))?(?=\\W|$)","i"),Itt=new RegExp("^\\s*(\\-|\\\u2013|\\~|\\\u301C|[\xE0a]|\\?)\\s*(\\d{1,2})(?:h|:)?(?:(\\d{1,2})(?:m|:)?)?(?:(\\d{1,2})(?:s|:)?)?(?:\\s*(A\\.M\\.|P\\.M\\.|AM?|PM?))?(?=\\W|$)","i"),Ntt=2,lye=3,cye=4,dye=5,_x=class r{pattern(e){return _tt}extract(e,t){let n=e.createParsingResult(t.index+t[1].length,t[0].substring(t[1].length));if(n.text.match(/^\d{4}$/)||(n.start=r.extractTimeComponent(n.start.clone(),t),!n.start))return t.index+=t[0].length,null;let a=e.text.substring(t.index+t[0].length),i=Itt.exec(a);return i&&(n.end=r.extractTimeComponent(n.start.clone(),i),n.end&&(n.text+=i[0])),n}static extractTimeComponent(e,t){let n=0,a=0,i=null;if(n=parseInt(t[Ntt]),t[lye]!=null&&(a=parseInt(t[lye])),a>=60||n>24)return null;if(n>=12&&(i=H.PM),t[dye]!=null){if(n>12)return null;let s=t[dye][0].toLowerCase();s=="a"&&(i=H.AM,n==12&&(n=0)),s=="p"&&(i=H.PM,n!=12&&(n+=12))}if(e.assign("hour",n),e.assign("minute",a),i!==null?e.assign("meridiem",i):n<12?e.imply("meridiem",H.AM):e.imply("meridiem",H.PM),t[cye]!=null){let s=parseInt(t[cye]);if(s>=60)return null;e.assign("second",s)}return e}}});var Rtt,pye,mye,Ftt,fye,Ix,hye=y(()=>{Rn();um();um();um();Ot();xe();Rtt=new RegExp(`(?:on\\s*?)?(${UU})(?:\\s*(?:au|\\-|\\\u2013|jusqu'au?|\\s)\\s*(${UU}))?(?:-|/|\\s*(?:de)?\\s*)(${oe(jU)})(?:(?:-|/|,?\\s*)(${aye}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),pye=1,mye=2,Ftt=3,fye=4,Ix=class extends q{innerPattern(){return Rtt}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=jU[t[Ftt].toLowerCase()],i=HU(t[pye]);if(i>31)return t.index=t.index+t[pye].length,null;if(n.start.assign("month",a),n.start.assign("day",i),t[fye]){let s=iye(t[fye]);n.start.assign("year",s)}else{let s=fr(e.refDate,i,a);n.start.imply("year",s)}if(t[mye]){let s=HU(t[mye]);n.end=n.start.clone(),n.end.assign("day",s)}return n}}});var Nx,gye=y(()=>{um();pt();xe();Qs();Nx=class extends q{constructor(){super()}innerPattern(){return new RegExp(`il y a\\s*(${X_})(?=(?:\\W|$))`,"i")}innerExtract(e,t){let n=eI(t[1]),a=ea(n);return te.createRelativeFromReference(e.reference,a)}}});var Rx,yye=y(()=>{um();pt();xe();Rx=class extends q{innerPattern(){return new RegExp(`(?:dans|en|pour|pendant|de)\\s*(${X_})(?=\\W|$)`,"i")}innerExtract(e,t){let n=eI(t[1]);return te.createRelativeFromReference(e.reference,n)}}});var Fx,vye=y(()=>{um();pt();xe();Qs();Ot();Fx=class extends q{constructor(){super()}innerPattern(){return new RegExp(`(?:les?|la|l'|du|des?)\\s*(${$U})?(?:\\s*(prochaine?s?|derni[e\xE8]re?s?|pass[\xE9e]e?s?|pr[\xE9e]c[\xE9e]dents?|suivante?s?))?\\s*(${oe(Mx)})(?:\\s*(prochaine?s?|derni[e\xE8]re?s?|pass[\xE9e]e?s?|pr[\xE9e]c[\xE9e]dents?|suivante?s?))?`,"i")}innerExtract(e,t){let n=t[1]?BU(t[1]):1,a=Mx[t[3].toLowerCase()],i={};i[a]=n;let s=t[2]||t[4]||"";if(s=s.toLowerCase(),!!s)return(/derni[eè]re?s?/.test(s)||/pass[ée]e?s?/.test(s)||/pr[ée]c[ée]dents?/.test(s))&&(i=ea(i)),te.createRelativeFromReference(e.reference,i)}}});var WU={};at(WU,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>VU,createCasualConfiguration:()=>kye,createConfiguration:()=>qU,parse:()=>Ltt,parseDate:()=>ztt,strict:()=>Ott});function Ltt(r,e,t){return VU.parse(r,e,t)}function ztt(r,e,t){return VU.parseDate(r,e,t)}function kye(r=!0){let e=qU(!1,r);return e.parsers.unshift(new xx),e.parsers.unshift(new Cx),e.parsers.unshift(new Fx),e}function qU(r=!0,e=!0){return mn({parsers:[new ua(e),new Ix,new Ex,new _x,new Nx,new Rx,new Ax],refiners:[new Dx,new Px]},r)}var VU,Ott,bye=y(()=>{Ks();ds();pt();Ht();Jge();Xge();Nu();eye();tye();rye();oye();uye();hye();gye();yye();vye();VU=new Be(kye()),Ott=new Be(qU(!0))});function ji(r){return String(r).replace(/\u2019/g,"'").replace(/\u201D/g,'"').replace(/\u3000/g," ").replace(/\uFFE5/g,"\xA5").replace(/[\uFF01\uFF03-\uFF06\uFF08\uFF09\uFF0C-\uFF19\uFF1C-\uFF1F\uFF21-\uFF3B\uFF3D\uFF3F\uFF41-\uFF5B\uFF5D\uFF5E]/g,jtt)}function jtt(r){return String.fromCharCode(r.charCodeAt(0)-65248)}function Bh(r){let e=0;for(let t=0;t<r.length;t++){let n=r[t];n==="\u5341"?e=e===0?Fc[n]:e*Fc[n]:e+=Fc[n]}return e}var Fc,nk,ak=y(()=>{Fc={\u96F6:0,"\u3007":0,\u4E00:1,\u4E8C:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9,\u5341:10},nk={\u65E5:0,\u6708:1,\u706B:2,\u6C34:3,\u6728:4,\u91D1:5,\u571F:6}});var wye,$tt,Tye,Btt,YU,Utt,Htt,Vtt,Ox,Sye=y(()=>{ak();Rn();wye=st(tr(),1),$tt=/(?:(?:([同今本])|((昭和|平成|令和)?([0-90-9]{1,4}|元)))年\s*)?([0-90-9]{1,2})月\s*([0-90-9]{1,2})日/i,Tye=1,Btt=2,YU=3,Utt=4,Htt=5,Vtt=6,Ox=class{pattern(){return $tt}extract(e,t){let n=parseInt(ji(t[Htt])),a=parseInt(ji(t[Vtt])),i=e.createParsingComponents({day:a,month:n});if(t[Tye]&&t[Tye].match("\u540C|\u4ECA|\u672C")){let s=(0,wye.default)(e.refDate);i.assign("year",s.year())}if(t[Btt]){let s=t[Utt],o=s=="\u5143"?1:parseInt(ji(s));t[YU]=="\u4EE4\u548C"?o+=2018:t[YU]=="\u5E73\u6210"?o+=1988:t[YU]=="\u662D\u548C"&&(o+=1925),i.assign("year",o)}else{let s=fr(e.refDate,a,n);i.imply("year",s)}return i}}});var Lx,xye=y(()=>{Fo();Lx=class extends an{patternBetween(){return/^\s*(から|-|ー|-|~|~)\s*$/i}}});function Wtt(r){switch(r){case"\u304D\u3087\u3046":return"\u4ECA\u65E5";case"\u307B\u3093\u3058\u3064":return"\u672C\u65E5";case"\u304D\u306E\u3046":return"\u6628\u65E5";case"\u3042\u3057\u305F":return"\u660E\u65E5";case"\u3053\u3093\u3084":return"\u4ECA\u591C";case"\u3053\u3093\u3086\u3046":return"\u4ECA\u5915";case"\u3053\u3093\u3070\u3093":return"\u4ECA\u6669";case"\u3051\u3055":return"\u4ECA\u671D";default:return r}}var Cye,qtt,zx,Eye=y(()=>{Cye=st(tr(),1);Ht();Zs();qtt=/今日|きょう|本日|ほんじつ|昨日|きのう|明日|あした|今夜|こんや|今夕|こんゆう|今晩|こんばん|今朝|けさ/i;zx=class{pattern(){return qtt}extract(e,t){let n=Wtt(t[0]),a=(0,Cye.default)(e.refDate),i=e.createParsingComponents();switch(n){case"\u6628\u65E5":return ui(e.reference);case"\u660E\u65E5":return pi(e.reference);case"\u672C\u65E5":case"\u4ECA\u65E5":return Pa(e.reference)}return n=="\u4ECA\u591C"||n=="\u4ECA\u5915"||n=="\u4ECA\u6669"?(i.imply("hour",22),i.assign("meridiem",H.PM)):n.match("\u4ECA\u671D")&&(i.imply("hour",6),i.assign("meridiem",H.AM)),i.assign("day",a.date()),i.assign("month",a.month()+1),i.assign("year",a.year()),i}}});var Ytt,jx,Dye=y(()=>{ak();jl();Ytt=new RegExp("((?<prefix>\u524D\u306E|\u6B21\u306E|\u4ECA\u9031))?(?<weekday>"+Object.keys(nk).join("|")+")(?:\u66DC\u65E5|\u66DC)","i"),jx=class{pattern(){return Ytt}extract(e,t){let n=t.groups.weekday,a=nk[n];if(a===void 0)return null;let i=t.groups.prefix||"",s=null;return i.match(/前の/)?s="last":i.match(/次の/)?s="next":i.match(/今週/)&&(s="this"),ta(e.reference,a,s)}}});var Gtt,Pye,Ktt,Ztt,$x,Mye=y(()=>{Rn();ak();Gtt=new RegExp("([0-9\uFF10-\uFF19]{4}[\\/|\\\uFF0F])?([0-1\uFF10-\uFF11]{0,1}[0-9\uFF10-\uFF19]{1})(?:[\\/|\\\uFF0F]([0-3\uFF10-\uFF13]{0,1}[0-9\uFF10-\uFF19]{1}))","i"),Pye=1,Ktt=2,Ztt=3,$x=class{pattern(){return Gtt}extract(e,t){let n=e.createParsingComponents(),a=parseInt(ji(t[Ktt])),i=parseInt(ji(t[Ztt]));if(a<1||a>12||i<1||i>31)return null;if(n.assign("day",i),n.assign("month",a),t[Pye]){let s=parseInt(ji(t[Pye])),o=ls(s);n.assign("year",o)}else{let s=fr(e.reference.instant,i,a);n.imply("year",s)}return n}}});var Qtt,Jtt,tI,rI,pm,ik,nI,Bx,Aye=y(()=>{xe();Ht();ak();Qtt=new RegExp("(?:(\u5348\u524D|\u5348\u5F8C|A.M.|P.M.|AM|PM))?(?:[\\s,\uFF0C\u3001]*)(?:([0-9\uFF10-\uFF19]+|["+Object.keys(Fc).join("")+"]+)(?:\\s*)(?:\u6642|:|\uFF1A)(?:\\s*)([0-9\uFF10-\uFF19]+|\u534A|["+Object.keys(Fc).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)([0-9\uFF10-\uFF19]+|["+Object.keys(Fc).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),Jtt=new RegExp("(?:^\\s*(?:\u304B\u3089|\\-|\\\u2013|\\\uFF0D|\\~|\\\u301C)\\s*)(?:(\u5348\u524D|\u5348\u5F8C|A.M.|P.M.|AM|PM))?(?:[\\s,\uFF0C\u3001]*)(?:([0-9\uFF10-\uFF19]+|["+Object.keys(Fc).join("")+"]+)(?:\\s*)(?:\u6642|:|\uFF1A)(?:\\s*)([0-9\uFF10-\uFF19]+|\u534A|["+Object.keys(Fc).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)([0-9\uFF10-\uFF19]+|["+Object.keys(Fc).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),tI=1,rI=2,pm=3,ik=4,nI=5,Bx=class extends q{innerPattern(){return Qtt}innerExtract(e,t){if(t.index>0&&e.text[t.index-1].match(/\w/))return null;let n=e.createParsingResult(t.index,t[0]),a=0,i=0,s=-1;if(t[ik]){let o=parseInt(ji(t[ik]));if(isNaN(o)&&(o=Bh(t[ik])),o>=60)return null;n.start.assign("second",o)}if(a=parseInt(ji(t[rI])),isNaN(a)&&(a=Bh(t[rI])),t[pm]?t[pm]==="\u534A"?i=30:(i=parseInt(ji(t[pm])),isNaN(i)&&(i=Bh(t[pm]))):a>100&&(i=a%100,a=Math.floor(a/100)),i>=60||a>24)return null;if(a>=12&&(s=H.PM),t[tI]){if(a>12)return null;let o=t[tI],l=o[0].toLowerCase();o==="\u5348\u524D"||l==="a"?(s=H.AM,a===12&&(a=0)):(o==="\u5348\u5F8C"||l==="p")&&(s=H.PM,a!=12&&(a+=12))}else if(t[nI]){if(a>12)return null;let o=t[nI][0].toLowerCase();o==="a"&&(s=H.AM,a===12&&(a=0)),o==="p"&&(s=H.PM,a!=12&&(a+=12))}if(n.start.assign("hour",a),n.start.assign("minute",i),s>=0?n.start.assign("meridiem",s):a<12?n.start.imply("meridiem",0):n.start.imply("meridiem",1),t=Jtt.exec(e.text.substring(n.index+n.text.length)),!t)return n.text.match(/^\d+$/)?null:n;if(n.end=e.createParsingComponents(),a=0,i=0,s=-1,t[ik]){let o=parseInt(ji(t[ik]));if(isNaN(o)&&(o=Bh(t[ik])),o>=60)return null;n.end.assign("second",o)}if(a=parseInt(ji(t[rI])),isNaN(a)&&(a=Bh(t[rI])),t[pm]?t[pm]==="\u534A"?i=30:(i=parseInt(ji(t[pm])),isNaN(i)&&(i=Bh(t[pm]))):a>100&&(i=a%100,a=Math.floor(a/100)),i>=60||a>24)return null;if(a>=12&&(s=H.PM),t[tI]){if(a>12)return null;let o=t[tI],l=o[0].toLowerCase();o==="\u5348\u524D"||l==="a"?(s=H.AM,a===12&&(a=0)):(o==="\u5348\u5F8C"||l==="p")&&(s=H.PM,a!=12&&(a+=12)),n.start.isCertain("meridiem")||(s===H.AM?(n.start.imply("meridiem",H.AM),n.start.get("hour")===12&&n.start.assign("hour",0)):(n.start.imply("meridiem",1),n.start.get("hour")!=12&&n.start.assign("hour",n.start.get("hour")+12)))}else if(t[nI]){if(a>12)return null;let o=t[nI][0].toLowerCase();o==="a"&&(s=H.AM,a===12&&(a=0)),o==="p"&&(s=H.PM,a!=12&&(a+=12))}return n.text=n.text+t[0],n.end.assign("hour",a),n.end.assign("minute",i),s>=0?n.end.assign("meridiem",s):n.start.isCertain("meridiem")&&n.start.get("hour")>12?n.start.get("hour")-12>a?n.end.imply("meridiem",H.AM):a<=12&&(n.end.assign("hour",a+12),n.end.assign("meridiem",H.PM)):a>12?n.end.imply("meridiem",H.PM):a<=12&&n.end.imply("meridiem",H.AM),n.end.date().getTime()<n.start.date().getTime()&&n.end.imply("day",n.end.get("day")+1),n}}});var Ux,_ye=y(()=>{Oo();Ux=class extends sn{patternBetween(){return/^\s*(の)?\s*$/i}}});var Hx,Iye=y(()=>{_u();Hx=class extends cs{mergeResults(e,t,n){let a=t.clone();return a.text=t.text+e+n.text,a.start.assign("weekday",n.start.get("weekday")),a.end&&a.end.assign("weekday",n.start.get("weekday")),a}shouldMergeResults(e,t,n){return t.start.isCertain("day")&&n.start.isOnlyWeekdayComponent()&&!n.start.isCertain("hour")&&e.match(/^[,、の]?\s*$/)!==null}}});var Xtt,Vx,Nye=y(()=>{ak();jl();Xtt=new RegExp("(?:\\(|\\\uFF08)(?<weekday>"+Object.keys(nk).join("|")+")(?:\\)|\\\uFF09)","i"),Vx=class{pattern(){return Xtt}extract(e,t){let n=t.groups.weekday,a=nk[n];return a===void 0?null:ta(e.reference,a)}}});var ZU={};at(ZU,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>GU,createCasualConfiguration:()=>Rye,createConfiguration:()=>KU,parse:()=>trt,parseDate:()=>rrt,strict:()=>ert});function trt(r,e,t){return GU.parse(r,e,t)}function rrt(r,e,t){return GU.parseDate(r,e,t)}function Rye(){let r=KU(!1);return r.parsers.unshift(new zx),r}function KU(r=!0){let e=mn({parsers:[new Ox,new jx,new Vx,new $x,new Bx],refiners:[new Hx,new Ux,new Lx]},r);return e.refiners=e.refiners.filter(t=>!(t instanceof Oh)),e}var GU,ert,Fye=y(()=>{Sye();xye();Eye();Dye();Mye();Aye();_ye();ds();pt();Ht();Iye();Nye();Ks();SU();GU=new Be(Rye()),ert=new Be(KU(!0))});function Lye(r){if(r.match(/^[0-9]{1,4}$/)){let e=parseInt(r);return e<100&&(e>50?e=e+1900:e=e+2e3),e}return r.match(/a\.?\s*c\.?/i)?(r=r.replace(/a\.?\s*c\.?/i,""),-parseInt(r)):parseInt(r)}var QU,JU,Oye,aI=y(()=>{QU={domingo:0,dom:0,segunda:1,"segunda-feira":1,seg:1,ter\u00E7a:2,"ter\xE7a-feira":2,ter:2,quarta:3,"quarta-feira":3,qua:3,quinta:4,"quinta-feira":4,qui:4,sexta:5,"sexta-feira":5,sex:5,s\u00E1bado:6,sabado:6,sab:6},JU={janeiro:1,jan:1,"jan.":1,fevereiro:2,fev:2,"fev.":2,mar\u00E7o:3,mar:3,"mar.":3,abril:4,abr:4,"abr.":4,maio:5,mai:5,"mai.":5,junho:6,jun:6,"jun.":6,julho:7,jul:7,"jul.":7,agosto:8,ago:8,"ago.":8,setembro:9,set:9,"set.":9,outubro:10,out:10,"out.":10,novembro:11,nov:11,"nov.":11,dezembro:12,dez:12,"dez.":12},Oye="[0-9]{1,4}(?![^\\s]\\d)(?:\\s*[a|d]\\.?\\s*c\\.?|\\s*a\\.?\\s*d\\.?)?"});var nrt,art,irt,srt,qx,zye=y(()=>{aI();Ot();xe();jl();nrt=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:(este|esta|passado|pr[o\xF3]ximo)\\s*)?(${oe(QU)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(este|esta|passado|pr[\xF3o]ximo)\\s*semana)?(?=\\W|\\d|$)`,"i"),art=1,irt=2,srt=3,qx=class extends q{innerPattern(){return nrt}innerExtract(e,t){let n=t[irt].toLowerCase(),a=QU[n];if(a===void 0)return null;let i=t[art],s=t[srt],o=i||s||"";o=o.toLowerCase();let l=null;return o=="passado"?l="this":o=="pr\xF3ximo"||o=="proximo"?l="next":o=="este"&&(l="this"),ta(e.reference,a,l)}}});var Wx,jye=y(()=>{Au();Wx=class extends Da{primaryPrefix(){return"(?:(?:ao?|\xE0s?|das|da|de|do)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|a(?:o)?|\\?)\\s*"}}});var Yx,$ye=y(()=>{Oo();Yx=class extends sn{patternBetween(){return new RegExp("^\\s*(?:,|\xE0)?\\s*$")}}});var Gx,Bye=y(()=>{Fo();Gx=class extends an{patternBetween(){return/^\s*(?:-)\s*$/i}}});var ort,Uye,Hye,lrt,Vye,Kx,qye=y(()=>{Rn();aI();aI();Ot();xe();ort=new RegExp(`([0-9]{1,2})(?:\xBA|\xAA|\xB0)?(?:\\s*(?:desde|de|\\-|\\\u2013|ao?|\\s)\\s*([0-9]{1,2})(?:\xBA|\xAA|\xB0)?)?\\s*(?:de)?\\s*(?:-|/|\\s*(?:de|,)?\\s*)(${oe(JU)})(?:\\s*(?:de|,)?\\s*(${Oye}))?(?=\\W|$)`,"i"),Uye=1,Hye=2,lrt=3,Vye=4,Kx=class extends q{innerPattern(){return ort}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=JU[t[lrt].toLowerCase()],i=parseInt(t[Uye]);if(i>31)return t.index=t.index+t[Uye].length,null;if(n.start.assign("month",a),n.start.assign("day",i),t[Vye]){let s=Lye(t[Vye]);n.start.assign("year",s)}else{let s=fr(e.refDate,i,a);n.start.imply("year",s)}if(t[Hye]){let s=parseInt(t[Hye]);n.end=n.start.clone(),n.end.assign("day",s)}return n}}});var Zx,Wye=y(()=>{xe();Zs();Zx=class extends q{innerPattern(e){return/(agora|hoje|amanha|amanhã|ontem)(?=\W|$)/i}innerExtract(e,t){let n=t[0].toLowerCase(),a=e.createParsingComponents();switch(n){case"agora":return di(e.reference);case"hoje":return Pa(e.reference);case"amanha":case"amanh\xE3":return pi(e.reference);case"ontem":return ui(e.reference)}return a}}});var Yye,Qx,Gye=y(()=>{Ht();xe();Gs();Yye=st(tr(),1),Qx=class extends q{innerPattern(){return/(?:esta\s*)?(manha|manhã|tarde|meia-noite|meio-dia|noite)(?=\W|$)/i}innerExtract(e,t){let n=(0,Yye.default)(e.refDate),a=e.createParsingComponents();switch(t[1].toLowerCase()){case"tarde":a.imply("meridiem",H.PM),a.imply("hour",15);break;case"noite":a.imply("meridiem",H.PM),a.imply("hour",22);break;case"manha":case"manh\xE3":a.imply("meridiem",H.AM),a.imply("hour",6);break;case"meia-noite":Ll(a,n),a.imply("hour",0),a.imply("minute",0),a.imply("second",0);break;case"meio-dia":a.imply("meridiem",H.AM),a.imply("hour",12);break}return a}}});var tH={};at(tH,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>XU,createCasualConfiguration:()=>Kye,createConfiguration:()=>eH,parse:()=>drt,parseDate:()=>urt,strict:()=>crt});function drt(r,e,t){return XU.parse(r,e,t)}function urt(r,e,t){return XU.parseDate(r,e,t)}function Kye(r=!0){let e=eH(!1,r);return e.parsers.push(new Zx),e.parsers.push(new Qx),e}function eH(r=!0,e=!0){return mn({parsers:[new ua(e),new qx,new Wx,new Kx],refiners:[new Yx,new Gx]},r)}var XU,crt,Zye=y(()=>{Ks();ds();pt();Ht();Nu();zye();jye();$ye();Bye();qye();Wye();Gye();XU=new Be(Kye()),crt=new Be(eH(!0))});var Jx,Qye=y(()=>{Fo();Jx=class extends an{patternBetween(){return/^\s*(tot|-)\s*$/i}}});var Xx,Jye=y(()=>{Oo();Xx=class extends sn{patternBetween(){return new RegExp("^\\s*(om|na|voor|in de|,|-)?\\s*$")}}});var eC,Xye=y(()=>{xe();Zs();eC=class extends q{innerPattern(e){return/(nu|vandaag|morgen|morgend|gisteren)(?=\W|$)/i}innerExtract(e,t){let n=t[0].toLowerCase(),a=e.createParsingComponents();switch(n){case"nu":return di(e.reference);case"vandaag":return Pa(e.reference);case"morgen":case"morgend":return pi(e.reference);case"gisteren":return ui(e.reference)}return a}}});var eve,prt,mrt,tC,tve=y(()=>{Ht();xe();eve=st(tr(),1);Gs();prt=1,mrt=2,tC=class extends q{innerPattern(){return/(deze)?\s*(namiddag|avond|middernacht|ochtend|middag|'s middags|'s avonds|'s ochtends)(?=\W|$)/i}innerExtract(e,t){let n=(0,eve.default)(e.refDate),a=e.createParsingComponents();switch(t[prt]==="deze"&&(a.assign("day",e.refDate.getDate()),a.assign("month",e.refDate.getMonth()+1),a.assign("year",e.refDate.getFullYear())),t[mrt].toLowerCase()){case"namiddag":case"'s namiddags":a.imply("meridiem",H.PM),a.imply("hour",15);break;case"avond":case"'s avonds'":a.imply("meridiem",H.PM),a.imply("hour",20);break;case"middernacht":Ll(a,n),a.imply("hour",0),a.imply("minute",0),a.imply("second",0);break;case"ochtend":case"'s ochtends":a.imply("meridiem",H.AM),a.imply("hour",6);break;case"middag":case"'s middags":a.imply("meridiem",H.AM),a.imply("hour",12);break}return a}}});function hrt(r){let e=r.toLowerCase();return rH[e]!==void 0?rH[e]:e==="paar"?2:e==="half"||e.match(/halve?/)?.5:parseFloat(e.replace(",","."))}function sH(r){let e=r.toLowerCase();return nH[e]!==void 0?nH[e]:(e=e.replace(/(?:ste|de)$/i,""),parseInt(e))}function sI(r){if(/voor Christus/i.test(r))return r=r.replace(/voor Christus/i,""),-parseInt(r);if(/na Christus/i.test(r))return r=r.replace(/na Christus/i,""),parseInt(r);let e=parseInt(r);return ls(e)}function mm(r){let e={},t=r,n=rve.exec(t);for(;n;)grt(e,n),t=t.substring(n[0].length),n=rve.exec(t);return e}function grt(r,e){let t=hrt(e[1]),n=rC[e[2].toLowerCase()];r[n]=t}var aH,Ru,rH,nH,rC,frt,iH,iI,nve,rve,Oc,Js=y(()=>{Ot();Rn();aH={zondag:0,zon:0,"zon.":0,zo:0,"zo.":0,maandag:1,ma:1,"ma.":1,dinsdag:2,din:2,"din.":2,di:2,"di.":2,woensdag:3,woe:3,"woe.":3,wo:3,"wo.":3,donderdag:4,dond:4,"dond.":4,do:4,"do.":4,vrijdag:5,vrij:5,"vrij.":5,vr:5,"vr.":5,zaterdag:6,zat:6,"zat.":6,za:6,"za.":6},Ru={januari:1,jan:1,"jan.":1,februari:2,feb:2,"feb.":2,maart:3,mar:3,"mar.":3,mrt:3,"mrt.":3,april:4,apr:4,"apr.":4,mei:5,juni:6,jun:6,"jun.":6,juli:7,jul:7,"jul.":7,augustus:8,aug:8,"aug.":8,september:9,sep:9,"sep.":9,sept:9,"sept.":9,oktober:10,okt:10,"okt.":10,november:11,nov:11,"nov.":11,december:12,dec:12,"dec.":12},rH={een:1,twee:2,drie:3,vier:4,vijf:5,zes:6,zeven:7,acht:8,negen:9,tien:10,elf:11,twaalf:12},nH={eerste:1,tweede:2,derde:3,vierde:4,vijfde:5,zesde:6,zevende:7,achtste:8,negende:9,tiende:10,elfde:11,twaalfde:12,dertiende:13,veertiende:14,vijftiende:15,zestiende:16,zeventiende:17,achttiende:18,negentiende:19,twintigste:20,eenentwintigste:21,twee\u00EBntwintigste:22,drieentwintigste:23,vierentwintigste:24,vijfentwintigste:25,zesentwintigste:26,zevenentwintigste:27,achtentwintig:28,negenentwintig:29,dertigste:30,eenendertigste:31},rC={sec:"second",second:"second",seconden:"second",min:"minute",mins:"minute",minute:"minute",minuut:"minute",minuten:"minute",minuutje:"minute",h:"hour",hr:"hour",hrs:"hour",uur:"hour",u:"hour",uren:"hour",dag:"d",dagen:"d",week:"week",weken:"week",maand:"month",maanden:"month",jaar:"year",jr:"year",jaren:"year"},frt=`(?:${oe(rH)}|[0-9]+|[0-9]+[\\.,][0-9]+|halve?|half|paar)`;iH=`(?:${oe(nH)}|[0-9]{1,2}(?:ste|de)?)`;iI="(?:[1-9][0-9]{0,3}\\s*(?:voor Christus|na Christus)|[1-2][0-9]{3}|[5-9][0-9])";nve=`(${frt})\\s{0,5}(${oe(rC)})\\s{0,5}`,rve=new RegExp(nve,"i"),Oc=zi("(?:(?:binnen|in)\\s*)?",nve)});var nC,ave=y(()=>{Js();pt();xe();nC=class extends q{innerPattern(){return new RegExp("(?:binnen|in|binnen de|voor)\\s*("+Oc+")(?=\\W|$)","i")}innerExtract(e,t){let n=mm(t[1]);return te.createRelativeFromReference(e.reference,n)}}});var yrt,vrt,krt,brt,aC,ive=y(()=>{Js();Ot();xe();jl();yrt=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:op\\s*?)?(?:(deze|vorige|volgende)\\s*(?:week\\s*)?)?(${oe(aH)})(?=\\W|$)`,"i"),vrt=1,krt=2,brt=3,aC=class extends q{innerPattern(){return yrt}innerExtract(e,t){let n=t[krt].toLowerCase(),a=aH[n],i=t[vrt],s=t[brt],o=i||s;o=o||"",o=o.toLowerCase();let l=null;return o=="vorige"?l="last":o=="volgende"?l="next":o=="deze"&&(l="this"),ta(e.reference,a,l)}}});var Trt,wrt,sve,ove,lve,iC,cve=y(()=>{Rn();Js();Js();Js();Ot();xe();Trt=new RegExp(`(?:on\\s*?)?(${iH})(?:\\s*(?:tot|\\-|\\\u2013|until|through|till|\\s)\\s*(${iH}))?(?:-|/|\\s*(?:of)?\\s*)(`+oe(Ru)+`)(?:(?:-|/|,?\\s*)(${iI}(?![^\\s]\\d)))?(?=\\W|$)`,"i"),wrt=3,sve=1,ove=2,lve=4,iC=class extends q{innerPattern(){return Trt}innerExtract(e,t){let n=Ru[t[wrt].toLowerCase()],a=sH(t[sve]);if(a>31)return t.index=t.index+t[sve].length,null;let i=e.createParsingComponents({day:a,month:n});if(t[lve]){let l=sI(t[lve]);i.assign("year",l)}else{let l=fr(e.refDate,a,n);i.imply("year",l)}if(!t[ove])return i;let s=sH(t[ove]),o=e.createParsingResult(t.index,t[0]);return o.start=i,o.end=i.clone(),o.end.assign("day",s),o}}});var Srt,xrt,dve,sk,uve=y(()=>{Js();Rn();Ot();Js();xe();Srt=new RegExp(`(${oe(Ru)})\\s*(?:[,-]?\\s*(${iI})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,"i"),xrt=1,dve=2,sk=class extends q{innerPattern(){return Srt}innerExtract(e,t){let n=e.createParsingComponents();n.imply("day",1);let a=t[xrt],i=Ru[a.toLowerCase()];if(n.assign("month",i),t[dve]){let s=sI(t[dve]);n.assign("year",s)}else{let s=fr(e.refDate,1,i);n.imply("year",s)}return n}}});var Crt,Ert,Drt,sC,pve=y(()=>{xe();Crt=new RegExp("([0-9]|0[1-9]|1[012])/([0-9]{4})","i"),Ert=1,Drt=2,sC=class extends q{innerPattern(){return Crt}innerExtract(e,t){let n=parseInt(t[Drt]),a=parseInt(t[Ert]);return e.createParsingComponents().imply("day",1).assign("month",a).assign("year",n)}}});var oC,mve=y(()=>{Au();oC=class extends Da{primaryPrefix(){return"(?:(?:om)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|om|\\?)\\s*"}primarySuffix(){return"(?:\\s*(?:uur))?(?!/)(?=\\W|$)"}extractPrimaryTimeComponents(e,t){return t[0].match(/^\s*\d{4}\s*$/)?null:super.extractPrimaryTimeComponents(e,t)}}});var Prt,Mrt,Art,fve,_rt,lC,hve=y(()=>{Js();Ot();xe();Prt=new RegExp(`([0-9]{4})[\\.\\/\\s](?:(${oe(Ru)})|([0-9]{1,2}))[\\.\\/\\s]([0-9]{1,2})(?=\\W|$)`,"i"),Mrt=1,Art=2,fve=3,_rt=4,lC=class extends q{innerPattern(){return Prt}innerExtract(e,t){let n=t[fve]?parseInt(t[fve]):Ru[t[Art].toLowerCase()];if(n<1||n>12)return null;let a=parseInt(t[Mrt]);return{day:parseInt(t[_rt]),month:n,year:a}}}});var gve,Irt,Nrt,cC,yve=y(()=>{xe();Ht();Gs();gve=st(tr(),1),Irt=1,Nrt=2,cC=class extends q{innerPattern(e){return/(gisteren|morgen|van)(ochtend|middag|namiddag|avond|nacht)(?=\W|$)/i}innerExtract(e,t){let n=t[Irt].toLowerCase(),a=t[Nrt].toLowerCase(),i=e.createParsingComponents(),s=(0,gve.default)(e.refDate);switch(n){case"gisteren":Kr(i,s.add(-1,"day"));break;case"van":Kr(i,s);break;case"morgen":Ll(i,s);break}switch(a){case"ochtend":i.imply("meridiem",H.AM),i.imply("hour",6);break;case"middag":i.imply("meridiem",H.AM),i.imply("hour",12);break;case"namiddag":i.imply("meridiem",H.PM),i.imply("hour",15);break;case"avond":i.imply("meridiem",H.PM),i.imply("hour",20);break}return i}}});var Rrt,Frt,Ort,dC,vve=y(()=>{Js();pt();xe();Qs();Rrt=new RegExp(`(dit|deze|vorig|afgelopen|(?:aan)?komend|over|\\+|-)e?\\s*(${Oc})(?=\\W|$)`,"i"),Frt=1,Ort=2,dC=class extends q{innerPattern(){return Rrt}innerExtract(e,t){let n=t[Frt].toLowerCase(),a=mm(t[Ort]);switch(n){case"vorig":case"afgelopen":case"-":a=ea(a);break}return te.createRelativeFromReference(e.reference,a)}}});var kve,Lrt,zrt,jrt,uC,bve=y(()=>{Js();pt();kve=st(tr(),1);xe();Ot();Lrt=new RegExp(`(dit|deze|(?:aan)?komend|volgend|afgelopen|vorig)e?\\s*(${oe(rC)})(?=\\s*)(?=\\W|$)`,"i"),zrt=1,jrt=2,uC=class extends q{innerPattern(){return Lrt}innerExtract(e,t){let n=t[zrt].toLowerCase(),a=t[jrt].toLowerCase(),i=rC[a];if(n=="volgend"||n=="komend"||n=="aankomend"){let l={};return l[i]=1,te.createRelativeFromReference(e.reference,l)}if(n=="afgelopen"||n=="vorig"){let l={};return l[i]=-1,te.createRelativeFromReference(e.reference,l)}let s=e.createParsingComponents(),o=(0,kve.default)(e.reference.instant);return a.match(/week/i)?(o=o.add(-o.get("d"),"d"),s.imply("day",o.date()),s.imply("month",o.month()+1),s.imply("year",o.year())):a.match(/maand/i)?(o=o.add(-o.date()+1,"d"),s.imply("day",o.date()),s.assign("year",o.year()),s.assign("month",o.month()+1)):a.match(/jaar/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),s.imply("day",o.date()),s.imply("month",o.month()+1),s.assign("year",o.year())),s}}});var $rt,Brt,pC,Tve=y(()=>{Js();pt();xe();Qs();$rt=new RegExp("("+Oc+")(?:geleden|voor|eerder)(?=(?:\\W|$))","i"),Brt=new RegExp("("+Oc+")geleden(?=(?:\\W|$))","i"),pC=class extends q{constructor(t){super();I(this,"strictMode");this.strictMode=t}innerPattern(){return this.strictMode?Brt:$rt}innerExtract(t,n){let a=mm(n[1]),i=ea(a);return te.createRelativeFromReference(t.reference,i)}}});var Urt,Hrt,Vrt,mC,wve=y(()=>{Js();pt();xe();Urt=new RegExp("("+Oc+")(later|na|vanaf nu|voortaan|vooruit|uit)(?=(?:\\W|$))","i"),Hrt=new RegExp("("+Oc+")(later|vanaf nu)(?=(?:\\W|$))","i"),Vrt=1,mC=class extends q{constructor(t){super();I(this,"strictMode");this.strictMode=t}innerPattern(){return this.strictMode?Hrt:Urt}innerExtract(t,n){let a=mm(n[Vrt]);return te.createRelativeFromReference(t.reference,a)}}});var cH={};at(cH,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>oH,createCasualConfiguration:()=>Sve,createConfiguration:()=>lH,parse:()=>Wrt,parseDate:()=>Yrt,strict:()=>qrt});function Wrt(r,e,t){return oH.parse(r,e,t)}function Yrt(r,e,t){return oH.parseDate(r,e,t)}function Sve(r=!0){let e=lH(!1,r);return e.parsers.unshift(new eC),e.parsers.unshift(new tC),e.parsers.unshift(new cC),e.parsers.unshift(new sk),e.parsers.unshift(new uC),e.parsers.unshift(new dC),e}function lH(r=!0,e=!0){return mn({parsers:[new ua(e),new nC,new iC,new sk,new aC,new lC,new sC,new oC(r),new pC(r),new mC(r)],refiners:[new Xx,new Jx]},r)}var oH,qrt,xve=y(()=>{Ks();ds();pt();Ht();Qye();Jye();Xye();tve();Nu();ave();ive();cve();uve();pve();mve();hve();yve();vve();bve();Tve();wve();oH=new Be(Sve()),qrt=new Be(lH(!0))});function zo(r){let e=0;for(let t=0;t<r.length;t++){let n=r[t];n==="\u5341"?e=e===0?Ma[n]:e*Ma[n]:e+=Ma[n]}return e}function Cve(r){let e="";for(let t=0;t<r.length;t++){let n=r[t];e=e+Ma[n]}return parseInt(e)}var Ma,ok,lk=y(()=>{Ma={\u96F6:0,"\u3007":0,\u4E00:1,\u4E8C:2,\u4E24:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9,\u5341:10},ok={\u5929:0,\u65E5:0,\u4E00:1,\u4E8C:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6}});var Dve,dH,Eve,uH,Uh,pH=y(()=>{Dve=st(tr(),1);xe();lk();dH=1,Eve=2,uH=3,Uh=class extends q{innerPattern(){return new RegExp("(\\d{2,4}|["+Object.keys(Ma).join("")+"]{4}|["+Object.keys(Ma).join("")+"]{2})?(?:\\s*)(?:\u5E74)?(?:[\\s|,|\uFF0C]*)(\\d{1,2}|["+Object.keys(Ma).join("")+"]{1,3})(?:\\s*)(?:\u6708)(?:\\s*)(\\d{1,2}|["+Object.keys(Ma).join("")+"]{1,3})?(?:\\s*)(?:\u65E5|\u53F7)?")}innerExtract(e,t){let n=(0,Dve.default)(e.refDate),a=e.createParsingResult(t.index,t[0]),i=parseInt(t[Eve]);if(isNaN(i)&&(i=zo(t[Eve])),a.start.assign("month",i),t[uH]){let s=parseInt(t[uH]);isNaN(s)&&(s=zo(t[uH])),a.start.assign("day",s)}else a.start.imply("day",n.date());if(t[dH]){let s=parseInt(t[dH]);isNaN(s)&&(s=Cve(t[dH])),a.start.assign("year",s)}else a.start.imply("year",n.year());return a}}});var Pve,Grt,mH,Krt,Hh,fH=y(()=>{Pve=st(tr(),1);xe();lk();Grt=new RegExp("(\\d+|["+Object.keys(Ma).join("")+"]+|\u534A|\u51E0)(?:\\s*)(?:\u4E2A)?(\u79D2(?:\u949F)?|\u5206\u949F|\u5C0F\u65F6|\u949F|\u65E5|\u5929|\u661F\u671F|\u793C\u62DC|\u6708|\u5E74)(?:(?:\u4E4B|\u8FC7)?\u540E|(?:\u4E4B)?\u5185)","i"),mH=1,Krt=2,Hh=class extends q{innerPattern(){return Grt}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=parseInt(t[mH]);if(isNaN(a)&&(a=zo(t[mH])),isNaN(a)){let l=t[mH];if(l==="\u51E0")a=3;else if(l==="\u534A")a=.5;else return null}let i=(0,Pve.default)(e.refDate),o=t[Krt][0];return o.match(/[日天星礼月年]/)?(o=="\u65E5"||o=="\u5929"?i=i.add(a,"d"):o=="\u661F"||o=="\u793C"?i=i.add(a*7,"d"):o=="\u6708"?i=i.add(a,"month"):o=="\u5E74"&&(i=i.add(a,"year")),n.start.assign("year",i.year()),n.start.assign("month",i.month()+1),n.start.assign("day",i.date()),n):(o=="\u79D2"?i=i.add(a,"second"):o=="\u5206"?i=i.add(a,"minute"):(o=="\u5C0F"||o=="\u949F")&&(i=i.add(a,"hour")),n.start.imply("year",i.year()),n.start.imply("month",i.month()+1),n.start.imply("day",i.date()),n.start.assign("hour",i.hour()),n.start.assign("minute",i.minute()),n.start.assign("second",i.second()),n)}}});var Mve,Zrt,Vh,hH=y(()=>{Mve=st(tr(),1);xe();lk();Zrt=new RegExp("(?<prefix>\u4E0A|\u4E0B|\u8FD9)(?:\u4E2A)?(?:\u661F\u671F|\u793C\u62DC|\u5468)(?<weekday>"+Object.keys(ok).join("|")+")"),Vh=class extends q{innerPattern(){return Zrt}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=t.groups.weekday,i=ok[a];if(i===void 0)return null;let s=null,o=t.groups.prefix;o=="\u4E0A"?s="last":o=="\u4E0B"?s="next":o=="\u8FD9"&&(s="this");let l=(0,Mve.default)(e.refDate),c=!1,d=l.day();return s=="last"||s=="past"?(l=l.day(i-7),c=!0):s=="next"?(l=l.day(i+7),c=!0):s=="this"?l=l.day(i):Math.abs(i-7-d)<Math.abs(i-d)?l=l.day(i-7):Math.abs(i+7-d)<Math.abs(i-d)?l=l.day(i+7):l=l.day(i),n.start.assign("weekday",i),c?(n.start.assign("day",l.date()),n.start.assign("month",l.month()+1),n.start.assign("year",l.year())):(n.start.imply("day",l.date()),n.start.imply("month",l.month()+1),n.start.imply("year",l.year())),n}}});var Ave,Qrt,Jrt,oI,lI,cI,dI,uI,pI,jo,ck,mI,qh,gH=y(()=>{Ave=st(tr(),1);xe();lk();Qrt=new RegExp("(?:\u4ECE|\u81EA)?(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(Ma).join("")+"]+)(?:\\s*)(?:\u70B9|\u65F6|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(Ma).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(Ma).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),Jrt=new RegExp("(?:^\\s*(?:\u5230|\u81F3|\\-|\\\u2013|\\~|\\\u301C)\\s*)(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(Ma).join("")+"]+)(?:\\s*)(?:\u70B9|\u65F6|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(Ma).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(Ma).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),oI=1,lI=2,cI=3,dI=4,uI=5,pI=6,jo=7,ck=8,mI=9,qh=class extends q{innerPattern(){return Qrt}innerExtract(e,t){if(t.index>0&&e.text[t.index-1].match(/\w/))return null;let n=(0,Ave.default)(e.refDate),a=e.createParsingResult(t.index,t[0]),i=n.clone();if(t[oI]){let d=t[oI];d=="\u660E"?n.hour()>1&&(i=i.add(1,"day")):d=="\u6628"?i=i.add(-1,"day"):d=="\u524D"?i=i.add(-2,"day"):d=="\u5927\u524D"?i=i.add(-3,"day"):d=="\u540E"?i=i.add(2,"day"):d=="\u5927\u540E"&&(i=i.add(3,"day")),a.start.assign("day",i.date()),a.start.assign("month",i.month()+1),a.start.assign("year",i.year())}else if(t[dI]){let d=t[dI];d=="\u660E"?i=i.add(1,"day"):d=="\u6628"?i=i.add(-1,"day"):d=="\u524D"?i=i.add(-2,"day"):d=="\u5927\u524D"?i=i.add(-3,"day"):d=="\u540E"?i=i.add(2,"day"):d=="\u5927\u540E"&&(i=i.add(3,"day")),a.start.assign("day",i.date()),a.start.assign("month",i.month()+1),a.start.assign("year",i.year())}else a.start.imply("day",i.date()),a.start.imply("month",i.month()+1),a.start.imply("year",i.year());let s=0,o=0,l=-1;if(t[ck]){let d=parseInt(t[ck]);if(isNaN(d)&&(d=zo(t[ck])),d>=60)return null;a.start.assign("second",d)}if(s=parseInt(t[pI]),isNaN(s)&&(s=zo(t[pI])),t[jo]?t[jo]=="\u534A"?o=30:t[jo]=="\u6B63"||t[jo]=="\u6574"?o=0:(o=parseInt(t[jo]),isNaN(o)&&(o=zo(t[jo]))):s>100&&(o=s%100,s=Math.floor(s/100)),o>=60||s>24)return null;if(s>=12&&(l=1),t[mI]){if(s>12)return null;let d=t[mI][0].toLowerCase();d=="a"&&(l=0,s==12&&(s=0)),d=="p"&&(l=1,s!=12&&(s+=12))}else if(t[lI]){let u=t[lI][0];u=="\u65E9"?(l=0,s==12&&(s=0)):u=="\u665A"&&(l=1,s!=12&&(s+=12))}else if(t[cI]){let u=t[cI][0];u=="\u4E0A"||u=="\u65E9"||u=="\u51CC"?(l=0,s==12&&(s=0)):(u=="\u4E0B"||u=="\u665A")&&(l=1,s!=12&&(s+=12))}else if(t[uI]){let u=t[uI][0];u=="\u4E0A"||u=="\u65E9"||u=="\u51CC"?(l=0,s==12&&(s=0)):(u=="\u4E0B"||u=="\u665A")&&(l=1,s!=12&&(s+=12))}if(a.start.assign("hour",s),a.start.assign("minute",o),l>=0?a.start.assign("meridiem",l):s<12?a.start.imply("meridiem",0):a.start.imply("meridiem",1),t=Jrt.exec(e.text.substring(a.index+a.text.length)),!t)return a.text.match(/^\d+$/)?null:a;let c=i.clone();if(a.end=e.createParsingComponents(),t[oI]){let d=t[oI];d=="\u660E"?n.hour()>1&&(c=c.add(1,"day")):d=="\u6628"?c=c.add(-1,"day"):d=="\u524D"?c=c.add(-2,"day"):d=="\u5927\u524D"?c=c.add(-3,"day"):d=="\u540E"?c=c.add(2,"day"):d=="\u5927\u540E"&&(c=c.add(3,"day")),a.end.assign("day",c.date()),a.end.assign("month",c.month()+1),a.end.assign("year",c.year())}else if(t[dI]){let d=t[dI];d=="\u660E"?c=c.add(1,"day"):d=="\u6628"?c=c.add(-1,"day"):d=="\u524D"?c=c.add(-2,"day"):d=="\u5927\u524D"?c=c.add(-3,"day"):d=="\u540E"?c=c.add(2,"day"):d=="\u5927\u540E"&&(c=c.add(3,"day")),a.end.assign("day",c.date()),a.end.assign("month",c.month()+1),a.end.assign("year",c.year())}else a.end.imply("day",c.date()),a.end.imply("month",c.month()+1),a.end.imply("year",c.year());if(s=0,o=0,l=-1,t[ck]){let d=parseInt(t[ck]);if(isNaN(d)&&(d=zo(t[ck])),d>=60)return null;a.end.assign("second",d)}if(s=parseInt(t[pI]),isNaN(s)&&(s=zo(t[pI])),t[jo]?t[jo]=="\u534A"?o=30:t[jo]=="\u6B63"||t[jo]=="\u6574"?o=0:(o=parseInt(t[jo]),isNaN(o)&&(o=zo(t[jo]))):s>100&&(o=s%100,s=Math.floor(s/100)),o>=60||s>24)return null;if(s>=12&&(l=1),t[mI]){if(s>12)return null;let d=t[mI][0].toLowerCase();d=="a"&&(l=0,s==12&&(s=0)),d=="p"&&(l=1,s!=12&&(s+=12)),a.start.isCertain("meridiem")||(l==0?(a.start.imply("meridiem",0),a.start.get("hour")==12&&a.start.assign("hour",0)):(a.start.imply("meridiem",1),a.start.get("hour")!=12&&a.start.assign("hour",a.start.get("hour")+12)))}else if(t[lI]){let u=t[lI][0];u=="\u65E9"?(l=0,s==12&&(s=0)):u=="\u665A"&&(l=1,s!=12&&(s+=12))}else if(t[cI]){let u=t[cI][0];u=="\u4E0A"||u=="\u65E9"||u=="\u51CC"?(l=0,s==12&&(s=0)):(u=="\u4E0B"||u=="\u665A")&&(l=1,s!=12&&(s+=12))}else if(t[uI]){let u=t[uI][0];u=="\u4E0A"||u=="\u65E9"||u=="\u51CC"?(l=0,s==12&&(s=0)):(u=="\u4E0B"||u=="\u665A")&&(l=1,s!=12&&(s+=12))}return a.text=a.text+t[0],a.end.assign("hour",s),a.end.assign("minute",o),l>=0?a.end.assign("meridiem",l):a.start.isCertain("meridiem")&&a.start.get("meridiem")==1&&a.start.get("hour")>s?a.end.imply("meridiem",0):s>12&&a.end.imply("meridiem",1),a.end.date().getTime()<a.start.date().getTime()&&a.end.imply("day",a.end.get("day")+1),a}}});var _ve,Xrt,Wh,yH=y(()=>{_ve=st(tr(),1);xe();lk();Xrt=new RegExp("(?:\u661F\u671F|\u793C\u62DC|\u5468)(?<weekday>"+Object.keys(ok).join("|")+")"),Wh=class extends q{innerPattern(){return Xrt}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=t.groups.weekday,i=ok[a];if(i===void 0)return null;let s=(0,_ve.default)(e.refDate),o=!1,l=s.day();return Math.abs(i-7-l)<Math.abs(i-l)?s=s.day(i-7):Math.abs(i+7-l)<Math.abs(i-l)?s=s.day(i+7):s=s.day(i),n.start.assign("weekday",i),o?(n.start.assign("day",s.date()),n.start.assign("month",s.month()+1),n.start.assign("year",s.year())):(n.start.imply("day",s.date()),n.start.imply("month",s.month()+1),n.start.imply("year",s.year())),n}}});var Fve,ent,Ive,tnt,Nve,Rve,rnt,Yh,vH=y(()=>{Fve=st(tr(),1);xe();ent=1,Ive=2,tnt=3,Nve=4,Rve=5,rnt=6,Yh=class extends q{innerPattern(e){return new RegExp("(\u800C\u5BB6|\u7ACB(?:\u523B|\u5373)|\u5373\u523B)|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s|,|\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?","i")}innerExtract(e,t){let n=t.index,a=e.createParsingResult(n,t[0]),i=(0,Fve.default)(e.refDate),s=i;if(t[ent])a.start.imply("hour",i.hour()),a.start.imply("minute",i.minute()),a.start.imply("second",i.second()),a.start.imply("millisecond",i.millisecond());else if(t[Ive]){let o=t[Ive],l=t[tnt];o=="\u660E"||o=="\u807D"?i.hour()>1&&(s=s.add(1,"day")):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?s=s.add(-1,"day"):o=="\u524D"?s=s.add(-2,"day"):o=="\u5927\u524D"?s=s.add(-3,"day"):o=="\u5F8C"?s=s.add(2,"day"):o=="\u5927\u5F8C"&&(s=s.add(3,"day")),l=="\u65E9"||l=="\u671D"?a.start.imply("hour",6):l=="\u665A"&&(a.start.imply("hour",22),a.start.imply("meridiem",1))}else if(t[Nve]){let l=t[Nve][0];l=="\u65E9"||l=="\u671D"||l=="\u4E0A"?a.start.imply("hour",6):l=="\u4E0B"||l=="\u664F"?(a.start.imply("hour",15),a.start.imply("meridiem",1)):l=="\u4E2D"?(a.start.imply("hour",12),a.start.imply("meridiem",1)):l=="\u591C"||l=="\u665A"?(a.start.imply("hour",22),a.start.imply("meridiem",1)):l=="\u51CC"&&a.start.imply("hour",0)}else if(t[Rve]){let o=t[Rve];o=="\u660E"||o=="\u807D"?i.hour()>1&&(s=s.add(1,"day")):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?s=s.add(-1,"day"):o=="\u524D"?s=s.add(-2,"day"):o=="\u5927\u524D"?s=s.add(-3,"day"):o=="\u5F8C"?s=s.add(2,"day"):o=="\u5927\u5F8C"&&(s=s.add(3,"day"));let l=t[rnt];if(l){let c=l[0];c=="\u65E9"||c=="\u671D"||c=="\u4E0A"?a.start.imply("hour",6):c=="\u4E0B"||c=="\u664F"?(a.start.imply("hour",15),a.start.imply("meridiem",1)):c=="\u4E2D"?(a.start.imply("hour",12),a.start.imply("meridiem",1)):c=="\u591C"||c=="\u665A"?(a.start.imply("hour",22),a.start.imply("meridiem",1)):c=="\u51CC"&&a.start.imply("hour",0)}}return a.start.assign("day",s.date()),a.start.assign("month",s.month()+1),a.start.assign("year",s.year()),a}}});function $o(r){let e=0;for(let t=0;t<r.length;t++){let n=r[t];n==="\u5341"?e=e===0?Aa[n]:e*Aa[n]:e+=Aa[n]}return e}function Ove(r){let e="";for(let t=0;t<r.length;t++){let n=r[t];e=e+Aa[n]}return parseInt(e)}var Aa,dk,uk=y(()=>{Aa={\u96F6:0,\u4E00:1,\u4E8C:2,\u5169:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9,\u5341:10,\u5EFF:20,\u5345:30},dk={\u5929:0,\u65E5:0,\u4E00:1,\u4E8C:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6}});var zve,kH,Lve,bH,Gh,TH=y(()=>{zve=st(tr(),1);xe();uk();kH=1,Lve=2,bH=3,Gh=class extends q{innerPattern(){return new RegExp("(\\d{2,4}|["+Object.keys(Aa).join("")+"]{4}|["+Object.keys(Aa).join("")+"]{2})?(?:\\s*)(?:\u5E74)?(?:[\\s|,|\uFF0C]*)(\\d{1,2}|["+Object.keys(Aa).join("")+"]{1,2})(?:\\s*)(?:\u6708)(?:\\s*)(\\d{1,2}|["+Object.keys(Aa).join("")+"]{1,2})?(?:\\s*)(?:\u65E5|\u865F)?")}innerExtract(e,t){let n=(0,zve.default)(e.refDate),a=e.createParsingResult(t.index,t[0]),i=parseInt(t[Lve]);if(isNaN(i)&&(i=$o(t[Lve])),a.start.assign("month",i),t[bH]){let s=parseInt(t[bH]);isNaN(s)&&(s=$o(t[bH])),a.start.assign("day",s)}else a.start.imply("day",n.date());if(t[kH]){let s=parseInt(t[kH]);isNaN(s)&&(s=Ove(t[kH])),a.start.assign("year",s)}else a.start.imply("year",n.year());return a}}});var jve,nnt,wH,ant,Kh,SH=y(()=>{jve=st(tr(),1);xe();uk();nnt=new RegExp("(\\d+|["+Object.keys(Aa).join("")+"]+|\u534A|\u5E7E)(?:\\s*)(?:\u500B)?(\u79D2(?:\u9418)?|\u5206\u9418|\u5C0F\u6642|\u9418|\u65E5|\u5929|\u661F\u671F|\u79AE\u62DC|\u6708|\u5E74)(?:(?:\u4E4B|\u904E)?\u5F8C|(?:\u4E4B)?\u5167)","i"),wH=1,ant=2,Kh=class extends q{innerPattern(){return nnt}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=parseInt(t[wH]);if(isNaN(a)&&(a=$o(t[wH])),isNaN(a)){let l=t[wH];if(l==="\u5E7E")a=3;else if(l==="\u534A")a=.5;else return null}let i=(0,jve.default)(e.refDate),o=t[ant][0];return o.match(/[日天星禮月年]/)?(o=="\u65E5"||o=="\u5929"?i=i.add(a,"d"):o=="\u661F"||o=="\u79AE"?i=i.add(a*7,"d"):o=="\u6708"?i=i.add(a,"month"):o=="\u5E74"&&(i=i.add(a,"year")),n.start.assign("year",i.year()),n.start.assign("month",i.month()+1),n.start.assign("day",i.date()),n):(o=="\u79D2"?i=i.add(a,"second"):o=="\u5206"?i=i.add(a,"minute"):(o=="\u5C0F"||o=="\u9418")&&(i=i.add(a,"hour")),n.start.imply("year",i.year()),n.start.imply("month",i.month()+1),n.start.imply("day",i.date()),n.start.assign("hour",i.hour()),n.start.assign("minute",i.minute()),n.start.assign("second",i.second()),n)}}});var $ve,int,Zh,xH=y(()=>{$ve=st(tr(),1);xe();uk();int=new RegExp("(?<prefix>\u4E0A|\u4ECA|\u4E0B|\u9019|\u5462)(?:\u500B)?(?:\u661F\u671F|\u79AE\u62DC|\u9031)(?<weekday>"+Object.keys(dk).join("|")+")"),Zh=class extends q{innerPattern(){return int}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=t.groups.weekday,i=dk[a];if(i===void 0)return null;let s=null,o=t.groups.prefix;o=="\u4E0A"?s="last":o=="\u4E0B"?s="next":(o=="\u4ECA"||o=="\u9019"||o=="\u5462")&&(s="this");let l=(0,$ve.default)(e.refDate),c=!1,d=l.day();return s=="last"||s=="past"?(l=l.day(i-7),c=!0):s=="next"?(l=l.day(i+7),c=!0):s=="this"?l=l.day(i):Math.abs(i-7-d)<Math.abs(i-d)?l=l.day(i-7):Math.abs(i+7-d)<Math.abs(i-d)?l=l.day(i+7):l=l.day(i),n.start.assign("weekday",i),c?(n.start.assign("day",l.date()),n.start.assign("month",l.month()+1),n.start.assign("year",l.year())):(n.start.imply("day",l.date()),n.start.imply("month",l.month()+1),n.start.imply("year",l.year())),n}}});var Bve,snt,ont,fI,hI,gI,yI,vI,kI,Bo,pk,bI,Qh,CH=y(()=>{Bve=st(tr(),1);xe();uk();snt=new RegExp("(?:\u7531|\u5F9E|\u81EA)?(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(Aa).join("")+"]+)(?:\\s*)(?:\u9EDE|\u6642|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(Aa).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(Aa).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),ont=new RegExp("(?:^\\s*(?:\u5230|\u81F3|\\-|\\\u2013|\\~|\\\u301C)\\s*)(?:(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(\u65E9|\u671D|\u665A)|(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u5F8C|\u5927\u5F8C|\u807D|\u6628|\u5C0B|\u7434)(?:\u65E5|\u5929)(?:[\\s,\uFF0C]*)(?:(\u4E0A(?:\u5348|\u665D)|\u671D(?:\u65E9)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348|\u665D)|\u664F(?:\u665D)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?)?(?:[\\s,\uFF0C]*)(?:(\\d+|["+Object.keys(Aa).join("")+"]+)(?:\\s*)(?:\u9EDE|\u6642|:|\uFF1A)(?:\\s*)(\\d+|\u534A|\u6B63|\u6574|["+Object.keys(Aa).join("")+"]+)?(?:\\s*)(?:\u5206|:|\uFF1A)?(?:\\s*)(\\d+|["+Object.keys(Aa).join("")+"]+)?(?:\\s*)(?:\u79D2)?)(?:\\s*(A.M.|P.M.|AM?|PM?))?","i"),fI=1,hI=2,gI=3,yI=4,vI=5,kI=6,Bo=7,pk=8,bI=9,Qh=class extends q{innerPattern(){return snt}innerExtract(e,t){if(t.index>0&&e.text[t.index-1].match(/\w/))return null;let n=(0,Bve.default)(e.refDate),a=e.createParsingResult(t.index,t[0]),i=n.clone();if(t[fI]){var s=t[fI];s=="\u660E"||s=="\u807D"?n.hour()>1&&(i=i.add(1,"day")):s=="\u6628"||s=="\u5C0B"||s=="\u7434"?i=i.add(-1,"day"):s=="\u524D"?i=i.add(-2,"day"):s=="\u5927\u524D"?i=i.add(-3,"day"):s=="\u5F8C"?i=i.add(2,"day"):s=="\u5927\u5F8C"&&(i=i.add(3,"day")),a.start.assign("day",i.date()),a.start.assign("month",i.month()+1),a.start.assign("year",i.year())}else if(t[yI]){var o=t[yI];o=="\u660E"||o=="\u807D"?i=i.add(1,"day"):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?i=i.add(-1,"day"):o=="\u524D"?i=i.add(-2,"day"):o=="\u5927\u524D"?i=i.add(-3,"day"):o=="\u5F8C"?i=i.add(2,"day"):o=="\u5927\u5F8C"&&(i=i.add(3,"day")),a.start.assign("day",i.date()),a.start.assign("month",i.month()+1),a.start.assign("year",i.year())}else a.start.imply("day",i.date()),a.start.imply("month",i.month()+1),a.start.imply("year",i.year());let l=0,c=0,d=-1;if(t[pk]){var u=parseInt(t[pk]);if(isNaN(u)&&(u=$o(t[pk])),u>=60)return null;a.start.assign("second",u)}if(l=parseInt(t[kI]),isNaN(l)&&(l=$o(t[kI])),t[Bo]?t[Bo]=="\u534A"?c=30:t[Bo]=="\u6B63"||t[Bo]=="\u6574"?c=0:(c=parseInt(t[Bo]),isNaN(c)&&(c=$o(t[Bo]))):l>100&&(c=l%100,l=Math.floor(l/100)),c>=60||l>24)return null;if(l>=12&&(d=1),t[bI]){if(l>12)return null;var p=t[bI][0].toLowerCase();p=="a"&&(d=0,l==12&&(l=0)),p=="p"&&(d=1,l!=12&&(l+=12))}else if(t[hI]){var m=t[hI],f=m[0];f=="\u671D"||f=="\u65E9"?(d=0,l==12&&(l=0)):f=="\u665A"&&(d=1,l!=12&&(l+=12))}else if(t[gI]){var h=t[gI],g=h[0];g=="\u4E0A"||g=="\u671D"||g=="\u65E9"||g=="\u51CC"?(d=0,l==12&&(l=0)):(g=="\u4E0B"||g=="\u664F"||g=="\u665A")&&(d=1,l!=12&&(l+=12))}else if(t[vI]){var v=t[vI],b=v[0];b=="\u4E0A"||b=="\u671D"||b=="\u65E9"||b=="\u51CC"?(d=0,l==12&&(l=0)):(b=="\u4E0B"||b=="\u664F"||b=="\u665A")&&(d=1,l!=12&&(l+=12))}if(a.start.assign("hour",l),a.start.assign("minute",c),d>=0?a.start.assign("meridiem",d):l<12?a.start.imply("meridiem",0):a.start.imply("meridiem",1),t=ont.exec(e.text.substring(a.index+a.text.length)),!t)return a.text.match(/^\d+$/)?null:a;let k=i.clone();if(a.end=e.createParsingComponents(),t[fI]){var s=t[fI];s=="\u660E"||s=="\u807D"?n.hour()>1&&(k=k.add(1,"day")):s=="\u6628"||s=="\u5C0B"||s=="\u7434"?k=k.add(-1,"day"):s=="\u524D"?k=k.add(-2,"day"):s=="\u5927\u524D"?k=k.add(-3,"day"):s=="\u5F8C"?k=k.add(2,"day"):s=="\u5927\u5F8C"&&(k=k.add(3,"day")),a.end.assign("day",k.date()),a.end.assign("month",k.month()+1),a.end.assign("year",k.year())}else if(t[yI]){var o=t[yI];o=="\u660E"||o=="\u807D"?k=k.add(1,"day"):o=="\u6628"||o=="\u5C0B"||o=="\u7434"?k=k.add(-1,"day"):o=="\u524D"?k=k.add(-2,"day"):o=="\u5927\u524D"?k=k.add(-3,"day"):o=="\u5F8C"?k=k.add(2,"day"):o=="\u5927\u5F8C"&&(k=k.add(3,"day")),a.end.assign("day",k.date()),a.end.assign("month",k.month()+1),a.end.assign("year",k.year())}else a.end.imply("day",k.date()),a.end.imply("month",k.month()+1),a.end.imply("year",k.year());if(l=0,c=0,d=-1,t[pk]){var u=parseInt(t[pk]);if(isNaN(u)&&(u=$o(t[pk])),u>=60)return null;a.end.assign("second",u)}if(l=parseInt(t[kI]),isNaN(l)&&(l=$o(t[kI])),t[Bo]?t[Bo]=="\u534A"?c=30:t[Bo]=="\u6B63"||t[Bo]=="\u6574"?c=0:(c=parseInt(t[Bo]),isNaN(c)&&(c=$o(t[Bo]))):l>100&&(c=l%100,l=Math.floor(l/100)),c>=60||l>24)return null;if(l>=12&&(d=1),t[bI]){if(l>12)return null;var p=t[bI][0].toLowerCase();p=="a"&&(d=0,l==12&&(l=0)),p=="p"&&(d=1,l!=12&&(l+=12)),a.start.isCertain("meridiem")||(d==0?(a.start.imply("meridiem",0),a.start.get("hour")==12&&a.start.assign("hour",0)):(a.start.imply("meridiem",1),a.start.get("hour")!=12&&a.start.assign("hour",a.start.get("hour")+12)))}else if(t[hI]){var m=t[hI],f=m[0];f=="\u671D"||f=="\u65E9"?(d=0,l==12&&(l=0)):f=="\u665A"&&(d=1,l!=12&&(l+=12))}else if(t[gI]){var h=t[gI],g=h[0];g=="\u4E0A"||g=="\u671D"||g=="\u65E9"||g=="\u51CC"?(d=0,l==12&&(l=0)):(g=="\u4E0B"||g=="\u664F"||g=="\u665A")&&(d=1,l!=12&&(l+=12))}else if(t[vI]){var v=t[vI],b=v[0];b=="\u4E0A"||b=="\u671D"||b=="\u65E9"||b=="\u51CC"?(d=0,l==12&&(l=0)):(b=="\u4E0B"||b=="\u664F"||b=="\u665A")&&(d=1,l!=12&&(l+=12))}return a.text=a.text+t[0],a.end.assign("hour",l),a.end.assign("minute",c),d>=0?a.end.assign("meridiem",d):a.start.isCertain("meridiem")&&a.start.get("meridiem")==1&&a.start.get("hour")>l?a.end.imply("meridiem",0):l>12&&a.end.imply("meridiem",1),a.end.date().getTime()<a.start.date().getTime()&&a.end.imply("day",a.end.get("day")+1),a}}});var Uve,lnt,Jh,EH=y(()=>{Uve=st(tr(),1);xe();uk();lnt=new RegExp("(?:\u661F\u671F|\u79AE\u62DC|\u9031)(?<weekday>"+Object.keys(dk).join("|")+")"),Jh=class extends q{innerPattern(){return lnt}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=t.groups.weekday,i=dk[a];if(i===void 0)return null;let s=(0,Uve.default)(e.refDate),o=!1,l=s.day();return Math.abs(i-7-l)<Math.abs(i-l)?s=s.day(i-7):Math.abs(i+7-l)<Math.abs(i-l)?s=s.day(i+7):s=s.day(i),n.start.assign("weekday",i),o?(n.start.assign("day",s.date()),n.start.assign("month",s.month()+1),n.start.assign("year",s.year())):(n.start.imply("day",s.date()),n.start.imply("month",s.month()+1),n.start.imply("year",s.year())),n}}});var Xh,DH=y(()=>{Fo();Xh=class extends an{patternBetween(){return/^\s*(至|到|\-|\~|~|-|ー)\s*$/i}}});var eg,PH=y(()=>{Oo();eg=class extends sn{patternBetween(){return/^\s*$/i}}});var TI={};at(TI,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>MH,createCasualConfiguration:()=>AH,createConfiguration:()=>_H,hant:()=>cnt,parse:()=>unt,parseDate:()=>pnt,strict:()=>dnt});function unt(r,e,t){return MH.parse(r,e,t)}function pnt(r,e,t){return MH.parseDate(r,e,t)}function AH(){let r=_H();return r.parsers.unshift(new Yh),r}function _H(){let r=mn({parsers:[new Gh,new Zh,new Jh,new Qh,new Kh],refiners:[new Xh,new eg]});return r.refiners=r.refiners.filter(e=>!(e instanceof zl)),r}var cnt,MH,dnt,Hve=y(()=>{ex();Ks();ds();pt();Ht();vH();TH();SH();xH();CH();EH();DH();PH();cnt=new Be(AH()),MH=new Be(AH()),dnt=new Be(_H())});var Yve,mnt,Vve,fnt,qve,Wve,hnt,fC,Gve=y(()=>{Yve=st(tr(),1);xe();mnt=1,Vve=2,fnt=3,qve=4,Wve=5,hnt=6,fC=class extends q{innerPattern(e){return new RegExp("(\u73B0\u5728|\u7ACB(?:\u523B|\u5373)|\u5373\u523B)|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(\u65E9|\u665A)|(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668))|(\u4ECA|\u660E|\u524D|\u5927\u524D|\u540E|\u5927\u540E|\u6628)(?:\u65E5|\u5929)(?:[\\s|,|\uFF0C]*)(?:(\u4E0A(?:\u5348)|\u65E9(?:\u4E0A)|\u4E0B(?:\u5348)|\u665A(?:\u4E0A)|\u591C(?:\u665A)?|\u4E2D(?:\u5348)|\u51CC(?:\u6668)))?","i")}innerExtract(e,t){let n=t.index,a=e.createParsingResult(n,t[0]),i=(0,Yve.default)(e.refDate),s=i;if(t[mnt])a.start.imply("hour",i.hour()),a.start.imply("minute",i.minute()),a.start.imply("second",i.second()),a.start.imply("millisecond",i.millisecond());else if(t[Vve]){let o=t[Vve],l=t[fnt];o=="\u660E"?i.hour()>1&&(s=s.add(1,"day")):o=="\u6628"?s=s.add(-1,"day"):o=="\u524D"?s=s.add(-2,"day"):o=="\u5927\u524D"?s=s.add(-3,"day"):o=="\u540E"?s=s.add(2,"day"):o=="\u5927\u540E"&&(s=s.add(3,"day")),l=="\u65E9"?a.start.imply("hour",6):l=="\u665A"&&(a.start.imply("hour",22),a.start.imply("meridiem",1))}else if(t[qve]){let l=t[qve][0];l=="\u65E9"||l=="\u4E0A"?a.start.imply("hour",6):l=="\u4E0B"?(a.start.imply("hour",15),a.start.imply("meridiem",1)):l=="\u4E2D"?(a.start.imply("hour",12),a.start.imply("meridiem",1)):l=="\u591C"||l=="\u665A"?(a.start.imply("hour",22),a.start.imply("meridiem",1)):l=="\u51CC"&&a.start.imply("hour",0)}else if(t[Wve]){let o=t[Wve];o=="\u660E"?i.hour()>1&&(s=s.add(1,"day")):o=="\u6628"?s=s.add(-1,"day"):o=="\u524D"?s=s.add(-2,"day"):o=="\u5927\u524D"?s=s.add(-3,"day"):o=="\u540E"?s=s.add(2,"day"):o=="\u5927\u540E"&&(s=s.add(3,"day"));let l=t[hnt];if(l){let c=l[0];c=="\u65E9"||c=="\u4E0A"?a.start.imply("hour",6):c=="\u4E0B"?(a.start.imply("hour",15),a.start.imply("meridiem",1)):c=="\u4E2D"?(a.start.imply("hour",12),a.start.imply("meridiem",1)):c=="\u591C"||c=="\u665A"?(a.start.imply("hour",22),a.start.imply("meridiem",1)):c=="\u51CC"&&a.start.imply("hour",0)}}return a.start.assign("day",s.date()),a.start.assign("month",s.month()+1),a.start.assign("year",s.year()),a}}});var hC,Kve=y(()=>{Fo();hC=class extends an{patternBetween(){return/^\s*(至|到|-|~|~|-|ー)\s*$/i}}});var gC,Zve=y(()=>{Oo();gC=class extends sn{patternBetween(){return/^\s*$/i}}});var wI={};at(wI,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>IH,createCasualConfiguration:()=>NH,createConfiguration:()=>RH,hans:()=>gnt,parse:()=>vnt,parseDate:()=>knt,strict:()=>ynt});function vnt(r,e,t){return IH.parse(r,e,t)}function knt(r,e,t){return IH.parseDate(r,e,t)}function NH(){let r=RH();return r.parsers.unshift(new fC),r}function RH(){let r=mn({parsers:[new Uh,new Vh,new Wh,new qh,new Hh],refiners:[new hC,new gC]});return r.refiners=r.refiners.filter(e=>!(e instanceof zl)),r}var gnt,IH,ynt,Qve=y(()=>{ex();Ks();ds();pt();Ht();Gve();pH();fH();hH();gH();yH();Kve();Zve();gnt=new Be(NH()),IH=new Be(NH()),ynt=new Be(RH())});var LH={};at(LH,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>FH,createCasualConfiguration:()=>Jve,createConfiguration:()=>OH,hans:()=>wI,hant:()=>TI,parse:()=>Tnt,parseDate:()=>wnt,strict:()=>bnt});function Tnt(r,e,t){return FH.parse(r,e,t)}function wnt(r,e,t){return FH.parseDate(r,e,t)}function Jve(){let r=OH();return r.parsers.unshift(new Yh),r}function OH(){let r=mn({parsers:[new Gh,new Uh,new Zh,new Vh,new Jh,new Wh,new Qh,new qh,new Kh,new Hh],refiners:[new Xh,new eg]});return r.refiners=r.refiners.filter(e=>!(e instanceof zl)),r}var FH,bnt,Xve=y(()=>{Ks();ds();pt();Ht();ex();pH();fH();hH();gH();yH();vH();TH();SH();xH();CH();EH();DH();PH();Hve();Qve();FH=new Be(Jve()),bnt=new Be(OH())});function xnt(r){let e=r.toLowerCase();return jH[e]!==void 0?jH[e]:e.match(/несколько/)?3:e.match(/пол/)?.5:e.match(/пар/)?2:e===""?1:parseFloat(e)}function VH(r){let e=r.toLowerCase();return $H[e]!==void 0?$H[e]:parseInt(e)}function xI(r){if(/(год|года|г|г.)/i.test(r)&&(r=r.replace(/(год|года|г|г.)/i,"")),/(до н.э.|до н. э.)/i.test(r))return r=r.replace(/(до н.э.|до н. э.)/i,""),-parseInt(r);if(/(н. э.|н.э.)/i.test(r))return r=r.replace(/(н. э.|н.э.)/i,""),parseInt(r);let e=parseInt(r);return ls(e)}function hk(r){let e={},t=r,n=eke.exec(t);for(;n;)Cnt(e,n),t=t.substring(n[0].length).trim(),n=eke.exec(t);return e}function Cnt(r,e){let t=xnt(e[1]),n=yC[e[2].toLowerCase()];r[n]=t}var Xs,BH,UH,mk,jH,$H,yC,Snt,HH,zH,SI,tke,eke,fk,eo=y(()=>{Ot();Rn();Xs={leftBoundary:"([^\\p{L}\\p{N}_]|^)",rightBoundary:"(?=[^\\p{L}\\p{N}_]|$)",flags:"iu"},BH={\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435:0,\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u044F:0,\u0432\u0441\u043A:0,"\u0432\u0441\u043A.":0,\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A:1,\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A\u0430:1,\u043F\u043D:1,"\u043F\u043D.":1,\u0432\u0442\u043E\u0440\u043D\u0438\u043A:2,\u0432\u0442\u043E\u0440\u043D\u0438\u043A\u0430:2,\u0432\u0442:2,"\u0432\u0442.":2,\u0441\u0440\u0435\u0434\u0430:3,\u0441\u0440\u0435\u0434\u044B:3,\u0441\u0440\u0435\u0434\u0443:3,\u0441\u0440:3,"\u0441\u0440.":3,\u0447\u0435\u0442\u0432\u0435\u0440\u0433:4,\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430:4,\u0447\u0442:4,"\u0447\u0442.":4,\u043F\u044F\u0442\u043D\u0438\u0446\u0430:5,\u043F\u044F\u0442\u043D\u0438\u0446\u0443:5,\u043F\u044F\u0442\u043D\u0438\u0446\u044B:5,\u043F\u0442:5,"\u043F\u0442.":5,\u0441\u0443\u0431\u0431\u043E\u0442\u0430:6,\u0441\u0443\u0431\u0431\u043E\u0442\u0443:6,\u0441\u0443\u0431\u0431\u043E\u0442\u044B:6,\u0441\u0431:6,"\u0441\u0431.":6},UH={\u044F\u043D\u0432\u0430\u0440\u044C:1,\u044F\u043D\u0432\u0430\u0440\u044F:1,\u044F\u043D\u0432\u0430\u0440\u0435:1,\u0444\u0435\u0432\u0440\u0430\u043B\u044C:2,\u0444\u0435\u0432\u0440\u0430\u043B\u044F:2,\u0444\u0435\u0432\u0440\u0430\u043B\u0435:2,\u043C\u0430\u0440\u0442:3,\u043C\u0430\u0440\u0442\u0430:3,\u043C\u0430\u0440\u0442\u0435:3,\u0430\u043F\u0440\u0435\u043B\u044C:4,\u0430\u043F\u0440\u0435\u043B\u044F:4,\u0430\u043F\u0440\u0435\u043B\u0435:4,\u043C\u0430\u0439:5,\u043C\u0430\u044F:5,\u043C\u0430\u0435:5,\u0438\u044E\u043D\u044C:6,\u0438\u044E\u043D\u044F:6,\u0438\u044E\u043D\u0435:6,\u0438\u044E\u043B\u044C:7,\u0438\u044E\u043B\u044F:7,\u0438\u044E\u043B\u0435:7,\u0430\u0432\u0433\u0443\u0441\u0442:8,\u0430\u0432\u0433\u0443\u0441\u0442\u0430:8,\u0430\u0432\u0433\u0443\u0441\u0442\u0435:8,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044C:9,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044F:9,\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u0435:9,\u043E\u043A\u0442\u044F\u0431\u0440\u044C:10,\u043E\u043A\u0442\u044F\u0431\u0440\u044F:10,\u043E\u043A\u0442\u044F\u0431\u0440\u0435:10,\u043D\u043E\u044F\u0431\u0440\u044C:11,\u043D\u043E\u044F\u0431\u0440\u044F:11,\u043D\u043E\u044F\u0431\u0440\u0435:11,\u0434\u0435\u043A\u0430\u0431\u0440\u044C:12,\u0434\u0435\u043A\u0430\u0431\u0440\u044F:12,\u0434\u0435\u043A\u0430\u0431\u0440\u0435:12},mk={...UH,\u044F\u043D\u0432:1,"\u044F\u043D\u0432.":1,\u0444\u0435\u0432:2,"\u0444\u0435\u0432.":2,\u043C\u0430\u0440:3,"\u043C\u0430\u0440.":3,\u0430\u043F\u0440:4,"\u0430\u043F\u0440.":4,\u0430\u0432\u0433:8,"\u0430\u0432\u0433.":8,\u0441\u0435\u043D:9,"\u0441\u0435\u043D.":9,\u043E\u043A\u0442:10,"\u043E\u043A\u0442.":10,\u043D\u043E\u044F:11,"\u043D\u043E\u044F.":11,\u0434\u0435\u043A:12,"\u0434\u0435\u043A.":12},jH={\u043E\u0434\u0438\u043D:1,\u043E\u0434\u043D\u0430:1,\u043E\u0434\u043D\u043E\u0439:1,\u043E\u0434\u043D\u0443:1,\u0434\u0432\u0435:2,\u0434\u0432\u0430:2,\u0434\u0432\u0443\u0445:2,\u0442\u0440\u0438:3,\u0442\u0440\u0435\u0445:3,\u0442\u0440\u0451\u0445:3,\u0447\u0435\u0442\u044B\u0440\u0435:4,\u0447\u0435\u0442\u044B\u0440\u0435\u0445:4,\u0447\u0435\u0442\u044B\u0440\u0451\u0445:4,\u043F\u044F\u0442\u044C:5,\u043F\u044F\u0442\u0438:5,\u0448\u0435\u0441\u0442\u044C:6,\u0448\u0435\u0441\u0442\u0438:6,\u0441\u0435\u043C\u044C:7,\u0441\u0435\u043C\u0438:7,\u0432\u043E\u0441\u0435\u043C\u044C:8,\u0432\u043E\u0441\u044C\u043C\u0438:8,\u0434\u0435\u0432\u044F\u0442\u044C:9,\u0434\u0435\u0432\u044F\u0442\u0438:9,\u0434\u0435\u0441\u044F\u0442\u044C:10,\u0434\u0435\u0441\u044F\u0442\u0438:10,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u044C:11,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u0438:11,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u044C:12,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u0438:12},$H={\u043F\u0435\u0440\u0432\u043E\u0435:1,\u043F\u0435\u0440\u0432\u043E\u0433\u043E:1,\u0432\u0442\u043E\u0440\u043E\u0435:2,\u0432\u0442\u043E\u0440\u043E\u0433\u043E:2,\u0442\u0440\u0435\u0442\u044C\u0435:3,\u0442\u0440\u0435\u0442\u044C\u0435\u0433\u043E:3,\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435:4,\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0433\u043E:4,\u043F\u044F\u0442\u043E\u0435:5,\u043F\u044F\u0442\u043E\u0433\u043E:5,\u0448\u0435\u0441\u0442\u043E\u0435:6,\u0448\u0435\u0441\u0442\u043E\u0433\u043E:6,\u0441\u0435\u0434\u044C\u043C\u043E\u0435:7,\u0441\u0435\u0434\u044C\u043C\u043E\u0433\u043E:7,\u0432\u043E\u0441\u044C\u043C\u043E\u0435:8,\u0432\u043E\u0441\u044C\u043C\u043E\u0433\u043E:8,\u0434\u0435\u0432\u044F\u0442\u043E\u0435:9,\u0434\u0435\u0432\u044F\u0442\u043E\u0433\u043E:9,\u0434\u0435\u0441\u044F\u0442\u043E\u0435:10,\u0434\u0435\u0441\u044F\u0442\u043E\u0433\u043E:10,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:11,\u043E\u0434\u0438\u043D\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:11,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:12,\u0434\u0432\u0435\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:12,\u0442\u0440\u0438\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:13,\u0442\u0440\u0438\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:13,\u0447\u0435\u0442\u044B\u0440\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:14,\u0447\u0435\u0442\u044B\u0440\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:14,\u043F\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:15,\u043F\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:15,\u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:16,\u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:16,\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:17,\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:17,\u0432\u043E\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:18,\u0432\u043E\u0441\u0435\u043C\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:18,\u0434\u0435\u0432\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0435:19,\u0434\u0435\u0432\u044F\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:19,\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u043E\u0435:20,\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u043E\u0433\u043E:20,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0435":21,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0433\u043E":21,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u0442\u043E\u0440\u043E\u0435":22,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u0442\u043E\u0440\u043E\u0433\u043E":22,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0442\u0440\u0435\u0442\u044C\u0435":23,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0442\u0440\u0435\u0442\u044C\u0435\u0433\u043E":23,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435":24,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0433\u043E":24,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u044F\u0442\u043E\u0435":25,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u043F\u044F\u0442\u043E\u0433\u043E":25,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0448\u0435\u0441\u0442\u043E\u0435":26,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0448\u0435\u0441\u0442\u043E\u0433\u043E":26,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0441\u0435\u0434\u044C\u043C\u043E\u0435":27,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0441\u0435\u0434\u044C\u043C\u043E\u0433\u043E":27,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u043E\u0441\u044C\u043C\u043E\u0435":28,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0432\u043E\u0441\u044C\u043C\u043E\u0433\u043E":28,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0434\u0435\u0432\u044F\u0442\u043E\u0435":29,"\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044C \u0434\u0435\u0432\u044F\u0442\u043E\u0433\u043E":29,\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u043E\u0435:30,\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u043E\u0433\u043E:30,"\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0435":31,"\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0433\u043E":31},yC={\u0441\u0435\u043A:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u0430:"second",\u0441\u0435\u043A\u0443\u043D\u0434:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u044B:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u0443:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0430:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0438:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u0435\u043A:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0443:"second",\u043C\u0438\u043D:"minute",\u043C\u0438\u043D\u0443\u0442\u0430:"minute",\u043C\u0438\u043D\u0443\u0442:"minute",\u043C\u0438\u043D\u0443\u0442\u044B:"minute",\u043C\u0438\u043D\u0443\u0442\u0443:"minute",\u043C\u0438\u043D\u0443\u0442\u043E\u043A:"minute",\u043C\u0438\u043D\u0443\u0442\u043A\u0438:"minute",\u043C\u0438\u043D\u0443\u0442\u043A\u0443:"minute",\u043C\u0438\u043D\u0443\u0442\u043E\u0447\u0435\u043A:"minute",\u043C\u0438\u043D\u0443\u0442\u043E\u0447\u043A\u0438:"minute",\u043C\u0438\u043D\u0443\u0442\u043E\u0447\u043A\u0443:"minute",\u0447\u0430\u0441:"hour",\u0447\u0430\u0441\u043E\u0432:"hour",\u0447\u0430\u0441\u0430:"hour",\u0447\u0430\u0441\u0443:"hour",\u0447\u0430\u0441\u0438\u043A\u043E\u0432:"hour",\u0447\u0430\u0441\u0438\u043A\u0430:"hour",\u0447\u0430\u0441\u0438\u043A\u0435:"hour",\u0447\u0430\u0441\u0438\u043A:"hour",\u0434\u0435\u043D\u044C:"d",\u0434\u043D\u044F:"d",\u0434\u043D\u0435\u0439:"d",\u0441\u0443\u0442\u043E\u043A:"d",\u0441\u0443\u0442\u043A\u0438:"d",\u043D\u0435\u0434\u0435\u043B\u044F:"week",\u043D\u0435\u0434\u0435\u043B\u0435:"week",\u043D\u0435\u0434\u0435\u043B\u0438:"week",\u043D\u0435\u0434\u0435\u043B\u044E:"week",\u043D\u0435\u0434\u0435\u043B\u044C:"week",\u043D\u0435\u0434\u0435\u043B\u044C\u043A\u0435:"week",\u043D\u0435\u0434\u0435\u043B\u044C\u043A\u0438:"week",\u043D\u0435\u0434\u0435\u043B\u0435\u043A:"week",\u043C\u0435\u0441\u044F\u0446:"month",\u043C\u0435\u0441\u044F\u0446\u0435:"month",\u043C\u0435\u0441\u044F\u0446\u0435\u0432:"month",\u043C\u0435\u0441\u044F\u0446\u0430:"month",\u043A\u0432\u0430\u0440\u0442\u0430\u043B:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0435:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u043E\u0432:"quarter",\u0433\u043E\u0434:"year",\u0433\u043E\u0434\u0430:"year",\u0433\u043E\u0434\u0443:"year",\u0433\u043E\u0434\u043E\u0432:"year",\u043B\u0435\u0442:"year",\u0433\u043E\u0434\u0438\u043A:"year",\u0433\u043E\u0434\u0438\u043A\u0430:"year",\u0433\u043E\u0434\u0438\u043A\u043E\u0432:"year"},Snt=`(?:${oe(jH)}|[0-9]+|[0-9]+\\.[0-9]+|\u043F\u043E\u043B|\u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E|\u043F\u0430\u0440(?:\u044B|\u0443)|\\s{0,3})`;HH=`(?:${oe($H)}|[0-9]{1,2}(?:\u0433\u043E|\u043E\u0433\u043E|\u0435|\u043E\u0435)?)`;zH="(?:\\s+(?:\u0433\u043E\u0434\u0443|\u0433\u043E\u0434\u0430|\u0433\u043E\u0434|\u0433|\u0433.))?",SI=`(?:[1-9][0-9]{0,3}${zH}\\s*(?:\u043D.\u044D.|\u0434\u043E \u043D.\u044D.|\u043D. \u044D.|\u0434\u043E \u043D. \u044D.)|[1-2][0-9]{3}${zH}|[5-9][0-9]${zH})`;tke=`(${Snt})\\s{0,3}(${oe(yC)})`,eke=new RegExp(tke,"i"),fk=zi("(?:(?:\u043E\u043A\u043E\u043B\u043E|\u043F\u0440\u0438\u043C\u0435\u0440\u043D\u043E)\\s{0,3})?",tke)});var rke,vC,nke=y(()=>{eo();pt();xe();rke=`(?:(?:\u043E\u043A\u043E\u043B\u043E|\u043F\u0440\u0438\u043C\u0435\u0440\u043D\u043E)\\s*(?:~\\s*)?)?(${fk})${Xs.rightBoundary}`,vC=class extends q{patternLeftBoundary(){return Xs.leftBoundary}innerPattern(e){return e.option.forwardDate?new RegExp(rke,Xs.flags):new RegExp(`(?:\u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435|\u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0438)\\s*${rke}`,Xs.flags)}innerExtract(e,t){let n=hk(t[1]);return te.createRelativeFromReference(e.reference,n)}}});var tg,us,Fu=y(()=>{xe();eo();tg=class extends q{patternLeftBoundary(){return Xs.leftBoundary}innerPattern(e){return new RegExp(this.innerPatternString(e),Xs.flags)}innerPatternHasChange(e,t){return!1}},us=class extends tg{innerPattern(e){return new RegExp(`${this.innerPatternString(e)}${Xs.rightBoundary}`,Xs.flags)}}});var ake,ike,Ent,ske,kC,oke=y(()=>{Rn();eo();eo();eo();Ot();Fu();ake=1,ike=2,Ent=3,ske=4,kC=class extends us{innerPatternString(e){return`(?:\u0441)?\\s*(${HH})(?:\\s{0,3}(?:\u043F\u043E|-|\u2013|\u0434\u043E)?\\s{0,3}(${HH}))?(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})(${oe(mk)})(?:(?:-|\\/|,?\\s{0,3})(${SI}(?![^\\s]\\d)))?`}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=mk[t[Ent].toLowerCase()],i=VH(t[ake]);if(i>31)return t.index=t.index+t[ake].length,null;if(n.start.assign("month",a),n.start.assign("day",i),t[ske]){let s=xI(t[ske]);n.start.assign("year",s)}else{let s=fr(e.refDate,i,a);n.start.imply("year",s)}if(t[ike]){let s=VH(t[ike]);n.end=n.start.clone(),n.end.assign("day",s)}return n}}});var Dnt,lke,bC,cke=y(()=>{eo();Rn();Ot();eo();Fu();Dnt=2,lke=3,bC=class extends tg{innerPatternString(e){return`((?:\u0432)\\s*)?(${oe(mk)})\\s*(?:[,-]?\\s*(${SI})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`}innerExtract(e,t){let n=t[Dnt].toLowerCase();if(t[0].length<=3&&!UH[n])return null;let a=e.createParsingResult(t.index,t.index+t[0].length);a.start.imply("day",1);let i=mk[n];if(a.start.assign("month",i),t[lke]){let s=xI(t[lke]);a.start.assign("year",s)}else{let s=fr(e.refDate,1,i);a.start.imply("year",s)}return a}}});var TC,dke=y(()=>{Ht();Au();eo();TC=class extends Da{constructor(e){super(e)}patternFlags(){return Xs.flags}primaryPatternLeftBoundary(){return"(^|\\s|T|(?:[^\\p{L}\\p{N}_]))"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|\u0434\u043E|\u0438|\u043F\u043E|\\?)\\s*"}primaryPrefix(){return"(?:(?:\u0432|\u0441)\\s*)??"}primarySuffix(){return`(?:\\s*(?:\u0443\u0442\u0440\u0430|\u0432\u0435\u0447\u0435\u0440\u0430|\u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u043B\u0443\u0434\u043D\u044F))?(?!\\/)${Xs.rightBoundary}`}extractPrimaryTimeComponents(e,t){let n=super.extractPrimaryTimeComponents(e,t);if(n){if(t[0].endsWith("\u0432\u0435\u0447\u0435\u0440\u0430")){let a=n.get("hour");a>=6&&a<12?(n.assign("hour",n.get("hour")+12),n.assign("meridiem",H.PM)):a<6&&n.assign("meridiem",H.AM)}if(t[0].endsWith("\u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u043B\u0443\u0434\u043D\u044F")){n.assign("meridiem",H.PM);let a=n.get("hour");a>=0&&a<=6&&n.assign("hour",n.get("hour")+12)}t[0].endsWith("\u0443\u0442\u0440\u0430")&&(n.assign("meridiem",H.AM),n.get("hour")<12&&n.assign("hour",n.get("hour")))}return n}}});var wC,uke=y(()=>{eo();pt();Qs();Fu();wC=class extends tg{innerPatternString(e){return`(${fk})\\s{0,5}\u043D\u0430\u0437\u0430\u0434(?=(?:\\W|$))`}innerExtract(e,t){let n=hk(t[1]),a=ea(n);return te.createRelativeFromReference(e.reference,a)}}});var SC,pke=y(()=>{Fo();SC=class extends an{patternBetween(){return/^\s*(и до|и по|до|по|-)\s*$/i}}});var xC,mke=y(()=>{Oo();xC=class extends sn{patternBetween(){return new RegExp("^\\s*(T|\u0432|,|-)?\\s*$")}}});var CC,fke=y(()=>{Zs();Fu();CC=class extends us{innerPatternString(e){return"(?:\u0441|\u0441\u043E)?\\s*(\u0441\u0435\u0433\u043E\u0434\u043D\u044F|\u0432\u0447\u0435\u0440\u0430|\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u043E\u0441\u043B\u0435\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u043E\u0441\u043B\u0435\u043F\u043E\u0441\u043B\u0435\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u043E\u0437\u0430\u043F\u043E\u0437\u0430\u0432\u0447\u0435\u0440\u0430|\u043F\u043E\u0437\u0430\u0432\u0447\u0435\u0440\u0430)"}innerExtract(e,t){let n=t[1].toLowerCase(),a=e.createParsingComponents();switch(n){case"\u0441\u0435\u0433\u043E\u0434\u043D\u044F":return Pa(e.reference);case"\u0432\u0447\u0435\u0440\u0430":return ui(e.reference);case"\u0437\u0430\u0432\u0442\u0440\u0430":return pi(e.reference);case"\u043F\u043E\u0441\u043B\u0435\u0437\u0430\u0432\u0442\u0440\u0430":return Rc(e.reference,2);case"\u043F\u043E\u0441\u043B\u0435\u043F\u043E\u0441\u043B\u0435\u0437\u0430\u0432\u0442\u0440\u0430":return Rc(e.reference,3);case"\u043F\u043E\u0437\u0430\u0432\u0447\u0435\u0440\u0430":return Lh(e.reference,2);case"\u043F\u043E\u0437\u0430\u043F\u043E\u0437\u0430\u0432\u0447\u0435\u0440\u0430":return Lh(e.reference,3)}return a}}});var hke,EC,gke=y(()=>{Zs();Gs();hke=st(tr(),1);Fu();EC=class extends us{innerPatternString(e){return"(\u0441\u0435\u0439\u0447\u0430\u0441|\u043F\u0440\u043E\u0448\u043B\u044B\u043C\\s*\u0432\u0435\u0447\u0435\u0440\u043E\u043C|\u043F\u0440\u043E\u0448\u043B\u043E\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u0441\u0435\u0433\u043E\u0434\u043D\u044F\\s*\u043D\u043E\u0447\u044C\u044E|\u044D\u0442\u043E\u0439\\s*\u043D\u043E\u0447\u044C\u044E|\u043D\u043E\u0447\u044C\u044E|\u044D\u0442\u0438\u043C \u0443\u0442\u0440\u043E\u043C|\u0443\u0442\u0440\u043E\u043C|\u0443\u0442\u0440\u0430|\u0432\\s*\u043F\u043E\u043B\u0434\u0435\u043D\u044C|\u0432\u0435\u0447\u0435\u0440\u043E\u043C|\u0432\u0435\u0447\u0435\u0440\u0430|\u0432\\s*\u043F\u043E\u043B\u043D\u043E\u0447\u044C)"}innerExtract(e,t){let n=(0,hke.default)(e.refDate),a=t[0].toLowerCase(),i=e.createParsingComponents();if(a==="\u0441\u0435\u0439\u0447\u0430\u0441")return di(e.reference);if(a==="\u0432\u0435\u0447\u0435\u0440\u043E\u043C"||a==="\u0432\u0435\u0447\u0435\u0440\u0430")return Xv(e.reference);if(a.endsWith("\u0443\u0442\u0440\u043E\u043C")||a.endsWith("\u0443\u0442\u0440\u0430"))return ek(e.reference);if(a.match(/в\s*полдень/))return tk(e.reference);if(a.match(/прошлой\s*ночью/))return G_(e.reference);if(a.match(/прошлым\s*вечером/))return K_(e.reference);if(a.match(/следующей\s*ночью/)){let s=n.hour()<22?1:2;n=n.add(s,"day"),Kr(i,n),i.imply("hour",0)}return a.match(/в\s*полночь/)||a.endsWith("\u043D\u043E\u0447\u044C\u044E")?zh(e.reference):i}}});var Pnt,Mnt,Ant,DC,yke=y(()=>{eo();Ot();jl();Fu();Pnt=1,Mnt=2,Ant=3,DC=class extends us{innerPatternString(e){return`(?:(?:,|\\(|\uFF08)\\s*)?(?:\u0432\\s*?)?(?:(\u044D\u0442\u0443|\u044D\u0442\u043E\u0442|\u043F\u0440\u043E\u0448\u043B\u044B\u0439|\u043F\u0440\u043E\u0448\u043B\u0443\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E)\\s*)?(${oe(BH)})(?:\\s*(?:,|\\)|\uFF09))?(?:\\s*\u043D\u0430\\s*(\u044D\u0442\u043E\u0439|\u043F\u0440\u043E\u0448\u043B\u043E\u0439|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439)\\s*\u043D\u0435\u0434\u0435\u043B\u0435)?`}innerExtract(e,t){let n=t[Mnt].toLowerCase(),a=BH[n],i=t[Pnt],s=t[Ant],o=i||s;o=o||"",o=o.toLowerCase();let l=null;return o=="\u043F\u0440\u043E\u0448\u043B\u044B\u0439"||o=="\u043F\u0440\u043E\u0448\u043B\u0443\u044E"||o=="\u043F\u0440\u043E\u0448\u043B\u043E\u0439"?l="last":o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439"||o=="\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E"?l="next":(o=="\u044D\u0442\u043E\u0442"||o=="\u044D\u0442\u0443"||o=="\u044D\u0442\u043E\u0439")&&(l="this"),ta(e.reference,a,l)}}});var vke,_nt,Int,PC,kke=y(()=>{eo();pt();vke=st(tr(),1);Ot();Fu();_nt=1,Int=2,PC=class extends us{innerPatternString(e){return`(\u0432 \u043F\u0440\u043E\u0448\u043B\u043E\u043C|\u043D\u0430 \u043F\u0440\u043E\u0448\u043B\u043E\u0439|\u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439|\u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C|\u043D\u0430 \u044D\u0442\u043E\u0439|\u0432 \u044D\u0442\u043E\u043C)\\s*(${oe(yC)})`}innerExtract(e,t){let n=t[_nt].toLowerCase(),a=t[Int].toLowerCase(),i=yC[a];if(n=="\u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439"||n=="\u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C"){let l={};return l[i]=1,te.createRelativeFromReference(e.reference,l)}if(n=="\u0432 \u043F\u0440\u043E\u0448\u043B\u043E\u043C"||n=="\u043D\u0430 \u043F\u0440\u043E\u0448\u043B\u043E\u0439"){let l={};return l[i]=-1,te.createRelativeFromReference(e.reference,l)}let s=e.createParsingComponents(),o=(0,vke.default)(e.reference.instant);return i.match(/week/i)?(o=o.add(-o.get("d"),"d"),s.imply("day",o.date()),s.imply("month",o.month()+1),s.imply("year",o.year())):i.match(/month/i)?(o=o.add(-o.date()+1,"d"),s.imply("day",o.date()),s.assign("year",o.year()),s.assign("month",o.month()+1)):i.match(/year/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),s.imply("day",o.date()),s.imply("month",o.month()+1),s.assign("year",o.year())),s}}});var MC,bke=y(()=>{eo();pt();Qs();Fu();MC=class extends us{innerPatternString(e){return`(\u044D\u0442\u0438|\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435|\u043F\u0440\u043E\u0448\u043B\u044B\u0435|\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435|\u043F\u043E\u0441\u043B\u0435|\u0441\u043F\u0443\u0441\u0442\u044F|\u0447\u0435\u0440\u0435\u0437|\\+|-)\\s*(${fk})`}innerExtract(e,t){let n=t[1].toLowerCase(),a=hk(t[2]);switch(n){case"\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435":case"\u043F\u0440\u043E\u0448\u043B\u044B\u0435":case"-":a=ea(a);break}return te.createRelativeFromReference(e.reference,a)}}});var YH={};at(YH,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>qH,createCasualConfiguration:()=>Tke,createConfiguration:()=>WH,parse:()=>Rnt,parseDate:()=>Fnt,strict:()=>Nnt});function Rnt(r,e,t){return qH.parse(r,e,t)}function Fnt(r,e,t){return qH.parseDate(r,e,t)}function Tke(){let r=WH(!1);return r.parsers.unshift(new CC),r.parsers.unshift(new EC),r.parsers.unshift(new bC),r.parsers.unshift(new PC),r.parsers.unshift(new MC),r}function WH(r=!0){return mn({parsers:[new ua(!0),new vC,new kC,new DC,new TC(r),new wC],refiners:[new xC,new SC]},r)}var qH,Nnt,wke=y(()=>{nke();oke();cke();dke();uke();pke();mke();Ks();fke();gke();yke();kke();ds();pt();Ht();Nu();bke();qH=new Be(Tke()),Nnt=new Be(WH(!0))});function Lnt(r){let e=r.toLowerCase();return GH[e]!==void 0?GH[e]:e==="un"||e==="una"||e==="uno"?1:e.match(/algunos?/)||e.match(/unos?/)?3:e.match(/media?/)?.5:parseFloat(e)}function Eke(r){if(r.match(/^[0-9]{1,4}$/)){let e=parseInt(r);return e<100&&(e>50?e=e+1900:e=e+2e3),e}return r.match(/a\.?\s*c\.?/i)?(r=r.replace(/a\.?\s*c\.?/i,""),-parseInt(r)):parseInt(r)}function Mke(r){let e={},t=r,n=Ske.exec(t);for(;n;)znt(e,n),t=t.substring(n[0].length),n=Ske.exec(t);return e}function znt(r,e){let t=Lnt(e[1]),n=xke[e[2].toLowerCase()];r[n]=t}var KH,ZH,GH,xke,Ont,Cke,Dke,Ske,Pke,AC=y(()=>{Ot();KH={domingo:0,dom:0,lunes:1,lun:1,martes:2,mar:2,mi\u00E9rcoles:3,miercoles:3,mi\u00E9:3,mie:3,jueves:4,jue:4,viernes:5,vie:5,s\u00E1bado:6,sabado:6,s\u00E1b:6,sab:6},ZH={enero:1,ene:1,"ene.":1,febrero:2,feb:2,"feb.":2,marzo:3,mar:3,"mar.":3,abril:4,abr:4,"abr.":4,mayo:5,may:5,"may.":5,junio:6,jun:6,"jun.":6,julio:7,jul:7,"jul.":7,agosto:8,ago:8,"ago.":8,septiembre:9,setiembre:9,sep:9,"sep.":9,octubre:10,oct:10,"oct.":10,noviembre:11,nov:11,"nov.":11,diciembre:12,dic:12,"dic.":12},GH={uno:1,dos:2,tres:3,cuatro:4,cinco:5,seis:6,siete:7,ocho:8,nueve:9,diez:10,once:11,doce:12,trece:13},xke={sec:"second",segundo:"second",segundos:"second",min:"minute",mins:"minute",minuto:"minute",minutos:"minute",h:"hour",hr:"hour",hrs:"hour",hora:"hour",horas:"hour",d\u00EDa:"d",d\u00EDas:"d",semana:"week",semanas:"week",mes:"month",meses:"month",cuarto:"quarter",cuartos:"quarter",a\u00F1o:"year",a\u00F1os:"year"},Ont=`(?:${oe(GH)}|[0-9]+|[0-9]+\\.[0-9]+|un?|uno?|una?|algunos?|unos?|demi-?)`;Cke="[0-9]{1,4}(?![^\\s]\\d)(?:\\s*[a|d]\\.?\\s*c\\.?|\\s*a\\.?\\s*d\\.?)?";Dke=`(${Ont})\\s{0,5}(${oe(xke)})\\s{0,5}`,Ske=new RegExp(Dke,"i"),Pke=zi("",Dke)});var jnt,$nt,Bnt,Unt,_C,Ake=y(()=>{AC();Ot();xe();jl();jnt=new RegExp(`(?:(?:\\,|\\(|\\\uFF08)\\s*)?(?:(este|esta|pasado|pr[o\xF3]ximo)\\s*)?(${oe(KH)})(?:\\s*(?:\\,|\\)|\\\uFF09))?(?:\\s*(este|esta|pasado|pr[\xF3o]ximo)\\s*semana)?(?=\\W|\\d|$)`,"i"),$nt=1,Bnt=2,Unt=3,_C=class extends q{innerPattern(){return jnt}innerExtract(e,t){let n=t[Bnt].toLowerCase(),a=KH[n];if(a===void 0)return null;let i=t[$nt],s=t[Unt],o=i||s||"";o=o.toLowerCase();let l=null;return o=="pasado"?l="this":o=="pr\xF3ximo"||o=="proximo"?l="next":o=="este"&&(l="this"),ta(e.reference,a,l)}}});var IC,_ke=y(()=>{Au();IC=class extends Da{primaryPrefix(){return"(?:(?:aslas|deslas|las?|al?|de|del)\\s*)?"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|a(?:l)?|\\?)\\s*"}}});var NC,Ike=y(()=>{Oo();NC=class extends sn{patternBetween(){return new RegExp("^\\s*(?:,|de|aslas|a)?\\s*$")}}});var RC,Nke=y(()=>{Fo();RC=class extends an{patternBetween(){return/^\s*(?:-)\s*$/i}}});var Hnt,Rke,Fke,Vnt,Oke,FC,Lke=y(()=>{Rn();AC();AC();Ot();xe();Hnt=new RegExp(`([0-9]{1,2})(?:\xBA|\xAA|\xB0)?(?:\\s*(?:desde|de|\\-|\\\u2013|ao?|\\s)\\s*([0-9]{1,2})(?:\xBA|\xAA|\xB0)?)?\\s*(?:de)?\\s*(?:-|/|\\s*(?:de|,)?\\s*)(${oe(ZH)})(?:\\s*(?:de|,)?\\s*(${Cke}))?(?=\\W|$)`,"i"),Rke=1,Fke=2,Vnt=3,Oke=4,FC=class extends q{innerPattern(){return Hnt}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=ZH[t[Vnt].toLowerCase()],i=parseInt(t[Rke]);if(i>31)return t.index=t.index+t[Rke].length,null;if(n.start.assign("month",a),n.start.assign("day",i),t[Oke]){let s=Eke(t[Oke]);n.start.assign("year",s)}else{let s=fr(e.refDate,i,a);n.start.imply("year",s)}if(t[Fke]){let s=parseInt(t[Fke]);n.end=n.start.clone(),n.end.assign("day",s)}return n}}});var OC,zke=y(()=>{xe();Zs();OC=class extends q{innerPattern(e){return/(ahora|hoy|mañana|ayer)(?=\W|$)/i}innerExtract(e,t){let n=t[0].toLowerCase(),a=e.createParsingComponents();switch(n){case"ahora":return di(e.reference);case"hoy":return Pa(e.reference);case"ma\xF1ana":return pi(e.reference);case"ayer":return ui(e.reference)}return a}}});var jke,LC,$ke=y(()=>{Ht();xe();Gs();jke=st(tr(),1),LC=class extends q{innerPattern(){return/(?:esta\s*)?(mañana|tarde|medianoche|mediodia|mediodía|noche)(?=\W|$)/i}innerExtract(e,t){let n=(0,jke.default)(e.refDate),a=e.createParsingComponents();switch(t[1].toLowerCase()){case"tarde":a.imply("meridiem",H.PM),a.imply("hour",15);break;case"noche":a.imply("meridiem",H.PM),a.imply("hour",22);break;case"ma\xF1ana":a.imply("meridiem",H.AM),a.imply("hour",6);break;case"medianoche":Ll(a,n),a.imply("hour",0),a.imply("minute",0),a.imply("second",0);break;case"mediodia":case"mediod\xEDa":a.imply("meridiem",H.AM),a.imply("hour",12);break}return a}}});var zC,Bke=y(()=>{AC();pt();xe();zC=class extends q{innerPattern(){return new RegExp(`(?:en|por|durante|de|dentro de)\\s*(${Pke})(?=\\W|$)`,"i")}innerExtract(e,t){let n=Mke(t[1]);return te.createRelativeFromReference(e.reference,n)}}});var XH={};at(XH,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>QH,createCasualConfiguration:()=>Uke,createConfiguration:()=>JH,parse:()=>Wnt,parseDate:()=>Ynt,strict:()=>qnt});function Wnt(r,e,t){return QH.parse(r,e,t)}function Ynt(r,e,t){return QH.parseDate(r,e,t)}function Uke(r=!0){let e=JH(!1,r);return e.parsers.push(new OC),e.parsers.push(new LC),e}function JH(r=!0,e=!0){return mn({parsers:[new ua(e),new _C,new IC,new FC,new zC],refiners:[new NC,new RC]},r)}var QH,qnt,Hke=y(()=>{Ks();ds();pt();Ht();Nu();Ake();_ke();Ike();Nke();Lke();zke();$ke();Bke();QH=new Be(Uke()),qnt=new Be(JH(!0))});function Knt(r){let e=r.toLowerCase();return tV[e]!==void 0?tV[e]:e.match(/декілька/)?2:e.match(/пів/)?.5:e.match(/пар/)?2:e===""?1:parseFloat(e)}function sV(r){let e=r.toLowerCase();return rV[e]!==void 0?rV[e]:parseInt(e)}function EI(r){if(/(рік|року|р|р.)/i.test(r)&&(r=r.replace(/(рік|року|р|р.)/i,"")),/(до н.е.|до н. е.)/i.test(r))return r=r.replace(/(до н.е.|до н. е.)/i,""),-parseInt(r);if(/(н. е.|н.е.)/i.test(r))return r=r.replace(/(н. е.|н.е.)/i,""),parseInt(r);let e=parseInt(r);return ls(e)}function vk(r){let e={},t=r,n=Vke.exec(t);for(;n;)Znt(e,n),t=t.substring(n[0].length).trim(),n=Vke.exec(t);return e}function Znt(r,e){let t=Knt(e[1]),n=jC[e[2].toLowerCase()];r[n]=t}var Uo,nV,aV,gk,tV,rV,jC,Gnt,iV,eV,CI,qke,Vke,yk,to=y(()=>{Ot();Rn();Uo={leftBoundary:"([^\\p{L}\\p{N}_]|^)",rightBoundary:"(?=[^\\p{L}\\p{N}_]|$)",flags:"iu"},nV={\u043D\u0435\u0434\u0456\u043B\u044F:0,\u043D\u0435\u0434\u0456\u043B\u0456:0,\u043D\u0435\u0434\u0456\u043B\u044E:0,\u043D\u0434:0,"\u043D\u0434.":0,\u043F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A:1,\u043F\u043E\u043D\u0435\u0434\u0456\u043B\u043A\u0430:1,\u043F\u043D:1,"\u043F\u043D.":1,\u0432\u0456\u0432\u0442\u043E\u0440\u043E\u043A:2,\u0432\u0456\u0432\u0442\u043E\u0440\u043A\u0430:2,\u0432\u0442:2,"\u0432\u0442.":2,\u0441\u0435\u0440\u0435\u0434\u0430:3,\u0441\u0435\u0440\u0435\u0434\u0438:3,\u0441\u0435\u0440\u0435\u0434\u0443:3,\u0441\u0440:3,"\u0441\u0440.":3,\u0447\u0435\u0442\u0432\u0435\u0440:4,\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430:4,\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0443:4,\u0447\u0442:4,"\u0447\u0442.":4,"\u043F'\u044F\u0442\u043D\u0438\u0446\u044F":5,"\u043F'\u044F\u0442\u043D\u0438\u0446\u0456":5,"\u043F'\u044F\u0442\u043D\u0438\u0446\u044E":5,\u043F\u0442:5,"\u043F\u0442.":5,\u0441\u0443\u0431\u043E\u0442\u0430:6,\u0441\u0443\u0431\u043E\u0442\u0438:6,\u0441\u0443\u0431\u043E\u0442\u0443:6,\u0441\u0431:6,"\u0441\u0431.":6},aV={\u0441\u0456\u0447\u0435\u043D\u044C:1,\u0441\u0456\u0447\u043D\u044F:1,\u0441\u0456\u0447\u043D\u0456:1,\u043B\u044E\u0442\u0438\u0439:2,\u043B\u044E\u0442\u043E\u0433\u043E:2,\u043B\u044E\u0442\u043E\u043C\u0443:2,\u0431\u0435\u0440\u0435\u0437\u0435\u043D\u044C:3,\u0431\u0435\u0440\u0435\u0437\u043D\u044F:3,\u0431\u0435\u0440\u0435\u0437\u043D\u0456:3,\u043A\u0432\u0456\u0442\u0435\u043D\u044C:4,\u043A\u0432\u0456\u0442\u043D\u044F:4,\u043A\u0432\u0456\u0442\u043D\u0456:4,\u0442\u0440\u0430\u0432\u0435\u043D\u044C:5,\u0442\u0440\u0430\u0432\u043D\u044F:5,\u0442\u0440\u0430\u0432\u043D\u0456:5,\u0447\u0435\u0440\u0432\u0435\u043D\u044C:6,\u0447\u0435\u0440\u0432\u043D\u044F:6,\u0447\u0435\u0440\u0432\u043D\u0456:6,\u043B\u0438\u043F\u0435\u043D\u044C:7,\u043B\u0438\u043F\u043D\u044F:7,\u043B\u0438\u043F\u043D\u0456:7,\u0441\u0435\u0440\u043F\u0435\u043D\u044C:8,\u0441\u0435\u0440\u043F\u043D\u044F:8,\u0441\u0435\u0440\u043F\u043D\u0456:8,\u0432\u0435\u0440\u0435\u0441\u0435\u043D\u044C:9,\u0432\u0435\u0440\u0435\u0441\u043D\u044F:9,\u0432\u0435\u0440\u0435\u0441\u043D\u0456:9,\u0436\u043E\u0432\u0442\u0435\u043D\u044C:10,\u0436\u043E\u0432\u0442\u043D\u044F:10,\u0436\u043E\u0432\u0442\u043D\u0456:10,\u043B\u0438\u0441\u0442\u043E\u043F\u0430\u0434:11,\u043B\u0438\u0441\u0442\u043E\u043F\u0430\u0434\u0430:11,\u043B\u0438\u0441\u0442\u043E\u043F\u0430\u0434\u0443:11,\u0433\u0440\u0443\u0434\u0435\u043D\u044C:12,\u0433\u0440\u0443\u0434\u043D\u044F:12,\u0433\u0440\u0443\u0434\u043D\u0456:12},gk={...aV,\u0441\u0456\u0447:1,"\u0441\u0456\u0447.":1,\u043B\u044E\u0442:2,"\u043B\u044E\u0442.":2,\u0431\u0435\u0440:3,"\u0431\u0435\u0440.":3,\u043A\u0432\u0456\u0442:4,"\u043A\u0432\u0456\u0442.":4,\u0442\u0440\u0430\u0432:5,"\u0442\u0440\u0430\u0432.":5,\u0447\u0435\u0440\u0432:6,"\u0447\u0435\u0440\u0432.":6,\u043B\u0438\u043F:7,"\u043B\u0438\u043F.":7,\u0441\u0435\u0440\u043F:8,"\u0441\u0435\u0440\u043F.":8,\u0441\u0435\u0440:8,"c\u0435\u0440.":8,\u0432\u0435\u0440:9,"\u0432\u0435\u0440.":9,\u0432\u0435\u0440\u0435\u0441:9,"\u0432\u0435\u0440\u0435\u0441.":9,\u0436\u043E\u0432\u0442:10,"\u0436\u043E\u0432\u0442.":10,\u043B\u0438\u0441\u0442\u043E\u043F:11,"\u043B\u0438\u0441\u0442\u043E\u043F.":11,\u0433\u0440\u0443\u0434:12,"\u0433\u0440\u0443\u0434.":12},tV={\u043E\u0434\u0438\u043D:1,\u043E\u0434\u043D\u0430:1,\u043E\u0434\u043D\u043E\u0457:1,\u043E\u0434\u043D\u0443:1,\u0434\u0432\u0456:2,\u0434\u0432\u0430:2,\u0434\u0432\u043E\u0445:2,\u0442\u0440\u0438:3,\u0442\u0440\u044C\u043E\u0445:3,\u0447\u043E\u0442\u0438\u0440\u0438:4,\u0447\u043E\u0442\u0438\u0440\u044C\u043E\u0445:4,"\u043F'\u044F\u0442\u044C":5,"\u043F'\u044F\u0442\u0438":5,\u0448\u0456\u0441\u0442\u044C:6,\u0448\u0435\u0441\u0442\u0438:6,\u0441\u0456\u043C:7,\u0441\u0435\u043C\u0438:7,\u0432\u0456\u0441\u0456\u043C:8,\u0432\u043E\u0441\u044C\u043C\u0438:8,"\u0434\u0435\u0432'\u044F\u0442\u044C":9,"\u0434\u0435\u0432'\u044F\u0442\u0438":9,\u0434\u0435\u0441\u044F\u0442\u044C:10,\u0434\u0435\u0441\u044F\u0442\u0438:10,\u043E\u0434\u0438\u043D\u0430\u0434\u0446\u044F\u0442\u044C:11,\u043E\u0434\u0438\u043D\u0430\u0434\u0446\u044F\u0442\u0438:11,\u0434\u0432\u0430\u043D\u0430\u0434\u0446\u044F\u0442\u044C:12,\u0434\u0432\u0430\u043D\u0430\u0434\u0446\u044F\u0442\u0438:12},rV={\u043F\u0435\u0440\u0448\u0435:1,\u043F\u0435\u0440\u0448\u043E\u0433\u043E:1,\u0434\u0440\u0443\u0433\u0435:2,\u0434\u0440\u0443\u0433\u043E\u0433\u043E:2,\u0442\u0440\u0435\u0442\u0454:3,\u0442\u0440\u0435\u0442\u044C\u043E\u0433\u043E:3,\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0435:4,\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0433\u043E:4,"\u043F'\u044F\u0442\u0435":5,"\u043F'\u044F\u0442\u043E\u0433\u043E":5,\u0448\u043E\u0441\u0442\u0435:6,\u0448\u043E\u0441\u0442\u043E\u0433\u043E:6,\u0441\u044C\u043E\u043C\u0435:7,\u0441\u044C\u043E\u043C\u043E\u0433\u043E:7,\u0432\u043E\u0441\u044C\u043C\u0435:8,\u0432\u043E\u0441\u044C\u043C\u043E\u0433\u043E:8,"\u0434\u0435\u0432'\u044F\u0442\u0435":9,"\u0434\u0435\u0432'\u044F\u0442\u043E\u0433\u043E":9,\u0434\u0435\u0441\u044F\u0442\u0435:10,\u0434\u0435\u0441\u044F\u0442\u043E\u0433\u043E:10,\u043E\u0434\u0438\u043D\u0430\u0434\u0446\u044F\u0442\u0435:11,\u043E\u0434\u0438\u043D\u0430\u0434\u0446\u044F\u0442\u043E\u0433\u043E:11,\u0434\u0432\u0430\u043D\u0430\u0434\u0446\u044F\u0442\u0435:12,\u0434\u0432\u0430\u043D\u0430\u0434\u0446\u044F\u0442\u043E\u0433\u043E:12,\u0442\u0440\u0438\u043D\u0430\u0434\u0446\u044F\u0442\u0435:13,\u0442\u0440\u0438\u043D\u0430\u0434\u0446\u044F\u0442\u043E\u0433\u043E:13,\u0447\u043E\u0442\u0438\u0440\u043D\u0430\u0434\u0446\u044F\u0442\u0435:14,\u0447\u043E\u0442\u0438\u043D\u0440\u043D\u0430\u0434\u0446\u044F\u0442\u043E\u0433\u043E:14,"\u043F'\u044F\u0442\u043D\u0430\u0434\u0446\u044F\u0442\u0435":15,"\u043F'\u044F\u0442\u043D\u0430\u0434\u0446\u044F\u0442\u043E\u0433\u043E":15,\u0448\u0456\u0441\u0442\u043D\u0430\u0434\u0446\u044F\u0442\u0435:16,\u0448\u0456\u0441\u0442\u043D\u0430\u0434\u0446\u044F\u0442\u043E\u0433\u043E:16,\u0441\u0456\u043C\u043D\u0430\u0434\u0446\u044F\u0442\u0435:17,\u0441\u0456\u043C\u043D\u0430\u0434\u0446\u044F\u0442\u043E\u0433\u043E:17,\u0432\u0456\u0441\u0456\u043C\u043D\u0430\u0434\u0446\u044F\u0442\u0435:18,\u0432\u0456\u0441\u0456\u043C\u043D\u0430\u0434\u0446\u044F\u0442\u043E\u0433\u043E:18,"\u0434\u0435\u0432'\u044F\u0442\u043D\u0430\u0434\u0446\u044F\u0442\u0435":19,"\u0434\u0435\u0432'\u044F\u0442\u043D\u0430\u0434\u0446\u044F\u0442\u043E\u0433\u043E":19,\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u0435:20,\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u043E\u0433\u043E:20,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u043F\u0435\u0440\u0448\u0435":21,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u043F\u0435\u0440\u0448\u043E\u0433\u043E":21,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0434\u0440\u0443\u0433\u0435":22,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0434\u0440\u0443\u0433\u043E\u0433\u043E":22,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0442\u0440\u0435\u0442\u0454":23,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0442\u0440\u0435\u0442\u044C\u043E\u0433\u043E":23,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0435":24,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0433\u043E":24,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u043F'\u044F\u0442\u0435":25,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u043F'\u044F\u0442\u043E\u0433\u043E":25,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0448\u043E\u0441\u0442\u0435":26,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0448\u043E\u0441\u0442\u043E\u0433\u043E":26,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0441\u044C\u043E\u043C\u0435":27,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0441\u044C\u043E\u043C\u043E\u0433\u043E":27,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0432\u043E\u0441\u044C\u043C\u0435":28,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0432\u043E\u0441\u044C\u043C\u043E\u0433\u043E":28,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0434\u0435\u0432'\u044F\u0442\u0435":29,"\u0434\u0432\u0430\u0434\u0446\u044F\u0442\u044C \u0434\u0435\u0432'\u044F\u0442\u043E\u0433\u043E":29,\u0442\u0440\u0438\u0434\u0446\u044F\u0442\u0435:30,\u0442\u0440\u0438\u0434\u0446\u044F\u0442\u043E\u0433\u043E:30,"\u0442\u0440\u0438\u0434\u0446\u044F\u0442\u044C \u043F\u0435\u0440\u0448\u0435":31,"\u0442\u0440\u0438\u0434\u0446\u044F\u0442\u044C \u043F\u0435\u0440\u0448\u043E\u0433\u043E":31},jC={\u0441\u0435\u043A:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u0430:"second",\u0441\u0435\u043A\u0443\u043D\u0434:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u0438:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u0443:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043E\u043A:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0438:"second",\u0441\u0435\u043A\u0443\u043D\u0434\u043E\u0447\u043A\u0443:"second",\u0445\u0432:"minute",\u0445\u0432\u0438\u043B\u0438\u043D\u0430:"minute",\u0445\u0432\u0438\u043B\u0438\u043D:"minute",\u0445\u0432\u0438\u043B\u0438\u043D\u0438:"minute",\u0445\u0432\u0438\u043B\u0438\u043D\u0443:"minute",\u0445\u0432\u0438\u043B\u0438\u043D\u043E\u043A:"minute",\u0445\u0432\u0438\u043B\u0438\u043D\u043A\u0438:"minute",\u0445\u0432\u0438\u043B\u0438\u043D\u043A\u0443:"minute",\u0445\u0432\u0438\u043B\u0438\u043D\u043E\u0447\u043E\u043A:"minute",\u0445\u0432\u0438\u043B\u0438\u043D\u043E\u0447\u043A\u0438:"minute",\u0445\u0432\u0438\u043B\u0438\u043D\u043E\u0447\u043A\u0443:"minute",\u0433\u043E\u0434:"hour",\u0433\u043E\u0434\u0438\u043D\u0430:"hour",\u0433\u043E\u0434\u0438\u043D:"hour",\u0433\u043E\u0434\u0438\u043D\u0438:"hour",\u0433\u043E\u0434\u0438\u043D\u0443:"hour",\u0433\u043E\u0434\u0438\u043D\u043A\u0430:"hour",\u0433\u043E\u0434\u0438\u043D\u043E\u043A:"hour",\u0433\u043E\u0434\u0438\u043D\u043A\u0438:"hour",\u0433\u043E\u0434\u0438\u043D\u043A\u0443:"hour",\u0434\u0435\u043D\u044C:"d",\u0434\u043D\u044F:"d",\u0434\u043D\u0456\u0432:"d",\u0434\u043D\u0456:"d",\u0434\u043E\u0431\u0430:"d",\u0434\u043E\u0431\u0443:"d",\u0442\u0438\u0436\u0434\u0435\u043D\u044C:"week",\u0442\u0438\u0436\u043D\u044E:"week",\u0442\u0438\u0436\u043D\u044F:"week",\u0442\u0438\u0436\u043D\u0456:"week",\u0442\u0438\u0436\u043D\u0456\u0432:"week",\u043C\u0456\u0441\u044F\u0446\u044C:"month",\u043C\u0456\u0441\u044F\u0446\u0456\u0432:"month",\u043C\u0456\u0441\u044F\u0446\u0456:"month",\u043C\u0456\u0441\u044F\u0446\u044F:"month",\u043A\u0432\u0430\u0440\u0442\u0430\u043B:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0443:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0456\u0432:"quarter",\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0456:"quarter",\u0440\u0456\u043A:"year",\u0440\u043E\u043A\u0443:"year",\u0440\u043E\u0446\u0456:"year",\u0440\u043E\u043A\u0456\u0432:"year",\u0440\u043E\u043A\u0438:"year"},Gnt=`(?:${oe(tV)}|[0-9]+|[0-9]+\\.[0-9]+|\u043F\u0456\u0432|\u0434\u0435\u043A\u0456\u043B\u044C\u043A\u0430|\u043F\u0430\u0440(?:\u0443)|\\s{0,3})`;iV=`(?:${oe(rV)}|[0-9]{1,2}(?:\u0433\u043E|\u043E\u0433\u043E|\u0435)?)`;eV="(?:\\s+(?:\u0440\u043E\u043A\u0443|\u0440\u0456\u043A|\u0440|\u0440.))?",CI=`(?:[1-9][0-9]{0,3}${eV}\\s*(?:\u043D.\u0435.|\u0434\u043E \u043D.\u0435.|\u043D. \u0435.|\u0434\u043E \u043D. \u0435.)|[1-2][0-9]{3}${eV}|[5-9][0-9]${eV})`;qke=`(${Gnt})\\s{0,3}(${oe(jC)})`,Vke=new RegExp(qke,"i"),yk=zi("(?:(?:\u0431\u043B\u0438\u0437\u044C\u043A\u043E|\u043F\u0440\u0438\u0431\u043B\u0438\u0437\u043D\u043E)\\s{0,3})?",qke)});var Wke,$C,Yke=y(()=>{to();pt();xe();Wke=`(?:(?:\u043F\u0440\u0438\u0431\u043B\u0438\u0437\u043D\u043E|\u043E\u0440\u0456\u0454\u043D\u0442\u043E\u0432\u043D\u043E)\\s*(?:~\\s*)?)?(${yk})${Uo.rightBoundary}`,$C=class extends q{patternLeftBoundary(){return Uo.leftBoundary}innerPattern(e){return e.option.forwardDate?new RegExp(Wke,"i"):new RegExp(`(?:\u043F\u0440\u043E\u0442\u044F\u0433\u043E\u043C|\u043D\u0430 \u043F\u0440\u043E\u0442\u044F\u0437\u0456|\u043F\u0440\u043E\u0442\u044F\u0433\u043E\u043C|\u0443\u043F\u0440\u043E\u0434\u043E\u0432\u0436|\u0432\u043F\u0440\u043E\u0434\u043E\u0432\u0436)\\s*${Wke}`,Uo.flags)}innerExtract(e,t){let n=vk(t[1]);return te.createRelativeFromReference(e.reference,n)}}});var rg,ps,Ou=y(()=>{xe();to();rg=class extends q{patternLeftBoundary(){return Uo.leftBoundary}innerPattern(e){return new RegExp(this.innerPatternString(e),Uo.flags)}innerPatternHasChange(e,t){return!1}},ps=class extends rg{innerPattern(e){return new RegExp(`${this.innerPatternString(e)}${Uo.rightBoundary}`,Uo.flags)}}});var Gke,Kke,Qnt,Zke,BC,Qke=y(()=>{Rn();to();to();to();Ot();Ou();Gke=1,Kke=2,Qnt=3,Zke=4,BC=class extends ps{innerPatternString(e){return`(?:\u0437|\u0456\u0437)?\\s*(${iV})(?:\\s{0,3}(?:\u043F\u043E|-|\u2013|\u0434\u043E)?\\s{0,3}(${iV}))?(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})(${oe(gk)})(?:(?:-|\\/|,?\\s{0,3})(${CI}(?![^\\s]\\d)))?`}innerExtract(e,t){let n=e.createParsingResult(t.index,t[0]),a=gk[t[Qnt].toLowerCase()],i=sV(t[Gke]);if(i>31)return t.index=t.index+t[Gke].length,null;if(n.start.assign("month",a),n.start.assign("day",i),t[Zke]){let s=EI(t[Zke]);n.start.assign("year",s)}else{let s=fr(e.reference.instant,i,a);n.start.imply("year",s)}if(t[Kke]){let s=sV(t[Kke]);n.end=n.start.clone(),n.end.assign("day",s)}return n}}});var Jnt,Jke,UC,Xke=y(()=>{to();Rn();Ot();to();Ou();Jnt=2,Jke=3,UC=class extends rg{innerPatternString(e){return`((?:\u0432|\u0443)\\s*)?(${oe(gk)})\\s*(?:[,-]?\\s*(${CI})?)?(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`}innerExtract(e,t){let n=t[Jnt].toLowerCase();if(t[0].length<=3&&!aV[n])return null;let a=e.createParsingResult(t.index,t.index+t[0].length);a.start.imply("day",1);let i=gk[n];if(a.start.assign("month",i),t[Jke]){let s=EI(t[Jke]);a.start.assign("year",s)}else{let s=fr(e.reference.instant,1,i);a.start.imply("year",s)}return a}}});var HC,ebe=y(()=>{Ht();Au();to();HC=class extends Da{constructor(e){super(e)}patternFlags(){return Uo.flags}primaryPatternLeftBoundary(){return"(^|\\s|T|(?:[^\\p{L}\\p{N}_]))"}followingPhase(){return"\\s*(?:\\-|\\\u2013|\\~|\\\u301C|\u0434\u043E|\u0456|\u043F\u043E|\\?)\\s*"}primaryPrefix(){return"(?:(?:\u0432|\u0443|\u043E|\u043E\u0431|\u0437|\u0456\u0437|\u0432\u0456\u0434)\\s*)??"}primarySuffix(){return`(?:\\s*(?:\u0440\u0430\u043D\u043A\u0443|\u0432\u0435\u0447\u043E\u0440\u0430|\u043F\u043E \u043E\u0431\u0456\u0434\u0456|\u043F\u0456\u0441\u043B\u044F \u043E\u0431\u0456\u0434\u0443))?(?!\\/)${Uo.rightBoundary}`}extractPrimaryTimeComponents(e,t){let n=super.extractPrimaryTimeComponents(e,t);if(n){if(t[0].endsWith("\u0432\u0435\u0447\u043E\u0440\u0430")){let a=n.get("hour");a>=6&&a<12?(n.assign("hour",n.get("hour")+12),n.assign("meridiem",H.PM)):a<6&&n.assign("meridiem",H.AM)}if(t[0].endsWith("\u043F\u043E \u043E\u0431\u0456\u0434\u0456")||t[0].endsWith("\u043F\u0456\u0441\u043B\u044F \u043E\u0431\u0456\u0434\u0443")){n.assign("meridiem",H.PM);let a=n.get("hour");a>=0&&a<=6&&n.assign("hour",n.get("hour")+12)}t[0].endsWith("\u0440\u0430\u043D\u043A\u0443")&&(n.assign("meridiem",H.AM),n.get("hour")<12&&n.assign("hour",n.get("hour")))}return n}}});var VC,tbe=y(()=>{to();pt();Qs();Ou();VC=class extends rg{innerPatternString(e){return`(${yk})\\s{0,5}\u0442\u043E\u043C\u0443(?=(?:\\W|$))`}innerExtract(e,t){let n=vk(t[1]),a=ea(n);return te.createRelativeFromReference(e.reference,a)}}});var qC,rbe=y(()=>{Fo();qC=class extends an{patternBetween(){return/^\s*(і до|і по|до|по|-)\s*$/i}}});var WC,nbe=y(()=>{Oo();WC=class extends sn{patternBetween(){return new RegExp("^\\s*(T|\u0432|\u0443|\u043E|,|-)?\\s*$")}}});var YC,abe=y(()=>{Zs();Ou();YC=class extends ps{innerPatternString(e){return"(?:\u0437|\u0456\u0437|\u0432\u0456\u0434)?\\s*(\u0441\u044C\u043E\u0433\u043E\u0434\u043D\u0456|\u0432\u0447\u043E\u0440\u0430|\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u0456\u0441\u043B\u044F\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u0456\u0441\u043B\u044F\u043F\u0456\u0441\u043B\u044F\u0437\u0430\u0432\u0442\u0440\u0430|\u043F\u043E\u0437\u0430\u043F\u043E\u0437\u0430\u0432\u0447\u043E\u0440\u0430|\u043F\u043E\u0437\u0430\u0432\u0447\u043E\u0440\u0430)"}innerExtract(e,t){let n=t[1].toLowerCase(),a=e.createParsingComponents();switch(n){case"\u0441\u044C\u043E\u0433\u043E\u0434\u043D\u0456":return Pa(e.reference);case"\u0432\u0447\u043E\u0440\u0430":return ui(e.reference);case"\u0437\u0430\u0432\u0442\u0440\u0430":return pi(e.reference);case"\u043F\u0456\u0441\u043B\u044F\u0437\u0430\u0432\u0442\u0440\u0430":return Rc(e.reference,2);case"\u043F\u0456\u0441\u043B\u044F\u043F\u0456\u0441\u043B\u044F\u0437\u0430\u0432\u0442\u0440\u0430":return Rc(e.reference,3);case"\u043F\u043E\u0437\u0430\u0432\u0447\u043E\u0440\u0430":return Lh(e.reference,2);case"\u043F\u043E\u0437\u0430\u043F\u043E\u0437\u0430\u0432\u0447\u043E\u0440\u0430":return Lh(e.reference,3)}return a}}});var ibe,GC,sbe=y(()=>{Zs();Gs();ibe=st(tr(),1);Ou();GC=class extends ps{innerPatternString(e){return"(\u0437\u0430\u0440\u0430\u0437|\u043C\u0438\u043D\u0443\u043B\u043E\u0433\u043E\\s*\u0432\u0435\u0447\u043E\u0440\u0430|\u043C\u0438\u043D\u0443\u043B\u043E\u0457\\s*\u043D\u043E\u0447\u0456|\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0457\\s*\u043D\u043E\u0447\u0456|\u0441\u044C\u043E\u0433\u043E\u0434\u043D\u0456\\s*\u0432\u043D\u043E\u0447\u0456|\u0446\u0456\u0454\u0457\\s*\u043D\u043E\u0447\u0456|\u0446\u044C\u043E\u0433\u043E \u0440\u0430\u043D\u043A\u0443|\u0432\u0440\u0430\u043D\u0446\u0456|\u0440\u0430\u043D\u043A\u0443|\u0437\u0440\u0430\u043D\u043A\u0443|\u043E\u043F\u0456\u0432\u0434\u043D\u0456|\u0432\u0432\u0435\u0447\u0435\u0440\u0456|\u0432\u0435\u0447\u043E\u0440\u0430|\u043E\u043F\u0456\u0432\u043D\u043E\u0447\u0456|\u0432\u043D\u043E\u0447\u0456)"}innerExtract(e,t){let n=(0,ibe.default)(e.reference.instant),a=t[0].toLowerCase(),i=e.createParsingComponents();if(a==="\u0437\u0430\u0440\u0430\u0437")return di(e.reference);if(a==="\u0432\u0432\u0435\u0447\u0435\u0440\u0456"||a==="\u0432\u0435\u0447\u043E\u0440\u0430")return Xv(e.reference);if(a.endsWith("\u0432\u0440\u0430\u043D\u0446\u0456")||a.endsWith("\u0440\u0430\u043D\u043A\u0443")||a.endsWith("\u0437\u0440\u0430\u043D\u043A\u0443"))return ek(e.reference);if(a.endsWith("\u043E\u043F\u0456\u0432\u0434\u043D\u0456"))return tk(e.reference);if(a.match(/минулої\s*ночі/))return G_(e.reference);if(a.match(/минулого\s*вечора/))return K_(e.reference);if(a.match(/наступної\s*ночі/)){let s=n.hour()<22?1:2;n=n.add(s,"day"),Kr(i,n),i.imply("hour",1)}return a.match(/цієї\s*ночі/)?zh(e.reference):a.endsWith("\u043E\u043F\u0456\u0432\u043D\u043E\u0447\u0456")||a.endsWith("\u0432\u043D\u043E\u0447\u0456")?zh(e.reference):i}}});var Xnt,eat,tat,KC,obe=y(()=>{to();Ot();jl();Ou();Xnt=1,eat=2,tat=3,KC=class extends ps{innerPatternString(e){return`(?:(?:,|\\(|\uFF08)\\s*)?(?:\u0432\\s*?)?(?:\u0443\\s*?)?(?:(\u0446\u0435\u0439|\u043C\u0438\u043D\u0443\u043B\u043E\u0433\u043E|\u043C\u0438\u043D\u0443\u043B\u0438\u0439|\u043F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u0456\u0439|\u043F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u044C\u043E\u0433\u043E|\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E|\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0438\u0439|\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u043C\u0443)\\s*)?(${oe(nV)})(?:\\s*(?:,|\\)|\uFF09))?(?:\\s*(\u043D\u0430|\u0443|\u0432)\\s*(\u0446\u044C\u043E\u043C\u0443|\u043C\u0438\u043D\u0443\u043B\u043E\u043C\u0443|\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u043C\u0443)\\s*\u0442\u0438\u0436\u043D\u0456)?`}innerExtract(e,t){let n=t[eat].toLocaleLowerCase(),a=nV[n],i=t[Xnt],s=t[tat],o=i||s;o=o||"",o=o.toLocaleLowerCase();let l=null;return o=="\u043C\u0438\u043D\u0443\u043B\u043E\u0433\u043E"||o=="\u043C\u0438\u043D\u0443\u043B\u0438\u0439"||o=="\u043F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u0456\u0439"||o=="\u043F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u044C\u043E\u0433\u043E"?l="last":o=="\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E"||o=="\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0438\u0439"?l="next":(o=="\u0446\u0435\u0439"||o=="\u0446\u044C\u043E\u0433\u043E"||o=="\u0446\u044C\u043E\u043C\u0443")&&(l="this"),ta(e.reference,a,l)}}});var lbe,rat,nat,ZC,cbe=y(()=>{to();pt();lbe=st(tr(),1);Ot();Ou();rat=1,nat=2,ZC=class extends ps{innerPatternString(e){return`(\u0432 \u043C\u0438\u043D\u0443\u043B\u043E\u043C\u0443|\u0443 \u043C\u0438\u043D\u0443\u043B\u043E\u043C\u0443|\u043D\u0430 \u043C\u0438\u043D\u0443\u043B\u043E\u043C\u0443|\u043C\u0438\u043D\u0443\u043B\u043E\u0433\u043E|\u043D\u0430 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u043C\u0443|\u0432 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u043C\u0443|\u0443 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u043C\u0443|\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E|\u043D\u0430 \u0446\u044C\u043E\u043C\u0443|\u0432 \u0446\u044C\u043E\u043C\u0443|\u0443 \u0446\u044C\u043E\u043C\u0443|\u0446\u044C\u043E\u0433\u043E)\\s*(${oe(jC)})(?=\\s*)`}innerExtract(e,t){let n=t[rat].toLowerCase(),a=t[nat].toLowerCase(),i=jC[a];if(n=="\u043D\u0430 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u043C\u0443"||n=="\u0432 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u043C\u0443"||n=="\u0443 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u043C\u0443"||n=="\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E"){let l={};return l[i]=1,te.createRelativeFromReference(e.reference,l)}if(n=="\u043D\u0430 \u043C\u0438\u043D\u0443\u043B\u043E\u043C\u0443"||n=="\u0432 \u043C\u0438\u043D\u0443\u043B\u043E\u043C\u0443"||n=="\u0443 \u043C\u0438\u043D\u0443\u043B\u043E\u043C\u0443"||n=="\u043C\u0438\u043D\u0443\u043B\u043E\u0433\u043E"){let l={};return l[i]=-1,te.createRelativeFromReference(e.reference,l)}let s=e.createParsingComponents(),o=(0,lbe.default)(e.reference.instant);return i.match(/week/i)?(o=o.add(-o.get("d"),"d"),s.imply("day",o.date()),s.imply("month",o.month()+1),s.imply("year",o.year())):i.match(/month/i)?(o=o.add(-o.date()+1,"d"),s.imply("day",o.date()),s.assign("year",o.year()),s.assign("month",o.month()+1)):i.match(/year/i)&&(o=o.add(-o.date()+1,"d"),o=o.add(-o.month(),"month"),s.imply("day",o.date()),s.imply("month",o.month()+1),s.assign("year",o.year())),s}}});var QC,dbe=y(()=>{to();pt();Qs();Ou();QC=class extends ps{innerPatternString(e){return`(\u0446\u0456|\u043E\u0441\u0442\u0430\u043D\u043D\u0456|\u043C\u0438\u043D\u0443\u043B\u0456|\u043C\u0430\u0439\u0431\u0443\u0442\u043D\u0456|\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0456|\u043F\u0456\u0441\u043B\u044F|\u0447\u0435\u0440\u0435\u0437|\\+|-)\\s*(${yk})`}innerExtract(e,t){let n=t[1].toLowerCase(),a=vk(t[3]);switch(n){case"\u043E\u0441\u0442\u0430\u043D\u043D\u0456":case"\u043C\u0438\u043D\u0443\u043B\u0456":case"-":a=ea(a);break}return te.createRelativeFromReference(e.reference,a)}}});var cV={};at(cV,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>oV,createCasualConfiguration:()=>ube,createConfiguration:()=>lV,parse:()=>iat,parseDate:()=>sat,strict:()=>aat});function ube(){let r=lV(!1);return r.parsers.unshift(new YC),r.parsers.unshift(new GC),r.parsers.unshift(new UC),r.parsers.unshift(new ZC),r.parsers.unshift(new QC),r}function lV(r){return mn({parsers:[new Iu,new ua(!0),new $C,new BC,new KC,new HC(r),new VC],refiners:[new WC,new qC]},r)}function iat(r,e,t){return oV.parse(r,e,t)}function sat(r,e,t){return oV.parseDate(r,e,t)}var oV,aat,pbe=y(()=>{Yke();Qke();Xke();ebe();tbe();rbe();nbe();Ks();abe();sbe();obe();cbe();ds();pt();Ht();Nu();dbe();Y_();oV=new Be(ube()),aat=new Be(lV(!0))});var DI={};at(DI,{Chrono:()=>Be,Meridiem:()=>H,ParsingComponents:()=>te,ParsingContext:()=>px,ParsingResult:()=>Yt,ReferenceWithTimezone:()=>rr,Weekday:()=>Ye,casual:()=>dV,de:()=>OU,en:()=>DU,es:()=>XH,fr:()=>WU,ja:()=>ZU,nl:()=>cH,parse:()=>lat,parseDate:()=>cat,pt:()=>tH,ru:()=>YH,strict:()=>oat,uk:()=>cV,zh:()=>LH});function lat(r,e,t){return dV.parse(r,e,t)}function cat(r,e,t){return dV.parseDate(r,e,t)}var oat,dV,mbe=y(()=>{Cge();ds();pt();Ht();Zge();bye();Fye();Zye();xve();Xve();wke();Hke();pbe();oat=EU,dV=mx});var dat,PI,fbe=y(()=>{Wr();mbe();Ov();iU();sU();aU();dat=ke,PI=class{constructor(e=[],t=[],n=!0,a="en",i,s,o={}){this.isValidDateString=c=>/^\d{4}-\d{2}-\d{2}$/.test(c),this.isValidTimeString=c=>/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/.test(c),this.escapeRegex=c=>c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),this.cleanupWhitespace=c=>c.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").trim(),this.defaultToScheduled=n,this.languageConfig=ghe(a),this.options=o,this.statusConfigs=e,this.priorityConfigs=t;let l=i||Hfe;this.triggerConfig=new B_(l,s||[]),this.boundaries=this.createBoundaryConfig(),this.recurrencePatterns=this.buildRecurrencePatterns(),this.processingPipeline=this.buildProcessingPipeline()}createBoundaryConfig(){let e=["ru","zh","ja","uk","fr"].includes(this.languageConfig.code);return{boundary:e?"(?:^|\\s)":"\\b",endBoundary:e?"(?=\\s|$)":"\\b",isNonAscii:e}}getChronoParser(){let e=this.languageConfig.chronoLocale;return DI[e]||DI}buildProcessingPipeline(){return[{name:"extractTags",process:(e,t)=>this.extractTags(e,t)},{name:"extractContexts",process:(e,t)=>this.extractContexts(e,t)},{name:"extractProjects",process:(e,t)=>this.extractProjects(e,t)},{name:"extractPriority",process:(e,t)=>this.extractPriority(e,t)},{name:"extractStatus",process:(e,t)=>this.extractStatus(e,t)},{name:"extractRecurrence",process:(e,t)=>this.extractRecurrence(e,t)},{name:"extractTimeEstimate",process:(e,t)=>this.extractTimeEstimate(e,t)},{name:"extractUserFields",process:(e,t)=>this.extractUserFields(e,t)},{name:"parseUnifiedDatesAndTimes",process:(e,t)=>this.parseUnifiedDatesAndTimes(e,t)}]}parseInput(e){let t={title:"",tags:[],contexts:[],projects:[]},n=this.protectNlpLiterals(e),a=this.normalizeNumericDateLiterals(n.text),[i,s]=this.extractTitleAndDetails(a);s&&(t.details=s);let o=i;for(let c of this.processingPipeline)try{o=c.process(o,t)}catch(d){console.debug(`Error in processor ${c.name}:`,d)}t.title=o.trim();let l=this.validateAndCleanupResult(t);return this.restoreProtectedLiterals(l,n.literals),l}protectNlpLiterals(e){let t=this.protectQuotedLiterals(e);return this.protectEscapedLiterals(t.text,t.literals)}protectQuotedLiterals(e){let t=[],n="",a=0;for(;a<e.length;){let i=e[a];if(!this.isQuoteDelimiter(i)||!this.isEligibleQuoteStart(e,a)){n+=i,a+=1;continue}let s=this.findClosingQuote(e,a+1,i);if(s===-1||!this.isEligibleQuoteEnd(e,s)){n+=i,a+=1;continue}let o=e.slice(a+1,s);if(o.trim().length===0){n+=i,a+=1;continue}let l=`__TASKNOTES_NLP_LITERAL_${t.length}__`;t.push(o),n+=l,a=s+1}return{text:n,literals:t}}protectEscapedLiterals(e,t){let n="",a=0;for(;a<e.length;){if(e[a]!=="\\"){n+=e[a],a+=1;continue}let i=a+1;if(i>=e.length||!this.shouldProtectEscapedLiteral(e,a,i)){n+=e[a],a+=1;continue}let s=i;for(;s<e.length&&!/\s/u.test(e[s]);)s+=1;let o=e.slice(i,s),l=`__TASKNOTES_NLP_LITERAL_${t.length}__`;t.push(o),n+=l,a=s}return{text:n,literals:t}}restoreProtectedLiterals(e,t){if(t.length!==0&&(e.title=this.restoreProtectedLiteralsInText(e.title,t).replace(/\s+/g," ").trim(),e.details&&(e.details=this.restoreProtectedLiteralsInText(e.details,t)),e.userFields))for(let[n,a]of Object.entries(e.userFields))typeof a=="string"?e.userFields[n]=this.restoreProtectedLiteralsInText(a,t):e.userFields[n]=a.map(i=>this.restoreProtectedLiteralsInText(i,t))}restoreProtectedLiteralsInText(e,t){let n=e;return t.forEach((a,i)=>{n=n.replace(`__TASKNOTES_NLP_LITERAL_${i}__`,a)}),n}isQuoteDelimiter(e){return e==='"'||e==="'"||e==="`"}isEligibleQuoteStart(e,t){if(e[t]!=="'")return!0;let a=t>0?e[t-1]:"";return!this.isWordCharacter(a)}isEligibleQuoteEnd(e,t){if(e[t]!=="'")return!0;let a=t+1<e.length?e[t+1]:"";return!this.isWordCharacter(a)}findClosingQuote(e,t,n){for(let a=t;a<e.length;a+=1)if(!(e[a]!==n||(a>0?e[a-1]:"")==="\\"))return a;return-1}shouldProtectEscapedLiteral(e,t,n){if(this.startsWithEscapableTrigger(e,n))return!0;let a=t>0?e[t-1]:"";return a&&!/\s/u.test(a)?!1:/[\p{L}\p{N}]/u.test(e[n])}startsWithEscapableTrigger(e,t){return this.getEscapableTriggers().some(n=>e.startsWith(n,t))}getEscapableTriggers(){let e=this.triggerConfig.getTriggersOrderedByLength().map(t=>t.trigger).filter(t=>t.length>0);return e.length>0?e:["#","@","+","*","!"]}normalizeNumericDateLiterals(e){let t=e.replace(/(^|[^\p{L}\p{N}_])(\d{4})[/.](\d{1,2})[/.](\d{1,2})(?=$|[^\p{L}\p{N}_])/gu,(n,a,i,s,o)=>{let l=this.toValidatedISODate(Number(i),Number(s),Number(o));return l?`${a}${l}`:n});return this.getNumericDateOrder()!=="day-first"?t:t.replace(/(^|[^\p{L}\p{N}_])(\d{1,2})[/.](\d{1,2})[/.](\d{4})(?=$|[^\p{L}\p{N}_])/gu,(n,a,i,s,o)=>{let l=this.toValidatedISODate(Number(o),Number(s),Number(i));return l?`${a}${l}`:n})}getNumericDateOrder(){if(this.options.dateOrder)return this.options.dateOrder;let e=this.options.dateLocale||this.languageConfig.code;try{let n=new Intl.DateTimeFormat(e).formatToParts(new Date(2006,10,22)).find(a=>a.type==="day"||a.type==="month"||a.type==="year");if((n==null?void 0:n.type)==="day")return"day-first"}catch(t){}return"month-first"}toValidatedISODate(e,t,n){let a=new Date(Date.UTC(e,t-1,n));return a.getUTCFullYear()!==e||a.getUTCMonth()!==t-1||a.getUTCDate()!==n?null:`${e}-${this.padDatePart(t)}-${this.padDatePart(n)}`}padDatePart(e){return String(e).padStart(2,"0")}extractTitleAndDetails(e){let t=e.trim(),n=t.indexOf(`
|
||
`);if(n!==-1){let a=t.substring(0,n).trim(),i=t.substring(n+1).trim();return[a,i]}return[t,void 0]}extractTags(e,t){let n=this.triggerConfig.getTagTrigger();if(!n)return e;let a=this.escapeRegex(n),i=new RegExp(`${a}[\\p{L}\\p{N}\\p{M}_/-]+`,"gu"),s=e.match(i);return s?(t.tags.push(...s.map(o=>o.substring(n.length))),this.cleanupWhitespace(e.replace(i,""))):e}extractContexts(e,t){let n=this.triggerConfig.getContextTrigger();if(!n)return e;let a=this.escapeRegex(n),i=new RegExp(`${a}[\\p{L}\\p{N}\\p{M}_/-]+`,"gu"),s=e.match(i);return s?(t.contexts.push(...s.map(o=>o.substring(n.length))),this.cleanupWhitespace(e.replace(i,""))):e}extractProjects(e,t){let n=this.triggerConfig.getProjectTrigger();if(!n)return e;let a=e,i=this.escapeRegex(n),s=new RegExp(`${i}\\[\\[.*?\\]\\]`,"g"),o=a.match(s);o&&(t.projects.push(...o.map(d=>d.slice(n.length))),a=this.cleanupWhitespace(a.replace(s,"")));let l=new RegExp(`${i}[\\p{L}\\p{N}\\p{M}_/-]+`,"gu"),c=a.match(l);return c&&(t.projects.push(...c.map(d=>d.substring(n.length))),a=this.cleanupWhitespace(a.replace(l,""))),a}extractUserFields(e,t){let n=e,a=this.triggerConfig.getAllEnabledTriggers().filter(i=>this.triggerConfig.isUserField(i.propertyId));for(let i of a){let s=this.triggerConfig.getUserField(i.propertyId);if(!s)continue;let o=this.escapeRegex(i.trigger);if(s.type==="list"){let l=new RegExp(`${o}(?:"([^"]+)"|([\\p{L}\\p{N}\\p{M}_/-]+))`,"gu"),c=[],d;for(;(d=l.exec(n))!==null;){let u=d[1]||d[2];c.push(u)}c.length>0&&(t.userFields||(t.userFields={}),t.userFields[s.id]=c,n=this.cleanupWhitespace(n.replace(l,"")))}else if(s.type==="text"||s.type==="boolean"||s.type==="number"){let l=new RegExp(`${o}(?:"([^"]+)"|([\\p{L}\\p{N}\\p{M}_/-]+))`,"u"),c=n.match(l);if(c){let d=c[1]||c[2];t.userFields||(t.userFields={}),s.type==="boolean"?t.userFields[s.id]=d.toLowerCase()==="true"?"true":"false":t.userFields[s.id]=d,n=this.cleanupWhitespace(n.replace(l,""))}}else if(s.type==="date"){let l=new RegExp(`${o}(?:"([^"]+)"|([\\p{L}\\p{N}\\p{M}_/-]+))`,"u"),c=n.match(l);if(c){let d=c[1]||c[2];t.userFields||(t.userFields={}),t.userFields[s.id]=d,n=this.cleanupWhitespace(n.replace(l,""))}}}return n}extractPriority(e,t){if(this.priorityConfigs.length>0){let i=[...this.priorityConfigs].sort((l,c)=>c.label.length-l.label.length),s=this.triggerConfig.getTriggerForProperty("priority"),o=s!=null&&s.enabled?s.trigger:"";for(let l of i){let c=[l.label,l.value];for(let d of c){if(!d||d.trim()==="")continue;if(o){let p=o+d,m=this.findTextMatch(e,p);if(m)return t.priority=l.value,this.cleanupWhitespace(e.replace(m.fullMatch,""))}let u=this.findTextMatch(e,d);if(u)return t.priority=l.value,this.cleanupWhitespace(e.replace(u.fullMatch,""))}}return e}let n=this.languageConfig.fallbackPriority,a=this.findPhraseValueMatch(e,[{value:"urgent",phrases:n.urgent},{value:"high",phrases:n.high},{value:"normal",phrases:n.normal},{value:"low",phrases:n.low}]);return a?(t.priority=a.value,this.removePhraseMatch(e,a.match)):e}extractStatus(e,t){if(this.statusConfigs.length>0){let i=[...this.statusConfigs].sort((l,c)=>c.label.length-l.label.length),s=this.triggerConfig.getTriggerForProperty("status"),o=s!=null&&s.enabled?s.trigger:"";for(let l of i){let c=[l.label,l.value];for(let d of c){if(!d||d.trim()==="")continue;if(o){let p=o+d,m=this.findTextMatch(e,p);if(m)return t.status=l.value,this.cleanupWhitespace(e.replace(m.fullMatch,""))}let u=this.findTextMatch(e,d);if(u)return t.status=l.value,this.cleanupWhitespace(e.replace(u.fullMatch,""))}}return e}let n=this.languageConfig.fallbackStatus,a=this.findPhraseValueMatch(e,[{value:"open",phrases:n.open},{value:"in-progress",phrases:n.inProgress},{value:"done",phrases:n.done},{value:"cancelled",phrases:n.cancelled},{value:"waiting",phrases:n.waiting}]);return a?(t.status=a.value,this.removePhraseMatch(e,a.match)):e}findTextMatch(e,t){let n=this.findPhraseMatch(e,[t]);if(!n)return null;let a=this.includeTrailingPhraseSeparator(e,n.endIndex);return{fullMatch:e.substring(n.startIndex,a),startIndex:n.startIndex}}findPhraseMatch(e,t){let n=t.filter(s=>s&&s.trim()!=="").sort((s,o)=>o.length-s.length);if(n.length===0)return null;let a=e.toLowerCase(),i=null;for(let s of n){let o=s.toLowerCase(),l=0;for(;l<=a.length;){let c=a.indexOf(o,l);if(c===-1)break;let d=c+s.length;if(this.hasPhraseBoundaries(e,c,d)){let u={fullMatch:e.substring(c,d),phrase:s,startIndex:c,endIndex:d};(!i||u.startIndex<i.startIndex||u.startIndex===i.startIndex&&u.phrase.length>i.phrase.length)&&(i=u)}l=c+1}}return i}findPhraseValueMatch(e,t){let n=null;for(let a of t){let i=this.findPhraseMatch(e,a.phrases);i&&(!n||i.startIndex<n.match.startIndex||i.startIndex===n.match.startIndex&&i.phrase.length>n.match.phrase.length)&&(n={value:a.value,match:i})}return n}removePhraseMatch(e,t){let n=this.includeTrailingPhraseSeparator(e,t.endIndex);return this.cleanupWhitespace(e.substring(0,t.startIndex)+e.substring(n))}hasPhraseBoundaries(e,t,n){if(["zh","ja"].includes(this.languageConfig.code))return!0;let a=this.getCodePointBefore(e,t),i=this.getCodePointAt(e,n);return!this.isWordCharacter(a)&&!this.isWordCharacter(i)}getCodePointBefore(e,t){return t<=0?"":Array.from(e.slice(0,t)).pop()||""}getCodePointAt(e,t){return t>=e.length?"":Array.from(e.slice(t))[0]||""}isWordCharacter(e){return e!==""&&/[\p{L}\p{N}\p{M}_]/u.test(e)}includeTrailingPhraseSeparator(e,t){return/[:,;]/.test(e[t]||"")?t+1:t}parseUnifiedDatesAndTimes(e,t){var a,i;let n=e;try{let s=this.getChronoParser(),o=this.languageConfig.dateTriggers,l=[{type:"due",phrases:o.due},{type:"scheduled",phrases:o.scheduled}],c=!1;for(let v of l){let b=this.findPhraseMatch(n,v.phrases);if(b){let k=n.substring(b.endIndex),w=this.parseChronoFromPosition(k);if(w.success){c=!0,v.type==="due"?(t.dueDate=w.date,w.time&&(t.dueTime=w.time)):(t.scheduledDate=w.date,w.time&&(t.scheduledTime=w.time));let S=this.getChronoMatchOffset(k,w),C=w.matchedText?b.endIndex+S+w.matchedText.length:b.endIndex;n=n.substring(0,b.startIndex)+n.substring(C),n=this.cleanupWhitespace(n)}}}if(c)return n;let d=s.parse(e,new Date,{forwardDate:!0});if(d.length===0)return e;let u=d[0],p=u.text,m=u.start.date(),f=(a=u.end)==null?void 0:a.date(),h=this.findPhraseMatch(u.text,o.due)!==null,g=this.findPhraseMatch(u.text,o.scheduled)!==null;if(f&&Ca(f)&&f.getTime()!==m.getTime())t.scheduledDate=M(m,"yyyy-MM-dd"),u.start.isCertain("hour")&&(t.scheduledTime=M(m,"HH:mm")),t.dueDate=M(f,"yyyy-MM-dd"),(i=u.end)!=null&&i.isCertain("hour")&&(t.dueTime=M(f,"HH:mm"));else if(Ca(m)){let v=M(m,"yyyy-MM-dd"),b=u.start.isCertain("hour")?M(m,"HH:mm"):void 0;h&&!g?(t.dueDate=v,t.dueTime=b):g&&!h||this.defaultToScheduled?(t.scheduledDate=v,t.scheduledTime=b):(t.dueDate=v,t.dueTime=b)}n=n.replace(p,"").trim(),n=this.cleanupWhitespace(n)}catch(s){console.debug("Error in unified date parsing:",s)}return n}parseChronoFromPosition(e){try{let n=this.getChronoParser().parse(e,new Date,{forwardDate:!0});if(n.length>0){let a=n[0];if(a.index<=3){let i=a.start.date();if(Ca(i)){let s={success:!0,date:M(i,"yyyy-MM-dd"),matchedText:a.text,startIndex:a.index};return a.start.isCertain("hour")&&(s.time=M(i,"HH:mm")),s}}}}catch(t){console.debug("Error parsing date with chrono:",t)}return{success:!1}}getChronoMatchOffset(e,t){var i;let n=(i=t.startIndex)!=null?i:0;if(!t.matchedText)return n;let a=e.indexOf(t.matchedText);return a!==-1?a:n}buildRecurrencePatterns(){let e=this.languageConfig.recurrence,t=[],{boundary:n,endBoundary:a}=this.boundaries,i=s=>s.map(o=>this.escapeRegex(o)).join("|");return t.push(...this.buildOrdinalWeekdayPatterns(e,n,a,i)),t.push(...this.buildIntervalPatterns(e,n,a,i)),t.push(...this.buildEveryOtherPatterns(e,n,a,i)),t.push(...this.buildWeekdayPatterns(e,n,a,i)),t.push(...this.buildFrequencyPatterns(e,n,a,i)),t}buildOrdinalWeekdayPatterns(e,t,n,a){let i=a(e.every),s=a([...e.ordinals.first,...e.ordinals.second,...e.ordinals.third,...e.ordinals.fourth,...e.ordinals.last]),o=a([...e.weekdays.monday,...e.weekdays.tuesday,...e.weekdays.wednesday,...e.weekdays.thursday,...e.weekdays.friday,...e.weekdays.saturday,...e.weekdays.sunday]);return[{regex:new RegExp(`${t}(${i})\\s+(${s})\\s+(${o})${n}`,"i"),handler:l=>{let c=l[2].toLowerCase(),d=l[3].toLowerCase(),u=1;return e.ordinals.second.some(m=>m.toLowerCase()===c)?u=2:e.ordinals.third.some(m=>m.toLowerCase()===c)?u=3:e.ordinals.fourth.some(m=>m.toLowerCase()===c)?u=4:e.ordinals.last.some(m=>m.toLowerCase()===c)&&(u=-1),`FREQ=MONTHLY;BYDAY=${this.getWeekdayRRuleCode(d,e)};BYSETPOS=${u}`}}]}buildIntervalPatterns(e,t,n,a){let i=a(e.every),s=a([...e.periods.day,...e.periods.week,...e.periods.month,...e.periods.year]);return[{regex:new RegExp(`${t}(${i})\\s+(\\d+)\\s+(${s})${n}`,"i"),handler:o=>{let l=parseInt(o[2]),c=o[3].toLowerCase();return`FREQ=${this.getPeriodFrequency(c,e)};INTERVAL=${l}`}}]}buildEveryOtherPatterns(e,t,n,a){let i=a(e.every),s=a(e.other),o=a([...e.periods.day,...e.periods.week,...e.periods.month,...e.periods.year]);return[{regex:new RegExp(`${t}(${i})\\s+(${s})\\s+(${o})${n}`,"i"),handler:l=>{let c=l[3].toLowerCase();return`FREQ=${this.getPeriodFrequency(c,e)};INTERVAL=2`}}]}buildWeekdayPatterns(e,t,n,a){let i=a(e.every),s=a([...e.weekdays.monday,...e.weekdays.tuesday,...e.weekdays.wednesday,...e.weekdays.thursday,...e.weekdays.friday,...e.weekdays.saturday,...e.weekdays.sunday]),o=a([...e.pluralWeekdays.monday,...e.pluralWeekdays.tuesday,...e.pluralWeekdays.wednesday,...e.pluralWeekdays.thursday,...e.pluralWeekdays.friday,...e.pluralWeekdays.saturday,...e.pluralWeekdays.sunday]);return[{regex:new RegExp(`${t}(${i})\\s+(${s})${n}`,"i"),handler:l=>{let c=l[2].toLowerCase();return`FREQ=WEEKLY;BYDAY=${this.getWeekdayRRuleCode(c,e)}`}},{regex:new RegExp(`${t}(${o})${n}`,"i"),handler:l=>{let c=l[1].toLowerCase();return`FREQ=WEEKLY;BYDAY=${this.getPluralWeekdayRRuleCode(c,e)}`}}]}buildFrequencyPatterns(e,t,n,a){return[{regex:new RegExp(`${t}(${a(e.frequencies.daily)})${n}`,"i"),handler:()=>"FREQ=DAILY"},{regex:new RegExp(`${t}(${a(e.frequencies.weekly)})${n}`,"i"),handler:()=>"FREQ=WEEKLY"},{regex:new RegExp(`${t}(${a(e.frequencies.monthly)})${n}`,"i"),handler:()=>"FREQ=MONTHLY"},{regex:new RegExp(`${t}(${a(e.frequencies.yearly)})${n}`,"i"),handler:()=>"FREQ=YEARLY"}]}getPeriodFrequency(e,t){return t.periods.week.some(n=>n.toLowerCase()===e)?"WEEKLY":t.periods.month.some(n=>n.toLowerCase()===e)?"MONTHLY":t.periods.year.some(n=>n.toLowerCase()===e)?"YEARLY":"DAILY"}getWeekdayRRuleCode(e,t){return t.weekdays.tuesday.some(n=>n.toLowerCase()===e)?"TU":t.weekdays.wednesday.some(n=>n.toLowerCase()===e)?"WE":t.weekdays.thursday.some(n=>n.toLowerCase()===e)?"TH":t.weekdays.friday.some(n=>n.toLowerCase()===e)?"FR":t.weekdays.saturday.some(n=>n.toLowerCase()===e)?"SA":t.weekdays.sunday.some(n=>n.toLowerCase()===e)?"SU":"MO"}getPluralWeekdayRRuleCode(e,t){return t.pluralWeekdays.tuesday.some(n=>n.toLowerCase()===e)?"TU":t.pluralWeekdays.wednesday.some(n=>n.toLowerCase()===e)?"WE":t.pluralWeekdays.thursday.some(n=>n.toLowerCase()===e)?"TH":t.pluralWeekdays.friday.some(n=>n.toLowerCase()===e)?"FR":t.pluralWeekdays.saturday.some(n=>n.toLowerCase()===e)?"SA":t.pluralWeekdays.sunday.some(n=>n.toLowerCase()===e)?"SU":"MO"}extractRecurrence(e,t){for(let n of this.recurrencePatterns){let a=e.match(n.regex);if(a){let i=n.handler(a);if(this.isValidRRuleString(i))return t.recurrence=i,this.cleanupWhitespace(e.replace(n.regex,""))}}return e}isValidRRuleString(e){if(e.includes("BYDAY=undefined")||e.includes("BYDAY=;")||e.includes("BYDAY=")){let t=e.match(/BYDAY=([^;]*)/);if(t&&(!t[1]||t[1]==="undefined"||t[1].trim()===""))return!1}return!!e.includes("FREQ=")}extractTimeEstimate(e,t){let n=this.languageConfig.timeEstimate,{boundary:a,endBoundary:i}=this.boundaries,s=[{regex:new RegExp(`${a}(\\d+)(${n.hours.map(c=>this.escapeRegex(c)).join("|")})\\s*(\\d+)(${n.minutes.map(c=>this.escapeRegex(c)).join("|")})${i}`,"i"),handler:c=>parseInt(c[1])*60+parseInt(c[3])},{regex:new RegExp(`${a}(\\d+)\\s*(${n.hours.map(c=>this.escapeRegex(c)).join("|")})${i}`,"i"),handler:c=>parseInt(c[1])*60},{regex:new RegExp(`${a}(\\d+)\\s*(${n.minutes.map(c=>this.escapeRegex(c)).join("|")})${i}`,"i"),handler:c=>parseInt(c[1])}],o=e,l=0;for(let c of s){let d=o.match(c.regex);d&&(l+=c.handler(d),o=this.cleanupWhitespace(o.replace(c.regex,"")))}return l>0&&(t.estimate=l),o}validateAndCleanupResult(e){return e.title.trim()||(e.title="Untitled Task"),e.tags=[...new Set(e.tags.filter(Boolean))],e.contexts=[...new Set(e.contexts.filter(Boolean))],e.projects=[...new Set(e.projects.filter(Boolean))],e.dueDate&&!this.isValidDateString(e.dueDate)&&delete e.dueDate,e.scheduledDate&&!this.isValidDateString(e.scheduledDate)&&delete e.scheduledDate,e.dueTime&&!this.isValidTimeString(e.dueTime)&&delete e.dueTime,e.scheduledTime&&!this.isValidTimeString(e.scheduledTime)&&delete e.scheduledTime,e}getPreviewData(e){let t=[];if(e.title&&t.push({icon:"edit-3",text:`"${e.title}"`}),e.details&&t.push({icon:"file-text",text:`Details: "${e.details.substring(0,50)}${e.details.length>50?"...":""}"`}),e.dueDate){let n=e.dueTime?`${e.dueDate} at ${e.dueTime}`:e.dueDate;t.push({icon:"calendar",text:`Due: ${n}`})}if(e.scheduledDate){let n=e.scheduledTime?`${e.scheduledDate} at ${e.scheduledTime}`:e.scheduledDate;t.push({icon:"calendar-clock",text:`Scheduled: ${n}`})}if(e.priority&&t.push({icon:"alert-triangle",text:`Priority: ${e.priority}`}),e.status&&t.push({icon:"activity",text:`Status: ${e.status}`}),e.contexts&&e.contexts.length>0&&t.push({icon:"map-pin",text:`Contexts: ${e.contexts.map(n=>"@"+n).join(", ")}`}),e.projects&&e.projects.length>0){let n=e.projects.map(a=>`+${a}`).join(", ");t.push({icon:"folder",text:`Projects: ${n}`})}if(e.tags&&e.tags.length>0&&t.push({icon:"tag",text:`Tags: ${e.tags.map(n=>"#"+n).join(", ")}`}),e.recurrence){let n="Invalid recurrence";try{e.recurrence.includes("FREQ=")&&this.isValidRRuleString(e.recurrence)&&(n=dat.fromString(e.recurrence).toText())}catch(a){console.debug("Error parsing rrule for preview:",a)}t.push({icon:"repeat",text:`Recurrence: ${n}`})}if(e.estimate&&t.push({icon:"clock",text:`Estimate: ${e.estimate} min`}),e.userFields&&Object.keys(e.userFields).length>0)for(let[n,a]of Object.entries(e.userFields)){let i=this.triggerConfig.getUserField(n),s=(i==null?void 0:i.displayName)||n,o;Array.isArray(a)?o=a.join(", "):o=a,t.push({icon:"box",text:`${s}: ${o}`})}return t}getPreviewText(e){return this.getPreviewData(e).map(t=>t.text).join(" \u2022 ")}getStatusSuggestions(e,t=10){let n=e.toLowerCase();return this.statusConfigs.filter(a=>a&&typeof a.value=="string"&&typeof a.label=="string").filter(a=>a.value.trim()!==""&&a.label.trim()!=="").filter(a=>a.value.toLowerCase().includes(n)||a.label.toLowerCase().includes(n)).slice(0,t).map(a=>({value:a.value,label:a.label,display:a.label}))}}});var hbe=y(()=>{Ufe();aU();iU();sU();fbe()});function uat(){return typeof navigator!="undefined"&&navigator.language?navigator.language:void 0}function pat(r){var t,n;let e=(n=(t=r.settings.calendarViewSettings)==null?void 0:t.locale)==null?void 0:n.trim();return e||uat()||r.settings.nlpLanguage||"en"}var ra,Lc=y(()=>{hbe();ra=class r extends PI{static fromPlugin(e){let t=e.settings;return new r(t.customStatuses,t.customPriorities,t.nlpDefaultToScheduled,t.nlpLanguage,t.nlpTriggers,t.userFields,{dateLocale:pat(e)})}constructor(e=[],t=[],n=!0,a="en",i,s,o){super(e,t,n,a,i,s,o),this.taskNotesNlpTriggers=i,this.taskNotesStatusConfigs=e,this.taskNotesUserFields=s||[],this.taskNotesPriorityConfigs=t}parseInput(e){let t=super.parseInput(e),n=this.applyTriggeredStatusMatch(e,t),a=this.removePriorityShortcutResidue(e,n),i=this.extractLinkedUserFields(e,a);return this.normalizeUserFieldValues(i)}applyTriggeredStatusMatch(e,t){let n=this.findTriggeredStatusMatch(e);if(!n)return t;t.status=n.config.value;let a=t.title;for(let i of this.getStatusShortcutResidues(n.token))a=this.removeTokenFragment(a,i);return t.title=a||"Untitled Task",t}findTriggeredStatusMatch(e){var a;let t=this.getStatusTrigger();if(!t||this.taskNotesStatusConfigs.length===0)return null;let n=[];for(let i of this.taskNotesStatusConfigs)for(let s of this.getStatusPhrases(i))n.push({config:i,token:`${t}${s}${t}`}),n.push({config:i,token:`${t}${s}`});return n.sort((i,s)=>s.token.length-i.token.length),(a=n.find(i=>this.containsToken(e,i.token)))!=null?a:null}getStatusShortcutResidues(e){let t=new Set([e]);for(let n of this.taskNotesStatusConfigs)for(let a of this.getStatusPhrases(n)){let i=this.removeFirstCaseInsensitive(e,a);i&&i!==e&&this.addStatusShortcutResidue(t,i)}return Array.from(t).filter(n=>n.trim().length>0).sort((n,a)=>a.length-n.length)}addStatusShortcutResidue(e,t){e.add(t),e.add(t.replace(/\s+/g," ").trim())}getStatusPhrases(e){return[e.value,e.label].filter(t=>typeof t=="string"&&t.trim().length>0).map(t=>t.trim())}removePriorityShortcutResidue(e,t){if(!t.priority||this.taskNotesPriorityConfigs.length===0)return t;let n=this.taskNotesPriorityConfigs.find(c=>c.value===t.priority);if(!n)return t;let a=this.getPriorityTrigger(),i=[n.value,n.label].filter(c=>typeof c=="string"&&c.trim().length>0).flatMap(c=>a?[`${a}${c}`,c]:[c]),s=[n.label,n.value].filter(c=>typeof c=="string"&&c.trim().length>0),o=new Set;for(let c of i)if(this.containsToken(e,c))for(let d of s){let u=this.removeFirstCaseInsensitive(c,d);!u||u===c||o.add(u)}let l=t.title;for(let c of Array.from(o).sort((d,u)=>u.length-d.length))l=this.removeTokenFragment(l,c);return t.title=l||"Untitled Task",t}getPriorityTrigger(){var t;let e=(t=this.taskNotesNlpTriggers)==null?void 0:t.triggers.find(n=>n.propertyId==="priority");return(e==null?void 0:e.trigger)||""}getStatusTrigger(){var t;let e=(t=this.taskNotesNlpTriggers)==null?void 0:t.triggers.find(n=>n.propertyId==="status");return(e==null?void 0:e.enabled)===!1?"":(e==null?void 0:e.trigger)||"*"}containsToken(e,t){let n=this.escapeRegexLiteral(t);return new RegExp(`(^|\\s)${n}(?=\\s|$)`,"iu").test(e)}removeTokenFragment(e,t){let n=this.escapeRegexLiteral(t);return e.replace(new RegExp(`(^|\\s)${n}(?=\\s|$)`,"giu"),"$1").replace(/\s+/g," ").trim()}removeFirstCaseInsensitive(e,t){let n=e.toLowerCase().indexOf(t.toLowerCase());return n===-1?null:`${e.slice(0,n)}${e.slice(n+t.length)}`}normalizeUserFieldValues(e){var n;if(!e.userFields)return e;let t=e.userFields;for(let a of this.taskNotesUserFields){let i=t[a.id];if(typeof i=="string")if(a.type==="boolean"){let s=i.trim().toLowerCase();s==="true"?t[a.id]=!0:s==="false"&&(t[a.id]=!1)}else a.type==="date"&&(t[a.id]=(n=this.normalizeDateUserFieldValue(i))!=null?n:i)}return e}normalizeDateUserFieldValue(e){let t=e.trim();if(!t)return null;let n=super.parseInput(t);return n.scheduledDate||n.dueDate||null}extractLinkedUserFields(e,t){var i;let n=((i=this.taskNotesNlpTriggers)==null?void 0:i.triggers)||[];if(n.length===0||this.taskNotesUserFields.length===0)return t;let a=t.title;for(let s of n){if(!s.enabled)continue;let o=this.taskNotesUserFields.find(p=>p.id===s.propertyId);if(!o)continue;let l=this.escapeRegexLiteral(s.trigger),c=new RegExp(`${l}(\\[\\[[^\\]]+\\]\\]|\\[[^\\]]+\\]\\([^\\)]+\\))`,"gu"),d=Array.from(e.matchAll(c));if(d.length===0)continue;let u=d.map(p=>p[1]).filter(p=>typeof p=="string"&&p.length>0);if(u.length!==0){if(t.userFields||(t.userFields={}),o.type==="list"){let p=t.userFields[o.id],m=Array.isArray(p)?p:typeof p=="string"?[p]:[];t.userFields[o.id]=[...m,...u]}else t.userFields[o.id]=u[u.length-1];a=a.replace(c,"").replace(/\s+/g," ").trim()}}return t.title=a,t}escapeRegexLiteral(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}}});function gbe(r){return r.padStart(2,"0")}function ybe(r,e,t){let n=Number(r),a=Number(e),i=Number(t),s=new Date(n,a-1,i);return s.getFullYear()!==n||s.getMonth()!==a-1||s.getDate()!==i?null:`${r}-${gbe(e)}-${gbe(t)}`}function uV(r){let e=r.trim();if(!e)return null;let t=mat.exec(e);if(t)return ybe(t[1],t[2],t[3]);let n=fat.exec(e);return n?ybe(n[1],n[2],n[3]):null}function pV(r,e,t){var n;r.value=e,(n=t.onCommit)==null||n.call(t,e),r.dispatchEvent(new Event("input",{bubbles:!0})),r.dispatchEvent(new Event("change",{bubbles:!0}))}function hat(r){return r.key.length===1&&/\d/.test(r.key)&&!r.altKey&&!r.ctrlKey&&!r.metaKey}function zc(r,e={}){var c,d;let t="",n=0,a=(c=e.now)!=null?c:(()=>Date.now()),i=(d=e.typeBufferResetMs)!=null?d:1500,s=u=>{if(!hat(u))return;let p=a();p-n>i&&(t=""),n=p,t=`${t}${u.key}`.slice(-8);let m=uV(t);m&&(u.preventDefault(),t="",pV(r,m,e))},o=u=>{var f,h;let p=(h=(f=u.clipboardData)==null?void 0:f.getData("text"))!=null?h:"",m=uV(p);m&&(u.preventDefault(),t="",pV(r,m,e))},l=()=>{let u=uV(r.value);!u||u===r.value||(t="",pV(r,u,e))};return r.addEventListener("keydown",s),r.addEventListener("paste",o),r.addEventListener("input",l),()=>{r.removeEventListener("keydown",s),r.removeEventListener("paste",o),r.removeEventListener("input",l)}}var mat,fat,JC=y(()=>{mat=/^(\d{4})(\d{2})(\d{2})$/,fat=/^(\d{4})[-/](\d{1,2})[-/](\d{1,2})$/});var wbe={};at(wbe,{DateTimePickerModal:()=>$l,formatCalendarDate:()=>kbe,getParsedDateTimeSelection:()=>bbe,parseNaturalLanguageDateTime:()=>Tbe});function vbe(r){return String(r).padStart(2,"0")}function kbe(r,e,t){return`${r}-${vbe(e+1)}-${vbe(t)}`}function bbe(r,e){let t=r.scheduledDate||r.dueDate,n=r.scheduledDate?r.scheduledTime:r.dueTime;if(e==="due"?(t=r.dueDate,n=r.dueTime):e==="scheduled"&&(t=r.scheduledDate,n=r.scheduledTime),t)return{date:t,time:n||null};let a=e==="due"?r.scheduledDate:r.dueDate,i=e==="due"?r.scheduledTime:r.dueTime;return a?{date:a,time:i||null}:null}function Tbe(r,e,t){let n=r.trim();return n?bbe(e.parseInput(n),t):null}function gat(r,e){let t=new Date(r);return t.setDate(t.getDate()+e),t}function yat(r){let e=new Date(r),t=(1-e.getDay()+7)%7||7;return e.setDate(e.getDate()+t),e}var ng,$l,kk=y(()=>{ng=require("obsidian");Lc();JC();$l=class extends ng.Modal{constructor(t,n){var a;super(t);this.naturalLanguageInput=null;this.dateInput=null;this.timeInput=null;this.selectButtonEl=null;this.detachDateInputBehavior=null;this.options=n,this.selectedDate=(a=n.currentDate)!=null?a:null}onOpen(){let{contentEl:t}=this;t.empty(),t.addClass("tasknotes-plugin","date-time-picker-modal"),this.options.title&&t.createEl("h3",{text:this.options.title,cls:"date-time-picker-modal__title"}),this.renderQuickActions(t),this.renderNaturalLanguageInput(t),this.renderDateInput(t),this.shouldShowTime()&&this.renderTimeInput(t),this.renderActions(t),this.updateSelectButtonState(),window.setTimeout(()=>{var n;this.canUseNaturalLanguageInput()&&this.naturalLanguageInput?this.naturalLanguageInput.focus():(n=this.dateInput)==null||n.focus()},100)}onClose(){var t;(t=this.detachDateInputBehavior)==null||t.call(this),this.detachDateInputBehavior=null,this.contentEl.empty()}renderQuickActions(t){let n=new Date,a=[{label:"Today",date:n},{label:"Tomorrow",date:gat(n,1)},{label:"Next week",date:yat(n)}],i=t.createDiv({cls:"date-time-picker-modal__quick-actions"});for(let s of a)i.createEl("button",{text:s.label,cls:"date-time-picker-modal__quick-button",attr:{type:"button"}}).addEventListener("click",()=>{this.selectDate(kbe(s.date.getFullYear(),s.date.getMonth(),s.date.getDate()))})}renderNaturalLanguageInput(t){if(!this.canUseNaturalLanguageInput())return;let n=t.createDiv({cls:"date-time-picker-modal__nlp-row"});this.naturalLanguageInput=n.createEl("input",{cls:"date-time-picker-modal__nlp-input",attr:{type:"text",placeholder:"Tomorrow at 3pm","aria-label":"Natural language date"}}),this.naturalLanguageInput.addEventListener("keydown",i=>{i.key==="Enter"&&(i.preventDefault(),this.applyNaturalLanguageInput())});let a=n.createEl("button",{cls:"clickable-icon date-time-picker-modal__nlp-button",attr:{type:"button","aria-label":"Apply natural language date",title:"Apply natural language date"}});(0,ng.setIcon)(a,"wand"),a.addEventListener("click",()=>this.applyNaturalLanguageInput())}renderDateInput(t){var o;let n=t.createDiv({cls:"date-time-picker-modal__date-field"});n.createEl("label",{text:"Date",cls:"date-time-picker-modal__field-label",attr:{for:"tasknotes-date-time-picker-date"}});let a=n.createDiv({cls:"date-time-picker-modal__native-date-control"});this.dateInput=a.createEl("input",{cls:"date-time-picker-modal__date-input",attr:{id:"tasknotes-date-time-picker-date",type:"date",value:(o=this.selectedDate)!=null?o:"","aria-label":"Date"}});let i=()=>{var l;this.updateSelectedDate(((l=this.dateInput)==null?void 0:l.value)||null)};this.dateInput.addEventListener("input",i),this.dateInput.addEventListener("change",i),this.detachDateInputBehavior=zc(this.dateInput,{onCommit:l=>this.updateSelectedDate(l)}),this.dateInput.addEventListener("keydown",l=>{var c;l.key==="Enter"&&((c=this.dateInput)!=null&&c.value)&&(l.preventDefault(),this.updateSelectedDate(this.dateInput.value),this.confirmSelectedDate())});let s=a.createEl("button",{cls:"clickable-icon date-time-picker-modal__native-date-button",attr:{type:"button","aria-label":"Open native date picker",title:"Open native date picker"}});(0,ng.setIcon)(s,"calendar-days"),s.addEventListener("click",()=>{var l,c,d;(c=(l=this.dateInput)==null?void 0:l.showPicker)==null||c.call(l),(d=this.dateInput)==null||d.focus()})}renderTimeInput(t){var a;let n=t.createDiv({cls:"date-time-picker-modal__time-field"});n.createEl("label",{text:"Time (optional)",cls:"date-time-picker-modal__field-label",attr:{for:"tasknotes-date-time-picker-time"}}),this.timeInput=n.createEl("input",{cls:"date-time-picker-modal__time-input",attr:{id:"tasknotes-date-time-picker-time",type:"time",value:(a=this.options.currentTime)!=null?a:""}}),this.timeInput.addEventListener("keydown",i=>{i.key==="Enter"&&this.selectedDate&&(i.preventDefault(),this.confirmSelectedDate())})}renderActions(t){let n=t.createDiv({cls:"date-time-picker-modal__actions"});this.options.currentDate&&n.createEl("button",{text:"Clear date",cls:"date-time-picker-modal__action-button",attr:{type:"button"}}).addEventListener("click",()=>{this.options.onSelect(null,null),this.close()}),n.createEl("button",{text:"Cancel",cls:"date-time-picker-modal__action-button",attr:{type:"button"}}).addEventListener("click",()=>this.close()),this.selectButtonEl=n.createEl("button",{text:"Select",cls:"mod-cta date-time-picker-modal__action-button",attr:{type:"button"}}),this.selectButtonEl.addEventListener("click",()=>this.confirmSelectedDate())}selectDate(t){this.updateSelectedDate(t),this.confirmSelectedDate()}updateSelectedDate(t){this.selectedDate=t,this.dateInput&&this.dateInput.value!==(t!=null?t:"")&&(this.dateInput.value=t!=null?t:""),this.updateSelectButtonState()}confirmSelectedDate(){var t;this.selectedDate&&(this.options.onSelect(this.selectedDate,this.shouldShowTime()&&((t=this.timeInput)==null?void 0:t.value)||null),this.close())}updateSelectButtonState(){this.selectButtonEl&&(this.selectButtonEl.disabled=!this.selectedDate)}canUseNaturalLanguageInput(){var t;return this.options.naturalLanguageParser?!0:!!((t=this.options.plugin)!=null&&t.settings.enableNaturalLanguageInput)}shouldShowTime(){return this.options.showTime!==!1}getNaturalLanguageParser(){var t;return this.options.naturalLanguageParser?this.options.naturalLanguageParser:(t=this.options.plugin)!=null&&t.settings.enableNaturalLanguageInput?ra.fromPlugin(this.options.plugin):null}applyNaturalLanguageInput(){var i,s;let t=this.getNaturalLanguageParser(),n=(s=(i=this.naturalLanguageInput)==null?void 0:i.value)!=null?s:"",a=t?Tbe(n,t,this.options.dateRole):null;if(!a){new ng.Notice("Could not find a date in that text.");return}this.options.onSelect(a.date,this.shouldShowTime()?a.time:null),this.close()}}});var xbe={};at(xbe,{DateContextMenu:()=>Bl});function kat(r){if(!r||typeof r!="object")return null;let e=r;return e.nodeType!==1||typeof e.closest!="function"?null:e}function bat(){return(0,Sbe.moment)()}function Tat(r){return r.setSubmenu()}var Sbe,vat,$a,Bl,bk=y(()=>{Sbe=require("obsidian");Pu();kk();Me();K();vat=N({tag:"Components/DateContextMenu"});$a=class $a{constructor(e){this.menu=new Ea,this.options=e,this.buildMenu()}t(e,t,n){var a;return((a=this.options.plugin)==null?void 0:a.i18n.translate(e,n))||t||e}getFirstDayOfWeek(){var t,n,a;let e=(a=(n=(t=this.options.plugin)==null?void 0:t.settings)==null?void 0:n.calendarViewSettings)==null?void 0:a.firstDay;return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=6?e:0}buildMenu(){this.options.title&&(this.menu.addItem(i=>{i.setTitle(this.options.title||""),i.setIcon("calendar"),i.setDisabled(!0)}),this.menu.addSeparator());let e=this.getDateOptions(),t=e.filter(i=>i.category==="increment");t.length>0&&(t.forEach(i=>{this.menu.addItem(s=>{i.icon&&s.setIcon(i.icon),s.setTitle(i.label),s.onClick(async()=>{this.options.onSelect(i.value,null)})})}),this.menu.addSeparator()),e.filter(i=>i.category==="basic").forEach(i=>{this.menu.addItem(s=>{i.icon&&s.setIcon(i.icon);let l=i.value&&i.value===this.options.currentValue?this.t("contextMenus.date.selected","\u2713 {label}",{label:i.label}):i.label;s.setTitle(l),s.onClick(async()=>{this.options.onSelect(i.value,null)})})});let a=e.filter(i=>i.category==="weekday");a.length>0&&(this.menu.addSeparator(),this.menu.addItem(i=>{i.setTitle(this.t("contextMenus.date.weekdaysLabel","Weekdays")),i.setIcon("calendar");let s=Tat(i);a.forEach(o=>{s.addItem(l=>{let d=o.value&&o.value===this.options.currentValue?this.t("contextMenus.date.selected","\u2713 {label}",{label:o.label}):o.label;l.setTitle(d),l.setIcon("calendar"),l.onClick(async()=>{this.options.onSelect(o.value,null)})})})})),this.menu.addSeparator(),this.menu.addItem(i=>{i.setTitle(this.t("contextMenus.date.pickDateTime","Pick date & time\u2026")),i.setIcon("calendar"),i.onClick(async()=>{this.showDateTimePicker()})}),this.options.currentValue&&this.menu.addItem(i=>{i.setTitle(this.t("contextMenus.date.clearDate","Clear date")),i.setIcon("x"),i.onClick(async()=>{this.options.onSelect(null,null)})})}static closeActiveMenu(){let e=$a.activeMenu;$a.activeMenu=null,$a.activeTrigger=null,e==null||e.hide()}static getTriggerFromEvent(e){var n;let t=kat(e.target);return(n=t==null?void 0:t.closest('[data-tn-action="edit-date"], .task-card__metadata-date'))!=null?n:null}showWithTrigger(e,t){if(e&&$a.activeMenu&&$a.activeTrigger===e){$a.closeActiveMenu();return}$a.closeActiveMenu(),$a.activeMenu=this.menu,$a.activeTrigger=e,this.menu.onHide(()=>{$a.activeMenu===this.menu&&($a.activeMenu=null,$a.activeTrigger=null)}),t()}getDateOptions(){let e=bat(),t=[];this.options.currentValue&&(t.push({label:this.t("contextMenus.date.increment.plusOneDay","+1 day"),value:Lv(this.options.currentValue,1),icon:"plus",category:"increment"}),t.push({label:this.t("contextMenus.date.increment.minusOneDay","-1 day"),value:Lv(this.options.currentValue,-1),icon:"minus",category:"increment"}),t.push({label:this.t("contextMenus.date.increment.plusOneWeek","+1 week"),value:Lv(this.options.currentValue,7),icon:"plus-circle",category:"increment"}),t.push({label:this.t("contextMenus.date.increment.minusOneWeek","-1 week"),value:Lv(this.options.currentValue,-7),icon:"minus-circle",category:"increment"})),t.push({label:this.t("contextMenus.date.basic.today","Today"),value:e.format("YYYY-MM-DD"),icon:"calendar-check",isToday:!0,category:"basic"}),t.push({label:this.t("contextMenus.date.basic.tomorrow","Tomorrow"),value:e.clone().add(1,"day").format("YYYY-MM-DD"),icon:"calendar-plus",category:"basic"});let n=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],a=this.getFirstDayOfWeek();[...n.slice(a),...n.slice(0,a)].forEach(c=>{let d=n.indexOf(c),u=e.clone().day(d);u.isSameOrBefore(e,"day")&&(u=u.add(1,"week"));let p=this.t(`common.weekdays.${c.toLowerCase()}`,c);t.push({label:p,value:u.format("YYYY-MM-DD"),icon:"calendar",category:"weekday"})});let s=e.clone().day(6);(s.isBefore(e)||s.isSame(e,"day"))&&s.add(1,"week"),t.push({label:this.t("contextMenus.date.basic.thisWeekend","This weekend"),value:s.format("YYYY-MM-DD"),icon:"calendar-days",category:"basic"});let o=e.clone().day(1).add(1,"week");t.push({label:this.t("contextMenus.date.basic.nextWeek","Next week"),value:o.format("YYYY-MM-DD"),icon:"calendar-plus",category:"basic"});let l=e.clone().add(1,"month").startOf("month");return t.push({label:this.t("contextMenus.date.basic.nextMonth","Next month"),value:l.format("YYYY-MM-DD"),icon:"calendar-range",category:"basic"}),t}show(e){this.showWithTrigger($a.getTriggerFromEvent(e),()=>{this.menu.show(e)})}showAtElement(e){this.showWithTrigger(e,()=>{this.menu.showAtPosition({x:e.getBoundingClientRect().left,y:e.getBoundingClientRect().bottom+4})})}showDateTimePicker(){var n;let e=this.options.app||((n=this.options.plugin)==null?void 0:n.app);if(!e){vat.error("DateContextMenu: No app instance available for modal",{category:"validation",operation:"datecontextmenu-no-app-instance-modal"});return}new $l(e,{currentDate:this.options.currentValue||null,currentTime:this.options.currentTime||null,title:this.t("contextMenus.date.modal.title","Set date & time"),dateRole:this.options.dateRole,plugin:this.options.plugin,onSelect:(a,i)=>{this.options.onSelect(a,i)}}).open()}};$a.activeMenu=null,$a.activeTrigger=null;Bl=$a});async function Ir(r,e){return new XC(r,e).show()}var MI,XC,ro=y(()=>{MI=require("obsidian"),XC=class extends MI.Modal{constructor(e,t){super(e),this.options={confirmText:"Confirm",cancelText:"Cancel",isDestructive:!1,...t}}show(){return new Promise(e=>{this.resolve=e,this.open()})}onOpen(){let{contentEl:e}=this;e.empty(),new MI.Setting(e).setName(this.options.title).setHeading(),e.createEl("p",{text:this.options.message});let t=e.createDiv({cls:"modal-button-container"});t.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),t.classList.add("tn-static-display-flex-75816cae"),t.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-0-5rem-ce2fca4d","tn-static-gap-12px-ed7b3d87","tn-static-gap-6px-f0abc1db","tn-static-gap-8px-33fcd4c3"),t.classList.add("tn-static-gap-10px-f3d7ce77"),t.classList.remove("tn-static-justify-content-center-03c4bb6f","tn-static-justify-content-space-between-a562f4fd"),t.classList.add("tn-static-justify-content-flex-end-455f8cca"),t.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),t.classList.add("tn-static-margin-top-20px-a26bda7d");let n=null;this.options.thirdButtonText&&(n=t.createEl("button",{text:this.options.thirdButtonText}),n.addEventListener("click",()=>{this.options.onThirdButton&&this.options.onThirdButton(),this.close()}));let a=t.createEl("button",{text:this.options.cancelText});a.addEventListener("click",()=>{this.resolve(!1),this.close()});let i=t.createEl("button",{text:this.options.confirmText,cls:this.options.isDestructive?"mod-warning":"mod-cta"});this.options.isDestructive&&(i.classList.remove("tn-static-background-color-var-background-mo-94b219f0","tn-static-background-color-var-background-se-9087a23e","tn-static-background-color-var-color-base-40-ef5f175e","tn-static-background-color-var-text-accent-a954c70f"),i.classList.add("tn-static-background-color-var-color-red-134bc721"),i.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),i.classList.add("tn-static-color-white-0a43e56a")),i.addEventListener("click",()=>{this.resolve(!0),this.close()}),window.setTimeout(()=>{this.options.defaultToConfirm?i.focus():a.focus()},0)}onClose(){let{contentEl:e}=this;e.empty(),this.resolve&&this.resolve(!1)}}});async function Tk(r,e){return new mV(r,e).show()}var eE,mV,fV=y(()=>{eE=require("obsidian"),mV=class extends eE.Modal{constructor(e,t){super(e),this.options={confirmText:"Confirm",cancelText:"Cancel",...t}}show(){return new Promise(e=>{this.resolve=e,this.open()})}onOpen(){let{contentEl:e}=this;e.empty(),new eE.Setting(e).setName(this.options.title).setHeading(),new eE.Setting(e).addText(i=>{var s,o;this.inputEl=i.inputEl,i.setPlaceholder(this.options.placeholder||"").setValue(this.options.initialValue||"").onChange(()=>{}),window.setTimeout(()=>{this.inputEl.focus(),this.inputEl.select()},100),(o=(s=this.options).onInputReady)==null||o.call(s,this.inputEl)});let t=e.createDiv({cls:"modal-button-container"});t.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),t.classList.add("tn-static-display-flex-75816cae"),t.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-0-5rem-ce2fca4d","tn-static-gap-12px-ed7b3d87","tn-static-gap-6px-f0abc1db","tn-static-gap-8px-33fcd4c3"),t.classList.add("tn-static-gap-10px-f3d7ce77"),t.classList.remove("tn-static-justify-content-center-03c4bb6f","tn-static-justify-content-space-between-a562f4fd"),t.classList.add("tn-static-justify-content-flex-end-455f8cca"),t.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),t.classList.add("tn-static-margin-top-20px-a26bda7d");let n=t.createEl("button",{text:this.options.cancelText});n.addEventListener("click",()=>{this.resolve(null),this.close()});let a=t.createEl("button",{text:this.options.confirmText,cls:"mod-cta"});a.addEventListener("click",()=>{let i=this.inputEl.value.trim();this.resolve(i||null),this.close()}),this.inputEl.addEventListener("keydown",i=>{i.key==="Enter"?(i.preventDefault(),a.click()):i.key==="Escape"&&(i.preventDefault(),n.click())})}onClose(){let{contentEl:e}=this;e.empty(),this.resolve&&this.resolve(null)}}});function jc(r){let e=r.trim();return e.startsWith("#")?e.slice(1):e}function wat(r,e){let t=jc(r),n=jc(e);return!t||!n?!1:t.toLowerCase()===n.toLowerCase()}function AI(r,e,t="all"){let n=jc(r),a=jc(e);return t==="exact-only"?wat(n,a):br.matchesHierarchicalTagExact(n,a)}function Lu(r,e,t="all"){return r.filter(n=>!AI(n,e,t))}function hV(r){return r.taskIdentificationMethod==="tag"&&!!r.hideIdentifyingTagsInCards&&!!r.taskTag}function _I(r,e){return hV(e)?Lu(r,e.taskTag,e.hideIdentifyingTagsMode):[...r]}function Cbe(r,e,t,n="all"){let a=[...r],i=e.filter(o=>AI(o,t,n)).map(jc),s=i.length>0?i:[jc(t)];for(let o of s)o&&(a.some(l=>jc(l)===o)||a.push(o));return a}var fm=y(()=>{Du()});function Ebe(r,e){r.addEventListener("focus",e),r.addEventListener("click",e)}var RI,Sat,II,hm,NI,tE=y(()=>{RI=require("obsidian");fm();K();Sat=N({tag:"Modals/TaskModalSuggests"});II=class extends RI.AbstractInputSuggest{constructor(e,t,n){super(e,t),this.plugin=n,this.input=t,Ebe(this.input,()=>this.open())}async getSuggestions(e){let t=this.input.value.split(",").map(s=>s.trim()),n=t[t.length-1],a=this.plugin.cacheManager.getAllContexts(),i=t.slice(0,-1);return a.filter(s=>s&&typeof s=="string").filter(s=>!i.includes(s)&&(!n||s.toLowerCase().includes(n.toLowerCase()))).slice(0,10).map(s=>({value:s,display:s,type:"context",toString(){return this.value}}))}renderSuggestion(e,t){t.textContent=e.display}selectSuggestion(e){let t=this.input.value.split(",").map(n=>n.trim());t[t.length-1]=e.value,this.input.value=t.join(", ")+", ",this.input.dispatchEvent(new Event("input",{bubbles:!0})),this.input.focus()}},hm=class extends RI.AbstractInputSuggest{constructor(e,t,n){super(e,t),this.plugin=n,this.input=t,Ebe(this.input,()=>this.open())}async getSuggestions(e){let t=this.input.value.split(",").map(s=>s.trim()),n=t[t.length-1],a=_I(this.plugin.cacheManager.getAllTags(),this.plugin.settings),i=t.slice(0,-1);return a.filter(s=>s&&typeof s=="string").filter(s=>!i.includes(s)&&(!n||s.toLowerCase().includes(n.toLowerCase()))).slice(0,10).map(s=>({value:s,display:s,type:"tag",toString(){return this.value}}))}renderSuggestion(e,t){t.textContent=e.display}selectSuggestion(e){let t=this.input.value.split(",").map(n=>n.trim());t[t.length-1]=e.value,this.input.value=t.join(", ")+", ",this.input.dispatchEvent(new Event("input",{bubbles:!0})),this.input.focus()}},NI=class extends RI.AbstractInputSuggest{constructor(e,t,n,a){super(e,t),this.plugin=n,this.input=t,this.fieldConfig=a}async getSuggestions(e){let t=this.fieldConfig.type==="list",n="",a=[];if(t?(a=this.input.value.split(",").map(o=>o.trim()),n=a[a.length-1]||""):n=this.input.value.trim(),!n)return[];let i=n.match(/\[\[([^\]]*)$/);if(i){let o=i[1]||"",{FileSuggestHelper:l}=await Promise.resolve().then(()=>(jS(),eU));return(await l.suggest(this.plugin,o,20,this.fieldConfig.autosuggestFilter)).map(d=>({value:d.insertText,display:d.displayText,type:"user-field",fieldKey:this.fieldConfig.key,toString(){return this.value}}))}return(await this.getExistingUserFieldValues(this.fieldConfig.key)).filter(o=>o&&typeof o=="string").filter(o=>o.toLowerCase().includes(n.toLowerCase())&&(!t||!a.slice(0,-1).includes(o))).slice(0,10).map(o=>({value:o,display:o,type:"user-field",fieldKey:this.fieldConfig.key,toString(){return this.value}}))}async getExistingUserFieldValues(e){var a,i;let t=async()=>{try{let s=this.plugin.app.vault.getMarkdownFiles(),o=new Set;for(let l of s)try{let c=this.plugin.app.metadataCache.getFileCache(l),d=c==null?void 0:c.frontmatter;if(d&&d[e]!==void 0){let u=d[e];Array.isArray(u)?u.forEach(p=>{typeof p=="string"&&p.trim()&&o.add(p.trim())}):typeof u=="string"&&u.trim()?o.add(u.trim()):(typeof u=="number"||typeof u=="boolean")&&o.add(u.toString())}if(o.size>=200)break}catch(c){continue}return Array.from(o).sort()}catch(s){return Sat.error("Error getting user field values:",{category:"persistence",operation:"getting-user-field-values",error:s}),[]}},n=(i=(a=this.plugin.settings)==null?void 0:a.suggestionDebounceMs)!=null?i:0;return n?new Promise(s=>{let o=this.plugin;o.__userFieldSuggestTimer&&window.clearTimeout(o.__userFieldSuggestTimer),o.__userFieldSuggestTimer=window.setTimeout(()=>{(async()=>s(await t()))()},n)}):t()}renderSuggestion(e,t){t.textContent=e.display}selectSuggestion(e){var n;if(this.fieldConfig.type==="list"){let a=this.input.value.split(","),i=(n=a.pop())!=null?n:"",s=a.join(","),o=i.trim(),l=/\[\[/.test(o)?o.replace(/\[\[[^\]]*$/,`[[${e.value}]]`):e.value,c=(s?s+", ":"")+l;this.input.value=c.endsWith(",")?c+" ":c+", "}else{let a=this.input.value,i=a.replace(/\[\[[^\]]*$/,`[[${e.value}]]`);this.input.value=i===a?e.value:i}this.input.dispatchEvent(new Event("input",{bubbles:!0})),this.input.focus()}}});function FI(r,e,t=n=>n.path){return r.map(n=>{switch(e){case"filenames":return Dbe(n.path);case"markdown-links":return`[[${t(n)}]]`;case"titles":return n.title||Dbe(n.path);case"paths":return n.path}}).join(`
|
||
`)}function Dbe(r){return(r.split("/").pop()||r).replace(/\.md$/i,"")}var gV=y(()=>{});function wk(r){let e=new Set,t=[];for(let n of r!=null?r:[]){if(typeof n!="string")continue;let a=jc(n);!a||e.has(a)||(e.add(a),t.push(a))}return t}function rE(r){return!r||typeof r!="string"?[]:wk(r.split(","))}function Pbe(r,e){let t=wk(r.tags);return e.taskIdentificationMethod!=="tag"?t:Lu(t,e.taskTag,e.hideIdentifyingTagsMode)}function OI(r,e){let t=wk(r),n=new Set(t);for(let a of e){let i=jc(a);!i||n.has(i)||(n.add(i),t.push(i))}return t.length>0?t:void 0}function nE(r,e){let t=new Set(rE(e.join(",")));if(t.size===0){let a=wk(r);return a.length>0?a:void 0}let n=wk(r).filter(a=>!t.has(a));return n.length>0?n:void 0}function LI(r,e){let t=wk(r);if(e.taskIdentificationMethod!=="tag")return;let n=t.filter(a=>AI(a,e.taskTag,e.hideIdentifyingTagsMode));return n.length>0?n:void 0}var yV=y(()=>{fm()});function Sk(r){return r.setSubmenu()}function Mbe(r){var t,n;let e=r;return(n=(t=e.dom)!=null?t:e.domEl)!=null?n:null}var na,gm,xk,vV=y(()=>{na=require("obsidian");bk();Pu();ro();fV();tE();gV();yV();K();gm=N({tag:"Components/BatchContextMenu"});xk=class{constructor(e){this.menu=new Ea,this.options=e,this.buildMenu()}t(e,t){return this.options.plugin.i18n.translate(e,t)}buildMenu(){let{selectedPaths:e}=this.options,t=e.length;this.menu.addItem(n=>{n.setTitle(`${t} tasks selected`),n.setIcon("check-square"),n.setDisabled(!0)}),this.menu.addSeparator(),this.menu.addItem(n=>{n.setTitle(this.t("contextMenus.task.status")),n.setIcon("circle");let a=Sk(n);this.addStatusOptions(a)}),this.menu.addItem(n=>{n.setTitle(this.t("contextMenus.task.priority")),n.setIcon("star");let a=Sk(n);this.addPriorityOptions(a)}),this.menu.addItem(n=>{n.setTitle(this.t("contextMenus.task.tags")),n.setIcon("tags");let a=Sk(n);this.addTagOptions(a)}),this.menu.addSeparator(),this.menu.addItem(n=>{n.setTitle(this.t("contextMenus.task.dueDate")),n.setIcon("calendar");let a=Sk(n);this.addDateOptions(a,"due")}),this.menu.addItem(n=>{n.setTitle(this.t("contextMenus.task.scheduledDate")),n.setIcon("calendar-clock");let a=Sk(n);this.addDateOptions(a,"scheduled")}),this.menu.addSeparator(),this.menu.addItem(n=>{n.setTitle(this.t("contextMenus.task.archive")),n.setIcon("archive"),n.onClick(async()=>{await this.batchArchive(!0)})}),this.menu.addItem(n=>{n.setTitle(this.t("contextMenus.task.unarchive")),n.setIcon("archive-restore"),n.onClick(async()=>{await this.batchArchive(!1)})}),this.menu.addSeparator(),this.menu.addItem(n=>{n.setTitle("Copy selected tasks"),n.setIcon("copy");let a=Sk(n);this.addCopyOptions(a)}),this.menu.addSeparator(),this.menu.addItem(n=>{n.setTitle("Clear selection"),n.setIcon("x"),n.onClick(()=>{var a,i;(a=this.options.plugin.taskSelectionService)==null||a.clearSelection(),(i=this.options.plugin.taskSelectionService)==null||i.exitSelectionMode()})}),this.menu.addSeparator(),this.menu.addItem(n=>{n.setTitle(`Delete ${t} tasks`),n.setIcon("trash"),n.onClick(async()=>{await this.batchDelete()})})}addTagOptions(e){e.addItem(t=>{t.setTitle(this.t("contextMenus.task.addTag")),t.setIcon("plus"),t.onClick(()=>{this.openBatchTagInput("add")})}),e.addItem(t=>{t.setTitle(this.t("contextMenus.task.removeTagInput")),t.setIcon("x"),t.onClick(()=>{this.openBatchTagInput("remove")})}),e.addSeparator(),e.addItem(t=>{t.setTitle(this.t("contextMenus.task.clearTags")),t.setIcon("eraser"),t.onClick(async()=>{await this.batchUpdateTags(n=>LI(n.tags,this.options.plugin.settings))})})}addCopyOptions(e){let t=[{title:"Copy filenames",icon:"file-text",format:"filenames"},{title:"Copy Markdown links",icon:"link",format:"markdown-links"},{title:"Copy titles",icon:"text",format:"titles"},{title:"Copy paths",icon:"copy",format:"paths"}];for(let n of t)e.addItem(a=>{a.setTitle(n.title),a.setIcon(n.icon),a.onClick(async()=>{await this.copySelectedTasks(n.format)})})}addStatusOptions(e){let n=[...this.options.plugin.settings.customStatuses].sort((a,i)=>a.order-i.order);for(let a of n)e.addItem(i=>{i.setTitle(a.label),i.setIcon(a.icon||"circle"),i.onClick(async()=>{await this.batchUpdateProperty("status",a.value)}),a.color&&window.setTimeout(()=>{let s=Mbe(i);if(s){let o=s.querySelector(".menu-item-icon");o&&(o.style.color=a.color)}},10)})}addPriorityOptions(e){let t=this.options.plugin.priorityManager.getPrioritiesByWeight();for(let n of t)e.addItem(a=>{a.setTitle(n.label),a.setIcon("star"),a.onClick(async()=>{await this.batchUpdateProperty("priority",n.value)}),n.color&&window.setTimeout(()=>{let i=Mbe(a);if(i){let s=i.querySelector(".menu-item-icon");s&&(s.style.color=n.color)}},10)});e.addSeparator(),e.addItem(n=>{n.setTitle(this.t("contextMenus.priority.clearPriority")),n.setIcon("x"),n.onClick(async()=>{await this.batchUpdateProperty("priority",void 0)})})}addDateOptions(e,t){let i=new Bl({currentValue:void 0,onSelect:()=>{},plugin:this.options.plugin,app:this.options.plugin.app}).getDateOptions().filter(s=>s.category==="basic");for(let s of i)e.addItem(o=>{s.icon&&o.setIcon(s.icon),o.setTitle(s.label),o.onClick(async()=>{await this.batchUpdateProperty(t,s.value)})});e.addSeparator(),e.addItem(s=>{s.setTitle(this.t("contextMenus.date.clearDate")),s.setIcon("x"),s.onClick(async()=>{await this.batchUpdateProperty(t,void 0)})})}async openBatchTagInput(e){let{plugin:t}=this.options,n=await Tk(t.app,{title:e==="add"?this.t("contextMenus.task.addTag"):this.t("contextMenus.task.removeTagInput"),placeholder:this.t("contextMenus.task.tagPlaceholder"),confirmText:this.t("common.confirm"),cancelText:this.t("common.cancel"),onInputReady:i=>{new hm(t.app,i,t)}}),a=rE(n);a.length!==0&&await this.batchUpdateTags(i=>e==="add"?OI(i.tags,a):nE(i.tags,a))}async copySelectedTasks(e){let{plugin:t,selectedPaths:n}=this.options,a=[];for(let s of n){let o=await t.cacheManager.getTaskInfo(s);a.push({path:s,title:o==null?void 0:o.title})}let i=FI(a,e,s=>this.getMarkdownLinkText(s.path));await navigator.clipboard.writeText(i),new na.Notice(`Copied ${a.length} tasks`)}getMarkdownLinkText(e){let t=this.options.plugin.app.vault.getAbstractFileByPath(e);return t instanceof na.TFile?this.options.plugin.app.metadataCache.fileToLinktext(t,""):e}async batchUpdateTags(e){var s,o;let{plugin:t,selectedPaths:n,onUpdate:a}=this.options,i=n.length;try{new na.Notice(`Updating tags on ${i} tasks...`);let l=0,c=0;for(let d of n)try{let u=await t.cacheManager.getTaskInfo(d);u?(await t.taskService.updateProperty(u,"tags",e(u)),l++):c++}catch(u){gm.error(`[BatchContextMenu] Failed to update tags for ${d}:`,{category:"validation",operation:"update-tags",error:u}),c++}c===0?new na.Notice(`Updated tags on ${l} tasks`):new na.Notice(`Updated tags on ${l} tasks, ${c} failed`),(s=t.taskSelectionService)==null||s.clearSelection(),(o=t.taskSelectionService)==null||o.exitSelectionMode(),a==null||a()}catch(l){gm.error("[BatchContextMenu] Batch tag update failed:",{category:"validation",operation:"batch-tag-update",error:l}),new na.Notice(this.t("contextMenus.task.notices.updateTagsFailed"))}}async batchUpdateProperty(e,t){var o,l;let{plugin:n,selectedPaths:a,onUpdate:i}=this.options,s=a.length;try{new na.Notice(`Updating ${s} tasks...`);let c=0,d=0;for(let u of a)try{let p=await n.cacheManager.getTaskInfo(u);p?(await n.taskService.updateProperty(p,e,t),c++):d++}catch(p){gm.error(`[BatchContextMenu] Failed to update task ${u}:`,{category:"validation",operation:"update-task",error:p}),d++}d===0?new na.Notice(`Updated ${c} tasks`):new na.Notice(`Updated ${c} tasks, ${d} failed`),(o=n.taskSelectionService)==null||o.clearSelection(),(l=n.taskSelectionService)==null||l.exitSelectionMode(),i==null||i()}catch(c){gm.error("[BatchContextMenu] Batch update failed:",{category:"validation",operation:"batch-update",error:c}),new na.Notice("Failed to update tasks")}}async batchArchive(e){var s,o;let{plugin:t,selectedPaths:n,onUpdate:a}=this.options,i=n.length;try{new na.Notice(`${e?"Archiving":"Unarchiving"} ${i} tasks...`);let l=0,c=0;for(let d of n)try{let u=await t.cacheManager.getTaskInfo(d);u&&u.archived!==e?(await t.toggleTaskArchive(u),l++):u?l++:c++}catch(u){gm.error(`[BatchContextMenu] Failed to archive task ${d}:`,{category:"persistence",operation:"archive-task",error:u}),c++}c===0?new na.Notice(`${e?"Archived":"Unarchived"} ${l} tasks`):new na.Notice(`${e?"Archived":"Unarchived"} ${l} tasks, ${c} failed`),(s=t.taskSelectionService)==null||s.clearSelection(),(o=t.taskSelectionService)==null||o.exitSelectionMode(),a==null||a()}catch(l){gm.error("[BatchContextMenu] Batch archive failed:",{category:"persistence",operation:"batch-archive",error:l}),new na.Notice("Failed to archive tasks")}}async batchDelete(){var s,o;let{plugin:e,selectedPaths:t,onUpdate:n}=this.options,a=t.length;if(await Ir(e.app,{title:"Delete tasks",message:`Are you sure you want to delete ${a} tasks? This action cannot be undone.`,confirmText:"Delete",cancelText:this.t("common.cancel"),isDestructive:!0}))try{new na.Notice(`Deleting ${a} tasks...`);let l=0,c=0;for(let d of t)try{let u=await e.cacheManager.getTaskInfo(d);u?(await e.taskService.deleteTask(u),l++):c++}catch(u){gm.error(`[BatchContextMenu] Failed to delete task ${d}:`,{category:"persistence",operation:"delete-task",error:u}),c++}c===0?new na.Notice(`Deleted ${l} tasks`):new na.Notice(`Deleted ${l} tasks, ${c} failed`),(s=e.taskSelectionService)==null||s.clearSelection(),(o=e.taskSelectionService)==null||o.exitSelectionMode(),n==null||n()}catch(l){gm.error("[BatchContextMenu] Batch delete failed:",{category:"persistence",operation:"batch-delete",error:l}),new na.Notice("Failed to delete tasks")}}show(e){this.menu.showAtMouseEvent(e)}showAtPosition(e,t){this.menu.showAtPosition({x:e,y:t})}}});function Cat(r){return xat.includes(r)}function $i(r,e){return r.map(t=>Cat(t)?t:t in e.fieldMapper.getMapping()?e.fieldMapper.toUserField(t):t)}function Ck(r,e,t){return t.fieldMapper.isPropertyForField(r,e)}var xat,$c=y(()=>{xat=["tags","blocked","blocking"]});var aE,Eat,Dat,Pat,Mat,Aat,_at,Iat,kV,pa,ag=y(()=>{t_();t_();aE=["status","priority","due","scheduled","projects","contexts"],Eat=[{id:"none",value:"none",label:"None",color:"#cccccc",isCompleted:!1,excludeFromCycle:!1,order:0,autoArchive:!1,autoArchiveDelay:5},{id:"open",value:"open",label:"Open",color:"#808080",isCompleted:!1,excludeFromCycle:!1,order:1,autoArchive:!1,autoArchiveDelay:5},{id:"in-progress",value:"in-progress",label:"In progress",color:"#0066cc",isCompleted:!1,excludeFromCycle:!1,order:2,autoArchive:!1,autoArchiveDelay:5},{id:"done",value:"done",label:"Done",color:"#00aa00",isCompleted:!0,excludeFromCycle:!1,order:3,autoArchive:!1,autoArchiveDelay:5}],Dat=[{id:"none",value:"none",label:"None",color:"#cccccc",weight:0},{id:"low",value:"low",label:"Low",color:"#00aa00",weight:1},{id:"normal",value:"normal",label:"Normal",color:"#ffaa00",weight:2},{id:"high",value:"high",label:"High",color:"#ff0000",weight:3}],Pat={defaultContexts:"",defaultTags:"",defaultProjects:"",useParentNoteForTaskCreation:!1,useParentNoteAsProject:!1,useParentHeaderAsProject:!1,inheritParentTaskProperties:!1,defaultTimeEstimate:0,defaultRecurrence:"none",defaultDueDate:"none",defaultDueTime:"none",defaultScheduledDate:"today",defaultScheduledTime:"none",bodyTemplate:"",useBodyTemplate:!1,occurrenceBodyTemplate:"",useOccurrenceBodyTemplate:!1,defaultReminders:[]},Mat={defaultView:"dayGridMonth",customDayCount:3,slotDuration:"00:30:00",slotMinTime:"00:00:00",slotMaxTime:"24:00:00",scrollTime:"08:00:00",firstDay:1,timeFormat:"24",showWeekends:!0,locale:"",defaultShowScheduled:!0,defaultShowDue:!0,defaultShowDueWhenScheduled:!0,defaultShowScheduledToDueSpan:!1,defaultShowTimeEntries:!1,defaultShowRecurring:!0,defaultShowICSEvents:!0,enableTimeblocking:!1,defaultShowTimeblocks:!0,defaultTimeblockColor:"#6366f1",timeblockAttachmentSearchOrder:"name-asc",nowIndicator:!0,selectMirror:!0,weekNumbers:!1,showTodayHighlight:!0,eventMinHeight:15,slotEventOverlap:!0,eventMaxStack:null,dayMaxEvents:!0,dayMaxEventRows:!1},Aat={defaultNoteTemplate:"",defaultNoteFolder:"",icsNoteFilenameFormat:"title",customICSNoteFilenameTemplate:"{title}",enableAutoExport:!1,autoExportPath:"tasknotes-calendar.ics",autoExportInterval:60,useDurationForExport:!1,excludeArchivedFromExport:!1,excludeCompletedFromExport:!1,requireDueDateForExport:!1,requireScheduledDateForExport:!1,useICSEndAsDue:!1,recurringEventRelatedNotesMode:"series"},_at={enabled:!1,targetCalendarId:"",syncOnTaskCreate:!0,syncOnTaskUpdate:!0,syncOnTaskComplete:!0,syncOnTaskDelete:!0,eventTitleTemplate:"{{title}}",includeDescription:!0,eventColorId:null,syncTrigger:"scheduled",createAsAllDay:!0,defaultEventDuration:60,includeObsidianLink:!0,defaultReminderMinutes:null},Iat={enableFuzzy:!1,rows:["{title|n(Title)}","{aliases|n(Aliases)}","{file.path|n(Path)}"],showAdvanced:!1,requiredTags:[],includeFolders:[],propertyKey:"",propertyValue:""},kV={triggers:[{propertyId:"tags",trigger:"#",enabled:!0},{propertyId:"contexts",trigger:"@",enabled:!0},{propertyId:"projects",trigger:"+",enabled:!0},{propertyId:"status",trigger:"*",enabled:!0},{propertyId:"priority",trigger:"!",enabled:!1}]},pa={tasksFolder:"TaskNotes/Tasks",moveArchivedTasks:!1,archiveFolder:"TaskNotes/Archive",taskTag:"task",taskIdentificationMethod:"tag",hideIdentifyingTagsInCards:!1,hideIdentifyingTagsMode:"all",taskPropertyName:"",taskPropertyValue:"",excludedFolders:"",defaultTaskPriority:"normal",defaultTaskStatus:"open",taskOrgFiltersCollapsed:!1,taskFilenameFormat:"zettel",storeTitleInFilename:!0,customFilenameTemplate:"{{title}}",occurrenceFilenameTemplate:"",occurrenceFilenameTemplateProperty:"occurrenceFilenameTemplate",taskCreationDefaults:Pat,openTaskAfterCreation:"none",calendarViewSettings:Mat,pomodoroWorkDuration:25,pomodoroShortBreakDuration:5,pomodoroLongBreakDuration:15,pomodoroLongBreakInterval:4,pomodoroAutoStartBreaks:!0,pomodoroAutoStartWork:!1,pomodoroNotifications:!0,pomodoroSoundEnabled:!0,pomodoroSoundVolume:50,pomodoroStorageLocation:"plugin",pomodoroMobileSidebar:"tab",showPomodoroInStatusBar:!0,enableTaskLinkOverlay:!0,disableOverlayOnAlias:!1,enableInstantTaskConvert:!0,useDefaultsOnInstantConvert:!0,preserveCheckboxOnConvert:!1,taskModalTabMovesFocus:!0,enableNaturalLanguageInput:!0,nlpDefaultToScheduled:!0,nlpLanguage:"en",uiLanguage:"system",statusSuggestionTrigger:"*",nlpTriggers:kV,singleClickAction:"edit",doubleClickAction:"openNote",projectAutosuggest:Iat,inlineTaskConvertFolder:"{{currentNotePath}}",disableNoteIndexing:!1,suggestionDebounceMs:0,fieldMapping:bS,customStatuses:Eat,customPriorities:Dat,recurrenceMigrated:!1,lastSeenVersion:void 0,showReleaseNotesOnUpdate:!0,checkForUpdatesOnStartup:!0,lastNotifiedReleaseVersion:void 0,starterNoteCreated:!1,showTrackedTasksInStatusBar:!1,autoStopTimeTrackingOnComplete:!0,autoStopTimeTrackingNotification:!1,showRelationships:!0,relationshipsPosition:"bottom",showTaskCardInNote:!0,showCompletedTaskStrikethrough:!0,showExpandableSubtasks:!0,expandSubtasksByDefault:!1,subtaskChevronPosition:"right",viewsButtonAlignment:"right",hideCompletedFromOverdue:!0,icsIntegration:Aat,savedViews:[],enableNotifications:!0,notificationType:"system",notificationSoundEnabled:!1,notificationSoundVolume:50,enableAPI:!1,apiPort:8080,apiAuthToken:"",enableMCP:!1,webhooks:[],userFields:[],modalFieldsConfig:void 0,enableModalSplitLayout:!0,defaultVisibleProperties:["status","priority","due","scheduled","projects","contexts","tags","blocked","blocking"],inlineVisibleProperties:["status","priority","due","scheduled","recurrence"],enableBases:!0,enableMdbaseSpec:!1,autoCreateDefaultBasesFiles:!0,commandFileMapping:{"open-calendar-view":"TaskNotes/Views/mini-calendar-default.base","open-kanban-view":"TaskNotes/Views/kanban-default.base","open-tasks-view":"TaskNotes/Views/tasks-default.base","open-advanced-calendar-view":"TaskNotes/Views/calendar-default.base","open-agenda-view":"TaskNotes/Views/agenda-default.base","pomodoro-stats-base":"TaskNotes/Views/pomodoro-stats.base",relationships:"TaskNotes/Views/relationships.base"},maintainDueDateOffsetInRecurring:!1,resetCheckboxesOnRecurrence:!1,useFrontmatterMarkdownLinks:!1,enableGoogleCalendar:!1,enableMicrosoftCalendar:!1,disableCalendarOnMobile:!1,enabledGoogleCalendars:[],googleCalendarSyncTokens:{},enabledMicrosoftCalendars:[],microsoftCalendarSyncTokens:{},googleCalendarExport:_at,enableDebugLogging:!1}});function Abe(r){return Rat.has(r.trim().toLowerCase())}function jI(r){return typeof r=="object"&&r!==null&&typeof r.renderTo=="function"&&typeof r.toString=="function"}function zI(r){let e=r.toString();return e==="[object Object]"?"":e}function bV(r){var t;return r==null||((t=r.constructor)==null?void 0:t.name)==="NullValue"?!0:jI(r)&&Abe(zI(r))}function iE(r){return bV(r)?!0:Array.isArray(r)?r.every(iE):typeof r=="string"?r.trim()===""||Abe(r):jI(r)?zI(r).trim()==="":!1}function $I(r,e,t){if(!jI(e)||bV(e))return!1;try{e.renderTo(r,t),!r.hasChildNodes()&&!r.textContent&&(r.textContent=zI(e))}catch(n){Nat.debug("[TaskNotes] Error rendering Bases value:",{category:"persistence",operation:"rendering-bases-value",error:n}),r.textContent=zI(e)}return!0}function zu(r){if(bV(r))return"";if(jI(r))return r;if(r&&typeof r=="object"&&"icon"in r){let e=r;if(e.icon==="lucide-link"&&"data"in e&&e.data!==null&&e.data!==void 0){let t=J(e.data);if(!t.match(/^[a-z]+:\/\//i)){let a="display"in e&&e.display?J(e.display):null;return a&&a!==t?`[[${t}|${a}]]`:`[[${t}]]`}let n="display"in e&&e.display?J(e.display):null;return n?`[${n}](${t})`:t}return"display"in e&&e.display!==null&&e.display!==void 0?e.display:"date"in e&&e.date!==null&&e.date!==void 0?e.date:"data"in e&&e.data!==null&&e.data!==void 0?e.data:e.icon==="lucide-file-question"||e.icon==="lucide-help-circle"?"":e.icon?J(e.icon).replace("lucide-",""):""}return r}function BI(r,e={},t){var a;let n=(a=e.propertyLabels)==null?void 0:a[r];return n&&n.trim()!==""?n:t&&t.trim()!==""?t:r.startsWith("formula.")?r.substring(8):r.charAt(0).toUpperCase()+r.slice(1)}var Nat,Rat,sE=y(()=>{kr();K();Nat=N({tag:"Ui/TaskCardPresentation"}),Rat=new Set(["null","undefined"])});function TV(r){return r!==null&&typeof r=="object"&&typeof r.getValue=="function"?r:null}function _be(r){return Object.prototype.hasOwnProperty.call(Nbe,r)}function Ibe(r,e){return Nbe[e](r)}function SV(r,e,t){try{let n=t.fieldMapper.lookupMappingKey(e);if(n&&_be(n))return Ibe(r,n);if(_be(e))return Ibe(r,e);if(e.startsWith("user:"))return Fat(r,e,t);if(r.customProperties&&e in r.customProperties)return zu(r.customProperties[e]);if(r.customProperties){let i=`file.${e}`;if(i in r.customProperties)return zu(r.customProperties[i])}if(e.startsWith("file.")){let i=TV(r.basesData);if(i)try{let s=i.getValue(e);if(s!=null)return zu(s)}catch(s){}}if(e.startsWith("formula."))try{let i=TV(r.basesData);if(!i)return"";let s=i.getValue(e);if(s==null)return"";let o=zu(s);return o!==""?o:""}catch(i){return wV.debug(`[TaskNotes] Error computing formula ${e}:`,{category:"validation",operation:"computing-formula",error:i}),"[Formula Error]"}let a=TV(r.basesData);if(a)try{let i=`note.${e}`,s=a.getValue(i);if(s!=null)return zu(s)}catch(i){}if(r.path){let i=Rbe(r.path,e,t);if(i!==void 0)return i}return null}catch(n){return wV.warn(`TaskCard: Error getting property ${e}:`,{category:"persistence",operation:"taskcard-getting-property",error:n}),null}}function Fat(r,e,t){var s;let n=e.slice(5),a=(s=t.settings.userFields)==null?void 0:s.find(o=>o.id===n);if(!(a!=null&&a.key))return null;let i=r[a.key];return i===void 0&&(i=Rbe(r.path,a.key,t)),i}function Rbe(r,e,t){try{let n=t.app.metadataCache.getCache(r);return n!=null&&n.frontmatter?n.frontmatter[e]:void 0}catch(n){wV.warn(`TaskCard: Error accessing frontmatter for ${r}:`,{category:"validation",operation:"taskcard-accessing-frontmatter",error:n});return}}var wV,Nbe,Fbe=y(()=>{sE();K();wV=N({tag:"Ui/TaskCardPropertyAccess"});Nbe={due:r=>r.due,scheduled:r=>r.scheduled,projects:r=>r.projects,contexts:r=>r.contexts,tags:r=>r.tags,blocked:r=>r.isBlocked,blocking:r=>r.isBlocking,blockedBy:r=>r.blockedBy,blockingTasks:r=>r.blocking,timeEstimate:r=>r.timeEstimate,timeEntries:r=>r.timeEntries,totalTrackedTime:r=>r.totalTrackedTime,recurrence:r=>r.recurrence,recurrenceParent:r=>r.recurrence_parent,occurrenceDate:r=>r.occurrence_date,occurrenceMaterialization:r=>r.occurrence_materialization,occurrenceNextTrigger:r=>r.occurrence_next_trigger,occurrenceTemplate:r=>r.occurrence_template,occurrencePastHorizon:r=>r.occurrence_past_horizon,occurrenceFutureHorizon:r=>r.occurrence_future_horizon,completedDate:r=>r.completedDate,reminders:r=>r.reminders,icsEventId:r=>r.icsEventId,completeInstances:r=>r.complete_instances,skippedInstances:r=>r.skipped_instances,dateCreated:r=>r.dateCreated,dateModified:r=>r.dateModified,sortOrder:r=>r.sortOrder,googleCalendarSync:r=>r.path,checklistProgress:r=>r.path}});function no(r,e,t){return r.i18n.translate(`ui.taskCard.${e}`,t)}function Bc(r,e,t){let n=t==null?void 0:t[r];if(n&&n.trim()!=="")return n;let a=Oat(r,e,t),i={due:no(e,"labels.due"),scheduled:no(e,"labels.scheduled"),recurrence:no(e,"labels.recurrence"),completedDate:no(e,"labels.completed"),dateCreated:no(e,"labels.created"),dateModified:no(e,"labels.modified"),blocked:no(e,"labels.blocked"),blocking:no(e,"labels.blocking")};return BI(r,{propertyLabels:a?{[r]:a}:t},i[r])}function Oat(r,e,t){var n,a;if(t){for(let[i,s]of Object.entries(t))if(!(i===r||s.trim()==="")&&((a=(n=e.fieldMapper)==null?void 0:n.lookupMappingKey)==null?void 0:a.call(n,i))===r)return s}}function oE(r,e,t){return no(r,"recurrenceTooltip",{label:Bc("recurrence",r,t),value:yfe(e)})}function xV(r,e){return e===1?no(r,"reminderTooltipOne"):no(r,"reminderTooltipMany",{count:e})}function UI(r,e){return e?no(r,"collapseSubtasks"):no(r,"expandSubtasks")}var CV=y(()=>{Ct();sE();Fbe()});function Lbe(r,e,t){r.createEl("a",{text:t,attr:{href:e,target:"_blank",rel:"noopener"}}).classList.add("external-link")}function jat(r){return zat.test(r)}function Ul(r,e,t,n,a={}){var p;let{cssClass:i="internal-link",hoverSource:s="tasknotes-property-link",showErrorNotices:o=!1,onPrimaryNavigate:l}=a,c=(p=n.sourcePath)!=null?p:"",d=Et(e),u=r.createEl("a",{cls:i,text:t,attr:{"data-href":d,role:"link",tabindex:"0"}});u.addEventListener("click",m=>{m.preventDefault(),m.stopPropagation(),(async()=>{try{if(m.ctrlKey||m.metaKey){n.workspace.openLinkText(d,c,!0);return}if(l&&await l(d,m)!==!1)return;let f=n.metadataCache.getFirstLinkpathDest(d,c)||n.metadataCache.getFirstLinkpathDest(d,"");f instanceof ym.TFile?await n.workspace.getLeaf(!1).openFile(f):o&&new ym.Notice(`Note "${t}" not found`)}catch(f){Obe.error("[TaskNotes] Error opening internal link:",{category:"internal",operation:"opening-internal-link",details:{filePath:e},error:f}),o&&new ym.Notice(`Failed to open note "${t}"`)}})()}),u.addEventListener("auxclick",m=>{m.button===1&&(m.preventDefault(),m.stopPropagation(),(async()=>{try{(n.metadataCache.getFirstLinkpathDest(d,c)||n.metadataCache.getFirstLinkpathDest(d,""))instanceof ym.TFile&&n.workspace.openLinkText(d,c,!0)}catch(f){Obe.error("[TaskNotes] Error opening internal link:",{category:"internal",operation:"opening-internal-link",details:{filePath:e},error:f})}})())}),u.addEventListener("keydown",m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),u.click())}),u.addEventListener("mouseover",m=>{let f=n.metadataCache.getFirstLinkpathDest(d,c)||n.metadataCache.getFirstLinkpathDest(d,"");if(f instanceof ym.TFile){let h={event:m,source:s,hoverParent:r,targetEl:u,linktext:d,sourcePath:c||f.path};n.workspace.trigger("hover-link",h)}})}function Uc(r,e,t,n){let a=0,i;for(;(i=Lat.exec(e))!==null;){let[o,l,c,d,u,p]=i,m=i.index;if(m>a&&r.appendChild(activeDocument.createTextNode(e.slice(a,m))),l){let f=l,h=f,g=f;if(f.includes("|")){let[v,b]=f.split("|");h=v,g=b}Ul(r,h,g,t)}else if(c&&d){let f=String(d).trim(),h=String(c).trim();jat(f)?Lbe(r,f,h):Ul(r,f,h,t)}else if(u||p){let f=String(u||p);Lbe(r,f,f)}else r.appendChild(activeDocument.createTextNode(o));a=m+o.length}let s=e.slice(a);if(s&&(n!=null&&n.onTagClick)){let o=/(^|\s)(#[\p{L}\p{N}\p{M}_/-]+)/gu,l=0,c;for(;(c=o.exec(s))!==null;){let[,d,u]=c,p=c.index;p>l&&r.appendChild(activeDocument.createTextNode(s.slice(l,p))),d&&r.appendChild(activeDocument.createTextNode(d));let m=r.createEl("a",{cls:"tag",text:u,attr:{href:u,role:"button",tabindex:"0","data-tn-click-exclude":"true"}});m.addEventListener("click",f=>{f.preventDefault(),f.stopPropagation(),n.onTagClick(u,f)}),m.addEventListener("keydown",f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),f.stopPropagation(),n.onTagClick(u,f))}),l=p+d.length+u.length}l<s.length&&r.appendChild(activeDocument.createTextNode(s.slice(l)))}else s&&r.appendChild(activeDocument.createTextNode(s))}function $at(r){return!r||typeof r!="string"||!r.startsWith("[[")||!r.endsWith("]]")||r.startsWith("\\[[")||r.endsWith("\\]]")?!1:r.slice(2,-2).trim().length>0}function Bat(r){return!r||typeof r!="string"?!1:/^\[([^\]]*)\]\(([^)]+)\)$/.test(r)}function Uat(r){let e=r.match(/^\[([^\]]*)\]\(([^)]+)\)$/);if(!e)return null;let t=e[1].trim(),n=e[2].trim(),a=Et(n);return{displayText:t,filePath:a}}function zbe(r,e,t){var u,p;let n=(u=t.sourcePath)!=null?u:"",a=Et(r),i=t.metadataCache.getFirstLinkpathDest(a,n)||t.metadataCache.getFirstLinkpathDest(a,"");if(!(i instanceof ym.TFile))return e;let s=t.metadataCache.getCache(i.path),o=(p=s==null?void 0:s.frontmatter)==null?void 0:p.title;if(typeof o!="string"||o.trim().length===0)return e;let l=(e==null?void 0:e.trim())||"",c=i.name,d=i.basename;return l===""||l===c||l===d||l===i.path||l===a?o:e}function Ek(r,e,t,n={}){r.innerHTML="",e.flat(2).filter(i=>i!=null&&typeof i=="string").forEach((i,s)=>{if(s>0&&r.appendChild(activeDocument.createTextNode(", ")),r.appendChild(activeDocument.createTextNode("+")),$at(i)){let o=i.slice(2,-2),l=o,c=o;if(o.includes("|")){let u=o.split("|");l=u[0].trim(),c=u[1].trim()}let d=zbe(l,c,t);Ul(r,l,d,t,{cssClass:"task-card__project-link internal-link",hoverSource:"tasknotes-project-link",showErrorNotices:!0,onPrimaryNavigate:n.onPrimaryNavigate})}else if(Bat(i)){let o=Uat(i);if(o){let l=zbe(o.filePath,o.displayText,t);Ul(r,o.filePath,l,t,{cssClass:"task-card__project-link internal-link",hoverSource:"tasknotes-project-link",showErrorNotices:!0,onPrimaryNavigate:n.onPrimaryNavigate})}else r.appendChild(activeDocument.createTextNode(i))}else r.appendChild(activeDocument.createTextNode(i))})}var ym,Obe,Lat,zat,vm=y(()=>{ym=require("obsidian");qn();K();Obe=N({tag:"Ui/Renderers/LinkRenderer"}),Lat=/\[\[([^[\]]+)\]\]|\[([^\]]+)\]\(([^)]+)\)|<(https?:\/\/[^\s>]+)>|(https?:\/\/[^\s<>()]+[^\s<>().,;:!?])|\[([^\]]+)\]\s*\[([^\]]*)\]/g,zat=/^[a-z][a-z0-9+.-]*:/i});function jbe(r,e,t){if(!e||typeof e!="string")return;let n=qat(e);if(!n)return;let a=r.createEl("a",{cls:"tag",text:n,attr:{href:n,role:"button",tabindex:"0","data-tn-click-exclude":"true"}});t!=null&&t.onTagClick&&(a.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation(),t.onTagClick(n,i)}),a.addEventListener("keydown",i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),i.stopPropagation(),t.onTagClick(n,i))}))}function Ube(r,e,t){if(typeof e=="string"){jbe(r,e,t);return}if(Array.isArray(e)){e.flat(2).filter(a=>a!=null&&typeof a=="string").forEach((a,i)=>{i>0&&r.appendChild(activeDocument.createTextNode(" ")),jbe(r,String(a),t)});return}e!=null&&r.appendChild(activeDocument.createTextNode(J(e)))}function Hbe(r,e,t){if(typeof e=="string"){$be(r,e,t);return}if(Array.isArray(e)){e.flat(2).filter(a=>a!=null&&typeof a=="string").forEach((a,i)=>{i>0&&r.appendChild(activeDocument.createTextNode(", ")),$be(r,a,t)||r.appendChild(activeDocument.createTextNode(String(a)))});return}e!=null&&r.appendChild(activeDocument.createTextNode(J(e)))}function $be(r,e,t){let n=Hat(e);if(t!=null&&t.linkServices&&Vat(n)){let o=Bbe(n),l=r.createSpan({cls:`context-tag context-tag--link ${o}`,attr:{"data-tn-click-exclude":"true"}});return l.appendChild(activeDocument.createTextNode("@")),Uc(l,n,t.linkServices),!0}let a=Yat(e);if(!a)return!1;let i=Bbe(a),s=r.createSpan({cls:`context-tag ${i}`,text:a,attr:{role:"button",tabindex:"0","data-tn-click-exclude":"true"}});return t!=null&&t.onTagClick&&(s.addEventListener("click",o=>{var l;o.preventDefault(),o.stopPropagation(),(l=t.onTagClick)==null||l.call(t,a,o)}),s.addEventListener("keydown",o=>{var l;(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),o.stopPropagation(),(l=t.onTagClick)==null||l.call(t,a,o))})),!0}function Hat(r){let e=r.trim();return e.startsWith("@")?e.slice(1).trim():e}function Vat(r){return/\[\[[^[\]]+\]\]/.test(r)||/\[[^\]]+\]\([^)]+\)/.test(r)||/<https?:\/\/[^\s>]+>/i.test(r)||/https?:\/\/[^\s<>()]+[^\s<>().,;:!?]/i.test(r)}function qat(r){if(!r||typeof r!="string")return null;let e=r.trim();if(!e)return null;let t=e.startsWith("#"),n=e.replace(/[^\p{L}\p{N}_#/-]/gu,"");return t?n.length>1?n:null:n?`#${n}`:null}function Wat(r){let e=5381;for(let t=0;t<r.length;t++)e=e*33^r.charCodeAt(t);return e>>>0}function Bbe(r){if(!r||typeof r!="string")return"context-tag--color-0";let e=r.replace(/^@/,"").toLowerCase();return e?`context-tag--color-${Wat(e)%20}`:"context-tag--color-0"}function Yat(r){if(!r||typeof r!="string")return null;let e=r.trim();if(!e)return null;let t=e.startsWith("@"),n=e.replace(/[^\p{L}\p{N}_@/-]/gu,"");return t?n.length>1?n:null:n?`@${n}`:null}var Vbe=y(()=>{kr();vm()});function km(r,e,t){return r.i18n.translate(`ui.taskCard.${e}`,t)}function Gat(r){if(r.setAttribute("role","button"),r.tabIndex=0,r.dataset.tnNoDrag==="true"){r.setAttribute("draggable","false");return}r.dataset.tnNoDrag="true",r.setAttribute("draggable","false"),r.addEventListener("mousedown",e=>{e.preventDefault(),e.stopPropagation()}),r.addEventListener("keydown",e=>{e.key!=="Enter"&&e.key!==" "||(e.preventDefault(),e.stopPropagation(),r.click())})}function Kat(r){return(Array.isArray(r)?r:r?[r]:[]).filter(t=>typeof t=="string").map(t=>t.trim()).filter(Boolean)}function Zat(r,e){let t=r.start?Vn(r.start,{userTimeFormat:e.settings.calendarViewSettings.timeFormat}):"";return t?`${r.title} (${t})`:r.title}function qbe(r){var e;return((e=r.split("/").pop())==null?void 0:e.replace(/\.md$/i,""))||r}function Qat(r,e,t){let n=os(r);if(n){let a=Ol(t.app,e.path,n),i=(a==null?void 0:a.path)||n.uid;return i?{path:i,displayText:(a==null?void 0:a.file.basename)||qbe(i)}:null}if(typeof r=="object"&&r!==null){let a=r.path;if(typeof a=="string"&&a.trim()!=="")return{path:a.trim(),displayText:qbe(a)}}return null}function Kbe(r,e,t,n){Gat(r),r.addEventListener("click",a=>{a.stopPropagation();let i=n==="due"?e.due:e.scheduled;new Bl({currentValue:de(i||""),currentTime:Oi(i||""),onSelect:(o,l)=>{(async()=>{try{let c;o?l?c=`${o}T${l}`:c=o:c=void 0,await t.updateTaskProperty(e,n,c)}catch(c){let d=c instanceof Error?c.message:String(c);DV.error(`Error updating ${n} date:`,{category:"persistence",operation:"updating",details:{value:d}});let u=n==="due"?"contextMenus.task.notices.updateDueDateFailure":"contextMenus.task.notices.updateScheduledFailure";new Dk.Notice(t.i18n.translate(u,{message:d}))}})()},dateRole:n,plugin:t,app:t.app}).show(a)})}function Zbe(r){let e=[...aE,"tags","blocked","blocking","googleCalendarSync"];return $i(e,r)}function Jat(r){return r.trim().toLowerCase()}function Xat(r,e){let t=e.app.vault.getAbstractFileByPath(r);if(!(t instanceof Dk.TFile))return null;let n=e.app.metadataCache.getFileCache(t);return eit(n)}function eit(r){if(r==null)return null;let e=r.listItems;if(!Array.isArray(e)||e.length===0)return null;let t=0,n=0;for(let a of e){if(!a||typeof a.task!="string"||typeof a.parent=="number"&&a.parent>=0)continue;let s=Jat(a.task);s!=="-"&&(t+=1,s==="x"&&(n+=1))}return t===0?null:{completed:n,total:t,percent:Math.round(n/t*100)}}function Qbe(r,e,t,n,a={}){let i=SV(t,e,n);if(!VI(i))return null;let s=r.createSpan({cls:`task-card__metadata-property task-card__metadata-property--${e.replace(":","-")}`});try{let l=n.fieldMapper.lookupMappingKey(e)||e;return l in Wbe?Wbe[l](s,i,t,n,a):e.startsWith("user:")?tit(s,e,i,n):rit(s,e,i,n,Bc(e,n,a.propertyLabels)),!s.textContent&&!s.hasChildNodes()?(s.remove(),null):s}catch(o){return DV.warn(`TaskCard: Error rendering property ${e}:`,{category:"persistence",operation:"taskcard-rendering-property",error:o}),s.textContent=`${e}: (error)`,s}}function VI(r){return!iE(r)}function tit(r,e,t,n){var c;let a=e.slice(5),i=(c=n.settings.userFields)==null?void 0:c.find(d=>d.id===a);if(!i){r.textContent=`${a}: (not found)`;return}let s=i.displayName||a;r.createSpan({text:`${s}: `});let o=r.createSpan({cls:"task-card__metadata-value"}),l={metadataCache:n.app.metadataCache,workspace:n.app.workspace};if(typeof t=="string"&&t.trim()!==""){let d=t.trim();EV(d)?Uc(o,d,l):o.textContent=Gbe(t,i)}else if(i.type==="list"&&Array.isArray(t))t.map(u=>zu(u)).filter(VI).forEach((u,p)=>{if(p>0&&o.appendChild(activeDocument.createTextNode(", ")),typeof u=="string"&&u.trim()!==""){let m=u.trim();if(EV(m)){let f=o.createSpan();Uc(f,m,l)}else o.appendChild(activeDocument.createTextNode(String(u)))}else o.appendChild(activeDocument.createTextNode(String(u)))});else{let d=Gbe(t,i);o.textContent=d.trim()!==""?d:"(empty)"}}function rit(r,e,t,n,a){let i=BI(e,{},a);r.createSpan({text:`${i}: `});let s=r.createSpan({cls:"task-card__metadata-value"});Array.isArray(t)?t.map(l=>zu(l)).filter(VI).forEach((l,c)=>{c>0&&s.appendChild(activeDocument.createTextNode(", ")),Ybe(s,l,n)}):Ybe(s,t,n)}function Ybe(r,e,t){if(!VI(e)||t&&$I(r,e,t.app.renderContext))return;if(typeof e=="string"&&t){let a={metadataCache:t.app.metadataCache,workspace:t.app.workspace};if(EV(e)){Uc(r,e,a,{onTagClick:async i=>{let s=i.startsWith("#")?i.slice(1):i;await t.openTagsPane(`#${s}`)}});return}r.appendChild(activeDocument.createTextNode(e));return}let n;if(typeof e=="object"&&e!==null)if(e instanceof Date)n=Vn(e.toISOString(),{dateFormat:"MMM d, yyyy",timeFormat:"",showTime:!1});else{let a=Object.entries(e);n=a.length<=3?a.map(([i,s])=>`${i}: ${J(s)}`).join(", "):J(e)}else typeof e=="boolean"?n=e?"\u2713":"\u2717":typeof e=="number"?n=Number.isInteger(e)?String(e):e.toFixed(2):n=J(e);n.length>100&&(n=n.substring(0,97)+"..."),r.appendChild(activeDocument.createTextNode(n))}function EV(r){return r.includes("[[")||r.includes("](")||/<https?:\/\/[^\s>]+>/i.test(r)||/(^|\s)https?:\/\/[^\s<>()]+/i.test(r)||r.includes("[")&&r.includes("](")||r.includes("#")&&/\s#\w+|#\w+/.test(r)}function Gbe(r,e){if(r==null)return"";try{switch(e.type){case"text":case"number":return J(r);case"date":return Vn(J(r),{dateFormat:"MMM d, yyyy",timeFormat:"",showTime:!1});case"boolean":return r?"\u2713":"\u2717";case"list":return Array.isArray(r)?r.flat(2).map(J).join(", "):J(r);default:return J(r)}}catch(t){return DV.warn("TaskCard: Error formatting user property value:",{category:"validation",operation:"taskcard-formatting-user-property-value",error:t}),J(r)}}function HI(r){let e=Number(de(r).slice(0,4));return Number.isInteger(e)&&e!==new Date().getFullYear()?"MMM d, yyyy":"MMM d"}function nit(r,e,t,n,a){var p,m;let i=k_(e),s=n.statusManager.isCompletedStatus(t.status),o=(m=(p=n.settings)==null?void 0:p.hideCompletedFromOverdue)!=null?m:!0,l=Nl(e,s,o),c=n.settings.calendarViewSettings.timeFormat,d=Bc("due",n,a),u="";if(i){let f=Vn(e,{dateFormat:"",showTime:!0,userTimeFormat:c});u=f.trim()===""?km(n,"dueToday",{label:d}):km(n,"dueTodayAt",{label:d,time:f})}else if(l){let f=Vn(e,{dateFormat:HI(e),showTime:!0,userTimeFormat:c});u=km(n,"dueOverdue",{label:d,display:f})}else{let f=Vn(e,{dateFormat:HI(e),showTime:!0,userTimeFormat:c});u=km(n,"dueLabel",{label:d,display:f})}r.textContent=u,r.classList.add("task-card__metadata-date","task-card__metadata-date--due"),l&&r.classList.add("task-card__metadata-date--overdue"),r.dataset.tnAction="edit-date",r.dataset.tnDateType="due",Kbe(r,t,n,"due")}function ait(r,e,t,n,a){var p,m;let i=k_(e),s=n.statusManager.isCompletedStatus(t.status),o=(m=(p=n.settings)==null?void 0:p.hideCompletedFromOverdue)!=null?m:!0,l=Nl(e,s,o),c=n.settings.calendarViewSettings.timeFormat,d=Bc("scheduled",n,a),u="";if(i){let f=Vn(e,{dateFormat:"",showTime:!0,userTimeFormat:c});u=f.trim()===""?km(n,"scheduledToday",{label:d}):km(n,"scheduledTodayAt",{label:d,time:f})}else if(l){let f=Vn(e,{dateFormat:HI(e),showTime:!0,userTimeFormat:c});u=km(n,"scheduledPast",{label:d,display:f})}else{let f=Vn(e,{dateFormat:HI(e),showTime:!0,userTimeFormat:c});u=km(n,"scheduledLabel",{label:d,display:f})}r.textContent=u,r.classList.add("task-card__metadata-date","task-card__metadata-date--scheduled"),l&&r.classList.add("task-card__metadata-date--past"),r.dataset.tnAction="edit-date",r.dataset.tnDateType="scheduled",Kbe(r,t,n,"scheduled")}function Jbe(r,e){r.style.display=e.length>0?"":"none"}var Dk,DV,Wbe,Xbe=y(()=>{Dk=require("obsidian");bk();ag();Ct();fm();Me();kr();$c();sE();CV();vm();Vbe();Io();K();DV=N({tag:"Ui/TaskCardProperties"});Wbe={due:(r,e,t,n,a)=>{typeof e=="string"&&nit(r,e,t,n,a==null?void 0:a.propertyLabels)},scheduled:(r,e,t,n,a)=>{typeof e=="string"&&ait(r,e,t,n,a==null?void 0:a.propertyLabels)},projects:(r,e,t,n)=>{if(Array.isArray(e)){let a={metadataCache:n.app.metadataCache,workspace:n.app.workspace,sourcePath:t.path};Ek(r,e,a)}},contexts:(r,e,t,n)=>{if(Array.isArray(e)){let a={onTagClick:async i=>{let s=i.startsWith("@")?i.slice(1):i;await n.openTagsPane(`#${s}`)},linkServices:{metadataCache:n.app.metadataCache,workspace:n.app.workspace,sourcePath:t.path}};Hbe(r,e,a)}},tags:(r,e,t,n)=>{if(Array.isArray(e)){let a=e;n.settings.taskIdentificationMethod==="tag"&&n.settings.hideIdentifyingTagsInCards&&(a=Lu(e,n.settings.taskTag,n.settings.hideIdentifyingTagsMode)),a.length>0&&Ube(r,a,{onTagClick:async s=>{let o=s.startsWith("#")?s.slice(1):s;await n.openTagsPane(`#${o}`)}})}},timeEstimate:(r,e,t,n)=>{typeof e=="number"&&(r.textContent=`${n.formatTime(e)} estimated`)},totalTrackedTime:(r,e,t,n)=>{typeof e=="number"&&e>0&&(r.textContent=`${n.formatTime(e)} tracked`)},recurrence:(r,e,t,n,a)=>{typeof e=="string"&&(r.textContent=oE(n,e,a==null?void 0:a.propertyLabels))},recurrenceParent:(r,e,t,n)=>{if(typeof e=="string"&&e.trim()!==""){r.createSpan({text:"Parent: "});let a={metadataCache:n.app.metadataCache,workspace:n.app.workspace,sourcePath:t.path};Uc(r,e,a)}},occurrenceDate:(r,e,t,n)=>{var a;typeof e=="string"&&(r.textContent=`Occurrence: ${Vn(e,{dateFormat:"MMM d",showTime:!1,userTimeFormat:(a=n.settings.calendarViewSettings)==null?void 0:a.timeFormat})}`,r.classList.add("task-card__metadata-pill--occurrence"))},occurrenceMaterialization:(r,e)=>{e==="manual"?r.textContent="Occurrence notes: manual":e==="on_completion"?r.textContent="Occurrence notes: after completion":e==="rolling"&&(r.textContent="Occurrence notes: rolling")},occurrenceNextTrigger:(r,e)=>{e==="completion"?r.textContent="Next note: completion":e==="completion_or_skip"&&(r.textContent="Next note: completion or skip")},occurrenceTemplate:(r,e,t,n)=>{if(typeof e=="string"&&e.trim()!==""){r.createSpan({text:"Template: "});let a={metadataCache:n.app.metadataCache,workspace:n.app.workspace,sourcePath:t.path};Uc(r,e,a)}},completeInstances:(r,e,t)=>{var n;if(Array.isArray(e)&&e.length>0){let a=e.length,i=((n=t.skipped_instances)==null?void 0:n.length)||0,s=hfe(t);if(s){let o=Math.max(s,a+i),l=Math.round(a/o*100);r.textContent=`\u2713 ${a}/${o} completed (${l}%)`}else r.textContent=`\u2713 ${a} completed`;r.classList.add("task-card__metadata-pill--completed-instances")}},skippedInstances:(r,e)=>{Array.isArray(e)&&e.length>0&&(r.textContent=`\u2298 ${e.length} skipped`,r.classList.add("task-card__metadata-pill--skipped-instances"))},completedDate:(r,e,t,n,a)=>{if(typeof e=="string"){let i=Bc("completedDate",n,a==null?void 0:a.propertyLabels);r.textContent=`${i}: ${Vn(e,{dateFormat:"MMM d",showTime:!1,userTimeFormat:n.settings.calendarViewSettings.timeFormat})}`}},dateCreated:(r,e,t,n,a)=>{if(typeof e=="string"){let i=Bc("dateCreated",n,a==null?void 0:a.propertyLabels);r.textContent=`${i}: ${Vn(e,{dateFormat:"MMM d",showTime:!1,userTimeFormat:n.settings.calendarViewSettings.timeFormat})}`}},dateModified:(r,e,t,n,a)=>{if(typeof e=="string"){let i=Bc("dateModified",n,a==null?void 0:a.propertyLabels);r.textContent=`${i}: ${Vn(e,{dateFormat:"MMM d",showTime:!1,userTimeFormat:n.settings.calendarViewSettings.timeFormat})}`}},blocked:(r,e,t,n,a)=>{var i,s;if(e===!0){let o=(s=(i=t.blockedBy)==null?void 0:i.length)!=null?s:0,l=Bc("blocked",n,a==null?void 0:a.propertyLabels);r.textContent=o>0?`${l} (${o})`:l,r.classList.add("task-card__metadata-pill--blocked")}},blocking:(r,e,t,n,a)=>{var i,s;if(e===!0){let o=(s=(i=t.blocking)==null?void 0:i.length)!=null?s:0,l=Bc("blocking",n,a==null?void 0:a.propertyLabels);r.textContent=o>0?`${l} (${o})`:l,r.classList.add("task-card__metadata-pill--blocking")}},blockedBy:(r,e,t,n)=>{if(Array.isArray(e)&&e.length>0){r.createSpan({text:"Blocked by: "});let a=r.createSpan(),i={metadataCache:n.app.metadataCache,workspace:n.app.workspace,sourcePath:t.path};e.forEach((s,o)=>{o>0&&a.appendChild(activeDocument.createTextNode(", "));let l=Qat(s,t,n);l&&Ul(a,l.path,l.displayText,i)})}},blockingTasks:(r,e,t,n)=>{if(Array.isArray(e)&&e.length>0){r.createSpan({text:"Blocking: "});let a=r.createSpan();e.forEach((i,s)=>{var l;s>0&&a.appendChild(activeDocument.createTextNode(", "));let o=a.createEl("a",{cls:"internal-link",attr:{href:i}});o.textContent=((l=i.split("/").pop())==null?void 0:l.replace(".md",""))||i,o.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),n.app.workspace.openLinkText(i,"",!1)})})}},timeEntries:(r,e,t,n)=>{if(Array.isArray(e)&&e.length>0){let a=Li(e);a>0&&(r.textContent=`${n.formatTime(a)} tracked (${e.length} ${e.length===1?"entry":"entries"})`)}},reminders:(r,e)=>{Array.isArray(e)&&e.length>0&&(r.textContent=`${e.length} ${e.length===1?"reminder":"reminders"}`)},icsEventId:(r,e,t,n)=>{let a=Kat(e);if(a.length===0)return;let i=a.map(s=>{var o;return(o=n.icsNoteService.findEventById(s))==null?void 0:o.event}).filter(s=>!!s).map(s=>Zat(s,n));i.length>0?r.textContent=`Calendar: ${i.join(", ")}`:r.textContent=`Linked to ${a.length} calendar ${a.length===1?"event":"events"}`},checklistProgress:(r,e,t,n)=>{let a=Xat(t.path,n);if(!a)return;let i=r.createSpan({cls:"task-card__progress"}),o=i.createSpan({cls:"task-card__progress-bar"}).createSpan({cls:"task-card__progress-fill"});o.style.width=`${a.percent}%`,a.percent>0&&a.percent<5&&(o.classList.remove("tn-static-min-width-0-3922d326"),o.classList.add("tn-static-min-width-2px-709d7da0")),i.createSpan({cls:"task-card__progress-label",text:`${a.completed}/${a.total}`}),(0,Dk.setTooltip)(i,`${a.percent}% complete (${a.completed}/${a.total})`,{placement:"top"})}}});function iit(r){if(typeof r=="number")return r===1?"show-all":"inherit";let e=J(r).trim().toLowerCase().replace(/^['"]|['"]$/g,"").replace(/[_\s]+/g,"-");return e==="show-all"||e==="1"?"show-all":"inherit"}function qI(r,e={}){var a,i;if(iit((i=(a=e.resolveExpandedRelationshipFilterMode)==null?void 0:a.call(e))!=null?i:e.expandedRelationshipFilterMode)!=="inherit")return r;let n=e.expandedRelationshipTaskPaths;return n?r.filter(s=>n.has(s.path)):r}function eTe(r,e={},t){let n=e.expandedRelationshipTaskOrder;if(!n||n.size===0)return t([...r]);let a=[],i=[];for(let s of r)n.has(s.path)?a.push(s):i.push(s);return a.sort((s,o)=>{let l=n.get(s.path),c=n.get(o.path);return l===void 0||c===void 0?0:l-c}),[...a,...t([...i])]}function ig(r,e){let t=Array.isArray(r.blockedBy)?r.blockedBy:[],n=new Set;for(let a of t){let i=os(a);if(!i)continue;let s=Ol(e,r.path,i),o=(s==null?void 0:s.path)||i.uid;o&&n.add(o)}return Array.from(n)}var WI=y(()=>{Io();kr()});function Hl(r){if(r.setAttribute("role","button"),r.tabIndex=0,r.dataset.tnNoDrag==="true"){r.setAttribute("draggable","false");return}r.dataset.tnNoDrag="true",r.setAttribute("draggable","false"),r.addEventListener("mousedown",e=>{e.preventDefault(),e.stopPropagation()}),r.addEventListener("keydown",e=>{e.key!=="Enter"&&e.key!==" "||(e.preventDefault(),e.stopPropagation(),r.click())})}function Hc(r){let{container:e,className:t,icon:n,tooltip:a,ariaLabel:i,onClick:s,visible:o=!0}=r;if(!o)return null;let l=e.createDiv({cls:t,attr:{"aria-label":i||a}});return(0,lE.setIcon)(l,n),(0,lE.setTooltip)(l,a,{placement:"top"}),s&&(Hl(l),l.addEventListener("click",c=>{c.stopPropagation(),s(c)})),l}function sg(r,e,t){let n=r.querySelector(e);if(!t.shouldExist)return n==null||n.remove(),null;if(n)return n.setAttribute("aria-label",t.ariaLabel||t.tooltip),(0,lE.setTooltip)(n,t.tooltip,{placement:"top"}),t.onClick&&Hl(n),n;let i=r.querySelector(".task-card__badges")||r.querySelector(".task-card__main-row");return i?Hc({container:i,...t}):null}var lE,cE=y(()=>{lE=require("obsidian")});var tTe={};at(tTe,{PriorityContextMenu:()=>ju});var ju,dE=y(()=>{Pu();ju=class{constructor(e){this.targetDoc=activeDocument;this.menu=new Ea,this.options=e,this.buildMenu()}buildMenu(){this.sortedPriorities=this.options.plugin.priorityManager.getPrioritiesByWeightAsc(),this.sortedPriorities.forEach(e=>{this.menu.addItem(t=>{let n=e.label;t.setIcon("star"),e.value===this.options.currentValue&&(n=`\u2713 ${e.label}`),t.setTitle(n),t.onClick(async()=>{this.options.onSelect(e.value)})})})}show(e){var t,n;(n=(t=e.target)==null?void 0:t.instanceOf)!=null&&n.call(t,HTMLElement)&&(this.targetDoc=e.target.ownerDocument),this.menu.show(e),window.setTimeout(()=>{this.applyColorStyling()},10)}showAtElement(e){this.targetDoc=e.ownerDocument,this.menu.showAtPosition({x:e.getBoundingClientRect().left,y:e.getBoundingClientRect().bottom+4}),window.setTimeout(()=>{this.applyColorStyling()},10)}applyColorStyling(){let e=this.targetDoc.querySelector(".menu");if(!e)return;let t=e.querySelectorAll(".menu-item");this.sortedPriorities.forEach((n,a)=>{let i=t[a];if(i&&n.color){let s=i.querySelector(".menu-item-icon");s&&(s.style.color=n.color)}})}}});var lTe={};at(lTe,{RecurrenceContextMenu:()=>Vl,buildCustomRecurrenceRule:()=>oTe,buildRecurrenceOptions:()=>sTe,buildWeekdaysOnlyRecurrenceRule:()=>GI,formatDateForDTSTART:()=>iTe,formatDateForInput:()=>MV,getMonthDayOptions:()=>AV,getOrderedRecurrenceWeekdays:()=>nTe,getPluginCalendarLocale:()=>pE,getRecurrenceStartDate:()=>uE,getWeekdayOnlyRRuleCodes:()=>aTe});function rTe(r){if(r)try{let e=Intl.Locale;return e?new e(r).weekInfo:void 0}catch(e){return}}function sit(r,e){var n;if(typeof r=="number"&&Number.isInteger(r)&&r>=0&&r<=6)return r;let t=(n=rTe(e))==null?void 0:n.firstDay;return typeof t=="number"?t%7:1}function pE(r){var n,a,i;let e=(i=(a=(n=r.settings)==null?void 0:n.calendarViewSettings)==null?void 0:a.locale)==null?void 0:i.trim();if(e)return e;let t=typeof navigator!="undefined"?navigator.language:"";if(t)return t;try{return Intl.DateTimeFormat().resolvedOptions().locale}catch(s){return}}function nTe(r,e){let t=sit(r,e),n=YI.findIndex(i=>i.dateIndex===t),a=n>=0?n:1;return[...YI.slice(a),...YI.slice(0,a)]}function aTe(r){var a,i;let e=(i=(a=rTe(r))==null?void 0:a.weekend)==null?void 0:i.map(s=>s%7).filter(s=>s>=0&&s<=6);if(!e||e.length===0)return["MO","TU","WE","TH","FR"];let t=new Set(e),n=YI.filter(s=>!t.has(s.dateIndex)).map(s=>s.code);return n.length>0&&n.length<7?n:["MO","TU","WE","TH","FR"]}function GI(r,e){return`DTSTART:${r};FREQ=WEEKLY;BYDAY=${aTe(e).join(",")}`}function uE(r,e=new Date){let t=r==null?void 0:r.match(/^(\d{4})-(\d{2})-(\d{2})/);if(!t)return e;let n=parseInt(t[1],10),a=parseInt(t[2],10),i=parseInt(t[3],10),s=new Date(n,a-1,i);return s.getFullYear()!==n||s.getMonth()!==a-1||s.getDate()!==i?e:s}function iTe(r){let e=r.getFullYear(),t=String(r.getMonth()+1).padStart(2,"0"),n=String(r.getDate()).padStart(2,"0");return`${e}${t}${n}`}function MV(r){let e=r.getFullYear(),t=String(r.getMonth()+1).padStart(2,"0"),n=String(r.getDate()).padStart(2,"0");return`${e}-${t}-${n}`}function oit(r){if(!(r!=null&&r.includes("T")))return;let e=r.match(/T(\d{2}):(\d{2})/);if(e)return`${e[1]}${e[2]}00Z`}function PV(r){let e=["th","st","nd","rd"],t=r%100;return r+(e[(t-20)%10]||e[t]||e[0])}function sTe(r){let e=[],t=uE(r.scheduledDate),n=["SU","MO","TU","WE","TH","FR","SA"],a=["January","February","March","April","May","June","July","August","September","October","November","December"],i=n[t.getDay()],s=t.getDate(),o=t.getMonth()+1,l=a[t.getMonth()],c=t.toLocaleDateString(r.calendarLocale||void 0,{weekday:"long"}),d=iTe(t);if(r.currentValue){let u=r.currentValue.match(/DTSTART:(\d{8}(?:T\d{6}Z?)?)/);if(u&&u[1].includes("T")){let p=u[1].split("T")[1];d=`${d}T${p}`}}else{let u=oit(r.scheduledDate);u&&(d=`${d}T${u}`)}return e.push({label:r.translate("components.recurrenceContextMenu.daily"),value:`DTSTART:${d};FREQ=DAILY;INTERVAL=1`,icon:"calendar-days"}),e.push({label:r.translate("components.recurrenceContextMenu.weeklyOn",{day:c}),value:`DTSTART:${d};FREQ=WEEKLY;INTERVAL=1;BYDAY=${i}`,icon:"calendar"}),e.push({label:r.translate("components.recurrenceContextMenu.everyTwoWeeksOn",{day:c}),value:`DTSTART:${d};FREQ=WEEKLY;INTERVAL=2;BYDAY=${i}`,icon:"calendar"}),e.push({label:r.translate("components.recurrenceContextMenu.monthlyOnThe",{ordinal:PV(s)}),value:`DTSTART:${d};FREQ=MONTHLY;INTERVAL=1;BYMONTHDAY=${s}`,icon:"calendar-range"}),e.push({label:r.translate("components.recurrenceContextMenu.everyThreeMonthsOnThe",{ordinal:PV(s)}),value:`DTSTART:${d};FREQ=MONTHLY;INTERVAL=3;BYMONTHDAY=${s}`,icon:"calendar-range"}),e.push({label:r.translate("components.recurrenceContextMenu.yearlyOn",{month:l,ordinal:PV(s)}),value:`DTSTART:${d};FREQ=YEARLY;INTERVAL=1;BYMONTH=${o};BYMONTHDAY=${s}`,icon:"calendar-clock"}),e.push({label:r.translate("components.recurrenceContextMenu.weekdaysOnly"),value:GI(d,r.calendarLocale),icon:"briefcase"}),e.push({label:"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",value:"",icon:void 0}),e.push({label:r.translate("components.recurrenceContextMenu.dailyAfterCompletion"),value:`DTSTART:${d};FREQ=DAILY;INTERVAL=1`,icon:"calendar-days",anchor:"completion"}),e.push({label:r.translate("components.recurrenceContextMenu.every3DaysAfterCompletion"),value:`DTSTART:${d};FREQ=DAILY;INTERVAL=3`,icon:"calendar-days",anchor:"completion"}),e.push({label:r.translate("components.recurrenceContextMenu.weeklyAfterCompletion"),value:`DTSTART:${d};FREQ=WEEKLY;INTERVAL=1`,icon:"calendar",anchor:"completion"}),e.push({label:r.translate("components.recurrenceContextMenu.monthlyAfterCompletion"),value:`DTSTART:${d};FREQ=MONTHLY;INTERVAL=1`,icon:"calendar-range",anchor:"completion"}),e}function oTe(r){let e=[],t=r.recurrenceAnchor==="completion";if(r.dtstart){let n=r.dtstart.replace(/-/g,"");if(r.dtstartTime){let a=r.dtstartTime.replace(":","")+"00";n=`${n}T${a}`}e.push(`DTSTART:${n}`)}switch(e.push(`FREQ=${r.frequency}`),r.interval>1&&e.push(`INTERVAL=${r.interval}`),r.frequency){case"DAILY":!t&&r.byDay.length>0&&e.push(`BYDAY=${r.byDay.join(",")}`);break;case"WEEKLY":!t&&r.byDay.length>0&&e.push(`BYDAY=${r.byDay.join(",")}`);break;case"MONTHLY":if(t)break;if(r.monthlyType==="bydate"){let n=r.byMonthDay.length>0?r.byMonthDay[0]:new Date().getDate();e.push(`BYMONTHDAY=${n}`)}else if(r.monthlyType==="byday"&&r.byDay.length>0){let n=r.bySetPos||1;e.push(`BYDAY=${n}${r.byDay[0]}`)}break;case"YEARLY":if(t)break;if(r.yearlyType==="bydate"){let n=r.byMonth.length>0?r.byMonth[0]:new Date().getMonth()+1,a=r.byMonthDay.length>0?r.byMonthDay[0]:new Date().getDate();e.push(`BYMONTH=${n}`),e.push(`BYMONTHDAY=${a}`)}else if(r.yearlyType==="byday"){let n=r.byMonth.length>0?r.byMonth[0]:new Date().getMonth()+1;if(e.push(`BYMONTH=${n}`),r.byDay.length>0){let a=r.bySetPos||1;e.push(`BYDAY=${a}${r.byDay[0]}`)}}break}switch(r.endType){case"count":r.count&&r.count>0&&e.push(`COUNT=${r.count}`);break;case"until":r.until&&e.push(`UNTIL=${r.until.replace(/-/g,"")}`);break}return e.join(";")}function AV(){return[...Array.from({length:31},(r,e)=>{let t=e+1;return{value:t.toString(),text:t.toString()}}),{value:"-1",text:"Last day"}]}var Ho,YI,Vl,_V,Pk=y(()=>{Ho=require("obsidian");Pu();JC();YI=[{dateIndex:0,code:"SU",nameKey:"sunday",shortKey:"sun"},{dateIndex:1,code:"MO",nameKey:"monday",shortKey:"mon"},{dateIndex:2,code:"TU",nameKey:"tuesday",shortKey:"tue"},{dateIndex:3,code:"WE",nameKey:"wednesday",shortKey:"wed"},{dateIndex:4,code:"TH",nameKey:"thursday",shortKey:"thu"},{dateIndex:5,code:"FR",nameKey:"friday",shortKey:"fri"},{dateIndex:6,code:"SA",nameKey:"saturday",shortKey:"sat"}];Vl=class{constructor(e){this.menu=new Ea,this.options=e,this.translate=e.plugin.i18n.translate.bind(e.plugin.i18n),this.buildMenu()}buildMenu(){this.getRecurrenceOptions().forEach(t=>{if(t.label.startsWith("\u2500")){this.menu.addSeparator();return}this.menu.addItem(n=>{let a=t.label;t.icon&&n.setIcon(t.icon),t.value===this.options.currentValue&&(a=`\u2713 ${t.label}`),n.setTitle(a),n.onClick(async()=>{let i=t.anchor||"scheduled";this.options.onSelect(t.value,i)})})}),this.menu.addSeparator(),this.menu.addItem(t=>{t.setTitle(this.translate("components.recurrenceContextMenu.customRecurrence")),t.setIcon("settings"),t.onClick(async()=>{this.showCustomRecurrenceModal()})}),this.options.currentValue&&this.menu.addItem(t=>{t.setTitle(this.translate("components.recurrenceContextMenu.clearRecurrence")),t.setIcon("x"),t.onClick(async()=>{this.options.onSelect(null)})})}getRecurrenceOptions(){return sTe({currentValue:this.options.currentValue,scheduledDate:this.options.scheduledDate,calendarLocale:pE(this.options.plugin),translate:this.translate})}showCustomRecurrenceModal(){new _V(this.options.app,this.options.currentValue||"",this.options.currentAnchor||"scheduled",this.options.scheduledDate,this.options.plugin,(e,t)=>{e&&this.options.onSelect(e,t)}).open()}show(e){this.menu.show(e)}},_V=class extends Ho.Modal{constructor(t,n,a,i,s,o){super(t);this.frequency="DAILY";this.interval=1;this.byDay=[];this.byMonthDay=[];this.byMonth=[];this.until="";this.endType="never";this.dtstart="";this.dtstartTime="";this.recurrenceAnchor="scheduled";this.currentValue=n,this.recurrenceAnchor=a,this.scheduledDate=i,this.plugin=s,this.translate=s.i18n.translate.bind(s.i18n),this.onSubmit=o,this.parseCurrentValue()}parseCurrentValue(){if(!this.currentValue){if(this.dtstart=MV(uE(this.scheduledDate)),this.scheduledDate&&this.scheduledDate.includes("T")){let n=this.scheduledDate.match(/T(\d{2}):(\d{2})/);n&&(this.dtstartTime=`${n[1]}:${n[2]}`)}return}let t=this.currentValue.split(";");for(let n of t){let a=n.includes(":")&&n.startsWith("DTSTART")?":":"=",[i,s]=n.split(a);switch(i){case"DTSTART":if(s.length>=8){if(this.dtstart=`${s.slice(0,4)}-${s.slice(4,6)}-${s.slice(6,8)}`,s.length>8&&s.includes("T")){let o=s.slice(9);o.length>=4&&(this.dtstartTime=`${o.slice(0,2)}:${o.slice(2,4)}`)}}else{let o=new Date(s);isNaN(o.getTime())?this.dtstart=MV(uE(this.scheduledDate)):this.dtstart=s}break;case"FREQ":this.frequency=s;break;case"INTERVAL":this.interval=parseInt(s)||1;break;case"BYDAY":{let o=s.split(","),l=[];for(let c of o){let d=c.match(/^(-?\d+)([A-Z]{2})$/);d?(this.bySetPos=parseInt(d[1]),l.push(d[2])):l.push(c)}this.byDay=l;break}case"BYMONTHDAY":this.byMonthDay=s.split(",").map(o=>parseInt(o));break;case"BYMONTH":this.byMonth=s.split(",").map(o=>parseInt(o));break;case"BYSETPOS":this.bySetPos=parseInt(s);break;case"COUNT":this.count=parseInt(s),this.endType="count";break;case"UNTIL":s.length===8?this.until=`${s.slice(0,4)}-${s.slice(4,6)}-${s.slice(6,8)}`:this.until=s,this.endType="until";break}}}onOpen(){var _n,Bs;let{contentEl:t}=this;t.empty();let n=pE(this.plugin),a=(Bs=(_n=this.plugin.settings)==null?void 0:_n.calendarViewSettings)==null?void 0:Bs.firstDay,i=nTe(a,n),s=uE(this.scheduledDate);t.createEl("h2",{text:this.translate("components.recurrenceContextMenu.customRecurrenceModal.title")}),new Ho.Setting(t).setName("Start date").setDesc("The date when the recurrence pattern begins").addText(se=>{se.inputEl.type="date",se.setValue(this.dtstart).onChange(De=>{this.dtstart=De}),zc(se.inputEl,{onCommit:De=>{this.dtstart=De}})}),new Ho.Setting(t).setName("Start time").setDesc("The time when recurring instances should appear (optional)").addText(se=>{se.inputEl.type="time",se.setValue(this.dtstartTime).onChange(De=>{this.dtstartTime=De})}),new Ho.Setting(t).setName("Recur from").setDesc("When should the next occurrence be calculated from?").addDropdown(se=>{se.addOption("scheduled","Scheduled date (fixed schedule)").addOption("completion","Completion date (flexible schedule)").setValue(this.recurrenceAnchor).onChange(De=>{this.recurrenceAnchor=De,this.updateFrequencySpecificVisibility()})}),new Ho.Setting(t).setName("Frequency").addDropdown(se=>{se.addOption("DAILY","Daily").addOption("WEEKLY","Weekly").addOption("MONTHLY","Monthly").addOption("YEARLY","Yearly").setValue(this.frequency).onChange(De=>{this.frequency=De,this.updateFrequencySpecificVisibility()})}),new Ho.Setting(t).setName("Interval").setDesc("Every X days/weeks/months/years").addText(se=>{se.setValue(this.interval.toString()).onChange(De=>{this.interval=parseInt(De)||1})});let o=new Ho.Setting(t).setName("Days of week").setDesc("Select specific days (for daily or weekly recurrence)"),l=o.controlEl.createDiv("days-container");i.map(se=>({key:se.code,label:this.translate(`components.recurrenceContextMenu.customRecurrenceModal.weekdaysShort.${se.shortKey}`)})).forEach(se=>{let De=l.createEl("label",{cls:"day-checkbox"});De.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),De.classList.add("tn-static-display-inline-block-60e32dcb"),De.classList.remove("tn-static-margin-right-4px-c6b76b85"),De.classList.add("tn-static-margin-right-8px-539fa9a0");let bn=De.createEl("input",{type:"checkbox"});bn.checked=this.byDay.includes(se.key),bn.addEventListener("change",()=>{bn.checked?this.byDay.includes(se.key)||this.byDay.push(se.key):this.byDay=this.byDay.filter(gh=>gh!==se.key)}),De.createSpan({text:` ${se.label}`})});let d=new Ho.Setting(t).setName("Monthly recurrence").setDesc("Choose how to repeat monthly"),u=d.controlEl.createDiv("monthly-options"),p=u.createEl("label",{cls:"radio-option"});p.classList.remove("tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),p.classList.add("tn-static-display-block-2a1b75c9"),p.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-20px-49f14f8f"),p.classList.add("tn-static-margin-bottom-8px-fdf33f23");let m=p.createEl("input",{type:"radio",value:"bydate"});m.name="monthly-type",m.checked=this.byMonthDay.length>0||this.byDay.length===0&&this.bySetPos===void 0,p.createSpan({text:" On "});let f=p.createEl("select");f.classList.add("tn-static-margin-left-4px-46cec891"),f.classList.remove("tn-static-margin-right-8px-539fa9a0"),f.classList.add("tn-static-margin-right-4px-c6b76b85");for(let se of AV()){let De=f.createEl("option",{value:se.value,text:se.text}),bn=parseInt(se.value,10);(this.byMonthDay.length>0&&this.byMonthDay[0]===bn||this.byMonthDay.length===0&&bn===s.getDate())&&(De.selected=!0)}p.createSpan({text:" of each month"});let h=u.createEl("label",{cls:"radio-option"});h.classList.remove("tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),h.classList.add("tn-static-display-block-2a1b75c9"),h.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-20px-49f14f8f"),h.classList.add("tn-static-margin-bottom-8px-fdf33f23");let g=h.createEl("input",{type:"radio",value:"byday"});g.name="monthly-type",g.checked=this.byDay.length>0&&this.bySetPos!==void 0,h.createSpan({text:" On the "});let v=h.createEl("select");v.classList.add("tn-static-margin-left-4px-46cec891"),v.classList.remove("tn-static-margin-right-8px-539fa9a0"),v.classList.add("tn-static-margin-right-4px-c6b76b85");let b=[{value:"1",text:"first"},{value:"2",text:"second"},{value:"3",text:"third"},{value:"4",text:"fourth"},{value:"-1",text:"last"}];b.forEach(se=>{let De=v.createEl("option",{value:se.value,text:se.text});(this.bySetPos===parseInt(se.value)||!this.bySetPos&&se.value==="1")&&(De.selected=!0)});let k=h.createEl("select");k.classList.add("tn-static-margin-left-4px-46cec891"),k.classList.remove("tn-static-margin-right-8px-539fa9a0"),k.classList.add("tn-static-margin-right-4px-c6b76b85");let w=i.map(se=>({value:se.code,text:this.translate(`components.recurrenceContextMenu.customRecurrenceModal.weekdays.${se.nameKey}`)})),S=["SU","MO","TU","WE","TH","FR","SA"][s.getDay()];w.forEach(se=>{let De=k.createEl("option",{value:se.value,text:se.text});(this.byDay.length>0&&this.byDay[0]===se.value||this.byDay.length===0&&se.value===S)&&(De.selected=!0)}),h.createSpan({text:" of each month"});let C=new Ho.Setting(t).setName("Yearly recurrence").setDesc("Choose how to repeat yearly"),E=C.controlEl.createDiv("yearly-options"),D=E.createEl("label",{cls:"radio-option"});D.classList.remove("tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),D.classList.add("tn-static-display-block-2a1b75c9"),D.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-20px-49f14f8f"),D.classList.add("tn-static-margin-bottom-8px-fdf33f23");let P=D.createEl("input",{type:"radio",value:"bydate"});P.name="yearly-type",P.checked=this.byMonthDay.length>0||this.byDay.length===0&&this.bySetPos===void 0,D.createSpan({text:" On "});let O=D.createEl("select");O.classList.add("tn-static-margin-left-4px-46cec891"),O.classList.remove("tn-static-margin-right-8px-539fa9a0"),O.classList.add("tn-static-margin-right-4px-c6b76b85");let z=["January","February","March","April","May","June","July","August","September","October","November","December"];z.forEach((se,De)=>{let bn=O.createEl("option",{value:(De+1).toString(),text:se});(this.byMonth.length>0&&this.byMonth[0]===De+1||this.byMonth.length===0&&De+1===s.getMonth()+1)&&(bn.selected=!0)});let R=D.createEl("select");R.classList.add("tn-static-margin-left-4px-46cec891"),R.classList.remove("tn-static-margin-right-8px-539fa9a0"),R.classList.add("tn-static-margin-right-4px-c6b76b85");for(let se of AV()){let De=R.createEl("option",{value:se.value,text:se.text}),bn=parseInt(se.value,10);(this.byMonthDay.length>0&&this.byMonthDay[0]===bn||this.byMonthDay.length===0&&bn===s.getDate())&&(De.selected=!0)}D.createSpan({text:" each year"});let A=E.createEl("label",{cls:"radio-option"});A.classList.remove("tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),A.classList.add("tn-static-display-block-2a1b75c9"),A.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-20px-49f14f8f"),A.classList.add("tn-static-margin-bottom-8px-fdf33f23");let F=A.createEl("input",{type:"radio",value:"byday"});F.name="yearly-type",F.checked=this.byDay.length>0&&this.bySetPos!==void 0,A.createSpan({text:" On the "});let $=A.createEl("select");$.classList.add("tn-static-margin-left-4px-46cec891"),$.classList.remove("tn-static-margin-right-8px-539fa9a0"),$.classList.add("tn-static-margin-right-4px-c6b76b85"),b.forEach(se=>{let De=$.createEl("option",{value:se.value,text:se.text});(this.bySetPos===parseInt(se.value)||!this.bySetPos&&se.value==="1")&&(De.selected=!0)});let B=A.createEl("select");B.classList.add("tn-static-margin-left-4px-46cec891"),B.classList.remove("tn-static-margin-right-8px-539fa9a0"),B.classList.add("tn-static-margin-right-4px-c6b76b85"),w.forEach(se=>{let De=B.createEl("option",{value:se.value,text:se.text});(this.byDay.length>0&&this.byDay[0]===se.value||this.byDay.length===0&&se.value===S)&&(De.selected=!0)});let ue=A.createEl("select");ue.classList.add("tn-static-margin-left-4px-46cec891"),ue.classList.remove("tn-static-margin-right-8px-539fa9a0"),ue.classList.add("tn-static-margin-right-4px-c6b76b85"),z.forEach((se,De)=>{let bn=ue.createEl("option",{value:(De+1).toString(),text:se});(this.byMonth.length>0&&this.byMonth[0]===De+1||this.byMonth.length===0&&De+1===s.getMonth()+1)&&(bn.selected=!0)}),A.createSpan({text:" each year"}),new Ho.Setting(t).setName("End condition").setDesc("Choose when the recurrence should end");let Q=t.createDiv("end-condition-container"),G=Q.createEl("label",{cls:"radio-option"});G.classList.remove("tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),G.classList.add("tn-static-display-block-2a1b75c9"),G.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-20px-49f14f8f"),G.classList.add("tn-static-margin-bottom-8px-fdf33f23");let ie=G.createEl("input",{type:"radio",value:"never"});ie.name="end-type",ie.checked=this.endType==="never",G.createSpan({text:" Never ends"});let Ee=Q.createEl("label",{cls:"radio-option"});Ee.classList.remove("tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),Ee.classList.add("tn-static-display-block-2a1b75c9"),Ee.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-20px-49f14f8f"),Ee.classList.add("tn-static-margin-bottom-8px-fdf33f23");let ee=Ee.createEl("input",{type:"radio",value:"count"});ee.name="end-type",ee.checked=this.endType==="count",Ee.createSpan({text:" End after "});let re=Ee.createEl("input",{type:"number",placeholder:"10"});re.classList.remove("tn-static-width-100-0466783d","tn-static-width-12px-fbf353fb","tn-static-width-16px-7375d50b","tn-static-width-1px-aa77e27e","tn-static-width-200px-2acaf3b5","tn-static-width-80px-8573bae3"),re.classList.add("tn-static-width-60px-bd09c419"),re.classList.add("tn-static-margin-left-4px-46cec891"),re.classList.remove("tn-static-margin-right-8px-539fa9a0"),re.classList.add("tn-static-margin-right-4px-c6b76b85"),re.value=this.count?this.count.toString():"",Ee.createSpan({text:" occurrences"});let et=Q.createEl("label",{cls:"radio-option"});et.classList.remove("tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),et.classList.add("tn-static-display-block-2a1b75c9"),et.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-20px-49f14f8f"),et.classList.add("tn-static-margin-bottom-8px-fdf33f23");let fe=et.createEl("input",{type:"radio",value:"until"});fe.name="end-type",fe.checked=this.endType==="until",et.createSpan({text:" End on "});let ut=et.createEl("input",{type:"date"});ut.classList.add("tn-static-margin-left-4px-46cec891"),ut.value=this.until?this.until.replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3"):"",zc(ut,{onCommit:se=>{this.until=se.replace(/-/g,""),fe.checked=!0,this.endType="until"}}),ie.addEventListener("change",()=>{ie.checked&&(this.endType="never")}),ee.addEventListener("change",()=>{ee.checked&&(this.endType="count")}),fe.addEventListener("change",()=>{fe.checked&&(this.endType="until")}),re.addEventListener("input",()=>{this.count=parseInt(re.value)||void 0,re.value&&(ee.checked=!0,this.endType="count")}),ut.addEventListener("input",()=>{this.until=ut.value?ut.value.replace(/-/g,""):"",ut.value&&(fe.checked=!0,this.endType="until")}),this.updateFrequencySpecificVisibility=()=>{let se=this.recurrenceAnchor==="completion";o.settingEl.style.display=(this.frequency==="DAILY"||this.frequency==="WEEKLY")&&!se?"flex":"none",d.settingEl.style.display=this.frequency==="MONTHLY"&&!se?"flex":"none",C.settingEl.style.display=this.frequency==="YEARLY"&&!se?"flex":"none"},this.updateFrequencySpecificVisibility();let Je=t.createDiv("button-container");Je.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),Je.classList.add("tn-static-display-flex-75816cae"),Je.classList.remove("tn-static-justify-content-center-03c4bb6f","tn-static-justify-content-space-between-a562f4fd"),Je.classList.add("tn-static-justify-content-flex-end-455f8cca"),Je.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-0-5rem-ce2fca4d","tn-static-gap-10px-f3d7ce77","tn-static-gap-12px-ed7b3d87","tn-static-gap-6px-f0abc1db"),Je.classList.add("tn-static-gap-8px-33fcd4c3"),Je.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),Je.classList.add("tn-static-margin-top-16px-1b0f4999"),Je.createEl("button",{text:"Cancel"}).addEventListener("click",()=>{this.close()}),Je.createEl("button",{text:"Save",cls:"mod-cta"}).addEventListener("click",()=>{let se=m.checked?"bydate":"byday",De=P.checked?"bydate":"byday";this.frequency==="MONTHLY"?se==="bydate"?(this.byMonthDay=[parseInt(f.value)],this.byDay=[],this.bySetPos=void 0):(this.byMonthDay=[],this.byDay=[k.value],this.bySetPos=parseInt(v.value)):this.frequency==="YEARLY"&&(De==="bydate"?(this.byMonth=[parseInt(O.value)],this.byMonthDay=[parseInt(R.value)],this.byDay=[],this.bySetPos=void 0):(this.byMonth=[parseInt(ue.value)],this.byMonthDay=[],this.byDay=[B.value],this.bySetPos=parseInt($.value)));let bn=this.buildRRule(se,De);this.onSubmit(bn,this.recurrenceAnchor),this.close()})}updateFrequencySpecificVisibility(){}buildRRule(t,n){return oTe({frequency:this.frequency,interval:this.interval,dtstart:this.dtstart,dtstartTime:this.dtstartTime,recurrenceAnchor:this.recurrenceAnchor,byDay:this.byDay,byMonthDay:this.byMonthDay,byMonth:this.byMonth,bySetPos:this.bySetPos,endType:this.endType,count:this.count,until:this.until,monthlyType:t,yearlyType:n})}onClose(){let{contentEl:t}=this;t.empty()}}});var cTe={};at(cTe,{ReminderModal:()=>ql});var fn,IV,NV,ql,Mk=y(()=>{fn=require("obsidian");Me();JC();K();IV=N({tag:"Modals/ReminderModal"}),NV="reminder-modal__fields--hidden",ql=class extends fn.Modal{constructor(t,n,a,i){super(t);this.selectedType="relative";this.relativeAnchor="due";this.relativeOffset=15;this.relativeUnit="minutes";this.relativeDirection="before";this.absoluteDate="";this.absoluteTime="";this.description="";this.plugin=n,this.task=a,this.reminders=a.reminders?[...a.reminders]:[],this.originalReminders=a.reminders?[...a.reminders]:[],this.onSave=i}onOpen(){let{contentEl:t}=this;t.empty(),t.addClass("tasknotes-plugin"),t.addClass("tasknotes-reminder-modal"),t.createDiv({cls:"reminder-modal__loading"}).createDiv({text:"Loading reminders..."}),this.initializeWithFreshData().catch(a=>{IV.error("Failed to initialize reminder modal:",{category:"internal",operation:"initialize-reminder-modal",error:a}),t.empty(),t.addClass("tasknotes-plugin"),t.addClass("tasknotes-reminder-modal"),t.createDiv({cls:"reminder-modal__error",text:"Failed to load task data. Please try again."})})}async initializeWithFreshData(){let{contentEl:t}=this;if(this.task.path&&this.task.path.trim()!==""){let s=await this.plugin.cacheManager.getTaskInfo(this.task.path);s?(this.task=s,this.reminders=s.reminders?[...s.reminders]:[],this.originalReminders=s.reminders?[...s.reminders]:[]):(this.reminders=this.task.reminders?[...this.task.reminders]:[],this.originalReminders=this.task.reminders?[...this.task.reminders]:[])}else this.reminders=this.task.reminders?[...this.task.reminders]:[],this.originalReminders=this.task.reminders?[...this.task.reminders]:[];t.empty(),t.addClass("tasknotes-plugin"),t.addClass("tasknotes-reminder-modal");let n=t.createDiv({cls:"reminder-modal__header"});n.createEl("h2",{text:"Task reminders"}),n.createDiv({cls:"reminder-modal__task-title",text:this.task.title});let a=this.getTaskContextInfo();if(a){let s=n.createDiv({cls:"reminder-modal__task-dates"});s.textContent=a}let i=t.createDiv({cls:"reminder-modal__content"});this.renderExistingReminders(i),this.renderAddReminderForm(i),this.renderActionButtons(t),this.setupKeyboardHandlers(),this.updateSaveButtonState()}renderActionButtons(t){let n=t.createDiv({cls:"reminder-modal__actions"});this.saveBtn=n.createEl("button",{text:"Save changes",cls:"mod-cta reminder-modal__save-btn"}),this.saveBtn.disabled=!0,this.saveBtn.onclick=async()=>{await this.save()};let a=n.createEl("button",{text:"Cancel",cls:"reminder-modal__cancel-btn"});a.onclick=()=>{this.cancel()}}getTaskContextInfo(){let t=[];return this.task.due&&t.push(`Due: ${bu(this.task.due)}`),this.task.scheduled&&t.push(`Scheduled: ${bu(this.task.scheduled)}`),t.length>0?t.join(" \u2022 "):null}setupKeyboardHandlers(){let t=n=>{n.key==="Enter"&&(n.ctrlKey||n.metaKey)&&!this.saveBtn.disabled?(n.preventDefault(),this.save()):n.key==="Escape"&&(n.preventDefault(),this.cancel())};this.contentEl.addEventListener("keydown",t),this.onClose=()=>{this.contentEl.removeEventListener("keydown",t);let{contentEl:n}=this;n.empty()}}updateSaveButtonState(){if(!this.saveBtn)return;let t=this.remindersHaveChanged();this.saveBtn.disabled=!t,this.saveBtn.textContent=t?"Save Changes":"No Changes"}renderExistingReminders(t){let n=t.createDiv({cls:"reminder-modal__section"}),a=n.createDiv({cls:"reminder-modal__section-header"});if(a.createEl("h3",{text:"Current reminders"}),this.reminders.length>0&&a.createSpan({cls:"reminder-modal__reminder-count",text:`(${this.reminders.length})`}),this.reminders.length===0){let s=n.createDiv({cls:"reminder-modal__empty-state"});(0,fn.setIcon)(s.createDiv({cls:"reminder-modal__empty-icon"}),"bell-off"),s.createDiv({cls:"reminder-modal__empty-text",text:"No reminders set"});return}let i=n.createDiv({cls:"reminder-modal__reminder-list"});this.reminders.forEach((s,o)=>{let l=i.createDiv({cls:"reminder-modal__reminder-card"}),c=l.createDiv({cls:"reminder-modal__reminder-icon"}),d=s.type==="absolute"?"calendar-clock":"timer";(0,fn.setIcon)(c,d);let u=l.createDiv({cls:"reminder-modal__reminder-content"}),p=u.createDiv({cls:"reminder-modal__reminder-primary"});if(p.textContent=this.formatReminderDisplayText(s),s.description){let h=u.createDiv({cls:"reminder-modal__reminder-description"});h.textContent=`"${s.description}"`}let f=l.createDiv({cls:"reminder-modal__reminder-actions"}).createEl("button",{cls:"reminder-modal__action-btn reminder-modal__remove-btn"});(0,fn.setIcon)(f,"trash-2"),(0,fn.setTooltip)(f,"Delete this reminder"),f.onclick=async h=>{h.stopPropagation(),await this.removeReminder(o)}})}formatReminderDisplayText(t){if(t.type==="absolute"){if(t.absoluteTime)try{let n=new Date(t.absoluteTime);return`${n.toLocaleDateString()} at ${n.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}`}catch(n){return`At ${t.absoluteTime}`}return"Absolute reminder"}else{let n=t.relatedTo==="due"?"due date":"scheduled date";return`${this.formatOffset(t.offset||"")} ${n}`}}renderQuickActions(t){if(!(this.task.due||this.task.scheduled))return;let i=t.createDiv({cls:"reminder-modal__quick-actions"}).createDiv({cls:"reminder-modal__quick-buttons"});[{label:"5m",fullLabel:"5 minutes before",offset:"-PT5M",icon:"clock"},{label:"15m",fullLabel:"15 minutes before",offset:"-PT15M",icon:"clock"},{label:"1h",fullLabel:"1 hour before",offset:"-PT1H",icon:"clock"},{label:"1d",fullLabel:"1 day before",offset:"-P1D",icon:"calendar"}].forEach(({label:o,fullLabel:l,offset:c,icon:d})=>{let u=this.task.due?"due":"scheduled",p=i.createEl("button",{cls:"reminder-modal__quick-btn"}),m=p.createSpan({cls:"reminder-modal__quick-btn-icon"});(0,fn.setIcon)(m,d),p.createSpan({cls:"reminder-modal__quick-btn-label",text:o}),(0,fn.setTooltip)(p,`Add reminder ${l} ${u} date`),p.onclick=async()=>{await this.addQuickReminder(u,c,l)}})}async addQuickReminder(t,n,a){let i={id:`rem_${Date.now()}`,type:"relative",relatedTo:t,offset:n,description:a};await this.addReminder(i),new fn.Notice(`Added reminder: ${a}`)}renderAddReminderForm(t){let n=t.createDiv({cls:"reminder-modal__section"});n.createDiv({cls:"reminder-modal__section-header"}).createEl("h3",{text:"Add new reminder"}),this.renderQuickActions(n);let i=n.createDiv({cls:"reminder-modal__form"}),s=i.createDiv({cls:"reminder-modal__type-selector"}),o=s.createEl("button",{cls:"reminder-modal__type-tab reminder-modal__type-tab--active",text:"Relative",attr:{"data-type":"relative"}}),l=s.createEl("button",{cls:"reminder-modal__type-tab",text:"Absolute",attr:{"data-type":"absolute"}});o.classList.toggle("reminder-modal__type-tab--active",this.selectedType==="relative"),l.classList.toggle("reminder-modal__type-tab--active",this.selectedType==="absolute");let c=f=>{this.selectedType=f,o.classList.toggle("reminder-modal__type-tab--active",f==="relative"),l.classList.toggle("reminder-modal__type-tab--active",f==="absolute"),this.updateFormVisibility(i,this.selectedType)};o.onclick=()=>c("relative"),l.onclick=()=>c("absolute");let d=i.createDiv({cls:"relative-fields"});new fn.Setting(d).setName("Time").addText(f=>{f.setPlaceholder("15").setValue(String(this.relativeOffset)).onChange(h=>{this.relativeOffset=parseInt(h)||0})}).addDropdown(f=>{f.addOption("minutes","Minutes").addOption("hours","Hours").addOption("days","Days").setValue(this.relativeUnit).onChange(h=>{this.relativeUnit=h})}),new fn.Setting(d).setName("Direction").addDropdown(f=>{f.addOption("before","Before").addOption("after","After").setValue(this.relativeDirection).onChange(h=>{this.relativeDirection=h})}),new fn.Setting(d).setName("Relative to").addDropdown(f=>{let h={};this.task.due&&(h.due=`Due date (${bu(this.task.due)})`),this.task.scheduled&&(h.scheduled=`Scheduled date (${bu(this.task.scheduled)})`),Object.keys(h).length===0?(h.none="No dates available",f.setDisabled(!0)):(Object.entries(h).forEach(([g,v])=>{f.addOption(g,v)}),f.setValue(this.relativeAnchor)),f.onChange(g=>{this.relativeAnchor=g})});let u=i.createDiv({cls:`absolute-fields ${NV}`});new fn.Setting(u).setName("Date").addText(f=>{f.setPlaceholder("Yyyy-mm-dd").setValue(this.absoluteDate).onChange(h=>{this.absoluteDate=h}),f.inputEl.type="date",zc(f.inputEl,{onCommit:h=>{this.absoluteDate=h}})}),new fn.Setting(u).setName("Time").addText(f=>{f.setPlaceholder("Hh:mm").setValue(this.absoluteTime).onChange(h=>{this.absoluteTime=h}),f.inputEl.type="time"}),new fn.Setting(i).setName("Description (optional)").addText(f=>{f.setPlaceholder("Custom reminder message").setValue(this.description).onChange(h=>{this.description=h})});let p=i.createEl("button",{cls:"reminder-add-btn"}),m=p.createSpan({cls:"reminder-add-btn-icon"});(0,fn.setIcon)(m,"plus"),p.createSpan({cls:"reminder-add-btn-text",text:"Add Reminder"}),p.onclick=async()=>{p.disabled=!0,p.classList.add("reminder-add-btn--loading");try{let f=this.createReminder(this.selectedType,this.relativeAnchor,this.relativeOffset,this.relativeUnit,this.relativeDirection,this.absoluteDate,this.absoluteTime,this.description);f&&(await this.addReminder(f),this.selectedType==="relative"?(this.relativeOffset=15,this.relativeUnit="minutes",this.description=""):(this.absoluteDate="",this.absoluteTime="",this.description=""),this.resetFormInputs(i))}catch(f){IV.error("Error adding reminder:",{category:"internal",operation:"adding-reminder",error:f}),new fn.Notice("Failed to add reminder. Please check your inputs.")}finally{p.disabled=!1,p.classList.remove("reminder-add-btn--loading")}},this.updateFormVisibility(i,this.selectedType)}updateFormVisibility(t,n){let a=t.querySelector(".relative-fields"),i=t.querySelector(".absolute-fields");a.classList.toggle(NV,n!=="relative"),i.classList.toggle(NV,n!=="absolute")}createReminder(t,n,a,i,s,o,l,c){let d=`rem_${Date.now()}`;if(t==="relative"){if(!(n==="due"?this.task.due:this.task.scheduled))return new fn.Notice(`Cannot create reminder: Task has no ${n} date`),null;let p="PT";return i==="days"?p=`P${a}D`:i==="hours"?p=`PT${a}H`:p=`PT${a}M`,s==="before"&&(p="-"+p),{id:d,type:"relative",relatedTo:n,offset:p,description:c||void 0}}else{if(!o||!l)return new fn.Notice("Please specify both date and time for absolute reminder"),null;let u=`${o}T${l}:00`;return{id:d,type:"absolute",absoluteTime:u,description:c||void 0}}}formatReminderTiming(t){if(t.type==="absolute")return"Absolute reminder";{let n=t.relatedTo==="due"?"due date":"scheduled date";return`${this.formatOffset(t.offset||"")} ${n}`}}formatReminderDetails(t){if(t.type==="absolute")return`At ${bu(t.absoluteTime||"")}`;{let n=t.relatedTo==="due"?this.task.due:this.task.scheduled;return n?`When ${t.relatedTo} date is ${bu(n)}`:`Relative to ${t.relatedTo} date (not set)`}}formatReminderDescription(t){if(t.description)return t.description;if(t.type==="absolute")return`At ${bu(t.absoluteTime||"")}`;{let n=t.relatedTo==="due"?"due date":"scheduled date";return`${this.formatOffset(t.offset||"")} ${n}`}}formatOffset(t){let n=t.startsWith("-"),i=(n?t.substring(1):t).match(/P(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?)?/);if(!i)return t;let[,s,o,l]=i,c=[];if(s&&c.push(`${s} day${s!=="1"?"s":""}`),o&&c.push(`${o} hour${o!=="1"?"s":""}`),l&&c.push(`${l} minute${l!=="1"?"s":""}`),c.length===0)return"At time of";let d=c.join(" ");return n?`${d} before`:`${d} after`}async addReminder(t){this.reminders.push(t),this.refreshRemindersListOnly(),this.task.path&&this.plugin.emitter.trigger("reminder-preview-changed",{taskPath:this.task.path,currentReminders:[...this.reminders],action:"added",reminder:t})}async removeReminder(t){let n=this.reminders[t];this.reminders.splice(t,1),this.refreshRemindersListOnly(),this.task.path&&n&&this.plugin.emitter.trigger("reminder-preview-changed",{taskPath:this.task.path,currentReminders:[...this.reminders],action:"removed",reminder:n})}async refresh(){await this.initializeWithFreshData()}refreshRemindersListOnly(){let t=this.contentEl.querySelector(".reminder-modal__content");if(t){let n=t.querySelector(".reminder-modal__section");n&&n.remove();let a=activeWindow.createDiv();this.renderExistingReminders(a);let i=a.firstChild;i&&t.insertBefore(i,t.firstChild)}this.updateSaveButtonState()}resetFormInputs(t){let n=t.querySelector('input[placeholder="15"]');n&&(n.value=String(this.relativeOffset));let a=t.querySelector('input[placeholder="Custom reminder message"]');a&&(a.value=this.description);let i=t.querySelector('input[type="date"]');i&&(i.value=this.absoluteDate);let s=t.querySelector('input[type="time"]');s&&(s.value=this.absoluteTime);let o=t.querySelector('.setting-item:has(input[placeholder="15"]) select');o&&(o.value=this.relativeUnit);let l=t.querySelector(".setting-item:nth-child(2) select");l&&(l.value=this.relativeDirection);let c=t.querySelector(".setting-item:nth-child(3) select");c&&(c.value=this.relativeAnchor)}async save(){var t;this.saveBtn.disabled=!0,this.saveBtn.textContent="Saving...";try{this.task.path&&this.task.path.trim()!==""&&((t=this.plugin.notificationService)==null||t.clearProcessedRemindersForTask(this.task.path));let n=this.remindersHaveChanged();this.onSave(this.reminders),n&&this.task.path&&this.plugin.emitter.trigger("reminder-changed",{taskPath:this.task.path,oldReminders:this.originalReminders,newReminders:[...this.reminders]}),this.close()}catch(n){IV.error("Failed to save reminders:",{category:"persistence",operation:"save-reminders",error:n}),new fn.Notice("Failed to save reminders. Please try again."),this.saveBtn.disabled=!1,this.saveBtn.textContent="Save changes"}}cancel(){this.remindersHaveChanged()&&this.task.path&&this.plugin.emitter.trigger("reminder-preview-changed",{taskPath:this.task.path,currentReminders:[...this.originalReminders],action:"cancelled"}),this.close()}remindersHaveChanged(){return this.reminders.length!==this.originalReminders.length?!0:!this.reminders.every((t,n)=>{let a=this.originalReminders[n];return a?t.id===a.id&&t.type===a.type&&t.relatedTo===a.relatedTo&&t.offset===a.offset&&t.absoluteTime===a.absoluteTime&&t.description===a.description:!1})}onClose(){let{contentEl:t}=this;t.empty()}}});function KI(r){return N({tag:"TaskCard/Actions",isDebugEnabled:()=>r.settings.enableDebugLogging})}function RV(r){let{task:e,plugin:t,targetDate:n,updateStatusVisuals:a}=r;return i=>{i.stopPropagation(),(async()=>{let s=KI(t);try{if(e.recurrence){let p=await t.toggleRecurringTaskComplete(e,n),m=$v(p,n,t.statusManager.getCompletedStatuses()[0]),f=t.statusManager.isCompletedStatus(m);a(p,m,f);return}let o=await t.cacheManager.getTaskInfo(e.path);if(!o){new Ak.Notice("Task not found");return}let l=o.status||t.settings.defaultTaskStatus,c=i.shiftKey?t.statusManager.getPreviousStatus(l):t.statusManager.getNextStatus(l),d=await t.updateTaskProperty(o,"status",c),u=t.statusManager.isCompletedStatus(c);a(d,c,u)}catch(o){let l=o instanceof Error?o.message:String(o);s.error("Error cycling task status",{category:"persistence",operation:"cycle-status",details:{taskPath:e.path,errorMessage:l},error:o}),new Ak.Notice(`Failed to update task status: ${l}`)}})()}}function FV(r,e){return t=>{t.stopPropagation(),new ju({currentValue:r.priority,onSelect:a=>{(async()=>{let i=KI(e);try{await e.updateTaskProperty(r,"priority",a)}catch(s){i.error("Error updating priority",{category:"persistence",operation:"update-priority",details:{taskPath:r.path,newPriority:a},error:s}),new Ak.Notice("Failed to update priority")}})()},plugin:e}).show(t)}}function OV(r,e){return t=>{t.stopPropagation(),new Vl({currentValue:typeof r.recurrence=="string"?r.recurrence:void 0,currentAnchor:r.recurrence_anchor||"scheduled",scheduledDate:r.scheduled,onSelect:(a,i)=>{(async()=>{let s=KI(e);try{await e.updateTaskProperty(r,"recurrence",a||void 0),i!==void 0&&await e.updateTaskProperty(r,"recurrence_anchor",i)}catch(o){s.error("Error updating recurrence",{category:"persistence",operation:"update-recurrence",details:{taskPath:r.path,newRecurrence:a,anchor:i},error:o}),new Ak.Notice("Failed to update recurrence")}})()},app:e.app,plugin:e}).show(t)}}function LV(r,e){return()=>{new ql(e.app,e,r,n=>{(async()=>{let a=KI(e);try{await e.updateTaskProperty(r,"reminders",n.length>0?n:void 0)}catch(i){a.error("Error updating reminders",{category:"persistence",operation:"update-reminders",details:{taskPath:r.path,reminderCount:n.length},error:i}),new Ak.Notice("Failed to update reminders")}})()}).open()}}var Ak,zV=y(()=>{Ak=require("obsidian");dE();Pk();Mk();Ct();K()});function Ne(r,e){return r.createElement(e,{})}var ms=y(()=>{});function ZI(r){return N({tag:"TaskCard/Relationships",isDebugEnabled:()=>{var e;return((e=r.settings)==null?void 0:e.enableDebugLogging)===!0}})}function jV(r,e){var t,n;return(n=(t=r.getRelationshipOptions)==null?void 0:t.call(r,e))!=null?n:{}}function lit(r,e){let t=()=>e.classList.add("task-card--nested-interactive-hover"),n=()=>e.classList.remove("task-card--nested-interactive-hover");r.addEventListener("mouseenter",t),r.addEventListener("mouseleave",n)}function cit(r){let e=r,t=e._clickHandler;t&&(r.removeEventListener("click",t),delete e._clickHandler)}function ao(r,e){let t=r.querySelector(e);t&&(r.classList.remove("task-card--nested-interactive-hover"),cit(t),t.remove())}function dTe(r){ao(r,".task-card__subtasks"),ao(r,".task-card__blocking"),ao(r,".task-card__blocked-by")}function $V(r,e,t,n={}){let a=r.querySelector(e);if(a)return a;let i=Ne(r.ownerDocument,"div");i.className=t;let s=o=>{o.stopPropagation()};return i.addEventListener("click",s),i._clickHandler=s,n.stopExtraPointerEvents&&(i.addEventListener("dblclick",o=>o.stopPropagation()),i.addEventListener("contextmenu",o=>o.stopPropagation())),lit(i,r),r.appendChild(i),i}function dit(r){var n;let e=[],t=r.closest(".task-card");for(;t;){let a=t._taskPath;typeof a=="string"&&e.unshift(a),t=(n=t.parentElement)==null?void 0:n.closest(".task-card")}return e}function BV(r){for(;r.firstChild;)r.removeChild(r.firstChild)}function uTe(r,e,t,n,a){for(let i of e){let s=t.renderTaskCard(i,n);s.classList.add(a),r.appendChild(s)}}async function UV(r,e,t,n){let{plugin:a}=r,i=ZI(a);try{if(!n){ao(e,".task-card__subtasks");return}let s=$V(e,".task-card__subtasks","task-card__subtasks");BV(s);let o=s.createDiv({cls:"task-card__subtasks-loading",text:a.i18n.translate("contextMenus.task.subtasks.loading")});try{let l=a.app.vault.getAbstractFileByPath(t.path);if(!(l instanceof mE.TFile))throw new Error("Task file not found");if(!a.projectSubtasksService)throw new Error("projectSubtasksService not initialized");let c=jV(r,e),d=qI(await a.projectSubtasksService.getTasksLinkedToProject(l),c);if(o.remove(),d.length===0){s.createDiv({cls:"task-card__subtasks-loading",text:a.i18n.translate("contextMenus.task.subtasks.noSubtasks")});return}let u=eTe(d,c,m=>a.projectSubtasksService.sortTasks(m)),p=dit(e);for(let m of u){if(p.includes(m.path)){i.warn("Skipped circular task relationship",{category:"validation",operation:"render-subtasks",details:{taskPath:t.path,subtaskPath:m.path,parentChain:p}});continue}let f=r.renderTaskCard(m,c);f.classList.add("task-card--subtask"),s.appendChild(f)}}catch(l){i.error("Error loading subtasks",{category:"provider",operation:"load-subtasks",details:{taskPath:t.path},error:l}),o.textContent=a.i18n.translate("contextMenus.task.subtasks.loadFailed")}}catch(s){throw i.error("Error toggling subtasks",{category:"internal",operation:"toggle-subtasks",details:{taskPath:t.path,expanded:n},error:s}),s}}async function pTe(r,e,t,n){let{plugin:a}=r,i=ZI(a);if(!n){ao(e,".task-card__blocking");return}let s=$V(e,".task-card__blocking","task-card__blocking",{stopExtraPointerEvents:!0});BV(s);let o=s.createDiv({cls:"task-card__blocking-loading",text:a.i18n.translate("ui.taskCard.loadingDependencies")});try{let l=t.blocking?await Promise.all(t.blocking.map(u=>a.cacheManager.getTaskInfo(u))):[],c=jV(r,e),d=qI(l.filter(u=>!!u),c);if(o.remove(),d.length===0){s.createDiv({cls:"task-card__blocking-empty",text:a.i18n.translate("ui.taskCard.blockingEmpty")});return}uTe(s,d,r,c,"task-card--dependency")}catch(l){i.error("Error loading blocking tasks",{category:"provider",operation:"load-blocking-tasks",details:{taskPath:t.path},error:l}),o.textContent=a.i18n.translate("ui.taskCard.blockingLoadError")}}async function mTe(r,e,t,n){let{plugin:a}=r,i=ZI(a);if(!n){ao(e,".task-card__blocked-by");return}let s=$V(e,".task-card__blocked-by","task-card__blocked-by",{stopExtraPointerEvents:!0});BV(s);let o=s.createDiv({cls:"task-card__blocked-by-loading",text:a.i18n.translate("ui.taskCard.loadingDependencies")});try{let l=ig(t,a.app),c=await Promise.all(l.map(p=>a.cacheManager.getTaskInfo(p))),d=jV(r,e),u=qI(c.filter(p=>!!p),d);if(o.remove(),u.length===0){s.createDiv({cls:"task-card__blocked-by-empty",text:a.i18n.translate("ui.taskCard.blockedBadge")});return}uTe(s,u,r,d,"task-card--dependency")}catch(l){i.error("Error loading blocked-by tasks",{category:"provider",operation:"load-blocked-by-tasks",details:{taskPath:t.path},error:l}),o.textContent=a.i18n.translate("ui.taskCard.blockingLoadError")}}async function fTe(r,e,t){let{plugin:n}=r,a=ZI(n);if(!e.projects||e.projects.length===0)return;let i=0,s=10;for(;i<s;){try{let l=await n.cacheManager.getTaskInfo(e.path);if(l&&l.dateModified===e.dateModified)break}catch(l){}await new Promise(l=>window.setTimeout(l,10)),i++}let o=t.querySelectorAll(".task-card__chevron--expanded");for(let l of o){let c=l.closest(".task-card");if(!c)continue;let d=c.dataset.taskPath;if(!d)continue;let u=n.app.vault.getAbstractFileByPath(d);if(!(u instanceof mE.TFile))continue;let p=u.basename;if(!(!e.projects.flat(2).some(h=>{if(h&&typeof h=="string"&&h.startsWith("[[")&&h.endsWith("]]")){let g=h.slice(2,-2).trim(),v=(0,mE.parseLinktext)(g).path,b=n.app.metadataCache.getFirstLinkpathDest(v,"");return v===p||b&&b.path===d}return h===p||h===d})||!c.querySelector(".task-card__subtasks")))try{let h=await n.cacheManager.getTaskInfo(d);h&&await UV(r,c,h,!0)}catch(h){a.error("Error refreshing parent task subtasks",{category:"provider",operation:"refresh-parent-subtasks",details:{taskPath:e.path,projectTaskPath:d},error:h})}}}var mE,HV=y(()=>{mE=require("obsidian");K();ms();WI()});function _k(r){return N({tag:"TaskCard/Badges",isDebugEnabled:()=>r.settings.enableDebugLogging})}function Ik(r,e,t){return r.i18n.translate(`ui.taskCard.${e}`,t)}function QI(r){var e;return((e=r.settings)==null?void 0:e.showExpandableSubtasks)===!0}function VV(r){var e;return((e=r.settings)==null?void 0:e.expandSubtasksByDefault)===!0&&QI(r)}function hTe(r,e){var t;return QI(e)&&((t=e.expandedProjectsService)==null?void 0:t.isExpanded(r.path,VV(e)))||!1}function pit(r){for(let e of uit)for(let t of r.querySelectorAll(e))t.remove();ao(r,".task-card__subtasks"),ao(r,".task-card__blocking"),ao(r,".task-card__blocked-by")}function qV(r,e,t){r.classList.toggle("task-card__chevron--expanded",t);let n=UI(e,t);r.setAttribute("aria-label",n),(0,og.setTooltip)(r,n,{placement:"top"})}function gTe(r,e,t,n){return()=>{(async()=>{let a=_k(e);try{if(!e.expandedProjectsService){new og.Notice("Service not available. Please try reloading the plugin.");return}let i=t.querySelector(".task-card__chevron");if(!i)return;let s=e.expandedProjectsService.toggle(r.path,VV(e));qV(i,e,s),await n.toggleSubtasks(t,r,s)}catch(i){a.error("Error toggling subtasks",{category:"internal",operation:"toggle-subtasks",details:{taskPath:r.path},error:i}),new og.Notice("Failed to toggle subtasks")}})()}}function yTe(r,e,t,n){return()=>{(async()=>{let a=_k(e);try{if(!e.expandedProjectsService){new og.Notice("Service not available. Please try reloading the plugin.");return}let i=e.expandedProjectsService.toggle(r.path,VV(e)),s=t.querySelector(".task-card__chevron");s&&qV(s,e,i),await n.toggleSubtasks(t,r,i)}catch(i){a.error("Error toggling project subtasks",{category:"internal",operation:"toggle-project-subtasks",details:{taskPath:r.path},error:i}),new og.Notice("Failed to toggle subtasks")}})()}}function vTe(r,e,t){return()=>{(async()=>{let n=e.querySelector(".task-card__blocking-toggle");if(!n)return;let a=n.classList.toggle("task-card__blocking-toggle--expanded");await t.toggleBlockingTasks(e,r,a)})()}}function kTe(r,e,t,n){return()=>{WV({card:t,task:r,plugin:e,handlers:n})}}function mit(r,e){let t=r.querySelector(".task-card__blocked-toggle");t&&(t.classList.toggle("task-card__blocked-toggle--expanded",e),t.setAttribute("aria-expanded",String(e)));for(let n of r.querySelectorAll(".task-card__metadata-pill--blocked"))n.getAttribute("role")==="button"&&n.setAttribute("aria-expanded",String(e))}async function WV(r){let{card:e,task:t,handlers:n}=r,a=!e.querySelector(".task-card__blocked-by");mit(e,a),await n.toggleBlockedByTasks(e,t,a)}function fit(r,e){let{card:t,task:n,plugin:a,handlers:i}=r;if(!a.projectSubtasksService.isTaskUsedAsProjectSync(n.path))return;let o=hTe(n,a),l=QI(a);Hc({container:e,className:"task-card__project-indicator",icon:"folder",tooltip:Ik(a,l?"projectTooltip":"projectIndicatorTooltip"),onClick:l?yTe(n,a,t,i):void 0}),l&&Hc({container:e,className:`task-card__chevron${o?" task-card__chevron--expanded":""}`,icon:"chevron-right",tooltip:UI(a,o),onClick:gTe(n,a,t,i)}),o&&i.toggleSubtasks(t,n,!0).catch(c=>{_k(a).error("Error showing initial subtasks",{category:"internal",operation:"show-initial-subtasks",details:{taskPath:n.path},error:c})})}function hit(r,e){let{card:t,task:n,plugin:a,handlers:i}=r;if(n.blocking&&n.blocking.length>0){let o=n.blocking.length,l=a.i18n.translate("ui.taskCard.blockingToggle",{count:o}),c=Hc({container:e,className:"task-card__blocking-toggle is-visible",icon:"git-branch",tooltip:l,onClick:vTe(n,t,i)});c&&(c.dataset.count=String(o))}let s=ig(n,a.app);if(s.length>0){let o=`${Ik(a,"blockedBadge")} (${s.length})`,l=Hc({container:e,className:"task-card__blocked-toggle is-visible",icon:"git-merge",tooltip:o,onClick:kTe(n,a,t,i)});l&&(l.dataset.count=String(s.length))}}function bTe(r){let{badgesContainer:e,task:t,plugin:n,hasDetails:a,propertyOptions:i}=r;if(!(!e||i.showSecondaryBadges===!1)){if(t.recurrence&&Hc({container:e,className:"task-card__recurring-indicator",icon:"rotate-ccw",tooltip:oE(n,t.recurrence,i.propertyLabels),onClick:OV(t,n)}),t.reminders&&t.reminders.length>0){let s=t.reminders.length;Hc({container:e,className:"task-card__reminder-indicator",icon:"bell",tooltip:xV(n,s),onClick:LV(t,n)})}a&&Hc({container:e,className:"task-card__details-indicator",icon:"file-text",tooltip:Ik(n,"detailsTooltip")}),fit(r,e),hit(r,e)}}function git(r){let{card:e,mainRow:t,task:n,plugin:a,handlers:i}=r,s=_k(a);a.projectSubtasksService.isTaskUsedAsProject(n.path).then(o=>{var f,h,g,v;(f=e.querySelector(".task-card__project-indicator-placeholder"))==null||f.remove(),(h=e.querySelector(".task-card__chevron-placeholder"))==null||h.remove();let l=QI(a),c=e.querySelector(".task-card__project-indicator"),d=(c==null?void 0:c.getAttribute("role"))==="button";o&&c&&d!==l&&c.remove(),sg(e,".task-card__project-indicator",{shouldExist:o,className:"task-card__project-indicator",icon:"folder",tooltip:Ik(a,l?"projectTooltip":"projectIndicatorTooltip"),onClick:l?yTe(n,a,e,i):void 0});let u=o&&l,p=e.querySelector(".task-card__chevron"),m=o&&hTe(n,a);u&&!p?Hc({container:(v=(g=e.querySelector(".task-card__badges"))!=null?g:t)!=null?v:e,className:`task-card__chevron${m?" task-card__chevron--expanded":""}`,icon:"chevron-right",tooltip:UI(a,m),onClick:gTe(n,a,e,i)}):u&&p?qV(p,a,m):!u&&p&&p.remove(),m?i.toggleSubtasks(e,n,!0).catch(b=>{s.error("Error showing subtasks in update",{category:"internal",operation:"show-subtasks-update",details:{taskPath:n.path},error:b})}):ao(e,".task-card__subtasks")}).catch(o=>{s.error("Error checking if task is used as project in update",{category:"internal",operation:"check-project-task",details:{taskPath:n.path},error:o})})}function yit(r){var c,d;let{card:e,task:t,plugin:n,handlers:a}=r,i=(d=(c=t.blocking)==null?void 0:c.length)!=null?d:0,s=i>0,o=n.i18n.translate("ui.taskCard.blockingToggle",{count:i}),l=sg(e,".task-card__blocking-toggle",{shouldExist:s,className:"task-card__blocking-toggle is-visible",icon:"git-branch",tooltip:o,onClick:vTe(t,e,a)});if(!s){ao(e,".task-card__blocking");return}l&&(l.classList.add("is-visible"),l.classList.remove("is-hidden"),l.dataset.count=String(i),l.classList.contains("task-card__blocking-toggle--expanded")&&a.toggleBlockingTasks(e,t,!0).catch(u=>{_k(n).error("Error refreshing blocking tasks",{category:"internal",operation:"refresh-blocking-tasks",details:{taskPath:t.path,blockingCount:i},error:u})}))}function vit(r){let{card:e,task:t,plugin:n,handlers:a}=r,i=ig(t,n.app),s=i.length>0,o=`${Ik(n,"blockedBadge")} (${i.length})`,l=sg(e,".task-card__blocked-toggle",{shouldExist:s,className:"task-card__blocked-toggle is-visible",icon:"git-merge",tooltip:o,onClick:kTe(t,n,e,a)});if(!s){ao(e,".task-card__blocked-by");return}l&&(l.classList.add("is-visible"),l.classList.remove("is-hidden"),l.dataset.count=String(i.length),l.classList.contains("task-card__blocked-toggle--expanded")&&a.toggleBlockedByTasks(e,t,!0).catch(c=>{_k(n).error("Error refreshing blocked-by tasks",{category:"internal",operation:"refresh-blocked-by-tasks",details:{taskPath:t.path,blockedByCount:i.length},error:c})}))}function TTe(r){var c,d;let{card:e,mainRow:t,task:n,plugin:a,hasDetails:i,propertyOptions:s}=r,o=e.querySelector(".task-card__badges");if(!o||s.showSecondaryBadges===!1){pit(e);return}sg(e,".task-card__recurring-indicator",{shouldExist:!!n.recurrence,className:"task-card__recurring-indicator",icon:"rotate-ccw",tooltip:n.recurrence?oE(a,n.recurrence,s.propertyLabels):"",onClick:OV(n,a)});let l=(d=(c=n.reminders)==null?void 0:c.length)!=null?d:0;sg(e,".task-card__reminder-indicator",{shouldExist:l>0,className:"task-card__reminder-indicator",icon:"bell",tooltip:xV(a,l),onClick:LV(n,a)}),sg(e,".task-card__details-indicator",{shouldExist:i,className:"task-card__details-indicator",icon:"file-text",tooltip:Ik(a,"detailsTooltip")}),git({...r,mainRow:t!=null?t:o}),yit(r),vit(r)}var og,uit,YV=y(()=>{og=require("obsidian");K();zV();CV();cE();HV();WI();uit=[".task-card__recurring-indicator",".task-card__reminder-indicator",".task-card__details-indicator",".task-card__project-indicator",".task-card__chevron",".task-card__blocking-toggle",".task-card__blocked-toggle"]});function kit(r,e){return r||(e.settings.defaultVisibleProperties?$i(e.settings.defaultVisibleProperties,e):Zbe(e))}function bit(r){var u,p;let{metadataLine:e,card:t,task:n,plugin:a,onBlockedByToggle:i}=r;if(!n.isBlocked)return null;let s=a.i18n.translate("ui.taskCard.blockedBadge"),o=ig(n,a.app),l=(p=(u=n.blockedBy)==null?void 0:u.length)!=null?p:0,c=l>0?`${s} (${l})`:s,d=e.createSpan({cls:"task-card__metadata-pill task-card__metadata-pill--blocked",text:c});if(o.length>0){let m=`${s} (${o.length})`;Hl(d),d.setAttribute("aria-label",m),d.setAttribute("aria-expanded",String(!!t.querySelector(".task-card__blocked-by"))),(0,$u.setTooltip)(d,m,{placement:"top"}),d.addEventListener("click",f=>{f.stopPropagation(),i()})}else(0,$u.setTooltip)(d,a.i18n.translate("ui.taskCard.blockedBadgeTooltip"),{placement:"top"});return d}function Tit(r){var l,c;let{metadataLine:e,task:t,plugin:n}=r;if(!t.isBlocking)return null;let a=n.i18n.translate("ui.taskCard.blockingBadge"),i=(c=(l=t.blocking)==null?void 0:l.length)!=null?c:0,s=i>0?`${a} (${i})`:a,o=e.createSpan({cls:"task-card__metadata-pill task-card__metadata-pill--blocking",text:s});return(0,$u.setTooltip)(o,n.i18n.translate("ui.taskCard.blockingBadgeTooltip"),{placement:"top"}),o}function wit(r){let{metadataLine:e,task:t,plugin:n}=r;if(!t.googleCalendarEventId)return null;let a=e.createSpan({cls:"task-card__metadata-pill task-card__metadata-pill--google-calendar"});return(0,$u.setIcon)(a,"calendar"),(0,$u.setTooltip)(a,n.i18n.translate("ui.taskCard.googleCalendarSyncTooltip"),{placement:"top"}),a}function Sit(r){var s;let{metadataLine:e,task:t,plugin:n}=r;if(!t.recurrence_parent||!t.occurrence_date)return null;let a=Vn(t.occurrence_date,{dateFormat:"MMM d",showTime:!1,userTimeFormat:(s=n.settings.calendarViewSettings)==null?void 0:s.timeFormat}),i=e.createSpan({cls:"task-card__metadata-pill task-card__metadata-pill--occurrence"});return(0,$u.setIcon)(i,"refresh-ccw"),i.createSpan({text:`Occurrence: ${a}`}),Hl(i),i.setAttribute("aria-label",`Open recurring parent for occurrence on ${t.occurrence_date}`),(0,$u.setTooltip)(i,`Occurrence of ${t.recurrence_parent} on ${t.occurrence_date}`,{placement:"top"}),i.addEventListener("click",o=>{o.stopPropagation();let l=Et(t.recurrence_parent||"");n.app.workspace.openLinkText(l,t.path,!1)}),i}function xit(r){let{metadataLine:e,task:t,plugin:n,visibleProperties:a,propertyOptions:i={}}=r;e.empty();let s=[],o=kit(a,n),l=Sit(r);l&&s.push(l);for(let c of o){if(Ck(c,"status",n)||Ck(c,"priority",n))continue;if(c==="blocked"){let u=bit(r);u&&s.push(u);continue}if(c==="blocking"){let u=Tit(r);u&&s.push(u);continue}if(c==="googleCalendarSync"){let u=wit(r);u&&s.push(u);continue}let d=Qbe(e,c,t,n,i);d&&s.push(d)}return Jbe(e,s),s}function GV(r){let{metadataLine:e,card:t,task:n,plugin:a,visibleProperties:i,propertyOptions:s,handlers:o}=r;return xit({metadataLine:e,card:t,task:n,plugin:a,visibleProperties:i,propertyOptions:s,onBlockedByToggle:()=>void WV({card:t,task:n,plugin:a,handlers:o})})}var $u,wTe=y(()=>{$u=require("obsidian");Me();qn();$c();Xbe();WI();cE();YV()});function STe(r,e,t=!1){return!t&&(!r||r.some(n=>Ck(n,"status",e)))}function xTe(r,e){return!r||r.some(t=>Ck(t,"priority",e))}function JI(r,e,t){let n=t.statusManager.getStatusConfig(e);n!=null&&n.color?r.style.setProperty("--current-status-color",n.color):r.style.removeProperty("--current-status-color");let a=t.statusManager.getNextStatus(e),i=t.statusManager.getStatusConfig(a);i!=null&&i.color?r.style.setProperty("--next-status-color",i.color):r.style.removeProperty("--next-status-color")}function ZV(r,e,t){let n=t.priorityManager.getPriorityConfig(e.priority);return n!=null&&n.color?(r.style.setProperty("--priority-color",n.color),r.style.setProperty("--current-priority-color",n.color)):(r.style.removeProperty("--priority-color"),r.style.removeProperty("--current-priority-color")),n}function XI(r,e){e!=null&&e.color?r.style.borderColor=e.color:r.style.removeProperty("border-color"),e!=null&&e.icon?(r.addClass("task-card__status-dot--icon"),r.empty(),(0,KV.setIcon)(r,e.icon)):(r.removeClass("task-card__status-dot--icon"),r.empty(),r.removeAttribute("data-icon"),r.classList.remove("has-icon"))}function QV(r){let{mainRow:e,card:t,task:n,plugin:a,effectiveStatus:i,visibleProperties:s,hideStatusIndicator:o,onClick:l}=r;if(!STe(s,a,o)||!e)return null;let c=e.createSpan({cls:"task-card__status-dot"});return XI(c,a.statusManager.getStatusConfig(i)),Hl(c),c.addEventListener("click",l),c.dataset.taskPath=n.path,JI(t,i,a),c}function CTe(r,e,t){let n=r.querySelector(t);if(n){n.insertAdjacentElement("afterend",e);return}let a=r.querySelector(".task-card__checkbox");if(a){a.insertAdjacentElement("afterend",e);return}r.insertBefore(e,r.firstChild)}function ETe(r){let{mainRow:e,card:t,plugin:n,effectiveStatus:a,visibleProperties:i,hideStatusIndicator:s}=r,o=t.querySelector(".task-card__status-dot");if(JI(t,a,n),!STe(i,n,s))return o==null||o.remove(),null;if(o)return XI(o,n.statusManager.getStatusConfig(a)),o;if(!e)return null;let l=QV(r);return l&&CTe(e,l,".task-card__checkbox"),l}function DTe(r,e,t){r.style.borderColor=e.color,r.setAttribute("aria-label",t.i18n.translate("ui.taskCard.priorityAriaLabel",{label:e.label})),r.replaceChildren(),r.classList.toggle("task-card__priority-dot--icon",!!e.icon),e.icon?(0,KV.setIcon)(r,e.icon):(r.removeAttribute("data-icon"),r.classList.remove("has-icon"))}function JV(r){let{mainRow:e,task:t,plugin:n,visibleProperties:a,onClick:i}=r,s=n.priorityManager.getPriorityConfig(t.priority);if(!t.priority||!s||!xTe(a,n)||!e)return null;let o=e.createSpan({cls:"task-card__priority-dot"});return DTe(o,s,n),Hl(o),o.addEventListener("click",i),o}function PTe(r){var c,d;let{mainRow:e,card:t,task:n,plugin:a,visibleProperties:i}={...r,card:(d=(c=r.mainRow)==null?void 0:c.closest(".task-card"))!=null?d:r.mainRow};if(!t)return null;let s=t.querySelector(".task-card__priority-dot"),o=a.priorityManager.getPriorityConfig(n.priority);if(!n.priority||!o||!xTe(i,a))return s==null||s.remove(),null;if(!s){if(!e)return null;let u=JV(r);return u&&CTe(e,u,".task-card__status-dot"),u}DTe(s,o,a);let l=s.cloneNode(!0);return Hl(l),l.addEventListener("click",r.onClick),s.replaceWith(l),l}var KV,XV=y(()=>{KV=require("obsidian");$c();cE()});function Cit(r){let e=/^(\d{4})-(\d{2})-(\d{2})$/.exec(r);if(!e)return null;let[,t,n,a]=e;return new Date(Date.UTC(Number(t),Number(n)-1,Number(a)))}function Eit(){let r=new Date;return new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate()))}function Dit(r){if(r.recurrence&&r.recurrence_anchor!=="completion"&&r.scheduled){let e=Cit(de(r.scheduled));if(e)return e}return Eit()}function eq(r,e){var n,a,i;if(typeof r.details=="string")return r.details.trim().length>0;if(!e||!r.path)return!1;let t=(i=(a=(n=e.app.metadataCache).getCache)==null?void 0:a.call(n,r.path))==null?void 0:i.sections;return t?t.some(s=>s.type!=="yaml"):!1}function tq(r){var e;return((e=r.settings)==null?void 0:e.showCompletedTaskStrikethrough)!==!1}function rq(r){let e=new Set;for(let t of Rl(r.projects||[])){let n=Cu(t);n&&e.add(`task-card--project-${n}`)}return Array.from(e)}function Pit(r,e,t){var i;let n=["task-card"];t.layout!=="default"&&n.push(`task-card--layout-${t.layout}`),t.isCompleted&&n.push("task-card--completed"),t.isCompleted&&tq(e)&&n.push("task-card--completed-strikethrough"),t.isSkipped&&n.push("task-card--skipped"),r.archived&&n.push("task-card--archived"),t.isActivelyTracked&&n.push("task-card--actively-tracked"),t.isRecurring&&n.push("task-card--recurring"),t.isMaterializedOccurrence&&n.push("task-card--materialized-occurrence"),t.hasDetails&&n.push("task-card--has-details"),r.priority&&n.push(`task-card--priority-${Cu(r.priority)}`),t.effectiveStatus&&n.push(`task-card--status-${Cu(t.effectiveStatus)}`),((i=e.settings)==null?void 0:i.subtaskChevronPosition)==="left"&&n.push("task-card--chevron-left");let a=rq(r);return a.length>0&&n.push("task-card--has-projects",...a),n}function nq(r,e,t={}){var c,d;let n=t.targetDate||Dit(r),a=r.recurrence?$v(r,n,e.statusManager.getCompletedStatuses()[0]):r.status,i=t.layout||"default",s=r.recurrence?((c=r.complete_instances)==null?void 0:c.includes(ce(n)))||!1:e.statusManager.isCompletedStatus(a),o=r.recurrence&&((d=r.skipped_instances)==null?void 0:d.includes(ce(n)))||!1,l={targetDate:n,effectiveStatus:a,layout:i,isCompleted:s,isSkipped:o,isRecurring:!!r.recurrence,isMaterializedOccurrence:!!(r.recurrence_parent&&r.occurrence_date),isActivelyTracked:e.getActiveTimeSession(r)!==null,hasDetails:eq(r,e)};return{...l,cardClasses:Pit(r,e,l)}}var aq=y(()=>{Me();Ct()});function Te(r,e,t){r==null||r.trigger(iq,{message:e,timeout:t})}var iq,fs=y(()=>{iq="user-notice"});function eN(r,e,t){return r.i18n.translate(e,t)}function Mit(r){let e=new Set,t=[];for(let n of r){let a=n.trim();!a||e.has(a)||(e.add(a),t.push(a))}return t}function ATe(r,e,t){return Ws(r.app,e,t,"","",r.settings.useFrontmatterMarkdownLinks)}function Ait(r,e,t){var s,o;let n=e.trim();if(!n)return"";let a=Et(n),i=(o=(s=r.app.metadataCache).getFirstLinkpathDest)==null?void 0:o.call(s,a,t);return i instanceof MTe.TFile?ATe(r,i,t):n}async function Nk(r,e,t){let n=Ws(r.app,t,e.path,"","",r.settings.useFrontmatterMarkdownLinks),a=`[[${t.basename}]]`,i=Array.isArray(e.projects)?e.projects:[];if(i.includes(n)||i.includes(a))return Te(r.emitter,eN(r,"contextMenus.task.organization.notices.alreadyInProject")),null;let o=[...i.filter(c=>c!==a),n],l=await r.updateTaskProperty(e,"projects",o);return Te(r.emitter,eN(r,"contextMenus.task.organization.notices.addedToProject",{project:t.basename})),l}async function tN(r,e,t){let n=Ws(r.app,e,t.path,"","",r.settings.useFrontmatterMarkdownLinks),a=`[[${e.basename}]]`,i=Array.isArray(t.projects)?t.projects:[];if(i.includes(n)||i.includes(a))return Te(r.emitter,eN(r,"contextMenus.task.organization.notices.alreadySubtask")),null;let o=[...i.filter(c=>c!==a),n],l=await r.updateTaskProperty(t,"projects",o);return Te(r.emitter,eN(r,"contextMenus.task.organization.notices.addedAsSubtask",{subtask:t.title,parent:e.basename})),l}function _Te(r,e,t){var c;let n=!!((c=r.settings.taskCreationDefaults)!=null&&c.inheritParentTaskProperties),a=ATe(r,t,e.path),i=Array.isArray(e.tags)?e.tags:[],s=n?Array.isArray(e.projects)?e.projects.map(d=>Ait(r,d,e.path)):[]:[],o=n?r.settings.taskIdentificationMethod==="tag"?Lu(i,r.settings.taskTag,r.settings.hideIdentifyingTagsMode):[...i]:[],l={projects:Mit([...s,a])};return o.length>0&&(l.tags=o),n&&Array.isArray(e.contexts)&&e.contexts.length>0&&(l.contexts=[...e.contexts]),n&&e.priority&&(l.priority=e.priority),l}var MTe,rN=y(()=>{MTe=require("obsidian");qn();fm();fs()});var Ba=y(()=>{W2()});function sq(r){return!!(r.googleCalendarEventId||r.googleCalendarExceptionEventId||r.googleCalendarExceptionOriginalScheduled||r.googleCalendarMovedOriginalDates&&r.googleCalendarMovedOriginalDates.length>0)&&!!r.recurrence&&(r.recurrence_anchor||"scheduled")==="scheduled"}function _it(r){let e=r.googleCalendarExceptionOriginalScheduled||r.scheduled||r.due;return de(e||"")||void 0}function nN(r,e,t){if(!sq(r)||e===r.scheduled)return;let n=_it(r);if(!n)return;let a=typeof e=="string"?de(e):"";t.googleCalendarExceptionOriginalScheduled=a&&a!==n?n:void 0}function lg(r){sq(r)||(r.googleCalendarExceptionOriginalScheduled=void 0,r.googleCalendarMovedOriginalDates=void 0)}function oq(r,e,t){if(!sq(r))return;let n=de(r.googleCalendarExceptionOriginalScheduled||"");if(!n)return;let a=de(r.scheduled||"");!a||e!==a||(t.googleCalendarMovedOriginalDates=Array.from(new Set([...r.googleCalendarMovedOriginalDates||[],n])).sort(),t.googleCalendarExceptionOriginalScheduled=void 0)}var aN=y(()=>{Me()});function bm(r){return Array.isArray(r)?r.filter(e=>typeof e=="string"):[]}function Iit(r){let e=r.match(/(?:^|;)INTERVAL=(\d+)(?:;|$)/),t=e?Number.parseInt(e[1],10):1;return r.includes("FREQ=DAILY")?Math.max(30,t*2):r.includes("FREQ=WEEKLY")?Math.max(90,t*7*2):r.includes("FREQ=MONTHLY")?Math.max(400,t*31*2):r.includes("FREQ=YEARLY")?Math.max(800,t*366*2):365}function Nit(r,e){if(!r.recurrence)return null;let t=Jp(r,e,e),n=ce(e);if(t.some(l=>ce(l)===n))return e;let a=new Set([...r.complete_instances||[],...r.skipped_instances||[]]),i=Iit(r.recurrence),s=new Date(e.getTime()-i*24*60*60*1e3),o=Jp(r,s,e);for(let l=o.length-1;l>=0;l--)if(!a.has(ce(o[l])))return o[l];return H2(r,{minOccurrenceDate:n})}function ITe(r,e){return(r.recurrence_anchor||"scheduled")==="completion"||r.googleCalendarExceptionOriginalScheduled?null:Nit(r,e)}function NTe(r,e){let t=ce(e);if(!r)return t;let n=de(r);return`${t}${r.slice(n.length)}`}function RTe(r,e,t){if((e.recurrence_anchor||"scheduled")!=="scheduled")return r;let n=new Set;for(let d of e.googleCalendarMovedOriginalDates||[]){let u=de(d);u&&n.add(u)}let a=de(e.googleCalendarExceptionOriginalScheduled||""),i=de(e.scheduled||"");a&&a!==t&&i===t&&n.add(a);let s=new Set(bm(r.complete_instances)),o=bm(r.skipped_instances),l=new Set(o),c=Array.from(n).filter(d=>!s.has(d)&&!l.has(d)).sort();return c.length===0?r:{...r,skipped_instances:[...o,...c]}}function sN(r,e){if(e)return e;if(r.recurrence_anchor!=="completion"&&r.scheduled)return kt(de(r.scheduled));let t=Er();return wn(t)}function FTe({freshTask:r,targetDate:e,currentTimestamp:t,maintainDueDateOffsetInRecurring:n}){if(!r.recurrence)throw new Error("Task is not recurring");let a=r.recurrence_anchor||"scheduled",i=ITe(r,e),s=i!=null?i:e,o=ce(s),l=bm(r.complete_instances),d=!l.includes(o),u={...r,dateModified:t};if(d){l.includes(o)||(u.complete_instances=[...l,o]);let v=bm(r.skipped_instances);u.skipped_instances=v.filter(b=>b!==o)}else{u.complete_instances=l.filter(b=>b!==o);let v=bm(r.skipped_instances);u.skipped_instances=v.filter(b=>b!==o)}if(d&&typeof u.recurrence=="string"){if(a==="completion"){let v=g_(u.recurrence,o);v&&(u.recurrence=v)}else if(!u.recurrence.includes("DTSTART:")){let v=Mh(u);v&&(u.recurrence=v)}}let p=i?{...u,scheduled:NTe(u.scheduled,i)}:u,m=RTe(p,r,o),f=nn(),h=o>f?o:f,g=wu(m,n,{minOccurrenceDate:h});return g.scheduled&&(u.scheduled=g.scheduled),g.due&&(u.due=g.due),oq(r,o,u),lg(u),{updatedTask:u,targetDate:e,dateStr:o,newComplete:d,dateModified:t,originalRecurrence:r.recurrence}}function OTe({frontmatter:r,completeInstancesField:e,skippedInstancesField:t,dateModifiedField:n,scheduledField:a,dueField:i,recurrenceField:s,googleCalendarExceptionOriginalScheduledField:o,googleCalendarMovedOriginalDatesField:l,plan:c}){r[e]||(r[e]=[]),r[t]||(r[t]=[]);let d=bm(r[e]);c.newComplete?d.includes(c.dateStr)||(r[e]=[...d,c.dateStr]):r[e]=d.filter(u=>u!==c.dateStr),r[t]=c.updatedTask.skipped_instances||[],c.updatedTask.recurrence!==c.originalRecurrence&&(r[s]=c.updatedTask.recurrence),c.updatedTask.scheduled&&(r[a]=c.updatedTask.scheduled),c.updatedTask.due&&(r[i]=c.updatedTask.due),iN(r,o,c.updatedTask.googleCalendarExceptionOriginalScheduled),iN(r,l,c.updatedTask.googleCalendarMovedOriginalDates),r[n]=c.dateModified}function LTe({freshTask:r,targetDate:e,currentTimestamp:t,maintainDueDateOffsetInRecurring:n}){if(!r.recurrence)throw new Error("Task is not recurring");let a=ITe(r,e),i=a!=null?a:e,s=ce(i),o=bm(r.skipped_instances),c=!o.includes(s),d={...r,dateModified:t};if(c){o.includes(s)||(d.skipped_instances=[...o,s]);let g=bm(r.complete_instances);d.complete_instances=g.filter(v=>v!==s)}else d.skipped_instances=o.filter(g=>g!==s);let u=a?{...d,scheduled:NTe(d.scheduled,a)}:d,p=RTe(u,r,s),m=nn(),f=s>m?s:m,h=wu(p,n,{minOccurrenceDate:f});return h.scheduled&&(d.scheduled=h.scheduled),h.due&&(d.due=h.due),oq(r,s,d),lg(d),{updatedTask:d,targetDate:e,dateStr:s,newSkipped:c,dateModified:t}}function zTe({frontmatter:r,skippedField:e,completeField:t,dateModifiedField:n,scheduledField:a,dueField:i,googleCalendarExceptionOriginalScheduledField:s,googleCalendarMovedOriginalDatesField:o,plan:l}){r[e]||(r[e]=[]),r[e]=l.updatedTask.skipped_instances||[],r[t]||(r[t]=[]),r[t]=l.updatedTask.complete_instances||[],l.updatedTask.scheduled&&(r[a]=l.updatedTask.scheduled),l.updatedTask.due&&(r[i]=l.updatedTask.due),iN(r,s,l.updatedTask.googleCalendarExceptionOriginalScheduled),iN(r,o,l.updatedTask.googleCalendarMovedOriginalDates),r[n]=l.dateModified}function iN(r,e,t){if(t==null||Array.isArray(t)&&t.length===0){delete r[e];return}r[e]=t}var lq=y(()=>{Ah();Me();aN()});function Bu(r,e,t={}){let n=Ge(),a={title:e.title.trim(),status:e.status||r.settings.defaultTaskStatus,priority:e.priority||r.settings.defaultTaskPriority,dateCreated:n,dateModified:n};if(t.creationContext&&(a.creationContext=t.creationContext),e.dueDate&&(a.due=e.dueTime?La(e.dueDate,e.dueTime):e.dueDate),e.scheduledDate&&(a.scheduled=e.scheduledTime?La(e.scheduledDate,e.scheduledTime):e.scheduledDate),e.contexts&&e.contexts.length>0&&(a.contexts=e.contexts),e.projects&&e.projects.length>0&&(a.projects=e.projects),e.tags&&e.tags.length>0&&(a.tags=e.tags.map(i=>za(i))),e.details&&(a.details=e.details),e.recurrence&&(a.recurrence=e.recurrence),e.estimate&&e.estimate>0&&(a.timeEstimate=e.estimate),e.userFields){let i=r.settings.userFields||[],s={};for(let[o,l]of Object.entries(e.userFields)){let c=i.find(d=>d.id===o);c&&(s[c.key]=Array.isArray(l)?l.join(", "):l)}Object.keys(s).length>0&&(a.customFrontmatter=s)}return a}var fE=y(()=>{Me();Ct()});function Rit(r,e){if(!r.recurrence)return!1;let t=ce(e);return(Array.isArray(r.complete_instances)?r.complete_instances:[]).includes(t)}function jTe(r,e,t,n="open"){let a=t.getCompletedStatuses()[0]||"done",i=h_(r,e,a)||n;return!r.recurrence||Rit(r,e)?i:t.isCompletedStatus(i)?n:i}function cg(r,e,t,n="open"){return t.isCompletedStatus(jTe(r,e,t,n))}function oN(r,e,t,n="open"){let a=jTe(r,e,t,n);return a===r.status?r:{...r,status:a}}var lN=y(()=>{Ah();Me()});var Fk,Fit,Rk,cq=y(()=>{Fk=require("obsidian");Lc();I_();LS();fm();K();Fit=N({tag:"Modals/TaskCreationSuggest"}),Rk=class extends Fk.AbstractInputSuggest{constructor(t,n,a){super(t,n);this.currentTrigger=null;this.projectMetadataResolver=null;this.plugin=a,this.textarea=n,this.obsidianApp=t}getCursorPosition(){var t;return(t=this.textarea.selectionStart)!=null?t:this.textarea.value.length}isBoundary(t,n){if(n===-1)return!1;if(n===0)return!0;let a=t[n-1];return!/\w/.test(a)}findActiveTrigger(t){let n=t.lastIndexOf("@"),a=t.lastIndexOf("#"),i=t.lastIndexOf("+"),s=(this.plugin.settings.statusSuggestionTrigger||"").trim(),o=s?t.lastIndexOf(s):-1,l=[{type:"@",index:n},{type:"#",index:a},{type:"+",index:i},{type:"status",index:o}].filter(m=>this.isBoundary(t,m.index));if(l.length===0)return{trigger:null,triggerIndex:-1,queryAfterTrigger:""};l.sort((m,f)=>f.index-m.index);let c=l[0].index,d=l[0].type,u=d==="status"?(s==null?void 0:s.length)||0:1,p=t.slice(c+u);return{trigger:d,triggerIndex:c,queryAfterTrigger:p}}shouldEndSuggestionContext(t,n){return!!(t==="+"&&/^\[\[[^\]]*\]\]/.test(n)||(t==="@"||t==="#"||t==="status")&&(n.includes(" ")||n.includes(`
|
||
`)))}getContextSuggestions(t){return this.plugin.cacheManager.getAllContexts().filter(a=>a&&typeof a=="string").filter(a=>a.toLowerCase().includes(t.toLowerCase())).slice(0,10).map(a=>({value:a,display:a,type:"context",toString(){return this.value}}))}getStatusSuggestions(t){return ra.fromPlugin(this.plugin).getStatusSuggestions(t,10).map(a=>({...a,type:"status",toString(){return this.value}}))}getTagSuggestions(t){return _I(this.plugin.cacheManager.getAllTags(),this.plugin.settings).filter(a=>a&&typeof a=="string").filter(a=>a.toLowerCase().includes(t.toLowerCase())).slice(0,10).map(a=>({value:a,display:a,type:"tag",toString(){return this.value}}))}getProjectMetadataResolver(){var t;if(!this.projectMetadataResolver){let n=(t=this.obsidianApp)!=null?t:this.plugin.app;this.projectMetadataResolver=new nm({getFrontmatter:a=>{let i=n==null?void 0:n.vault.getAbstractFileByPath(a.path),s=i instanceof Fk.TFile?n==null?void 0:n.metadataCache.getFileCache(i):void 0;return(s==null?void 0:s.frontmatter)||{}}})}return this.projectMetadataResolver}async getProjectSuggestions(t){var s,o,l,c;let{FileSuggestHelper:n}=await Promise.resolve().then(()=>(jS(),eU)),a=await n.suggest(this.plugin,t,20,this.plugin.settings.projectAutosuggest),i=(s=this.obsidianApp)!=null?s:this.plugin.app;try{let d=this.getProjectMetadataResolver(),u=((c=(l=(o=this.plugin.settings)==null?void 0:o.projectAutosuggest)==null?void 0:l.rows)!=null?c:[]).slice(0,3);return a.map(p=>{var C;let m=i==null?void 0:i.vault.getMarkdownFiles().find(E=>E.path===p.path);if(!m)return{basename:p.insertText,displayName:p.displayText,linkText:p.insertText,type:"project",toString(){return this.basename}};let f=i==null?void 0:i.metadataCache.getFileCache(m),h=(f==null?void 0:f.frontmatter)||{},g=this.plugin.fieldMapper.mapFromFrontmatter(h,m.path,this.plugin.settings.storeTitleInFilename),v=typeof g.title=="string"?g.title:"",b=(0,Fk.parseFrontMatterAliases)(h)||[],k=Array.isArray(b)?b.filter(E=>typeof E=="string"):[],w={basename:m.basename,name:m.name,path:m.path,parent:((C=m.parent)==null?void 0:C.path)||"",title:v,aliases:k,frontmatter:h},S=this.generateProjectDisplayName(u,w,d,m.basename);return{basename:m.basename,displayName:S,linkText:p.insertText,type:"project",entry:{basename:w.basename,name:w.name,path:w.path,parent:w.parent,title:w.title,aliases:w.aliases,frontmatter:w.frontmatter},toString(){return this.basename}}})}catch(d){return Fit.error("Enhanced project autosuggest failed, falling back to basic suggestions",{category:"persistence",operation:"enhanced-project-autosuggest-falling-back-basic-suggestions",error:d}),a.map(u=>({basename:u.insertText,displayName:u.displayText,linkText:u.insertText,type:"project",toString(){return this.basename}}))}}generateProjectDisplayName(t,n,a,i){var o;let s=[];for(let l of t)try{let c=_c(l),d=[];for(let p of c){if(p.property.startsWith("literal:")){d.push(p.property.slice(8));continue}let m=a.resolve(p.property,n)||"";if(m)if(p.showName){let f=(o=p.displayName)!=null?o:p.property;d.push(`${f}: ${m}`)}else d.push(m)}let u=d.join(" ");u.trim()&&s.push(u)}catch(c){}return s.join(" | ")||i}async getSuggestions(t){let n=this.getCursorPosition(),a=this.textarea.value.slice(0,n),{trigger:i,triggerIndex:s,queryAfterTrigger:o}=this.findActiveTrigger(a);if(!i||s===-1)return this.currentTrigger=null,[];if(this.shouldEndSuggestionContext(i,o))return this.currentTrigger=null,[];switch(this.currentTrigger=i,i){case"@":return this.getContextSuggestions(o);case"status":return this.getStatusSuggestions(o);case"#":return this.getTagSuggestions(o);case"+":return await this.getProjectSuggestions(o);default:return[]}}renderSuggestion(t,n){var c,d,u,p,m;n.setAttribute("role","option");let a=t.type==="project"?t.displayName:t.display;n.setAttribute("aria-label",`${t.type}: ${a}`);let i=n.createSpan("nlp-suggest-icon");i.textContent=this.currentTrigger==="status"?this.plugin.settings.statusSuggestionTrigger||"":this.currentTrigger||"",i.setAttribute("aria-hidden","true");let s=n.createSpan("nlp-suggest-text"),o=(f,h)=>{if(!h)return;let g=h.toLowerCase().split(/\s+/).filter(Boolean);if(!g.length)return;let v=b=>{var k;if(b.nodeType===Node.TEXT_NODE){let w=b.nodeValue||"",S=w.toLowerCase(),C=[];for(let O of g){let z=S.indexOf(O);for(;z!==-1;)C.push({start:z,end:z+O.length}),z=S.indexOf(O,z+1)}C.sort((O,z)=>O.start-z.start);let E=[];for(let O of C)(!E.length||O.start>=E[E.length-1].end)&&E.push(O);if(!E.length)return;let D=activeWindow.createFragment(),P=0;for(let O of E){O.start>P&&D.appendChild(activeDocument.createTextNode(w.slice(P,O.start)));let z=activeWindow.createEl("mark");z.textContent=w.slice(O.start,O.end),D.appendChild(z),P=O.end}P<w.length&&D.appendChild(activeDocument.createTextNode(w.slice(P))),(k=b.parentNode)==null||k.replaceChild(D,b)}else if(b.nodeType===Node.ELEMENT_NODE&&b.tagName!=="MARK"){let w=Array.from(b.childNodes);for(let S of w)v(S)}};v(f)},l="";if(this.currentTrigger==="+"){let f=this.getCursorPosition(),h=this.textarea.value.slice(0,f),g=h.lastIndexOf("+");if(g!==-1){let v=h.slice(g+1);v&&!v.includes(`
|
||
`)&&(l=v.trim())}}if(t.type==="project"){let f=s.createDiv({cls:"nlp-suggest-project__filename",text:t.basename});l&&o(f,l);let h=((u=(d=(c=this.plugin.settings)==null?void 0:c.projectAutosuggest)==null?void 0:d.rows)!=null?u:[]).slice(0,3);if(Array.isArray(h)&&h.length>0&&t.entry){let g=this.getProjectMetadataResolver();for(let v=0;v<Math.min(h.length,3);v++){let b=h[v];if(b)try{let k=_c(b),w=s.createDiv({cls:"nlp-suggest-project__meta"}),S=new Set(["title","aliases","file.basename"]),C=!1;for(let E of k){if(E.property.startsWith("literal:")){let z=E.property.slice(8);z&&(w.childNodes.length&&w.appendChild(activeDocument.createTextNode(" ")),w.appendChild(activeDocument.createTextNode(z)),C=!0);continue}let D=g.resolve(E.property,t.entry);if(!D)continue;if(w.childNodes.length&&w.appendChild(activeDocument.createTextNode(" ")),E.showName){let z=activeWindow.createSpan();z.className="nlp-suggest-project__meta-label",z.textContent=`${(p=E.displayName)!=null?p:E.property}:`,w.appendChild(z),w.appendChild(activeDocument.createTextNode(" "))}let P=activeWindow.createSpan();P.className="nlp-suggest-project__meta-value",P.textContent=D,w.appendChild(P),C=!0;let O=E.searchable===!0||S.has(E.property);l&&O&&o(P,l)}(!C||((m=w.textContent)==null?void 0:m.trim().length)===0)&&w.remove()}catch(k){}}}}else t.type,s.textContent=t.display}selectSuggestion(t){if(!this.currentTrigger)return;let n=this.getCursorPosition(),a=this.textarea.value.slice(0,n),i=this.textarea.value.slice(n),s=-1,o=(this.plugin.settings.statusSuggestionTrigger||"").trim();if(this.currentTrigger==="@"?s=a.lastIndexOf("@"):this.currentTrigger==="#"?s=a.lastIndexOf("#"):this.currentTrigger==="+"?s=a.lastIndexOf("+"):this.currentTrigger==="status"&&o&&(s=a.lastIndexOf(o)),s===-1)return;let l=t.type==="project"?t.linkText:t.value,c=a.slice(0,s),d="";this.currentTrigger==="+"?d="+[["+l+"]]":this.currentTrigger==="status"?d=t.type==="status"?t.label:l:d=this.currentTrigger+l;let u=c+d+(d?" ":"")+i;this.textarea.value=u;let p=c.length+d.length+(d?1:0);this.textarea.setSelectionRange(p,p),this.textarea.dispatchEvent(new Event("input",{bubbles:!0})),this.textarea.focus()}}});var uq={};at(uq,{TaskSelectorWithCreateModal:()=>gE,getTaskSelectorQueryRank:()=>dq,openTaskSelector:()=>Fn,openTaskSelectorWithCreate:()=>Lit,taskMatchesSelectorQuery:()=>BTe});function hE(r,e){return r==null||typeof r!="string"&&typeof r!="number"&&typeof r!="boolean"?!1:String(r).toLowerCase().includes(e)}function cN(r,e){if(r==null||typeof r!="string"&&typeof r!="number"&&typeof r!="boolean")return null;let t=String(r).toLowerCase();return t.includes(e)?t===e?0:t.startsWith(e)?1:t.split(/[^a-z0-9]+/).some(a=>a.startsWith(e))?2:3:null}function $Te(r,e){let t=null;for(let n of r){let a=cN(n,e);a!==null&&(t=t===null?a:Math.min(t,a))}return t}function BTe(r,e){var n;return!!(hE(r.title,e)||hE(r.due,e)||r.priority!=="normal"&&hE(r.priority,e)||(n=r.contexts)!=null&&n.some(a=>hE(a,e))||Rl(r.projects||[]).some(a=>hE(a,e)))}function dq(r,e){let t=cN(r.title,e);if(t!==null)return t;let n=$Te(r.contexts||[],e);if(n!==null)return 10+n;let a=Rl(r.projects||[]),i=$Te(a,e);if(i!==null)return 20+i;if(r.priority!=="normal"){let o=cN(r.priority,e);if(o!==null)return 30+o}let s=cN(r.due,e);return s!==null?40+s:Number.MAX_SAFE_INTEGER}async function Lit(r,e){let t=await r.cacheManager.getAllTasks();return new Promise(n=>{new gE(r.app,r,t,{onResult:n,...e}).open()})}function Fn(r,e,t,n){new gE(r.app,r,e,{placeholder:n==null?void 0:n.placeholder,title:n==null?void 0:n.title,targetDate:n==null?void 0:n.targetDate,onResult:i=>{i.type==="selected"||i.type==="created"?t(i.task):t(null)}}).open()}var Vc,Oit,gE,Vo=y(()=>{Vc=require("obsidian");Ct();Lc();mi();fE();lN();cq();K();Oit=N({tag:"Modals/TaskSelectorWithCreateModal"});gE=class extends Vc.SuggestModal{constructor(t,n,a,i){super(t);this.nlpSuggest=null;this.createFooterEl=null;this.currentQuery="";this.resultHandled=!1;this.isCreatingTask=!1;this.handleCreateFooterActivation=t=>{!this.createFooterEl||this.createFooterEl.classList.contains("tn-static-display-none-6b99de8b")||(t.preventDefault(),t.stopPropagation(),this.createNewTask())};this.handleCreateFooterKeydown=t=>{t.key!=="Enter"&&t.key!==" "||this.handleCreateFooterActivation(t)};this.handleInputChange=()=>{let t=this.inputEl.value.trim();this.currentQuery=t,this.updateCreateFooter(t)};this.plugin=n,this.tasks=a,this.options=i,this.targetDate=i.targetDate||new Date,this.translate=n.i18n.translate.bind(n.i18n),this.nlParser=ra.fromPlugin(n),this.setPlaceholder(i.placeholder||this.translate("modals.taskSelectorWithCreate.placeholder")),this.setInstructions([{command:"\u2191\u2193",purpose:this.translate("modals.taskSelector.instructions.navigate")},{command:"\u21B5",purpose:this.translate("modals.taskSelector.instructions.select")},{command:"\u21E7\u21B5",purpose:this.translate("modals.taskSelectorWithCreate.instructions.create")},{command:"esc",purpose:this.translate("modals.taskSelector.instructions.dismiss")}]),this.titleEl.setText(i.title||this.translate("modals.taskSelectorWithCreate.title")),this.titleEl.setAttribute("id","task-selector-with-create-title"),this.containerEl.setAttribute("aria-labelledby","task-selector-with-create-title"),this.containerEl.setAttribute("role","dialog"),this.containerEl.setAttribute("aria-modal","true"),this.containerEl.addClass("task-selector-with-create-modal"),this.containerEl.addClass("tasknotes-plugin")}onOpen(){super.onOpen(),this.scope.register(["Shift"],"Enter",t=>(t.preventDefault(),t.stopPropagation(),this.createNewTask(),!1)),this.inputEl.addEventListener("input",this.handleInputChange),this.nlpSuggest=new Rk(this.app,this.inputEl,this.plugin),window.setTimeout(()=>this.createFooter(),0)}createFooter(){var n;let t=((n=this.modalEl.querySelector(".prompt"))==null?void 0:n.parentElement)||this.modalEl;this.createFooterEl=t.createDiv({cls:"task-selector-create-footer"}),this.createFooterEl.setAttribute("role","button"),this.createFooterEl.setAttribute("aria-hidden","true"),this.createFooterEl.tabIndex=-1,this.createFooterEl.addEventListener("click",this.handleCreateFooterActivation),this.createFooterEl.addEventListener("keydown",this.handleCreateFooterKeydown),this.createFooterEl.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),this.createFooterEl.classList.add("tn-static-display-none-6b99de8b"),this.currentQuery&&this.updateCreateFooter(this.currentQuery)}updateCreateFooter(t){if(!this.createFooterEl)return;if(!t){this.createFooterEl.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),this.createFooterEl.classList.add("tn-static-display-none-6b99de8b"),this.createFooterEl.setAttribute("aria-hidden","true"),this.createFooterEl.removeAttribute("aria-label"),this.createFooterEl.tabIndex=-1,this.createFooterEl.empty();return}let n=this.nlParser.parseInput(t);if(n.title&&n.title!=="Untitled Task"){this.createFooterEl.empty(),this.createFooterEl.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),this.createFooterEl.classList.add("tn-static-display-flex-75816cae"),this.createFooterEl.setAttribute("aria-hidden","false"),this.createFooterEl.setAttribute("aria-label",`${this.translate("modals.taskSelectorWithCreate.footer.createLabel").trim()} ${n.title}`.trim()),this.createFooterEl.tabIndex=0;let a=this.createFooterEl.createDiv({cls:"task-selector-create-footer__icon"});(0,Vc.setIcon)(a,"plus-circle");let i=this.createFooterEl.createDiv({cls:"task-selector-create-footer__content"});i.createDiv({cls:"task-selector-create-footer__title-line"}).createSpan({cls:"task-selector-create-footer__title",text:n.title});let o=this.buildMetadataParts(n);if(o.length>0){let c=i.createDiv({cls:"task-selector-create-footer__meta"});o.forEach(d=>{let u=c.createSpan({cls:`task-selector-create-footer__chip task-selector-create-footer__chip--${d.type}`}),p=u.createSpan({cls:"task-selector-create-footer__chip-icon"});(0,Vc.setIcon)(p,d.icon),u.createSpan({cls:"task-selector-create-footer__chip-text",text:d.text})})}let l=i.createDiv({cls:"task-selector-create-footer__hint"});l.createSpan({cls:"task-selector-create-footer__shortcut",text:"\u21E7\u21B5"}),l.createSpan({cls:"task-selector-create-footer__hint-text",text:this.translate("modals.taskSelectorWithCreate.footer.createLabel")})}else this.createFooterEl.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),this.createFooterEl.classList.add("tn-static-display-none-6b99de8b"),this.createFooterEl.setAttribute("aria-hidden","true"),this.createFooterEl.removeAttribute("aria-label"),this.createFooterEl.tabIndex=-1,this.createFooterEl.empty()}buildMetadataParts(t){let n=[];if(t.dueDate){let a=t.dueTime?`${t.dueDate} ${t.dueTime}`:t.dueDate;n.push({icon:"calendar",text:a,type:"due"})}if(t.scheduledDate){let a=t.scheduledTime?`${t.scheduledDate} ${t.scheduledTime}`:t.scheduledDate;n.push({icon:"calendar-clock",text:a,type:"scheduled"})}if(t.priority&&t.priority!=="normal"&&n.push({icon:"flag",text:t.priority,type:"priority"}),t.status){let a=this.plugin.statusManager.getStatusConfig(t.status);n.push({icon:"circle-dot",text:(a==null?void 0:a.label)||t.status,type:"status"})}if(t.contexts&&t.contexts.length>0&&t.contexts.forEach(a=>{n.push({icon:"at-sign",text:a,type:"context"})}),t.projects&&t.projects.length>0&&t.projects.forEach(a=>{n.push({icon:"folder",text:a.replace(/^\[\[|\]\]$/g,""),type:"project"})}),t.tags&&t.tags.length>0&&t.tags.forEach(a=>{n.push({icon:"hash",text:a,type:"tag"})}),t.recurrence&&n.push({icon:"repeat",text:t.recurrence,type:"recurrence"}),t.estimate&&t.estimate>0){let a=Math.floor(t.estimate/60),i=t.estimate%60,s=a>0?`${a}h ${i}m`:`${i}m`;n.push({icon:"timer",text:s,type:"estimate"})}if(t.details){let a=t.details.length>30?t.details.substring(0,30)+"...":t.details;n.push({icon:"file-text",text:a,type:"details"})}if(t.userFields){let a=this.plugin.settings.userFields||[];for(let[i,s]of Object.entries(t.userFields)){let o=a.find(d=>d.id===i),l=(o==null?void 0:o.displayName)||i,c=Array.isArray(s)?s.join(", "):s;n.push({icon:"sliders-horizontal",text:`${l}: ${c}`,type:"userfield"})}}return n}async createNewTask(){if(this.isCreatingTask)return;let t=this.inputEl.value.trim();if(!t){new Vc.Notice(this.translate("modals.taskSelectorWithCreate.notices.emptyQuery"));return}this.isCreatingTask=!0;try{let n=this.nlParser.parseInput(t);if(!n.title||n.title==="Untitled Task"){new Vc.Notice(this.translate("modals.taskSelectorWithCreate.notices.invalidTitle"));return}let a=this.buildTaskDataFromParsed(n),i=await this.plugin.taskService.createTask(a);new Vc.Notice(this.translate("modals.taskCreation.notices.success",{title:i.taskInfo.title})),this.resultHandled=!0,this.close(),this.options.onResult({type:"created",task:i.taskInfo})}catch(n){Oit.error("Failed to create task:",{category:"persistence",operation:"create-task",error:n});let a=n instanceof Error?n.message:String(n);new Vc.Notice(this.translate("modals.taskCreation.notices.failure",{message:a}))}finally{this.isCreatingTask=!1}}buildTaskDataFromParsed(t){return Bu(this.plugin,t)}getSuggestions(t){return this.currentQuery=t,this.getFilteredTasks(t)}getFilteredTasks(t){let n=t.trim().toLowerCase(),a=n.length>0;return this.tasks.filter(i=>!i.archived).filter(i=>a?BTe(i,n):!0).sort((i,s)=>{var p,m;if(a){let f=dq(i,n)-dq(s,n);if(f!==0)return f}let o=cg(i,this.targetDate,this.plugin.statusManager,this.plugin.settings.defaultTaskStatus),l=cg(s,this.targetDate,this.plugin.statusManager,this.plugin.settings.defaultTaskStatus);if(o!==l)return o?1:-1;if(a){let f=i.title.localeCompare(s.title);if(f!==0)return f}if(i.due&&!s.due)return-1;if(!i.due&&s.due)return 1;if(i.due&&s.due){let f=i.due.localeCompare(s.due);if(f!==0)return f}let c={high:0,normal:1,low:2},d=(p=c[i.priority])!=null?p:1,u=(m=c[s.priority])!=null?m:1;return d!==u?d-u:i.title.localeCompare(s.title)})}renderSuggestion(t,n){let a=oN(t,this.targetDate,this.plugin.statusManager,this.plugin.settings.defaultTaskStatus),i=Dr(a,this.plugin,void 0,{layout:"default",targetDate:this.targetDate});i.classList.add("task-selector-modal__suggestion");let s=i.cloneNode(!0);n.appendChild(s)}onChooseSuggestion(t,n){this.resultHandled=!0,this.options.onResult({type:"selected",task:t})}onClose(){var t;this.inputEl.removeEventListener("input",this.handleInputChange),(t=this.nlpSuggest)==null||t.close(),this.nlpSuggest=null,this.createFooterEl&&(this.createFooterEl.removeEventListener("click",this.handleCreateFooterActivation),this.createFooterEl.removeEventListener("keydown",this.handleCreateFooterKeydown),this.createFooterEl.remove(),this.createFooterEl=null),window.setTimeout(()=>{this.resultHandled||this.options.onResult({type:"cancelled"})},0),super.onClose()}}});function UTe(r){let e=String(r.getHours()).padStart(2,"0"),t=String(r.getMinutes()).padStart(2,"0");return`${e}:${t}`}function HTe(r,e){let t=null;if(r.scheduled)try{t=it(r.scheduled)}catch(i){t=null}(!t||isNaN(t.getTime()))&&(t=new Date(e)),isNaN(t.getTime())&&(t=new Date),(!r.scheduled||!mr(r.scheduled))&&t.setHours(9,0,0,0);let n=r.timeEstimate&&r.timeEstimate>0?r.timeEstimate:60,a=new Date(t.getTime()+n*60*1e3);return{date:ce(t),startTime:UTe(t),endTime:UTe(a)}}var VTe=y(()=>{Me()});function Tm(r,e,t){new pq(r.app,r,{placeholder:t==null?void 0:t.placeholder,title:t==null?void 0:t.title,filter:t==null?void 0:t.filter,newFileFolder:t==null?void 0:t.newFileFolder,sortOrder:t==null?void 0:t.sortOrder,onResult:a=>{a.type==="selected"||a.type==="created"?e(a.file):e(null)}}).open()}var _a,zit,pq,yE=y(()=>{_a=require("obsidian");K();Ba();zit=N({tag:"Modals/FileSelectorModal"}),pq=class extends _a.SuggestModal{constructor(t,n,a){super(t);this.currentQuery="";this.resultHandled=!1;this.createFooterEl=null;this.handleInputChange=()=>{this.currentQuery=this.inputEl.value.trim(),this.updateCreateFooter()};this.plugin=n,this.options=a,this.setPlaceholder(a.placeholder||"Search files or type to create new..."),this.setInstructions([{command:"\u2191\u2193",purpose:"to navigate"},{command:"\u21B5",purpose:"to select"},{command:"\u21E7\u21B5",purpose:"to create new"},{command:"esc",purpose:"to cancel"}]),a.title&&this.titleEl.setText(a.title),this.containerEl.addClass("file-selector-modal"),this.containerEl.addClass("tasknotes-plugin")}onOpen(){super.onOpen(),this.scope.register(["Shift"],"Enter",t=>(t.preventDefault(),t.stopPropagation(),this.createNewFile(),!1)),this.inputEl.addEventListener("input",this.handleInputChange),window.setTimeout(()=>this.createFooter(),0)}createFooter(){var n;let t=this.modalEl.querySelector(".prompt");t&&(this.createFooterEl=((n=t.parentElement)==null?void 0:n.createDiv({cls:"file-selector-create-footer"}))||null,this.createFooterEl&&(this.createFooterEl.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),this.createFooterEl.classList.add("tn-static-display-none-6b99de8b")))}updateCreateFooter(){if(!this.createFooterEl)return;if(!this.currentQuery){this.createFooterEl.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),this.createFooterEl.classList.add("tn-static-display-none-6b99de8b");return}this.createFooterEl.empty(),this.createFooterEl.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),this.createFooterEl.classList.add("tn-static-display-flex-75816cae");let n=this.createFooterEl.createDiv({cls:"file-selector-create-footer__content"}).createDiv({cls:"file-selector-create-footer__title-line"});n.createSpan({cls:"file-selector-create-footer__shortcut",text:"\u21E7\u21B5"}),n.createSpan({cls:"file-selector-create-footer__hint-text",text:" to create: "}),n.createSpan({cls:"file-selector-create-footer__filename",text:this.getNewFileName()})}getNewFileName(){let t=this.currentQuery;return t.toLowerCase().endsWith(".md")&&(t=t.slice(0,-3)),t+".md"}async createNewFile(){if(!this.currentQuery){new _a.Notice("Please enter a file name");return}try{let t=this.currentQuery;t.toLowerCase().endsWith(".md")&&(t=t.slice(0,-3));let n=this.options.newFileFolder||"",a=n?`${n}/${t}.md`:`${t}.md`;if(this.app.vault.getAbstractFileByPath(a)){new _a.Notice(`File "${a}" already exists`);return}n&&!await this.app.vault.adapter.exists(n)&&await FS(this.app,n);let s=await _h(this.app,a,"");this.resultHandled=!0,this.close(),this.options.onResult({type:"created",file:s})}catch(t){zit.error("Error creating file:",{category:"persistence",operation:"creating-file",error:t}),new _a.Notice("Failed to create file")}}getSuggestions(t){this.currentQuery=t.trim(),this.updateCreateFooter();let n=this.app.vault.getAllLoadedFiles(),a=t.toLowerCase(),i,s=this.options.filter||"markdown";typeof s=="function"?i=n.filter(s):s==="markdown"?i=n.filter(c=>c instanceof _a.TFile&&c.extension==="md"&&!c.path.includes(".trash")):i=n.filter(c=>c instanceof _a.TFile&&!c.path.includes(".trash"));let o=this.options.sortOrder||"name-asc",l=[...i].sort((c,d)=>{let u=c instanceof _a.TFile?c.stat.ctime:0,p=d instanceof _a.TFile?d.stat.ctime:0,m=c instanceof _a.TFile?c.stat.mtime:0,f=d instanceof _a.TFile?d.stat.mtime:0;switch(o){case"name-desc":return d.name.localeCompare(c.name);case"path-asc":return c.path.localeCompare(d.path);case"path-desc":return d.path.localeCompare(c.path);case"created-recent":return p-u;case"created-oldest":return u-p;case"modified-recent":return f-m;case"modified-oldest":return m-f;case"name-asc":default:return c.name.localeCompare(d.name)}});return t?l.filter(c=>this.getSearchText(c).toLowerCase().includes(a)).slice(0,50):l.slice(0,50)}getSearchText(t){let n=`${t.name} ${t.path}`;if(t instanceof _a.TFile){let a=this.app.metadataCache.getFileCache(t);if(a!=null&&a.frontmatter){let i=this.plugin.fieldMapper.toUserField("title"),s=a.frontmatter[i];s&&(n+=` ${s}`);let o=(0,_a.parseFrontMatterAliases)(a.frontmatter);o&&o.length>0&&(n+=` ${o.join(" ")}`)}}return n}renderSuggestion(t,n){let a=n.createDiv({cls:"file-selector-suggestion"});if(a.createDiv({cls:"file-selector-suggestion__name",text:t.name}),t instanceof _a.TFile){let i=this.app.metadataCache.getFileCache(t);if(i!=null&&i.frontmatter){let s=this.plugin.fieldMapper.toUserField("title"),o=i.frontmatter[s];if(o)a.createDiv({cls:"file-selector-suggestion__title",text:o});else{let l=(0,_a.parseFrontMatterAliases)(i.frontmatter);l&&l.length>0&&a.createDiv({cls:"file-selector-suggestion__aliases",text:l.join(", ")})}}}t.parent&&t.parent.path!=="/"&&a.createDiv({cls:"file-selector-suggestion__path",text:t.parent.path})}onChooseSuggestion(t,n){this.resultHandled=!0,this.options.onResult({type:"selected",file:t})}onClose(){this.inputEl.removeEventListener("input",this.handleInputChange),this.createFooterEl&&(this.createFooterEl.remove(),this.createFooterEl=null),window.setTimeout(()=>{this.resultHandled||this.options.onResult({type:"cancelled"})},0),super.onClose()}}});function $it(){return(0,wm.requireApiVersion)("1.11.0")}function hs(r){Promise.resolve().then(r).catch(e=>{jit.error("TaskNotes settings callback failed:",{category:"configuration",operation:"settings-callback",error:e})})}function Dt(r,e,t){if($it()){let n=new wm.SettingGroup(r).setHeading(e.heading);if(e.className&&n.addClass(e.className),e.description){let a=e.description;n.addSetting(i=>{i.setDesc(a),i.settingEl.addClass("settings-view__group-description")})}return t(n),n}else{let n=new mq(r).setHeading(e.heading);if(e.className&&n.addClass(e.className),e.description){let a=e.description;n.addSetting(i=>{i.setDesc(a),i.settingEl.addClass("settings-view__group-description")})}return t(n),n}}function he(r,e){return r.setName(e.name).setDesc(e.desc).addToggle(t=>{t.setValue(e.getValue()).onChange(n=>{hs(()=>e.setValue(n))})})}function Sn(r,e){return r.setName(e.name).setDesc(e.desc).addText(t=>{t.setValue(e.getValue());let n=a=>{hs(()=>e.setValue(a))};if(e.debounceMs&&e.debounceMs>0){let a=Ok(n,e.debounceMs);t.onChange(a)}else t.onChange(n);return e.placeholder&&t.setPlaceholder(e.placeholder),e.ariaLabel&&t.inputEl.setAttribute("aria-label",e.ariaLabel),t.inputEl.addClass("settings-view__input"),t})}function on(r,e){return r.setName(e.name).setDesc(e.desc).addDropdown(t=>(e.options.forEach(n=>{t.addOption(n.value,n.label)}),t.setValue(e.getValue()).onChange(n=>{hs(()=>e.setValue(n))}),e.ariaLabel&&t.selectEl.setAttribute("aria-label",e.ariaLabel),t))}function Bi(r,e){let t=e.debounceMs?Ok(n=>{hs(()=>e.setValue(n))},e.debounceMs):n=>{hs(()=>e.setValue(n))};return r.setName(e.name).setDesc(e.desc).addText(n=>(n.setValue(e.getValue().toString()).onChange(a=>{let i=parseInt(a);if(!isNaN(i)){if(e.min!==void 0&&i<e.min||e.max!==void 0&&i>e.max)return;t(i)}}),n.inputEl.type="number",e.placeholder&&n.setPlaceholder(e.placeholder),e.min!==void 0&&n.inputEl.setAttribute("min",e.min.toString()),e.max!==void 0&&n.inputEl.setAttribute("max",e.max.toString()),e.ariaLabel&&n.inputEl.setAttribute("aria-label",e.ariaLabel),n.inputEl.addClass("settings-view__input"),n))}function qc(r,e){return r.setName(e.name).setDesc(e.desc).addButton(t=>(t.setButtonText(e.buttonText).onClick(()=>{hs(e.onClick)}),e.buttonClass?t.buttonEl.addClass(e.buttonClass):t.buttonEl.addClasses(["tn-btn","tn-btn--ghost"]),t))}function Sm(r,e){return new wm.Setting(r).setName(e).setHeading()}function Wc(r,e){return r.createEl("p",{text:e,cls:"settings-view__help-note"})}function Ok(r,e,t=!1){let n,a,i,s=function(...o){a=o,i=this;let l=()=>{n=void 0,a=void 0,t||r.apply(i,o)},c=t&&!n;window.clearTimeout(n),n=window.setTimeout(l,e),c&&r.apply(this,o)};return s.flush=()=>{n&&a&&(window.clearTimeout(n),n=void 0,r.apply(i,a),a=void 0)},s}var wm,jit,mq,Yc=y(()=>{wm=require("obsidian");K();jit=N({tag:"Settings/Components/SettingHelpers"});mq=class{constructor(e){this.containerEl=e}setHeading(e){return new wm.Setting(this.containerEl).setName(e).setHeading(),this}addClass(e){return this}addSetting(e){let t=new wm.Setting(this.containerEl);return e(t),this}}});function Tr(r,e){let t=r.createDiv("tasknotes-settings__card");e.id&&t.setAttribute("data-card-id",e.id),e.draggable&&t.addClass("tasknotes-settings__card--draggable"),e.collapsible&&(t.addClass("tasknotes-settings__card--collapsible"),e.defaultCollapsed&&t.addClass("tasknotes-settings__card--collapsed"));let n=t.createDiv("tasknotes-settings__card-header"),a=null;e.draggable&&(n.addClass("tasknotes-settings__card-header--with-drag-handle"),a=n.createDiv("tasknotes-settings__card-drag-handle"),a.textContent="\u22EE\u22EE",a.draggable=!0,a.title="Drag to reorder");let i=n.createDiv();if(i.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),i.classList.add("tn-static-display-flex-75816cae"),i.classList.remove("tn-static-align-items-baseline-4b95b5c7","tn-static-align-items-flex-start-0486f781"),i.classList.add("tn-static-align-items-center-7c619740"),i.classList.remove("tn-static-flex-1-14e3b769","tn-static-margin-top-12px-91e0f558"),i.classList.add("tn-static-flex-1-97445a8d"),i.classList.remove("tn-static-min-width-2px-709d7da0"),i.classList.add("tn-static-min-width-0-3922d326"),e.colorIndicator){let c=i.createDiv("tasknotes-settings__card-color-indicator");c.style.backgroundColor=_r(e.colorIndicator.color),e.colorIndicator.cssVar&&c.style.setProperty("--card-color",_r(e.colorIndicator.color))}let s=i.createDiv("tasknotes-settings__card-info"),o=s.createSpan("tasknotes-settings__card-primary-text");if(o.textContent=e.header.primaryText,e.header.secondaryText){let c=s.createSpan("tasknotes-settings__card-secondary-text");c.textContent=e.header.secondaryText}let l=n.createDiv();if(l.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),l.classList.add("tn-static-display-flex-75816cae"),l.classList.remove("tn-static-align-items-baseline-4b95b5c7","tn-static-align-items-flex-start-0486f781"),l.classList.add("tn-static-align-items-center-7c619740"),l.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-10px-f3d7ce77","tn-static-gap-12px-ed7b3d87","tn-static-gap-6px-f0abc1db","tn-static-gap-8px-33fcd4c3"),l.classList.add("tn-static-gap-0-5rem-ce2fca4d"),e.header.meta&&e.header.meta.length>0){let c=l.createDiv("tasknotes-settings__card-meta");e.header.meta.forEach(d=>{c.appendChild(d)})}if(e.header.actions&&e.header.actions.length>0){let c=l.querySelector(".tasknotes-settings__card-header-actions")||l.createDiv("tasknotes-settings__card-header-actions");e.header.actions.forEach(d=>{let u=c.createEl("button",{cls:"tasknotes-settings__card-header-btn"});d.variant==="delete"&&u.addClass("tasknotes-settings__card-header-btn--delete");let p=u.createSpan();(0,vE.setIcon)(p,d.icon),d.tooltip&&(u.title=d.tooltip),u.onclick=m=>{m.stopPropagation(),hs(d.onClick)}})}if(e.collapsible){let c=()=>{var u,p;t.hasClass("tasknotes-settings__card--collapsed")?(t.removeClass("tasknotes-settings__card--collapsed"),n.title="Collapse card",(u=e.onCollapseChange)==null||u.call(e,!1)):(t.addClass("tasknotes-settings__card--collapsed"),n.title="Expand card",(p=e.onCollapseChange)==null||p.call(e,!0))};n.addClass("tasknotes-settings__card-header--clickable"),n.title=e.defaultCollapsed?"Expand card":"Collapse card",n.onclick=d=>{d.target.closest(".tasknotes-settings__card-header-actions")||c()}}if(e.content&&e.content.sections.length>0){let c=t.createDiv("tasknotes-settings__card-content");e.draggable&&c.addClass("tasknotes-settings__card-content--with-drag-handle"),e.content.sections.forEach(d=>{d.rows.forEach(u=>{let p=c.createDiv("tasknotes-settings__card-config-row");u.fullWidth&&(p.classList.remove("tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-min-height-800px-997b4c8c"),p.classList.add("tn-static-flex-direction-column-06c8b5ed"),p.classList.remove("tn-static-align-items-baseline-4b95b5c7","tn-static-align-items-center-7c619740"),p.classList.add("tn-static-align-items-flex-start-0486f781"),p.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-10px-f3d7ce77","tn-static-gap-12px-ed7b3d87","tn-static-gap-6px-f0abc1db","tn-static-gap-8px-33fcd4c3"),p.classList.add("tn-static-gap-0-5rem-ce2fca4d"));let m=p.createSpan("tasknotes-settings__card-config-label");m.textContent=u.label,p.appendChild(u.input)})})}if(e.actions&&e.actions.buttons.length>0){let c=t.createDiv("tasknotes-settings__card-actions");e.draggable&&c.addClass("tasknotes-settings__card-actions--with-drag-handle"),e.actions.buttons.forEach(d=>{let u=c.createEl("button",{text:d.text,cls:"tasknotes-settings__card-action-btn"});if(d.variant&&u.addClass(`tasknotes-settings__card-action-btn--${d.variant}`),d.icon){let p=u.createSpan();(0,vE.setIcon)(p,d.icon),u.insertBefore(p,u.firstChild)}d.disabled&&(u.disabled=!0),u.onclick=()=>{hs(d.onClick)}})}return t}function Ui(r,e="default"){let t=activeWindow.createSpan();return t.addClass("tasknotes-settings__card-status-badge"),t.addClass(`tasknotes-settings__card-status-badge--${e}`),t.textContent=r,t}function Wl(r,e){return{icon:"trash-2",variant:"delete",tooltip:e||"Delete",onClick:r}}function Ke(r="text",e,t){let n=activeWindow.createEl("input");return n.type=r,n.addClass("tasknotes-settings__card-input"),e&&(n.placeholder=e),t&&(n.value=t),n}function qit(){if(activeDocument.getElementById(hq))return;let r=activeWindow.createEl("datalist");r.id=hq;for(let e of cfe)r.createEl("option",{value:e});activeDocument.body.appendChild(r)}function fq(r){let e=r==null?void 0:r.trim().match(Vit);if(!e)return null;let t=e[1].toLowerCase();return t.length===3?`#${t[0]}${t[0]}${t[1]}${t[1]}${t[2]}${t[2]}`:`#${t}`}function Wit(r){r.dispatchEvent(new Event("input",{bubbles:!0})),r.dispatchEvent(new Event("change",{bubbles:!0}))}function Yit(r){var i;if(!r.parentElement)return;if((i=r.tasknotesThemeColorPicker)!=null&&i.isConnected){let s=fq(r.value);s&&(r.tasknotesThemeColorPicker.value=s);return}let t=activeWindow.createEl("input");t.type="color",t.addClass(Bit),t.value=fq(r.value)||Hit,t.title="Open color picker",t.setAttribute("aria-label","Open color picker");let n=()=>{r.value!==t.value&&(r.value=t.value,Wit(r))},a=()=>{let s=fq(r.value);s&&(t.value=s)};t.addEventListener("input",n),t.addEventListener("change",n),r.addEventListener("input",a),r.addEventListener("change",a),r.insertAdjacentElement("afterend",t),r.tasknotesThemeColorPicker=t}function dg(r){let e=r;r.type="text",r.addClass(Uit),r.placeholder=x_,r.setAttribute("list",hq),r.title=x_,qit(),Yit(e)}function Lk(r){let e=Ke("text",x_,Su(r));return dg(e),e}function zk(r,e){let t=_r(r.value,e);return r.value=Su(t),t}function xn(r=!1,e){let t=activeWindow.createDiv(),n=new vE.Setting(t),a=null;if(n.addToggle(i=>{i.setValue(r),e&&i.onChange(s=>{hs(()=>e(s))}),a=i.toggleEl}),!a)throw new Error("Failed to create card toggle");return a}function ma(r,e){let t=activeWindow.createEl("select");return t.addClass("tasknotes-settings__card-input"),r.forEach(n=>{let a=t.createEl("option",{value:n.value,text:n.label});e===n.value&&(a.selected=!0)}),t}function jk(r,e,t){let n=r.querySelector(".tasknotes-settings__card-drag-handle");if(!n)return;let a=r.getAttribute("data-card-id");a&&(n.addEventListener("dragstart",i=>{i.dataTransfer&&(i.dataTransfer.setData("text/plain",a),r.addClass("tasknotes-settings__card--dragging"))}),n.addEventListener("dragend",()=>{r.removeClass("tasknotes-settings__card--dragging")}),r.addEventListener("dragover",i=>{i.preventDefault();let s=e.querySelector(".tasknotes-settings__card--dragging");if(s&&s!==r){let o=r.getBoundingClientRect(),l=o.top+o.height/2;r.removeClass("tasknotes-settings__card--drag-over-top","tasknotes-settings__card--drag-over-bottom"),i.clientY<l?r.addClass("tasknotes-settings__card--drag-over-top"):r.addClass("tasknotes-settings__card--drag-over-bottom")}}),r.addEventListener("dragleave",()=>{r.removeClass("tasknotes-settings__card--drag-over-top","tasknotes-settings__card--drag-over-bottom")}),r.addEventListener("drop",i=>{var l;i.preventDefault(),r.removeClass("tasknotes-settings__card--drag-over-top","tasknotes-settings__card--drag-over-bottom");let s=(l=i.dataTransfer)==null?void 0:l.getData("text/plain");if(!s)return;let o=a;if(s!==o){let c=r.getBoundingClientRect(),d=c.top+c.height/2,u=i.clientY<d;t(s,o,u)}}))}function xm(r,e,t,n){let a=Ke("number");return r!==void 0&&(a.min=r.toString()),e!==void 0&&(a.max=e.toString()),t!==void 0&&(a.step=t.toString()),n!==void 0&&(a.value=n.toString()),a}function gq(r){return r&&r.replace(/^webcal:\/\//i,"http://").replace(/^webcals:\/\//i,"https://")}function dN(r,e){let t=activeWindow.createEl("input");return t.type="text",t.addClass("tasknotes-settings__card-input"),t.pattern="^(https?|webcals?)://.*",t.title="Enter an HTTP://, HTTPS://, webcal://, or webcals:// URL",r&&(t.placeholder=r),e&&(t.value=e),t}function $k(r){let e=activeWindow.createSpan();return e.addClass("tasknotes-settings__card-info-badge"),e.textContent=r,e}function Gc(r,e,t,n){r.empty();let a=r.createDiv("tasknotes-settings__empty-state");if(a.createSpan("tasknotes-settings__empty-icon"),a.createSpan({text:e,cls:"tasknotes-settings__empty-text"}),t&&n){let i=a.createEl("button",{text:t,cls:"tn-btn tn-btn--primary"});i.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),i.classList.add("tn-static-margin-top-1rem-2239d6d5"),i.onclick=n}}var vE,hq,Bit,Uit,Hit,Vit,fi=y(()=>{vE=require("obsidian");Mc();Yc();hq="tasknotes-theme-color-options",Bit="tasknotes-theme-color-picker",Uit="tasknotes-theme-color-text-input",Hit="#6366f1",Vit=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i});function vq(r){return r instanceof Error?r.message:typeof r=="string"?r:""}function Git(r=Cm.getAllDailyNotes){try{return r()}catch(e){let t=vq(e),n=t?`: ${t}`:"";throw new Error(`Failed to read daily notes${n}. ${uN}`)}}function Kit(r){let e=vq(r);return e?`Failed to create timeblock: ${e}`:"Failed to create timeblock. Check console for details."}function Zit(r){return(0,wr.moment)(r)}var wr,Cm,yq,uN,Bk,kq=y(()=>{wr=require("obsidian");Ct();yE();Vo();Me();Mc();fi();Ba();Cm=st(iu());K();yq=N({tag:"Modals/TimeblockCreationModal"}),uN="Check the Daily Notes core plugin settings and make sure the configured daily notes folder exists.";Bk=class extends wr.Modal{constructor(t,n,a){super(t);this.selectedAttachments=[];this.keyboardHandler=null;this.plugin=n,this.options=a,this.translate=n.i18n.translate.bind(n.i18n)}onOpen(){let{contentEl:t}=this;t.empty(),t.addClass("timeblock-creation-modal"),this.keyboardHandler=l=>{l.key==="Enter"&&(l.ctrlKey||l.metaKey)&&(l.preventDefault(),this.handleSubmit())},this.containerEl.addEventListener("keydown",this.keyboardHandler),new wr.Setting(t).setName(this.translate("modals.timeblockCreation.heading")).setHeading();let n=t.createDiv({cls:"timeblock-date-display"});n.createEl("strong",{text:this.translate("modals.timeblockCreation.dateLabel")});let a=Ph(this.options.date);n.createSpan({text:a.toLocaleDateString()}),new wr.Setting(t).setName(this.translate("modals.timeblockCreation.titleLabel")).setDesc(this.translate("modals.timeblockCreation.titleDesc")).addText(l=>{this.titleInput=l.inputEl,l.setPlaceholder(this.translate("modals.timeblockCreation.titlePlaceholder")).setValue(this.options.prefilledTitle||"").onChange(()=>this.validateForm()),window.setTimeout(()=>this.titleInput.focus(),100)}),new wr.Setting(t).setName(this.translate("modals.timeblockCreation.startTimeLabel")).setDesc(this.translate("modals.timeblockCreation.startTimeDesc")).addText(l=>{this.startTimeInput=l.inputEl,l.setPlaceholder(this.translate("modals.timeblockCreation.startTimePlaceholder")).setValue(this.options.startTime||"").onChange(()=>this.validateForm()),this.startTimeInput.type="time"}),new wr.Setting(t).setName(this.translate("modals.timeblockCreation.endTimeLabel")).setDesc(this.translate("modals.timeblockCreation.endTimeDesc")).addText(l=>{this.endTimeInput=l.inputEl,l.setPlaceholder(this.translate("modals.timeblockCreation.endTimePlaceholder")).setValue(this.options.endTime||"").onChange(()=>{this.validateForm()}),this.endTimeInput.type="time"}),new wr.Setting(t).setName(this.translate("modals.timeblockCreation.descriptionLabel")).setDesc(this.translate("modals.timeblockCreation.descriptionDesc")).addTextArea(l=>{this.descriptionInput=l.inputEl,l.setPlaceholder(this.translate("modals.timeblockCreation.descriptionPlaceholder")).setValue(""),this.descriptionInput.rows=3}),new wr.Setting(t).setName(this.translate("modals.timeblockCreation.colorLabel")).setDesc(this.translate("modals.timeblockCreation.colorDesc")).addText(l=>{this.colorInput=l.inputEl,l.setPlaceholder(this.translate("modals.timeblockCreation.colorPlaceholder")).setValue(Su(this.plugin.settings.calendarViewSettings.defaultTimeblockColor)),dg(this.colorInput)}),new wr.Setting(t).setName(this.translate("modals.timeblockCreation.attachmentsLabel")).setDesc(this.translate("modals.timeblockCreation.attachmentsDesc")).addButton(l=>{l.setButtonText(this.translate("modals.timeblockCreation.addAttachmentButton")).setTooltip(this.translate("modals.timeblockCreation.addAttachmentTooltip")).onClick(()=>{Tm(this.plugin,c=>{c instanceof wr.TAbstractFile&&this.addAttachment(c)},{placeholder:"Search files or type to create new...",filter:"all",sortOrder:this.plugin.settings.calendarViewSettings.timeblockAttachmentSearchOrder})})}).addButton(l=>{l.setButtonText("Add task").setTooltip("Select task").onClick(()=>{this.openTaskSelectorForTitle()})}),this.attachmentsList=t.createDiv({cls:"timeblock-attachments-list"}),this.initializePrefilledAttachments(),this.renderAttachmentsList();let i=t.createDiv({cls:"timeblock-modal-buttons"});i.createEl("button",{text:this.translate("common.cancel")}).addEventListener("click",()=>this.close()),i.createEl("button",{text:this.translate("modals.timeblockCreation.createButton"),cls:"mod-cta timeblock-create-button"}).addEventListener("click",()=>{this.handleSubmit()}),this.validateForm()}validateForm(){var o,l,c;let t=this.contentEl.querySelector(".timeblock-create-button");if(!t)return;let n=(o=this.titleInput)==null?void 0:o.value.trim(),a=(l=this.startTimeInput)==null?void 0:l.value,i=(c=this.endTimeInput)==null?void 0:c.value,s=!!(n&&a&&i);if(s&&a&&i){let[d,u]=a.split(":").map(Number),[p,m]=i.split(":").map(Number),f=d*60+u,h=p*60+m;i==="00:00"&&f>0&&(h=1440),h<=f&&(s=!1)}t.disabled=!s,t.style.opacity=s?"1":"0.5"}initializePrefilledAttachments(){let t=this.options.prefilledAttachmentPaths||[];if(t.length===0)return;let n=new Set(t.filter(a=>typeof a=="string"&&a.trim().length>0));for(let a of n){let i=this.app.vault.getAbstractFileByPath(a);i&&this.selectedAttachments.push(i)}}async handleSubmit(){var t,n;try{let a=this.titleInput.value.trim(),i=this.startTimeInput.value,s=this.endTimeInput.value,o=this.descriptionInput.value.trim(),l=_r(this.colorInput.value,this.plugin.settings.calendarViewSettings.defaultTimeblockColor);if(!a||!i||!s){new wr.Notice(this.translate("notices.timeblockRequiredFieldsMissing"));return}let c=this.selectedAttachments.map(p=>`[[${p.path}]]`),d={id:G2(),title:a,startTime:i,endTime:s};o&&(d.description=o),l&&(d.color=l),c.length>0&&(d.attachments=c);let u=await this.saveTimeblockToDailyNote(d);this.plugin.emitter.trigger("data-changed"),(n=(t=this.options).onCreated)==null||n.call(t,{timeblock:d,date:this.options.date,dailyNote:u}),new wr.Notice(`Timeblock "${a}" created successfully`),this.close()}catch(a){yq.error("Error creating timeblock:",{category:"internal",operation:"creating-timeblock",error:a}),new wr.Notice(Kit(a))}}async saveTimeblockToDailyNote(t){if(!(0,Cm.appHasDailyNotesPluginLoaded)())throw new Error(`Daily Notes core plugin is not enabled. ${uN}`);let n=Zit(this.options.date),a=Git(),i=(0,Cm.getDailyNote)(n,a);if(!i){try{i=await(0,Cm.createDailyNote)(n)}catch(u){let p=vq(u),m=p?`: ${p}`:"";throw new Error(`Failed to create daily note${m}. ${uN}`)}if(!i)throw new Error(`Failed to create daily note. ${uN}`)}let s=await this.app.vault.read(i),o={},l=s;if(s.startsWith("---")){let u=s.indexOf("---",3);if(u!==-1){let p=s.substring(3,u);l=s.substring(u+3);try{o=(0,wr.parseYaml)(p)||{}}catch(m){yq.error("Error parsing existing frontmatter:",{category:"validation",operation:"parsing-existing-frontmatter",error:m}),o={}}}}o.timeblocks||(o.timeblocks=[]),o.timeblocks.push(t);let d=`---
|
||
${(0,wr.stringifyYaml)(o)}---${l}`;return await Mo(this.app,i,d),i}addAttachment(t){if(this.selectedAttachments.some(n=>n.path===t.path)){new wr.Notice(this.translate("notices.timeblockAttachmentExists",{fileName:t.name}));return}if(this.titleInput&&!this.titleInput.value.trim()){let n=t instanceof wr.TFile?t.basename:t.name;this.titleInput.value=n,this.validateForm()}this.selectedAttachments.push(t),this.renderAttachmentsList(),new wr.Notice(this.translate("notices.timeblockAttachmentAdded",{fileName:t.name}))}async openTaskSelectorForTitle(){var t,n,a;try{let s=((a=await((n=(t=this.plugin.cacheManager).getAllTasks)==null?void 0:n.call(t)))!=null?a:[]).filter(o=>!o.archived);if(s.length===0){new wr.Notice("No tasks available to select");return}Fn(this.plugin,s,o=>{if(!o)return;this.titleInput.value=o.title||"",this.validateForm();let l=this.app.vault.getAbstractFileByPath(o.path);l&&this.addAttachment(l)},{title:"Select task"})}catch(i){yq.error("Failed to open task selector for timeblock creation:",{category:"persistence",operation:"open-task-selector-timeblock-creation",error:i}),new wr.Notice("Failed to open task selector")}}removeAttachment(t){this.selectedAttachments=this.selectedAttachments.filter(n=>n.path!==t.path),this.renderAttachmentsList(),new wr.Notice(this.translate("notices.timeblockAttachmentRemoved",{fileName:t.name}))}renderAttachmentsList(){if(this.attachmentsList.empty(),this.selectedAttachments.length===0){let t=this.attachmentsList.createDiv({cls:"timeblock-attachments-empty"});t.textContent="No attachments added yet";return}this.selectedAttachments.forEach(t=>{let n=this.attachmentsList.createDiv({cls:"timeblock-attachment-item"}),a=n.createDiv({cls:"timeblock-attachment-info"}),i=a.createSpan({cls:"timeblock-attachment-name"});if(i.textContent=t.name,t.path!==t.name){let o=a.createDiv({cls:"timeblock-attachment-path"});o.textContent=t.path}let s=n.createEl("button",{cls:"timeblock-attachment-remove",text:"\xD7"});(0,wr.setTooltip)(s,"Remove attachment",{placement:"top"}),s.addEventListener("click",()=>{this.removeAttachment(t)})})}onClose(){this.keyboardHandler&&(this.containerEl.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=null);let{contentEl:t}=this;t.empty()}}});var qTe,Em,bq=y(()=>{Wr();K();qTe=N({tag:"Services/CalendarExportService"}),Em=class{static generateCalendarURL(e){let{type:t,task:n,useScheduledAsDue:a=!0}=e;switch(t){case"google":return this.generateGoogleCalendarURL(n,a);case"outlook":return this.generateOutlookCalendarURL(n,a);case"yahoo":return this.generateYahooCalendarURL(n,a);case"ics":return this.generateICSDownloadURL(n);default:throw new Error("Unsupported calendar type")}}static generateGoogleCalendarURL(e,t){let n="https://calendar.google.com/calendar/render",a=new URLSearchParams;a.append("action","TEMPLATE"),a.append("text",e.title);let i=this.formatGoogleDates(e,t);i&&a.append("dates",i);let s=this.buildDescription(e);return s&&a.append("details",s),e.contexts&&e.contexts.length>0&&a.append("location",e.contexts.join(", ")),`${n}?${a.toString()}`}static generateOutlookCalendarURL(e,t){let n="https://outlook.live.com/calendar/0/deeplink/compose",a=new URLSearchParams;a.append("subject",e.title);let{startISO:i,endISO:s}=this.getTaskDateRange(e,t);i&&a.append("startdt",i),s&&a.append("enddt",s);let o=this.buildDescription(e);return o&&a.append("body",o),e.contexts&&e.contexts.length>0&&a.append("location",e.contexts.join(", ")),a.append("path","/calendar/action/compose"),a.append("rru","addevent"),`${n}?${a.toString()}`}static generateYahooCalendarURL(e,t){let n="https://calendar.yahoo.com/",a=new URLSearchParams;a.append("v","60"),a.append("title",e.title);let{startYahoo:i,endYahoo:s}=this.getYahooDateFormat(e,t);i&&a.append("st",i),s&&a.append("et",s);let o=this.buildDescription(e);return o&&a.append("desc",o),e.contexts&&e.contexts.length>0&&a.append("in_loc",e.contexts.join(", ")),`${n}?${a.toString()}`}static generateICSDownloadURL(e){let t=this.generateICSContent(e);return`data:text/calendar;charset=utf8,${encodeURIComponent(t)}`}static generateICSContent(e,t){let n=`${e.path.replace(/[^a-zA-Z0-9]/g,"-")}-${Date.now()}@tasknotes`,a=new Date().toISOString().replace(/[-:]/g,"").replace(/\.\d{3}/,""),i=["BEGIN:VCALENDAR","VERSION:2.0","PRODID:-//TaskNotes//Task Export//EN","CALSCALE:GREGORIAN","METHOD:PUBLISH","BEGIN:VEVENT",`UID:${n}`,`DTSTAMP:${a}`];i.push(`SUMMARY:${this.escapeICSText(e.title)}`);let{startLine:s,endLine:o}=this.getICSDateProperties(e,!0,t);s&&i.push(s),o&&i.push(o);let l=this.buildDescription(e,t);if(l&&i.push(`DESCRIPTION:${this.escapeICSText(l)}`),e.contexts&&e.contexts.length>0&&i.push(`LOCATION:${this.escapeICSText(e.contexts.join(", "))}`),e.tags&&e.tags.length>0&&i.push(`CATEGORIES:${e.tags.map(c=>this.escapeICSText(c)).join(",")}`),e.priority){let d={highest:"1",high:"3",medium:"5",low:"7",lowest:"9"}[e.priority]||"5";i.push(`PRIORITY:${d}`)}return e.status&&i.push(`STATUS:${this.getVEventStatus(e.status)}`),i.push("END:VEVENT"),i.push("END:VCALENDAR"),i.join(`\r
|
||
`)}static buildDescription(e,t){let n=[],a=[];e.priority&&a.push(`Priority: ${e.priority}`),e.status&&a.push(`Status: ${e.status}`),e.projects&&e.projects.length>0&&a.push(`Projects: ${e.projects.join(", ")}`),e.tags&&e.tags.length>0&&a.push(`Tags: ${e.tags.join(", ")}`),e.contexts&&e.contexts.length>0&&a.push(`Contexts: ${e.contexts.join(", ")}`),e.timeEstimate&&a.push(`Estimated time: ${e.timeEstimate} minutes`),a.length>0&&n.push(...a),n.length>0&&n.push(""),n.push(`Exported from TaskNotes: ${e.path}`);let i=this.buildObsidianOpenUri(e,t);return i&&n.push(`Open in Obsidian: ${i}`),n.join(`
|
||
`)}static buildObsidianOpenUri(e,t){return!(t!=null&&t.includeObsidianLink)||!t.vaultName?null:`obsidian://open?vault=${encodeURIComponent(t.vaultName)}&file=${encodeURIComponent(e.path)}`}static formatGoogleDates(e,t){let{startICS:n,endICS:a}=this.getICSDateFormat(e,t);if(!n)return null;if(a)return`${n}/${a}`;let i=this.parseICSDate(n),s=new Date(i.getTime()+3600*1e3),o=this.formatDateToICS(s);return`${n}/${o}`}static getTaskDateRange(e,t,n){let a=null,i=null;if(e.scheduled)try{a=this.parseTaskDate(e.scheduled).toISOString()}catch(s){qTe.warn("Invalid scheduled date:",{category:"provider",operation:"invalid-scheduled-date",details:{value:e.scheduled}})}if(n!=null&&n.useDurationForExport&&a&&e.timeEstimate&&e.timeEstimate>0){let s=new Date(a);i=new Date(s.getTime()+e.timeEstimate*60*1e3).toISOString()}else if(e.due)try{i=this.parseTaskDate(e.due).toISOString()}catch(s){qTe.warn("Invalid due date:",{category:"provider",operation:"invalid-due-date",details:{value:e.due}})}else if(t&&a){let s=new Date(a);i=new Date(s.getTime()+3600*1e3).toISOString()}return{startISO:a,endISO:i}}static getYahooDateFormat(e,t){let{startISO:n,endISO:a}=this.getTaskDateRange(e,t),i=s=>{let o=new Date(s);return M(o,"yyyyMMdd'T'HHmmss")};return{startYahoo:n?i(n):null,endYahoo:a?i(a):null}}static getICSDateFormat(e,t=!0,n){let{startISO:a,endISO:i}=this.getTaskDateRange(e,t,n),s=o=>{let l=new Date(o);return this.formatDateToICS(l)};return{startICS:a?s(a):null,endICS:i?s(i):null}}static getICSDateProperties(e,t=!0,n){if(e.scheduled&&!this.hasTimeComponent(e.scheduled)){let s=e.scheduled,o=this.getAllDayEndDate(e,t,n)||s;return{startLine:`DTSTART;VALUE=DATE:${this.formatDateOnlyToICS(s)}`,endLine:`DTEND;VALUE=DATE:${this.formatDateOnlyToICS(o)}`}}let{startICS:a,endICS:i}=this.getICSDateFormat(e,t,n);return{startLine:a?`DTSTART:${a}`:null,endLine:i?`DTEND:${i}`:null}}static formatDateToICS(e){return e.toISOString().replace(/[-:]/g,"").replace(/\.\d{3}/,"")}static parseICSDate(e){let t=e.slice(0,4),n=e.slice(4,6),a=e.slice(6,8),i=e.slice(9,11),s=e.slice(11,13),o=e.slice(13,15);return new Date(`${t}-${n}-${a}T${i}:${s}:${o}Z`)}static parseTaskDate(e){let t=e.trim().replace(" ","T");return this.hasTimeComponent(t)?Us(t):Us(`${t}T00:00:00`)}static hasTimeComponent(e){return/\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}/.test(e)}static formatDateOnlyToICS(e){return e.split(/[T\s]/)[0].replace(/-/g,"")}static getAllDayEndDate(e,t,n){if(!e.scheduled)return null;let a=e.scheduled;if(n!=null&&n.useDurationForExport&&e.timeEstimate&&e.timeEstimate>0){let i=Math.max(1,Math.ceil(e.timeEstimate/1440));return this.addDaysToDateString(e.scheduled,i)}if(e.due)a=e.due;else if(!t)return null;return this.addDaysToDateString(a,1)}static addDaysToDateString(e,t){let n=Us(`${e.split(/[T\s]/)[0]}T00:00:00`);return n.setDate(n.getDate()+t),M(n,"yyyy-MM-dd")}static escapeICSText(e){return e.replace(/\\/g,"\\\\").replace(/;/g,"\\;").replace(/,/g,"\\,").replace(/\n/g,"\\n").replace(/\r/g,"")}static foldICSLines(e){let t=e.split(`\r
|
||
`),n=[];return t.forEach(a=>{if(a.length<=75)n.push(a);else{let i=a;for(;i.length>75;)n.push(i.substring(0,75)),i=" "+i.substring(75);i.length>0&&n.push(i)}}),n.join(`\r
|
||
`)}static generateMultipleTasksICSContent(e,t){let n=new Date().toISOString().replace(/[-:]/g,"").replace(/\.\d{3}/,""),a=this.filterTasksForExport(e,t),i=["BEGIN:VCALENDAR","VERSION:2.0","PRODID:-//TaskNotes//EN","CALSCALE:GREGORIAN"];return a.forEach((s,o)=>{let l=`${s.path.replace(/[^a-zA-Z0-9]/g,"-")}-${o}-${Date.now()}@tasknotes`;i.push("BEGIN:VEVENT"),i.push(`UID:${l}`),i.push(`DTSTAMP:${n}`),i.push(`SUMMARY:${this.escapeICSText(s.title)}`);let{startLine:c,endLine:d}=this.getICSDateProperties(s,!0,t);if(c){if(!d){let p=c.split(":",2)[1];if(c.includes("VALUE=DATE")){let m=Us(`${p.slice(0,4)}-${p.slice(4,6)}-${p.slice(6,8)}T00:00:00`);m.setDate(m.getDate()+1),d=`DTEND;VALUE=DATE:${M(m,"yyyyMMdd")}`}else{let m=this.parseICSDate(p),f=new Date(m.getTime()+3600*1e3);d=`DTEND:${this.formatDateToICS(f)}`}}}else{let p;if(s.dateCreated?p=new Date(s.dateCreated):p=new Date,c=`DTSTART:${this.formatDateToICS(p)}`,!d){let f=new Date(p.getTime()+36e5);d=`DTEND:${this.formatDateToICS(f)}`}}i.push(c),i.push(d);let u=this.buildDescription(s,t);if(u&&i.push(`DESCRIPTION:${this.escapeICSText(u)}`),s.contexts&&s.contexts.length>0&&i.push(`LOCATION:${this.escapeICSText(s.contexts.join(", "))}`),s.tags&&s.tags.length>0&&i.push(`CATEGORIES:${s.tags.map(p=>this.escapeICSText(p)).join(",")}`),s.priority){let m={highest:"1",high:"3",medium:"5",low:"7",lowest:"9"}[s.priority]||"5";i.push(`PRIORITY:${m}`)}s.status&&i.push(`STATUS:${this.getVEventStatus(s.status)}`),i.push("END:VEVENT")}),i.push("END:VCALENDAR"),this.foldICSLines(i.join(`\r
|
||
`))}static filterTasksForExport(e,t){var a;if(!(t!=null&&t.excludeArchived)&&!(t!=null&&t.excludeCompleted)&&!(t!=null&&t.requireDueDate)&&!(t!=null&&t.requireScheduledDate))return e;let n=new Set((a=t.completedStatuses)!=null&&a.length?t.completedStatuses:["done"]);return e.filter(i=>!(t.excludeArchived&&i.archived||t.excludeCompleted&&n.has(i.status)||t.requireDueDate&&!i.due||t.requireScheduledDate&&!i.scheduled))}static getVEventStatus(e){let t=e.trim().toLowerCase();return t==="cancelled"||t==="canceled"?"CANCELLED":t==="tentative"?"TENTATIVE":"CONFIRMED"}static createMultipleTasksICSDownload(e,t){if(!e||e.length===0)return null;let n=this.filterTasksForExport(e,t);if(n.length===0)return null;let a=new Date().toISOString().split("T")[0];return{content:this.generateMultipleTasksICSContent(n,t),filename:`tasknotes-all-tasks-${a}.ics`,taskCount:n.length}}static createTaskICSDownload(e,t){return{content:this.generateICSContent(e,t),filename:`${e.title.replace(/[^a-zA-Z0-9]/g,"-")}.ics`,taskCount:1}}}});function Xe(r,e){return e===void 0?new Tq.Notice(r):new Tq.Notice(r,e)}var Tq,Uu=y(()=>{Tq=require("obsidian")});var YTe={};at(YTe,{downloadAllTasksICSFile:()=>Qit,downloadTaskICSFile:()=>Sq,openCalendarURL:()=>kE});function Uk(r,e,t,n){return r?r(e,n):t}function WTe(r){let e=new Blob([r.content],{type:"text/calendar"}),t=URL.createObjectURL(e);try{let n=activeWindow.createEl("a");n.href=t,n.download=r.filename,n.click()}finally{URL.revokeObjectURL(t)}}function kE(r,e){try{let t=Em.generateCalendarURL(r);window.open(t,"_blank")}catch(t){wq.error("Failed to generate calendar URL:",{category:"provider",operation:"generate-calendar-url",error:t}),Xe(Uk(e,"services.calendarExport.notices.generateLinkFailed","Failed to generate calendar link"))}}function Qit(r,e,t){try{let n=Em.createMultipleTasksICSDownload(r,t);if(!n){Xe(Uk(e,"services.calendarExport.notices.noTasksToExport","No tasks found to export"));return}WTe(n);let a=n.taskCount===1?"":"s";Xe(Uk(e,"services.calendarExport.notices.downloadSuccess",`Downloaded ${n.filename} with ${n.taskCount} task${a}`,{filename:n.filename,count:n.taskCount,plural:a}))}catch(n){wq.error("Failed to download all tasks ICS file:",{category:"provider",operation:"download-all-tasks-ics-file",error:n}),Xe(Uk(e,"services.calendarExport.notices.downloadFailed","Failed to download calendar file"))}}function Sq(r,e,t){try{let n=Em.createTaskICSDownload(r,t);WTe(n),Xe(Uk(e,"services.calendarExport.notices.singleDownloadSuccess",`Downloaded ${n.filename}`,{filename:n.filename}))}catch(n){wq.error("Failed to download ICS file:",{category:"provider",operation:"download-ics-file",error:n}),Xe(Uk(e,"services.calendarExport.notices.downloadFailed","Failed to download calendar file"))}}var wq,xq=y(()=>{bq();K();Uu();wq=N({tag:"UI/CalendarExportActions"})});async function KTe(r){let{plugin:e,path:t,openInNewLeaf:n=!1}=r,a=e.app.vault.getAbstractFileByPath(t);if(a instanceof ug.TFile){await e.app.workspace.getLeaf(n).openFile(a);return}await e.app.workspace.openLinkText(t,"",n)}async function Hk(r){let{plugin:e,parentTask:t,targetDate:n,openInNewLeaf:a=!1,onUpdate:i}=r,s=ce(n);try{let o=await e.taskService.findMaterializedOccurrence(t,n),l=await e.taskService.materializeOccurrence(t,n);return await KTe({plugin:e,path:l.path,openInNewLeaf:a}),i==null||i(),new ug.Notice(o?`Opened occurrence note for ${s}`:`Created occurrence note for ${s}`),l}catch(o){let l=o instanceof Error?o.message:String(o);return GTe.error("Error opening or creating occurrence note:",{category:"persistence",operation:"open-or-create-occurrence-note",details:{taskPath:t.path,targetDate:s},error:l}),new ug.Notice(`Failed to open occurrence note: ${l}`),null}}async function pN(r){let{plugin:e,occurrenceTask:t,openInNewLeaf:n=!1}=r;try{let a=await e.taskService.getMaterializedOccurrenceParent(t);return a?(await KTe({plugin:e,path:a.path,openInNewLeaf:n}),a):(new ug.Notice("Recurring parent not found"),null)}catch(a){let i=a instanceof Error?a.message:String(a);return GTe.error("Error opening materialized occurrence parent:",{category:"persistence",operation:"open-materialized-occurrence-parent",details:{taskPath:t.path,occurrenceDate:t.occurrence_date},error:i}),new ug.Notice(`Failed to open recurring parent: ${i}`),null}}var ug,GTe,mN=y(()=>{ug=require("obsidian");Me();K();GTe=N({tag:"UI/OccurrenceNoteActions"})});function fN(r){return r.trim()}function bE(r){let e=new Set,t=[];for(let n of r!=null?r:[]){if(typeof n!="string")continue;let a=fN(n);!a||e.has(a)||(e.add(a),t.push(a))}return t}function QTe(r,e){let t=fN(e),n=bE(r);return t?n.includes(t)?n:[...n,t]:n.length>0?n:void 0}function Jit(r,e){let t=fN(e),n=bE(r).filter(a=>a!==t);return n.length>0?n:void 0}function Xit(r,e){let t=fN(e),n=bE(r);return t?n.includes(t)?Jit(n,t):QTe(n,t):n.length>0?n:void 0}function fa(r){return r.setSubmenu()}function ZTe(r){var t,n;let e=r;return(n=(t=e.dom)!=null?t:e.domEl)!=null?n:null}function Vk(r,e=""){let n=(typeof r=="string"||typeof r=="number"||typeof r=="boolean"||typeof r=="bigint"?String(r):"").trim();return n.length>0?n:e}var Le,Sr,Yl,TE=y(()=>{Le=require("obsidian");Me();Mk();rN();Ba();lq();ro();bk();kk();Pk();fV();tE();Vo();qv();Io();qn();Pu();VTe();kq();yV();xq();mN();K();Sr=N({tag:"Components/TaskContextMenu"});Yl=class r{constructor(e,t=new Ea){this.targetDoc=activeDocument;this.menu=t,this.options=e,this.buildMenu()}static addToMenu(e,t){new r(t,e)}t(e,t){return this.options.plugin.i18n.translate(e,t)}buildMenu(){let{task:e,plugin:t}=this.options,n=this.addPromotedOccurrenceControls(e,t);this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.status")),a.setIcon("circle");let i=fa(a);this.addStatusOptions(i,e,t)}),this.menu.addSeparator(),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.priority")),a.setIcon("star");let i=fa(a);this.addPriorityOptions(i,e,t)}),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.tags")),a.setIcon("tags");let i=fa(a);this.addTagOptions(i,e,t)}),this.menu.addSeparator(),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.dueDate")),a.setIcon("calendar");let i=fa(a);this.addDateOptions(i,e.due,async s=>{var o,l;try{await t.updateTaskProperty(e,"due",s||void 0),(l=(o=this.options).onUpdate)==null||l.call(o)}catch(c){let d=c instanceof Error?c.message:String(c);Sr.error("Error updating task due date:",{category:"validation",operation:"updating-task-due-date",details:{taskPath:e.path},error:d}),new Le.Notice(this.t("contextMenus.task.notices.updateDueDateFailure",{message:d}))}},()=>{t.openDueDateModal(e)})}),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.scheduledDate")),a.setIcon("calendar-clock");let i=fa(a);this.addDateOptions(i,e.scheduled,async s=>{var o,l;try{await t.updateTaskProperty(e,"scheduled",s||void 0),(l=(o=this.options).onUpdate)==null||l.call(o)}catch(c){let d=c instanceof Error?c.message:String(c);Sr.error("Error updating task scheduled date:",{category:"validation",operation:"updating-task-scheduled-date",details:{taskPath:e.path},error:d}),new Le.Notice(this.t("contextMenus.task.notices.updateScheduledFailure",{message:d}))}},()=>{t.openScheduledDateModal(e)})}),this.addCustomDateFieldMenuItems(e,t),e.recurrence&&this.addRecurringInstanceMenuItems(e,t),!n&&e.recurrence_parent&&e.occurrence_date&&this.addMaterializedOccurrenceMenuItems(e,t),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.reminders")),a.setIcon("bell");let i=fa(a);this.addQuickRemindersSection(i,e,t,"due",this.t("contextMenus.task.remindBeforeDue")),this.addQuickRemindersSection(i,e,t,"scheduled",this.t("contextMenus.task.remindBeforeScheduled")),i.addSeparator(),i.addItem(s=>{s.setTitle(this.t("contextMenus.task.manageReminders")),s.setIcon("settings"),s.onClick(()=>{new ql(t.app,t,e,l=>{(async()=>{var c,d;try{await t.updateTaskProperty(e,"reminders",l.length>0?l:void 0),(d=(c=this.options).onUpdate)==null||d.call(c)}catch(u){Sr.error("Error updating reminders:",{category:"persistence",operation:"updating-reminders",error:u}),new Le.Notice(this.t("contextMenus.task.notices.updateRemindersFailure"))}})()}).open()})}),e.reminders&&e.reminders.length>0&&i.addItem(s=>{s.setTitle(this.t("contextMenus.task.clearReminders")),s.setIcon("trash"),s.onClick(async()=>{var o,l;try{await t.updateTaskProperty(e,"reminders",void 0),(l=(o=this.options).onUpdate)==null||l.call(o)}catch(c){Sr.error("Error clearing reminders:",{category:"persistence",operation:"clearing-reminders",error:c}),new Le.Notice(this.t("contextMenus.task.notices.clearRemindersFailure"))}})})}),this.menu.addSeparator(),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.dependencies.title")),a.setIcon("git-branch");let i=fa(a);this.addDependencyMenuItems(i,e,t)}),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.organization.title")),a.setIcon("folder-tree");let i=fa(a);this.addOrganizationMenuItems(i,e,t)}),this.menu.addSeparator(),this.menu.addItem(a=>{let i=t.getActiveTimeSession(e);a.setTitle(i?this.t("contextMenus.task.stopTimeTracking"):this.t("contextMenus.task.startTimeTracking")),a.setIcon(i?"pause":"play"),a.onClick(async()=>{var o,l;t.getActiveTimeSession(e)?await t.stopTimeTracking(e):await t.startTimeTracking(e),(l=(o=this.options).onUpdate)==null||l.call(o)})}),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.editTimeEntries")),a.setIcon("clock"),a.onClick(()=>{t.openTimeEntryEditor(e)})}),t.settings.calendarViewSettings.enableTimeblocking&&this.menu.addItem(a=>{a.setTitle("Create timeblock"),a.setIcon("calendar-plus"),a.onClick(()=>{let i=HTe(e,this.options.targetDate);new Bk(t.app,t,{date:i.date,startTime:i.startTime,endTime:i.endTime,prefilledTitle:e.title,prefilledAttachmentPaths:[e.path]}).open()})}),this.menu.addItem(a=>{a.setTitle(e.archived?this.t("contextMenus.task.unarchive"):this.t("contextMenus.task.archive")),a.setIcon(e.archived?"archive-restore":"archive"),a.onClick(async()=>{var i,s;try{await t.toggleTaskArchive(e),(s=(i=this.options).onUpdate)==null||s.call(i)}catch(o){let l=o instanceof Error?o.message:String(o);Sr.error("Error toggling task archive:",{category:"persistence",operation:"toggling-task-archive",details:{taskPath:e.path},error:l}),new Le.Notice(this.t("contextMenus.task.notices.archiveFailure",{message:l}))}})}),this.menu.addSeparator(),this.menu.addItem(a=>{a.setTitle(this.t("modals.taskEdit.title")),a.setIcon("pencil"),a.onClick(()=>{t.openTaskEditModal(e,()=>{var i,s;(s=(i=this.options).onUpdate)==null||s.call(i)})})}),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.openNote")),a.setIcon("file-text"),a.onClick(()=>{let i=t.app.vault.getAbstractFileByPath(e.path);i instanceof Le.TFile&&t.app.workspace.getLeaf(!1).openFile(i)})}),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.openNoteInNewTab")),a.setIcon("external-link"),a.onClick(()=>{t.app.vault.getAbstractFileByPath(e.path)instanceof Le.TFile&&t.app.workspace.openLinkText(e.path,"",!0)})}),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.copyTitle")),a.setIcon("copy"),a.onClick(async()=>{try{await navigator.clipboard.writeText(e.title),new Le.Notice(this.t("contextMenus.task.notices.copyTitleSuccess"))}catch(i){new Le.Notice(this.t("contextMenus.task.notices.copyFailure"))}})}),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.noteActions")),a.setIcon("file-text");let i=fa(a),s=t.app.vault.getAbstractFileByPath(e.path);if(s instanceof Le.TFile){try{t.app.workspace.trigger("file-menu",i,s,"tasknotes-context-menu")}catch(o){Sr.debug("Native file menu not available, using fallback",{category:"stale-data",operation:"native-file-menu-not-using-fallback"})}i.addItem(o=>{o.setTitle(this.t("contextMenus.task.rename")),o.setIcon("pencil"),o.onClick(async()=>{try{let l=s.basename,c=await Tk(t.app,{title:this.t("contextMenus.task.renameTitle"),placeholder:this.t("contextMenus.task.renamePlaceholder"),initialValue:l});if(c&&c.trim()!==""&&c!==l){let d=s.extension,u=c.endsWith(`.${d}`)?c:`${c}.${d}`,p=s.parent?`${s.parent.path}/${u}`:u;await q2(t.app,s,p),new Le.Notice(this.t("contextMenus.task.notices.renameSuccess",{name:u})),this.options.onUpdate&&this.options.onUpdate()}}catch(l){Sr.error("Error renaming file:",{category:"persistence",operation:"renaming-file",error:l}),new Le.Notice(this.t("contextMenus.task.notices.renameFailure"))}})}),i.addItem(o=>{o.setTitle(this.t("contextMenus.task.delete")),o.setIcon("trash"),o.onClick(async()=>{if(await Ir(t.app,{title:this.t("contextMenus.task.deleteTitle"),message:this.t("contextMenus.task.deleteMessage",{name:s.name}),confirmText:this.t("contextMenus.task.deleteConfirm"),cancelText:this.t("common.cancel"),isDestructive:!0}))try{await t.taskService.deleteTask(e),this.options.onUpdate&&this.options.onUpdate()}catch(c){let d=c instanceof Error?c.message:String(c);Sr.error("Error deleting task:",{category:"persistence",operation:"deleting-task",error:c}),new Le.Notice(`Failed to delete task: ${d}`)}})}),i.addSeparator(),i.addItem(o=>{o.setTitle(this.t("contextMenus.task.copyPath")),o.setIcon("copy"),o.onClick(()=>{navigator.clipboard.writeText(s.path).then(()=>{new Le.Notice(this.t("contextMenus.task.notices.copyPathSuccess"))}).catch(()=>{new Le.Notice(this.t("contextMenus.task.notices.copyFailure"))})})}),i.addItem(o=>{o.setTitle(this.t("contextMenus.task.copyUrl")),o.setIcon("link"),o.onClick(()=>{let l=`obsidian://open?vault=${encodeURIComponent(t.app.vault.getName())}&file=${encodeURIComponent(s.path)}`;navigator.clipboard.writeText(l).then(()=>{new Le.Notice(this.t("contextMenus.task.notices.copyUrlSuccess"))}).catch(()=>{new Le.Notice(this.t("contextMenus.task.notices.copyFailure"))})})}),i.addSeparator(),i.addItem(o=>{o.setTitle(this.t("contextMenus.task.showInExplorer")),o.setIcon("folder-open"),o.onClick(()=>{t.app.workspace.getLeaf().setViewState({type:"file-explorer",state:{}}).then(()=>{let l=t.app.workspace.getLeavesOfType("file-explorer")[0];l!=null&&l.view&&"revealInFolder"in l.view&&l.view.revealInFolder(s)}).catch(l=>{Sr.warn("Failed to reveal task in file explorer:",{category:"persistence",operation:"reveal-task-file-explorer",error:l})})})})}}),this.menu.addSeparator(),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.addToCalendar")),a.setIcon("calendar-plus");let i=fa(a);i.addItem(s=>{s.setTitle(this.t("contextMenus.task.calendar.google")),s.setIcon("external-link"),s.onClick(()=>{kE({type:"google",task:e,useScheduledAsDue:!0},this.t.bind(this))})}),i.addItem(s=>{s.setTitle(this.t("contextMenus.task.calendar.outlook")),s.setIcon("external-link"),s.onClick(()=>{kE({type:"outlook",task:e,useScheduledAsDue:!0},this.t.bind(this))})}),i.addItem(s=>{s.setTitle(this.t("contextMenus.task.calendar.yahoo")),s.setIcon("external-link"),s.onClick(()=>{kE({type:"yahoo",task:e,useScheduledAsDue:!0},this.t.bind(this))})}),i.addSeparator(),i.addItem(s=>{s.setTitle(this.t("contextMenus.task.calendar.downloadIcs")),s.setIcon("download"),s.onClick(()=>{Sq(e,this.t.bind(this),{includeObsidianLink:!0,vaultName:t.app.vault.getName()})})}),i.addSeparator(),i.addItem(s=>{s.setTitle(this.t("contextMenus.task.calendar.syncToGoogle")),s.setIcon("refresh-cw"),s.onClick(async()=>{var o,l,c;if(!((o=t.taskCalendarSyncService)!=null&&o.isEnabled())){new Le.Notice(this.t("contextMenus.task.calendar.syncToGoogleNotConfigured"));return}try{await t.taskCalendarSyncService.syncTaskToCalendar(e),new Le.Notice(this.t("contextMenus.task.calendar.syncToGoogleSuccess")),(c=(l=this.options).onUpdate)==null||c.call(l)}catch(d){Sr.error("Failed to sync task to Google Calendar:",{category:"provider",operation:"sync-task-google-calendar",error:d}),new Le.Notice(this.t("contextMenus.task.calendar.syncToGoogleFailed"))}})})}),this.menu.addSeparator(),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.recurrence")),a.setIcon("refresh-ccw");let i=fa(a),s=typeof e.recurrence=="string"?e.recurrence:void 0;this.addRecurrenceOptions(i,s,async o=>{var l,c;try{await t.updateTaskProperty(e,"recurrence",o||void 0),(c=(l=this.options).onUpdate)==null||c.call(l)}catch(d){let u=d instanceof Error?d.message:String(d);Sr.error("Error updating task recurrence:",{category:"persistence",operation:"updating-task-recurrence",details:{taskPath:e.path},error:u}),new Le.Notice(this.t("contextMenus.task.notices.updateRecurrenceFailure",{message:u}))}},t),s&&this.addOccurrencePolicyOptions(i,e,t)}),this.menu.addSeparator(),this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.createSubtask")),a.setIcon("plus"),a.onClick(()=>{let i=t.app.vault.getAbstractFileByPath(e.path);i instanceof Le.TFile&&t.openTaskCreationModal({..._Te(t,e,i)})})}),this.addMobileDismissOption(),window.setTimeout(()=>{this.updateMainMenuIconColors(e,t)},10)}addMobileDismissOption(){Le.Platform.isMobile&&(this.menu.addSeparator(),this.menu.addItem(e=>{e.setTitle(this.t("common.close")),e.setIcon("x"),e.onClick(()=>{this.menu.hide()})}))}addRecurringInstanceMenuItems(e,t){var c,d;let n=ce(this.options.targetDate),a=((c=e.complete_instances)==null?void 0:c.includes(n))||!1;this.menu.addItem(u=>{u.setTitle(a?this.t("contextMenus.task.markIncomplete"):this.t("contextMenus.task.markComplete")),u.setIcon(a?"x":"check"),u.onClick(async()=>{var p,m;try{await t.toggleRecurringTaskComplete(e,this.options.targetDate),(m=(p=this.options).onUpdate)==null||m.call(p)}catch(f){let h=f instanceof Error?f.message:String(f);Sr.error("Error toggling recurring task completion:",{category:"persistence",operation:"toggling-recurring-task-completion",details:{taskPath:e.path},error:h}),new Le.Notice(this.t("contextMenus.task.notices.toggleCompletionFailure",{message:h}))}})});let i=this.options.occurrenceDate,s=i!=null?i:sN(e),o=ce(s),l=((d=e.skipped_instances)==null?void 0:d.includes(o))||!1;this.menu.addItem(u=>{u.setTitle(l?this.t("contextMenus.task.unskipInstance"):this.t("contextMenus.task.skipInstance")),u.setIcon(l?"undo":"x-circle"),u.onClick(async()=>{var p,m;try{await t.taskService.toggleRecurringTaskSkipped(e,i),(m=(p=this.options).onUpdate)==null||m.call(p)}catch(f){let h=f instanceof Error?f.message:String(f);Sr.error("Error toggling recurring task skip:",{category:"persistence",operation:"toggling-recurring-task-skip",details:{taskPath:e.path},error:h}),new Le.Notice(this.t("contextMenus.task.notices.toggleSkipFailure",{message:h}))}})}),this.options.promoteOccurrenceControls||this.addOccurrenceNoteMenuItem(e,t)}addPromotedOccurrenceControls(e,t){if(!this.options.promoteOccurrenceControls)return!1;let n=!1;return e.recurrence&&(this.addOccurrenceNoteMenuItem(e,t),n=!0),e.recurrence_parent&&e.occurrence_date&&(this.addMaterializedOccurrenceMenuItems(e,t),n=!0),n&&this.menu.addSeparator(),n}addOccurrenceNoteMenuItem(e,t){this.menu.addItem(n=>{n.setTitle("Open or create occurrence note"),n.setIcon("file-plus"),n.onClick(async()=>{await Hk({plugin:t,parentTask:e,targetDate:this.getOccurrenceNoteTargetDate(e),onUpdate:this.options.onUpdate})})})}getOccurrenceNoteTargetDate(e){if(this.options.promoteOccurrenceControls||e.recurrence_anchor!=="completion")return this.options.targetDate;try{let t=de(e.scheduled||"");return t?kt(t):this.options.targetDate}catch(t){return this.options.targetDate}}addMaterializedOccurrenceMenuItems(e,t){this.menu.addItem(i=>{i.setTitle("Open recurring parent"),i.setIcon("refresh-ccw"),i.onClick(async()=>{await pN({plugin:t,occurrenceTask:e})})});let n=this.getSkippedStatusValue(t),a=this.isSkippedMaterializedOccurrence(e,t);!n&&!a||this.menu.addItem(i=>{i.setTitle(a?"Unskip occurrence":"Skip occurrence"),i.setIcon(a?"undo":"x-circle"),i.onClick(async()=>{var s,o;try{let l=a?await t.taskService.unskipMaterializedOccurrence(e):await t.taskService.skipMaterializedOccurrence(e,n);Object.assign(e,l),(o=(s=this.options).onUpdate)==null||o.call(s)}catch(l){let c=l instanceof Error?l.message:String(l);Sr.error("Error updating materialized occurrence skip state:",{category:"persistence",operation:"updating-materialized-occurrence-skip-state",details:{taskPath:e.path,occurrenceDate:e.occurrence_date},error:c}),new Le.Notice(`Failed to update occurrence: ${c}`)}})})}getSkippedStatusValue(e){var t,n;return(n=(t=e.settings.customStatuses)==null?void 0:t.find(a=>a.isSkipped))==null?void 0:n.value}isSkippedMaterializedOccurrence(e,t){var n;return((n=t.settings.customStatuses)==null?void 0:n.some(a=>a.isSkipped&&a.value===e.status))===!0}addDependencyMenuItems(e,t,n){var s,o;e.addItem(l=>{l.setTitle(this.t("contextMenus.task.dependencies.addBlockedBy")),l.setIcon("link-2"),l.onClick(()=>{this.menu.hide(),this.openBlockedBySelector(t,n)})});let a=(s=t.blockedBy)!=null?s:[];a.length>0&&e.addItem(l=>{l.setTitle(this.t("contextMenus.task.dependencies.removeBlockedBy")),l.setIcon("unlink");let c=fa(l);a.forEach((d,u)=>{c.addItem(p=>{let m=Vk(tU(d),this.t("contextMenus.task.dependencies.unknownDependency"));p.setTitle(m),p.onClick(async()=>{var f,h;try{let g=a.filter((b,k)=>k!==u),v=await n.updateTaskProperty(t,"blockedBy",g.length>0?g:void 0);Object.assign(t,v),new Le.Notice(this.t("contextMenus.task.dependencies.notices.blockedByRemoved")),(h=(f=this.options).onUpdate)==null||h.call(f)}catch(g){Sr.error("Failed to remove blocked-by dependency:",{category:"persistence",operation:"remove-blocked-by-dependency",error:g}),new Le.Notice(this.t("contextMenus.task.dependencies.notices.updateFailed"))}})})})}),e.addSeparator(),e.addItem(l=>{l.setTitle(this.t("contextMenus.task.dependencies.addBlocking")),l.setIcon("git-branch-plus"),l.onClick(()=>{this.menu.hide(),this.openBlockingSelector(t,n)})});let i=(o=t.blocking)!=null?o:[];i.length>0&&e.addItem(l=>{l.setTitle(this.t("contextMenus.task.dependencies.removeBlocking")),l.setIcon("git-branch-minus");let c=fa(l);i.forEach(d=>{let u=n.app.vault.getAbstractFileByPath(d),p=u instanceof Le.TFile?n.app.metadataCache.fileToLinktext(u,t.path,!1):d.split("/").pop()||d;c.addItem(m=>{m.setTitle(p),m.onClick(async()=>{var f,h;try{await n.taskService.updateBlockingRelationships(t,[],[d],{});let g=await n.cacheManager.getTaskInfo(t.path);g&&Object.assign(t,g),new Le.Notice(this.t("contextMenus.task.dependencies.notices.blockingRemoved")),(h=(f=this.options).onUpdate)==null||h.call(f)}catch(g){Sr.error("Failed to remove blocking dependency:",{category:"persistence",operation:"remove-blocking-dependency",error:g}),new Le.Notice(this.t("contextMenus.task.dependencies.notices.updateFailed"))}})})})})}dedupeDependencyEntries(e){let t=new Map;for(let n of e){let a=os(n);if(!a)continue;let i=this.getDependencyKey(a);t.has(i)||t.set(i,a)}return Array.from(t.values())}async openBlockedBySelector(e,t){let n=new Set((Array.isArray(e.blockedBy)?e.blockedBy:[]).map(a=>a.uid));await this.openTaskDependencySelector(t,a=>{if(a.path===e.path)return!1;let i=_o(t.app,e.path,a.path,t.settings.useFrontmatterMarkdownLinks);return!n.has(i)},async a=>{await this.handleBlockedBySelection(e,t,a)})}async openBlockingSelector(e,t){var a;let n=new Set((a=e.blocking)!=null?a:[]);await this.openTaskDependencySelector(t,i=>i.path===e.path?!1:!n.has(i.path),async i=>{await this.handleBlockingSelection(e,t,i)})}async openTaskDependencySelector(e,t,n){try{let i=(await e.cacheManager.getAllTasks()).filter(t);if(i.length===0){new Le.Notice(this.t("contextMenus.task.dependencies.notices.noEligibleTasks"));return}Fn(e,i,s=>{s&&n(s)})}catch(a){Sr.error("Failed to open task selector for dependencies:",{category:"persistence",operation:"open-task-selector-dependencies",error:a}),new Le.Notice(this.t("contextMenus.task.dependencies.notices.updateFailed"))}}async handleBlockedBySelection(e,t,n){var a,i;if(n.path!==e.path)try{let s={uid:_o(t.app,e.path,n.path,t.settings.useFrontmatterMarkdownLinks),reltype:ss},o=Array.isArray(e.blockedBy)?e.blockedBy:[],l=this.dedupeDependencyEntries([...o,s]);if(l.length===o.length)return;let c=await t.updateTaskProperty(e,"blockedBy",l);Object.assign(e,c),new Le.Notice(this.t("contextMenus.task.dependencies.notices.blockedByAdded",{count:1})),(i=(a=this.options).onUpdate)==null||i.call(a)}catch(s){Sr.error("Failed to add blocked-by dependency via selector:",{category:"persistence",operation:"add-blocked-by-dependency-via-selector",error:s}),new Le.Notice(this.t("contextMenus.task.dependencies.notices.updateFailed"))}}async handleBlockingSelection(e,t,n){var i,s,o;let a=n.path;if(a!==e.path&&!((i=e.blocking)!=null&&i.includes(a)))try{let l={uid:_o(t.app,a,e.path,t.settings.useFrontmatterMarkdownLinks),reltype:ss};await t.taskService.updateBlockingRelationships(e,[a],[],{[a]:l});let c=await t.cacheManager.getTaskInfo(e.path);c?Object.assign(e,c):Array.isArray(e.blocking)?e.blocking=Array.from(new Set([...e.blocking,a])):e.blocking=[a],new Le.Notice(this.t("contextMenus.task.dependencies.notices.blockingAdded",{count:1})),(o=(s=this.options).onUpdate)==null||o.call(s)}catch(l){Sr.error("Failed to add blocking dependency via selector:",{category:"persistence",operation:"add-blocking-dependency-via-selector",error:l}),new Le.Notice(this.t("contextMenus.task.dependencies.notices.updateFailed"))}}getDependencyKey(e){var t;return`${e.uid}::${e.reltype}::${(t=e.gap)!=null?t:""}`}addOrganizationMenuItems(e,t,n){e.addItem(a=>{a.setTitle(this.t("contextMenus.task.organization.contexts")),a.setIcon("at-sign");let i=fa(a);this.addContextMenuItems(i,t,n)}),e.addSeparator(),e.addItem(a=>{a.setTitle(this.t("contextMenus.task.organization.addToProject")),a.setIcon("folder-plus"),a.onClick(()=>{this.menu.hide(),this.openProjectSelector(t,n)})}),e.addItem(a=>{a.setTitle(this.t("contextMenus.task.organization.addSubtasks")),a.setIcon("indent"),a.onClick(()=>{this.menu.hide(),this.openSubtaskAssignmentSelector(t,n)})})}addContextMenuItems(e,t,n){let a=bE(t.contexts),i=this.getContextOptions(t,n);if(e.addItem(s=>{s.setTitle(this.t("contextMenus.task.organization.addContext")),s.setIcon("plus"),s.onClick(()=>{this.menu.hide(),this.openContextInput(t,n)})}),i.length>0){e.addSeparator();for(let s of i)e.addItem(o=>{let l=a.includes(s);o.setTitle(l?this.t("contextMenus.task.organization.contextSelected",{context:s}):s),o.setIcon(l?"check":"at-sign"),o.onClick(async()=>{await this.updateTaskContexts(t,n,Xit(t.contexts,s))})})}a.length>0&&(e.addSeparator(),e.addItem(s=>{s.setTitle(this.t("contextMenus.task.organization.clearContexts")),s.setIcon("x"),s.onClick(async()=>{await this.updateTaskContexts(t,n,void 0)})}))}getContextOptions(e,t){var i,s,o,l;let n=(o=(s=(i=t.cacheManager).getAllContexts)==null?void 0:s.call(i))!=null?o:[];return bE([...n,...(l=e.contexts)!=null?l:[]]).sort((c,d)=>c.localeCompare(d))}async openContextInput(e,t){let n=await Tk(t.app,{title:this.t("contextMenus.task.organization.addContext"),placeholder:this.t("contextMenus.task.organization.contextPlaceholder"),confirmText:this.t("common.confirm"),cancelText:this.t("common.cancel")});n&&await this.updateTaskContexts(e,t,QTe(e.contexts,n))}async updateTaskContexts(e,t,n){var a,i;try{let s=await t.updateTaskProperty(e,"contexts",n);Object.assign(e,s),(i=(a=this.options).onUpdate)==null||i.call(a)}catch(s){Sr.error("Failed to update task contexts:",{category:"validation",operation:"update-task-contexts",error:s}),new Le.Notice(this.t("contextMenus.task.organization.notices.updateContextsFailed"))}}addTagOptions(e,t,n){let a=Pbe(t,n.settings);if(e.addItem(i=>{i.setTitle(this.t("contextMenus.task.addTag")),i.setIcon("plus"),i.onClick(()=>{this.menu.hide(),this.openTagInput(t,n,"add")})}),a.length>0){e.addSeparator();for(let i of a)e.addItem(s=>{s.setTitle(this.t("contextMenus.task.removeTag",{tag:`#${i}`})),s.setIcon("x"),s.onClick(async()=>{await this.updateTaskTags(t,n,nE(t.tags,[i]))})});e.addSeparator(),e.addItem(i=>{i.setTitle(this.t("contextMenus.task.clearTags")),i.setIcon("eraser"),i.onClick(async()=>{await this.updateTaskTags(t,n,LI(t.tags,n.settings))})})}}async openTagInput(e,t,n){let a=await Tk(t.app,{title:n==="add"?this.t("contextMenus.task.addTag"):this.t("contextMenus.task.removeTagInput"),placeholder:this.t("contextMenus.task.tagPlaceholder"),confirmText:this.t("common.confirm"),cancelText:this.t("common.cancel"),onInputReady:o=>{new hm(t.app,o,t)}}),i=rE(a);if(i.length===0)return;let s=n==="add"?OI(e.tags,i):nE(e.tags,i);await this.updateTaskTags(e,t,s)}async updateTaskTags(e,t,n){var a,i;try{let s=await t.updateTaskProperty(e,"tags",n);Object.assign(e,s),(i=(a=this.options).onUpdate)==null||i.call(a)}catch(s){Sr.error("Failed to update task tags:",{category:"validation",operation:"update-task-tags",error:s}),new Le.Notice(this.t("contextMenus.task.notices.updateTagsFailed"))}}async openProjectSelector(e,t){try{new Ao(t.app,t,a=>{a&&this.addTaskToProject(e,t,a)}).open()}catch(n){Sr.error("Failed to open project selector:",{category:"persistence",operation:"open-project-selector",error:n}),new Le.Notice(this.t("contextMenus.task.organization.notices.projectSelectFailed"))}}async openSubtaskAssignmentSelector(e,t){try{let a=(await t.cacheManager.getAllTasks()).filter(i=>i.path!==e.path);if(a.length===0){new Le.Notice(this.t("contextMenus.task.organization.notices.noEligibleSubtasks"));return}Fn(t,a,i=>{i&&this.assignTaskAsSubtask(e,t,i)})}catch(n){Sr.error("Failed to open subtask assignment selector:",{category:"persistence",operation:"open-subtask-assignment-selector",error:n}),new Le.Notice(this.t("contextMenus.task.organization.notices.subtaskSelectFailed"))}}async addTaskToProject(e,t,n){var a,i;try{if(!(n instanceof Le.TFile)){new Le.Notice(this.t("contextMenus.task.organization.notices.projectSelectFailed"));return}let s=await Nk(t,e,n);s&&(Object.assign(e,s),(i=(a=this.options).onUpdate)==null||i.call(a))}catch(s){Sr.error("Failed to add task to project:",{category:"persistence",operation:"add-task-project",error:s}),new Le.Notice(this.t("contextMenus.task.organization.notices.addToProjectFailed"))}}async assignTaskAsSubtask(e,t,n){var a,i;try{let s=t.app.vault.getAbstractFileByPath(e.path);if(!(s instanceof Le.TFile)){new Le.Notice(this.t("contextMenus.task.organization.notices.currentTaskNotFound"));return}let o=await tN(t,s,n);o&&(Object.assign(n,o),(i=(a=this.options).onUpdate)==null||i.call(a))}catch(s){Sr.error("Failed to assign task as subtask:",{category:"persistence",operation:"assign-task-as-subtask",error:s}),new Le.Notice(this.t("contextMenus.task.organization.notices.addAsSubtaskFailed"))}}buildProjectReference(e,t,n){return Ws(n.app,e,t,"","",n.settings.useFrontmatterMarkdownLinks)}updateMainMenuIconColors(e,t){let n=this.targetDoc.querySelector(".menu");if(!n)return;let a=n.querySelectorAll(".menu-item"),i=this.t("contextMenus.task.status"),s=this.t("contextMenus.task.priority");a.forEach(o=>{let l=o.querySelector(".menu-item-title"),c=o.querySelector(".menu-item-icon");if(l&&c){let d=l.textContent;if(d===i){let u=t.settings.customStatuses.find(p=>p.value===e.status);u&&u.color&&(c.style.color=u.color)}else if(d===s){let u=t.settings.customPriorities.find(p=>p.value===e.priority);u&&u.color&&(c.style.color=u.color)}}})}addStatusOptions(e,t,n){this.getStatusOptions(t,n).forEach((i,s)=>{e.addItem(o=>{let l=Vk(i.label,i.value),c=l;o.setIcon(i.icon||"circle"),i.value===t.status&&(c=this.t("contextMenus.task.statusSelected",{label:l})),o.setTitle(c),o.onClick(async()=>{var u,p;try{await n.updateTaskProperty(t,"status",i.value),(p=(u=this.options).onUpdate)==null||p.call(u)}catch(m){let f=m instanceof Error?m.message:String(m);Sr.error("Error updating task status:",{category:"persistence",operation:"updating-task-status",details:{taskPath:t.path},error:f}),new Le.Notice(`Failed to update task status: ${f}`)}});let d=i.color;d&&window.setTimeout(()=>{let u=ZTe(o);if(u){let p=u.querySelector(".menu-item-icon");p&&(p.style.color=d)}},10)})})}addPriorityOptions(e,t,n){n.priorityManager.getPrioritiesByWeight().forEach(i=>{let s=Vk(i.value);if(!s)return;let o=Vk(i.label,s);e.addItem(l=>{let c=o;l.setIcon("star"),s===t.priority&&(c=this.t("contextMenus.task.prioritySelected",{label:o})),l.setTitle(c),l.onClick(async()=>{var d,u;try{await n.updateTaskProperty(t,"priority",s),(u=(d=this.options).onUpdate)==null||u.call(d)}catch(p){let m=p instanceof Error?p.message:String(p);Sr.error("Error updating task priority:",{category:"persistence",operation:"updating-task-priority",details:{taskPath:t.path},error:m}),new Le.Notice(`Failed to update task priority: ${m}`)}}),i.color&&window.setTimeout(()=>{let d=ZTe(l);if(d){let u=d.querySelector(".menu-item-icon");u&&(u.style.color=i.color)}},10)})})}addDateOptions(e,t,n,a,i={}){let o=new Bl({currentValue:t,onSelect:u=>{n(u)},onCustomDate:a,plugin:this.options.plugin,app:this.options.plugin.app}).getDateOptions(),l=o.filter(u=>u.category==="increment");l.length>0&&(l.forEach(u=>{e.addItem(p=>{u.icon&&p.setIcon(u.icon),p.setTitle(u.label),p.onClick(()=>{n(u.value)})})}),e.addSeparator()),o.filter(u=>u.category==="basic").forEach(u=>{e.addItem(p=>{u.icon&&p.setIcon(u.icon);let f=u.value===t?this.t("contextMenus.date.selected",{label:u.label}):u.label;p.setTitle(f),p.onClick(()=>{n(u.value)})})});let d=o.filter(u=>u.category==="weekday");d.length>0&&(e.addSeparator(),e.addItem(u=>{u.setTitle(this.t("contextMenus.date.weekdaysLabel")),u.setIcon("calendar");let p=fa(u);d.forEach(m=>{p.addItem(f=>{let g=m.value===t?this.t("contextMenus.date.selected",{label:m.label}):m.label;f.setTitle(g),f.setIcon("calendar"),f.onClick(()=>{n(m.value)})})})})),e.addSeparator(),e.addItem(u=>{var p;u.setTitle((p=i.pickDateTitle)!=null?p:this.t("contextMenus.date.pickDateTime")),u.setIcon("calendar"),u.onClick(a)}),t&&e.addItem(u=>{u.setTitle(this.t("contextMenus.date.clearDate")),u.setIcon("x"),u.onClick(()=>{n(null)})})}addCustomDateFieldMenuItems(e,t){let n=this.getCustomDateFields(t);n.length!==0&&this.menu.addItem(a=>{a.setTitle(this.t("contextMenus.task.customDates")),a.setIcon("calendar-days");let i=fa(a);n.forEach(s=>{i.addItem(o=>{let l=this.getCustomFieldLabel(s);o.setTitle(l),o.setIcon("calendar");let c=fa(o),d=this.getCustomDateFieldValue(e,s);this.addDateOptions(c,d,async u=>{await this.updateCustomDateField(e,t,s,u)},()=>{this.openCustomDateFieldPicker(e,t,s,d)},{pickDateTitle:this.t("modals.task.userFields.pickDate",{field:l})})})})})}getCustomDateFields(e){return(e.settings.userFields||[]).filter(t=>t.type==="date"&&t.key.trim().length>0)}getCustomFieldLabel(e){return e.displayName.trim()||e.key||e.id}getCustomDateFieldValue(e,t){var i,s;let a=(s=e[t.key])!=null?s:(i=e.customProperties)==null?void 0:i[t.key];return typeof a=="string"&&a.trim().length>0?a:void 0}openCustomDateFieldPicker(e,t,n,a){this.menu.hide();let i=this.getCustomFieldLabel(n);new $l(t.app,{currentDate:a||null,title:this.t("modals.task.userFields.pickDate",{field:i}),showTime:!1,plugin:t,onSelect:o=>{this.updateCustomDateField(e,t,n,o)}}).open()}async updateCustomDateField(e,t,n,a){var s,o;let i=this.getCustomFieldLabel(n);try{let l=await t.updateTaskProperty(e,n.key,a||void 0);Object.assign(e,l),(o=(s=this.options).onUpdate)==null||o.call(s)}catch(l){let c=l instanceof Error?l.message:String(l);Sr.error("Error updating custom date field:",{category:"persistence",operation:"updating-custom-date-field",details:{taskPath:e.path,field:n.key},error:c}),new Le.Notice(this.t("contextMenus.task.notices.updateCustomDateFailure",{field:i,message:c}))}}addRecurrenceOptions(e,t,n,a){let i=new Date,s=["SU","MO","TU","WE","TH","FR","SA"],o=[a.i18n.translate("common.months.january"),a.i18n.translate("common.months.february"),a.i18n.translate("common.months.march"),a.i18n.translate("common.months.april"),a.i18n.translate("common.months.may"),a.i18n.translate("common.months.june"),a.i18n.translate("common.months.july"),a.i18n.translate("common.months.august"),a.i18n.translate("common.months.september"),a.i18n.translate("common.months.october"),a.i18n.translate("common.months.november"),a.i18n.translate("common.months.december")],l=s[i.getDay()],c=i.getDate(),d=i.getMonth()+1,u=o[i.getMonth()],p=pE(a),m=i.toLocaleDateString(p||void 0,{weekday:"long"}),f=b=>{let k=b.getFullYear(),w=String(b.getMonth()+1).padStart(2,"0"),S=String(b.getDate()).padStart(2,"0");return`${k}${w}${S}`},h=b=>{let k=["th","st","nd","rd"],w=b%100;return b+(k[(w-20)%10]||k[w]||k[0])},g=f(i);[{label:this.t("modals.task.recurrence.daily"),value:`DTSTART:${g};FREQ=DAILY;INTERVAL=1`,icon:"calendar-days"},{label:this.t("modals.task.recurrence.weeklyOn",{days:m}),value:`DTSTART:${g};FREQ=WEEKLY;INTERVAL=1;BYDAY=${l}`,icon:"calendar"},{label:this.t("modals.task.recurrence.everyTwoWeeks"),value:`DTSTART:${g};FREQ=WEEKLY;INTERVAL=2;BYDAY=${l}`,icon:"calendar"},{label:this.t("modals.task.recurrence.monthlyOnOrdinal",{ordinal:h(c)}),value:`DTSTART:${g};FREQ=MONTHLY;INTERVAL=1;BYMONTHDAY=${c}`,icon:"calendar-range"},{label:this.t("modals.task.recurrence.everyThreeMonths"),value:`DTSTART:${g};FREQ=MONTHLY;INTERVAL=3;BYMONTHDAY=${c}`,icon:"calendar-range"},{label:this.t("modals.task.recurrence.yearlyOn",{month:u,day:h(c)}),value:`DTSTART:${g};FREQ=YEARLY;INTERVAL=1;BYMONTH=${d};BYMONTHDAY=${c}`,icon:"calendar-clock"},{label:this.t("modals.task.recurrence.weekdays"),value:GI(g,p),icon:"briefcase"}].forEach(b=>{e.addItem(k=>{let w=b.value===t;k.setTitle(w?`\u2713 ${b.label}`:b.label),k.setIcon(b.icon),k.onClick(()=>{n(b.value)})})}),e.addSeparator(),e.addItem(b=>{b.setTitle(this.t("contextMenus.task.customRecurrence")),b.setIcon("settings"),b.onClick(()=>{new Vl({currentValue:typeof t=="string"?t:void 0,currentAnchor:this.options.task.recurrence_anchor||"scheduled",scheduledDate:this.options.task.scheduled,onSelect:w=>{n(w)},app:a.app,plugin:a}).showCustomRecurrenceModal()})}),t&&e.addItem(b=>{b.setTitle(this.t("contextMenus.task.clearRecurrence")),b.setIcon("x"),b.onClick(()=>{n(null)})})}addOccurrencePolicyOptions(e,t,n){let a=t.occurrence_materialization||"manual",i=t.occurrence_next_trigger||"completion";e.addSeparator(),e.addItem(s=>{s.setTitle("Occurrence notes"),s.setIcon("files");let o=fa(s),l=(d,u,p)=>{o.addItem(m=>{m.setTitle(a===d?`\u2713 ${u}`:u),m.setIcon(p),m.onClick(async()=>{await this.updateOccurrenceMaterializationPolicy(t,n,d)})})};if(l("manual","Create manually","file-plus"),l("on_completion","Create next after completion","check-circle"),o.addItem(d=>{d.setTitle(a==="rolling"?"\u2713 Rolling window (not automated yet)":"Rolling window (not automated yet)"),d.setIcon("calendar-range"),d.setDisabled(!0)}),a!=="on_completion")return;o.addSeparator(),[{value:"completion",label:"Completion only",icon:"check"},{value:"completion_or_skip",label:"Completion or skip",icon:"check-check"}].forEach(d=>{o.addItem(u=>{u.setTitle(i===d.value?`\u2713 ${d.label}`:d.label),u.setIcon(d.icon),u.onClick(async()=>{await this.updateOccurrenceNextTrigger(t,n,d.value)})})})})}async updateOccurrenceMaterializationPolicy(e,t,n){var a,i;try{let s=await t.updateTaskProperty(e,"occurrence_materialization",n==="manual"?void 0:n);if(Object.assign(e,s),n!=="on_completion"&&e.occurrence_next_trigger){let o=await t.updateTaskProperty(e,"occurrence_next_trigger",void 0);Object.assign(e,o)}(i=(a=this.options).onUpdate)==null||i.call(a),new Le.Notice(n==="manual"?"Occurrence notes set to manual creation":"Occurrence notes will be created after completion")}catch(s){let o=s instanceof Error?s.message:String(s);Sr.error("Error updating occurrence materialization policy:",{category:"persistence",operation:"updating-occurrence-materialization-policy",details:{taskPath:e.path,mode:n},error:o}),new Le.Notice(`Failed to update occurrence notes setting: ${o}`)}}async updateOccurrenceNextTrigger(e,t,n){var a,i;try{let s=await t.updateTaskProperty(e,"occurrence_next_trigger",n==="completion"?void 0:n);Object.assign(e,s),(i=(a=this.options).onUpdate)==null||i.call(a),new Le.Notice(n==="completion"?"Next occurrence note will be created after completion":"Next occurrence note will be created after completion or skip")}catch(s){let o=s instanceof Error?s.message:String(s);Sr.error("Error updating occurrence next trigger:",{category:"persistence",operation:"updating-occurrence-next-trigger",details:{taskPath:e.path,trigger:n},error:o}),new Le.Notice(`Failed to update occurrence trigger: ${o}`)}}getStatusOptions(e,t){let n=t.settings.customStatuses,a=[];return n&&n.length>0&&[...n].sort((s,o)=>s.order-o.order).forEach(s=>{let o=Vk(s.value);o&&a.push({label:Vk(s.label,o),value:o,color:typeof s.color=="string"?s.color:void 0,icon:typeof s.icon=="string"?s.icon:void 0})}),a}addQuickRemindersSection(e,t,n,a,i){if(!(a==="due"?t.due:t.scheduled)){e.addItem(o=>{o.setTitle(i),o.setIcon("bell"),o.setDisabled(!0)});return}e.addItem(o=>{o.setTitle(i),o.setIcon("bell");let l=fa(o);[{labelKey:"contextMenus.task.quickReminders.atTime",offset:"PT0M"},{labelKey:"contextMenus.task.quickReminders.fiveMinutes",offset:"-PT5M"},{labelKey:"contextMenus.task.quickReminders.fifteenMinutes",offset:"-PT15M"},{labelKey:"contextMenus.task.quickReminders.oneHour",offset:"-PT1H"},{labelKey:"contextMenus.task.quickReminders.oneDay",offset:"-P1D"}].forEach(d=>{l.addItem(u=>{let p=this.t(d.labelKey);u.setTitle(p),u.onClick(()=>{this.addQuickReminder(t,n,a,d.offset,p)})})})})}async addQuickReminder(e,t,n,a,i){var l,c;let s={id:`rem_${Date.now()}`,type:"relative",relatedTo:n,offset:a,description:i},o=[...e.reminders||[],s];try{await t.updateTaskProperty(e,"reminders",o),(c=(l=this.options).onUpdate)==null||c.call(l)}catch(d){Sr.error("Error adding reminder:",{category:"persistence",operation:"adding-reminder",error:d}),new Le.Notice("Failed to add reminder")}}show(e){var t,n;(n=(t=e.target)==null?void 0:t.instanceOf)!=null&&n.call(t,HTMLElement)&&(this.targetDoc=e.target.ownerDocument),this.menu.showAtMouseEvent(e)}showAtElement(e){this.targetDoc=e.ownerDocument,this.menu.showAtPosition({x:e.getBoundingClientRect().left,y:e.getBoundingClientRect().bottom+4})}}});function est(r,e,t){return r.i18n.translate(`ui.taskCard.${e}`,t)}function tst(r){return N({tag:"TaskCard/ContextMenu",isDebugEnabled:()=>r.settings.enableDebugLogging})}function JTe(r){let{mainRow:e,taskPath:t,plugin:n,targetDate:a,promoteOccurrenceControls:i}=r,s=est(n,"taskOptions"),o=e.createDiv({cls:"task-card__context-menu",attr:{"aria-label":s}});return(0,Kc.setIcon)(o,"ellipsis-vertical"),(0,Kc.setTooltip)(o,s,{placement:"top"}),Hl(o),o.addEventListener("click",l=>{if(l.stopPropagation(),l.preventDefault(),i===void 0){qo(l,t,n,a);return}qo(l,t,n,a,{promoteOccurrenceControls:i})}),o}async function qo(r,e,t,n,a={}){let i=t.app.vault.getAbstractFileByPath(e),s=()=>{i instanceof Kc.TFile&&rst(r,i,t)};try{let o=await t.cacheManager.getTaskInfo(e);if(!o){s();return}new Yl({task:o,plugin:t,targetDate:n,occurrenceDate:a.occurrenceDate,promoteOccurrenceControls:a.promoteOccurrenceControls,onUpdate:()=>{t.app.workspace.trigger("tasknotes:refresh-views")}}).show(r)}catch(o){let l=o instanceof Error?o.message:String(o);tst(t).error("Error creating context menu",{category:"internal",operation:"create-context-menu",details:{taskPath:e,errorMessage:l},error:o}),new Kc.Notice(`Failed to create context menu: ${l}`),s()}}function rst(r,e,t){var i,s;let n=new Kc.Menu,a=!1;try{t.app.workspace.trigger("file-menu",n,e,"tasknotes-bases-view"),a=((s=(i=n.items)==null?void 0:i.length)!=null?s:0)>0}catch(o){a=!1}a||(n.addItem(o=>{o.setTitle("Open"),o.setIcon("file-text"),o.onClick(()=>{t.app.workspace.getLeaf(!1).openFile(e)})}),n.addItem(o=>{o.setTitle("Open in new tab"),o.setIcon("external-link"),o.onClick(()=>{t.app.workspace.openLinkText(e.path,"",!0)})})),n.showAtMouseEvent(r)}var Kc,Cq=y(()=>{Kc=require("obsidian");TE();K();cE()});function nst(r,e){return J(e).trim()||J(r.title)}function XTe(r,e,t,n){r.empty();let a={metadataCache:t.app.metadataCache,workspace:t.app.workspace,sourcePath:e.path};Uc(r,nst(e,n),a)}function Eq(r,e){let t=r.querySelector(".task-card__title"),n=r.querySelector(".task-card__title-text");t==null||t.classList.toggle("completed",e),n==null||n.classList.toggle("completed",e)}function ewe(r){let{contentContainer:e,layout:t,task:n,plugin:a,displayText:i,isCompleted:s=!1}=r,o=e.createEl(t==="inline"?"span":"div",{cls:"task-card__title"}),l=o.createSpan({cls:"task-card__title-text"});return XTe(l,n,a,i),o.classList.toggle("completed",s),l.classList.toggle("completed",s),{titleEl:o,titleTextEl:l}}function twe(r){let{card:e,task:t,plugin:n,displayText:a,isCompleted:i=!1}=r,s=e.querySelector(".task-card__title-text");s&&XTe(s,t,n,a),Eq(e,i)}var Dq=y(()=>{kr();vm()});function ast(r,e,t,n,a){var o;r.classList.toggle("task-card--completed",n),r.classList.toggle("task-card--completed-strikethrough",n&&tq(t)),r.classList.toggle("task-card--archived",!!e.archived),r.classList.toggle("task-card--actively-tracked",t.getActiveTimeSession(e)!==null),r.classList.toggle("task-card--recurring",!!e.recurrence),r.classList.toggle("task-card--chevron-left",((o=t.settings)==null?void 0:o.subtaskChevronPosition)==="left");let i=eq(e,t);r.classList.toggle("task-card--has-details",i),r.dataset.hasDetails=i?"true":"false",Pq(r,"task-card--priority-"),e.priority&&r.classList.add(`task-card--priority-${Cu(e.priority)}`),Pq(r,"task-card--status-"),a&&r.classList.add(`task-card--status-${Cu(a)}`),Pq(r,"task-card--project-");let s=rq(e);r.classList.toggle("task-card--has-projects",s.length>0),s.forEach(l=>r.classList.add(l)),r.dataset.status=a,Eq(r,n)}function Mq({card:r,statusDot:e,plugin:t,updatedTask:n,effectiveStatus:a,isCompleted:i}){XI(e,t.statusManager.getStatusConfig(a)),JI(r,a,t);let s=r.querySelector(".task-card__checkbox");s&&(s.checked=i),ast(r,n,t,i,a)}function Pq(r,e){for(let t of Array.from(r.classList))t.startsWith(e)&&r.classList.remove(t)}var rwe=y(()=>{Ct();aq();XV();Dq()});async function nwe(r,e){return new Promise((t,n)=>{new Aq(e.app,r,async()=>{try{await e.taskService.deleteTask(r),t()}catch(i){n(i instanceof Error?i:new Error(String(i)))}}).open()})}var wE,ist,Aq,awe=y(()=>{wE=require("obsidian");K();ist=N({tag:"Ui/TaskCardDeletion"}),Aq=class extends wE.Modal{constructor(e,t,n){super(e),this.task=t,this.onConfirm=n}onOpen(){let{contentEl:e}=this;e.empty(),e.createEl("h2",{text:"Delete task"});let t=e.createEl("p");t.appendText('Are you sure you want to delete the task "'),t.createEl("strong",{text:this.task.title}),t.appendText('"?'),e.createEl("p",{cls:"mod-warning",text:"This action cannot be undone. The task file will be permanently deleted."});let n=e.createDiv({cls:"modal-button-container"});n.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),n.classList.add("tn-static-display-flex-75816cae"),n.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-0-5rem-ce2fca4d","tn-static-gap-12px-ed7b3d87","tn-static-gap-6px-f0abc1db","tn-static-gap-8px-33fcd4c3"),n.classList.add("tn-static-gap-10px-f3d7ce77"),n.classList.remove("tn-static-justify-content-center-03c4bb6f","tn-static-justify-content-space-between-a562f4fd"),n.classList.add("tn-static-justify-content-flex-end-455f8cca"),n.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),n.classList.add("tn-static-margin-top-20px-a26bda7d");let a=n.createEl("button",{text:"Cancel"});a.addEventListener("click",()=>{this.close()});let i=n.createEl("button",{text:"Delete",cls:"mod-warning"});i.classList.remove("tn-static-background-color-var-background-mo-94b219f0","tn-static-background-color-var-background-se-9087a23e","tn-static-background-color-var-color-base-40-ef5f175e","tn-static-background-color-var-text-accent-a954c70f"),i.classList.add("tn-static-background-color-var-color-red-134bc721"),i.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),i.classList.add("tn-static-color-white-0a43e56a"),i.addEventListener("click",()=>{(async()=>{try{await this.onConfirm(),this.close(),new wE.Notice("Task deleted successfully")}catch(s){let o=s instanceof Error?s.message:String(s);new wE.Notice(`Failed to delete task: ${o}`),ist.error("Error in delete confirmation:",{category:"persistence",operation:"delete-confirmation",error:s})}})()}),a.focus()}onClose(){let{contentEl:e}=this;e.empty()}}});var qk={};at(qk,{DEFAULT_TASK_CARD_OPTIONS:()=>_q,cleanupTaskCard:()=>lst,createTaskCard:()=>Dr,refreshParentTaskSubtasks:()=>cst,showDeleteConfirmationModal:()=>nwe,showTaskContextMenu:()=>qo,toggleBlockedByTasks:()=>lwe,toggleBlockingTasks:()=>owe,toggleSubtasks:()=>swe,updateTaskCard:()=>ost});function sst(r){var e;return(e=r._taskCardOptions)!=null?e:{}}function hN(r){return{plugin:r,getRelationshipOptions:sst,renderTaskCard:(e,t)=>Dr(e,r,void 0,t)}}function iwe(r){return{toggleSubtasks:(e,t,n)=>swe(e,t,r,n),toggleBlockingTasks:(e,t,n)=>owe(e,t,r,n),toggleBlockedByTasks:(e,t,n)=>lwe(e,t,r,n)}}function Dr(r,e,t,n={}){let a={..._q,...n},i=nq(r,e,a),{targetDate:s,effectiveStatus:o,layout:l,isCompleted:c,hasDetails:d}=i,u=activeWindow.createEl(l==="inline"?"span":"div"),p=u;p._taskPath=r.path,p._taskCardOptions=a,u.className=i.cardClasses.join(" "),u.dataset.taskPath=r.path,u.dataset.key=r.path,u.dataset.status=o,r.priority?u.dataset.priority=r.priority:delete u.dataset.priority,u.dataset.hasDetails=d?"true":"false";let m=u.createEl(l==="inline"?"span":"div",{cls:"task-card__main-row"});ZV(u,r,e),QV({mainRow:m,card:u,task:r,plugin:e,effectiveStatus:o,visibleProperties:t,hideStatusIndicator:a.hideStatusIndicator,onClick:RV({task:r,plugin:e,targetDate:s,updateStatusVisuals:(C,E,D)=>{let P=u.querySelector(".task-card__status-dot");P&&Mq({card:u,statusDot:P,plugin:e,updatedTask:C,effectiveStatus:E,isCompleted:D})}})}),JV({mainRow:m,task:r,plugin:e,visibleProperties:t,onClick:FV(r,e)});let f=m.createEl(l==="inline"?"span":"div",{cls:"task-card__content"}),h=l!=="inline"?m.createDiv({cls:"task-card__badges"}):null,g=iwe(e);bTe({card:u,badgesContainer:h,task:r,plugin:e,hasDetails:d,propertyOptions:a,handlers:g}),JTe({mainRow:m,taskPath:r.path,plugin:e,targetDate:s,promoteOccurrenceControls:a.promoteOccurrenceControlsInContextMenu}),ewe({contentContainer:f,layout:l,task:r,plugin:e,displayText:a.displayText,isCompleted:c});let v=f.createEl(l==="inline"?"span":"div",{cls:"task-card__metadata"});GV({metadataLine:v,card:u,task:r,plugin:e,visibleProperties:t,propertyOptions:a,handlers:g});let{clickHandler:b,auxclickHandler:k,dblclickHandler:w,contextmenuHandler:S}=zfe({task:r,plugin:e,contextMenuHandler:C=>{let E=u.dataset.taskPath;if(E){if(a.promoteOccurrenceControlsInContextMenu===void 0){qo(C,E,e,s);return}qo(C,E,e,s,{promoteOccurrenceControls:a.promoteOccurrenceControlsInContextMenu})}},createBatchContextMenu:(C,E)=>new xk({plugin:e,selectedPaths:C,onUpdate:E})});return u.addEventListener("click",b),u.addEventListener("auxclick",k),u.addEventListener("dblclick",w),u.addEventListener("contextmenu",S),a.enableHoverPreview&&u.addEventListener("mouseover",jfe(r,e)),u}function ost(r,e,t,n,a={}){let i={..._q,...a},s=nq(e,t,i),{targetDate:o,effectiveStatus:l,isCompleted:c,hasDetails:d}=s;r.className=s.cardClasses.join(" "),r.dataset.status=l,e.priority?r.dataset.priority=e.priority:delete r.dataset.priority,r.dataset.hasDetails=d?"true":"false";let u=r.querySelector(".task-card__main-row");ZV(r,e,t);let p=r.querySelector(".task-card__checkbox");p&&(p.checked=t.statusManager.isCompletedStatus(l)),ETe({mainRow:u,card:r,task:e,plugin:t,effectiveStatus:l,visibleProperties:n,hideStatusIndicator:i.hideStatusIndicator,onClick:RV({task:e,plugin:t,targetDate:o,updateStatusVisuals:(g,v,b)=>{let k=r.querySelector(".task-card__status-dot");k&&Mq({card:r,statusDot:k,plugin:t,updatedTask:g,effectiveStatus:v,isCompleted:b})}})}),PTe({mainRow:u,task:e,plugin:t,visibleProperties:n,onClick:FV(e,t)});let m=iwe(t);TTe({card:r,mainRow:u,task:e,plugin:t,hasDetails:d,propertyOptions:i,handlers:m}),twe({card:r,task:e,plugin:t,displayText:i.displayText,isCompleted:c});let f=r.querySelector(".task-card__badge--blocked");f&&f.remove();let h=r.querySelector(".task-card__metadata");h&&GV({metadataLine:h,card:r,task:e,plugin:t,visibleProperties:n,propertyOptions:i,handlers:m})}function lst(r){dTe(r)}async function swe(r,e,t,n){await UV(hN(t),r,e,n)}async function owe(r,e,t,n){await pTe(hN(t),r,e,n)}async function lwe(r,e,t,n){await mTe(hN(t),r,e,n)}async function cst(r,e,t){await fTe(hN(e),r,t)}var _q,mi=y(()=>{nU();vV();wTe();HV();zV();XV();aq();YV();Cq();Dq();rwe();awe();Cq();_q={layout:"default",showSecondaryBadges:!0,enableHoverPreview:!0}});function Iq({plugin:r,sourcePath:e},t){return{dependency:{uid:_o(r.app,e,t.path,r.settings.useFrontmatterMarkdownLinks),reltype:ss},path:t.path,name:t.basename}}function cwe({plugin:r,sourcePath:e},t){var s;let n=os(t);if(!n){let o=typeof t=="object"&&t&&"uid"in t&&typeof t.uid=="string"?t.uid:J(t);return{dependency:{uid:o,reltype:ss},name:o,unresolved:!0}}let a=Ol(r.app,e,n);if(a){let o=((s=a.file)==null?void 0:s.basename)||a.path.split("/").pop()||n.uid;return{dependency:n,path:a.path,name:o}}let i=n.uid.replace(/^\[\[/,"").replace(/\]\]$/,"");return{dependency:n,name:i||t.uid,unresolved:!0}}function dwe({plugin:r,sourcePath:e},t){let n=r.app.vault.getAbstractFileByPath(t);if(n instanceof SE.TFile)return Iq({plugin:r,sourcePath:e},n);let i=(t.split("/").pop()||t).replace(/\.md$/i,"");return{dependency:{uid:`[[${i}]]`,reltype:ss},path:t,name:i,unresolved:!0}}function dst(r,e){return r.some(t=>t.dependency.uid===e.dependency.uid||!!e.path&&t.path===e.path)}function Nq(r,e){return dst(r,e)?[...r]:[...r,e]}function Rq(r,e){return r.filter((t,n)=>n!==e)}async function uwe({plugin:r,listEl:e,items:t,linkServices:n,translate:a,onRemove:i}){if(e&&(e.empty(),t.length!==0))for(let[s,o]of t.entries()){let l=!!(o.path&&!o.unresolved),c=e.createDiv({cls:l?"task-project-item task-project-item--task-card":"task-project-item"});o.unresolved&&(c.addClass("task-project-item--unresolved"),(0,SE.setTooltip)(c,a("contextMenus.task.dependencies.notices.unresolved",{entries:o.dependency.uid}),{placement:"top"}));let d=c.createDiv({cls:l?"task-project-card-host":"task-project-info"});o.path&&!o.unresolved?await ust(r,d,o,n):pst(d,o);let u=c.createEl("button",{cls:"task-project-remove",text:"\xD7"});(0,SE.setTooltip)(u,a("modals.task.dependencies.removeTaskTooltip"),{placement:"top"}),u.addEventListener("click",p=>{p.preventDefault(),p.stopPropagation(),i(s)})}}async function ust(r,e,t,n){if(!t.path)return;let a=await r.cacheManager.getCachedTaskInfo(t.path);if(a){let s=Dr(a,r,void 0,{layout:"default",showSecondaryBadges:!1,enableHoverPreview:!1});e.appendChild(s);return}let i=e.createSpan({cls:"task-project-name clickable-dependency"});Ul(i,t.path,t.name,n,{cssClass:"task-dependency-link internal-link",hoverSource:"tasknotes-dependency-link",showErrorNotices:!0}),t.path!==t.name&&e.createDiv({cls:"task-project-path",text:t.path})}function pst(r,e){var a;let t=r.createSpan({cls:"task-project-name"});t.textContent=e.name;let n=(a=e.path)!=null?a:e.dependency.uid;r.createDiv({cls:"task-project-path",text:n})}function pwe(r,e,t){return _o(r.app,e,t.path,r.settings.useFrontmatterMarkdownLinks)}function mwe({plugin:r,sourcePath:e,allTasks:t,existingItems:n,currentPath:a}){let i=new Set(n.map(s=>s.dependency.uid));return t.filter(s=>{if(a&&s.path===a)return!1;let o=pwe(r,e,s);return!i.has(o)})}function fwe({plugin:r,sourcePath:e,allTasks:t,existingItems:n,currentPath:a}){let i=new Set(n.map(o=>o.path).filter(o=>typeof o=="string")),s=new Set(n.map(o=>o.dependency.uid));return t.filter(o=>{if(a&&o.path===a||i.has(o.path))return!1;let l=pwe(r,e,o);return!s.has(l)})}var SE,hwe=y(()=>{SE=require("obsidian");Io();vm();mi();kr()});function mst(r){return parseInt(r)||0}function gwe(r,e){let t=null,n=new gN.Setting(e.container);if(n.settingEl.addClass("tn-task-modal__wide-text-setting"),n.setName(r.translate("modals.task.contextsLabel")).addText(a=>{a.setPlaceholder(r.translate("modals.task.contextsPlaceholder")).setValue(e.value).onChange(e.onChange),t=a.inputEl,r.attachMobileKeyboardScrollGuard(a.inputEl),new II(r.app,a.inputEl,r.plugin)}),!t)throw new Error("Failed to create contexts input");return t}function ywe(r,e){let t=null,n=new gN.Setting(e.container);if(n.settingEl.addClass("tn-task-modal__wide-text-setting"),n.setName(r.translate("modals.task.tagsLabel")).addText(a=>{a.setPlaceholder(r.translate("modals.task.tagsPlaceholder")).setValue(e.value).onChange(i=>{e.onChange(za(i))}),t=a.inputEl,r.attachMobileKeyboardScrollGuard(a.inputEl),new hm(r.app,a.inputEl,r.plugin)}),!t)throw new Error("Failed to create tags input");return t}function vwe(r,e){let t=null;if(new gN.Setting(e.container).setName(r.translate("modals.task.timeEstimateLabel")).addText(n=>{n.setPlaceholder(r.translate("modals.task.timeEstimatePlaceholder")).setValue(e.value.toString()).onChange(a=>{e.onChange(mst(a))}),t=n.inputEl,r.attachMobileKeyboardScrollGuard(n.inputEl)}),!t)throw new Error("Failed to create time estimate input");return t}var gN,kwe=y(()=>{gN=require("obsidian");Ct();tE()});function Dm(r){return r==null?"":typeof r=="string"?r:typeof r=="number"||typeof r=="boolean"?String(r):Array.isArray(r)?r.map(Dm).join(", "):""}function Twe(r){return Array.isArray(r)?r.map(Dm).join(", "):Dm(r)}function Fq(r){return r.split(",").map(e=>e.trim()).filter(e=>e.length>0)}function wwe(r){let e=Fq(r);return e.length>0?e:null}function Oq(r){let e=parseFloat(r);return isNaN(e)?null:e}function yN(r){return r||null}function Lq(r){return r===!0||r==="true"}function Swe(r){let e={};for(let[t,n]of Object.entries(r))n!=null&&n!==""&&(e[t]=n);return e}function xwe(r,e,t){let n={};for(let a of t){if(!(a!=null&&a.key))continue;let i=r[a.key],s=e[a.key];fst(i,s)&&(n[a.key]=i==null||i===""?null:i)}return n}function fst(r,e){let t=bwe(r),n=bwe(e);return Array.isArray(t)||Array.isArray(n)?JSON.stringify(t)!==JSON.stringify(n):t!==n}function bwe(r){return r==null||r===""?null:r}var vN=y(()=>{});function Cwe(r,e){let{container:t,field:n,values:a,inputRefs:i,toggleRefs:s,onValueChange:o}=e,l=new Hu.Setting(t).setName(n.displayName);switch(n.type){case"text":case"list":{l.addText(c=>{let d=a[n.key],u=Array.isArray(d)?d.map(Dm).join(", "):Dm(d);c.setValue(u).onChange(p=>{o(n.key,n.type==="list"?Fq(p):p)}),pg(r,i,n,c.inputEl)});break}case"number":{l.addText(c=>{let d=a[n.key];c.setValue(Dm(d)).onChange(u=>{o(n.key,Oq(u))}),c.inputEl.type="number",pg(r,i,n,c.inputEl,{attachSuggest:!1})});break}case"date":{l.addText(c=>{let d=a[n.key];c.setValue(Dm(d)).onChange(u=>{o(n.key,u)}),c.inputEl.type="date",zc(c.inputEl,{onCommit:u=>{o(n.key,u)}}),pg(r,i,n,c.inputEl,{attachSuggest:!1})});break}case"boolean":{l.addToggle(c=>{let d=a[n.key];c.setValue(d===!0).onChange(u=>{o(n.key,u)}),s.set(n.key,c)});break}}}function Ewe(r,e){let{container:t,fields:n}=e;n.length>0&&t.createDiv({cls:"tn-task-modal__user-fields"}).createDiv({text:r.translate("modals.task.customFieldsLabel"),cls:"tn-task-modal__section-label"});for(let a of n)!a||!a.key||!a.displayName||hst(r,e,a)}function Dwe(r){for(let e of r.fields){let t=r.values[e.key],n=r.inputRefs.get(e.key);n&&(n.value=Twe(t));let a=r.toggleRefs.get(e.key);a&&a.setValue(Lq(t))}}function hst(r,e,t){let n=e.values[t.key]||"";switch(t.type){case"boolean":new Hu.Setting(e.container).setName(t.displayName).addToggle(a=>{a.setValue(Lq(n)).onChange(i=>{e.onValueChange(t.key,i)}),e.toggleRefs.set(t.key,a)});break;case"number":new Hu.Setting(e.container).setName(t.displayName).addText(a=>{a.setPlaceholder(r.translate("modals.task.userFields.numberPlaceholder")).setValue(n?J(n):"").onChange(i=>{e.onValueChange(t.key,Oq(i))}),pg(r,e.inputRefs,t,a.inputEl,{attachSuggest:!1})});break;case"date":gst(r,e,t,n);break;case"list":new Hu.Setting(e.container).setName(t.displayName).addText(a=>{var o;let i=Array.isArray(n)?n.join(", "):n?J(n):"";a.setPlaceholder(r.translate("modals.task.userFields.listPlaceholder")).setValue(i).onChange(l=>{e.onValueChange(t.key,wwe(l))}),pg(r,e.inputRefs,t,a.inputEl);let s=e.container.querySelector(".user-field-link-preview");s&&((o=s.detach)==null||o.call(s))});break;case"text":default:new Hu.Setting(e.container).setName(t.displayName).addText(a=>{a.setPlaceholder(r.translate("modals.task.userFields.textPlaceholder",{field:t.displayName})).setValue(n?J(n):"").onChange(i=>{e.onValueChange(t.key,yN(i))}),pg(r,e.inputRefs,t,a.inputEl)});break}}function gst(r,e,t,n){new Hu.Setting(e.container).setName(t.displayName).addText(a=>{a.setPlaceholder(r.translate("modals.task.userFields.datePlaceholder")).setValue(n?J(n):"").onChange(o=>{e.onValueChange(t.key,yN(o))}),pg(r,e.inputRefs,t,a.inputEl,{attachSuggest:!1});let i=a.inputEl.parentElement;i&&i.addClass("tn-date-control"),zc(a.inputEl,{onCommit:o=>{e.onValueChange(t.key,o)}});let s=i==null?void 0:i.createEl("button",{cls:"user-field-date-picker-btn"});s&&(s.setAttribute("aria-label",r.translate("modals.task.userFields.pickDate",{field:t.displayName})),(0,Hu.setIcon)(s,"calendar"),s.addEventListener("click",o=>{o.preventDefault(),new $l(r.app,{currentDate:yst(a)||null,title:r.translate("modals.task.userFields.pickDate",{field:t.displayName}),showTime:!1,plugin:r.plugin,onSelect:c=>{a.setValue(c||""),e.onValueChange(t.key,yN(c))}}).open()}))})}function pg(r,e,t,n,a={}){e.set(t.key,n),r.attachMobileKeyboardScrollGuard(n),a.attachSuggest!==!1&&new NI(r.app,n,r.plugin,t)}function yst(r){return typeof r.getValue=="function"?r.getValue():r.inputEl.value}var Hu,Pwe=y(()=>{Hu=require("obsidian");kk();JC();kr();tE();vN()});function kN(r,e){var i;let t=e.container.createDiv("modal-button-container tn-task-modal__button-bar");for(let s of(i=e.leadingButtons)!=null?i:[])t.createEl("button",{cls:s.className,text:s.text}).addEventListener("click",s.onClick);let n=t.createEl("button",{cls:"mod-cta",text:r.translate("modals.task.buttons.save")});return n.addEventListener("click",()=>{vst(n,e.onSave,e.onSaved)}),t.createEl("button",{text:r.translate("common.cancel")}).addEventListener("click",e.onCancel),t}async function vst(r,e,t){r.disabled=!0;try{await e(),t()}finally{r.disabled=!1}}var zq=y(()=>{});function jq(r,e){let t=r.createDiv("action-icon");t.setAttribute("aria-label",e.tooltip),t.setAttribute("data-initial-tooltip",e.tooltip),t.setAttribute("tabindex","0"),t.setAttribute("role","button"),e.dataType&&t.setAttribute("data-type",e.dataType),(0,bN.setTooltip)(t,e.tooltip,{placement:"top"});let n=t.createSpan("icon");(0,bN.setIcon)(n,e.iconName);let a=i=>{i.preventDefault(),i.stopPropagation(),e.onClick(t,i)};return t.addEventListener("click",a),t.addEventListener("keydown",i=>{(i.key==="Enter"||i.key===" ")&&a(i)}),t}function Mwe(r,e){return e.map(t=>jq(r,t))}var bN,Awe=y(()=>{bN=require("obsidian")});function Iwe(r,e,t){r&&(_we(r,e,"due-date",t.dueDate,{activeTooltipKey:"modals.task.tooltips.dueValue",defaultTooltipKey:"modals.task.actions.due"}),_we(r,e,"scheduled-date",t.scheduledDate,{activeTooltipKey:"modals.task.tooltips.scheduledValue",defaultTooltipKey:"modals.task.actions.scheduled"}),bst(r,e,t),Tst(r,e,t),wst(r,e,t),Sst(r,e,t.reminderCount))}function _we(r,e,t,n,a){let i=xE(r,t);if(i){if(n){i.classList.add("has-value"),(0,Vu.setTooltip)(i,e.translate(a.activeTooltipKey,{value:n}),{placement:"top"});return}i.classList.remove("has-value"),(0,Vu.setTooltip)(i,e.translate(a.defaultTooltipKey),{placement:"top"})}}function bst(r,e,t){let n=xE(r,"status");if(!n)return;let a=t.statusConfigs.find(s=>s.value===t.status),i=a?a.label:t.status;Nwe(n,e,{isActive:!!(t.status&&a&&a.value!==t.defaultStatus),activeTooltipKey:"modals.task.tooltips.statusValue",defaultTooltipKey:"modals.task.actions.status",label:i,color:a==null?void 0:a.color})}function Tst(r,e,t){let n=xE(r,"priority");if(!n)return;let a=t.priorityConfigs.find(s=>s.value===t.priority),i=a?a.label:t.priority;Nwe(n,e,{isActive:!!(t.priority&&a&&a.value!==t.defaultPriority),activeTooltipKey:"modals.task.tooltips.priorityValue",defaultTooltipKey:"modals.task.actions.priority",label:i,color:a==null?void 0:a.color})}function Nwe(r,e,t){t.isActive?(r.classList.add("has-value"),(0,Vu.setTooltip)(r,e.translate(t.activeTooltipKey,{value:t.label}),{placement:"top"})):(r.classList.remove("has-value"),(0,Vu.setTooltip)(r,e.translate(t.defaultTooltipKey),{placement:"top"}));let n=r.querySelector(".icon");if(n){if(t.color){n.style.color=t.color;return}n.classList.remove(...kst),n.style.removeProperty("color")}}function wst(r,e,t){let n=xE(r,"recurrence");if(n){if(t.recurrenceRule.trim()){n.classList.add("has-value"),(0,Vu.setTooltip)(n,e.translate("modals.task.tooltips.recurrenceValue",{value:t.recurrenceDisplayText}),{placement:"top"});return}n.classList.remove("has-value"),(0,Vu.setTooltip)(n,e.translate("modals.task.actions.recurrence"),{placement:"top"})}}function Sst(r,e,t){let n=xE(r,"reminders");if(n){if(t>0){n.classList.add("has-value");let a=t===1?e.translate("modals.task.tooltips.remindersSingle"):e.translate("modals.task.tooltips.remindersPlural",{count:t});(0,Vu.setTooltip)(n,a,{placement:"top"});return}n.classList.remove("has-value"),(0,Vu.setTooltip)(n,e.translate("modals.task.actions.reminders"),{placement:"top"})}}function xE(r,e){return r.querySelector(`[data-type="${e}"]`)}var Vu,kst,Rwe=y(()=>{Vu=require("obsidian"),kst=["tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"]});function Fwe(r){return!r||r.length===0?"open":[...r].sort((t,n)=>t.order-n.order)[0].value}function Owe(r){return!r||r.length===0?"normal":[...r].sort((t,n)=>t.weight-n.weight)[0].value}function Lwe(r){return r?r.includes("FREQ=DAILY")?"Daily":r.includes("FREQ=WEEKLY")?Est(r):r.includes("FREQ=MONTHLY")?Dst(r):r.includes("FREQ=YEARLY")?Pst(r):`Custom${Mst(r)}`:""}function zwe(r){let e=["th","st","nd","rd"],t=r%100;return r+(e[(t-20)%10]||e[t]||e[0])}function Est(r){if(r.includes("INTERVAL=2"))return"Every 2 weeks";if(r.includes("BYDAY=MO,TU,WE,TH,FR"))return"Weekdays";if(!r.includes("BYDAY="))return"Weekly";let e=r.match(/BYDAY=([A-Z]{2})/);return e?`Weekly on ${xst[e[1]]||e[1]}`:"Weekly"}function Dst(r){if(r.includes("INTERVAL=3"))return"Every 3 months";if(r.includes("BYMONTHDAY=")){let e=r.match(/BYMONTHDAY=(\d+)/);return e?`Monthly on the ${zwe(Number.parseInt(e[1],10))}`:"Monthly"}return r.includes("BYDAY=")?"Monthly (by weekday)":"Monthly"}function Pst(r){if(r.includes("BYMONTH=")&&r.includes("BYMONTHDAY=")){let e=r.match(/BYMONTH=(\d+)/),t=r.match(/BYMONTHDAY=(\d+)/);if(e&&t){let n=Cst[Number.parseInt(e[1],10)],a=zwe(Number.parseInt(t[1],10));return`Yearly on ${n} ${a}`}}return"Yearly"}function Mst(r){if(r.includes("COUNT=")){let e=r.match(/COUNT=(\d+)/);return e?` (${e[1]} times)`:""}if(r.includes("UNTIL=")){let e=r.match(/UNTIL=(\d{8})/);if(e){let t=e[1];return` (until ${t.slice(0,4)}-${t.slice(4,6)}-${t.slice(6,8)})`}}return""}var xst,Cst,jwe=y(()=>{xst={SU:"Sunday",MO:"Monday",TU:"Tuesday",WE:"Wednesday",TH:"Thursday",FR:"Friday",SA:"Saturday"},Cst=["","January","February","March","April","May","June","July","August","September","October","November","December"]});function $we(r){return{title:r.title,status:r.status,priority:r.priority,dueDate:r.dueDate,scheduledDate:r.scheduledDate,recurrenceRule:r.recurrenceRule,recurrenceAnchor:r.recurrenceAnchor,reminders:r.reminders||[]}}function Bwe(r){return{app:r.app,plugin:r.plugin,translate:r.translate,getState:r.getState,setDate:(e,t)=>{if(e==="due"){r.setDueDate(t);return}r.setScheduledDate(t)},setStatus:r.setStatus,setPriority:r.setPriority,setRecurrence:(e,t)=>{r.setRecurrenceRule(e),t!==void 0&&r.setRecurrenceAnchor(t)},setReminders:r.setReminders,onChange:r.onChange}}function Uwe(r,e){let t=e.statusConfigs||[],n=e.priorityConfigs||[];return{dueDate:r.dueDate,scheduledDate:r.scheduledDate,status:r.status,priority:r.priority,recurrenceRule:r.recurrenceRule,recurrenceDisplayText:Lwe(r.recurrenceRule),reminderCount:r.reminders.length,defaultStatus:Fwe(t),defaultPriority:Owe(n),statusConfigs:t,priorityConfigs:n}}var Hwe=y(()=>{jwe()});var TN,Vwe=y(()=>{Mk();Pu();TN=class{constructor(e,t,n,a){this.plugin=e,this.task=t,this.triggerElement=n,this.onUpdate=a}show(e){let t=new Ea;this.addQuickRemindersSection(t,"due",this.plugin.i18n.translate("components.reminderContextMenu.remindBeforeDue")),this.addQuickRemindersSection(t,"scheduled",this.plugin.i18n.translate("components.reminderContextMenu.remindBeforeScheduled")),t.addSeparator(),t.addItem(n=>{n.setTitle(this.plugin.i18n.translate("components.reminderContextMenu.manageAllReminders")).setIcon("settings").onClick(()=>{this.openReminderModal()})}),this.task.reminders&&this.task.reminders.length>0&&t.addItem(n=>{n.setTitle(this.plugin.i18n.translate("components.reminderContextMenu.clearAllReminders")).setIcon("trash").onClick(async()=>{await this.clearAllReminders()})}),t.show(e)}addQuickRemindersSection(e,t,n){if(!(t==="due"?this.task.due:this.task.scheduled)){e.addItem(i=>{i.setTitle(n).setIcon("bell").setDisabled(!0)});return}e.addItem(i=>{i.setTitle(n),i.setIcon("bell"),this.addQuickReminderSubmenu(i.setSubmenu(),t)})}addQuickReminderSubmenu(e,t){[{label:this.plugin.i18n.translate("components.reminderContextMenu.quickReminders.atTime"),offset:"PT0M"},{label:this.plugin.i18n.translate("components.reminderContextMenu.quickReminders.fiveMinutesBefore"),offset:"-PT5M"},{label:this.plugin.i18n.translate("components.reminderContextMenu.quickReminders.fifteenMinutesBefore"),offset:"-PT15M"},{label:this.plugin.i18n.translate("components.reminderContextMenu.quickReminders.oneHourBefore"),offset:"-PT1H"},{label:this.plugin.i18n.translate("components.reminderContextMenu.quickReminders.oneDayBefore"),offset:"-P1D"}].forEach(a=>{e.addItem(i=>{i.setTitle(a.label).onClick(async()=>{await this.addQuickReminder(t,a.offset,a.label)})})})}async addQuickReminder(e,t,n){let a={id:`rem_${Date.now()}`,type:"relative",relatedTo:e,offset:t,description:n},i=[...this.task.reminders||[],a];await this.saveReminders(i)}async clearAllReminders(){await this.saveReminders([])}async saveReminders(e){let t;if(this.task.path&&this.task.path.trim()!==""){let n=await this.plugin.cacheManager.getTaskInfo(this.task.path);n?(t={...n,reminders:e},await this.plugin.taskService.updateProperty(t,"reminders",e)):t={...this.task,reminders:e}}else t={...this.task,reminders:e};this.onUpdate(t)}openReminderModal(){new ql(this.plugin.app,this.plugin,this.task,t=>{this.saveReminders(t)}).open()}}});var wN,qwe=y(()=>{Pu();wN=class{constructor(e){this.targetDoc=activeDocument;this.menu=new Ea,this.options=e,this.buildMenu()}buildMenu(){this.getStatusOptions().forEach((t,n)=>{this.menu.addItem(a=>{let i=t.label;a.setIcon(t.icon||"circle"),t.value===this.options.currentValue&&(i=`\u2713 ${t.label}`),a.setTitle(i),a.onClick(async()=>{this.options.onSelect(t.value)})})})}getStatusOptions(){let e=this.options.plugin.settings.customStatuses,t=[];return e&&e.length>0&&[...e].sort((a,i)=>a.order-i.order).forEach(a=>{t.push({label:a.label,value:a.value,color:a.color,icon:a.icon})}),t}capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}show(e){var t,n;(n=(t=e.target)==null?void 0:t.instanceOf)!=null&&n.call(t,HTMLElement)&&(this.targetDoc=e.target.ownerDocument),this.menu.show(e),window.setTimeout(()=>{this.applyColorStyling()},10)}showAtElement(e){this.targetDoc=e.ownerDocument,this.menu.showAtPosition({x:e.getBoundingClientRect().left,y:e.getBoundingClientRect().bottom+4}),window.setTimeout(()=>{this.applyColorStyling()},10)}applyColorStyling(){let e=this.getStatusOptions(),t=this.targetDoc.querySelector(".menu");if(!t)return;let n=t.querySelectorAll(".menu-item");e.forEach((a,i)=>{let s=n[i];if(s&&a.color){let o=s.querySelector(".menu-item-icon");o&&(o.style.color=a.color)}})}}});function Wwe(r,e){let t=Ist(r.getState(),e);new $l(r.app,{currentDate:t?de(t):void 0,currentTime:t?Oi(t):void 0,title:Nst(r,e),dateRole:e,plugin:r.plugin,onSelect:(a,i)=>{r.setDate(e,Ast(a,i)),r.onChange()}}).open()}function Ywe(r,e){new wN({currentValue:r.getState().status,onSelect:n=>{r.setStatus(n),r.onChange()},plugin:r.plugin}).show(e)}function Gwe(r,e){new ju({currentValue:r.getState().priority,onSelect:n=>{r.setPriority(n),r.onChange()},plugin:r.plugin}).show(e)}function Kwe(r,e){let t=r.getState();new Vl({currentValue:t.recurrenceRule,currentAnchor:t.recurrenceAnchor,scheduledDate:t.scheduledDate,onSelect:(a,i)=>{r.setRecurrence(a||"",i),r.onChange()},app:r.app,plugin:r.plugin}).show(e)}function SN(r,e,t){new TN(r.plugin,_st(r.getState(),t),e.target,a=>{r.setReminders(a.reminders||[]),r.onChange()}).show(e)}function Ast(r,e){return r?e?La(r,e):r:""}function _st(r,e){return{...e,title:r.title,status:r.status,priority:r.priority,due:r.dueDate,scheduled:r.scheduledDate,path:(e==null?void 0:e.path)||"",archived:(e==null?void 0:e.archived)||!1,reminders:r.reminders}}function Ist(r,e){return e==="due"?r.dueDate:r.scheduledDate}function Nst(r,e){return e==="due"?r.translate("modals.task.dateMenu.dueTitle"):r.translate("modals.task.dateMenu.scheduledTitle")}var $q=y(()=>{dE();Pk();Vwe();qwe();Me();kk()});function xN(r,e){return{file:r,name:r.basename,link:e}}function Jwe(r,e,t){let n=[...r];for(let a of e){let i=Rst(a,t);!i||Bq(n,i)||n.push(i)}return n}function Xwe(r,e){return r.filter(t=>t!==e)}function eSe(r){return r.map(e=>e.link).join(", ")}function Rst(r,e){if(!r||typeof r!="string"||r.trim()==="")return null;let t=r.match(/^\[\[([^\]]+)\]\]$/);if(t)return Ost(r,t[1],e);let n=r.match(/^\[([^\]]*)\]\(([^)]+)\)$/);return n?Lst(r,n,e):zst(r,e)}function Bq(r,e){let t=Zwe(e);return r.some(n=>{let a=Zwe(n);return t.some(i=>a.includes(i))})}function Zwe(r){var n;let e=new Set;(n=r.file)!=null&&n.path&&e.add(`path:${Qwe(r.file.path)}`);let t=Et(r.link);return t&&e.add(`path:${Qwe(t)}`),r.link&&e.add(`link:${r.link.trim().toLowerCase()}`),Array.from(e)}function Qwe(r){return r.trim().replace(/\.md$/i,"").toLowerCase()}function tSe({app:r,listEl:e,items:t,sourcePath:n,translate:a,onRemove:i}){if(!e||(e.empty(),t.length===0))return;let s={metadataCache:r.metadataCache,workspace:r.workspace};for(let o of t){let l=e.createDiv({cls:"task-project-item"});o.unresolved&&l.addClass("task-project-item--unresolved");let c=l.createDiv({cls:"task-project-info"}),d=c.createDiv({cls:"task-project-name clickable-project"});if(o.file){let p=z_(r,o.file,n,o.file.name);Fst(d,[p],s),o.file.path!==o.file.name&&c.createDiv({cls:"task-project-path",text:o.file.path})}else d.textContent=o.name,(0,Wk.setTooltip)(d,a("contextMenus.task.dependencies.notices.unresolved",{name:o.name}),{placement:"top"});let u=l.createEl("button",{cls:"task-project-remove",text:"\xD7"});(0,Wk.setTooltip)(u,a("modals.task.projectsRemoveTooltip"),{placement:"top"}),u.addEventListener("click",()=>{i(o)})}}function Fst(r,e,t){Ek(r,e,t),Array.from(r.childNodes).forEach(n=>{var a;n.nodeType===Node.TEXT_NODE&&((a=n.textContent)==null?void 0:a.trim())==="+"&&n.remove()})}function Ost(r,e,t){let n=t.resolveLink(e,t.sourcePath);return n instanceof Wk.TFile?xN(n,r):{name:e.split("|")[0],link:r,unresolved:!0}}function Lst(r,e,t){let n=Et(r),a=t.resolveLink(n,t.sourcePath);return a instanceof Wk.TFile?xN(a,r):{name:e[1]||n,link:r,unresolved:!0}}function zst(r,e){let t=e.getMarkdownFiles().find(n=>n.basename===r||n.name===`${r}.md`);return t?{file:t,name:t.basename,link:`[[${t.basename}]]`}:{name:r,link:r,unresolved:!0}}var Wk,rSe=y(()=>{Wk=require("obsidian");vm();qn()});function nSe(r,e,t){let n=new Set(e.map(a=>a.path));return r.filter(a=>t&&a.path===t?!1:!n.has(a.path))}function aSe(r,e){return jst(r,e)?[...r]:[...r,e]}function iSe(r,e){return r.filter(t=>t.path!==e.path)}function jst(r,e){return r.some(t=>t.path===e.path)}async function sSe({app:r,listEl:e,files:t,sourcePath:n,getCachedTaskInfo:a,createTaskCard:i,translate:s,onRemove:o}){if(!e||(e.empty(),t.length===0))return;let l={metadataCache:r.metadataCache,workspace:r.workspace};for(let c of t){if(!(c instanceof CN.TFile))return;let d=e.createDiv({cls:"task-project-item task-project-item--task-card"}),u=d.createDiv({cls:"task-project-card-host"}),p=await a(c.path);p?u.appendChild(i(p)):$st(r,u,c,n,l);let m=d.createEl("button",{cls:"task-project-remove",text:"\xD7"});(0,CN.setTooltip)(m,s("modals.task.organization.removeSubtaskTooltip"),{placement:"top"}),m.addEventListener("click",()=>{o(c)})}}function $st(r,e,t,n,a){let i=e.createDiv({cls:"task-project-info"}),s=i.createDiv({cls:"task-project-name clickable-project"}),o=z_(r,t,n,t.name);Bst(s,[o],a),t.path!==t.name&&i.createDiv({cls:"task-project-path",text:t.path})}function Bst(r,e,t){Ek(r,e,t),Array.from(r.childNodes).forEach(n=>{var a;n.nodeType===Node.TEXT_NODE&&((a=n.textContent)==null?void 0:a.trim())==="+"&&n.remove()})}var CN,oSe=y(()=>{CN=require("obsidian");vm();qn()});async function EN({plugin:r,getAllTasks:e=async()=>{var u,p,m;return(m=await((p=(u=r.cacheManager).getAllTasks)==null?void 0:p.call(u)))!=null?m:[]},getCandidates:t,onSelect:n,translate:a,noEligibleTasksMessageKey:i,openFailedMessageKey:s,logOperation:o,openSelector:l=Fn,showNotice:c=u=>{new lSe.Notice(u)},logger:d=Ust}){var u;try{let p=(u=await e())!=null?u:[],m=[...t(p)];return m.length===0?(c(a(i)),"empty"):(l(r,m,f=>{f&&n(f)}),"opened")}catch(p){return d.error("Failed to open task selector",{category:"stale-data",operation:o,error:p}),c(a(s)),"error"}}var lSe,Ust,cSe=y(()=>{lSe=require("obsidian");K();Vo();Ust=N({tag:"TaskModal/TaskSelector"})});function pSe({container:r,className:e,placeholder:t,value:n,onChange:a,attachFocusScrollGuard:i}){let s=r.createEl("textarea",{cls:e});return s.placeholder=t,s.rows=1,s.spellcheck=!0,s.setAttribute("aria-label",t),s.addEventListener("keydown",o=>{o.key==="Enter"&&!o.ctrlKey&&!o.metaKey&&o.preventDefault()}),Hst(s,{value:n,onChange:a,attachFocusScrollGuard:i}),s}function Hst(r,{value:e,onChange:t,attachFocusScrollGuard:n}){r.value=e,r.addEventListener("input",a=>{let i=a.target,s=Vst(i.value);i.value!==s&&(i.value=s),t(s),dSe(i)}),n==null||n(r),dSe(r)}function Vst(r){return r.replace(/\s*\n+\s*/g," ")}function dSe(r){var u;let e=r.ownerDocument.defaultView,t=(u=e==null?void 0:e.HTMLTextAreaElement)!=null?u:HTMLTextAreaElement;if(!(r instanceof t))return;let n=e==null?void 0:e.getComputedStyle(r),a=n?Number.parseFloat(n.lineHeight):0,i=n&&Number.parseFloat(n.paddingTop)||0,s=n&&Number.parseFloat(n.paddingBottom)||0,o=n&&Number.parseFloat(n.borderTopWidth)||0,l=n&&Number.parseFloat(n.borderBottomWidth)||0,c=(a>0?a*3:72)+i+s+o+l;uSe(r,{"--tn-task-modal-title-height":"auto"});let d=Math.min(r.scrollHeight,c);uSe(r,{"--tn-task-modal-title-height":`${d}px`,"--tn-task-modal-title-overflow-y":r.scrollHeight>c?"auto":"hidden"})}function uSe(r,e){if(typeof r.setCssProps=="function"){r.setCssProps(e);return}for(let[t,n]of Object.entries(e))r.style.setProperty(t,n)}var mSe=y(()=>{});function MN({detailsContainer:r,splitRightColumn:e}){PN(r),r.classList.add(DN),e&&(PN(e),e.classList.add(DN))}function kSe({containerEl:r,detailsContainer:e,splitRightColumn:t,timerWindow:n}){var i;PN(e,DN),e.classList.add(Wst),r.classList.add("expanded"),t&&(PN(t,DN),t.style.removeProperty("display")),e.classList.remove(hSe,gSe),e.classList.add(fSe),e.classList.remove(vSe),e.classList.add(ySe),((i=n!=null?n:e.ownerDocument.defaultView)!=null?i:window).setTimeout(()=>{e.classList.remove(hSe,fSe),e.classList.add(gSe),e.classList.remove(ySe),e.classList.add(vSe)},50)}function PN(r,...e){r.classList.remove(...qst,...e)}var qst,DN,Wst,fSe,hSe,gSe,ySe,vSe,Uq=y(()=>{qst=["tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"],DN="tn-static-display-none-6b99de8b",Wst="tn-static-display-block-2a1b75c9",fSe="tn-static-opacity-0-8d919cb5",hSe="tn-static-opacity-0-6-d95b59ac",gSe="tn-static-opacity-1-c6e7979d",ySe="tn-static-transform-translatey-10px-5b91bf02",vSe="tn-static-transform-translatey-0-1b976432"});function bSe(r,e){var t;return((t=r.instanceOf)==null?void 0:t.call(r,e))===!0||Object.prototype.isPrototypeOf.call(e.prototype,r)}var AN,TSe=y(()=>{AN=class{constructor(e){this.guardedTitleInputs=new WeakSet;this.guardedMobileKeyboardInputs=new WeakSet;this.pendingTitleFocusScrollPositions=null;this.mobileKeyboardFocusCleanups=[];this.mobileKeyboardScrollTimers=[];this.elements=e}focusTitleInput(e){this.getWindow().setTimeout(()=>{this.pendingTitleFocusScrollPositions=this.captureTitleFocusScrollPositions(e),e.focus({preventScroll:!0}),e.select(),this.restoreTitleFocusScrollPositions(this.pendingTitleFocusScrollPositions)},this.getInitialFocusDelay())}getInitialFocusDelay(){return this.isMobileLikeEnvironment()?350:100}isMobileLikeEnvironment(){var n,a;let e=this.elements.containerEl.ownerDocument,t=e.defaultView||window;return e.body.classList.contains("is-mobile")||((a=(n=t.matchMedia)==null?void 0:n.call(t,"(pointer: coarse)"))==null?void 0:a.matches)===!0}attachTitleFocusScrollGuard(e){if(this.guardedTitleInputs.has(e))return;this.guardedTitleInputs.add(e);let t=()=>{this.pendingTitleFocusScrollPositions=this.captureTitleFocusScrollPositions(e)};e.addEventListener("pointerdown",t,{capture:!0}),e.addEventListener("touchstart",t,{capture:!0}),e.addEventListener("focus",()=>{this.pendingTitleFocusScrollPositions&&this.scheduleTitleFocusScrollRestore(this.pendingTitleFocusScrollPositions)})}attachMobileKeyboardScrollGuard(e,t={}){var s;if(this.guardedMobileKeyboardInputs.has(e))return;this.guardedMobileKeyboardInputs.add(e);let n=(s=t.scrollOnFocus)!=null?s:!0,a=()=>{this.isMobileLikeEnvironment()&&(this.elements.containerEl.addClass("is-mobile-keyboard-focused"),n&&this.scheduleMobileKeyboardScrollIntoView(e))},i=()=>{(e.ownerDocument.defaultView||window).setTimeout(()=>{let l=e.ownerDocument.activeElement;(!l||!this.elements.modalEl.contains(l)||!this.isKeyboardTextEntryElement(l))&&this.elements.containerEl.removeClass("is-mobile-keyboard-focused")},100)};e.addEventListener("focus",a),e.addEventListener("blur",i),this.mobileKeyboardFocusCleanups.push(()=>{e.removeEventListener("focus",a),e.removeEventListener("blur",i)})}destroy(){for(let t of this.mobileKeyboardFocusCleanups)t();this.mobileKeyboardFocusCleanups=[];let e=this.getWindow();for(let t of this.mobileKeyboardScrollTimers)e.clearTimeout(t);this.mobileKeyboardScrollTimers=[],this.elements.containerEl.removeClass("is-mobile-keyboard-focused"),this.pendingTitleFocusScrollPositions=null}captureTitleFocusScrollPositions(e){if(!this.isMobileLikeEnvironment())return null;let t=new Set,n=i=>{var l;let s=i==null?void 0:i.ownerDocument.defaultView,o=(l=s==null?void 0:s.HTMLElement)!=null?l:HTMLElement;i instanceof o&&t.add(i)};n(this.elements.containerEl),n(this.elements.modalEl),n(this.elements.contentEl),this.elements.modalEl.querySelectorAll(".modal-content, .minimalist-modal-container, .modal-split-content, .modal-split-left, .modal-split-right, .details-container").forEach(n);let a=e.parentElement;for(;a&&a!==this.elements.containerEl.parentElement;)n(a),a=a.parentElement;return Array.from(t).map(i=>({element:i,scrollTop:i.scrollTop,scrollLeft:i.scrollLeft}))}restoreTitleFocusScrollPositions(e){if(e)for(let{element:t,scrollTop:n,scrollLeft:a}of e)t.scrollTop=n,t.scrollLeft=a}scheduleTitleFocusScrollRestore(e){this.restoreTitleFocusScrollPositions(e);let t=this.getWindow();t.requestAnimationFrame?t.requestAnimationFrame(()=>this.restoreTitleFocusScrollPositions(e)):t.setTimeout(()=>this.restoreTitleFocusScrollPositions(e),16),t.setTimeout(()=>this.restoreTitleFocusScrollPositions(e),50),t.setTimeout(()=>{this.restoreTitleFocusScrollPositions(e),this.pendingTitleFocusScrollPositions===e&&(this.pendingTitleFocusScrollPositions=null)},250)}isKeyboardTextEntryElement(e){var s,o;let t=e.ownerDocument.defaultView||window,n=(s=t.HTMLInputElement)!=null?s:HTMLInputElement,a=(o=t.HTMLTextAreaElement)!=null?o:HTMLTextAreaElement;return bSe(e,a)?!0:bSe(e,n)?!new Set(["button","checkbox","color","file","hidden","radio","range","reset","submit"]).has(e.type):!1}scheduleMobileKeyboardScrollIntoView(e){let t=e.ownerDocument.defaultView||window;for(let n of[0,150,350]){let a=t.setTimeout(()=>{this.mobileKeyboardScrollTimers=this.mobileKeyboardScrollTimers.filter(i=>i!==a),this.scrollMobileKeyboardTargetIntoView(e)},n);this.mobileKeyboardScrollTimers.push(a)}}scrollMobileKeyboardTargetIntoView(e){var n;if(!this.isMobileLikeEnvironment())return;let t=(n=e.closest(".setting-item"))!=null?n:e;t.scrollIntoView({block:"nearest",inline:"nearest",behavior:"auto"}),this.nudgeFocusedFieldInsideVisualViewport(t)}nudgeFocusedFieldInsideVisualViewport(e){var d,u,p;let t=e.ownerDocument.defaultView||window,n=t.visualViewport,a=n&&Number.isFinite(n.height)?n.offsetTop+n.height:t.innerHeight;if(!Number.isFinite(a)||a<=0)return;let i=(u=(d=e.closest(".modal-split-content"))!=null?d:e.closest(".modal-content"))!=null?u:this.elements.contentEl,s=e.getBoundingClientRect(),o=i.getBoundingClientRect(),l=Math.max((p=n==null?void 0:n.offsetTop)!=null?p:0,o.top)+24,c=Math.min(a,o.bottom)-24;s.bottom>c?i.scrollTop+=s.bottom-c:s.top<l&&(i.scrollTop-=l-s.top)}getWindow(){return this.elements.containerEl.ownerDocument.defaultView||window}}});var CE,Yst,Yk,Hq=y(()=>{CE=require("obsidian");VB();vpe();JB();Ct();qv();Io();qn();Ofe();mi();hwe();kwe();Pwe();zq();Awe();Rwe();Hwe();$q();rSe();oSe();cSe();mSe();Uq();TSe();K();Yst=N({tag:"Modals/TaskModal"}),Yk=class extends CE.Modal{constructor(t,n){super(t);this.keyboardHandler=null;this.title="";this.details="";this.originalDetails="";this.dueDate="";this.scheduledDate="";this.priority="normal";this.status="open";this.contexts="";this.projects="";this.tags="";this.timeEstimate=0;this.recurrenceRule="";this.recurrenceAnchor="scheduled";this.reminders=[];this.userFields={};this.userFieldInputs=new Map;this.userFieldToggles=new Map;this.blockedByItems=[];this.blockingItems=[];this.blockedByList=void 0;this.blockingList=void 0;this.selectedProjectItems=[];this.selectedSubtaskFiles=[];this.initialSubtaskFiles=[];this.titleInput=void 0;this.detailsInput=void 0;this.detailsMarkdownEditor=null;this.contextsInput=void 0;this.projectsInput=void 0;this.tagsInput=void 0;this.timeEstimateInput=void 0;this.projectsList=void 0;this.subtasksList=void 0;this.actionBar=void 0;this.detailsContainer=void 0;this.isExpanded=!1;this.splitRightColumn=void 0;this.plugin=n,this.focusGuards=new AN({containerEl:this.containerEl,modalEl:this.modalEl,contentEl:this.contentEl})}createDependencyItemFromFile(t,n={}){var a;return Iq({plugin:this.plugin,sourcePath:(a=n.sourcePath)!=null?a:this.getDependencySourcePath()},t)}createDependencyItemFromDependency(t,n){return cwe({plugin:this.plugin,sourcePath:n!=null?n:this.getDependencySourcePath()},t)}createDependencyItemFromPath(t){return dwe({plugin:this.plugin,sourcePath:this.getDependencySourcePath()},t)}getDependencySourcePath(){var t;return this.getCurrentTaskPath()||((t=this.plugin.app.workspace.getActiveFile())==null?void 0:t.path)||""}getCurrentTaskPath(){}getModalEditorFile(){let t=this.getCurrentTaskPath();if(!t)return this.app.workspace.getActiveFile();let n=this.app.vault.getAbstractFileByPath(t);return n instanceof CE.TFile?n:this.app.workspace.getActiveFile()}async openTaskNote(){}renderDependencyLists(){this.renderBlockedByList(),this.renderBlockingList()}getLinkServices(){var t;return{metadataCache:this.plugin.app.metadataCache,workspace:this.plugin.app.workspace,sourcePath:this.getCurrentTaskPath()||((t=this.plugin.app.workspace.getActiveFile())==null?void 0:t.path)||""}}renderBlockedByList(){this.renderDependencyList(this.blockedByList,this.blockedByItems,t=>{this.blockedByItems=Rq(this.blockedByItems,t),this.renderBlockedByList()})}renderBlockingList(){this.renderDependencyList(this.blockingList,this.blockingItems,t=>{this.blockingItems=Rq(this.blockingItems,t),this.renderBlockingList()})}async renderDependencyList(t,n,a){t&&await uwe({plugin:this.plugin,listEl:t,items:n,linkServices:this.getLinkServices(),translate:(i,s)=>this.t(i,s),onRemove:a})}extractDetailsFromContent(t){let{body:n}=rm(t);return n.replace(/\r\n/g,`
|
||
`).trimEnd()}normalizeDetails(t){return t.replace(/\r\n/g,`
|
||
`).trimEnd()}addBlockedByTask(t){let n={uid:_o(this.plugin.app,this.getDependencySourcePath(),t.path,this.plugin.settings.useFrontmatterMarkdownLinks),reltype:ss};this.addBlockedByDependency(n)}addBlockingTask(t){this.addBlockingTaskFromPath(t.path)}addBlockedByDependency(t){let n=this.getDependencySourcePath(),a=this.createDependencyItemFromDependency(t,n),i=Nq(this.blockedByItems,a);i.length!==this.blockedByItems.length&&(this.blockedByItems=i,this.renderBlockedByList())}addBlockingTaskFromPath(t){let n=this.getCurrentTaskPath();if(n&&t===n)return;let a=this.createDependencyItemFromPath(t),i=Nq(this.blockingItems,a);i.length!==this.blockingItems.length&&(this.blockingItems=i,this.renderBlockingList())}async openBlockedBySelector(){let t=this.getDependencySourcePath();await EN({plugin:this.plugin,getCandidates:n=>mwe({plugin:this.plugin,sourcePath:t,allTasks:n,existingItems:this.blockedByItems,currentPath:this.getCurrentTaskPath()}),onSelect:n=>{let a={uid:_o(this.plugin.app,t,n.path),reltype:ss};this.addBlockedByDependency(a)},translate:n=>this.t(n),noEligibleTasksMessageKey:"contextMenus.task.dependencies.notices.noEligibleTasks",openFailedMessageKey:"contextMenus.task.dependencies.notices.updateFailed",logOperation:"open-blocked-by-selector"})}async openBlockingSelector(){let t=this.getDependencySourcePath();await EN({plugin:this.plugin,getCandidates:n=>fwe({plugin:this.plugin,sourcePath:t,allTasks:n,existingItems:this.blockingItems,currentPath:this.getCurrentTaskPath()}),onSelect:n=>{this.addBlockingTaskFromPath(n.path)},translate:n=>this.t(n),noEligibleTasksMessageKey:"contextMenus.task.dependencies.notices.noEligibleTasks",openFailedMessageKey:"contextMenus.task.dependencies.notices.updateFailed",logOperation:"open-blocking-selector"})}getApp(){return this.app}getPlugin(){return this.plugin}t(t,n){return this.plugin.i18n.translate(t,n)}getFileByPath(t){return this.app.vault.getAbstractFileByPath(t)}getMarkdownFiles(){return this.app.vault.getMarkdownFiles()}getFileCache(t){return this.app.metadataCache.getFileCache(t)}resolveLink(t,n){return this.app.metadataCache.getFirstLinkpathDest(t,n)}isEditMode(){return!1}isCreationMode(){return!1}async handleSubmitShortcut(t){await this.handleSave()}onOpen(){this.containerEl.addClass("tasknotes-plugin","minimalist-task-modal"),this.plugin.settings.enableModalSplitLayout&&this.containerEl.addClass("split-layout-enabled"),this.modalEl.addClass("mod-tasknotes"),this.titleEl.setText(this.getModalTitle()),this.keyboardHandler=t=>{if(t.key==="Enter"&&(t.ctrlKey||t.metaKey)){if(t.target.closest(".cm-editor"))return;t.preventDefault(),this.handleSubmitShortcut(t.shiftKey)}},this.containerEl.addEventListener("keydown",this.keyboardHandler),this.initializeFormData().then(()=>{this.createModalContent(),this.focusTitleInput()})}createModalContent(){let{contentEl:t}=this;t.empty();let n=t.createDiv("minimalist-modal-container");this.splitContentWrapper=n.createDiv("modal-split-content"),this.splitLeftColumn=this.splitContentWrapper.createDiv("modal-split-left"),this.createPrimaryInput(this.splitLeftColumn),this.createActionBar(this.splitLeftColumn),this.splitRightColumn=this.splitLeftColumn.createDiv("modal-split-right"),this.createDetailsSection(n),this.createAdditionalSections(this.splitLeftColumn),this.createActionButtons(n)}createPrimaryInput(t){this.createTitleInput(t)}createAdditionalSections(t){}createTitleInput(t){let n=t.createDiv("title-input-container");this.titleInput=this.createTitleTextarea(n,"title-input",this.t("modals.task.titlePlaceholder"))}createTitleTextarea(t,n,a){return pSe({container:t,className:n,placeholder:a,value:this.title,onChange:i=>{this.title=i},attachFocusScrollGuard:i=>{this.attachTitleFocusScrollGuard(i),this.attachMobileKeyboardScrollGuard(i,{scrollOnFocus:!1})}})}createActionBar(t){this.actionBar=t.createDiv("tn-task-modal__action-bar"),this.createCoreActionIcons(this.actionBar),this.updateIconStates()}createCoreActionIcons(t){return Mwe(t,this.getCoreActionIconSpecs())}getCoreActionIconSpecs(){return[{iconName:"dot-square",tooltip:this.t("modals.task.actions.status"),onClick:(t,n)=>{this.showStatusContextMenu(n)},dataType:"status"},{iconName:"star",tooltip:this.t("modals.task.actions.priority"),onClick:(t,n)=>{this.showPriorityContextMenu(n)},dataType:"priority"},{iconName:"calendar",tooltip:this.t("modals.task.actions.due"),onClick:(t,n)=>{this.showDateContextMenu(n,"due")},dataType:"due-date"},{iconName:"calendar-clock",tooltip:this.t("modals.task.actions.scheduled"),onClick:(t,n)=>{this.showDateContextMenu(n,"scheduled")},dataType:"scheduled-date"},{iconName:"refresh-ccw",tooltip:this.t("modals.task.actions.recurrence"),onClick:(t,n)=>{this.showRecurrenceContextMenu(n)},dataType:"recurrence"},{iconName:"bell",tooltip:this.t("modals.task.actions.reminders"),onClick:(t,n)=>{this.showReminderContextMenu(n)},dataType:"reminders"}]}createActionIcon(t,n,a,i,s){return jq(t,{iconName:n,tooltip:a,onClick:i,dataType:s})}createDetailsSection(t){this.userFieldInputs.clear(),this.userFieldToggles.clear(),this.detailsContainer=this.splitLeftColumn?this.splitLeftColumn.createDiv("details-container"):t.createDiv("details-container"),this.isExpanded||MN({detailsContainer:this.detailsContainer,splitRightColumn:this.splitRightColumn});let n=this.plugin.settings.modalFieldsConfig,a=this.shouldShowField("title",n),i=this.shouldShowField("details",n);this.splitContentWrapper.classList.toggle("modal-split-content--right-empty",!i);let s=this.isEditMode(),o=this.isCreationMode()&&this.plugin.settings.enableNaturalLanguageInput;if(a&&(s||o)){let l=this.detailsContainer.createDiv("detail-label");l.textContent=this.t("modals.task.titleLabel");let c=this.createTitleTextarea(this.detailsContainer,"title-input-detailed",this.t("modals.task.titleDetailedPlaceholder"));(s||o)&&!this.titleInput&&(this.titleInput=c)}if(i){let l=this.splitRightColumn||this.detailsContainer;this.detailsMarkdownEditor=Spe({app:this.app,parent:l,label:this.t("modals.task.detailsLabel"),value:this.details,placeholder:this.t("modals.task.detailsPlaceholder"),file:this.getModalEditorFile(),tabMovesFocus:this.plugin.settings.taskModalTabMovesFocus,onChange:c=>{this.details=c},onSubmit:c=>{this.handleSubmitShortcut(c)},onEscape:()=>{this.close()},focusNextField:()=>this.focusNextField(),focusPreviousField:()=>this.focusPreviousField()})}this.createAdditionalFields(this.detailsContainer)}shouldShowField(t,n){return hpe(t,n,this.isCreationMode())}createAdditionalFields(t){let n=this.plugin.settings.modalFieldsConfig;if(!n){Yst.error("TaskModal: modalFieldsConfig is not initialized. This should never happen.",{category:"configuration",operation:"taskmodal-modalfieldsconfig-not-initialized-this-should-never-happen"});return}this.createFieldsFromConfig(t,n)}createFieldsFromConfig(t,n){ype({container:t,config:n,isCreationMode:this.isCreationMode(),fieldRenderers:this.getFieldRenderers(),renderUserField:(a,i)=>{this.createUserFieldByConfig(a,i)}})}createField(t,n){qB({container:t,fieldConfig:n,fieldRenderers:this.getFieldRenderers(),renderUserField:(a,i)=>{this.createUserFieldByConfig(a,i)}})}getFieldRenderers(){return{contexts:t=>this.createContextsField(t),tags:t=>this.createTagsField(t),"time-estimate":t=>this.createTimeEstimateField(t),projects:t=>this.createProjectsField(t),subtasks:t=>this.createSubtasksField(t),"blocked-by":t=>this.createBlockedByField(t),blocking:t=>this.createBlockingField(t)}}createContextsField(t){this.contextsInput=gwe(this.getMetadataFieldContext(),{container:t,value:this.contexts,onChange:n=>{this.contexts=n}})}createTagsField(t){this.tagsInput=ywe(this.getMetadataFieldContext(),{container:t,value:this.tags,onChange:n=>{this.tags=n}})}createTimeEstimateField(t){this.timeEstimateInput=vwe(this.getMetadataFieldContext(),{container:t,value:this.timeEstimate,onChange:n=>{this.timeEstimate=n}})}getMetadataFieldContext(){return{app:this.app,plugin:this.plugin,translate:t=>this.t(t),attachMobileKeyboardScrollGuard:t=>{this.attachMobileKeyboardScrollGuard(t)}}}createProjectsField(t){this.projectsList=Ife(this.getOrganizationFieldContext(),{container:t,onButtonClick:()=>{new Ao(this.app,this.plugin,a=>{this.addProject(a)}).open()},listElement:this.projectsList}),this.renderOrganizationLists()}createSubtasksField(t){this.subtasksList=Nfe(this.getOrganizationFieldContext(),{container:t,onButtonClick:()=>{this.openSubtaskSelector()},listElement:this.subtasksList}),this.renderOrganizationLists()}getOrganizationFieldContext(){return{translate:t=>this.t(t)}}getUserFieldContext(){return{app:this.app,plugin:this.plugin,translate:(t,n)=>this.t(t,n),attachMobileKeyboardScrollGuard:t=>{this.attachMobileKeyboardScrollGuard(t)}}}createBlockedByField(t){this.blockedByList=Rfe(this.getOrganizationFieldContext(),{container:t,onButtonClick:()=>{this.openBlockedBySelector()},listElement:this.blockedByList}),this.renderDependencyLists()}createBlockingField(t){this.blockingList=Ffe(this.getOrganizationFieldContext(),{container:t,onButtonClick:()=>{this.openBlockingSelector()},listElement:this.blockingList}),this.renderDependencyLists()}createUserFieldByConfig(t,n){var i;let a=(i=this.plugin.settings.userFields)==null?void 0:i.find(s=>s.id===n.id);a&&Cwe(this.getUserFieldContext(),{container:t,field:a,values:this.userFields,inputRefs:this.userFieldInputs,toggleRefs:this.userFieldToggles,onValueChange:(s,o)=>{this.userFields[s]=o}})}updateUserFieldControls(){var t;Dwe({fields:((t=this.plugin.settings)==null?void 0:t.userFields)||[],values:this.userFields,inputRefs:this.userFieldInputs,toggleRefs:this.userFieldToggles})}createUserFields(t){var n;Ewe(this.getUserFieldContext(),{container:t,fields:((n=this.plugin.settings)==null?void 0:n.userFields)||[],values:this.userFields,inputRefs:this.userFieldInputs,toggleRefs:this.userFieldToggles,onValueChange:(a,i)=>{this.userFields[a]=i}})}createActionButtons(t){let n=[];this.isEditMode()&&n.push({className:"tn-task-modal__open-note-button",text:this.t("modals.task.buttons.openNote"),onClick:()=>{this.openTaskNote()}}),kN(this.getActionButtonContext(),{container:t,leadingButtons:n,onSave:()=>this.handleSave(),onSaved:()=>{this.close()},onCancel:()=>{this.close()}})}getActionButtonContext(){return{translate:t=>this.t(t)}}expandModal(){this.isExpanded||(this.isExpanded=!0,kSe({containerEl:this.containerEl,detailsContainer:this.detailsContainer,splitRightColumn:this.splitRightColumn}))}showDateContextMenu(t,n){Wwe(this.getActionMenuContext(),n)}showStatusContextMenu(t){Ywe(this.getActionMenuContext(),t)}showPriorityContextMenu(t){Gwe(this.getActionMenuContext(),t)}showRecurrenceContextMenu(t){Kwe(this.getActionMenuContext(),t)}showReminderContextMenu(t){SN(this.getActionMenuContext(),t)}getActionMenuState(){return $we({title:this.title,status:this.status,priority:this.priority,dueDate:this.dueDate,scheduledDate:this.scheduledDate,recurrenceRule:this.recurrenceRule,recurrenceAnchor:this.recurrenceAnchor,reminders:this.reminders})}getActionMenuContext(){return Bwe({app:this.app,plugin:this.plugin,translate:(t,n)=>this.t(t,n),getState:()=>this.getActionMenuState(),setDueDate:t=>{this.dueDate=t},setScheduledDate:t=>{this.scheduledDate=t},setStatus:t=>{this.status=t},setPriority:t=>{this.priority=t},setRecurrenceRule:t=>{this.recurrenceRule=t},setRecurrenceAnchor:t=>{this.recurrenceAnchor=t},setReminders:t=>{this.reminders=t},onChange:()=>this.updateIconStates()})}updateDateIconState(){this.updateIconStates()}updateStatusIconState(){this.updateIconStates()}updatePriorityIconState(){this.updateIconStates()}updateRecurrenceIconState(){this.updateIconStates()}updateReminderIconState(){this.updateIconStates()}updateIconStates(){let t=this.getActionMenuState();Iwe(this.actionBar,{translate:(n,a)=>this.t(n,a)},Uwe(t,{statusConfigs:this.plugin.settings.customStatuses||[],priorityConfigs:this.plugin.settings.customPriorities||[]}))}focusTitleInput(){this.focusGuards.focusTitleInput(this.titleInput)}getInitialFocusDelay(){return this.focusGuards.getInitialFocusDelay()}isMobileLikeEnvironment(){return this.focusGuards.isMobileLikeEnvironment()}attachTitleFocusScrollGuard(t){this.focusGuards.attachTitleFocusScrollGuard(t)}attachMobileKeyboardScrollGuard(t,n){this.focusGuards.attachMobileKeyboardScrollGuard(t,n)}addProject(t){if(t instanceof CE.TFile){let n=xN(t,this.buildProjectReference(t,this.getCurrentTaskPath()||""));if(Bq(this.selectedProjectItems,n))return;this.selectedProjectItems.push(n)}this.updateProjectsFromFiles(),this.renderProjectsList()}removeProject(t){this.selectedProjectItems=Xwe(this.selectedProjectItems,t),this.updateProjectsFromFiles(),this.renderProjectsList()}updateProjectsFromFiles(){this.projects=eSe(this.selectedProjectItems)}buildProjectReference(t,n){return Ws(this.app,t,n,"","",this.plugin.settings.useFrontmatterMarkdownLinks)}initializeProjectsFromStrings(t){this.selectedProjectItems=[],this.addProjectsFromStrings(t)}addProjectsFromStrings(t){this.selectedProjectItems=Jwe(this.selectedProjectItems,t,this.getProjectStringContext()),this.updateProjectsFromFiles()}getProjectStringContext(){return{sourcePath:this.getCurrentTaskPath()||"",getMarkdownFiles:()=>this.getMarkdownFiles(),resolveLink:(t,n)=>this.resolveLink(t,n)}}renderProjectsList(){tSe({app:this.app,listEl:this.projectsList,items:this.selectedProjectItems,sourcePath:this.getCurrentTaskPath()||"",translate:(t,n)=>this.t(t,n),onRemove:t=>this.removeProject(t)})}async openSubtaskSelector(){await EN({plugin:this.plugin,getCandidates:t=>nSe(t,this.selectedSubtaskFiles,this.getCurrentTaskPath()),onSelect:t=>{let n=this.app.vault.getAbstractFileByPath(t.path);n&&this.addSubtask(n)},translate:t=>this.t(t),noEligibleTasksMessageKey:"modals.task.organization.notices.noEligibleSubtasks",openFailedMessageKey:"modals.task.organization.notices.subtaskSelectFailed",logOperation:"open-subtask-selector"})}addSubtask(t){let n=aSe(this.selectedSubtaskFiles,t);n.length!==this.selectedSubtaskFiles.length&&(this.selectedSubtaskFiles=n,this.renderSubtasksList())}removeSubtask(t){this.selectedSubtaskFiles=iSe(this.selectedSubtaskFiles,t),this.renderSubtasksList()}async renderSubtasksList(){await sSe({app:this.app,listEl:this.subtasksList,files:this.selectedSubtaskFiles,sourcePath:this.getCurrentTaskPath()||"",getCachedTaskInfo:t=>this.plugin.cacheManager.getCachedTaskInfo(t),createTaskCard:t=>Dr(t,this.plugin,void 0,{layout:"default",showSecondaryBadges:!1,enableHoverPreview:!1}),translate:(t,n)=>this.t(t,n),onRemove:t=>this.removeSubtask(t)})}renderOrganizationLists(){this.renderProjectsList(),this.renderSubtasksList()}toggleProjectsList(){this.projectsList&&this.projectsList.toggleClass("collapsed",!this.projectsList.hasClass("collapsed"))}toggleSubtasksList(){this.subtasksList&&this.subtasksList.toggleClass("collapsed",!this.subtasksList.hasClass("collapsed"))}validateForm(){return this.title.trim().length>0}focusNextField(){let t=this.contextsInput||this.tagsInput||this.timeEstimateInput;return t?(window.setTimeout(()=>{t.focus()},50),!0):!1}focusPreviousField(){return this.titleInput?(window.setTimeout(()=>{var t;(t=this.titleInput)==null||t.focus()},50),!0):!1}onClose(){this.keyboardHandler&&(this.containerEl.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=null),this.focusGuards.destroy(),Cpe(this.detailsMarkdownEditor),this.detailsMarkdownEditor=null,super.onClose()}}});var _N,wSe=y(()=>{_N=class{constructor(e,t=[]){this.config=e,this.userFields=t,this.triggerMap=new Map,this.propertyMap=new Map,this.buildMaps()}buildMaps(){this.triggerMap.clear(),this.propertyMap.clear();for(let e of this.config.triggers)e.enabled&&(this.triggerMap.set(e.trigger,e),this.propertyMap.set(e.propertyId,e))}getTriggerForProperty(e){return this.propertyMap.get(e)}getPropertyForTrigger(e){var t;return(t=this.triggerMap.get(e))==null?void 0:t.propertyId}getAllEnabledTriggers(){return this.config.triggers.filter(e=>e.enabled)}getTriggersOrderedByLength(){return this.getAllEnabledTriggers().sort((e,t)=>t.trigger.length-e.trigger.length)}usesNativeTagSuggester(){let e=this.getTriggerForProperty("tags");return(e==null?void 0:e.trigger)==="#"&&(e==null?void 0:e.enabled)}getTagTrigger(){let e=this.getTriggerForProperty("tags");return e!=null&&e.enabled?e.trigger:void 0}getContextTrigger(){let e=this.getTriggerForProperty("contexts");return e!=null&&e.enabled?e.trigger:void 0}getProjectTrigger(){let e=this.getTriggerForProperty("projects");return e!=null&&e.enabled?e.trigger:void 0}getStatusTrigger(){let e=this.getTriggerForProperty("status");return e!=null&&e.enabled?e.trigger:void 0}getPriorityTrigger(){let e=this.getTriggerForProperty("priority");return e!=null&&e.enabled?e.trigger:void 0}getUserField(e){return this.userFields.find(t=>t.id===e)}isUserField(e){return this.userFields.some(t=>t.id===e)}getSuggesterType(e){if(e==="tags")return this.usesNativeTagSuggester()?"native-tag":"list";if(e==="contexts")return"list";if(e==="projects")return"file";if(e==="status")return"status";if(e==="priority")return"priority";let t=this.getUserField(e);if(t)switch(t.type){case"text":case"list":return t.autosuggestFilter?"file":"list";case"boolean":return"boolean";default:return"none"}return"none"}updateConfig(e){this.config=e,this.buildMaps()}updateUserFields(e){this.userFields=e}}});function xSe(r){let e=(0,Zc.autocompletion)({override:[Zst(r)],activateOnTyping:!0,closeOnBlur:!0,maxRenderedOptions:10,addToOptions:[{render:(n,a,i)=>Qst(n,i.dom.ownerDocument),position:100}]}),t=Vq.Prec.high(SSe.keymap.of([{key:"ArrowDown",run:(0,Zc.moveCompletionSelection)(!0)},{key:"ArrowUp",run:(0,Zc.moveCompletionSelection)(!1)},{key:"Enter",run:Zc.acceptCompletion},{key:"Tab",run:Zc.acceptCompletion},{key:"Escape",run:Zc.closeCompletion}]));return[Vq.Prec.high(e),t]}function Zst(r){return async e=>{let t=new _N(r.settings.nlpTriggers,r.settings.userFields||[]),n=e.state.doc.lineAt(e.pos),a=n.text.slice(0,e.pos-n.from),i=(f,h)=>{if(f===-1)return!1;if(f===0)return!0;let g=h[f-1];return!/\w/.test(g)},s=t.getTriggersOrderedByLength(),o=[];for(let f of s){if(f.propertyId==="tags"&&f.trigger==="#")continue;let h=a.lastIndexOf(f.trigger);i(h,a)&&o.push({propertyId:f.propertyId,trigger:f.trigger,index:h,triggerLength:f.trigger.length})}if(o.length===0)return null;o.sort((f,h)=>h.index-f.index);let l=o[0],c=l.index+l.triggerLength,d=a.slice(c);if(l.propertyId==="projects"&&/^\[\[[^\]]*\]\]/.test(d)||l.propertyId!=="projects"&&(d.includes(" ")||d.includes(`
|
||
`)))return null;let u=await Jst(l.propertyId,d,r,t);if(!u||u.length===0)return null;let p=e.pos,m=n.text.slice(e.pos-n.from);return l.propertyId==="status"&&m.startsWith(l.trigger)&&(p=Math.min(n.to,e.pos+l.triggerLength)),{from:n.from+l.index+l.triggerLength,to:p,options:u,validFor:/^[\w\s-]*$/}}}function Qst(r,e=activeDocument){let t=r;if(!t.projectMetadata)return null;let n=Ne(e,"div");n.className="cm-project-suggestion__metadata";for(let a of t.projectMetadata){let i=Ne(e,"div");i.className="cm-project-suggestion__meta",a.forEach((s,o)=>{o>0&&i.appendChild(e.createTextNode(" "));let l=Ne(e,"span");l.className=s.kind==="value"?"cm-project-suggestion__meta-value":s.kind==="label"?"cm-project-suggestion__meta-label":"cm-project-suggestion__meta-literal",s.searchable&&l.classList.add("cm-project-suggestion__meta-searchable"),s.searchable&&t.projectQuery?rot(l,s.text,t.projectQuery):l.textContent=s.text,i.appendChild(l)}),n.appendChild(i)}return n}async function Jst(r,e,t,n){switch(n.getSuggesterType(r)){case"list":return Xst(r,e,t);case"file":return eot(r,e,t,n);case"status":return not(e,t);case"priority":return aot(e,t);case"boolean":return iot(e);case"native-tag":return null;default:return null}}function Xst(r,e,t){let n=[],a=r;switch(r){case"tags":n=t.cacheManager.getAllTags(),a="Tag";break;case"contexts":n=t.cacheManager.getAllContexts(),a="Context";break;default:n=[],a=r;break}return n.filter(i=>i&&typeof i=="string").filter(i=>i.toLowerCase().includes(e.toLowerCase())).slice(0,10).map(i=>({label:i,apply:i+" ",type:"text",info:a}))}async function eot(r,e,t,n){var a,i,s;try{let o;if(r==="projects")o=t.settings.projectAutosuggest;else{let c=n.getUserField(r);o=c==null?void 0:c.autosuggestFilter}let l=await X2.suggest(t,e,20,o);if(r==="projects"){let c=new nm({getFrontmatter:u=>u.frontmatter}),d=((s=(i=(a=t.settings)==null?void 0:a.projectAutosuggest)==null?void 0:i.rows)!=null?s:[]).slice(0,3);return l.map(u=>{var g;let p=u.displayText||u.insertText,m=u.insertText,f=t.app.vault.getMarkdownFiles().find(v=>v.path===u.path),h=[];if(f&&d.length>0){let v=t.app.metadataCache.getFileCache(f),b=(v==null?void 0:v.frontmatter)||{},k=t.fieldMapper.mapFromFrontmatter(b,f.path,t.settings.storeTitleInFilename),w=typeof k.title=="string"?k.title:"",S=Array.isArray(b.aliases)?b.aliases.filter(E=>typeof E=="string"):[],C={basename:f.basename,name:f.name,path:f.path,parent:((g=f.parent)==null?void 0:g.path)||"",title:w,aliases:S,frontmatter:b};h=tot(d,C,c)}return{label:p,apply:`[[${m}]] `,type:"text",info:"Project",projectMetadata:h.length>0?h:void 0,projectQuery:e}})}return l.map(c=>{let d=c.displayText||c.insertText,u=c.insertText;return{label:d,apply:`[[${u}]] `,type:"text",info:r==="projects"?"Project":r}})}catch(o){return Gst.error(`Error getting file suggestions for ${r}:`,{category:"persistence",operation:"getting-file-suggestions",error:o}),[]}}function tot(r,e,t){var i;let n=[],a=Math.min(r.length,3);for(let s=0;s<a;s++){let o=r[s];if(o)try{let l=_c(o),c=[];for(let d of l){if(d.property.startsWith("literal:")){let p=d.property.slice(8);p&&c.push({text:p,searchable:!1,kind:"literal"});continue}let u=t.resolve(d.property,e);u&&(d.showName&&c.push({text:`${(i=d.displayName)!=null?i:d.property}:`,searchable:!1,kind:"label"}),c.push({text:u,searchable:d.searchable===!0||Kst.has(d.property),kind:"value"}))}c.some(d=>d.text.trim().length>0)&&n.push(c)}catch(l){}}return n}function rot(r,e,t){let n=r.ownerDocument,a=t.toLowerCase().split(/\s+/).filter(Boolean);if(a.length===0){r.textContent=e;return}let i=e.toLowerCase(),s=[];for(let c of a){let d=i.indexOf(c);for(;d!==-1;)s.push({start:d,end:d+c.length}),d=i.indexOf(c,d+1)}s.sort((c,d)=>c.start-d.start);let o=[];for(let c of s){let d=o[o.length-1];(!d||c.start>=d.end)&&o.push(c)}if(o.length===0){r.textContent=e;return}let l=0;for(let c of o){c.start>l&&r.appendChild(n.createTextNode(e.slice(l,c.start)));let d=Ne(n,"mark");d.textContent=e.slice(c.start,c.end),r.appendChild(d),l=c.end}l<e.length&&r.appendChild(n.createTextNode(e.slice(l)))}function not(r,e){return ra.fromPlugin(e).getStatusSuggestions(r,10).map(a=>({label:a.display,apply:a.value+" ",type:"text",info:"Status"}))}function aot(r,e){return(e.settings.customPriorities||[]).filter(n=>n.label.toLowerCase().includes(r.toLowerCase())).slice(0,10).map(n=>({label:n.label,apply:n.value+" ",type:"text",info:"Priority"}))}function iot(r){return["true","false"].filter(t=>t.toLowerCase().includes(r.toLowerCase())).map(t=>({label:t,apply:t+" ",type:"text",info:"Boolean"}))}var Zc,Vq,SSe,Gst,Kst,CSe=y(()=>{Zc=require("@codemirror/autocomplete"),Vq=require("@codemirror/state"),SSe=require("@codemirror/view");Lc();wSe();jS();I_();LS();K();ms();Gst=N({tag:"Editor/NLPCodeMirrorAutocomplete"}),Kst=new Set(["title","aliases","file.basename"])});function ESe(r){let e=Ge(),t=r.contexts.split(",").map(l=>l.trim()).filter(l=>l.length>0),n=qs(r.projects),a=za(r.tags).split(",").map(l=>l.trim()).filter(l=>l.length>0);r.taskIdentificationMethod==="tag"&&r.taskTag&&!a.includes(r.taskTag)&&a.unshift(r.taskTag);let i={title:r.title.trim(),due:r.dueDate||void 0,scheduled:r.scheduledDate||void 0,priority:r.priority,status:r.status,contexts:t.length>0?t:void 0,projects:n.length>0?n:void 0,tags:a.length>0?a:void 0,timeEstimate:r.timeEstimate>0?r.timeEstimate:void 0,recurrence:r.recurrenceRule||void 0,recurrence_anchor:r.recurrenceRule?r.recurrenceAnchor:void 0,reminders:r.reminders.length>0?r.reminders:void 0,creationContext:r.creationContext||"manual-creation",dateCreated:e,dateModified:e,customFrontmatter:Swe(r.userFields)},s=r.blockedByItems.map(l=>({...l.dependency}));s.length>0&&(i.blockedBy=s);let o=r.normalizeDetails(r.details).trimEnd();return o.length>0&&(i.details=o),i}function DSe(r){let e=[],t={},n=[];return r.forEach(a=>{a.path?e.includes(a.path)||(e.push(a.path),t[a.path]={...a.dependency}):n.push(a.dependency.uid)}),{added:e,raw:t,unresolved:n}}var PSe=y(()=>{Me();Ct();am();vN()});var _Se={};at(_Se,{convertDefaultRemindersToReminders:()=>EE,hasAnyUserFieldsEnabled:()=>MSe,isUserFieldConfigComplete:()=>ASe,isUserFieldEnabled:()=>sot});function EE(r,e){return r.map(t=>{let n={id:`rem_${Date.now()}_${Math.random().toString(36).slice(2,11)}`,type:t.type,description:t.description};if(t.type==="relative"){if(t.relatedTo&&t.offset!==void 0&&t.unit&&t.direction){let a="PT";t.unit==="days"?a=`P${t.offset}D`:t.unit==="hours"?a=`PT${t.offset}H`:a=`PT${t.offset}M`,t.direction==="before"&&(a="-"+a),n.relatedTo=t.relatedTo,n.offset=a}}else t.type==="absolute"&&t.absoluteDate&&t.absoluteTime&&(n.absoluteTime=`${t.absoluteDate}T${t.absoluteTime}:00`);return n}).filter(t=>t.type==="relative"?t.relatedTo&&t.offset:!!t.absoluteTime)}function MSe(r){let e=r.userFields;return!e||e.length===0?!1:e.some(t=>!!(t&&t.displayName&&t.key&&t.type))}function ASe(r){return!r||!r.enabled?!1:!!(r.displayName&&r.key&&r.type)}function sot(r){return r.userFields&&r.userFields.length>0?MSe(r):ASe(r.userField)}var IN=y(()=>{});function ISe(r){let e=r.taskCreationDefaults,t={title:"",dueDate:Ac(e.defaultDueDate,e.defaultDueTime),scheduledDate:Ac(e.defaultScheduledDate,e.defaultScheduledTime),priority:r.defaultPriority,status:r.defaultStatus,contexts:e.defaultContexts||"",tags:e.defaultTags||"",projectStrings:e.defaultProjects?qs(e.defaultProjects):[],timeEstimate:e.defaultTimeEstimate&&e.defaultTimeEstimate>0?e.defaultTimeEstimate:0,recurrenceRule:"",recurrenceAnchor:"scheduled",reminders:e.defaultReminders&&e.defaultReminders.length>0?EE(e.defaultReminders):[],userFields:oot(r.userFields||[])};return r.prePopulatedValues&&cot(t,r.prePopulatedValues,r.taskTag),t}function oot(r){let e={};for(let t of r)if(t.defaultValue!==void 0){if(t.type==="date"&&typeof t.defaultValue=="string"){let n=lot(t.defaultValue);n&&(e[t.key]=n);continue}e[t.key]=t.defaultValue}return e}function lot(r){return r!=="none"&&r!=="today"&&r!=="tomorrow"&&r!=="next-week"?"":OS(r)}function cot(r,e,t){if(e.title!==void 0&&(r.title=e.title),e.due!==void 0&&(r.dueDate=e.due),e.scheduled!==void 0&&(r.scheduledDate=e.scheduled),e.priority!==void 0&&(r.priority=e.priority),e.status!==void 0&&(r.status=e.status),e.contexts!==void 0&&(r.contexts=e.contexts.join(", ")),e.projects!==void 0&&(r.projectStrings=e.projects.filter(n=>n&&typeof n=="string"&&n.trim()!=="")),e.tags!==void 0&&(r.tags=za(e.tags.filter(n=>n!==t).join(", "))),e.timeEstimate!==void 0&&(r.timeEstimate=e.timeEstimate),e.recurrence!==void 0&&typeof e.recurrence=="string"&&(r.recurrenceRule=e.recurrence),e.recurrence_anchor!==void 0&&(r.recurrenceAnchor=e.recurrence_anchor),e.customFrontmatter)for(let[n,a]of Object.entries(e.customFrontmatter))r.userFields[n]=a}var NSe=y(()=>{Ct();IN();am()});async function RSe(r){var t;let e={updated:0,missing:0,skipped:0,failed:0};if(!r.currentTaskFile)return e;for(let n of r.subtaskFiles)try{let a=await r.getTaskInfo(n.path);if(!a){e.missing+=1;continue}let i=r.buildProjectReference(r.currentTaskFile,n.path),s=qq(a.projects,i,dot(r.currentTaskFile));if(!s){e.skipped+=1;continue}await r.updateTaskProjects(a,s),e.updated+=1}catch(a){e.failed+=1,(t=r.onError)==null||t.call(r,a,n)}return e}function qq(r,e,t){let a=(Array.isArray(r)?r:[]).filter(i=>typeof i=="string");return a.includes(e)||a.includes(t)?null:[...a,e]}function dot(r){return`[[${r.basename}]]`}var Wq=y(()=>{});function FSe(r){return r.replace(/\\/g,"/").replace(/\/+/g,"/").replace(/^\/+/,"")}async function OSe(r,e){return r.getAbstractFileByPath(e)?!0:r.adapter.exists(e,!1)}function LSe(r,e){if(!r||!e)throw new Error("Invalid context or settings provided");if(!r.title||typeof r.title!="string")throw new Error("Context must have a valid title");if(r.title.trim().length===0)throw new Error("Title cannot be empty");let t=r.date||new Date;if(!(t instanceof Date)||isNaN(t.getTime()))throw new Error("Invalid date provided in context");try{let n=e.icsIntegration;if(n)switch(n.icsNoteFilenameFormat){case"title":return Zr(r.title);case"zettel":return mg(t);case"timestamp":return jSe(t);case"custom":{let a={icsEventTitle:r.icsEventTitle?Zr(r.icsEventTitle):Zr(r.title),icsEventLocation:r.icsEventLocation?Zr(r.icsEventLocation):"",icsEventDescription:r.icsEventDescription?Zr(r.icsEventDescription.substring(0,50)):"",icsEventTitleWithDate:Zr(`${r.icsEventTitle||r.title} - ${M(t,"PPP")}`)};return Yq(r,n.customICSNoteFilenameTemplate,t,a)}default:return Zr(r.title)}return Zr(r.title)}catch(n){return fg.error("Error generating ICS note filename:",{category:"provider",operation:"generating-ics-note-filename",error:n}),Zr(r.title)}}function zSe(r,e){if(!r||!e)throw new Error("Invalid context or settings provided");if(!r.title||typeof r.title!="string")throw new Error("Context must have a valid title");if(r.title.trim().length===0)throw new Error("Title cannot be empty");let t=r.date||new Date;if(!(t instanceof Date)||isNaN(t.getTime()))throw new Error("Invalid date provided in context");if(e.storeTitleInFilename)return Zr(r.title);try{switch(e.taskFilenameFormat){case"title":return Zr(r.title);case"zettel":return mg(t);case"timestamp":return jSe(t);case"uuid":return $Se();case"custom":return Yq(r,e.customFilenameTemplate,t);default:return mg(t)}}catch(n){return fg.error("Error generating filename:",{category:"persistence",operation:"generating-filename",error:n}),mg(t)}}function NN(r,e,t){if(!r.storeTitleInFilename&&r.taskFilenameFormat!=="title")return!1;let n=Zr(e);return t.startsWith("task-")&&t!==n}function mg(r){let e=M(r,"yyMMdd"),t=new Date(r);t.setHours(0,0,0,0);let a=Math.floor((r.getTime()-t.getTime())/1e3).toString(36);return`${e}${a}`}function jSe(r){return M(r,"yyyy-MM-dd-HHmmss")}function $Se(){let r=typeof window!="undefined"?window.crypto:void 0;if(typeof(r==null?void 0:r.randomUUID)=="function")return r.randomUUID();let e=new Uint8Array(16);if(typeof(r==null?void 0:r.getRandomValues)=="function")r.getRandomValues(e);else for(let n=0;n<e.length;n++)e[n]=Math.floor(Math.random()*256);e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,n=>n.toString(16).padStart(2,"0"));return`${t.slice(0,4).join("")}-${t.slice(4,6).join("")}-${t.slice(6,8).join("")}-${t.slice(8,10).join("")}-${t.slice(10,16).join("")}`}function uot(r){return Array.isArray(r)?r.map(e=>Fl(e).trim()).filter(e=>e.length>0).map(e=>Zr(e)):[]}function pot(r){return r?r.replace(/[^a-zA-Z0-9]/g,"").substring(0,4).toUpperCase():""}function Yq(r,e,t,n){var a;if(!r||!e||!t)throw new Error("Invalid inputs for custom filename generation");if(typeof e!="string"||e.trim().length===0)throw new Error("Template must be a non-empty string");if(!(t instanceof Date)||isNaN(t.getTime()))throw new Error("Invalid date for filename generation");try{let i=Zr(r.title),s=r.priority&&["low","normal","medium","high"].includes(r.priority)?r.priority:"normal",o=r.status?Zr(r.status):"open",l=Array.isArray(r.contexts)?r.contexts:[],c=uot(r.projects),d=Array.isArray(r.tags)?r.tags:[],u={title:i,date:M(t,"yyyy-MM-dd"),time:M(t,"HHmmss"),priority:s,status:o,timestamp:M(t,"yyyy-MM-dd-HHmmss"),dateTime:M(t,"yyyy-MM-dd-HHmm"),year:M(t,"yyyy"),month:M(t,"MM"),day:M(t,"dd"),hour:M(t,"HH"),minute:M(t,"mm"),second:M(t,"ss"),dueDate:r.dueDate||"",scheduledDate:r.scheduledDate||"",context:l[0]?Zr(l[0]):"",contexts:l.map(m=>Zr(m)).join("/"),project:c[0]||"",projects:c.join("/"),projectId:pot(c[0]),tags:d.map(m=>Zr(m)).join(", "),hashtags:d.map(m=>`#${Zr(m)}`).join(" "),timeEstimate:((a=r.timeEstimate)==null?void 0:a.toString())||"",details:r.details?Zr(r.details.substring(0,50)):"",parentNote:r.parentNote?Zr(r.parentNote):"",shortDate:M(t,"yyMMdd"),shortYear:M(t,"yy"),monthName:M(t,"MMMM"),monthNameShort:M(t,"MMM"),dayName:M(t,"EEEE"),dayNameShort:M(t,"EEE"),week:M(t,"ww"),quarter:M(t,"q"),time12:M(t,"hh:mm a"),time24:M(t,"HH:mm"),hourPadded:M(t,"HH"),hour12:M(t,"hh"),ampm:M(t,"a"),unix:Math.floor(t.getTime()/1e3).toString(),unixMs:t.getTime().toString(),milliseconds:M(t,"SSS"),ms:M(t,"SSS"),timezone:M(t,"xxx"),timezoneShort:M(t,"xx"),utcOffset:M(t,"xxx"),utcOffsetShort:M(t,"xx"),utcZ:"Z",priorityShort:s.substring(0,1).toUpperCase(),statusShort:o.substring(0,1).toUpperCase(),titleLower:i.toLowerCase(),titleUpper:i.toUpperCase(),titleSnake:i.toLowerCase().replace(/\s+/g,"_"),titleKebab:i.toLowerCase().replace(/\s+/g,"-"),titleCamel:i.replace(/(?:^\w|[A-Z]|\b\w)/g,(m,f)=>f===0?m.toLowerCase():m.toUpperCase()).replace(/\s+/g,""),titlePascal:i.replace(/(?:^\w|[A-Z]|\b\w)/g,m=>m.toUpperCase()).replace(/\s+/g,""),zettel:mg(t),uuid:$Se(),nano:Date.now().toString()+Math.random().toString(36).substring(2,7),...n||{}},p=e;if(e.length>500)throw new Error("Template too long");return Object.entries(u).forEach(([m,f])=>{try{let h=new RegExp(`\\{\\{${m}\\}\\}`,"g");p=p.replace(h,f);let g=new RegExp(`\\{${m}\\}`,"g");p=p.replace(g,f)}catch(h){fg.warn(`Error replacing template variable ${m}:`,{category:"persistence",operation:"replacing-template-variable",error:h})}}),p=p.replace(/\{\{[^}]+\}\}/g,""),p=p.replace(/\{[^}]+\}/g,""),p.trim()||(p=i||mg(t)),Zr(p)}catch(i){return fg.error("Error generating custom filename:",{category:"persistence",operation:"generating-custom-filename",error:i}),Zr(r.title)||mg(t)}}function Zr(r){if(!r||typeof r!="string")return"untitled";try{let e=r.trim().replace(/\s+/g," ").replace(/[<>:"/\\|?*#[\]]/g,"").replace(/./g,n=>{let a=n.charCodeAt(0);return a<=31||a>=127&&a<=159?"":n}).replace(/^\.+|\.+$/g,"").trim();return(!e||e.length===0)&&(e="untitled"),["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"].includes(e.toUpperCase())&&(e=`task-${e}`),e}catch(e){return fg.error("Error sanitizing filename:",{category:"persistence",operation:"sanitizing-filename",error:e}),"untitled"}}async function Gk(r,e,t){if(!r||typeof r!="string")throw new Error("Base filename must be a non-empty string");if(typeof e!="string")throw new Error("Folder path must be a string");if(!t)throw new Error("Vault must be provided");let n=Zr(r);if(!n)throw new Error("Base filename cannot be sanitized to a valid name");let a=e.replace(/\.\./g,"").trim();try{let i=FSe(`${a}/${n}.md`);if(i.length>260)throw new Error("Generated path too long");if(!await OSe(t,i))return n;for(let l=2;l<=999;l++){let c=`${n}-${l}`,d=FSe(`${a}/${c}.md`);if(d.length>260)break;if(!await OSe(t,d))return c}let s=Date.now().toString(36),o=`${n.substring(0,50)}-${s}`;return Zr(o)}catch(i){return fg.error("Error generating unique filename:",{category:"persistence",operation:"generating-unique-filename",error:i}),`task-${Date.now().toString(36)}`}}function mot(r){let e=it(r);if(!(e instanceof Date)||isNaN(e.getTime()))throw new Error(`Invalid occurrence date: ${r}`);return{occurrenceDate:M(e,"yyyy-MM-dd"),occurrenceWeek:M(e,"RRRR-'W'II"),occurrenceMonth:M(e,"yyyy-MM"),occurrenceYear:M(e,"yyyy"),occurrenceMonthName:M(e,"MMMM")}}function BSe(r,e,t){try{let n=mot(t);return Yq(r,e,r.date||new Date,n)}catch(n){return fg.error("Error generating occurrence filename:",{category:"persistence",operation:"generating-occurrence-filename",error:n}),Zr(r.title)}}var fg,Kk=y(()=>{Wr();qn();K();Me();fg=N({tag:"Utils/FilenameGenerator"})});var WSe={};at(WSe,{TaskCreationModal:()=>Pm,getTaskCreationFailureNoticeMessage:()=>HSe,openCreatedTaskFileAfterSave:()=>qSe,shouldOpenCreatedTaskAfterSave:()=>VSe});function got(r){return r.disabled?!1:r.tabIndex>=0||hot.has(r.tagName)}function HSe(r){let e=r instanceof Error&&r.message?r.message:String(r);return e.startsWith(USe)?e.slice(USe.length):e}function VSe(r,e,t){return(r==="same-tab"||r==="new-tab")&&!e.createAnother&&!t}async function qSe(r,e,t){await(t==="new-tab"?r.workspace.getLeaf("tab"):r.workspace.getLeaf(!1)).openFile(e)}function yot(r,e,t){let n=(ZB(),NA(KB));return new n.EmbeddableMarkdownEditor(r,e,t)}var io,RN,USe,fot,hot,Pm,FN=y(()=>{io=require("obsidian");Hq();Ct();Lc();Me();CSe();PSe();NSe();Wq();cq();Kk();JB();Uq();K();RN=N({tag:"Modals/TaskCreationModal"}),USe="Failed to create task: ",fot=["button","a[href]","input","select","textarea","[tabindex]:not([tabindex='-1'])",".tn-task-modal__markdown-editor--nlp"].join(", "),hot=new Set(["A","BUTTON","INPUT","SELECT","TEXTAREA"]);Pm=class r extends Yk{constructor(t,n,a={}){super(t,n);this.nlInput=void 0;this.nlMarkdownEditor=null;this.nlPreviewContainer=void 0;this.nlButtonContainer=void 0;this.nlpSuggest=null;this.eventListeners=[];this.options=a,this.nlParser=ra.fromPlugin(n)}getModalTitle(){return this.t("modals.taskCreation.title")}isCreationMode(){return!0}addTrackedEventListener(t,n,a){t.addEventListener(n,a),this.eventListeners.push({element:t,event:n,handler:a})}removeAllEventListeners(){for(let{element:t,event:n,handler:a}of this.eventListeners)t.removeEventListener(n,a);this.eventListeners=[]}createPrimaryInput(t){this.plugin.settings.enableNaturalLanguageInput?this.createNaturalLanguageInput(t):(this.createTitleInput(t),this.isExpanded=!0,this.containerEl.addClass("expanded"))}createAdditionalSections(t){(this.options.prePopulatedValues&&this.options.prePopulatedValues.projects||this.selectedProjectItems.length>0)&&this.renderProjectsList()}createNaturalLanguageInput(t){let n=t.createDiv("nl-input-container"),a=n.createDiv("tn-task-modal__markdown-editor tn-task-modal__markdown-editor--nlp");a.setAttribute("role","textbox"),a.setAttribute("aria-label",this.t("modals.taskCreation.nlPlaceholder")),a.setAttribute("aria-multiline","true"),this.nlPreviewContainer=n.createDiv("nl-preview-container"),this.nlPreviewContainer.setAttribute("role","status"),this.nlPreviewContainer.setAttribute("aria-live","polite"),this.nlPreviewContainer.setAttribute("aria-label","Task preview");try{let i=xSe(this.plugin);this.nlMarkdownEditor=yot(this.app,a,{value:"",placeholder:this.t("modals.taskCreation.nlPlaceholder"),cls:"nlp-editor",extensions:i,enterVimInsertMode:!0,onChange:s=>{s.trim()?this.updateNaturalLanguagePreview(s.trim()):this.clearNaturalLanguagePreview()},onSubmit:(s,o)=>{this.handleSubmitShortcut(o)},onEscape:()=>{this.close()},onTab:(s,o)=>o?this.focusPreviousNaturalLanguageField(a):(this.isExpanded||this.expandModal(),window.setTimeout(()=>{let l=this.modalEl.querySelector(".title-input-detailed");l&&l.focus()},50),!0),onEnter:(s,o,l)=>!!o})}catch(i){RN.error("Failed to create NLP markdown editor:",{category:"persistence",operation:"create-nlp-markdown-editor",error:i}),this.nlInput=a.createEl("textarea",{cls:"nl-input",attr:{placeholder:this.t("modals.taskCreation.nlPlaceholder"),rows:"3"}});let s=()=>{let l=this.nlInput.value.trim();l?this.updateNaturalLanguagePreview(l):this.clearNaturalLanguagePreview()};this.addTrackedEventListener(this.nlInput,"input",s);let o=l=>{let c=this.nlInput.value.trim();if(!c)return;let d=l;d.key==="Enter"&&(d.ctrlKey||d.metaKey)?(d.preventDefault(),this.handleSubmitShortcut(d.shiftKey)):d.key==="Tab"&&d.shiftKey&&(d.preventDefault(),this.parseAndFillForm(c))};this.addTrackedEventListener(this.nlInput,"keydown",o),this.nlpSuggest=new Rk(this.app,this.nlInput,this.plugin)}}focusPreviousNaturalLanguageField(t){let n=this.modalEl.contains(t)?this.modalEl:this.contentEl,a=Array.from(n.querySelectorAll(fot)),i=a.findIndex(o=>o===t||t.contains(o));if(i<=0)return!0;let s=a.slice(0,i).reverse().find(got);return s&&window.setTimeout(()=>{s.focus()},50),!0}focusTitleInput(){if(!this.plugin.settings.enableNaturalLanguageInput){super.focusTitleInput();return}window.setTimeout(()=>{var n,a;let t=(a=(n=this.nlMarkdownEditor)==null?void 0:n.editor)==null?void 0:a.cm;if(t){t.focus(),t.scrollDOM.scrollTop=0;return}this.nlInput&&(this.nlInput.focus({preventScroll:!0}),this.nlInput.select())},this.getInitialFocusDelay())}updateNaturalLanguagePreview(t){if(!this.nlPreviewContainer)return;let n=this.nlParser.parseInput(t),a=this.nlParser.getPreviewData(n);a.length>0&&n.title?(this.nlPreviewContainer.empty(),this.nlPreviewContainer.classList.add("nl-preview-container--visible"),this.nlPreviewContainer.classList.remove("tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),a.forEach(i=>{let s=this.nlPreviewContainer.createDiv("nl-preview-item");s.textContent=i.text})):this.clearNaturalLanguagePreview()}clearNaturalLanguagePreview(){this.nlPreviewContainer&&(this.nlPreviewContainer.empty(),this.nlPreviewContainer.classList.remove("nl-preview-container--visible"),this.nlPreviewContainer.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"))}getNLPInputValue(){return this.nlMarkdownEditor?this.nlMarkdownEditor.value:this.nlInput?this.nlInput.value:""}createActionBar(t){if(this.actionBar=t.createDiv("tn-task-modal__action-bar"),this.plugin.settings.enableNaturalLanguageInput){this.createActionIcon(this.actionBar,"wand",this.t("modals.taskCreation.actions.fillFromNaturalLanguage"),(a,i)=>{let s=this.getNLPInputValue().trim();s&&this.parseAndFillForm(s)}),this.createActionIcon(this.actionBar,this.isExpanded?"chevron-up":"chevron-down",this.isExpanded?this.t("modals.taskCreation.actions.hideDetailedOptions"):this.t("modals.taskCreation.actions.showDetailedOptions"),(a,i)=>{this.toggleDetailedForm();let s=a.querySelector(".icon");s&&(0,io.setIcon)(s,this.isExpanded?"chevron-up":"chevron-down"),(0,io.setTooltip)(a,this.isExpanded?this.t("modals.taskCreation.actions.hideDetailedOptions"):this.t("modals.taskCreation.actions.showDetailedOptions"),{placement:"top"})});let n=this.actionBar.createDiv("action-separator");n.classList.remove("tn-static-width-100-0466783d","tn-static-width-12px-fbf353fb","tn-static-width-16px-7375d50b","tn-static-width-200px-2acaf3b5","tn-static-width-60px-bd09c419","tn-static-width-80px-8573bae3"),n.classList.add("tn-static-width-1px-aa77e27e"),n.classList.remove("tn-static-display-flex-4d51fc62","tn-static-height-0-7a31cef0","tn-static-height-100-62264068","tn-static-height-12px-06c0747e","tn-static-height-16px-30de4aee","tn-static-min-height-800px-997b4c8c"),n.classList.add("tn-static-height-24px-29a11d37"),n.classList.remove("tn-static-background-color-var-background-se-9087a23e","tn-static-background-color-var-color-base-40-ef5f175e","tn-static-background-color-var-color-red-134bc721","tn-static-background-color-var-text-accent-a954c70f"),n.classList.add("tn-static-background-color-var-background-mo-94b219f0"),n.classList.remove("tn-static-margin-0-11696618","tn-static-margin-0-auto-266e9b04","tn-static-margin-0-db0d5f36","tn-static-margin-2px-0-edce9b14","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-12px-43bef435","tn-static-padding-20px-ebe8e48c"),n.classList.add("tn-static-margin-0-var-size-4-2-77f7dc08")}this.createCoreActionIcons(this.actionBar),this.updateIconStates()}parseAndFillForm(t){let n=this.nlParser.parseInput(t);this.applyParsedData(n),this.isExpanded||this.expandModal()}applyParsedData(t){var n;if(t.title&&(this.title=t.title),t.status&&(this.status=t.status),t.priority&&(this.priority=t.priority),t.dueDate&&(this.dueDate=t.dueTime?La(t.dueDate,t.dueTime):t.dueDate),t.scheduledDate&&(this.scheduledDate=t.scheduledTime?La(t.scheduledDate,t.scheduledTime):t.scheduledDate),t.contexts&&t.contexts.length>0&&(this.contexts=t.contexts.join(", ")),t.tags&&t.tags.length>0&&(this.tags=za(t.tags.join(", "))),t.details&&(this.details=t.details),t.recurrence&&(this.recurrenceRule=t.recurrence),t.estimate!==void 0&&(this.timeEstimate=t.estimate>0?t.estimate:0,this.timeEstimateInput&&(this.timeEstimateInput.value=this.timeEstimate>0?this.timeEstimate.toString():"")),this.titleInput&&(this.titleInput.value=this.title),this.detailsInput&&(this.detailsInput.value=this.details),xpe(this.detailsMarkdownEditor,this.details),this.contextsInput&&(this.contextsInput.value=this.contexts),this.tagsInput&&(this.tagsInput.value=this.tags),t.projects&&t.projects.length>0&&(this.addProjectsFromStrings(t.projects),this.renderProjectsList()),t.userFields){for(let[a,i]of Object.entries(t.userFields)){let s=(n=this.plugin.settings.userFields)==null?void 0:n.find(o=>o.id===a);s&&(this.userFields[s.key]=i)}this.updateUserFieldControls()}this.updateIconStates()}toggleDetailedForm(){this.isExpanded?(this.isExpanded=!1,MN({detailsContainer:this.detailsContainer,splitRightColumn:this.splitRightColumn}),this.containerEl.removeClass("expanded")):this.expandModal()}async initializeFormData(){let t=ISe({defaultPriority:this.plugin.settings.defaultTaskPriority,defaultStatus:this.plugin.settings.defaultTaskStatus,taskCreationDefaults:this.plugin.settings.taskCreationDefaults,taskTag:this.plugin.settings.taskTag,userFields:this.plugin.settings.userFields,prePopulatedValues:this.options.prePopulatedValues});this.title=t.title,this.dueDate=t.dueDate,this.scheduledDate=t.scheduledDate,this.priority=t.priority,this.status=t.status,this.contexts=t.contexts,this.tags=t.tags,this.timeEstimate=t.timeEstimate,this.recurrenceRule=t.recurrenceRule,this.recurrenceAnchor=t.recurrenceAnchor,this.reminders=t.reminders,this.userFields=t.userFields,t.projectStrings.length>0&&this.initializeProjectsFromStrings(t.projectStrings),this.details=this.normalizeDetails(this.details),this.originalDetails=this.details}async handleSubmitShortcut(t){await this.handleSave({createAnother:t})}async handleSave(t={}){if(this.plugin.settings.enableNaturalLanguageInput){let n=this.getNLPInputValue().trim();if(n&&!this.title.trim()){let a=this.nlParser.parseInput(n);this.applyParsedData(a)}}if(!this.validateForm()){new io.Notice(this.t("modals.taskCreation.notices.titleRequired"));return}try{let n=this.buildTaskData(),a=await this.plugin.taskService.createTask(n,{applyDefaults:!1}),i=a.taskInfo;if(NN(this.plugin.settings,a.taskInfo.title,a.file.basename)?new io.Notice(this.t("modals.taskCreation.notices.successShortened",{title:i.title})):new io.Notice(this.t("modals.taskCreation.notices.success",{title:i.title})),this.blockingItems.length>0){let s=DSe(this.blockingItems);if(s.added.length>0){await this.plugin.taskService.updateBlockingRelationships(i,s.added,[],s.raw);let o=await this.plugin.cacheManager.getTaskInfo(i.path);o&&(i=o)}s.unresolved.length>0&&new io.Notice(this.t("modals.taskCreation.notices.blockingUnresolved",{entries:s.unresolved.join(", ")})),this.blockingItems=[]}this.selectedSubtaskFiles.length>0&&await this.applySubtaskAssignments(i),this.options.onTaskCreated&&this.options.onTaskCreated(i),await this.openCreatedTaskIfConfigured(a.file,t),this.close(),t.createAnother&&window.setTimeout(()=>{new r(this.app,this.plugin,this.options).open()},0)}catch(n){RN.error("Failed to create task:",{category:"persistence",operation:"create-task",error:n});let a=HSe(n);new io.Notice(this.t("modals.taskCreation.notices.failure",{message:a}))}}async openCreatedTaskIfConfigured(t,n){var i;let a=(i=this.plugin.settings.openTaskAfterCreation)!=null?i:"none";if(VSe(a,n,!!this.options.onTaskCreated))try{await qSe(this.app,t,a)}catch(s){RN.error("Failed to open created task note:",{category:"persistence",operation:"open-created-task-note",error:s}),new io.Notice(this.t("modals.taskCreation.notices.openCreatedTaskFailure"))}}buildTaskData(){var a;let t=ESe({title:this.title,dueDate:this.dueDate,scheduledDate:this.scheduledDate,priority:this.priority,status:this.status,contexts:this.contexts,projects:this.projects,tags:this.tags,timeEstimate:this.timeEstimate,recurrenceRule:this.recurrenceRule,recurrenceAnchor:this.recurrenceAnchor,reminders:this.reminders,blockedByItems:this.blockedByItems,details:this.details,userFields:this.userFields,creationContext:this.options.creationContext,taskIdentificationMethod:this.plugin.settings.taskIdentificationMethod,taskTag:this.plugin.settings.taskTag,normalizeDetails:i=>this.normalizeDetails(i)}),n=(a=this.options.prePopulatedValues)==null?void 0:a.customFrontmatter;return n&&(t.customFrontmatter={...n,...t.customFrontmatter}),t}createTitleInput(t){this.plugin.settings.enableNaturalLanguageInput||super.createTitleInput(t)}async applySubtaskAssignments(t){let n=this.app.vault.getAbstractFileByPath(t.path);n instanceof io.TFile&&await RSe({currentTaskFile:n,subtaskFiles:this.selectedSubtaskFiles,getTaskInfo:a=>this.plugin.cacheManager.getTaskInfo(a),buildProjectReference:(a,i)=>this.buildProjectReference(a,i),updateTaskProjects:(a,i)=>this.plugin.updateTaskProperty(a,"projects",i),onError:a=>{RN.error("Failed to assign subtask:",{category:"persistence",operation:"assign-subtask",error:a})}})}onClose(){this.nlMarkdownEditor&&(this.nlMarkdownEditor.destroy(),this.nlMarkdownEditor=null),this.nlpSuggest&&(this.nlpSuggest.close(),this.nlpSuggest=null),this.removeAllEventListeners(),super.onClose()}}});var Jk,BN,nW=y(()=>{Jk=class{constructor(){this.inFlightRequests=new Map;this.prefetchQueue=new Set;this.prefetchPromises=new Map;this.activeTimeouts=new Set}async execute(e,t,n=5e3){if(this.inFlightRequests.has(e))return this.inFlightRequests.get(e);let a=this.createRequest(e,t,n);return this.inFlightRequests.set(e,a),a}async createRequest(e,t,n){try{let a=await t(),i=window.setTimeout(()=>{this.inFlightRequests.delete(e),this.activeTimeouts.delete(i)},n);return this.activeTimeouts.add(i),a}catch(a){throw this.inFlightRequests.delete(e),a}}prefetch(e,t,n="low"){if(!(this.inFlightRequests.has(e)||this.prefetchPromises.has(e)))if(n==="high")this.executePrefetch(e,t);else if(this.prefetchQueue.add(e),"requestIdleCallback"in window)requestIdleCallback(()=>{this.processPrefetchQueue(e,t)});else{let i=window.setTimeout(()=>{this.processPrefetchQueue(e,t),this.activeTimeouts.delete(i)},50);this.activeTimeouts.add(i)}}async executePrefetch(e,t){try{let n=t();this.prefetchPromises.set(e,n),await n;let a=window.setTimeout(()=>{this.prefetchPromises.delete(e),this.activeTimeouts.delete(a)},3e4);this.activeTimeouts.add(a)}catch(n){this.prefetchPromises.delete(e)}}processPrefetchQueue(e,t){this.prefetchQueue.has(e)&&(this.prefetchQueue.delete(e),this.executePrefetch(e,t))}getPrefetchedData(e){return this.prefetchPromises.get(e)||null}cancel(e){this.inFlightRequests.delete(e),this.prefetchPromises.delete(e),this.prefetchQueue.delete(e)}cancelAll(){this.inFlightRequests.clear(),this.prefetchPromises.clear(),this.prefetchQueue.clear();for(let e of this.activeTimeouts)window.clearTimeout(e);this.activeTimeouts.clear()}getStats(){return{inFlightCount:this.inFlightRequests.size,prefetchCount:this.prefetchPromises.size,queuedCount:this.prefetchQueue.size}}},BN=class{constructor(e){this.lastAccessTime=new Map;this.deduplicator=e}recordAccess(e,t,n){let a=this.getDateKey(e);this.lastAccessTime.set(a,Date.now()),this.prefetchAdjacentDates(e,t,n)}prefetchAdjacentDates(e,t,n){this.getAdjacentDates(e).forEach(({date:i,priority:s})=>{let o=`${t}-${this.getDateKey(i)}`;this.deduplicator.prefetch(o,()=>n(i),s)})}getAdjacentDates(e){let t=[],n=new Date(e);n.setDate(e.getDate()-1),t.push({date:n,priority:"high"});let a=new Date(e);a.setDate(e.getDate()+1),t.push({date:a,priority:"high"});for(let i=2;i<=7;i++){let s=new Date(e);s.setDate(e.getDate()-i),t.push({date:s,priority:"low"});let o=new Date(e);o.setDate(e.getDate()+i),t.push({date:o,priority:"low"})}return t}getDateKey(e){return e.toISOString().split("T")[0]}cleanup(){let e=Date.now(),t=1440*60*1e3;for(let[n,a]of this.lastAccessTime)e-a>t&&this.lastAccessTime.delete(n)}}});var Oot,Xk,UN,yxe=y(()=>{K();Oot=N({tag:"Utils/DOMReconciler"}),Xk=class{constructor(){this.updateQueue=[];this.isProcessing=!1;this.activeTimeouts=new Set}scheduleUpdate(e){this.updateQueue.push(e),this.isProcessing||(this.isProcessing=!0,window.requestAnimationFrame(()=>{this.processUpdates()}))}processUpdates(){let e=[...this.updateQueue];this.updateQueue=[];try{e.forEach(t=>{try{t()}catch(n){Oot.error("Error processing DOM update:",{category:"validation",operation:"processing-dom-update",error:n})}})}finally{this.isProcessing=!1,this.updateQueue.length>0&&window.requestAnimationFrame(()=>{this.processUpdates()})}}updateAttributes(e,t){for(let[n,a]of Object.entries(t))a===null?e.removeAttribute(n):e.getAttribute(n)!==a&&e.setAttribute(n,a)}updateClasses(e,t){for(let[n,a]of Object.entries(t))a?e.classList.add(n):e.classList.remove(n)}updateTextContent(e,t){e.textContent!==t&&(e.textContent=t)}updateStyles(e,t){for(let[n,a]of Object.entries(t))a===null?e.style.removeProperty(n):e.style.setProperty(n,a)}preserveState(e){let t={scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,focused:activeDocument.activeElement===e,selection:null};return(e.instanceOf(HTMLInputElement)||e.instanceOf(HTMLTextAreaElement))&&(t.selection={start:e.selectionStart||0,end:e.selectionEnd||0}),t}restoreState(e,t){e.scrollTop=t.scrollTop,e.scrollLeft=t.scrollLeft,t.focused&&e.focus(),t.selection&&(e.instanceOf(HTMLInputElement)||e.instanceOf(HTMLTextAreaElement))&&e.setSelectionRange(t.selection.start,t.selection.end)}animateUpdate(e,t,n=1500){e.classList.add(`task-${t}`);let a=window.setTimeout(()=>{e.classList.remove(`task-${t}`),this.activeTimeouts.delete(a)},n);this.activeTimeouts.add(a)}updateList(e,t,n,a,i){let s=new Map,o=new Set;Array.from(e.children).forEach(d=>{let u=d.dataset.key;u&&(s.set(u,d),o.add(u))});let l=new Set(t.map(n)),c=activeWindow.createFragment();t.forEach(d=>{let u=n(d),p=s.get(u);if(p)i&&i(p,d),c.appendChild(p);else{let m=a(d);m.dataset.key=u,c.appendChild(m)}}),o.forEach(d=>{if(!l.has(d)){let u=s.get(d);u&&u.parentNode&&u.remove()}}),e.replaceChildren(c)}createOptimisticUpdate(e,t,n){return t(e),{commit:()=>{},revert:()=>{n(e)}}}destroy(){this.updateQueue=[],this.isProcessing=!1;for(let e of this.activeTimeouts)window.clearTimeout(e);this.activeTimeouts.clear()}},UN=class{constructor(){this.stateMap=new Map}saveState(e,t){let n=new Xk;this.stateMap.set(e,n.preserveState(t))}restoreState(e,t){let n=this.stateMap.get(e);n&&new Xk().restoreState(t,n)}clearState(e){e?this.stateMap.delete(e):this.stateMap.clear()}destroy(){this.stateMap.clear()}}});var vxe=y(()=>{p2()});var eb,aW=y(()=>{kS();Mc();eb=class r{constructor(e,t="open"){this.statuses=e;this.defaultStatus=t}normalizeStatusValue(e){var t;return(t=Yp(e,this.statuses))!=null?t:String(e)}findStatusIndex(e,t){let n=this.normalizeStatusValue(t);return e.findIndex(a=>this.normalizeStatusValue(a.value)===n)}getCycleStatuses(){return this.getStatusesByOrder().filter(e=>!e.excludeFromCycle)}getNextStatus(e){var l,c;let t=this.getStatusConfig(e),n=t?this.normalizeStatusValue(t.value):void 0,a=t!=null&&t.nextStatus?this.normalizeStatusValue(t.nextStatus):void 0,i=a&&a!==n?this.getStatusConfig(a):void 0;if(i)return i.value;let s=this.getCycleStatuses(),o=this.findStatusIndex(s,e);if(s.length===0)return(t==null?void 0:t.value)||this.defaultStatus;if(o!==-1){let d=(o+1)%s.length;return s[d].value}return t?((c=s.find(d=>d.order>t.order))==null?void 0:c.value)||s[0].value:((l=s[0])==null?void 0:l.value)||this.defaultStatus}getPreviousStatus(e){var i,s,o;let t=this.getCycleStatuses(),n=this.findStatusIndex(t,e);if(t.length===0)return((i=this.getStatusConfig(e))==null?void 0:i.value)||this.defaultStatus;if(n!==-1){let l=(n-1+t.length)%t.length;return t[l].value}let a=this.getStatusConfig(e);return a?((o=[...t].reverse().find(l=>l.order<a.order))==null?void 0:o.value)||t[t.length-1].value:((s=t[t.length-1])==null?void 0:s.value)||this.defaultStatus}getStatusConfig(e){let t=this.normalizeStatusValue(e);return this.statuses.find(n=>this.normalizeStatusValue(n.value)===t)}getCompletedStatuses(){return this.statuses.filter(e=>e.isCompleted).map(e=>e.value)}getOpenStatuses(){return this.statuses.filter(e=>!e.isCompleted).map(e=>e.value)}getStatusesByOrder(){return[...this.statuses].sort((e,t)=>e.order-t.order)}isCompletedStatus(e){let t=this.getStatusConfig(e);return(t==null?void 0:t.isCompleted)||!1}getStatusOrder(e){let t=this.getStatusConfig(e);return(t==null?void 0:t.order)||0}getStatusColorVariables(){return this.statuses.map(e=>[`--status-${e.value.replace(/[^a-zA-Z0-9-]/g,"-")}-color`,_r(e.color)])}getAllStatuses(){return[...this.statuses]}getNonCompletionStatuses(){return this.statuses.filter(e=>!e.isCompleted)}updateStatuses(e){this.statuses=e}static validateStatuses(e){let t=[];e.length<2&&t.push("At least 2 statuses are required"),e.some(l=>l.isCompleted)||t.push("At least one status must be marked as completed");let a=e.map(l=>l.value),i=new Set(a);a.length!==i.size&&t.push("Status values must be unique");let s=e.map(l=>l.id),o=new Set(s);s.length!==o.size&&t.push("Status IDs must be unique");for(let l of e){if(!l.value||l.value.trim()===""){t.push("Status values cannot be empty");break}if(!l.label||l.label.trim()===""){t.push("Status labels cannot be empty");break}if(!C_(l.color)){t.push("Status colors must be valid CSS colors or Obsidian theme colors");break}}return{valid:t.length===0,errors:t}}static generateStatusId(e){let t=new Set(e.map(i=>i.id)),n=1,a=`status-${n}`;for(;t.has(a);)n++,a=`status-${n}`;return a}static createDefaultStatus(e){let t=r.generateStatusId(e),n=Math.max(...e.map(a=>a.order),0)+1;return{id:t,value:"new-status",label:"New status",color:"#808080",isCompleted:!1,excludeFromCycle:!1,order:n,autoArchive:!1,autoArchiveDelay:5}}}});var HN,kxe=y(()=>{kS();Mc();HN=class r{constructor(e){this.priorities=e}normalizePriorityValue(e){var t;return(t=Gp(e,this.priorities))!=null?t:String(e)}getPriorityConfig(e){let t=this.normalizePriorityValue(e);return this.priorities.find(n=>n.value===t)}getPrioritiesByWeight(){return[...this.priorities].sort((e,t)=>t.weight-e.weight)}getPrioritiesByWeightAsc(){return[...this.priorities].sort((e,t)=>e.weight-t.weight)}getNextPriority(e){var s;let t=this.getPrioritiesByWeightAsc(),n=this.normalizePriorityValue(e),a=t.findIndex(o=>o.value===n);if(a===-1)return((s=t[0])==null?void 0:s.value)||"normal";let i=(a+1)%t.length;return t[i].value}comparePriorities(e,t){let n=this.getPriorityConfig(e),a=this.getPriorityConfig(t),i=(n==null?void 0:n.weight)||0;return((a==null?void 0:a.weight)||0)-i}getPriorityColorVariables(){return this.priorities.map(e=>[`--priority-${e.value.replace(/[^a-zA-Z0-9-]/g,"-")}-color`,_r(e.color)])}getAllPriorities(){return[...this.priorities]}updatePriorities(e){this.priorities=e}getHighestPriority(){var t;return(t=this.getPrioritiesByWeight()[0])==null?void 0:t.value}getLowestPriority(){var t;return(t=this.getPrioritiesByWeightAsc()[0])==null?void 0:t.value}getPriorityWeight(e){let t=this.getPriorityConfig(e);return(t==null?void 0:t.weight)||0}isHigherPriority(e,t){return this.comparePriorities(e,t)>0}static validatePriorities(e){let t=[];e.length<1&&t.push("At least 1 priority is required");let n=e.map(c=>c.value),a=new Set(n);n.length!==a.size&&t.push("Priority values must be unique");let i=e.map(c=>c.id),s=new Set(i);i.length!==s.size&&t.push("Priority IDs must be unique");let o=e.map(c=>c.weight),l=new Set(o);o.length!==l.size&&t.push("Priority weights must be unique");for(let c of e){if(!c.value||c.value.trim()===""){t.push("Priority values cannot be empty");break}if(!c.label||c.label.trim()===""){t.push("Priority labels cannot be empty");break}if(!C_(c.color)){t.push("Priority colors must be valid CSS colors or Obsidian theme colors");break}if(typeof c.weight!="number"||c.weight<0){t.push("Priority weights must be non-negative numbers");break}}return{valid:t.length===0,errors:t}}static generatePriorityId(e){let t=new Set(e.map(i=>i.id)),n=1,a=`priority-${n}`;for(;t.has(a);)n++,a=`priority-${n}`;return a}static generatePriorityWeight(e){let t=e.map(n=>n.weight);return t.length===0?1:Math.max(...t)+1}static createDefaultPriority(e){let t=r.generatePriorityId(e),n=r.generatePriorityWeight(e);return{id:t,value:"new-priority",label:"New priority",color:"#808080",weight:n}}}});function bxe({path:r,mappedTask:e,defaultTaskStatus:t,isBlocked:n,blockingTasks:a}){let i=e.timeEntries?Li(e.timeEntries):0;return{...e,id:r,path:r,title:e.title||"Untitled task",status:e.status||t,priority:e.priority||"normal",archived:e.archived||!1,tags:Array.isArray(e.tags)?e.tags:[],contexts:Array.isArray(e.contexts)?e.contexts:[],projects:Array.isArray(e.projects)?e.projects:[],totalTrackedTime:i,isBlocked:n,isBlocking:a.length>0,blocking:a.length>0?a:void 0}}var Txe=y(()=>{Ct()});function Lot(r){return!!r&&typeof r=="object"&&!Array.isArray(r)}function wxe(r,e){if(typeof r=="boolean"){let t=e.toLowerCase();if(t==="true"||t==="false")return r===(t==="true")}return r===e}function Sxe(r,e){if(!Lot(r))return!1;if(e.taskIdentificationMethod==="property"){let n=e.taskPropertyName,a=e.taskPropertyValue;if(!n||!a)return!1;let i=r[n];return i===void 0?!1:Array.isArray(i)?i.some(s=>wxe(s,a)):wxe(i,a)}return xc(r.tags).some(n=>br.matchesHierarchicalTagExact(n,e.taskTag))}var xxe=y(()=>{Du();Dv()});var Wo,gg,VN,Cxe=y(()=>{Wo=require("obsidian");Yr();kS();Me();mS();Txe();xxe();K();gg=N({tag:"Utils/TaskManager"}),VN=class extends Wo.Events{constructor(t,n,a){super();this.initialized=!1;this.eventListeners=[];this.debouncedHandlers=new Map;this.DEBOUNCE_DELAY=300;this.pendingTaskInfoByPath=new Map;this.filterIndexesBuilt=!1;this.indexedTaskPaths=new Set;this.taskFilterEntries=new Map;this.statusIndex=new Map;this.priorityIndex=new Map;this.dueDateIndex=new Map;this.scheduledDateIndex=new Map;this.tagCounts=new Map;this.contextCounts=new Map;this.projectCounts=new Map;this._dependencyCache=void 0;this.app=t,this.settings=n,this.taskTag=n.taskTag,this.excludedFolders=Sc(n.excludedFolders),this.fieldMapper=a,this.disableNoteIndexing=n.disableNoteIndexing,this.storeTitleInFilename=n.storeTitleInFilename}initialize(){this.initialized||(this.setupNativeEventListeners(),this.initialized=!0,this.trigger("cache-initialized",{message:"Task manager ready"}))}getApp(){return this.app}isTaskFile(t){return Sxe(t,this.settings)}setupNativeEventListeners(){let t=this.app.metadataCache.on("changed",(i,s,o)=>{i instanceof Wo.TFile&&i.extension==="md"&&this.isValidFile(i.path)&&this.handleFileChangedDebounced(i,o)});this.eventListeners.push(t);let n=this.app.metadataCache.on("deleted",(i,s)=>{i instanceof Wo.TFile&&i.extension==="md"&&this.handleFileDeleted(i.path,s)});this.eventListeners.push(n);let a=this.app.vault.on("rename",(i,s)=>{i instanceof Wo.TFile&&i.extension==="md"&&this.handleFileRenamed(i,s)});this.eventListeners.push(a)}handleFileChangedDebounced(t,n){let a=t.path,i=this.debouncedHandlers.get(a);i&&window.clearTimeout(i);let s=window.setTimeout(()=>{this.debouncedHandlers.delete(a),this.handleFileChanged(t,n)},this.DEBOUNCE_DELAY);this.debouncedHandlers.set(a,s)}async handleFileChanged(t,n){let a=null,i=!1;if(n&&typeof n=="object"&&"frontmatter"in n){let s=n.frontmatter;if(s&&this.isTaskFile(s)){let o=this.extractTaskInfoFromNative(t.path,s),l=this.getPendingTaskInfo(t.path);l&&this.shouldUsePendingTaskInfo(l,o)?a=l:(this.pendingTaskInfoByPath.delete(t.path),a=o)}else this.pendingTaskInfoByPath.delete(t.path)}i=this.updateFilterIndexesForFile(t.path,n),this.trigger("file-updated",{path:t.path,file:t,updatedTask:a,filterIndexChanged:i}),a&&this.trigger(ot,{path:t.path,task:a,taskInfo:a,updatedTask:a}),this.trigger("data-changed")}handleFileDeleted(t,n){this.pendingTaskInfoByPath.delete(t),this.removeFilterIndexEntry(t);let a=this.debouncedHandlers.get(t);a&&(window.clearTimeout(a),this.debouncedHandlers.delete(t)),this.trigger("file-deleted",{path:t,prevCache:n}),this.trigger("data-changed")}handleFileRenamed(t,n){let a=this.pendingTaskInfoByPath.get(n);a&&(this.pendingTaskInfoByPath.delete(n),this.pendingTaskInfoByPath.set(t.path,{...a,id:t.path,path:t.path}));let i=this.debouncedHandlers.get(n);i&&(window.clearTimeout(i),this.debouncedHandlers.delete(n)),this.removeFilterIndexEntry(n),this.updateFilterIndexesForFile(t.path,this.app.metadataCache.getFileCache(t)),this.trigger("file-renamed",{oldPath:n,newPath:t.path,file:t}),this.trigger("data-changed")}isValidFile(t){return!Cv(t,this.excludedFolders)}async getTaskInfo(t){if(!this.isValidFile(t))return null;let n=this.app.vault.getAbstractFileByPath(t);if(!(n instanceof Wo.TFile))return null;let a=this.getPendingTaskInfo(t),i=this.app.metadataCache.getFileCache(n);if(!(i!=null&&i.frontmatter)){if(a)return a;if(i)return null;let o=await this.readFrontmatterFromFile(n);return!o||!this.isTaskFile(o)?null:this.extractTaskInfoFromNative(t,o)}let s=this.isTaskFile(i.frontmatter)?this.extractTaskInfoFromNative(t,i.frontmatter):null;return a&&this.shouldUsePendingTaskInfo(a,s)?a:(this.pendingTaskInfoByPath.delete(t),s)}getPendingTaskInfo(t){var a;let n=this.pendingTaskInfoByPath.get(t);return n?{...n,id:(a=n.id)!=null?a:t,path:t}:null}shouldUsePendingTaskInfo(t,n){return n?t.dateModified?n.dateModified!==t.dateModified:!1:!0}extractTaskInfoFromNative(t,n){if(!n||!this.fieldMapper||!this.isTaskFile(n))return null;try{let a=this.fieldMapper.mapFromFrontmatter(n,t,this.storeTitleInFilename),i=!1,s=[];return this._dependencyCache?(i=this._dependencyCache.isTaskBlocked(t),s=this._dependencyCache.getBlockedTaskPaths(t)):i=Array.isArray(a.blockedBy)&&a.blockedBy.length>0,bxe({path:t,mappedTask:a,defaultTaskStatus:this.settings.defaultTaskStatus,isBlocked:i,blockingTasks:s})}catch(a){return gg.error(`Error extracting task info from native metadata for ${t}:`,{category:"persistence",operation:"extracting-task-info-native-metadata",error:a}),null}}ensureFilterIndexes(){if(!this.filterIndexesBuilt){this.clearFilterIndexes();for(let t of this.app.vault.getMarkdownFiles()){if(!this.isValidFile(t.path))continue;let n=this.app.metadataCache.getFileCache(t);if(n!=null&&n.frontmatter&&this.isTaskFile(n.frontmatter)){let a=this.createFilterIndexEntry(t.path,n.frontmatter);this.addFilterIndexEntry(a)}}this.filterIndexesBuilt=!0}}updateFilterIndexesForFile(t,n){var o;if(!this.filterIndexesBuilt)return!0;if(!this.isValidFile(t))return this.removeFilterIndexEntry(t);let a=(o=this.getFrontmatterFromCache(n))!=null?o:this.getFrontmatterForPath(t);if(!a||!this.isTaskFile(a))return this.removeFilterIndexEntry(t);let i=this.createFilterIndexEntry(t,a),s=this.taskFilterEntries.get(t);return(s==null?void 0:s.signature)===i.signature?!1:(s&&this.removeFilterIndexEntry(t),this.addFilterIndexEntry(i),!0)}updateFilterIndexesFromTaskInfo(t,n){if(!this.filterIndexesBuilt)return!0;if(!this.isValidFile(t))return this.removeFilterIndexEntry(t);let a=this.createFilterIndexEntryFromTaskInfo(t,n),i=this.taskFilterEntries.get(t);return(i==null?void 0:i.signature)===a.signature?!1:(i&&this.removeFilterIndexEntry(t),this.addFilterIndexEntry(a),!0)}getFrontmatterFromCache(t){if(!t||typeof t!="object"||!("frontmatter"in t))return null;let n=t.frontmatter;return!n||typeof n!="object"||Array.isArray(n)?null:n}getFrontmatterForPath(t){let n=this.app.vault.getAbstractFileByPath(t);return n instanceof Wo.TFile?this.getFrontmatterFromCache(this.app.metadataCache.getFileCache(n)):null}createFilterIndexEntry(t,n){var S,C,E,D,P,O,z,R,A,F;let a=((S=this.fieldMapper)==null?void 0:S.toUserField("status"))||"status",i=((C=this.fieldMapper)==null?void 0:C.toUserField("priority"))||"priority",s=((E=this.fieldMapper)==null?void 0:E.toUserField("scheduled"))||"scheduled",o=((D=this.fieldMapper)==null?void 0:D.toUserField("due"))||"due",l=((P=this.fieldMapper)==null?void 0:P.toUserField("contexts"))||"context",c=((O=this.fieldMapper)==null?void 0:O.toUserField("projects"))||"project",d=((z=this.fieldMapper)==null?void 0:z.toUserField("timeEstimate"))||"timeEstimate",u=(R=Yp(n[a],this.settings.customStatuses))!=null?R:void 0,p=(A=Gp(n[i],this.settings.customPriorities))!=null?A:void 0,m=this.normalizeDateValue(n[o]),f=this.normalizeDateValue(n[s]),h=this.normalizeStringValues(n.tags,!1),g=this.normalizeStringValues(n[l],!0),v=this.normalizeStringValues(n[c],!0),b=n[d],k=typeof b=="number"&&b>0?b:void 0,w=((F=this.settings.customStatuses)==null?void 0:F.some($=>$.value===u&&$.isCompleted))||!1;return this.withFilterIndexSignature({path:t,status:u,priority:p,dueDate:m,scheduledDate:f,tags:h,contexts:g,projects:v,timeEstimate:k,isCompleted:w,signature:""})}createFilterIndexEntryFromTaskInfo(t,n){var m,f,h;let a=(m=Yp(n.status,this.settings.customStatuses))!=null?m:void 0,i=(f=Gp(n.priority,this.settings.customPriorities))!=null?f:void 0,s=this.normalizeDateValue(n.due),o=this.normalizeDateValue(n.scheduled),l=this.normalizeStringValues(n.tags,!1),c=this.normalizeStringValues(n.contexts,!0),d=this.normalizeStringValues(n.projects,!0),u=typeof n.timeEstimate=="number"&&n.timeEstimate>0?n.timeEstimate:void 0,p=((h=this.settings.customStatuses)==null?void 0:h.some(g=>g.value===a&&g.isCompleted))||!1;return this.withFilterIndexSignature({path:t,status:a,priority:i,dueDate:s,scheduledDate:o,tags:l,contexts:c,projects:d,timeEstimate:u,isCompleted:p,signature:""})}withFilterIndexSignature(t){return{...t,signature:JSON.stringify({contexts:t.contexts,dueDate:t.dueDate,isCompleted:t.isCompleted,priority:t.priority,projects:t.projects,scheduledDate:t.scheduledDate,status:t.status,tags:t.tags,timeEstimate:t.timeEstimate})}}normalizeDateValue(t){if(typeof t!="string"||t.length===0)return;let n=de(t);return n.length>0?n:void 0}normalizeStringValues(t,n){let a=Array.isArray(t)?t:n&&t?[t]:[],i=new Set;for(let s of a){if(typeof s!="string")continue;let o=s.trim();o&&i.add(o)}return Array.from(i).sort()}addFilterIndexEntry(t){this.taskFilterEntries.set(t.path,t),this.indexedTaskPaths.add(t.path),this.addPathToIndex(this.statusIndex,t.status,t.path),this.addPathToIndex(this.priorityIndex,t.priority,t.path),this.addPathToIndex(this.dueDateIndex,t.dueDate,t.path),this.addPathToIndex(this.scheduledDateIndex,t.scheduledDate,t.path),this.incrementValues(this.tagCounts,t.tags),this.incrementValues(this.contextCounts,t.contexts),this.incrementValues(this.projectCounts,t.projects)}removeFilterIndexEntry(t){if(!this.filterIndexesBuilt)return!1;let n=this.taskFilterEntries.get(t);return n?(this.taskFilterEntries.delete(t),this.indexedTaskPaths.delete(t),this.removePathFromIndex(this.statusIndex,n.status,t),this.removePathFromIndex(this.priorityIndex,n.priority,t),this.removePathFromIndex(this.dueDateIndex,n.dueDate,t),this.removePathFromIndex(this.scheduledDateIndex,n.scheduledDate,t),this.decrementValues(this.tagCounts,n.tags),this.decrementValues(this.contextCounts,n.contexts),this.decrementValues(this.projectCounts,n.projects),!0):!1}addPathToIndex(t,n,a){if(!n)return;let i=t.get(n);if(i){i.add(a);return}t.set(n,new Set([a]))}removePathFromIndex(t,n,a){if(!n)return;let i=t.get(n);i&&(i.delete(a),i.size===0&&t.delete(n))}incrementValues(t,n){var a;for(let i of n)t.set(i,((a=t.get(i))!=null?a:0)+1)}decrementValues(t,n){var a;for(let i of n){let s=((a=t.get(i))!=null?a:0)-1;s>0?t.set(i,s):t.delete(i)}}sortedCountKeys(t){return Array.from(t.keys()).sort()}clearFilterIndexes(){this.indexedTaskPaths.clear(),this.taskFilterEntries.clear(),this.statusIndex.clear(),this.priorityIndex.clear(),this.dueDateIndex.clear(),this.scheduledDateIndex.clear(),this.tagCounts.clear(),this.contextCounts.clear(),this.projectCounts.clear()}async getAllTasks(){let t=[],n=this.app.vault.getMarkdownFiles();for(let a of n){if(!this.isValidFile(a.path))continue;let i=await this.getTaskInfo(a.path);i&&t.push(i)}return t}getAllCachedTasks(){let t=[],n=this.app.vault.getMarkdownFiles();for(let a of n){if(!this.isValidFile(a.path))continue;let i=this.getCachedTaskInfoSync(a.path);i&&t.push(i)}return t}getAllTaskPaths(){return this.ensureFilterIndexes(),new Set(this.indexedTaskPaths)}getTasksForDate(t){var a,i;let n=de(t);return this.ensureFilterIndexes(),Array.from(new Set([...(a=this.scheduledDateIndex.get(n))!=null?a:[],...(i=this.dueDateIndex.get(n))!=null?i:[]]))}getTaskPathsForDateRange(t,n,a){this.ensureFilterIndexes();let i=de(a),s=t==="due"?this.dueDateIndex:this.scheduledDateIndex,o=new Set;for(let[l,c]of s)if(this.matchesDateRange(l,n,i))for(let d of c)o.add(d);return o}matchesDateRange(t,n,a){switch(n){case"is-before":return t<a;case"is-after":return t>a;case"is-on-or-before":return t<=a;case"is-on-or-after":return t>=a;default:return!1}}getTaskPathsByStatus(t){var a,i;let n=(a=Yp(t,this.settings.customStatuses))!=null?a:t;return this.ensureFilterIndexes(),Array.from((i=this.statusIndex.get(n))!=null?i:[])}getTaskPathsByPriority(t){var a,i;let n=(a=Gp(t,this.settings.customPriorities))!=null?a:t;return this.ensureFilterIndexes(),Array.from((i=this.priorityIndex.get(n))!=null?i:[])}getOverdueTaskPaths(){let t=new Set,n=nn();this.ensureFilterIndexes();for(let[a,i]of this.dueDateIndex)if(Dh(a,n))for(let s of i){let o=this.taskFilterEntries.get(s);o&&!o.isCompleted&&t.add(s)}return t}getAllStatuses(){return this.ensureFilterIndexes(),Array.from(this.statusIndex.keys()).sort()}getAllPriorities(){return this.ensureFilterIndexes(),Array.from(this.priorityIndex.keys()).sort()}getAllTags(){return this.ensureFilterIndexes(),this.sortedCountKeys(this.tagCounts)}getAllContexts(){return this.ensureFilterIndexes(),this.sortedCountKeys(this.contextCounts)}getAllProjects(){return this.ensureFilterIndexes(),this.sortedCountKeys(this.projectCounts)}getAllTimeEstimates(){let t=new Map;this.ensureFilterIndexes();for(let[n,a]of this.taskFilterEntries)a.timeEstimate!==void 0&&t.set(n,a.timeEstimate);return t}async getNotesForDate(t){if(this.disableNoteIndexing)return[];let n=[],a=ce(t),i=this.app.vault.getMarkdownFiles();for(let s of i){if(!this.isValidFile(s.path))continue;let o=this.app.metadataCache.getFileCache(s);if(!(o!=null&&o.frontmatter)||this.isTaskFile(o.frontmatter))continue;(o.frontmatter.date||o.frontmatter.scheduled)===a&&n.push({path:s.path,title:this.storeTitleInFilename?s.basename:o.frontmatter.title||s.basename,tags:o.frontmatter.tags||[]})}return n}async getTaskByPath(t){return this.getTaskInfo(t)}async getCachedTaskInfo(t){return this.getTaskInfo(t)}getCachedTaskInfoSync(t){if(!this.isValidFile(t))return null;let n=this.app.vault.getAbstractFileByPath(t);if(!(n instanceof Wo.TFile))return null;let a=this.getPendingTaskInfo(t),i=this.app.metadataCache.getFileCache(n);if(!(i!=null&&i.frontmatter))return a;let s=this.isTaskFile(i.frontmatter)?this.extractTaskInfoFromNative(t,i.frontmatter):null;return a&&this.shouldUsePendingTaskInfo(a,s)?a:(this.pendingTaskInfoByPath.delete(t),s)}async readFrontmatterFromFile(t){try{let n=await this.app.vault.read(t);return this.parseFrontmatterFromContent(n,t.path)}catch(n){return gg.warn(`TaskManager: Failed to read frontmatter fallback for ${t.path}`,{category:"validation",operation:"taskmanager-read-frontmatter-fallback",error:n}),null}}parseFrontmatterFromContent(t,n){let a=t.match(/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/);if(!a)return null;try{let i=(0,Wo.parseYaml)(a[1]||"");return!i||typeof i!="object"||Array.isArray(i)?null:i}catch(i){let s=n?` for ${n}`:"";return gg.warn(`TaskManager: Failed to parse frontmatter fallback${s}`,{category:"validation",operation:"taskmanager-parse-frontmatter-fallback",details:n?{path:n}:void 0,error:i}),null}}isInitialized(){return this.initialized}destroy(){this.debouncedHandlers.forEach(t=>{window.clearTimeout(t)}),this.debouncedHandlers.clear(),this.eventListeners.forEach(t=>{this.app.metadataCache.offref(t)}),this.eventListeners=[],this.clearFilterIndexes(),this.filterIndexesBuilt=!1,this.initialized=!1}setDependencyCache(t){this._dependencyCache=t}getBlockingTaskPaths(t){return this._dependencyCache?this._dependencyCache.getBlockingTaskPaths(t):(gg.warn("DependencyCache not set in TaskManager",{category:"stale-data",operation:"dependencycache-not-set-taskmanager"}),[])}getBlockedTaskPaths(t){return this._dependencyCache?this._dependencyCache.getBlockedTaskPaths(t):(gg.warn("DependencyCache not set in TaskManager",{category:"stale-data",operation:"dependencycache-not-set-taskmanager"}),[])}isTaskBlocked(t){return this._dependencyCache?this._dependencyCache.isTaskBlocked(t):!1}getTasksReferencingProject(t){return this._dependencyCache?this._dependencyCache.getTasksReferencingProject(t):(gg.warn("DependencyCache not set in TaskManager",{category:"stale-data",operation:"dependencycache-not-set-taskmanager"}),[])}isFileUsedAsProject(t){return this._dependencyCache?this._dependencyCache.isFileUsedAsProject(t):!1}async waitForFreshTaskData(t,n=10){let a=typeof t=="string"?t:t.path,i=typeof t=="string"?this.app.vault.getAbstractFileByPath(a):t;if(!(i instanceof Wo.TFile)){await new Promise(s=>window.setTimeout(s,100));return}for(let s=0;s<n;s++){let o=this.app.metadataCache.getFileCache(i);if(o!=null&&o.frontmatter)return;await new Promise(l=>window.setTimeout(l,50*(s+1)))}gg.warn(`TaskManager: Metadata cache not ready for ${a} after ${n} retries`,{category:"stale-data",operation:"taskmanager-metadata-cache-not-ready"})}updateConfig(t){this.settings=t,this.taskTag=t.taskTag,this.excludedFolders=Sc(t.excludedFolders),this.disableNoteIndexing=t.disableNoteIndexing,this.storeTitleInFilename=t.storeTitleInFilename,this.clearFilterIndexes(),this.filterIndexesBuilt=!1,this.pruneExcludedPendingTaskInfo(),this.trigger("data-changed")}pruneExcludedPendingTaskInfo(){for(let t of this.pendingTaskInfoByPath.keys())this.isValidFile(t)||this.pendingTaskInfoByPath.delete(t)}subscribe(t,n){return this.on(t,n),()=>{this.off(t,n)}}async getCalendarData(t,n){let a=await this.getAllTasks(),i={};for(let s of a)s.scheduled&&(i[s.scheduled]||(i[s.scheduled]=[]),i[s.scheduled].push(s)),s.due&&(i[s.due]||(i[s.due]=[]),i[s.due].includes(s)||i[s.due].push(s));return i}async getTaskInfoForDate(t){let n=ce(t),a=this.getTasksForDate(n),i=[];for(let s of a){let o=await this.getTaskInfo(s);o&&i.push(o)}return i}getTaskPathsByDate(t){return new Set(this.getTasksForDate(t))}getAllProjectsWithDetails(){return[]}getAllProjectFiles(){return[]}async rebuildDailyNotesCache(t,n){}async clearAllCaches(){this.pendingTaskInfoByPath.clear(),this.clearFilterIndexes(),this.filterIndexesBuilt=!1,this.trigger("data-changed")}clearCacheEntry(t){this.pendingTaskInfoByPath.delete(t),this.removeFilterIndexEntry(t)}updateTaskInfoInCache(t,n){var i;let a=!1;if(!this.isValidFile(t)){this.pendingTaskInfoByPath.delete(t),a=this.removeFilterIndexEntry(t),this.trigger("data-changed");return}this.pendingTaskInfoByPath.set(t,{...n,id:(i=n.id)!=null?i:t,path:t}),a=this.updateFilterIndexesFromTaskInfo(t,n),this.trigger("file-updated",{path:t,updatedTask:n,filterIndexChanged:a})}}});var yg,qN,Am,WN,iW=y(()=>{yg=require("obsidian");Io();mS();K();qN=N({tag:"Utils/DependencyCache"}),Am="dependency-cache-changed",WN=class extends yg.Events{constructor(t,n,a,i,s){super();this.dependencySources=new Map;this.dependencyTargets=new Map;this.activeDependencySources=new Map;this.activeDependencyTargets=new Map;this.projectReferences=new Map;this.projectReferenceSources=new Map;this.relationshipFingerprints=new Map;this.completedStatusByPath=new Map;this.initialized=!1;this.indexesBuilt=!1;this.eventListeners=[];this.app=t,this.settings=n,this.excludedFolders=Sc(n.excludedFolders),this.fieldMapper=a,this.statusManager=i,this.isTaskFileCallback=s}initialize(){this.initialized||(this.setupEventListeners(),this.initialized=!0)}async buildIndexes(){if(this.indexesBuilt)return;let t=this.app.vault.getMarkdownFiles();for(let n of t){if(!this.isValidFile(n.path))continue;let a=this.app.metadataCache.getFileCache(n);!(a!=null&&a.frontmatter)||!this.isTaskFileCallback(a.frontmatter)||this.indexTaskFile(n.path,a.frontmatter)}this.indexesBuilt=!0,this.trigger(Am)}setupEventListeners(){let t=this.app.metadataCache.on("changed",(i,s,o)=>{i instanceof yg.TFile&&i.extension==="md"&&this.handleFileChanged(i,o)});this.eventListeners.push(t);let n=this.app.metadataCache.on("deleted",(i,s)=>{i instanceof yg.TFile&&i.extension==="md"&&this.handleFileDeleted(i.path)});this.eventListeners.push(n);let a=this.app.vault.on("rename",(i,s)=>{i instanceof yg.TFile&&i.extension==="md"&&this.handleFileRenamed(i,s)});this.eventListeners.push(a)}handleFileChanged(t,n){var o;let a=this.getFileRelationshipSignature(t.path);if(!this.isValidFile(t.path)){this.clearFileFromIndexes(t.path),this.triggerIfFileRelationshipsChanged(t.path,a);return}let i=(o=this.getFrontmatterFromCache(n))!=null?o:this.getFrontmatterForFile(t);if(this.updateCompletionState(t.path,i),!i){this.hasForwardRelationships(t.path)&&this.clearForwardDependencies(t.path),this.triggerIfFileRelationshipsChanged(t.path,a);return}if(!this.isTaskFileCallback(i)){this.hasForwardRelationships(t.path)&&this.clearForwardDependencies(t.path),this.triggerIfFileRelationshipsChanged(t.path,a);return}let s=this.buildRelationshipFingerprint(i);if(this.relationshipFingerprints.get(t.path)===s){this.triggerIfFileRelationshipsChanged(t.path,a);return}this.clearForwardDependencies(t.path),this.indexTaskFile(t.path,i),this.triggerIfFileRelationshipsChanged(t.path,a)}triggerIfFileRelationshipsChanged(t,n){this.getFileRelationshipSignature(t)!==n&&this.trigger(Am)}getFileRelationshipSignature(t){let n=this.sortedSetValues(this.dependencySources.get(t)),a=this.sortedSetValues(this.activeDependencyTargets.get(t)),i=this.sortedSetValues(this.projectReferenceSources.get(t)),s=this.sortedSetValues(this.projectReferences.get(t));return JSON.stringify({blockedTasks:a,blockingTasks:n,projectTasks:s,referencedProjects:i})}sortedSetValues(t){return t?Array.from(t).sort():[]}handleFileDeleted(t){this.clearFileFromIndexes(t),this.trigger(Am)}handleFileRenamed(t,n){let a=this.getFrontmatterForFile(t);this.clearFileFromIndexes(n),this.isValidFile(t.path)&&a&&this.isTaskFileCallback(a)&&this.indexTaskFile(t.path,a),this.trigger(Am)}getFrontmatterForFile(t){let n=this.app.metadataCache.getFileCache(t);return this.getFrontmatterFromCache(n)}getFrontmatterFromCache(t){if(!t||typeof t!="object"||!("frontmatter"in t))return null;let n=t.frontmatter;return!n||typeof n!="object"||Array.isArray(n)?null:n}resolveProjectReference(t,n){if(!n||typeof n!="string")return null;let a=n.trim();if(!a)return null;let i=Ol(this.app,t,a);return(i==null?void 0:i.path)||null}indexTaskFile(t,n){var l,c;if(!this.isValidFile(t))return;this.relationshipFingerprints.set(t,this.buildRelationshipFingerprint(n)),this.completedStatusByPath.set(t,this.isCompletedFrontmatter(n));let a=((l=this.fieldMapper)==null?void 0:l.toUserField("blockedBy"))||"blockedBy",i=((c=this.fieldMapper)==null?void 0:c.toUserField("projects"))||"project",s=n[a];if(s){let d=Fh(s);if(d){let u=new Set;for(let p of d){let m=Ol(this.app,t,p);m!=null&&m.path&&this.isValidFile(m.path)&&this.addDependencyLink(t,m.path,u)}u.size>0&&this.dependencySources.set(t,u)}}let o=n[i];if(o){let d=Array.isArray(o)?o:[o];for(let u of d)if(typeof u=="string"){let p=this.resolveProjectReference(t,u);p&&this.isValidFile(p)&&(this.projectReferences.has(p)||this.projectReferences.set(p,new Set),this.projectReferences.get(p).add(t),this.projectReferenceSources.has(t)||this.projectReferenceSources.set(t,new Set),this.projectReferenceSources.get(t).add(p))}}}addDependencyLink(t,n,a){a.add(n),this.dependencyTargets.has(n)||this.dependencyTargets.set(n,new Set),this.dependencyTargets.get(n).add(t),this.isCompletedPath(n)||this.addActiveDependencyLink(t,n)}addActiveDependencyLink(t,n){this.activeDependencySources.has(t)||this.activeDependencySources.set(t,new Set),this.activeDependencySources.get(t).add(n),this.activeDependencyTargets.has(n)||this.activeDependencyTargets.set(n,new Set),this.activeDependencyTargets.get(n).add(t)}removeActiveDependencyLink(t,n){let a=this.activeDependencySources.get(t);a&&(a.delete(n),a.size===0&&this.activeDependencySources.delete(t));let i=this.activeDependencyTargets.get(n);i&&(i.delete(t),i.size===0&&this.activeDependencyTargets.delete(n))}rebuildActiveLinksForBlocker(t){let n=this.dependencyTargets.get(t);if(this.activeDependencyTargets.delete(t),!!n){for(let a of n){let i=this.activeDependencySources.get(a);i&&(i.delete(t),i.size===0&&this.activeDependencySources.delete(a))}if(!this.isCompletedPath(t))for(let a of n)this.addActiveDependencyLink(a,t)}}buildRelationshipFingerprint(t){var o,l,c;let n=((o=this.fieldMapper)==null?void 0:o.toUserField("blockedBy"))||"blockedBy",a=((l=this.fieldMapper)==null?void 0:l.toUserField("projects"))||"project",i=((c=Fh(t[n]))!=null?c:[]).map(d=>d.uid).filter(d=>d.length>0).sort(),s=this.normalizeProjectFingerprintValues(t[a]);return JSON.stringify({dependencies:i,projects:s})}normalizeProjectFingerprintValues(t){let n=Array.isArray(t)?t:t?[t]:[],a=new Set;for(let i of n){if(typeof i!="string")continue;let s=i.trim();s&&a.add(s)}return Array.from(a).sort()}hasForwardRelationships(t){return this.relationshipFingerprints.has(t)||this.dependencySources.has(t)||this.projectReferenceSources.has(t)}updateCompletionState(t,n){var s;let a=(s=this.completedStatusByPath.get(t))!=null?s:!1,i=n?this.isCompletedFrontmatter(n):!1;this.completedStatusByPath.set(t,i),a!==i&&this.rebuildActiveLinksForBlocker(t)}isCompletedPath(t){let n=this.completedStatusByPath.get(t);if(n!==void 0)return n;let a=this.app.vault.getAbstractFileByPath(t);if(!(a instanceof yg.TFile))return this.completedStatusByPath.set(t,!1),!1;let i=this.getFrontmatterForFile(a),s=i?this.isCompletedFrontmatter(i):!1;return this.completedStatusByPath.set(t,s),s}isCompletedFrontmatter(t){var s;let n=((s=this.fieldMapper)==null?void 0:s.toUserField("status"))||"status",a=t[n],i=this.stringifyStatusValue(a);return!!(i&&this.statusManager.isCompletedStatus(i))}stringifyStatusValue(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"?String(t):null}clearForwardDependencies(t){let n=this.dependencySources.get(t);if(n){for(let i of n){let s=this.dependencyTargets.get(i);s&&(s.delete(t),s.size===0&&this.dependencyTargets.delete(i)),this.removeActiveDependencyLink(t,i)}this.dependencySources.delete(t)}this.activeDependencySources.delete(t);let a=this.projectReferenceSources.get(t);if(a){for(let i of a){let s=this.projectReferences.get(i);s&&(s.delete(t),s.size===0&&this.projectReferences.delete(i))}this.projectReferenceSources.delete(t)}this.relationshipFingerprints.delete(t)}clearFileFromIndexes(t){let n=this.dependencySources.get(t);if(n){for(let o of n){let l=this.dependencyTargets.get(o);l&&(l.delete(t),l.size===0&&this.dependencyTargets.delete(o)),this.removeActiveDependencyLink(t,o)}this.dependencySources.delete(t)}this.activeDependencySources.delete(t);let a=this.dependencyTargets.get(t);if(a){for(let o of a){let l=this.dependencySources.get(o);l&&(l.delete(t),l.size===0&&this.dependencySources.delete(o)),this.removeActiveDependencyLink(o,t)}this.dependencyTargets.delete(t)}this.activeDependencyTargets.delete(t);let i=this.projectReferenceSources.get(t);if(i){for(let o of i){let l=this.projectReferences.get(o);l&&(l.delete(t),l.size===0&&this.projectReferences.delete(o))}this.projectReferenceSources.delete(t)}let s=this.projectReferences.get(t);if(s){for(let o of s){let l=this.projectReferenceSources.get(o);l&&(l.delete(t),l.size===0&&this.projectReferenceSources.delete(o))}this.projectReferences.delete(t)}this.relationshipFingerprints.delete(t),this.completedStatusByPath.delete(t)}getBlockingTaskPaths(t){this.indexesBuilt||(qN.warn("DependencyCache: getBlockingTaskPaths called before indexes built, building now...",{category:"stale-data",operation:"dependencycache-getblockingtaskpaths-called-indexes-built-building-now"}),this.buildIndexesSync());let n=this.dependencySources.get(t);return n?Array.from(n):[]}getBlockedTaskPaths(t){this.indexesBuilt||(qN.warn("DependencyCache: getBlockedTaskPaths called before indexes built, building now...",{category:"stale-data",operation:"dependencycache-getblockedtaskpaths-called-indexes-built-building-now"}),this.buildIndexesSync());let n=this.activeDependencyTargets.get(t);return n?Array.from(n):[]}isTaskBlocked(t){var n,a;return this.indexesBuilt||this.buildIndexesSync(),((a=(n=this.activeDependencySources.get(t))==null?void 0:n.size)!=null?a:0)>0}getTasksReferencingProject(t){this.indexesBuilt||(qN.warn("DependencyCache: getTasksReferencingProject called before indexes built, building now...",{category:"stale-data",operation:"dependencycache-gettasksreferencingproject-called-indexes-built-building-now"}),this.buildIndexesSync());let n=this.projectReferences.get(t);return n?Array.from(n):[]}isFileUsedAsProject(t){return this.indexesBuilt||(qN.warn("DependencyCache: isFileUsedAsProject called before indexes built, building now...",{category:"stale-data",operation:"dependencycache-isfileusedasproject-called-indexes-built-building-now"}),this.buildIndexesSync()),this.projectReferences.has(t)}buildIndexesSync(){if(this.indexesBuilt)return;let t=this.app.vault.getMarkdownFiles();for(let n of t){if(!this.isValidFile(n.path))continue;let a=this.app.metadataCache.getFileCache(n);!(a!=null&&a.frontmatter)||!this.isTaskFileCallback(a.frontmatter)||this.indexTaskFile(n.path,a.frontmatter)}this.indexesBuilt=!0,this.trigger(Am)}updateConfig(t){this.settings=t,this.excludedFolders=Sc(t.excludedFolders),this.clearIndexes(),this.indexesBuilt=!1}isValidFile(t){return!Cv(t,this.excludedFolders)}clearIndexes(){this.dependencySources.clear(),this.dependencyTargets.clear(),this.activeDependencySources.clear(),this.activeDependencyTargets.clear(),this.projectReferences.clear(),this.projectReferenceSources.clear(),this.relationshipFingerprints.clear(),this.completedStatusByPath.clear()}destroy(){this.eventListeners.forEach(t=>{this.app.metadataCache.offref(t)}),this.eventListeners=[],this.clearIndexes(),this.initialized=!1,this.indexesBuilt=!1}}});function Yo(r){let e=Ixe(r),t=e.match(GN);if(t){let[,a,i,s]=t,o=Number(a),l=Number(i),c=Number(s);if(!Rxe(o,l,c))throw new Error(`Invalid date "${r}".`);return new Date(Date.UTC(o,l-1,c,0,0,0,0))}if(!Nxe(e))throw new Error(`Invalid date "${r}".`);let n=new Date(e);if(!KN(n))throw new Error(`Invalid date "${r}".`);return n}function jot(r){let e=Ixe(r),t=e.match(GN);if(t){let[,a,i,s]=t,o=Number(a),l=Number(i),c=Number(s),d=new Date(o,l-1,c,0,0,0,0);if(!KN(d)||d.getFullYear()!==o||d.getMonth()!==l-1||d.getDate()!==c)throw new Error(`Invalid date "${r}".`);return d}if(!Nxe(e))throw new Error(`Invalid date "${r}".`);let n=new Date(e);if(!KN(n))throw new Error(`Invalid date "${r}".`);return n}function Jc(r){if(!KN(r))return"";let e=r.getUTCFullYear(),t=String(r.getUTCMonth()+1).padStart(2,"0"),n=String(r.getUTCDate()).padStart(2,"0");return`${e}-${t}-${n}`}function $ot(r){return Jc(r)}function Bot(){let r=new Date,e=r.getFullYear(),t=String(r.getMonth()+1).padStart(2,"0"),n=String(r.getDate()).padStart(2,"0");return`${e}-${t}-${n}`}function oW(r){return Yo(_m(r))}function Uot(r){if(!/^\d{4}-\d{2}-\d{2}$/.test(r))throw new Error(`Invalid date "${r}". Expected YYYY-MM-DD.`);return Yo(r),r}function Hot(r){return r?/T\d{2}:\d{2}/.test(r):!1}function _m(r){if(!r)return"";let e=r.trim();if(GN.test(e))return e;let t=e.indexOf("T");if(t>-1)return e.slice(0,t);let n=e.indexOf(" ");return n>-1&&GN.test(e.slice(0,n))?e.slice(0,n):Jc(Yo(e))}function Ixe(r,e="Date string cannot be empty"){if(!r||r.trim().length===0)throw new Error(e);return r.trim()}function Nxe(r){let e=r.match(zot);if(!e)return!1;let[,t,n,a,i,s,o,,l,c,d]=e;return Rxe(Number(t),Number(n),Number(a))&&Vot(Number(i),Number(s),Number(o))&&qot(l,c,d)}function Rxe(r,e,t){let n=new Date(Date.UTC(r,e-1,t,0,0,0,0));return n.getUTCFullYear()===r&&n.getUTCMonth()===e-1&&n.getUTCDate()===t}function Vot(r,e,t){return r>=0&&r<=23&&e>=0&&e<=59&&t>=0&&t<=59}function qot(r,e,t){if(!r)return!0;let n=Number(e),a=Number(t);return!(n>14||a>59||n===14&&a!==0)}function KN(r){return r instanceof Date&&!Number.isNaN(r.getTime())}function Fxe(r,e){if(!r.recurrence||typeof r.recurrence!="string")return!0;try{let t=Lxe(r);if(!t)return!1;let n=oW($ot(e));return t.between(n,new Date(n.getTime()+1440*60*1e3-1),!0).length>0}catch(t){return!0}}function Oxe(r,e,t){if(!r.recurrence||typeof r.recurrence!="string")return[];try{let n=Lxe(r);if(!n)return[];let a=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),0,0,0,0)),i=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),23,59,59,999));return n.between(a,i,!0)}catch(n){let a=[],i=new Date(e);for(;i<=t;)Fxe(r,i)&&a.push(new Date(i)),i.setUTCDate(i.getUTCDate()+1);return a}}function Wot(r,e={}){return r.recurrence?(r.recurrence_anchor||"scheduled")==="completion"?tlt(r,e):elt(r,e):null}function Yot(r,e=!0,t={}){let n=Wot(r,t),a=null,i=null,s=null;if(n){try{let o=r.scheduled?Yo(_m(r.scheduled)):null,l=r.due?Yo(_m(r.due)):null;if(o&&l){let c=!e&&l.getTime()<n.getTime();if(e||c){let d=l.getTime()-o.getTime();s=new Date(n.getTime()+d)}}}catch(o){s=null}r.scheduled&&r.scheduled.includes("T")?a=`${Jc(n)}T${r.scheduled.split("T")[1]}`:a=Jc(n),s&&r.due&&r.due.includes("T")?i=`${Jc(s)}T${r.due.split("T")[1]}`:s&&(i=Jc(s))}return{scheduled:a,due:i}}function Got(r){if(!r.recurrence||typeof r.recurrence!="string")return null;if(r.recurrence.includes("DTSTART:"))return r.recurrence;let e=r.scheduled||r.dateCreated;return e?`DTSTART:${jxe(e)};${r.recurrence}`:null}function Kot(r,e){if(!r||typeof r!="string")return null;let t=jxe(e);return r.includes("DTSTART:")?r.replace(/DTSTART:[^;]+;?/,`DTSTART:${t};`):`DTSTART:${t};${r}`}function Lxe(r){if(!r.recurrence||typeof r.recurrence!="string")return null;let e=Zot(r);if(!e)return null;let t=r.recurrence.replace(/DTSTART:[^;]+;?/,"").replace(/^;/,"").trim(),n=Exe.parseString(t);return n.dtstart=e,new Exe(n)}function Zot(r){return r.recurrence?lW(r.recurrence)||(r.scheduled?oW(r.scheduled):null)||(r.dateCreated?oW(r.dateCreated):null):null}function lW(r){let e=r.match(/DTSTART:(\d{8}(?:T\d{6}Z?)?)/);return e?Qot(e[1],!1):null}function Qot(r,e){let t=Number(r.slice(0,4)),n=Number(r.slice(4,6))-1,a=Number(r.slice(6,8));if(r.length===8)return e?new Date(Date.UTC(t,n,a,23,59,59,999)):new Date(Date.UTC(t,n,a,0,0,0,0));let i=Number(r.slice(9,11))||0,s=Number(r.slice(11,13))||0,o=Number(r.slice(13,15))||0;return new Date(Date.UTC(t,n,a,i,s,o,0))}function Jot(r){let e=r.match(/INTERVAL=(\d+)/);return e?Number.parseInt(e[1],10):1}function zxe(r){let e=Jot(r);return r.includes("FREQ=DAILY")?Math.max(30,e*2):r.includes("FREQ=WEEKLY")?Math.max(90,e*7*2):r.includes("FREQ=MONTHLY")?Math.max(400,e*31*2):r.includes("FREQ=YEARLY")?Math.max(800,e*366*2):365}function jxe(r){if(Hot(r)){let e=jot(r),t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),s=String(e.getMinutes()).padStart(2,"0"),o=String(e.getSeconds()).padStart(2,"0");return`${t}${n}${a}T${i}${s}${o}Z`}return Xot(Yo(r))}function Xot(r){let e=r.getUTCFullYear(),t=String(r.getUTCMonth()+1).padStart(2,"0"),n=String(r.getUTCDate()).padStart(2,"0");return`${e}${t}${n}`}function elt(r,e){if(!r.recurrence)return null;let t=Yo(e.today||_xe()),n=zxe(r.recurrence),a=t,i=lW(r.recurrence);i&&i<t&&(a=i);let s=new Date(t.getTime()+n*24*60*60*1e3),o=Oxe(r,a,s),l=new Set([...r.complete_instances||[],...r.skipped_instances||[]]);for(let c of o){let d=Jc(c);if(!l.has(d)&&c>=t)return c}return null}function tlt(r,e){if(!r.recurrence||typeof r.recurrence!="string")return null;let t=Yo(e.today||_xe()),n=zxe(r.recurrence),a=lW(r.recurrence),i=a||t,s=new Date(i.getTime()+n*24*60*60*1e3),o=Oxe(r,i,s),l=new Set(r.skipped_instances||[]),c=a?a.getTime():0;for(let d of o){let u=Jc(d);if(d.getTime()>c&&d>=t&&!l.has(u))return d}return null}function rlt(r){let e=r.toLowerCase();return e==="true"||e==="false"?e==="true":r}function nlt(r){let e=r.trim(),t=e.match(/^\[\[([^|\]#]+)(?:#[^\]|]+)?(?:\|[^\]]+)?\]\]$/);if(t)return t[1].trim();let n=e.match(/^\[[^\]]+\]\(([^)#]+)(?:#[^)]+)?\)$/);return n?decodeURI(n[1].trim()):e}function $xe(r,e="manual"){return slt(r.occurrence_materialization)?r.occurrence_materialization:e}function alt(r,e="completion"){return olt(r.occurrence_next_trigger)?r.occurrence_next_trigger:e}function AE(r){return typeof r.recurrence_parent=="string"&&typeof r.occurrence_date=="string"}function vg(r){return r?nlt(r).replace(/\\/g,"/").replace(/^\/+/,"").replace(/\.md$/i,"").trim().toLowerCase():""}function Bxe(r){return`[[${r.path.replace(/\.md$/i,"")}]]`}function cW(r,e,t,n=Bxe(e)){let a=vg(e.path),i=vg(n);return r.find(s=>{if(s.occurrence_date!==t||!s.recurrence_parent)return!1;let o=vg(s.recurrence_parent);return o===a||o===i})}function dW({parentTask:r,targetDate:e,currentTimestamp:t,existingOccurrences:n=[],parentLink:a,defaultStatus:i=r.status,defaultPriority:s=r.priority,templateTask:o={},overrides:l={},allowNonGeneratedTarget:c=!0}){var v,b,k,w,S,C,E,D,P,O,z,R,A,F;if(!r.recurrence)throw new Error("occurrence_parent_not_recurring");let d=uW(e),u=a||Bxe(r),p=cW(n,r,d,u),m=[];if(hlt(r,d)||m.push({code:"materialization_target_not_generated",message:`Target date "${d}" is not generated by the parent recurrence rule.`,severity:c?"warning":"error",field:"occurrence_date"}),p)return{kind:"occurrence.materialize",parentTask:r,targetDate:d,parentReference:u,created:!1,existingOccurrence:p,occurrenceTask:p,fields:tb(p),issues:m,metadata:{idempotent:!0}};let f=llt(r,d),h=mlt(f.customProperties,o.customProperties,l.customProperties),g=Kxe({...f,...o,...l,id:void 0,path:void 0,archived:void 0,status:(b=(v=l.status)!=null?v:o.status)!=null?b:i,priority:(S=(w=(k=l.priority)!=null?k:o.priority)!=null?w:r.priority)!=null?S:s,scheduled:(D=(E=(C=l.scheduled)!=null?C:o.scheduled)!=null?E:f.scheduled)!=null?D:d,due:(O=(P=l.due)!=null?P:o.due)!=null?O:f.due,customProperties:h,recurrence:void 0,recurrence_anchor:void 0,complete_instances:void 0,skipped_instances:void 0,recurrence_parent:u,occurrence_date:d,occurrence_materialization:void 0,occurrence_next_trigger:void 0,occurrence_template:void 0,occurrence_past_horizon:void 0,occurrence_future_horizon:void 0,completedDate:void 0,timeEntries:void 0,totalTrackedTime:void 0,icsEventId:void 0,googleCalendarEventId:void 0,googleCalendarExceptionEventId:void 0,googleCalendarExceptionOriginalScheduled:void 0,googleCalendarMovedOriginalDates:void 0,basesData:void 0,blocking:void 0,isBlocked:void 0,isBlocking:void 0,hasSubtasks:void 0,dateCreated:(R=(z=l.dateCreated)!=null?z:o.dateCreated)!=null?R:t,dateModified:(F=(A=l.dateModified)!=null?A:o.dateModified)!=null?F:t});return{kind:"occurrence.materialize",parentTask:r,targetDate:d,parentReference:u,created:!0,occurrenceTask:g,fields:tb(g),issues:m,metadata:{idempotent:!1,template:r.occurrence_template}}}function Uxe({occurrenceTask:r,parentTask:e,completedStatus:t,currentTimestamp:n,targetDate:a,completionDate:i,maintainDueDateOffsetInRecurring:s}){let o=ZN(r,a);if(QN(r,o),!e.recurrence)throw new Error("occurrence_parent_not_recurring");let l=i===void 0?o:uW(i),c=(e.recurrence_anchor||"scheduled")==="completion"?l:o,d=Zxe(rb(e.complete_instances),o),u=rb(e.skipped_instances).filter(v=>v!==o),p=Gxe({parentTask:e,targetDate:c,completeInstances:d,skippedInstances:u,currentTimestamp:n,maintainDueDateOffsetInRecurring:s,advanceCompletionAnchor:!0}),m={status:t,completedDate:l,dateModified:n},f={...e,...p},h={...r,...m},g=$xe(e)==="on_completion"?_m(f.scheduled||""):void 0;return JN({kind:"occurrence.complete",targetDate:o,occurrenceTask:r,parentTask:e,updatedOccurrenceTask:h,updatedParentTask:f,occurrenceUpdates:m,parentUpdates:p,currentTimestamp:n,materializeNextDate:g,metadata:{trigger:"completion"}})}function Hxe({occurrenceTask:r,parentTask:e,activeStatus:t,currentTimestamp:n,targetDate:a}){let i=ZN(r,a);QN(r,i);let s={complete_instances:rb(e.complete_instances).filter(l=>l!==i),dateModified:n},o={status:t,completedDate:void 0,dateModified:n};return JN({kind:"occurrence.uncomplete",targetDate:i,occurrenceTask:r,parentTask:e,updatedOccurrenceTask:{...r,...o},updatedParentTask:{...e,...s},occurrenceUpdates:o,parentUpdates:s,currentTimestamp:n,metadata:{trigger:"uncomplete"}})}function Vxe({occurrenceTask:r,parentTask:e,skippedStatus:t,currentTimestamp:n,targetDate:a,maintainDueDateOffsetInRecurring:i}){if(!t)throw new Error("missing_skipped_status");let s=ZN(r,a);if(QN(r,s),!e.recurrence)throw new Error("occurrence_parent_not_recurring");let o=Zxe(rb(e.skipped_instances),s),l=rb(e.complete_instances).filter(m=>m!==s),c=Gxe({parentTask:e,targetDate:s,completeInstances:l,skippedInstances:o,currentTimestamp:n,maintainDueDateOffsetInRecurring:i,advanceCompletionAnchor:!1}),d={status:t,completedDate:void 0,dateModified:n},u={...e,...c},p=$xe(e)==="on_completion"&&alt(e)==="completion_or_skip"?_m(u.scheduled||""):void 0;return JN({kind:"occurrence.skip",targetDate:s,occurrenceTask:r,parentTask:e,updatedOccurrenceTask:{...r,...d},updatedParentTask:u,occurrenceUpdates:d,parentUpdates:c,currentTimestamp:n,materializeNextDate:p,metadata:{trigger:"skip"}})}function qxe({occurrenceTask:r,parentTask:e,activeStatus:t,currentTimestamp:n,targetDate:a}){let i=ZN(r,a);QN(r,i);let s={skipped_instances:rb(e.skipped_instances).filter(l=>l!==i),dateModified:n},o={status:t,completedDate:void 0,dateModified:n};return JN({kind:"occurrence.unskip",targetDate:i,occurrenceTask:r,parentTask:e,updatedOccurrenceTask:{...r,...o},updatedParentTask:{...e,...s},occurrenceUpdates:o,parentUpdates:s,currentTimestamp:n,metadata:{trigger:"unskip"}})}function Wxe(r,e){let t=[];for(let[n,a]of Object.entries(r)){let i=ilt(e,n);i&&(a===void 0||Array.isArray(a)&&a.length===0?t.push({op:"delete",field:i}):n==="status"?t.push({op:"set",field:i,value:rlt(String(a))}):t.push({op:"set",field:i,value:a}))}return t}function tb(r){let e={};return Hr(e,"title",r.title),Hr(e,"status",r.status),Hr(e,"priority",r.priority),Hr(e,"due",r.due),Hr(e,"scheduled",r.scheduled),Hr(e,"completedDate",r.completedDate),Hr(e,"dateCreated",r.dateCreated),Hr(e,"dateModified",r.dateModified),Hr(e,"recurrence",r.recurrence),Hr(e,"recurrenceAnchor",r.recurrence_anchor),Hr(e,"completeInstances",r.complete_instances),Hr(e,"skippedInstances",r.skipped_instances),Hr(e,"recurrenceParent",r.recurrence_parent),Hr(e,"occurrenceDate",r.occurrence_date),Hr(e,"occurrenceMaterialization",r.occurrence_materialization),Hr(e,"occurrenceNextTrigger",r.occurrence_next_trigger),Hr(e,"occurrenceTemplate",r.occurrence_template),Hr(e,"occurrencePastHorizon",r.occurrence_past_horizon),Hr(e,"occurrenceFutureHorizon",r.occurrence_future_horizon),Hr(e,"timeEntries",r.timeEntries),Hr(e,"tags",r.tags),Hr(e,"contexts",r.contexts),Hr(e,"projects",r.projects),Hr(e,"attachments",r.attachments),Hr(e,"timeEstimate",r.timeEstimate),Hr(e,"blockedBy",r.blockedBy),Hr(e,"reminders",r.reminders),e}function ilt(r,e){let n={title:"title",status:"status",priority:"priority",due:"due",scheduled:"scheduled",contexts:"contexts",projects:"projects",attachments:"attachments",timeEstimate:"timeEstimate",completedDate:"completedDate",dateCreated:"dateCreated",dateModified:"dateModified",recurrence:"recurrence",recurrence_anchor:"recurrenceAnchor",complete_instances:"completeInstances",skipped_instances:"skippedInstances",recurrence_parent:"recurrenceParent",occurrence_date:"occurrenceDate",occurrence_materialization:"occurrenceMaterialization",occurrence_next_trigger:"occurrenceNextTrigger",occurrence_template:"occurrenceTemplate",occurrence_past_horizon:"occurrencePastHorizon",occurrence_future_horizon:"occurrenceFutureHorizon",timeEntries:"timeEntries",blockedBy:"blockedBy",reminders:"reminders",sortOrder:"sortOrder"}[e];return n?r[n]:void 0}function slt(r){return r==="manual"||r==="on_completion"||r==="rolling"}function olt(r){return r==="completion"||r==="completion_or_skip"}function uW(r){return Uot(r instanceof Date?Jc(r):_m(r))}function ZN(r,e){var t;return uW((t=e!=null?e:r.occurrence_date)!=null?t:"")}function QN(r,e){if(!r.recurrence_parent||!r.occurrence_date)throw new Error("task_not_materialized_occurrence");if(r.occurrence_date!==e)throw new Error("occurrence_date_mismatch")}function llt(r,e){let t=r.scheduled?Dxe(r.scheduled,r.scheduled,e):e,n=r.due?Dxe(r.due,r.scheduled||r.due,e):void 0;return Kxe({title:r.title,priority:r.priority,due:n,scheduled:t,contexts:YN(r.contexts),projects:YN(r.projects),attachments:YN(r.attachments),tags:YN(r.tags),timeEstimate:r.timeEstimate,reminders:Pxe(r.reminders),blockedBy:Pxe(r.blockedBy),details:r.details,customProperties:plt(r.customProperties)})}function Dxe(r,e,t){try{let n=_m(r),a=_m(e);if(!n||!a)return;let i=dlt(a,n),s=ult(t,i);return clt(r,s)}catch(n){return}}function clt(r,e){var a;let n=r.trim().match(/^(\d{4}-\d{2}-\d{2})(.*)$/);return n?`${e}${(a=n[2])!=null?a:""}`:e}function dlt(r,e){let n=Yo(r).getTime(),a=Yo(e).getTime();return Math.round((a-n)/864e5)}function ult(r,e){let t=Yo(r);return t.setUTCDate(t.getUTCDate()+e),Jc(t)}function YN(r){return Array.isArray(r)?[...r]:void 0}function Pxe(r){return Array.isArray(r)?r.map(e=>({...e})):void 0}function plt(r){if(!(!r||Object.keys(r).length===0))return Yxe(r)}function mlt(...r){let e={};for(let t of r)t&&Object.assign(e,Yxe(t));return Object.keys(e).length>0?e:void 0}function Yxe(r){let e={};for(let[t,n]of Object.entries(r))Array.isArray(n)?e[t]=[...n]:flt(n)?e[t]={...n}:e[t]=n;return e}function flt(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function hlt(r,e){try{return Fxe(r,Yo(e))}catch(t){return!1}}function Gxe({parentTask:r,targetDate:e,completeInstances:t,skippedInstances:n,currentTimestamp:a,maintainDueDateOffsetInRecurring:i,advanceCompletionAnchor:s}){let o=r.recurrence;typeof o=="string"&&o.length>0&&(s&&(r.recurrence_anchor||"scheduled")==="completion"?o=Kot(o,e)||o:o.includes("DTSTART:")||(o=Got(r)||o));let l={...r,recurrence:o,complete_instances:t,skipped_instances:n},c=Yot(l,i,{today:e}),d={recurrence:o,complete_instances:t,skipped_instances:n,dateModified:a};return c.scheduled&&(d.scheduled=c.scheduled),c.due&&(d.due=c.due),d}function JN({kind:r,targetDate:e,occurrenceTask:t,parentTask:n,updatedOccurrenceTask:a,updatedParentTask:i,occurrenceUpdates:s,parentUpdates:o,currentTimestamp:l,materializeNextDate:c,metadata:d}){return{kind:r,targetDate:e,updatedOccurrenceTask:a,updatedParentTask:i,occurrenceUpdates:s,parentUpdates:o,occurrenceFields:tb(s),parentFields:tb(o),dateModified:l,changed:Mxe(t,s)||Mxe(n,o),materializeNextDate:c||void 0,metadata:d}}function Mxe(r,e){return Object.entries(e).some(([t,n])=>r[t]!==n)}function Kxe(r){let e={};for(let[t,n]of Object.entries(r))n!==void 0&&(e[t]=n);return e}function Hr(r,e,t){t!==void 0&&(r[e]=t)}function Zxe(r,e){return r.includes(e)?r:[...r,e]}function rb(r){return Array.isArray(r)?r.filter(e=>typeof e=="string"):[]}var GN,zot,_xe,sW,Axe,Exe,pW=y(()=>{Ov();GN=/^(\d{4})-(\d{2})-(\d{2})$/,zot=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d{1,3})?(?:Z|([+-])(\d{2}):(\d{2}))?$/;_xe=Bot;sW=Reflect.get(Qp,"default"),Exe=(Axe=ke)!=null?Axe:sW==null?void 0:sW.RRule});function hr(r){if(r&&typeof r=="object")switch(r[Hi]){case Gl:case qu:return!0}return!1}function Vt(r){if(r&&typeof r=="object")switch(r[Hi]){case XN:case Gl:case so:case qu:return!0}return!1}var XN,eR,Gl,mW,so,qu,Hi,Go,Ko,Zo,Lt,ht,Qo,tR,nr=y(()=>{XN=Symbol.for("yaml.alias"),eR=Symbol.for("yaml.document"),Gl=Symbol.for("yaml.map"),mW=Symbol.for("yaml.pair"),so=Symbol.for("yaml.scalar"),qu=Symbol.for("yaml.seq"),Hi=Symbol.for("yaml.node.type"),Go=r=>!!r&&typeof r=="object"&&r[Hi]===XN,Ko=r=>!!r&&typeof r=="object"&&r[Hi]===eR,Zo=r=>!!r&&typeof r=="object"&&r[Hi]===Gl,Lt=r=>!!r&&typeof r=="object"&&r[Hi]===mW,ht=r=>!!r&&typeof r=="object"&&r[Hi]===so,Qo=r=>!!r&&typeof r=="object"&&r[Hi]===qu;tR=r=>(ht(r)||hr(r))&&!!r.anchor});function Kl(r,e){let t=Jxe(e);Ko(r)?nb(null,r.contents,t,Object.freeze([r]))===Xc&&(r.contents=null):nb(null,r,t,Object.freeze([]))}function nb(r,e,t,n){let a=Xxe(r,e,t,n);if(Vt(a)||Lt(a))return eCe(r,n,a),nb(r,a,t,n);if(typeof a!="symbol"){if(hr(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let s=nb(i,e.items[i],t,n);if(typeof s=="number")i=s-1;else{if(s===gs)return gs;s===Xc&&(e.items.splice(i,1),i-=1)}}}else if(Lt(e)){n=Object.freeze(n.concat(e));let i=nb("key",e.key,t,n);if(i===gs)return gs;i===Xc&&(e.key=null);let s=nb("value",e.value,t,n);if(s===gs)return gs;s===Xc&&(e.value=null)}}return a}async function _E(r,e){let t=Jxe(e);Ko(r)?await ab(null,r.contents,t,Object.freeze([r]))===Xc&&(r.contents=null):await ab(null,r,t,Object.freeze([]))}async function ab(r,e,t,n){let a=await Xxe(r,e,t,n);if(Vt(a)||Lt(a))return eCe(r,n,a),ab(r,a,t,n);if(typeof a!="symbol"){if(hr(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let s=await ab(i,e.items[i],t,n);if(typeof s=="number")i=s-1;else{if(s===gs)return gs;s===Xc&&(e.items.splice(i,1),i-=1)}}}else if(Lt(e)){n=Object.freeze(n.concat(e));let i=await ab("key",e.key,t,n);if(i===gs)return gs;i===Xc&&(e.key=null);let s=await ab("value",e.value,t,n);if(s===gs)return gs;s===Xc&&(e.value=null)}}return a}function Jxe(r){return typeof r=="object"&&(r.Collection||r.Node||r.Value)?Object.assign({Alias:r.Node,Map:r.Node,Scalar:r.Node,Seq:r.Node},r.Value&&{Map:r.Value,Scalar:r.Value,Seq:r.Value},r.Collection&&{Map:r.Collection,Seq:r.Collection},r):r}function Xxe(r,e,t,n){var a,i,s,o,l;if(typeof t=="function")return t(r,e,n);if(Zo(e))return(a=t.Map)==null?void 0:a.call(t,r,e,n);if(Qo(e))return(i=t.Seq)==null?void 0:i.call(t,r,e,n);if(Lt(e))return(s=t.Pair)==null?void 0:s.call(t,r,e,n);if(ht(e))return(o=t.Scalar)==null?void 0:o.call(t,r,e,n);if(Go(e))return(l=t.Alias)==null?void 0:l.call(t,r,e,n)}function eCe(r,e,t){let n=e[e.length-1];if(hr(n))n.items[r]=t;else if(Lt(n))r==="key"?n.key=t:n.value=t;else if(Ko(n))n.contents=t;else{let a=Go(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${a} parent`)}}var gs,Qxe,Xc,IE=y(()=>{nr();gs=Symbol("break visit"),Qxe=Symbol("skip children"),Xc=Symbol("remove node");Kl.BREAK=gs;Kl.SKIP=Qxe;Kl.REMOVE=Xc;_E.BREAK=gs;_E.SKIP=Qxe;_E.REMOVE=Xc});var glt,ylt,ed,fW=y(()=>{nr();IE();glt={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},ylt=r=>r.replace(/[!,[\]{}]/g,e=>glt[e]),ed=class r{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},r.defaultYaml,e),this.tags=Object.assign({},r.defaultTags,t)}clone(){let e=new r(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new r(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:r.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},r.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:r.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},r.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),a=n.shift();switch(a){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[i,s]=n;return this.tags[i]=s,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=n;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let s=/^\d+\.\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,s),!1}}default:return t(0,`Unknown directive ${a}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let s=e.slice(2,-1);return s==="!"||s==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),s)}let[,n,a]=e.match(/^(.*!)([^!]*)$/s);a||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(a)}catch(s){return t(String(s)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+ylt(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),a;if(e&&n.length>0&&Vt(e.contents)){let i={};Kl(e.contents,(s,o)=>{Vt(o)&&o.tag&&(i[o.tag]=!0)}),a=Object.keys(i)}else a=[];for(let[i,s]of n)i==="!!"&&s==="tag:yaml.org,2002:"||(!e||a.some(o=>o.startsWith(s)))&&t.push(`%TAG ${i} ${s}`);return t.join(`
|
||
`)}};ed.defaultYaml={explicit:!1,version:"1.2"};ed.defaultTags={"!!":"tag:yaml.org,2002:"}});function rR(r){if(/[\x00-\x19\s,[\]{}]/.test(r)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(r)}`;throw new Error(t)}return!0}function hW(r){let e=new Set;return Kl(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function gW(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function tCe(r,e){let t=[],n=new Map,a=null;return{onAnchor:i=>{t.push(i),a!=null||(a=hW(r));let s=gW(e,a);return a.add(s),s},setAnchors:()=>{for(let i of t){let s=n.get(i);if(typeof s=="object"&&s.anchor&&(ht(s.node)||hr(s.node)))s.node.anchor=s.anchor;else{let o=new Error("Failed to resolve repeated object (this should not happen)");throw o.source=i,o}}},sourceObjects:n}}var nR=y(()=>{nr();IE()});function Im(r,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let a=0,i=n.length;a<i;++a){let s=n[a],o=Im(r,n,String(a),s);o===void 0?delete n[a]:o!==s&&(n[a]=o)}else if(n instanceof Map)for(let a of Array.from(n.keys())){let i=n.get(a),s=Im(r,n,a,i);s===void 0?n.delete(a):s!==i&&n.set(a,s)}else if(n instanceof Set)for(let a of Array.from(n)){let i=Im(r,n,a,a);i===void 0?n.delete(a):i!==a&&(n.delete(a),n.add(i))}else for(let[a,i]of Object.entries(n)){let s=Im(r,n,a,i);s===void 0?delete n[a]:s!==i&&(n[a]=s)}return r.call(e,t,n)}var yW=y(()=>{});function ga(r,e,t){if(Array.isArray(r))return r.map((n,a)=>ga(n,String(a),t));if(r&&typeof r.toJSON=="function"){if(!t||!tR(r))return r.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(r,n),t.onCreate=i=>{n.res=i,delete t.onCreate};let a=r.toJSON(e,t);return t.onCreate&&t.onCreate(a),a}return typeof r=="bigint"&&!(t!=null&&t.keep)?Number(r):r}var Nm=y(()=>{nr()});var Rm,aR=y(()=>{yW();nr();Nm();Rm=class{constructor(e){Object.defineProperty(this,Hi,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:a,reviver:i}={}){if(!Ko(e))throw new TypeError("A document argument is required");let s={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},o=ga(this,"",s);if(typeof a=="function")for(let{count:l,res:c}of s.anchors.values())a(c,l);return typeof i=="function"?Im(i,{"":o},"",o):o}}});function iR(r,e,t){if(Go(e)){let n=e.resolve(r),a=t&&n&&t.get(n);return a?a.count*a.aliasCount:0}else if(hr(e)){let n=0;for(let a of e.items){let i=iR(r,a,t);i>n&&(n=i)}return n}else if(Lt(e)){let n=iR(r,e.key,t),a=iR(r,e.value,t);return Math.max(n,a)}return 1}var td,NE=y(()=>{nR();IE();nr();aR();Nm();td=class extends Rm{constructor(e){super(XN),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){if((t==null?void 0:t.maxAliasCount)===0)throw new ReferenceError("Alias resolution is disabled");let n;t!=null&&t.aliasResolveCache?n=t.aliasResolveCache:(n=[],Kl(e,{Node:(i,s)=>{(Go(s)||tR(s))&&n.push(s)}}),t&&(t.aliasResolveCache=n));let a;for(let i of n){if(i===this)break;i.anchor===this.source&&(a=i)}return a}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:a,maxAliasCount:i}=t,s=this.resolve(a,t);if(!s){let l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let o=n.get(s);if(o||(ga(s,null,t),o=n.get(s)),(o==null?void 0:o.res)===void 0){let l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(i>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=iR(a,s,n)),o.count*o.aliasCount>i)){let l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return o.res}toString(e,t,n){let a=`*${this.source}`;if(e){if(rR(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${a} `}return a}}});var sR,Ae,aa=y(()=>{nr();aR();Nm();sR=r=>!r||typeof r!="function"&&typeof r!="object",Ae=class extends Rm{constructor(e){super(so),this.value=e}toJSON(e,t){return t!=null&&t.keep?this.value:ga(this.value,e,t)}toString(){return String(this.value)}};Ae.BLOCK_FOLDED="BLOCK_FOLDED";Ae.BLOCK_LITERAL="BLOCK_LITERAL";Ae.PLAIN="PLAIN";Ae.QUOTE_DOUBLE="QUOTE_DOUBLE";Ae.QUOTE_SINGLE="QUOTE_SINGLE"});function klt(r,e,t){var n;if(e){let a=t.filter(s=>s.tag===e),i=(n=a.find(s=>!s.format))!=null?n:a[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return t.find(a=>{var i;return((i=a.identify)==null?void 0:i.call(a,r))&&!a.format})}function Wu(r,e,t){var u,p,m,f;if(Ko(r)&&(r=r.contents),Vt(r))return r;if(Lt(r)){let h=(p=(u=t.schema[Gl]).createNode)==null?void 0:p.call(u,t.schema,null,t);return h.items.push(r),h}(r instanceof String||r instanceof Number||r instanceof Boolean||typeof BigInt!="undefined"&&r instanceof BigInt)&&(r=r.valueOf());let{aliasDuplicateObjects:n,onAnchor:a,onTagObj:i,schema:s,sourceObjects:o}=t,l;if(n&&r&&typeof r=="object"){if(l=o.get(r),l)return(m=l.anchor)!=null||(l.anchor=a(r)),new td(l.anchor);l={anchor:null,node:null},o.set(r,l)}e!=null&&e.startsWith("!!")&&(e=vlt+e.slice(2));let c=klt(r,e,s.tags);if(!c){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let h=new Ae(r);return l&&(l.node=h),h}c=r instanceof Map?s[Gl]:Symbol.iterator in Object(r)?s[qu]:s[Gl]}i&&(i(c),delete t.onTagObj);let d=c!=null&&c.createNode?c.createNode(t.schema,r,t):typeof((f=c==null?void 0:c.nodeClass)==null?void 0:f.from)=="function"?c.nodeClass.from(t.schema,r,t):new Ae(r);return e?d.tag=e:c.default||(d.tag=c.tag),l&&(l.node=d),d}var vlt,RE=y(()=>{NE();nr();aa();vlt="tag:yaml.org,2002:"});function FE(r,e,t){let n=t;for(let a=e.length-1;a>=0;--a){let i=e[a];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let s=[];s[i]=n,n=s}else n=new Map([[i,n]])}return Wu(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:r,sourceObjects:new Map})}var sb,ib,oR=y(()=>{RE();nr();aR();sb=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,ib=class extends Rm{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>Vt(n)||Lt(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(sb(e))this.add(t);else{let[n,...a]=e,i=this.get(n,!0);if(hr(i))i.addIn(a,t);else if(i===void 0&&this.schema)this.set(n,FE(this.schema,a,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${a}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let a=this.get(t,!0);if(hr(a))return a.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...a]=e,i=this.get(n,!0);return a.length===0?!t&&ht(i)?i.value:i:hr(i)?i.getIn(a,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!Lt(t))return!1;let n=t.value;return n==null||e&&ht(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let a=this.get(t,!0);return hr(a)?a.hasIn(n):!1}setIn(e,t){let[n,...a]=e;if(a.length===0)this.set(n,t);else{let i=this.get(n,!0);if(hr(i))i.setIn(a,t);else if(i===void 0&&this.schema)this.set(n,FE(this.schema,a,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${a}`)}}}});function Jo(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var rCe,rd,OE=y(()=>{rCe=r=>r.replace(/^(?!$)(?: $)?/gm,"#");rd=(r,e,t)=>r.endsWith(`
|
||
`)?Jo(t,e):t.includes(`
|
||
`)?`
|
||
`+Jo(t,e):(r.endsWith(" ")?"":" ")+t});function zE(r,e,t="flow",{indentAtStart:n,lineWidth:a=80,minContentWidth:i=20,onFold:s,onOverflow:o}={}){if(!a||a<0)return r;a<i&&(i=0);let l=Math.max(1+i,1+a-e.length);if(r.length<=l)return r;let c=[],d={},u=a-e.length;typeof n=="number"&&(n>a-Math.max(2,i)?c.push(0):u=a-n);let p,m,f=!1,h=-1,g=-1,v=-1;t===lR&&(h=nCe(r,h,e.length),h!==-1&&(u=h+l));for(let k;k=r[h+=1];){if(t===LE&&k==="\\"){switch(g=h,r[h+1]){case"x":h+=3;break;case"u":h+=5;break;case"U":h+=9;break;default:h+=1}v=h}if(k===`
|
||
`)t===lR&&(h=nCe(r,h,e.length)),u=h+e.length+l,p=void 0;else{if(k===" "&&m&&m!==" "&&m!==`
|
||
`&&m!==" "){let w=r[h+1];w&&w!==" "&&w!==`
|
||
`&&w!==" "&&(p=h)}if(h>=u)if(p)c.push(p),u=p+l,p=void 0;else if(t===LE){for(;m===" "||m===" ";)m=k,k=r[h+=1],f=!0;let w=h>v+1?h-2:g-1;if(d[w])return r;c.push(w),d[w]=!0,u=w+l,p=void 0}else f=!0}m=k}if(f&&o&&o(),c.length===0)return r;s&&s();let b=r.slice(0,c[0]);for(let k=0;k<c.length;++k){let w=c[k],S=c[k+1]||r.length;w===0?b=`
|
||
${e}${r.slice(0,S)}`:(t===LE&&d[w]&&(b+=`${r[w]}\\`),b+=`
|
||
${e}${r.slice(w+1,S)}`)}return b}function nCe(r,e,t){let n=e,a=e+1,i=r[a];for(;i===" "||i===" ";)if(e<a+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
|
||
`);n=e,a=e+1,i=r[a]}return n}var vW,lR,LE,aCe=y(()=>{vW="flow",lR="block",LE="quoted"});function blt(r,e,t){if(!e||e<0)return!1;let n=e-t,a=r.length;if(a<=n)return!1;for(let i=0,s=0;i<a;++i)if(r[i]===`
|
||
`){if(i-s>n)return!0;if(s=i+1,a-s<=n)return!1}return!0}function jE(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:n}=e,a=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(uR(r)?" ":""),s="",o=0;for(let l=0,c=t[l];c;c=t[++l])if(c===" "&&t[l+1]==="\\"&&t[l+2]==="n"&&(s+=t.slice(o,l)+"\\ ",l+=1,o=l,c="\\"),c==="\\")switch(t[l+1]){case"u":{s+=t.slice(o,l);let d=t.substr(l+2,4);switch(d){case"0000":s+="\\0";break;case"0007":s+="\\a";break;case"000b":s+="\\v";break;case"001b":s+="\\e";break;case"0085":s+="\\N";break;case"00a0":s+="\\_";break;case"2028":s+="\\L";break;case"2029":s+="\\P";break;default:d.substr(0,2)==="00"?s+="\\x"+d.substr(2):s+=t.substr(l,6)}l+=5,o=l+1}break;case"n":if(n||t[l+2]==='"'||t.length<a)l+=1;else{for(s+=t.slice(o,l)+`
|
||
|
||
`;t[l+2]==="\\"&&t[l+3]==="n"&&t[l+4]!=='"';)s+=`
|
||
`,l+=2;s+=i,t[l+2]===" "&&(s+="\\"),l+=1,o=l+1}break;default:l+=1}return s=o?s+t.slice(o):t,n?s:zE(s,i,LE,dR(e,!1))}function kW(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
|
||
`)||/[ \t]\n|\n[ \t]/.test(r))return jE(r,e);let t=e.indent||(uR(r)?" ":""),n="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
|
||
${t}`)+"'";return e.implicitKey?n:zE(n,t,vW,dR(e,!1))}function ob(r,e){let{singleQuote:t}=e.options,n;if(t===!1)n=jE;else{let a=r.includes('"'),i=r.includes("'");a&&!i?n=kW:i&&!a?n=jE:n=t?kW:jE}return n(r,e)}function cR({comment:r,type:e,value:t},n,a,i){let{blockQuote:s,commentString:o,lineWidth:l}=n.options;if(!s||/\n[\t ]+$/.test(t))return ob(t,n);let c=n.indent||(n.forceBlockIndent||uR(t)?" ":""),d=s==="literal"?!0:s==="folded"||e===Ae.BLOCK_FOLDED?!1:e===Ae.BLOCK_LITERAL?!0:!blt(t,l,c.length);if(!t)return d?`|
|
||
`:`>
|
||
`;let u,p;for(p=t.length;p>0;--p){let S=t[p-1];if(S!==`
|
||
`&&S!==" "&&S!==" ")break}let m=t.substring(p),f=m.indexOf(`
|
||
`);f===-1?u="-":t===m||f!==m.length-1?(u="+",i&&i()):u="",m&&(t=t.slice(0,-m.length),m[m.length-1]===`
|
||
`&&(m=m.slice(0,-1)),m=m.replace(bW,`$&${c}`));let h=!1,g,v=-1;for(g=0;g<t.length;++g){let S=t[g];if(S===" ")h=!0;else if(S===`
|
||
`)v=g;else break}let b=t.substring(0,v<g?v+1:g);b&&(t=t.substring(b.length),b=b.replace(/\n+/g,`$&${c}`));let w=(h?c?"2":"1":"")+u;if(r&&(w+=" "+o(r.replace(/ ?[\r\n]+/g," ")),a&&a()),!d){let S=t.replace(/\n+/g,`
|
||
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`),C=!1,E=dR(n,!0);s!=="folded"&&e!==Ae.BLOCK_FOLDED&&(E.onOverflow=()=>{C=!0});let D=zE(`${b}${S}${m}`,c,lR,E);if(!C)return`>${w}
|
||
${c}${D}`}return t=t.replace(/\n+/g,`$&${c}`),`|${w}
|
||
${c}${b}${t}${m}`}function Tlt(r,e,t,n){let{type:a,value:i}=r,{actualString:s,implicitKey:o,indent:l,indentStep:c,inFlow:d}=e;if(o&&i.includes(`
|
||
`)||d&&/[[\]{},]/.test(i))return ob(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return o||d||!i.includes(`
|
||
`)?ob(i,e):cR(r,e,t,n);if(!o&&!d&&a!==Ae.PLAIN&&i.includes(`
|
||
`))return cR(r,e,t,n);if(uR(i)){if(l==="")return e.forceBlockIndent=!0,cR(r,e,t,n);if(o&&l===c)return ob(i,e)}let u=i.replace(/\n+/g,`$&
|
||
${l}`);if(s){let p=h=>{var g;return h.default&&h.tag!=="tag:yaml.org,2002:str"&&((g=h.test)==null?void 0:g.test(u))},{compat:m,tags:f}=e.doc.schema;if(f.some(p)||m!=null&&m.some(p))return ob(i,e)}return o?u:zE(u,l,vW,dR(e,!1))}function Yu(r,e,t,n){let{implicitKey:a,inFlow:i}=e,s=typeof r.value=="string"?r:Object.assign({},r,{value:String(r.value)}),{type:o}=r;o!==Ae.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(s.value)&&(o=Ae.QUOTE_DOUBLE);let l=d=>{switch(d){case Ae.BLOCK_FOLDED:case Ae.BLOCK_LITERAL:return a||i?ob(s.value,e):cR(s,e,t,n);case Ae.QUOTE_DOUBLE:return jE(s.value,e);case Ae.QUOTE_SINGLE:return kW(s.value,e);case Ae.PLAIN:return Tlt(s,e,t,n);default:return null}},c=l(o);if(c===null){let{defaultKeyType:d,defaultStringType:u}=e.options,p=a&&d||u;if(c=l(p),c===null)throw new Error(`Unsupported default string type ${p}`)}return c}var dR,uR,bW,$E=y(()=>{aa();aCe();dR=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),uR=r=>/^(%|---|\.\.\.)/m.test(r);try{bW=new RegExp(`(^|(?<!
|
||
))
|
||
+(?!
|
||
|$)`,"g")}catch(r){bW=/\n+(?!\n|$)/g}});function pR(r,e){let t=Object.assign({blockQuote:!0,commentString:rCe,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},r.schema.toStringOptions,e),n;switch(t.collectionStyle){case"block":n=!1;break;case"flow":n=!0;break;default:n=null}return{anchors:new Set,doc:r,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:n,options:t}}function wlt(r,e){var a,i,s,o;if(e.tag){let l=r.filter(c=>c.tag===e.tag);if(l.length>0)return(a=l.find(c=>c.format===e.format))!=null?a:l[0]}let t,n;if(ht(e)){n=e.value;let l=r.filter(c=>{var d;return(d=c.identify)==null?void 0:d.call(c,n)});if(l.length>1){let c=l.filter(d=>d.test);c.length>0&&(l=c)}t=(i=l.find(c=>c.format===e.format))!=null?i:l.find(c=>!c.format)}else n=e,t=r.find(l=>l.nodeClass&&n instanceof l.nodeClass);if(!t){let l=(o=(s=n==null?void 0:n.constructor)==null?void 0:s.name)!=null?o:n===null?"null":typeof n;throw new Error(`Tag not resolved for ${l} value`)}return t}function Slt(r,e,{anchors:t,doc:n}){var o;if(!n.directives)return"";let a=[],i=(ht(r)||hr(r))&&r.anchor;i&&rR(i)&&(t.add(i),a.push(`&${i}`));let s=(o=r.tag)!=null?o:e.default?null:e.tag;return s&&a.push(n.directives.tagString(s)),a.join(" ")}function Gu(r,e,t,n){var l,c;if(Lt(r))return r.toString(e,t,n);if(Go(r)){if(e.doc.directives)return r.toString(e);if((l=e.resolvedAliases)!=null&&l.has(r))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(r):e.resolvedAliases=new Set([r]),r=r.resolve(e.doc)}let a,i=Vt(r)?r:e.doc.createNode(r,{onTagObj:d=>a=d});a!=null||(a=wlt(e.doc.schema.tags,i));let s=Slt(i,a,e);s.length>0&&(e.indentAtStart=((c=e.indentAtStart)!=null?c:0)+s.length+1);let o=typeof a.stringify=="function"?a.stringify(i,e,t,n):ht(i)?Yu(i,e,t,n):i.toString(e,t,n);return s?ht(i)||o[0]==="{"||o[0]==="["?`${s} ${o}`:`${s}
|
||
${e.indent}${o}`:o}var BE=y(()=>{nR();nr();OE();$E()});function iCe({key:r,value:e},t,n,a){var E,D;let{allNullValues:i,doc:s,indent:o,indentStep:l,options:{commentString:c,indentSeq:d,simpleKeys:u}}=t,p=Vt(r)&&r.comment||null;if(u){if(p)throw new Error("With simple keys, key nodes cannot have comments");if(hr(r)||!Vt(r)&&typeof r=="object"){let P="With simple keys, collection cannot be used as a key value";throw new Error(P)}}let m=!u&&(!r||p&&e==null&&!t.inFlow||hr(r)||(ht(r)?r.type===Ae.BLOCK_FOLDED||r.type===Ae.BLOCK_LITERAL:typeof r=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!m&&(u||!i),indent:o+l});let f=!1,h=!1,g=Gu(r,t,()=>f=!0,()=>h=!0);if(!m&&!t.inFlow&&g.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");m=!0}if(t.inFlow){if(i||e==null)return f&&n&&n(),g===""?"?":m?`? ${g}`:g}else if(i&&!u||e==null&&m)return g=`? ${g}`,p&&!f?g+=rd(g,t.indent,c(p)):h&&a&&a(),g;f&&(p=null),m?(p&&(g+=rd(g,t.indent,c(p))),g=`? ${g}
|
||
${o}:`):(g=`${g}:`,p&&(g+=rd(g,t.indent,c(p))));let v,b,k;Vt(e)?(v=!!e.spaceBefore,b=e.commentBefore,k=e.comment):(v=!1,b=null,k=null,e&&typeof e=="object"&&(e=s.createNode(e))),t.implicitKey=!1,!m&&!p&&ht(e)&&(t.indentAtStart=g.length+1),h=!1,!d&&l.length>=2&&!t.inFlow&&!m&&Qo(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let w=!1,S=Gu(e,t,()=>w=!0,()=>h=!0),C=" ";if(p||v||b){if(C=v?`
|
||
`:"",b){let P=c(b);C+=`
|
||
${Jo(P,t.indent)}`}S===""&&!t.inFlow?C===`
|
||
`&&k&&(C=`
|
||
|
||
`):C+=`
|
||
${t.indent}`}else if(!m&&hr(e)){let P=S[0],O=S.indexOf(`
|
||
`),z=O!==-1,R=(D=(E=t.inFlow)!=null?E:e.flow)!=null?D:e.items.length===0;if(z||!R){let A=!1;if(z&&(P==="&"||P==="!")){let F=S.indexOf(" ");P==="&"&&F!==-1&&F<O&&S[F+1]==="!"&&(F=S.indexOf(" ",F+1)),(F===-1||O<F)&&(A=!0)}A||(C=`
|
||
${t.indent}`)}}else(S===""||S[0]===`
|
||
`)&&(C="");return g+=C+S,t.inFlow?w&&n&&n():k&&!w?g+=rd(g,t.indent,c(k)):h&&a&&a(),g}var sCe=y(()=>{nr();aa();BE();OE()});function mR(r,e){(r==="debug"||r==="warn")&&console.warn(e)}var TW=y(()=>{});function SW(r,e,t){let n=lCe(r,t);if(Qo(n))for(let a of n.items)wW(r,e,a);else if(Array.isArray(n))for(let a of n)wW(r,e,a);else wW(r,e,n)}function wW(r,e,t){let n=lCe(r,t);if(!Zo(n))throw new Error("Merge sources must be maps or map aliases");let a=n.toJSON(null,r,Map);for(let[i,s]of a)e instanceof Map?e.has(i)||e.set(i,s):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:s,writable:!0,enumerable:!0,configurable:!0});return e}function lCe(r,e){return r&&Go(e)?e.resolve(r.doc,r):e}var fR,Zl,oCe,hR=y(()=>{nr();aa();fR="<<",Zl={identify:r=>r===fR||typeof r=="symbol"&&r.description===fR,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Ae(Symbol(fR)),{addToJSMap:SW}),stringify:()=>fR},oCe=(r,e)=>(Zl.identify(e)||ht(e)&&(!e.type||e.type===Ae.PLAIN)&&Zl.identify(e.value))&&(r==null?void 0:r.doc.schema.tags.some(t=>t.tag===Zl.tag&&t.default))});function gR(r,e,{key:t,value:n}){if(Vt(t)&&t.addToJSMap)t.addToJSMap(r,e,n);else if(oCe(r,t))SW(r,e,n);else{let a=ga(t,"",r);if(e instanceof Map)e.set(a,ga(n,a,r));else if(e instanceof Set)e.add(a);else{let i=xlt(t,a,r),s=ga(n,i,r);i in e?Object.defineProperty(e,i,{value:s,writable:!0,enumerable:!0,configurable:!0}):e[i]=s}}return e}function xlt(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Vt(r)&&(t!=null&&t.doc)){let n=pR(t.doc,{});n.anchors=new Set;for(let i of t.anchors.keys())n.anchors.add(i.anchor);n.inFlow=!0,n.inStringifyKey=!0;let a=r.toString(n);if(!t.mapKeyWarned){let i=JSON.stringify(a);i.length>40&&(i=i.substring(0,36)+'..."'),mR(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return a}return JSON.stringify(e)}var xW=y(()=>{TW();hR();BE();nr();Nm()});function lb(r,e,t){let n=Wu(r,void 0,t),a=Wu(e,void 0,t);return new Cn(n,a)}var Cn,Fm=y(()=>{RE();sCe();xW();nr();Cn=class r{constructor(e,t=null){Object.defineProperty(this,Hi,{value:mW}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return Vt(t)&&(t=t.clone(e)),Vt(n)&&(n=n.clone(e)),new r(t,n)}toJSON(e,t){let n=t!=null&&t.mapAsMap?new Map:{};return gR(t,n,this)}toString(e,t,n){return e!=null&&e.doc?iCe(this,e,t,n):JSON.stringify(this)}}});function vR(r,e,t){var i;return(((i=e.inFlow)!=null?i:r.flow)?Elt:Clt)(r,e,t)}function Clt({comment:r,items:e},t,{blockItemPrefix:n,flowChars:a,itemIndent:i,onChompKeep:s,onComment:o}){let{indent:l,options:{commentString:c}}=t,d=Object.assign({},t,{indent:i,type:null}),u=!1,p=[];for(let f=0;f<e.length;++f){let h=e[f],g=null;if(Vt(h))!u&&h.spaceBefore&&p.push(""),yR(t,p,h.commentBefore,u),h.comment&&(g=h.comment);else if(Lt(h)){let b=Vt(h.key)?h.key:null;b&&(!u&&b.spaceBefore&&p.push(""),yR(t,p,b.commentBefore,u))}u=!1;let v=Gu(h,d,()=>g=null,()=>u=!0);g&&(v+=rd(v,i,c(g))),u&&g&&(u=!1),p.push(n+v)}let m;if(p.length===0)m=a.start+a.end;else{m=p[0];for(let f=1;f<p.length;++f){let h=p[f];m+=h?`
|
||
${l}${h}`:`
|
||
`}}return r?(m+=`
|
||
`+Jo(c(r),l),o&&o()):u&&s&&s(),m}function Elt({items:r},e,{flowChars:t,itemIndent:n}){let{indent:a,indentStep:i,flowCollectionPadding:s,options:{commentString:o}}=e;n+=i;let l=Object.assign({},e,{indent:n,inFlow:!0,type:null}),c=!1,d=0,u=[];for(let f=0;f<r.length;++f){let h=r[f],g=null;if(Vt(h))h.spaceBefore&&u.push(""),yR(e,u,h.commentBefore,!1),h.comment&&(g=h.comment);else if(Lt(h)){let b=Vt(h.key)?h.key:null;b&&(b.spaceBefore&&u.push(""),yR(e,u,b.commentBefore,!1),b.comment&&(c=!0));let k=Vt(h.value)?h.value:null;k?(k.comment&&(g=k.comment),k.commentBefore&&(c=!0)):h.value==null&&(b!=null&&b.comment)&&(g=b.comment)}g&&(c=!0);let v=Gu(h,l,()=>g=null);c||(c=u.length>d||v.includes(`
|
||
`)),f<r.length-1?v+=",":e.options.trailingComma&&(e.options.lineWidth>0&&(c||(c=u.reduce((b,k)=>b+k.length+2,2)+(v.length+2)>e.options.lineWidth)),c&&(v+=",")),g&&(v+=rd(v,n,o(g))),u.push(v),d=u.length}let{start:p,end:m}=t;if(u.length===0)return p+m;if(!c){let f=u.reduce((h,g)=>h+g.length+2,2);c=e.options.lineWidth>0&&f>e.options.lineWidth}if(c){let f=p;for(let h of u)f+=h?`
|
||
${i}${a}${h}`:`
|
||
`;return`${f}
|
||
${a}${m}`}else return`${p}${s}${u.join(" ")}${s}${m}`}function yR({indent:r,options:{commentString:e}},t,n,a){if(n&&a&&(n=n.replace(/^\n+/,"")),n){let i=Jo(e(n),r);t.push(i.trimStart())}}var CW=y(()=>{nr();BE();OE()});function Om(r,e){let t=ht(e)?e.value:e;for(let n of r)if(Lt(n)&&(n.key===e||n.key===t||ht(n.key)&&n.key.value===t))return n}var On,Lm=y(()=>{CW();xW();oR();nr();Fm();aa();On=class extends ib{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Gl,e),this.items=[]}static from(e,t,n){let{keepUndefined:a,replacer:i}=n,s=new this(e),o=(l,c)=>{if(typeof i=="function")c=i.call(t,l,c);else if(Array.isArray(i)&&!i.includes(l))return;(c!==void 0||a)&&s.items.push(lb(l,c,n))};if(t instanceof Map)for(let[l,c]of t)o(l,c);else if(t&&typeof t=="object")for(let l of Object.keys(t))o(l,t[l]);return typeof e.sortMapEntries=="function"&&s.items.sort(e.sortMapEntries),s}add(e,t){var s;let n;Lt(e)?n=e:!e||typeof e!="object"||!("key"in e)?n=new Cn(e,e==null?void 0:e.value):n=new Cn(e.key,e.value);let a=Om(this.items,n.key),i=(s=this.schema)==null?void 0:s.sortMapEntries;if(a){if(!t)throw new Error(`Key ${n.key} already set`);ht(a.value)&&sR(n.value)?a.value.value=n.value:a.value=n.value}else if(i){let o=this.items.findIndex(l=>i(n,l)<0);o===-1?this.items.push(n):this.items.splice(o,0,n)}else this.items.push(n)}delete(e){let t=Om(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){var i;let n=Om(this.items,e),a=n==null?void 0:n.value;return(i=!t&&ht(a)?a.value:a)!=null?i:void 0}has(e){return!!Om(this.items,e)}set(e,t){this.add(new Cn(e,t),!0)}toJSON(e,t,n){let a=n?new n:t!=null&&t.mapAsMap?new Map:{};t!=null&&t.onCreate&&t.onCreate(a);for(let i of this.items)gR(t,a,i);return a}toString(e,t,n){if(!e)return JSON.stringify(this);for(let a of this.items)if(!Lt(a))throw new Error(`Map items must all be pairs; found ${JSON.stringify(a)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),vR(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}}});var Ql,cb=y(()=>{nr();Lm();Ql={collection:"map",default:!0,nodeClass:On,tag:"tag:yaml.org,2002:map",resolve(r,e){return Zo(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>On.from(r,e,t)}});function kR(r){let e=ht(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}var Ua,zm=y(()=>{RE();CW();oR();nr();aa();Nm();Ua=class extends ib{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(qu,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=kR(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let n=kR(e);if(typeof n!="number")return;let a=this.items[n];return!t&&ht(a)?a.value:a}has(e){let t=kR(e);return typeof t=="number"&&t<this.items.length}set(e,t){let n=kR(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let a=this.items[n];ht(a)&&sR(t)?a.value=t:this.items[n]=t}toJSON(e,t){let n=[];t!=null&&t.onCreate&&t.onCreate(n);let a=0;for(let i of this.items)n.push(ga(i,String(a++),t));return n}toString(e,t,n){return e?vR(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:a}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let s=0;for(let o of t){if(typeof a=="function"){let l=t instanceof Set?o:String(s++);o=a.call(t,l,o)}i.items.push(Wu(o,void 0,n))}}return i}}});var Jl,db=y(()=>{nr();zm();Jl={collection:"seq",default:!0,nodeClass:Ua,tag:"tag:yaml.org,2002:seq",resolve(r,e){return Qo(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>Ua.from(r,e,t)}});var jm,UE=y(()=>{$E();jm={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,n){return e=Object.assign({actualString:!0},e),Yu(r,e,t,n)}}});var kg,bR=y(()=>{aa();kg={identify:r=>r==null,createNode:()=>new Ae(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Ae(null),stringify:({source:r},e)=>typeof r=="string"&&kg.test.test(r)?r:e.options.nullStr}});var HE,EW=y(()=>{aa();HE={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new Ae(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&HE.test.test(r)){let n=r[0]==="t"||r[0]==="T";if(e===n)return r}return e?t.options.trueStr:t.options.falseStr}}});function hi({format:r,minFractionDigits:e,tag:t,value:n}){if(typeof n=="bigint")return String(n);let a=typeof n=="number"?n:Number(n);if(!isFinite(a))return isNaN(a)?".nan":a<0?"-.inf":".inf";let i=Object.is(n,-0)?"-0":JSON.stringify(n);if(!r&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^-?\d/.test(i)&&!i.includes("e")){let s=i.indexOf(".");s<0&&(s=i.length,i+=".");let o=e-(i.length-s-1);for(;o-- >0;)i+="0"}return i}var ub=y(()=>{});var TR,wR,SR,DW=y(()=>{aa();ub();TR={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:hi},wR={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():hi(r)}},SR={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(r){let e=new Ae(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:hi}});function cCe(r,e,t){let{value:n}=r;return xR(n)&&n>=0?t+n.toString(e):hi(r)}var xR,PW,CR,ER,DR,MW=y(()=>{ub();xR=r=>typeof r=="bigint"||Number.isInteger(r),PW=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);CR={identify:r=>xR(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>PW(r,2,8,t),stringify:r=>cCe(r,8,"0o")},ER={identify:xR,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>PW(r,0,10,t),stringify:hi},DR={identify:r=>xR(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>PW(r,2,16,t),stringify:r=>cCe(r,16,"0x")}});var dCe,uCe=y(()=>{cb();bR();db();UE();EW();DW();MW();dCe=[Ql,Jl,jm,kg,HE,CR,ER,DR,TR,wR,SR]});function pCe(r){return typeof r=="bigint"||Number.isInteger(r)}var PR,Dlt,Plt,mCe,fCe=y(()=>{aa();cb();db();PR=({value:r})=>JSON.stringify(r),Dlt=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:PR},{identify:r=>r==null,createNode:()=>new Ae(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:PR},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:PR},{identify:pCe,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(r,e,{intAsBigInt:t})=>t?BigInt(r):parseInt(r,10),stringify:({value:r})=>pCe(r)?r.toString():JSON.stringify(r)},{identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:r=>parseFloat(r),stringify:PR}],Plt={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},mCe=[Ql,Jl].concat(Dlt,Plt)});var VE,AW=y(()=>{aa();$E();VE={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof atob=="function"){let t=atob(r.replace(/[\n\r]/g,"")),n=new Uint8Array(t.length);for(let a=0;a<t.length;++a)n[a]=t.charCodeAt(a);return n}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),r},stringify({comment:r,type:e,value:t},n,a,i){if(!t)return"";let s=t,o;if(typeof btoa=="function"){let l="";for(let c=0;c<s.length;++c)l+=String.fromCharCode(s[c]);o=btoa(l)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e!=null||(e=Ae.BLOCK_LITERAL),e!==Ae.QUOTE_DOUBLE){let l=Math.max(n.options.lineWidth-n.indent.length,n.options.minContentWidth),c=Math.ceil(o.length/l),d=new Array(c);for(let u=0,p=0;u<c;++u,p+=l)d[u]=o.substr(p,l);o=d.join(e===Ae.BLOCK_LITERAL?`
|
||
`:" ")}return Yu({comment:r,type:e,value:o},n,a,i)}}});function _W(r,e){var t;if(Qo(r))for(let n=0;n<r.items.length;++n){let a=r.items[n];if(!Lt(a)){if(Zo(a)){a.items.length>1&&e("Each pair must have its own sequence indicator");let i=a.items[0]||new Cn(new Ae(null));if(a.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${a.commentBefore}
|
||
${i.key.commentBefore}`:a.commentBefore),a.comment){let s=(t=i.value)!=null?t:i.key;s.comment=s.comment?`${a.comment}
|
||
${s.comment}`:a.comment}a=i}r.items[n]=Lt(a)?a:new Cn(a)}}else e("Expected a sequence for this tag");return r}function IW(r,e,t){let{replacer:n}=t,a=new Ua(r);a.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let s of e){typeof n=="function"&&(s=n.call(e,String(i++),s));let o,l;if(Array.isArray(s))if(s.length===2)o=s[0],l=s[1];else throw new TypeError(`Expected [key, value] tuple: ${s}`);else if(s&&s instanceof Object){let c=Object.keys(s);if(c.length===1)o=c[0],l=s[o];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else o=s;a.items.push(lb(o,l,t))}return a}var qE,MR=y(()=>{nr();Fm();aa();zm();qE={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:_W,createNode:IW}});var pb,WE,NW=y(()=>{nr();Nm();Lm();zm();MR();pb=class r extends Ua{constructor(){super(),this.add=On.prototype.add.bind(this),this.delete=On.prototype.delete.bind(this),this.get=On.prototype.get.bind(this),this.has=On.prototype.has.bind(this),this.set=On.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t!=null&&t.onCreate&&t.onCreate(n);for(let a of this.items){let i,s;if(Lt(a)?(i=ga(a.key,"",t),s=ga(a.value,i,t)):i=ga(a,"",t),n.has(i))throw new Error("Ordered maps must not include duplicate keys");n.set(i,s)}return n}static from(e,t,n){let a=IW(e,t,n),i=new this;return i.items=a.items,i}};pb.tag="tag:yaml.org,2002:omap";WE={collection:"seq",identify:r=>r instanceof Map,nodeClass:pb,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=_W(r,e),n=[];for(let{key:a}of t.items)ht(a)&&(n.includes(a.value)?e(`Ordered maps must not include duplicate keys: ${a.value}`):n.push(a.value));return Object.assign(new pb,t)},createNode:(r,e,t)=>pb.from(r,e,t)}});function hCe({value:r,source:e},t){return e&&(r?RW:FW).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var RW,FW,gCe=y(()=>{aa();RW={identify:r=>r===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Ae(!0),stringify:hCe},FW={identify:r=>r===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Ae(!1),stringify:hCe}});var yCe,vCe,kCe,bCe=y(()=>{aa();ub();yCe={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:hi},vCe={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r.replace(/_/g,"")),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():hi(r)}},kCe={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(r){let e=new Ae(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let n=r.substring(t+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:hi}});function AR(r,e,t,{intAsBigInt:n}){let a=r[0];if((a==="-"||a==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),n){switch(t){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let s=BigInt(r);return a==="-"?BigInt(-1)*s:s}let i=parseInt(r,t);return a==="-"?-1*i:i}function OW(r,e,t){let{value:n}=r;if(YE(n)){let a=n.toString(e);return n<0?"-"+t+a.substr(1):t+a}return hi(r)}var YE,TCe,wCe,SCe,xCe,CCe=y(()=>{ub();YE=r=>typeof r=="bigint"||Number.isInteger(r);TCe={identify:YE,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>AR(r,2,2,t),stringify:r=>OW(r,2,"0b")},wCe={identify:YE,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>AR(r,1,8,t),stringify:r=>OW(r,8,"0")},SCe={identify:YE,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>AR(r,0,10,t),stringify:hi},xCe={identify:YE,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>AR(r,2,16,t),stringify:r=>OW(r,16,"0x")}});var mb,GE,LW=y(()=>{nr();Fm();Lm();mb=class r extends On{constructor(e){super(e),this.tag=r.tag}add(e){let t;Lt(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new Cn(e.key,null):t=new Cn(e,null),Om(this.items,t.key)||this.items.push(t)}get(e,t){let n=Om(this.items,e);return!t&&Lt(n)?ht(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=Om(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Cn(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw new Error("Set items must all have null values")}static from(e,t,n){let{replacer:a}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let s of t)typeof a=="function"&&(s=a.call(t,s,s)),i.items.push(lb(s,null,n));return i}};mb.tag="tag:yaml.org,2002:set";GE={collection:"map",identify:r=>r instanceof Set,nodeClass:mb,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>mb.from(r,e,t),resolve(r,e){if(Zo(r)){if(r.hasAllNullValues(!0))return Object.assign(new mb,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}}});function zW(r,e){let t=r[0],n=t==="-"||t==="+"?r.substring(1):r,a=s=>e?BigInt(s):Number(s),i=n.replace(/_/g,"").split(":").reduce((s,o)=>s*a(60)+a(o),a(0));return t==="-"?a(-1)*i:i}function ECe(r){let{value:e}=r,t=s=>s;if(typeof e=="bigint")t=s=>BigInt(s);else if(isNaN(e)||!isFinite(e))return hi(r);let n="";e<0&&(n="-",e*=t(-1));let a=t(60),i=[e%a];return e<60?i.unshift(0):(e=(e-i[0])/a,i.unshift(e%a),e>=60&&(e=(e-i[0])/a,i.unshift(e))),n+i.map(s=>String(s).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var _R,IR,fb,jW=y(()=>{ub();_R={identify:r=>typeof r=="bigint"||Number.isInteger(r),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(r,e,{intAsBigInt:t})=>zW(r,t),stringify:ECe},IR={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:r=>zW(r,!1),stringify:ECe},fb={identify:r=>r instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(r){let e=r.match(fb.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,n,a,i,s,o]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(t,n-1,a,i||0,s||0,o||0,l),d=e[8];if(d&&d!=="Z"){let u=zW(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:r})=>{var e;return(e=r==null?void 0:r.toISOString().replace(/(T00:00:00)?\.000Z$/,""))!=null?e:""}}});var $W,DCe=y(()=>{cb();bR();db();UE();AW();gCe();bCe();CCe();hR();NW();MR();LW();jW();$W=[Ql,Jl,jm,kg,RW,FW,TCe,wCe,SCe,xCe,yCe,vCe,kCe,VE,Zl,WE,qE,GE,_R,IR,fb]});function NR(r,e,t){let n=PCe.get(e);if(n&&!r)return t&&!n.includes(Zl)?n.concat(Zl):n.slice();let a=n;if(!a)if(Array.isArray(r))a=[];else{let i=Array.from(PCe.keys()).filter(s=>s!=="yaml11").map(s=>JSON.stringify(s)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)a=a.concat(i);else typeof r=="function"&&(a=r(a.slice()));return t&&(a=a.concat(Zl)),a.reduce((i,s)=>{let o=typeof s=="string"?MCe[s]:s;if(!o){let l=JSON.stringify(s),c=Object.keys(MCe).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return i.includes(o)||i.push(o),i},[])}var PCe,MCe,ACe,_Ce=y(()=>{cb();bR();db();UE();EW();DW();MW();uCe();fCe();AW();hR();NW();MR();DCe();LW();jW();PCe=new Map([["core",dCe],["failsafe",[Ql,Jl,jm]],["json",mCe],["yaml11",$W],["yaml-1.1",$W]]),MCe={binary:VE,bool:HE,float:SR,floatExp:wR,floatNaN:TR,floatTime:IR,int:ER,intHex:DR,intOct:CR,intTime:_R,map:Ql,merge:Zl,null:kg,omap:WE,pairs:qE,seq:Jl,set:GE,timestamp:fb},ACe={"tag:yaml.org,2002:binary":VE,"tag:yaml.org,2002:merge":Zl,"tag:yaml.org,2002:omap":WE,"tag:yaml.org,2002:pairs":qE,"tag:yaml.org,2002:set":GE,"tag:yaml.org,2002:timestamp":fb}});var Mlt,hb,BW=y(()=>{nr();cb();db();UE();_Ce();Mlt=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,hb=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:a,schema:i,sortMapEntries:s,toStringDefaults:o}){this.compat=Array.isArray(e)?NR(e,"compat"):e?NR(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=a?ACe:{},this.tags=NR(t,this.name,n),this.toStringOptions=o!=null?o:null,Object.defineProperty(this,Gl,{value:Ql}),Object.defineProperty(this,so,{value:jm}),Object.defineProperty(this,qu,{value:Jl}),this.sortMapEntries=typeof s=="function"?s:s===!0?Mlt:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}}});function ICe(r,e){var l;let t=[],n=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),n=!0):r.directives.docStart&&(n=!0)}n&&t.push("---");let a=pR(r,e),{commentString:i}=a.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Jo(c,""))}let s=!1,o=null;if(r.contents){if(Vt(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let u=i(r.contents.commentBefore);t.push(Jo(u,""))}a.forceBlockIndent=!!r.comment,o=r.contents.comment}let c=o?void 0:()=>s=!0,d=Gu(r.contents,a,()=>o=null,c);o&&(d+=rd(d,"",i(o))),(d[0]==="|"||d[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${d}`:t.push(d)}else t.push(Gu(r.contents,a));if((l=r.directives)!=null&&l.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
|
||
`)?(t.push("..."),t.push(Jo(c,""))):t.push(`... ${c}`)}else t.push("...");else{let c=r.comment;c&&s&&(c=c.replace(/^\n+/,"")),c&&((!s||o)&&t[t.length-1]!==""&&t.push(""),t.push(Jo(i(c),"")))}return t.join(`
|
||
`)+`
|
||
`}var NCe=y(()=>{nr();BE();OE()});function gb(r){if(hr(r))return!0;throw new Error("Expected a YAML collection as document contents")}var nd,KE=y(()=>{NE();oR();nr();Fm();Nm();BW();NCe();nR();yW();RE();fW();nd=class r{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Hi,{value:eR});let a=null;typeof t=="function"||Array.isArray(t)?a=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},n);this.options=i;let{version:s}=i;n!=null&&n._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(s=this.directives.yaml.version)):this.directives=new ed({version:s}),this.setSchema(s,n),this.contents=e===void 0?null:this.createNode(e,a,n)}clone(){let e=Object.create(r.prototype,{[Hi]:{value:eR}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=Vt(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){gb(this.contents)&&this.contents.add(e)}addIn(e,t){gb(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=hW(this);e.anchor=!t||n.has(t)?gW(t||"a",n):t}return new td(e.anchor)}createNode(e,t,n){let a;if(typeof t=="function")e=t.call({"":e},"",e),a=t;else if(Array.isArray(t)){let g=b=>typeof b=="number"||b instanceof String||b instanceof Number,v=t.filter(g).map(String);v.length>0&&(t=t.concat(v)),a=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:s,flow:o,keepUndefined:l,onTagObj:c,tag:d}=n!=null?n:{},{onAnchor:u,setAnchors:p,sourceObjects:m}=tCe(this,s||"a"),f={aliasDuplicateObjects:i!=null?i:!0,keepUndefined:l!=null?l:!1,onAnchor:u,onTagObj:c,replacer:a,schema:this.schema,sourceObjects:m},h=Wu(e,d,f);return o&&hr(h)&&(h.flow=!0),p(),h}createPair(e,t,n={}){let a=this.createNode(e,null,n),i=this.createNode(t,null,n);return new Cn(a,i)}delete(e){return gb(this.contents)?this.contents.delete(e):!1}deleteIn(e){return sb(e)?this.contents==null?!1:(this.contents=null,!0):gb(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return hr(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return sb(e)?!t&&ht(this.contents)?this.contents.value:this.contents:hr(this.contents)?this.contents.getIn(e,t):void 0}has(e){return hr(this.contents)?this.contents.has(e):!1}hasIn(e){return sb(e)?this.contents!==void 0:hr(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=FE(this.schema,[e],t):gb(this.contents)&&this.contents.set(e,t)}setIn(e,t){sb(e)?this.contents=t:this.contents==null?this.contents=FE(this.schema,Array.from(e),t):gb(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let n;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new ed({version:"1.1"}),n={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new ed({version:e}),n={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=null;break;default:{let a=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${a}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new hb(Object.assign(n,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:a,onAnchor:i,reviver:s}={}){let o={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof a=="number"?a:100},l=ga(this.contents,t!=null?t:"",o);if(typeof i=="function")for(let{count:c,res:d}of o.anchors.values())i(d,c);return typeof s=="function"?Im(s,{"":l},"",l):l}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return ICe(this,e)}}});var yb,oo,vb,ZE,QE=y(()=>{yb=class extends Error{constructor(e,t,n,a){super(),this.name=e,this.code=n,this.message=a,this.pos=t}},oo=class extends yb{constructor(e,t,n){super("YAMLParseError",e,t,n)}},vb=class extends yb{constructor(e,t,n){super("YAMLWarning",e,t,n)}},ZE=(r,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(o=>e.linePos(o));let{line:n,col:a}=t.linePos[0];t.message+=` at line ${n}, column ${a}`;let i=a-1,s=r.substring(e.lineStarts[n-1],e.lineStarts[n]).replace(/[\n\r]+$/,"");if(i>=60&&s.length>80){let o=Math.min(i-39,s.length-79);s="\u2026"+s.substring(o),i-=o-1}if(s.length>80&&(s=s.substring(0,79)+"\u2026"),n>1&&/^ *$/.test(s.substring(0,i))){let o=r.substring(e.lineStarts[n-2],e.lineStarts[n-1]);o.length>80&&(o=o.substring(0,79)+`\u2026
|
||
`),s=o+s}if(/[^ ]/.test(s)){let o=1,l=t.linePos[1];(l==null?void 0:l.line)===n&&l.col>a&&(o=Math.max(1,Math.min(l.col-a,80-i)));let c=" ".repeat(i)+"^".repeat(o);t.message+=`:
|
||
|
||
${s}
|
||
${c}
|
||
`}}});function ad(r,{flow:e,indicator:t,next:n,offset:a,onError:i,parentIndent:s,startOnNewline:o}){let l=!1,c=o,d=o,u="",p="",m=!1,f=!1,h=null,g=null,v=null,b=null,k=null,w=null,S=null;for(let D of r)switch(f&&(D.type!=="space"&&D.type!=="newline"&&D.type!=="comma"&&i(D.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),f=!1),h&&(c&&D.type!=="comment"&&D.type!=="newline"&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=null),D.type){case"space":!e&&(t!=="doc-start"||(n==null?void 0:n.type)!=="flow-collection")&&D.source.includes(" ")&&(h=D),d=!0;break;case"comment":{d||i(D,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let P=D.source.substring(1)||" ";u?u+=p+P:u=P,p="",c=!1;break}case"newline":c?u?u+=D.source:(!w||t!=="seq-item-ind")&&(l=!0):p+=D.source,c=!0,m=!0,(g||v)&&(b=D),d=!0;break;case"anchor":g&&i(D,"MULTIPLE_ANCHORS","A node can have at most one anchor"),D.source.endsWith(":")&&i(D.offset+D.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),g=D,S!=null||(S=D.offset),c=!1,d=!1,f=!0;break;case"tag":{v&&i(D,"MULTIPLE_TAGS","A node can have at most one tag"),v=D,S!=null||(S=D.offset),c=!1,d=!1,f=!0;break}case t:(g||v)&&i(D,"BAD_PROP_ORDER",`Anchors and tags must be after the ${D.source} indicator`),w&&i(D,"UNEXPECTED_TOKEN",`Unexpected ${D.source} in ${e!=null?e:"collection"}`),w=D,c=t==="seq-item-ind"||t==="explicit-key-ind",d=!1;break;case"comma":if(e){k&&i(D,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),k=D,c=!1,d=!1;break}default:i(D,"UNEXPECTED_TOKEN",`Unexpected ${D.type} token`),c=!1,d=!1}let C=r[r.length-1],E=C?C.offset+C.source.length:a;return f&&n&&n.type!=="space"&&n.type!=="newline"&&n.type!=="comma"&&(n.type!=="scalar"||n.source!=="")&&i(n.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),h&&(c&&h.indent<=s||(n==null?void 0:n.type)==="block-map"||(n==null?void 0:n.type)==="block-seq")&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:k,found:w,spaceBefore:l,comment:u,hasNewline:m,anchor:g,tag:v,newlineAfterProp:b,end:E,start:S!=null?S:E}}var JE=y(()=>{});function $m(r){if(!r)return null;switch(r.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(r.source.includes(`
|
||
`))return!0;if(r.end){for(let e of r.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of r.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if($m(e.key)||$m(e.value))return!0}return!1;default:return!0}}var RR=y(()=>{});function XE(r,e,t){if((e==null?void 0:e.type)==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&$m(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}var UW=y(()=>{RR()});function FR(r,e,t){let{uniqueKeys:n}=r.options;if(n===!1)return!1;let a=typeof n=="function"?n:(i,s)=>i===s||ht(i)&&ht(s)&&i.value===s.value;return e.some(i=>a(i.key,t))}var HW=y(()=>{nr()});function FCe({composeNode:r,composeEmptyNode:e},t,n,a,i){var d,u;let s=(d=i==null?void 0:i.nodeClass)!=null?d:On,o=new s(t.schema);t.atRoot&&(t.atRoot=!1);let l=n.offset,c=null;for(let p of n.items){let{start:m,key:f,sep:h,value:g}=p,v=ad(m,{indicator:"explicit-key-ind",next:f!=null?f:h==null?void 0:h[0],offset:l,onError:a,parentIndent:n.indent,startOnNewline:!0}),b=!v.found;if(b){if(f&&(f.type==="block-seq"?a(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in f&&f.indent!==n.indent&&a(l,"BAD_INDENT",RCe)),!v.anchor&&!v.tag&&!h){c=v.end,v.comment&&(o.comment?o.comment+=`
|
||
`+v.comment:o.comment=v.comment);continue}(v.newlineAfterProp||$m(f))&&a(f!=null?f:m[m.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else((u=v.found)==null?void 0:u.indent)!==n.indent&&a(l,"BAD_INDENT",RCe);t.atKey=!0;let k=v.end,w=f?r(t,f,v,a):e(t,k,m,null,v,a);t.schema.compat&&XE(n.indent,f,a),t.atKey=!1,FR(t,o.items,w)&&a(k,"DUPLICATE_KEY","Map keys must be unique");let S=ad(h!=null?h:[],{indicator:"map-value-ind",next:g,offset:w.range[2],onError:a,parentIndent:n.indent,startOnNewline:!f||f.type==="block-scalar"});if(l=S.end,S.found){b&&((g==null?void 0:g.type)==="block-map"&&!S.hasNewline&&a(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&v.start<S.found.offset-1024&&a(w.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let C=g?r(t,g,S,a):e(t,l,h,null,S,a);t.schema.compat&&XE(n.indent,g,a),l=C.range[2];let E=new Cn(w,C);t.options.keepSourceTokens&&(E.srcToken=p),o.items.push(E)}else{b&&a(w.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),S.comment&&(w.comment?w.comment+=`
|
||
`+S.comment:w.comment=S.comment);let C=new Cn(w);t.options.keepSourceTokens&&(C.srcToken=p),o.items.push(C)}}return c&&c<l&&a(c,"IMPOSSIBLE","Map comment with trailing content"),o.range=[n.offset,l,c!=null?c:l],o}var RCe,OCe=y(()=>{Fm();Lm();JE();RR();UW();HW();RCe="All mapping items must start at the same column"});function LCe({composeNode:r,composeEmptyNode:e},t,n,a,i){var d;let s=(d=i==null?void 0:i.nodeClass)!=null?d:Ua,o=new s(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let l=n.offset,c=null;for(let{start:u,value:p}of n.items){let m=ad(u,{indicator:"seq-item-ind",next:p,offset:l,onError:a,parentIndent:n.indent,startOnNewline:!0});if(!m.found)if(m.anchor||m.tag||p)(p==null?void 0:p.type)==="block-seq"?a(m.end,"BAD_INDENT","All sequence items must start at the same column"):a(l,"MISSING_CHAR","Sequence item without - indicator");else{c=m.end,m.comment&&(o.comment=m.comment);continue}let f=p?r(t,p,m,a):e(t,m.end,u,null,m,a);t.schema.compat&&XE(n.indent,p,a),l=f.range[2],o.items.push(f)}return o.range=[n.offset,l,c!=null?c:l],o}var zCe=y(()=>{zm();JE();UW()});function id(r,e,t,n){let a="";if(r){let i=!1,s="";for(let o of r){let{source:l,type:c}=o;switch(c){case"space":i=!0;break;case"comment":{t&&!i&&n(o,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let d=l.substring(1)||" ";a?a+=s+d:a=d,s="";break}case"newline":a&&(s+=l),i=!0;break;default:n(o,"UNEXPECTED_TOKEN",`Unexpected ${c} at node end`)}e+=l.length}}return{comment:a,offset:e}}var kb=y(()=>{});function jCe({composeNode:r,composeEmptyNode:e},t,n,a,i){var g,v,b;let s=n.start.source==="{",o=s?"flow map":"flow sequence",l=(g=i==null?void 0:i.nodeClass)!=null?g:s?On:Ua,c=new l(t.schema);c.flow=!0;let d=t.atRoot;d&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=n.offset+n.start.source.length;for(let k=0;k<n.items.length;++k){let w=n.items[k],{start:S,key:C,sep:E,value:D}=w,P=ad(S,{flow:o,indicator:"explicit-key-ind",next:C!=null?C:E==null?void 0:E[0],offset:u,onError:a,parentIndent:n.indent,startOnNewline:!1});if(!P.found){if(!P.anchor&&!P.tag&&!E&&!D){k===0&&P.comma?a(P.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${o}`):k<n.items.length-1&&a(P.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${o}`),P.comment&&(c.comment?c.comment+=`
|
||
`+P.comment:c.comment=P.comment),u=P.end;continue}!s&&t.options.strict&&$m(C)&&a(C,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(k===0)P.comma&&a(P.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${o}`);else if(P.comma||a(P.start,"MISSING_CHAR",`Missing , between ${o} items`),P.comment){let O="";e:for(let z of S)switch(z.type){case"comma":case"space":break;case"comment":O=z.source.substring(1);break e;default:break e}if(O){let z=c.items[c.items.length-1];Lt(z)&&(z=(v=z.value)!=null?v:z.key),z.comment?z.comment+=`
|
||
`+O:z.comment=O,P.comment=P.comment.substring(O.length+1)}}if(!s&&!E&&!P.found){let O=D?r(t,D,P,a):e(t,P.end,E,null,P,a);c.items.push(O),u=O.range[2],qW(D)&&a(O.range,"BLOCK_IN_FLOW",VW)}else{t.atKey=!0;let O=P.end,z=C?r(t,C,P,a):e(t,O,S,null,P,a);qW(C)&&a(z.range,"BLOCK_IN_FLOW",VW),t.atKey=!1;let R=ad(E!=null?E:[],{flow:o,indicator:"map-value-ind",next:D,offset:z.range[2],onError:a,parentIndent:n.indent,startOnNewline:!1});if(R.found){if(!s&&!P.found&&t.options.strict){if(E)for(let $ of E){if($===R.found)break;if($.type==="newline"){a($,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}P.start<R.found.offset-1024&&a(R.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else D&&("source"in D&&((b=D.source)==null?void 0:b[0])===":"?a(D,"MISSING_CHAR",`Missing space after : in ${o}`):a(R.start,"MISSING_CHAR",`Missing , or : between ${o} items`));let A=D?r(t,D,R,a):R.found?e(t,R.end,E,null,R,a):null;A?qW(D)&&a(A.range,"BLOCK_IN_FLOW",VW):R.comment&&(z.comment?z.comment+=`
|
||
`+R.comment:z.comment=R.comment);let F=new Cn(z,A);if(t.options.keepSourceTokens&&(F.srcToken=w),s){let $=c;FR(t,$.items,z)&&a(O,"DUPLICATE_KEY","Map keys must be unique"),$.items.push(F)}else{let $=new On(t.schema);$.flow=!0,$.items.push(F);let B=(A!=null?A:z).range;$.range=[z.range[0],B[1],B[2]],c.items.push($)}u=A?A.range[2]:R.end}}let p=s?"}":"]",[m,...f]=n.end,h=u;if((m==null?void 0:m.source)===p)h=m.offset+m.source.length;else{let k=o[0].toUpperCase()+o.substring(1),w=d?`${k} must end with a ${p}`:`${k} in block collection must be sufficiently indented and end with a ${p}`;a(u,d?"MISSING_CHAR":"BAD_INDENT",w),m&&m.source.length!==1&&f.unshift(m)}if(f.length>0){let k=id(f,h,t.options.strict,a);k.comment&&(c.comment?c.comment+=`
|
||
`+k.comment:c.comment=k.comment),c.range=[n.offset,h,k.offset]}else c.range=[n.offset,h,h];return c}var VW,qW,$Ce=y(()=>{nr();Fm();Lm();zm();kb();JE();RR();HW();VW="Block collections are not allowed within flow collections",qW=r=>r&&(r.type==="block-map"||r.type==="block-seq")});function WW(r,e,t,n,a,i){let s=t.type==="block-map"?FCe(r,e,t,n,i):t.type==="block-seq"?LCe(r,e,t,n,i):jCe(r,e,t,n,i),o=s.constructor;return a==="!"||a===o.tagName?(s.tag=o.tagName,s):(a&&(s.tag=a),s)}function BCe(r,e,t,n,a){var p,m,f;let i=n.tag,s=i?e.directives.tagName(i.source,h=>a(i,"TAG_RESOLVE_FAILED",h)):null;if(t.type==="block-seq"){let{anchor:h,newlineAfterProp:g}=n,v=h&&i?h.offset>i.offset?h:i:h!=null?h:i;v&&(!g||g.offset<v.offset)&&a(v,"MISSING_CHAR","Missing newline after block sequence props")}let o=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!i||!s||s==="!"||s===On.tagName&&o==="map"||s===Ua.tagName&&o==="seq")return WW(r,e,t,a,s);let l=e.schema.tags.find(h=>h.tag===s&&h.collection===o);if(!l){let h=e.schema.knownTags[s];if((h==null?void 0:h.collection)===o)e.schema.tags.push(Object.assign({},h,{default:!1})),l=h;else return h?a(i,"BAD_COLLECTION_TYPE",`${h.tag} used for ${o} collection, but expects ${(p=h.collection)!=null?p:"scalar"}`,!0):a(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${s}`,!0),WW(r,e,t,a,s)}let c=WW(r,e,t,a,s,l),d=(f=(m=l.resolve)==null?void 0:m.call(l,c,h=>a(i,"TAG_RESOLVE_FAILED",h),e.options))!=null?f:c,u=Vt(d)?d:new Ae(d);return u.range=c.range,u.tag=s,l!=null&&l.format&&(u.format=l.format),u}var UCe=y(()=>{nr();aa();Lm();zm();OCe();zCe();$Ce()});function OR(r,e,t){let n=e.offset,a=Alt(e,r.options.strict,t);if(!a)return{value:"",type:null,comment:"",range:[n,n,n]};let i=a.mode===">"?Ae.BLOCK_FOLDED:Ae.BLOCK_LITERAL,s=e.source?_lt(e.source):[],o=s.length;for(let h=s.length-1;h>=0;--h){let g=s[h][1];if(g===""||g==="\r")o=h;else break}if(o===0){let h=a.chomp==="+"&&s.length>0?`
|
||
`.repeat(Math.max(1,s.length-1)):"",g=n+a.length;return e.source&&(g+=e.source.length),{value:h,type:i,comment:a.comment,range:[n,g,g]}}let l=e.indent+a.indent,c=e.offset+a.length,d=0;for(let h=0;h<o;++h){let[g,v]=s[h];if(v===""||v==="\r")a.indent===0&&g.length>l&&(l=g.length);else{g.length<l&&t(c+g.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),a.indent===0&&(l=g.length),d=h,l===0&&!r.atRoot&&t(c,"BAD_INDENT","Block scalar values in collections must be indented");break}c+=g.length+v.length+1}for(let h=s.length-1;h>=o;--h)s[h][0].length>l&&(o=h+1);let u="",p="",m=!1;for(let h=0;h<d;++h)u+=s[h][0].slice(l)+`
|
||
`;for(let h=d;h<o;++h){let[g,v]=s[h];c+=g.length+v.length+1;let b=v[v.length-1]==="\r";if(b&&(v=v.slice(0,-1)),v&&g.length<l){let w=`Block scalar lines must not be less indented than their ${a.indent?"explicit indentation indicator":"first line"}`;t(c-v.length-(b?2:1),"BAD_INDENT",w),g=""}i===Ae.BLOCK_LITERAL?(u+=p+g.slice(l)+v,p=`
|
||
`):g.length>l||v[0]===" "?(p===" "?p=`
|
||
`:!m&&p===`
|
||
`&&(p=`
|
||
|
||
`),u+=p+g.slice(l)+v,p=`
|
||
`,m=!0):v===""?p===`
|
||
`?u+=`
|
||
`:p=`
|
||
`:(u+=p+v,p=" ",m=!1)}switch(a.chomp){case"-":break;case"+":for(let h=o;h<s.length;++h)u+=`
|
||
`+s[h][0].slice(l);u[u.length-1]!==`
|
||
`&&(u+=`
|
||
`);break;default:u+=`
|
||
`}let f=n+a.length+e.source.length;return{value:u,type:i,comment:a.comment,range:[n,f,f]}}function Alt({offset:r,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:a}=e[0],i=a[0],s=0,o="",l=-1;for(let p=1;p<a.length;++p){let m=a[p];if(!o&&(m==="-"||m==="+"))o=m;else{let f=Number(m);!s&&f?s=f:l===-1&&(l=r+p)}}l!==-1&&n(l,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${a}`);let c=!1,d="",u=a.length;for(let p=1;p<e.length;++p){let m=e[p];switch(m.type){case"space":c=!0;case"newline":u+=m.source.length;break;case"comment":t&&!c&&n(m,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=m.source.length,d=m.source.substring(1);break;case"error":n(m,"UNEXPECTED_TOKEN",m.message),u+=m.source.length;break;default:{let f=`Unexpected token in block scalar header: ${m.type}`;n(m,"UNEXPECTED_TOKEN",f);let h=m.source;h&&typeof h=="string"&&(u+=h.length)}}}return{mode:i,indent:s,chomp:o,comment:d,length:u}}function _lt(r){let e=r.split(/\n( *)/),t=e[0],n=t.match(/^( *)/),i=[n!=null&&n[1]?[n[1],t.slice(n[1].length)]:["",t]];for(let s=1;s<e.length;s+=2)i.push([e[s],e[s+1]]);return i}var YW=y(()=>{aa()});function LR(r,e,t){let{offset:n,type:a,source:i,end:s}=r,o,l,c=(p,m,f)=>t(n+p,m,f);switch(a){case"scalar":o=Ae.PLAIN,l=Ilt(i,c);break;case"single-quoted-scalar":o=Ae.QUOTE_SINGLE,l=Nlt(i,c);break;case"double-quoted-scalar":o=Ae.QUOTE_DOUBLE,l=Rlt(i,c);break;default:return t(r,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${a}`),{value:"",type:null,comment:"",range:[n,n+i.length,n+i.length]}}let d=n+i.length,u=id(s,d,e,t);return{value:l,type:o,comment:u.comment,range:[n,d,u.offset]}}function Ilt(r,e){let t="";switch(r[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${r[0]}`;break}case"@":case"`":{t=`reserved character ${r[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),HCe(r)}function Nlt(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),HCe(r.slice(1,-1)).replace(/''/g,"'")}function HCe(r){var l;let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
||
`,"sy"),t=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
||
`,"sy")}catch(c){e=/(.*?)[ \t]*\r?\n/sy,t=/[ \t]*(.*?)[ \t]*\r?\n/sy}let n=e.exec(r);if(!n)return r;let a=n[1],i=" ",s=e.lastIndex;for(t.lastIndex=s;n=t.exec(r);)n[1]===""?i===`
|
||
`?a+=i:i=`
|
||
`:(a+=i+n[1],i=" "),s=t.lastIndex;let o=/[ \t]*(.*)/sy;return o.lastIndex=s,n=o.exec(r),a+i+((l=n==null?void 0:n[1])!=null?l:"")}function Rlt(r,e){let t="";for(let n=1;n<r.length-1;++n){let a=r[n];if(!(a==="\r"&&r[n+1]===`
|
||
`))if(a===`
|
||
`){let{fold:i,offset:s}=Flt(r,n);t+=i,n=s}else if(a==="\\"){let i=r[++n],s=Olt[i];if(s)t+=s;else if(i===`
|
||
`)for(i=r[n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="\r"&&r[n+1]===`
|
||
`)for(i=r[++n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="x"||i==="u"||i==="U"){let o=i==="x"?2:i==="u"?4:8;t+=Llt(r,n+1,o,e),n+=o}else{let o=r.substr(n-1,2);e(n-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${o}`),t+=o}}else if(a===" "||a===" "){let i=n,s=r[n+1];for(;s===" "||s===" ";)s=r[++n+1];s!==`
|
||
`&&!(s==="\r"&&r[n+2]===`
|
||
`)&&(t+=n>i?r.slice(i,n+1):a)}else t+=a}return(r[r.length-1]!=='"'||r.length===1)&&e(r.length,"MISSING_CHAR",'Missing closing "quote'),t}function Flt(r,e){let t="",n=r[e+1];for(;(n===" "||n===" "||n===`
|
||
`||n==="\r")&&!(n==="\r"&&r[e+2]!==`
|
||
`);)n===`
|
||
`&&(t+=`
|
||
`),e+=1,n=r[e+1];return t||(t=" "),{fold:t,offset:e}}function Llt(r,e,t,n){let a=r.substr(e,t),s=a.length===t&&/^[0-9a-fA-F]+$/.test(a)?parseInt(a,16):NaN;try{return String.fromCodePoint(s)}catch(o){let l=r.substr(e-2,t+2);return n(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${l}`),l}}var Olt,GW=y(()=>{aa();kb();Olt={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
||
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "}});function KW(r,e,t,n){let{value:a,type:i,comment:s,range:o}=e.type==="block-scalar"?OR(r,e,n):LR(e,r.options.strict,n),l=t?r.directives.tagName(t.source,u=>n(t,"TAG_RESOLVE_FAILED",u)):null,c;r.options.stringKeys&&r.atKey?c=r.schema[so]:l?c=zlt(r.schema,a,l,t,n):e.type==="scalar"?c=jlt(r,a,e,n):c=r.schema[so];let d;try{let u=c.resolve(a,p=>n(t!=null?t:e,"TAG_RESOLVE_FAILED",p),r.options);d=ht(u)?u:new Ae(u)}catch(u){let p=u instanceof Error?u.message:String(u);n(t!=null?t:e,"TAG_RESOLVE_FAILED",p),d=new Ae(a)}return d.range=o,d.source=a,i&&(d.type=i),l&&(d.tag=l),c.format&&(d.format=c.format),s&&(d.comment=s),d}function zlt(r,e,t,n,a){var o;if(t==="!")return r[so];let i=[];for(let l of r.tags)if(!l.collection&&l.tag===t)if(l.default&&l.test)i.push(l);else return l;for(let l of i)if((o=l.test)!=null&&o.test(e))return l;let s=r.knownTags[t];return s&&!s.collection?(r.tags.push(Object.assign({},s,{default:!1,test:void 0})),s):(a(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),r[so])}function jlt({atKey:r,directives:e,schema:t},n,a,i){var o;let s=t.tags.find(l=>{var c;return(l.default===!0||r&&l.default==="key")&&((c=l.test)==null?void 0:c.test(n))})||t[so];if(t.compat){let l=(o=t.compat.find(c=>{var d;return c.default&&((d=c.test)==null?void 0:d.test(n))}))!=null?o:t[so];if(s.tag!==l.tag){let c=e.tagString(s.tag),d=e.tagString(l.tag),u=`Value may be parsed as either ${c} or ${d}`;i(a,"TAG_RESOLVE_FAILED",u,!0)}}return s}var VCe=y(()=>{nr();aa();YW();GW()});function qCe(r,e,t){if(e){t!=null||(t=e.length);for(let n=t-1;n>=0;--n){let a=e[n];switch(a.type){case"space":case"comment":case"newline":r-=a.source.length;continue}for(a=e[++n];(a==null?void 0:a.type)==="space";)r+=a.source.length,a=e[++n];break}}return r}var WCe=y(()=>{});function ZW(r,e,t,n){let a=r.atKey,{spaceBefore:i,comment:s,anchor:o,tag:l}=t,c,d=!0;switch(e.type){case"alias":c=Blt(r,e,n),(o||l)&&n(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=KW(r,e,l,n),o&&(c.anchor=o.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=BCe($lt,r,e,t,n),o&&(c.anchor=o.source.substring(1))}catch(u){let p=u instanceof Error?u.message:String(u);n(e,"RESOURCE_EXHAUSTION",p)}break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;n(e,"UNEXPECTED_TOKEN",u),d=!1}}return c!=null||(c=zR(r,e.offset,void 0,null,t,n)),o&&c.anchor===""&&n(o,"BAD_ALIAS","Anchor cannot be an empty string"),a&&r.options.stringKeys&&(!ht(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&n(l!=null?l:e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(c.spaceBefore=!0),s&&(e.type==="scalar"&&e.source===""?c.comment=s:c.commentBefore=s),r.options.keepSourceTokens&&d&&(c.srcToken=e),c}function zR(r,e,t,n,{spaceBefore:a,comment:i,anchor:s,tag:o,end:l},c){let d={type:"scalar",offset:qCe(e,t,n),indent:-1,source:""},u=KW(r,d,o,c);return s&&(u.anchor=s.source.substring(1),u.anchor===""&&c(s,"BAD_ALIAS","Anchor cannot be an empty string")),a&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=l),u}function Blt({options:r},{offset:e,source:t,end:n},a){let i=new td(t.substring(1));i.source===""&&a(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&a(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let s=e+t.length,o=id(n,s,r.strict,a);return i.range=[e,s,o.offset],o.comment&&(i.comment=o.comment),i}var $lt,YCe=y(()=>{NE();nr();UCe();VCe();kb();WCe();$lt={composeNode:ZW,composeEmptyNode:zR}});function GCe(r,e,{offset:t,start:n,value:a,end:i},s){let o=Object.assign({_directives:e},r),l=new nd(void 0,o),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=ad(n,{indicator:"doc-start",next:a!=null?a:i==null?void 0:i[0],offset:t,onError:s,parentIndent:0,startOnNewline:!0});d.found&&(l.directives.docStart=!0,a&&(a.type==="block-map"||a.type==="block-seq")&&!d.hasNewline&&s(d.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=a?ZW(c,a,d,s):zR(c,d.end,n,null,d,s);let u=l.contents.range[2],p=id(i,u,!1,s);return p.comment&&(l.comment=p.comment),l.range=[t,u,p.offset],l}var KCe=y(()=>{KE();YCe();kb();JE()});function eD(r){if(typeof r=="number")return[r,r+1];if(Array.isArray(r))return r.length===2?r:[r[0],r[1]];let{offset:e,source:t}=r;return[e,e+(typeof t=="string"?t.length:1)]}function ZCe(r){var a;let e="",t=!1,n=!1;for(let i=0;i<r.length;++i){let s=r[i];switch(s[0]){case"#":e+=(e===""?"":n?`
|
||
|
||
`:`
|
||
`)+(s.substring(1)||" "),t=!0,n=!1;break;case"%":((a=r[i+1])==null?void 0:a[0])!=="#"&&(i+=1),t=!1;break;default:t||(n=!0),t=!1}}return{comment:e,afterEmptyLine:n}}var bg,QW=y(()=>{fW();KE();QE();nr();KCe();kb();bg=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,n,a,i)=>{let s=eD(t);i?this.warnings.push(new vb(s,n,a)):this.errors.push(new oo(s,n,a))},this.directives=new ed({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:a}=ZCe(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
|
||
${n}`:n;else if(a||e.directives.docStart||!i)e.commentBefore=n;else if(hr(i)&&!i.flow&&i.items.length>0){let s=i.items[0];Lt(s)&&(s=s.key);let o=s.commentBefore;s.commentBefore=o?`${n}
|
||
${o}`:n}else{let s=i.commentBefore;i.commentBefore=s?`${n}
|
||
${s}`:n}}if(t){for(let i=0;i<this.errors.length;++i)e.errors.push(this.errors[i]);for(let i=0;i<this.warnings.length;++i)e.warnings.push(this.warnings[i])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:ZCe(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let a of e)yield*this.next(a);yield*this.end(t,n)}*next(e){switch(e.type){case"directive":this.directives.add(e.source,(t,n,a)=>{let i=eD(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,a)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=GCe(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new oo(eD(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case"doc-end":{if(!this.doc){let n="Unexpected doc-end without preceding document";this.errors.push(new oo(eD(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let t=id(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let n=this.doc.comment;this.doc.comment=n?`${n}
|
||
${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new oo(eD(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let n=Object.assign({_directives:this.directives},this.options),a=new nd(void 0,n);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),a.range=[0,t,t],this.decorate(a,!1),yield a}}}});function QCe(r,e=!0,t){if(r){let n=(a,i,s)=>{let o=typeof a=="number"?a:Array.isArray(a)?a[0]:a.offset;if(t)t(o,i,s);else throw new oo([o,o+1],i,s)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return LR(r,e,n);case"block-scalar":return OR({options:{strict:e}},r,n)}}return null}function JCe(r,e){var c;let{implicitKey:t=!1,indent:n,inFlow:a=!1,offset:i=-1,type:s="PLAIN"}=e,o=Yu({type:s,value:r},{implicitKey:t,indent:n>0?" ".repeat(n):"",inFlow:a,options:{blockQuote:!0,lineWidth:-1}}),l=(c=e.end)!=null?c:[{type:"newline",offset:-1,indent:n,source:`
|
||
`}];switch(o[0]){case"|":case">":{let d=o.indexOf(`
|
||
`),u=o.substring(0,d),p=o.substring(d+1)+`
|
||
`,m=[{type:"block-scalar-header",offset:i,indent:n,source:u}];return eEe(m,l)||m.push({type:"newline",offset:-1,indent:n,source:`
|
||
`}),{type:"block-scalar",offset:i,indent:n,props:m,source:p}}case'"':return{type:"double-quoted-scalar",offset:i,indent:n,source:o,end:l};case"'":return{type:"single-quoted-scalar",offset:i,indent:n,source:o,end:l};default:return{type:"scalar",offset:i,indent:n,source:o,end:l}}}function XCe(r,e,t={}){let{afterKey:n=!1,implicitKey:a=!1,inFlow:i=!1,type:s}=t,o="indent"in r?r.indent:null;if(n&&typeof o=="number"&&(o+=2),!s)switch(r.type){case"single-quoted-scalar":s="QUOTE_SINGLE";break;case"double-quoted-scalar":s="QUOTE_DOUBLE";break;case"block-scalar":{let c=r.props[0];if(c.type!=="block-scalar-header")throw new Error("Invalid block scalar header");s=c.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:s="PLAIN"}let l=Yu({type:s,value:e},{implicitKey:a||o===null,indent:o!==null&&o>0?" ".repeat(o):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(l[0]){case"|":case">":Ult(r,l);break;case'"':JW(r,l,"double-quoted-scalar");break;case"'":JW(r,l,"single-quoted-scalar");break;default:JW(r,l,"scalar")}}function Ult(r,e){let t=e.indexOf(`
|
||
`),n=e.substring(0,t),a=e.substring(t+1)+`
|
||
`;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=n,r.source=a}else{let{offset:i}=r,s="indent"in r?r.indent:-1,o=[{type:"block-scalar-header",offset:i,indent:s,source:n}];eEe(o,"end"in r?r.end:void 0)||o.push({type:"newline",offset:-1,indent:s,source:`
|
||
`});for(let l of Object.keys(r))l!=="type"&&l!=="offset"&&delete r[l];Object.assign(r,{type:"block-scalar",indent:s,props:o,source:a})}}function eEe(r,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":r.push(t);break;case"newline":return r.push(t),!0}return!1}function JW(r,e,t){switch(r.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":r.type=t,r.source=e;break;case"block-scalar":{let n=r.props.slice(1),a=e.length;r.props[0].type==="block-scalar-header"&&(a-=r.props[0].source.length);for(let i of n)i.offset+=a;delete r.props,Object.assign(r,{type:t,source:e,end:n});break}case"block-map":case"block-seq":{let a={type:"newline",offset:r.offset+e.length,indent:r.indent,source:`
|
||
`};delete r.items,Object.assign(r,{type:t,source:e,end:[a]});break}default:{let n="indent"in r?r.indent:-1,a="end"in r&&Array.isArray(r.end)?r.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(r))i!=="type"&&i!=="offset"&&delete r[i];Object.assign(r,{type:t,indent:n,source:e,end:a})}}}var tEe=y(()=>{YW();GW();QE();$E()});function $R(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=$R(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=jR(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=jR(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=jR(r);if(r.end)for(let t of r.end)e+=t.source;return e}default:{let e=r.source;if("end"in r&&r.end)for(let t of r.end)e+=t.source;return e}}}function jR({start:r,key:e,sep:t,value:n}){let a="";for(let i of r)a+=i.source;if(e&&(a+=$R(e)),t)for(let i of t)a+=i.source;return n&&(a+=$R(n)),a}var rEe,nEe=y(()=>{rEe=r=>"type"in r?$R(r):jR(r)});function Bm(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),iEe(Object.freeze([]),r,e)}function iEe(r,e,t){let n=t(e,r);if(typeof n=="symbol")return n;for(let a of["key","value"]){let i=e[a];if(i&&"items"in i){for(let s=0;s<i.items.length;++s){let o=iEe(Object.freeze(r.concat([[a,s]])),i.items[s],t);if(typeof o=="number")s=o-1;else{if(o===XW)return XW;o===aEe&&(i.items.splice(s,1),s-=1)}}typeof n=="function"&&a==="key"&&(n=n(e,r))}}return typeof n=="function"?n(e,r):n}var XW,Hlt,aEe,sEe=y(()=>{XW=Symbol("break visit"),Hlt=Symbol("skip children"),aEe=Symbol("remove item");Bm.BREAK=XW;Bm.SKIP=Hlt;Bm.REMOVE=aEe;Bm.itemAtPath=(r,e)=>{let t=r;for(let[n,a]of e){let i=t==null?void 0:t[n];if(i&&"items"in i)t=i.items[a];else return}return t};Bm.parentCollection=(r,e)=>{let t=Bm.itemAtPath(r,e.slice(0,-1)),n=e[e.length-1][0],a=t==null?void 0:t[n];if(a&&"items"in a)return a;throw new Error("Parent collection not found")}});var t4={};at(t4,{BOM:()=>tD,DOCUMENT:()=>rD,FLOW_END:()=>nD,SCALAR:()=>bb,createScalarToken:()=>JCe,isCollection:()=>Vlt,isScalar:()=>qlt,prettyToken:()=>Wlt,resolveAsScalar:()=>QCe,setScalarValue:()=>XCe,stringify:()=>rEe,tokenType:()=>e4,visit:()=>Bm});function Wlt(r){switch(r){case tD:return"<BOM>";case rD:return"<DOC>";case nD:return"<FLOW_END>";case bb:return"<SCALAR>";default:return JSON.stringify(r)}}function e4(r){switch(r){case tD:return"byte-order-mark";case rD:return"doc-mode";case nD:return"flow-error-end";case bb:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
||
`:case`\r
|
||
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(r[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}var tD,rD,nD,bb,Vlt,qlt,BR=y(()=>{tEe();nEe();sEe();tD="\uFEFF",rD="",nD="",bb="",Vlt=r=>!!r&&"items"in r,qlt=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar")});function Xl(r){switch(r){case void 0:case" ":case`
|
||
`:case"\r":case" ":return!0;default:return!1}}var oEe,Ylt,UR,Glt,r4,Tb,n4=y(()=>{BR();oEe=new Set("0123456789ABCDEFabcdef"),Ylt=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),UR=new Set(",[]{}"),Glt=new Set(` ,[]{}
|
||
\r `),r4=r=>!r||Glt.has(r),Tb=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){var a;if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=(a=this.next)!=null?a:"stream";for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
|
||
`?!0:t==="\r"?this.buffer[e+1]===`
|
||
`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===" ";)t=this.buffer[++n+e];if(t==="\r"){let a=this.buffer[n+e+1];if(a===`
|
||
`||!a&&!this.atEnd)return e+n+1}return t===`
|
||
`||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t==="-"||t==="."){let n=this.buffer.substr(e,3);if((n==="---"||n==="...")&&Xl(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
|
||
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===tD&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,n=e.indexOf("#");for(;n!==-1;){let i=e[n-1];if(i===" "||i===" "){t=n-1;break}else n=e.indexOf("#",n+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let a=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-a),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield rD,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&Xl(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!Xl(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&Xl(t)){let n=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=n,"block-start"}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(r4),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let a=this.getLine();if(a===null)return this.setNext("flow");if((n!==-1&&n<this.indentNext&&a[0]!=="#"||n===0&&(a.startsWith("---")||a.startsWith("..."))&&Xl(a[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(a[0]==="]"||a[0]==="}")))return this.flowLevel=0,yield nD,yield*this.parseLineStart();let i=0;for(;a[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),a[i]){case void 0:return"flow";case"#":return yield*this.pushCount(a.length-i),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(r4),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let s=this.charAt(1);if(this.flowKey||Xl(s)||s===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let n=this.buffer.substring(0,t),a=n.indexOf(`
|
||
`,this.pos);if(a!==-1){for(;a!==-1;){let i=this.continueScalar(a+1);if(i===-1)break;a=n.indexOf(`
|
||
`,i)}a!==-1&&(t=a-(n[a-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>Xl(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,n;e:for(let i=this.pos;n=this.buffer[i];++i)switch(n){case" ":t+=1;break;case`
|
||
`:e=i,t=0;break;case"\r":{let s=this.buffer[i+1];if(!s&&!this.atEnd)return this.setNext("block-scalar");if(s===`
|
||
`)break}default:break e}if(!n&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let i=this.continueScalar(e+1);if(i===-1)break;e=this.buffer.indexOf(`
|
||
`,i)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let a=e+1;for(n=this.buffer[a];n===" ";)n=this.buffer[++a];if(n===" "){for(;n===" "||n===" "||n==="\r"||n===`
|
||
`;)n=this.buffer[++a];e=a-1}else if(!this.blockScalarKeep)do{let i=e-1,s=this.buffer[i];s==="\r"&&(s=this.buffer[--i]);let o=i;for(;s===" ";)s=this.buffer[--i];if(s===`
|
||
`&&i>=this.pos&&i+1+t>o)e=i;else break}while(!0);return yield bb,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,a;for(;a=this.buffer[++n];)if(a===":"){let i=this.buffer[n+1];if(Xl(i)||e&&UR.has(i))break;t=n}else if(Xl(a)){let i=this.buffer[n+1];if(a==="\r"&&(i===`
|
||
`?(n+=1,a=`
|
||
`,i=this.buffer[n+1]):t=n),i==="#"||e&&UR.has(i))break;if(a===`
|
||
`){let s=this.continueScalar(n+1);if(s===-1)break;n=Math.max(n,s-2)}}else{if(e&&UR.has(a))break;t=n}return!a&&!this.atEnd?this.setNext("plain-scalar"):(yield bb,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield""),0)}*pushIndicators(){let e=0;e:for(;;){switch(this.charAt(0)){case"!":e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue e;case"&":e+=yield*this.pushUntil(r4),e+=yield*this.pushSpaces(!0);continue e;case"-":case"?":case":":{let t=this.flowLevel>0,n=this.charAt(1);if(Xl(n)||t&&UR.has(n)){t?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue e}}}break e}return e}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!Xl(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Ylt.has(t))t=this.buffer[++e];else if(t==="%"&&oEe.has(this.buffer[e+1])&&oEe.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
|
||
`?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
|
||
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===" "||e&&n===" ");let a=t-this.pos;return a>0&&(yield this.buffer.substr(this.pos,a),this.pos=t),a}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}}});var wb,a4=y(()=>{wb=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let i=t+n>>1;this.lineStarts[i]<e?t=i+1:n=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let a=this.lineStarts[t-1];return{line:t,col:e-a+1}}}}});function Um(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function lEe(r){for(let e=0;e<r.length;++e)switch(r[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function dEe(r){switch(r==null?void 0:r.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function HR(r){var e;switch(r.type){case"document":return r.start;case"block-map":{let t=r.items[r.items.length-1];return(e=t.sep)!=null?e:t.start}case"block-seq":return r.items[r.items.length-1].start;default:return[]}}function Sb(r){var t;if(r.length===0)return[];let e=r.length;e:for(;--e>=0;)switch(r[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;((t=r[++e])==null?void 0:t.type)==="space";);return r.splice(e,r.length)}function VR(r,e){if(e.length<1e5)Array.prototype.push.apply(r,e);else for(let t=0;t<e.length;++t)r.push(e[t])}function cEe(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!Um(e.start,"explicit-key-ind")&&!Um(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,dEe(e.value)?e.value.end?VR(e.value.end,e.sep):e.value.end=e.sep:VR(e.start,e.sep),delete e.sep)}var Tg,i4=y(()=>{BR();n4();Tg=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new Tb,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=e4(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let n=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:n,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&(e==null?void 0:e.type)!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e!=null?e:this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let n=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in n?n.indent:0:t.type==="flow-collection"&&n.type==="document"&&(t.indent=0),t.type==="flow-collection"&&cEe(t),n.type){case"document":n.value=t;break;case"block-scalar":n.props.push(t);break;case"block-map":{let a=n.items[n.items.length-1];if(a.value){n.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(a.sep)a.value=t;else{Object.assign(a,{key:t,sep:[]}),this.onKeyLine=!a.explicitKey;return}break}case"block-seq":{let a=n.items[n.items.length-1];a.value?n.items.push({start:[],value:t}):a.value=t;break}case"flow-collection":{let a=n.items[n.items.length-1];!a||a.value?n.items.push({start:[],key:t,sep:[]}):a.sep?a.value=t:Object.assign(a,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((n.type==="document"||n.type==="block-map"||n.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let a=t.items[t.items.length-1];a&&!a.sep&&!a.value&&a.start.length>0&&lEe(a.start)===-1&&(t.indent===0||a.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(n.type==="document"?n.end=a.start:n.items.push({start:a.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{lEe(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=HR(this.peek(2)),n=Sb(t),a;e.end?(a=e.end,a.push(this.sourceToken),delete e.end):a=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:a}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
|
||
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
||
`,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){var n;let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let a="end"in t.value?t.value.end:void 0,i=Array.isArray(a)?a[a.length-1]:void 0;(i==null?void 0:i.type)==="comment"?a==null||a.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let a=e.items[e.items.length-2],i=(n=a==null?void 0:a.value)==null?void 0:n.end;if(Array.isArray(i)){VR(i,t.start),i.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let a=!this.onKeyLine&&this.indent===e.indent,i=a&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",s=[];if(i&&t.sep&&!t.value){let o=[];for(let l=0;l<t.sep.length;++l){let c=t.sep[l];switch(c.type){case"newline":o.push(l);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(s=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":i||t.value?(s.push(this.sourceToken),e.items.push({start:s}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):i||t.value?(s.push(this.sourceToken),e.items.push({start:s,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Um(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]});else if(dEe(t.key)&&!Um(t.sep,"newline")){let o=Sb(t.start),l=t.key,c=t.sep;c.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:l,sep:c}]})}else s.length>0?t.sep=t.sep.concat(s,this.sourceToken):t.sep.push(this.sourceToken);else if(Um(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=Sb(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||i?e.items.push({start:s,key:null,sep:[this.sourceToken]}):Um(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);i||t.value?(e.items.push({start:s,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!t.explicitKey&&t.sep&&!Um(t.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else a&&e.items.push({start:s});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){var n;let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let a="end"in t.value?t.value.end:void 0,i=Array.isArray(a)?a[a.length-1]:void 0;(i==null?void 0:i.type)==="comment"?a==null||a.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let a=e.items[e.items.length-2],i=(n=a==null?void 0:a.value)==null?void 0:n.end;if(Array.isArray(i)){VR(i,t.start),i.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Um(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let a=this.startBlockValue(e);if(a){this.stack.push(a);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while((n==null?void 0:n.type)==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let a=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:a,sep:[]}):t.sep?this.stack.push(a):Object.assign(t,{key:a,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===e.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let a=HR(n),i=Sb(a);cEe(e);let s=e.end.splice(1,e.end.length);s.push(this.sourceToken);let o={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:s}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=o}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
|
||
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
||
`,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=HR(e),n=Sb(t);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=HR(e),n=Sb(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}});function uEe(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new wb||null,prettyErrors:e}}function pEe(r,e={}){let{lineCounter:t,prettyErrors:n}=uEe(e),a=new Tg(t==null?void 0:t.addNewLine),i=new bg(e),s=Array.from(i.compose(a.parse(r)));if(n&&t)for(let o of s)o.errors.forEach(ZE(r,t)),o.warnings.forEach(ZE(r,t));return s.length>0?s:Object.assign([],{empty:!0},i.streamInfo())}function s4(r,e={}){let{lineCounter:t,prettyErrors:n}=uEe(e),a=new Tg(t==null?void 0:t.addNewLine),i=new bg(e),s=null;for(let o of i.compose(a.parse(r),!0,r.length))if(!s)s=o;else if(s.options.logLevel!=="silent"){s.errors.push(new oo(o.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(s.errors.forEach(ZE(r,t)),s.warnings.forEach(ZE(r,t))),s}function mEe(r,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let a=s4(r,t);if(!a)return null;if(a.warnings.forEach(i=>mR(a.options.logLevel,i)),a.errors.length>0){if(a.options.logLevel!=="silent")throw a.errors[0];a.errors=[]}return a.toJS(Object.assign({reviver:n},t))}function fEe(r,e,t){var a;let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let i=Math.round(t);t=i<1?void 0:i>8?{indent:8}:{indent:i}}if(r===void 0){let{keepUndefined:i}=(a=t!=null?t:e)!=null?a:{};if(!i)return}return Ko(r)&&!n?r.toString(t):new nd(r,n,t).toString(t)}var hEe=y(()=>{QW();KE();QE();TW();nr();a4();i4()});var o4={};at(o4,{Alias:()=>td,CST:()=>t4,Composer:()=>bg,Document:()=>nd,Lexer:()=>Tb,LineCounter:()=>wb,Pair:()=>Cn,Parser:()=>Tg,Scalar:()=>Ae,Schema:()=>hb,YAMLError:()=>yb,YAMLMap:()=>On,YAMLParseError:()=>oo,YAMLSeq:()=>Ua,YAMLWarning:()=>vb,isAlias:()=>Go,isCollection:()=>hr,isDocument:()=>Ko,isMap:()=>Zo,isNode:()=>Vt,isPair:()=>Lt,isScalar:()=>ht,isSeq:()=>Qo,parse:()=>mEe,parseAllDocuments:()=>pEe,parseDocument:()=>s4,stringify:()=>fEe,visit:()=>Kl,visitAsync:()=>_E});var l4=y(()=>{QW();KE();BW();QE();NE();nr();Fm();aa();Lm();zm();BR();n4();a4();i4();hEe();IE()});var xb,aD=y(()=>{l4();l4();xb=o4});function iD(r,e){let t=Klt(r),n=t.frontmatter?Zlt(t.frontmatter,e):{},a=Qlt(t.body,e);return{frontmatter:n,body:a}}function Klt(r){var t,n;let e=r.split(`
|
||
`);if(((t=e[0])==null?void 0:t.trim())==="---"){let a=-1;for(let i=1;i<e.length;i++)if(((n=e[i])==null?void 0:n.trim())==="---"){a=i;break}if(a>0){let s=e.slice(1,a).join(`
|
||
`),l=e.slice(a+1).join(`
|
||
`);return{frontmatter:s.trim()||null,body:l}}}return{frontmatter:null,body:r}}function Zlt(r,e){try{let t=Xlt(Jlt(r,e)),n=xb.parse(t);return typeof n!="object"||n===null?(gEe.warn("Template frontmatter did not parse to a valid object",{category:"validation",operation:"template-frontmatter-did-not-parse-valid-object"}),{}):n}catch(t){return gEe.error("Error processing template frontmatter:",{category:"validation",operation:"processing-template-frontmatter",error:t}),{}}}function Qlt(r,e){return tct(r,e)}function Jlt(r,e){var g;let t=r,n=new Date,a=e.title||"";t=wg(t,"title",a),t=t.replace(/\{\{priority\}\}/g,e.priority||""),t=t.replace(/\{\{status\}\}/g,e.status||"");let i=Array.isArray(e.contexts)?e.contexts.join(", "):"";t=t.replace(/\{\{contexts\}\}/g,i);let s=Array.isArray(e.tags)?e.tags.join(", "):"";t=t.replace(/\{\{tags\}\}/g,s);let o=Array.isArray(e.tags)?e.tags.map(v=>`#${v}`).join(" "):"";t=t.replace(/\{\{hashtags\}\}/g,o),t=t.replace(/\{\{timeEstimate\}\}/g,((g=e.timeEstimate)==null?void 0:g.toString())||""),t=t.replace(/\{\{dueDate\}\}/g,e.dueDate||""),t=t.replace(/\{\{scheduledDate\}\}/g,e.scheduledDate||""),t=t.replace(/\{\{details\}\}/g,e.details||"");let l=e.parentNote||"";t=wg(t,"parentNote",l,{alwaysQuote:!0}),t=t.replace(/\{\{date\}\}/g,M(n,"yyyy-MM-dd")),t=t.replace(/\{\{time\}\}/g,M(n,"HH:mm")),t=t.replace(/\{\{year\}\}/g,M(n,"yyyy")),t=t.replace(/\{\{month\}\}/g,M(n,"MM")),t=t.replace(/\{\{day\}\}/g,M(n,"dd")),t=t.replace(/\{\{hour\}\}/g,M(n,"HH")),t=t.replace(/\{\{minute\}\}/g,M(n,"mm")),t=t.replace(/\{\{second\}\}/g,M(n,"ss")),t=t.replace(/\{\{timestamp\}\}/g,M(n,"yyyy-MM-dd-HHmmss")),t=t.replace(/\{\{dateTime\}\}/g,M(n,"yyyy-MM-dd-HHmm")),t=t.replace(/\{\{shortDate\}\}/g,M(n,"yyMMdd")),t=t.replace(/\{\{shortYear\}\}/g,M(n,"yy")),t=t.replace(/\{\{monthName\}\}/g,M(n,"MMMM")),t=t.replace(/\{\{monthNameShort\}\}/g,M(n,"MMM")),t=t.replace(/\{\{dayName\}\}/g,M(n,"EEEE")),t=t.replace(/\{\{dayNameShort\}\}/g,M(n,"EEE")),t=t.replace(/\{\{week\}\}/g,M(n,"ww")),t=t.replace(/\{\{quarter\}\}/g,M(n,"q")),t=t.replace(/\{\{time12\}\}/g,M(n,"hh:mm a")),t=t.replace(/\{\{time24\}\}/g,M(n,"HH:mm")),t=t.replace(/\{\{hourPadded\}\}/g,M(n,"HH")),t=t.replace(/\{\{hour12\}\}/g,M(n,"hh")),t=t.replace(/\{\{ampm\}\}/g,M(n,"a")),t=t.replace(/\{\{unix\}\}/g,Math.floor(n.getTime()/1e3).toString()),t=t.replace(/\{\{unixMs\}\}/g,n.getTime().toString()),t=t.replace(/\{\{milliseconds\}\}/g,M(n,"SSS")),t=t.replace(/\{\{ms\}\}/g,M(n,"SSS")),t=t.replace(/\{\{timezone\}\}/g,M(n,"xxx")),t=t.replace(/\{\{timezoneShort\}\}/g,M(n,"xx")),t=t.replace(/\{\{utcOffset\}\}/g,M(n,"xxx")),t=t.replace(/\{\{utcOffsetShort\}\}/g,M(n,"xx")),t=t.replace(/\{\{utcZ\}\}/g,"Z");let c=M(n,"yyMMdd"),d=new Date(n);d.setHours(0,0,0,0);let u=Math.floor((n.getTime()-d.getTime())/1e3),p=`${c}${u.toString(36)}`;t=t.replace(/\{\{zettel\}\}/g,p),t=t.replace(/\{\{nano\}\}/g,Date.now().toString()+Math.random().toString(36).substring(2,7));let m=e.priority||"",f=e.status||"";t=t.replace(/\{\{priorityShort\}\}/g,m.substring(0,1).toUpperCase()),t=t.replace(/\{\{statusShort\}\}/g,f.substring(0,1).toUpperCase());let h=e.title||"";if(t=t.replace(/\{\{titleLower\}\}/g,h.toLowerCase()),t=t.replace(/\{\{titleUpper\}\}/g,h.toUpperCase()),t=t.replace(/\{\{titleSnake\}\}/g,h.toLowerCase().replace(/\s+/g,"_")),t=t.replace(/\{\{titleKebab\}\}/g,h.toLowerCase().replace(/\s+/g,"-")),t=t.replace(/\{\{titleCamel\}\}/g,h.replace(/(?:^\w|[A-Z]|\b\w)/g,(v,b)=>b===0?v.toLowerCase():v.toUpperCase()).replace(/\s+/g,"")),t=t.replace(/\{\{titlePascal\}\}/g,h.replace(/(?:^\w|[A-Z]|\b\w)/g,v=>v.toUpperCase()).replace(/\s+/g,"")),"icsEventTitle"in e){let v=e,b=v.icsEventTitle||"";t=wg(t,"icsEventTitle",b),t=t.replace(/\{\{icsEventStart\}\}/g,v.icsEventStart||""),t=t.replace(/\{\{icsEventEnd\}\}/g,v.icsEventEnd||"");let k=v.icsEventLocation||"";t=wg(t,"icsEventLocation",k);let w=v.icsEventDescription||"";t=wg(t,"icsEventDescription",w),t=t.replace(/\{\{icsEventUrl\}\}/g,v.icsEventUrl||"");let S=v.icsEventSubscription||"";t=wg(t,"icsEventSubscription",S);let C=v.icsEventId||"";t=wg(t,"icsEventId",C,{alwaysQuote:!0})}return t}function wg(r,e,t,n={}){let a=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),i=new RegExp(`(["'])\\{\\{${a}\\}\\}\\1`,"g"),s=t||"",o=r.replace(i,(d,u)=>{let p=u==="'"?s.replace(/'/g,"''"):c4(s);return`${u}${p}${u}`}),l=s&&(n.alwaysQuote||ect(s))?`"${c4(s)}"`:s,c=new RegExp(`\\{\\{${a}\\}\\}`,"g");return o=o.replace(c,l),o}function Xlt(r){return r.replace(/^(\s*[^#\n][^:\n]*:\s*)(<%.*?%>)(\s*)$/gm,(e,t,n,a)=>`${t}"${c4(n)}"${a}`)}function ect(r){if(!r)return!1;let e=/[[\]{}:>|*&!%#`@,]/,t=/^[-?]/,n=/^\d+\.?\d*$/,a=/^(true|false|yes|no|on|off)$/i;return e.test(r)||t.test(r)||n.test(r)||a.test(r)}function c4(r){return r?r.replace(/\\/g,"\\\\").replace(/"/g,'\\"'):""}function tct(r,e){var f;let t=r,n=new Date;t=t.replace(/\{\{title\}\}/g,e.title||""),t=t.replace(/\{\{priority\}\}/g,e.priority||""),t=t.replace(/\{\{status\}\}/g,e.status||"");let a=Array.isArray(e.contexts)?e.contexts.join(", "):"";t=t.replace(/\{\{contexts\}\}/g,a);let i=Array.isArray(e.tags)?e.tags.join(", "):"";t=t.replace(/\{\{tags\}\}/g,i);let s=Array.isArray(e.tags)?e.tags.map(h=>`#${h}`).join(" "):"";t=t.replace(/\{\{hashtags\}\}/g,s),t=t.replace(/\{\{timeEstimate\}\}/g,((f=e.timeEstimate)==null?void 0:f.toString())||""),t=t.replace(/\{\{dueDate\}\}/g,e.dueDate||""),t=t.replace(/\{\{scheduledDate\}\}/g,e.scheduledDate||""),t=t.replace(/\{\{details\}\}/g,e.details||""),t=t.replace(/\{\{parentNote\}\}/g,e.parentNote||""),t=t.replace(/\{\{date\}\}/g,M(n,"yyyy-MM-dd")),t=t.replace(/\{\{time\}\}/g,M(n,"HH:mm")),t=t.replace(/\{\{year\}\}/g,M(n,"yyyy")),t=t.replace(/\{\{month\}\}/g,M(n,"MM")),t=t.replace(/\{\{day\}\}/g,M(n,"dd")),t=t.replace(/\{\{hour\}\}/g,M(n,"HH")),t=t.replace(/\{\{minute\}\}/g,M(n,"mm")),t=t.replace(/\{\{second\}\}/g,M(n,"ss")),t=t.replace(/\{\{timestamp\}\}/g,M(n,"yyyy-MM-dd-HHmmss")),t=t.replace(/\{\{dateTime\}\}/g,M(n,"yyyy-MM-dd-HHmm")),t=t.replace(/\{\{shortDate\}\}/g,M(n,"yyMMdd")),t=t.replace(/\{\{shortYear\}\}/g,M(n,"yy")),t=t.replace(/\{\{monthName\}\}/g,M(n,"MMMM")),t=t.replace(/\{\{monthNameShort\}\}/g,M(n,"MMM")),t=t.replace(/\{\{dayName\}\}/g,M(n,"EEEE")),t=t.replace(/\{\{dayNameShort\}\}/g,M(n,"EEE")),t=t.replace(/\{\{week\}\}/g,M(n,"ww")),t=t.replace(/\{\{quarter\}\}/g,M(n,"q")),t=t.replace(/\{\{time12\}\}/g,M(n,"hh:mm a")),t=t.replace(/\{\{time24\}\}/g,M(n,"HH:mm")),t=t.replace(/\{\{hourPadded\}\}/g,M(n,"HH")),t=t.replace(/\{\{hour12\}\}/g,M(n,"hh")),t=t.replace(/\{\{ampm\}\}/g,M(n,"a")),t=t.replace(/\{\{unix\}\}/g,Math.floor(n.getTime()/1e3).toString()),t=t.replace(/\{\{unixMs\}\}/g,n.getTime().toString()),t=t.replace(/\{\{milliseconds\}\}/g,M(n,"SSS")),t=t.replace(/\{\{ms\}\}/g,M(n,"SSS")),t=t.replace(/\{\{timezone\}\}/g,M(n,"xxx")),t=t.replace(/\{\{timezoneShort\}\}/g,M(n,"xx")),t=t.replace(/\{\{utcOffset\}\}/g,M(n,"xxx")),t=t.replace(/\{\{utcOffsetShort\}\}/g,M(n,"xx")),t=t.replace(/\{\{utcZ\}\}/g,"Z");let o=M(n,"yyMMdd"),l=new Date(n);l.setHours(0,0,0,0);let c=Math.floor((n.getTime()-l.getTime())/1e3),d=`${o}${c.toString(36)}`;t=t.replace(/\{\{zettel\}\}/g,d),t=t.replace(/\{\{nano\}\}/g,Date.now().toString()+Math.random().toString(36).substring(2,7));let u=e.priority||"",p=e.status||"";t=t.replace(/\{\{priorityShort\}\}/g,u.substring(0,1).toUpperCase()),t=t.replace(/\{\{statusShort\}\}/g,p.substring(0,1).toUpperCase());let m=e.title||"";if(t=t.replace(/\{\{titleLower\}\}/g,m.toLowerCase()),t=t.replace(/\{\{titleUpper\}\}/g,m.toUpperCase()),t=t.replace(/\{\{titleSnake\}\}/g,m.toLowerCase().replace(/\s+/g,"_")),t=t.replace(/\{\{titleKebab\}\}/g,m.toLowerCase().replace(/\s+/g,"-")),t=t.replace(/\{\{titleCamel\}\}/g,m.replace(/(?:^\w|[A-Z]|\b\w)/g,(h,g)=>g===0?h.toLowerCase():h.toUpperCase()).replace(/\s+/g,"")),t=t.replace(/\{\{titlePascal\}\}/g,m.replace(/(?:^\w|[A-Z]|\b\w)/g,h=>h.toUpperCase()).replace(/\s+/g,"")),"icsEventTitle"in e){let h=e;t=t.replace(/\{\{icsEventTitle\}\}/g,h.icsEventTitle||""),t=t.replace(/\{\{icsEventStart\}\}/g,h.icsEventStart||""),t=t.replace(/\{\{icsEventEnd\}\}/g,h.icsEventEnd||""),t=t.replace(/\{\{icsEventLocation\}\}/g,h.icsEventLocation||""),t=t.replace(/\{\{icsEventDescription\}\}/g,h.icsEventDescription||""),t=t.replace(/\{\{icsEventUrl\}\}/g,h.icsEventUrl||""),t=t.replace(/\{\{icsEventSubscription\}\}/g,h.icsEventSubscription||""),t=t.replace(/\{\{icsEventId\}\}/g,h.icsEventId||"")}return t}function yEe(r,e){return{...e,...r}}var gEe,qR=y(()=>{Wr();aD();K();gEe=N({tag:"Utils/TemplateProcessor"})});function ict(r,e){return r.replace(act,t=>M(e,nct[t]))}function sct(r){return r.replace(/\\/g,"/").split("/").some(e=>e==="."||e==="..")}function oct(r){let e=r.replace(/\\/g,"/"),t=e.endsWith("/"),n=[];for(let i of e.split("/"))if(!(!i||i===".")){if(i===".."){n.pop();continue}n.push(i)}let a=n.join("/");return t&&a?`${a}/`:a}function WR(r){return r.replace(/\.md$/i,"")}function lct(r){let e=r.trim();if(!e)return"";if(e.startsWith("[[")&&e.endsWith("]]")){let n=e.slice(2,-2).trim(),a=n.indexOf("|"),i=a!==-1?n.slice(0,a):n;return WR(i.trim())}let t=e.match(/^\[[^\]]*\]\(([^)]+)\)$/);if(t){let n=t[1].trim();n.startsWith("<")&&n.endsWith(">")&&(n=n.slice(1,-1).trim());try{n=decodeURIComponent(n)}catch(a){rct.debug("Failed to decode project path:",{category:"persistence",operation:"decode-project-path",details:{value:n},error:a})}return WR(n)}return WR(e)}function cct(r){return WR(r.trim()).replace(/\\/g,"/").split("/").filter(t=>t.length>0).map(t=>t.replace(/[<>:"|?*]/g,"_")).join("/")}function d4(r,e){let t=e?e(r):lct(r);return cct(t)}function vEe(r,e){let t=d4(r,e);return t?t.split("/").slice(0,-1).join("/"):""}function YR(r,e={}){if(!r)return r;let{date:t=new Date,taskData:n,icsData:a,extractProjectBasename:i,extractProjectFilePath:s}=e,o=r,l=sct(r);if(o=ict(o,t),n){let u=Array.isArray(n.contexts)&&n.contexts.length>0?n.contexts[0]:"";o=o.replace(/\{\{context\}\}/g,u);let p=Array.isArray(n.projects)&&n.projects.length>0?i?i(n.projects[0]):n.projects[0]:"";o=o.replace(/\{\{project\}\}/g,p);let m=Array.isArray(n.projects)&&n.projects.length>0?n.projects.map(B=>i?i(B):B).join("/"):"";o=o.replace(/\{\{projects\}\}/g,m);let f=Array.isArray(n.projects)&&n.projects.length>0?d4(n.projects[0],s):"";o=o.replace(/\{\{projectFilePath\}\}/g,f);let h=Array.isArray(n.projects)&&n.projects.length>0?n.projects.map(B=>d4(B,s)).filter(B=>B.length>0).join("/"):"";o=o.replace(/\{\{projectFilePaths\}\}/g,h);let g=Array.isArray(n.projects)&&n.projects.length>0?vEe(n.projects[0],s):"";o=o.replace(/\{\{projectFolder\}\}/g,g);let v=Array.isArray(n.projects)&&n.projects.length>0?n.projects.map(B=>vEe(B,s)).filter(B=>B.length>0).join("/"):"";o=o.replace(/\{\{projectFolders\}\}/g,v);let b=Array.isArray(n.contexts)&&n.contexts.length>0?n.contexts.join("/"):"";o=o.replace(/\{\{contexts\}\}/g,b);let k=n.priority||"";o=o.replace(/\{\{priority\}\}/g,k);let w=n.status||"";o=o.replace(/\{\{status\}\}/g,w);let S=n.title?n.title.replace(/[<>:"/\\|?*]/g,"_"):"";o=o.replace(/\{\{title\}\}/g,S);let C=n.due||"";o=o.replace(/\{\{dueDate\}\}/g,C);let E=n.scheduled||"";o=o.replace(/\{\{scheduledDate\}\}/g,E);let D=k?k.substring(0,1).toUpperCase():"";o=o.replace(/\{\{priorityShort\}\}/g,D);let P=w?w.substring(0,1).toUpperCase():"";o=o.replace(/\{\{statusShort\}\}/g,P);let O=S?S.toLowerCase():"";o=o.replace(/\{\{titleLower\}\}/g,O);let z=S?S.toUpperCase():"";o=o.replace(/\{\{titleUpper\}\}/g,z);let R=S?S.toLowerCase().replace(/\s+/g,"_"):"";o=o.replace(/\{\{titleSnake\}\}/g,R);let A=S?S.toLowerCase().replace(/\s+/g,"-"):"";o=o.replace(/\{\{titleKebab\}\}/g,A);let F=S?S.replace(/(?:^\w|[A-Z]|\b\w)/g,(B,ue)=>ue===0?B.toLowerCase():B.toUpperCase()).replace(/\s+/g,""):"";o=o.replace(/\{\{titleCamel\}\}/g,F);let $=S?S.replace(/(?:^\w|[A-Z]|\b\w)/g,B=>B.toUpperCase()).replace(/\s+/g,""):"";o=o.replace(/\{\{titlePascal\}\}/g,$)}if(a){let u=a.title?a.title.replace(/[<>:"/\\|?*]/g,"_"):"";o=o.replace(/\{\{icsEventTitle\}\}/g,u);let p=u?u.toLowerCase():"";o=o.replace(/\{\{icsEventTitleLower\}\}/g,p);let m=u?u.toUpperCase():"";o=o.replace(/\{\{icsEventTitleUpper\}\}/g,m);let f=u?u.toLowerCase().replace(/\s+/g,"_"):"";o=o.replace(/\{\{icsEventTitleSnake\}\}/g,f);let h=u?u.toLowerCase().replace(/\s+/g,"-"):"";o=o.replace(/\{\{icsEventTitleKebab\}\}/g,h);let g=u?u.replace(/(?:^\w|[A-Z]|\b\w)/g,(w,S)=>S===0?w.toLowerCase():w.toUpperCase()).replace(/\s+/g,""):"";o=o.replace(/\{\{icsEventTitleCamel\}\}/g,g);let v=u?u.replace(/(?:^\w|[A-Z]|\b\w)/g,w=>w.toUpperCase()).replace(/\s+/g,""):"";o=o.replace(/\{\{icsEventTitlePascal\}\}/g,v);let b=a.location?a.location.replace(/[<>:"/\\|?*]/g,"_"):"";o=o.replace(/\{\{icsEventLocation\}\}/g,b);let k=a.description?a.description.replace(/[<>:"/\\|?*]/g,"_"):"";o=o.replace(/\{\{icsEventDescription\}\}/g,k)}o=o.replace(/\{\{year\}\}/g,M(t,"yyyy")),o=o.replace(/\{\{month\}\}/g,M(t,"MM")),o=o.replace(/\{\{day\}\}/g,M(t,"dd")),o=o.replace(/\{\{date\}\}/g,M(t,"yyyy-MM-dd")),o=o.replace(/\{\{time\}\}/g,M(t,"HHmmss")),o=o.replace(/\{\{timestamp\}\}/g,M(t,"yyyy-MM-dd-HHmmss")),o=o.replace(/\{\{dateTime\}\}/g,M(t,"yyyy-MM-dd-HHmm")),o=o.replace(/\{\{hour\}\}/g,M(t,"HH")),o=o.replace(/\{\{minute\}\}/g,M(t,"mm")),o=o.replace(/\{\{second\}\}/g,M(t,"ss")),o=o.replace(/\{\{shortDate\}\}/g,M(t,"yyMMdd")),o=o.replace(/\{\{shortYear\}\}/g,M(t,"yy")),o=o.replace(/\{\{monthName\}\}/g,M(t,"MMMM")),o=o.replace(/\{\{monthNameShort\}\}/g,M(t,"MMM")),o=o.replace(/\{\{dayName\}\}/g,M(t,"EEEE")),o=o.replace(/\{\{dayNameShort\}\}/g,M(t,"EEE")),o=o.replace(/\{\{week\}\}/g,M(t,"ww")),o=o.replace(/\{\{quarter\}\}/g,M(t,"q")),o=o.replace(/\{\{time12\}\}/g,M(t,"hh:mm a")),o=o.replace(/\{\{time24\}\}/g,M(t,"HH:mm")),o=o.replace(/\{\{hourPadded\}\}/g,M(t,"HH")),o=o.replace(/\{\{hour12\}\}/g,M(t,"hh")),o=o.replace(/\{\{ampm\}\}/g,M(t,"a")),o=o.replace(/\{\{unix\}\}/g,Math.floor(t.getTime()/1e3).toString()),o=o.replace(/\{\{unixMs\}\}/g,t.getTime().toString()),o=o.replace(/\{\{milliseconds\}\}/g,M(t,"SSS")),o=o.replace(/\{\{ms\}\}/g,M(t,"SSS")),o=o.replace(/\{\{timezone\}\}/g,M(t,"xxx")),o=o.replace(/\{\{timezoneShort\}\}/g,M(t,"xx")),o=o.replace(/\{\{utcOffset\}\}/g,M(t,"xxx")),o=o.replace(/\{\{utcOffsetShort\}\}/g,M(t,"xx")),o=o.replace(/\{\{utcZ\}\}/g,"Z");let c=(()=>{let u=M(t,"yyMMdd"),p=new Date(t);p.setHours(0,0,0,0);let f=Math.floor((t.getTime()-p.getTime())/1e3).toString(36);return`${u}${f}`})();o=o.replace(/\{\{zettel\}\}/g,c);let d=Date.now().toString()+Math.random().toString(36).substring(2,7);return o=o.replace(/\{\{nano\}\}/g,d),l?oct(o):o}var rct,nct,act,u4=y(()=>{Wr();K();rct=N({tag:"Utils/FolderTemplateProcessor"}),nct={YYYY:"yyyy",YY:"yy",MMMM:"MMMM",MMM:"MMM",MM:"MM",DD:"dd",dddd:"EEEE",ddd:"EEE"},act=/YYYY|MMMM|dddd|MMM|ddd|YY|MM|DD/g});var kEe,GR,KR,bEe=y(()=>{kEe=require("obsidian");Yr();Ah();Kk();Ct();Me();kr();qR();Dv();K();GR=N({tag:"Services/TaskService/TaskCreationService"}),KR=class{constructor(e){this.deps=e}setWebhookNotifier(e){this.deps.webhookNotifier=e}async createTask(e,t={}){var s,o,l;let{applyDefaults:n=!0,applyTemplate:a=!0}=t,{runtime:i}=this.deps;try{if(n&&(e=await this.deps.applyTaskCreationDefaults(e)),!e.title||!e.title.trim())throw new Error("Title is required");let c=e.title.trim(),d=this.deps.sanitizeTitleForStorage(c),u=i.settings.storeTitleInFilename?this.deps.sanitizeTitleForFilename(c):d,p=e.priority||i.settings.defaultTaskPriority,m=e.status||i.settings.defaultTaskStatus,f=e.dateCreated||Ge(),h=e.dateModified||Ge(),g=e.recurrence||void 0,v=g?void 0:e.completedDate||((s=i.statusManager)!=null&&s.isCompletedStatus(m)?Il():void 0),b=e.contexts||[],k=e.projects||[],w=xc(e.tags||[]);if(i.settings.taskIdentificationMethod==="tag"){let fe=(o=xc(i.settings.taskTag)[0])!=null?o:i.settings.taskTag;fe&&!w.includes(fe)&&(w=[fe,...w])}let S={title:u,priority:p,status:m,date:new Date,dueDate:e.due,scheduledDate:e.scheduled,contexts:b,projects:k,tags:w,timeEstimate:e.timeEstimate,details:e.details,parentNote:e.parentNote},C=(l=e.occurrenceFilenameTemplate)==null?void 0:l.trim(),E=C&&e.occurrence_date?BSe(S,C,e.occurrence_date):zSe(S,i.settings),D=await this.resolveTargetFolder(e);D&&await tm(i.app.vault,D);let P=await Gk(E,D,i.app.vault),O=D?`${D}/${P}.md`:`${P}.md`,z=C&&e.occurrence_date?E:u,R=i.settings.storeTitleInFilename&&P===z&&d===u,A={title:d,status:m,priority:p,due:e.due||void 0,scheduled:e.scheduled||void 0,contexts:b.length>0?b:void 0,projects:k.length>0?k:void 0,timeEstimate:e.timeEstimate&&e.timeEstimate>0?e.timeEstimate:void 0,dateCreated:f,dateModified:h,recurrence:g,completedDate:v,recurrence_anchor:e.recurrence_anchor||void 0,recurrence_parent:e.recurrence_parent||void 0,occurrence_date:e.occurrence_date||void 0,occurrence_materialization:e.occurrence_materialization||void 0,occurrence_next_trigger:e.occurrence_next_trigger||void 0,occurrence_template:e.occurrence_template||void 0,occurrence_past_horizon:e.occurrence_past_horizon||void 0,occurrence_future_horizon:e.occurrence_future_horizon||void 0,reminders:e.reminders&&e.reminders.length>0?e.reminders:void 0,customProperties:e.customProperties||void 0,icsEventId:e.icsEventId||void 0,blockedBy:e.blockedBy&&e.blockedBy.length>0?e.blockedBy:void 0},F=i.fieldMapper.getUserFields();if(F.length>0){let fe=e,ut=A;for(let Je of F)Object.prototype.hasOwnProperty.call(fe,Je.key)&&fe[Je.key]!==void 0&&(ut[Je.key]=fe[Je.key])}if(A.recurrence&&typeof A.recurrence=="string"&&!A.recurrence.includes("DTSTART:")){let fe={...A,title:d,status:m,priority:p,path:"",archived:!1},ut=Mh(fe);ut&&(A.recurrence=ut)}let B=i.settings.taskIdentificationMethod==="tag"?i.settings.taskTag:void 0,ue=i.fieldMapper.mapToFrontmatter(A,B,R);if(i.settings.taskIdentificationMethod==="property"){let fe=i.settings.taskPropertyName,ut=i.settings.taskPropertyValue;fe&&ut&&Ev(ue,fe,ut),w.length>0&&(ue.tags=w)}else ue.tags=w;let Q=a?await this.deps.applyTemplate(e):{frontmatter:{},body:""},G=Q.body?Q.body.replace(/\r\n/g,`
|
||
`).trimEnd():e.details?e.details.replace(/\r\n/g,`
|
||
`).trimEnd():"",ie=yEe(ue,Q.frontmatter);e.customFrontmatter&&(ie={...ie,...e.customFrontmatter}),R&&delete ie[i.fieldMapper.toUserField("title")],i.settings.taskIdentificationMethod==="property"&&Ev(ie,i.settings.taskPropertyName,i.settings.taskPropertyValue),w=xc(ie.tags);let ee=`---
|
||
${(0,kEe.stringifyYaml)(ie)}---
|
||
|
||
`;G.length>0&&(ee+=`${G}
|
||
`);let re=await i.app.vault.create(O,ee),et={...A,...ie,title:J(ie.title||A.title||d),status:J(ie.status||A.status||m),priority:J(ie.priority||A.priority||p),path:re.path,tags:w,archived:!1,details:G};try{i.cacheManager.waitForFreshTaskData&&await i.cacheManager.waitForFreshTaskData(re),i.cacheManager.updateTaskInfoInCache(re.path,et)}catch(fe){GR.error("Error updating cache for new task:",{category:"stale-data",operation:"updating-cache-new-task",error:fe})}if(i.emitter.trigger(ot,{path:re.path,updatedTask:et}),this.deps.webhookNotifier)try{await this.deps.webhookNotifier.triggerWebhook("task.created",{task:et})}catch(fe){GR.warn("Failed to trigger webhook for task creation:",{category:"provider",operation:"trigger-webhook-task-creation",error:fe})}return i.taskCalendarSyncService&&i.settings.googleCalendarExport.enabled&&i.settings.googleCalendarExport.syncOnTaskCreate&&i.taskCalendarSyncService.syncTaskToCalendar(et).catch(fe=>{GR.warn("Failed to sync task to Google Calendar:",{category:"provider",operation:"sync-task-google-calendar",error:fe})}),{file:re,taskInfo:et}}catch(c){let d=c instanceof Error?c.message:String(c);throw GR.error("Error creating task:",{category:"persistence",operation:"creating-task",details:{stack:c instanceof Error?c.stack:void 0,taskData:e},error:d}),new Error(`Failed to create task: ${d}`)}}resolveCurrentNoteFolderVariables(e){var n;if(!e.includes("{{currentNotePath}}")&&!e.includes("{{currentNoteTitle}}"))return e;let t=this.deps.runtime.app.workspace.getActiveFile();return e.replace(/\{\{currentNotePath\}\}/g,((n=t==null?void 0:t.parent)==null?void 0:n.path)||"").replace(/\{\{currentNoteTitle\}\}/g,(t==null?void 0:t.basename)||"")}async resolveTargetFolder(e){let{runtime:t}=this.deps,n="";if(e.creationContext==="inline-conversion"||e.creationContext==="modal-inline-creation"){let i=t.settings.inlineTaskConvertFolder||"";if(i.trim())return n=this.resolveCurrentNoteFolderVariables(i),this.deps.processFolderTemplate(n,e);let s=this.resolveCurrentNoteFolderVariables(t.settings.tasksFolder||"");return this.deps.processFolderTemplate(s,e)}let a=this.resolveCurrentNoteFolderVariables(t.settings.tasksFolder||"");return this.deps.processFolderTemplate(a,e)}}});function TEe(r){return Array.isArray(r.timeEntries)?{...r,timeEntries:r.timeEntries.map(dct)}:{...r}}function dct(r){let e={...r};return delete e.duration,e}function wEe(r){return Object.prototype.hasOwnProperty.call(r,"details")?typeof r.details=="string"?r.details.replace(/\r\n/g,`
|
||
`):"":null}function SEe({originalTask:r,updates:e,maintainDueDateOffsetInRecurring:t,updateToNextScheduledOccurrenceFn:n=wu,addDTSTARTToRecurrenceRuleFn:a=Mh}){let i={};if(e.recurrence!==void 0&&e.recurrence!==r.recurrence){let o={...r,...e},l=n(o,t);if(l.scheduled&&(i.scheduled=l.scheduled),l.due&&(i.due=l.due),typeof e.recurrence=="string"&&e.recurrence&&!e.recurrence.includes("DTSTART:")){let c={...r,...e,...i},d=a(c);d&&(i.recurrence=d)}}else if(e.recurrence!==void 0&&!r.recurrence&&e.recurrence&&typeof e.recurrence=="string"&&!e.recurrence.includes("DTSTART:")){let o={...r,...e},l=a(o);l&&(i.recurrence=l)}if(e.scheduled!==void 0&&e.scheduled!==r.scheduled&&r.recurrence&&typeof r.recurrence=="string"&&!r.recurrence.includes("DTSTART:")){let o={...r,...e},l=a(o);l&&(i.recurrence=l)}if(Object.prototype.hasOwnProperty.call(e,"scheduled")){let o={...r,...e,...i};nN(r,e.scheduled,o),i.googleCalendarExceptionOriginalScheduled=o.googleCalendarExceptionOriginalScheduled}let s={...r,...e,...i};return lg(s),i.googleCalendarExceptionOriginalScheduled=s.googleCalendarExceptionOriginalScheduled,i.googleCalendarMovedOriginalDates=s.googleCalendarMovedOriginalDates,i}function xEe({frontmatter:r,originalTask:e,updates:t,recurrenceUpdates:n,dateModified:a,fieldMapper:i,taskIdentification:s,storeTitleInFilename:o,updateCompletedDateInFrontmatter:l}){let c={...e,...t,...n,dateModified:a},d=i.mapToFrontmatter(c,s.method==="tag"?s.tag:void 0,o);if(uct(r,t,d,i),Object.entries(d).forEach(([u,p])=>{p!==void 0&&(r[u]=p)}),t.status!==void 0&&l(r,t.status,!!e.recurrence),s.method==="property"&&pct(r,s),t.customFrontmatter&&Object.entries(t.customFrontmatter).forEach(([u,p])=>{p===null?delete r[u]:r[u]=p}),mct(r,{...t,...n},i),o&&delete r[i.toUserField("title")],Object.prototype.hasOwnProperty.call(t,"tags")){let u=xc(t.tags);u.length>0?r.tags=u:delete r.tags}return s.method==="property"&&Ev(r,s.propertyName,s.propertyValue),{finalTags:xc(r.tags)}}function uct(r,e,t,n){if(Object.prototype.hasOwnProperty.call(e,"title"))return;let a=n.toUserField("title");Object.prototype.hasOwnProperty.call(r,a)&&delete t[a]}function pct(r,e){e.propertyName&&e.propertyValue&&Ev(r,e.propertyName,e.propertyValue)}function mct(r,e,t){if(Object.prototype.hasOwnProperty.call(e,"due")&&e.due===void 0&&delete r[t.toUserField("due")],Object.prototype.hasOwnProperty.call(e,"scheduled")&&e.scheduled===void 0&&delete r[t.toUserField("scheduled")],Object.prototype.hasOwnProperty.call(e,"contexts")&&(!Array.isArray(e.contexts)||e.contexts.length===0)&&delete r[t.toUserField("contexts")],Object.prototype.hasOwnProperty.call(e,"projects")){let n=t.toUserField("projects"),a=Array.isArray(e.projects)?e.projects:[];a.length>0?r[n]=a:delete r[n]}Object.prototype.hasOwnProperty.call(e,"timeEstimate")&&e.timeEstimate===void 0&&delete r[t.toUserField("timeEstimate")],Object.prototype.hasOwnProperty.call(e,"completedDate")&&e.completedDate===void 0&&delete r[t.toUserField("completedDate")],Object.prototype.hasOwnProperty.call(e,"recurrence")&&e.recurrence===void 0&&delete r[t.toUserField("recurrence")],Object.prototype.hasOwnProperty.call(e,"googleCalendarExceptionOriginalScheduled")&&e.googleCalendarExceptionOriginalScheduled===void 0&&delete r[t.toUserField("googleCalendarExceptionOriginalScheduled")],Object.prototype.hasOwnProperty.call(e,"googleCalendarMovedOriginalDates")&&(!Array.isArray(e.googleCalendarMovedOriginalDates)||e.googleCalendarMovedOriginalDates.length===0)&&delete r[t.toUserField("googleCalendarMovedOriginalDates")],Object.prototype.hasOwnProperty.call(e,"blockedBy")&&(!Array.isArray(e.blockedBy)||e.blockedBy.length===0)&&delete r[t.toUserField("blockedBy")],Object.prototype.hasOwnProperty.call(e,"reminders")&&(!Array.isArray(e.reminders)||e.reminders.length===0)&&delete r[t.toUserField("reminders")]}function CEe({originalTask:r,updates:e,recurrenceUpdates:t,newPath:n,dateModified:a,currentDateString:i,normalizedDetails:s,finalTags:o,isCompletedStatus:l}){let c={...r,...e,...t,path:n,dateModified:a};return o&&(c.tags=o),s!==null&&(c.details=s),e.status!==void 0&&!r.recurrence&&(l(e.status)?r.completedDate||(c.completedDate=i):c.completedDate=void 0),c}var EEe=y(()=>{Ah();aN();Dv()});var ZR,Cb,QR,DEe=y(()=>{ZR=require("obsidian");Yr();Ct();Kk();Me();EEe();K();Ba();Cb=N({tag:"Services/TaskService/TaskUpdateService"}),QR=class{constructor(e){this.deps=e}setWebhookNotifier(e){this.deps.webhookNotifier=e}setAutoArchiveService(e){this.deps.autoArchiveService=e}async updateTask(e,t){var a;let{runtime:n}=this.deps;try{let i=TEe(t),s=n.app.vault.getAbstractFileByPath(e.path);if(!(s instanceof ZR.TFile))throw new Error(`Cannot find task file: ${e.path}`);let o=n.settings.storeTitleInFilename&&i.title&&i.title!==e.title,l=e.path;if(o&&i.title){let h=s.parent?s.parent.path:"",g=await Gk(i.title,h,n.app.vault);l=h?`${h}/${g}.md`:`${g}.md`}let c=SEe({originalTask:e,updates:i,maintainDueDateOffsetInRecurring:n.settings.maintainDueDateOffsetInRecurring}),d=wEe(i),u,p=Ge(),m=i.status!==void 0&&!e.recurrence?Il():"";if(await Fr(n.app,s,h=>{u=xEe({frontmatter:h,originalTask:e,updates:i,recurrenceUpdates:c,dateModified:p,fieldMapper:n.fieldMapper,taskIdentification:{method:n.settings.taskIdentificationMethod,tag:n.settings.taskTag,propertyName:n.settings.taskPropertyName,propertyValue:n.settings.taskPropertyValue},storeTitleInFilename:n.settings.storeTitleInFilename,updateCompletedDateInFrontmatter:(v,b,k)=>this.deps.updateCompletedDateInFrontmatter(v,b,k)}).finalTags}),o&&await n.app.fileManager.renameFile(s,l),d!==null){let h=n.app.vault.getAbstractFileByPath(l);h instanceof ZR.TFile&&await NS(n.app,h,g=>{let{frontmatter:v}=rm(g),b=v!==null?`---
|
||
${v}
|
||
---
|
||
|
||
`:"",k=d.trimEnd(),w=k.length>0?`${k}
|
||
`:"";return`${b}${w}`})}let f=CEe({originalTask:e,updates:i,recurrenceUpdates:c,newPath:l,dateModified:p,currentDateString:m,normalizedDetails:d,finalTags:u,isCompletedStatus:h=>n.statusManager.isCompletedStatus(h)});o&&(n.cacheManager.clearCacheEntry(e.path),n.expandedProjectsService.renamePath(e.path,l),n.projectSubtasksService.invalidateIndex());try{let h=n.app.vault.getAbstractFileByPath(l);if(h instanceof ZR.TFile&&n.cacheManager.waitForFreshTaskData){let g={};i.title!==void 0&&(g.title=i.title),i.status!==void 0&&(g.status=i.status),i.priority!==void 0&&(g.priority=i.priority),Object.keys(g).length>0&&await n.cacheManager.waitForFreshTaskData(h)}n.cacheManager.updateTaskInfoInCache(l,f)}catch(h){Cb.error("Error updating task cache:",{category:"stale-data",operation:"updating-task-cache",details:{taskPath:l},error:h instanceof Error?h.message:String(h)})}try{n.emitter.trigger(ot,{path:l,originalTask:e,updatedTask:f})}catch(h){Cb.error("Error emitting task update event:",{category:"validation",operation:"emitting-task-update-event",details:{taskPath:l},error:h instanceof Error?h.message:String(h)})}if(this.deps.webhookNotifier)try{let h=n.statusManager.isCompletedStatus(e.status),g=n.statusManager.isCompletedStatus(f.status);!h&&g?await this.deps.webhookNotifier.triggerWebhook("task.completed",{task:f}):await this.deps.webhookNotifier.triggerWebhook("task.updated",{task:f,previous:e})}catch(h){Cb.warn("Failed to trigger webhook for task update:",{category:"provider",operation:"trigger-webhook-task-update",error:h})}if((a=n.taskCalendarSyncService)!=null&&a.isEnabled()){let h=n.statusManager.isCompletedStatus(e.status),g=n.statusManager.isCompletedStatus(f.status);(!h&&g?n.taskCalendarSyncService.completeTaskInCalendar(f):n.taskCalendarSyncService.updateTaskInCalendar(f,e)).catch(b=>{Cb.warn("Failed to sync task update to Google Calendar:",{category:"provider",operation:"sync-task-update-google-calendar",error:b})})}return await this.handleAutoArchive(e,f,i.status),f}catch(i){let s=i instanceof Error?i.message:String(i);throw Cb.error("Error updating task:",{category:"validation",operation:"updating-task",details:{stack:i instanceof Error?i.stack:void 0,taskPath:e.path,updates:t},error:s}),new Error(`Failed to update task: ${s}`)}}async handleAutoArchive(e,t,n){if(!(!this.deps.autoArchiveService||n===void 0||n===e.status))try{let a=this.deps.runtime.statusManager.getStatusConfig(t.status);if(!a)return;a.autoArchive?await this.deps.autoArchiveService.scheduleAutoArchive(t,a):await this.deps.autoArchiveService.cancelAutoArchive(t.path)}catch(a){Cb.warn("Failed to handle auto-archive for status change:",{category:"validation",operation:"handle-auto-archive-status-change",error:a})}}}});function PEe(r,e,t={}){var l,c,d,u;let n=e.taskCreationDefaults,a=(l=t.calculateDefaultDate)!=null?l:OS,i=(c=t.calculateDefaultDateTime)!=null?c:Ac,s=(d=t.convertDefaultRemindersToReminders)!=null?d:EE,o={...r,customFrontmatter:r.customFrontmatter?{...r.customFrontmatter}:void 0};return o.due===void 0&&n.defaultDueDate!=="none"&&(o.due=i(n.defaultDueDate,n.defaultDueTime)),o.scheduled===void 0&&n.defaultScheduledDate!=="none"&&(o.scheduled=i(n.defaultScheduledDate,n.defaultScheduledTime)),!o.contexts&&n.defaultContexts&&(o.contexts=p4(n.defaultContexts)),!o.projects&&n.defaultProjects&&(o.projects=p4(n.defaultProjects)),!o.tags&&n.defaultTags&&(o.tags=p4(n.defaultTags)),!o.timeEstimate&&n.defaultTimeEstimate>0&&(o.timeEstimate=n.defaultTimeEstimate),!o.recurrence&&n.defaultRecurrence!=="none"&&(o.recurrence=fct[n.defaultRecurrence]),!o.reminders&&n.defaultReminders&&n.defaultReminders.length>0&&(o.reminders=s(n.defaultReminders)),hct(o,(u=e.userFields)!=null?u:[],a),o}function p4(r){return r.split(",").map(e=>e.trim()).filter(e=>e.length>0)}function hct(r,e,t){if(e.length!==0){r.customFrontmatter||(r.customFrontmatter={});for(let n of e){let a=gct(n);if(a!==void 0&&r.customFrontmatter[n.key]===void 0)if(n.type==="date"&&typeof a=="string"){let i=t(a);i&&(r.customFrontmatter[n.key]=i)}else r.customFrontmatter[n.key]=a}}}function gct(r){if(r.defaultValue!==void 0)return r.defaultValue;if(r.type==="boolean")return!1}var fct,MEe=y(()=>{Ct();IN();fct={none:void 0,daily:"FREQ=DAILY",weekly:"FREQ=WEEKLY",monthly:"FREQ=MONTHLY",yearly:"FREQ=YEARLY"}});function _Ee(r){return r.replace(/./g,e=>{let t=e.charCodeAt(0);return t<=31||t>=127&&t<=159?"":e})}function IEe(r){return r.trim().replace(/\s+/g," ")}function NEe(r){return r.length>0?r:sD}function REe(r){if(!r||typeof r!="string")return sD;try{let e=_Ee(IEe(r)).replace(/[<>:"/\\|?*#[\]]/g,"").replace(/^\.+|\.+$/g,"").trim();return NEe(e)}catch(e){return AEe.error("Error sanitizing title:",{category:"validation",operation:"sanitizing-title",error:e}),sD}}function FEe(r){if(!r||typeof r!="string")return sD;try{return NEe(_Ee(IEe(r)).trim())}catch(e){return AEe.error("Error sanitizing title:",{category:"validation",operation:"sanitizing-title",error:e}),sD}}var AEe,sD,OEe=y(()=>{K();AEe=N({tag:"Services/TaskService/TaskTitleSanitizer"}),sD="untitled"});function m4(r,e,t,n){return e!=="status"?null:{wasCompleted:r.statusManager.isCompletedStatus(r.normalizeStatusValue(t)),isCompleted:r.statusManager.isCompletedStatus(r.normalizeStatusValue(n))}}async function yct(r,e){try{r.cacheManager.waitForFreshTaskData&&await r.cacheManager.waitForFreshTaskData(e.file),r.cacheManager.updateTaskInfoInCache(e.originalTask.path,e.updatedTask)}catch(t){Eb.error("Error updating task cache:",{category:"stale-data",operation:"updating-task-cache",details:{taskPath:e.originalTask.path},error:t instanceof Error?t.message:String(t)})}}async function vct(r,e){try{r.emitter.trigger(ot,{path:e.originalTask.path,originalTask:e.originalTask,updatedTask:e.updatedTask});let t=m4(r,e.property,e.oldValue,e.newValue);if(!t||t.wasCompleted===t.isCompleted)return;let n=r.cacheManager.getBlockedTaskPaths(e.originalTask.path);for(let a of n)try{let i=await r.cacheManager.getTaskInfo(a);i&&r.emitter.trigger(ot,{path:a,originalTask:i,updatedTask:i})}catch(i){Eb.error(`Error triggering update for dependent task ${a}:`,{category:"validation",operation:"triggering-update-dependent-task",error:i})}}catch(t){Eb.error("Error emitting task update event:",{category:"validation",operation:"emitting-task-update-event",details:{taskPath:e.originalTask.path},error:t instanceof Error?t.message:String(t)})}}async function kct(r,e){if(r.webhookNotifier)try{let t=m4(r,e.property,e.oldValue,e.newValue);if(t&&!t.wasCompleted&&t.isCompleted){await r.webhookNotifier.triggerWebhook("task.completed",{task:e.updatedTask});return}await r.webhookNotifier.triggerWebhook("task.updated",{task:e.updatedTask,previous:e.originalTask})}catch(t){Eb.warn("Failed to trigger webhook for property update:",{category:"provider",operation:"trigger-webhook-property-update",error:t})}}function bct(r,e){var a;if(!((a=r.taskCalendarSyncService)!=null&&a.isEnabled()))return;let t=m4(r,e.property,e.oldValue,e.newValue);(t&&!t.wasCompleted&&t.isCompleted?r.taskCalendarSyncService.completeTaskInCalendar(e.updatedTask):r.taskCalendarSyncService.updateTaskInCalendar(e.updatedTask,e.originalTask)).catch(i=>{Eb.warn("Failed to sync task update to Google Calendar:",{category:"provider",operation:"sync-task-update-google-calendar",error:i})})}async function Tct(r,e){if(!(!r.autoArchiveService||e.property!=="status"||e.newValue===e.oldValue))try{let t=r.statusManager.getStatusConfig(e.newValue);if(!t)return;t.autoArchive?await r.autoArchiveService.scheduleAutoArchive(e.updatedTask,t):await r.autoArchiveService.cancelAutoArchive(e.updatedTask.path)}catch(t){Eb.warn("Failed to handle auto-archive for status property change:",{category:"persistence",operation:"handle-auto-archive-status-property-change",error:t})}}async function LEe(r,e){await yct(r,e),await vct(r,e),await kct(r,e),bct(r,e),await Tct(r,e)}var Eb,zEe=y(()=>{Yr();K();Eb=N({tag:"Services/TaskService/TaskPropertyChangeSideEffects"})});function Sct(r,e){return typeof r=="string"&&Object.prototype.hasOwnProperty.call(e,r)}function Sg(r,e="frontmatter field"){if(typeof r!="string")throw new Error(`${e} resolved to a non-string frontmatter field name`);if(r.trim().length===0)throw new Error(`${e} resolved to an invalid frontmatter field name: ${r}`);return r}function jEe(r,e){let t=r.getMapping();if(Sct(e,t))return Sg(r.toUserField(e),`field mapping for ${String(e)}`);let n=wct[e];return n?Sg(r.toUserField(n),`field mapping for ${String(e)}`):Sg(String(e),`task property ${String(e)}`)}var wct,f4=y(()=>{wct={recurrence_anchor:"recurrenceAnchor",complete_instances:"completeInstances",skipped_instances:"skippedInstances",recurrence_parent:"recurrenceParent",occurrence_date:"occurrenceDate",occurrence_materialization:"occurrenceMaterialization",occurrence_next_trigger:"occurrenceNextTrigger",occurrence_template:"occurrenceTemplate",occurrence_past_horizon:"occurrencePastHorizon",occurrence_future_horizon:"occurrenceFutureHorizon"}});function xct(r,e,t){return r==="status"?t(e):r==="blockedBy"?Cct(e):e}function Cct(r){if(r==null)return;let t=(Array.isArray(r)?r:[r]).map(n=>os(n)).filter(n=>!!n);return t.length>0?t:void 0}function $Ee({freshTask:r,property:e,value:t,currentTimestamp:n,currentDateString:a,normalizeStatusValue:i,isCompletedStatus:s}){let o=xct(e,t,i),l={...r};if(l[e]=o,l.dateModified=n,e==="status"&&!r.recurrence){let c=i(o);s(c)?l.completedDate=a:l.completedDate=void 0}return{updatedTask:l,normalizedValue:o,dateModified:n}}function Ect(r){let e=r.toLowerCase();return e==="true"||e==="false"?e==="true":r}function h4(r,e,t,n,a,i){if(!t){if(a(e)){r[n]=i;return}r[n]&&delete r[n]}}function BEe({frontmatter:r,property:e,fieldName:t,rawValue:n,normalizedValue:a,dateModified:i,dateModifiedField:s,completedDateField:o,isRecurring:l,normalizeStatusValue:c,isCompletedStatus:d,currentDateString:u}){let p=Sg(t,`task property ${String(e)}`),m=Sg(s,"dateModified field mapping"),f=Sg(o,"completedDate field mapping");if(e==="status"){let h=c(a);r[p]=Ect(h),h4(r,h,l,f,d,u)}else if((e==="due"||e==="scheduled")&&!n)delete r[p];else if(e==="blockedBy"){let h=Array.isArray(a)?a:[];h.length>0?r[p]=Afe(h):delete r[p]}else r[p]=a;r[m]=i}var UEe=y(()=>{Io();f4()});function HEe(r,e,t){let n=!!r.archived,a={...r};a.archived=!n,a.dateModified=t;let i=Array.isArray(a.tags)?a.tags:[];return n?a.tags=i.filter(s=>s!==e):i.includes(e)?a.tags=[...i]:a.tags=[...i,e],{updatedTask:a,isCurrentlyArchived:n,operation:n?"unarchiving":"archiving",dateModified:t}}function VEe({frontmatter:r,archiveTag:e,isCurrentlyArchived:t,dateModified:n,dateModifiedField:a}){if(t){let i=r.tags;if(Array.isArray(i)){let s=i.filter(o=>o!==e);s.length===0?delete r.tags:r.tags=s}}else r.tags?Array.isArray(r.tags)||(r.tags=[r.tags]):r.tags=[],r.tags.includes(e)||r.tags.push(e);r[a]=n}function qEe({isCurrentlyArchived:r,moveArchivedTasks:e,archiveFolderTemplate:t,tasksFolderTemplate:n,fileName:a,taskData:i,processFolderTemplate:s}){if(!e)return null;let o=r?n==null?void 0:n.trim():t==null?void 0:t.trim();if(!o)return null;let l=r?"tasks":"archive",c=s(o,{title:i.title||"",priority:i.priority,status:i.status,contexts:i.contexts,projects:i.projects});return{operation:r?"unarchiving":"archiving",destinationKind:l,destinationFolder:c,newPath:`${c}/${a}`}}var WEe=y(()=>{});function JR(r){let e={...r};return delete e.duration,e}function XR(r){return Array.isArray(r)?r.map(JR):[]}function g4(r,e,t=e,n="Work session"){let a={startTime:t,description:n};return{updatedTask:{...r,dateModified:e,timeEntries:[...XR(r.timeEntries),a]},newEntry:a,dateModified:e}}function y4(r,e,t,n=t){let a={...r,dateModified:t},i=XR(r.timeEntries),s=i.findIndex(o=>o.startTime===e.startTime&&!o.endTime);return s!==-1&&(i[s]={...i[s],endTime:n},a.timeEntries=i),{updatedTask:a,stopTimestamp:n,dateModified:t}}function v4(r,e,t){if(!Array.isArray(r.timeEntries))throw new Error("Task has no time entries");if(e<0||e>=r.timeEntries.length)throw new Error("Invalid time entry index");return{updatedTask:{...r,dateModified:t,timeEntries:XR(r.timeEntries).filter((n,a)=>a!==e)},timeEntryIndex:e,dateModified:t}}var YEe=y(()=>{});function GEe({frontmatter:r,timeEntriesField:e,dateModifiedField:t,newEntry:n,dateModified:a}){r[e]||(r[e]=[]),Array.isArray(r[e])&&(r[e]=r[e].map(JR)),r[e].push(n),r[t]=a}function KEe({frontmatter:r,timeEntriesField:e,dateModifiedField:t,timeEntryIndex:n,dateModified:a}){r[e]&&Array.isArray(r[e])&&(r[e]=r[e].filter((i,s)=>s!==n)),r[t]=a}function ZEe({frontmatter:r,timeEntriesField:e,dateModifiedField:t,activeSession:n,stopTimestamp:a,dateModified:i}){if(r[e]&&Array.isArray(r[e])){let s=r[e].map(JR),o=s.findIndex(l=>l.startTime===n.startTime&&!l.endTime);o!==-1&&(s[o].endTime=a),r[e]=s}r[t]=i}var QEe=y(()=>{YEe()});function JEe(r,e){return{uniqueAdditions:Array.from(new Set(r)),uniqueRemovals:Array.from(new Set(e))}}function XEe({blockedTask:r,blockingTaskPath:e,action:t,rawEntry:n,useFrontmatterMarkdownLinks:a,resolveDependencyPath:i,formatDependencyLink:s}){var u;let o=Array.isArray(r.blockedBy)?r.blockedBy.map(p=>os(p)).filter(p=>!!p):[];if(o.length===0&&t==="remove")return null;let l=!1,c=!1,d=[];for(let p of o){if(i(r.path,p)===e&&(c=!0,t==="remove")){l=!0;continue}d.push(p)}if(t==="add"&&!c){let p=n?os(n):null,m={uid:s(r.path,e,a),reltype:(u=p==null?void 0:p.reltype)!=null?u:ss};p!=null&&p.gap&&(m.gap=p.gap),d.push(m),l=!0}return l?d:null}function k4(r){return r===null?null:{blockedBy:r.length>0?r:void 0}}var eDe=y(()=>{Io()});var Wn,lr,eF,tDe=y(()=>{Yr();pW();Wn=require("obsidian");qR();Ct();Io();qn();Me();Ah();u4();bEe();fs();DEe();MEe();OEe();zEe();UEe();WEe();QEe();lq();aN();eDe();f4();Ba();K();lr=N({tag:"Services/TaskService"}),eF=class{constructor(e){this.plugin=e;this.taskCreationService=new KR({runtime:this.plugin,webhookNotifier:this.webhookNotifier,applyTaskCreationDefaults:t=>Promise.resolve(PEe(t,this.plugin.settings)),applyTemplate:t=>this.applyTemplate(t),processFolderTemplate:(t,n,a)=>this.processFolderTemplate(t,n,a),sanitizeTitleForFilename:REe,sanitizeTitleForStorage:FEe}),this.taskUpdateService=new QR({runtime:this.plugin,webhookNotifier:this.webhookNotifier,autoArchiveService:this.autoArchiveService,updateCompletedDateInFrontmatter:(t,n,a)=>this.updateCompletedDateInFrontmatter(t,n,a)})}hasGoogleCalendarLinks(e){return!!(e.googleCalendarEventId||e.googleCalendarExceptionEventId)}createArchiveCalendarDeletionTask(e,t){return{...t,googleCalendarEventId:e.googleCalendarEventId,googleCalendarExceptionEventId:e.googleCalendarExceptionEventId,googleCalendarExceptionOriginalScheduled:e.googleCalendarExceptionOriginalScheduled,googleCalendarMovedOriginalDates:e.googleCalendarMovedOriginalDates?[...e.googleCalendarMovedOriginalDates]:void 0}}clearGoogleCalendarMetadata(e){e.googleCalendarEventId=void 0,e.googleCalendarExceptionEventId=void 0,e.googleCalendarExceptionOriginalScheduled=void 0,e.googleCalendarMovedOriginalDates=void 0}writeOptionalFrontmatterField(e,t,n){if(n==null||Array.isArray(n)&&n.length===0){delete e[t];return}e[t]=n}async deleteArchivedTaskFromCalendar(e){return!this.plugin.taskCalendarSyncService||await this.plugin.taskCalendarSyncService.deleteTaskFromCalendar(e)?!0:(lr.warn("Failed to delete archived task from Google Calendar during archive:",{category:"provider",operation:"delete-archived-task-google-calendar-archive",details:{taskPath:e.path,eventId:e.googleCalendarEventId}}),!1)}translate(e,t){return this.plugin.i18n.translate(e,t)}setWebhookNotifier(e){this.webhookNotifier=e,this.taskCreationService.setWebhookNotifier(e),this.taskUpdateService.setWebhookNotifier(e)}setAutoArchiveService(e){this.autoArchiveService=e,this.taskUpdateService.setAutoArchiveService(e)}normalizeStatusValue(e){return typeof e=="boolean"?e?"true":"false":typeof e=="string"?e:typeof e=="number"?String(e):""}getCompletionDateForTask(e){return Il()}processFolderTemplate(e,t,n=new Date){let a=t?{title:t.title,priority:t.priority,status:t.status,contexts:t.contexts,projects:t.projects,due:t.due,scheduled:t.scheduled}:void 0;return YR(e,{date:n,taskData:a,extractProjectBasename:i=>this.extractProjectBasename(i),extractProjectFilePath:i=>this.extractProjectFilePath(i)})}async createTask(e,t={}){return this.taskCreationService.createTask(e,t)}async applyTemplate(e){var n,a,i,s;let t=this.plugin.settings.taskCreationDefaults;if(!t.useBodyTemplate||!((n=t.bodyTemplate)!=null&&n.trim()))return{frontmatter:{},body:((a=e.details)==null?void 0:a.trim())||""};try{let o=(0,Wn.normalizePath)(t.bodyTemplate.trim());o.endsWith(".md")||(o+=".md");let l=this.plugin.app.vault.getAbstractFileByPath(o);if(l instanceof Wn.TFile){let c=await this.plugin.app.vault.read(l),d={title:e.title||"",priority:e.priority||"",status:e.status||"",contexts:Array.isArray(e.contexts)?e.contexts:[],tags:Array.isArray(e.tags)?e.tags:[],timeEstimate:e.timeEstimate||0,dueDate:e.due||"",scheduledDate:e.scheduled||"",details:e.details||"",parentNote:e.parentNote||""};return iD(c,d)}else return lr.warn(`Task body template not found: ${o}`,{category:"persistence",operation:"task-body-template-not-found"}),Te(this.plugin.emitter,this.translate("services.task.notices.templateNotFound",{path:o})),{frontmatter:{},body:((i=e.details)==null?void 0:i.trim())||""}}catch(o){return lr.error("Error reading task body template:",{category:"persistence",operation:"reading-task-body-template",error:o}),Te(this.plugin.emitter,this.translate("services.task.notices.templateReadError",{template:t.bodyTemplate})),{frontmatter:{},body:((s=e.details)==null?void 0:s.trim())||""}}}getOccurrenceTemplateReference(e){var a,i;let t=(a=e.occurrence_template)==null?void 0:a.trim();if(t)return t;let n=this.plugin.settings.taskCreationDefaults;return n.useOccurrenceBodyTemplate&&((i=n.occurrenceBodyTemplate)!=null&&i.trim())?n.occurrenceBodyTemplate.trim():null}resolveTemplateFile(e,t){var o,l,c,d,u,p,m,f;let n=Et(e).trim();if(!n)return null;let a=(f=(u=(l=(o=this.plugin.app.metadataCache).getFirstLinkpathDest)==null?void 0:l.call(o,n,t))!=null?u:(d=(c=this.plugin.app.metadataCache).getFirstLinkpathDest)==null?void 0:d.call(c,n.replace(/\.md$/i,""),t))!=null?f:(m=(p=this.plugin.app.metadataCache).getFirstLinkpathDest)==null?void 0:m.call(p,n,"");if(a instanceof Wn.TFile)return a;let i=(0,Wn.normalizePath)(n),s=/\.md$/i.test(i)?[i]:[`${i}.md`,i];for(let h of s){let g=this.plugin.app.vault.getAbstractFileByPath(h);if(g instanceof Wn.TFile)return g}return null}buildOccurrenceTemplateData(e,t){return{title:e.title||t.title||"",priority:e.priority||t.priority||"",status:e.status||"",contexts:Array.isArray(e.contexts)?e.contexts:[],tags:Array.isArray(e.tags)?e.tags:[],timeEstimate:e.timeEstimate||0,dueDate:e.due||"",scheduledDate:e.scheduled||"",details:e.details||"",parentNote:this.buildOccurrenceParentReference(t)}}extractTemplateCustomFrontmatter(e){let t=new Set(this.plugin.fieldMapper.getUserFields().map(a=>a.key)),n={};for(let[a,i]of Object.entries(e))a==="tags"||t.has(a)||this.plugin.fieldMapper.lookupMappingKey(a)||(n[a]=i);return Object.keys(n).length>0?n:void 0}buildOccurrenceTemplateTask(e){let t=this.plugin.fieldMapper.mapFromFrontmatter(e.frontmatter,"",!1),n=e.body.replace(/\r\n/g,`
|
||
`).trimEnd(),a={...t};return n.trim().length>0&&(a.details=n),{templateTask:a,customFrontmatter:this.extractTemplateCustomFrontmatter(e.frontmatter)}}async resolveOccurrenceTemplate(e,t){let n=this.getOccurrenceTemplateReference(e);if(!n)return{configured:!1};let a=this.resolveTemplateFile(n,e.path);if(!a)return lr.warn(`Occurrence note template not found: ${n}`,{category:"persistence",operation:"occurrence-template-not-found"}),Te(this.plugin.emitter,this.translate("services.task.notices.occurrenceTemplateNotFound",{path:n})),{configured:!0};try{let i=await this.plugin.app.vault.read(a),s=iD(i,this.buildOccurrenceTemplateData(t,e));return{configured:!0,...this.buildOccurrenceTemplateTask(s)}}catch(i){return lr.error("Error reading occurrence note template:",{category:"persistence",operation:"reading-occurrence-template",error:i}),Te(this.plugin.emitter,this.translate("services.task.notices.occurrenceTemplateReadError",{template:n})),{configured:!0}}}async toggleStatus(e){try{let n=this.plugin.statusManager.isCompletedStatus(e.status)?this.plugin.settings.defaultTaskStatus:this.plugin.statusManager.getCompletedStatuses()[0]||"done";return await this.updateProperty(e,"status",n)}catch(t){let n=t instanceof Error?t.message:String(t);throw lr.error("Error toggling task status:",{category:"persistence",operation:"toggling-task-status",details:{stack:t instanceof Error?t.stack:void 0,taskPath:e.path,currentStatus:e.status},error:n}),new Error(`Failed to toggle task status: ${n}`)}}async updateProperty(e,t,n,a={}){try{let i=this.plugin.app.vault.getAbstractFileByPath(e.path);if(!(i instanceof Wn.TFile))throw new Error(`Cannot find task file: ${e.path}`);let s=await this.plugin.cacheManager.getTaskInfo(e.path)||e,o=$Ee({freshTask:s,property:t,value:n,currentTimestamp:Ge(),currentDateString:this.getCompletionDateForTask(s),normalizeStatusValue:l=>this.normalizeStatusValue(l),isCompletedStatus:l=>this.plugin.statusManager.isCompletedStatus(l)});return t==="scheduled"&&nN(s,o.normalizedValue,o.updatedTask),(t==="recurrence"||t==="recurrence_anchor")&&lg(o.updatedTask),await Fr(this.plugin.app,i,l=>{let c=jEe(this.plugin.fieldMapper,t),d=this.plugin.fieldMapper.toUserField("dateModified"),u=this.plugin.fieldMapper.toUserField("completedDate");BEe({frontmatter:l,property:t,fieldName:c,rawValue:n,normalizedValue:o.normalizedValue,dateModified:o.dateModified,dateModifiedField:d,completedDateField:u,isRecurring:!!s.recurrence,normalizeStatusValue:p=>this.normalizeStatusValue(p),isCompletedStatus:p=>this.plugin.statusManager.isCompletedStatus(p),currentDateString:this.getCompletionDateForTask(s)}),this.writeOptionalFrontmatterField(l,this.plugin.fieldMapper.toUserField("googleCalendarExceptionOriginalScheduled"),o.updatedTask.googleCalendarExceptionOriginalScheduled),this.writeOptionalFrontmatterField(l,this.plugin.fieldMapper.toUserField("googleCalendarMovedOriginalDates"),o.updatedTask.googleCalendarMovedOriginalDates)}),await this.applyPropertyChangeSideEffects(i,s,o.updatedTask,t,s[t],o.normalizedValue),await this.reconcileMaterializedOccurrenceStatusChange(s,o.updatedTask,t,s[t],o.normalizedValue),o.updatedTask}catch(i){let s=i instanceof Error?i.message:String(i);throw lr.error("Error updating task property:",{category:"persistence",operation:"updating-task-property",details:{stack:i instanceof Error?i.stack:void 0,taskPath:e.path,property:t,value:n},error:s}),new Error(`Failed to update task property: ${s}`)}}async applyPropertyChangeSideEffects(e,t,n,a,i,s){await LEe({cacheManager:this.plugin.cacheManager,emitter:this.plugin.emitter,statusManager:this.plugin.statusManager,taskCalendarSyncService:this.plugin.taskCalendarSyncService,webhookNotifier:this.webhookNotifier,autoArchiveService:this.autoArchiveService,normalizeStatusValue:o=>this.normalizeStatusValue(o)},{file:e,originalTask:t,updatedTask:n,property:a,oldValue:i,newValue:s})}async materializeOccurrence(e,t,n={}){let a=await this.plugin.cacheManager.getTaskInfo(e.path)||e;if(!a.recurrence)throw new Error("Task is not recurring");let i=await this.plugin.cacheManager.getAllTasks(),s={parentTask:a,targetDate:t,currentTimestamp:Ge(),existingOccurrences:i,parentLink:this.buildOccurrenceParentReference(a),defaultStatus:this.plugin.settings.defaultTaskStatus,defaultPriority:this.plugin.settings.defaultTaskPriority,overrides:n},o=dW(s);if(!o.created&&o.existingOccurrence)return o.existingOccurrence;let l=await this.resolveOccurrenceTemplate(a,o.occurrenceTask),d={...(l.templateTask||l.customFrontmatter?dW({...s,templateTask:l.templateTask}):o).occurrenceTask,creationContext:"api",customFrontmatter:l.customFrontmatter,occurrenceFilenameTemplate:this.resolveOccurrenceFilenameTemplate(a)},{taskInfo:u}=await this.createTask(d,{applyDefaults:!1,applyTemplate:!l.configured});return u}resolveOccurrenceFilenameTemplate(e){var t,n,a;try{let i=((t=this.plugin.settings.occurrenceFilenameTemplateProperty)==null?void 0:t.trim())||"occurrenceFilenameTemplate",s=this.plugin.app.vault.getAbstractFileByPath(e.path),o=s instanceof Wn.TFile?(n=this.plugin.app.metadataCache.getFileCache(s))==null?void 0:n.frontmatter:void 0,l=o==null?void 0:o[i],c=typeof l=="string"&&l.trim()?l:this.plugin.settings.occurrenceFilenameTemplate;return typeof c=="string"&&c.trim()?c:void 0}catch(i){return lr.warn("Failed to resolve occurrence filename template:",{category:"persistence",operation:"resolving-occurrence-filename-template",error:i}),((a=this.plugin.settings.occurrenceFilenameTemplate)==null?void 0:a.trim())||void 0}}async findMaterializedOccurrence(e,t){let n=await this.plugin.cacheManager.getTaskInfo(e.path)||e;if(!n.recurrence)return;let a=typeof t=="string"?t.slice(0,10):ce(t),i=await this.plugin.cacheManager.getAllTasks();return cW(i,n,a,this.buildOccurrenceParentReference(n))}async toggleRecurringTaskCompleteWithOccurrenceNotes(e,t){let n=await this.plugin.cacheManager.getTaskInfo(e.path)||e;if(!n.recurrence)throw new Error("Task is not recurring");let a=this.getRecurringTaskActionDate(n,t),i=ce(a),s=await this.findMaterializedOccurrence(n,a);if(s)return this.toggleStatus(s);let o=Array.isArray(n.complete_instances)?n.complete_instances.filter(l=>typeof l=="string"):[];if(n.occurrence_materialization==="on_completion"&&!o.includes(i)){let l=await this.materializeOccurrence(n,a);return this.toggleStatus(l)}return this.toggleRecurringTaskComplete(n,a)}async getMaterializedOccurrenceParent(e){let t=await this.plugin.cacheManager.getTaskInfo(e.path)||e;return this.resolveOccurrenceParentTask(t)}async skipMaterializedOccurrence(e,t=this.getDefaultSkippedOccurrenceStatus()){let n=await this.plugin.cacheManager.getTaskInfo(e.path)||e,a=await this.resolveOccurrenceParentTask(n);if(!a)throw new Error("Cannot resolve occurrence parent");let i=Vxe({occurrenceTask:n,parentTask:a,skippedStatus:t,currentTimestamp:Ge(),maintainDueDateOffsetInRecurring:this.plugin.settings.maintainDueDateOffsetInRecurring}),s=await this.persistTaskInfoUpdates(n,i.occurrenceUpdates,"skip-materialized-occurrence"),o=await this.persistTaskInfoUpdates(a,i.parentUpdates,"reconcile-skipped-materialized-occurrence-parent");if(i.materializeNextDate)try{await this.materializeOccurrence(o,i.materializeNextDate)}catch(l){lr.warn("Failed to materialize next occurrence after skip:",{category:"persistence",operation:"materialize-next-occurrence-after-skip",details:{parentPath:o.path,nextDate:i.materializeNextDate},error:l})}return s}async unskipMaterializedOccurrence(e){let t=await this.plugin.cacheManager.getTaskInfo(e.path)||e,n=await this.resolveOccurrenceParentTask(t);if(!n)throw new Error("Cannot resolve occurrence parent");let a=qxe({occurrenceTask:t,parentTask:n,activeStatus:this.plugin.settings.defaultTaskStatus,currentTimestamp:Ge()}),i=await this.persistTaskInfoUpdates(t,a.occurrenceUpdates,"unskip-materialized-occurrence");return await this.persistTaskInfoUpdates(n,a.parentUpdates,"reconcile-unskipped-materialized-occurrence-parent"),i}getDefaultSkippedOccurrenceStatus(){var e;return(e=this.plugin.settings.customStatuses.find(t=>t.isSkipped))==null?void 0:e.value}async reconcileMaterializedOccurrenceStatusChange(e,t,n,a,i){if(n!=="status"||!AE(t))return;let s=this.plugin.statusManager.isCompletedStatus(this.normalizeStatusValue(a)),o=this.plugin.statusManager.isCompletedStatus(this.normalizeStatusValue(i));if(s===o)return;let l=await this.resolveOccurrenceParentTask(t);if(!l){lr.warn("Could not resolve materialized occurrence parent:",{category:"persistence",operation:"resolve-materialized-occurrence-parent",details:{taskPath:t.path,parent:t.recurrence_parent}});return}let c=Ge(),d=o?Uxe({occurrenceTask:t,parentTask:l,completedStatus:this.normalizeStatusValue(i),currentTimestamp:c,completionDate:t.completedDate||Il(),maintainDueDateOffsetInRecurring:this.plugin.settings.maintainDueDateOffsetInRecurring}):Hxe({occurrenceTask:e,parentTask:l,activeStatus:this.normalizeStatusValue(i),currentTimestamp:c});o&&(d=this.adjustRescheduledOccurrenceCompletionProgression(d,t,l,c));let u=await this.persistTaskInfoUpdates(l,d.parentUpdates,"reconcile-materialized-occurrence-parent");if(o&&this.webhookNotifier)try{await this.webhookNotifier.triggerWebhook("recurring.instance.completed",{task:u,occurrence:t,date:d.targetDate})}catch(p){lr.warn("Failed to trigger materialized occurrence webhook:",{category:"provider",operation:"trigger-materialized-occurrence-webhook",error:p})}if(o&&d.materializeNextDate)try{await this.materializeOccurrence(u,d.materializeNextDate)}catch(p){lr.warn("Failed to materialize next occurrence after completion:",{category:"persistence",operation:"materialize-next-occurrence-after-completion",details:{parentPath:u.path,nextDate:d.materializeNextDate},error:p})}}adjustRescheduledOccurrenceCompletionProgression(e,t,n,a){var p;let i=this.getRescheduledOccurrenceProgressionDate(t);if(!i||typeof n.recurrence!="string")return e;let s=typeof e.updatedParentTask.recurrence=="string"?e.updatedParentTask.recurrence:n.recurrence;if((e.updatedParentTask.recurrence_anchor||"scheduled")==="completion")return e;let l=wu({...e.updatedParentTask,recurrence:s,scheduled:t.scheduled||i,due:(p=t.due)!=null?p:n.due},this.plugin.settings.maintainDueDateOffsetInRecurring,{minOccurrenceDate:i}),c={...e.parentUpdates,recurrence:s,dateModified:a};l.scheduled?c.scheduled=l.scheduled:delete c.scheduled,l.due?c.due=l.due:delete c.due;let d={...n,...c},u=e.materializeNextDate?de(d.scheduled||""):void 0;return{...e,updatedParentTask:d,parentUpdates:c,parentFields:tb(c),materializeNextDate:u||void 0,changed:!0}}getRescheduledOccurrenceProgressionDate(e){let t=this.getSafeDatePart(e.occurrence_date),n=this.getSafeDatePart(e.scheduled);return!t||!n||n<=t?null:n}getSafeDatePart(e){if(!e)return"";try{return de(e)}catch(t){return""}}async resolveOccurrenceParentTask(e){var i,s;if(!e.recurrence_parent)return null;let t=Et(e.recurrence_parent),n=new Set([t]);t&&!t.endsWith(".md")&&n.add(`${t}.md`);for(let o of n){let l=await this.plugin.cacheManager.getTaskInfo(o);if(l)return l}let a=(s=(i=this.plugin.app.metadataCache).getFirstLinkpathDest)==null?void 0:s.call(i,t,e.path);return a instanceof Wn.TFile?await this.plugin.cacheManager.getTaskInfo(a.path):null}buildOccurrenceParentReference(e){let t=this.plugin.app.vault.getAbstractFileByPath(e.path);return t instanceof Wn.TFile?Ws(this.plugin.app,t,"",void 0,void 0,this.plugin.settings.useFrontmatterMarkdownLinks):`[[${e.path.replace(/\.md$/i,"")}]]`}applyModelTaskUpdatesToFrontmatter(e,t){let n=Wxe(t,this.plugin.fieldMapper.getMapping());for(let a of n)a.op==="delete"?delete e[a.field]:e[a.field]=a.value}async persistTaskInfoUpdates(e,t,n){var s;if(Object.keys(t).length===0)return e;let a=this.plugin.app.vault.getAbstractFileByPath(e.path);if(!(a instanceof Wn.TFile))throw new Error(`Cannot find task file: ${e.path}`);let i={...e,...t};await Fr(this.plugin.app,a,o=>{this.applyModelTaskUpdatesToFrontmatter(o,t)});try{this.plugin.cacheManager.waitForFreshTaskData&&await this.plugin.cacheManager.waitForFreshTaskData(a),this.plugin.cacheManager.updateTaskInfoInCache(e.path,i)}catch(o){lr.error("Error updating cache for model task updates:",{category:"stale-data",operation:"persist-model-task-updates-cache",details:{taskPath:e.path,sourceOperation:n},error:o})}return this.plugin.emitter.trigger(ot,{path:e.path,originalTask:e,updatedTask:i}),(s=this.plugin.taskCalendarSyncService)!=null&&s.isEnabled()&&this.plugin.taskCalendarSyncService.updateTaskInCalendar(i,e).catch(o=>{lr.warn("Failed to sync model task update to Google Calendar:",{category:"provider",operation:"sync-model-task-update-google-calendar",details:{taskPath:e.path,sourceOperation:n},error:o})}),i}async toggleArchive(e){var u,p;let t=this.plugin.app.vault.getAbstractFileByPath(e.path);if(!(t instanceof Wn.TFile))throw new Error(`Cannot find task file: ${e.path}`);let n=this.plugin.fieldMapper.getMapping().archiveTag,a=HEe(e,n,Ge()),{updatedTask:i,isCurrentlyArchived:s,dateModified:o}=a;await Fr(this.plugin.app,t,m=>{let f=this.plugin.fieldMapper.toUserField("dateModified");VEe({frontmatter:m,archiveTag:n,isCurrentlyArchived:s,dateModified:o,dateModifiedField:f})});let l=t,c=qEe({isCurrentlyArchived:s,moveArchivedTasks:this.plugin.settings.moveArchivedTasks,archiveFolderTemplate:this.plugin.settings.archiveFolder,tasksFolderTemplate:this.plugin.settings.tasksFolder,fileName:t.name,taskData:{title:i.title||"",priority:i.priority,status:i.status,contexts:i.contexts,projects:i.projects},processFolderTemplate:(m,f)=>this.processFolderTemplate(m,f)});if(c)try{if(await tm(this.plugin.app.vault,c.destinationFolder),this.plugin.app.vault.getAbstractFileByPath(c.newPath))throw new Error(`A file named "${t.name}" already exists in the ${c.destinationKind} folder "${c.destinationFolder}". Cannot move task to avoid overwriting existing file.`);await this.plugin.app.fileManager.renameFile(t,c.newPath);let f=this.plugin.app.vault.getAbstractFileByPath(c.newPath);if(!(f instanceof Wn.TFile))throw new Error(`Failed to resolve moved task file: ${c.newPath}`);l=f,i.path=c.newPath,this.plugin.cacheManager.clearCacheEntry(e.path)}catch(m){let f=m instanceof Error?m.message:String(m),h=c.operation;lr.error(`Error moving ${h} task:`,{category:"persistence",operation:"moving",details:{value:f}}),Te(this.plugin.emitter,this.translate("services.task.notices.moveTaskFailed",{operation:h,error:f}))}let d=!0;if((u=this.plugin.taskCalendarSyncService)!=null&&u.isEnabled()&&i.archived&&this.hasGoogleCalendarLinks(e)){let m=this.createArchiveCalendarDeletionTask(e,i);d=await this.deleteArchivedTaskFromCalendar(m),d&&this.clearGoogleCalendarMetadata(i)}try{l instanceof Wn.TFile&&this.plugin.cacheManager.waitForFreshTaskData&&await this.plugin.cacheManager.waitForFreshTaskData(l),this.plugin.cacheManager.updateTaskInfoInCache(i.path,i)}catch(m){lr.error("Error updating cache for archived task:",{category:"stale-data",operation:"updating-cache-archived-task",error:m})}if(this.plugin.emitter.trigger(ot,{path:i.path,originalTask:e,updatedTask:i}),this.webhookNotifier)try{i.archived?await this.webhookNotifier.triggerWebhook("task.archived",{task:i}):await this.webhookNotifier.triggerWebhook("task.unarchived",{task:i})}catch(m){lr.warn("Failed to trigger webhook for task archive/unarchive:",{category:"provider",operation:"trigger-webhook-task-archive-unarchive",error:m})}return(p=this.plugin.taskCalendarSyncService)!=null&&p.isEnabled()&&(i.archived?!d&&this.hasGoogleCalendarLinks(i)&&lr.warn("Archived task still has Google Calendar links and will need retry cleanup:",{category:"provider",operation:"archived-task-still-has-google-calendar-links-and-will-need-retry-cleanup",details:{value:i.path}}):this.plugin.taskCalendarSyncService.updateTaskInCalendar(i,e).catch(m=>{lr.warn("Failed to sync unarchived task to Google Calendar:",{category:"provider",operation:"sync-unarchived-task-google-calendar",error:m})})),i}async startTimeTracking(e){var o;let t=this.plugin.app.vault.getAbstractFileByPath(e.path);if(!(t instanceof Wn.TFile))throw new Error(`Cannot find task file: ${e.path}`);if(this.plugin.getActiveTimeSession(e))throw new Error("Time tracking is already active for this task");let a=g4(e,Ge(),new Date().toISOString()),{updatedTask:i,newEntry:s}=a;await Fr(this.plugin.app,t,l=>{let c=this.plugin.fieldMapper.toUserField("timeEntries"),d=this.plugin.fieldMapper.toUserField("dateModified");GEe({frontmatter:l,timeEntriesField:c,dateModifiedField:d,newEntry:s,dateModified:a.dateModified})});try{this.plugin.cacheManager.waitForFreshTaskData&&await this.plugin.cacheManager.waitForFreshTaskData(t),this.plugin.cacheManager.updateTaskInfoInCache(e.path,i)}catch(l){lr.error("Error updating cache for time tracking start:",{category:"stale-data",operation:"updating-cache-time-tracking-start",error:l})}if(this.plugin.emitter.trigger(ot,{path:e.path,originalTask:e,updatedTask:i}),this.webhookNotifier)try{await this.webhookNotifier.triggerWebhook("time.started",{task:i,session:(o=i.timeEntries)==null?void 0:o[i.timeEntries.length-1]})}catch(l){lr.warn("Failed to trigger webhook for time tracking start:",{category:"provider",operation:"trigger-webhook-time-tracking-start",error:l})}return i}async stopTimeTracking(e){var s;let t=this.plugin.app.vault.getAbstractFileByPath(e.path);if(!(t instanceof Wn.TFile))throw new Error(`Cannot find task file: ${e.path}`);let n=this.plugin.getActiveTimeSession(e);if(!n)throw new Error("No active time tracking session for this task");let a=y4(e,n,Ge(),new Date().toISOString()),{updatedTask:i}=a;await Fr(this.plugin.app,t,o=>{let l=this.plugin.fieldMapper.toUserField("timeEntries"),c=this.plugin.fieldMapper.toUserField("dateModified");ZEe({frontmatter:o,timeEntriesField:l,dateModifiedField:c,activeSession:n,stopTimestamp:a.stopTimestamp,dateModified:a.dateModified})});try{this.plugin.cacheManager.waitForFreshTaskData&&await this.plugin.cacheManager.waitForFreshTaskData(t),this.plugin.cacheManager.updateTaskInfoInCache(e.path,i)}catch(o){lr.error("Error updating cache for time tracking stop:",{category:"stale-data",operation:"updating-cache-time-tracking-stop",error:o})}if(this.plugin.emitter.trigger(ot,{path:e.path,originalTask:e,updatedTask:i}),this.webhookNotifier)try{await this.webhookNotifier.triggerWebhook("time.stopped",{task:i,session:(s=i.timeEntries)==null?void 0:s[i.timeEntries.length-1]})}catch(o){lr.warn("Failed to trigger webhook for time tracking stop:",{category:"provider",operation:"trigger-webhook-time-tracking-stop",error:o})}return i}async updateTask(e,t){return this.taskUpdateService.updateTask(e,t)}async updateBlockingRelationships(e,t,n,a={}){let{uniqueAdditions:i,uniqueRemovals:s}=JEe(t,n);for(let o of s){let l=await this.plugin.cacheManager.getTaskInfo(o);if(!l)continue;let c=k4(this.computeBlockedByUpdate(l,e.path,"remove"));c&&await this.updateTask(l,c)}for(let o of i){let l=await this.plugin.cacheManager.getTaskInfo(o);if(!l)continue;let c=k4(this.computeBlockedByUpdate(l,e.path,"add",a[o]));c&&await this.updateTask(l,c)}}computeBlockedByUpdate(e,t,n,a){return XEe({blockedTask:e,blockingTaskPath:t,action:n,rawEntry:a,useFrontmatterMarkdownLinks:this.plugin.settings.useFrontmatterMarkdownLinks,resolveDependencyPath:(i,s)=>{var o,l;return(l=(o=Ol(this.plugin.app,i,s))==null?void 0:o.path)!=null?l:null},formatDependencyLink:(i,s,o)=>_o(this.plugin.app,i,s,o)})}async deleteTask(e){try{let t=this.plugin.app.vault.getAbstractFileByPath(e.path);if(!(t instanceof Wn.TFile))throw new Error(`Cannot find task file: ${e.path}`);if(this.plugin.taskCalendarSyncService&&this.hasGoogleCalendarLinks(e))try{await this.plugin.taskCalendarSyncService.deleteTaskFromCalendarByPath(e.path,e.googleCalendarEventId,e.googleCalendarExceptionEventId)}catch(n){lr.warn("Failed to delete task from Google Calendar:",{category:"provider",operation:"delete-task-google-calendar",error:n})}if(await this.plugin.app.fileManager.trashFile(t),this.plugin.cacheManager.clearCacheEntry(e.path),this.plugin.emitter.trigger(is,{path:e.path,deletedTask:e}),this.webhookNotifier)try{await this.webhookNotifier.triggerWebhook("task.deleted",{task:e})}catch(n){lr.warn("Failed to trigger webhook for task deletion:",{category:"provider",operation:"trigger-webhook-task-deletion",error:n})}}catch(t){let n=t instanceof Error?t.message:String(t);throw lr.error("Error deleting task:",{category:"persistence",operation:"deleting-task",details:{stack:t instanceof Error?t.stack:void 0,taskPath:e.path},error:n}),new Error(`Failed to delete task: ${n}`)}}async resolveRecurringTaskActionDate(e,t){if(t)return t;let n=await this.plugin.cacheManager.getTaskInfo(e.path)||e;return this.getRecurringTaskActionDate(n)}getRecurringTaskActionDate(e,t){return sN(e,t)}async toggleRecurringTaskComplete(e,t){var d;let n=this.plugin.app.vault.getAbstractFileByPath(e.path);if(!(n instanceof Wn.TFile))throw new Error(`Cannot find task file: ${e.path}`);let a=await this.plugin.cacheManager.getTaskInfo(e.path)||e;if(!a.recurrence)throw new Error("Task is not recurring");let i=FTe({freshTask:a,targetDate:this.getRecurringTaskActionDate(a,t),currentTimestamp:Ge(),maintainDueDateOffsetInRecurring:this.plugin.settings.maintainDueDateOffsetInRecurring}),{updatedTask:s,dateStr:o,newComplete:l,targetDate:c}=i;if(await Fr(this.plugin.app,n,u=>{let p=this.plugin.fieldMapper.toUserField("completeInstances"),m=this.plugin.fieldMapper.toUserField("skippedInstances"),f=this.plugin.fieldMapper.toUserField("dateModified"),h=this.plugin.fieldMapper.toUserField("scheduled"),g=this.plugin.fieldMapper.toUserField("due"),v=this.plugin.fieldMapper.toUserField("recurrence"),b=this.plugin.fieldMapper.toUserField("googleCalendarExceptionOriginalScheduled"),k=this.plugin.fieldMapper.toUserField("googleCalendarMovedOriginalDates");OTe({frontmatter:u,completeInstancesField:p,skippedInstancesField:m,dateModifiedField:f,scheduledField:h,dueField:g,recurrenceField:v,googleCalendarExceptionOriginalScheduledField:b,googleCalendarMovedOriginalDatesField:k,plan:i})}),l&&this.plugin.settings.resetCheckboxesOnRecurrence){let u=null;await NS(this.plugin.app,n,p=>{let{frontmatter:m,body:f}=rm(p),{content:h,changed:g}=ffe(f);if(!g)return p;let v=m!==null?`---
|
||
${m}
|
||
---
|
||
|
||
`:"",b=h.trimEnd();return u=h.replace(/\r\n/g,`
|
||
`).trimEnd(),b.length>0?`${v}${b}
|
||
`:v}),u!==null&&(s.details=u)}try{if(this.plugin.cacheManager.waitForFreshTaskData){let u={complete_instances:s.complete_instances};s.scheduled!==a.scheduled&&(u.scheduled=s.scheduled),s.due!==a.due&&(u.due=s.due),await this.plugin.cacheManager.waitForFreshTaskData(n)}this.plugin.cacheManager.updateTaskInfoInCache(a.path,s)}catch(u){lr.error("Error updating cache for recurring task:",{category:"stale-data",operation:"updating-cache-recurring-task",error:u})}if(this.plugin.emitter.trigger(ot,{path:a.path,originalTask:a,updatedTask:s}),l&&this.webhookNotifier)try{await this.webhookNotifier.triggerWebhook("recurring.instance.completed",{task:s,date:o,targetDate:c})}catch(u){lr.error("Error triggering recurring task completion webhook:",{category:"provider",operation:"triggering-recurring-task-completion-webhook",error:u})}return(d=this.plugin.taskCalendarSyncService)!=null&&d.isEnabled()&&this.plugin.taskCalendarSyncService.updateTaskInCalendar(s,a).catch(u=>{lr.warn("Failed to sync recurring task update to Google Calendar:",{category:"provider",operation:"sync-recurring-task-update-google-calendar",error:u})}),s}async toggleRecurringTaskSkipped(e,t){var d;let n=this.plugin.app.vault.getAbstractFileByPath(e.path);if(!(n instanceof Wn.TFile))throw new Error(`Cannot find task file: ${e.path}`);let a=await this.plugin.cacheManager.getTaskInfo(e.path)||e;if(!a.recurrence)throw new Error("Task is not recurring");let i=LTe({freshTask:a,targetDate:this.getRecurringTaskActionDate(a,t),currentTimestamp:Ge(),maintainDueDateOffsetInRecurring:this.plugin.settings.maintainDueDateOffsetInRecurring}),{updatedTask:s,dateStr:o,newSkipped:l,targetDate:c}=i;await Fr(this.plugin.app,n,u=>{let p=this.plugin.fieldMapper.toUserField("skippedInstances"),m=this.plugin.fieldMapper.toUserField("completeInstances"),f=this.plugin.fieldMapper.toUserField("dateModified"),h=this.plugin.fieldMapper.toUserField("scheduled"),g=this.plugin.fieldMapper.toUserField("due"),v=this.plugin.fieldMapper.toUserField("googleCalendarExceptionOriginalScheduled"),b=this.plugin.fieldMapper.toUserField("googleCalendarMovedOriginalDates");zTe({frontmatter:u,skippedField:p,completeField:m,dateModifiedField:f,scheduledField:h,dueField:g,googleCalendarExceptionOriginalScheduledField:v,googleCalendarMovedOriginalDatesField:b,plan:i})});try{this.plugin.cacheManager.waitForFreshTaskData&&await this.plugin.cacheManager.waitForFreshTaskData(n),this.plugin.cacheManager.updateTaskInfoInCache(a.path,s)}catch(u){lr.error("Error updating cache for skipped recurring task:",{category:"stale-data",operation:"updating-cache-skipped-recurring-task",error:u})}if(this.plugin.emitter.trigger(ot,{path:a.path,originalTask:a,updatedTask:s}),l&&this.webhookNotifier)try{await this.webhookNotifier.triggerWebhook("recurring.instance.skipped",{task:s,date:o,targetDate:c})}catch(u){lr.error("Error triggering recurring task skip webhook:",{category:"provider",operation:"triggering-recurring-task-skip-webhook",error:u})}return(d=this.plugin.taskCalendarSyncService)!=null&&d.isEnabled()&&this.plugin.taskCalendarSyncService.updateTaskInCalendar(s,a).catch(u=>{lr.warn("Failed to sync recurring task skip to Google Calendar:",{category:"provider",operation:"sync-recurring-task-skip-google-calendar",error:u})}),s}async deleteTimeEntry(e,t){let n=this.plugin.app.vault.getAbstractFileByPath(e.path);if(!(n instanceof Wn.TFile))throw new Error(`Cannot find task file: ${e.path}`);let a=v4(e,t,Ge()),{updatedTask:i}=a;await Fr(this.plugin.app,n,s=>{let o=this.plugin.fieldMapper.toUserField("timeEntries"),l=this.plugin.fieldMapper.toUserField("dateModified");KEe({frontmatter:s,timeEntriesField:o,dateModifiedField:l,timeEntryIndex:a.timeEntryIndex,dateModified:a.dateModified})});try{this.plugin.cacheManager.waitForFreshTaskData&&await this.plugin.cacheManager.waitForFreshTaskData(n),this.plugin.cacheManager.updateTaskInfoInCache(e.path,i)}catch(s){lr.error("Error updating cache for time entry deletion:",{category:"stale-data",operation:"updating-cache-time-entry-deletion",error:s})}return this.plugin.emitter.trigger(ot,{path:e.path,originalTask:e,updatedTask:i}),i}updateCompletedDateInFrontmatter(e,t,n){if(n)return;let a=this.plugin.fieldMapper.toUserField("completedDate");h4(e,t,n,a,i=>this.plugin.statusManager.isCompletedStatus(i),Il())}extractProjectBasename(e){return Fl(e,this.plugin.app)}extractProjectFilePath(e){var a,i,s;let t=Et(e),n=(i=(a=this.plugin.app.metadataCache).getFirstLinkpathDest)==null?void 0:i.call(a,t,"");return((s=n==null?void 0:n.path)!=null?s:t).replace(/\.md$/i,"")}}});var sd,oD=y(()=>{sd=class{constructor(){this.events={}}on(e,t){return this.events[e]||(this.events[e]=[]),this.events[e].push(t),()=>{let n=this.events[e];if(!n)return;let a=n.filter(i=>i!==t);a.length>0?this.events[e]=a:delete this.events[e]}}emit(e,...t){this.events[e]&&this.events[e].forEach(n=>{n(...t)})}removeAllListeners(e){e?delete this.events[e]:this.events={}}}});var tF,rDe=y(()=>{kr();Me();tF=class{constructor(e){this.deps=e;this.indexQueryCache=new Map;this.cacheTimers=new Map;this.cacheTimeout=3e4}getIndexOptimizedTaskPaths(e){let t=this.analyzeQueryOptimizationSafety(e);if(!t.canOptimize)return this.deps.cacheManager.getAllTaskPaths();if(t.strategy==="intersect"){let n=this.getPathsForIndexableCondition(t.conditions[0]);for(let a=1;a<t.conditions.length;a++){let i=this.getPathsForIndexableCondition(t.conditions[a]);n=this.intersectPathSets(n,i)}return n}return t.strategy==="single"?this.getPathsForIndexableCondition(t.conditions[0]):this.deps.cacheManager.getAllTaskPaths()}clearIndexQueryCache(){for(let e of this.cacheTimers.values())this.deps.timer.clearTimeout(e);this.indexQueryCache.clear(),this.cacheTimers.clear()}getCacheStats(){return{entryCount:this.indexQueryCache.size,cacheKeys:Array.from(this.indexQueryCache.keys()),timeoutMs:this.cacheTimeout}}analyzeQueryOptimizationSafety(e){let t=this.findIndexableConditions(e);return t.length===0?{canOptimize:!1,conditions:[],reason:"No indexable conditions found"}:this.isSimpleQuery(e,t)?{canOptimize:!0,strategy:t.length===1?"single":"intersect",conditions:t}:{canOptimize:!1,conditions:t,reason:"Complex query structure with OR conditions - optimization not safe"}}isSimpleQuery(e,t){return t.length===0||this.hasIndexableConditionInOrGroup(e,t)?!1:t.length===1||e.type==="group"&&e.conjunction==="and"&&e.children.filter(a=>a.type==="condition"&&this.isIndexableCondition(a)).length===t.length}hasIndexableConditionInOrGroup(e,t){return this.checkNodeForOrWithIndexable(e,t)}checkNodeForOrWithIndexable(e,t){if(e.type==="condition")return!1;if(e.type==="group"){if(e.conjunction==="or"&&e.children.some(a=>a.type==="condition"&&t.includes(a)))return!0;for(let n of e.children)if(this.checkNodeForOrWithIndexable(n,t))return!0}return!1}findIndexableConditions(e){let t=[];if(e.type==="condition")this.isIndexableCondition(e)&&t.push(e);else if(e.type==="group")for(let n of e.children)t.push(...this.findIndexableConditions(n));return t}isIndexableCondition(e){let{property:t,operator:n,value:a}=e;return!!(t==="status"&&n==="is"&&a||t==="priority"&&n==="is"&&a||t==="due"&&(n==="is"||n==="is-before"||n==="is-after")&&a||t==="scheduled"&&(n==="is"||n==="is-before"||n==="is-after")&&a)}getCachedIndexResult(e,t){let n=this.indexQueryCache.get(e);if(n)return new Set(n);let a=t();this.indexQueryCache.set(e,new Set(a));let i=this.cacheTimers.get(e);i&&this.deps.timer.clearTimeout(i);let s=this.deps.timer.setTimeout(()=>{this.indexQueryCache.delete(e),this.cacheTimers.delete(e)},this.cacheTimeout);return this.cacheTimers.set(e,s),a}getPathsForIndexableCondition(e){let{property:t,operator:n,value:a}=e,i=`${t}:${n}:${J(a)}`;return this.getCachedIndexResult(i,()=>t==="status"&&n==="is"&&a&&typeof a=="string"?new Set(this.deps.cacheManager.getTaskPathsByStatus(a)):t==="priority"&&n==="is"&&a&&typeof a=="string"?new Set(this.deps.cacheManager.getTaskPathsByPriority(a)):(t==="due"||t==="scheduled")&&n==="is"&&a&&typeof a=="string"?new Set(this.deps.cacheManager.getTasksForDate(Pc(a))):(t==="due"||t==="scheduled")&&(n==="is-before"||n==="is-after")&&a&&typeof a=="string"?this.getTaskPathsForDateRange(t,n,Pc(a)):this.deps.cacheManager.getAllTaskPaths())}getTaskPathsForDateRange(e,t,n){return(e==="due"||e==="scheduled")&&(t==="is-before"||t==="is-after")?this.deps.cacheManager.getTaskPathsForDateRange(e,t,n):this.deps.cacheManager.getAllTaskPaths()}intersectPathSets(e,t){let n=new Set;for(let a of e)t.has(a)&&n.add(a);return n}}});function aDe(r){return r.id||r.key}function rF(r,e){return r==null?1:e==null?-1:r.localeCompare(e)}function nF(r){if(typeof r=="boolean")return r;if(r==null)return;let e=J(r).trim().toLowerCase();if(e==="true")return!0;if(e==="false")return!1}function iDe(r){if(typeof r=="number")return String(r);if(typeof r!="string")return;let e=r.match(/^(\d+(?:\.\d+)?)/);return e?e[1]:void 0}function nDe(r){if(Array.isArray(r))return Db(r)[0];if(typeof r=="string")return r.trim().length===0?"":Db(r)[0]}function Db(r){let e=[],t=i=>{if(!i)return;let s=String(i).trim();if(!s)return;let o=s.match(/^\[\[([^|\]]+)(?:\|([^\]]+))?\]\]$/);if(o){let l=o[1]||"",d=o[2]||l.split("#")[0].split("/").pop()||l;d&&e.push(d),e.push(s);return}e.push(s)};if(Array.isArray(r))for(let i of r)t(J(i));else if(typeof r=="string"){let i=qs(r);for(let s of i)t(s)}else r!=null&&t(J(r));let n=new Set,a=[];for(let i of e)n.has(i)||(n.add(i),a.push(i));return a}function xg(r,e){return r==null?void 0:r.find(t=>aDe(t)===e)}function sDe(r,e){return r==null?void 0:r.find(t=>aDe(t)===e||t.key===e)}function oDe(r,e){switch(r.type){case"boolean":return typeof e=="boolean"?e:J(e).toLowerCase()==="true";case"number":return typeof e=="number"?e:e!=null?parseFloat(J(e)):void 0;case"list":return Db(e);case"date":case"text":default:return e!=null?J(e):void 0}}function lDe(r,e,t){switch(r.type){case"number":{let n=typeof e=="number"?e:e!=null?parseFloat(J(e)):NaN,a=typeof t=="number"?t:t!=null?parseFloat(J(t)):NaN,i=!isNaN(n),s=!isNaN(a);return i&&s?n-a:i&&!s?-1:!i&&s?1:0}case"boolean":{let n=nF(e),a=nF(t);return n===a?0:n===!0?-1:a===!0?1:n===!1?-1:a===!1?1:0}case"date":{let n=e?Date.parse(J(e)):NaN,a=t?Date.parse(J(t)):NaN,i=!isNaN(n),s=!isNaN(a);return i&&s?n-a:i&&!s?-1:!i&&s?1:0}case"list":{let n=nDe(e),a=nDe(t);return(n==null||n==="")&&(a==null||a==="")?0:n==null||n===""?1:a==null||a===""?-1:n.localeCompare(a)}case"text":default:{let n=e!=null?J(e):"",a=t!=null?J(t):"";return n.localeCompare(a)}}}function cDe(r,e,t=Dct){var n;if(!r)return t.unknownField;try{switch(r.type){case"boolean":{let a=nF(e);return a==null?t.noValue:a?"true":"false"}case"number":return(n=iDe(e))!=null?n:typeof e=="string"?t.nonNumeric:t.noValue;case"date":return e?J(e):t.noDate;case"list":{if(Array.isArray(e)){let a=Db(e);return a.length>0?a[0]:t.empty}if(typeof e=="string"){if(e.trim().length===0)return t.empty;let a=Db(e);return a.length>0?a[0]:t.empty}return t.noValue}case"text":default:return e?J(e).trim()||t.empty:t.noValue}}catch(a){return t.error}}function dDe(r,e,t){if(!r)return[t];switch(r.type){case"boolean":{let n=nF(e);return n==null?[t]:[n?"true":"false"]}case"number":{let n=iDe(e);return n?[n]:[t]}case"date":return e?[J(e)]:[t];case"list":{let n=Db(e).filter(a=>!/^\[\[/.test(a));return n.length>0?n:[t]}case"text":default:{let n=J(e).trim();return n?[n]:[t]}}}function uDe(r,e){let t=[...r];if(!e)return t.sort();switch(e.type){case"number":return t.sort((n,a)=>{let i=parseFloat(n),s=parseFloat(a),o=!isNaN(i),l=!isNaN(s);return o&&l?s-i:o&&!l?-1:!o&&l?1:rF(n,a)});case"boolean":return t.sort((n,a)=>n==="true"&&a==="false"?-1:n==="false"&&a==="true"?1:rF(n,a));case"date":return t.sort((n,a)=>{let i=Date.parse(n),s=Date.parse(a),o=!isNaN(i),l=!isNaN(s);return o&&l?i-s:o&&!l?-1:!o&&l?1:rF(n,a)});case"text":case"list":default:return t.sort(rF)}}var Dct,lD=y(()=>{am();kr();Dct={unknownField:"unknown-field",noValue:"no-value",noDate:"no-date",empty:"empty",nonNumeric:"non-numeric",error:"error"}});function pDe(r,e){return!!r&&de(r)!==e}function Pb(r,e,t){return!!r&&Nl(r,e,t)}function mDe(r,e){if(r.recurrence)return A_(r,kt(e.dateStr));if(r.due&&de(r.due)===e.dateStr||r.scheduled&&de(r.scheduled)===e.dateStr)return!0;if(e.includeOverdue&&e.isViewingToday){let t=e.isCompletedStatus(r.status);if(pDe(r.due,e.dateStr)&&Pb(r.due,t,e.hideCompletedFromOverdue)||pDe(r.scheduled,e.dateStr)&&Pb(r.scheduled,t,e.hideCompletedFromOverdue))return!0}return!1}function fDe(r,e){let t=e.isCompletedStatus(r.status);return r.recurrence&&!(t&&e.hideCompletedFromOverdue)&&Pct(r,e.todayString)?!0:Pb(r.due,t,e.hideCompletedFromOverdue)||Pb(r.scheduled,t,e.hideCompletedFromOverdue)}function Pct(r,e=nn()){if(!r.recurrence)return!1;let t=kt(e),n=new Date(t);n.setUTCDate(n.getUTCDate()-1);let a=Mct(r,t);if(a>n)return!1;let i=new Set(r.complete_instances||[]),s=new Set(r.skipped_instances||[]);return Bv(r,a,n).some(l=>{let c=ce(l);return c<e&&!i.has(c)&&!s.has(c)})}function Mct(r,e){let t=new Date(e);return t.setUTCFullYear(t.getUTCFullYear()-2),[r.dateCreated,r.scheduled,r.due].map(a=>a?de(a):"").filter(a=>a.length>0).map(a=>kt(a)).reduce((a,i)=>i<a?i:a,t)}var hDe=y(()=>{Ct();Me()});function aF(r,e,t,n){return r.type==="condition"?_ct(r,e,t,n):r.type==="group"?Act(r,e,t,n):!0}function Act(r,e,t,n){if(r.children.length===0)return!0;let a=r.children.filter(i=>i.type==="condition"?br.isFilterNodeComplete(i):!0);return a.length===0?!0:r.conjunction==="and"?a.every(i=>aF(i,e,t,n)):r.conjunction==="or"?a.some(i=>aF(i,e,t,n)):!0}function _ct(r,e,t,n){let{property:a,operator:i,value:s}=r;if(typeof a=="string"&&a.startsWith("user:"))return Ict(r,e,t);let o=br.getTaskPropertyValue(e,a);if(a==="hasSubtasks"&&t.projectSubtasksService&&(o=t.projectSubtasksService.isTaskUsedAsProjectSync(e.path)),a==="status.isCompleted"){let l=$v(e,n||new Date,t.getCompletedStatuses()[0]);o=t.isCompletedStatus(l)}return a==="projects"&&(i==="contains"||i==="does-not-contain")?Nct(o,i,s,t.app):br.applyOperator(o,i,s,r.id,a)}function Ict(r,e,t){let{property:n,operator:a,value:i}=r,s=n.slice(5),o=xg(t.userFields,s),l=o?oDe(o,t.getUserFieldRawValue(e,o.key)):void 0;if((o==null?void 0:o.type)==="list"&&(a==="contains"||a==="does-not-contain")){let d=Array.isArray(l)?l:l!=null?[String(l)]:[],p=(Array.isArray(i)?i:[String(i!=null?i:"")]).some(m=>typeof m=="string"&&d.some(f=>typeof f=="string"&&f.toLowerCase().includes(m.toLowerCase())));return a==="contains"?p:!p}let c=(o==null?void 0:o.type)==="date"?"due":n;return br.applyOperator(l,a,i,r.id,c)}function Nct(r,e,t,n){if(!Array.isArray(r)||typeof t!="string")return!1;let a=gDe(t,n);if(!a)return!1;let i=r.some(s=>{if(!s||typeof s!="string")return!1;let o=gDe(s,n);return o?o===a?!0:Rct(s,t,n):!1});return e==="contains"?i:!i}function gDe(r,e){if(!r||typeof r!="string")return null;let t=Fl(r,e);return t||null}function Rct(r,e,t){if(!t)return!1;let n=yDe(r),a=yDe(e);if(!n||!a)return!1;let i=t.metadataCache.getFirstLinkpathDest(n,""),s=t.metadataCache.getFirstLinkpathDest(a,"");return i&&s?i.path===s.path:!1}function yDe(r){return!r||typeof r!="string"?null:r.startsWith("[[")&&r.endsWith("]]")?r.slice(2,-2):r}var vDe=y(()=>{Du();Ct();qn();lD()});function w4(r,e,t,n){var i;if(e==="none")return new Map([["all",r]]);let a=new Map;for(let s of r){let o=zct(s,e,t,n);for(let l of o)a.has(l)||a.set(l,[]),(i=a.get(l))==null||i.push(s)}return Fct(a,e,t)}function Fct(r,e,t){let n=new Map,a=jct(r,e,t);for(let i of a){let s=r.get(i);s&&n.set(i,s)}return n}function Oct(r,e,t){var s;let n=t||new Date;n.setHours(0,0,0,0);let a=e.isCompletedStatus(r.status),i=(s=e.hideCompletedFromOverdue)!=null?s:!0;if(r.recurrence){if(A_(r,n)){let o=M(n,"yyyy-MM-dd");return b4(o,e,a,i)}return r.due?b4(r.due,e,a,i):Hm("none",e)}return r.due?b4(r.due,e,a,i):Hm("none",e)}function Lct(r,e){var t;return r.scheduled?Bct(r.scheduled,e,e.isCompletedStatus(r.status),(t=e.hideCompletedFromOverdue)!=null?t:!0):Cg("none",e)}function zct(r,e,t,n){if(e==="project"){let a=Rl(r.projects||[]);return a.length===0?[bDe(t)]:a.map(i=>t.resolveProjectToAbsolutePath(i))}if(e==="tags"){let a=r.tags||[];return a.length>0?a:[TDe(t)]}if(typeof e=="string"&&e.startsWith("user:"))return[$ct(r,e,t)];switch(e){case"status":return[r.status||"no-status"];case"priority":return[r.priority||"unknown"];case"context":return[r.contexts&&r.contexts.length>0?r.contexts[0]:"none"];case"due":return[Oct(r,t,n)];case"scheduled":return[Lct(r,t)];case"completedDate":return[Uct(r,t)];default:return["unknown"]}}function jct(r,e,t){if(typeof e=="string"&&e.startsWith("user:")){let n=Hct(Array.from(r.keys()),e,t);return t.currentSortKey===e&&t.currentSortDirection==="desc"&&n.reverse(),n}switch(e){case"priority":return Array.from(r.keys()).sort((n,a)=>t.getPriorityWeight(a)-t.getPriorityWeight(n));case"status":return Array.from(r.keys()).sort((n,a)=>t.getStatusOrder(n)-t.getStatusOrder(a));case"due":{let n=["overdue","today","tomorrow","nextSevenDays","later","none"],a=new Map(n.map((i,s)=>[Hm(i,t),s]));return Array.from(r.keys()).sort((i,s)=>{var c,d;let o=(c=a.get(i))!=null?c:n.length,l=(d=a.get(s))!=null?d:n.length;return o-l})}case"scheduled":{let n=["past","today","tomorrow","nextSevenDays","later","none"],a=new Map(n.map((i,s)=>[Cg(i,t),s]));return Array.from(r.keys()).sort((i,s)=>{var c,d;let o=(c=a.get(i))!=null?c:n.length,l=(d=a.get(s))!=null?d:n.length;return o-l})}case"project":return Array.from(r.keys()).sort((n,a)=>kDe(n,a,bDe(t),t.getLocale()));case"tags":return Array.from(r.keys()).sort((n,a)=>kDe(n,a,TDe(t),t.getLocale()));case"completedDate":return Array.from(r.keys()).sort((n,a)=>{if(n==="Not completed")return 1;if(a==="Not completed")return-1;if(n==="Invalid date")return 1;if(a==="Invalid date")return-1;if(n==null||a==null){if(n==null)return 1;if(a==null)return-1}return a.localeCompare(n)});default:return Array.from(r.keys()).sort((n,a)=>n==null?1:a==null?-1:n.localeCompare(a,t.getLocale()))}}function $ct(r,e,t){let n=e.slice(5),a=xg(t.userFields||[],n),i=a?t.getUserFieldRawValue(r,a.key):void 0;return cDe(a,i)}function b4(r,e,t,n){let a=nn();if(Nl(r,t,n))return Hm("overdue",e);let i=de(r);if(Po(i,a))return Hm("today",e);try{let s=new Date;s.setDate(s.getDate()+1);let o=M(s,"yyyy-MM-dd");if(Po(i,o))return Hm("tomorrow",e);let l=new Date;l.setDate(l.getDate()+7);let c=M(l,"yyyy-MM-dd");return Dh(i,c)||Po(i,c)?Hm("nextSevenDays",e):Hm("later",e)}catch(s){return T4.error(`Error categorizing date ${r}:`,{category:"validation",operation:"categorizing-date",error:s}),cD(e)}}function Bct(r,e,t,n){let a=nn();if(Nl(r,t,n))return Cg("past",e);let i=de(r);if(Po(i,a))return Cg("today",e);try{let s=new Date;s.setDate(s.getDate()+1);let o=M(s,"yyyy-MM-dd");if(Po(i,o))return Cg("tomorrow",e);let l=new Date;l.setDate(l.getDate()+7);let c=M(l,"yyyy-MM-dd");return Dh(i,c)||Po(i,c)?Cg("nextSevenDays",e):Cg("later",e)}catch(s){return T4.error(`Error categorizing scheduled date ${r}:`,{category:"validation",operation:"categorizing-scheduled-date",error:s}),cD(e)}}function Uct(r,e){if(!r.completedDate)return"Not completed";try{return M(Us(r.completedDate),"yyyy-MM-dd")}catch(t){return T4.error(`Error formatting completed date ${r.completedDate}:`,{category:"validation",operation:"formatting-completed-date",error:t}),cD(e)}}function Hct(r,e,t){let n=e.slice(5),a=xg(t.userFields||[],n);return uDe(r,a)}function kDe(r,e,t,n){return r===t?1:e===t?-1:r==null?1:e==null?-1:r.localeCompare(e,n)}function Hm(r,e){switch(r){case"overdue":return e.translate("services.filter.groupLabels.due.overdue","Overdue");case"today":return e.translate("services.filter.groupLabels.due.today","Today");case"tomorrow":return e.translate("services.filter.groupLabels.due.tomorrow","Tomorrow");case"nextSevenDays":return e.translate("services.filter.groupLabels.due.nextSevenDays","Next seven days");case"later":return e.translate("services.filter.groupLabels.due.later","Later");case"none":return e.translate("services.filter.groupLabels.due.none","No due date");case"invalid":default:return cD(e)}}function Cg(r,e){switch(r){case"past":return e.translate("services.filter.groupLabels.scheduled.past","Past scheduled");case"today":return e.translate("services.filter.groupLabels.scheduled.today","Today");case"tomorrow":return e.translate("services.filter.groupLabels.scheduled.tomorrow","Tomorrow");case"nextSevenDays":return e.translate("services.filter.groupLabels.scheduled.nextSevenDays","Next seven days");case"later":return e.translate("services.filter.groupLabels.scheduled.later","Later");case"none":return e.translate("services.filter.groupLabels.scheduled.none","No scheduled date");case"invalid":default:return cD(e)}}function bDe(r){return r.translate("services.filter.groupLabels.noProject","No project")}function TDe(r){return r.translate("services.filter.groupLabels.noTags","No tags")}function cD(r){return r.translate("services.filter.groupLabels.invalidDate","Invalid date")}var T4,wDe=y(()=>{Wr();Me();Ct();lD();K();T4=N({tag:"Services/FilterService/FilterTaskGrouping"})});function SDe(r,e,t,n){return r.sort((a,i)=>{let s=qct(a,i,e,n);return s!==0?t==="desc"?-s:s:Zct(a,i,e,n)})}function Mb(r,e){if(!r&&!e)return 0;if(!r)return 1;if(!e)return-1;try{return Tu(r,e)?-1:Tu(e,r)?1:0}catch(t){return Vct.error("Error comparing dates time-aware:",{category:"validation",operation:"comparing-dates-time-aware",details:{dateA:r,dateB:e},error:t}),r.localeCompare(e)}}function qct(r,e,t,n){if(typeof t=="string"&&t.startsWith("user:"))return Qct(r,e,t,n);switch(t){case"due":return Mb(r.due,e.due);case"scheduled":return Mb(r.scheduled,e.scheduled);case"priority":return Yct(r.priority,e.priority,n);case"status":return Gct(r.status,e.status,n);case"title":return r.title.localeCompare(e.title);case"dateCreated":return Mb(r.dateCreated,e.dateCreated);case"completedDate":return Mb(r.completedDate,e.completedDate);case"tags":return Kct(r.tags,e.tags);default:return 0}}function Wct(r,e,t){let n=t.getPriorityWeight(r);return t.getPriorityWeight(e)-n}function Yct(r,e,t){let n=t.getPriorityWeight(r),a=t.getPriorityWeight(e);return n-a}function Gct(r,e,t){return t.getStatusOrder(r)-t.getStatusOrder(e)}function Kct(r,e){let t=r&&r.length>0?r:[],n=e&&e.length>0?e:[];return t.length===0&&n.length===0?0:t.length===0?1:n.length===0?-1:t[0].toLowerCase().localeCompare(n[0].toLowerCase())}function Zct(r,e,t,n){let i=["due","scheduled","priority","title"].filter(s=>s!==t);for(let s of i){let o=0;switch(s){case"scheduled":o=Mb(r.scheduled,e.scheduled);break;case"due":o=Mb(r.due,e.due);break;case"priority":o=Wct(r.priority,e.priority,n);break;case"title":o=r.title.localeCompare(e.title);break}if(o!==0)return o}return 0}function Qct(r,e,t,n){let a=t.slice(5),i=xg(n.userFields||[],a);return i?lDe(i,n.getUserFieldRawValue(r,i.key),n.getUserFieldRawValue(e,i.key)):0}var Vct,xDe=y(()=>{Me();lD();K();Vct=N({tag:"Services/FilterService/FilterTaskSorting"})});function CDe(r){return{statuses:r.statuses,priorities:r.priorities,contexts:r.contexts,projects:r.projects,tags:r.tags,folders:Jct(r.taskPaths,r.rootFolderLabel),userProperties:Xct(r.userFields||[])}}function Jct(r,e){let t=new Set;for(let n of r){let a=n.lastIndexOf("/");a>0?t.add(n.substring(0,a)):a===-1&&t.add("")}return Array.from(t).sort().map(n=>n===""?e:n)}function Xct(r){let e=[];for(let t of r)!t||!t.key||!t.displayName||e.push({id:`user:${t.id||t.key}`,label:t.displayName,category:edt(t.type),supportedOperators:rdt(t.type),valueInputType:tdt(t.type)});return e}function edt(r){switch(r){case"boolean":return"boolean";case"number":return"numeric";case"date":return"date";case"list":case"text":default:return"text"}}function tdt(r){switch(r){case"number":return"number";case"date":return"date";case"boolean":return"none";case"list":case"text":default:return"text"}}function rdt(r){switch(r){case"number":return["is","is-not","is-greater-than","is-less-than","is-greater-than-or-equal","is-less-than-or-equal","is-empty","is-not-empty"];case"date":return["is","is-not","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty"];case"boolean":return["is-checked","is-not-checked"];case"list":return["contains","does-not-contain","is-empty","is-not-empty"];case"text":default:return["is","is-not","contains","does-not-contain","is-empty","is-not-empty"]}}var EDe=y(()=>{});function S4(r){return{type:"group",id:r(),conjunction:"and",children:[],sortKey:"due",sortDirection:"asc",groupKey:"none"}}function PDe(r,e,t,n){let a=adt(r);if(ndt(a,e),!t){let i=DDe[e];a.children.push({type:"condition",id:n(),...i})}return a}function MDe(r,e){let t=S4(e);return{...t,...r,type:"group",id:r.id||t.id,conjunction:r.conjunction||t.conjunction,children:r.children||t.children,sortKey:r.sortKey||t.sortKey,sortDirection:r.sortDirection||t.sortDirection,groupKey:r.groupKey||t.groupKey}}function ndt(r,e){let t=DDe[e].property;r.children=r.children.filter(n=>n.type==="condition"?n.property!==t:!0)}function adt(r){return JSON.parse(JSON.stringify(r))}var DDe,ADe=y(()=>{DDe={showCompleted:{property:"status.isCompleted",operator:"is-not-checked",value:null},showArchived:{property:"archived",operator:"is-not-checked",value:null},showRecurrent:{property:"recurrence",operator:"is-empty",value:null}}});var _De={};at(_De,{HierarchicalGroupingService:()=>C4});function x4(r){return r==null?"":typeof r=="string"?r.trim():typeof r=="number"||typeof r=="boolean"?String(r):""}var C4,IDe=y(()=>{C4=class{constructor(e){this.resolveUserFieldValues=e}group(e,t,n,a="asc",i=[]){let s=new Map,o=(c,d)=>{var p,m,f,h,g,v,b,k;if(!d||d==="none")return["all"];let u=w=>{let S=w.map(x4).filter(C=>C!=="");return S.length?S:[]};if(d.startsWith("user:")){let w=d.slice(5);if(this.resolveUserFieldValues){let E=this.resolveUserFieldValues(c,w)||[],D=u(E);return D.length?D:[`No ${w}`]}let S=(p=c.customProperties)==null?void 0:p[w];if(Array.isArray(S)){let E=u(S);return E.length?E:[`No ${w}`]}let C=x4(S);return C!==""?[C]:[`No ${w}`]}switch(d){case"status":return[((m=c.status)!=null?m:"").trim()||"No Status"];case"priority":return[((f=c.priority)!=null?f:"").trim()||"No Priority"];case"context":{let w=u((h=c.contexts)!=null?h:[]);return w.length?w:["No Context"]}case"project":{let w=u((g=c.projects)!=null?g:[]).map(E=>{let D=E.match(/^\[\[([^|\]]+)(?:\|([^\]]+))?\]\]$/);if(D){let P=D[1]||"";return D[2]||P.split("#")[0].split("/").pop()||P||E}return E}),S=[],C=new Set;for(let E of w)C.has(E)||(C.add(E),S.push(E));return S.length?S:["No Project"]}case"tags":{let w=u((v=c.tags)!=null?v:[]);return w.length?w:["No Tag"]}case"due":{let w=((b=c.due)!=null?b:"").trim();return w?[w.split("T")[0]]:["No Due Date"]}case"scheduled":{let w=((k=c.scheduled)!=null?k:"").trim();return w?[w.split("T")[0]]:["No Scheduled Date"]}default:{let S=c[d];if(Array.isArray(S)){let E=u(S);return E.length?E:[`No ${d}`]}let C=x4(S);return C!==""?[C]:[`No ${d}`]}}};for(let c of e){let d=o(c,t),u=o(c,n);for(let p of d){s.has(p)||s.set(p,new Map);let m=s.get(p);for(let f of u)m.has(f)||m.set(f,[]),m.get(f).push(c)}}let l=new Map;for(let[c,d]of s){let u=this.sortSubgroups(d,n,a,i);l.set(c,u)}return l}sortSubgroups(e,t,n,a){let i=Array.from(e.keys()),s=this.sortSubgroupKeys(i,t,n,a),o=new Map;for(let l of s)o.set(l,e.get(l));return o}sortSubgroupKeys(e,t,n,a){let i=o=>/^No\s/i.test(o);if(typeof t=="string"&&t.startsWith("user:")){let o=t.slice(5),l=a.find(u=>(u.id||u.key)===o),c=(u,p)=>{if(i(u)&&!i(p))return-1;if(!i(u)&&i(p))return 1;if((l==null?void 0:l.type)==="number"){let m=parseFloat(u),f=parseFloat(p),h=isNaN(m)?Number.POSITIVE_INFINITY:m,g=isNaN(f)?Number.POSITIVE_INFINITY:f;if(h!==g)return h-g}else if((l==null?void 0:l.type)==="boolean"){let m=u==="true"?0:u==="false"?1:2,f=p==="true"?0:p==="false"?1:2;if(m!==f)return m-f}else if((l==null?void 0:l.type)==="date"){let m=Date.parse(u),f=Date.parse(p),h=isNaN(m)?Number.POSITIVE_INFINITY:m,g=isNaN(f)?Number.POSITIVE_INFINITY:f;if(h!==g)return h-g}return u.localeCompare(p)},d=e.slice().sort(c);return n==="desc"?d.reverse():d}let s=e.slice().sort((o,l)=>i(o)&&!i(l)?-1:!i(o)&&i(l)?1:o.localeCompare(l));return n==="desc"?s.reverse():s}}});var NDe,iF,Ab,sF,RDe=y(()=>{NDe=require("obsidian");qn();oD();Du();Wr();Me();rDe();lD();hDe();vDe();wDe();xDe();EDe();ADe();K();iF=N({tag:"Services/FilterService"}),Ab=class Ab extends sd{constructor(t,n,a,i){super();this.runtime=i;this.filterOptionsCache=null;this.filterOptionsCacheTimestamp=0;this.filterOptionsCacheTTL=3e5;this.filterOptionsComputeCount=0;this.filterOptionsCacheHits=0;this.cacheManager=t,this.statusManager=n,this.priorityManager=a,this.queryPlanner=new tF({cacheManager:t,timer:{setTimeout:(s,o)=>window.setTimeout(s,o),clearTimeout:s=>window.clearTimeout(s)}}),Ab.lastInstance=this}translate(t,n,a){var i;try{if((i=this.runtime)!=null&&i.i18n)return this.runtime.i18n.translate(t,a)}catch(s){iF.error("FilterService translation error:",{category:"internal",operation:"filterservice-translation",error:s})}return n}static translateStatic(t,n){let a=Ab.lastInstance;return a?a.translate(t,n):n}getLocale(){var t,n,a;try{let i=(a=(n=(t=this.runtime)==null?void 0:t.i18n)==null?void 0:n.getCurrentLocale)==null?void 0:a.call(n);if(i)return i}catch(i){iF.error("FilterService locale error:",{category:"internal",operation:"filterservice-locale",error:i})}return"en"}getNoProjectLabel(){return this.translate("services.filter.groupLabels.noProject","No project")}async getGroupedTasks(t,n){try{br.validateFilterNode(t,!1);let a=this.queryPlanner.getIndexOptimizedTaskPaths(t),s=(await this.pathsToTaskInfos(Array.from(a))).filter(l=>this.evaluateFilterNode(t,l,n)),o=this.sortTasks(s,t.sortKey||"due",t.sortDirection||"asc");return this.currentSortKey=t.sortKey||"due",this.currentSortDirection=t.sortDirection||"asc",w4(o,t.groupKey||"none",this.createTaskGroupingContext(),n)}catch(a){if(a instanceof ja||a instanceof Eu)return iF.error("Filter error:",{category:"internal",operation:"filter",details:{values:[a.message,{nodeId:a.nodeId,field:a.field}]}}),new Map;throw a}}async getHierarchicalGroupedTasks(t,n){var a,i;try{br.validateFilterNode(t,!1);let s=this.queryPlanner.getIndexOptimizedTaskPaths(t),l=(await this.pathsToTaskInfos(Array.from(s))).filter(p=>this.evaluateFilterNode(t,p,n)),c=this.sortTasks(l,t.sortKey||"due",t.sortDirection||"asc");this.currentSortKey=t.sortKey||"due",this.currentSortDirection=t.sortDirection||"asc";let d=w4(c,t.groupKey||"none",this.createTaskGroupingContext(),n),u=t.subgroupKey;if(u&&u!=="none"&&t.groupKey&&t.groupKey!=="none"){let{HierarchicalGroupingService:p}=await Promise.resolve().then(()=>(IDe(),_De)),m=(b,k)=>{var D,P;let w=((P=(D=this.runtime)==null?void 0:D.settings)==null?void 0:P.userFields)||[],S=sDe(w,k),C=`No ${(S==null?void 0:S.displayName)||(S==null?void 0:S.key)||k}`,E=S?this.getUserFieldRawValue(b,S.key):void 0;return dDe(S,E,C)},h=new p(m).group(c,t.groupKey,u,this.currentSortDirection,((i=(a=this.runtime)==null?void 0:a.settings)==null?void 0:i.userFields)||[]),g=Array.from(d.keys()),v=new Map;for(let b of g){let k=h.get(b);k&&v.set(b,k)}for(let[b,k]of h)v.has(b)||v.set(b,k);return{groups:d,hierarchicalGroups:v}}return{groups:d}}catch(s){if(s instanceof ja||s instanceof Eu)return iF.error("Filter error (hierarchical):",{category:"internal",operation:"filter-hierarchical",details:{values:[s.message,{nodeId:s.nodeId}]}}),{groups:new Map};throw s}}getCacheStats(){return this.queryPlanner.getCacheStats()}async pathsToTaskInfos(t){let n=[];for(let i=0;i<t.length;i+=50){let s=t.slice(i,i+50),o=await Promise.all(s.map(l=>this.cacheManager.getCachedTaskInfo(l)));for(let l of o)l&&n.push(l)}return n}evaluateFilterNode(t,n,a){return aF(t,n,this.createPredicateEvaluationContext(),a)}createPredicateEvaluationContext(){var t,n,a,i;return{app:(t=this.runtime)==null?void 0:t.app,userFields:((a=(n=this.runtime)==null?void 0:n.settings)==null?void 0:a.userFields)||[],projectSubtasksService:(i=this.runtime)==null?void 0:i.projectSubtasksService,getUserFieldRawValue:(s,o)=>this.getUserFieldRawValue(s,o),getCompletedStatuses:()=>this.statusManager.getCompletedStatuses(),isCompletedStatus:s=>this.statusManager.isCompletedStatus(s)}}resolveProjectToAbsolutePath(t){var i;if(!t||typeof t!="string")return t||"";if(!((i=this.runtime)!=null&&i.app))return t;let n=this.parseLinkToPath(t),a=this.runtime.app.metadataCache.getFirstLinkpathDest(n,"");return a?a.path.replace(/\.md$/,""):n.replace(/\.md$/,"")}parseLinkToPath(t){return Et(t)}getPreferredProjectFormat(t){let n=this.getNoProjectLabel();return!t||t===n?t:t.includes("/")||t.endsWith(".md")?`[[${t}]]`:`[[${t}]]`}getOverdueTaskPaths(){return this.cacheManager.getOverdueTaskPaths()}sortTasks(t,n,a){return SDe(t,n,a,this.createTaskSortingContext())}createTaskGroupingContext(){var t,n,a,i;return{userFields:((n=(t=this.runtime)==null?void 0:t.settings)==null?void 0:n.userFields)||[],hideCompletedFromOverdue:(i=(a=this.runtime)==null?void 0:a.settings)==null?void 0:i.hideCompletedFromOverdue,currentSortKey:this.currentSortKey,currentSortDirection:this.currentSortDirection,isCompletedStatus:s=>this.statusManager.isCompletedStatus(s),getPriorityWeight:s=>this.priorityManager.getPriorityWeight(s),getStatusOrder:s=>this.statusManager.getStatusOrder(s),getUserFieldRawValue:(s,o)=>this.getUserFieldRawValue(s,o),resolveProjectToAbsolutePath:s=>this.resolveProjectToAbsolutePath(s),translate:(s,o,l)=>this.translate(s,o,l),getLocale:()=>this.getLocale()}}createTaskSortingContext(){var t,n;return{userFields:((n=(t=this.runtime)==null?void 0:t.settings)==null?void 0:n.userFields)||[],getPriorityWeight:a=>this.priorityManager.getPriorityWeight(a),getStatusOrder:a=>this.statusManager.getStatusOrder(a),getUserFieldRawValue:(a,i)=>this.getUserFieldRawValue(a,i)}}getUserFieldRawValue(t,n){var a;try{let i=this.cacheManager.getApp(),s=i.vault.getAbstractFileByPath(t.path),o=s instanceof NDe.TFile?(a=i.metadataCache.getFileCache(s))==null?void 0:a.frontmatter:void 0;return o?o[n]:void 0}catch(i){return}}async getFilterOptions(){var a,i;let t=Date.now();if(this.filterOptionsCache&&t-this.filterOptionsCacheTimestamp<this.filterOptionsCacheTTL)return this.filterOptionsCacheHits++,this.filterOptionsCache;let n=CDe({statuses:this.statusManager.getAllStatuses(),priorities:this.priorityManager.getAllPriorities(),contexts:this.cacheManager.getAllContexts(),projects:this.cacheManager.getAllProjects(),tags:this.cacheManager.getAllTags(),taskPaths:this.cacheManager.getAllTaskPaths(),rootFolderLabel:this.translate("services.filter.folders.root","(Root)"),userFields:((i=(a=this.runtime)==null?void 0:a.settings)==null?void 0:i.userFields)||[]});return this.filterOptionsComputeCount++,this.filterOptionsCache=n,this.filterOptionsCacheTimestamp=t,n}handleFilterIndexChanged(){this.queryPlanner.clearIndexQueryCache(),this.invalidateFilterOptionsCache()}invalidateFilterOptionsCache(){this.filterOptionsCache&&(this.filterOptionsCache=null)}refreshFilterOptions(){this.invalidateFilterOptionsCache()}getFilterOptionsCacheStats(){let t=Date.now(),n=this.filterOptionsCache?t-this.filterOptionsCacheTimestamp:0,a=this.filterOptionsCache?Math.max(0,this.filterOptionsCacheTTL-n):0,i=this.filterOptionsCacheHits+this.filterOptionsComputeCount,s=i>0?(this.filterOptionsCacheHits/i*100).toFixed(1)+"%":"0%";return{cacheHits:this.filterOptionsCacheHits,computeCount:this.filterOptionsComputeCount,hitRate:s,isCurrentlyCached:!!this.filterOptionsCache,cacheAge:n,ttlRemaining:a}}createDefaultQuery(){return S4(()=>br.generateId())}addQuickToggleCondition(t,n,a){return PDe(t,n,a,()=>br.generateId())}normalizeQuery(t){return MDe(t,()=>br.generateId())}initialize(){this.cacheManager.on("file-updated",t=>{(t==null?void 0:t.filterIndexChanged)!==!1&&this.handleFilterIndexChanged(),this.emit("data-changed")}),this.cacheManager.on("file-added",()=>{this.handleFilterIndexChanged(),this.emit("data-changed")}),this.cacheManager.on("file-deleted",()=>{this.handleFilterIndexChanged(),this.emit("data-changed")}),this.cacheManager.on("file-renamed",()=>{this.handleFilterIndexChanged(),this.emit("data-changed")}),this.cacheManager.on("indexes-built",()=>{this.handleFilterIndexChanged(),this.emit("data-changed")})}cleanup(){this.queryPlanner.clearIndexQueryCache(),this.invalidateFilterOptionsCache(),this.removeAllListeners()}static createDateRangeFromDates(t){if(t.length===0)throw new Error(Ab.translateStatic("services.filter.errors.noDatesProvided","No dates provided"));let n=t[0],a=t[t.length-1];return{start:M(n,"yyyy-MM-dd"),end:M(a,"yyyy-MM-dd")}}static shouldIncludeOverdueForRange(t,n){if(!n)return!1;let i=M(new Date,"yyyy-MM-dd");return t.some(s=>M(s,"yyyy-MM-dd")===i)}async getTasksForDate(t,n,a=!1){var p,m,f;let i=ce(t),s=_S(i),o=this.cacheManager.getAllTaskPaths(),c=(await this.pathsToTaskInfos(Array.from(o))).filter(h=>this.evaluateFilterNode(n,h)),d=(f=(m=(p=this.runtime)==null?void 0:p.settings)==null?void 0:m.hideCompletedFromOverdue)!=null?f:!0,u=c.filter(h=>mDe(h,{dateStr:i,isViewingToday:s,includeOverdue:a,hideCompletedFromOverdue:d,isCompletedStatus:g=>this.statusManager.isCompletedStatus(g)}));return this.sortTasks(u,n.sortKey||"due",n.sortDirection||"asc")}async getOverdueTasks(t){var l,c,d;let n=this.cacheManager.getAllTaskPaths(),i=(await this.pathsToTaskInfos(Array.from(n))).filter(u=>this.evaluateFilterNode(t,u)),s=(d=(c=(l=this.runtime)==null?void 0:l.settings)==null?void 0:c.hideCompletedFromOverdue)!=null?d:!0,o=i.filter(u=>fDe(u,{hideCompletedFromOverdue:s,isCompletedStatus:p=>this.statusManager.isCompletedStatus(p)}));return this.sortTasks(o,t.sortKey||"due",t.sortDirection||"asc")}async getAgendaDataWithOverdue(t,n,a=!1){let i=[];for(let o of t){let l=await this.getTasksForDate(o,n,!1);i.push({date:new Date(o),tasks:l})}let s=a?await this.getOverdueTasks(n):[];return{dailyData:i,overdueTasks:s}}async getAgendaData(t,n,a=!1){let i=[];for(let s of t){let o=await this.getTasksForDate(s,n,a&&j2(s));i.push({date:new Date(s),tasks:o})}return i}async getFlatAgendaData(t,n,a=!1){let i=await this.getAgendaData(t,n,a),s=[];for(let o of i)for(let l of o.tasks)s.push({...l,agendaDate:o.date});return s}};Ab.lastInstance=null;sF=Ab});var _b,E4=y(()=>{_b=class{constructor(e,t){this.cache=e;this.statusManager=t}getStats(e){let t={},n={},a=0,i=0,s=0,o=0,l=0,c=0,d=new Date().toISOString().split("T")[0];for(let u of e){t[u.status]=(t[u.status]||0)+1,n[u.priority]=(n[u.priority]||0)+1;let p=this.statusManager.isCompletedStatus(u.status);u.archived&&o++,p&&a++,!p&&!u.archived&&i++,u.due&&u.due<d&&!p&&!u.archived&&s++,u.timeEntries&&u.timeEntries.length>0&&(l++,c+=u.totalTrackedTime||0)}return{total:e.length,statusCounts:t,priorityCounts:n,completed:a,active:i,overdue:s,archived:o,withTimeEntries:l,totalTrackedMinutes:c,totalTrackedHours:Math.round(c/60*100)/100}}async getAggregatedTimeEstimate(e){let t=this.cache.getAllTimeEstimates();if(t.size===0)return 0;let{start:n,end:a}=this.getDateRange(e),i=0;for(let[s,o]of t.entries()){let l=await this.cache.getTaskInfo(s);l&&this.isTaskInRange(l,n,a)&&(i+=o)}return i}isTaskInRange(e,t,n){let a=e.due||e.scheduled;if(!a)return!1;let i=new Date(a);return i>=t&&i<=n}getDateRange(e){if(typeof e!="string")return e;let t=new Date,n=new Date(t),a=new Date(t);switch(e){case"daily":n.setHours(0,0,0,0),a.setHours(23,59,59,999);break;case"weekly":{let i=t.getDay(),s=t.getDate()-i+(i===0?-6:1);n.setDate(s),n.setHours(0,0,0,0),a.setDate(n.getDate()+6),a.setHours(23,59,59,999);break}case"monthly":n.setDate(1),n.setHours(0,0,0,0),a.setMonth(n.getMonth()+1),a.setDate(0),a.setHours(23,59,59,999);break;case"yearly":n.setMonth(0,1),n.setHours(0,0,0,0),a.setFullYear(n.getFullYear()+1),a.setDate(0),a.setHours(23,59,59,999);break}return{start:n,end:a}}}});var Vm,oF,FDe=y(()=>{oD();Du();K();Vm=N({tag:"Services/ViewStateManager"}),oF=class extends sd{constructor(t,n){super();this.filterState={};this.viewPreferences={};this.savedViews=[];this.storageKey="tasknotes-view-filter-state";this.preferencesStorageKey="tasknotes-view-preferences";this.savedViewsStorageKey="tasknotes-saved-views";this.app=t,this.plugin=n,this.loadFromStorage(),this.loadPreferencesFromStorage(),this.savedViews=[...this.plugin.settings.savedViews]}async initializeSavedViews(){await this.migrateAndLoadSavedViews()}getFilterState(t){let n=this.filterState[t];if(n){if(typeof n!="object"||n.type!=="group"||!Array.isArray(n.children)||typeof n.conjunction!="string"){Vm.warn(`ViewStateManager: Ignoring old format filter state for ${t}, will use default`,{category:"validation",operation:"viewstatemanager-ignoring-old-format-filter-state"}),delete this.filterState[t],this.saveToStorage();return}return br.deepCloneFilterQuery(n)}}setFilterState(t,n){this.filterState[t]=br.deepCloneFilterQuery(n),this.saveToStorage(),this.emit("filter-state-changed",{viewType:t,query:br.deepCloneFilterQuery(n)})}clearFilterState(t){delete this.filterState[t],this.saveToStorage(),this.emit("filter-state-cleared",{viewType:t})}clearAllFilterStates(){this.filterState={},this.saveToStorage(),this.emit("all-filter-states-cleared")}getViewPreferences(t){return this.viewPreferences[t]}setViewPreferences(t,n){this.viewPreferences[t]={...n},this.savePreferencesToStorage(),this.emit("view-preferences-changed",{viewType:t,preferences:n})}clearViewPreferences(t){delete this.viewPreferences[t],this.savePreferencesToStorage(),this.emit("view-preferences-cleared",{viewType:t})}clearAllViewPreferences(){this.viewPreferences={},this.savePreferencesToStorage(),this.emit("all-view-preferences-cleared")}loadFromStorage(){try{let t=this.app.loadLocalStorage(this.storageKey);t&&typeof t=="string"&&(this.filterState=JSON.parse(t))}catch(t){Vm.warn("Failed to load view filter state from storage:",{category:"persistence",operation:"load-view-filter-state-storage",error:t}),this.filterState={}}}saveToStorage(){try{this.app.saveLocalStorage(this.storageKey,JSON.stringify(this.filterState))}catch(t){Vm.warn("Failed to save view filter state to storage:",{category:"persistence",operation:"save-view-filter-state-storage",error:t})}}loadPreferencesFromStorage(){try{let t=this.app.loadLocalStorage(this.preferencesStorageKey);t&&typeof t=="string"&&(this.viewPreferences=JSON.parse(t))}catch(t){Vm.warn("Failed to load view preferences from storage:",{category:"configuration",operation:"load-view-preferences-storage",error:t}),this.viewPreferences={}}}savePreferencesToStorage(){try{this.app.saveLocalStorage(this.preferencesStorageKey,JSON.stringify(this.viewPreferences))}catch(t){Vm.warn("Failed to save view preferences to storage:",{category:"configuration",operation:"save-view-preferences-storage",error:t})}}getAllFilterStates(){return{...this.filterState}}getSavedViews(){return this.savedViews.map(t=>({...t,query:br.deepCloneFilterQuery(t.query),viewOptions:t.viewOptions?{...t.viewOptions}:void 0}))}saveView(t,n,a,i){let s={id:this.generateId(),name:t,query:br.deepCloneFilterQuery(n),viewOptions:a?{...a}:void 0,visibleProperties:i?[...i]:void 0};return this.savedViews.push(s),this.saveSavedViewsToPluginData(),this.emit("saved-views-changed",this.getSavedViews()),s}updateView(t,n){let a=this.savedViews.findIndex(s=>s.id===t);if(a===-1)throw new Error(`Saved view with ID ${t} not found`);let i={...n};i.query&&(i.query=br.deepCloneFilterQuery(i.query)),i.viewOptions&&(i.viewOptions={...i.viewOptions}),this.savedViews[a]={...this.savedViews[a],...i},this.saveSavedViewsToPluginData(),this.emit("saved-views-changed",this.getSavedViews())}deleteView(t){let n=this.savedViews.findIndex(a=>a.id===t);if(n===-1)throw new Error(`Saved view with ID ${t} not found`);this.savedViews.splice(n,1),this.saveSavedViewsToPluginData(),this.emit("saved-views-changed",this.getSavedViews())}getSavedView(t){let n=this.savedViews.find(a=>a.id===t);if(n)return{...n,query:br.deepCloneFilterQuery(n.query),viewOptions:n.viewOptions?{...n.viewOptions}:void 0,visibleProperties:n.visibleProperties?[...n.visibleProperties]:void 0}}clearAllSavedViews(){this.savedViews=[],this.saveSavedViewsToPluginData(),this.emit("saved-views-changed",this.getSavedViews())}updateSavedViewProperties(t,n){let a=this.savedViews.find(i=>i.id===t);a&&(a.visibleProperties=n,this.saveSavedViewsToPluginData(),this.emit("saved-views-changed",this.getSavedViews()))}getSavedViewProperties(t){let n=this.savedViews.find(a=>a.id===t);return n==null?void 0:n.visibleProperties}reorderSavedViews(t,n){if(t<0||t>=this.savedViews.length||n<0||n>this.savedViews.length||t===n)return;n=Math.min(n,this.savedViews.length-1);let[a]=this.savedViews.splice(t,1);this.savedViews.splice(n,0,a),this.saveSavedViewsToPluginData(),this.emit("saved-views-changed",this.getSavedViews())}generateId(){return Date.now().toString(36)+Math.random().toString(36).slice(2,11)}async migrateAndLoadSavedViews(){try{this.savedViews=[...this.plugin.settings.savedViews];let t=this.app.loadLocalStorage(this.savedViewsStorageKey);if(t&&typeof t=="string"&&this.savedViews.length===0){let n=JSON.parse(t);this.savedViews=[...n],await this.saveSavedViewsToPluginData(),this.app.saveLocalStorage(this.savedViewsStorageKey,null)}}catch(t){Vm.warn("Failed to load/migrate saved views:",{category:"persistence",operation:"load-migrate-saved-views",error:t}),this.savedViews=[]}}async saveSavedViewsToPluginData(){try{this.plugin.settings.savedViews=[...this.savedViews],await this.plugin.saveSettings()}catch(t){Vm.warn("Failed to save saved views to plugin data:",{category:"persistence",operation:"save-saved-views-plugin-data",error:t})}}needsMigration(){let n=!!this.app.loadLocalStorage(this.savedViewsStorageKey),a=this.plugin.settings.savedViews&&this.plugin.settings.savedViews.length>0;return n&&!a}async performMigration(){try{this.clearAllFilterStates(),await this.migrateAndLoadSavedViews(),this.emit("migration-complete")}catch(t){Vm.error("Error during ViewStateManager migration:",{category:"configuration",operation:"viewstatemanager-migration",error:t}),this.savedViews=[],await this.saveSavedViewsToPluginData()}}cleanup(){this.removeAllListeners()}}});var ODe,D4,lF,LDe=y(()=>{ODe=require("obsidian");qn();K();D4=N({tag:"Services/ProjectSubtasksService"}),lF=class{constructor(e){this.cacheEventRefs=[];this.projectIndex=new Map;this.indexLastBuilt=0;this.INDEX_TTL=3e4;this.stats={indexBuilds:0,indexHits:0,indexMisses:0};this.plugin=e,this.registerCacheInvalidation()}registerCacheInvalidation(){var t;if(!((t=this.plugin.cacheManager)!=null&&t.on))return;let e=()=>this.invalidateIndex();this.cacheEventRefs=[this.plugin.cacheManager.on("file-updated",e),this.plugin.cacheManager.on("file-renamed",e),this.plugin.cacheManager.on("file-deleted",e)]}getFilesLinkingToProject(e){let t=this.plugin.app.metadataCache.resolvedLinks,n=[];for(let[a,i]of Object.entries(t))i&&i[e]>0&&n.push(a);return n}getUnresolvedProjectReferences(e){let n=this.plugin.app.metadataCache.unresolvedLinks[e];return n?Object.keys(n).filter(a=>!a.includes("#")&&!a.includes("|")):[]}async getTasksLinkedToProject(e){try{let t=this.getFilesLinkingToProject(e.path),n=[];for(let a of t){let i=await this.plugin.cacheManager.getTaskInfo(a);i&&await this.isLinkFromProjectsField(a,e.path)&&n.push(i)}return n}catch(t){return D4.error("Error getting tasks linked to project:",{category:"persistence",operation:"getting-tasks-linked-project",error:t}),[]}}async isTaskUsedAsProject(e){return this.isTaskUsedAsProjectSync(e)}async isLinkFromProjectsField(e,t){var n;try{let a=this.plugin.app.vault.getAbstractFileByPath(e);if(!(a instanceof ODe.TFile))return!1;let i=this.plugin.app.metadataCache.getFileCache(a),s=this.plugin.fieldMapper.toUserField("projects");if(!((n=i==null?void 0:i.frontmatter)!=null&&n[s]))return!1;let o=i.frontmatter[s];if(!Array.isArray(o))return!1;for(let l of o){if(!l||typeof l!="string")continue;let c=Et(l);if(c===l&&!l.startsWith("[["))continue;let d=this.plugin.app.metadataCache.getFirstLinkpathDest(c,e);if(d&&d.path===t)return!0}return!1}catch(a){return D4.error("Error checking if link is from projects field:",{category:"persistence",operation:"checking-if-link-projects-field",error:a}),!1}}isTaskUsedAsProjectSync(e){return this.ensureIndexBuilt(),this.projectIndex.has(e)?(this.stats.indexHits++,this.projectIndex.get(e)):(this.stats.indexMisses++,!1)}buildProjectIndex(){this.projectIndex.clear(),this.stats.indexBuilds++;try{let e=this.plugin.app.metadataCache.resolvedLinks,t=new Set;for(let[n,a]of Object.entries(e)){if(!a)continue;let i=this.plugin.app.metadataCache.getCache(n);if(!(i!=null&&i.frontmatter)||!this.plugin.cacheManager.isTaskFile(i.frontmatter))continue;let s=this.plugin.fieldMapper.toUserField("projects"),o=i.frontmatter[s];if(Array.isArray(o))for(let l of o){if(!l||typeof l!="string")continue;let c=Et(l);if(c===l&&!l.startsWith("[["))continue;let d=this.plugin.app.metadataCache.getFirstLinkpathDest(c,n);d&&t.add(d.path)}}for(let n of t)this.projectIndex.set(n,!0);this.indexLastBuilt=Date.now()}catch(e){D4.error("Error building project index:",{category:"persistence",operation:"building-project-index",error:e})}}ensureIndexBuilt(){Date.now()-this.indexLastBuilt>this.INDEX_TTL&&this.buildProjectIndex()}invalidateIndex(){this.projectIndex.clear(),this.indexLastBuilt=0}destroy(){for(let e of this.cacheEventRefs)this.plugin.cacheManager.offref(e);this.cacheEventRefs=[],this.invalidateIndex(),this.stats={indexBuilds:0,indexHits:0,indexMisses:0}}sortTasks(e){return e.sort((t,n)=>{let a=this.plugin.statusManager.isCompletedStatus(t.status),i=this.plugin.statusManager.isCompletedStatus(n.status);if(a!==i)return a?1:-1;let s=this.plugin.priorityManager.getPriorityWeight(t.priority),o=this.plugin.priorityManager.getPriorityWeight(n.priority);return s!==o?o-s:t.due&&n.due?new Date(t.due).getTime()-new Date(n.due).getTime():t.due?-1:n.due?1:t.title.localeCompare(n.title)})}}});var cF,zDe=y(()=>{cF=class{constructor(e){this.expandedProjects=new Set;this.collapsedDefaultExpandedProjects=new Set;this.plugin=e}isExpanded(e,t=!1){return t?!this.collapsedDefaultExpandedProjects.has(e):this.expandedProjects.has(e)}toggle(e,t=!1){return t?this.collapsedDefaultExpandedProjects.has(e)?(this.collapsedDefaultExpandedProjects.delete(e),!0):(this.collapsedDefaultExpandedProjects.add(e),this.expandedProjects.delete(e),!1):(this.collapsedDefaultExpandedProjects.delete(e),this.expandedProjects.has(e)?(this.expandedProjects.delete(e),!1):(this.expandedProjects.add(e),!0))}setExpanded(e,t,n=!1){if(n){t?this.collapsedDefaultExpandedProjects.delete(e):(this.collapsedDefaultExpandedProjects.add(e),this.expandedProjects.delete(e));return}this.collapsedDefaultExpandedProjects.delete(e),t?this.expandedProjects.add(e):this.expandedProjects.delete(e)}renamePath(e,t){e!==t&&(this.expandedProjects.delete(e)&&this.expandedProjects.add(t),this.collapsedDefaultExpandedProjects.delete(e)&&this.collapsedDefaultExpandedProjects.add(t))}getExpandedProjects(){return Array.from(this.expandedProjects)}clearAll(){this.expandedProjects.clear(),this.collapsedDefaultExpandedProjects.clear()}collapseAll(){this.clearAll()}}});var Ib,dF,jDe=y(()=>{K();Ib=N({tag:"Services/AutoArchiveService"}),dF=class{constructor(e){this.processorTimer=null;this.isRunning=!1;this.PROCESSOR_INTERVAL_MS=6e4;this.plugin=e}hasGoogleCalendarLink(e){return!!e.googleCalendarEventId}normalizeStatusValue(e){return typeof e=="boolean"?e?"true":"false":String(e)}getCalendarCleanupState(){let e=this.plugin.settings.googleCalendarExport;return!(e!=null&&e.enabled)||!(e!=null&&e.syncOnTaskDelete)?"skip":this.plugin.taskCalendarSyncService&&this.plugin.taskCalendarSyncService.isEnabled()?"ready":"retry"}async start(){this.stop(),this.isRunning=!0,await this.processQueue(),this.scheduleNextProcess()}stop(){this.isRunning=!1,this.processorTimer!==null&&(window.clearTimeout(this.processorTimer),this.processorTimer=null)}scheduleNextProcess(){this.isRunning&&(this.processorTimer=window.setTimeout(()=>{this.processorTimer=null,this.processQueue().catch(e=>{Ib.error("Error processing auto-archive queue:",{category:"persistence",operation:"processing-auto-archive-queue",error:e})}).finally(()=>{this.isRunning&&this.scheduleNextProcess()})},this.PROCESSOR_INTERVAL_MS))}async scheduleAutoArchive(e,t){if(!t.autoArchive)return;if(e.recurrence){await this.cancelAutoArchive(e.path);return}let n=Date.now(),a=n+t.autoArchiveDelay*60*1e3,i={taskPath:e.path,statusChangeTimestamp:n,archiveAfterTimestamp:a,statusValue:t.value};await this.cancelAutoArchive(e.path);let s=await this.getQueue();s.push(i),await this.saveQueue(s)}async cancelAutoArchive(e){let t=await this.getQueue(),n=t.filter(a=>a.taskPath!==e);n.length!==t.length&&await this.saveQueue(n)}async processQueue(){let e=await this.getQueue();if(e.length===0)return;let t=Date.now(),n=[],a=[];for(let o of e)t>=o.archiveAfterTimestamp?n.push(o):a.push(o);if(n.length===0)return;let i=[];for(let o of n)try{await this.processItem(o)||i.push(o)}catch(l){Ib.error(`Error processing auto-archive for ${o.taskPath}:`,{category:"persistence",operation:"processing-auto-archive",error:l}),i.push(o)}let s=[...i,...a];await this.saveQueue(s)}async processItem(e){let t=await this.plugin.cacheManager.getTaskByPath(e.taskPath);if(!t||this.normalizeStatusValue(t.status)!==this.normalizeStatusValue(e.statusValue))return!0;if(t.archived){if(this.hasGoogleCalendarLink(t)){let n=this.getCalendarCleanupState();if(n==="skip")return!0;if(n==="retry")return Ib.warn(`Auto-archive Google cleanup deferred until calendar sync is ready for ${e.taskPath}`,{category:"provider",operation:"auto-archive-google-cleanup-deferred-until-calendar-sync-ready"}),!1;let a=await this.plugin.taskCalendarSyncService.deleteTaskFromCalendar(t);return a||Ib.warn(`Auto-archive Google cleanup still pending for ${e.taskPath}`,{category:"provider",operation:"auto-archive-google-cleanup-still-pending"}),a}return!0}try{let n=await this.plugin.taskService.toggleArchive(t);if(n.archived&&this.hasGoogleCalendarLink(n)){e.taskPath=n.path;let a=this.getCalendarCleanupState();return a==="skip"?!0:(a==="retry"&&Ib.warn(`Auto-archive Google cleanup deferred until calendar sync is ready for ${e.taskPath}`,{category:"provider",operation:"auto-archive-google-cleanup-deferred-until-calendar-sync-ready"}),!1)}return!0}catch(n){return Ib.error(`Failed to archive task ${e.taskPath}:`,{category:"persistence",operation:"archive-task",error:n}),!1}}async getQueue(){let e=await this.plugin.loadData();return(e==null?void 0:e.autoArchiveQueue)||[]}async saveQueue(e){let t=await this.plugin.loadPluginDataForSafeWrite("save-auto-archive-queue");t&&(t.autoArchiveQueue=e,await this.plugin.saveData(t))}async clearQueue(){await this.saveQueue([])}async getQueueStatus(){let e=await this.getQueue();return{count:e.length,items:e}}}});function qm(r,e){for(var t in e)r[t]=e[t];return r}function GDe(r){var e=r.parentNode;e&&e.removeChild(r)}function _(r,e,t){var n,a,i,s={};for(i in e)i=="key"?n=e[i]:i=="ref"?a=e[i]:s[i]=e[i];if(arguments.length>2&&(s.children=arguments.length>3?hF.call(arguments,2):t),typeof r=="function"&&r.defaultProps!=null)for(i in r.defaultProps)s[i]===void 0&&(s[i]=r.defaultProps[i]);return uF(r,s,n,a,null)}function uF(r,e,t,n,a){var i={type:r,props:e,key:t,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:a==null?++VDe:a};return a==null&&Ue.vnode!=null&&Ue.vnode(i),i}function En(){return{current:null}}function Gt(r){return r.children}function sdt(r,e,t,n,a){var i;for(i in t)i==="children"||i==="key"||i in e||mF(r,i,null,t[i],n);for(i in e)a&&typeof e[i]!="function"||i==="children"||i==="key"||i==="value"||i==="checked"||t[i]===e[i]||mF(r,i,e[i],t[i],n)}function BDe(r,e,t){e[0]==="-"?r.setProperty(e,t==null?"":t):r[e]=t==null?"":typeof t!="number"||idt.test(e)?t:t+"px"}function mF(r,e,t,n,a){var i;e:if(e==="style")if(typeof t=="string")r.style.cssText=t;else{if(typeof n=="string"&&(r.style.cssText=n=""),n)for(e in n)t&&e in t||BDe(r.style,e,"");if(t)for(e in t)n&&t[e]===n[e]||BDe(r.style,e,t[e])}else if(e[0]==="o"&&e[1]==="n")i=e!==(e=e.replace(/Capture$/,"")),e=e.toLowerCase()in r?e.toLowerCase().slice(2):e.slice(2),r.l||(r.l={}),r.l[e+i]=t,t?n||r.addEventListener(e,i?HDe:UDe,i):r.removeEventListener(e,i?HDe:UDe,i);else if(e!=="dangerouslySetInnerHTML"){if(a)e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!=="width"&&e!=="height"&&e!=="href"&&e!=="list"&&e!=="form"&&e!=="tabIndex"&&e!=="download"&&e in r)try{r[e]=t==null?"":t;break e}catch(s){}typeof t=="function"||(t==null||t===!1&&e.indexOf("-")==-1?r.removeAttribute(e):r.setAttribute(e,t))}}function UDe(r){Nb=!0;try{return this.l[r.type+!1](Ue.event?Ue.event(r):r)}finally{Nb=!1}}function HDe(r){Nb=!0;try{return this.l[r.type+!0](Ue.event?Ue.event(r):r)}finally{Nb=!1}}function Ha(r,e){this.props=r,this.context=e}function dD(r,e){if(e==null)return r.__?dD(r.__,r.__.__k.indexOf(r)+1):null;for(var t;e<r.__k.length;e++)if((t=r.__k[e])!=null&&t.__e!=null)return t.__e;return typeof r.type=="function"?dD(r):null}function KDe(r){var e,t;if((r=r.__)!=null&&r.__c!=null){for(r.__e=r.__c.base=null,e=0;e<r.__k.length;e++)if((t=r.__k[e])!=null&&t.__e!=null){r.__e=r.__c.base=t.__e;break}return KDe(r)}}function odt(r){Nb?setTimeout(r):qDe(r)}function P4(r){(!r.__d&&(r.__d=!0)&&Eg.push(r)&&!fF.__r++||$De!==Ue.debounceRendering)&&(($De=Ue.debounceRendering)||odt)(fF)}function fF(){var r,e,t,n,a,i,s,o;for(Eg.sort(function(l,c){return l.__v.__b-c.__v.__b});r=Eg.shift();)r.__d&&(e=Eg.length,n=void 0,a=void 0,s=(i=(t=r).__v).__e,(o=t.__P)&&(n=[],(a=qm({},i)).__v=i.__v+1,A4(o,i,a,t.__n,o.ownerSVGElement!==void 0,i.__h!=null?[s]:null,n,s==null?dD(i):s,i.__h),ePe(n,i),i.__e!=s&&KDe(i)),Eg.length>e&&Eg.sort(function(l,c){return l.__v.__b-c.__v.__b}));fF.__r=0}function ZDe(r,e,t,n,a,i,s,o,l,c){var d,u,p,m,f,h,g,v=n&&n.__k||YDe,b=v.length;for(t.__k=[],d=0;d<e.length;d++)if((m=t.__k[d]=(m=e[d])==null||typeof m=="boolean"?null:typeof m=="string"||typeof m=="number"||typeof m=="bigint"?uF(null,m,null,null,m):Array.isArray(m)?uF(Gt,{children:m},null,null,null):m.__b>0?uF(m.type,m.props,m.key,m.ref?m.ref:null,m.__v):m)!=null){if(m.__=t,m.__b=t.__b+1,(p=v[d])===null||p&&m.key==p.key&&m.type===p.type)v[d]=void 0;else for(u=0;u<b;u++){if((p=v[u])&&m.key==p.key&&m.type===p.type){v[u]=void 0;break}p=null}A4(r,m,p=p||pF,a,i,s,o,l,c),f=m.__e,(u=m.ref)&&p.ref!=u&&(g||(g=[]),p.ref&&g.push(p.ref,null,m),g.push(u,m.__c||f,m)),f!=null?(h==null&&(h=f),typeof m.type=="function"&&m.__k===p.__k?m.__d=l=QDe(m,l,r):l=JDe(r,m,p,v,f,l),typeof t.type=="function"&&(t.__d=l)):l&&p.__e==l&&l.parentNode!=r&&(l=dD(p))}for(t.__e=h,d=b;d--;)v[d]!=null&&(typeof t.type=="function"&&v[d].__e!=null&&v[d].__e==t.__d&&(t.__d=XDe(n).nextSibling),rPe(v[d],v[d]));if(g)for(d=0;d<g.length;d++)tPe(g[d],g[++d],g[++d])}function QDe(r,e,t){for(var n,a=r.__k,i=0;a&&i<a.length;i++)(n=a[i])&&(n.__=r,e=typeof n.type=="function"?QDe(n,e,t):JDe(t,n,n,a,n.__e,e));return e}function uD(r,e){return e=e||[],r==null||typeof r=="boolean"||(Array.isArray(r)?r.some(function(t){uD(t,e)}):e.push(r)),e}function JDe(r,e,t,n,a,i){var s,o,l;if(e.__d!==void 0)s=e.__d,e.__d=void 0;else if(t==null||a!=i||a.parentNode==null)e:if(i==null||i.parentNode!==r)r.appendChild(a),s=null;else{for(o=i,l=0;(o=o.nextSibling)&&l<n.length;l+=1)if(o==a)break e;r.insertBefore(a,i),s=i}return s!==void 0?s:a.nextSibling}function XDe(r){var e,t,n;if(r.type==null||typeof r.type=="string")return r.__e;if(r.__k){for(e=r.__k.length-1;e>=0;e--)if((t=r.__k[e])&&(n=XDe(t)))return n}return null}function A4(r,e,t,n,a,i,s,o,l){var c,d,u,p,m,f,h,g,v,b,k,w,S,C,E,D=e.type;if(e.constructor!==void 0)return null;t.__h!=null&&(l=t.__h,o=e.__e=t.__e,e.__h=null,i=[o]),(c=Ue.__b)&&c(e);try{e:if(typeof D=="function"){if(g=e.props,v=(c=D.contextType)&&n[c.__c],b=c?v?v.props.value:c.__:n,t.__c?h=(d=e.__c=t.__c).__=d.__E:("prototype"in D&&D.prototype.render?e.__c=d=new D(g,b):(e.__c=d=new Ha(g,b),d.constructor=D,d.render=cdt),v&&v.sub(d),d.props=g,d.state||(d.state={}),d.context=b,d.__n=n,u=d.__d=!0,d.__h=[],d._sb=[]),d.__s==null&&(d.__s=d.state),D.getDerivedStateFromProps!=null&&(d.__s==d.state&&(d.__s=qm({},d.__s)),qm(d.__s,D.getDerivedStateFromProps(g,d.__s))),p=d.props,m=d.state,d.__v=e,u)D.getDerivedStateFromProps==null&&d.componentWillMount!=null&&d.componentWillMount(),d.componentDidMount!=null&&d.__h.push(d.componentDidMount);else{if(D.getDerivedStateFromProps==null&&g!==p&&d.componentWillReceiveProps!=null&&d.componentWillReceiveProps(g,b),!d.__e&&d.shouldComponentUpdate!=null&&d.shouldComponentUpdate(g,d.__s,b)===!1||e.__v===t.__v){for(e.__v!==t.__v&&(d.props=g,d.state=d.__s,d.__d=!1),e.__e=t.__e,e.__k=t.__k,e.__k.forEach(function(P){P&&(P.__=e)}),k=0;k<d._sb.length;k++)d.__h.push(d._sb[k]);d._sb=[],d.__h.length&&s.push(d);break e}d.componentWillUpdate!=null&&d.componentWillUpdate(g,d.__s,b),d.componentDidUpdate!=null&&d.__h.push(function(){d.componentDidUpdate(p,m,f)})}if(d.context=b,d.props=g,d.__P=r,w=Ue.__r,S=0,"prototype"in D&&D.prototype.render){for(d.state=d.__s,d.__d=!1,w&&w(e),c=d.render(d.props,d.state,d.context),C=0;C<d._sb.length;C++)d.__h.push(d._sb[C]);d._sb=[]}else do d.__d=!1,w&&w(e),c=d.render(d.props,d.state,d.context),d.state=d.__s;while(d.__d&&++S<25);d.state=d.__s,d.getChildContext!=null&&(n=qm(qm({},n),d.getChildContext())),u||d.getSnapshotBeforeUpdate==null||(f=d.getSnapshotBeforeUpdate(p,m)),E=c!=null&&c.type===Gt&&c.key==null?c.props.children:c,ZDe(r,Array.isArray(E)?E:[E],e,t,n,a,i,s,o,l),d.base=e.__e,e.__h=null,d.__h.length&&s.push(d),h&&(d.__E=d.__=null),d.__e=!1}else i==null&&e.__v===t.__v?(e.__k=t.__k,e.__e=t.__e):e.__e=ldt(t.__e,e,t,n,a,i,s,l);(c=Ue.diffed)&&c(e)}catch(P){e.__v=null,(l||i!=null)&&(e.__e=o,e.__h=!!l,i[i.indexOf(o)]=null),Ue.__e(P,e,t)}}function ePe(r,e){Ue.__c&&Ue.__c(e,r),r.some(function(t){try{r=t.__h,t.__h=[],r.some(function(n){n.call(t)})}catch(n){Ue.__e(n,t.__v)}})}function ldt(r,e,t,n,a,i,s,o){var l,c,d,u=t.props,p=e.props,m=e.type,f=0;if(m==="svg"&&(a=!0),i!=null){for(;f<i.length;f++)if((l=i[f])&&"setAttribute"in l==!!m&&(m?l.localName===m:l.nodeType===3)){r=l,i[f]=null;break}}if(r==null){if(m===null)return document.createTextNode(p);r=a?document.createElementNS("http://www.w3.org/2000/svg",m):document.createElement(m,p.is&&p),i=null,o=!1}if(m===null)u===p||o&&r.data===p||(r.data=p);else{if(i=i&&hF.call(r.childNodes),c=(u=t.props||pF).dangerouslySetInnerHTML,d=p.dangerouslySetInnerHTML,!o){if(i!=null)for(u={},f=0;f<r.attributes.length;f++)u[r.attributes[f].name]=r.attributes[f].value;(d||c)&&(d&&(c&&d.__html==c.__html||d.__html===r.innerHTML)||(r.innerHTML=d&&d.__html||""))}if(sdt(r,p,u,a,o),d)e.__k=[];else if(f=e.props.children,ZDe(r,Array.isArray(f)?f:[f],e,t,n,a&&m!=="foreignObject",i,s,i?i[0]:t.__k&&dD(t,0),o),i!=null)for(f=i.length;f--;)i[f]!=null&&GDe(i[f]);o||("value"in p&&(f=p.value)!==void 0&&(f!==r.value||m==="progress"&&!f||m==="option"&&f!==u.value)&&mF(r,"value",f,u.value,!1),"checked"in p&&(f=p.checked)!==void 0&&f!==r.checked&&mF(r,"checked",f,u.checked,!1))}return r}function tPe(r,e,t){try{typeof r=="function"?r(e):r.current=e}catch(n){Ue.__e(n,t)}}function rPe(r,e,t){var n,a;if(Ue.unmount&&Ue.unmount(r),(n=r.ref)&&(n.current&&n.current!==r.__e||tPe(n,null,e)),(n=r.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(i){Ue.__e(i,e)}n.base=n.__P=null,r.__c=void 0}if(n=r.__k)for(a=0;a<n.length;a++)n[a]&&rPe(n[a],e,t||typeof r.type!="function");t||r.__e==null||GDe(r.__e),r.__=r.__e=r.__d=void 0}function cdt(r,e,t){return this.constructor(r,t)}function Wm(r,e,t){var n,a,i;Ue.__&&Ue.__(r,e),a=(n=typeof t=="function")?null:t&&t.__k||e.__k,i=[],A4(e,r=(!n&&t||e).__k=_(Gt,null,[r]),a||pF,pF,e.ownerSVGElement!==void 0,!n&&t?[t]:a?null:e.firstChild?hF.call(e.childNodes):null,i,!n&&t?t:a?a.__e:e.firstChild,n),ePe(i,r)}function gF(r,e){var t={__c:e="__cC"+WDe++,__:r,Consumer:function(n,a){return n.children(a)},Provider:function(n){var a,i;return this.getChildContext||(a=[],(i={})[e]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(s){this.props.value!==s.value&&a.some(function(o){o.__e=!0,P4(o)})},this.sub=function(s){a.push(s);var o=s.componentWillUnmount;s.componentWillUnmount=function(){a.splice(a.indexOf(s),1),o&&o.call(s)}}),n.children}};return t.Provider.__=t.Consumer.contextType=t}var hF,Ue,VDe,M4,Nb,Eg,$De,qDe,WDe,pF,YDe,idt,Ku=y(()=>{pF={},YDe=[],idt=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;hF=YDe.slice,Ue={__e:function(r,e,t,n){for(var a,i,s;e=e.__;)if((a=e.__c)&&!a.__)try{if((i=a.constructor)&&i.getDerivedStateFromError!=null&&(a.setState(i.getDerivedStateFromError(r)),s=a.__d),a.componentDidCatch!=null&&(a.componentDidCatch(r,n||{}),s=a.__d),s)return a.__E=a}catch(o){r=o}throw r}},VDe=0,M4=function(r){return r!=null&&r.constructor===void 0},Nb=!1,Ha.prototype.setState=function(r,e){var t;t=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=qm({},this.state),typeof r=="function"&&(r=r(qm({},t),this.props)),r&&qm(t,r),r!=null&&this.__v&&(e&&this._sb.push(e),P4(this))},Ha.prototype.forceUpdate=function(r){this.__v&&(this.__e=!0,r&&this.__h.push(r),P4(this))},Ha.prototype.render=Gt,Eg=[],qDe=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,fF.__r=0,WDe=0});function pdt(){for(var r;r=dPe.shift();)if(r.__P&&r.__H)try{r.__H.__h.forEach(yF),r.__H.__h.forEach(N4),r.__H.__h=[]}catch(e){r.__H.__h=[],Ue.__e(e,r.__v)}}function mdt(r){var e,t=function(){clearTimeout(n),cPe&&cancelAnimationFrame(e),setTimeout(r)},n=setTimeout(t,100);cPe&&(e=requestAnimationFrame(t))}function yF(r){var e=od,t=r.__c;typeof t=="function"&&(r.__c=void 0,t()),od=e}function N4(r){var e=od;r.__c=r.__(),od=e}var udt,od,_4,nPe,dPe,I4,aPe,iPe,sPe,oPe,lPe,cPe,R4=y(()=>{Ku();dPe=[],I4=[],aPe=Ue.__b,iPe=Ue.__r,sPe=Ue.diffed,oPe=Ue.__c,lPe=Ue.unmount;Ue.__b=function(r){od=null,aPe&&aPe(r)},Ue.__r=function(r){iPe&&iPe(r),udt=0;var e=(od=r.__c).__H;e&&(_4===od?(e.__h=[],od.__h=[],e.__.forEach(function(t){t.__N&&(t.__=t.__N),t.__V=I4,t.__N=t.i=void 0})):(e.__h.forEach(yF),e.__h.forEach(N4),e.__h=[])),_4=od},Ue.diffed=function(r){sPe&&sPe(r);var e=r.__c;e&&e.__H&&(e.__H.__h.length&&(dPe.push(e)!==1&&nPe===Ue.requestAnimationFrame||((nPe=Ue.requestAnimationFrame)||mdt)(pdt)),e.__H.__.forEach(function(t){t.i&&(t.__H=t.i),t.__V!==I4&&(t.__=t.__V),t.i=void 0,t.__V=I4})),_4=od=null},Ue.__c=function(r,e){e.some(function(t){try{t.__h.forEach(yF),t.__h=t.__h.filter(function(n){return!n.__||N4(n)})}catch(n){e.some(function(a){a.__h&&(a.__h=[])}),e=[],Ue.__e(n,t.__v)}}),oPe&&oPe(r,e)},Ue.unmount=function(r){lPe&&lPe(r);var e,t=r.__c;t&&t.__H&&(t.__H.__.forEach(function(n){try{yF(n)}catch(a){e=a}}),t.__H=void 0,e&&Ue.__e(e,t.__v))};cPe=typeof requestAnimationFrame=="function"});function fdt(r,e){for(var t in e)r[t]=e[t];return r}function uPe(r,e){for(var t in r)if(t!=="__source"&&!(t in e))return!0;for(var n in e)if(n!=="__source"&&r[n]!==e[n])return!0;return!1}function pPe(r){this.props=r}function bPe(r,e,t){return r&&(r.__c&&r.__c.__H&&(r.__c.__H.__.forEach(function(n){typeof n.__c=="function"&&n.__c()}),r.__c.__H=null),(r=fdt({},r)).__c!=null&&(r.__c.__P===t&&(r.__c.__P=e),r.__c=null),r.__k=r.__k&&r.__k.map(function(n){return bPe(n,e,t)})),r}function TPe(r,e,t){return r&&(r.__v=null,r.__k=r.__k&&r.__k.map(function(n){return TPe(n,e,t)}),r.__c&&r.__c.__P===e&&(r.__e&&t.insertBefore(r.__e,r.__d),r.__c.__e=!0,r.__c.__P=t)),r}function F4(){this.__u=0,this.t=null,this.__b=null}function wPe(r){var e=r.__.__c;return e&&e.__a&&e.__a(r)}function vF(){this.u=null,this.o=null}function gdt(r){return this.getChildContext=function(){return r.context},r.children}function ydt(r){var e=this,t=r.i;e.componentWillUnmount=function(){Wm(null,e.l),e.l=null,e.i=null},e.i&&e.i!==t&&e.componentWillUnmount(),r.__v?(e.l||(e.i=t,e.l={nodeType:1,parentNode:t,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n)},insertBefore:function(n,a){this.childNodes.push(n),e.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n)}}),Wm(_(gdt,{context:e.context},r.__v),e.l)):e.l&&e.componentWillUnmount()}function O4(r,e){var t=_(ydt,{__v:r,i:e});return t.containerInfo=e,t}function wdt(){}function Sdt(){return this.cancelBubble}function xdt(){return this.defaultPrevented}var mPe,SLr,hdt,fPe,hPe,vdt,kdt,bdt,Tdt,gPe,Cdt,yPe,vPe,kPe,pD=y(()=>{Ku();Ku();R4();R4();(pPe.prototype=new Ha).isPureReactComponent=!0,pPe.prototype.shouldComponentUpdate=function(r,e){return uPe(this.props,r)||uPe(this.state,e)};mPe=Ue.__b;Ue.__b=function(r){r.type&&r.type.__f&&r.ref&&(r.props.ref=r.ref,r.ref=null),mPe&&mPe(r)};SLr=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911,hdt=Ue.__e;Ue.__e=function(r,e,t,n){if(r.then){for(var a,i=e;i=i.__;)if((a=i.__c)&&a.__c)return e.__e==null&&(e.__e=t.__e,e.__k=t.__k),a.__c(r,e)}hdt(r,e,t,n)};fPe=Ue.unmount;Ue.unmount=function(r){var e=r.__c;e&&e.__R&&e.__R(),e&&r.__h===!0&&(r.type=null),fPe&&fPe(r)},(F4.prototype=new Ha).__c=function(r,e){var t=e.__c,n=this;n.t==null&&(n.t=[]),n.t.push(t);var a=wPe(n.__v),i=!1,s=function(){i||(i=!0,t.__R=null,a?a(o):o())};t.__R=s;var o=function(){if(!--n.__u){if(n.state.__a){var c=n.state.__a;n.__v.__k[0]=TPe(c,c.__c.__P,c.__c.__O)}var d;for(n.setState({__a:n.__b=null});d=n.t.pop();)d.forceUpdate()}},l=e.__h===!0;n.__u++||l||n.setState({__a:n.__b=n.__v.__k[0]}),r.then(s,s)},F4.prototype.componentWillUnmount=function(){this.t=[]},F4.prototype.render=function(r,e){if(this.__b){if(this.__v.__k){var t=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=bPe(this.__b,t,n.__O=n.__P)}this.__b=null}var a=e.__a&&_(Gt,null,r.fallback);return a&&(a.__h=null),[_(Gt,null,e.__a?null:r.children),a]};hPe=function(r,e,t){if(++t[1]===t[0]&&r.o.delete(e),r.props.revealOrder&&(r.props.revealOrder[0]!=="t"||!r.o.size))for(t=r.u;t;){for(;t.length>3;)t.pop()();if(t[1]<t[0])break;r.u=t=t[2]}};(vF.prototype=new Ha).__a=function(r){var e=this,t=wPe(e.__v),n=e.o.get(r);return n[0]++,function(a){var i=function(){e.props.revealOrder?(n.push(a),hPe(e,r,n)):a()};t?t(i):i()}},vF.prototype.render=function(r){this.u=null,this.o=new Map;var e=uD(r.children);r.revealOrder&&r.revealOrder[0]==="b"&&e.reverse();for(var t=e.length;t--;)this.o.set(e[t],this.u=[1,0,this.u]);return r.children},vF.prototype.componentDidUpdate=vF.prototype.componentDidMount=function(){var r=this;this.o.forEach(function(e,t){hPe(r,t,e)})};vdt=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,kdt=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,bdt=typeof document!="undefined",Tdt=function(r){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(r)};Ha.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(r){Object.defineProperty(Ha.prototype,r,{configurable:!0,get:function(){return this["UNSAFE_"+r]},set:function(e){Object.defineProperty(this,r,{configurable:!0,writable:!0,value:e})}})});gPe=Ue.event;Ue.event=function(r){return gPe&&(r=gPe(r)),r.persist=wdt,r.isPropagationStopped=Sdt,r.isDefaultPrevented=xdt,r.nativeEvent=r};yPe={configurable:!0,get:function(){return this.class}},vPe=Ue.vnode;Ue.vnode=function(r){var e=r.type,t=r.props,n=t;if(typeof e=="string"){var a=e.indexOf("-")===-1;for(var i in n={},t){var s=t[i];bdt&&i==="children"&&e==="noscript"||i==="value"&&"defaultValue"in t&&s==null||(i==="defaultValue"&&"value"in t&&t.value==null?i="value":i==="download"&&s===!0?s="":/ondoubleclick/i.test(i)?i="ondblclick":/^onchange(textarea|input)/i.test(i+e)&&!Tdt(t.type)?i="oninput":/^onfocus$/i.test(i)?i="onfocusin":/^onblur$/i.test(i)?i="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():a&&kdt.test(i)?i=i.replace(/[A-Z0-9]/g,"-$&").toLowerCase():s===null&&(s=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),n[i]&&(i="oninputCapture")),n[i]=s)}e=="select"&&n.multiple&&Array.isArray(n.value)&&(n.value=uD(t.children).forEach(function(o){o.props.selected=n.value.indexOf(o.props.value)!=-1})),e=="select"&&n.defaultValue!=null&&(n.value=uD(t.children).forEach(function(o){o.props.selected=n.multiple?n.defaultValue.indexOf(o.props.value)!=-1:n.defaultValue==o.props.value})),r.props=n,t.class!=t.className&&(yPe.enumerable="className"in t,t.className!=null&&(n.class=t.className),Object.defineProperty(n,"className",yPe))}r.$$typeof=vdt,vPe&&vPe(r)};kPe=Ue.__r;Ue.__r=function(r){kPe&&kPe(r),Cdt=r.__c}});function ud(r){OPe.push(r),Y4.forEach(e=>{jPe(e,r)})}function LPe(r){r.isConnected&&r.getRootNode&&zPe(r.getRootNode())}function zPe(r){let e=Y4.get(r);if(!e||!e.isConnected){if(e=r.querySelector("style[data-fullcalendar]"),!e){e=document.createElement("style"),e.setAttribute("data-fullcalendar","");let t=Ddt();t&&(e.nonce=t);let n=r===document?document.head:r,a=r===document?n.querySelector("script,link[rel=stylesheet],link[as=style],style"):n.firstChild;n.insertBefore(e,a)}Y4.set(r,e),Edt(e)}}function Edt(r){for(let e of OPe)jPe(r,e)}function jPe(r,e){let{sheet:t}=r,n=t.cssRules.length;e.split("}").forEach((a,i)=>{a=a.trim(),a&&t.insertRule(a+"}",n+i)})}function Ddt(){return L4===void 0&&(L4=Pdt()),L4}function Pdt(){let r=document.querySelector('meta[name="csp-nonce"]');if(r&&r.hasAttribute("content"))return r.getAttribute("content");let e=document.querySelector("script[nonce]");return e&&e.nonce||""}function PD(r){r.parentNode&&r.parentNode.removeChild(r)}function ya(r,e){if(r.closest)return r.closest(e);if(!document.documentElement.contains(r))return null;do{if(FF(r,e))return r;r=r.parentElement||r.parentNode}while(r!==null&&r.nodeType===1);return null}function FF(r,e){return(r.matches||r.matchesSelector||r.msMatchesSelector).call(r,e)}function $Pe(r,e){let t=r instanceof HTMLElement?[r]:r,n=[];for(let a=0;a<t.length;a+=1){let i=t[a].querySelectorAll(e);for(let s=0;s<i.length;s+=1)n.push(i[s])}return n}function $g(r,e){for(let t in e)n3(r,t,e[t])}function n3(r,e,t){t==null?r.style[e]="":typeof t=="number"&&Adt.test(e)?r.style[e]=`${t}px`:r.style[e]=t}function OF(r){var e,t;return(t=(e=r.composedPath)===null||e===void 0?void 0:e.call(r)[0])!==null&&t!==void 0?t:r.target}function bs(){return SPe+=1,"fc-dom-"+SPe}function MD(r){r.preventDefault()}function _dt(r,e){return t=>{let n=ya(t.target,r);n&&e.call(n,t,n)}}function a3(r,e,t,n){let a=_dt(t,n);return r.addEventListener(e,a),()=>{r.removeEventListener(e,a)}}function BPe(r,e,t,n){let a;return a3(r,"mouseover",e,(i,s)=>{if(s!==a){a=s,t(i,s);let o=l=>{a=null,n(l,s),s.removeEventListener("mouseleave",o)};s.addEventListener("mouseleave",o)}})}function i3(r,e){let t=n=>{e(n),xPe.forEach(a=>{r.removeEventListener(a,t)})};xPe.forEach(n=>{r.addEventListener(n,t)})}function UPe(r){return Object.assign({onClick:r},HPe(r))}function HPe(r){return{tabIndex:0,onKeyDown(e){(e.key==="Enter"||e.key===" ")&&(r(e),e.preventDefault())}}}function tp(){return CPe+=1,String(CPe)}function jb(){document.body.classList.add("fc-not-allowed")}function $b(){document.body.classList.remove("fc-not-allowed")}function s3(r){r.style.userSelect="none",r.style.webkitUserSelect="none",r.addEventListener("selectstart",MD)}function o3(r){r.style.userSelect="",r.style.webkitUserSelect="",r.removeEventListener("selectstart",MD)}function l3(r){r.addEventListener("contextmenu",MD)}function c3(r){r.removeEventListener("contextmenu",MD)}function VPe(r){let e=[],t=[],n,a;for(typeof r=="string"?t=r.split(/\s*,\s*/):typeof r=="function"?t=[r]:Array.isArray(r)&&(t=r),n=0;n<t.length;n+=1)a=t[n],typeof a=="string"?e.push(a.charAt(0)==="-"?{field:a.substring(1),order:-1}:{field:a,order:1}):typeof a=="function"&&e.push({func:a});return e}function qPe(r,e,t){let n,a;for(n=0;n<t.length;n+=1)if(a=Idt(r,e,t[n]),a)return a;return 0}function Idt(r,e,t){return t.func?t.func(r,e):WPe(r[t.field],e[t.field])*(t.order||1)}function WPe(r,e){return!r&&!e?0:e==null?-1:r==null?1:typeof r=="string"||typeof e=="string"?String(r).localeCompare(String(e)):r-e}function Pg(r,e){let t=String(r);return"000".substr(0,e-t.length)+t}function Bb(r,e,t){return typeof r=="function"?r(...e):typeof r=="string"?e.reduce((n,a,i)=>n.replace("$"+i,a||""),r):t}function d3(r,e){return r-e}function mD(r){return r%1===0}function Ndt(r){let e=r.querySelector(".fc-scrollgrid-shrink-frame"),t=r.querySelector(".fc-scrollgrid-shrink-cushion");if(!e)throw new Error("needs fc-scrollgrid-shrink-frame className");if(!t)throw new Error("needs fc-scrollgrid-shrink-cushion className");return r.getBoundingClientRect().width-e.getBoundingClientRect().width+t.getBoundingClientRect().width}function mt(r,e){return typeof r=="string"?Fdt(r):typeof r=="object"&&r?DPe(r):typeof r=="number"?DPe({[e||"milliseconds"]:r}):null}function Fdt(r){let e=Rdt.exec(r);if(e){let t=e[1]?-1:1;return{years:0,months:0,days:t*(e[2]?parseInt(e[2],10):0),milliseconds:t*((e[3]?parseInt(e[3],10):0)*60*60*1e3+(e[4]?parseInt(e[4],10):0)*60*1e3+(e[5]?parseInt(e[5],10):0)*1e3+(e[6]?parseInt(e[6],10):0))}}return null}function DPe(r){let e={years:r.years||r.year||0,months:r.months||r.month||0,days:r.days||r.day||0,milliseconds:(r.hours||r.hour||0)*60*60*1e3+(r.minutes||r.minute||0)*60*1e3+(r.seconds||r.second||0)*1e3+(r.milliseconds||r.millisecond||r.ms||0)},t=r.weeks||r.week;return t&&(e.days+=t*7,e.specifiedWeeks=!0),e}function Odt(r,e){return r.years===e.years&&r.months===e.months&&r.days===e.days&&r.milliseconds===e.milliseconds}function AD(r,e){return{years:r.years+e.years,months:r.months+e.months,days:r.days+e.days,milliseconds:r.milliseconds+e.milliseconds}}function YPe(r,e){return{years:r.years-e.years,months:r.months-e.months,days:r.days-e.days,milliseconds:r.milliseconds-e.milliseconds}}function u3(r,e){return{years:r.years*e,months:r.months*e,days:r.days*e,milliseconds:r.milliseconds*e}}function Ldt(r){return Rb(r)/365}function zdt(r){return Rb(r)/30}function Rb(r){return lo(r)/864e5}function lo(r){return r.years*(365*864e5)+r.months*(30*864e5)+r.days*864e5+r.milliseconds}function _D(r,e){let t=null;for(let n=0;n<EPe.length;n+=1){let a=EPe[n];if(e[a]){let i=r[a]/e[a];if(!mD(i)||t!==null&&t!==i)return null;t=i}else if(r[a])return null}return t}function fD(r){let e=r.milliseconds;if(e){if(e%1e3!==0)return{unit:"millisecond",value:e};if(e%(1e3*60)!==0)return{unit:"second",value:e/1e3};if(e%(1e3*60*60)!==0)return{unit:"minute",value:e/(1e3*60)};if(e)return{unit:"hour",value:e/(1e3*60*60)}}return r.days?r.specifiedWeeks&&r.days%7===0?{unit:"week",value:r.days/7}:{unit:"day",value:r.days}:r.months?{unit:"month",value:r.months}:r.years?{unit:"year",value:r.years}:{unit:"millisecond",value:0}}function pd(r,e,t){if(r===e)return!0;let n=r.length,a;if(n!==e.length)return!1;for(a=0;a<n;a+=1)if(!(t?t(r[a],e[a]):r[a]===e[a]))return!1;return!0}function LF(r,e){let t=Gm(r);return t[2]+=e*7,ys(t)}function hn(r,e){let t=Gm(r);return t[2]+=e,ys(t)}function ld(r,e){let t=Gm(r);return t[6]+=e,ys(t)}function p3(r,e){return md(r,e)/7}function md(r,e){return(e.valueOf()-r.valueOf())/(1e3*60*60*24)}function $dt(r,e){return(e.valueOf()-r.valueOf())/(1e3*60*60)}function Bdt(r,e){return(e.valueOf()-r.valueOf())/(1e3*60)}function Udt(r,e){return(e.valueOf()-r.valueOf())/1e3}function GPe(r,e){let t=gr(r),n=gr(e);return{years:0,months:0,days:Math.round(md(t,n)),milliseconds:e.valueOf()-n.valueOf()-(r.valueOf()-t.valueOf())}}function KPe(r,e){let t=Fb(r,e);return t!==null&&t%7===0?t/7:null}function Fb(r,e){return Km(r)===Km(e)?Math.round(md(r,e)):null}function gr(r){return ys([r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()])}function Hdt(r){return ys([r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),r.getUTCHours()])}function Vdt(r){return ys([r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),r.getUTCHours(),r.getUTCMinutes()])}function qdt(r){return ys([r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds()])}function Wdt(r,e,t){let n=r.getUTCFullYear(),a=z4(r,n,e,t);if(a<1)return z4(r,n-1,e,t);let i=z4(r,n+1,e,t);return i>=1?Math.min(a,i):a}function z4(r,e,t,n){let a=ys([e,0,1+Ydt(e,t,n)]),i=gr(r),s=Math.round(md(a,i));return Math.floor(s/7)+1}function Ydt(r,e,t){let n=7+e-t;return-((7+ys([r,0,n]).getUTCDay()-e)%7)+n-1}function PPe(r){return[r.getFullYear(),r.getMonth(),r.getDate(),r.getHours(),r.getMinutes(),r.getSeconds(),r.getMilliseconds()]}function MPe(r){return new Date(r[0],r[1]||0,r[2]==null?1:r[2],r[3]||0,r[4]||0,r[5]||0)}function Gm(r){return[r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()]}function ys(r){return r.length===1&&(r=r.concat([0])),new Date(Date.UTC(...r))}function m3(r){return!isNaN(r.valueOf())}function Km(r){return r.getUTCHours()*1e3*60*60+r.getUTCMinutes()*1e3*60+r.getUTCSeconds()*1e3+r.getUTCMilliseconds()}function zF(r,e,t=!1){let n=r.toISOString();return n=n.replace(".000",""),t&&(n=n.replace("T00:00:00Z","")),n.length>10&&(e==null?n=n.replace("Z",""):e!==0&&(n=n.replace("Z",h3(e,!0)))),n}function ef(r){return r.toISOString().replace(/T.*$/,"")}function Ub(r){return r.toISOString().match(/^\d{4}-\d{2}/)[0]}function f3(r){return Pg(r.getUTCHours(),2)+":"+Pg(r.getUTCMinutes(),2)+":"+Pg(r.getUTCSeconds(),2)}function h3(r,e=!1){let t=r<0?"-":"+",n=Math.abs(r),a=Math.floor(n/60),i=Math.round(n%60);return e?`${t+Pg(a,2)}:${Pg(i,2)}`:`GMT${t}${a}${i?`:${Pg(i,2)}`:""}`}function _e(r,e,t){let n,a;return function(...i){if(!n)a=r.apply(this,i);else if(!pd(n,i)){t&&t(a);let s=r.apply(this,i);(!e||!e(s,a))&&(a=s)}return n=i,a}}function Hb(r,e,t){let n,a;return i=>{if(!n)a=r.call(this,i);else if(!gi(n,i)){t&&t(a);let s=r.call(this,i);(!e||!e(s,a))&&(a=s)}return n=i,a}}function APe(r,e,t){let n=Object.keys(r).length;return n===1&&r.timeZoneName==="short"?a=>h3(a.timeZoneOffset):n===0&&e.week?a=>rut(t.computeWeekNumber(a.marker),t.weekText,t.weekTextLong,t.locale,e.week):Jdt(r,e,t)}function Jdt(r,e,t){r=Object.assign({},r),e=Object.assign({},e),Xdt(r,e),r.timeZone="UTC";let n=new Intl.DateTimeFormat(t.locale.codes,r),a;if(e.omitZeroMinute){let i=Object.assign({},r);delete i.minute,a=new Intl.DateTimeFormat(t.locale.codes,i)}return i=>{let{marker:s}=i,o;a&&!s.getUTCMinutes()?o=a:o=n;let l=o.format(s);return eut(l,i,r,e,t)}}function Xdt(r,e){r.timeZoneName&&(r.hour||(r.hour="2-digit"),r.minute||(r.minute="2-digit")),r.timeZoneName==="long"&&(r.timeZoneName="short"),e.omitZeroMinute&&(r.second||r.millisecond)&&delete e.omitZeroMinute}function eut(r,e,t,n,a){return r=r.replace(Zdt,""),t.timeZoneName==="short"&&(r=tut(r,a.timeZone==="UTC"||e.timeZoneOffset==null?"UTC":h3(e.timeZoneOffset))),n.omitCommas&&(r=r.replace(Gdt,"").trim()),n.omitZeroMinute&&(r=r.replace(":00","")),n.meridiem===!1?r=r.replace(kF,"").trim():n.meridiem==="narrow"?r=r.replace(kF,(i,s)=>s.toLocaleLowerCase()):n.meridiem==="short"?r=r.replace(kF,(i,s)=>`${s.toLocaleLowerCase()}m`):n.meridiem==="lowercase"&&(r=r.replace(kF,i=>i.toLocaleLowerCase())),r=r.replace(Kdt," "),r=r.trim(),r}function tut(r,e){let t=!1;return r=r.replace(Qdt,()=>(t=!0,e)),t||(r+=` ${e}`),r}function rut(r,e,t,n,a){let i=[];return a==="long"?i.push(t):(a==="short"||a==="narrow")&&i.push(e),(a==="long"||a==="short")&&i.push(" "),i.push(n.simpleNumberFormat.format(r)),n.options.direction==="rtl"&&i.reverse(),i.join("")}function nut(r,e,t){return t.getMarkerYear(r)!==t.getMarkerYear(e)?5:t.getMarkerMonth(r)!==t.getMarkerMonth(e)?4:t.getMarkerDay(r)!==t.getMarkerDay(e)?2:Km(r)!==Km(e)?1:0}function aut(r,e){let t={};for(let n in r)(!(n in EF)||EF[n]<=e)&&(t[n]=r[n]);return t}function iut(r,e,t,n){let a=0;for(;a<r.length;){let i=r.indexOf(e,a);if(i===-1)break;let s=r.substr(0,i);a=i+e.length;let o=r.substr(a),l=0;for(;l<t.length;){let c=t.indexOf(n,l);if(c===-1)break;let d=t.substr(0,c);l=c+n.length;let u=t.substr(l);if(s===d&&o===u)return{before:s,after:o}}}return null}function _Pe(r,e){let t=e.markerToArray(r.marker);return{marker:r.marker,timeZoneOffset:r.timeZoneOffset,array:t,year:t[0],month:t[1],day:t[2],hour:t[3],minute:t[4],second:t[5],millisecond:t[6]}}function DF(r,e,t,n){let a=_Pe(r,t.calendarSystem),i=e?_Pe(e,t.calendarSystem):null;return{date:a,start:a,end:i,timeZone:t.timeZone,localeCodes:t.locale.codes,defaultSeparator:n||t.defaultSeparator}}function Kt(r){return typeof r=="object"&&r?new G4(r):typeof r=="string"?new K4(r):typeof r=="function"?new Z4(r):null}function Dg(r,e){return typeof r=="object"&&typeof e=="object"&&r&&e?gi(r,e):r===e}function bF(r,e){return Array.isArray(r)&&Array.isArray(e)?pd(r,e):r===e}function jF(r){return $F(r,tf)}function ID(r,e){let t={},n={};for(let a in e)a in r&&(t[a]=e[a](r[a]));for(let a in r)a in e||(n[a]=r[a]);return{refined:t,extra:n}}function U(r){return r}function $F(r,e){let t={};if(e){for(let n in e)if(e[n]===Dg){let a=[];for(let i=r.length-1;i>=0;i-=1){let s=r[i][n];if(typeof s=="object"&&s)a.unshift(s);else if(s!==void 0){t[n]=s;break}}a.length&&(t[n]=$F(a))}}for(let n=r.length-1;n>=0;n-=1){let a=r[n];for(let i in a)i in t||(t[i]=a[i])}return t}function Zu(r,e){let t={};for(let n in r)e(r[n],n)&&(t[n]=r[n]);return t}function el(r,e){let t={};for(let n in r)t[n]=e(r[n],n);return t}function k3(r){let e={};for(let t of r)e[t]=!0;return e}function BF(r){let e=[];for(let t in r)e.push(r[t]);return e}function gi(r,e){if(r===e)return!0;for(let t in r)if(PF.call(r,t)&&!(t in e))return!1;for(let t in e)if(PF.call(e,t)&&r[t]!==e[t])return!1;return!0}function out(r,e){let t=lut(r,e);for(let n of t)if(!sut.test(n))return!1;return!0}function lut(r,e){let t=[];for(let n in r)PF.call(r,n)&&(n in e||t.push(n));for(let n in e)PF.call(e,n)&&r[n]!==e[n]&&t.push(n);return t}function xF(r,e,t={}){if(r===e)return!0;for(let n in e)if(!(n in r&&cut(r[n],e[n],t[n])))return!1;for(let n in r)if(!(n in e))return!1;return!0}function cut(r,e,t){return r===e||t===!0?!0:t?t(r,e):!1}function QPe(r,e=0,t,n=1){let a=[];t==null&&(t=Object.keys(r).length);for(let i=e;i<t;i+=n){let s=r[i];s!==void 0&&a.push(s)}return a}function dut(r,e){JPe[r]=e}function uut(r){return new JPe[r]}function XPe(r){let e=put.exec(r);if(e){let t=new Date(Date.UTC(Number(e[1]),e[3]?Number(e[3])-1:0,Number(e[5]||1),Number(e[7]||0),Number(e[8]||0),Number(e[10]||0),e[12]?+`0.${e[12]}`*1e3:0));if(m3(t)){let n=null;return e[13]&&(n=(e[15]==="-"?-1:1)*(Number(e[16]||0)*60+Number(e[18]||0))),{marker:t,isTimeUnspecified:!e[6],timeZoneOffset:n}}}return null}function gD(r){r();let e=Ue.debounceRendering,t=[];function n(a){t.push(a)}for(Ue.debounceRendering=n,Wm(_(J4,{}),document.createElement("div"));t.length;)t.shift()();Ue.debounceRendering=e}function e0e(r){let e=gF(r),t=e.Provider;return e.Provider=function(){let n=!this.getChildContext,a=t.apply(this,arguments);if(n){let i=[];this.shouldComponentUpdate=s=>{this.props.value!==s.value&&i.forEach(o=>{o.context=s.value,o.forceUpdate()})},this.sub=s=>{i.push(s);let o=s.componentWillUnmount;s.componentWillUnmount=()=>{i.splice(i.indexOf(s),1),o&&o.call(s)}}}return a},e}function t0e(r,e,t,n,a,i,s,o,l,c,d,u,p,m){return{dateEnv:a,nowManager:i,options:t,pluginHooks:o,emitter:d,dispatch:l,getCurrentData:c,calendarApi:u,viewSpec:r,viewApi:e,dateProfileGenerator:n,theme:s,isRtl:t.direction==="rtl",addResizeHandler(f){d.on("_resize",f)},removeResizeHandler(f){d.off("_resize",f)},createScrollResponder(f){return new MF(f,d,mt(t.scrollTime),t.scrollTimeReset)},registerInteractiveComponent:p,unregisterInteractiveComponent:m}}function mut(r){let e=Object.create(this.prototype.propEquality);Object.assign(e,r),this.prototype.propEquality=e}function fut(r){let e=Object.create(this.prototype.stateEquality);Object.assign(e,r),this.prototype.stateEquality=e}function uo(r,e){typeof r=="function"?r(e):r&&(r.current=e)}function X4(r,e){var t;return!!(e.handleCustomRendering&&r&&(!((t=e.customRenderingMetaMap)===null||t===void 0)&&t[r]))}function b3(r,e,t){let n=Object.assign(Object.assign({},r.elAttrs),{ref:t});return(r.elClasses||e)&&(n.className=(r.elClasses||[]).concat(e||[]).concat(n.className||[]).filter(Boolean).join(" ")),r.elStyle&&(n.style=r.elStyle),n}function hut(r){return!!r}function gut(r,e){let t=r.props;return _(yD,Object.assign({renderProps:t.renderProps,generatorName:t.generatorName,customGenerator:t.customGenerator,defaultGenerator:t.defaultGenerator,renderId:r.context},e))}function yut(r,e){let t=typeof r=="function"?r(e):r||[];return typeof t=="string"?[t]:t}function w3(r){return[`fc-${r.type}-view`,"fc-view"]}function vut(r,e){let t=null,n=null;return r.start&&(t=e.createMarker(r.start)),r.end&&(n=e.createMarker(r.end)),!t&&!n||t&&n&&n<t?null:{start:t,end:n}}function IPe(r,e){let t=[],{start:n}=e,a,i;for(r.sort(kut),a=0;a<r.length;a+=1)i=r[a],i.start>n&&t.push({start:n,end:i.start}),i.end>n&&(n=i.end);return n<e.end&&t.push({start:n,end:e.end}),t}function kut(r,e){return r.start.valueOf()-e.start.valueOf()}function Vi(r,e){let{start:t,end:n}=r,a=null;return e.start!==null&&(t===null?t=e.start:t=new Date(Math.max(t.valueOf(),e.start.valueOf()))),e.end!=null&&(n===null?n=e.end:n=new Date(Math.min(n.valueOf(),e.end.valueOf()))),(t===null||n===null||t<n)&&(a={start:t,end:n}),a}function r0e(r,e){return(r.start===null?null:r.start.valueOf())===(e.start===null?null:e.start.valueOf())&&(r.end===null?null:r.end.valueOf())===(e.end===null?null:e.end.valueOf())}function UF(r,e){return(r.end===null||e.start===null||r.end>e.start)&&(r.start===null||e.end===null||r.start<e.end)}function Vb(r,e){return(r.start===null||e.start!==null&&e.start>=r.start)&&(r.end===null||e.end!==null&&e.end<=r.end)}function Xo(r,e){return(r.start===null||e>=r.start)&&(r.end===null||e<r.end)}function but(r,e){return e.start!=null&&r<e.start?e.start:e.end!=null&&r>=e.end?new Date(e.end.valueOf()-1):r}function n0e(r){let e=Math.floor(md(r.start,r.end))||1,t=gr(r.start),n=hn(t,e);return{start:t,end:n}}function HF(r,e=mt(0)){let t=null,n=null;if(r.end){n=gr(r.end);let a=r.end.valueOf()-n.valueOf();a&&a>=lo(e)&&(n=hn(n,1))}return r.start&&(t=gr(r.start),n&&n<=t&&(n=hn(t,1))),{start:t,end:n}}function S3(r){let e=HF(r);return md(e.start,e.end)>1}function Zm(r,e,t,n){return n==="year"?mt(t.diffWholeYears(r,e),"year"):n==="month"?mt(t.diffWholeMonths(r,e),"month"):GPe(r,e)}function qb(r,e,t,n){return{instanceId:tp(),defId:r,range:e,forcedStartTzo:t==null?null:t,forcedEndTzo:n==null?null:n}}function Tut(r,e,t,n){for(let a=0;a<n.length;a+=1){let i=n[a].parse(r,t);if(i){let{allDay:s}=r;return s==null&&(s=e,s==null&&(s=i.allDayGuess,s==null&&(s=!1))),{allDay:s,duration:i.duration,typeData:i.typeData,typeId:a}}}return null}function _g(r,e,t){let{dateEnv:n,pluginHooks:a,options:i}=t,{defs:s,instances:o}=r;o=Zu(o,l=>!s[l.defId].recurringDef);for(let l in s){let c=s[l];if(c.recurringDef){let{duration:d}=c.recurringDef;d||(d=c.allDay?i.defaultAllDayEventDuration:i.defaultTimedEventDuration);let u=wut(c,d,e,n,a.recurringTypes);for(let p of u){let m=qb(l,{start:p,end:n.add(p,d)});o[m.instanceId]=m}}}return{defs:s,instances:o}}function wut(r,e,t,n,a){let s=a[r.recurringDef.typeId].expand(r.recurringDef.typeData,{start:n.subtract(t.start,e),end:t.end},n);return r.allDay&&(s=s.map(gr)),s}function i0e(r,e,t,n,a=x3(t),i,s){let{refined:o,extra:l}=ND(r,t,a),c=Cut(e,t),d=Tut(o,c,t.dateEnv,t.pluginHooks.recurringTypes);if(d){let p=Ob(o,l,e?e.sourceId:"",d.allDay,!!d.duration,t,i);return p.recurringDef={typeId:d.typeId,typeData:d.typeData,duration:d.duration},{def:p,instance:null}}let u=xut(o,c,t,n);if(u){let p=Ob(o,l,e?e.sourceId:"",u.allDay,u.hasEnd,t,i),m=qb(p.defId,u.range,u.forcedStartTzo,u.forcedEndTzo);return s&&p.publicId&&s[p.publicId]&&(m.instanceId=s[p.publicId]),{def:p,instance:m}}return null}function ND(r,e,t=x3(e)){return ID(r,t)}function x3(r){return Object.assign(Object.assign(Object.assign({},AF),Sut),r.pluginHooks.eventRefiners)}function Ob(r,e,t,n,a,i,s){let o={title:r.title||"",groupId:r.groupId||"",publicId:r.id||"",url:r.url||"",recurringDef:null,defId:(s&&r.id?s[r.id]:"")||tp(),sourceId:t,allDay:n,hasEnd:a,interactive:r.interactive,ui:Wb(r,i),extendedProps:Object.assign(Object.assign({},r.extendedProps||{}),e)};for(let l of i.pluginHooks.eventDefMemberAdders)Object.assign(o,l(r));return Object.freeze(o.ui.classNames),Object.freeze(o.extendedProps),o}function xut(r,e,t,n){let{allDay:a}=r,i,s=null,o=!1,l,c=null,d=r.start!=null?r.start:r.date;if(i=t.dateEnv.createMarkerMeta(d),i)s=i.marker;else if(!n)return null;return r.end!=null&&(l=t.dateEnv.createMarkerMeta(r.end)),a==null&&(e!=null?a=e:a=(!i||i.isTimeUnspecified)&&(!l||l.isTimeUnspecified)),a&&s&&(s=gr(s)),l&&(c=l.marker,a&&(c=gr(c)),s&&c<=s&&(c=null)),c?o=!0:n||(o=t.options.forceEventDuration||!1,c=t.dateEnv.add(s,a?t.options.defaultAllDayEventDuration:t.options.defaultTimedEventDuration)),{allDay:a,hasEnd:o,range:{start:s,end:c},forcedStartTzo:i?i.forcedTzo:null,forcedEndTzo:l?l.forcedTzo:null}}function Cut(r,e){let t=null;return r&&(t=r.defaultAllDay),t==null&&(t=e.options.defaultAllDay),t}function vD(r,e,t,n,a,i){let s=va(),o=x3(t);for(let l of r){let c=i0e(l,e,t,n,o,a,i);c&&Ig(c,s)}return s}function Ig(r,e=va()){return e.defs[r.def.defId]=r.def,r.instance&&(e.instances[r.instance.instanceId]=r.instance),e}function RD(r,e){let t=r.instances[e];if(t){let n=r.defs[t.defId],a=qF(r,i=>Eut(n,i));return a.defs[n.defId]=n,a.instances[t.instanceId]=t,a}return va()}function Eut(r,e){return!!(r.groupId&&r.groupId===e.groupId)}function va(){return{defs:{},instances:{}}}function VF(r,e){return{defs:Object.assign(Object.assign({},r.defs),e.defs),instances:Object.assign(Object.assign({},r.instances),e.instances)}}function qF(r,e){let t=Zu(r.defs,e),n=Zu(r.instances,a=>t[a.defId]);return{defs:t,instances:n}}function Dut(r,e){let{defs:t,instances:n}=r,a={},i={};for(let s in t)e.defs[s]||(a[s]=t[s]);for(let s in n)!e.instances[s]&&a[n[s].defId]&&(i[s]=n[s]);return{defs:a,instances:i}}function Put(r,e){return Array.isArray(r)?vD(r,null,e,!0):typeof r=="object"&&r?vD([r],null,e,!0):r!=null?String(r):null}function e3(r){return Array.isArray(r)?r:typeof r=="string"?r.split(/\s+/):[]}function Wb(r,e){let t=Put(r.constraint,e);return{display:r.display||null,startEditable:r.startEditable!=null?r.startEditable:r.editable,durationEditable:r.durationEditable!=null?r.durationEditable:r.editable,constraints:t!=null?[t]:[],overlap:r.overlap!=null?r.overlap:null,allows:r.allow!=null?[r.allow]:[],backgroundColor:r.backgroundColor||r.color||"",borderColor:r.borderColor||r.color||"",textColor:r.textColor||"",classNames:(r.className||[]).concat(r.classNames||[])}}function C3(r){return r.reduce(Aut,Mut)}function Aut(r,e){return{display:e.display!=null?e.display:r.display,startEditable:e.startEditable!=null?e.startEditable:r.startEditable,durationEditable:e.durationEditable!=null?e.durationEditable:r.durationEditable,constraints:r.constraints.concat(e.constraints),overlap:typeof e.overlap=="boolean"?e.overlap:r.overlap,allows:r.allows.concat(e.allows),backgroundColor:e.backgroundColor||r.backgroundColor,borderColor:e.borderColor||r.borderColor,textColor:e.textColor||r.textColor,classNames:r.classNames.concat(e.classNames)}}function E3(r,e,t=D3(e)){let n;if(typeof r=="string"?n={url:r}:typeof r=="function"||Array.isArray(r)?n={events:r}:typeof r=="object"&&r&&(n=r),n){let{refined:a,extra:i}=ID(n,t),s=Iut(a,e);if(s)return{_raw:r,isFetching:!1,latestFetchId:"",fetchRange:null,defaultAllDay:a.defaultAllDay,eventDataTransform:a.eventDataTransform,success:a.success,failure:a.failure,publicId:a.id||"",sourceId:tp(),sourceDefId:s.sourceDefId,meta:s.meta,ui:Wb(a,e),extendedProps:i}}return null}function D3(r){return Object.assign(Object.assign(Object.assign({},AF),_ut),r.pluginHooks.eventSourceRefiners)}function Iut(r,e){let t=e.pluginHooks.eventSourceDefs;for(let n=t.length-1;n>=0;n-=1){let i=t[n].parseMeta(r);if(i)return{sourceDefId:n,meta:i}}return null}function s0e(r,e,t,n,a){switch(e.type){case"RECEIVE_EVENTS":return Nut(r,t[e.sourceId],e.fetchId,e.fetchRange,e.rawEvents,a);case"RESET_RAW_EVENTS":return Rut(r,t[e.sourceId],e.rawEvents,n.activeRange,a);case"ADD_EVENTS":return Fut(r,e.eventStore,n?n.activeRange:null,a);case"RESET_EVENTS":return e.eventStore;case"MERGE_EVENTS":return VF(r,e.eventStore);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return n?_g(r,n.activeRange,a):r;case"REMOVE_EVENTS":return Dut(r,e.eventStore);case"REMOVE_EVENT_SOURCE":return l0e(r,e.sourceId);case"REMOVE_ALL_EVENT_SOURCES":return qF(r,i=>!i.sourceId);case"REMOVE_ALL_EVENTS":return va();default:return r}}function Nut(r,e,t,n,a,i){if(e&&t===e.latestFetchId){let s=vD(o0e(a,e,i),e,i);return n&&(s=_g(s,n,i)),VF(l0e(r,e.sourceId),s)}return r}function Rut(r,e,t,n,a){let{defIdMap:i,instanceIdMap:s}=Lut(r),o=vD(o0e(t,e,a),e,a,!1,i,s);return _g(o,n,a)}function o0e(r,e,t){let n=t.options.eventDataTransform,a=e?e.eventDataTransform:null;return a&&(r=NPe(r,a)),n&&(r=NPe(r,n)),r}function NPe(r,e){let t;if(!e)t=r;else{t=[];for(let n of r){let a=e(n);a?t.push(a):a==null&&t.push(n)}}return t}function Fut(r,e,t,n){return t&&(e=_g(e,t,n)),VF(r,e)}function P3(r,e,t){let{defs:n}=r,a=el(r.instances,i=>n[i.defId].allDay?i:Object.assign(Object.assign({},i),{range:{start:t.createMarker(e.toDate(i.range.start,i.forcedStartTzo)),end:t.createMarker(e.toDate(i.range.end,i.forcedEndTzo))},forcedStartTzo:t.canComputeOffset?null:i.forcedStartTzo,forcedEndTzo:t.canComputeOffset?null:i.forcedEndTzo}));return{defs:n,instances:a}}function l0e(r,e){return qF(r,t=>t.sourceId!==e)}function Out(r,e){return{defs:r.defs,instances:Zu(r.instances,t=>!e[t.instanceId])}}function Lut(r){let{defs:e,instances:t}=r,n={},a={};for(let i in e){let s=e[i],{publicId:o}=s;o&&(n[o]=i)}for(let i in t){let s=t[i],o=e[s.defId],{publicId:l}=o;l&&(a[l]=i)}return{defIdMap:n,instanceIdMap:a}}function zut(r,e,t){(r[e]||(r[e]=[])).push(t)}function jut(r,e,t){t?r[e]&&(r[e]=r[e].filter(n=>n!==t)):delete r[e]}function M3(r,e){return vD(But(r),null,e)}function But(r){let e;return r===!0?e=[{}]:Array.isArray(r)?e=r.filter(t=>t.daysOfWeek):typeof r=="object"&&r?e=[r]:e=[],e=e.map(t=>Object.assign(Object.assign({},$ut),t)),e}function WF(r,e,t){t.emitter.trigger("select",Object.assign(Object.assign({},A3(r,t)),{jsEvent:e?e.origEvent:null,view:t.viewApi||t.calendarApi.view}))}function Uut(r,e){e.emitter.trigger("unselect",{jsEvent:r?r.origEvent:null,view:e.viewApi||e.calendarApi.view})}function A3(r,e){let t={};for(let n of e.pluginHooks.dateSpanTransforms)Object.assign(t,n(r,e));return Object.assign(t,ept(r,e.dateEnv)),t}function kD(r,e,t){let{dateEnv:n,options:a}=t,i=e;return r?(i=gr(i),i=n.add(i,a.defaultAllDayEventDuration)):i=n.add(i,a.defaultTimedEventDuration),i}function FD(r,e,t,n){let a=_F(r.defs,e),i=va();for(let s in r.defs){let o=r.defs[s];i.defs[s]=Hut(o,a[s],t,n)}for(let s in r.instances){let o=r.instances[s],l=i.defs[o.defId];i.instances[s]=Vut(o,l,a[o.defId],t,n)}return i}function Hut(r,e,t,n){let a=t.standardProps||{};a.hasEnd==null&&e.durationEditable&&(t.startDelta||t.endDelta)&&(a.hasEnd=!0);let i=Object.assign(Object.assign(Object.assign({},r),a),{ui:Object.assign(Object.assign({},r.ui),a.ui)});t.extendedProps&&(i.extendedProps=Object.assign(Object.assign({},i.extendedProps),t.extendedProps));for(let s of n.pluginHooks.eventDefMutationAppliers)s(i,t,n);return!i.hasEnd&&n.options.forceEventDuration&&(i.hasEnd=!0),i}function Vut(r,e,t,n,a){let{dateEnv:i}=a,s=n.standardProps&&n.standardProps.allDay===!0,o=n.standardProps&&n.standardProps.hasEnd===!1,l=Object.assign({},r);return s&&(l.range=n0e(l.range)),n.datesDelta&&t.startEditable&&(l.range={start:i.add(l.range.start,n.datesDelta),end:i.add(l.range.end,n.datesDelta)}),n.startDelta&&t.durationEditable&&(l.range={start:i.add(l.range.start,n.startDelta),end:l.range.end}),n.endDelta&&t.durationEditable&&(l.range={start:l.range.start,end:i.add(l.range.end,n.endDelta)}),o&&(l.range={start:l.range.start,end:kD(e.allDay,l.range.start,a)}),e.allDay&&(l.range={start:gr(l.range.start),end:gr(l.range.end)}),l.range.end<l.range.start&&(l.range.end=kD(e.allDay,l.range.start,a)),l}function c0e(r){let e=r._def,t=r._instance;return{defs:{[e.defId]:e},instances:t?{[t.instanceId]:t}:{}}}function hd(r,e,t){let{defs:n,instances:a}=r,i=[],s=t?t.instanceId:"";for(let o in a){let l=a[o],c=n[l.defId];l.instanceId!==s&&i.push(new Or(e,c,l))}return i}function Lb(r,e,t,n){let a={},i={},s={},o=[],l=[],c=_F(r.defs,e);for(let d in r.defs){let u=r.defs[d];c[u.defId].display==="inverse-background"&&(u.groupId?(a[u.groupId]=[],s[u.groupId]||(s[u.groupId]=u)):i[d]=[])}for(let d in r.instances){let u=r.instances[d],p=r.defs[u.defId],m=c[p.defId],f=u.range,h=!p.allDay&&n?HF(f,n):f,g=Vi(h,t);g&&(m.display==="inverse-background"?p.groupId?a[p.groupId].push(g):i[u.defId].push(g):m.display!=="none"&&(m.display==="background"?o:l).push({def:p,ui:m,instance:u,range:g,isStart:h.start&&h.start.valueOf()===g.start.valueOf(),isEnd:h.end&&h.end.valueOf()===g.end.valueOf()}))}for(let d in a){let u=a[d],p=IPe(u,t);for(let m of p){let f=s[d],h=c[f.defId];o.push({def:f,ui:h,instance:null,range:m,isStart:!1,isEnd:!1})}}for(let d in i){let u=i[d],p=IPe(u,t);for(let m of p)o.push({def:r.defs[d],ui:c[d],instance:null,range:m,isStart:!1,isEnd:!1})}return{bg:o,fg:l}}function _3(r){return r.ui.display==="background"||r.ui.display==="inverse-background"}function RPe(r,e){r.fcSeg=e}function rp(r){return r.fcSeg||r.parentNode.fcSeg||null}function _F(r,e){return el(r,t=>d0e(t,e))}function d0e(r,e){let t=[];return e[""]&&t.push(e[""]),e[r.defId]&&t.push(e[r.defId]),t.push(r.ui),C3(t)}function Bg(r,e){let t=r.map(qut);return t.sort((n,a)=>qPe(n,a,e)),t.map(n=>n._seg)}function qut(r){let{eventRange:e}=r,t=e.def,n=e.instance?e.instance.range:e.range,a=n.start?n.start.valueOf():0,i=n.end?n.end.valueOf():0;return Object.assign(Object.assign(Object.assign({},t.extendedProps),t),{id:t.publicId,start:a,end:i,duration:i-a,allDay:Number(t.allDay),_seg:r})}function Wut(r,e){let{pluginHooks:t}=e,n=t.isDraggableTransformers,{def:a,ui:i}=r.eventRange,s=i.startEditable;for(let o of n)s=o(s,a,i,e);return s}function Yut(r,e){return r.isStart&&r.eventRange.ui.durationEditable&&e.options.eventResizableFromStart}function Gut(r,e){return r.isEnd&&r.eventRange.ui.durationEditable}function rf(r,e,t,n,a,i,s){let{dateEnv:o,options:l}=t,{displayEventTime:c,displayEventEnd:d}=l,u=r.eventRange.def,p=r.eventRange.instance;c==null&&(c=n!==!1),d==null&&(d=a!==!1);let m=p.range.start,f=p.range.end,h=i||r.start||r.eventRange.range.start,g=s||r.end||r.eventRange.range.end,v=gr(m).valueOf()===gr(h).valueOf(),b=gr(ld(f,-1)).valueOf()===gr(ld(g,-1)).valueOf();return c&&!u.allDay&&(v||b)?(h=v?m:h,g=b?f:g,d&&u.hasEnd?o.formatRange(h,g,e,{forcedStartTzo:i?null:p.forcedStartTzo,forcedEndTzo:s?null:p.forcedEndTzo}):o.format(h,e,{forcedTzo:i?null:p.forcedStartTzo})):""}function po(r,e,t){let n=r.eventRange.range;return{isPast:n.end<=(t||e.start),isFuture:n.start>=(t||e.end),isToday:e&&Xo(e,n.start)}}function Kut(r){let e=["fc-event"];return r.isMirror&&e.push("fc-event-mirror"),r.isDraggable&&e.push("fc-event-draggable"),(r.isStartResizable||r.isEndResizable)&&e.push("fc-event-resizable"),r.isDragging&&e.push("fc-event-dragging"),r.isResizing&&e.push("fc-event-resizing"),r.isSelected&&e.push("fc-event-selected"),r.isStart&&e.push("fc-event-start"),r.isEnd&&e.push("fc-event-end"),r.isPast&&e.push("fc-event-past"),r.isToday&&e.push("fc-event-today"),r.isFuture&&e.push("fc-event-future"),e}function OD(r){return r.instance?r.instance.instanceId:`${r.def.defId}:${r.range.start.toISOString()}`}function Yb(r,e){let{def:t,instance:n}=r.eventRange,{url:a}=t;if(a)return{href:a};let{emitter:i,options:s}=e,{eventInteractive:o}=s;return o==null&&(o=t.interactive,o==null&&(o=!!i.hasHandlers("eventClick"))),o?HPe(l=>{i.trigger("eventClick",{el:l.target,event:new Or(e,t,n),jsEvent:l,view:e.viewApi})}):{}}function Qut(r,e,t){let n=Jut(r,e),{range:a}=n;if(!a.start)return null;if(!a.end){if(t==null)return null;a.end=e.add(a.start,t)}return n}function Jut(r,e){let{refined:t,extra:n}=ID(r,Zut),a=t.start?e.createMarkerMeta(t.start):null,i=t.end?e.createMarkerMeta(t.end):null,{allDay:s}=t;return s==null&&(s=a&&a.isTimeUnspecified&&(!i||i.isTimeUnspecified)),Object.assign({range:{start:a?a.marker:null,end:i?i.marker:null},allDay:s},n)}function I3(r,e){return r0e(r.range,e.range)&&r.allDay===e.allDay&&Xut(r,e)}function Xut(r,e){for(let t in e)if(t!=="range"&&t!=="allDay"&&r[t]!==e[t])return!1;for(let t in r)if(!(t in e))return!1;return!0}function ept(r,e){return Object.assign(Object.assign({},u0e(r.range,e,r.allDay)),{allDay:r.allDay})}function N3(r,e,t){return Object.assign(Object.assign({},u0e(r,e,t)),{timeZone:e.timeZone})}function u0e(r,e,t){return{start:e.toDate(r.start),end:e.toDate(r.end),startStr:e.formatIso(r.start,{omitTime:t}),endStr:e.formatIso(r.end,{omitTime:t})}}function tpt(r,e,t){let n=ND({editable:!1},t),a=Ob(n.refined,n.extra,"",r.allDay,!0,t);return{def:a,ui:d0e(a,e),instance:qb(a.defId,r.range),range:r.range,isStart:!0,isEnd:!0}}function R3(r,e,t){let n=!1,a=function(o){n||(n=!0,e(o))},i=function(o){n||(n=!0,t(o))},s=r(a,i);s&&typeof s.then=="function"&&s.then(a,i)}function F3(r,e,t){r=r.toUpperCase();let n={method:r};return r==="GET"?e+=(e.indexOf("?")===-1?"?":"&")+new URLSearchParams(t):(n.body=new URLSearchParams(t),n.headers={"Content-Type":"application/x-www-form-urlencoded"}),fetch(e,n).then(a=>{if(a.ok)return a.json().then(i=>[i,a],()=>{throw new IF("Failure parsing JSON",a)});throw new IF("Request failed",a)})}function O3(){return $4==null&&($4=rpt()),$4}function rpt(){if(typeof document=="undefined")return!0;let r=document.createElement("div");r.style.position="absolute",r.style.top="0px",r.style.left="0px",r.innerHTML="<table><tr><td><div></div></td></tr></table>",r.querySelector("table").style.height="100px",r.querySelector("div").style.height="100%",document.body.appendChild(r);let t=r.querySelector("div").offsetHeight>0;return document.body.removeChild(r),t}function p0e(r,e){return{component:r,el:e.el,useEventCenter:e.useEventCenter!=null?e.useEventCenter:!0,isHitComboAllowed:e.isHitComboAllowed||null}}function LD(r){return{[r.component.uid]:r}}function npt(r){let e=gr(r),t=hn(e,1);return{start:e,end:t}}function L3(r,e){return r.left>=e.left&&r.left<e.right&&r.top>=e.top&&r.top<e.bottom}function YF(r,e){let t={left:Math.max(r.left,e.left),right:Math.min(r.right,e.right),top:Math.max(r.top,e.top),bottom:Math.min(r.bottom,e.bottom)};return t.left<t.right&&t.top<t.bottom?t:!1}function z3(r,e){return{left:Math.min(Math.max(r.left,e.left),e.right),top:Math.min(Math.max(r.top,e.top),e.bottom)}}function j3(r){return{left:(r.left+r.right)/2,top:(r.top+r.bottom)/2}}function $3(r,e){return{left:r.left-e.left,top:r.top-e.top}}function apt(r,e,t){let n=[];r&&n.push(r),e&&n.push(e);let a={"":C3(n)};return t&&Object.assign(a,t),a}function zD(r,e,t,n){return{dow:r.getUTCDay(),isDisabled:!!(n&&(!n.activeRange||!Xo(n.activeRange,r))),isOther:!!(n&&!Xo(n.currentRange,r)),isToday:!!(e&&Xo(e,r)),isPast:!!(t?r<t:e&&r<e.start),isFuture:!!(t?r>t:e&&r>=e.end)}}function Gb(r,e){let t=["fc-day",`fc-day-${jdt[r.dow]}`];return r.isDisabled?t.push("fc-day-disabled"):(r.isToday&&(t.push("fc-day-today"),t.push(e.getClass("today"))),r.isPast&&t.push("fc-day-past"),r.isFuture&&t.push("fc-day-future"),r.isOther&&t.push("fc-day-other")),t}function gd(r,e,t="day",n=!0){let{dateEnv:a,options:i,calendarApi:s}=r,o=a.format(e,t==="week"?spt:ipt);if(i.navLinks){let l=a.toDate(e),c=d=>{let u=t==="day"?i.navLinkDayClick:t==="week"?i.navLinkWeekClick:null;typeof u=="function"?u.call(s,a.toDate(e),d):(typeof u=="string"&&(t=u),s.zoomTo(e,t))};return Object.assign({title:Bb(i.navLinkHint,[o,l],o),"data-navlink":""},n?UPe(c):{onClick:c})}return{"aria-label":o}}function m0e(){return U4===null&&(U4=opt()),U4}function opt(){let r=document.createElement("div");$g(r,{position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}),r.innerHTML="<div></div>",document.body.appendChild(r);let t=r.firstChild.getBoundingClientRect().left>r.getBoundingClientRect().left;return PD(r),t}function f0e(){return H4||(H4=lpt()),H4}function lpt(){let r=document.createElement("div");r.style.overflow="scroll",r.style.position="absolute",r.style.top="-9999px",r.style.left="-9999px",document.body.appendChild(r);let e=h0e(r);return document.body.removeChild(r),e}function h0e(r){return{x:r.offsetHeight-r.clientHeight,y:r.offsetWidth-r.clientWidth}}function g0e(r,e=!1){let t=window.getComputedStyle(r),n=parseInt(t.borderLeftWidth,10)||0,a=parseInt(t.borderRightWidth,10)||0,i=parseInt(t.borderTopWidth,10)||0,s=parseInt(t.borderBottomWidth,10)||0,o=h0e(r),l=o.y-n-a,c=o.x-i-s,d={borderLeft:n,borderRight:a,borderTop:i,borderBottom:s,scrollbarBottom:c,scrollbarLeft:0,scrollbarRight:0};return m0e()&&t.direction==="rtl"?d.scrollbarLeft=l:d.scrollbarRight=l,e&&(d.paddingLeft=parseInt(t.paddingLeft,10)||0,d.paddingRight=parseInt(t.paddingRight,10)||0,d.paddingTop=parseInt(t.paddingTop,10)||0,d.paddingBottom=parseInt(t.paddingBottom,10)||0),d}function B3(r,e=!1,t){let n=t?r.getBoundingClientRect():jD(r),a=g0e(r,e),i={left:n.left+a.borderLeft+a.scrollbarLeft,right:n.right-a.borderRight-a.scrollbarRight,top:n.top+a.borderTop,bottom:n.bottom-a.borderBottom-a.scrollbarBottom};return e&&(i.left+=a.paddingLeft,i.right-=a.paddingRight,i.top+=a.paddingTop,i.bottom-=a.paddingBottom),i}function jD(r){let e=r.getBoundingClientRect();return{left:e.left+window.scrollX,top:e.top+window.scrollY,right:e.right+window.scrollX,bottom:e.bottom+window.scrollY}}function cpt(r){let e=GF(r),t=r.getBoundingClientRect();for(let n of e){let a=YF(t,n.getBoundingClientRect());if(a)t=a;else return null}return t}function GF(r){let e=[];for(;r instanceof HTMLElement;){let t=window.getComputedStyle(r);if(t.position==="fixed")break;/(auto|scroll)/.test(t.overflow+t.overflowY+t.overflowX)&&e.push(r),r=r.parentNode}return e}function TF(r,e){let t=r.length;if(t!==e.length)return!1;for(let n=0;n<t;n++)if(Math.round(r[n])!==Math.round(e[n]))return!1;return!0}function CD(r){return r.span.end}function dd(r){return r.index+":"+r.span.start}function U3(r){let e=[];for(let t of r){let n=[],a={span:t.span,entries:[t]};for(let i of e)$D(i.span,a.span)?a={entries:i.entries.concat(a.entries),span:dpt(i.span,a.span)}:n.push(i);n.push(a),e=n}return e}function dpt(r,e){return{start:Math.min(r.start,e.start),end:Math.max(r.end,e.end)}}function $D(r,e){let t=Math.max(r.start,e.start),n=Math.min(r.end,e.end);return t<n?{start:t,end:n}:null}function V4(r,e,t){r.splice(e,0,t)}function ED(r,e,t){let n=0,a=r.length;if(!a||e<t(r[n]))return[0,0];if(e>t(r[a-1]))return[a,0];for(;n<a;){let i=Math.floor(n+(a-n)/2),s=t(r[i]);if(e<s)a=i;else if(e>s)n=i+1;else return[i,1]}return[n,0]}function BD(r){let{refined:e,extra:t}=ID(r,upt);return{startTime:e.startTime||null,duration:e.duration||null,create:e.create!=null?e.create:!0,sourceId:e.sourceId,leftoverProps:t}}function y0e(r,e){return!r||e>10?Kt({weekday:"short"}):e>1?Kt({weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}):Kt({weekday:"long"})}function k0e(r){return r.text}function mpt(r,e,t){return r||y0e(e,t)}function wF(r,e){let t=r.activeRange;return e?t:{start:ld(t.start,r.slotMinTime.milliseconds),end:ld(t.end,r.slotMaxTime.milliseconds-864e5)}}function UD(r,e,t){let{instances:n}=r.mutatedEvents;for(let a in n)if(!Vb(e.validRange,n[a].range))return!1;return b0e({eventDrag:r},t)}function H3(r,e,t){return Vb(e.validRange,r.range)?b0e({dateSelection:r},t):!1}function b0e(r,e){let t=e.getCurrentData(),n=Object.assign({businessHours:t.businessHours,dateSelection:"",eventStore:t.eventStore,eventUiBases:t.eventUiBases,eventSelection:"",eventDrag:null,eventResize:null},r);return(e.pluginHooks.isPropsValid||T0e)(n,e)}function T0e(r,e,t={},n){return!(r.eventDrag&&!fpt(r,e,t,n)||r.dateSelection&&!hpt(r,e,t,n))}function fpt(r,e,t,n){let a=e.getCurrentData(),i=r.eventDrag,s=i.mutatedEvents,o=s.defs,l=s.instances,c=_F(o,i.isEvent?r.eventUiBases:{"":a.selectionConfig});n&&(c=el(c,n));let d=Out(r.eventStore,i.affectedEvents.instances),u=d.defs,p=d.instances,m=_F(u,r.eventUiBases);for(let f in l){let h=l[f],g=h.range,v=c[h.defId],b=o[h.defId];if(!w0e(v.constraints,g,d,r.businessHours,e))return!1;let{eventOverlap:k}=e.options,w=typeof k=="function"?k:null;for(let C in p){let E=p[C];if(UF(g,E.range)&&(m[E.defId].overlap===!1&&i.isEvent||v.overlap===!1||w&&!w(new Or(e,u[E.defId],E),new Or(e,b,h))))return!1}let S=a.eventStore;for(let C of v.allows){let E=Object.assign(Object.assign({},t),{range:h.range,allDay:b.allDay}),D=S.defs[b.defId],P=S.instances[f],O;if(D?O=new Or(e,D,P):O=new Or(e,b),!C(A3(E,e),O))return!1}}return!0}function hpt(r,e,t,n){let a=r.eventStore,i=a.defs,s=a.instances,o=r.dateSelection,l=o.range,{selectionConfig:c}=e.getCurrentData();if(n&&(c=n(c)),!w0e(c.constraints,l,a,r.businessHours,e))return!1;let{selectOverlap:d}=e.options,u=typeof d=="function"?d:null;for(let p in s){let m=s[p];if(UF(l,m.range)&&(c.overlap===!1||u&&!u(new Or(e,i[m.defId],m),null)))return!1}for(let p of c.allows){let m=Object.assign(Object.assign({},t),o);if(!p(A3(m,e),null))return!1}return!0}function w0e(r,e,t,n,a){for(let i of r)if(!ypt(gpt(i,e,t,n,a),e))return!1;return!0}function gpt(r,e,t,n,a){return r==="businessHours"?q4(_g(n,e,a)):typeof r=="string"?q4(qF(t,i=>i.groupId===r)):typeof r=="object"&&r?q4(_g(r,e,a)):[]}function q4(r){let{instances:e}=r,t=[];for(let n in e)t.push(e[n].range);return t}function ypt(r,e){for(let t of r)if(Vb(t,e))return!0;return!1}function S0e(r){let e=$Pe(r,".fc-scrollgrid-shrink"),t=0;for(let n of e)t=Math.max(t,Ndt(n));return Math.ceil(t)}function V3(r,e){return r.liquid&&e.liquid}function x0e(r,e){return e.maxHeight!=null||V3(r,e)}function C0e(r,e,t,n){let{expandRows:a}=t;return typeof e.content=="function"?e.content(t):_("table",{role:"presentation",className:[e.tableClassName,r.syncRowHeights?"fc-scrollgrid-sync-table":""].join(" "),style:{minWidth:t.tableMinWidth,width:t.clientWidth,height:a?t.clientHeight:""}},t.tableColGroupNode,_(n?"thead":"tbody",{role:"presentation"},typeof e.rowContent=="function"?e.rowContent(t):e.rowContent))}function E0e(r,e){return pd(r,e,gi)}function D0e(r,e){let t=[];for(let n of r){let a=n.span||1;for(let i=0;i<a;i+=1)t.push(_("col",{style:{width:n.width==="shrink"?P0e(e):n.width||"",minWidth:n.minWidth||""}}))}return _("colgroup",{},...t)}function P0e(r){return r==null?4:r}function M0e(r){for(let e of r)if(e.width==="shrink")return!0;return!1}function A0e(r,e){let t=["fc-scrollgrid",e.theme.getClass("table")];return r&&t.push("fc-scrollgrid-liquid"),t}function _0e(r,e){let t=["fc-scrollgrid-section",`fc-scrollgrid-section-${r.type}`,r.className];return e&&r.liquid&&r.maxHeight==null&&t.push("fc-scrollgrid-section-liquid"),r.isSticky&&t.push("fc-scrollgrid-section-sticky"),t}function Zb(r){return _("div",{className:"fc-scrollgrid-sticky-shim",style:{width:r.clientWidth,minWidth:r.tableMinWidth}})}function Hg(r){let{stickyHeaderDates:e}=r;return(e==null||e==="auto")&&(e=r.height==="auto"||r.viewHeight==="auto"),e}function HD(r){let{stickyFooterScrollbar:e}=r;return(e==null||e==="auto")&&(e=r.height==="auto"||r.viewHeight==="auto"),e}function vpt(r,e){for(let t of r)if(t.key===e)return t;return null}function kpt(r){return _("div",{className:"fc-event-main-frame"},r.timeText&&_("div",{className:"fc-event-time"},r.timeText),_("div",{className:"fc-event-title-container"},_("div",{className:"fc-event-title fc-sticky"},r.event.title||_(Gt,null,"\xA0"))))}function Qb(r){return!!(r.dayCellContent||X4("dayCellContent",r))}function Tpt(r){let{date:e,dateEnv:t,dateProfile:n,isMonthStart:a}=r,i=zD(e,r.todayRange,null,n),s=r.showDayNumber?t.format(e,a?r.monthStartFormat:bpt):"";return Object.assign(Object.assign(Object.assign({date:t.toDate(e),view:r.viewApi},i),{isMonthStart:a,dayNumberText:s}),r.extraRenderProps)}function wpt(r){let{title:e}=r.event;return e&&_("div",{className:"fc-event-title"},r.event.title)}function qD(r){return _("div",{className:`fc-${r}`})}function Spt(r){return r.text}function xpt(r){return r.text}function FPe(r){if(r.allDayDate)return{start:r.allDayDate,end:hn(r.allDayDate,1)};let{hiddenSegs:e}=r;return{start:KF(e),end:Ept(e)}}function KF(r){return r.reduce(Cpt).eventRange.range.start}function Cpt(r,e){return r.eventRange.range.start<e.eventRange.range.start?r:e}function Ept(r){return r.reduce(Dpt).eventRange.range.end}function Dpt(r,e){return r.eventRange.range.end>e.eventRange.range.end?r:e}var OPe,Y4,L4,Mdt,Mg,Adt,SPe,xPe,CPe,EPe,Rdt,jdt,j4,EF,kF,Gdt,Kdt,Zdt,Qdt,G4,K4,Z4,g3,fd,y3,v3,tf,ZPe,PF,sut,JPe,Q4,put,hD,Qu,J4,MF,tl,cd,Pt,yD,T3,Ln,co,Ag,CF,a0e,Sut,AF,Mut,_ut,Ju,$ut,Ym,Or,Zut,IF,$4,bD,ec,Ug,vs,TD,B4,wD,ipt,spt,U4,H4,tc,Ng,SD,xD,ia,Rg,DD,Kb,upt,v0e,NF,ppt,RF,Xu,Fg,Og,Lg,SF,zb,ks,Qm,ep,Jm,VD,bpt,Xm,zg,WD,W4,t3,r3,jg,q3=y(()=>{Ku();Ku();pD();OPe=[],Y4=new Map;typeof document!="undefined"&&zPe(document);Mdt=':root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url("data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") format("truetype")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:"\\e900"}.fc-icon-chevron-right:before{content:"\\e901"}.fc-icon-chevrons-left:before{content:"\\e902"}.fc-icon-chevrons-right:before{content:"\\e903"}.fc-icon-minus-square:before{content:"\\e904"}.fc-icon-plus-square:before{content:"\\e905"}.fc-icon-x:before{content:"\\e906"}.fc .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:"";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:"";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}';ud(Mdt);Mg=class{constructor(e){this.drainedOption=e,this.isRunning=!1,this.isDirty=!1,this.pauseDepths={},this.timeoutId=0}request(e){this.isDirty=!0,this.isPaused()||(this.clearTimeout(),e==null?this.tryDrain():this.timeoutId=setTimeout(this.tryDrain.bind(this),e))}pause(e=""){let{pauseDepths:t}=this;t[e]=(t[e]||0)+1,this.clearTimeout()}resume(e="",t){let{pauseDepths:n}=this;e in n&&(t?delete n[e]:(n[e]-=1,n[e]<=0&&delete n[e]),this.tryDrain())}isPaused(){return Object.keys(this.pauseDepths).length}tryDrain(){if(!this.isRunning&&!this.isPaused()){for(this.isRunning=!0;this.isDirty;)this.isDirty=!1,this.drained();this.isRunning=!1}}clear(){this.clearTimeout(),this.isDirty=!1,this.pauseDepths={}}clearTimeout(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=0)}drained(){this.drainedOption&&this.drainedOption()}};Adt=/(top|left|right|bottom|width|height)$/i;SPe=0;xPe=["webkitTransitionEnd","otransitionend","oTransitionEnd","msTransitionEnd","transitionend"];CPe=0;EPe=["years","months","days","milliseconds"],Rdt=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;jdt=["sun","mon","tue","wed","thu","fri","sat"];j4={week:3,separator:9,omitZeroMinute:9,meridiem:9,omitCommas:9},EF={timeZoneName:7,era:6,year:5,month:4,day:2,weekday:2,hour:1,minute:1,second:1},kF=/\s*([ap])\.?m\.?/i,Gdt=/,/g,Kdt=/\s+/g,Zdt=/\u200e/g,Qdt=/UTC|GMT/,G4=class{constructor(e){let t={},n={},a=9;for(let i in e)i in j4?(n[i]=e[i],j4[i]<9&&(a=Math.min(j4[i],a))):(t[i]=e[i],i in EF&&(a=Math.min(EF[i],a)));this.standardDateProps=t,this.extendedSettings=n,this.smallestUnitNum=a,this.buildFormattingFunc=_e(APe)}format(e,t){return this.buildFormattingFunc(this.standardDateProps,this.extendedSettings,t)(e)}formatRange(e,t,n,a){let{standardDateProps:i,extendedSettings:s}=this,o=nut(e.marker,t.marker,n.calendarSystem);if(!o)return this.format(e,n);let l=o;l>1&&(i.year==="numeric"||i.year==="2-digit")&&(i.month==="numeric"||i.month==="2-digit")&&(i.day==="numeric"||i.day==="2-digit")&&(l=1);let c=this.format(e,n),d=this.format(t,n);if(c===d)return c;let u=aut(i,l),p=APe(u,s,n),m=p(e),f=p(t),h=iut(c,m,d,f),g=s.separator||a||n.defaultSeparator||"";return h?h.before+m+g+f+h.after:c+g+d}getSmallestUnit(){switch(this.smallestUnitNum){case 7:case 6:case 5:return"year";case 4:return"month";case 3:return"week";case 2:return"day";default:return"time"}}};K4=class{constructor(e){this.cmdStr=e}format(e,t,n){return t.cmdFormatter(this.cmdStr,DF(e,null,t,n))}formatRange(e,t,n,a){return n.cmdFormatter(this.cmdStr,DF(e,t,n,a))}},Z4=class{constructor(e){this.func=e}format(e,t,n){return this.func(DF(e,null,t,n))}formatRange(e,t,n,a){return this.func(DF(e,t,n,a))}};g3={navLinkDayClick:U,navLinkWeekClick:U,duration:mt,bootstrapFontAwesome:U,buttonIcons:U,customButtons:U,defaultAllDayEventDuration:mt,defaultTimedEventDuration:mt,nextDayThreshold:mt,scrollTime:mt,scrollTimeReset:Boolean,slotMinTime:mt,slotMaxTime:mt,dayPopoverFormat:Kt,slotDuration:mt,snapDuration:mt,headerToolbar:U,footerToolbar:U,defaultRangeSeparator:String,titleRangeSeparator:String,forceEventDuration:Boolean,dayHeaders:Boolean,dayHeaderFormat:Kt,dayHeaderClassNames:U,dayHeaderContent:U,dayHeaderDidMount:U,dayHeaderWillUnmount:U,dayCellClassNames:U,dayCellContent:U,dayCellDidMount:U,dayCellWillUnmount:U,initialView:String,aspectRatio:Number,weekends:Boolean,weekNumberCalculation:U,weekNumbers:Boolean,weekNumberClassNames:U,weekNumberContent:U,weekNumberDidMount:U,weekNumberWillUnmount:U,editable:Boolean,viewClassNames:U,viewDidMount:U,viewWillUnmount:U,nowIndicator:Boolean,nowIndicatorSnap:U,nowIndicatorClassNames:U,nowIndicatorContent:U,nowIndicatorDidMount:U,nowIndicatorWillUnmount:U,showNonCurrentDates:Boolean,lazyFetching:Boolean,startParam:String,endParam:String,timeZoneParam:String,timeZone:String,locales:U,locale:U,themeSystem:String,dragRevertDuration:Number,dragScroll:Boolean,allDayMaintainDuration:Boolean,unselectAuto:Boolean,dropAccept:U,eventOrder:VPe,eventOrderStrict:Boolean,handleWindowResize:Boolean,windowResizeDelay:Number,longPressDelay:Number,eventDragMinDistance:Number,expandRows:Boolean,height:U,contentHeight:U,direction:String,weekNumberFormat:Kt,eventResizableFromStart:Boolean,displayEventTime:Boolean,displayEventEnd:Boolean,weekText:String,weekTextLong:String,progressiveEventRendering:Boolean,businessHours:U,initialDate:U,now:U,eventDataTransform:U,stickyHeaderDates:U,stickyFooterScrollbar:U,viewHeight:U,defaultAllDay:Boolean,eventSourceFailure:U,eventSourceSuccess:U,eventDisplay:String,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventOverlap:U,eventConstraint:U,eventAllow:U,eventBackgroundColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String,eventClassNames:U,eventContent:U,eventDidMount:U,eventWillUnmount:U,selectConstraint:U,selectOverlap:U,selectAllow:U,droppable:Boolean,unselectCancel:String,slotLabelFormat:U,slotLaneClassNames:U,slotLaneContent:U,slotLaneDidMount:U,slotLaneWillUnmount:U,slotLabelClassNames:U,slotLabelContent:U,slotLabelDidMount:U,slotLabelWillUnmount:U,dayMaxEvents:U,dayMaxEventRows:U,dayMinWidth:Number,slotLabelInterval:mt,allDayText:String,allDayClassNames:U,allDayContent:U,allDayDidMount:U,allDayWillUnmount:U,slotMinWidth:Number,navLinks:Boolean,eventTimeFormat:Kt,rerenderDelay:Number,moreLinkText:U,moreLinkHint:U,selectMinDistance:Number,selectable:Boolean,selectLongPressDelay:Number,eventLongPressDelay:Number,selectMirror:Boolean,eventMaxStack:Number,eventMinHeight:Number,eventMinWidth:Number,eventShortHeight:Number,slotEventOverlap:Boolean,plugins:U,firstDay:Number,dayCount:Number,dateAlignment:String,dateIncrement:mt,hiddenDays:U,fixedWeekCount:Boolean,validRange:U,visibleRange:U,titleFormat:U,eventInteractive:Boolean,noEventsText:String,viewHint:U,navLinkHint:U,closeHint:String,timeHint:String,eventHint:String,moreLinkClick:U,moreLinkClassNames:U,moreLinkContent:U,moreLinkDidMount:U,moreLinkWillUnmount:U,monthStartFormat:Kt,handleCustomRendering:U,customRenderingMetaMap:U,customRenderingReplaces:Boolean},fd={eventDisplay:"auto",defaultRangeSeparator:" - ",titleRangeSeparator:" \u2013 ",defaultTimedEventDuration:"01:00:00",defaultAllDayEventDuration:{day:1},forceEventDuration:!1,nextDayThreshold:"00:00:00",dayHeaders:!0,initialView:"",aspectRatio:1.35,headerToolbar:{start:"title",center:"",end:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"local",editable:!1,nowIndicator:!1,scrollTime:"06:00:00",scrollTimeReset:!0,slotMinTime:"00:00:00",slotMaxTime:"24:00:00",showNonCurrentDates:!0,lazyFetching:!0,startParam:"start",endParam:"end",timeZoneParam:"timeZone",timeZone:"local",locales:[],locale:"",themeSystem:"standard",dragRevertDuration:500,dragScroll:!0,allDayMaintainDuration:!1,unselectAuto:!0,dropAccept:"*",eventOrder:"start,-duration,allDay,title",dayPopoverFormat:{month:"long",day:"numeric",year:"numeric"},handleWindowResize:!0,windowResizeDelay:100,longPressDelay:1e3,eventDragMinDistance:5,expandRows:!1,navLinks:!1,selectable:!1,eventMinHeight:15,eventMinWidth:30,eventShortHeight:30,monthStartFormat:{month:"long",day:"numeric"},nowIndicatorSnap:"auto"},y3={datesSet:U,eventsSet:U,eventAdd:U,eventChange:U,eventRemove:U,windowResize:U,eventClick:U,eventMouseEnter:U,eventMouseLeave:U,select:U,unselect:U,loading:U,_unmount:U,_beforeprint:U,_afterprint:U,_noEventDrop:U,_noEventResize:U,_resize:U,_scrollRequest:U},v3={buttonText:U,buttonHints:U,views:U,plugins:U,initialEvents:U,events:U,eventSources:U},tf={headerToolbar:Dg,footerToolbar:Dg,buttonText:Dg,buttonHints:Dg,buttonIcons:Dg,dateIncrement:Dg,plugins:bF,events:bF,eventSources:bF,resources:bF};ZPe={type:String,component:U,buttonText:String,buttonTextKey:String,dateProfileGeneratorClass:U,usesMinMaxTime:Boolean,classNames:U,content:U,didMount:U,willUnmount:U};({hasOwnProperty:PF}=Object.prototype);sut=/^on[A-Z]/;JPe={};Q4=class{getMarkerYear(e){return e.getUTCFullYear()}getMarkerMonth(e){return e.getUTCMonth()}getMarkerDay(e){return e.getUTCDate()}arrayToMarker(e){return ys(e)}markerToArray(e){return Gm(e)}};dut("gregory",Q4);put=/^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;hD=class{constructor(e){let t=this.timeZone=e.timeZone,n=t!=="local"&&t!=="UTC";e.namedTimeZoneImpl&&n&&(this.namedTimeZoneImpl=new e.namedTimeZoneImpl(t)),this.canComputeOffset=!!(!n||this.namedTimeZoneImpl),this.calendarSystem=uut(e.calendarSystem),this.locale=e.locale,this.weekDow=e.locale.week.dow,this.weekDoy=e.locale.week.doy,e.weekNumberCalculation==="ISO"&&(this.weekDow=1,this.weekDoy=4),typeof e.firstDay=="number"&&(this.weekDow=e.firstDay),typeof e.weekNumberCalculation=="function"&&(this.weekNumberFunc=e.weekNumberCalculation),this.weekText=e.weekText!=null?e.weekText:e.locale.options.weekText,this.weekTextLong=(e.weekTextLong!=null?e.weekTextLong:e.locale.options.weekTextLong)||this.weekText,this.cmdFormatter=e.cmdFormatter,this.defaultSeparator=e.defaultSeparator}createMarker(e){let t=this.createMarkerMeta(e);return t===null?null:t.marker}createNowMarker(){return this.canComputeOffset?this.timestampToMarker(new Date().valueOf()):ys(PPe(new Date))}createMarkerMeta(e){if(typeof e=="string")return this.parse(e);let t=null;return typeof e=="number"?t=this.timestampToMarker(e):e instanceof Date?(e=e.valueOf(),isNaN(e)||(t=this.timestampToMarker(e))):Array.isArray(e)&&(t=ys(e)),t===null||!m3(t)?null:{marker:t,isTimeUnspecified:!1,forcedTzo:null}}parse(e){let t=XPe(e);if(t===null)return null;let{marker:n}=t,a=null;return t.timeZoneOffset!==null&&(this.canComputeOffset?n=this.timestampToMarker(n.valueOf()-t.timeZoneOffset*60*1e3):a=t.timeZoneOffset),{marker:n,isTimeUnspecified:t.isTimeUnspecified,forcedTzo:a}}getYear(e){return this.calendarSystem.getMarkerYear(e)}getMonth(e){return this.calendarSystem.getMarkerMonth(e)}getDay(e){return this.calendarSystem.getMarkerDay(e)}add(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]+=t.years,n[1]+=t.months,n[2]+=t.days,n[6]+=t.milliseconds,this.calendarSystem.arrayToMarker(n)}subtract(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]-=t.years,n[1]-=t.months,n[2]-=t.days,n[6]-=t.milliseconds,this.calendarSystem.arrayToMarker(n)}addYears(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]+=t,this.calendarSystem.arrayToMarker(n)}addMonths(e,t){let n=this.calendarSystem.markerToArray(e);return n[1]+=t,this.calendarSystem.arrayToMarker(n)}diffWholeYears(e,t){let{calendarSystem:n}=this;return Km(e)===Km(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)&&n.getMarkerMonth(e)===n.getMarkerMonth(t)?n.getMarkerYear(t)-n.getMarkerYear(e):null}diffWholeMonths(e,t){let{calendarSystem:n}=this;return Km(e)===Km(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)?n.getMarkerMonth(t)-n.getMarkerMonth(e)+(n.getMarkerYear(t)-n.getMarkerYear(e))*12:null}greatestWholeUnit(e,t){let n=this.diffWholeYears(e,t);return n!==null?{unit:"year",value:n}:(n=this.diffWholeMonths(e,t),n!==null?{unit:"month",value:n}:(n=KPe(e,t),n!==null?{unit:"week",value:n}:(n=Fb(e,t),n!==null?{unit:"day",value:n}:(n=$dt(e,t),mD(n)?{unit:"hour",value:n}:(n=Bdt(e,t),mD(n)?{unit:"minute",value:n}:(n=Udt(e,t),mD(n)?{unit:"second",value:n}:{unit:"millisecond",value:t.valueOf()-e.valueOf()}))))))}countDurationsBetween(e,t,n){let a;return n.years&&(a=this.diffWholeYears(e,t),a!==null)?a/Ldt(n):n.months&&(a=this.diffWholeMonths(e,t),a!==null)?a/zdt(n):n.days&&(a=Fb(e,t),a!==null)?a/Rb(n):(t.valueOf()-e.valueOf())/lo(n)}startOf(e,t){return t==="year"?this.startOfYear(e):t==="month"?this.startOfMonth(e):t==="week"?this.startOfWeek(e):t==="day"?gr(e):t==="hour"?Hdt(e):t==="minute"?Vdt(e):t==="second"?qdt(e):null}startOfYear(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e)])}startOfMonth(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e)])}startOfWeek(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e),e.getUTCDate()-(e.getUTCDay()-this.weekDow+7)%7])}computeWeekNumber(e){return this.weekNumberFunc?this.weekNumberFunc(this.toDate(e)):Wdt(e,this.weekDow,this.weekDoy)}format(e,t,n={}){return t.format({marker:e,timeZoneOffset:n.forcedTzo!=null?n.forcedTzo:this.offsetForMarker(e)},this)}formatRange(e,t,n,a={}){return a.isEndExclusive&&(t=ld(t,-1)),n.formatRange({marker:e,timeZoneOffset:a.forcedStartTzo!=null?a.forcedStartTzo:this.offsetForMarker(e)},{marker:t,timeZoneOffset:a.forcedEndTzo!=null?a.forcedEndTzo:this.offsetForMarker(t)},this,a.defaultSeparator)}formatIso(e,t={}){let n=null;return t.omitTimeZoneOffset||(t.forcedTzo!=null?n=t.forcedTzo:n=this.offsetForMarker(e)),zF(e,n,t.omitTime)}timestampToMarker(e){return this.timeZone==="local"?ys(PPe(new Date(e))):this.timeZone==="UTC"||!this.namedTimeZoneImpl?new Date(e):ys(this.namedTimeZoneImpl.timestampToArray(e))}offsetForMarker(e){return this.timeZone==="local"?-MPe(Gm(e)).getTimezoneOffset():this.timeZone==="UTC"?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(Gm(e)):null}toDate(e,t){return this.timeZone==="local"?MPe(Gm(e)):this.timeZone==="UTC"?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-this.namedTimeZoneImpl.offsetForArray(Gm(e))*1e3*60):new Date(e.valueOf()-(t||0))}},Qu=class{constructor(e){this.iconOverrideOption&&this.setIconOverride(e[this.iconOverrideOption])}setIconOverride(e){let t,n;if(typeof e=="object"&&e){t=Object.assign({},this.iconClasses);for(n in e)t[n]=this.applyIconOverridePrefix(e[n]);this.iconClasses=t}else e===!1&&(this.iconClasses={})}applyIconOverridePrefix(e){let t=this.iconOverridePrefix;return t&&e.indexOf(t)!==0&&(e=t+e),e}getClass(e){return this.classes[e]||""}getIconClass(e,t){let n;return t&&this.rtlIconClasses?n=this.rtlIconClasses[e]||this.iconClasses[e]:n=this.iconClasses[e],n?`${this.baseIconClass} ${n}`:""}getCustomButtonIconClass(e){let t;return this.iconOverrideCustomButtonOption&&(t=e[this.iconOverrideCustomButtonOption],t)?`${this.baseIconClass} ${this.applyIconOverridePrefix(t)}`:""}};Qu.prototype.classes={};Qu.prototype.iconClasses={};Qu.prototype.baseIconClass="";Qu.prototype.iconOverridePrefix="";J4=class extends Ha{render(){return _("div",{})}componentDidMount(){this.setState({})}};MF=class{constructor(e,t,n,a){this.execFunc=e,this.emitter=t,this.scrollTime=n,this.scrollTimeReset=a,this.handleScrollRequest=i=>{this.queuedRequest=Object.assign({},this.queuedRequest||{},i),this.drain()},t.on("_scrollRequest",this.handleScrollRequest),this.fireInitialScroll()}detach(){this.emitter.off("_scrollRequest",this.handleScrollRequest)}update(e){e&&this.scrollTimeReset?this.fireInitialScroll():this.drain()}fireInitialScroll(){this.handleScrollRequest({time:this.scrollTime})}drain(){this.queuedRequest&&this.execFunc(this.queuedRequest)&&(this.queuedRequest=null)}},tl=e0e({});cd=class extends Ha{shouldComponentUpdate(e,t){return!xF(this.props,e,this.propEquality)||!xF(this.state,t,this.stateEquality)}safeSetState(e){xF(this.state,Object.assign(Object.assign({},this.state),e),this.stateEquality)||this.setState(e)}};cd.addPropsEquality=mut;cd.addStateEquality=fut;cd.contextType=tl;cd.prototype.propEquality={};cd.prototype.stateEquality={};Pt=class extends cd{};Pt.contextType=tl;yD=class extends Pt{constructor(){super(...arguments),this.id=tp(),this.queuedDomNodes=[],this.currentDomNodes=[],this.handleEl=e=>{let{options:t}=this.context,{generatorName:n}=this.props;(!t.customRenderingReplaces||!X4(n,t))&&this.updateElRef(e)},this.updateElRef=e=>{this.props.elRef&&uo(this.props.elRef,e)}}render(){let{props:e,context:t}=this,{options:n}=t,{customGenerator:a,defaultGenerator:i,renderProps:s}=e,o=b3(e,[],this.handleEl),l=!1,c,d=[],u;if(a!=null){let p=typeof a=="function"?a(s,_):a;if(p===!0)l=!0;else{let m=p&&typeof p=="object";m&&"html"in p?o.dangerouslySetInnerHTML={__html:p.html}:m&&"domNodes"in p?d=Array.prototype.slice.call(p.domNodes):(m?M4(p):typeof p!="function")?c=p:u=p}}else l=!X4(e.generatorName,n);return l&&i&&(c=i(s)),this.queuedDomNodes=d,this.currentGeneratorMeta=u,_(e.elTag,o,c)}componentDidMount(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentDidUpdate(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentWillUnmount(){this.triggerCustomRendering(!1)}triggerCustomRendering(e){var t;let{props:n,context:a}=this,{handleCustomRendering:i,customRenderingMetaMap:s}=a.options;if(i){let o=(t=this.currentGeneratorMeta)!==null&&t!==void 0?t:s==null?void 0:s[n.generatorName];o&&i(Object.assign(Object.assign({id:this.id,isActive:e,containerEl:this.base,reportNewContainerEl:this.updateElRef,generatorMeta:o},n),{elClasses:(n.elClasses||[]).filter(hut)}))}}applyQueueudDomNodes(){let{queuedDomNodes:e,currentDomNodes:t}=this,n=this.base;if(!pd(e,t)){t.forEach(PD);for(let a of e)n.appendChild(a);this.currentDomNodes=e}}};yD.addPropsEquality({elClasses:pd,elStyle:gi,elAttrs:out,renderProps:gi});T3=e0e(0),Ln=class extends Ha{constructor(){super(...arguments),this.InnerContent=gut.bind(void 0,this),this.handleEl=e=>{this.el=e,this.props.elRef&&(uo(this.props.elRef,e),e&&this.didMountMisfire&&this.componentDidMount())}}render(){let{props:e}=this,t=yut(e.classNameGenerator,e.renderProps);if(e.children){let n=b3(e,t,this.handleEl),a=e.children(this.InnerContent,e.renderProps,n);return e.elTag?_(e.elTag,n,a):a}else return _(yD,Object.assign(Object.assign({},e),{elRef:this.handleEl,elTag:e.elTag||"div",elClasses:(e.elClasses||[]).concat(t),renderId:this.context}))}componentDidMount(){var e,t;this.el?(t=(e=this.props).didMount)===null||t===void 0||t.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.el})):this.didMountMisfire=!0}componentWillUnmount(){var e,t;(t=(e=this.props).willUnmount)===null||t===void 0||t.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.el}))}};Ln.contextType=T3;co=class extends Pt{render(){let{props:e,context:t}=this,{options:n}=t,a={view:t.viewApi};return _(Ln,{elRef:e.elRef,elTag:e.elTag||"div",elAttrs:e.elAttrs,elClasses:[...w3(e.viewSpec),...e.elClasses||[]],elStyle:e.elStyle,renderProps:a,classNameGenerator:n.viewClassNames,generatorName:void 0,didMount:n.viewDidMount,willUnmount:n.viewWillUnmount},()=>e.children)}};Ag=class{constructor(e){this.props=e,this.initHiddenDays()}buildPrev(e,t,n){let{dateEnv:a}=this.props,i=a.subtract(a.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(i,-1,n)}buildNext(e,t,n){let{dateEnv:a}=this.props,i=a.add(a.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(i,1,n)}build(e,t,n=!0){let{props:a}=this,i,s,o,l,c,d;return i=this.buildValidRange(),i=this.trimHiddenDays(i),n&&(e=but(e,i)),s=this.buildCurrentRangeInfo(e,t),o=/^(year|month|week|day)$/.test(s.unit),l=this.buildRenderRange(this.trimHiddenDays(s.range),s.unit,o),l=this.trimHiddenDays(l),c=l,a.showNonCurrentDates||(c=Vi(c,s.range)),c=this.adjustActiveRange(c),c=Vi(c,i),d=UF(s.range,i),Xo(l,e)||(e=l.start),{currentDate:e,validRange:i,currentRange:s.range,currentRangeUnit:s.unit,isRangeAllDay:o,activeRange:c,renderRange:l,slotMinTime:a.slotMinTime,slotMaxTime:a.slotMaxTime,isValid:d,dateIncrement:this.buildDateIncrement(s.duration)}}buildValidRange(){let e=this.props.validRangeInput,t=typeof e=="function"?e.call(this.props.calendarApi,this.props.dateEnv.toDate(this.props.nowManager.getDateMarker())):e;return this.refineRange(t)||{start:null,end:null}}buildCurrentRangeInfo(e,t){let{props:n}=this,a=null,i=null,s=null,o;return n.duration?(a=n.duration,i=n.durationUnit,s=this.buildRangeFromDuration(e,t,a,i)):(o=this.props.dayCount)?(i="day",s=this.buildRangeFromDayCount(e,t,o)):(s=this.buildCustomVisibleRange(e))?i=n.dateEnv.greatestWholeUnit(s.start,s.end).unit:(a=this.getFallbackDuration(),i=fD(a).unit,s=this.buildRangeFromDuration(e,t,a,i)),{duration:a,unit:i,range:s}}getFallbackDuration(){return mt({day:1})}adjustActiveRange(e){let{dateEnv:t,usesMinMaxTime:n,slotMinTime:a,slotMaxTime:i}=this.props,{start:s,end:o}=e;return n&&(Rb(a)<0&&(s=gr(s),s=t.add(s,a)),Rb(i)>1&&(o=gr(o),o=hn(o,-1),o=t.add(o,i))),{start:s,end:o}}buildRangeFromDuration(e,t,n,a){let{dateEnv:i,dateAlignment:s}=this.props,o,l,c;if(!s){let{dateIncrement:u}=this.props;u&&lo(u)<lo(n)?s=fD(u).unit:s=a}Rb(n)<=1&&this.isHiddenDay(o)&&(o=this.skipHiddenDays(o,t),o=gr(o));function d(){o=i.startOf(e,s),l=i.add(o,n),c={start:o,end:l}}return d(),this.trimHiddenDays(c)||(e=this.skipHiddenDays(e,t),d()),c}buildRangeFromDayCount(e,t,n){let{dateEnv:a,dateAlignment:i}=this.props,s=0,o=e,l;i&&(o=a.startOf(o,i)),o=gr(o),o=this.skipHiddenDays(o,t),l=o;do l=hn(l,1),this.isHiddenDay(l)||(s+=1);while(s<n);return{start:o,end:l}}buildCustomVisibleRange(e){let{props:t}=this,n=t.visibleRangeInput,a=typeof n=="function"?n.call(t.calendarApi,t.dateEnv.toDate(e)):n,i=this.refineRange(a);return i&&(i.start==null||i.end==null)?null:i}buildRenderRange(e,t,n){return e}buildDateIncrement(e){let{dateIncrement:t}=this.props,n;return t||((n=this.props.dateAlignment)?mt(1,n):e||mt({days:1}))}refineRange(e){if(e){let t=vut(e,this.props.dateEnv);return t&&(t=HF(t)),t}return null}initHiddenDays(){let e=this.props.hiddenDays||[],t=[],n=0,a;for(this.props.weekends===!1&&e.push(0,6),a=0;a<7;a+=1)(t[a]=e.indexOf(a)!==-1)||(n+=1);if(!n)throw new Error("invalid hiddenDays");this.isHiddenDayHash=t}trimHiddenDays(e){let{start:t,end:n}=e;return t&&(t=this.skipHiddenDays(t)),n&&(n=this.skipHiddenDays(n,-1,!0)),t==null||n==null||t<n?{start:t,end:n}:null}isHiddenDay(e){return e instanceof Date&&(e=e.getUTCDay()),this.isHiddenDayHash[e]}skipHiddenDays(e,t=1,n=!1){for(;this.isHiddenDayHash[(e.getUTCDay()+(n?t:0)+7)%7];)e=hn(e,t);return e}};CF={id:String,groupId:String,title:String,url:String,interactive:Boolean},a0e={start:U,end:U,date:U,allDay:Boolean},Sut=Object.assign(Object.assign(Object.assign({},CF),a0e),{extendedProps:U});AF={display:String,editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:U,overlap:U,allow:U,className:e3,classNames:e3,color:String,backgroundColor:String,borderColor:String,textColor:String},Mut={display:null,startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};_ut={id:String,defaultAllDay:Boolean,url:String,format:String,events:U,eventDataTransform:U,success:U,failure:U};Ju=class{constructor(){this.handlers={},this.thisContext=null}setThisContext(e){this.thisContext=e}setOptions(e){this.options=e}on(e,t){zut(this.handlers,e,t)}off(e,t){jut(this.handlers,e,t)}trigger(e,...t){let n=this.handlers[e]||[],a=this.options&&this.options[e],i=[].concat(a||[],n);for(let s of i)s.apply(this.thisContext,t)}hasHandlers(e){return!!(this.handlers[e]&&this.handlers[e].length||this.options&&this.options[e])}};$ut={startTime:"09:00",endTime:"17:00",daysOfWeek:[1,2,3,4,5],display:"inverse-background",classNames:"fc-non-business",groupId:"_businessHours"};Ym=class{constructor(e,t){this.context=e,this.internalEventSource=t}remove(){this.context.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:this.internalEventSource.sourceId})}refetch(){this.context.dispatch({type:"FETCH_EVENT_SOURCES",sourceIds:[this.internalEventSource.sourceId],isRefetch:!0})}get id(){return this.internalEventSource.publicId}get url(){return this.internalEventSource.meta.url}get format(){return this.internalEventSource.meta.format}},Or=class r{constructor(e,t,n){this._context=e,this._def=t,this._instance=n||null}setProp(e,t){if(e in a0e)console.warn("Could not set date-related prop 'name'. Use one of the date-related methods instead.");else if(e==="id")t=CF[e](t),this.mutate({standardProps:{publicId:t}});else if(e in CF)t=CF[e](t),this.mutate({standardProps:{[e]:t}});else if(e in AF){let n=AF[e](t);e==="color"?n={backgroundColor:t,borderColor:t}:e==="editable"?n={startEditable:t,durationEditable:t}:n={[e]:t},this.mutate({standardProps:{ui:n}})}else console.warn(`Could not set prop '${e}'. Use setExtendedProp instead.`)}setExtendedProp(e,t){this.mutate({extendedProps:{[e]:t}})}setStart(e,t={}){let{dateEnv:n}=this._context,a=n.createMarker(e);if(a&&this._instance){let i=this._instance.range,s=Zm(i.start,a,n,t.granularity);t.maintainDuration?this.mutate({datesDelta:s}):this.mutate({startDelta:s})}}setEnd(e,t={}){let{dateEnv:n}=this._context,a;if(!(e!=null&&(a=n.createMarker(e),!a))&&this._instance)if(a){let i=Zm(this._instance.range.end,a,n,t.granularity);this.mutate({endDelta:i})}else this.mutate({standardProps:{hasEnd:!1}})}setDates(e,t,n={}){let{dateEnv:a}=this._context,i={allDay:n.allDay},s=a.createMarker(e),o;if(s&&!(t!=null&&(o=a.createMarker(t),!o))&&this._instance){let l=this._instance.range;n.allDay===!0&&(l=n0e(l));let c=Zm(l.start,s,a,n.granularity);if(o){let d=Zm(l.end,o,a,n.granularity);Odt(c,d)?this.mutate({datesDelta:c,standardProps:i}):this.mutate({startDelta:c,endDelta:d,standardProps:i})}else i.hasEnd=!1,this.mutate({datesDelta:c,standardProps:i})}}moveStart(e){let t=mt(e);t&&this.mutate({startDelta:t})}moveEnd(e){let t=mt(e);t&&this.mutate({endDelta:t})}moveDates(e){let t=mt(e);t&&this.mutate({datesDelta:t})}setAllDay(e,t={}){let n={allDay:e},{maintainDuration:a}=t;a==null&&(a=this._context.options.allDayMaintainDuration),this._def.allDay!==e&&(n.hasEnd=a),this.mutate({standardProps:n})}formatRange(e){let{dateEnv:t}=this._context,n=this._instance,a=Kt(e);return this._def.hasEnd?t.formatRange(n.range.start,n.range.end,a,{forcedStartTzo:n.forcedStartTzo,forcedEndTzo:n.forcedEndTzo}):t.format(n.range.start,a,{forcedTzo:n.forcedStartTzo})}mutate(e){let t=this._instance;if(t){let n=this._def,a=this._context,{eventStore:i}=a.getCurrentData(),s=RD(i,t.instanceId);s=FD(s,{"":{display:"",startEditable:!0,durationEditable:!0,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]}},e,a);let l=new r(a,n,t);this._def=s.defs[n.defId],this._instance=s.instances[t.instanceId],a.dispatch({type:"MERGE_EVENTS",eventStore:s}),a.emitter.trigger("eventChange",{oldEvent:l,event:this,relatedEvents:hd(s,a,t),revert(){a.dispatch({type:"RESET_EVENTS",eventStore:i})}})}}remove(){let e=this._context,t=c0e(this);e.dispatch({type:"REMOVE_EVENTS",eventStore:t}),e.emitter.trigger("eventRemove",{event:this,relatedEvents:[],revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:t})}})}get source(){let{sourceId:e}=this._def;return e?new Ym(this._context,this._context.getCurrentData().eventSources[e]):null}get start(){return this._instance?this._context.dateEnv.toDate(this._instance.range.start):null}get end(){return this._instance&&this._def.hasEnd?this._context.dateEnv.toDate(this._instance.range.end):null}get startStr(){let e=this._instance;return e?this._context.dateEnv.formatIso(e.range.start,{omitTime:this._def.allDay,forcedTzo:e.forcedStartTzo}):""}get endStr(){let e=this._instance;return e&&this._def.hasEnd?this._context.dateEnv.formatIso(e.range.end,{omitTime:this._def.allDay,forcedTzo:e.forcedEndTzo}):""}get id(){return this._def.publicId}get groupId(){return this._def.groupId}get allDay(){return this._def.allDay}get title(){return this._def.title}get url(){return this._def.url}get display(){return this._def.ui.display||"auto"}get startEditable(){return this._def.ui.startEditable}get durationEditable(){return this._def.ui.durationEditable}get constraint(){return this._def.ui.constraints[0]||null}get overlap(){return this._def.ui.overlap}get allow(){return this._def.ui.allows[0]||null}get backgroundColor(){return this._def.ui.backgroundColor}get borderColor(){return this._def.ui.borderColor}get textColor(){return this._def.ui.textColor}get classNames(){return this._def.ui.classNames}get extendedProps(){return this._def.extendedProps}toPlainObject(e={}){let t=this._def,{ui:n}=t,{startStr:a,endStr:i}=this,s={allDay:t.allDay};return t.title&&(s.title=t.title),a&&(s.start=a),i&&(s.end=i),t.publicId&&(s.id=t.publicId),t.groupId&&(s.groupId=t.groupId),t.url&&(s.url=t.url),n.display&&n.display!=="auto"&&(s.display=n.display),e.collapseColor&&n.backgroundColor&&n.backgroundColor===n.borderColor?s.color=n.backgroundColor:(n.backgroundColor&&(s.backgroundColor=n.backgroundColor),n.borderColor&&(s.borderColor=n.borderColor)),n.textColor&&(s.textColor=n.textColor),n.classNames.length&&(s.classNames=n.classNames),Object.keys(t.extendedProps).length&&(e.collapseExtendedProps?Object.assign(s,t.extendedProps):s.extendedProps=t.extendedProps),s}toJSON(){return this.toPlainObject()}};Zut={start:U,end:U,allDay:Boolean};IF=class extends Error{constructor(e,t){super(e),this.response=t}};bD=class extends Pt{constructor(){super(...arguments),this.state={forPrint:!1},this.handleBeforePrint=()=>{gD(()=>{this.setState({forPrint:!0})})},this.handleAfterPrint=()=>{gD(()=>{this.setState({forPrint:!1})})}}render(){let{props:e}=this,{options:t}=e,{forPrint:n}=this.state,a=n||t.height==="auto"||t.contentHeight==="auto",i=!a&&t.height!=null?t.height:"",s=["fc",n?"fc-media-print":"fc-media-screen",`fc-direction-${t.direction}`,e.theme.getClass("root")];return O3()||s.push("fc-liquid-hack"),e.children(s,i,a,n)}componentDidMount(){let{emitter:e}=this.props;e.on("_beforeprint",this.handleBeforePrint),e.on("_afterprint",this.handleAfterPrint)}componentWillUnmount(){let{emitter:e}=this.props;e.off("_beforeprint",this.handleBeforePrint),e.off("_afterprint",this.handleAfterPrint)}},ec=class{constructor(e){this.component=e.component,this.isHitComboAllowed=e.isHitComboAllowed||null}destroy(){}};Ug={},vs=class extends Ha{constructor(e,t){super(e,t),this.handleRefresh=()=>{let n=this.computeTiming();n.state.nowDate.valueOf()!==this.state.nowDate.valueOf()&&this.setState(n.state),this.clearTimeout(),this.setTimeout(n.waitMs)},this.handleVisibilityChange=()=>{document.hidden||this.handleRefresh()},this.state=this.computeTiming().state}render(){let{props:e,state:t}=this;return e.children(t.nowDate,t.todayRange)}componentDidMount(){this.setTimeout(),this.context.nowManager.addResetListener(this.handleRefresh),document.addEventListener("visibilitychange",this.handleVisibilityChange)}componentDidUpdate(e){e.unit!==this.props.unit&&(this.clearTimeout(),this.setTimeout())}componentWillUnmount(){this.clearTimeout(),this.context.nowManager.removeResetListener(this.handleRefresh),document.removeEventListener("visibilitychange",this.handleVisibilityChange)}computeTiming(){let{props:e,context:t}=this,n=t.nowManager.getDateMarker(),{nowIndicatorSnap:a}=t.options;a==="auto"&&(a=/year|month|week|day/.test(e.unit)||(e.unitValue||1)===1);let i,s;return a?(i=t.dateEnv.startOf(n,e.unit),s=t.dateEnv.add(i,mt(1,e.unit)).valueOf()-n.valueOf()):(i=n,s=1e3*60),s=Math.min(1e3*60*60*24,s),{state:{nowDate:i,todayRange:npt(i)},waitMs:s}}setTimeout(e=this.computeTiming().waitMs){this.timeoutId=setTimeout(()=>{let t=this.computeTiming();this.setState(t.state,()=>{this.setTimeout(t.waitMs)})},e)}clearTimeout(){this.timeoutId&&clearTimeout(this.timeoutId)}};vs.contextType=tl;TD=class{getCurrentData(){return this.currentDataManager.getCurrentData()}dispatch(e){this.currentDataManager.dispatch(e)}get view(){return this.getCurrentData().viewApi}batchRendering(e){e()}updateSize(){this.trigger("_resize",!0)}setOption(e,t){this.dispatch({type:"SET_OPTION",optionName:e,rawOptionValue:t})}getOption(e){return this.currentDataManager.currentCalendarOptionsInput[e]}getAvailableLocaleCodes(){return Object.keys(this.getCurrentData().availableRawLocales)}on(e,t){let{currentDataManager:n}=this;n.currentCalendarOptionsRefiners[e]?n.emitter.on(e,t):console.warn(`Unknown listener name '${e}'`)}off(e,t){this.currentDataManager.emitter.off(e,t)}trigger(e,...t){this.currentDataManager.emitter.trigger(e,...t)}changeView(e,t){this.batchRendering(()=>{if(this.unselect(),t)if(t.start&&t.end)this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e}),this.dispatch({type:"SET_OPTION",optionName:"visibleRange",rawOptionValue:t});else{let{dateEnv:n}=this.getCurrentData();this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e,dateMarker:n.createMarker(t)})}else this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e})})}zoomTo(e,t){let n=this.getCurrentData(),a;t=t||"day",a=n.viewSpecs[t]||this.getUnitViewSpec(t),this.unselect(),a?this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:a.type,dateMarker:e}):this.dispatch({type:"CHANGE_DATE",dateMarker:e})}getUnitViewSpec(e){let{viewSpecs:t,toolbarConfig:n}=this.getCurrentData(),a=[].concat(n.header?n.header.viewsWithButtons:[],n.footer?n.footer.viewsWithButtons:[]),i,s;for(let o in t)a.push(o);for(i=0;i<a.length;i+=1)if(s=t[a[i]],s&&s.singleUnit===e)return s;return null}prev(){this.unselect(),this.dispatch({type:"PREV"})}next(){this.unselect(),this.dispatch({type:"NEXT"})}prevYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,-1)})}nextYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,1)})}today(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.nowManager.getDateMarker()})}gotoDate(e){let t=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.createMarker(e)})}incrementDate(e){let t=this.getCurrentData(),n=mt(e);n&&(this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.add(t.currentDate,n)}))}getDate(){let e=this.getCurrentData();return e.dateEnv.toDate(e.currentDate)}formatDate(e,t){let{dateEnv:n}=this.getCurrentData();return n.format(n.createMarker(e),Kt(t))}formatRange(e,t,n){let{dateEnv:a}=this.getCurrentData();return a.formatRange(a.createMarker(e),a.createMarker(t),Kt(n),n)}formatIso(e,t){let{dateEnv:n}=this.getCurrentData();return n.formatIso(n.createMarker(e),{omitTime:t})}select(e,t){let n;t==null?e.start!=null?n=e:n={start:e,end:null}:n={start:e,end:t};let a=this.getCurrentData(),i=Qut(n,a.dateEnv,mt({days:1}));i&&(this.dispatch({type:"SELECT_DATES",selection:i}),WF(i,null,a))}unselect(e){let t=this.getCurrentData();t.dateSelection&&(this.dispatch({type:"UNSELECT_DATES"}),Uut(e,t))}addEvent(e,t){if(e instanceof Or){let s=e._def,o=e._instance;return this.getCurrentData().eventStore.defs[s.defId]||(this.dispatch({type:"ADD_EVENTS",eventStore:Ig({def:s,instance:o})}),this.triggerEventAdd(e)),e}let n=this.getCurrentData(),a;if(t instanceof Ym)a=t.internalEventSource;else if(typeof t=="boolean")t&&([a]=BF(n.eventSources));else if(t!=null){let s=this.getEventSourceById(t);if(!s)return console.warn(`Could not find an event source with ID "${t}"`),null;a=s.internalEventSource}let i=i0e(e,a,n,!1);if(i){let s=new Or(n,i.def,i.def.recurringDef?null:i.instance);return this.dispatch({type:"ADD_EVENTS",eventStore:Ig(i)}),this.triggerEventAdd(s),s}return null}triggerEventAdd(e){let{emitter:t}=this.getCurrentData();t.trigger("eventAdd",{event:e,relatedEvents:[],revert:()=>{this.dispatch({type:"REMOVE_EVENTS",eventStore:c0e(e)})}})}getEventById(e){let t=this.getCurrentData(),{defs:n,instances:a}=t.eventStore;e=String(e);for(let i in n){let s=n[i];if(s.publicId===e){if(s.recurringDef)return new Or(t,s,null);for(let o in a){let l=a[o];if(l.defId===s.defId)return new Or(t,s,l)}}}return null}getEvents(){let e=this.getCurrentData();return hd(e.eventStore,e)}removeAllEvents(){this.dispatch({type:"REMOVE_ALL_EVENTS"})}getEventSources(){let e=this.getCurrentData(),t=e.eventSources,n=[];for(let a in t)n.push(new Ym(e,t[a]));return n}getEventSourceById(e){let t=this.getCurrentData(),n=t.eventSources;e=String(e);for(let a in n)if(n[a].publicId===e)return new Ym(t,n[a]);return null}addEventSource(e){let t=this.getCurrentData();if(e instanceof Ym)return t.eventSources[e.internalEventSource.sourceId]||this.dispatch({type:"ADD_EVENT_SOURCES",sources:[e.internalEventSource]}),e;let n=E3(e,t);return n?(this.dispatch({type:"ADD_EVENT_SOURCES",sources:[n]}),new Ym(t,n)):null}removeAllEventSources(){this.dispatch({type:"REMOVE_ALL_EVENT_SOURCES"})}refetchEvents(){this.dispatch({type:"FETCH_EVENT_SOURCES",isRefetch:!0})}scrollToTime(e){let t=mt(e);t&&this.trigger("_scrollRequest",{time:t})}};B4=va(),wD=class{constructor(){this.getKeysForEventDefs=_e(this._getKeysForEventDefs),this.splitDateSelection=_e(this._splitDateSpan),this.splitEventStore=_e(this._splitEventStore),this.splitIndividualUi=_e(this._splitIndividualUi),this.splitEventDrag=_e(this._splitInteraction),this.splitEventResize=_e(this._splitInteraction),this.eventUiBuilders={}}splitProps(e){let t=this.getKeyInfo(e),n=this.getKeysForEventDefs(e.eventStore),a=this.splitDateSelection(e.dateSelection),i=this.splitIndividualUi(e.eventUiBases,n),s=this.splitEventStore(e.eventStore,n),o=this.splitEventDrag(e.eventDrag),l=this.splitEventResize(e.eventResize),c={};this.eventUiBuilders=el(t,(d,u)=>this.eventUiBuilders[u]||_e(apt));for(let d in t){let u=t[d],p=s[d]||B4,m=this.eventUiBuilders[d];c[d]={businessHours:u.businessHours||e.businessHours,dateSelection:a[d]||null,eventStore:p,eventUiBases:m(e.eventUiBases[""],u.ui,i[d]),eventSelection:p.instances[e.eventSelection]?e.eventSelection:"",eventDrag:o[d]||null,eventResize:l[d]||null}}return c}_splitDateSpan(e){let t={};if(e){let n=this.getKeysForDateSpan(e);for(let a of n)t[a]=e}return t}_getKeysForEventDefs(e){return el(e.defs,t=>this.getKeysForEventDef(t))}_splitEventStore(e,t){let{defs:n,instances:a}=e,i={};for(let s in n)for(let o of t[s])i[o]||(i[o]=va()),i[o].defs[s]=n[s];for(let s in a){let o=a[s];for(let l of t[o.defId])i[l]&&(i[l].instances[s]=o)}return i}_splitIndividualUi(e,t){let n={};for(let a in e)if(a)for(let i of t[a])n[i]||(n[i]={}),n[i][a]=e[a];return n}_splitInteraction(e){let t={};if(e){let n=this._splitEventStore(e.affectedEvents,this._getKeysForEventDefs(e.affectedEvents)),a=this._getKeysForEventDefs(e.mutatedEvents),i=this._splitEventStore(e.mutatedEvents,a),s=o=>{t[o]||(t[o]={affectedEvents:n[o]||B4,mutatedEvents:i[o]||B4,isEvent:e.isEvent})};for(let o in n)s(o);for(let o in i)s(o)}return t}};ipt=Kt({year:"numeric",month:"long",day:"numeric"}),spt=Kt({week:"long"});U4=null;tc=class{constructor(e,t,n,a){this.els=t;let i=this.originClientRect=e.getBoundingClientRect();n&&this.buildElHorizontals(i.left),a&&this.buildElVerticals(i.top)}buildElHorizontals(e){let t=[],n=[];for(let a of this.els){let i=a.getBoundingClientRect();t.push(i.left-e),n.push(i.right-e)}this.lefts=t,this.rights=n}buildElVerticals(e){let t=[],n=[];for(let a of this.els){let i=a.getBoundingClientRect();t.push(i.top-e),n.push(i.bottom-e)}this.tops=t,this.bottoms=n}leftToIndex(e){let{lefts:t,rights:n}=this,a=t.length,i;for(i=0;i<a;i+=1)if(e>=t[i]&&e<n[i])return i}topToIndex(e){let{tops:t,bottoms:n}=this,a=t.length,i;for(i=0;i<a;i+=1)if(e>=t[i]&&e<n[i])return i}getWidth(e){return this.rights[e]-this.lefts[e]}getHeight(e){return this.bottoms[e]-this.tops[e]}similarTo(e){return TF(this.tops||[],e.tops||[])&&TF(this.bottoms||[],e.bottoms||[])&&TF(this.lefts||[],e.lefts||[])&&TF(this.rights||[],e.rights||[])}};Ng=class{getMaxScrollTop(){return this.getScrollHeight()-this.getClientHeight()}getMaxScrollLeft(){return this.getScrollWidth()-this.getClientWidth()}canScrollVertically(){return this.getMaxScrollTop()>0}canScrollHorizontally(){return this.getMaxScrollLeft()>0}canScrollUp(){return this.getScrollTop()>0}canScrollDown(){return this.getScrollTop()<this.getMaxScrollTop()}canScrollLeft(){return this.getScrollLeft()>0}canScrollRight(){return this.getScrollLeft()<this.getMaxScrollLeft()}},SD=class extends Ng{constructor(e){super(),this.el=e}getScrollTop(){return this.el.scrollTop}getScrollLeft(){return this.el.scrollLeft}setScrollTop(e){this.el.scrollTop=e}setScrollLeft(e){this.el.scrollLeft=e}getScrollWidth(){return this.el.scrollWidth}getScrollHeight(){return this.el.scrollHeight}getClientHeight(){return this.el.clientHeight}getClientWidth(){return this.el.clientWidth}},xD=class extends Ng{getScrollTop(){return window.scrollY}getScrollLeft(){return window.scrollX}setScrollTop(e){window.scroll(window.scrollX,e)}setScrollLeft(e){window.scroll(e,window.scrollY)}getScrollWidth(){return document.documentElement.scrollWidth}getScrollHeight(){return document.documentElement.scrollHeight}getClientHeight(){return document.documentElement.clientHeight}getClientWidth(){return document.documentElement.clientWidth}},ia=class extends Pt{constructor(){super(...arguments),this.uid=tp()}prepareHits(){}queryHit(e,t,n,a){return null}isValidSegDownEl(e){return!this.props.eventDrag&&!this.props.eventResize&&!ya(e,".fc-event-mirror")}isValidDateDownEl(e){return!ya(e,".fc-event:not(.fc-bg-event)")&&!ya(e,".fc-more-link")&&!ya(e,"a[data-navlink]")&&!ya(e,".fc-popover")}},Rg=class{constructor(e=t=>t.thickness||1){this.getEntryThickness=e,this.strictOrder=!1,this.allowReslicing=!1,this.maxCoord=-1,this.maxStackCnt=-1,this.levelCoords=[],this.entriesByLevel=[],this.stackCnts={}}addSegs(e){let t=[];for(let n of e)this.insertEntry(n,t);return t}insertEntry(e,t){let n=this.findInsertion(e);this.isInsertionValid(n,e)?this.insertEntryAt(e,n):this.handleInvalidInsertion(n,e,t)}isInsertionValid(e,t){return(this.maxCoord===-1||e.levelCoord+this.getEntryThickness(t)<=this.maxCoord)&&(this.maxStackCnt===-1||e.stackCnt<this.maxStackCnt)}handleInvalidInsertion(e,t,n){if(this.allowReslicing&&e.touchingEntry){let a=Object.assign(Object.assign({},t),{span:$D(t.span,e.touchingEntry.span)});n.push(a),this.splitEntry(t,e.touchingEntry,n)}else n.push(t)}splitEntry(e,t,n){let a=e.span,i=t.span;a.start<i.start&&this.insertEntry({index:e.index,thickness:e.thickness,span:{start:a.start,end:i.start}},n),a.end>i.end&&this.insertEntry({index:e.index,thickness:e.thickness,span:{start:i.end,end:a.end}},n)}insertEntryAt(e,t){let{entriesByLevel:n,levelCoords:a}=this;t.lateral===-1?(V4(a,t.level,t.levelCoord),V4(n,t.level,[e])):V4(n[t.level],t.lateral,e),this.stackCnts[dd(e)]=t.stackCnt}findInsertion(e){let{levelCoords:t,entriesByLevel:n,strictOrder:a,stackCnts:i}=this,s=t.length,o=0,l=-1,c=-1,d=null,u=0;for(let f=0;f<s;f+=1){let h=t[f];if(!a&&h>=o+this.getEntryThickness(e))break;let g=n[f],v,b=ED(g,e.span.start,CD),k=b[0]+b[1];for(;(v=g[k])&&v.span.start<e.span.end;){let w=h+this.getEntryThickness(v);w>o&&(o=w,d=v,l=f,c=k),w===o&&(u=Math.max(u,i[dd(v)]+1)),k+=1}}let p=0;if(d)for(p=l+1;p<s&&t[p]<o;)p+=1;let m=-1;return p<s&&t[p]===o&&(m=ED(n[p],e.span.end,CD)[0]),{touchingLevel:l,touchingLateral:c,touchingEntry:d,stackCnt:u,levelCoord:o,level:p,lateral:m}}toRects(){let{entriesByLevel:e,levelCoords:t}=this,n=e.length,a=[];for(let i=0;i<n;i+=1){let s=e[i],o=t[i];for(let l of s)a.push(Object.assign(Object.assign({},l),{thickness:this.getEntryThickness(l),levelCoord:o}))}return a}};DD=class{constructor(e,t){this.emitter=new Ju}destroy(){}setMirrorIsVisible(e){}setMirrorNeedsRevert(e){}setAutoScrollEnabled(e){}},Kb={},upt={startTime:mt,duration:mt,create:Boolean,sourceId:String};v0e="fc-col-header-cell";NF=class extends Pt{render(){let{dateEnv:e,options:t,theme:n,viewApi:a}=this.context,{props:i}=this,{date:s,dateProfile:o}=i,l=zD(s,i.todayRange,null,o),c=[v0e].concat(Gb(l,n)),d=e.format(s,i.dayHeaderFormat),u=!l.isDisabled&&i.colCnt>1?gd(this.context,s):{},p=e.toDate(s);e.namedTimeZoneImpl&&(p=ld(p,36e5));let m=Object.assign(Object.assign(Object.assign({date:p,view:a},i.extraRenderProps),{text:d}),l);return _(Ln,{elTag:"th",elClasses:c,elAttrs:Object.assign({role:"columnheader",colSpan:i.colSpan,"data-date":l.isDisabled?void 0:ef(s)},i.extraDataAttrs),renderProps:m,generatorName:"dayHeaderContent",customGenerator:t.dayHeaderContent,defaultGenerator:k0e,classNameGenerator:t.dayHeaderClassNames,didMount:t.dayHeaderDidMount,willUnmount:t.dayHeaderWillUnmount},f=>_("div",{className:"fc-scrollgrid-sync-inner"},!l.isDisabled&&_(f,{elTag:"a",elAttrs:u,elClasses:["fc-col-header-cell-cushion",i.isSticky&&"fc-sticky"]})))}},ppt=Kt({weekday:"long"}),RF=class extends Pt{render(){let{props:e}=this,{dateEnv:t,theme:n,viewApi:a,options:i}=this.context,s=hn(new Date(2592e5),e.dow),o={dow:e.dow,isDisabled:!1,isFuture:!1,isPast:!1,isToday:!1,isOther:!1},l=t.format(s,e.dayHeaderFormat),c=Object.assign(Object.assign(Object.assign(Object.assign({date:s},o),{view:a}),e.extraRenderProps),{text:l});return _(Ln,{elTag:"th",elClasses:[v0e,...Gb(o,n),...e.extraClassNames||[]],elAttrs:Object.assign({role:"columnheader",colSpan:e.colSpan},e.extraDataAttrs),renderProps:c,generatorName:"dayHeaderContent",customGenerator:i.dayHeaderContent,defaultGenerator:k0e,classNameGenerator:i.dayHeaderClassNames,didMount:i.dayHeaderDidMount,willUnmount:i.dayHeaderWillUnmount},d=>_("div",{className:"fc-scrollgrid-sync-inner"},_(d,{elTag:"a",elClasses:["fc-col-header-cell-cushion",e.isSticky&&"fc-sticky"],elAttrs:{"aria-label":t.format(s,ppt)}})))}},Xu=class extends Pt{constructor(){super(...arguments),this.createDayHeaderFormatter=_e(mpt)}render(){let{context:e}=this,{dates:t,dateProfile:n,datesRepDistinctDays:a,renderIntro:i}=this.props,s=this.createDayHeaderFormatter(e.options.dayHeaderFormat,a,t.length);return _(vs,{unit:"day"},(o,l)=>_("tr",{role:"row"},i&&i("day"),t.map(c=>a?_(NF,{key:c.toISOString(),date:c,dateProfile:n,todayRange:l,colCnt:t.length,dayHeaderFormat:s}):_(RF,{key:c.getUTCDay(),dow:c.getUTCDay(),dayHeaderFormat:s}))))}};Fg=class{constructor(e,t){let n=e.start,{end:a}=e,i=[],s=[],o=-1;for(;n<a;)t.isHiddenDay(n)?i.push(o+.5):(o+=1,i.push(o),s.push(n)),n=hn(n,1);this.dates=s,this.indices=i,this.cnt=s.length}sliceRange(e){let t=this.getDateDayIndex(e.start),n=this.getDateDayIndex(hn(e.end,-1)),a=Math.max(0,t),i=Math.min(this.cnt-1,n);return a=Math.ceil(a),i=Math.floor(i),a<=i?{firstIndex:a,lastIndex:i,isStart:t===a,isEnd:n===i}:null}getDateDayIndex(e){let{indices:t}=this,n=Math.floor(md(this.dates[0],e));return n<0?t[0]-1:n>=t.length?t[t.length-1]+1:t[n]}},Og=class{constructor(e,t){let{dates:n}=e,a,i,s;if(t){for(i=n[0].getUTCDay(),a=1;a<n.length&&n[a].getUTCDay()!==i;a+=1);s=Math.ceil(n.length/a)}else s=1,a=n.length;this.rowCnt=s,this.colCnt=a,this.daySeries=e,this.cells=this.buildCells(),this.headerDates=this.buildHeaderDates()}buildCells(){let e=[];for(let t=0;t<this.rowCnt;t+=1){let n=[];for(let a=0;a<this.colCnt;a+=1)n.push(this.buildCell(t,a));e.push(n)}return e}buildCell(e,t){let n=this.daySeries.dates[e*this.colCnt+t];return{key:n.toISOString(),date:n}}buildHeaderDates(){let e=[];for(let t=0;t<this.colCnt;t+=1)e.push(this.cells[0][t].date);return e}sliceRange(e){let{colCnt:t}=this,n=this.daySeries.sliceRange(e),a=[];if(n){let{firstIndex:i,lastIndex:s}=n,o=i;for(;o<=s;){let l=Math.floor(o/t),c=Math.min((l+1)*t,s+1);a.push({row:l,firstCol:o%t,lastCol:(c-1)%t,isStart:n.isStart&&o===i,isEnd:n.isEnd&&c-1===s}),o=c}}return a}},Lg=class{constructor(){this.sliceBusinessHours=_e(this._sliceBusinessHours),this.sliceDateSelection=_e(this._sliceDateSpan),this.sliceEventStore=_e(this._sliceEventStore),this.sliceEventDrag=_e(this._sliceInteraction),this.sliceEventResize=_e(this._sliceInteraction),this.forceDayIfListItem=!1}sliceProps(e,t,n,a,...i){let{eventUiBases:s}=e,o=this.sliceEventStore(e.eventStore,s,t,n,...i);return{dateSelectionSegs:this.sliceDateSelection(e.dateSelection,t,n,s,a,...i),businessHourSegs:this.sliceBusinessHours(e.businessHours,t,n,a,...i),fgEventSegs:o.fg,bgEventSegs:o.bg,eventDrag:this.sliceEventDrag(e.eventDrag,s,t,n,...i),eventResize:this.sliceEventResize(e.eventResize,s,t,n,...i),eventSelection:e.eventSelection}}sliceNowDate(e,t,n,a,...i){return this._sliceDateSpan({range:{start:e,end:ld(e,1)},allDay:!1},t,n,{},a,...i)}_sliceBusinessHours(e,t,n,a,...i){return e?this._sliceEventStore(_g(e,wF(t,!!n),a),{},t,n,...i).bg:[]}_sliceEventStore(e,t,n,a,...i){if(e){let s=Lb(e,t,wF(n,!!a),a);return{bg:this.sliceEventRanges(s.bg,i),fg:this.sliceEventRanges(s.fg,i)}}return{bg:[],fg:[]}}_sliceInteraction(e,t,n,a,...i){if(!e)return null;let s=Lb(e.mutatedEvents,t,wF(n,!!a),a);return{segs:this.sliceEventRanges(s.fg,i),affectedInstances:e.affectedEvents.instances,isEvent:e.isEvent}}_sliceDateSpan(e,t,n,a,i,...s){if(!e)return[];let o=wF(t,!!n),l=Vi(e.range,o);if(l){e=Object.assign(Object.assign({},e),{range:l});let c=tpt(e,a,i),d=this.sliceRange(e.range,...s);for(let u of d)u.eventRange=c;return d}return[]}sliceEventRanges(e,t){let n=[];for(let a of e)n.push(...this.sliceEventRange(a,t));return n}sliceEventRange(e,t){let n=e.range;this.forceDayIfListItem&&e.ui.display==="list-item"&&(n={start:n.start,end:hn(n.start,1)});let a=this.sliceRange(n,...t);for(let i of a)i.eventRange=e,i.isStart=e.isStart&&i.isStart,i.isEnd=e.isEnd&&i.isEnd;return a}};SF=/^(visible|hidden)$/,zb=class extends Pt{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,uo(this.props.elRef,e)}}render(){let{props:e}=this,{liquid:t,liquidIsAbsolute:n}=e,a=t&&n,i=["fc-scroller"];return t&&(n?i.push("fc-scroller-liquid-absolute"):i.push("fc-scroller-liquid")),_("div",{ref:this.handleEl,className:i.join(" "),style:{overflowX:e.overflowX,overflowY:e.overflowY,left:a&&-(e.overcomeLeft||0)||"",right:a&&-(e.overcomeRight||0)||"",bottom:a&&-(e.overcomeBottom||0)||"",marginLeft:!a&&-(e.overcomeLeft||0)||"",marginRight:!a&&-(e.overcomeRight||0)||"",marginBottom:!a&&-(e.overcomeBottom||0)||"",maxHeight:e.maxHeight||""}},e.children)}needsXScrolling(){if(SF.test(this.props.overflowX))return!1;let{el:e}=this,t=this.el.getBoundingClientRect().width-this.getYScrollbarWidth(),{children:n}=e;for(let a=0;a<n.length;a+=1)if(n[a].getBoundingClientRect().width>t)return!0;return!1}needsYScrolling(){if(SF.test(this.props.overflowY))return!1;let{el:e}=this,t=this.el.getBoundingClientRect().height-this.getXScrollbarWidth(),{children:n}=e;for(let a=0;a<n.length;a+=1)if(n[a].getBoundingClientRect().height>t)return!0;return!1}getXScrollbarWidth(){return SF.test(this.props.overflowX)?0:this.el.offsetHeight-this.el.clientHeight}getYScrollbarWidth(){return SF.test(this.props.overflowY)?0:this.el.offsetWidth-this.el.clientWidth}},ks=class{constructor(e){this.masterCallback=e,this.currentMap={},this.depths={},this.callbackMap={},this.handleValue=(t,n)=>{let{depths:a,currentMap:i}=this,s=!1,o=!1;t!==null?(s=n in i,i[n]=t,a[n]=(a[n]||0)+1,o=!0):(a[n]-=1,a[n]||(delete i[n],delete this.callbackMap[n],s=!0)),this.masterCallback&&(s&&this.masterCallback(null,String(n)),o&&this.masterCallback(t,String(n)))}}createRef(e){let t=this.callbackMap[e];return t||(t=this.callbackMap[e]=n=>{this.handleValue(n,String(e))}),t}collect(e,t,n){return QPe(this.currentMap,e,t,n)}getAll(){return BF(this.currentMap)}};Qm=class extends Pt{constructor(){super(...arguments),this.processCols=_e(e=>e,E0e),this.renderMicroColGroup=_e(D0e),this.scrollerRefs=new ks,this.scrollerElRefs=new ks(this._handleScrollerEl.bind(this)),this.state={shrinkWidth:null,forceYScrollbars:!1,scrollerClientWidths:{},scrollerClientHeights:{}},this.handleSizing=()=>{this.safeSetState(Object.assign({shrinkWidth:this.computeShrinkWidth()},this.computeScrollerDims()))}}render(){let{props:e,state:t,context:n}=this,a=e.sections||[],i=this.processCols(e.cols),s=this.renderMicroColGroup(i,t.shrinkWidth),o=A0e(e.liquid,n);e.collapsibleWidth&&o.push("fc-scrollgrid-collapsible");let l=a.length,c=0,d,u=[],p=[],m=[];for(;c<l&&(d=a[c]).type==="header";)u.push(this.renderSection(d,s,!0)),c+=1;for(;c<l&&(d=a[c]).type==="body";)p.push(this.renderSection(d,s,!1)),c+=1;for(;c<l&&(d=a[c]).type==="footer";)m.push(this.renderSection(d,s,!0)),c+=1;let f=!O3(),h={role:"rowgroup"};return _("table",{role:"grid",className:o.join(" "),style:{height:e.height}},!!(!f&&u.length)&&_("thead",h,...u),!!(!f&&p.length)&&_("tbody",h,...p),!!(!f&&m.length)&&_("tfoot",h,...m),f&&_("tbody",h,...u,...p,...m))}renderSection(e,t,n){return"outerContent"in e?_(Gt,{key:e.key},e.outerContent):_("tr",{key:e.key,role:"presentation",className:_0e(e,this.props.liquid).join(" ")},this.renderChunkTd(e,t,e.chunk,n))}renderChunkTd(e,t,n,a){if("outerContent"in n)return n.outerContent;let{props:i}=this,{forceYScrollbars:s,scrollerClientWidths:o,scrollerClientHeights:l}=this.state,c=x0e(i,e),d=V3(i,e),u=i.liquid?s?"scroll":c?"auto":"hidden":"visible",p=e.key,m=C0e(e,n,{tableColGroupNode:t,tableMinWidth:"",clientWidth:!i.collapsibleWidth&&o[p]!==void 0?o[p]:null,clientHeight:l[p]!==void 0?l[p]:null,expandRows:e.expandRows,syncRowHeights:!1,rowSyncHeights:[],reportRowHeightChange:()=>{}},a);return _(a?"th":"td",{ref:n.elRef,role:"presentation"},_("div",{className:`fc-scroller-harness${d?" fc-scroller-harness-liquid":""}`},_(zb,{ref:this.scrollerRefs.createRef(p),elRef:this.scrollerElRefs.createRef(p),overflowY:u,overflowX:i.liquid?"hidden":"visible",maxHeight:e.maxHeight,liquid:d,liquidIsAbsolute:!0},m)))}_handleScrollerEl(e,t){let n=vpt(this.props.sections,t);n&&uo(n.chunk.scrollerElRef,e)}componentDidMount(){this.handleSizing(),this.context.addResizeHandler(this.handleSizing)}componentDidUpdate(){this.handleSizing()}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}computeShrinkWidth(){return M0e(this.props.cols)?S0e(this.scrollerElRefs.getAll()):0}computeScrollerDims(){let e=f0e(),{scrollerRefs:t,scrollerElRefs:n}=this,a=!1,i={},s={};for(let o in t.currentMap){let l=t.currentMap[o];if(l&&l.needsYScrolling()){a=!0;break}}for(let o of this.props.sections){let l=o.key,c=n.currentMap[l];if(c){let d=c.parentNode;i[l]=Math.floor(d.getBoundingClientRect().width-(a?e.y:0)),s[l]=Math.floor(d.getBoundingClientRect().height)}}return{forceYScrollbars:a,scrollerClientWidths:i,scrollerClientHeights:s}}};Qm.addStateEquality({scrollerClientWidths:gi,scrollerClientHeights:gi});ep=class extends Pt{constructor(){super(...arguments),this.buildPublicEvent=_e((e,t,n)=>new Or(e,t,n)),this.handleEl=e=>{this.el=e,uo(this.props.elRef,e),e&&RPe(e,this.props.seg)}}render(){let{props:e,context:t}=this,{options:n}=t,{seg:a}=e,{eventRange:i}=a,{ui:s}=i,o={event:this.buildPublicEvent(t,i.def,i.instance),view:t.viewApi,timeText:e.timeText,textColor:s.textColor,backgroundColor:s.backgroundColor,borderColor:s.borderColor,isDraggable:!e.disableDragging&&Wut(a,t),isStartResizable:!e.disableResizing&&Yut(a,t),isEndResizable:!e.disableResizing&&Gut(a),isMirror:!!(e.isDragging||e.isResizing||e.isDateSelecting),isStart:!!a.isStart,isEnd:!!a.isEnd,isPast:!!e.isPast,isFuture:!!e.isFuture,isToday:!!e.isToday,isSelected:!!e.isSelected,isDragging:!!e.isDragging,isResizing:!!e.isResizing};return _(Ln,{elRef:this.handleEl,elTag:e.elTag,elAttrs:e.elAttrs,elClasses:[...Kut(o),...a.eventRange.ui.classNames,...e.elClasses||[]],elStyle:e.elStyle,renderProps:o,generatorName:"eventContent",customGenerator:n.eventContent,defaultGenerator:e.defaultGenerator,classNameGenerator:n.eventClassNames,didMount:n.eventDidMount,willUnmount:n.eventWillUnmount},e.children)}componentDidUpdate(e){this.el&&this.props.seg!==e.seg&&RPe(this.el,this.props.seg)}},Jm=class extends Pt{render(){let{props:e,context:t}=this,{options:n}=t,{seg:a}=e,{ui:i}=a.eventRange,s=n.eventTimeFormat||e.defaultTimeFormat,o=rf(a,s,t,e.defaultDisplayEventTime,e.defaultDisplayEventEnd);return _(ep,Object.assign({},e,{elTag:"a",elStyle:{borderColor:i.borderColor,backgroundColor:i.backgroundColor},elAttrs:Yb(a,t),defaultGenerator:kpt,timeText:o}),(l,c)=>_(Gt,null,_(l,{elTag:"div",elClasses:["fc-event-main"],elStyle:{color:c.textColor}}),!!c.isStartResizable&&_("div",{className:"fc-event-resizer fc-event-resizer-start"}),!!c.isEndResizable&&_("div",{className:"fc-event-resizer fc-event-resizer-end"})))}};Jm.addPropsEquality({seg:gi});VD=r=>_(tl.Consumer,null,e=>{let{options:t}=e,n={isAxis:r.isAxis,date:e.dateEnv.toDate(r.date),view:e.viewApi};return _(Ln,{elRef:r.elRef,elTag:r.elTag||"div",elAttrs:r.elAttrs,elClasses:r.elClasses,elStyle:r.elStyle,renderProps:n,generatorName:"nowIndicatorContent",customGenerator:t.nowIndicatorContent,classNameGenerator:t.nowIndicatorClassNames,didMount:t.nowIndicatorDidMount,willUnmount:t.nowIndicatorWillUnmount},r.children)}),bpt=Kt({day:"numeric"}),Xm=class extends Pt{constructor(){super(...arguments),this.refineRenderProps=Hb(Tpt)}render(){let{props:e,context:t}=this,{options:n}=t,a=this.refineRenderProps({date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,isMonthStart:e.isMonthStart||!1,showDayNumber:e.showDayNumber,extraRenderProps:e.extraRenderProps,viewApi:t.viewApi,dateEnv:t.dateEnv,monthStartFormat:n.monthStartFormat});return _(Ln,{elRef:e.elRef,elTag:e.elTag,elAttrs:Object.assign(Object.assign({},e.elAttrs),a.isDisabled?{}:{"data-date":ef(e.date)}),elClasses:[...Gb(a,t.theme),...e.elClasses||[]],elStyle:e.elStyle,renderProps:a,generatorName:"dayCellContent",customGenerator:n.dayCellContent,defaultGenerator:e.defaultGenerator,classNameGenerator:a.isDisabled?void 0:n.dayCellClassNames,didMount:n.dayCellDidMount,willUnmount:n.dayCellWillUnmount},e.children)}};zg=class extends Pt{render(){let{props:e}=this,{seg:t}=e;return _(ep,{elTag:"div",elClasses:["fc-bg-event"],elStyle:{backgroundColor:t.eventRange.ui.backgroundColor},defaultGenerator:wpt,seg:t,timeText:"",isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday,disableDragging:!0,disableResizing:!0})}};WD=r=>_(tl.Consumer,null,e=>{let{dateEnv:t,options:n}=e,{date:a}=r,i=n.weekNumberFormat||r.defaultFormat,s=t.computeWeekNumber(a),o=t.format(a,i),l={num:s,text:o,date:a};return _(Ln,{elRef:r.elRef,elTag:r.elTag,elAttrs:r.elAttrs,elClasses:r.elClasses,elStyle:r.elStyle,renderProps:l,generatorName:"weekNumberContent",customGenerator:n.weekNumberContent,defaultGenerator:Spt,classNameGenerator:n.weekNumberClassNames,didMount:n.weekNumberDidMount,willUnmount:n.weekNumberWillUnmount},r.children)});W4=10,t3=class extends Pt{constructor(){super(...arguments),this.state={titleId:bs()},this.handleRootEl=e=>{this.rootEl=e,this.props.elRef&&uo(this.props.elRef,e)},this.handleDocumentMouseDown=e=>{let t=OF(e);this.rootEl.contains(t)||this.handleCloseClick()},this.handleDocumentKeyDown=e=>{e.key==="Escape"&&this.handleCloseClick()},this.handleCloseClick=()=>{let{onClose:e}=this.props;e&&e()}}render(){let{theme:e,options:t}=this.context,{props:n,state:a}=this,i=["fc-popover",e.getClass("popover")].concat(n.extraClassNames||[]);return O4(_("div",Object.assign({},n.extraAttrs,{id:n.id,className:i.join(" "),"aria-labelledby":a.titleId,ref:this.handleRootEl}),_("div",{className:"fc-popover-header "+e.getClass("popoverHeader")},_("span",{className:"fc-popover-title",id:a.titleId},n.title),_("span",{className:"fc-popover-close "+e.getIconClass("close"),title:t.closeHint,onClick:this.handleCloseClick})),_("div",{className:"fc-popover-body "+e.getClass("popoverContent")},n.children)),n.parentEl)}componentDidMount(){document.addEventListener("mousedown",this.handleDocumentMouseDown),document.addEventListener("keydown",this.handleDocumentKeyDown),this.updateSize()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleDocumentMouseDown),document.removeEventListener("keydown",this.handleDocumentKeyDown)}updateSize(){let{isRtl:e}=this.context,{alignmentEl:t,alignGridTop:n}=this.props,{rootEl:a}=this,i=cpt(t);if(i){let s=a.getBoundingClientRect(),o=n?ya(t,".fc-scrollgrid").getBoundingClientRect().top:i.top,l=e?i.right-s.width:i.left;o=Math.max(o,W4),l=Math.min(l,document.documentElement.clientWidth-W4-s.width),l=Math.max(l,W4);let c=a.offsetParent.getBoundingClientRect();$g(a,{top:o-c.top,left:l-c.left})}}},r3=class extends ia{constructor(){super(...arguments),this.handleRootEl=e=>{this.rootEl=e,e?this.context.registerInteractiveComponent(this,{el:e,useEventCenter:!1}):this.context.unregisterInteractiveComponent(this)}}render(){let{options:e,dateEnv:t}=this.context,{props:n}=this,{startDate:a,todayRange:i,dateProfile:s}=n,o=t.format(a,e.dayPopoverFormat);return _(Xm,{elRef:this.handleRootEl,date:a,dateProfile:s,todayRange:i},(l,c,d)=>_(t3,{elRef:d.ref,id:n.id,title:o,extraClassNames:["fc-more-popover"].concat(d.className||[]),extraAttrs:d,parentEl:n.parentEl,alignmentEl:n.alignmentEl,alignGridTop:n.alignGridTop,onClose:n.onClose},Qb(e)&&_(l,{elTag:"div",elClasses:["fc-more-popover-misc"]}),n.children))}queryHit(e,t,n,a){let{rootEl:i,props:s}=this;return e>=0&&e<n&&t>=0&&t<a?{dateProfile:s.dateProfile,dateSpan:Object.assign({allDay:!s.forceTimed,range:{start:s.startDate,end:s.endDate}},s.extraDateSpan),dayEl:i,rect:{left:0,top:0,right:n,bottom:a},layer:1}:null}},jg=class extends Pt{constructor(){super(...arguments),this.state={isPopoverOpen:!1,popoverId:bs()},this.handleLinkEl=e=>{this.linkEl=e,this.props.elRef&&uo(this.props.elRef,e)},this.handleClick=e=>{let{props:t,context:n}=this,{moreLinkClick:a}=n.options,i=FPe(t).start;function s(o){let{def:l,instance:c,range:d}=o.eventRange;return{event:new Or(n,l,c),start:n.dateEnv.toDate(d.start),end:n.dateEnv.toDate(d.end),isStart:o.isStart,isEnd:o.isEnd}}typeof a=="function"&&(a=a({date:i,allDay:!!t.allDayDate,allSegs:t.allSegs.map(s),hiddenSegs:t.hiddenSegs.map(s),jsEvent:e,view:n.viewApi})),!a||a==="popover"?this.setState({isPopoverOpen:!0}):typeof a=="string"&&n.calendarApi.zoomTo(i,a)},this.handlePopoverClose=()=>{this.setState({isPopoverOpen:!1})}}render(){let{props:e,state:t}=this;return _(tl.Consumer,null,n=>{let{viewApi:a,options:i,calendarApi:s}=n,{moreLinkText:o}=i,{moreCnt:l}=e,c=FPe(e),d=typeof o=="function"?o.call(s,l):`+${l} ${o}`,u=Bb(i.moreLinkHint,[l],d),p={num:l,shortText:`+${l}`,text:d,view:a};return _(Gt,null,!!e.moreCnt&&_(Ln,{elTag:e.elTag||"a",elRef:this.handleLinkEl,elClasses:[...e.elClasses||[],"fc-more-link"],elStyle:e.elStyle,elAttrs:Object.assign(Object.assign(Object.assign({},e.elAttrs),UPe(this.handleClick)),{title:u,"aria-expanded":t.isPopoverOpen,"aria-controls":t.isPopoverOpen?t.popoverId:""}),renderProps:p,generatorName:"moreLinkContent",customGenerator:i.moreLinkContent,defaultGenerator:e.defaultGenerator||xpt,classNameGenerator:i.moreLinkClassNames,didMount:i.moreLinkDidMount,willUnmount:i.moreLinkWillUnmount},e.children),t.isPopoverOpen&&_(r3,{id:t.popoverId,startDate:c.start,endDate:c.end,dateProfile:e.dateProfile,todayRange:e.todayRange,extraDateSpan:e.extraDateSpan,parentEl:this.parentEl,alignmentEl:e.alignmentElRef?e.alignmentElRef.current:this.linkEl,alignGridTop:e.alignGridTop,forceTimed:e.forceTimed,onClose:this.handlePopoverClose},e.popoverContent()))})}componentDidMount(){this.updateParentEl()}componentDidUpdate(){this.updateParentEl()}updateParentEl(){this.linkEl&&(this.parentEl=ya(this.linkEl,".fc-view-harness"))}}});function Mpt(r){let e=r.length>0?r[0].code:"en",t=Ppt.concat(r),n={en:j0e};for(let a of t)n[a.code]=a;return{map:n,defaultCode:e}}function $0e(r,e){return typeof r=="object"&&!Array.isArray(r)?B0e(r.code,[r.code],r):Apt(r,e)}function Apt(r,e){let t=[].concat(r||[]),n=_pt(t,e)||j0e;return B0e(r,t,n)}function _pt(r,e){for(let t=0;t<r.length;t+=1){let n=r[t].toLocaleLowerCase().split("-");for(let a=n.length;a>0;a-=1){let i=n.slice(0,a).join("-");if(e[i])return e[i]}}return null}function B0e(r,e,t){let n=$F([z0e,t],["buttonText"]);delete n.code;let{week:a}=n;return delete n.week,{codeArg:r,codes:e,week:a,simpleNumberFormat:new Intl.NumberFormat(r),options:n}}function yi(r){return{id:tp(),name:r.name,premiumReleaseDate:r.premiumReleaseDate?new Date(r.premiumReleaseDate):void 0,deps:r.deps||[],reducers:r.reducers||[],isLoadingFuncs:r.isLoadingFuncs||[],contextInit:[].concat(r.contextInit||[]),eventRefiners:r.eventRefiners||{},eventDefMemberAdders:r.eventDefMemberAdders||[],eventSourceRefiners:r.eventSourceRefiners||{},isDraggableTransformers:r.isDraggableTransformers||[],eventDragMutationMassagers:r.eventDragMutationMassagers||[],eventDefMutationAppliers:r.eventDefMutationAppliers||[],dateSelectionTransformers:r.dateSelectionTransformers||[],datePointTransforms:r.datePointTransforms||[],dateSpanTransforms:r.dateSpanTransforms||[],views:r.views||{},viewPropsTransformers:r.viewPropsTransformers||[],isPropsValid:r.isPropsValid||null,externalDefTransforms:r.externalDefTransforms||[],viewContainerAppends:r.viewContainerAppends||[],eventDropTransformers:r.eventDropTransformers||[],componentInteractions:r.componentInteractions||[],calendarInteractions:r.calendarInteractions||[],themeClasses:r.themeClasses||{},eventSourceDefs:r.eventSourceDefs||[],cmdFormatter:r.cmdFormatter,recurringTypes:r.recurringTypes||[],namedTimeZonedImpl:r.namedTimeZonedImpl,initialView:r.initialView||"",elementDraggingImpl:r.elementDraggingImpl,optionChangeHandlers:r.optionChangeHandlers||{},scrollGridImpl:r.scrollGridImpl||null,listenerRefiners:r.listenerRefiners||{},optionRefiners:r.optionRefiners||{},propSetHandlers:r.propSetHandlers||{}}}function Ipt(r,e){let t={},n={premiumReleaseDate:void 0,reducers:[],isLoadingFuncs:[],contextInit:[],eventRefiners:{},eventDefMemberAdders:[],eventSourceRefiners:{},isDraggableTransformers:[],eventDragMutationMassagers:[],eventDefMutationAppliers:[],dateSelectionTransformers:[],datePointTransforms:[],dateSpanTransforms:[],views:{},viewPropsTransformers:[],isPropsValid:null,externalDefTransforms:[],viewContainerAppends:[],eventDropTransformers:[],componentInteractions:[],calendarInteractions:[],themeClasses:{},eventSourceDefs:[],cmdFormatter:null,recurringTypes:[],namedTimeZonedImpl:null,initialView:"",elementDraggingImpl:null,optionChangeHandlers:{},scrollGridImpl:null,listenerRefiners:{},optionRefiners:{},propSetHandlers:{}};function a(i){for(let s of i){let o=s.name,l=t[o];l===void 0?(t[o]=s.id,a(s.deps),n=Rpt(n,s)):l!==s.id&&console.warn(`Duplicate plugin '${o}'`)}}return r&&a(r),a(e),n}function Npt(){let r=[],e=[],t;return(n,a)=>((!t||!pd(n,r)||!pd(a,e))&&(t=Ipt(n,a)),r=n,e=a,t)}function Rpt(r,e){return{premiumReleaseDate:Fpt(r.premiumReleaseDate,e.premiumReleaseDate),reducers:r.reducers.concat(e.reducers),isLoadingFuncs:r.isLoadingFuncs.concat(e.isLoadingFuncs),contextInit:r.contextInit.concat(e.contextInit),eventRefiners:Object.assign(Object.assign({},r.eventRefiners),e.eventRefiners),eventDefMemberAdders:r.eventDefMemberAdders.concat(e.eventDefMemberAdders),eventSourceRefiners:Object.assign(Object.assign({},r.eventSourceRefiners),e.eventSourceRefiners),isDraggableTransformers:r.isDraggableTransformers.concat(e.isDraggableTransformers),eventDragMutationMassagers:r.eventDragMutationMassagers.concat(e.eventDragMutationMassagers),eventDefMutationAppliers:r.eventDefMutationAppliers.concat(e.eventDefMutationAppliers),dateSelectionTransformers:r.dateSelectionTransformers.concat(e.dateSelectionTransformers),datePointTransforms:r.datePointTransforms.concat(e.datePointTransforms),dateSpanTransforms:r.dateSpanTransforms.concat(e.dateSpanTransforms),views:Object.assign(Object.assign({},r.views),e.views),viewPropsTransformers:r.viewPropsTransformers.concat(e.viewPropsTransformers),isPropsValid:e.isPropsValid||r.isPropsValid,externalDefTransforms:r.externalDefTransforms.concat(e.externalDefTransforms),viewContainerAppends:r.viewContainerAppends.concat(e.viewContainerAppends),eventDropTransformers:r.eventDropTransformers.concat(e.eventDropTransformers),calendarInteractions:r.calendarInteractions.concat(e.calendarInteractions),componentInteractions:r.componentInteractions.concat(e.componentInteractions),themeClasses:Object.assign(Object.assign({},r.themeClasses),e.themeClasses),eventSourceDefs:r.eventSourceDefs.concat(e.eventSourceDefs),cmdFormatter:e.cmdFormatter||r.cmdFormatter,recurringTypes:r.recurringTypes.concat(e.recurringTypes),namedTimeZonedImpl:e.namedTimeZonedImpl||r.namedTimeZonedImpl,initialView:r.initialView||e.initialView,elementDraggingImpl:r.elementDraggingImpl||e.elementDraggingImpl,optionChangeHandlers:Object.assign(Object.assign({},r.optionChangeHandlers),e.optionChangeHandlers),scrollGridImpl:e.scrollGridImpl||r.scrollGridImpl,listenerRefiners:Object.assign(Object.assign({},r.listenerRefiners),e.listenerRefiners),optionRefiners:Object.assign(Object.assign({},r.optionRefiners),e.optionRefiners),propSetHandlers:Object.assign(Object.assign({},r.propSetHandlers),e.propSetHandlers)}}function Fpt(r,e){return r===void 0?e:e===void 0?r:new Date(Math.max(r.valueOf(),e.valueOf()))}function Opt(r,e){let t={},n;for(n in r)Y3(n,t,r,e);for(n in e)Y3(n,t,r,e);return t}function Y3(r,e,t,n){if(e[r])return e[r];let a=Lpt(r,e,t,n);return a&&(e[r]=a),a}function Lpt(r,e,t,n){let a=t[r],i=n[r],s=d=>a&&a[d]!==null?a[d]:i&&i[d]!==null?i[d]:null,o=s("component"),l=s("superType"),c=null;if(l){if(l===r)throw new Error("Can't have a custom view type that references itself");c=Y3(l,e,t,n)}return!o&&c&&(o=c.component),o?{type:r,component:o,defaults:Object.assign(Object.assign({},c?c.defaults:{}),a?a.rawOptions:{}),overrides:Object.assign(Object.assign({},c?c.overrides:{}),i?i.rawOptions:{})}:null}function I0e(r){return el(r,zpt)}function zpt(r){let e=typeof r=="function"?{component:r}:r,{component:t}=e;return e.content?t=N0e(e):t&&!(t.prototype instanceof Pt)&&(t=N0e(Object.assign(Object.assign({},e),{content:t}))),{superType:e.type,component:t,rawOptions:e}}function N0e(r){return e=>_(tl.Consumer,null,t=>_(Ln,{elTag:"div",elClasses:w3(t.viewSpec),renderProps:Object.assign(Object.assign({},e),{nextDayThreshold:t.options.nextDayThreshold}),generatorName:void 0,customGenerator:r.content,classNameGenerator:r.classNames,didMount:r.didMount,willUnmount:r.willUnmount}))}function jpt(r,e,t,n){let a=I0e(r),i=I0e(e.views),s=Opt(a,i);return el(s,o=>$pt(o,i,e,t,n))}function $pt(r,e,t,n,a){let i=r.overrides.duration||r.defaults.duration||n.duration||t.duration,s=null,o="",l="",c={};if(i&&(s=Bpt(i),s)){let p=fD(s);o=p.unit,p.value===1&&(l=o,c=e[o]?e[o].rawOptions:{})}let d=p=>{let m=p.buttonText||{},f=r.defaults.buttonTextKey;return f!=null&&m[f]!=null?m[f]:m[r.type]!=null?m[r.type]:m[l]!=null?m[l]:null},u=p=>{let m=p.buttonHints||{},f=r.defaults.buttonTextKey;return f!=null&&m[f]!=null?m[f]:m[r.type]!=null?m[r.type]:m[l]!=null?m[l]:null};return{type:r.type,component:r.component,duration:s,durationUnit:o,singleUnit:l,optionDefaults:r.defaults,optionOverrides:Object.assign(Object.assign({},c),r.overrides),buttonTextOverride:d(n)||d(t)||r.overrides.buttonText,buttonTextDefault:d(a)||r.defaults.buttonText||d(fd)||r.type,buttonTitleOverride:u(n)||u(t)||r.overrides.buttonHint,buttonTitleDefault:u(a)||r.defaults.buttonHint||u(fd)}}function Bpt(r){let e=JSON.stringify(r),t=R0e[e];return t===void 0&&(t=mt(r),R0e[e]=t),t}function Upt(r,e){switch(e.type){case"CHANGE_VIEW_TYPE":r=e.viewType}return r}function Hpt(r,e){switch(e.type){case"CHANGE_DATE":return e.dateMarker;default:return r}}function Vpt(r,e,t){let n=r.initialDate;return n!=null?e.createMarker(n):t.getDateMarker()}function qpt(r,e){switch(e.type){case"SET_OPTION":return Object.assign(Object.assign({},r),{[e.optionName]:e.rawOptionValue});default:return r}}function Wpt(r,e,t,n){let a;switch(e.type){case"CHANGE_VIEW_TYPE":return n.build(e.dateMarker||t);case"CHANGE_DATE":return n.build(e.dateMarker);case"PREV":if(a=n.buildPrev(r,t),a.isValid)return a;break;case"NEXT":if(a=n.buildNext(r,t),a.isValid)return a;break}return r}function Ypt(r,e,t){let n=e?e.activeRange:null;return H0e({},emt(r,t),n,t)}function Gpt(r,e,t,n){let a=t?t.activeRange:null;switch(e.type){case"ADD_EVENT_SOURCES":return H0e(r,e.sources,a,n);case"REMOVE_EVENT_SOURCE":return Zpt(r,e.sourceId);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return t?V0e(r,a,n):r;case"FETCH_EVENT_SOURCES":return r6(r,e.sourceIds?k3(e.sourceIds):q0e(r,n),a,e.isRefetch||!1,n);case"RECEIVE_EVENTS":case"RECEIVE_EVENT_ERROR":return Xpt(r,e.sourceId,e.fetchId,e.fetchRange);case"REMOVE_ALL_EVENT_SOURCES":return{};default:return r}}function Kpt(r,e,t){let n=e?e.activeRange:null;return r6(r,q0e(r,t),n,!0,t)}function U0e(r){for(let e in r)if(r[e].isFetching)return!0;return!1}function H0e(r,e,t,n){let a={};for(let i of e)a[i.sourceId]=i;return t&&(a=V0e(a,t,n)),Object.assign(Object.assign({},r),a)}function Zpt(r,e){return Zu(r,t=>t.sourceId!==e)}function V0e(r,e,t){return r6(r,Zu(r,n=>Qpt(n,e,t)),e,!1,t)}function Qpt(r,e,t){return W0e(r,t)?!t.options.lazyFetching||!r.fetchRange||r.isFetching||e.start<r.fetchRange.start||e.end>r.fetchRange.end:!r.latestFetchId}function r6(r,e,t,n,a){let i={};for(let s in r){let o=r[s];e[s]?i[s]=Jpt(o,t,n,a):i[s]=o}return i}function Jpt(r,e,t,n){let{options:a,calendarApi:i}=n,s=n.pluginHooks.eventSourceDefs[r.sourceDefId],o=tp();return s.fetch({eventSource:r,range:e,isRefetch:t,context:n},l=>{let{rawEvents:c}=l;a.eventSourceSuccess&&(c=a.eventSourceSuccess.call(i,c,l.response)||c),r.success&&(c=r.success.call(i,c,l.response)||c),n.dispatch({type:"RECEIVE_EVENTS",sourceId:r.sourceId,fetchId:o,fetchRange:e,rawEvents:c})},l=>{let c=!1;a.eventSourceFailure&&(a.eventSourceFailure.call(i,l),c=!0),r.failure&&(r.failure(l),c=!0),c||console.warn(l.message,l),n.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:r.sourceId,fetchId:o,fetchRange:e,error:l})}),Object.assign(Object.assign({},r),{isFetching:!0,latestFetchId:o})}function Xpt(r,e,t,n){let a=r[e];return a&&t===a.latestFetchId?Object.assign(Object.assign({},r),{[e]:Object.assign(Object.assign({},a),{isFetching:!1,fetchRange:n})}):r}function q0e(r,e){return Zu(r,t=>W0e(t,e))}function emt(r,e){let t=D3(e),n=[].concat(r.eventSources||[]),a=[];r.initialEvents&&n.unshift(r.initialEvents),r.events&&n.unshift(r.events);for(let i of n){let s=E3(i,e,t);s&&a.push(s)}return a}function W0e(r,e){return!e.pluginHooks.eventSourceDefs[r.sourceDefId].ignoreRange}function tmt(r,e){switch(e.type){case"UNSELECT_DATES":return null;case"SELECT_DATES":return e.selection;default:return r}}function rmt(r,e){switch(e.type){case"UNSELECT_EVENT":return"";case"SELECT_EVENT":return e.eventInstanceId;default:return r}}function nmt(r,e){let t;switch(e.type){case"UNSET_EVENT_DRAG":return null;case"SET_EVENT_DRAG":return t=e.state,{affectedEvents:t.affectedEvents,mutatedEvents:t.mutatedEvents,isEvent:t.isEvent};default:return r}}function amt(r,e){let t;switch(e.type){case"UNSET_EVENT_RESIZE":return null;case"SET_EVENT_RESIZE":return t=e.state,{affectedEvents:t.affectedEvents,mutatedEvents:t.mutatedEvents,isEvent:t.isEvent};default:return r}}function imt(r,e,t,n,a){let i=r.headerToolbar?F0e(r.headerToolbar,r,e,t,n,a):null,s=r.footerToolbar?F0e(r.footerToolbar,r,e,t,n,a):null;return{header:i,footer:s}}function F0e(r,e,t,n,a,i){let s={},o=[],l=!1;for(let c in r){let d=r[c],u=smt(d,e,t,n,a,i);s[c]=u.widgets,o.push(...u.viewsWithButtons),l=l||u.hasTitle}return{sectionWidgets:s,viewsWithButtons:o,hasTitle:l}}function smt(r,e,t,n,a,i){let s=e.direction==="rtl",o=e.customButtons||{},l=t.buttonText||{},c=e.buttonText||{},d=t.buttonHints||{},u=e.buttonHints||{},p=r?r.split(" "):[],m=[],f=!1;return{widgets:p.map(g=>g.split(",").map(v=>{if(v==="title")return f=!0,{buttonName:v};let b,k,w,S,C,E;if(b=o[v])w=D=>{b.click&&b.click.call(D.target,D,D.target)},(S=n.getCustomButtonIconClass(b))||(S=n.getIconClass(v,s))||(C=b.text),E=b.hint||b.text;else if(k=a[v]){m.push(v),w=()=>{i.changeView(v)},(C=k.buttonTextOverride)||(S=n.getIconClass(v,s))||(C=k.buttonTextDefault);let D=k.buttonTextOverride||k.buttonTextDefault;E=Bb(k.buttonTitleOverride||k.buttonTitleDefault||e.viewHint,[D,v],D)}else if(i[v])if(w=()=>{i[v]()},(C=l[v])||(S=n.getIconClass(v,s))||(C=c[v]),v==="prevYear"||v==="nextYear"){let D=v==="prevYear"?"prev":"next";E=Bb(d[D]||u[D],[c.year||"year","year"],c[v])}else E=D=>Bb(d[v]||u[v],[c[D]||D,D],c[v]);return{buttonName:v,buttonClick:w,buttonIcon:S,buttonText:C,buttonHint:E}})),viewsWithButtons:m,hasTitle:f}}function fmt(r,e,t){let{dateEnv:n,options:a}=t,i,s,o,l,c={};return i=r.startParam,i==null&&(i=a.startParam),s=r.endParam,s==null&&(s=a.endParam),o=r.timeZoneParam,o==null&&(o=a.timeZoneParam),typeof r.extraParams=="function"?l=r.extraParams():l=r.extraParams||{},Object.assign(c,l),c[i]=n.formatIso(e.start),c[s]=n.formatIso(e.end),n.timeZone!=="local"&&(c[o]=n.timeZone),c}function vmt(r,e,t,n,a){let i=r?k3(r):null,s=gr(a.start),o=a.end,l=[];for(e&&(e.milliseconds<0?o=hn(o,1):e.milliseconds>=1e3*60*60*24&&(s=hn(s,-1)));s<o;){let c;(!i||i[s.getUTCDay()])&&(e?c=n.add(s,e):c=s,l.push(n.createMarker(t.toDate(c)))),s=hn(s,1)}return l}function O0e(r,e){let t=BF(e.getCurrentData().eventSources);if(t.length===1&&r.length===1&&Array.isArray(t[0]._raw)&&Array.isArray(r[0])){e.dispatch({type:"RESET_RAW_EVENTS",sourceId:t[0].sourceId,rawEvents:r[0]});return}let n=[];for(let a of r){let i=!1;for(let s=0;s<t.length;s+=1)if(t[s]._raw===a){t.splice(s,1),i=!0;break}i||n.push(a)}for(let a of t)e.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:a.sourceId});for(let a of n)e.calendarApi.addEventSource(a)}function bmt(r,e){e.emitter.trigger("datesSet",Object.assign(Object.assign({},N3(r.activeRange,e.dateEnv)),{view:e.viewApi}))}function Tmt(r,e){let{emitter:t}=e;t.hasHandlers("eventsSet")&&t.trigger("eventsSet",hd(r,e))}function Smt(r,e,t){let n;return/^(year|month)$/.test(r.currentRangeUnit)?n=r.currentRange:n=r.activeRange,t.formatRange(n.start,n.end,Kt(e.titleFormat||xmt(r)),{isEndExclusive:r.isRangeAllDay,defaultSeparator:e.titleRangeSeparator})}function xmt(r){let{currentRangeUnit:e}=r;if(e==="year")return{year:"numeric"};if(e==="month")return{year:"numeric",month:"long"};let t=Fb(r.currentRange.start,r.currentRange.end);return t!==null&&t>1?{year:"numeric",month:"short",day:"numeric"}:{year:"numeric",month:"long",day:"numeric"}}function Cmt(r,e,t,n,a,i,s,o){let l=$0e(e||s.defaultCode,s.map);return new hD({calendarSystem:"gregory",timeZone:r,namedTimeZoneImpl:i.namedTimeZonedImpl,locale:l,weekNumberCalculation:t,firstDay:n,weekText:a,cmdFormatter:i.cmdFormatter,defaultSeparator:o})}function Emt(r,e){let t=e.themeClasses[r.themeSystem]||yd;return new t(r)}function Dmt(r){let e=r.dateProfileGeneratorClass||Ag;return new e(r)}function Pmt(r,e,t){return new G3(r,e,t)}function Mmt(r){return el(r,e=>e.ui)}function Amt(r,e,t){let n={"":e};for(let a in r){let i=r[a];i.sourceId&&t[i.sourceId]&&(n[a]=t[i.sourceId])}return n}function _mt(r){let{options:e}=r;return{eventUiSingleBase:Wb({display:e.eventDisplay,editable:e.editable,startEditable:e.eventStartEditable,durationEditable:e.eventDurationEditable,constraint:e.eventConstraint,overlap:typeof e.eventOverlap=="boolean"?e.eventOverlap:void 0,allow:e.eventAllow,backgroundColor:e.eventBackgroundColor,borderColor:e.eventBorderColor,textColor:e.eventTextColor,color:e.eventColor},r),selectionConfig:Wb({constraint:e.selectConstraint,overlap:typeof e.selectOverlap=="boolean"?e.selectOverlap:void 0,allow:e.selectAllow},r)}}function W3(r,e){for(let t of e.pluginHooks.isLoadingFuncs)if(t(r))return!0;return!1}function Imt(r){return M3(r.options.businessHours,r)}function L0e(r,e){for(let t in r)console.warn(`Unknown option '${t}'`+(e?` for view '${e}'`:""))}function Nmt(r,e,t,n,a,i){let s=t.build(a,void 0,!1),o=t.buildPrev(e,n,!1),l=t.buildNext(e,n,!1);return{title:i,activeButton:r.type,navUnit:r.singleUnit,isTodayEnabled:s.isValid&&!Xo(e.currentRange,a),isPrevEnabled:o.isValid,isNextEnabled:l.isValid}}function Rmt(r){return r.map(e=>new e)}var Ppt,z0e,j0e,yd,R0e,G3,omt,lmt,cmt,dmt,umt,pmt,mmt,hmt,gmt,ymt,kmt,wmt,K3,ZF,Z3,Q3,QF,J3,X3,e6,t6,JF,Vg=y(()=>{q3();Ku();pD();Ppt=[],z0e={code:"en",week:{dow:0,doy:4},direction:"ltr",buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day",list:"list"},weekText:"W",weekTextLong:"Week",closeHint:"Close",timeHint:"Time",eventHint:"Event",allDayText:"all-day",moreLinkText:"more",noEventsText:"No events to display"},j0e=Object.assign(Object.assign({},z0e),{buttonHints:{prev:"Previous $0",next:"Next $0",today(r,e){return e==="day"?"Today":`This ${r}`}},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint(r){return`Show ${r} more event${r===1?"":"s"}`}});yd=class extends Qu{};yd.prototype.classes={root:"fc-theme-standard",tableCellShaded:"fc-cell-shaded",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active"};yd.prototype.baseIconClass="fc-icon";yd.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"};yd.prototype.rtlIconClasses={prev:"fc-icon-chevron-right",next:"fc-icon-chevron-left",prevYear:"fc-icon-chevrons-right",nextYear:"fc-icon-chevrons-left"};yd.prototype.iconOverrideOption="buttonIcons";yd.prototype.iconOverrideCustomButtonOption="icon";yd.prototype.iconOverridePrefix="fc-icon-";R0e={};G3=class{constructor(e,t,n){this.type=e,this.getCurrentData=t,this.dateEnv=n}get calendar(){return this.getCurrentData().calendarApi}get title(){return this.getCurrentData().viewTitle}get activeStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start)}get activeEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end)}get currentStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start)}get currentEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end)}getOption(e){return this.getCurrentData().options[e]}},omt={ignoreRange:!0,parseMeta(r){return Array.isArray(r.events)?r.events:null},fetch(r,e){e({rawEvents:r.eventSource.meta})}},lmt=yi({name:"array-event-source",eventSourceDefs:[omt]}),cmt={parseMeta(r){return typeof r.events=="function"?r.events:null},fetch(r,e,t){let{dateEnv:n}=r.context,a=r.eventSource.meta;R3(a.bind(null,N3(r.range,n)),i=>e({rawEvents:i}),t)}},dmt=yi({name:"func-event-source",eventSourceDefs:[cmt]}),umt={method:String,extraParams:U,startParam:String,endParam:String,timeZoneParam:String},pmt={parseMeta(r){return r.url&&(r.format==="json"||!r.format)?{url:r.url,format:"json",method:(r.method||"GET").toUpperCase(),extraParams:r.extraParams,startParam:r.startParam,endParam:r.endParam,timeZoneParam:r.timeZoneParam}:null},fetch(r,e,t){let{meta:n}=r.eventSource,a=fmt(n,r.range,r.context);F3(n.method,n.url,a).then(([i,s])=>{e({rawEvents:i,response:s})},t)}},mmt=yi({name:"json-event-source",eventSourceRefiners:umt,eventSourceDefs:[pmt]});hmt={daysOfWeek:U,startTime:mt,endTime:mt,duration:mt,startRecur:U,endRecur:U},gmt={parse(r,e){if(r.daysOfWeek||r.startTime||r.endTime||r.startRecur||r.endRecur){let t={daysOfWeek:r.daysOfWeek||null,startTime:r.startTime||null,endTime:r.endTime||null,startRecur:r.startRecur?e.createMarker(r.startRecur):null,endRecur:r.endRecur?e.createMarker(r.endRecur):null,dateEnv:e},n;return r.duration&&(n=r.duration),!n&&r.startTime&&r.endTime&&(n=YPe(r.endTime,r.startTime)),{allDayGuess:!r.startTime&&!r.endTime,duration:n,typeData:t}}return null},expand(r,e,t){let n=Vi(e,{start:r.startRecur,end:r.endRecur});return n?vmt(r.daysOfWeek,r.startTime,r.dateEnv,t,n):[]}},ymt=yi({name:"simple-recurring-event",recurringTypes:[gmt],eventRefiners:hmt});kmt=yi({name:"change-handler",optionChangeHandlers:{events(r,e){O0e([r],e)},eventSources:O0e}});wmt=[lmt,dmt,mmt,ymt,kmt,yi({name:"misc",isLoadingFuncs:[r=>U0e(r.eventSources)],propSetHandlers:{dateProfile:bmt,eventStore:Tmt}})],K3=class{constructor(e,t){this.runTaskOption=e,this.drainedOption=t,this.queue=[],this.delayedRunner=new Mg(this.drain.bind(this))}request(e,t){this.queue.push(e),this.delayedRunner.request(t)}pause(e){this.delayedRunner.pause(e)}resume(e,t){this.delayedRunner.resume(e,t)}drain(){let{queue:e}=this;for(;e.length;){let t=[],n;for(;n=e.shift();)this.runTask(n),t.push(n);this.drained(t)}}runTask(e){this.runTaskOption&&this.runTaskOption(e)}drained(e){this.drainedOption&&this.drainedOption(e)}};ZF=class{constructor(){this.resetListeners=new Set}handleInput(e,t){let n=this.dateEnv;if(e!==n&&(typeof t=="function"?this.nowFn=t:n||(this.nowAnchorDate=e.toDate(t?e.createMarker(t):e.createNowMarker()),this.nowAnchorQueried=Date.now()),this.dateEnv=e,n))for(let a of this.resetListeners.values())a()}getDateMarker(){return this.nowAnchorDate?this.dateEnv.timestampToMarker(this.nowAnchorDate.valueOf()+(Date.now()-this.nowAnchorQueried)):this.dateEnv.createMarker(this.nowFn())}addResetListener(e){this.resetListeners.add(e)}removeResetListener(e){this.resetListeners.delete(e)}},Z3=class{constructor(e){this.computeCurrentViewData=_e(this._computeCurrentViewData),this.organizeRawLocales=_e(Mpt),this.buildLocale=_e($0e),this.buildPluginHooks=Npt(),this.buildDateEnv=_e(Cmt),this.buildTheme=_e(Emt),this.parseToolbars=_e(imt),this.buildViewSpecs=_e(jpt),this.buildDateProfileGenerator=Hb(Dmt),this.buildViewApi=_e(Pmt),this.buildViewUiProps=Hb(_mt),this.buildEventUiBySource=_e(Mmt,gi),this.buildEventUiBases=_e(Amt),this.parseContextBusinessHours=Hb(Imt),this.buildTitle=_e(Smt),this.nowManager=new ZF,this.emitter=new Ju,this.actionRunner=new K3(this._handleAction.bind(this),this.updateData.bind(this)),this.currentCalendarOptionsInput={},this.currentCalendarOptionsRefined={},this.currentViewOptionsInput={},this.currentViewOptionsRefined={},this.currentCalendarOptionsRefiners={},this.optionsForRefining=[],this.optionsForHandling=[],this.getCurrentData=()=>this.data,this.dispatch=p=>{this.actionRunner.request(p)},this.props=e,this.actionRunner.pause(),this.nowManager=new ZF;let t={},n=this.computeOptionsData(e.optionOverrides,t,e.calendarApi),a=n.calendarOptions.initialView||n.pluginHooks.initialView,i=this.computeCurrentViewData(a,n,e.optionOverrides,t);e.calendarApi.currentDataManager=this,this.emitter.setThisContext(e.calendarApi),this.emitter.setOptions(i.options);let s={nowManager:this.nowManager,dateEnv:n.dateEnv,options:n.calendarOptions,pluginHooks:n.pluginHooks,calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},o=Vpt(n.calendarOptions,n.dateEnv,this.nowManager),l=i.dateProfileGenerator.build(o);Xo(l.activeRange,o)||(o=l.currentRange.start);for(let p of n.pluginHooks.contextInit)p(s);let c=Ypt(n.calendarOptions,l,s),d={dynamicOptionOverrides:t,currentViewType:a,currentDate:o,dateProfile:l,businessHours:this.parseContextBusinessHours(s),eventSources:c,eventUiBases:{},eventStore:va(),renderableEventStore:va(),dateSelection:null,eventSelection:"",eventDrag:null,eventResize:null,selectionConfig:this.buildViewUiProps(s).selectionConfig},u=Object.assign(Object.assign({},s),d);for(let p of n.pluginHooks.reducers)Object.assign(d,p(null,null,u));W3(d,s)&&this.emitter.trigger("loading",!0),this.state=d,this.updateData(),this.actionRunner.resume()}resetOptions(e,t){let{props:n}=this;t===void 0?n.optionOverrides=e:(n.optionOverrides=Object.assign(Object.assign({},n.optionOverrides||{}),e),this.optionsForRefining.push(...t)),(t===void 0||t.length)&&this.actionRunner.request({type:"NOTHING"})}_handleAction(e){let{props:t,state:n,emitter:a}=this,i=qpt(n.dynamicOptionOverrides,e),s=this.computeOptionsData(t.optionOverrides,i,t.calendarApi),o=Upt(n.currentViewType,e),l=this.computeCurrentViewData(o,s,t.optionOverrides,i);t.calendarApi.currentDataManager=this,a.setThisContext(t.calendarApi),a.setOptions(l.options);let c={nowManager:this.nowManager,dateEnv:s.dateEnv,options:s.calendarOptions,pluginHooks:s.pluginHooks,calendarApi:t.calendarApi,dispatch:this.dispatch,emitter:a,getCurrentData:this.getCurrentData},{currentDate:d,dateProfile:u}=n;this.data&&this.data.dateProfileGenerator!==l.dateProfileGenerator&&(u=l.dateProfileGenerator.build(d)),d=Hpt(d,e),u=Wpt(u,e,d,l.dateProfileGenerator),(e.type==="PREV"||e.type==="NEXT"||!Xo(u.currentRange,d))&&(d=u.currentRange.start);let p=Gpt(n.eventSources,e,u,c),m=s0e(n.eventStore,e,p,u,c),h=U0e(p)&&!l.options.progressiveEventRendering&&n.renderableEventStore||m,{eventUiSingleBase:g,selectionConfig:v}=this.buildViewUiProps(c),b=this.buildEventUiBySource(p),k=this.buildEventUiBases(h.defs,g,b),w={dynamicOptionOverrides:i,currentViewType:o,currentDate:d,dateProfile:u,eventSources:p,eventStore:m,renderableEventStore:h,selectionConfig:v,eventUiBases:k,businessHours:this.parseContextBusinessHours(c),dateSelection:tmt(n.dateSelection,e),eventSelection:rmt(n.eventSelection,e),eventDrag:nmt(n.eventDrag,e),eventResize:amt(n.eventResize,e)},S=Object.assign(Object.assign({},c),w);for(let D of s.pluginHooks.reducers)Object.assign(w,D(n,e,S));let C=W3(n,c),E=W3(w,c);!C&&E?a.trigger("loading",!0):C&&!E&&a.trigger("loading",!1),this.state=w,t.onAction&&t.onAction(e)}updateData(){let{props:e,state:t}=this,n=this.data,a=this.computeOptionsData(e.optionOverrides,t.dynamicOptionOverrides,e.calendarApi),i=this.computeCurrentViewData(t.currentViewType,a,e.optionOverrides,t.dynamicOptionOverrides),s=this.data=Object.assign(Object.assign(Object.assign({nowManager:this.nowManager,viewTitle:this.buildTitle(t.dateProfile,i.options,a.dateEnv),calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},a),i),t),o=a.pluginHooks.optionChangeHandlers,l=n&&n.calendarOptions,c=a.calendarOptions;if(l&&l!==c){l.timeZone!==c.timeZone&&(t.eventSources=s.eventSources=Kpt(s.eventSources,t.dateProfile,s),t.eventStore=s.eventStore=P3(s.eventStore,n.dateEnv,s.dateEnv),t.renderableEventStore=s.renderableEventStore=P3(s.renderableEventStore,n.dateEnv,s.dateEnv));for(let d in o)(this.optionsForHandling.indexOf(d)!==-1||l[d]!==c[d])&&o[d](c[d],s)}this.optionsForHandling=[],e.onData&&e.onData(s)}computeOptionsData(e,t,n){if(!this.optionsForRefining.length&&e===this.stableOptionOverrides&&t===this.stableDynamicOptionOverrides)return this.stableCalendarOptionsData;let{refinedOptions:a,pluginHooks:i,localeDefaults:s,availableLocaleData:o,extra:l}=this.processRawCalendarOptions(e,t);L0e(l);let c=this.buildDateEnv(a.timeZone,a.locale,a.weekNumberCalculation,a.firstDay,a.weekText,i,o,a.defaultRangeSeparator),d=this.buildViewSpecs(i.views,this.stableOptionOverrides,this.stableDynamicOptionOverrides,s),u=this.buildTheme(a,i),p=this.parseToolbars(a,this.stableOptionOverrides,u,d,n);return this.stableCalendarOptionsData={calendarOptions:a,pluginHooks:i,dateEnv:c,viewSpecs:d,theme:u,toolbarConfig:p,localeDefaults:s,availableRawLocales:o.map}}processRawCalendarOptions(e,t){let{locales:n,locale:a}=jF([fd,e,t]),i=this.organizeRawLocales(n),s=i.map,o=this.buildLocale(a||i.defaultCode,s).options,l=this.buildPluginHooks(e.plugins||[],wmt),c=this.currentCalendarOptionsRefiners=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},g3),y3),v3),l.listenerRefiners),l.optionRefiners),d={},u=jF([fd,o,e,t]),p={},m=this.currentCalendarOptionsInput,f=this.currentCalendarOptionsRefined,h=!1;for(let g in u)this.optionsForRefining.indexOf(g)===-1&&(u[g]===m[g]||tf[g]&&g in m&&tf[g](m[g],u[g]))?p[g]=f[g]:c[g]?(p[g]=c[g](u[g]),h=!0):d[g]=m[g];return h&&(this.currentCalendarOptionsInput=u,this.currentCalendarOptionsRefined=p,this.stableOptionOverrides=e,this.stableDynamicOptionOverrides=t),this.optionsForHandling.push(...this.optionsForRefining),this.optionsForRefining=[],{rawOptions:this.currentCalendarOptionsInput,refinedOptions:this.currentCalendarOptionsRefined,pluginHooks:l,availableLocaleData:i,localeDefaults:o,extra:d}}_computeCurrentViewData(e,t,n,a){let i=t.viewSpecs[e];if(!i)throw new Error(`viewType "${e}" is not available. Please make sure you've loaded all neccessary plugins`);let{refinedOptions:s,extra:o}=this.processRawViewOptions(i,t.pluginHooks,t.localeDefaults,n,a);L0e(o),this.nowManager.handleInput(t.dateEnv,s.now);let l=this.buildDateProfileGenerator({dateProfileGeneratorClass:i.optionDefaults.dateProfileGeneratorClass,nowManager:this.nowManager,duration:i.duration,durationUnit:i.durationUnit,usesMinMaxTime:i.optionDefaults.usesMinMaxTime,dateEnv:t.dateEnv,calendarApi:this.props.calendarApi,slotMinTime:s.slotMinTime,slotMaxTime:s.slotMaxTime,showNonCurrentDates:s.showNonCurrentDates,dayCount:s.dayCount,dateAlignment:s.dateAlignment,dateIncrement:s.dateIncrement,hiddenDays:s.hiddenDays,weekends:s.weekends,validRangeInput:s.validRange,visibleRangeInput:s.visibleRange,fixedWeekCount:s.fixedWeekCount}),c=this.buildViewApi(e,this.getCurrentData,t.dateEnv);return{viewSpec:i,options:s,dateProfileGenerator:l,viewApi:c}}processRawViewOptions(e,t,n,a,i){let s=jF([fd,e.optionDefaults,n,a,e.optionOverrides,i]),o=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},g3),y3),v3),ZPe),t.listenerRefiners),t.optionRefiners),l={},c=this.currentViewOptionsInput,d=this.currentViewOptionsRefined,u=!1,p={};for(let m in s)s[m]===c[m]||tf[m]&&tf[m](s[m],c[m])?l[m]=d[m]:(s[m]===this.currentCalendarOptionsInput[m]||tf[m]&&tf[m](s[m],this.currentCalendarOptionsInput[m])?m in this.currentCalendarOptionsRefined&&(l[m]=this.currentCalendarOptionsRefined[m]):o[m]?l[m]=o[m](s[m]):p[m]=s[m],u=!0);return u&&(this.currentViewOptionsInput=s,this.currentViewOptionsRefined=l),{rawOptions:this.currentViewOptionsInput,refinedOptions:this.currentViewOptionsRefined,extra:p}}};Q3=class extends Pt{render(){let e=this.props.widgetGroups.map(t=>this.renderWidgetGroup(t));return _("div",{className:"fc-toolbar-chunk"},...e)}renderWidgetGroup(e){let{props:t}=this,{theme:n}=this.context,a=[],i=!0;for(let s of e){let{buttonName:o,buttonClick:l,buttonText:c,buttonIcon:d,buttonHint:u}=s;if(o==="title")i=!1,a.push(_("h2",{className:"fc-toolbar-title",id:t.titleId},t.title));else{let p=o===t.activeButton,m=!t.isTodayEnabled&&o==="today"||!t.isPrevEnabled&&o==="prev"||!t.isNextEnabled&&o==="next",f=[`fc-${o}-button`,n.getClass("button")];p&&f.push(n.getClass("buttonActive")),a.push(_("button",{type:"button",title:typeof u=="function"?u(t.navUnit):u,disabled:m,"aria-pressed":p,className:f.join(" "),onClick:l},c||(d?_("span",{className:d,role:"img"}):"")))}}if(a.length>1){let s=i&&n.getClass("buttonGroup")||"";return _("div",{className:s},...a)}return a[0]}},QF=class extends Pt{render(){let{model:e,extraClassName:t}=this.props,n=!1,a,i,s=e.sectionWidgets,o=s.center;return s.left?(n=!0,a=s.left):a=s.start,s.right?(n=!0,i=s.right):i=s.end,_("div",{className:[t||"","fc-toolbar",n?"fc-toolbar-ltr":""].join(" ")},this.renderSection("start",a||[]),this.renderSection("center",o||[]),this.renderSection("end",i||[]))}renderSection(e,t){let{props:n}=this;return _(Q3,{key:e,widgetGroups:t,title:n.title,navUnit:n.navUnit,activeButton:n.activeButton,isTodayEnabled:n.isTodayEnabled,isPrevEnabled:n.isPrevEnabled,isNextEnabled:n.isNextEnabled,titleId:n.titleId})}},J3=class extends Pt{constructor(){super(...arguments),this.state={availableWidth:null},this.handleEl=e=>{this.el=e,uo(this.props.elRef,e),this.updateAvailableWidth()},this.handleResize=()=>{this.updateAvailableWidth()}}render(){let{props:e,state:t}=this,{aspectRatio:n}=e,a=["fc-view-harness",n||e.liquid||e.height?"fc-view-harness-active":"fc-view-harness-passive"],i="",s="";return n?t.availableWidth!==null?i=t.availableWidth/n:s=`${1/n*100}%`:i=e.height||"",_("div",{"aria-labelledby":e.labeledById,ref:this.handleEl,className:a.join(" "),style:{height:i,paddingBottom:s}},e.children)}componentDidMount(){this.context.addResizeHandler(this.handleResize)}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}updateAvailableWidth(){this.el&&this.props.aspectRatio&&this.setState({availableWidth:this.el.offsetWidth})}},X3=class extends ec{constructor(e){super(e),this.handleSegClick=(t,n)=>{let{component:a}=this,{context:i}=a,s=rp(n);if(s&&a.isValidSegDownEl(t.target)){let o=ya(t.target,".fc-event-forced-url"),l=o?o.querySelector("a[href]").href:"";i.emitter.trigger("eventClick",{el:n,event:new Or(a.context,s.eventRange.def,s.eventRange.instance),jsEvent:t,view:i.viewApi}),l&&!t.defaultPrevented&&(window.location.href=l)}},this.destroy=a3(e.el,"click",".fc-event",this.handleSegClick)}},e6=class extends ec{constructor(e){super(e),this.handleEventElRemove=t=>{t===this.currentSegEl&&this.handleSegLeave(null,this.currentSegEl)},this.handleSegEnter=(t,n)=>{rp(n)&&(this.currentSegEl=n,this.triggerEvent("eventMouseEnter",t,n))},this.handleSegLeave=(t,n)=>{this.currentSegEl&&(this.currentSegEl=null,this.triggerEvent("eventMouseLeave",t,n))},this.removeHoverListeners=BPe(e.el,".fc-event",this.handleSegEnter,this.handleSegLeave)}destroy(){this.removeHoverListeners()}triggerEvent(e,t,n){let{component:a}=this,{context:i}=a,s=rp(n);(!t||a.isValidSegDownEl(t.target))&&i.emitter.trigger(e,{el:n,event:new Or(i,s.eventRange.def,s.eventRange.instance),jsEvent:t,view:i.viewApi})}},t6=class extends cd{constructor(){super(...arguments),this.buildViewContext=_e(t0e),this.buildViewPropTransformers=_e(Rmt),this.buildToolbarProps=_e(Nmt),this.headerRef=En(),this.footerRef=En(),this.interactionsStore={},this.state={viewLabelId:bs()},this.registerInteractiveComponent=(e,t)=>{let n=p0e(e,t),s=[X3,e6].concat(this.props.pluginHooks.componentInteractions).map(o=>new o(n));this.interactionsStore[e.uid]=s,Ug[e.uid]=n},this.unregisterInteractiveComponent=e=>{let t=this.interactionsStore[e.uid];if(t){for(let n of t)n.destroy();delete this.interactionsStore[e.uid]}delete Ug[e.uid]},this.resizeRunner=new Mg(()=>{this.props.emitter.trigger("_resize",!0),this.props.emitter.trigger("windowResize",{view:this.props.viewApi})}),this.handleWindowResize=e=>{let{options:t}=this.props;t.handleWindowResize&&e.target===window&&this.resizeRunner.request(t.windowResizeDelay)}}render(){let{props:e}=this,{toolbarConfig:t,options:n}=e,a=!1,i="",s;e.isHeightAuto||e.forPrint?i="":n.height!=null?a=!0:n.contentHeight!=null?i=n.contentHeight:s=Math.max(n.aspectRatio,.5);let o=this.buildViewContext(e.viewSpec,e.viewApi,e.options,e.dateProfileGenerator,e.dateEnv,e.nowManager,e.theme,e.pluginHooks,e.dispatch,e.getCurrentData,e.emitter,e.calendarApi,this.registerInteractiveComponent,this.unregisterInteractiveComponent),l=t.header&&t.header.hasTitle?this.state.viewLabelId:void 0;return _(tl.Provider,{value:o},_(vs,{unit:"day"},c=>{let d=this.buildToolbarProps(e.viewSpec,e.dateProfile,e.dateProfileGenerator,e.currentDate,c,e.viewTitle);return _(Gt,null,t.header&&_(QF,Object.assign({ref:this.headerRef,extraClassName:"fc-header-toolbar",model:t.header,titleId:l},d)),_(J3,{liquid:a,height:i,aspectRatio:s,labeledById:l},this.renderView(e),this.buildAppendContent()),t.footer&&_(QF,Object.assign({ref:this.footerRef,extraClassName:"fc-footer-toolbar",model:t.footer,titleId:""},d)))}))}componentDidMount(){let{props:e}=this;this.calendarInteractions=e.pluginHooks.calendarInteractions.map(n=>new n(e)),window.addEventListener("resize",this.handleWindowResize);let{propSetHandlers:t}=e.pluginHooks;for(let n in t)t[n](e[n],e)}componentDidUpdate(e){let{props:t}=this,{propSetHandlers:n}=t.pluginHooks;for(let a in n)t[a]!==e[a]&&n[a](t[a],t)}componentWillUnmount(){window.removeEventListener("resize",this.handleWindowResize),this.resizeRunner.clear();for(let e of this.calendarInteractions)e.destroy();this.props.emitter.trigger("_unmount")}buildAppendContent(){let{props:e}=this,t=e.pluginHooks.viewContainerAppends.map(n=>n(e));return _(Gt,{},...t)}renderView(e){let{pluginHooks:t}=e,{viewSpec:n}=e,a={dateProfile:e.dateProfile,businessHours:e.businessHours,eventStore:e.renderableEventStore,eventUiBases:e.eventUiBases,dateSelection:e.dateSelection,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,isHeightAuto:e.isHeightAuto,forPrint:e.forPrint},i=this.buildViewPropTransformers(t.viewPropsTransformers);for(let o of i)Object.assign(a,o.transform(a,e));let s=n.component;return _(s,Object.assign({},a))}};JF=class extends TD{constructor(e,t={}){super(),this.isRendering=!1,this.isRendered=!1,this.currentClassNames=[],this.customContentRenderId=0,this.handleAction=n=>{switch(n.type){case"SET_EVENT_DRAG":case"SET_EVENT_RESIZE":this.renderRunner.tryDrain()}},this.handleData=n=>{this.currentData=n,this.renderRunner.request(n.calendarOptions.rerenderDelay)},this.handleRenderRequest=()=>{if(this.isRendering){this.isRendered=!0;let{currentData:n}=this;gD(()=>{Wm(_(bD,{options:n.calendarOptions,theme:n.theme,emitter:n.emitter},(a,i,s,o)=>(this.setClassNames(a),this.setHeight(i),_(T3.Provider,{value:this.customContentRenderId},_(t6,Object.assign({isHeightAuto:s,forPrint:o},n))))),this.el)})}else this.isRendered&&(this.isRendered=!1,Wm(null,this.el),this.setClassNames([]),this.setHeight(""))},LPe(e),this.el=e,this.renderRunner=new Mg(this.handleRenderRequest),new Z3({optionOverrides:t,calendarApi:this,onAction:this.handleAction,onData:this.handleData})}render(){let e=this.isRendering;e?this.customContentRenderId+=1:this.isRendering=!0,this.renderRunner.request(),e&&this.updateSize()}destroy(){this.isRendering&&(this.isRendering=!1,this.renderRunner.request())}updateSize(){gD(()=>{super.updateSize()})}batchRendering(e){this.renderRunner.pause("batchRendering"),e(),this.renderRunner.resume("batchRendering")}pauseRendering(){this.renderRunner.pause("pauseRendering")}resumeRendering(){this.renderRunner.resume("pauseRendering",!0)}resetOptions(e,t){this.currentDataManager.resetOptions(e,t)}setClassNames(e){if(!pd(e,this.currentClassNames)){let{classList:t}=this.el;for(let n of this.currentClassNames)t.remove(n);for(let n of e)t.add(n);this.currentClassNames=e}}setHeight(e){n3(this.el,"height",e)}}});var qg=y(()=>{q3();Ku();pD()});function Fmt(r){return r.button===0&&!r.ctrlKey}function Omt(){n6+=1,setTimeout(()=>{n6-=1},Kb.touchMouseIgnoreWait)}function Lmt(){XF+=1,XF===1&&window.addEventListener("touchmove",G0e,{passive:!1})}function zmt(){XF-=1,XF||window.removeEventListener("touchmove",G0e,{passive:!1})}function G0e(r){a6&&r.preventDefault()}function jmt(r){let e=r.tagName;return e==="HTML"||e==="BODY"}function aO(r,e){return!r&&!e?!0:!!r!=!!e?!1:I3(r.dateSpan,e.dateSpan)}function f6(r,e){let t={};for(let n of e.pluginHooks.datePointTransforms)Object.assign(t,n(r,e));return Object.assign(t,$mt(r,e.dateEnv)),t}function $mt(r,e){return{date:e.toDate(r.range.start),dateStr:e.formatIso(r.range.start,{omitTime:r.allDay}),allDay:r.allDay}}function Bmt(r){let{options:e}=r.context,t=e.selectLongPressDelay;return t==null&&(t=e.longPressDelay),t}function Umt(r,e,t){let n=r.dateSpan,a=e.dateSpan,i=[n.range.start,n.range.end,a.range.start,a.range.end];i.sort(d3);let s={};for(let o of t){let l=o(r,e);if(l===!1)return null;l&&Object.assign(s,l)}return s.range={start:i[0],end:i[3]},s.allDay=n.allDay,s}function Hmt(r,e,t,n){let a=r.dateSpan,i=e.dateSpan,s=a.range.start,o=i.range.start,l={};a.allDay!==i.allDay&&(l.allDay=i.allDay,l.hasEnd=e.context.options.allDayMaintainDuration,i.allDay?s=gr(t):s=t);let c=Zm(s,o,r.context.dateEnv,r.componentId===e.componentId?r.largeUnit:null);c.milliseconds&&(l.allDay=!1);let d={datesDelta:c,standardProps:l};for(let u of n)u(d,r,e);return d}function Vmt(r){let{options:e}=r.context,t=e.eventLongPressDelay;return t==null&&(t=e.longPressDelay),t}function qmt(r,e,t,n){let a=r.context.dateEnv,i=r.dateSpan.range.start,s=e.dateSpan.range.start,o=Zm(i,s,a,r.largeUnit);if(t){if(a.add(n.start,o)<n.end)return{startDelta:o}}else if(a.add(n.end,o)>n.start)return{endDelta:o};return null}function Gmt(r,e,t){let n=Object.assign({},e.leftoverProps);for(let d of t.pluginHooks.externalDefTransforms)Object.assign(n,d(r,e));let{refined:a,extra:i}=ND(n,t),s=Ob(a,i,e.sourceId,r.allDay,t.options.forceEventDuration||!!e.duration,t),o=r.range.start;r.allDay&&e.startTime&&(o=t.dateEnv.add(o,e.startTime));let l=e.duration?t.dateEnv.add(o,e.duration):kD(r.allDay,o,t),c=qb(s.defId,{start:o,end:l});return{def:s,instance:c}}function Kmt(r){let e=Zmt(r,"event"),t=e?JSON.parse(e):{create:!1};return BD(t)}function Zmt(r,e){let t=Kb.dataAttrPrefix,n=(t?t+"-":"")+e;return r.getAttribute("data-"+n)||""}var n6,XF,a6,eO,i6,tO,rO,s6,Y0e,o6,nf,l6,Wg,c6,d6,YD,u6,p6,Wmt,Ymt,m6,nO,K0e,h6=y(()=>{Vg();qg();Kb.touchMouseIgnoreWait=500;n6=0,XF=0,a6=!1,eO=class{constructor(e){this.subjectEl=null,this.selector="",this.handleSelector="",this.shouldIgnoreMove=!1,this.shouldWatchScroll=!0,this.isDragging=!1,this.isTouchDragging=!1,this.wasTouchScroll=!1,this.handleMouseDown=t=>{if(!this.shouldIgnoreMouse()&&Fmt(t)&&this.tryStart(t)){let n=this.createEventFromMouse(t,!0);this.emitter.trigger("pointerdown",n),this.initScrollWatch(n),this.shouldIgnoreMove||document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp)}},this.handleMouseMove=t=>{let n=this.createEventFromMouse(t);this.recordCoords(n),this.emitter.trigger("pointermove",n)},this.handleMouseUp=t=>{document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),this.emitter.trigger("pointerup",this.createEventFromMouse(t)),this.cleanup()},this.handleTouchStart=t=>{if(this.tryStart(t)){this.isTouchDragging=!0;let n=this.createEventFromTouch(t,!0);this.emitter.trigger("pointerdown",n),this.initScrollWatch(n);let a=t.target;this.shouldIgnoreMove||a.addEventListener("touchmove",this.handleTouchMove),a.addEventListener("touchend",this.handleTouchEnd),a.addEventListener("touchcancel",this.handleTouchEnd),window.addEventListener("scroll",this.handleTouchScroll,!0)}},this.handleTouchMove=t=>{let n=this.createEventFromTouch(t);this.recordCoords(n),this.emitter.trigger("pointermove",n)},this.handleTouchEnd=t=>{if(this.isDragging){let n=t.target;n.removeEventListener("touchmove",this.handleTouchMove),n.removeEventListener("touchend",this.handleTouchEnd),n.removeEventListener("touchcancel",this.handleTouchEnd),window.removeEventListener("scroll",this.handleTouchScroll,!0),this.emitter.trigger("pointerup",this.createEventFromTouch(t)),this.cleanup(),this.isTouchDragging=!1,Omt()}},this.handleTouchScroll=()=>{this.wasTouchScroll=!0},this.handleScroll=t=>{if(!this.shouldIgnoreMove){let n=window.scrollX-this.prevScrollX+this.prevPageX,a=window.scrollY-this.prevScrollY+this.prevPageY;this.emitter.trigger("pointermove",{origEvent:t,isTouch:this.isTouchDragging,subjectEl:this.subjectEl,pageX:n,pageY:a,deltaX:n-this.origPageX,deltaY:a-this.origPageY})}},this.containerEl=e,this.emitter=new Ju,e.addEventListener("mousedown",this.handleMouseDown),e.addEventListener("touchstart",this.handleTouchStart,{passive:!0}),Lmt()}destroy(){this.containerEl.removeEventListener("mousedown",this.handleMouseDown),this.containerEl.removeEventListener("touchstart",this.handleTouchStart,{passive:!0}),zmt()}tryStart(e){let t=this.querySubjectEl(e),n=e.target;return t&&(!this.handleSelector||ya(n,this.handleSelector))?(this.subjectEl=t,this.isDragging=!0,this.wasTouchScroll=!1,!0):!1}cleanup(){a6=!1,this.isDragging=!1,this.subjectEl=null,this.destroyScrollWatch()}querySubjectEl(e){return this.selector?ya(e.target,this.selector):this.containerEl}shouldIgnoreMouse(){return n6||this.isTouchDragging}cancelTouchScroll(){this.isDragging&&(a6=!0)}initScrollWatch(e){this.shouldWatchScroll&&(this.recordCoords(e),window.addEventListener("scroll",this.handleScroll,!0))}recordCoords(e){this.shouldWatchScroll&&(this.prevPageX=e.pageX,this.prevPageY=e.pageY,this.prevScrollX=window.scrollX,this.prevScrollY=window.scrollY)}destroyScrollWatch(){this.shouldWatchScroll&&window.removeEventListener("scroll",this.handleScroll,!0)}createEventFromMouse(e,t){let n=0,a=0;return t?(this.origPageX=e.pageX,this.origPageY=e.pageY):(n=e.pageX-this.origPageX,a=e.pageY-this.origPageY),{origEvent:e,isTouch:!1,subjectEl:this.subjectEl,pageX:e.pageX,pageY:e.pageY,deltaX:n,deltaY:a}}createEventFromTouch(e,t){let n=e.touches,a,i,s=0,o=0;return n&&n.length?(a=n[0].pageX,i=n[0].pageY):(a=e.pageX,i=e.pageY),t?(this.origPageX=a,this.origPageY=i):(s=a-this.origPageX,o=i-this.origPageY),{origEvent:e,isTouch:!0,subjectEl:this.subjectEl,pageX:a,pageY:i,deltaX:s,deltaY:o}}};i6=class{constructor(){this.isVisible=!1,this.sourceEl=null,this.mirrorEl=null,this.sourceElRect=null,this.parentNode=document.body,this.zIndex=9999,this.revertDuration=0}start(e,t,n){this.sourceEl=e,this.sourceElRect=this.sourceEl.getBoundingClientRect(),this.origScreenX=t-window.scrollX,this.origScreenY=n-window.scrollY,this.deltaX=0,this.deltaY=0,this.updateElPosition()}handleMove(e,t){this.deltaX=e-window.scrollX-this.origScreenX,this.deltaY=t-window.scrollY-this.origScreenY,this.updateElPosition()}setIsVisible(e){e?this.isVisible||(this.mirrorEl&&(this.mirrorEl.style.display=""),this.isVisible=e,this.updateElPosition()):this.isVisible&&(this.mirrorEl&&(this.mirrorEl.style.display="none"),this.isVisible=e)}stop(e,t){let n=()=>{this.cleanup(),t()};e&&this.mirrorEl&&this.isVisible&&this.revertDuration&&(this.deltaX||this.deltaY)?this.doRevertAnimation(n,this.revertDuration):setTimeout(n,0)}doRevertAnimation(e,t){let n=this.mirrorEl,a=this.sourceEl.getBoundingClientRect();n.style.transition="top "+t+"ms,left "+t+"ms",$g(n,{left:a.left,top:a.top}),i3(n,()=>{n.style.transition="",e()})}cleanup(){this.mirrorEl&&(PD(this.mirrorEl),this.mirrorEl=null),this.sourceEl=null}updateElPosition(){this.sourceEl&&this.isVisible&&$g(this.getMirrorEl(),{left:this.sourceElRect.left+this.deltaX,top:this.sourceElRect.top+this.deltaY})}getMirrorEl(){let e=this.sourceElRect,t=this.mirrorEl;return t||(t=this.mirrorEl=this.sourceEl.cloneNode(!0),t.style.userSelect="none",t.style.webkitUserSelect="none",t.style.pointerEvents="none",t.classList.add("fc-event-dragging"),$g(t,{position:"fixed",zIndex:this.zIndex,visibility:"",boxSizing:"border-box",width:e.right-e.left,height:e.bottom-e.top,right:"auto",bottom:"auto",margin:0}),this.parentNode.appendChild(t)),t}},tO=class extends Ng{constructor(e,t){super(),this.handleScroll=()=>{this.scrollTop=this.scrollController.getScrollTop(),this.scrollLeft=this.scrollController.getScrollLeft(),this.handleScrollChange()},this.scrollController=e,this.doesListening=t,this.scrollTop=this.origScrollTop=e.getScrollTop(),this.scrollLeft=this.origScrollLeft=e.getScrollLeft(),this.scrollWidth=e.getScrollWidth(),this.scrollHeight=e.getScrollHeight(),this.clientWidth=e.getClientWidth(),this.clientHeight=e.getClientHeight(),this.clientRect=this.computeClientRect(),this.doesListening&&this.getEventTarget().addEventListener("scroll",this.handleScroll)}destroy(){this.doesListening&&this.getEventTarget().removeEventListener("scroll",this.handleScroll)}getScrollTop(){return this.scrollTop}getScrollLeft(){return this.scrollLeft}setScrollTop(e){this.scrollController.setScrollTop(e),this.doesListening||(this.scrollTop=Math.max(Math.min(e,this.getMaxScrollTop()),0),this.handleScrollChange())}setScrollLeft(e){this.scrollController.setScrollLeft(e),this.doesListening||(this.scrollLeft=Math.max(Math.min(e,this.getMaxScrollLeft()),0),this.handleScrollChange())}getClientWidth(){return this.clientWidth}getClientHeight(){return this.clientHeight}getScrollWidth(){return this.scrollWidth}getScrollHeight(){return this.scrollHeight}handleScrollChange(){}},rO=class extends tO{constructor(e,t){super(new SD(e),t)}getEventTarget(){return this.scrollController.el}computeClientRect(){return B3(this.scrollController.el)}},s6=class extends tO{constructor(e){super(new xD,e)}getEventTarget(){return window}computeClientRect(){return{left:this.scrollLeft,right:this.scrollLeft+this.clientWidth,top:this.scrollTop,bottom:this.scrollTop+this.clientHeight}}handleScrollChange(){this.clientRect=this.computeClientRect()}},Y0e=typeof performance=="function"?performance.now:Date.now,o6=class{constructor(){this.isEnabled=!0,this.scrollQuery=[window,".fc-scroller"],this.edgeThreshold=50,this.maxVelocity=300,this.pointerScreenX=null,this.pointerScreenY=null,this.isAnimating=!1,this.scrollCaches=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.animate=()=>{if(this.isAnimating){let e=this.computeBestEdge(this.pointerScreenX+window.scrollX,this.pointerScreenY+window.scrollY);if(e){let t=Y0e();this.handleSide(e,(t-this.msSinceRequest)/1e3),this.requestAnimation(t)}else this.isAnimating=!1}}}start(e,t,n){this.isEnabled&&(this.scrollCaches=this.buildCaches(n),this.pointerScreenX=null,this.pointerScreenY=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.handleMove(e,t))}handleMove(e,t){if(this.isEnabled){let n=e-window.scrollX,a=t-window.scrollY,i=this.pointerScreenY===null?0:a-this.pointerScreenY,s=this.pointerScreenX===null?0:n-this.pointerScreenX;i<0?this.everMovedUp=!0:i>0&&(this.everMovedDown=!0),s<0?this.everMovedLeft=!0:s>0&&(this.everMovedRight=!0),this.pointerScreenX=n,this.pointerScreenY=a,this.isAnimating||(this.isAnimating=!0,this.requestAnimation(Y0e()))}}stop(){if(this.isEnabled){this.isAnimating=!1;for(let e of this.scrollCaches)e.destroy();this.scrollCaches=null}}requestAnimation(e){this.msSinceRequest=e,requestAnimationFrame(this.animate)}handleSide(e,t){let{scrollCache:n}=e,{edgeThreshold:a}=this,i=a-e.distance,s=i*i/(a*a)*this.maxVelocity*t,o=1;switch(e.name){case"left":o=-1;case"right":n.setScrollLeft(n.getScrollLeft()+s*o);break;case"top":o=-1;case"bottom":n.setScrollTop(n.getScrollTop()+s*o);break}}computeBestEdge(e,t){let{edgeThreshold:n}=this,a=null,i=this.scrollCaches||[];for(let s of i){let o=s.clientRect,l=e-o.left,c=o.right-e,d=t-o.top,u=o.bottom-t;l>=0&&c>=0&&d>=0&&u>=0&&(d<=n&&this.everMovedUp&&s.canScrollUp()&&(!a||a.distance>d)&&(a={scrollCache:s,name:"top",distance:d}),u<=n&&this.everMovedDown&&s.canScrollDown()&&(!a||a.distance>u)&&(a={scrollCache:s,name:"bottom",distance:u}),l<=n&&this.everMovedLeft&&s.canScrollLeft()&&(!a||a.distance>l)&&(a={scrollCache:s,name:"left",distance:l}),c<=n&&this.everMovedRight&&s.canScrollRight()&&(!a||a.distance>c)&&(a={scrollCache:s,name:"right",distance:c}))}return a}buildCaches(e){return this.queryScrollEls(e).map(t=>t===window?new s6(!1):new rO(t,!1))}queryScrollEls(e){let t=[];for(let n of this.scrollQuery)typeof n=="object"?t.push(n):t.push(...Array.prototype.slice.call(e.getRootNode().querySelectorAll(n)));return t}},nf=class extends DD{constructor(e,t){super(e),this.containerEl=e,this.delay=null,this.minDistance=0,this.touchScrollAllowed=!0,this.mirrorNeedsRevert=!1,this.isInteracting=!1,this.isDragging=!1,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,this.delayTimeoutId=null,this.onPointerDown=a=>{this.isDragging||(this.isInteracting=!0,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,s3(document.body),l3(document.body),a.isTouch||a.origEvent.preventDefault(),this.emitter.trigger("pointerdown",a),this.isInteracting&&!this.pointer.shouldIgnoreMove&&(this.mirror.setIsVisible(!1),this.mirror.start(a.subjectEl,a.pageX,a.pageY),this.startDelay(a),this.minDistance||this.handleDistanceSurpassed(a)))},this.onPointerMove=a=>{if(this.isInteracting){if(this.emitter.trigger("pointermove",a),!this.isDistanceSurpassed){let i=this.minDistance,s,{deltaX:o,deltaY:l}=a;s=o*o+l*l,s>=i*i&&this.handleDistanceSurpassed(a)}this.isDragging&&(a.origEvent.type!=="scroll"&&(this.mirror.handleMove(a.pageX,a.pageY),this.autoScroller.handleMove(a.pageX,a.pageY)),this.emitter.trigger("dragmove",a))}},this.onPointerUp=a=>{this.isInteracting&&(this.isInteracting=!1,o3(document.body),c3(document.body),this.emitter.trigger("pointerup",a),this.isDragging&&(this.autoScroller.stop(),this.tryStopDrag(a)),this.delayTimeoutId&&(clearTimeout(this.delayTimeoutId),this.delayTimeoutId=null))};let n=this.pointer=new eO(e);n.emitter.on("pointerdown",this.onPointerDown),n.emitter.on("pointermove",this.onPointerMove),n.emitter.on("pointerup",this.onPointerUp),t&&(n.selector=t),this.mirror=new i6,this.autoScroller=new o6}destroy(){this.pointer.destroy(),this.onPointerUp({})}startDelay(e){typeof this.delay=="number"?this.delayTimeoutId=setTimeout(()=>{this.delayTimeoutId=null,this.handleDelayEnd(e)},this.delay):this.handleDelayEnd(e)}handleDelayEnd(e){this.isDelayEnded=!0,this.tryStartDrag(e)}handleDistanceSurpassed(e){this.isDistanceSurpassed=!0,this.tryStartDrag(e)}tryStartDrag(e){this.isDelayEnded&&this.isDistanceSurpassed&&(!this.pointer.wasTouchScroll||this.touchScrollAllowed)&&(this.isDragging=!0,this.mirrorNeedsRevert=!1,this.autoScroller.start(e.pageX,e.pageY,this.containerEl),this.emitter.trigger("dragstart",e),this.touchScrollAllowed===!1&&this.pointer.cancelTouchScroll())}tryStopDrag(e){this.mirror.stop(this.mirrorNeedsRevert,this.stopDrag.bind(this,e))}stopDrag(e){this.isDragging=!1,this.emitter.trigger("dragend",e)}setIgnoreMove(e){this.pointer.shouldIgnoreMove=e}setMirrorIsVisible(e){this.mirror.setIsVisible(e)}setMirrorNeedsRevert(e){this.mirrorNeedsRevert=e}setAutoScrollEnabled(e){this.autoScroller.isEnabled=e}},l6=class{constructor(e){this.el=e,this.origRect=jD(e),this.scrollCaches=GF(e).map(t=>new rO(t,!0))}destroy(){for(let e of this.scrollCaches)e.destroy()}computeLeft(){let e=this.origRect.left;for(let t of this.scrollCaches)e+=t.origScrollLeft-t.getScrollLeft();return e}computeTop(){let e=this.origRect.top;for(let t of this.scrollCaches)e+=t.origScrollTop-t.getScrollTop();return e}isWithinClipping(e,t){let n={left:e,top:t};for(let a of this.scrollCaches)if(!jmt(a.getEventTarget())&&!L3(n,a.clientRect))return!1;return!0}};Wg=class{constructor(e,t){this.useSubjectCenter=!1,this.requireInitial=!0,this.disablePointCheck=!1,this.initialHit=null,this.movingHit=null,this.finalHit=null,this.handlePointerDown=n=>{let{dragging:a}=this;this.initialHit=null,this.movingHit=null,this.finalHit=null,this.prepareHits(),this.processFirstCoord(n),this.initialHit||!this.requireInitial?(a.setIgnoreMove(!1),this.emitter.trigger("pointerdown",n)):a.setIgnoreMove(!0)},this.handleDragStart=n=>{this.emitter.trigger("dragstart",n),this.handleMove(n,!0)},this.handleDragMove=n=>{this.emitter.trigger("dragmove",n),this.handleMove(n)},this.handlePointerUp=n=>{this.releaseHits(),this.emitter.trigger("pointerup",n)},this.handleDragEnd=n=>{this.movingHit&&this.emitter.trigger("hitupdate",null,!0,n),this.finalHit=this.movingHit,this.movingHit=null,this.emitter.trigger("dragend",n)},this.droppableStore=t,e.emitter.on("pointerdown",this.handlePointerDown),e.emitter.on("dragstart",this.handleDragStart),e.emitter.on("dragmove",this.handleDragMove),e.emitter.on("pointerup",this.handlePointerUp),e.emitter.on("dragend",this.handleDragEnd),this.dragging=e,this.emitter=new Ju}processFirstCoord(e){let t={left:e.pageX,top:e.pageY},n=t,a=e.subjectEl,i;a instanceof HTMLElement&&(i=jD(a),n=z3(n,i));let s=this.initialHit=this.queryHitForOffset(n.left,n.top);if(s){if(this.useSubjectCenter&&i){let o=YF(i,s.rect);o&&(n=j3(o))}this.coordAdjust=$3(n,t)}else this.coordAdjust={left:0,top:0}}handleMove(e,t){let n=this.queryHitForOffset(e.pageX+this.coordAdjust.left,e.pageY+this.coordAdjust.top);(t||!aO(this.movingHit,n))&&(this.movingHit=n,this.emitter.trigger("hitupdate",n,!1,e))}prepareHits(){this.offsetTrackers=el(this.droppableStore,e=>(e.component.prepareHits(),new l6(e.el)))}releaseHits(){let{offsetTrackers:e}=this;for(let t in e)e[t].destroy();this.offsetTrackers={}}queryHitForOffset(e,t){let{droppableStore:n,offsetTrackers:a}=this,i=null;for(let s in n){let o=n[s].component,l=a[s];if(l&&l.isWithinClipping(e,t)){let c=l.computeLeft(),d=l.computeTop(),u=e-c,p=t-d,{origRect:m}=l,f=m.right-m.left,h=m.bottom-m.top;if(u>=0&&u<f&&p>=0&&p<h){let g=o.queryHit(u,p,f,h);g&&Vb(g.dateProfile.activeRange,g.dateSpan.range)&&(this.disablePointCheck||l.el.contains(l.el.getRootNode().elementFromPoint(u+c-window.scrollX,p+d-window.scrollY)))&&(!i||g.layer>i.layer)&&(g.componentId=s,g.context=o.context,g.rect.left+=c,g.rect.right+=c,g.rect.top+=d,g.rect.bottom+=d,i=g)}}}return i}};c6=class extends ec{constructor(e){super(e),this.handlePointerDown=n=>{let{dragging:a}=this,i=n.origEvent.target;a.setIgnoreMove(!this.component.isValidDateDownEl(i))},this.handleDragEnd=n=>{let{component:a}=this,{pointer:i}=this.dragging;if(!i.wasTouchScroll){let{initialHit:s,finalHit:o}=this.hitDragging;if(s&&o&&aO(s,o)){let{context:l}=a,c=Object.assign(Object.assign({},f6(s.dateSpan,l)),{dayEl:s.dayEl,jsEvent:n.origEvent,view:l.viewApi||l.calendarApi.view});l.emitter.trigger("dateClick",c)}}},this.dragging=new nf(e.el),this.dragging.autoScroller.isEnabled=!1;let t=this.hitDragging=new Wg(this.dragging,LD(e));t.emitter.on("pointerdown",this.handlePointerDown),t.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}},d6=class extends ec{constructor(e){super(e),this.dragSelection=null,this.handlePointerDown=s=>{let{component:o,dragging:l}=this,{options:c}=o.context,d=c.selectable&&o.isValidDateDownEl(s.origEvent.target);l.setIgnoreMove(!d),l.delay=s.isTouch?Bmt(o):null},this.handleDragStart=s=>{this.component.context.calendarApi.unselect(s)},this.handleHitUpdate=(s,o)=>{let{context:l}=this.component,c=null,d=!1;if(s){let u=this.hitDragging.initialHit;s.componentId===u.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(u,s)||(c=Umt(u,s,l.pluginHooks.dateSelectionTransformers)),(!c||!H3(c,s.dateProfile,l))&&(d=!0,c=null)}c?l.dispatch({type:"SELECT_DATES",selection:c}):o||l.dispatch({type:"UNSELECT_DATES"}),d?jb():$b(),o||(this.dragSelection=c)},this.handlePointerUp=s=>{this.dragSelection&&(WF(this.dragSelection,s,this.component.context),this.dragSelection=null)};let{component:t}=e,{options:n}=t.context,a=this.dragging=new nf(e.el);a.touchScrollAllowed=!1,a.minDistance=n.selectMinDistance||0,a.autoScroller.isEnabled=n.dragScroll;let i=this.hitDragging=new Wg(this.dragging,LD(e));i.emitter.on("pointerdown",this.handlePointerDown),i.emitter.on("dragstart",this.handleDragStart),i.emitter.on("hitupdate",this.handleHitUpdate),i.emitter.on("pointerup",this.handlePointerUp)}destroy(){this.dragging.destroy()}};YD=class r extends ec{constructor(e){super(e),this.subjectEl=null,this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=s=>{let o=s.origEvent.target,{component:l,dragging:c}=this,{mirror:d}=c,{options:u}=l.context,p=l.context;this.subjectEl=s.subjectEl;let m=this.subjectSeg=rp(s.subjectEl),h=(this.eventRange=m.eventRange).instance.instanceId;this.relevantEvents=RD(p.getCurrentData().eventStore,h),c.minDistance=s.isTouch?0:u.eventDragMinDistance,c.delay=s.isTouch&&h!==l.props.eventSelection?Vmt(l):null,u.fixedMirrorParent?d.parentNode=u.fixedMirrorParent:d.parentNode=ya(o,".fc"),d.revertDuration=u.dragRevertDuration;let g=l.isValidSegDownEl(o)&&!ya(o,".fc-event-resizer");c.setIgnoreMove(!g),this.isDragging=g&&s.subjectEl.classList.contains("fc-event-draggable")},this.handleDragStart=s=>{let o=this.component.context,l=this.eventRange,c=l.instance.instanceId;s.isTouch?c!==this.component.props.eventSelection&&o.dispatch({type:"SELECT_EVENT",eventInstanceId:c}):o.dispatch({type:"UNSELECT_EVENT"}),this.isDragging&&(o.calendarApi.unselect(s),o.emitter.trigger("eventDragStart",{el:this.subjectEl,event:new Or(o,l.def,l.instance),jsEvent:s.origEvent,view:o.viewApi}))},this.handleHitUpdate=(s,o)=>{if(!this.isDragging)return;let l=this.relevantEvents,c=this.hitDragging.initialHit,d=this.component.context,u=null,p=null,m=null,f=!1,h={affectedEvents:l,mutatedEvents:va(),isEvent:!0};if(s){u=s.context;let g=u.options;d===u||g.editable&&g.droppable?(p=Hmt(c,s,this.eventRange.instance.range.start,u.getCurrentData().pluginHooks.eventDragMutationMassagers),p&&(m=FD(l,u.getCurrentData().eventUiBases,p,u),h.mutatedEvents=m,UD(h,s.dateProfile,u)||(f=!0,p=null,m=null,h.mutatedEvents=va()))):u=null}this.displayDrag(u,h),f?jb():$b(),o||(d===u&&aO(c,s)&&(p=null),this.dragging.setMirrorNeedsRevert(!p),this.dragging.setMirrorIsVisible(!s||!this.subjectEl.getRootNode().querySelector(".fc-event-mirror")),this.receivingContext=u,this.validMutation=p,this.mutatedRelevantEvents=m)},this.handlePointerUp=()=>{this.isDragging||this.cleanup()},this.handleDragEnd=s=>{if(this.isDragging){let o=this.component.context,l=o.viewApi,{receivingContext:c,validMutation:d}=this,u=this.eventRange.def,p=this.eventRange.instance,m=new Or(o,u,p),f=this.relevantEvents,h=this.mutatedRelevantEvents,{finalHit:g}=this.hitDragging;if(this.clearDrag(),o.emitter.trigger("eventDragStop",{el:this.subjectEl,event:m,jsEvent:s.origEvent,view:l}),d){if(c===o){let v=new Or(o,h.defs[u.defId],p?h.instances[p.instanceId]:null);o.dispatch({type:"MERGE_EVENTS",eventStore:h});let b={oldEvent:m,event:v,relatedEvents:hd(h,o,p),revert(){o.dispatch({type:"MERGE_EVENTS",eventStore:f})}},k={};for(let w of o.getCurrentData().pluginHooks.eventDropTransformers)Object.assign(k,w(d,o));o.emitter.trigger("eventDrop",Object.assign(Object.assign(Object.assign({},b),k),{el:s.subjectEl,delta:d.datesDelta,jsEvent:s.origEvent,view:l})),o.emitter.trigger("eventChange",b)}else if(c){let v={event:m,relatedEvents:hd(f,o,p),revert(){o.dispatch({type:"MERGE_EVENTS",eventStore:f})}};o.emitter.trigger("eventLeave",Object.assign(Object.assign({},v),{draggedEl:s.subjectEl,view:l})),o.dispatch({type:"REMOVE_EVENTS",eventStore:f}),o.emitter.trigger("eventRemove",v);let b=h.defs[u.defId],k=h.instances[p.instanceId],w=new Or(c,b,k);c.dispatch({type:"MERGE_EVENTS",eventStore:h});let S={event:w,relatedEvents:hd(h,c,k),revert(){c.dispatch({type:"REMOVE_EVENTS",eventStore:h})}};c.emitter.trigger("eventAdd",S),s.isTouch&&c.dispatch({type:"SELECT_EVENT",eventInstanceId:p.instanceId}),c.emitter.trigger("drop",Object.assign(Object.assign({},f6(g.dateSpan,c)),{draggedEl:s.subjectEl,jsEvent:s.origEvent,view:g.context.viewApi})),c.emitter.trigger("eventReceive",Object.assign(Object.assign({},S),{draggedEl:s.subjectEl,view:g.context.viewApi}))}}else o.emitter.trigger("_noEventDrop")}this.cleanup()};let{component:t}=this,{options:n}=t.context,a=this.dragging=new nf(e.el);a.pointer.selector=r.SELECTOR,a.touchScrollAllowed=!1,a.autoScroller.isEnabled=n.dragScroll;let i=this.hitDragging=new Wg(this.dragging,Ug);i.useSubjectCenter=e.useEventCenter,i.emitter.on("pointerdown",this.handlePointerDown),i.emitter.on("dragstart",this.handleDragStart),i.emitter.on("hitupdate",this.handleHitUpdate),i.emitter.on("pointerup",this.handlePointerUp),i.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}displayDrag(e,t){let n=this.component.context,a=this.receivingContext;a&&a!==e&&(a===n?a.dispatch({type:"SET_EVENT_DRAG",state:{affectedEvents:t.affectedEvents,mutatedEvents:va(),isEvent:!0}}):a.dispatch({type:"UNSET_EVENT_DRAG"})),e&&e.dispatch({type:"SET_EVENT_DRAG",state:t})}clearDrag(){let e=this.component.context,{receivingContext:t}=this;t&&t.dispatch({type:"UNSET_EVENT_DRAG"}),e!==t&&e.dispatch({type:"UNSET_EVENT_DRAG"})}cleanup(){this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null}};YD.SELECTOR=".fc-event-draggable, .fc-event-resizable";u6=class extends ec{constructor(e){super(e),this.draggingSegEl=null,this.draggingSeg=null,this.eventRange=null,this.relevantEvents=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=i=>{let{component:s}=this,o=this.querySegEl(i),l=rp(o),c=this.eventRange=l.eventRange;this.dragging.minDistance=s.context.options.eventDragMinDistance,this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(i.origEvent.target)||i.isTouch&&this.component.props.eventSelection!==c.instance.instanceId)},this.handleDragStart=i=>{let{context:s}=this.component,o=this.eventRange;this.relevantEvents=RD(s.getCurrentData().eventStore,this.eventRange.instance.instanceId);let l=this.querySegEl(i);this.draggingSegEl=l,this.draggingSeg=rp(l),s.calendarApi.unselect(),s.emitter.trigger("eventResizeStart",{el:l,event:new Or(s,o.def,o.instance),jsEvent:i.origEvent,view:s.viewApi})},this.handleHitUpdate=(i,s,o)=>{let{context:l}=this.component,c=this.relevantEvents,d=this.hitDragging.initialHit,u=this.eventRange.instance,p=null,m=null,f=!1,h={affectedEvents:c,mutatedEvents:va(),isEvent:!0};i&&(i.componentId===d.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(d,i)||(p=qmt(d,i,o.subjectEl.classList.contains("fc-event-resizer-start"),u.range))),p&&(m=FD(c,l.getCurrentData().eventUiBases,p,l),h.mutatedEvents=m,UD(h,i.dateProfile,l)||(f=!0,p=null,m=null,h.mutatedEvents=null)),m?l.dispatch({type:"SET_EVENT_RESIZE",state:h}):l.dispatch({type:"UNSET_EVENT_RESIZE"}),f?jb():$b(),s||(p&&aO(d,i)&&(p=null),this.validMutation=p,this.mutatedRelevantEvents=m)},this.handleDragEnd=i=>{let{context:s}=this.component,o=this.eventRange.def,l=this.eventRange.instance,c=new Or(s,o,l),d=this.relevantEvents,u=this.mutatedRelevantEvents;if(s.emitter.trigger("eventResizeStop",{el:this.draggingSegEl,event:c,jsEvent:i.origEvent,view:s.viewApi}),this.validMutation){let p=new Or(s,u.defs[o.defId],l?u.instances[l.instanceId]:null);s.dispatch({type:"MERGE_EVENTS",eventStore:u});let m={oldEvent:c,event:p,relatedEvents:hd(u,s,l),revert(){s.dispatch({type:"MERGE_EVENTS",eventStore:d})}};s.emitter.trigger("eventResize",Object.assign(Object.assign({},m),{el:this.draggingSegEl,startDelta:this.validMutation.startDelta||mt(0),endDelta:this.validMutation.endDelta||mt(0),jsEvent:i.origEvent,view:s.viewApi})),s.emitter.trigger("eventChange",m)}else s.emitter.trigger("_noEventResize");this.draggingSeg=null,this.relevantEvents=null,this.validMutation=null};let{component:t}=e,n=this.dragging=new nf(e.el);n.pointer.selector=".fc-event-resizer",n.touchScrollAllowed=!1,n.autoScroller.isEnabled=t.context.options.dragScroll;let a=this.hitDragging=new Wg(this.dragging,LD(e));a.emitter.on("pointerdown",this.handlePointerDown),a.emitter.on("dragstart",this.handleDragStart),a.emitter.on("hitupdate",this.handleHitUpdate),a.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}querySegEl(e){return ya(e.subjectEl,".fc-event")}};p6=class{constructor(e){this.context=e,this.isRecentPointerDateSelect=!1,this.matchesCancel=!1,this.matchesEvent=!1,this.onSelect=n=>{n.jsEvent&&(this.isRecentPointerDateSelect=!0)},this.onDocumentPointerDown=n=>{let a=this.context.options.unselectCancel,i=OF(n.origEvent);this.matchesCancel=!!ya(i,a),this.matchesEvent=!!ya(i,YD.SELECTOR)},this.onDocumentPointerUp=n=>{let{context:a}=this,{documentPointer:i}=this,s=a.getCurrentData();if(!i.wasTouchScroll){if(s.dateSelection&&!this.isRecentPointerDateSelect){let o=a.options.unselectAuto;o&&(!o||!this.matchesCancel)&&a.calendarApi.unselect(n)}s.eventSelection&&!this.matchesEvent&&a.dispatch({type:"UNSELECT_EVENT"})}this.isRecentPointerDateSelect=!1};let t=this.documentPointer=new eO(document);t.shouldIgnoreMove=!0,t.shouldWatchScroll=!1,t.emitter.on("pointerdown",this.onDocumentPointerDown),t.emitter.on("pointerup",this.onDocumentPointerUp),e.emitter.on("select",this.onSelect)}destroy(){this.context.emitter.off("select",this.onSelect),this.documentPointer.destroy()}},Wmt={fixedMirrorParent:U},Ymt={dateClick:U,eventDragStart:U,eventDragStop:U,eventDrop:U,eventResizeStart:U,eventResizeStop:U,eventResize:U,drop:U,eventReceive:U,eventLeave:U},m6=class{constructor(e,t){this.receivingContext=null,this.droppableEvent=null,this.suppliedDragMeta=null,this.dragMeta=null,this.handleDragStart=a=>{this.dragMeta=this.buildDragMeta(a.subjectEl)},this.handleHitUpdate=(a,i,s)=>{let{dragging:o}=this.hitDragging,l=null,c=null,d=!1,u={affectedEvents:va(),mutatedEvents:va(),isEvent:this.dragMeta.create};a&&(l=a.context,this.canDropElOnCalendar(s.subjectEl,l)&&(c=Gmt(a.dateSpan,this.dragMeta,l),u.mutatedEvents=Ig(c),d=!UD(u,a.dateProfile,l),d&&(u.mutatedEvents=va(),c=null))),this.displayDrag(l,u),o.setMirrorIsVisible(i||!c||!document.querySelector(".fc-event-mirror")),d?jb():$b(),i||(o.setMirrorNeedsRevert(!c),this.receivingContext=l,this.droppableEvent=c)},this.handleDragEnd=a=>{let{receivingContext:i,droppableEvent:s}=this;if(this.clearDrag(),i&&s){let o=this.hitDragging.finalHit,l=o.context.viewApi,c=this.dragMeta;if(i.emitter.trigger("drop",Object.assign(Object.assign({},f6(o.dateSpan,i)),{draggedEl:a.subjectEl,jsEvent:a.origEvent,view:l})),c.create){let d=Ig(s);i.dispatch({type:"MERGE_EVENTS",eventStore:d}),a.isTouch&&i.dispatch({type:"SELECT_EVENT",eventInstanceId:s.instance.instanceId}),i.emitter.trigger("eventReceive",{event:new Or(i,s.def,s.instance),relatedEvents:[],revert(){i.dispatch({type:"REMOVE_EVENTS",eventStore:d})},draggedEl:a.subjectEl,view:l})}}this.receivingContext=null,this.droppableEvent=null};let n=this.hitDragging=new Wg(e,Ug);n.requireInitial=!1,n.emitter.on("dragstart",this.handleDragStart),n.emitter.on("hitupdate",this.handleHitUpdate),n.emitter.on("dragend",this.handleDragEnd),this.suppliedDragMeta=t}buildDragMeta(e){return typeof this.suppliedDragMeta=="object"?BD(this.suppliedDragMeta):typeof this.suppliedDragMeta=="function"?BD(this.suppliedDragMeta(e)):Kmt(e)}displayDrag(e,t){let n=this.receivingContext;n&&n!==e&&n.dispatch({type:"UNSET_EVENT_DRAG"}),e&&e.dispatch({type:"SET_EVENT_DRAG",state:t})}clearDrag(){this.receivingContext&&this.receivingContext.dispatch({type:"UNSET_EVENT_DRAG"})}canDropElOnCalendar(e,t){let n=t.options.dropAccept;return typeof n=="function"?n.call(t.calendarApi,e):typeof n=="string"&&n?!!FF(e,n):!0}};Kb.dataAttrPrefix="";nO=class{constructor(e,t={}){this.handlePointerDown=a=>{let{dragging:i}=this,{minDistance:s,longPressDelay:o}=this.settings;i.minDistance=s!=null?s:a.isTouch?0:fd.eventDragMinDistance,i.delay=a.isTouch?o!=null?o:fd.longPressDelay:0},this.handleDragStart=a=>{a.isTouch&&this.dragging.delay&&a.subjectEl.classList.contains("fc-event")&&this.dragging.mirror.getMirrorEl().classList.add("fc-event-selected")},this.settings=t;let n=this.dragging=new nf(e);n.touchScrollAllowed=!1,t.itemSelector!=null&&(n.pointer.selector=t.itemSelector),t.appendTo!=null&&(n.mirror.parentNode=t.appendTo),n.emitter.on("pointerdown",this.handlePointerDown),n.emitter.on("dragstart",this.handleDragStart),new m6(n,t.eventData)}destroy(){this.dragging.destroy()}},K0e=yi({name:"@fullcalendar/interaction",componentInteractions:[c6,d6,YD,u6],calendarInteractions:[p6],elementDraggingImpl:nf,optionRefiners:Wmt,listenerRefiners:Ymt})});var iO,Z0e=y(()=>{h6();iO=class{constructor(e){this.draggableInstances=new Map;this.plugin=e}makeTaskCardDraggable(e,t){if(this.draggableInstances.has(e))return;e.dataset.taskPath=t;let n=new nO(e);this.draggableInstances.set(e,n),e.classList.remove("tn-static-cursor-pointer-2723efcc","tn-static-cursor-pointer-3b6a3a65"),e.classList.add("tn-static-cursor-grab-dad79857"),e.addEventListener("dragstart",a=>{e.classList.add("task-card--dragging"),a.dataTransfer&&(a.dataTransfer.setData("text/plain",t),a.dataTransfer.setData("application/x-task-path",t),a.dataTransfer.effectAllowed="copy")}),e.addEventListener("dragend",()=>{e.classList.remove("task-card--dragging")})}removeDraggable(e){let t=this.draggableInstances.get(e);t&&(t.destroy(),this.draggableInstances.delete(e))}destroy(){this.draggableInstances.forEach(e=>{e.destroy()}),this.draggableInstances.clear()}}});function sO(r){if(!r)return null;let e=Date.parse(r);return Number.isFinite(e)?e:null}function af(r){return Number.isFinite(r)?Math.max(1,Math.min(7200,Math.floor(r))):60}function g6(r){return af(r.plannedDuration*60)}function Jb(r,e=Date.now()){var t;return((t=r.activePeriods)!=null?t:[]).reduce((n,a)=>{var l;let i=sO(a.startTime);if(i===null)return n;let s=(l=sO(a.endTime))!=null?l:e,o=Math.max(0,s-i);return n+Math.floor(o/1e3)},0)}function oO(r,e=Date.now()){let t=g6(r),n=Jb(r,e);return Math.max(0,t-n)}function Q0e(r,e=Date.now()){let t=g6(r);if(t<=0)return 0;let n=Jb(r,e);return Math.max(0,Math.min(1,n/t))}function J0e(r,e=Date.now()){let t=Number.isFinite(r)?Math.max(0,Math.floor(r)):0;return e+t*1e3}function X0e(r,e=Date.now()){var n,a;let t=g6(r)*1e3;for(let i of(n=r.activePeriods)!=null?n:[]){let s=sO(i.startTime);if(s===null)continue;let o=(a=sO(i.endTime))!=null?a:e,l=Math.max(0,o-s);if(l>=t)return s+t;t-=l}return null}function eMe(r){let e=new Date(r),t=-e.getTimezoneOffset(),n=t>=0?"+":"-",a=(o,l=2)=>String(Math.abs(o)).padStart(l,"0"),i=a(Math.floor(Math.abs(t)/60)),s=a(Math.abs(t)%60);return`${e.getFullYear()}-${a(e.getMonth()+1)}-${a(e.getDate())}T${a(e.getHours())}:${a(e.getMinutes())}:${a(e.getSeconds())}.${a(e.getMilliseconds(),3)}${n}${i}:${s}`}function Xb(r,e={}){var c;let t=Math.max(0,Math.floor(r)),n=Math.floor(t/60),a=t%60,i=Math.floor(n/60),s=n%60,o=(c=e.padMinutes)!=null?c:!0;return i>0?`${i}:${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}`:`${o?n.toString().padStart(2,"0"):n.toString()}:${a.toString().padStart(2,"0")}`}function tMe(r){let e=r.trim();if(!e)return null;let t=e.split(":");if(t.length<1||t.length>3||!t.every(i=>/^\d+$/.test(i)))return null;let n=t.map(i=>Number(i));if(n.some(i=>!Number.isSafeInteger(i)))return null;let a;if(n.length===1)a=n[0]*60;else if(n.length===2){let[i,s]=n;if(s>59)return null;a=i*60+s}else{let[i,s,o]=n;if(s>59||o>59)return null;a=i*3600+s*60+o}return a<=0?null:af(a)}var lO=y(()=>{});var vd,rMe,cO,nMe=y(()=>{Yr();nW();vd=require("obsidian");Vo();lO();K();rMe=N({tag:"Services/StatusBarService"}),cO=class{constructor(e){this.statusBarElement=null;this.pomodoroStatusBarElement=null;this.updateTimeout=null;this.pomodoroUpdateTimeout=null;this.elapsedUpdateInterval=null;this.currentTrackedTasks=[];this.pomodoroEventRefs=[];this.plugin=e,this.requestDeduplicator=new Jk}initialize(){this.ensureTrackedStatusBarElement(),this.ensurePomodoroStatusBarElement(),this.registerPomodoroEvents(),this.updateStatusBar(),this.updatePomodoroStatusBar()}ensureTrackedStatusBarElement(){this.statusBarElement||!this.plugin.settings.showTrackedTasksInStatusBar||(this.statusBarElement=this.plugin.addStatusBarItem(),this.statusBarElement.addClass("tasknotes-status-bar"),this.statusBarElement.classList.remove("tn-static-cursor-grab-dad79857","tn-static-cursor-pointer-2723efcc"),this.statusBarElement.classList.add("tn-static-cursor-pointer-3b6a3a65"),this.statusBarElement.addEventListener("click",()=>{this.handleStatusBarClick()}))}ensurePomodoroStatusBarElement(){this.pomodoroStatusBarElement||!this.plugin.settings.showPomodoroInStatusBar||(this.pomodoroStatusBarElement=this.plugin.addStatusBarItem(),this.pomodoroStatusBarElement.addClass("tasknotes-status-bar"),this.pomodoroStatusBarElement.addClass("tasknotes-pomodoro-status"),this.pomodoroStatusBarElement.classList.remove("tn-static-cursor-grab-dad79857","tn-static-cursor-pointer-2723efcc"),this.pomodoroStatusBarElement.classList.add("tn-static-cursor-pointer-3b6a3a65"),this.pomodoroStatusBarElement.addEventListener("click",()=>{this.plugin.activatePomodoroView()}))}registerPomodoroEvents(){var t;if(this.pomodoroEventRefs.length>0||!((t=this.plugin.emitter)!=null&&t.on))return;let e=()=>this.requestPomodoroUpdate();this.pomodoroEventRefs=[this.plugin.emitter.on(ou,e),this.plugin.emitter.on(Ri,e),this.plugin.emitter.on(lu,e),this.plugin.emitter.on(cu,e)]}async updateStatusBar(){if(!this.statusBarElement){this.stopElapsedTicker();return}if(!this.plugin.settings.showTrackedTasksInStatusBar){this.hide();return}try{let e=await this.requestDeduplicator.execute("update-status-bar",()=>this.getTrackedTasks());this.renderStatusBar(e)}catch(e){rMe.error("Error updating status bar:",{category:"internal",operation:"updating-status-bar",error:e})}}updatePomodoroStatusBar(){if(!this.plugin.settings.showPomodoroInStatusBar){this.hidePomodoroStatusBar();return}if(this.ensurePomodoroStatusBarElement(),!this.pomodoroStatusBarElement||!this.plugin.pomodoroService)return;let e=this.plugin.pomodoroService.getState();if(!e.currentSession){this.hidePomodoroStatusBar();return}this.showElement(this.pomodoroStatusBarElement),this.renderPomodoroStatusBar(e)}async getTrackedTasks(){return this.plugin.cacheManager.getAllCachedTasks().filter(t=>t.archived?!1:this.plugin.getActiveTimeSession(t)!==null)}renderStatusBar(e){if(!this.statusBarElement)return;this.currentTrackedTasks=[...e];let t=e.length;if(t===0){this.stopElapsedTicker(),this.statusBarElement.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),this.statusBarElement.classList.add("tn-static-display-none-6b99de8b");return}this.startElapsedTicker(),this.statusBarElement.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),this.statusBarElement.style.removeProperty("display"),this.statusBarElement.empty();let n=this.statusBarElement.createSpan({cls:"tasknotes-status-icon"});(0,vd.setIcon)(n,"timer");let a=this.statusBarElement.createSpan({cls:"tasknotes-status-text"});if(t===1){let i=e[0],s=i.title.length>30?i.title.substring(0,30)+"...":i.title,o=this.formatElapsedDuration(this.getActiveElapsedMs(i));a.setText(`Tracking: ${s} (${o})`),(0,vd.setTooltip)(this.statusBarElement,`Currently tracking: ${i.title}
|
||
Elapsed: ${o}`,{placement:"top"})}else{let i=this.formatElapsedDuration(e.reduce((l,c)=>l+this.getActiveElapsedMs(c),0));a.setText(`Tracking ${t} tasks (${i} total)`);let s=e.slice(0,5).map(l=>`${l.title} - ${this.formatElapsedDuration(this.getActiveElapsedMs(l))}`).join(`
|
||
`),o=t>5?`${s}
|
||
... and ${t-5} more`:s;(0,vd.setTooltip)(this.statusBarElement,`Currently tracking:
|
||
${o}`,{placement:"top"})}}renderPomodoroStatusBar(e){if(!this.pomodoroStatusBarElement||!e.currentSession)return;this.pomodoroStatusBarElement.empty();let t=this.pomodoroStatusBarElement.createSpan({cls:"tasknotes-status-icon"});(0,vd.setIcon)(t,e.currentSession.type==="work"?"timer":"coffee");let n=this.pomodoroStatusBarElement.createSpan({cls:"tasknotes-status-text"}),a=Xb(e.timeRemaining),i=this.getPomodoroSessionLabel(e.currentSession.type),s=e.isRunning?i:`${i} paused`;n.setText(`${s}: ${a}`),(0,vd.setTooltip)(this.pomodoroStatusBarElement,`${s}
|
||
Remaining: ${a}
|
||
Click to open Pomodoro`,{placement:"top"})}getPomodoroSessionLabel(e){return e==="work"?"Focus":e==="short-break"?"Short break":"Long break"}showElement(e){e.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),e.style.removeProperty("display")}getActiveElapsedMs(e){let t=this.plugin.getActiveTimeSession(e);if(!(t!=null&&t.startTime))return 0;let n=Date.parse(t.startTime);return Number.isFinite(n)?Math.max(0,Date.now()-n):0}formatElapsedDuration(e){let t=Math.floor(e/1e3),n=t%60,a=Math.floor(t/60),i=a%60,s=Math.floor(a/60);return s>0?`${s}:${i.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}`:`${i}:${n.toString().padStart(2,"0")}`}startElapsedTicker(){this.elapsedUpdateInterval===null&&(this.elapsedUpdateInterval=window.setInterval(()=>{if(this.currentTrackedTasks.length===0){this.stopElapsedTicker();return}this.renderStatusBar(this.currentTrackedTasks)},1e3))}stopElapsedTicker(){this.elapsedUpdateInterval!==null&&(window.clearInterval(this.elapsedUpdateInterval),this.elapsedUpdateInterval=null),this.currentTrackedTasks=[]}async handleStatusBarClick(){try{let e=await this.getTrackedTasks();if(e.length===0)return;if(e.length===1){let t=e[0],n=this.plugin.app.vault.getAbstractFileByPath(t.path);n instanceof vd.TFile&&await this.plugin.app.workspace.getLeaf(!1).openFile(n)}else Fn(this.plugin,e,t=>{(async()=>{if(t){let n=this.plugin.app.vault.getAbstractFileByPath(t.path);n instanceof vd.TFile&&await this.plugin.app.workspace.getLeaf(!1).openFile(n)}})()})}catch(e){rMe.error("Error handling status bar click:",{category:"internal",operation:"handling-status-bar-click",error:e})}}requestUpdate(){this.updateTimeout&&window.clearTimeout(this.updateTimeout),this.updateTimeout=window.setTimeout(()=>{this.updateStatusBar()},100)}requestPomodoroUpdate(){this.pomodoroUpdateTimeout&&window.clearTimeout(this.pomodoroUpdateTimeout),this.pomodoroUpdateTimeout=window.setTimeout(()=>{this.updatePomodoroStatusBar()},100)}updateVisibility(){this.plugin.settings.showTrackedTasksInStatusBar?this.statusBarElement?this.updateStatusBar():this.ensureTrackedStatusBarElement():this.hide(),this.plugin.settings.showPomodoroInStatusBar?(this.ensurePomodoroStatusBarElement(),this.updatePomodoroStatusBar()):this.hidePomodoroStatusBar()}hide(){this.stopElapsedTicker(),this.statusBarElement&&(this.statusBarElement.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),this.statusBarElement.classList.add("tn-static-display-none-6b99de8b"))}hidePomodoroStatusBar(){this.pomodoroStatusBarElement&&(this.pomodoroStatusBarElement.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),this.pomodoroStatusBarElement.classList.add("tn-static-display-none-6b99de8b"))}destroy(){var e;this.updateTimeout&&(window.clearTimeout(this.updateTimeout),this.updateTimeout=null),this.pomodoroUpdateTimeout&&(window.clearTimeout(this.pomodoroUpdateTimeout),this.pomodoroUpdateTimeout=null),this.stopElapsedTicker(),(e=this.plugin.emitter)!=null&&e.offref&&this.pomodoroEventRefs.forEach(t=>this.plugin.emitter.offref(t)),this.pomodoroEventRefs=[],this.requestDeduplicator&&this.requestDeduplicator.cancelAll(),this.statusBarElement=null,this.pomodoroStatusBarElement=null}}});var aMe,y6,dO,iMe=y(()=>{aMe=require("obsidian");Yr();Me();K();Uu();y6=N({tag:"Services/NotificationService"}),dO=class{constructor(e){this.notificationQueue=[];this.processedReminders=new Set;this.activeAudioContexts=new Set;this.audioCleanupTimeouts=new Set;this.lastBroadScanTime=Date.now();this.lastQuickCheckTime=Date.now();this.BROAD_SCAN_INTERVAL=300*1e3;this.QUICK_CHECK_INTERVAL=30*1e3;this.QUEUE_WINDOW=300*1e3;this.plugin=e}async initialize(){this.plugin.settings.enableNotifications&&(this.plugin.settings.notificationType==="system"&&typeof Notification!="undefined"&&Notification.permission==="default"&&await Notification.requestPermission(),this.setupTaskUpdateListener(),this.setupFileUpdateListener(),this.startBroadScan(),this.startQuickCheck(),await this.scanTasksAndBuildQueue())}destroy(){this.broadScanInterval&&window.clearInterval(this.broadScanInterval),this.quickCheckInterval&&window.clearInterval(this.quickCheckInterval),this.taskUpdateListener&&this.plugin.emitter.offref(this.taskUpdateListener),this.fileUpdateListener&&this.plugin.emitter.offref(this.fileUpdateListener);for(let e of this.audioCleanupTimeouts)window.clearTimeout(e);this.audioCleanupTimeouts.clear();for(let e of this.activeAudioContexts)e.state!=="closed"&&e.close().catch(()=>{});this.activeAudioContexts.clear(),this.notificationQueue=[],this.processedReminders.clear()}startBroadScan(){this.broadScanInterval=window.setInterval(()=>{(async()=>{let e=Date.now();e-this.lastBroadScanTime>this.BROAD_SCAN_INTERVAL+6e4&&await this.handleSystemWakeUp(),await this.scanTasksAndBuildQueue(),this.lastBroadScanTime=e})()},this.BROAD_SCAN_INTERVAL)}startQuickCheck(){this.quickCheckInterval=window.setInterval(()=>{let e=Date.now();e-this.lastQuickCheckTime>this.QUICK_CHECK_INTERVAL+6e4,this.checkNotificationQueue(),this.lastQuickCheckTime=e},this.QUICK_CHECK_INTERVAL)}async scanTasksAndBuildQueue(){this.notificationQueue=[];let e=this.plugin.cacheManager.getAllCachedTasks(),t=Date.now(),n=t+this.QUEUE_WINDOW;for(let a of e)if(!(!a.reminders||a.reminders.length===0))for(let i of a.reminders){let s=`${a.path}-${i.id}`;if(this.processedReminders.has(s))continue;let o=this.calculateNotificationTime(a,i);o!==null&&o>t&&o<=n&&this.notificationQueue.push({taskPath:a.path,reminder:i,notifyAt:o})}this.notificationQueue.sort((a,i)=>a.notifyAt-i.notifyAt)}calculateNotificationTime(e,t){try{if(t.type==="absolute")return t.absoluteTime?it(t.absoluteTime).getTime():null;if(t.type==="relative"){if(!t.relatedTo||!t.offset)return null;let n=t.relatedTo==="due"?e.due:e.scheduled;if(!n)return null;let a=it(n),i=this.parseISO8601Duration(t.offset);return i===null?null:a.getTime()+i}}catch(n){return y6.error("Error calculating notification time:",{category:"provider",operation:"calculating-notification-time",error:n}),null}return null}parseISO8601Duration(e){let t=e.match(/^(-?)P(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)W)?(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?)?$/);if(!t)return null;let[,n,a,i,s,o,l,c,d]=t,u=0;return a&&(u+=parseInt(a)*365*24*60*60*1e3),i&&(u+=parseInt(i)*30*24*60*60*1e3),s&&(u+=parseInt(s)*7*24*60*60*1e3),o&&(u+=parseInt(o)*24*60*60*1e3),l&&(u+=parseInt(l)*60*60*1e3),c&&(u+=parseInt(c)*60*1e3),d&&(u+=parseInt(d)*1e3),n==="-"?-u:u}checkNotificationQueue(){let e=Date.now(),t=[];for(let n=0;n<this.notificationQueue.length;n++){let a=this.notificationQueue[n];if(a.notifyAt<=e){this.triggerNotification(a),t.push(n);let i=`${a.taskPath}-${a.reminder.id}`;this.processedReminders.add(i)}else break}for(let n=t.length-1;n>=0;n--)this.notificationQueue.splice(t[n],1)}async triggerNotification(e){let t=this.plugin.app.vault.getAbstractFileByPath(e.taskPath);if(!(t instanceof aMe.TFile))return;let n=this.plugin.app.metadataCache.getFileCache(t);if(!n||!n.frontmatter)return;let a=this.plugin.fieldMapper.mapFromFrontmatter(n.frontmatter,e.taskPath,this.plugin.settings.storeTitleInFilename),i=e.reminder.description||this.generateDefaultMessage(a,e.reminder);if(this.playNotificationSound(),this.plugin.settings.notificationType==="system")if("Notification"in window&&Notification.permission==="granted"){let s=new Notification(a.title||"TaskNotes Reminder",{body:i,tag:`tasknotes-${e.taskPath}-${e.reminder.id}`});s.onclick=()=>{this.plugin.app.workspace.openLinkText(e.taskPath,"",!1),s.close()}}else this.showInAppNotice(i,e.taskPath);else this.showInAppNotice(i,e.taskPath);this.plugin.apiService&&await this.plugin.apiService.triggerWebhook("reminder.triggered",{task:a,reminder:e.reminder,notificationTime:new Date(e.notifyAt).toISOString(),message:i,notificationType:this.plugin.settings.notificationType})}playNotificationSound(){if(!this.plugin.settings.notificationSoundEnabled)return;let e=window.AudioContext||window.webkitAudioContext;if(e)try{let t=new e,n=t.createGain(),a=Math.max(0,Math.min(1,this.plugin.settings.notificationSoundVolume/100));n.gain.value=a*.3,n.connect(t.destination);let i=(l,c)=>{let d=t.createOscillator();d.connect(n),d.frequency.value=l,d.type="sine",d.start(),d.stop(t.currentTime+c)};i(880,.12),this.activeAudioContexts.add(t);let s=window.setTimeout(()=>{try{i(1175,.12)}catch(l){y6.error("Failed to play notification sound tone:",{category:"provider",operation:"play-notification-sound-tone",error:l})}},140);this.audioCleanupTimeouts.add(s);let o=window.setTimeout(()=>{this.activeAudioContexts.delete(t),this.audioCleanupTimeouts.delete(s),this.audioCleanupTimeouts.delete(o),t.close().catch(()=>{})},320);this.audioCleanupTimeouts.add(o)}catch(t){y6.error("Failed to play notification sound:",{category:"provider",operation:"play-notification-sound",error:t})}}async sendTestReminderNotification(){let e="TaskNotes Reminder",t="This is a test reminder from TaskNotes.";if(this.playNotificationSound(),this.plugin.settings.notificationType==="system"&&typeof Notification!="undefined"&&(Notification.permission==="default"&&await Notification.requestPermission(),Notification.permission==="granted")){new Notification(e,{body:t,tag:"tasknotes-test-reminder"});return}Xe(t,5e3)}showInAppNotice(e,t){let n=Xe(e,0),a=n.noticeEl;a.addEventListener("click",()=>{this.plugin.app.workspace.openLinkText(t,"",!1),n.hide()}),a.classList.remove("tn-static-cursor-grab-dad79857","tn-static-cursor-pointer-2723efcc"),a.classList.add("tn-static-cursor-pointer-3b6a3a65")}generateDefaultMessage(e,t){if(t.type==="absolute")return`Reminder: ${e.title}`;{let n=t.relatedTo==="due"?"due":"scheduled",a=this.formatDurationForDisplay(t.offset||"");return a.startsWith("-")?`${e.title} is ${n} in ${a.substring(1)}`:a==="PT0S"||a==="PT0M"?`${e.title} is ${n} now`:`${e.title} was ${n} ${a} ago`}}formatDurationForDisplay(e){let t=this.parseISO8601Duration(e);if(t===null)return e;let n=Math.abs(t),a=Math.floor(n/(60*1e3)),i=Math.floor(n/(3600*1e3)),s=Math.floor(n/(1440*60*1e3)),o="";return s>0?o=`${s} day${s>1?"s":""}`:i>0?o=`${i} hour${i>1?"s":""}`:a>0?o=`${a} minute${a>1?"s":""}`:o="now",t<0?`-${o}`:o}async refreshReminders(){await this.scanTasksAndBuildQueue()}queueRemindersForTask(e,t){let n=Date.now(),a=n+this.QUEUE_WINDOW;if(!(!t.reminders||t.reminders.length===0)){for(let i of t.reminders){let s=`${e}-${i.id}`;if(this.processedReminders.has(s))continue;let o=this.calculateNotificationTime(t,i);o!==null&&o>n&&o<=a&&this.notificationQueue.push({taskPath:e,reminder:i,notifyAt:o})}this.notificationQueue.sort((i,s)=>i.notifyAt-s.notifyAt)}}async refreshTaskReminders(e,t){this.removeNotificationsForTask(e),this.clearProcessedRemindersForTask(e);let n=t===void 0?await this.plugin.cacheManager.getTaskInfo(e):t;n&&this.queueRemindersForTask(e,n)}clearProcessedRemindersForTask(e){let t=[];for(let n of this.processedReminders)n.startsWith(`${e}-`)&&t.push(n);t.forEach(n=>this.processedReminders.delete(n))}setupTaskUpdateListener(){this.taskUpdateListener=this.plugin.emitter.on(ot,async({path:e,updatedTask:t})=>{!e||!t||await this.refreshTaskReminders(e,t)})}setupFileUpdateListener(){this.fileUpdateListener=this.plugin.emitter.on("file-updated",async({path:e})=>{e&&await this.refreshTaskReminders(e)})}removeNotificationsForTask(e){this.notificationQueue=this.notificationQueue.filter(t=>t.taskPath!==e)}async handleSystemWakeUp(){let e=Date.now(),t=[];for(let n of this.processedReminders){let[a,i]=n.split("-",2);if(!(!a||!i))try{let s=await this.plugin.cacheManager.getTaskInfo(a);if(s&&s.reminders){let o=s.reminders.find(l=>l.id===i);if(o){let l=this.calculateNotificationTime(s,o);l&&l<=e&&t.push(n)}}}catch(s){t.push(n)}}t.forEach(n=>this.processedReminders.delete(n)),await this.scanTasksAndBuildQueue()}}});var v6,uO,sMe=y(()=>{Yr();K();v6=N({tag:"Services/ViewPerformanceService"}),uO=class{constructor(e){this.globalTaskVersionCache=new Map;this.lastGlobalRefreshTime=0;this.globalTaskCount=0;this.viewHandlers=new Map;this.viewDebounceTimers=new Map;this.viewPendingUpdates=new Map;this.viewConfigs=new Map;this.updateInProgress=new Set;this.eventListener=null;this.plugin=e,this.setupGlobalEventListener()}registerView(e,t){this.viewConfigs.set(e.viewId,{debounceDelay:100,maxBatchSize:5,changeDetectionEnabled:!0,...e}),this.viewHandlers.set(e.viewId,t),this.viewPendingUpdates.set(e.viewId,new Set)}unregisterView(e){let t=this.viewDebounceTimers.get(e);t&&(window.clearTimeout(t),this.viewDebounceTimers.delete(e)),this.viewConfigs.delete(e),this.viewHandlers.delete(e),this.viewPendingUpdates.delete(e),this.updateInProgress.delete(e)}setupGlobalEventListener(){this.eventListener=this.plugin.emitter.on(ot,async({path:e,originalTask:t,updatedTask:n})=>{if(!e||!n){await this.triggerFullRefreshForAllViews();return}n.path||(n.path=e),this.hasTaskChanged(n)&&await this.handleTaskUpdateForAllViews(n,t)})}async handleTaskUpdateForAllViews(e,t){let n=[];for(let[a,i]of this.viewHandlers)i.shouldRefreshForTask&&!i.shouldRefreshForTask(t,e)||n.push(this.scheduleViewUpdate(a,e.path));await Promise.all(n),Math.random()<.1&&await this.cleanupTaskVersionCache()}async scheduleViewUpdate(e,t){let n=this.viewConfigs.get(e);if(!n)return;let a=this.viewPendingUpdates.get(e);a&&a.add(t);let i=this.viewDebounceTimers.get(e);i&&window.clearTimeout(i);let s=window.setTimeout(()=>{this.processPendingUpdatesForView(e)},n.debounceDelay);this.viewDebounceTimers.set(e,s)}async processPendingUpdatesForView(e){if(this.updateInProgress.has(e))return;let t=this.viewConfigs.get(e),n=this.viewHandlers.get(e),a=this.viewPendingUpdates.get(e);if(!(!t||!n||!a||a.size===0)){this.updateInProgress.add(e);try{let i=Array.from(a);if(a.clear(),i.length>t.maxBatchSize)await n.refresh();else{let s=i.map(o=>n.updateForTask(o,"update").catch(l=>{v6.error(`[ViewPerformanceService] Error updating task ${o} in ${e}:`,{category:"persistence",operation:"updating-task",error:l})}));await Promise.all(s)}}catch(i){v6.error(`[ViewPerformanceService] Error processing updates for ${e}:`,{category:"validation",operation:"processing-updates",error:i}),await n.refresh()}finally{this.updateInProgress.delete(e),this.viewDebounceTimers.delete(e)}}}async triggerFullRefreshForAllViews(){let e=[];for(let[t,n]of this.viewHandlers)this.updateInProgress.has(t)||e.push(n.refresh(!0));await Promise.all(e),this.lastGlobalRefreshTime=Date.now()}hasTaskChanged(e){let t=this.globalTaskVersionCache.get(e.path),n=e.dateModified||Date.now().toString();return t!==n?(this.globalTaskVersionCache.set(e.path,n),!0):!1}shouldDoFullRefresh(){let e=Date.now()-this.lastGlobalRefreshTime,t=this.globalTaskVersionCache.size;return e>600*1e3||Math.abs(t-this.globalTaskCount)>20||t===0}async cleanupTaskVersionCache(){try{let e=this.plugin.cacheManager.getAllTaskPaths(),t=new Set(e);for(let n of this.globalTaskVersionCache.keys())t.has(n)||this.globalTaskVersionCache.delete(n);this.globalTaskCount=t.size,this.globalTaskVersionCache.size>2e3&&(this.globalTaskVersionCache.clear(),this.lastGlobalRefreshTime=0)}catch(e){v6.error("[ViewPerformanceService] Error during cache cleanup:",{category:"stale-data",operation:"cache-cleanup",error:e})}}async forceRefreshAll(){this.globalTaskVersionCache.clear(),await this.triggerFullRefreshForAllViews()}getStats(){return{registeredViews:Array.from(this.viewConfigs.keys()),cacheSize:this.globalTaskVersionCache.size,activeUpdates:Array.from(this.updateInProgress),totalPendingUpdates:Array.from(this.viewPendingUpdates.values()).reduce((e,t)=>e+t.size,0),lastGlobalRefresh:new Date(this.lastGlobalRefreshTime).toISOString()}}destroy(){this.eventListener&&(this.plugin.emitter.offref(this.eventListener),this.eventListener=null);for(let e of this.viewDebounceTimers.values())window.clearTimeout(e);this.viewHandlers.clear(),this.viewDebounceTimers.clear(),this.viewPendingUpdates.clear(),this.viewConfigs.clear(),this.updateInProgress.clear(),this.globalTaskVersionCache.clear()}}});function Qmt(r){return r.width>0&&r.height>0}function Jmt(r){let e=r.cacheManager.getAllTaskPaths(),t=[];for(let n of e){let a=r.cacheManager.getCachedTaskInfoSync(n);a&&!a.archived&&t.push(a)}return t}function oMe(r,e){return Qmt(r)?r:e}var np,GD,pO,lMe=y(()=>{np=require("obsidian");Yr();Vo();mi();$c();lN();lO();Me();K();GD=N({tag:"Views/PomodoroView"});pO=class extends np.ItemView{constructor(t,n){super(t);this.timerDisplay=null;this.timerInput=null;this.statusDisplay=null;this.sessionMetaDisplay=null;this.progressCircle=null;this.progressContainer=null;this.startButton=null;this.pauseButton=null;this.stopButton=null;this.taskDisplay=null;this.statsDisplay=null;this.taskSelectButton=null;this.taskClearButton=null;this.currentSelectedTask=null;this.taskCardContainer=null;this.addTimeButton=null;this.subtractTimeButton=null;this.skipBreakButton=null;this.isEditingTimer=!1;this.isTaskSelectorOpen=!1;this.todaysPomodoros=0;this.statElements={pomodoros:null};this.resizeObserver=null;this.resizeTimeout=null;this.functionListeners=[];this.currentCircleSize=300;this.currentCircumference=0;this.listeners=[];this.plugin=n,this.registerEvents()}refreshStats(){this.updateStats().catch(t=>{GD.error("Failed to update stats:",{category:"validation",operation:"update-stats",error:t})})}getViewType(){return su}getDisplayText(){return this.plugin.i18n.translate("views.pomodoro.title")}getIcon(){return"clock"}t(t,n){return this.plugin.i18n.translate(t,n)}registerEvents(){this.listeners.forEach(o=>this.plugin.emitter.offref(o)),this.listeners=[];let t=this.plugin.emitter.on(ou,({session:o,task:l})=>{this.updateDisplay(o,l)});this.listeners.push(t);let n=this.plugin.emitter.on(lu,({session:o,nextType:l})=>{this.onPomodoroComplete(o,l)});this.listeners.push(n);let a=this.plugin.emitter.on(cu,()=>{this.updateDisplay(void 0,void 0,{refreshStats:!0})});this.listeners.push(a);let i=this.plugin.emitter.on(Ri,({timeRemaining:o,session:l})=>{this.updateTimer(o),this.updateDisplay(l)});this.listeners.push(i);let s=this.plugin.emitter.on(ot,async({path:o,originalTask:l,updatedTask:c})=>{if(!o||!c)return;if(this.currentSelectedTask&&(this.currentSelectedTask.path===o||l&&this.currentSelectedTask.path===l.path)){this.currentSelectedTask=c,this.updateTaskCardDisplay(c);let u=this.plugin.pomodoroService.getState();u.currentSession&&l&&l.path!==c.path&&u.currentSession.taskPath===l.path&&await this.plugin.pomodoroService.assignTaskToCurrentSession(c)}});this.listeners.push(s)}async onOpen(){await this.plugin.onReady(),await this.render(),this.ensureResizeHandlingSetup(),this.plugin.app.workspace.layoutReady?window.setTimeout(()=>this.ensureResizeHandlingSetup(),50):this.plugin.app.workspace.onLayoutReady(()=>{this.ensureResizeHandlingSetup()})}async onClose(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.resizeTimeout&&(window.clearTimeout(this.resizeTimeout),this.resizeTimeout=null),this.listeners.forEach(t=>this.plugin.emitter.offref(t)),this.functionListeners.forEach(t=>t()),this.timerDisplay=null,this.timerInput=null,this.statusDisplay=null,this.sessionMetaDisplay=null,this.progressCircle=null,this.progressContainer=null,this.startButton=null,this.pauseButton=null,this.stopButton=null,this.taskDisplay=null,this.statsDisplay=null,this.taskSelectButton=null,this.taskClearButton=null,this.currentSelectedTask=null,this.taskCardContainer=null,this.addTimeButton=null,this.subtractTimeButton=null,this.skipBreakButton=null,this.isEditingTimer=!1,this.statElements={pomodoros:null},this.contentEl.empty()}async render(){let t=this.contentEl.createDiv({cls:"tasknotes-plugin pomodoro-view"}),n=t.createDiv({cls:"pomodoro-view__timer-section"}),a=n.createDiv({cls:"pomodoro-view__timer-header"});this.statusDisplay=a.createDiv({cls:"pomodoro-view__status",text:this.t("views.pomodoro.status.ready")}),this.sessionMetaDisplay=a.createDiv({cls:"pomodoro-view__session-meta"}),this.progressContainer=n.createDiv({cls:"pomodoro-view__progress-container"});let i=activeWindow.createSvg("svg");i.setAttribute("class","pomodoro-view__progress-svg"),i.setAttribute("width","300"),i.setAttribute("height","300"),i.setAttribute("viewBox","0 0 300 300"),this.progressContainer.appendChild(i);let s=activeWindow.createSvg("circle");s.setAttributeNS(null,"cx","150"),s.setAttributeNS(null,"cy","150"),s.setAttributeNS(null,"r","140"),s.setAttributeNS(null,"fill","none"),s.setAttributeNS(null,"stroke","var(--tn-border-color)"),s.setAttributeNS(null,"stroke-width","2"),i.appendChild(s),this.progressCircle=activeWindow.createSvg("circle"),this.progressCircle.setAttributeNS(null,"cx","150"),this.progressCircle.setAttributeNS(null,"cy","150"),this.progressCircle.setAttributeNS(null,"r","140"),this.progressCircle.setAttributeNS(null,"fill","none"),this.progressCircle.setAttributeNS(null,"stroke","var(--tn-interactive-accent)"),this.progressCircle.setAttributeNS(null,"stroke-width","4"),this.progressCircle.setAttributeNS(null,"stroke-linecap","round");let l=2*Math.PI*140;this.progressCircle.setAttributeNS(null,"stroke-dasharray",l.toString()),this.progressCircle.setAttributeNS(null,"stroke-dashoffset",l.toString()),this.progressCircle.addClass("pomodoro-view__progress-circle"),i.appendChild(this.progressCircle);let c=this.progressContainer.createDiv({cls:"pomodoro-view__timer-overlay"}),u=`${this.plugin.settings.pomodoroWorkDuration.toString().padStart(2,"0")}:00`;this.timerDisplay=c.createDiv({cls:"pomodoro-view__timer-display",text:u}),this.timerDisplay.tabIndex=0,this.timerDisplay.setAttribute("role","button"),this.timerDisplay.setAttribute("aria-label",this.t("views.pomodoro.timer.editLabel")),this.timerInput=c.createEl("input",{cls:"pomodoro-view__timer-input pomodoro-view__timer-input--hidden",attr:{type:"text",inputmode:"numeric","aria-label":this.t("views.pomodoro.timer.inputLabel")}});let p=c.createDiv({cls:"pomodoro-view__time-controls"});this.subtractTimeButton=p.createEl("button",{cls:"pomodoro-view__time-adjust-button pomodoro-view__subtract-time",text:"-1m"}),this.subtractTimeButton.setAttribute("aria-label",this.t("views.pomodoro.buttons.subtractMinute")),this.addTimeButton=p.createEl("button",{cls:"pomodoro-view__time-adjust-button pomodoro-view__add-time",text:"+1m"}),this.addTimeButton.setAttribute("aria-label",this.t("views.pomodoro.buttons.addMinute")),this.taskDisplay=t.createDiv({cls:"pomodoro-view__task-display"});let m=t.createDiv({cls:"pomodoro-view__task-selector"}),f=m.createDiv({cls:"pomodoro-view__task-buttons"});this.taskSelectButton=f.createEl("button",{cls:"pomodoro-view__task-select-button",text:this.t("views.pomodoro.buttons.chooseTask")}),this.taskClearButton=f.createEl("button",{cls:"pomodoro-view__task-clear-button pomodoro-view__task-clear-button--hidden",text:this.t("views.pomodoro.buttons.clearTask")}),this.taskCardContainer=m.createDiv({cls:"pomodoro-view__task-card-container"});let h=t.createDiv({cls:"pomodoro-view__control-section"}),g=h.createDiv({cls:"pomodoro-view__primary-controls"});this.startButton=g.createEl("button",{text:this.t("views.pomodoro.buttons.startFocus"),cls:"pomodoro-view__start-button"}),this.pauseButton=g.createEl("button",{text:this.t("views.pomodoro.buttons.pause"),cls:"pomodoro-view__pause-button"}),this.pauseButton.addClass("pomodoro-view__pause-button--hidden"),this.stopButton=g.createEl("button",{text:this.t("views.pomodoro.buttons.stop"),cls:"pomodoro-view__stop-button"}),this.stopButton.addClass("pomodoro-view__stop-button--hidden"),this.skipBreakButton=h.createEl("button",{cls:"pomodoro-view__skip-break-button",text:this.t("views.pomodoro.buttons.skipBreak")}),this.skipBreakButton.addClass("pomodoro-view__skip-break-button--hidden");let v=t.createDiv({cls:"pomodoro-view__stats-section"});this.statsDisplay=v.createDiv({cls:"pomodoro-view__stats"});let b=this.statsDisplay.createDiv({cls:"pomodoro-view__stat pomodoro-view__stat--clickable"});if(this.statElements.pomodoros=b.createSpan({cls:"pomodoro-view__stat-value",text:"0"}),b.createSpan({cls:"pomodoro-view__stat-label",text:this.t("views.pomodoro.statsLabel")}),this.registerDomEvent(b,"click",()=>{this.plugin.activatePomodoroStatsView()}),this.registerDomEvent(this.startButton,"click",async()=>{var k,w,S;if(!((k=this.startButton)!=null&&k.hasClass("is-loading"))){(w=this.startButton)==null||w.addClass("pomodoro-view__start-button--loading");try{let C=this.plugin.pomodoroService.getState();C.currentSession&&!C.isRunning?await this.plugin.pomodoroService.resumePomodoro():C.nextSessionType==="short-break"?await this.plugin.pomodoroService.startBreak(!1):C.nextSessionType==="long-break"?await this.plugin.pomodoroService.startBreak(!0):await this.plugin.pomodoroService.startPomodoro(this.currentSelectedTask||void 0)}finally{(S=this.startButton)==null||S.removeClass("pomodoro-view__start-button--loading")}}}),this.registerDomEvent(this.pauseButton,"click",()=>{this.plugin.pomodoroService.pausePomodoro()}),this.registerDomEvent(this.stopButton,"click",()=>{this.plugin.pomodoroService.stopPomodoro()}),this.registerDomEvent(this.skipBreakButton,"click",()=>{let k=this.plugin.pomodoroService.getState();k.currentSession?this.plugin.pomodoroService.stopPomodoro():(k.nextSessionType==="short-break"||k.nextSessionType==="long-break")&&this.plugin.pomodoroService.skipBreak()}),this.registerDomEvent(this.addTimeButton,"click",()=>{this.adjustSessionTime(60)}),this.registerDomEvent(this.subtractTimeButton,"click",()=>{this.adjustSessionTime(-60)}),this.registerDomEvent(this.timerDisplay,"click",()=>{this.beginTimerEdit()}),this.registerDomEvent(this.timerDisplay,"keydown",k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),this.beginTimerEdit())}),this.registerDomEvent(this.timerInput,"keydown",k=>{k.key==="Enter"?(k.preventDefault(),this.commitTimerEdit()):k.key==="Escape"&&(k.preventDefault(),this.cancelTimerEdit())}),this.registerDomEvent(this.timerInput,"blur",()=>{this.commitTimerEdit()}),this.registerDomEvent(this.taskSelectButton,"click",async()=>{await this.openTaskSelector()}),this.registerDomEvent(this.taskClearButton,"click",async()=>{await this.selectTask(null)}),this.restoreLastSelectedTask(),this.updateDisplay(),this.refreshStats(),this.plugin.pomodoroService){let k=this.plugin.pomodoroService.getState();this.updateTimer(k.timeRemaining)}}setupResizeHandling(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.resizeTimeout&&(window.clearTimeout(this.resizeTimeout),this.resizeTimeout=null),this.functionListeners.forEach(s=>s()),this.functionListeners=[];let t=this.contentEl.ownerDocument.defaultView||window,n=()=>{this.resizeTimeout&&t.clearTimeout(this.resizeTimeout),this.resizeTimeout=t.setTimeout(()=>{this.updateResponsiveLayout()},150)};t.ResizeObserver&&(this.resizeObserver=new t.ResizeObserver(n),this.contentEl.querySelector(".pomodoro-view")&&this.resizeObserver.observe(this.contentEl));let a=this.plugin.app.workspace.on("layout-change",n);this.listeners.push(a),t.addEventListener("resize",n),this.functionListeners.push(()=>t.removeEventListener("resize",n));let i=this.plugin.app.workspace.on("active-leaf-change",s=>{s===this.leaf&&t.setTimeout(()=>{this.updateResponsiveLayout()},100)});this.listeners.push(i),this.updateResponsiveLayout()}ensureResizeHandlingSetup(t=0){let a=Math.min(100*Math.pow(1.5,t),1e3);window.setTimeout(()=>{if(!this.resizeObserver){let i=this.contentEl.querySelector(".pomodoro-view");if(i){let s=this.contentEl.getBoundingClientRect(),o=i.getBoundingClientRect(),{width:l,height:c}=oMe({width:s.width,height:s.height},{width:o.width,height:o.height});l>0&&c>0?this.setupResizeHandling():t<10&&this.ensureResizeHandlingSetup(t+1)}else t<10&&this.ensureResizeHandlingSetup(t+1)}},a)}updateResponsiveLayout(){let t=this.contentEl.querySelector(".pomodoro-view");if(!t)return;let n=t.getBoundingClientRect(),a=this.contentEl.getBoundingClientRect(),{width:i,height:s}=oMe({width:a.width,height:a.height},{width:n.width,height:n.height}),o=Math.min(i/600,1),l=Math.min(s/800,1),c=Math.min(o*.7+l*.3,1);t.classList.remove("pomodoro-view--tiny","pomodoro-view--extra-narrow","pomodoro-view--very-narrow","pomodoro-view--narrow","pomodoro-view--small","pomodoro-view--medium-small","pomodoro-view--medium","pomodoro-view--wide"),i<=200?t.classList.add("pomodoro-view--tiny"):i<=250?t.classList.add("pomodoro-view--extra-narrow"):i<=300?t.classList.add("pomodoro-view--very-narrow"):i<=350?t.classList.add("pomodoro-view--narrow"):i<=400?t.classList.add("pomodoro-view--small"):i<=500?t.classList.add("pomodoro-view--medium-small"):i<=600?t.classList.add("pomodoro-view--medium"):t.classList.add("pomodoro-view--wide");let d=t.querySelector(".pomodoro-view__timer-display"),u=t.querySelector(".pomodoro-view__timer-input");if(d||u){let p,m;i<=200?(p=2,m="700"):i<=250?(p=2.2,m="650"):i<=300?(p=2.5,m="600"):i<=350?(p=3,m="600"):i<=400?(p=3.2,m="550"):i<=500?(p=3.6,m="500"):i<=600?(p=4,m="500"):(p=4.5,m="400");let h=`${Math.max(p*c,1.5).toFixed(1)}rem`;d&&(d.style.fontSize=h,d.style.fontWeight=m),u&&(u.style.fontSize=h,u.style.fontWeight=m)}this.updateProgressCircleSize(i,s)}updateProgressCircleSize(t,n){if(!this.progressContainer)return;let a=this.progressContainer.querySelector(".pomodoro-view__progress-svg");if(!a)return;let i=Math.min(t*.8,n*.4),s;if(t<=200?s=Math.max(120,Math.min(i,t-40)):t<=250?s=Math.max(150,Math.min(i,t-50)):t<=300?s=Math.max(180,Math.min(i,t-60)):t<=350?s=Math.max(200,Math.min(i,t-70)):t<=400?s=Math.max(230,Math.min(i,t-80)):t<=500?s=Math.max(250,Math.min(i,t-100)):t<=600?s=Math.max(280,Math.min(i,300)):s=Math.max(300,Math.min(i,t*.5,400)),s===this.currentCircleSize)return;this.currentCircleSize=s,a.setAttribute("width",s.toString()),a.setAttribute("height",s.toString()),a.setAttribute("viewBox",`0 0 ${s} ${s}`),this.progressContainer.style.width=`${s}px`,this.progressContainer.style.height=`${s}px`;let o=s/2,l=o-20;if(a.querySelectorAll("circle").forEach(d=>{d.setAttribute("cx",o.toString()),d.setAttribute("cy",o.toString()),d.setAttribute("r",l.toString())}),this.progressCircle){let d=2*Math.PI*l;if(this.currentCircumference=d,this.progressCircle.setAttribute("stroke-dasharray",d.toString()),this.progressCircle.setAttribute("stroke-dashoffset",d.toString()),this.plugin.pomodoroService){let u=this.plugin.pomodoroService.getState();this.updateProgress(u)}}}async openTaskSelector(){if(!this.isTaskSelectorOpen){this.isTaskSelectorOpen=!0;try{let t=Jmt(this.plugin),n=new Date;if(t.length===0){new np.Notice(this.t("views.pomodoro.notices.noTasks")),this.isTaskSelectorOpen=!1;return}Fn(this.plugin,t,a=>{this.isTaskSelectorOpen=!1,this.selectTask(a)},{targetDate:n})}catch(t){this.isTaskSelectorOpen=!1,GD.error("Error opening task selector:",{category:"persistence",operation:"opening-task-selector",error:t}),new np.Notice(this.t("views.pomodoro.notices.loadFailed"))}}}async selectTask(t){this.currentSelectedTask=t,this.taskSelectButton&&(t?(this.taskSelectButton.textContent=this.t("views.pomodoro.buttons.changeTask"),(0,np.setTooltip)(this.taskSelectButton,this.t("views.pomodoro.buttons.selectDifferentTask"),{placement:"top"}),this.taskSelectButton.removeClass("pomodoro-view__task-select-button--no-task")):(this.taskSelectButton.textContent=this.t("views.pomodoro.buttons.chooseTask"),this.taskSelectButton.removeAttribute("title"),this.taskSelectButton.addClass("pomodoro-view__task-select-button--no-task"))),this.taskClearButton&&(t?this.taskClearButton.removeClass("pomodoro-view__task-clear-button--hidden"):this.taskClearButton.addClass("pomodoro-view__task-clear-button--hidden")),this.updateTaskCardDisplay(t),await this.plugin.pomodoroService.saveLastSelectedTask(t==null?void 0:t.path);let n=this.plugin.pomodoroService.getState();n.currentSession&&n.currentSession.type==="work"&&await this.plugin.pomodoroService.assignTaskToCurrentSession(t||void 0)}updateTaskCardDisplay(t){if(this.taskCardContainer)if(this.taskCardContainer.empty(),t){let n=this.plugin.settings.defaultVisibleProperties?$i(this.plugin.settings.defaultVisibleProperties,this.plugin):void 0,a=new Date,i=oN(t,a,this.plugin.statusManager,this.plugin.settings.defaultTaskStatus),s=Dr(i,this.plugin,n,{targetDate:a});this.taskCardContainer.appendChild(s),this.taskCardContainer.removeClass("pomodoro-view__task-card-container--empty")}else this.taskCardContainer.addClass("pomodoro-view__task-card-container--empty")}async restoreLastSelectedTask(){try{if(!this.plugin.pomodoroService)return;let t=await this.plugin.pomodoroService.getLastSelectedTaskPath();if(t){let n=await this.plugin.cacheManager.getTaskByPath(t);n&&!cg(n,new Date,this.plugin.statusManager,this.plugin.settings.defaultTaskStatus)&&!n.archived&&await this.selectTask(n)}}catch(t){GD.error("Error restoring last selected task:",{category:"persistence",operation:"restoring-last-selected-task",error:t})}}async updateTaskButtonFromPath(t){try{let n=await this.plugin.cacheManager.getTaskInfo(t);if(n){this.currentSelectedTask=n,this.taskSelectButton&&(this.taskSelectButton.textContent=this.t("views.pomodoro.buttons.changeTask"),(0,np.setTooltip)(this.taskSelectButton,this.t("views.pomodoro.buttons.selectDifferentTask"),{placement:"top"}),this.taskSelectButton.removeClass("pomodoro-no-task"),this.taskSelectButton.removeClass("pomodoro-view__task-select-button--no-task")),this.taskClearButton&&this.taskClearButton.removeClass("pomodoro-view__task-clear-button--hidden"),this.updateTaskCardDisplay(n);return}this.currentSelectedTask=null,this.taskSelectButton&&(this.taskSelectButton.textContent=this.t("views.pomodoro.buttons.chooseTask"),this.taskSelectButton.removeAttribute("title"),this.taskSelectButton.addClass("pomodoro-view__task-select-button--no-task")),this.taskClearButton&&this.taskClearButton.addClass("pomodoro-view__task-clear-button--hidden"),this.updateTaskCardDisplay(null)}catch(n){GD.error("Error updating task button from path:",{category:"persistence",operation:"updating-task-button-path",error:n})}}updateDisplay(t,n,a={}){var s,o;if(!this.plugin.pomodoroService){this.statusDisplay&&(this.statusDisplay.textContent=this.t("views.pomodoro.status.ready"),this.statusDisplay.className="pomodoro-status pomodoro-view__status");return}let i=this.plugin.pomodoroService.getState();if(this.updateTimer(i.timeRemaining),this.updateProgress(i),this.updateSessionMeta(i),this.statusDisplay)if(i.isRunning&&i.currentSession){let l=i.currentSession.type==="work"?this.t("views.pomodoro.status.focus"):i.currentSession.type==="short-break"?this.t("views.pomodoro.status.shortBreak"):this.t("views.pomodoro.status.longBreak");this.statusDisplay.textContent=l,this.statusDisplay.className=`pomodoro-status pomodoro-view__status pomodoro-status-${i.currentSession.type} pomodoro-view__status--${i.currentSession.type}`}else i.currentSession&&!i.isRunning?(this.statusDisplay.textContent=this.t("views.pomodoro.status.paused"),this.statusDisplay.className="pomodoro-status pomodoro-view__status pomodoro-status-paused pomodoro-view__status--paused"):(this.statusDisplay.textContent=this.t("views.pomodoro.status.ready"),this.statusDisplay.className="pomodoro-status pomodoro-view__status");if(this.taskDisplay){let l=(s=i.currentSession)==null?void 0:s.taskPath,c=this.taskDisplay.dataset.currentTaskPath;l!==c&&(this.taskDisplay.empty(),this.taskDisplay.dataset.currentTaskPath=l||"")}if(this.taskSelectButton&&(o=i.currentSession)!=null&&o.taskPath&&!this.currentSelectedTask&&this.updateTaskButtonFromPath(i.currentSession.taskPath),this.startButton&&this.pauseButton&&this.stopButton&&(i.isRunning?(this.startButton.addClass("pomodoro-view__start-button--hidden"),this.pauseButton.removeClass("pomodoro-view__pause-button--hidden"),this.stopButton.removeClass("pomodoro-view__stop-button--hidden")):i.currentSession?(this.startButton.removeClass("pomodoro-view__start-button--hidden"),this.startButton.textContent=this.t("views.pomodoro.buttons.resume"),this.pauseButton.addClass("pomodoro-view__pause-button--hidden"),this.stopButton.removeClass("pomodoro-view__stop-button--hidden")):(this.startButton.removeClass("pomodoro-view__start-button--hidden"),i.nextSessionType==="short-break"?this.startButton.textContent=this.t("views.pomodoro.buttons.startShortBreak"):i.nextSessionType==="long-break"?this.startButton.textContent=this.t("views.pomodoro.buttons.startLongBreak"):this.startButton.textContent=this.t("views.pomodoro.buttons.startFocus"),this.pauseButton.addClass("pomodoro-view__pause-button--hidden"),this.stopButton.addClass("pomodoro-view__stop-button--hidden"))),this.skipBreakButton){let l=i.currentSession&&(i.currentSession.type==="short-break"||i.currentSession.type==="long-break"),c=!i.currentSession&&(i.nextSessionType==="short-break"||i.nextSessionType==="long-break");l||c?(this.skipBreakButton.removeClass("pomodoro-view__skip-break-button--hidden"),this.skipBreakButton.textContent=this.t("views.pomodoro.buttons.skipBreak")):this.skipBreakButton.addClass("pomodoro-view__skip-break-button--hidden")}this.addTimeButton&&this.subtractTimeButton&&(this.addTimeButton.removeClass("pomodoro-view__time-adjust-button--hidden"),this.subtractTimeButton.removeClass("pomodoro-view__time-adjust-button--hidden")),this.timerDisplay&&(this.canEditTimer()?(this.timerDisplay.addClass("pomodoro-view__timer-display--editable"),this.timerDisplay.setAttribute("aria-disabled","false")):(this.timerDisplay.removeClass("pomodoro-view__timer-display--editable"),this.timerDisplay.setAttribute("aria-disabled","true"))),a.refreshStats&&this.refreshStats()}updateSessionMeta(t){if(!this.sessionMetaDisplay)return;let n=Xb(t.timeRemaining,{padMinutes:!1}),a;if(t.currentSession){let i=this.getSessionTypeLabel(t.currentSession.type);if(t.isRunning){let s=em(new Date(J0e(t.timeRemaining)),this.plugin.settings.calendarViewSettings.timeFormat);a=this.t("views.pomodoro.meta.running",{time:n,endTime:s})}else a=this.t("views.pomodoro.meta.paused",{type:i,time:n})}else t.nextSessionType==="short-break"||t.nextSessionType==="long-break"?a=this.t("views.pomodoro.meta.breakReady",{type:this.getSessionTypeLabel(t.nextSessionType),time:n}):a=this.t("views.pomodoro.meta.ready",{time:n,count:this.todaysPomodoros});this.sessionMetaDisplay.textContent=a}getSessionTypeLabel(t){return t==="work"?this.t("views.pomodoro.status.focus"):t==="short-break"?this.t("views.pomodoro.status.shortBreak"):this.t("views.pomodoro.status.longBreak")}canEditTimer(){var n;let t=(n=this.plugin.pomodoroService)==null?void 0:n.getState();return!!(t&&!t.isRunning)}beginTimerEdit(){if(!this.timerDisplay||!this.timerInput||!this.plugin.pomodoroService||!this.canEditTimer())return;let t=this.plugin.pomodoroService.getState();this.isEditingTimer=!0,this.timerInput.value=Xb(t.timeRemaining,{padMinutes:!1}),this.timerDisplay.addClass("pomodoro-view__timer-display--hidden"),this.timerInput.removeClass("pomodoro-view__timer-input--hidden"),this.timerInput.focus(),this.timerInput.select()}commitTimerEdit(){var i,s;if(!this.isEditingTimer||!this.timerInput||!this.timerDisplay)return;let t=tMe(this.timerInput.value);if(this.isEditingTimer=!1,this.timerInput.addClass("pomodoro-view__timer-input--hidden"),this.timerDisplay.removeClass("pomodoro-view__timer-display--hidden"),t===null){new np.Notice(this.t("views.pomodoro.notices.invalidDuration"));let o=(i=this.plugin.pomodoroService)==null?void 0:i.getState();o&&this.updateTimer(o.timeRemaining);return}let n=(s=this.plugin.pomodoroService)==null?void 0:s.getState();if(!n)return;n.currentSession?this.plugin.pomodoroService.setCurrentSessionRemainingTime(t):this.plugin.pomodoroService.adjustPreparedTimer(t);let a=this.plugin.pomodoroService.getState();this.updateTimer(a.timeRemaining),this.updateProgress(a),this.updateSessionMeta(a)}cancelTimerEdit(){var n;if(!this.timerInput||!this.timerDisplay)return;this.isEditingTimer=!1,this.timerInput.addClass("pomodoro-view__timer-input--hidden"),this.timerDisplay.removeClass("pomodoro-view__timer-display--hidden");let t=(n=this.plugin.pomodoroService)==null?void 0:n.getState();t&&this.updateTimer(t.timeRemaining)}updateTimer(t){if(this.timerDisplay){if(this.isEditingTimer)return;let n=Math.max(0,Math.floor(t));this.timerDisplay.textContent=Xb(n),n<=60&&n>0?this.timerDisplay.addClass("pomodoro-view__timer-display--warning"):this.timerDisplay.removeClass("pomodoro-view__timer-display--warning")}}updateProgress(t){if(!this.progressCircle)return;let n=this.currentCircumference;if(n===0){let s=this.progressCircle.getAttribute("r"),o=s?parseInt(s):140;n=2*Math.PI*o,this.currentCircumference=n}if(!t.currentSession){this.progressCircle.setAttributeNS(null,"stroke-dashoffset",n.toString()),this.progressCircle.removeClass("pomodoro-view__progress-circle--work"),this.progressCircle.removeClass("pomodoro-view__progress-circle--short-break"),this.progressCircle.removeClass("pomodoro-view__progress-circle--long-break"),this.progressCircle.removeClass("pomodoro-view__progress-circle--warning");return}let a=t.isRunning?Q0e(t.currentSession):(()=>{let s=Jb(t.currentSession),o=t.currentSession.plannedDuration*60;return o>0?Math.max(0,Math.min(1,s/o)):0})(),i=n-a*n;this.progressCircle.setAttributeNS(null,"stroke-dashoffset",i.toString()),this.progressCircle.removeClass("pomodoro-view__progress-circle--work"),this.progressCircle.removeClass("pomodoro-view__progress-circle--short-break"),this.progressCircle.removeClass("pomodoro-view__progress-circle--long-break"),this.progressCircle.addClass(`pomodoro-view__progress-circle--${t.currentSession.type}`),t.timeRemaining<=60&&t.timeRemaining>0?this.progressCircle.addClass("pomodoro-view__progress-circle--warning"):this.progressCircle.removeClass("pomodoro-view__progress-circle--warning")}async updateStats(){try{if(!this.plugin.pomodoroService){this.statElements.pomodoros&&(this.statElements.pomodoros.textContent="0");return}let t=await this.plugin.pomodoroService.getTodayStats();this.todaysPomodoros=t.pomodorosCompleted,this.statElements.pomodoros&&this.statElements.pomodoros.textContent!==t.pomodorosCompleted.toString()&&(this.statElements.pomodoros.textContent=t.pomodorosCompleted.toString()),this.updateSessionMeta(this.plugin.pomodoroService.getState())}catch(t){GD.error("Failed to update stats:",{category:"validation",operation:"update-stats",error:t}),this.statElements.pomodoros&&(this.statElements.pomodoros.textContent="0")}}adjustSessionTime(t){if(!this.plugin.pomodoroService)return;let n=this.plugin.pomodoroService.getState();if(n.currentSession)this.plugin.pomodoroService.adjustSessionTime(t);else{let a=Math.max(60,n.timeRemaining+t);this.plugin.pomodoroService.adjustPreparedTimer(a)}if(this.plugin.pomodoroService){let a=this.plugin.pomodoroService.getState();this.updateTimer(a.timeRemaining),this.updateProgress(a),this.updateSessionMeta(a)}}onPomodoroComplete(t,n){if(this.updateDisplay(void 0,void 0,{refreshStats:!0}),this.statusDisplay)if(t.type==="work"){let a=n==="long-break",i=this.t(a?"views.pomodoro.status.breakLength.long":"views.pomodoro.status.breakLength.short");this.statusDisplay.textContent=this.t("views.pomodoro.status.breakPrompt",{length:i})}else this.statusDisplay.textContent=this.t("views.pomodoro.status.breakComplete")}}});function mO(r){if(r.activePeriods&&Array.isArray(r.activePeriods))return r.activePeriods.filter(e=>e.endTime).reduce((e,t)=>{let n=new Date(t.startTime),i=new Date(t.endTime).getTime()-n.getTime();return e+Math.round(i/(1e3*60))},0);if(r.duration!==void 0)return r.duration;if(r.startTime&&r.endTime){let e=new Date(r.startTime),n=new Date(r.endTime).getTime()-e.getTime();return Math.round(n/(1e3*60))}return 0}var k6=y(()=>{});function KD(r){return[...r].sort((e,t)=>new Date(e.startTime).getTime()-new Date(t.startTime).getTime())}function Xmt(r){var n;let e=(n=r.match(/^(\d{4}-\d{2}-\d{2})(?:[T\s]|$)/))==null?void 0:n[1];if(e)return e;let t=new Date(r);return isNaN(t.getTime())?"":ce(t)}function eT(r){return Xmt(r.startTime)}function cMe(r,e){return e?r.filter(t=>eT(t)===e):[]}function dMe(r,e,t){let n=ce(e),a=ce(t);if(!n||!a)return[];let[i,s]=n<=a?[n,a]:[a,n];return r.filter(o=>{let l=eT(o);return l>=i&&l<=s})}function uMe(r,e){let t=ce(r),n=ce(e);if(!t||!n)return[];let[a,i]=t<=n?[t,n]:[n,t],[s,o,l]=a.split("-").map(Number),[c,d,u]=i.split("-").map(Number),p=new Date(Date.UTC(s,o-1,l)),m=new Date(Date.UTC(c,d-1,u)),f=[];for(;p<=m;)f.push(ce(p)),p.setUTCDate(p.getUTCDate()+1);return f}function tT(r){let e=KD(r).filter(o=>o.type==="work"),t=e.filter(o=>o.completed),n=0;for(let o=e.length-1;o>=0&&e[o].completed;o--)n++;let a=t.reduce((o,l)=>o+mO(l),0),i=t.length>0?a/t.length:0,s=e.length>0?t.length/e.length*100:0;return{pomodorosCompleted:t.length,currentStreak:n,totalMinutes:a,averageSessionLength:Math.round(i),completionRate:Math.round(s)}}var b6=y(()=>{Me();k6()});function tft(r){return Number.isInteger(r)&&r>=0&&r<=6}var ka,eft,fO,pMe=y(()=>{ka=require("obsidian");Wr();Yr();ro();Me();k6();b6();K();eft=N({tag:"Views/PomodoroStatsView"});fO=class extends ka.ItemView{constructor(t,n){super(t);this.overviewStatsEl=null;this.todayStatsEl=null;this.weekStatsEl=null;this.recentSessionsEl=null;this.overallStatsEl=null;this.plugin=n}getViewType(){return Pv}getDisplayText(){return this.plugin.i18n.translate("views.pomodoroStats.title")}getIcon(){return"bar-chart"}t(t,n){return this.plugin.i18n.translate(t,n)}async onOpen(){await this.plugin.onReady(),await this.waitForPomodoroService(),await this.render()}async onClose(){this.contentEl.empty()}async render(){this.contentEl.empty();let t=this.contentEl.createDiv({cls:"tasknotes-plugin tasknotes-container pomodoro-stats-container pomodoro-stats-view"}),n=t.createDiv({cls:"pomodoro-stats-header pomodoro-stats-view__header"});new ka.Setting(n).setName(this.t("views.pomodoroStats.heading")).setHeading();let a=n.createDiv({cls:"pomodoro-stats-view__header-actions"});this.renderBasesMigrationHelp(a);let i=a.createEl("button",{cls:"pomodoro-stats-refresh-button pomodoro-stats-view__refresh-button",text:this.t("views.pomodoroStats.refresh")});this.registerDomEvent(i,"click",()=>{this.refreshStats()});let s=t.createDiv({cls:"pomodoro-stats-section pomodoro-stats-view__section"});new ka.Setting(s).setName(this.t("views.pomodoroStats.sections.overview")).setHeading(),this.overviewStatsEl=s.createDiv({cls:"pomodoro-overview-grid pomodoro-stats-view__overview-grid"});let o=t.createDiv({cls:"pomodoro-stats-section pomodoro-stats-view__section"});new ka.Setting(o).setName(this.t("views.pomodoroStats.sections.today")).setHeading(),this.todayStatsEl=o.createDiv({cls:"pomodoro-stats-grid pomodoro-stats-view__stats-grid"});let l=t.createDiv({cls:"pomodoro-stats-section pomodoro-stats-view__section"});new ka.Setting(l).setName(this.t("views.pomodoroStats.sections.week")).setHeading(),this.weekStatsEl=l.createDiv({cls:"pomodoro-stats-grid pomodoro-stats-view__stats-grid"});let c=t.createDiv({cls:"pomodoro-stats-section pomodoro-stats-view__section"});new ka.Setting(c).setName(this.t("views.pomodoroStats.sections.allTime")).setHeading(),this.overallStatsEl=c.createDiv({cls:"pomodoro-stats-grid pomodoro-stats-view__stats-grid"});let d=t.createDiv({cls:"pomodoro-stats-section pomodoro-stats-view__section"});new ka.Setting(d).setName(this.t("views.pomodoroStats.sections.recent")).setHeading(),this.recentSessionsEl=d.createDiv({cls:"pomodoro-recent-sessions pomodoro-stats-view__recent-sessions"}),await this.refreshStats()}renderBasesMigrationHelp(t){if(this.plugin.settings.pomodoroStorageLocation==="daily-notes")return;let n=t.createEl("button",{cls:"pomodoro-stats-view__bases-help"}),a=this.t("views.pomodoroStats.basesMigration.title"),i=this.t("views.pomodoroStats.basesMigration.description");(0,ka.setIcon)(n,"help-circle"),n.setAttr("aria-label",`${a}: ${i}`),(0,ka.setTooltip)(n,i,{placement:"bottom"})}async waitForPomodoroService(){let t=Date.now();for(;!this.plugin.pomodoroService&&Date.now()-t<5e3;)await new Promise(n=>window.setTimeout(n,50))}async refreshStats(){try{if(!this.plugin.pomodoroService)return;let t=Er(),n=wn(t),a=new Date(t);a.setDate(a.getDate()-1);let i=wn(a),s=this.plugin.settings.calendarViewSettings.firstDay||0,l={weekStartsOn:tft(s)?s:0},c=Ni(n,l),d=vv(n,l),[u,p,m,f]=await Promise.all([this.plugin.pomodoroService.getTodayStats(),this.plugin.pomodoroService.getStatsForDate(i),this.plugin.pomodoroService.getStatsForDateRange(c,d),this.plugin.pomodoroService.getSessionHistory()]),h=tT(f);this.overviewStatsEl&&this.renderOverviewStats(this.overviewStatsEl,u,h,p),this.todayStatsEl&&this.renderStatsGrid(this.todayStatsEl,u),this.weekStatsEl&&this.renderStatsGrid(this.weekStatsEl,m),this.overallStatsEl&&this.renderStatsGrid(this.overallStatsEl,h),this.recentSessionsEl&&this.renderRecentSessions(this.recentSessionsEl,f)}catch(t){eft.error("Failed to refresh stats:",{category:"stale-data",operation:"refresh-stats",error:t})}}renderRecentSessions(t,n){var i;let a=n.filter(s=>s.type==="work").slice(-10).reverse();if(t.empty(),a.length===0){t.createDiv({cls:"pomodoro-no-sessions pomodoro-stats-view__no-sessions",text:this.t("views.pomodoroStats.recents.empty")});return}for(let s of a){let o=t.createDiv({cls:"pomodoro-session-item pomodoro-stats-view__session-item"});this.registerDomEvent(o,"contextmenu",f=>{f.preventDefault(),this.showSessionContextMenu(f,s)});let l=o.createSpan({cls:"session-date pomodoro-stats-view__session-date"}),c=this.plugin.settings.calendarViewSettings.timeFormat;l.textContent=M(new Date(s.startTime),c==="12"?"MMM d, h:mm a":"MMM d, HH:mm");let d=o.createSpan({cls:"session-duration pomodoro-stats-view__session-duration"}),u=mO(s);d.textContent=this.t("views.pomodoroStats.recents.duration",{minutes:u});let p=o.createSpan({cls:"session-status pomodoro-stats-view__session-status"});if(p.textContent=this.t(s.completed?"views.pomodoroStats.recents.status.completed":"views.pomodoroStats.recents.status.interrupted"),p.addClass(s.completed?"status-completed":"status-interrupted"),p.addClass(s.completed?"pomodoro-stats-view__session-status--completed":"pomodoro-stats-view__session-status--interrupted"),s.taskPath){let f=o.createSpan({cls:"session-task pomodoro-stats-view__session-task"}),h=((i=s.taskPath.split("/").pop())==null?void 0:i.replace(".md",""))||"";f.textContent=h}let m=o.createEl("button",{cls:"pomodoro-stats-view__session-delete-button",attr:{type:"button","aria-label":this.t("views.pomodoroStats.recents.deleteAria")}});(0,ka.setIcon)(m,"trash-2"),(0,ka.setTooltip)(m,this.t("views.pomodoroStats.recents.delete"),{placement:"top"}),this.registerDomEvent(m,"click",f=>{f.preventDefault(),f.stopPropagation(),this.confirmDeleteSession(s)})}}showSessionContextMenu(t,n){let a=new ka.Menu;a.addItem(i=>{i.setTitle(this.t("views.pomodoroStats.recents.delete")),i.setIcon("trash"),i.onClick(()=>{this.confirmDeleteSession(n)})}),a.showAtMouseEvent(t)}async confirmDeleteSession(t){if(!await Ir(this.plugin.app,{title:this.t("views.pomodoroStats.recents.deleteConfirmTitle"),message:this.t("views.pomodoroStats.recents.deleteConfirmMessage"),confirmText:this.t("views.pomodoroStats.recents.deleteConfirmButton"),cancelText:this.t("common.cancel"),isDestructive:!0})||!this.plugin.pomodoroService)return;let a=await this.plugin.pomodoroService.deleteSessionFromHistory(t);new ka.Notice(this.t(a?"views.pomodoroStats.recents.deleteSuccess":"views.pomodoroStats.recents.deleteNotFound")),a&&await this.refreshStats()}renderOverviewStats(t,n,a,i){t.empty();let s=v=>{if(v<60)return`${v}m`;let b=Math.floor(v/60),k=v%60;return k>0?`${b}h${k}m`:`${b}h`},o=n.pomodorosCompleted-i.pomodorosCompleted,l=n.totalMinutes-i.totalMinutes,c=t.createDiv({cls:"pomodoro-overview-card pomodoro-stats-view__overview-card"}),d=c.createDiv({cls:"overview-value pomodoro-stats-view__overview-value"});if(d.textContent=n.pomodorosCompleted.toString(),c.createDiv({cls:"overview-label pomodoro-stats-view__overview-label",text:this.t("views.pomodoroStats.overviewCards.todayPomos.label")}),o!==0){let v=c.createDiv({cls:"overview-change pomodoro-stats-view__overview-change"});v.textContent=o>0?this.t("views.pomodoroStats.overviewCards.todayPomos.change.more",{count:o}):this.t("views.pomodoroStats.overviewCards.todayPomos.change.less",{count:Math.abs(o)}),v.addClass(o>0?"positive":"negative")}let u=t.createDiv({cls:"pomodoro-overview-card pomodoro-stats-view__overview-card"}),p=u.createDiv({cls:"overview-value pomodoro-stats-view__overview-value"});p.textContent=a.pomodorosCompleted.toString(),u.createDiv({cls:"overview-label pomodoro-stats-view__overview-label",text:this.t("views.pomodoroStats.overviewCards.totalPomos.label")});let m=t.createDiv({cls:"pomodoro-overview-card pomodoro-stats-view__overview-card"}),f=m.createDiv({cls:"overview-value pomodoro-stats-view__overview-value"});if(f.textContent=s(n.totalMinutes),m.createDiv({cls:"overview-label pomodoro-stats-view__overview-label",text:this.t("views.pomodoroStats.overviewCards.todayFocus.label")}),l!==0){let v=m.createDiv({cls:"overview-change pomodoro-stats-view__overview-change"});v.textContent=l>0?this.t("views.pomodoroStats.overviewCards.todayFocus.change.more",{duration:s(Math.abs(l))}):this.t("views.pomodoroStats.overviewCards.todayFocus.change.less",{duration:s(Math.abs(l))}),v.addClass(l>0?"positive":"negative")}let h=t.createDiv({cls:"pomodoro-overview-card pomodoro-stats-view__overview-card"}),g=h.createDiv({cls:"overview-value pomodoro-stats-view__overview-value"});g.textContent=s(a.totalMinutes),h.createDiv({cls:"overview-label pomodoro-stats-view__overview-label",text:this.t("views.pomodoroStats.overviewCards.totalFocus.label")})}renderStatsGrid(t,n){t.empty();let a=t.createDiv({cls:"pomodoro-stat-card pomodoro-stats-view__stat-card"});a.createDiv({cls:"stat-value pomodoro-stats-view__stat-value",text:n.pomodorosCompleted.toString()}),a.createDiv({cls:"stat-label pomodoro-stats-view__stat-label",text:this.t("views.pomodoroStats.stats.pomodoros")});let i=t.createDiv({cls:"pomodoro-stat-card pomodoro-stats-view__stat-card"});i.createDiv({cls:"stat-value pomodoro-stats-view__stat-value",text:n.currentStreak.toString()}),i.createDiv({cls:"stat-label pomodoro-stats-view__stat-label",text:this.t("views.pomodoroStats.stats.streak")});let s=t.createDiv({cls:"pomodoro-stat-card pomodoro-stats-view__stat-card"});s.createDiv({cls:"stat-value pomodoro-stats-view__stat-value",text:n.totalMinutes.toString()}),s.createDiv({cls:"stat-label pomodoro-stats-view__stat-label",text:this.t("views.pomodoroStats.stats.minutes")});let o=t.createDiv({cls:"pomodoro-stat-card pomodoro-stats-view__stat-card"});o.createDiv({cls:"stat-value pomodoro-stats-view__stat-value",text:n.averageSessionLength.toString()}),o.createDiv({cls:"stat-label pomodoro-stats-view__stat-label",text:this.t("views.pomodoroStats.stats.average")});let l=t.createDiv({cls:"pomodoro-stat-card pomodoro-stats-view__stat-card"});l.createDiv({cls:"stat-value pomodoro-stats-view__stat-value",text:`${n.completionRate}%`}),l.createDiv({cls:"stat-label pomodoro-stats-view__stat-label",text:this.t("views.pomodoroStats.stats.completion")})}}});function rft(r){return Number.isInteger(r)&&r>=0&&r<=6}function rT(){return{dateRange:"all",selectedProjects:[],minTimeSpent:0}}function aft(r){return typeof r=="string"&&nft.has(r)}function fMe(r){return typeof r=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(r)}function ift(r){if(!r||typeof r!="object")return rT();let e=r,t=rT();aft(e.dateRange)&&(t.dateRange=e.dateRange),fMe(e.customStartDate)&&(t.customStartDate=e.customStartDate),fMe(e.customEndDate)&&(t.customEndDate=e.customEndDate),Array.isArray(e.selectedProjects)&&(t.selectedProjects=e.selectedProjects.filter(a=>typeof a=="string"));let n=typeof e.minTimeSpent=="number"?e.minTimeSpent:Number(e.minTimeSpent);return Number.isFinite(n)&&n>0&&(t.minTimeSpent=Math.floor(n)),t}function sft(r){return r.filter(e=>!e.archived)}function oft(r,e){if(!Array.isArray(r))return[e.noProjectLabel];let t=Rl(r);return t.length===0?[e.noProjectLabel]:t.filter(n=>{var a;return!((a=e.isArchivedProjectReference)!=null&&a.call(e,n))}).map(n=>e.consolidateProjectName(n)).filter(n=>typeof n=="string"&&n.length>0)}var rl,ZD,mMe,nft,hO,hMe=y(()=>{rl=require("obsidian");Wr();Yr();Ct();Me();mi();$c();qn();K();ZD=N({tag:"Views/StatsView"});mMe="tasknotes-stats-view-filters",nft=new Set(["all","7days","30days","90days","custom"]);hO=class extends rl.ItemView{constructor(t,n){super(t);this.overviewStatsEl=null;this.todayStatsEl=null;this.weekStatsEl=null;this.monthStatsEl=null;this.projectsStatsEl=null;this.filtersEl=null;this.currentFilters=rT();this.drilldownModal=null;this.currentDrilldownData=null;this.listeners=[];this.statsCache=new Map;this.lastCacheTime=0;this.CACHE_DURATION=6e4;this.debounceTimeout=null;this.plugin=n}getViewType(){return Mv}getDisplayText(){return this.plugin.i18n.translate("views.stats.title")}getIcon(){return"bar-chart-4"}async onOpen(){await this.plugin.onReady(),this.currentFilters=this.loadPersistedFilters();let t=this.plugin.emitter.on(ot,async({path:n,originalTask:a,updatedTask:i})=>{if(!n||!i||!this.drilldownModal||!this.currentDrilldownData)return;this.currentDrilldownData.tasks.some(o=>o.path===n||a&&o.path===a.path)&&await this.refreshDrilldownModal()});this.listeners.push(t),await this.render()}async onClose(){this.contentEl.empty(),this.listeners.forEach(t=>this.plugin.emitter.offref(t)),this.listeners=[]}loadPersistedFilters(){try{let t=this.plugin.app.loadLocalStorage(mMe);return typeof t!="string"||t.length===0?rT():ift(JSON.parse(t))}catch(t){return ZD.warn("[TaskNotes] Failed to load Stats view filters:",{category:"persistence",operation:"load-stats-view-filters",error:t}),rT()}}savePersistedFilters(){try{this.plugin.app.saveLocalStorage(mMe,JSON.stringify(this.currentFilters))}catch(t){ZD.warn("[TaskNotes] Failed to save Stats view filters:",{category:"persistence",operation:"save-stats-view-filters",error:t})}}async render(){let t=this.contentEl.createDiv({cls:"tasknotes-plugin tasknotes-container stats-container stats-view"}),n=t.createDiv({cls:"stats-header stats-view__header"});new rl.Setting(n).setName(this.plugin.i18n.translate("views.stats.taskProjectStats")).setHeading();let a=n.createEl("button",{cls:"stats-refresh-button stats-view__refresh-button",text:this.plugin.i18n.translate("views.stats.refreshButton")});this.registerDomEvent(a,"click",()=>{this.refreshStats()});let i=t.createDiv({cls:"stats-section stats-view__section"});new rl.Setting(i).setName(this.plugin.i18n.translate("views.stats.sections.filters")).setHeading(),this.filtersEl=i.createDiv({cls:"stats-filters stats-view__filters"}),this.renderFilters();let s=t.createDiv({cls:"stats-section stats-view__section"});new rl.Setting(s).setName(this.plugin.i18n.translate("views.stats.sections.overview")).setHeading(),this.overviewStatsEl=s.createDiv({cls:"stats-overview-grid stats-view__overview-grid"});let o=t.createDiv({cls:"stats-section stats-view__section"});new rl.Setting(o).setName(this.plugin.i18n.translate("views.stats.sections.today")).setHeading(),this.todayStatsEl=o.createDiv({cls:"stats-grid stats-view__stats-grid"});let l=t.createDiv({cls:"stats-section stats-view__section"});new rl.Setting(l).setName(this.plugin.i18n.translate("views.stats.sections.thisWeek")).setHeading(),this.weekStatsEl=l.createDiv({cls:"stats-grid stats-view__stats-grid"});let c=t.createDiv({cls:"stats-section stats-view__section"});new rl.Setting(c).setName(this.plugin.i18n.translate("views.stats.sections.thisMonth")).setHeading(),this.monthStatsEl=c.createDiv({cls:"stats-grid stats-view__stats-grid"});let d=t.createDiv({cls:"stats-section stats-view__section"});new rl.Setting(d).setName(this.plugin.i18n.translate("views.stats.sections.projectBreakdown")).setHeading(),this.projectsStatsEl=d.createDiv({cls:"stats-projects stats-view__projects"}),await this.refreshStats()}async refreshStats(){try{this.clearCache();let t=await Promise.allSettled([this.updateOverviewStats(),this.updateTodayStats(),this.updateWeekStats(),this.updateMonthStats(),this.updateProjectStats()])}catch(t){}}async getAllTasks(){let t=`all-tasks-${JSON.stringify(this.currentFilters)}`;if(this.isCacheValid()&&this.statsCache.has(t)){let i=this.statsCache.get(t);if(i)return i}let n=this.plugin.cacheManager.getAllTaskPaths(),a=[];for(let i of n)try{let s=await this.plugin.cacheManager.getTaskInfo(i);s&&a.push(s)}catch(s){}return a=sft(a),a=this.applyTaskFilters(a),this.statsCache.set(t,a),this.lastCacheTime=Date.now(),a}applyTaskFilters(t){let n=t,a=this.getFilterDateRange();return(a.start||a.end)&&(n=n.filter(i=>{if(i.timeEntries&&i.timeEntries.length>0)return i.timeEntries.some(s=>{if(!s.startTime)return!1;let o=new Date(s.startTime);return!(a.start&&o<a.start||a.end&&o>a.end)});if(i.completedDate){let s=new Date(i.completedDate);return!(a.start&&s<a.start||a.end&&s>a.end)}if(i.dateCreated){let s=new Date(i.dateCreated);return!(a.start&&s<a.start||a.end&&s>a.end)}return!(a.start||a.end)})),this.currentFilters.minTimeSpent>0&&(n=n.filter(i=>Li(i.timeEntries||[])>=this.currentFilters.minTimeSpent)),n}async updateOverviewStats(){if(!this.overviewStatsEl)return;let t=await this.getAllTasks(),n=this.calculateOverallStats(t);this.renderOverviewStats(this.overviewStatsEl,n)}async updateTodayStats(){if(!this.todayStatsEl)return;let t=Er(),n=await this.calculateStatsForRange(Ml(t),aS(t));this.renderTimeRangeStats(this.todayStatsEl,n)}async updateWeekStats(){if(!this.weekStatsEl)return;let t=Er(),n=this.plugin.settings.calendarViewSettings.firstDay||0,i={weekStartsOn:rft(n)?n:0},s=Ni(t,i),o=vv(t,i),l=await this.calculateStatsForRange(s,o);this.renderTimeRangeStats(this.weekStatsEl,l)}async updateMonthStats(){if(!this.monthStatsEl)return;let t=Er(),n=UA(t),a=BA(t),i=await this.calculateStatsForRange(n,a);this.renderTimeRangeStats(this.monthStatsEl,i)}async updateProjectStats(){if(!this.projectsStatsEl)return;let t=await this.getAllTasks(),n=this.calculateProjectStats(t);await this.renderProjectStats(this.projectsStatsEl,n)}consolidateProjectName(t){var a,i;if(!t||typeof t!="string")return t;let n=Fl(t,(a=this.plugin)==null?void 0:a.app);if(n&&n!==t)return n;if(t.startsWith("[[")&&t.endsWith("]]")){let s=this.extractWikilinkPath(t);if(s&&((i=this.plugin)!=null&&i.app)){let o=this.plugin.app.metadataCache.getFirstLinkpathDest(s,"");if(o)return o.basename;let l=this.extractProjectName(t);if(l)return l}}if(t.includes("|")){let s=t.split("|");return s[s.length-1]||t}if(t.includes("/")){let s=t.split("/");return s[s.length-1]||t}return t}extractWikilinkPath(t){if(!t||typeof t!="string"||!t.startsWith("[[")||!t.endsWith("]]"))return null;let n=t.slice(2,-2);return(0,rl.parseLinktext)(n).path}extractProjectName(t){var a;return t&&Fl(t,(a=this.plugin)==null?void 0:a.app)||null}isArchivedProjectReference(t){var n;return((n=this.getProjectReferenceTask(t))==null?void 0:n.archived)===!0}getProjectReferenceTask(t){let n=t.trim();if(!this.isProjectNoteReference(n))return null;let a=Et(n);if(!a)return null;let i=a.replace(/\.md$/i,""),s=this.plugin.app.metadataCache.getFirstLinkpathDest(i,"");if(s){let l=this.plugin.cacheManager.getCachedTaskInfoSync(s.path);if(l)return l}let o=/\.md$/i.test(a)?[a]:[a,`${a}.md`];for(let l of o){let c=this.plugin.cacheManager.getCachedTaskInfoSync(l);if(c)return c}return null}isProjectNoteReference(t){return t.startsWith("[[")&&t.endsWith("]]")||/^\[[^\]]*\]\(.+\)$/.test(t)||t.startsWith("<")&&t.endsWith(">")||t.includes("/")||/\.md$/i.test(t)}calculateOverallStats(t){let n=0,a=0,i=0,s=new Set;for(let o of t){n+=Li(o.timeEntries||[]),a+=o.timeEstimate||0,this.plugin.statusManager.isCompletedStatus(o.status)&&i++;let l=this.getTaskProjects(o);for(let c of l)s.add(c)}return{totalTimeSpent:n,totalTimeEstimate:a,totalTasks:t.length,completedTasks:i,activeProjects:s.size,completionRate:t.length>0?i/t.length*100:0,avgTimePerTask:t.length>0?n/t.length:0}}async calculateStatsForRange(t,n){let i=(await this.getAllTasks()).filter(l=>{if(l.timeEntries&&l.timeEntries.length>0)return l.timeEntries.some(c=>{if(!c.startTime)return!1;let d=new Date(c.startTime);return d>=t&&d<=n});if(l.completedDate){let c=new Date(l.completedDate);return c>=t&&c<=n}if(l.dateCreated){let c=new Date(l.dateCreated);return c>=t&&c<=n}return!1}),s=this.calculateOverallStats(i),o=this.calculateProjectStats(i);return{overall:s,projects:o}}calculateProjectStats(t){let n=new Map;for(let s of t){let o=Li(s.timeEntries||[]),l=s.timeEstimate||0,c=this.plugin.statusManager.isCompletedStatus(s.status),d;s.timeEntries&&s.timeEntries.length>0?d=[...s.timeEntries].sort((m,f)=>new Date(f.startTime).getTime()-new Date(m.startTime).getTime())[0].startTime:s.completedDate?d=s.completedDate:s.dateModified&&(d=s.dateModified);let u=this.getTaskProjects(s);for(let p of u){n.has(p)||n.set(p,{tasks:[],totalTime:0,totalTimeEstimate:0,completedCount:0,lastActivity:void 0});let m=n.get(p);m&&(m.tasks.push(s),m.totalTime+=o,m.totalTimeEstimate+=l,c&&m.completedCount++,d&&(!m.lastActivity||new Date(d)>new Date(m.lastActivity))&&(m.lastActivity=d))}}let a=[];for(let[s,o]of n.entries())a.push({projectName:s,totalTimeSpent:o.totalTime,totalTimeEstimate:o.totalTimeEstimate,taskCount:o.tasks.length,completedTaskCount:o.completedCount,avgTimePerTask:o.tasks.length>0?o.totalTime/o.tasks.length:0,lastActivity:o.lastActivity});let i=this.plugin.i18n.translate("views.stats.noProject");return a.sort((s,o)=>s.projectName===i?1:o.projectName===i?-1:o.totalTimeSpent-s.totalTimeSpent),a}renderFilters(){if(!this.filtersEl)return;this.filtersEl.empty();let t=this.filtersEl.createDiv({cls:"stats-view__filter-grid"}),n=t.createDiv({cls:"stats-view__filter-item"}),a=n.createDiv({cls:"stats-view__filter-label"});a.textContent=this.plugin.i18n.translate("views.stats.sections.dateRange");let i=n.createEl("select",{cls:"stats-view__filter-select"}),s=[{value:"all",text:this.plugin.i18n.translate("views.stats.timeRanges.allTime")},{value:"7days",text:this.plugin.i18n.translate("views.stats.timeRanges.last7Days")},{value:"30days",text:this.plugin.i18n.translate("views.stats.timeRanges.last30Days")},{value:"90days",text:this.plugin.i18n.translate("views.stats.timeRanges.last90Days")},{value:"custom",text:this.plugin.i18n.translate("views.stats.timeRanges.customRange")}];for(let m of s){let f=i.createEl("option",{value:m.value,text:m.text});m.value===this.currentFilters.dateRange&&(f.selected=!0)}this.registerDomEvent(i,"change",()=>{this.currentFilters.dateRange=i.value,this.renderCustomDateInputs(),this.applyFilters()});let o=t.createDiv({cls:"stats-view__custom-dates"});this.currentFilters.dateRange==="custom"&&this.renderCustomDateInputs(o);let l=t.createDiv({cls:"stats-view__filter-item"}),c=l.createDiv({cls:"stats-view__filter-label"});c.textContent=this.plugin.i18n.translate("views.stats.filters.minTime");let d=l.createEl("input",{cls:"stats-view__filter-input",type:"number",value:this.currentFilters.minTimeSpent.toString(),placeholder:"0"});this.registerDomEvent(d,"input",()=>{this.currentFilters.minTimeSpent=parseInt(d.value)||0,this.applyFilters()});let p=t.createDiv({cls:"stats-view__filter-buttons"}).createEl("button",{cls:"stats-view__filter-button stats-view__filter-button--reset",text:this.plugin.i18n.translate("views.stats.resetFiltersButton")});this.registerDomEvent(p,"click",()=>{this.currentFilters=rT(),this.renderFilters(),this.applyFilters()})}renderCustomDateInputs(t){var a;let n=t||((a=this.filtersEl)==null?void 0:a.querySelector(".stats-view__custom-dates"));if(n&&(n.empty(),this.currentFilters.dateRange==="custom")){let i=n.createDiv({cls:"stats-view__date-input-container"});i.createDiv({cls:"stats-view__date-label",text:this.plugin.i18n.translate("views.stats.dateRangeFrom")});let s=i.createEl("input",{cls:"stats-view__date-input",type:"date",value:this.currentFilters.customStartDate||""}),o=n.createDiv({cls:"stats-view__date-input-container"});o.createDiv({cls:"stats-view__date-label",text:this.plugin.i18n.translate("views.stats.dateRangeTo")});let l=o.createEl("input",{cls:"stats-view__date-input",type:"date",value:this.currentFilters.customEndDate||""});this.registerDomEvent(s,"change",()=>{this.currentFilters.customStartDate=s.value,this.applyFilters()}),this.registerDomEvent(l,"change",()=>{this.currentFilters.customEndDate=l.value,this.applyFilters()})}}async applyFilters(){this.savePersistedFilters(),this.debounceTimeout&&window.clearTimeout(this.debounceTimeout),this.debounceTimeout=window.setTimeout(()=>{(async()=>(await this.refreshStats(),this.debounceTimeout=null))()},300)}isCacheValid(){return Date.now()-this.lastCacheTime<this.CACHE_DURATION}clearCache(){this.statsCache.clear(),this.lastCacheTime=0}getTaskProjects(t){try{return oft(t.projects,{noProjectLabel:this.plugin.i18n.translate("views.stats.noProject"),consolidateProjectName:n=>this.consolidateProjectName(n),isArchivedProjectReference:n=>this.isArchivedProjectReference(n)})}catch(n){return[this.plugin.i18n.translate("views.stats.noProject")]}}getFilterDateRange(){let t=Er();switch(this.currentFilters.dateRange){case"7days":return{start:Ml(wv(t,7)),end:aS(t)};case"30days":return{start:Ml(wv(t,30)),end:aS(t)};case"90days":return{start:Ml(wv(t,90)),end:aS(t)};case"custom":return{start:this.currentFilters.customStartDate?new Date(`${this.currentFilters.customStartDate}T00:00:00`):void 0,end:this.currentFilters.customEndDate?new Date(`${this.currentFilters.customEndDate}T23:59:59.999`):void 0};case"all":default:return{}}}renderOverviewStats(t,n){t.empty();let a=h=>{if(h<60)return`${Math.round(h)}m`;let g=Math.floor(h/60),v=Math.round(h%60);return v>0?`${g}h ${v}m`:`${g}h`},i=t.createDiv({cls:"stats-overview-card stats-view__overview-card"}),s=i.createDiv({cls:"overview-value stats-view__overview-value"});s.textContent=`${a(n.totalTimeSpent)} / ${a(n.totalTimeEstimate)}`,i.createDiv({cls:"overview-label stats-view__overview-label",text:this.plugin.i18n.translate("views.stats.cards.timeTrackedEstimated")});let o=t.createDiv({cls:"stats-overview-card stats-view__overview-card"}),l=o.createDiv({cls:"overview-value stats-view__overview-value"});l.textContent=n.totalTasks.toString(),o.createDiv({cls:"overview-label stats-view__overview-label",text:this.plugin.i18n.translate("views.stats.cards.totalTasks")});let c=t.createDiv({cls:"stats-overview-card stats-view__overview-card"}),d=c.createDiv({cls:"overview-value stats-view__overview-value"});d.textContent=`${Math.round(n.completionRate)}%`,c.createDiv({cls:"overview-label stats-view__overview-label",text:this.plugin.i18n.translate("views.stats.cards.completionRate")});let u=t.createDiv({cls:"stats-overview-card stats-view__overview-card"}),p=u.createDiv({cls:"overview-value stats-view__overview-value"});p.textContent=n.activeProjects.toString(),u.createDiv({cls:"overview-label stats-view__overview-label",text:this.plugin.i18n.translate("views.stats.cards.activeProjects")});let m=t.createDiv({cls:"stats-overview-card stats-view__overview-card"}),f=m.createDiv({cls:"overview-value stats-view__overview-value"});f.textContent=a(n.avgTimePerTask),m.createDiv({cls:"overview-label stats-view__overview-label",text:this.plugin.i18n.translate("views.stats.cards.avgTimePerTask")})}renderTimeRangeStats(t,n){t.empty();let a=c=>{if(c<60)return`${Math.round(c)}m`;let d=Math.floor(c/60),u=Math.round(c%60);return u>0?`${d}h ${u}m`:`${d}h`},i=t.createDiv({cls:"stats-stat-card stats-view__stat-card"});i.createDiv({cls:"stat-value stats-view__stat-value",text:`${a(n.overall.totalTimeSpent)} / ${a(n.overall.totalTimeEstimate)}`}),i.createDiv({cls:"stat-label stats-view__stat-label",text:this.plugin.i18n.translate("views.stats.cards.timeTrackedEstimated")});let s=t.createDiv({cls:"stats-stat-card stats-view__stat-card"});s.createDiv({cls:"stat-value stats-view__stat-value",text:n.overall.totalTasks.toString()}),s.createDiv({cls:"stat-label stats-view__stat-label",text:this.plugin.i18n.translate("views.stats.labels.tasks")});let o=t.createDiv({cls:"stats-stat-card stats-view__stat-card"});o.createDiv({cls:"stat-value stats-view__stat-value",text:n.overall.completedTasks.toString()}),o.createDiv({cls:"stat-label stats-view__stat-label",text:this.plugin.i18n.translate("views.stats.labels.completed")});let l=t.createDiv({cls:"stats-stat-card stats-view__stat-card"});l.createDiv({cls:"stat-value stats-view__stat-value",text:n.overall.activeProjects.toString()}),l.createDiv({cls:"stat-label stats-view__stat-label",text:this.plugin.i18n.translate("views.stats.labels.projects")})}async renderProjectStats(t,n){if(t.empty(),n.length===0){t.createDiv({cls:"stats-no-data stats-view__no-data",text:this.plugin.i18n.translate("views.stats.noProjectData")});return}let a=s=>{if(s<60)return`${Math.round(s)}m`;let o=Math.floor(s/60),l=Math.round(s%60);return l>0?`${o}h ${l}m`:`${o}h`},i=s=>{if(!s)return this.plugin.i18n.translate("views.stats.notAvailable");try{let o=new Date(s);return M(o,"MMM d, yyyy")}catch(o){return this.plugin.i18n.translate("views.stats.notAvailable")}};for(let s of n){let o=["stats-project-item","stats-view__project-item","stats-view__project-item--clickable"];s.projectName===this.plugin.i18n.translate("views.stats.noProject")&&o.push("stats-view__project-item--no-project");let l=t.createDiv({cls:o.join(" ")});this.registerDomEvent(l,"click",()=>{this.openProjectDrilldown(s.projectName)});let c=l.createDiv({cls:"stats-view__project-header"}),d=c.createDiv({cls:"project-name stats-view__project-name"});d.textContent=s.projectName,c.createDiv({cls:"stats-view__click-indicator",text:"\u2192"});let u=s.taskCount>0?s.completedTaskCount/s.taskCount*100:0,p=l.createDiv({cls:"stats-view__project-content-grid"}),m=p.createDiv({cls:"stats-view__progress-container"});this.renderProgressCircle(m,u,s.completedTaskCount,s.taskCount);let f=p.createDiv({cls:"stats-view__stats-container"});if(s.totalTimeSpent>0||s.totalTimeEstimate>0){let b=f.createDiv({cls:"stats-view__time-bar"}),w=b.createDiv({cls:"stats-view__time-bar-visual"}).createDiv({cls:"stats-view__time-bar-fill"}),S=0;s.totalTimeEstimate>0?S=s.totalTimeSpent/s.totalTimeEstimate*100:s.totalTimeSpent>0&&(S=100,w.classList.remove("tn-static-background-color-var-background-mo-94b219f0","tn-static-background-color-var-background-se-9087a23e","tn-static-background-color-var-color-red-134bc721","tn-static-background-color-var-text-accent-a954c70f"),w.classList.add("tn-static-background-color-var-color-base-40-ef5f175e")),w.style.width=`${Math.min(S,100)}%`,S>100&&(w.classList.remove("tn-static-background-color-var-background-mo-94b219f0","tn-static-background-color-var-background-se-9087a23e","tn-static-background-color-var-color-base-40-ef5f175e","tn-static-background-color-var-text-accent-a954c70f"),w.classList.add("tn-static-background-color-var-color-red-134bc721"));let C=b.createDiv({cls:"stats-view__time-bar-label"});C.textContent=`${a(s.totalTimeSpent)} / ${a(s.totalTimeEstimate)}`}let h=f.createDiv({cls:"project-stats stats-view__project-stats"});if(s.lastActivity){let b=h.createDiv({cls:"project-stat stats-view__project-stat"});b.textContent=`Last activity: ${i(s.lastActivity)}`}if(s.avgTimePerTask>0){let b=h.createDiv({cls:"project-stat stats-view__project-stat"});b.textContent=`Avg: ${a(s.avgTimePerTask)}/task`}let g=f.createDiv({cls:"stats-view__trend-container"}),v=g.createDiv({cls:"stats-view__sparkline"});try{let b=await this.calculateProjectTrend(s.projectName);b.length>0&&b.some(k=>k.value>0)?this.renderSparkline(v,b):g.remove()}catch(b){g.remove()}}}renderProgressCircle(t,n,a,i){let c=2*Math.PI*27.5,d=c-n/100*c,u=activeWindow.createSvg("svg");u.setAttribute("width","60"),u.setAttribute("height","60"),u.setAttribute("viewBox","0 0 60 60"),u.classList.add("stats-view__progress-circle-svg");let p=activeWindow.createSvg("circle");p.setAttribute("cx",(60/2).toString()),p.setAttribute("cy",(60/2).toString()),p.setAttribute("r",27.5.toString()),p.classList.add("stats-view__progress-circle-bg");let m=activeWindow.createSvg("circle");m.setAttribute("cx",(60/2).toString()),m.setAttribute("cy",(60/2).toString()),m.setAttribute("r",27.5.toString()),m.setAttribute("stroke-dasharray",`${c} ${c}`),m.setAttribute("stroke-dashoffset",d.toString()),m.classList.add("stats-view__progress-circle-fg");let f=activeWindow.createSvg("text");f.setAttribute("x","50%"),f.setAttribute("y","50%"),f.setAttribute("dy","0.3em"),f.setAttribute("text-anchor","middle"),f.classList.add("stats-view__progress-circle-text"),f.textContent=`${Math.round(n)}%`,u.appendChild(p),u.appendChild(m),u.appendChild(f),t.appendChild(u);let h=t.createDiv({cls:"stats-view__progress-label"});h.textContent=`${a}/${i} tasks`}async calculateProjectTrend(t){try{let n=this.plugin.cacheManager.getAllTaskPaths(),a=[];for(let o of n)try{let l=await this.plugin.cacheManager.getTaskInfo(o);l&&!l.archived&&this.getTaskProjects(l).includes(t)&&a.push(l)}catch(l){}let i=[],s=Er();for(let o=29;o>=0;o--){let l=wv(s,o),c=M(l,"yyyy-MM-dd"),d=0;for(let u of a)if(u.timeEntries)for(let p of u.timeEntries)p.startTime&&M(new Date(p.startTime),"yyyy-MM-dd")===c&&(d+=Li([p]));i.push({date:c,value:d})}return i}catch(n){return[]}}renderSparkline(t,n){if(t.empty(),n.length===0)return;let a=100,i=20,s=Math.max(...n.map(d=>d.value));if(s===0)return;let o=activeWindow.createSvg("svg");o.setAttribute("width",a.toString()),o.setAttribute("height",i.toString()),o.setAttribute("viewBox",`0 0 ${a} ${i}`),o.classList.add("stats-view__sparkline-svg");let l=activeWindow.createSvg("path"),c="";n.forEach((d,u)=>{let p=u/(n.length-1)*a,m=i-d.value/s*i;u===0?c+=`M ${p} ${m}`:c+=` L ${p} ${m}`}),l.setAttribute("d",c),l.setAttribute("fill","none"),l.setAttribute("stroke","currentColor"),l.setAttribute("stroke-width","1.5"),l.setAttribute("opacity","0.7"),o.appendChild(l),t.appendChild(o)}async openProjectDrilldown(t){this.closeDrilldownModal();let n=this.contentEl.ownerDocument,a=n.body.createDiv({cls:"stats-view__modal-backdrop"});this.drilldownModal=a;let i=a.createDiv({cls:"stats-view__modal tasknotes-plugin"}),s=i.createDiv({cls:"stats-view__modal-header"}),o=s.createDiv({cls:"stats-view__modal-title"});o.textContent=`${t} - Detailed View`;let l=s.createEl("button",{cls:"stats-view__modal-close",text:"\xD7"}),c=i.createDiv({cls:"stats-view__modal-content"});c.textContent=this.plugin.i18n.translate("views.stats.loading"),this.registerDomEvent(l,"click",()=>this.closeDrilldownModal()),this.registerDomEvent(a,"click",u=>{u.target===a&&this.closeDrilldownModal()});let d=u=>{u.key==="Escape"&&(this.closeDrilldownModal(),n.removeEventListener("keydown",d))};n.addEventListener("keydown",d);try{let u=await this.getProjectDrilldownData(t);this.currentDrilldownData=u,this.renderDrilldownContent(c,u)}catch(u){ZD.error("Error loading drill-down data:",{category:"persistence",operation:"loading-drill-down-data",error:u}),c.textContent=this.plugin.i18n.translate("notices.statsLoadingFailed")}}closeDrilldownModal(){this.drilldownModal&&(this.drilldownModal.remove(),this.drilldownModal=null,this.currentDrilldownData=null)}async refreshDrilldownModal(){if(!this.drilldownModal||!this.currentDrilldownData)return;let t=this.drilldownModal.querySelector(".stats-view__modal-content");if(t)try{let n=await this.getProjectDrilldownData(this.currentDrilldownData.projectName);this.currentDrilldownData=n,this.renderDrilldownContent(t,n)}catch(n){ZD.error("Error refreshing drill-down modal:",{category:"stale-data",operation:"refreshing-drill-down-modal",error:n})}}async getProjectDrilldownData(t){var p;let n=this.plugin.cacheManager.getAllTaskPaths(),a=[];for(let m of n)try{let f=await this.plugin.cacheManager.getTaskInfo(m);f&&!f.archived&&this.getTaskProjects(f).includes(t)&&a.push(f)}catch(f){ZD.error(`Failed to get task for drill-down: ${m}`,{category:"persistence",operation:"get-task-drill-down",error:f})}let i=a.reduce((m,f)=>m+Li(f.timeEntries||[]),0),s=a.reduce((m,f)=>m+(f.timeEstimate||0),0),o=a.filter(m=>this.plugin.statusManager.isCompletedStatus(m.status)).length,l=a.length>0?o/a.length*100:0,c=a.filter(m=>{var f;return((f=m.timeEntries)==null?void 0:f.length)||m.completedDate}).sort((m,f)=>{var v,b;let h=(v=m.timeEntries)!=null&&v.length?Math.max(...m.timeEntries.map(k=>new Date(k.startTime).getTime())):m.completedDate?new Date(m.completedDate).getTime():0;return((b=f.timeEntries)!=null&&b.length?Math.max(...f.timeEntries.map(k=>new Date(k.startTime).getTime())):f.completedDate?new Date(f.completedDate).getTime():0)-h}).slice(0,10),d=[],u=Er();for(let m=29;m>=0;m--){let f=wv(u,m),h=M(f,"yyyy-MM-dd"),g=0,v=0,b=0;for(let k of a){if(k.timeEntries){let w=k.timeEntries.filter(S=>M(new Date(S.startTime),"yyyy-MM-dd")===h);w.length>0&&(g+=Li(w),v++)}k.completedDate&&M(new Date(k.completedDate),"yyyy-MM-dd")===h&&(b++,(p=k.timeEntries)!=null&&p.some(w=>M(new Date(w.startTime),"yyyy-MM-dd")===h)||v++)}d.push({date:h,timeSpent:g,taskCount:v,completedTasks:b})}return{projectName:t,tasks:a,totalTimeSpent:i,totalTimeEstimate:s,completionRate:l,timeByDay:d,recentActivity:c}}renderDrilldownContent(t,n){t.empty();let a=S=>{if(S<60)return`${Math.round(S)}m`;let C=Math.floor(S/60),E=Math.round(S%60);return E>0?`${C}h ${E}m`:`${C}h`},s=t.createDiv({cls:"stats-view__drilldown-overview"}).createDiv({cls:"stats-view__drilldown-stats"}),o=s.createDiv({cls:"stats-view__drilldown-card"});o.createDiv({cls:"stats-view__drilldown-value",text:`${a(n.totalTimeSpent)} / ${a(n.totalTimeEstimate)}`}),o.createDiv({cls:"stats-view__drilldown-label",text:"Total Time"});let l=s.createDiv({cls:"stats-view__drilldown-card"});l.createDiv({cls:"stats-view__drilldown-value",text:n.tasks.length.toString()}),l.createDiv({cls:"stats-view__drilldown-label",text:"Total Tasks"});let c=s.createDiv({cls:"stats-view__drilldown-card"});c.createDiv({cls:"stats-view__drilldown-value",text:`${Math.round(n.completionRate)}%`}),c.createDiv({cls:"stats-view__drilldown-label",text:"Completed"});let d=s.createDiv({cls:"stats-view__drilldown-card"}),u=n.tasks.length>0?n.totalTimeSpent/n.tasks.length:0,p=n.tasks.length>0?n.totalTimeEstimate/n.tasks.length:0;d.createDiv({cls:"stats-view__drilldown-value",text:`${a(u)} / ${a(p)}`}),d.createDiv({cls:"stats-view__drilldown-label",text:"Avg per Task"});let m=t.createDiv({cls:"stats-view__drilldown-section"});m.createDiv({cls:"stats-view__drilldown-heading",text:"Activity Over Time (Last 30 Days)"});let f=m.createDiv({cls:"stats-view__activity-chart"});this.renderActivityChart(f,n.timeByDay);let h=t.createDiv({cls:"stats-view__drilldown-section"}),g=h.createDiv({cls:"stats-view__section-header"});g.createDiv({cls:"stats-view__drilldown-heading",text:"All Project Tasks"});let b=g.createDiv({cls:"stats-view__task-filters"}).createEl("select",{cls:"stats-view__filter-select"});b.createEl("option",{value:"all",text:this.plugin.i18n.translate("views.stats.filters.allTasks")}),b.createEl("option",{value:"active",text:this.plugin.i18n.translate("views.stats.filters.activeOnly")}),b.createEl("option",{value:"completed",text:this.plugin.i18n.translate("views.stats.filters.completedOnly")});let k=h.createDiv({cls:"stats-view__task-list"}),w=(S="all")=>{k.empty();let C=n.tasks;if(S==="active"?C=n.tasks.filter(D=>!this.plugin.statusManager.isCompletedStatus(D.status)):S==="completed"&&(C=n.tasks.filter(D=>this.plugin.statusManager.isCompletedStatus(D.status))),C.sort((D,P)=>{let O=this.plugin.statusManager.isCompletedStatus(D.status),z=this.plugin.statusManager.isCompletedStatus(P.status);if(O!==z)return O?1:-1;let R=A=>{var F;return(F=A.timeEntries)!=null&&F.length?Math.max(...A.timeEntries.map($=>new Date($.startTime).getTime())):A.dateModified?new Date(A.dateModified).getTime():0};return R(P)-R(D)}),C.length===0){k.createDiv({cls:"stats-view__no-data",text:this.plugin.i18n.translate("views.stats.noTasks")});return}let E=k.createDiv({cls:"stats-view__task-count"});E.textContent=`Showing ${C.length} task${C.length!==1?"s":""}`;for(let D of C){let P=this.plugin.settings.defaultVisibleProperties?$i(this.plugin.settings.defaultVisibleProperties,this.plugin):void 0,O=Dr(D,this.plugin,P);k.appendChild(O)}};w("all"),this.registerDomEvent(b,"change",()=>{w(b.value)})}renderActivityChart(t,n){if(t.empty(),n.length===0)return;let a=Math.max(...n.map(s=>s.timeSpent));if(a===0){t.createDiv({cls:"stats-view__no-data",text:"No time tracking data"});return}let i=t.createDiv({cls:"stats-view__bar-chart"});for(let s of n){let l=i.createDiv({cls:"stats-view__bar-container"}).createDiv({cls:"stats-view__bar"}),c=s.timeSpent/a*40;l.style.height=`${c}px`;let d=`${M(new Date(s.date),"MMM d")}: ${Math.round(s.timeSpent)}m`;l.setAttribute("title",d)}}}});function lft(r,e=T6){return r.replace(/\(((?:#\d+\s*)(?:,\s*#\d+\s*)*)\)/g,(t,n)=>`(${n.split(",").map(i=>i.trim()).filter(Boolean).map(i=>{let s=i.slice(1);return`[#${s}](${e}/issues/${s})`}).join(", ")})`)}var yO,QD,gMe,T6,gO,w6=y(()=>{yO=require("obsidian");Wr();QD="tasknotes-release-notes",gMe="https://github.com/callumalpass/tasknotes/releases",T6="https://github.com/callumalpass/tasknotes";gO=class extends yO.ItemView{constructor(e,t,n,a){super(e),this.plugin=t,this.releaseNotesBundle=n,this.version=a}getViewType(){return QD}getDisplayText(){return this.plugin.i18n.translate("views.releaseNotes.title",{version:this.version})}getIcon(){return"book-open"}transformIssueLinks(e){return lft(e)}formatDate(e){if(!e)return"";try{let t=Us(e);return M(t,"MMMM d, yyyy")}catch(t){return""}}async renderVersionContent(e,t){let n=this.transformIssueLinks(t.content),a=t.isCurrent?`${this.plugin.i18n.translate("views.releaseNotes.baseFilesNotice")}
|
||
|
||
${n}`:n;await yO.MarkdownRenderer.render(this.plugin.app,a,e,"",this)}async createVersionSection(e,t,n){let a=e.createDiv({cls:"release-notes-version-section"});a.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-8px-fdf33f23"),a.classList.add("tn-static-margin-bottom-20px-49f14f8f"),a.classList.remove("tn-static-border-none-2eda1daa","tn-static-padding-12px-43bef435"),a.classList.add("tn-static-border-1px-solid-var-background-mo-b65b5121"),a.classList.remove("tn-static-border-radius-4px-c290c56e","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-12px-43bef435","tn-static-padding-20px-ebe8e48c"),a.classList.add("tn-static-border-radius-6px-0dc8408c"),a.classList.remove("tn-static-flex-1-14e3b769"),a.classList.add("tn-static-overflow-hidden-69824400");let i=a.createDiv({cls:"release-notes-version-header"});i.classList.remove("tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-0-16px-16px-16px-f1aa998c","tn-static-padding-0-41d7d7e2","tn-static-padding-12px-43bef435","tn-static-padding-20px-769fed37","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c","tn-static-padding-2px-8px-c8eea84a","tn-static-padding-2rem-42aa6d9c"),i.classList.add("tn-static-padding-16px-287f770e"),i.classList.remove("tn-static-cursor-grab-dad79857","tn-static-cursor-pointer-2723efcc"),i.classList.add("tn-static-cursor-pointer-3b6a3a65"),i.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),i.classList.add("tn-static-display-flex-75816cae"),i.classList.remove("tn-static-justify-content-center-03c4bb6f","tn-static-justify-content-flex-end-455f8cca"),i.classList.add("tn-static-justify-content-space-between-a562f4fd"),i.classList.remove("tn-static-align-items-baseline-4b95b5c7","tn-static-align-items-flex-start-0486f781"),i.classList.add("tn-static-align-items-center-7c619740"),i.style.backgroundColor=t.isCurrent?"var(--background-secondary)":"var(--background-primary)",i.classList.add("tn-static-transition-background-color-0-2s-8142f01e"),i.addEventListener("mouseenter",()=>{i.classList.remove("tn-static-background-color-var-background-mo-94b219f0","tn-static-background-color-var-color-base-40-ef5f175e","tn-static-background-color-var-color-red-134bc721","tn-static-background-color-var-text-accent-a954c70f"),i.classList.add("tn-static-background-color-var-background-se-9087a23e")}),i.addEventListener("mouseleave",()=>{i.style.backgroundColor=t.isCurrent?"var(--background-secondary)":"var(--background-primary)"});let s=i.createDiv({cls:"release-notes-version-info"});s.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),s.classList.add("tn-static-display-flex-75816cae"),s.classList.remove("tn-static-align-items-center-7c619740","tn-static-align-items-flex-start-0486f781"),s.classList.add("tn-static-align-items-baseline-4b95b5c7"),s.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-0-5rem-ce2fca4d","tn-static-gap-10px-f3d7ce77","tn-static-gap-6px-f0abc1db","tn-static-gap-8px-33fcd4c3"),s.classList.add("tn-static-gap-12px-ed7b3d87");let o=s.createEl("h2",{text:t.version});if(o.classList.remove("tn-static-margin-0-auto-266e9b04","tn-static-margin-0-db0d5f36","tn-static-margin-0-var-size-4-2-77f7dc08","tn-static-margin-2px-0-edce9b14","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-12px-43bef435","tn-static-padding-20px-ebe8e48c"),o.classList.add("tn-static-margin-0-11696618"),o.classList.remove("tn-static-font-size-0-75em-948e16e5","tn-static-font-size-0-8em-19dc7c13","tn-static-font-size-0-9em-65025e95","tn-static-font-size-12px-65574819","tn-static-font-size-12px-b0cc7e05","tn-static-font-size-var-tn-font-size-sm-0274a31d","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-margin-top-8px-f4f01e68"),o.classList.add("tn-static-font-size-1-2em-3a352995"),o.classList.remove("tn-static-cursor-pointer-2723efcc","tn-static-font-weight-500-02a2d333","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd"),o.classList.add("tn-static-font-weight-600-eed0f8fb"),t.isCurrent){let p=s.createSpan({text:"Current"});p.classList.remove("tn-static-font-size-0-8em-19dc7c13","tn-static-font-size-0-9em-65025e95","tn-static-font-size-1-2em-3a352995","tn-static-font-size-12px-65574819","tn-static-font-size-12px-b0cc7e05","tn-static-font-size-var-tn-font-size-sm-0274a31d","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-margin-top-8px-f4f01e68"),p.classList.add("tn-static-font-size-0-75em-948e16e5"),p.classList.remove("tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-0-16px-16px-16px-f1aa998c","tn-static-padding-0-41d7d7e2","tn-static-padding-12px-43bef435","tn-static-padding-16px-287f770e","tn-static-padding-20px-769fed37","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c","tn-static-padding-2rem-42aa6d9c"),p.classList.add("tn-static-padding-2px-8px-c8eea84a"),p.classList.remove("tn-static-border-radius-6px-0dc8408c","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-12px-43bef435","tn-static-padding-20px-ebe8e48c"),p.classList.add("tn-static-border-radius-4px-c290c56e"),p.classList.remove("tn-static-background-color-var-background-mo-94b219f0","tn-static-background-color-var-background-se-9087a23e","tn-static-background-color-var-color-base-40-ef5f175e","tn-static-background-color-var-color-red-134bc721"),p.classList.add("tn-static-background-color-var-text-accent-a954c70f"),p.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),p.classList.add("tn-static-color-var-text-on-accent-f3e1679d"),p.classList.remove("tn-static-cursor-pointer-2723efcc","tn-static-font-weight-600-eed0f8fb","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd"),p.classList.add("tn-static-font-weight-500-02a2d333")}if(t.date){let p=s.createSpan({text:this.formatDate(t.date)});p.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),p.classList.add("tn-static-color-var-text-muted-5872de20"),p.classList.remove("tn-static-font-size-0-75em-948e16e5","tn-static-font-size-0-8em-19dc7c13","tn-static-font-size-1-2em-3a352995","tn-static-font-size-12px-65574819","tn-static-font-size-12px-b0cc7e05","tn-static-font-size-var-tn-font-size-sm-0274a31d","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-margin-top-8px-f4f01e68"),p.classList.add("tn-static-font-size-0-9em-65025e95")}let l=i.createSpan({text:n?"\u25BC":"\u25B6"});l.classList.remove("tn-static-font-size-0-75em-948e16e5","tn-static-font-size-0-9em-65025e95","tn-static-font-size-1-2em-3a352995","tn-static-font-size-12px-65574819","tn-static-font-size-12px-b0cc7e05","tn-static-font-size-var-tn-font-size-sm-0274a31d","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-margin-top-8px-f4f01e68"),l.classList.add("tn-static-font-size-0-8em-19dc7c13"),l.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),l.classList.add("tn-static-color-var-text-muted-5872de20");let c=a.createDiv({cls:"release-notes-version-content"});c.classList.remove("tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-0-41d7d7e2","tn-static-padding-12px-43bef435","tn-static-padding-16px-287f770e","tn-static-padding-20px-769fed37","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c","tn-static-padding-2px-8px-c8eea84a","tn-static-padding-2rem-42aa6d9c"),c.classList.add("tn-static-padding-0-16px-16px-16px-f1aa998c"),c.style.display=n?"block":"none";let d=null,u=()=>(d||(d=this.renderVersionContent(c,t)),d);n&&await u(),i.addEventListener("click",()=>{let p=c.style.display!=="none";c.style.display=p?"none":"block",l.textContent=p?"\u25B6":"\u25BC",p||u()})}async onOpen(){let{contentEl:e}=this;e.empty(),e.addClass("tasknotes-release-notes-view");let t=e.createDiv({cls:"tasknotes-release-notes-container"});t.classList.remove("tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-0-16px-16px-16px-f1aa998c","tn-static-padding-0-41d7d7e2","tn-static-padding-12px-43bef435","tn-static-padding-16px-287f770e","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c","tn-static-padding-2px-8px-c8eea84a","tn-static-padding-2rem-42aa6d9c"),t.classList.add("tn-static-padding-20px-769fed37"),t.classList.add("tn-static-max-width-900px-1d34c094"),t.classList.remove("tn-static-margin-0-11696618","tn-static-margin-0-db0d5f36","tn-static-margin-0-var-size-4-2-77f7dc08","tn-static-margin-2px-0-edce9b14","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-12px-43bef435","tn-static-padding-20px-ebe8e48c"),t.classList.add("tn-static-margin-0-auto-266e9b04");let n=t.createDiv({cls:"release-notes-header"});n.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-8px-fdf33f23"),n.classList.add("tn-static-margin-bottom-20px-49f14f8f"),n.createEl("h1",{text:this.plugin.i18n.translate("views.releaseNotes.header",{version:this.version})});let a=t.createEl("p");a.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-8px-fdf33f23"),a.classList.add("tn-static-margin-bottom-20px-49f14f8f"),a.classList.remove("tn-static-font-size-0-75em-948e16e5","tn-static-font-size-0-8em-19dc7c13","tn-static-font-size-1-2em-3a352995","tn-static-font-size-12px-65574819","tn-static-font-size-12px-b0cc7e05","tn-static-font-size-var-tn-font-size-sm-0274a31d","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-margin-top-8px-f4f01e68"),a.classList.add("tn-static-font-size-0-9em-65025e95"),a.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),a.classList.add("tn-static-color-var-text-muted-5872de20");let i=this.plugin.i18n.translate("views.releaseNotes.starMessage"),s=i.toLowerCase().lastIndexOf("github");if(s!==-1){a.appendText(i.substring(0,s));let d=a.createEl("a",{text:i.substring(s,s+6),href:T6});d.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),d.classList.add("tn-static-color-var-text-accent-65b47ee3"),d.addEventListener("click",u=>{u.preventDefault(),window.open(T6,"_blank")}),a.appendText(i.substring(s+6))}else a.appendText(i);let o=t.createDiv({cls:"release-notes-versions"});for(let d=0;d<this.releaseNotesBundle.length;d++){let u=this.releaseNotesBundle[d],p=u.isCurrent||d===0;await this.createVersionSection(o,u,p)}let l=t.createDiv({cls:"release-notes-footer"});l.classList.add("tn-static-border-top-1px-solid-var-backgroun-aab7c2ca"),l.classList.add("tn-static-padding-top-20px-49826953"),l.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),l.classList.add("tn-static-margin-top-30px-2fbbbcd4"),l.classList.remove("tn-static-padding-20px-7a035d95"),l.classList.add("tn-static-text-align-center-91a87015");let c=l.createEl("a",{text:this.plugin.i18n.translate("views.releaseNotes.viewAllLink"),href:gMe});c.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),c.classList.add("tn-static-color-var-text-accent-65b47ee3"),c.classList.remove("tn-static-text-decoration-line-through-7059a4e5"),c.classList.add("tn-static-text-decoration-none-80d654f9"),c.addEventListener("click",d=>{d.preventDefault(),window.open(gMe,"_blank")})}async onClose(){let{contentEl:e}=this;e.empty()}}});var yMe,vMe=y(()=>{yMe=`# TaskNotes 4.12.5
|
||
|
||
## Fixed
|
||
|
||
- (#2255) Notes with an in-note task card no longer jump while scrolling in reading mode. The card is now restored only after scrolling settles instead of being re-injected every frame against Obsidian's virtualised reading view. Thanks to @logicelf for the detailed diagnosis.
|
||
- (#2256) Kanban swimlane order now follows the view's sort configuration again: with a formula or property sort applied, the swimlane holding the top-sorted task floats to the top of the board as it did before the swimlane ordering option was introduced. Thanks to @tsweezy for reporting this.
|
||
- (#2222) The TaskNotes settings tab bar now wraps to a second line instead of clipping the Integrations tab beside the documentation link on narrow settings panes. Thanks to @nextstitch and @YongcaiHuang for reporting this.
|
||
`});var kMe,bMe=y(()=>{kMe=`# TaskNotes 4.12.4
|
||
|
||
> [!info] TaskNotes v5 beta
|
||
>
|
||
> [TaskNotes v5](https://github.com/callumalpass/tasknotes/releases/tag/5.0.0-beta.0) is available as an opt-in beta alongside TaskNotes 4.12. TaskNotes 4.12 remains the recommended stable release.
|
||
>
|
||
> The major change in v5 is support for portable TaskNotes collections. These collections can be used in both Obsidian and the [TaskNotes app](https://app.tasknotes.dev/), which is also available in beta, so the same tasks can be managed through either interface.
|
||
>
|
||
> TaskNotes collections are built on [mdbase](https://mdbase.dev/), a Markdown-native collection format. [mdbase Connect](https://mdbase.dev/connect/) provides the permissioned bridge that makes those collections available to the TaskNotes app. Your tasks remain ordinary Markdown files in your vault; mdbase adds a shared structure that compatible tools can understand.
|
||
>
|
||
> TaskNotes v5, mdbase Connect, and the TaskNotes app are all under active development. Please use a backed-up vault, expect some rough edges, and [report any problems you encounter](https://github.com/callumalpass/tasknotes/issues).
|
||
|
||
## Changed
|
||
|
||
- (#2187) Improved TaskNotes startup performance by allowing Bases registration to finish asynchronously. Thanks to @tgrosinger for the contribution.
|
||
|
||
## Fixed
|
||
|
||
- (#2232) Opening an occurrence note from a completion-anchored recurring task now
|
||
uses the task's scheduled occurrence date instead of defaulting to today. Thanks
|
||
to @chmac for reporting this.
|
||
- (#2247) Creating a new inline task now removes nested wikilink and Markdown-link
|
||
markup from the inserted task link's display text. Thanks to @bgk0018 for
|
||
reporting this.
|
||
- (#2231) Fixed Agenda views with \`showOverdueOnToday\` showing the same task twice
|
||
when both its scheduled and due dates were overdue. Thanks to @takashit16833 for
|
||
reporting this.
|
||
- (#2206) The time entry editor now opens much faster for tasks with many tracked
|
||
sessions by delaying the heavier description editor setup until a description
|
||
field is focused. Thanks to @Sapere-Kyle for reporting this.
|
||
- (#2239) Fixed Task List Bases embedded in mobile notes leaving a large blank gap
|
||
after the final task card. Thanks to @same774 for reporting this and @prethrive
|
||
for sharing a workaround.
|
||
- (#2238) The Relationships widget now stays below long Live Preview Dataview
|
||
tables and no longer appears twice after switching to Reading mode. Thanks to
|
||
@Romek1769 for reporting this.
|
||
- (#2250) Hardened Google Calendar task metadata updates: duplicate Google
|
||
Calendar fields are now repaired atomically without replacing concurrent task
|
||
edits, and synchronization finishing after a disconnect no longer writes stale
|
||
event metadata. Thanks to @3zra47 for reporting the corrupted task data that
|
||
prompted this review.
|
||
- (#2229) Google Calendar OAuth authorization now opens in the system browser
|
||
instead of Obsidian's Web Viewer, avoiding Google's 401 malformed-request
|
||
page in the in-app browser. Thanks to @prethrive for reporting this and
|
||
confirming the workaround.
|
||
- Skipping a recurring task instance from Task List or Kanban now records the
|
||
task's occurrence date instead of the view's current date. Thanks to
|
||
@renatomen for the contribution.
|
||
- (#2130) Tasks added by external sync while Obsidian is closed are now exported
|
||
to Google Calendar after TaskNotes starts. Thanks to @seththepeacock for
|
||
reporting this and @raphaelfaouakhiri for the contribution.
|
||
- (#2246) Fixed materialized recurring occurrences hiding occurrence-template filename suffixes in TaskNotes views. Thanks to @raphaelfaouakhiri for reporting and fixing this issue.
|
||
- (#2221) Fixed \`PUT /api/tasks/:id\` ignoring empty arrays for \`contexts\` and \`blockedBy\`: sending \`{"contexts": []}\` or \`{"blockedBy": []}\` now clears the corresponding frontmatter field instead of silently leaving the previous value in place. The deletion pass previously fired only on a literal \`undefined\`, which JSON cannot express, so HTTP clients had no way to clear these fields. Thanks to @tgrosinger for the contribution.
|
||
- (#2191) Completing or skipping a recurring occurrence that was moved earlier
|
||
than its original date no longer schedules that original date again. Thanks to
|
||
@martin-forge for the contribution.
|
||
- (#2193) Google Calendar event descriptions written with formatting now read as
|
||
plain text in event details, copied text, and generated notes, instead of
|
||
showing raw HTML tags. Paragraph breaks, list structure, and link addresses are
|
||
kept. Thanks to @martin-forge for the contribution.
|
||
- (#2192) Agenda and list cards for Google and Microsoft calendar events now
|
||
show the name of the calendar the event belongs to, instead of the generic
|
||
"Calendar" label. Thanks to @martin-forge for the contribution.
|
||
`});var TMe,wMe=y(()=>{TMe=`# TaskNotes 4.12.3
|
||
|
||
> [!info] TaskNotes v5 beta
|
||
>
|
||
> [TaskNotes v5](https://github.com/callumalpass/tasknotes/releases/tag/5.0.0-beta.0) is available as an opt-in beta alongside TaskNotes 4.12. TaskNotes 4.12 remains the recommended stable release.
|
||
>
|
||
> The major change in v5 is support for portable TaskNotes collections. These collections can be used in both Obsidian and the [TaskNotes app](https://app.tasknotes.dev/), which is also available in beta, so the same tasks can be managed through either interface.
|
||
>
|
||
> TaskNotes collections are built on [mdbase](https://mdbase.dev/), a Markdown-native collection format. [mdbase Connect](https://mdbase.dev/connect/) provides the permissioned bridge that makes those collections available to the TaskNotes app. Your tasks remain ordinary Markdown files in your vault; mdbase adds a shared structure that compatible tools can understand.
|
||
>
|
||
> TaskNotes v5, mdbase Connect, and the TaskNotes app are all under active development. Please use a backed-up vault, expect some rough edges, and [report any problems you encounter](https://github.com/callumalpass/tasknotes/issues).
|
||
|
||
## Fixed
|
||
|
||
- (#2212) Fixed TaskNotes settings sections appearing offscreen or blank on
|
||
Obsidian 1.13 desktop. Thanks to @RafaQNunes for reporting this, and to
|
||
@m4to-3pe and @matthewrishii for confirming it remained in 4.12.2.
|
||
- (#2213) Runtime plugin-data updates now avoid writing when Obsidian cannot
|
||
safely read an existing TaskNotes \`data.json\`, preventing calendar sync,
|
||
Pomodoro, ICS, or auto-archive state writes from replacing saved settings.
|
||
Thanks to @3zra47 for the follow-up details and file-history evidence.
|
||
- (#2216) Fixed updated default Kanban Bases grouping every task into the
|
||
\`None\` column when grouping by status. The generated Kanban templates now use
|
||
the real status property, and existing Kanban files using \`task.status\` keep
|
||
grouping from TaskNotes task data. Thanks to @Esvorst for reporting this.
|
||
- (#2120, #2135) Long all-day event titles in Calendar week and day views now
|
||
truncate in the all-day row instead of stretching it vertically. Thanks to
|
||
@same774 and @ks-studio-net for reporting this, and to @Admorei for confirming
|
||
it remained in 4.12.2.
|
||
`});var SMe,xMe=y(()=>{SMe=`# TaskNotes 4.12.2
|
||
|
||
> [!info] TaskNotes v5 beta
|
||
>
|
||
> [TaskNotes v5](https://github.com/callumalpass/tasknotes/releases/tag/5.0.0-beta.0) is available as an opt-in beta alongside TaskNotes 4.12. TaskNotes 4.12 remains the recommended stable release.
|
||
>
|
||
> The major change in v5 is support for portable TaskNotes collections. These collections can be used in both Obsidian and the [TaskNotes app](https://app.tasknotes.dev/), which is also available in beta, so the same tasks can be managed through either interface.
|
||
>
|
||
> TaskNotes collections are built on [mdbase](https://mdbase.dev/), a Markdown-native collection format. [mdbase Connect](https://mdbase.dev/connect/) provides the permissioned bridge that makes those collections available to the TaskNotes app. Your tasks remain ordinary Markdown files in your vault; mdbase adds a shared structure that compatible tools can understand.
|
||
>
|
||
> TaskNotes v5, mdbase Connect, and the TaskNotes app are all under active development. Please use a backed-up vault, expect some rough edges, and [report any problems you encounter](https://github.com/callumalpass/tasknotes/issues).
|
||
|
||
## Fixed
|
||
|
||
- (#2212) Fixed TaskNotes settings sections appearing pushed across the Obsidian settings pane on desktop. Thanks to @RafaQNunes for reporting this.
|
||
`});var CMe,EMe=y(()=>{CMe=`# TaskNotes 4.12.1
|
||
|
||
> [!info] TaskNotes v5 beta
|
||
>
|
||
> [TaskNotes v5](https://github.com/callumalpass/tasknotes/releases/tag/5.0.0-beta.0) is available as an opt-in beta alongside TaskNotes 4.12. TaskNotes 4.12 remains the recommended stable release.
|
||
>
|
||
> The major change in v5 is support for portable TaskNotes collections. These collections can be used in both Obsidian and the [TaskNotes app](https://app.tasknotes.dev/), which is also available in beta, so the same tasks can be managed through either interface.
|
||
>
|
||
> TaskNotes collections are built on [mdbase](https://mdbase.dev/), a Markdown-native collection format. [mdbase Connect](https://mdbase.dev/connect/) provides the permissioned bridge that makes those collections available to the TaskNotes app. Your tasks remain ordinary Markdown files in your vault; mdbase adds a shared structure that compatible tools can understand.
|
||
>
|
||
> TaskNotes v5, mdbase Connect, and the TaskNotes app are all under active development. Please use a backed-up vault, expect some rough edges, and [report any problems you encounter](https://github.com/callumalpass/tasknotes/issues).
|
||
|
||
## Changed
|
||
|
||
- (#2204) Public documentation is now published from the dedicated \`tasknotes.dev\` repository. Plugin release notes and internal documentation remain in this repository.
|
||
- Updated compatibility with Obsidian's current plugin review and settings search.
|
||
|
||
## Fixed
|
||
|
||
- Fixed TaskNotes interface elements sometimes appearing in the wrong window when using Obsidian pop-out windows.
|
||
- Improved confirmation dialogs, icons, and modal styling to use Obsidian's current interface APIs.
|
||
`});var DMe,PMe=y(()=>{DMe=`# TaskNotes 4.12.0
|
||
|
||
> [!info] TaskNotes v5 beta
|
||
>
|
||
> [TaskNotes v5](https://github.com/callumalpass/tasknotes/releases/tag/5.0.0-beta.0) is available as an opt-in beta alongside TaskNotes 4.12. TaskNotes 4.12 remains the recommended stable release.
|
||
>
|
||
> The major change in v5 is support for portable TaskNotes collections. These collections can be used in both Obsidian and the [TaskNotes app](https://app.tasknotes.dev/), which is also available in beta, so the same tasks can be managed through either interface.
|
||
>
|
||
> TaskNotes collections are built on [mdbase](https://mdbase.dev/), a Markdown-native collection format. [mdbase Connect](https://mdbase.dev/connect/) provides the permissioned bridge that makes those collections available to the TaskNotes app. Your tasks remain ordinary Markdown files in your vault; mdbase adds a shared structure that compatible tools can understand.
|
||
>
|
||
> TaskNotes v5, mdbase Connect, and the TaskNotes app are all under active development. Please use a backed-up vault, expect some rough edges, and [report any problems you encounter](https://github.com/callumalpass/tasknotes/issues).
|
||
|
||
## Security
|
||
|
||
- Calendar OAuth credentials and account tokens are now stored in Obsidian Secret Storage instead of TaskNotes' \`data.json\`, with automatic migration for existing connections. See [Calendar Integration](https://tasknotes.dev/features/calendar-integration/).
|
||
- Thanks to @mcuste for the contribution
|
||
- Updated bundled HTTP, address parsing, and schema validation dependencies to
|
||
versions containing their current security fixes.
|
||
|
||
## Added
|
||
|
||
- Added portable task attachment references. Attachments now round-trip as an
|
||
ordered \`attachments\` link list in task frontmatter and are exposed through
|
||
the TaskNotes model and runtime API. These are collection-file references
|
||
only; attachment bytes and binary metadata remain owned by the host.
|
||
- (#2142) MCP \`tasknotes_create_task\` and \`tasknotes_update_task\` now accept
|
||
\`customProperties\` for configured TaskNotes user fields. Thanks to
|
||
@phillipadsmith for suggesting this.
|
||
- (#2126, #2134) Added optional filename templates for materialized recurring
|
||
occurrence notes, with explicit date, ISO week, month, year, and month-name
|
||
variables plus per-parent overrides. Existing naming remains unchanged until a
|
||
template is configured. See [Recurring Tasks](https://tasknotes.dev/features/recurring-tasks/#occurrence-filenames).
|
||
Thanks to @raphaelfaouakhiri for reporting and implementing this.
|
||
- (#2105) Added \`{{projectFolder}}\` and \`{{projectFolders}}\` folder template
|
||
variables for storing tasks alongside linked project notes. See
|
||
[Template Variables](https://tasknotes.dev/features/template-variables/).
|
||
Thanks to @carypruitt for this contribution.
|
||
|
||
## Changed
|
||
|
||
- Generated TaskNotes type contracts now include configured natural-language
|
||
capture triggers, allowing compatible clients to offer the same field
|
||
suggestions.
|
||
- Rebuilt the TaskNotes documentation with
|
||
reorganized navigation, full-text search, mobile and accessibility
|
||
improvements, and references generated from the current commands, settings,
|
||
compatibility metadata, HTTP routes, and default Bases. Added practical
|
||
guides for adopting TaskNotes in an existing vault, mobile use, custom Bases,
|
||
and backup and recovery. See the
|
||
[TaskNotes documentation](https://tasknotes.dev/).
|
||
- (#2088) Convert current note to task now uses your default scheduled date when
|
||
the note does not already have \`scheduled\` frontmatter, while the **None**
|
||
default still leaves converted notes unscheduled. See
|
||
[Task Properties](https://tasknotes.dev/settings/task-properties/#scheduled-date).
|
||
Thanks to @e-zz for suggesting this.
|
||
|
||
## Fixed
|
||
|
||
- Plugin settings now recover when Obsidian briefly returns no data while
|
||
reloading an externally changed settings file, preventing a post-reload error
|
||
without overwriting the existing settings.
|
||
- (#2194) Pomodoro task selection suggestions now keep rich task cards at the
|
||
menu width, preventing task titles from wrapping one letter per line. Thanks
|
||
to @Evilgenee for reporting this.
|
||
- (#2196) Drag-to-reorder now works for Task List Bases embedded in Live Preview
|
||
notes, matching the behavior of directly opened Bases and Reading mode embeds.
|
||
Thanks to @jimbo108108 for reporting this.
|
||
- (#2198) Agenda Bases can now show overdue scheduled or due tasks on today's
|
||
row with \`showOverdueOnToday\`, and regenerated default Agenda files enable
|
||
that behavior by default. Thanks to @vicrdguez for reporting this.
|
||
- (#2182) Checklist progress on task cards now excludes cancelled markdown
|
||
checklist items such as \`[-]\` from the completed/total count. Thanks to
|
||
@ctrl-q for reporting this.
|
||
- (#2180) Inline task cards in Live Preview now keep their click and context menu
|
||
handlers active on Obsidian 1.13, so clicking a rendered task link opens the
|
||
edit modal instead of revealing the raw wikilink. Thanks to @npondel for the
|
||
detailed diagnosis and @minchinweb for confirming the issue.
|
||
- (#2171) Stopped recurring
|
||
notification and status-bar scans from reading unindexed notes directly from
|
||
disk while preserving the fallback for direct task lookups. Thanks to
|
||
@tgrosinger for identifying and diagnosing the excessive vault reads.
|
||
- (#2174) **Open or create occurrence note** from Quick Actions now uses the
|
||
recurring task's scheduled occurrence date, preventing duplicate occurrence
|
||
notes keyed to the day the action was run. Thanks to @chmac for reporting
|
||
this.
|
||
- (#2169) Regenerated default Base views now include tasks whose identifying
|
||
property is stored as a list containing the configured task value. Thanks to
|
||
@GlebYavorski for reporting this.
|
||
- (#2166) Fixed Task List views configured to start collapsed so the first
|
||
chevron click expands only the selected group instead of expanding every
|
||
other group. Thanks to @renatomen for reporting and fixing this.
|
||
- (#2165) **Convert current note to task** now reads configured field mappings,
|
||
including list-valued title fields such as \`aliases\`, and preserves an
|
||
existing aliases list when the title is unchanged. Thanks to @jkuball for
|
||
reporting this.
|
||
- (#2164) Flat Kanban boards now clear stale swimlane layout state when they
|
||
rerender, preventing columns from occasionally stacking into one vertical
|
||
strip after switching tabs. Thanks to @brienna for reporting this.
|
||
- (#2160, #2161) Generated Kanban Bases now use the correct TaskNotes status
|
||
property and configuration block. Rich Bases status values render as their
|
||
configured labels, while pinned columns and saved column order are honored.
|
||
Thanks to @kevin-4c for the detailed reports and diagnosis.
|
||
- (#2111, #2159) Recurring task instances now remain visible through the final
|
||
day of Calendar and Agenda ranges in positive-offset time zones, regardless
|
||
of the configured first day of the week. Thanks to @Arachnidai and @odxn0803
|
||
for reporting this.
|
||
- (#2155) Regenerated default Calendar Bases now inherit the app-level time slot
|
||
duration instead of hardcoding 30 minutes. Existing per-Base time settings
|
||
remain intentional overrides. Thanks to @SZZ504232 for reporting this.
|
||
- (#2154) Timed ICS events without a \`TZID\` now preserve their floating wall
|
||
time in the user's local timezone instead of being interpreted as UTC. Thanks
|
||
to @cloesophia for the reproducible calendar sample.
|
||
- (#2152) Fixed paginated Google Calendar refreshes for calendars with many
|
||
events so secondary calendars do not disappear after Google returns a second
|
||
page. Thanks to @wobafett for reporting and diagnosing this.
|
||
- (#2141) Fixed Task List groups for tasks without scheduled or due dates showing
|
||
a raw Bases icon object instead of **None**. Thanks to @ks-studio-net for
|
||
reporting this.
|
||
- (#2140) The edit task modal now shows saved task-identification tags when
|
||
hiding identification tags is disabled. Thanks to @3zra47 for reporting this.
|
||
- (#2148) Empty list-like frontmatter values no longer become literal \`"null"\`
|
||
entries when tasks are edited. Thanks to @minchinweb for reporting this.
|
||
- (#2120, #2135) Long all-day event titles in Calendar week and day views now
|
||
truncate instead of stretching the all-day row. Thanks to @same774 and
|
||
@ks-studio-net for reporting this.
|
||
- (#2124) Fixed a Kanban crash when opening or closing the edit modal immediately
|
||
after moving a task between list-valued swimlanes such as contexts. Thanks to
|
||
@Decia-C for reporting this.
|
||
- (#2114) Completing a rescheduled occurrence for a scheduled-anchored recurring
|
||
task now advances the parent from the moved occurrence date instead of an
|
||
earlier original occurrence date. Thanks to @chrabia for reporting this.
|
||
- (#2113) Failed Google Calendar manual refreshes no longer make the next
|
||
immediate refresh show a misleading success notice. Thanks to @JohWQ for
|
||
reporting this.
|
||
- (#2109) TaskNotes no longer injects instant-conversion controls into embedded
|
||
or detached Markdown editors, preventing checkbox notes opened from unrelated
|
||
Bases from freezing Obsidian on mobile. Thanks to @jmartinmcfly for the clear
|
||
reproduction and recording.
|
||
- (#2107, #2108) Creating tasks with **Store title in filename** enabled now
|
||
handles duplicate or case-variant titles without failing or replacing the task
|
||
title with a suffixed filename. Thanks to @AdmiralClackington for reporting and
|
||
diagnosing this.
|
||
- (#2106) Regenerated default Calendar Base files now use your configured first
|
||
day of the week instead of forcing Sunday. Thanks to @atos2212-blip, @cweekly,
|
||
@idontcode34, and @hikatamika for reporting this.
|
||
- (#2100) Tags added while creating a task now keep the same frontmatter order as
|
||
tags added later from the task context menu. Thanks to @mgrecar for reporting
|
||
this.
|
||
- (#2092) New non-recurring tasks created directly in a completed status now get
|
||
a completed date, so completed-date views can find them immediately. Thanks
|
||
to @Crell for reporting this.
|
||
- (#2096) Fixed TaskNotes Kanban swimlanes falling back to **None** when the
|
||
swimlane used a Bases formula that was not already cached by Bases. Thanks to
|
||
@ddevaal for reporting this.
|
||
- (#2093) TaskNotes now retries custom Bases view registration when the Bases
|
||
core plugin is enabled after TaskNotes, preventing default views from showing
|
||
**Unknown view type** until TaskNotes is reloaded. Thanks to @yaye-work for
|
||
reporting this.
|
||
- (#2084) The Relationships widget no longer prevents editor text selection from
|
||
autoscrolling when dragging below the bottom edge of a task note. Thanks to
|
||
@lostwildland for reporting this.
|
||
- (#2081, #2103) Kept task card and relationships widgets visible in reading mode
|
||
when Obsidian scroll or preview updates remove their DOM, and refreshed visible
|
||
widgets promptly after metadata changes. Thanks to @mukhozhuk for reporting and
|
||
debugging this and @martin-forge for fixing it.
|
||
- (#2064, #2066) Recurring tasks now advance correctly after their next
|
||
scheduled date is manually adjusted, preserving due-date offsets and times
|
||
without jumping back to an earlier occurrence. Thanks to @chmac for reporting
|
||
and fixing this.
|
||
- (#2018) Fixed **Hide empty columns** in Kanban views with swimlanes so columns
|
||
with no visible tasks are hidden while pinned columns remain. Thanks to
|
||
@scottTomaszewski for reporting and fixing this.
|
||
- Fixed recurring all-day ICS subscription events keeping the original end date
|
||
on later instances, which could cause calendar list views to show events under
|
||
the wrong day. Thanks to @abbiefalls90.
|
||
- (#2033) Fixed the project folder badge on task cards so, when expandable
|
||
subtasks are enabled, it expands or collapses inline subtasks instead of
|
||
showing an unavailable-action notice. Thanks to @abbiefalls90 for the fix and
|
||
@scottkodai for the follow-up feedback.
|
||
- (#2040, #2041) Stopped newly created tasks from filling the Google Calendar
|
||
retry queue when calendar export is disabled. Thanks to @chmac for reporting
|
||
and fixing this.
|
||
- (#2046, #2051) The date and time picker now focuses the natural-language input
|
||
when it is enabled, making keyboard-driven quick actions ready for immediate
|
||
typing. Thanks to @DevOps-Toast for reporting this and @ther12k for fixing it.
|
||
- (#2125, #2129) Materialized recurring occurrence notes now record the date
|
||
they were actually completed, while the parent recurring task continues to
|
||
track the occurrence date. Thanks to @raphaelfaouakhiri for reporting and
|
||
fixing this.
|
||
- (#2173, #2175) Completion-anchored recurring tasks with materialized
|
||
occurrence notes now schedule the next occurrence from the day the occurrence
|
||
was actually completed. Thanks to @chmac for reporting and fixing this.
|
||
- (#1982) Preserved the Task List's own scroll position during Bases refreshes so
|
||
long mobile lists do not jump back to the top after task updates. Thanks to
|
||
@3zra47 for the follow-up report.
|
||
- (#1863) Microsoft Calendar event updates now accept opaque Exchange calendar
|
||
IDs instead of failing local validation before contacting Microsoft Graph.
|
||
Thanks to @fmacondray for reporting this and providing the follow-up stack
|
||
trace.
|
||
`});var MMe,AMe=y(()=>{MMe=`# TaskNotes 4.11.1
|
||
|
||
## Added
|
||
|
||
- (#2024) Added materialized occurrence notes to the Relationships widget, so recurring parent task notes can show their occurrence notes in an **Occurrences** tab. See [Relationships Widget](https://tasknotes.dev/features/inline-tasks/#relationships-widget). Thanks to @3zra47 for requesting this.
|
||
- (#2022) Added a **Skip instance** / **Unskip instance** action to the recurring task edit modal's completion calendar, so skipped dates can be adjusted from the same date menu as completions. See [Recurring Tasks](https://tasknotes.dev/features/recurring-tasks/#completion-tracking). Thanks to @AmonAmarthFTW for requesting this.
|
||
- (#2048) Added current due and scheduled dates to the edit modal's task information. Thanks to @1activegeek for requesting this.
|
||
- (#2058, #2059) Added natural-language parsing and the full date picker to date-type custom fields. Thanks to @chmac for requesting this.
|
||
- (#2060) Added date-type custom fields to the task right-click menu under **Custom dates**. Thanks to @chmac for requesting this.
|
||
- (#2067) Added an **Edit task** action to the task card context menu, including inline task cards. Thanks to @DarkCellar for requesting this.
|
||
- (#2068) Added \`reminders\` input support to the MCP \`tasknotes_create_task\` and \`tasknotes_update_task\` tools. Thanks to @Spirit597 for requesting this.
|
||
- (#2069) Added an **Add project** action to the Quick Actions palette. Thanks to @chmac for requesting this.
|
||
|
||
## Fixed
|
||
|
||
- (#2007) Fixed a remaining task creation autocomplete case where a status value containing another status label could leave status fragments in the task title. Thanks to @prepare4robots for the follow-up report.
|
||
- (#2031) Fixed quick task creation failing when natural language input created a recurring task with a scheduled time. Thanks to @rdefaccio for reporting this.
|
||
- (#2034) Fixed Advanced Calendar timed events switching to a high-contrast mobile fill when Obsidian is narrowed or split on desktop. Thanks to @RumiaKitinari for reporting this.
|
||
- (#2039) Fixed broken images on the Workflows and Calendar Setup documentation pages. Thanks to @chmac for reporting this.
|
||
- (#2045) Fixed custom modal fields assigned to Basic Information not appearing in task creation or edit modals. Thanks to @chmac for reporting this.
|
||
- (#2063) Fixed project autocomplete storing ambiguous project links without the selected note's folder path. Thanks to @chmac for reporting this.
|
||
- (#2072) Fixed inline task links to headings so they show both the task title and heading instead of only the heading. Thanks to @spasche for reporting this.
|
||
- (#2075) Fixed multiday Calendar events being clipped to one day when a Base is embedded in Reading view. Thanks to @ddevaal for reporting this.
|
||
- (#2079) Fixed the reminder modal's **Absolute** tab so it switches from relative fields to absolute date and time fields. Thanks to @JunwonYoon for reporting this and identifying the CSS specificity issue.
|
||
|
||
## Changed
|
||
|
||
- Improved local review checks so unsafe direct \`Object.prototype\` method access is caught before submission.
|
||
`});var _Me,IMe=y(()=>{_Me=`# TaskNotes 4.11.0
|
||
|
||
## Added
|
||
|
||
- (#730, #1897, #1942, #1998) Added [Canvas Bases](https://github.com/callumalpass/canvas-bases), an optional companion plugin that turns Obsidian Bases views into canvas-style boards and reusable JSON Canvas snapshots, with TaskNotes badges, task menus, dependency and subtask edges, and assignment zones for supported TaskNotes actions. See [Canvas Bases](https://tasknotes.dev/companion-plugins/canvas-bases/) for setup details. Thanks to @DillPickle80, @BradGaddis, @Hyadhuad, and @AlinaWithAFace for the visual planning requests, and to @renatomen, @prayidae, and @maranqz for the related discussion.
|
||
- Added a TaskNotes starter note that is created and opened automatically on first install to introduce task creation, inline conversion, and embedded Bases views.
|
||
- Added a runtime API surface for companion plugins to show or populate the standard TaskNotes task context menu.
|
||
- (#2000) Added separate settings for using the active note as a project during normal task creation and during inline task creation or instant conversion. Thanks to @BlueScreen32 for suggesting the split.
|
||
- (#1303, #2001) Added separate templates for materialized occurrence notes, including parent-level \`occurrence_template\` support and a global fallback setting. Thanks to @BrucePlumb for suggesting a separate occurrence-note template and @ak-42 for the related per-recurrence template request.
|
||
- (#2006) Added the projected local finish time beside the remaining duration while a Pomodoro is running. See [Pomodoro View](https://tasknotes.dev/views/pomodoro-view/) for the timer behavior. Thanks to @abbiefalls90 for suggesting this.
|
||
- (#2016) Added a setting for recurring external calendar event related notes, so Google, Microsoft, and ICS recurrences can either share notes across the series or keep notes limited to the selected instance. See [Integrations Settings](https://tasknotes.dev/settings/integrations/#calendar-subscriptions-ics) for the setting. Thanks to @akhtsang for reporting this, and to @cathywu and @mdbraber for the earlier series-linking discussion.
|
||
|
||
## Changed
|
||
|
||
- (#1737) Clarified that changing the task tag does not automatically update existing Base view filters. Thanks to @goldorak00 for reporting this, and to @Domcoppinger and @imsuck for the first-time setup feedback.
|
||
- (#2005) Excluded archived task notes and archived project-note references from Task & Project Statistics. Thanks to @Xiarno for suggesting this.
|
||
- Added a local review-type lint check that catches dependency-resolution warnings from Obsidian's online review before submission.
|
||
- Improved dependency and project relationship cache updates so ordinary note edits avoid unnecessary relationship recalculation, while blocked and blocking state stays current when dependency status changes.
|
||
- Improved filter and view query caching so filter options update immediately after relevant task-field changes while large Task List, Kanban, and Calendar queries avoid repeated vault scans.
|
||
- Extended the in-app release notes bundle to include the current major release, with collapsed versions rendered only when opened.
|
||
|
||
## Fixed
|
||
|
||
- (#2015) Fixed Google Calendar events from the previous six months disappearing from Calendar and Mini Calendar views after a fresh sync. Thanks to @akhtsang for reporting this.
|
||
- (#2013) Fixed task-card status and priority dots becoming oversized on touch-capable desktop devices. Thanks to @RumiaKitinari for reporting this.
|
||
- (#2009) Restored Tab and Shift+Tab focus movement in the Create new task modal's natural language input instead of letting the markdown editor indent the title. Thanks to @prepare4robots for reporting this.
|
||
- (#2007) Fixed status autocomplete in the task creation modal leaving status value fragments in the task title when the editor auto-paired the status trigger. Thanks to @prepare4robots for reporting this.
|
||
- (#2004) Fixed the Pomodoro start command forgetting the selected task after it was completed, so reopening the task lets it be picked up again. Thanks to @MPourjam for reporting this.
|
||
- (#1996) Made Kanban card drag-and-drop show a clear drop slot marker while cards are being repositioned, so the landing position remains visible during sorting. Thanks to @phillipadsmith for reporting this.
|
||
- Fixed runtime API dependency removal so removing the last dependency from a task also clears the mapped \`blockedBy\` property from the note.
|
||
`});var NMe,RMe=y(()=>{NMe=`# TaskNotes 4.10.2
|
||
|
||
## Fixed
|
||
|
||
- (#1995) Fixed Bases Calendar views showing both a materialized occurrence note and its matching virtual recurring task instance. Thanks to @rdefaccio for reporting this.
|
||
- (Discussion #1994) Fixed timed recurring tasks failing to advance their due dates when due-date offset preservation is enabled. Thanks to @mgrecar for raising this.
|
||
`});var FMe,OMe=y(()=>{FMe=`# TaskNotes 4.10.1
|
||
|
||
## Added
|
||
|
||
- Added a startup check for new compatible TaskNotes releases. When a new release is available, TaskNotes shows a notice that opens the TaskNotes entry in Obsidian's Community Plugins browser.
|
||
- (#1989) Added a command-palette action plus runtime and HTTP API actions for updating configured default \`.base\` files from the current TaskNotes templates. Thanks to @businessBoris for the request.
|
||
- (#1115) Added API and MCP support for creating materialized occurrence notes from recurring tasks, and made headless recurring-instance completion respect occurrence notes when the parent uses Create next after completion. Thanks to @gsssr for the original request, @slipstyle for the follow-up, and @martin-forge for identifying the API/MCP gap.
|
||
|
||
## Fixed
|
||
|
||
- (#1985) Fixed embedded Calendar and Agenda time-grid views drifting out of alignment inside callouts and Reading mode. Thanks to @matesvecenik for reporting and sharing screenshots.
|
||
- (#1986) Fixed the local HTTP API rejecting requests from the TaskNotes browser extension's Chrome extension origin. Thanks to @n1njaznutz for reporting this.
|
||
- (#1980) Added mobile bottom spacing to Agenda Calendar views so the last visible tasks can scroll above Obsidian's bottom navigation bar. Thanks to @Jomo94 for reporting and sharing the screenshot.
|
||
- (#1984) Fixed mobile task link overlays hiding configured inline task card properties such as scheduled date, due date, contexts, and projects. Thanks to @stil-sudo for reporting.
|
||
- (#1979) Kept the left-positioned subtask chevron from overlapping the task status control on mobile task cards. Thanks to @Jomo94 for reporting and sharing the screenshot.
|
||
- (#1903) Reduced the Edit Task modal's mobile action-button footer so Open note, Archive, Delete, Save, and Cancel take two rows instead of three on iPhone-sized screens. Thanks to @3zra47 for the original report and @krzyfu for the follow-up about the button area crowding the editor.
|
||
- (#1982) Preserved scroll position in TaskNotes Bases after task edits and data refreshes, avoiding jumps back to the top on mobile. Thanks to @3zra47 for reporting.
|
||
- (#1978) Restored Obsidian editor shortcuts such as insert link, headings, and list toggles inside the Edit Task modal's Details editor. Thanks to @krzyfu for reporting this.
|
||
`});var LMe,zMe=y(()=>{LMe=`# TaskNotes 4.10.0
|
||
|
||
## Added
|
||
|
||
- **New companion plugin:** TaskNotes Workflows adds Markdown-defined automation for TaskNotes tasks, events, schedules, and manual commands. It keeps automation workflows outside TaskNotes core while using the runtime API for safe task reads, writes, queries, events, and relationship resolution. See [TaskNotes Workflows](https://tasknotes.dev/companion-plugins/tasknotes-workflows/).
|
||
- (#1530) \`Auto-start time tracking\` starts a timer when a task moves into active work. Thanks to @Jendrik0 and @benmartinek for the request and follow-up.
|
||
- (#222, #184) \`Stop time tracking on complete\` stops active timers when a task is completed. Thanks to @bcohen44 and @cathywu for the requests, and @amarjt for the follow-up.
|
||
- (#265) \`Stamp started timestamp\` records a custom started timestamp when a task first moves into active work. Thanks to @cathywu, @digitaldoctors, and @Leo310 for the request and discussion.
|
||
- (#1703) \`Clear scheduled when started\` clears the scheduled date when a task moves into active work. Thanks to @kmaustral for the request.
|
||
- (#1293) \`Rollover overdue scheduled tasks\` moves incomplete tasks with past scheduled dates back to today. Thanks to @grosserfrank for the request.
|
||
- (#1896) \`Escalate upcoming due tasks\` raises priority as due dates approach. Thanks to @Neptune-Illusion for the request.
|
||
- (#214, #518, #1785, #1855) The subtask inheritance workflows can copy parent contexts, tags, priority, planning dates, and dependencies into new subtasks. Thanks to @timfidd, @bepolymathe, @AndyEveritt, @lindsaylearns, @tomsymonds, @wedgen, @poulpoulsen, and @misolex for the related requests and discussion.
|
||
- (#1166) \`Blocked task review\` provides a reminder-style review for blocked tasks without automatically deleting dependency links. Thanks to @jpmoo and @jortscity for the request and follow-up.
|
||
- Added a versioned TaskNotes JavaScript runtime API for companion plugins, with namespaced model validation, canonical task query validation/normalization/explain helpers, catalogs, query/support helpers, lifecycle events, typed errors/results, task, time-tracking, Pomodoro, recurring-task, settings, NLP, event, and extension-registry surfaces. Runtime API mutations carry source and correlation metadata so companion plugins can debug and coordinate workflow runs. See [JavaScript API](https://tasknotes.dev/javascript-api/).
|
||
- Added documentation for the companion-plugin model. See [Companion Plugins](https://tasknotes.dev/companion-plugins/).
|
||
- (#288, #345, #361, #523, #573, #703, #925, #929, #1115, #1137, #1260, #1303, #1324, #1394, #1445, #1509, #1735, #1736, #1743, #1780, #1874, #1951, #1974) Added support for TaskNotes spec 0.2.0 materialized occurrences, including recurrence parent/date fields, generated mdbase schema roles, parent reconciliation when occurrence notes are completed, occurrence notes that inherit parent planning metadata without copying history, occurrence note controls in task, calendar, and edit-modal completion menus, and visible occurrence identity on task cards. This gives recurring tasks a concrete occurrence-note path for per-instance state, related notes, subtasks, templates, scheduling changes, completion history, and calendar behavior without forcing every recurring task to create files. See [Recurring Tasks](https://tasknotes.dev/features/recurring-tasks/#materialized-occurrence-notes) and [Property Types Reference](https://tasknotes.dev/settings/property-types-reference/#materialized-occurrence-properties). Thanks to @LuxBetancourt, @jerzy-dudzic, @luciolebrillante, @BryanWall, @jhedlund, @kazerniel, @nschenone, @realJohnDoe, @cathywu, @Lorite, @EllenGYY, @JcMinarro, @gsssr, @slipstyle, @3zra47, @Leonard-44, @ak-42, @RumiaKitinari, @atos2212-blip, @kmaustral, @eugenedefox, @notDavid, @zitongcharliedeng, and @Jomo94 for the related recurrence, occurrence, completion, and calendar requests.
|
||
- (#1951) Added Calendar support for recurring tasks stretched between scheduled and due dates when the existing stretch option is enabled. Date-only ranges stay as all-day spans, and timed ranges render once per day in the range. Thanks to @atos2212-blip for the request.
|
||
- (#1751, #1792, #1969) Added a Task List and Kanban view option to hide top-level subtasks when their parent task is also in the filtered view, while still allowing inherited expanded relationships to show the subtasks under the parent. Thanks to @Glint-Eye and @Proxybat for the request and follow-up, and @stanley-910 and @Spencerduran for the earlier PRs.
|
||
|
||
## Changed
|
||
|
||
- Moved core TaskNotes model behavior for field mapping, dates, recurrence, time-tracking, and adapter operation planning into a shared package used by the plugin and companion tooling.
|
||
- Calendar views now coalesce materialized occurrence notes with their matching virtual recurring instances. Dragging a materialized occurrence reschedules that occurrence note without changing the parent recurrence rule or the note's \`occurrence_date\` identity. See [Recurring Tasks](https://tasknotes.dev/features/recurring-tasks/#calendar-drag-and-drop).
|
||
- Improved the Calendar Bases View Options menu by splitting settings into clearer groups and hiding view-specific controls until they apply to the selected calendar mode.
|
||
|
||
## Fixed
|
||
|
||
- (#1976) Fixed embedded Calendar and Agenda Bases so "Navigate to date from property" can use the containing note's date property when the Base rows do not have that property. Thanks to @matesvecenik for reporting this.
|
||
- (#1977) Fixed Calendar and Agenda views showing duplicate all-day entries when a task's scheduled date and due date are the same day. Timed due dates on the same day still show as separate deadline markers. Thanks to @pdgBC for reporting this.
|
||
- Fixed the release notes view using cramped interface typography instead of regular reading typography.
|
||
- (#216) Improved inline conversion for Tasks plugin task lines, including Dataview-style fields, priority markers, recurrence text, date aliases, block links, and safer trailing-field parsing. Thanks to @ksdavidc for the request, @natleahh for the Dataview example, and @hangryscribe3 and @nayatiuh for the discussion.
|
||
- (#1974) Stopped Calendar and Agenda property-based events from logging date parse errors for entries that do not have the selected date property. Thanks to @Jomo94 for suggesting completed-date Agenda events.
|
||
- (#1973) Reduced unnecessary Calendar view recreations when external calendar providers are reported in a different order, and preserved Calendar scroll position when a config-driven refresh has to recreate the view. Thanks to @e-zz for reporting this.
|
||
- (#1972) Fixed ICS calendar event related notes so standalone events with similar numeric IDs no longer show unrelated notes or tasks on every event. Thanks to @ks-studio-net for reporting this.
|
||
- (#1970) Fixed generated default Base filters so updating default files applies configured excluded folders to TaskNotes task views. Thanks to @henrim01 for reporting that templates could still appear in regenerated views.
|
||
- (#1968) Fixed inline task link overlays collapsing on Obsidian mobile, which could hide the task title and leave a tall empty gap after the widget. Thanks to @renatomen for reporting and diagnosing the containment issue.
|
||
`});var jMe,$Me=y(()=>{jMe=`# TaskNotes 4.9.2
|
||
|
||
## Added
|
||
|
||
- (#1791) Added collapse and expand controls for grouped Bases Task List views, including a default collapsed state option.
|
||
- Thanks to @renatomen for the contribution.
|
||
|
||
## Fixed
|
||
|
||
- Fixed Pomodoro storage migration so existing plugin-data history is written to daily notes before switching storage, and clarified that daily notes can come from either the core Daily Notes plugin or Periodic Notes.
|
||
- (#1964) Fixed Microsoft Calendar OAuth so connecting no longer forces a fresh consent prompt every time, and clarified the Microsoft desktop app setup steps.
|
||
- Thanks to @thechonta for reporting.
|
||
- (#1966) Fixed custom priority icons so they render as icons instead of filled squares on task cards.
|
||
- Thanks to @sruiz-savia for reporting.
|
||
- (#1963) Fixed Google Calendar sync so duplicate event ID fields are repaired when saving task calendar metadata.
|
||
- Thanks to @christenbc for reporting.
|
||
- (#1961) Fixed the default custom filename template so it uses the recommended double-brace syntax and no longer warns on first use.
|
||
- Thanks to @chmac for reporting.
|
||
- (#1962) Fixed task tag normalization so tags entered with spaces are saved with hyphens for Obsidian tag compatibility.
|
||
- Thanks to @christenbc for reporting.
|
||
- (#1959) Fixed the MCP \`tasknotes_list_tasks\` tool so circular internal task data and live Obsidian object references no longer break task-list responses.
|
||
- Thanks to @kmaustral for reporting.
|
||
- (#1957) Fixed the Pomodoro timer layout in vertically split panes so the timer header and progress circle remain reachable when the pane is short.
|
||
- Thanks to @sumiyalairu03 for reporting.
|
||
- (#1956) Fixed Google Calendar sync so completing a recurring task updates the linked event title with the completion checkmark.
|
||
- Thanks to @jacksoluke for reporting.
|
||
- (#1953) Fixed inline task conversion so source-line wikilinks no longer create nested wikilinks in the replacement link text.
|
||
- Thanks to @bgk0018 for reporting.
|
||
- (#1952) Fixed Pomodoro task picker search results so matching task titles are ranked and sorted ahead of due-date ordering.
|
||
- Thanks to @KFrancoD for reporting.
|
||
- (#1392, #1949) Fixed due and scheduled date picker fields so typed or pasted date edits stay open until you choose Select, including compact \`YYYYMMDD\` entry when a date is already set.
|
||
- Thanks to @kazerniel for reporting and following up.
|
||
- (#982, #1947) Restored larger mobile task-card typography and let secondary card icons wrap below the task details when they no longer fit comfortably on mobile.
|
||
- Thanks to @3zra47 for reporting the font-size regression, @chrsdk and @scottaltham-payroc for confirming the mobile font-size issue, and @Jomo94 for reporting the mobile card layout problem.
|
||
`});var BMe,UMe=y(()=>{BMe=`# TaskNotes 4.9.1
|
||
|
||
## Added
|
||
|
||
- (#1885) Added Shift+arrow keyboard range selection while bulk task selection mode is active.
|
||
- Thanks to @chrabia for suggesting bulk selection improvements and @sumiyalairu03 for the keyboard selection idea.
|
||
|
||
## Fixed
|
||
|
||
- (#781, #1085) Fixed Outlook-published ICS calendar events appearing at the wrong time when their feed used Windows timezone names without matching timezone definitions.
|
||
- Thanks to @chrlaney for reporting and @mjkrasny for confirming the Outlook timezone case.
|
||
- (#1696) Fixed Google Calendar export for scheduled recurring tasks when a single occurrence is moved to a different date.
|
||
- Keeps the recurring master event on its original rule, excludes the original occurrence date, and syncs the moved occurrence as a detached event.
|
||
- Thanks to @martin-forge for reporting and contributing the fix.
|
||
- (#1912) Fixed "Create subtask" inserting the full path of the parent task in the Projects field instead of using the normal Obsidian link text.
|
||
- Thanks to @pkuehne for reporting and @benmartinek for confirming.
|
||
- (#1921) Fixed Google Calendar and auto-archive updates not running after direct task file edits.
|
||
- TaskNotes now picks up status, completion, and date changes made directly in a task file without triggering a large one-time Google Calendar rewrite at startup.
|
||
- Recovery also removes stale Google Calendar links when task files were deleted or replaced outside TaskNotes.
|
||
- Thanks to @martin-forge for reporting and contributing the fix.
|
||
- (#1938) Fixed partial HTTP API task updates rewriting native tags with \`#\` prefixes or duplicate task tags.
|
||
- Thanks to @joseluisgonzalezdelgado-ctrl for reporting.
|
||
- (#1939) Fixed the task Details field rendering as a small nested textarea when the embedded editor falls back.
|
||
- Thanks to @g-arthurvanderbilt for reporting and @cookbr for confirming the desktop impact.
|
||
- Fixed tag and modal preview edge cases found during validation: double-hash tags no longer match the task tag, empty tag lists stay empty when read back, and natural-language previews remain visible when enabled.
|
||
- (#1941) Fixed mobile Kanban boards scrolling the whole board vertically instead of keeping each list independently scrollable.
|
||
- Thanks to @pxxush for reporting.
|
||
- (#1943) Fixed MCP task-query tool instructions so filter operators match the operators TaskNotes actually accepts.
|
||
- Thanks to @jordankbartos for reporting and proposing a fix in #1944.
|
||
- (#1945) Fixed Google Calendar export so overlapping sync services do not create duplicate events for the same task while the saved event ID is still catching up.
|
||
- Thanks to @martin-forge for reporting and contributing the fix.
|
||
- (#1946) Fixed the bottom task in virtualized Task List Bases being partially hidden behind Obsidian's mobile bottom bar.
|
||
- Thanks to @3zra47 for reporting.
|
||
- (#1947) Fixed mobile Task List cards with left-positioned subtask chevrons so the chevron remains visible and project/detail badges stay on the main row.
|
||
- Thanks to @Jomo94 for reporting.
|
||
- (#1948) Fixed Agenda Calendar Bases so completed recurring instances can appear on their recorded completion dates, even when recurring task projections are hidden or the completion date is outside the recurrence pattern.
|
||
- Thanks to @Jomo94 for reporting.
|
||
`});var HMe,VMe=y(()=>{HMe=`# TaskNotes 4.9.0
|
||
|
||
## Security
|
||
|
||
- (#1923) Restricted the HTTP API server to loopback and limited browser CORS access to loopback origins.
|
||
- Thanks to @martin-forge for reporting.
|
||
|
||
## Added
|
||
|
||
- (#1932) Added middle-click support for opening task cards in a new tab.
|
||
- Thanks to @imsuck for the request.
|
||
|
||
## Fixed
|
||
|
||
- (#1934) Fixed custom priority colors being overridden by default task-card priority styles in views.
|
||
- Thanks to @KittehBit for reporting.
|
||
- (#1933) Added the note path to fallback frontmatter parse warnings so malformed task YAML is easier to find.
|
||
- Thanks to @rayvermey for reporting.
|
||
- (#1931) Made the Pomodoro task chooser open from cached task data and ignore repeated clicks while it is already opening.
|
||
- Thanks to @sumiyalairu03 for reporting.
|
||
- (#1930) Fixed starting the Pomodoro timer from its hotkey without starting time tracking for the selected Pomodoro task.
|
||
- Thanks to @sumiyalairu03 for reporting.
|
||
- (#1929) Fixed the bottom Relationships widget overlapping embedded content such as Bases/Kanban views in task notes.
|
||
- Thanks to @rchaklashiya for reporting and following up with the embed case.
|
||
- (#1922) Restored the native color picker alongside manual color text entry in Create/Edit Timeblock fields.
|
||
- Thanks to @AndreMonthy for reporting.
|
||
- (#1921) Fixed direct frontmatter edits to lifecycle-relevant task fields not triggering Google Calendar sync or auto-archive side effects.
|
||
- Thanks to @martin-forge for reporting and verifying the direct-edit reproduction.
|
||
- (#1919) Fixed the Pomodoro view rapidly resizing at certain sidebar sizes.
|
||
- Thanks to @RumiaKitinari for reporting.
|
||
- (#1898, #1907) Fixed Calendar time labels shifting into the middle of Day and sidebar calendar grids after switching views.
|
||
- Thanks to @ddevaal for reporting and confirming the regression, and to @kmaustral for confirming the sidebar case in 4.8.1.
|
||
- (#1936) Added a Calendar Base drag/drop resolution option so events can snap to smaller increments than the visible time slot grid.
|
||
- Thanks to @benmartinek for suggesting this.
|
||
- Improved mobile task cards, inline widgets, modals, and settings layouts so dense controls and long labels fit more comfortably on small screens.
|
||
- (#1916) Fixed Markdown task links using Obsidian's generated filename label instead of the TaskNote title in the task link overlay.
|
||
- Thanks to @minchinweb for reporting.
|
||
- (#1911) Fixed recurrence choices starting from today instead of the selected calendar date when creating a task from Calendar view.
|
||
- Thanks to @mikhailmarka for reporting.
|
||
- (#1912) Fixed "Create subtask" pre-filling the parent task's full folder path in the Projects field instead of using the normal Obsidian link text.
|
||
- Thanks to @pkuehne for reporting and @benmartinek for confirming.
|
||
`});var qMe,WMe=y(()=>{qMe=`# TaskNotes 4.8.1
|
||
|
||
## Fixed
|
||
|
||
- (#1903) Improved the Edit Task modal on iPhone-sized screens so opening a task no longer automatically focuses the title field, and the mobile layout gives the title, fields, and action buttons more usable space.
|
||
- Thanks to @3zra47 for reporting the issue and sharing the screen recording.
|
||
- (#1909) Fixed compact Kanban task cards showing oversized status and priority indicators on touch devices.
|
||
- Thanks to @pxxush for reporting the issue.
|
||
- (#1908) Restored newly generated Calendar Bases to show the full day by default and inherit the calendar start/end settings instead of hard-coding 06:00-22:00.
|
||
- Thanks to @AndreMonthy for the report.
|
||
- (#1907) Fixed calendar time labels drifting away from the left axis in narrow sidebar calendar views.
|
||
- Thanks to @kmaustral for reporting the issue.
|
||
- (#1906) Fixed NLP priority shortcuts leaving partial text in task titles when custom priority values include words like \`high\` or \`low\`.
|
||
- Thanks to @RumiaKitinari for reporting the issue.
|
||
- (#1904, #1905) Fixed long tags in task cards wrapping instead of forcing horizontal scrolling in TaskNotes Bases views and note cards.
|
||
- Long tag pills can now wrap across lines and break within very long tag names on narrow screens.
|
||
- Thanks to @3zra47 for reporting the issue and to @zhouzhou626 for the contribution.
|
||
- (#1901) Fixed the task context menu creating an \`undefined\` property when adding or removing tags.
|
||
- Hardened task property updates so invalid frontmatter property names are rejected instead of written.
|
||
- Thanks to @mgrecar for reporting the issue.
|
||
- (#1902) Fixed Markdown-style project links in task frontmatter not appearing as subtasks on project pages.
|
||
- Thanks to @minchinweb for reporting the issue.
|
||
|
||
## Changed
|
||
|
||
- Improved the internal structure around service notifications, vault writes, and shared utilities to make future fixes easier to test and maintain.
|
||
`});var YMe,GMe=y(()=>{YMe=`# TaskNotes 4.8.0
|
||
|
||
## Added
|
||
|
||
- (#353) Added a \`Has Subtasks\` filter for task queries, so views and API clients can show only project-style tasks or direct tasks. Thanks to @mdbraber for suggesting this.
|
||
- (#380) Added a test-reminder button in notification settings, so reminder setup can be checked without creating a real task reminder. Thanks to @mdbraber for suggesting this.
|
||
- (#711, #168) Added an optional task-creation setting to open the new task note after saving, either in the current tab or a new tab. Thanks to @phortx and @23426356587 for suggesting this, and to @edward-peters and @obsilover for the follow-up.
|
||
- (#1041, #1800) Added copy-drag support for timeblocks: hold Ctrl, Cmd, or Alt/Option while dragging an existing timeblock to duplicate it at the new date and time. Thanks to @0-BSCode and @cweekly for suggesting this.
|
||
- (#1052) Added a public JavaScript API for in-vault scripts at \`app.plugins.plugins.tasknotes.api.parseNaturalLanguage(text)\`, so Templater, QuickAdd, and MetaBind workflows can use TaskNotes' natural-language parser without running the HTTP API. Thanks to @edakimling for suggesting this.
|
||
- (#1235) Added a task-card toggle for blocked tasks, so you can expand a blocked task to see the tasks it is waiting on. Thanks to @craziedde for suggesting this.
|
||
- (#1254) Added \`../\` and \`./\` normalization for folder templates after variables are expanded, so instant task conversion can target sibling folders such as \`{{currentNotePath}}/../Tasks\`. Thanks to @rdick for suggesting this.
|
||
- (#1267) Added Daily Notes-style date tokens such as \`YYYY\`, \`MM\`, \`DD\`, \`MMMM\`, and \`dddd\` to TaskNotes folder templates. Thanks to @paulsen-it for suggesting this.
|
||
- (#1380) Added tag actions to task context menus, including add/remove actions for individual tasks and batch-selected tasks. Thanks to @Chuhtra for suggesting this.
|
||
- (#1377) Added right-click Mini Calendar actions for opening daily notes from day cells and weekly notes from week numbers. Thanks to @hasanyilmaz for suggesting this.
|
||
- (#1151) Added a Mini Calendar max color note count option, so one-note days can use the strongest heatmap color when that better fits the view. Thanks to @arreme for suggesting this.
|
||
- (#1376) Added backslash escapes for NLP trigger tokens, so text like \`\\@context\`, \`\\*done\`, or \`\\tomorrow\` can stay in the task title. Thanks to @JerryLu086 for suggesting this.
|
||
- (#1366) Added CSS variables for compacting nested task-card indentation, with smaller defaults on mobile and documented snippets for tighter task-link lists. Thanks to @rk-kontur for suggesting this.
|
||
- (#1502, #603) Added calendar indicators for external events that have linked notes or tasks, and showed loaded event titles in task-card calendar metadata instead of only the linked event count. Thanks to @Robubble and @mdbraber for suggesting this, and to @ubidev for the follow-up.
|
||
- (#1522) Added a per-status option to skip rarely used statuses when cycling task-card status indicators. Thanks to @Glint-Eye for suggesting this.
|
||
- (#144) Added an "Open note in new tab" action to the task context menu. Thanks to @cathywu for suggesting this and @macbikegeek for the follow-up feedback.
|
||
- (#167) Added an optional next-status override for each status, so forward cycling can jump to a configured status instead of always following the status order. Thanks to @DanBrazelton for suggesting this, and to @michelebugio, @Moyf, @anareaty, and @vorrermid for the follow-up feedback.
|
||
- (#1520) Made tag and context fields show available suggestions as soon as the field is focused. Thanks to @Glint-Eye for suggesting this, and to @craziedde for the follow-up.
|
||
- (#1541) Added \`{{currentNotePath}}\` and \`{{currentNoteTitle}}\` support to the default tasks folder, so normal task creation can place new tasks beside the active note without creating an inline link. Thanks to @ChristianAnyanwu for suggesting this, and to @abbasou and @ttlaylor for the follow-up feedback.
|
||
- (#648, #1605) Added clickable links in task-card contexts for note links, markdown links, and web URLs while keeping plain contexts as tag-search buttons. Thanks to @trdischat and @Glint-Eye for suggesting this, and to @renatomen for the follow-up feedback.
|
||
- (#1482) Added clickable custom-field links on task cards for wikilinks, markdown links, autolinks, and bare web URLs. Thanks to @ptbosch-figueiredorj for suggesting this, and to @Soleone for the follow-up use case.
|
||
- (#1471) Added Kanban column and swimlane-cell add buttons that open the TaskNotes creation modal with the grouped values already filled in. Thanks to @byheaven for suggesting this and @Davincible for the project-board use case.
|
||
- (#933) Added non-Markdown vault files such as canvases to project suggestions, using extension-qualified link targets so those files can be selected as task projects. Thanks to @Alvin21Bon for suggesting this.
|
||
- (#1475, #725) Added quote/backtick escapes for NLP input, so literal course codes or date words can stay in task titles without being parsed as estimates or dates. Thanks to @RumiaKitinari and @gavingwebb for suggesting this.
|
||
- (#1462) Added natural-language date entry to the task date picker, so existing due and scheduled dates can be changed with phrases such as "tomorrow at 3pm" when NLP is enabled. Thanks to @Ruboks-Cube for suggesting this.
|
||
- (#1526) Added a native date field to the task date picker, so scheduled and due dates can be changed with the device date picker while keeping optional times visible. Thanks to @jmartinmcfly for suggesting this and @23426356587 for the follow-up feedback.
|
||
- (#1603) Added Calendar view toggles for hiding completed or skipped recurring task instances while keeping future outstanding instances visible. Thanks to @wandererovertheseaofpiss for suggesting this.
|
||
- (#287, #273, #274) Added linked hover highlighting for Calendar and Agenda events that come from the same task note, so scheduled, due, and recurring entries are easier to connect. Thanks to @girisumit for suggesting this.
|
||
- (#280) Added project-specific CSS hooks to task cards and Calendar events, so project-based visual styling can be handled with user snippets. Thanks to @girisumit for suggesting this.
|
||
- (#1625) Added \`Shift\` + \`Cmd\`/\`Ctrl\` + \`Enter\` in the Create Task modal to save the current task and reopen the modal for the next one. Thanks to @tcb678 for suggesting this.
|
||
- (#1353) Focused the Create Task modal's natural-language input when the modal opens, with a longer mobile delay so the keyboard can open after layout. Thanks to @GiovanH for suggesting this.
|
||
- (#1664) Added project-based custom filename template variables, including the first project, all projects, and a short \`projectId\`. Thanks to @bendavis987 for the contribution.
|
||
- (#923) Added \`{{projectFilePath}}\` and \`{{projectFilePaths}}\` folder template variables, so task folders can mirror project note locations in the vault. Thanks to @PacoTaco2 for suggesting this.
|
||
- (#1697) Added cached Google Calendar, Microsoft Calendar, and ICS events to Mini Calendar days, with compact colored dots and event details from the existing calendar connection. Thanks to @RPGArchivist for suggesting this.
|
||
- (#1754) Added optional icons for priority values, so task cards can show a configured priority icon instead of only a colored dot. Thanks to @BrucePlumb for suggesting this and @prepare4robots for the follow-up feedback.
|
||
- (#1761) Added TaskNotes edit and task-action submenu entries to Obsidian's native file context menu for recognized task notes. Thanks to @delzero for suggesting this.
|
||
- (#1771) Added mobile drag handles to manually sorted Task List Bases views, so dragging can start from the handle without disabling normal text interaction on the rest of the card. Thanks to @PatrickGolz for suggesting this.
|
||
- (#1776) Allowed calendar timeline end times after midnight, such as \`26:00\` for a 2 AM next-day end. Thanks to @chrabia for suggesting this.
|
||
- (#1784, #1833) Added a per-view \`pinnedColumns\` option for TaskNotes Kanban views, so selected empty columns can stay visible as drop targets while other empty columns remain hidden. Thanks to @loukandr for suggesting and prototyping this.
|
||
- (#1794) Added context updates to the task card context menu, so contexts can be added, toggled, or cleared without opening the task edit modal. Thanks to @m13ntrpn for suggesting this.
|
||
- (#315, #1356, #1748, #1809) Added a subtle task-card indicator and CSS hooks for tasks with note body details, including existing task bodies read through Obsidian's metadata cache. Thanks to @volodxyz, @Karut, @yeHHH1g, and @aliceinwaterdeep for suggesting this, and to @minchinweb for the follow-up.
|
||
- (#1808) Added advanced Kanban swimlane ordering through \`swimLaneOrder\`, so swimlane rows can stay in a stable configured order. Thanks to @rookledookle for suggesting this, and to @benmartinek and @chrabia for the follow-up feedback.
|
||
- (#1805) Added an ICS export option to omit completed tasks from generated calendar files. Thanks to @bepolymathe for suggesting this.
|
||
- (#659) Added Obsidian links to ICS export descriptions, so exported calendar events can open their source task notes. Thanks to @bepolymathe for suggesting this.
|
||
- (#589) Added an Appearance toggle to turn off strikethrough styling on completed task card titles. Thanks to @BrucePlumb for suggesting this.
|
||
- (#561) Added a "Last day" option to the custom recurrence month-day picker for month-end repeating tasks. Thanks to @TonyAtlas for suggesting this and @BrucePlumb for the follow-up.
|
||
- (#217) Added weekday selection to daily custom recurrence rules, so interval rules such as every three days can skip weekends from the recurrence modal. Thanks to @kmaustral for suggesting this.
|
||
- (#1818) Added an auto-height mode for TaskNotes Calendar Bases views so embedded agenda/list sections can size to their content instead of forcing an inner scroller. Thanks to @martin-forge for suggesting this.
|
||
- (#1201) Added a Calendar Bases toggle to hide the hourly breakdown in week, custom-days, and day views while keeping the all-day planning row visible. Thanks to @PacoTaco2 for suggesting this.
|
||
- (#1176) Added advanced Kanban WIP limits through \`wipLimits\`, so column headers can show \`(current/limit)\` counts and highlight exceeded limits. Thanks to @williamcheuk03 for suggesting this.
|
||
- (#914) Added a generated \`Due in\` countdown to the default Agenda Base and allowed Calendar Bases list agendas to span up to 365 days. Thanks to @williamcheuk03 for suggesting this.
|
||
- (#900) Added an instant-conversion setting to keep the original Markdown checkbox marker when converting a checkbox into a TaskNote link. Thanks to @dsebastien for suggesting this.
|
||
- (#898) Added a mobile-only calendar integration opt-out, so synced desktop calendar settings no longer have to trigger external calendar loading on Obsidian Mobile. Thanks to @cathywu for suggesting this.
|
||
- (#887) Added built-in scheduled and due date presets to the Quick actions palette for current tasks. Thanks to @willgraham345 for suggesting this and @anrie for the related preset feedback.
|
||
- (#819) Added a command to open Quick actions for the inline task link under the cursor. Thanks to @rlolingo for suggesting this.
|
||
- (#798, #1732, #1835) Added hotkeyable commands to edit the current task, add a project to the current task, and add an existing task as a subtask of the current note. Thanks to @xorander00 and @prepare4robots for requesting this, and to @musta-code and @ubidev for the follow-up suggestions.
|
||
- (#791) Added a UUID v4 task filename format and \`{{uuid}}\` custom filename template variable. Thanks to @bangbangbanggit for suggesting this.
|
||
- (#932) Added hotkeyable commands to cycle the current task's status and priority. Thanks to @rxunique for suggesting this and @luckb0x for the follow-up feedback.
|
||
- (#1655) Added live elapsed time to the optional active time tracking status bar item. Thanks to @connradolisboa for suggesting this.
|
||
- (#1622) Allowed multiple comma-separated default reminder offsets for timed Google Calendar task exports. Thanks to @solidabstract for suggesting this.
|
||
- (#706, #820, #1040) Added direct Pomodoro duration editing, hour-aware timer formatting, clearer one-minute controls, and an optional active Pomodoro status bar countdown. Thanks to @SublunarSage, @lj1446615403-cloud, @0-BSCode, and @thestrike72 for the suggestions and feedback.
|
||
- (#873) Added an optional built-in sound for task reminder notifications, with volume and preview controls in Settings. Thanks to @berzernberg for suggesting this.
|
||
- Added a generated Pomodoro statistics Base with daily and monthly summary views for Pomodoro history stored in daily notes.
|
||
|
||
## Changed
|
||
|
||
- Expanded the bug report template to ask for Obsidian "Show debug info" output, affected task frontmatter, relevant Bases file contents, reproduction steps, and related logs or screenshots.
|
||
- Release notes now show the default \`.base\` file regeneration reminder only on the current version section, keeping older bundled sections focused on their own changes.
|
||
- Updated the release notes GitHub prompt to invite feedback while still asking satisfied users to star the project.
|
||
- (#239) Ordered Kanban status and priority columns by the configured status order and priority weights when no manual column order is saved. Thanks to @ScumbagScalawag for asking about this, and to @nightroman, @lavir, and @elvarb for the follow-up discussion.
|
||
- (#269) Marked Kanban status columns that come from values outside the configured TaskNotes statuses, so manually edited or external status values are visible as non-standard instead of blending into the board. Thanks to @cstelmach for suggesting this and @digitaldoctors for the follow-up.
|
||
- Refined Kanban empty columns, swimlane rows, and column drag handles, and added a per-view compact card layout option for denser boards.
|
||
- Kept Kanban swimlane rows from shrinking to share the viewport so the Max Swimlane Height setting is respected.
|
||
- Added guidance in Pomodoro statistics and Base file settings explaining that Pomodoro Base views require daily notes storage.
|
||
- (#323) Reordered task modal action buttons to match the right-click task menu order. Thanks to @23426356587 for suggesting this.
|
||
- (#1189) Made the Create/Edit Task modal priority picker follow the priority order configured in Settings. Thanks to @n1njaznutz for suggesting this.
|
||
- Made task-card priority dots and configured priority icons slightly larger for better visibility.
|
||
- (#1244) Clarified the Task Properties documentation for custom property keys and status values in Bases filters and sorting. Thanks to @Arachnidai for suggesting this.
|
||
- (#1234) Kept right-aligned subtask chevrons visible on task cards instead of only showing them on hover. Thanks to @n1njaznutz for suggesting this.
|
||
- (#1237) Made today's date more visible in the Mini Calendar view when another day is selected. Thanks to @riekusr for suggesting this.
|
||
- (#1348) Let long task titles wrap inside the Create/Edit Task modal title field while keeping saved titles single-line, and widened the contexts and tags fields in the modal details area. Thanks to @hasanyilmaz for suggesting this.
|
||
- (#1392) Made TaskNotes date fields accept compact \`YYYYMMDD\` typing and pasted dates. Thanks to @kazerniel for suggesting this.
|
||
- (#1431) Showed the year on task-card due and scheduled dates when the date is outside the current year. Thanks to @kazerniel for suggesting this.
|
||
- (#1429) Opened TaskNotes view commands in a new tab when they load configured Base files, so they do not replace the active note. Thanks to @Ruboks-Cube for suggesting this.
|
||
- (#1426) Added copy actions for TaskNotes Bases views, including current-view filenames, links, and titles from the result count menu, plus selected-task copy actions in the batch menu, while keeping the native Bases copy and CSV export actions available. Thanks to @kmaustral for suggesting this.
|
||
- Improved keyboard access, mobile layout, and theme color consistency across task cards, TaskNotes Kanban, Bases Kanban, calendar controls, stats, settings, and filter popovers.
|
||
- (#1526) Made the Create/Edit Task modal due and scheduled date buttons open a calendar-first picker where clicking a date saves immediately, with time entry still available in the picker. Thanks to @jmartinmcfly for suggesting this and @23426356587 for the follow-up feedback.
|
||
- (#1642) Made completion-based custom recurrence use flexible weekly, monthly, and yearly intervals without forcing a fixed weekday, month day, or month. Thanks to @Volker-brdb for suggesting this.
|
||
- (#1724) Moved recurring task complete/skip instance actions into the date area of the task context menu. Thanks to @prepare4robots for suggesting this.
|
||
- (#1762) Used the configured Google Calendar task export target as the default calendar when creating manual external calendar events. Thanks to @chrabia for suggesting this.
|
||
- (#1774) Made expandable project chevrons visible and easier to tap on mobile. Thanks to @sh0nuff for suggesting this.
|
||
- (#190) Made task-card and inline task-link action controls easier to tap on mobile, including always-visible task options on touch layouts. Thanks to @Poly-0000 for suggesting this.
|
||
- (#518, #1710, #1785) Added an opt-in setting for Create subtask to inherit the parent task's projects, contexts, priority, and non-identifying tags while always keeping the parent-task project link. Thanks to @bepolymathe, @Jalpara, and @poulpoulsen for reporting this, and to @tomsymonds, @AndyEveritt, @wedgen, @lindsaylearns, and @hokfujow for the follow-up feedback.
|
||
- (#1790) Extended the identifying-tag hiding setting to task modal tag suggestions, and kept hidden identifying tag children in place when editing other tags. Thanks to @loukandr for suggesting this.
|
||
- (#1804) Made the inline-created task folder setting visible even when instant conversion is disabled, and clarified that leaving it empty uses the default tasks folder. Thanks to @CaFeZn for suggesting this.
|
||
- (#1822) Matched the Task Edit Modal subtask list order to the existing relationship sort, so active and higher-priority subtasks appear ahead of completed ones. Thanks to @Glint-Eye for suggesting this.
|
||
- (#1233, #1339) Added an Appearance setting to expand project subtasks by default in task cards, while still letting individual cards be collapsed. Thanks to @n1njaznutz and @hasanyilmaz for suggesting this and @kazerniel and @benmartinek for the follow-up.
|
||
- (#763) Made the Relationships widget appear on project notes that match Project Autosuggest tag or property filters, even before any tasks link to the project. Thanks to @ChadHattabaugh for suggesting this.
|
||
- (#732) Remembered the Task & Project Statistics filters between openings, including the selected date range, custom dates, and minimum time filter. Thanks to @RumiaKitinari for suggesting this.
|
||
- (#1335) Added optional default times for new task scheduled and due dates, so default-dated tasks can appear as timed calendar events instead of all-day events. Thanks to @echo-saurav for suggesting this.
|
||
- (#1327) Made TaskNotes Bases search match any word in a multi-word search instead of requiring the whole phrase. Thanks to @craziedde for suggesting this.
|
||
- (#1318) Made aliased inline task links use the alias text inside the task widget, so \`[[Task title|short label]]\` can display as \`short label\`. Thanks to @3zra47 for suggesting this and @kazerniel for the follow-up.
|
||
- (#1325) Added \`./\` and \`../\` support to Include folders filters for project and file autosuggest, resolved from the active note's folder. Thanks to @EpolPers for suggesting this.
|
||
- (#1313) Added generated \`llms.txt\` and \`llms-full.txt\` files to the documentation site, so the primary docs can be shared with LLM tools more easily. Thanks to @JacksonMcDonaldDev for suggesting this.
|
||
- (#1308) Added a Calendar view option to stop date links from creating missing daily notes, while still opening existing daily notes. Thanks to @Arachnidai for suggesting this.
|
||
- (#1300) Allowed priority, status, calendar subscription, and timeblock color settings to use Obsidian theme color names such as \`red\`, \`blue\`, and \`cyan\`. Thanks to @thestrike72 for suggesting this.
|
||
- (#1299) Added a command that creates or opens a task and immediately starts time tracking for it. Thanks to @slipstyle for suggesting this.
|
||
- (#1284) Added an exact-match option for hiding task identification tags, so \`#task\` can be hidden while nested tags such as \`#task/project\` remain visible. Thanks to @3zra47 for suggesting this.
|
||
- (#1009) Added a confirmed Delete button to the Edit Task modal, so unwanted task notes can be removed without first opening the note file. Thanks to @jalooc for suggesting this.
|
||
- Improved the internal structure of Calendar, Kanban, Bases, task cards, and task modals to make future changes easier to test and maintain.
|
||
|
||
## Fixed
|
||
|
||
- (#697, #1374) Recognized manually authored task notes that use a single scalar tag such as \`tags: task\`, so they appear in TaskNotes views and menus like notes using YAML list tags. Thanks to @aubreyz and @phortx for reporting this, and to @jleewastaken for the follow-up.
|
||
- Removed the upward hover shift from calendar events while keeping the hover shadow feedback.
|
||
- Made same-column manual-order drops in TaskNotes Kanban settle immediately when the local order patch is safe, including virtual columns through a stable reorder path that avoids layout jumps.
|
||
- Made single-card cross-column drops in TaskNotes Kanban settle through a local state patch when the move is safe, reducing the wait for the full Bases refresh.
|
||
- Fixed Calendar timeblocks created from a selected time range so they appear as soon as Obsidian indexes the daily note update, instead of waiting for a later refresh.
|
||
- Replaced the external calendar event emoji marker with the calendar icon and kept it in the same top-right event corner.
|
||
- Restored Task List group toggles and recurring calendar month controls to compact icon buttons instead of inherited boxed theme buttons.
|
||
- Refined the settings tab navigation styling so tabs read as quieter inline navigation instead of default buttons.
|
||
- (#263) Made the instant inline task conversion button respond to touch/pointer activation, so mobile multi-line selections can be converted into TaskNotes. Thanks to @cathywu for reporting this.
|
||
- (#216) Preserved \`@context\` markers when converting Tasks-plugin-style checkbox tasks into TaskNotes, while keeping those contexts out of the created task title. Thanks to @ksdavidc for suggesting this, and to @hangryscribe3, @nayatiuh, and @natleahh for the follow-up feedback.
|
||
- (#508) Showed project note names instead of full project paths in grouped Kanban and Task List headings, while keeping the headings linked to the project note. Thanks to @elvarb for reporting this and @dmodify for confirming it in Task List.
|
||
- (#408) Used the task title as the native system notification title for task reminders instead of always showing \`TaskNotes Reminder\`. Thanks to @DudeThatsErin for reporting this and @phillipadsmith for the follow-up.
|
||
- (#385) Let Mini Calendar month controls shrink and wrap cleanly in narrow sidebars. Thanks to @iholston for reporting this.
|
||
- Fixed Calendar List view task cards so they use the available row width without duplicate list cells, row-hover backgrounds, or linked-hover styling.
|
||
- (#552) Made instant task convert buttons appear for checkbox tasks inside callouts, and kept converted links inside the callout list. Thanks to @Oblique82 for reporting this and @ksdavidc for the follow-up.
|
||
- (#559) Treated notes linked to one loaded recurring calendar event instance as related to the other instances in that series. Thanks to @cathywu for reporting this and @mdbraber for the implementation notes.
|
||
- (#685) Made Calendar list views respect the All-day slot option by hiding all-day events from the list when that option is turned off. Thanks to @RumiaKitinari for reporting this.
|
||
- (#643) Stopped custom filename templates such as \`task-{year}{month}{day}{hour}{minute}\` from incorrectly showing the "filename shortened" notice when creating tasks. Thanks to @minchinweb for reporting this.
|
||
- (#722) Made Skip Break reset a queued Pomodoro break back to the next focus timer without starting a session. Thanks to @Goossiii for reporting this and @YIRU69 for the follow-up.
|
||
- (#782) Made recurrence weekday choices follow the configured first day of week, and made the quick "Weekdays only" recurrence use locale weekend data instead of assuming Monday through Friday everywhere. Thanks to @BKSalman for reporting this.
|
||
- (#872) Made note-level task cards appear immediately, and stay visible while editing, when a task note is embedded as a Canvas file node. Thanks to @bangbangbanggit for reporting this and @benmartinek for the follow-up.
|
||
- (#856) Fixed filters for number custom fields so numeric task values match equivalent filter values entered as text. Thanks to @thoughtcipher for reporting this.
|
||
- (#1039) Restored clearer TaskNotes Bases grouping for nested project paths, and made the Calendar refresh control an icon button again. Thanks to @dblinnikov for reporting this.
|
||
- (#1034) Let embedded TaskNotes Calendar views size to their content by default, so month, week, and day embeds no longer reserve full-pane proportions inside notes. Thanks to @same774 for reporting this.
|
||
- (#1023) Kept task modal custom fields scrollable above the iPhone keyboard while creating or editing tasks. Thanks to @3zra47 for reporting this.
|
||
- (#1019) Kept active Pomodoro and time-tracking task references working after the tracked task file is renamed. Thanks to @AndreMonthy for reporting this.
|
||
- (#1037) Let embedded TaskNotes Calendar year views size to their content and kept the year title from wrapping vertically. Thanks to @same774 for reporting this.
|
||
- (#1047) Wrapped long file paths in the Edit Task modal metadata section, so narrow mobile screens no longer get a sideways scrollbar from the File row. Thanks to @3zra47 for reporting this.
|
||
- (#1051) Preserved extra values on a property-based task identification field when saving a task, so list properties such as \`class: [task, habit]\` no longer get collapsed to only the identifying value. Thanks to @WhoIsSeanGalt for reporting this.
|
||
- (#1060) Reused and revealed an already-open Calendar/Base view when running view commands, so a view kept in the sidebar no longer reopens in a new main tab. Thanks to @kmaustral for reporting this.
|
||
- (#1075) Hid the native WebKit date-input label that could appear as \`Label\` when editing scheduled dates on macOS. Thanks to @3zra47 for reporting this.
|
||
- (#1076) Allowed timeblocks to end at midnight using \`00:00\`, and accepted \`24:00\` as an explicit end-of-day value in timeblock validation. Thanks to @skoove for reporting this and @gregor202 for the follow-up.
|
||
- (#1086) Fixed the Calendar \`+ more\` control in dark mode so expanded all-day task groups stay readable. Thanks to @same774 for reporting this.
|
||
- (#1100) Applied Advanced Calendar View search and title filters to the tasks used for calendar rendering, so filtering controls affect which tasks appear on the calendar. Thanks to @quiet-coder-io for reporting this.
|
||
- (#1147) Added a delete action for recent Pomodoro statistics sessions, so erroneous Pomodoro history can be removed without editing plugin storage or daily-note frontmatter manually. Thanks to @RumiaKitinari for reporting this and @BrucePlumb for the follow-up.
|
||
- (#1150) Kept recurring tasks' due dates visible in Calendar Bases views, and showed their scheduled date when recurrence instances are hidden. Thanks to @thomatino for reporting this and @BrucePlumb for the follow-up.
|
||
- (#1159) Softened Calendar time-entry styling so recorded time blocks no longer visually outweigh task events. Thanks to @hatespinach for reporting this.
|
||
- (#1191) Aligned the task-card and relationships widgets inside notes with Obsidian's editor margins, including readable-line-width layouts. Thanks to @minchinweb for reporting this.
|
||
- (#1183) Kept the Calendar create menu open after drag-selecting a time range, so the selected duration can be used when creating a task. Thanks to @randomness42 for reporting this.
|
||
- (#1179) Stopped Calendar Bases views from repainting after unrelated note updates when the visible calendar data has not changed. Thanks to @same774 for reporting this.
|
||
- (#1156) Kept property-based task identification through the \`tags\` property from rewriting task tags as a plain text value, and generated default Bases now use tag membership for that setting. Thanks to @seepage87 for the detailed migration report and @chrsdk for the follow-up.
|
||
- (#1232) Fixed generated Task List Base date filters so recurring tasks scheduled for today appear in the Today view, and today's completed recurring instances stay hidden. Thanks to @mvichosfm for reporting this and @ArthurGideon and @VarunNikam22 for the follow-up.
|
||
- (#1231) Fixed the generated Task List Base Overdue view so tasks with scheduled dates in the past appear alongside tasks with due dates in the past. Thanks to @Lorite for reporting this and @dictionarymouse for the follow-up.
|
||
- (#1228) Matched the task details editor's Markdown heading colors to the active Obsidian theme, including themes that customize heading colors. Thanks to @BrucePlumb for requesting this.
|
||
- (#1227) Refreshed the relationships widget when project references are indexed or updated so project notes can show related tasks automatically again. Thanks to @luckb0x for reporting this.
|
||
- (#1219) Fixed Kanban drags that start on an expanded subtask card so they move that subtask instead of dragging the parent card. Thanks to @craziedde for reporting this.
|
||
- (#990) Treated one-item status lists written by Obsidian Properties as the same status value in TaskNotes Kanban, so they no longer create duplicate columns. Thanks to @mlevison for reporting this.
|
||
- (#983) Let Agenda Calendar views wrap their header controls and task titles inside narrow sidebars, so Today and refresh controls and task icons remain visible without sideways scrolling. Thanks to @3zra47 for reporting this.
|
||
- (#982) Made TaskNotes task-card typography scale from Obsidian's text font size setting, so Bases and Agenda task text follows larger mobile font settings. Thanks to @3zra47 for suggesting this and @chrsdk and @scottaltham-payroc for the follow-up.
|
||
- (#966) Made reminder delete buttons larger and always visible on mobile, so reminders can be removed from the Manage All Reminders modal on iPad. Thanks to @PSG2017 for reporting this.
|
||
- (#964) Made Pomodoro and time-tracking task selection use the current recurring instance status, so a recurring task can still be selected after an earlier instance was completed. Thanks to @lomarcanys for reporting this.
|
||
- (#944) Preserved number and boolean custom field values when moving tasks between grouped Kanban or Task List columns, and when creating a task from a grouped Kanban column. Thanks to @thoughtcipher for reporting this.
|
||
- (#935) Fixed Task List priority sorting so descending order puts higher-weighted priorities first, and due dates are used before scheduled dates when priority values tie. Thanks to @Glint-Eye for reporting this and @kacoroski for the follow-up.
|
||
- (#922) Made the \`Blocked\` task-card pill expand the blocker tasks, and rendered \`blockedBy\` dependencies as clickable links when that property is shown on cards. Thanks to @prayidae for reporting this and following up.
|
||
- (#919) Fixed exported ICS task events so they use valid calendar event statuses and can be imported by stricter calendar apps. Thanks to @benoitjadinon for reporting this.
|
||
- (#1213) Fixed embedded Task List Bases in Obsidian pop-out windows so typing below the embed no longer leaves a large blank gap. Thanks to @same774 for reporting this.
|
||
- (#1243) Removed quoted multi-word custom field NLP expressions from created task titles after saving the custom field value. Thanks to @Arachnidai for reporting this.
|
||
- (#1252) Hardened the calendar-first task date picker for iPad taps so date buttons use direct touch manipulation. Thanks to @alxandrharris for reporting this.
|
||
- (#1261) Removed the extra Task List Base scrollbar when an embedded task list note is placed in a sidebar, while keeping normal embedded task lists scrollable in the main note area. Thanks to @cathywu for reporting this.
|
||
- (#1347) Lowered TaskNotes task-card tag CSS specificity so hierarchical tag colors from Obsidian themes and tag-color plugins can apply correctly. Thanks to @3Fish for reporting this.
|
||
- (#1374) Recognized status and priority labels entered through Obsidian Properties or Bases as their configured TaskNotes values. Thanks to @phortx for reporting this.
|
||
- (#1373) Parsed numeric natural-language dates with the configured calendar locale, so \`en-GB\` treats \`11/06/2026\` as 11 June instead of November 6, and \`YYYY/MM/DD\` works consistently. Thanks to @AleMunin for reporting this and @imsuck for the follow-up.
|
||
- (#1370) Prevented recurring task series from being queued for auto-archive when their parent status uses auto-archive, so ongoing recurring tasks are not moved away after completing an occurrence. Thanks to @Jomo94 for reporting this and @martin-forge for the follow-up discussion.
|
||
- (#1367) Made recurring task completion counts use the total expected instances for finite \`COUNT\` or \`UNTIL\` recurrences, and stopped showing a made-up percentage for unbounded recurrences. Thanks to @saurinni for reporting this.
|
||
- (#1365) Preserved email and other URI links from converted inline task titles by moving the original links into the new task body, and rendered \`message:\`/\`mailto:\` markdown links as external links in TaskNotes surfaces. Thanks to @phillipadsmith for reporting this and @hasanyilmaz for the follow-up.
|
||
- (#1350) Refreshed inline task widgets in Reading mode after task property edits, so changed dates and other visible properties no longer stay stale until the note is reopened. Thanks to @tmsbn for reporting this.
|
||
- (#1329) Pulled the relationships widget up to the end of the note content without removing its normal spacing, and kept that placement updated while editing and on load so it no longer covers the editor. Thanks to @Volker-brdb for reporting this.
|
||
- (#1326) Treated empty task frontmatter values as missing, so empty titles fall back to the filename and blank date, priority, and recurrence fields are ignored. Thanks to @craziedde for suggesting this.
|
||
- (#1316) Stopped stale Workspace state from overriding the configured Calendar view mode, so switching Workspaces no longer forces an old Day/Week/List choice over the view default. Thanks to @kmaustral for reporting this and following up.
|
||
- (#1302) Read task frontmatter directly from the task file when Obsidian has not indexed its metadata yet, so visible tasks can still be opened, updated, and selected instead of reporting "Task not found". Thanks to @WorldTeacher for reporting this and @Steven-AA for confirming it.
|
||
- Kept just-written task data available while Obsidian's metadata cache catches up, so immediate reads after task edits no longer briefly return stale values.
|
||
- (#1297) Made the Create or open task footer tappable, so mobile users can create the typed task without needing the Shift+Enter shortcut. Thanks to @slipstyle for reporting this.
|
||
- (#1288) Allowed formula properties to appear in Calendar property-based event start and end date selectors. Thanks to @hasanyilmaz for reporting this.
|
||
- Made TaskNotes Kanban drags show a lightweight held-card preview, so the dragged card remains easy to track while the source column opens the drop slot.
|
||
- (#1423) Refreshed TaskNotes Bases views when subtasks are deleted, so expanded project cards drop removed subtasks and stop showing project controls when the last subtask is gone. Thanks to @normenmueller for reporting this.
|
||
- (#1419) Kept custom user field name, key, and default-value edits in Task Properties settings when closing settings without first blurring the field. Thanks to @s33a for reporting this and @kacoroski for the follow-up.
|
||
- Reduced redundant settings writes by coalescing overlapping saves, so settings changes made in quick succession finish with the latest values without repeating every intermediate save cycle.
|
||
- (#1331, #1411) Made Agenda Calendar Bases respect the Base sort order within each day instead of falling back to alphabetical title order. Thanks to @bane73 and @ky1ejs for reporting this.
|
||
- (#1383) Made task modal markdown editors expose the active editor API expected by plugins such as Templater. Thanks to @tomsymonds for reporting this.
|
||
- Fixed the first-run Create/Edit Task modal so the default fields appear immediately after installing TaskNotes, without needing to open Modal Fields settings or restart Obsidian.
|
||
- (#1895) Restored the natural-language preview in the Create Task modal. Thanks to @ssonhub for reporting this.
|
||
- (#1898) Cleared stale Calendar time-axis column widths when switching views, so Day, Week, and 3-day views keep the time labels anchored on the left. Thanks to @ddevaal for reporting this.
|
||
- (#1439) Fixed generated Bases dependency filters so \`blockedBy\` entries stored as links, strings, or dependency objects are handled consistently in Not Blocked and Relationships views. Thanks to @prayidae for reporting this and following up.
|
||
- (#1435) Prevented malformed task dependency, status, or priority values from breaking the task context menu. Thanks to @23maverick23 for reporting this.
|
||
- (#1434) Kept older filename-titled tasks readable after turning off "Store title in filename" by falling back to the filename when a task has no usable title property. Thanks to @hujuDev for reporting this.
|
||
- (#1433) Made the Due date and Scheduled date weekday picker follow the configured first day of week. Thanks to @sandchipper for reporting this.
|
||
- (#1430) Showed custom user-field property keys in Modal Fields settings instead of internal field IDs. Thanks to @JerryLu086 for reporting this.
|
||
- (#1427) Fixed project autosuggest Required Tags filters so frontmatter tags parsed by Obsidian are handled the same way as direct tag-property filters. Thanks to @ProHaller for reporting this.
|
||
- (#1495) Added an Update default files action for generated Bases views, so task-tag or task-identification setting changes can refresh existing \`.base\` filters without deleting files manually. Thanks to @Liya430 for reporting this.
|
||
- (#1512) Prevented the split Create/Edit Task modal details pane from collapsing to a one-character-wide column under the Minimal theme. Thanks to @willfanguy for reporting this and sharing detailed CSS notes.
|
||
- (#1524) Fixed task-card font sizes shrinking when a Bases view is opened in an Obsidian pop-out window. Thanks to @Glint-Eye for reporting this.
|
||
- (#1535) Fixed the generated Relationships Base Subtasks filter so single project links do not trigger a Bases \`contains\` error. Thanks to @DanaKyle for reporting this.
|
||
- (#1102) Refreshed task cards when a task status is edited directly in Obsidian frontmatter, so the card no longer stays on the old status until it is clicked. Thanks to @Wayment9504 for reporting this.
|
||
- (#1105) Added an explicit Close action to the mobile task options menu, so iPhone users do not need to tap near the top system bar to dismiss it. Thanks to @J-R-Troutman for reporting this.
|
||
- (#1550) Prevented mobile Calendar event drags from opening the task context menu before the drag can begin. Thanks to @stil-sudo for suggesting this.
|
||
- (#1563) Removed duplicate entries from Calendar event related notes when the same linked file is also a TaskNote. Thanks to @VarunNikam22 for reporting this.
|
||
- (#1566) Rendered grouped multi-project values as individual links when a Bases group title contains multiple project links. Thanks to @ptsouchlos for suggesting this.
|
||
- (#1569) Allowed local ICS calendar paths inside the vault to be pasted as absolute filesystem paths, and showed a clearer error when the file is outside the vault. Thanks to @Photon89 for reporting this and following up.
|
||
- (#1584) Sanitized task-card status and priority class names, so custom values with spaces no longer create invalid CSS classes. Thanks to @omber for reporting this.
|
||
- (#1587) Stored dependencies added from the task context menu as wikilinks, matching the Edit Task modal. Thanks to @mgrecar for reporting this.
|
||
- (#1590) Clarified HTTP API task creation docs and OpenAPI schema for writable \`blockedBy\` dependencies, and marked \`blocking\` as a read-only derived relationship. Thanks to @hGriff0n for reporting this.
|
||
- (#1591) Added a startup guard that avoids saving default settings over an existing settings file if Obsidian temporarily returns no plugin data during an update. Thanks to @GGlider for reporting this.
|
||
- (#1593) Made the New button in TaskNotes Bases views open the TaskNotes create task modal again, so new tasks respect the configured default tasks folder. Thanks to @katlandreth for reporting this.
|
||
- (#1594) Made task cards inside recurring task notes complete the task's current scheduled occurrence instead of today's date when no calendar or view date is supplied. Thanks to @ngraham20 for reporting this.
|
||
- (#1601) Prevented overlapping Live Preview relationship-widget injections from leaving duplicate subtask/relationship sections in a note. Thanks to @wealthychef1 for reporting this and @benmartinek for confirming it.
|
||
- (#1610) Made expanded subtasks in TaskNotes Bases views follow the current view's sorted task order instead of a fixed fallback order. Thanks to @MrZzard for reporting this and @slipstyle for confirming it.
|
||
- (#1609) Restored scrolling in wide split-layout task edit modals when the form content is taller than the modal. Thanks to @3zra47 for reporting this.
|
||
- (#1614) Wrote unchecked boolean custom user-field defaults to new task frontmatter, including tasks created through instant conversion. Thanks to @kobalteule for reporting this.
|
||
- (#1611) Made generated default Bases urgency scores fall back safely when the next-date distance is missing. Thanks to @benoitjadinon for reporting this and suggesting the formula fix.
|
||
- (#1623) Honored "Store title in filename" across task creation and edits, so the mapped title property is omitted from frontmatter and stale title fields are removed on save. Thanks to @VenturaNotes for reporting this, and to @Ender367, @slipstyle, and @loukandr for confirming and tracing affected paths.
|
||
- (#1621) Made Kanban swimlane labels stop freezing on mobile and kept their label column compact, leaving more room for task cards while horizontally scrolling. Thanks to @karenchoe428 for reporting this.
|
||
- (#1615) Detected Obsidian custom multi-text properties exposed through \`widget: "multitext"\` as list properties, so Kanban can split those values into multiple columns. Thanks to @konton71 for reporting this.
|
||
- (#1626) Expanded recurring ICS subscription events through the one-year subscription window for high-frequency recurring calendars. Thanks to @pib for reporting this.
|
||
- (#1628) Refreshed Calendar Bases views promptly when switching between filtered Agenda views, so the previous view's task set does not stay visible until the delayed refresh. Thanks to @Lanalangz for reporting this.
|
||
- (#1629) Saved \`blockedBy\` dependencies selected in the Create Task modal. Thanks to @obsilover for reporting this.
|
||
- (#1634) Aligned custom status icons in inline tasks with the default inline status circle. Thanks to @ttlaylor for reporting this and @basbarten for confirming it.
|
||
- (#1636) Restored the active styling for the Calendar list-view toolbar button. Thanks to @vroablec for reporting this.
|
||
- (#1493, #1638) Kept task time tracking consistent when switching or clearing tasks during an active Pomodoro. Thanks to @ROS-SDN and @katonapng for reporting this, and to @anomatomato for confirming it.
|
||
- (#1639) Respected the aliased-link overlay exclusion in Reading mode even when the alias text matches the task title. Thanks to @MiracleXYZ for reporting this.
|
||
- Fixed actively tracked task cards so the blue time-tracking outline stays visible along the card edges.
|
||
- (#1657) Preserved Bases view defaults when creating tasks from the TaskNotes Kanban/List view New button, so project-scoped views can pass their project assignment into the create task modal. Thanks to @casualQuads122 for reporting this.
|
||
- (#728, #1831) Preserved frontmatter defaults supplied by Obsidian's Bases New action when opening the TaskNotes create task modal from custom Bases views, so filtered views can prefill matching tags, projects, contexts, and custom fields. Thanks to @DillPickle80 and @echo-saurav for suggesting this, and to @prayidae and @renatomen for the detailed follow-up.
|
||
- (#726) Added an instant-conversion option to use the closest heading above the converted line as a project, so checkbox tasks under project headings can inherit that project automatically. Thanks to @ghelton for suggesting this.
|
||
- (#1662) Preserved frontmatter from ICS event note templates when quoted event variables or Templater expressions are used. Thanks to @victorhg for reporting this.
|
||
- (#1663) Fixed Japanese and other Unicode tags on task cards so Kanban tag pills keep the same rounded styling as ASCII tags. Thanks to @kutty-1119 for reporting this.
|
||
- (#1649) Restored daily-note navigation from the Calendar Day view date header. Thanks to @BaccanoMob for reporting this.
|
||
- (#1648, #1665) Fixed the API endpoint list in Integrations settings so it uses the configured bearer token when API authentication is enabled, instead of reporting the running local server as inaccessible. Thanks to @npondel and @warm-july for reporting this.
|
||
- (#1668) Fixed the Create Task magic wand so NLP-triggered custom field values are copied into the custom property inputs before saving. Thanks to @hokfujow for reporting this.
|
||
- (#1669) Stopped the startup settings migration check from rewriting \`data.json\` just because saved calendar defaults are \`false\`, \`0\`, empty, or \`null\`, reducing unnecessary sync churn. Thanks to @thehyperadvisor for reporting this.
|
||
- (#1674) Improved the timeblock creation error when Daily Notes cannot read its configured folder, so the modal notice points to the Daily Notes core plugin settings instead of only logging the folder lookup failure. Thanks to @Ender367 for reporting this.
|
||
- (#1680) Fixed TaskNotes Calendar Bases options stored under \`options\`, so Agenda views respect \`showPropertyBasedEvents: false\` and no longer show duplicate property-based rows for the same task. Thanks to @xiaoyaozhu1991 for reporting this and @KondrotM for confirming it.
|
||
- (#1681) Reduced the cost of inline checkbox convert buttons by only scanning the visible editor range instead of the full document. Thanks to @en-ot for reporting this and @hokfujow for the follow-up.
|
||
- (#1689) Fixed task reminders added or rescheduled through direct frontmatter edits so the notification queue refreshes immediately and relative reminders recalculate from the latest task dates. Thanks to @garzonjav for reporting this.
|
||
- (#1693) Fixed generated default Bases formulas so empty due and scheduled dates are checked with \`.isEmpty()\` instead of date-field truthiness. Thanks to @benoitjadinon for reporting this.
|
||
- (#1702) Removed the forced bottom gap under TaskNotes custom Bases views, so calendar and other TaskNotes views can fill the available pane height. Thanks to @AudreyLooby for reporting this.
|
||
- (#1719) Fixed task cards in reading mode so Obsidian 1.12.x header changes no longer place the card above the title and properties or drop it after returning to a tab. Thanks to @tholbrook9 for reporting this and tracing the DOM change.
|
||
- (#1722) Saved the source note immediately after converting an inline checkbox task to a TaskNote, so Kanban views do not keep showing the stale inline task alongside the new task file. Thanks to @literallydope for reporting this and sharing screenshots.
|
||
- (#1750) Fixed generated default Bases filters for property-based task identification when the identifying property name contains spaces. Thanks to @Igorgro for reporting this.
|
||
- (#1745) Clarified the inline task documentation so \`Create new inline task\` is distinguished from current-line conversion. Thanks to @yvos for reporting the mismatch.
|
||
- (#1485) Stopped Google Calendar manual refresh from showing a success notice after token refresh or calendar-list failures. Thanks to @ebanDev for reporting this.
|
||
- (#1474) Made priority-based Kanban swimlanes follow the configured priority order instead of alphabetical task data order. Thanks to @kanzaki1201 for reporting this and @SoTHISIsFitness for the follow-up investigation.
|
||
- (#1470) Restored pointer cursors on TaskNotes interactive elements under Obsidian themes that set \`--cursor\` to the default cursor. Thanks to @TheFrostedDev for reporting this.
|
||
- (#1463) Documented the supported \`FilterQuery\` payload for \`POST /api/tasks/query\`, including context filtering examples and generated API schema details. Thanks to @tcb678 for reporting this and @soloidx for sharing a working query example.
|
||
- (#1464) Made \`context\` on \`GET /api/tasks\` follow the same filtering guidance as \`project\`, so the API now points clients to \`POST /api/tasks/query\` instead of ignoring the parameter. Thanks to @tcb678 for suggesting this.
|
||
- (#1457) Rendered scheduled-to-due calendar spans with scheduled times as daily timed events instead of moving them to the all-day section. Thanks to @atos2212-blip for reporting this and @rayvermey for confirming it.
|
||
- (#1450) Returned configured user fields in HTTP API task responses under \`customProperties\`, while keeping the configured frontmatter keys available on each task. Thanks to @Admorei for reporting this and @nschenone for the follow-up.
|
||
- (#1449) Let embedded Agenda views use auto-height sizing by default, so one-day list embeds no longer reserve a large empty calendar block. Thanks to @GlebYavorski for reporting this.
|
||
- (#1446) Kept custom Kanban columns from \`columnOrder\` available when they are empty, so \`hideEmptyColumns: false\` can show drop targets for custom grouped values. Thanks to @akhtsang for reporting this.
|
||
- (#1459) Avoided double "Failed to create task" prefixes in task creation error notices. Thanks to @Sineapple for reporting this, and to @slipstyle and @Stockemer for the follow-up investigation.
|
||
- (#1469) Fixed Convert current note to task so saving the untouched edit modal writes the task frontmatter instead of reporting no changes. Thanks to @slipstyle for reporting this, and to @jhoogeboom and @ngraham20 for confirming it.
|
||
- (#1466) Prefilled the current note as the project when creating a task from an embedded Subtasks/Relationships Base filtered with \`this.file.asLink()\`. Thanks to @jhoogeboom for reporting this, and to @cybersader, @fsmontenegro, and @benmartinek for the follow-up discussion.
|
||
- (#1476) Showed linked parent-task project titles instead of timestamp filenames in project stats and grouped task views when the linked task has a frontmatter title. Thanks to @RumiaKitinari for reporting this.
|
||
- (#1487) Let Calendar task event titles wrap instead of clipping long names, and removed the redundant due-date prefix from due task events. Thanks to @Alexander-Bergmann for reporting this.
|
||
- (#1488, #1739) Enabled Kanban touch dragging on touch-capable desktop and convertible devices, not only mobile Obsidian. Thanks to @tmoyland001 and @mgsima for reporting the drag failures, and @SoTHISIsFitness for investigating related task-property cases.
|
||
- (#1738) Fixed Outlook calendar subscriptions whose event timezones reference the base Windows timezone name while the feed defines a suffixed timezone name. Thanks to @Mirrimo for reporting this, @rafavital for confirming it, and @rogerfsh for tracing the ICS timezone mismatch.
|
||
- (#1734) Fixed dependency picker search when task priority values are stored as non-string frontmatter values. Thanks to @MatthewClarkeDev for reporting this and identifying the stack trace.
|
||
- (#1733) Preserved wikilinks in task titles and rendered them as clickable links on task cards. Thanks to @bitscorch for suggesting this.
|
||
- (#1728) Applied the "Use parent note as project" default when creating a new task from the command palette or ribbon. Thanks to @greatEmily for reporting this.
|
||
- (#1759) Advanced stale due dates when recurring tasks move to their next scheduled occurrence, so work-window tasks do not remain overdue after completion. Thanks to @MattPryze for reporting this.
|
||
- (#1766) Fixed Calendar Bases date navigation from custom note properties, so embedded calendar views can open on the date stored in the selected property instead of falling back to today. Thanks to @chrabia for reporting this.
|
||
- (#1767) Aligned the start and end time rows in the timeblock creation modal. Thanks to @loiveli for reporting this.
|
||
- (#1783) Replaced the default browser drag ghost for Kanban cards so dragging a card no longer makes the next card look semi-transparent. Thanks to @loukandr for reporting this and tracing the drag image behavior.
|
||
- (#1796) Restored expanded subtasks immediately after renaming a parent task file and updating links. Thanks to @bung69 for reporting this.
|
||
- (#1797) Improved manual ordering so long Kanban columns remain scrollable while dragging, mobile Kanban drops can place a card relative to another card, Kanban/Task List drops resolve the final drop position more reliably, generated manual-order ranks match Bases sorting, and manual-order properties such as \`sort_order\` render on task cards when enabled. Thanks to @SKIERZZ for reporting this and sharing videos.
|
||
- (#1812) Separated Microsoft OAuth token status from calendar sync status, and surfaced Microsoft calendar fetch errors in the integrations settings card instead of leaving them console-only. Thanks to @henninger80 for the detailed report.
|
||
- (#1814) Restored NLP project autosuggest in the Create or Open Task command, so \`+\` project suggestions use the same filtered project lookup as the Create Task modal. Thanks to @adammahad for reporting this.
|
||
- (#1820) Kept API-created tasks readable immediately after creation even if Obsidian has not finished indexing the new file metadata yet. Thanks to @vadminas for reporting and tracing the cache desync.
|
||
- (#1823) Prevented zero-duration timed external calendar events from rendering under more than one day in list-style calendar views. Thanks to @martin-forge for reporting and tracing the Google Calendar case.
|
||
- (#1841) Prevented Kanban boards from duplicating columns when wikilinked status values are grouped through Bases. Thanks to @lendamico for reporting and sharing the screen recording.
|
||
- (#1846) Saved NLP-triggered boolean custom fields as real booleans instead of quoted strings, so they match checkbox-created values and Bases filters. Thanks to @DevOps-Toast for reporting and sharing screenshots.
|
||
- (#1849) Prevented repeated clicks on task-card scheduled and due date labels from stacking duplicate date menus when Obsidian native menus are disabled. Thanks to @3zra47 for reporting.
|
||
- (#1850) Added mobile bottom spacing to TaskNotes list views so the final task can scroll above Obsidian's floating mobile controls. Thanks to @AlejandroRigau for reporting and sharing the iPhone screenshot.
|
||
- (#1852) Improved mobile timed calendar event rendering with shorter time labels, tighter spacing, and event-colored task/calendar blocks. Thanks to @redrumthebum for reporting and sharing screenshots.
|
||
- (#1757, #1853, #1775) Respected an existing \`mdbase.yaml\` \`types_folder\` when regenerating mdbase task type definitions, so the generated \`task.md\` can live outside the vault-root \`_types\` folder. Thanks to @aldrichtr for the original request and implementation exploration, and @hangryscribe3 for the follow-up request.
|
||
- (#1858) Included task body details in single-task HTTP API and MCP reads. Thanks to @vanillaflava for reporting and outlining the expected behavior.
|
||
- (#1859) Clarified the Google Calendar setup guide for OAuth testing-mode \`access_denied\` errors. Thanks to @PE-Boy for reporting and @tiagoarroz for the workaround.
|
||
- (#1860) Preserved accented characters in tags when converting checkbox tasks to TaskNotes. Thanks to @e-zz for reporting.
|
||
- (#1869) Preserved Calendar Month View scroll position after task updates. Thanks to @sisyowo for reporting and linking the earlier Kanban fix.
|
||
- (#1873) Prevented Calendar Bases from rendering in Obsidian pop-out windows because restoring FullCalendar there can freeze Obsidian. Thanks to @misolex for reporting.
|
||
- (#1497, #1870) Fixed NLP file suggestions for custom fields so selected wikilinks are captured as custom field values, including list-type fields. Thanks to @Naesue and @Sineapple for reporting this, and to @bradleyed and @Xananax for the follow-up details.
|
||
- (#1888) Allowed project autosuggest required property filters to match any comma-separated value, such as \`project, area\`. Thanks to @BrianHicks for suggesting.
|
||
- (#1886) Added a command to postpone active overdue scheduled tasks to today. Thanks to @chrabia for the suggestion.
|
||
- (#1889) Fixed Kanban swimlanes for list-valued properties so tags and contexts use individual list items instead of comma-joined values. Thanks to @pkropotin for reporting.
|
||
- (#1890) Fixed scheduled-date Kanban columns dropping tasks when date-only and timed tasks on the same day are sorted by a scheduled-time formula. Thanks to @chrabia for reporting and investigating.
|
||
- (#773) Added ICS export filters for archived tasks, completed tasks, due dates, and scheduled dates. Thanks to @ras0q for suggesting this and @slipstyle for the scheduled-date follow-up.
|
||
- (#765) Reduced side-pane gutters around embedded TaskNotes Bases views, so embedded task lists use about the same horizontal space as directly opened Bases views. Thanks to @TonyAtlas for suggesting this.
|
||
- (#1892) Fixed nested Markdown list indentation in the Task Edit Modal details editor. Thanks to @Glint-Eye for reporting.
|
||
- (#1891) Fixed TaskNotes modal markdown editors collapsing to one-character-wide lines when Pretty Properties is installed. Thanks to @bkennedy-improving for reporting.
|
||
- (#1499) Respected excluded folders when opening tasks directly from view results and when building dependency/project indexes, so template-folder tasks no longer appear through TaskNotes views. Thanks to @Liya430 for reporting.
|
||
- (#136, #1500) Made the Pomodoro countdown derive remaining time from the session clock instead of from counted interval ticks, so delayed, backgrounded, or screen-off ticks catch up cleanly without over-recording a completed session. Thanks to @Poly-0000 for reporting and documenting the original background timer issue, @Totobal5 for the earlier worker-based fix, and @CoffeaUrbana for the Android screen-off report.
|
||
- Restored padding in task modal Markdown editors.
|
||
- Made the markdown editor areas in task modals easier to click and focus.
|
||
- Strengthened local CSS linting to catch unscoped selectors, unknown CSS, and fixed-position overlays before review.
|
||
- Reduced false-positive plugin review warnings by making background auto-export and auto-archive schedulers non-overlapping and tightening type/string conversion paths.
|
||
- (#1882) Made Google Calendar task descriptions use mobile-friendly plain text for Obsidian links and display labels for wiki-style project/context links. Thanks to @martin-forge for the contribution.
|
||
- (#1883) Improved Google Calendar task sync recovery so failed deletions, offline sync requests, reconnects, and quick create/update races are retried more reliably. Thanks to @martin-forge for the contribution.
|
||
`});var KMe,ZMe=y(()=>{KMe=`# TaskNotes 4.7.2
|
||
|
||
## Changed
|
||
|
||
- Improved local lint checks so package and CSS issues reported by Obsidian's online review can be caught before submission.
|
||
- Cleaned up stylesheet compatibility issues reported by Obsidian's online review without changing the intended TaskNotes appearance.
|
||
- Improved spacing and alignment in task, timeblock, and webhook modals after the stylesheet cleanup.
|
||
- Reworked optional calendar and ICS subscription refresh scheduling to avoid interval-based network polling while preserving the same refresh intervals.
|
||
- Cleaned up additional source patterns reported by Obsidian's online review, including unsafe default object stringification and redundant external type unions.
|
||
- Prevented a console error when plugin listeners are cleaned up after reloads.
|
||
- Added a local lint check to prevent interval-based polling in files that also perform network requests.
|
||
`});var QMe,JMe=y(()=>{QMe="# TaskNotes 4.7.1\n\n## Changed\n\n- Release assets are now built with GitHub artifact attestations so users and reviewers can verify the provenance of `main.js`, `manifest.json`, and `styles.css`.\n"});var XMe,eAe=y(()=>{XMe=`# TaskNotes 4.7.0
|
||
|
||
## Changed
|
||
|
||
- Enabled lint checks that mirror Obsidian community plugin review findings, including dynamic code execution, Promise handling, deprecated APIs, unsafe stringification, directive comments, Node built-in imports, and explicit \`any\` usage.
|
||
- Clarified privacy documentation for optional integrations that make periodic background network refreshes.
|
||
- Cleaned up internal Obsidian and Bases compatibility adapters used by search and grouped views.
|
||
- (#1839, #1881) Updated default Base urgency scoring so timed tasks earlier in the day sort above later tasks with the same priority and date
|
||
- Thanks to @loukandr for the contribution
|
||
|
||
## Fixed
|
||
|
||
- Fixed project autocomplete searches so non-empty \`+\` queries only return files matching the query in the basename, title, aliases, or explicitly searchable metadata rows.
|
||
- (#1713) Fixed all-tasks ICS export when a task uses a space-separated scheduled datetime such as \`2025-08-12 18:00\`
|
||
- Thanks to @bepolymathe for requesting this and @m4to-3pe for following up
|
||
- Fixed Pomodoro stats reopening immediately after a plugin reload before the Pomodoro service has finished initializing.
|
||
- (#1872) Fixed unarchiving moved tasks so the destination task folder processes template variables such as \`{{project}}\` before moving the file
|
||
- Thanks to @OXI-717 for reporting
|
||
- (#1870) Fixed custom user field NLP triggers with file autosuggest so selecting a wikilink suggestion stores the link in the user field instead of leaving it in the task title
|
||
- Thanks to @Sineapple for reporting
|
||
- (#1878) Fixed completed tasks still appearing as active blockers for dependent tasks
|
||
- Thanks to @macbikegeek for reporting
|
||
- (#1880) Fixed the status bar time-tracking label for task titles that contain a dash
|
||
- Thanks to @ubidev for reporting
|
||
- (#1854) Fixed modal task completion so completed tasks receive a completed date consistently
|
||
- Thanks to @misolex for reporting
|
||
- (#1124, #1838, #1881) Fixed default Base views and formulas excluding tasks scheduled or due today at a non-midnight time from day-level comparisons
|
||
- Thanks to @kmaustral for reporting and @loukandr for the fix
|
||
|
||
## Removed
|
||
|
||
- Removed JavaScript webhook transform support and examples. JSON webhook transform templates remain supported.
|
||
`});var tAe,rAe=y(()=>{tAe=`# TaskNotes 4.6.0
|
||
|
||
## Changed
|
||
|
||
- TaskNotes now requires Obsidian 1.12.2 or later, matching the Obsidian APIs used by the plugin.
|
||
- Improved internal code quality by resolving lint warnings, moving static inline styles into CSS utilities, and extending sentence-case lint coverage to English localization strings, with no intended behavior changes.
|
||
|
||
## Fixed
|
||
|
||
- Fixed TaskNotes failing to load when Obsidian opened without an active Markdown file.
|
||
`});var nAe,aAe=y(()=>{nAe=`# TaskNotes 4.5.3
|
||
|
||
## Fixed
|
||
|
||
- (#1834, #1847) Fixed empty Bases formula and custom properties showing \`null\` or \`undefined\` on TaskNotes task cards.
|
||
- A big thanks to @Glint-Eye and @3zra47 for reporting.
|
||
- (#1836) Fixed TaskNotes Bases views not refreshing task cards after status, archive, and auto-archive updates.
|
||
- A big thanks to @kmaustral for reporting.
|
||
`});var iAe,sAe=y(()=>{iAe=`# TaskNotes 4.5.2
|
||
|
||
## Added
|
||
|
||
- (#1342, #1793) Added native tag autocomplete to time entry descriptions by using the embedded markdown editor in the time entry editor modal.
|
||
- Thanks to @fastrick for the request and @renatomen for the PR.
|
||
- (#1756, #1798) Added HTTP API support for configured custom user fields so task responses include them and create/update requests can round-trip their values.
|
||
- Thanks to @Treygec for the request and PR.
|
||
- (#1777) Added a Modal Fields setting to choose whether Tab/Shift+Tab move focus out of the task details editor or use the markdown editor's indentation behavior.
|
||
- Thanks to @P-Sc for the PR.
|
||
|
||
## Changed
|
||
|
||
- Updated the Obsidian API dependency to 1.12.3 and switched the Bases integration to the official API type declarations.
|
||
- Bases task cards and property-event cards now render metadata values through Obsidian's native Bases value renderer so links, dates, lists, icons, and formula values display more faithfully.
|
||
|
||
## Fixed
|
||
|
||
- (#1778) Fixed MCP initialize requests using newer protocol versions such as \`2025-11-25\` failing instead of negotiating down to TaskNotes' supported MCP version.
|
||
- Thanks to @SakulaPor for reporting.
|
||
- (#1781) Fixed duplicate metadata properties on Bases task cards when bare and \`note.\`-prefixed property IDs map to the same TaskNotes field.
|
||
- Thanks to @loukandr for reporting and tracing the issue.
|
||
- (#1787) Removed the "(click to change)" helper text from recurrence tooltips on task cards.
|
||
- Thanks to @kazerniel for reporting.
|
||
- (#1828) Fixed subtask creation from a task card dropping the parent task project when natural-language input also adds projects.
|
||
- Thanks to @prepare4robots for reporting.
|
||
- (#1786) Fixed TaskNotes task cards and relationships/subtasks widgets appearing inside embedded task-note heading or block sections.
|
||
- Skips note-level widget injection in detached or embedded Markdown editor contexts used by plugins such as Block Link Plus.
|
||
- Thanks to @3zra47 for reporting.
|
||
- (#1815) Fixed the Priority property settings so the NLP trigger character field is visible and editable even when priority NLP parsing is disabled.
|
||
- Thanks to @spiv for reporting.
|
||
- (#1035) Fixed the task modal title field causing the modal to jump to the bottom when focused on iPhone.
|
||
- Thanks to @3zra47 for reporting and following up.
|
||
- (#1045) Fixed inline linked recurring tasks keeping the previous day's completed state after the calendar day changes.
|
||
- Thanks to @3zra47 for reporting and following up.
|
||
- (#1788) Fixed Task List subgroup headers and cards rendering without clear indentation.
|
||
- Thanks to @renatomen for the PR.
|
||
- (#1810) Updated Japanese Kanban terminology to use the more natural katakana spelling.
|
||
- Thanks to @sigma7863 for the PR.
|
||
- (#1633) Fixed Bases task cards using fallback labels instead of Bases display names for mapped task fields and file properties.
|
||
- Thanks to @Sarryaz for reporting the Bases task card i18n and field-mapping issue.
|
||
- (#884) Fixed untranslated strings and English placeholder examples across non-English interface translations.
|
||
- Thanks to @berzernberg for reporting Russian translation gaps.
|
||
- (#1765, #1769) Fixed auto-archived tasks leaving stale Google Calendar events when cleanup runs before calendar sync is ready or after the task moves into the archive folder.
|
||
- Thanks to @martin-forge for reporting and the PR.
|
||
- (#1764) Fixed Google Calendar sync using stale task metadata after rapid task updates, and fixed late recurring completions/skips recording the completion day instead of the scheduled occurrence date.
|
||
- Thanks to @martin-forge for the PR and to @jpmoo for reporting the recurring completion issues.
|
||
- (#1782) Fixed CI test runs resolving the NLP parser package from a local sibling checkout instead of the published dependency.
|
||
- Thanks to @martin-forge for reporting.
|
||
- Published [\`mdbase-tasknotes\`](https://github.com/callumalpass/mdbase-tasknotes) 0.1.3 with compatibility fixes for TaskNotes-generated mdbase schemas.
|
||
- Includes clearer create-path diagnostics, natural-language \`mtn list --due\` filters, timer log datetime filters, home-directory path expansion, project wikilink preservation, and correct \`mtn --version\` reporting.
|
||
- Thanks to @tparsons9, @anomatomato, @npondel, @plashal, and @waspeer for the reports and PR.
|
||
- (#1667) Fixed NLP scheduled-date parsing so standalone \`scheduled\` and \`start\` triggers can set scheduled dates alongside due dates.
|
||
- Thanks to @hokfujow for reporting and @UniqueClone for the NLP core PR.
|
||
- Fixed NLP parser title cleanup for explicit date triggers and Japanese/Chinese priority phrases.
|
||
- (#1658) Fixed Pomodoro stats date bucketing for sessions near local midnight.
|
||
- Pomodoro session stats now compare the recorded session calendar date against UTC-anchored target days without shifting through UTC or the reader's current timezone.
|
||
- Pomodoro daily-note storage now writes sessions to the daily note matching the recorded session date.
|
||
- Thanks to @ewgdg for reporting, @AntonIlinykh and @dkchacha for follow-up discussion, and @ITblacksheep for PR #1758.
|
||
- (#1813) Fixed Pomodoro timer UI stalls caused by refreshing session statistics on every timer tick.
|
||
- Pomodoro stats now refresh on initial render and session completion instead of once per second.
|
||
- Pomodoro daily-note stats now read the relevant date/range instead of routing through all history.
|
||
- Native Pomodoro notifications now respect the notification setting and granted permission before showing.
|
||
- Thanks to @Szu-Szu for reporting and @its-thex for confirming.
|
||
- (#1744) Fixed Bases Task List views so changing the per-view \`Expanded relationships\` option takes effect on re-render.
|
||
- Restores the expected \`show-all\` behavior for setups that hide subtasks at the top level with \`note.projects.isEmpty()\`.
|
||
- Thanks to @minol-dev for reporting, @Glint-Eye for follow-up discussion, and @stanley-910 for PR #1792 exploring the related standalone-subtask workflow.
|
||
- Fixed tag clicks in task cards opening the task edit modal in addition to the tag search panel, and kept rendered tag metadata on a single row inside task cards.
|
||
`});var oAe,lAe=y(()=>{oAe=`# TaskNotes 4.5.1
|
||
|
||
## Fixed
|
||
|
||
- (#1672) Fixed custom date ranges in the MCP time summary tool so \`from\` and \`to\` dates work as expected
|
||
- Thanks to @pib for the fix
|
||
- (#1742) Fixed calendar week and day views so the time scale stays aligned on the left instead of drifting inward
|
||
- Thanks to @ysafonov for the report and screenshot
|
||
`});var cAe,dAe=y(()=>{cAe=`# TaskNotes 4.5.0
|
||
|
||
## Fixed
|
||
|
||
- (#1652) Fixed API, MCP, and NLP task creation so it respects your configured filename format when title storage in filenames is disabled
|
||
- Thanks to @36mimu36 for reporting, and @rafavital and @warm-july for follow-up discussion and reports
|
||
- (#1601, #1709) Fixed reading-mode relationship widgets sometimes rendering multiple times during startup
|
||
- Applied the same protection to task cards so overlapping refreshes are coalesced there too
|
||
- Thanks to @wealthychef1 and @CarlJohnson99 for reporting, and @benmartinek for confirming the behavior
|
||
- (#1713) Fixed ICS export so date-only scheduled tasks are written as all-day events instead of midnight events
|
||
- Thanks to @bepolymathe for the request and interoperability details
|
||
- (#267, #948, #1682, #1717, #1725) Fixed expanded subtasks and dependency cards in Bases Task List and Kanban views so related items can inherit the current view's filters instead of always showing every linked task
|
||
- Added a per-view "Expanded relationships" option so you can switch between inherited filters and showing all related tasks
|
||
- Thanks to @mdbraber, @GardarikanetS, @Glint-Eye, @prepare4robots, and @robmcphers0n for the original reports and feature requests, and @marblebyte for follow-up discussion
|
||
- Improved custom view and search-pane activation when reopening deferred tabs
|
||
- (#1720) Fixed Bases Task List cards showing icon tokens such as \`clock\` instead of readable date-like values, and fixed property labels to use Bases display names instead of raw property IDs
|
||
- Thanks to @Sirnii for reporting
|
||
- (#1633) Fixed interactive task-card labels and ribbon labels so Bases-backed cards use translations and configured display names instead of hardcoded English or raw property IDs
|
||
- Thanks to @Sarryaz for reporting
|
||
- (#1651) Fixed date \`is\` query filtering so date-only searches also match timed \`scheduled\` and \`due\` values during prefiltering
|
||
- Thanks to @36mimu36 for reporting
|
||
- (#1644) Fixed generated default task views so recurring tasks without a \`complete_instances\` property still appear as incomplete where appropriate
|
||
- Thanks to @bkennedy-improving for reporting, and @SandroK for follow-up discussion on related default-view behavior
|
||
- (#1513, #1686) Fixed a calendar issue where creating or editing events and timeblocks could reset the visible date back to today
|
||
- In-place calendar recreation now preserves the visible date unless you explicitly navigate elsewhere
|
||
- Thanks to @owenoxen for opening #1513, and @Lorite for opening #1686 and contributing the fix
|
||
- Fixed documentation deployment CI failures caused by \`docs-builder/src/js/main.js\` being excluded by a broad \`.gitignore\` rule
|
||
- Reduced background calendar-sync overhead when persisting sync tokens
|
||
- Prevented duplicate auto-stop time-tracking listeners from accumulating after settings reloads
|
||
- Fixed a settings-lifecycle issue that could accumulate calendar update callbacks while the Integrations tab is repeatedly opened
|
||
- (#1630) Fixed TaskNote inline task cards ignoring centered "Readable line length" layout in the Minimal theme
|
||
- Thanks to @martin-forge for reporting
|
||
- Fixed a broken docs cross-reference from Property Types Reference to Task Properties settings
|
||
- Fixed docs site links so internal Markdown links resolve to app routes instead of broken \`.md\` paths
|
||
- Fixed docs release-note links by building Markdown pages even when they are not listed directly in the sidebar
|
||
|
||
## Added
|
||
|
||
- (#1704) Added an option to widen the current day column in multi-day calendar time-grid views
|
||
- You can control the width multiplier and choose whether it applies to week view, custom multi-day view, or both
|
||
- Thanks to @dictionarymouse for the feature request
|
||
- Added TaskNotes Obsidian CLI commands for task creation, time tracking, and Pomodoro control
|
||
- Includes shared NLP-to-task conversion across the CLI, modal, and API capture flows, plus new user documentation for the built-in CLI commands
|
||
- (#1716) Added roomier subtask and dependency cards inside the task modal while keeping the task options menu available
|
||
- Thanks to @hokfujow for the feature request
|
||
- (#1619, #386, #621) Added drag-to-reorder for Kanban and Task List views
|
||
- Supports grouped Task List moves, manual ordering via the \`tasknotes_manual_order\` property, and improved drag/drop behavior for swimlanes, filtered views, and interactive task controls
|
||
- To use it, sort the view by the Manual Order field (\`tasknotes_manual_order\` by default), or regenerate the built-in \`.base\` templates from **Settings \u2192 TaskNotes \u2192 General \u2192 Create Default Files**
|
||
- Thanks to @ac8318740 for the original contribution in PR #1619, @iholston and @dsebastien for opening #386 and #621, and @mdbraber, @elvarb, @LucidToday, @craziedde, @kmaustral, @SKIERZZ, @sookochoff, and @kanzaki1201 for follow-up discussion and testing across the linked issues and PR
|
||
- Added a standalone [TaskNotes Specification](https://github.com/callumalpass/tasknotes-spec) repo and docs section covering the data model, field mapping, recurrence behavior, validation rules, and conformance tests
|
||
- Added [tasknotes-tui](https://github.com/callumalpass/tasknotes-tui), a terminal UI for working with TaskNotes vaults
|
||
- Includes keyboard-driven views, date navigation, time tracking, recurring task support, and a command palette
|
||
|
||
## Changed
|
||
|
||
- Refactored several internal modules to reduce coupling and make maintenance safer
|
||
- Updated generated \`_types/task.md\` output so \`dateCreated\` and \`dateModified\` include generated timestamp values, and \`recurrence_anchor\` defaults to \`scheduled\`
|
||
- Cleaned up API, webhook, NLP, privacy, settings, and view documentation for clarity and accuracy
|
||
- Expanded Task List and Kanban documentation for drag-to-reorder, including manual-order sorting, grouped and swimlane scope, and filtered-view limitations
|
||
`});var uAe,pAe=y(()=>{uAe="# TaskNotes 4.4.0\n\n## Added\n\n- [Mdbase](https://mdbase.dev) type generation now includes `tn_role` annotations so external tools can identify each field's role even when frontmatter names are customized\n- (#1618) Mdbase type matching now follows your task identification settings (tag or frontmatter property), with fallback to tag matching when needed\n - Thanks to @jimbo108108 for reporting\n- Mdbase type status fields now include `tn_completed_values` so external tools can reliably identify which status values count as completed\n- (#1576) Added an optional `Checklist Progress` task-card property that renders a compact progress bar and `completed/total` count from top-level markdown checkboxes\n - Uses metadata cache list items and excludes nested checklist entries so progress reflects top-level task steps\n - In Bases views, map `tasks` (`file.tasks`) to `Checklist Progress`\n - Existing `.base` files need `file.tasks` added to the view `order` YAML manually\n - Newly generated `.base` templates now include `file.tasks` in view `order` by default\n - Thanks to @phortx for opening #1576 and for the earlier implementation PR, and @piyushaswani55 for feedback in the issue discussion\n\n## Changed\n\n- Mdbase type generation no longer overwrites `mdbase.yaml` if the file already exists, preserving user customisations\n- Webhooks now fire consistently regardless of whether updates come from the UI, HTTP API, or MCP\n- Webhook runtime state now syncs automatically when plugin settings change\n- Shared HTTP response/body parsing utilities are now consolidated in a dedicated `httpUtils` module\n- Release notes now include a reminder on every release page that default generated `.base` template changes never overwrite existing user `.base` files, and that users can regenerate templates from Settings to pick up updates\n\n## Fixed\n\n- (#1608) Fixed task title frontmatter being removed when `storeTitleInFilename` is enabled\n - `title` is now retained in frontmatter while filename derivation from title remains unchanged\n - Thanks to @victoraraujo105 for the PR\n- (#1602) Fixed time tracking statistics showing incorrect or zero values for Today/Week/Month due to UTC-anchored date range boundaries in Stats View\n - Updated range calculations to use local calendar-day boundaries consistently\n- (#1602) Fixed inconsistent `timeEntries` timestamp formats across create/edit/drag/resize flows\n - Time entry timestamps are now written in canonical UTC ISO format (`toISOString()` with `Z`) across all write paths\n- (#1602) Fixed denormalized `timeEntries.duration` drift after edits\n - Time tracking calculations now derive duration from `startTime`/`endTime`\n - Time entry save paths now strip legacy `duration` values instead of persisting them\n - Thanks to @dy66 for opening #1602\n"});var mAe,fAe=y(()=>{mAe=`# TaskNotes 4.3.3
|
||
|
||
## Changed
|
||
|
||
- Published [\`mdbase-tasknotes\`](https://github.com/callumalpass/mdbase-tasknotes) (\`mtn\`), a standalone CLI for managing tasks in markdown files via mdbase
|
||
- Works on the same vault and \`_types/task.md\` schema that TaskNotes generates, without requiring the plugin or HTTP API
|
||
- Preferable over [tasknotes-cli](https://github.com/callumalpass/tasknotes-cli) as a lighter-weight alternative and when Obsidian is not running, on remote machines, or in scripts and CI environments
|
||
- Supports natural language task creation, time tracking, project aggregation, statistics, and an interactive REPL
|
||
|
||
- Extracted shared natural language parsing logic into the standalone npm package [\`tasknotes-nlp-core\`](https://github.com/callumalpass/tasknotes-nlp-core)
|
||
- The NLP parser and related language configuration are now shared through this package
|
||
- This keeps behavior consistent between the plugin and CLI tools
|
||
|
||
## Added
|
||
|
||
- (#1549) Added setting to reset markdown checkboxes when recurring tasks are completed
|
||
- When enabled, all checked checkboxes (\`- [x]\`) in the task body are reset to unchecked when a recurring task instance is completed and rescheduled
|
||
- Useful for recurring tasks with subtask checklists that need to be repeated each instance
|
||
- Configurable via Settings > Features > Recurring Tasks > "Reset checkboxes on recurrence"
|
||
- Thanks to @phortx for the feature request
|
||
|
||
- (#1548) Added ability to create calendar events on connected external calendars directly from the calendar view
|
||
- When clicking or dragging to select a time slot, a new "Create calendar event" option appears in the context menu
|
||
- Opens a modal to enter event title, description, location, and select which calendar to create on
|
||
- Supports both Google Calendar and Microsoft Calendar providers
|
||
- Thanks to @Robubble for the feature request
|
||
|
||
- (#1597) Added MCP server for AI agent integration
|
||
- Exposes TaskNotes tools at \`/mcp\` endpoint, gated behind \`enableMCP\` setting
|
||
- Supports tasks (CRUD, query, toggle status/archive, parse from text), time tracking, pomodoro, calendar events, and task statistics
|
||
- Thanks to @dstotijn for the contribution
|
||
|
||
## Fixed
|
||
|
||
- Fixed generated [mdbase](https://mdbase.dev) type definitions for task dependencies using the wrong field type
|
||
- In \`_types/task.md\`, \`blockedBy[].uid\` now uses \`type: link\` (was \`type: string\`)
|
||
- Better matches how dependency links are serialized in task frontmatter (\`[[...]]\`)
|
||
|
||
- Fixed generated mdbase reminder type definitions to better match TaskNotes reminder data
|
||
- In \`_types/task.md\`, \`reminders[].type\` now uses enum values \`absolute|relative\`
|
||
- \`reminders[].relatedTo\` now uses enum values \`due|scheduled\`
|
||
- \`reminders[].absoluteTime\` now uses \`type: datetime\` (was \`type: string\`)
|
||
|
||
- (#1597) Fixed webhook payloads for time tracking start-with-description containing stale data
|
||
- Thanks to @dstotijn for the fix
|
||
|
||
- (#1581) Fixed Pomodoro starting break instead of work session after app restart
|
||
- After completing a work session and restarting, pressing Start would incorrectly start a break
|
||
- Now properly resets \`nextSessionType\` when clearing stale sessions or stopping the timer
|
||
- Thanks to @Sirnii for the detailed bug report and root cause analysis
|
||
|
||
- (#1577) Fixed Edit Note/Task modal hiding action buttons when content exceeds viewport height
|
||
- Added vertical scroll to modal content area while keeping buttons pinned at bottom
|
||
- Thanks to @hossam-elshabory for reporting and @ivannin for helping in discussion
|
||
|
||
- (#1600) Fixed kanban view grouping not working when more than 20 views exist
|
||
- The \`getGroupByPropertyId()\` method had a hardcoded loop limit of 20 iterations
|
||
- Views at index 20 or higher would not be found, causing groupBy to return null
|
||
- Thanks to @IHaveNoShame for reporting
|
||
|
||
- (#1595) Fixed task modal floating buttons blocking content on mobile
|
||
- Added mobile-specific (\`body.is-mobile\`) CSS to ensure proper flex layout
|
||
- Button container now stays pinned at bottom without overlapping scrollable content
|
||
- Thanks to @Jomo94 for reporting
|
||
|
||
- (#1590) Fixed HTTP API not allowing \`blockedBy\` dependencies when creating tasks
|
||
- Added \`blockedBy\` field support to \`TaskService.createTask()\`
|
||
- Updated API documentation with \`blockedBy\`, \`recurrence\`, and \`reminders\` fields
|
||
- Thanks to @hGriff0n for reporting
|
||
|
||
- (#1582) Fixed recurring tasks not appearing at end of visible calendar range for non-UTC timezones
|
||
- Daily/weekly recurring tasks with times after ~1pm would disappear on the last day of the visible range for users in positive UTC offsets (e.g., UTC+11)
|
||
- Fixed date boundary comparisons in both \`generateRecurringInstances()\` and \`generateRecurringTaskInstances()\` to compare dates only, not timestamps
|
||
- Thanks to @benefitbug for reporting
|
||
|
||
- (#1580) Fixed Google Calendar sync failing after OAuth token expires with unhelpful error message
|
||
- When refresh tokens expire or are revoked (e.g., Google Cloud project in Testing mode, user revoked access), the error message was confusing: "Failed to refresh google token: Request failed, status 400"
|
||
- Now detects irrecoverable token errors (\`invalid_grant\`, \`invalid_client\`) and automatically disconnects the OAuth connection
|
||
- Shows actionable error message: "Google Calendar connection expired. Please reconnect in Settings > Integrations."
|
||
- Prevents repeated failed refresh attempts and error message spam
|
||
- Thanks to @osxisl for reporting and @Naesue for helping in discussion
|
||
|
||
- (#1584) Fixed DOMTokenList error when task status values contain spaces
|
||
- Clicking the status ring on a task card threw an error when status contained spaces (e.g., "In Progress")
|
||
- Status and priority values are now sanitized before being used as CSS class names
|
||
- Thanks to @omber for reporting
|
||
`});var hAe,gAe=y(()=>{hAe=`# TaskNotes 4.3.2
|
||
|
||
## Added
|
||
|
||
- (#1520) Tag and Context fields in Edit Task modal now show all available suggestions immediately on focus
|
||
- Previously required typing at least one character before suggestions appeared
|
||
- Already-selected values are excluded from the suggestion list
|
||
- Thanks to @Glint-Eye for the suggestion
|
||
|
||
- (#1506) Added setting to configure the default color for new timeblocks
|
||
- New color picker in Settings > Features > Timeblocking
|
||
- Previously hardcoded to indigo; now user-configurable
|
||
- Thanks to @phillipadsmith for the suggestion
|
||
|
||
## Fixed
|
||
|
||
- Fixed [mdbase-spec](https://mdbase.dev) type definition generation not triggering when settings change
|
||
|
||
- (#1456) Fixed inline tasks jumping visually when marked as completed
|
||
- Thanks to @3zra47 for reporting
|
||
|
||
- (#1364) Fixed auto-stop time tracking not triggering when completing recurring task instances
|
||
- Thanks to @slipstyle for reporting
|
||
|
||
- (#1465) Fixed all-day events synced to Google Calendar receiving wrong notification time
|
||
- All-day events now use Google Calendar's configured all-day notification defaults instead of a minutes-based reminder
|
||
- Thanks to @Jomo94 for reporting
|
||
|
||
- (#1470) Fixed cursor showing as default instead of pointer on interactive elements
|
||
- Thanks to @TheFrostedDev for reporting
|
||
|
||
- (#1491) Fixed boolean property values being quoted as strings in Bases filter generation
|
||
- When using a boolean property (e.g. \`tasknote: true\`) for task identification, the filter now correctly handles the value
|
||
- Thanks to @denisgorod for reporting
|
||
|
||
- (#1494) Fixed Kanban swimlane resetting to "None" on initial load and after navigation
|
||
- Thanks to @tnguyen2018 for reporting
|
||
|
||
- (#1555) Fixed "Folder already exists" error when creating tasks or converting inline tasks
|
||
- Thanks to @jkune5 for reporting
|
||
|
||
- (#1532) Fixed expanded task modal buttons being cut off when content exceeds viewport height
|
||
- Thanks to @willfanguy for reporting
|
||
|
||
- (#1542) Fixed declined and cancelled events from ICS calendar subscriptions appearing in calendar view
|
||
- Thanks to @karenchoe428 for reporting
|
||
|
||
- (#1556) Fixed completion-based recurring tasks not rescheduling when the recurrence interval is large
|
||
- Thanks to @kazerniel for reporting
|
||
|
||
- (#1492) Fixed hardcoded "open" status leaking into filenames, recurring task displays, and parsing fallbacks
|
||
- Users with custom default statuses (e.g. "inbox") no longer see "open" where their configured default should appear
|
||
- Recurring tasks now show their actual configured status instead of always displaying "open" when not completed
|
||
- Thanks to @macdrifter for reporting
|
||
|
||
- (#1501) Fixed Google/Microsoft Calendar event colors not showing in agenda/list view
|
||
- Per-event and calendar-level colors now display correctly in the list view, matching grid view behavior
|
||
- Added today indicator highlighting to list view day headers
|
||
- Thanks to @Robubble for the suggestion
|
||
`});var yAe,vAe=y(()=>{yAe=`# TaskNotes 4.3.1
|
||
|
||
## Added
|
||
|
||
- (#1546) Added sticky kanban column headers that remain visible while scrolling
|
||
- Thanks to @normenmueller for the contribution
|
||
|
||
- (#1458) Added CSS color classes to context tags for custom styling
|
||
- Each context tag now receives a unique CSS class based on its name (e.g., \`context-tag--color-0\` through \`context-tag--color-19\`)
|
||
- Enables styling individual contexts via CSS snippets
|
||
- Thanks to @phortx for the contribution
|
||
|
||
- Added [mdbase-spec](https://mdbase.dev) type definition generation
|
||
- New setting in Integrations tab to generate mdbase-spec v0.2.0 type definition files (\`mdbase.yaml\` and \`_types/task.md\`) at the vault root
|
||
- Type definitions are derived from TaskNotes settings (statuses, priorities, field mappings, user fields) and regenerated automatically when settings change
|
||
- Enables interoperability with other tools that support the mdbase-spec format
|
||
|
||
## Fixed
|
||
|
||
- (#1472) Fixed task dependencies not being stored as wikilinks in frontmatter
|
||
- Dependencies now retain their \`[[wikilink]]\` format when saved, preventing them from breaking on file rename
|
||
- Thanks to @renekalff for reporting
|
||
|
||
- (#1443) Fixed default status/priority not updating when the referenced custom value is deleted
|
||
- Deleting a custom status or priority that was set as the default now resets the default to the first available value
|
||
- Thanks to @l-mb for the contribution
|
||
|
||
- (#1448) Fixed project removals not persisting from the task edit modal
|
||
- Removing all projects from a task now correctly clears the projects field
|
||
- Different link formats (e.g., markdown links vs wikilinks) no longer cause false change detection
|
||
- Thanks to @normenmueller for the contribution
|
||
|
||
- (#1514), (#1517) Fixed task reminders not syncing to Google Calendar
|
||
- Task-specific reminders (both relative and absolute) now sync to Google Calendar
|
||
- Previously only the global default reminder setting was used, ignoring per-task reminders
|
||
- Thanks to @christenbc for the contribution
|
||
|
||
- (#1525), (#1531) Fixed subtask status dot not refreshing visually when clicked
|
||
- Status dot, checkbox, and card styling now update instantly when cycling status
|
||
- Thanks to @christenbc for the contribution
|
||
|
||
- (#1537) Fixed Google Calendar errors during bulk sync
|
||
- Added rate limiting to space out API calls, preventing errors when syncing many tasks at once
|
||
- Thanks to @Lorite for the contribution
|
||
|
||
- (#1515), (#1540) Fixed time loss when setting recurrence and recurrence not clearing from Google Calendar
|
||
- Setting recurrence on a task with a scheduled time now preserves the time, preventing Google Calendar events from appearing as all-day
|
||
- Clearing recurrence from a task now also removes it from the synced Google Calendar event
|
||
- Thanks to @christenbc for the contribution
|
||
|
||
- (#1428), (#1559) Fixed hierarchical tags with slashes (e.g., \`#project/sub-project\`) being truncated in link text
|
||
- Tags containing slashes, hyphens, and Unicode characters now render correctly
|
||
- Thanks to @normenmueller for the contribution and @ysafonov for reporting
|
||
|
||
- (#1565) Fixed Google Calendar target calendar dropdown appearing empty after app restart
|
||
- The dropdown now re-populates once calendars are fetched during startup
|
||
- Thanks to @N-HEDGER for reporting
|
||
|
||
- (#1567) Fixed inline task card widgets disappearing momentarily
|
||
- When the task cache is temporarily cleared (e.g., during Smart Connections processing), the previously-rendered widget is now preserved instead of reverting to a plain wiki link
|
||
- Thanks to @scztt for reporting
|
||
|
||
- (#1568) Fixed deleted tasks not being removed from Google Calendar
|
||
- When a task file is deleted outside of TaskNotes (e.g., via Obsidian's file manager), the synced Google Calendar event is now cleaned up automatically
|
||
- Thanks to @kmaustral for reporting
|
||
|
||
- Fixed Integrations tab spacing and layout issues
|
||
- Improved positioning of buttons and status indicators across Google Calendar, ICS, and Webhooks sections
|
||
`});var kAe,bAe=y(()=>{kAe=`# TaskNotes 4.3.0
|
||
|
||
## Changed
|
||
|
||
- (#1437) Unified template variable syntax and available variables across filename and body templates
|
||
- Both systems now use double-brace \`{{variable}}\` syntax consistently
|
||
- Single-brace \`{variable}\` syntax remains supported for backwards compatibility but is deprecated
|
||
- Settings UI shows a warning when deprecated single-brace syntax is detected
|
||
- Filename templates gain body template variables: \`{{contexts}}\`, \`{{tags}}\`, \`{{hashtags}}\`, \`{{timeEstimate}}\`, \`{{details}}\`, \`{{parentNote}}\`
|
||
- Body templates gain filename template variables: \`{{zettel}}\`, \`{{nano}}\`, and all extended date/time variables
|
||
- Thanks to @23maverick23 for reporting
|
||
|
||
## Added
|
||
|
||
- (#1361) Option to disable inline task overlay for aliased wikilinks
|
||
- New setting in Features \u2192 Inline Tasks: "Disable overlay for aliased links"
|
||
- When enabled, links with aliases like \`[[Task|Check Status]]\` render as plain links
|
||
- Links without aliases continue to show the interactive task widget
|
||
- Useful when embedding tasks in prose where the widget would be disruptive
|
||
- Thanks to @diegomarzaa for the contribution and @jldiaz for proposing this feature in #1117
|
||
|
||
- (#1199, #1205) Google Calendar export for tasks
|
||
- Sync tasks to Google Calendar based on scheduled or due dates
|
||
- Automatic sync on task create, update, complete, and delete
|
||
- Configurable event title templates with placeholders (\`{{title}}\`, \`{{status}}\`, \`{{priority}}\`, etc.)
|
||
- Event descriptions include task metadata and optional Obsidian deep link
|
||
- Support for all-day or timed events with customizable duration
|
||
- Event color customization using Google Calendar's color palette
|
||
- Default reminder setting for popup notifications
|
||
- Bulk sync and unlink actions in settings
|
||
- Task-event linking stored in frontmatter (\`googleCalendarEventId\`)
|
||
- Recurring tasks sync as Google Calendar recurring events
|
||
- Completed or skipped recurring instances are automatically excluded
|
||
- Thanks to @someromans and @Leonard-44 for requesting this feature, and @dmantisk, @farangkao, @rayvermey, and @rdpr for their input
|
||
|
||
## Fixed
|
||
|
||
- (#1413) Fixed angle-bracket links and project title display
|
||
- Angle-bracket links like \`[Spec](<Projects/Client X/Spec.md>)\` now resolve correctly
|
||
- Project links display frontmatter \`title\` instead of raw filename/path when available
|
||
- Dependency values normalize consistently across wikilinks, markdown links, and angle-bracket variants
|
||
- Many thanks to @normenmueller for the contribution
|
||
|
||
- (#1414) Kanban column headers now display configured priority labels instead of raw values
|
||
- Many thanks to @normenmueller for the contribution
|
||
|
||
- (#1416) Fixed property-based task identification mutating tags unexpectedly
|
||
- Tags are only written when explicitly changed by the user
|
||
- Task tag is only added in tag-based identification mode
|
||
- Fixes #1391
|
||
- Thanks to @loukandr for reporting and @normenmueller for the fix
|
||
|
||
- (#1187) Fixed "Unknown view types" error when opening Bases views after upgrading from pre-V4
|
||
- Users who had disabled Bases support in earlier versions could not open Bases views after upgrading
|
||
- Settings migration now automatically re-enables Bases support since the toggle was removed in V4
|
||
- Thanks to @MiracleXYZ for reporting
|
||
|
||
- (#1144) Fixed relationships.base showing empty views for Projects, Blocked By, and Blocking tabs
|
||
- The top-level task filter was excluding non-task files from the Projects view
|
||
- Projects can be any file type (not just tasks), so the filter is now applied per-view
|
||
- Subtasks, Blocked By, and Blocking views retain the task filter; Projects view does not
|
||
- Users with existing relationships.base files should delete and regenerate them to get the fix
|
||
- Thanks to @needo37 for reporting, and @n1njaznutz, @nestor50, and @IvyDliu for investigating and confirming the solution
|
||
|
||
- Fixed calendar view type not persisting or applying when changed
|
||
- View type changes via header buttons (week/day/month) are now saved to the .base file
|
||
- View type changes via Bases settings panel now apply immediately without reload
|
||
|
||
- (#1441) Fixed task dragging broken with "Span tasks between scheduled and due dates" enabled
|
||
- Span events can now be dragged to move tasks in time
|
||
- Dragging shifts both scheduled and due dates proportionally, preserving the span duration
|
||
- Previously, dragging span events would cause a visual/data mismatch where the calendar showed the wrong position
|
||
- Thanks to @Peeeet for reporting
|
||
`});var TAe,wAe=y(()=>{TAe=`# TaskNotes 4.2.1
|
||
|
||
## Added
|
||
|
||
- New Calendars API endpoint for access to calendar data
|
||
- Access calendar provider information and connection status
|
||
- Query events from Google Calendar, Microsoft Calendar, and ICS subscriptions
|
||
- Filter events by date range
|
||
- [\`tasknotes-cli\`](https://github.com/callumalpass/tasknotes-cli) has been updated to make use of this endpoint
|
||
|
||
## Fixed
|
||
|
||
- (#1424) Fixed "Create New Task" command creating tasks in active folder instead of default folder
|
||
- "Create New Task" now correctly uses the configured default task folder
|
||
- "Create New Inline Task" continues to use the inline task folder setting
|
||
- Thanks to @Gogo-XD for reporting and @TonyAtlas for confirming
|
||
|
||
- (#1421), (#1042) Fixed natural language parser only setting one date when both scheduled and due dates are specified
|
||
- Entering something like "task due Jan 9 at Jan 9" now correctly sets both the due date and scheduled date
|
||
- Thanks to @wealthychef1 and @dblinnikov for reporting
|
||
|
||
- (#1410) Fixed vim insert mode not activating in task creation modal
|
||
- The modal now correctly enters insert mode when vim keybindings are enabled
|
||
- Thanks to @Leo310 for the feature request
|
||
|
||
- (#1422) Fixed tags with dashes not being parsed correctly
|
||
- Tags like \`#my-tag\` were being truncated to \`#my\`
|
||
- Thanks to @JerryLu086 for reporting
|
||
|
||
- (#1419) Fixed custom statuses and priorities not saving in settings
|
||
- Values entered in text fields were sometimes lost when closing the settings modal
|
||
- Thanks to @s33a for reporting
|
||
`});var SAe,xAe=y(()=>{SAe=`# TaskNotes 4.2.0
|
||
|
||
## Added
|
||
|
||
- Added Korean (\uD55C\uAD6D\uC5B4) language support
|
||
- Full translation of all 1911 localization keys
|
||
- Korean language option now available in Settings \u2192 General \u2192 Language
|
||
|
||
- Adopted Obsidian 1.11.0 API features with backwards compatibility
|
||
- Settings tab now displays TaskNotes icon in the sidebar (Obsidian 1.11.0+)
|
||
- Settings sections now use native \`SettingGroup\` for improved visual grouping (Obsidian 1.11.0+)
|
||
- Falls back gracefully to traditional section headers on older Obsidian versions
|
||
|
||
- (#59) Added \`shortYear\` template variable for custom filename and folder templates
|
||
- Use \`{shortYear}\` in filename templates (e.g., "25" for 2025)
|
||
- Use \`{{shortYear}}\` in folder templates
|
||
- Thanks to @Pixeltica for the feature request
|
||
|
||
- (#1393) Option to prevent auto-creation of default Base view files on startup
|
||
- New "Auto-create default files" toggle in Settings \u2192 Integrations \u2192 Bases Integration
|
||
- When disabled, deleted sample Base files will not be recreated on plugin load
|
||
- The manual "Create Default Files" button remains available for on-demand recreation
|
||
- Thanks to @wealthychef1 for the feature request
|
||
|
||
- (#1408) Shift+click on status icon to cycle backwards through statuses
|
||
- Normal click cycles forward through status order
|
||
- Shift+click cycles in reverse order
|
||
- Thanks to @JerryLu086 for the feature request
|
||
|
||
- (#1410) Task creation modal now starts in vim insert mode when vim keybindings are enabled
|
||
- Previously required pressing 'i' before typing when Obsidian vim mode was active
|
||
- The modal now automatically enters insert mode on focus, allowing immediate typing
|
||
- Thanks to @Leo310 for the feature request
|
||
|
||
- Added button tooltips to calendar view toolbar
|
||
- Hovering over navigation and view buttons now shows descriptive hints
|
||
- Buttons include: Today, Previous, Next, Month, Week, Day, Year, List
|
||
|
||
- Added tooltips to task modal action icons
|
||
- Icon buttons for status, date, project, priority, recurrence, and reminder now show tooltips on hover
|
||
- Improves discoverability for new users
|
||
|
||
- (#503) Settings now sync automatically across devices via Obsidian Sync
|
||
- Changes to custom statuses, priorities, and other settings apply immediately without restart
|
||
- Thanks to @jhedlund for the feature request and @l-mb for the implementation
|
||
|
||
- (#1403) Kanban view option to consolidate status icons in column headers
|
||
- New "Show status icon in column header only" toggle in Kanban view settings (disabled by default)
|
||
- When enabled and grouped by status, shows the icon in the column header and hides it on cards
|
||
- Reduces visual redundancy when the column already indicates the status
|
||
- Thanks to @l-mb for the feature request and implementation
|
||
|
||
- (#1401) Calendar view option to span tasks between scheduled and due dates
|
||
- New "Span tasks between scheduled and due dates" toggle in Calendar view Layout settings
|
||
- When enabled, tasks with both scheduled and due dates display as multi-day bars
|
||
- Provides Gantt chart-style visualization for project planning
|
||
- Thanks to @0atman for the feature request
|
||
|
||
- (#1334) \`{{currentNotePath}}\` now works for "Create new inline task" command
|
||
- The inline task folder setting with \`{{currentNotePath}}\` previously only worked for checkbox conversion
|
||
- Now also applies when using the "Create new inline task" command from the command palette
|
||
- Thanks to @kmaustral for the feature request
|
||
|
||
- (#1264) Option to open Pomodoro timer in mobile sidebar instead of note panel
|
||
- New "Mobile sidebar" setting in Settings \u2192 Features \u2192 Pomodoro Timer
|
||
- Choose between: Note panel (default tab behavior), Left sidebar, or Right sidebar
|
||
- Allows quick swipe access to the timer without switching notes on mobile devices
|
||
- Thanks to @Evthestrike for the feature request
|
||
|
||
- (#1220) Option to use ICS event end time as task due date
|
||
- New "Use ICS event end time as task due date" toggle in Settings \u2192 Integrations \u2192 Calendar Subscriptions
|
||
- When enabled, tasks created from calendar events will have their due date set to the event's end time
|
||
- For all-day events, uses the event date (not the ICS container end date which is the next day per ICS spec)
|
||
- For timed events, includes the exact end time
|
||
- Defaults to disabled to preserve existing behavior
|
||
- Thanks to @MiserMagus for the feature request
|
||
|
||
- (#1108) Option to use task duration instead of due date for ICS calendar export
|
||
- New "Use task duration for event length" toggle in Settings \u2192 Integrations \u2192 Automatic ICS Export
|
||
- When enabled, exported calendar events use scheduled date + time estimate as DTSTART/DTEND
|
||
- This aligns with GTD workflows where scheduled + duration represents work planning, while due date represents deadlines
|
||
- When disabled (default), preserves existing behavior using due date as DTEND
|
||
- Thanks to @bepolymathe for the feature request
|
||
|
||
## Fixed
|
||
|
||
- (#1421) Fixed natural language parser only capturing one date when both scheduled and due dates are specified
|
||
- Input like "Task scheduled for tomorrow due next week" now correctly sets both scheduled and due dates
|
||
- Previously the parser would return early after finding the first date trigger, ignoring any subsequent triggers
|
||
- Thanks to @wealthychef1 for reporting
|
||
|
||
- (#1384) Fixed title being sanitized even when "Store Task Title in Filename" is disabled
|
||
- Characters like \`?\`, \`<\`, \`>\`, \`:\`, etc. are now preserved in task titles when they won't be used in filenames
|
||
- When \`storeTitleInFilename\` is false, only minimal sanitization (whitespace normalization, control character removal) is applied
|
||
- Thanks to @allison-casey for reporting
|
||
|
||
- (#1028), (#1140), (#1152), (#1354), (#1362) Fixed duplicate task entries appearing in Agenda view
|
||
- Tasks were shown twice: once as TaskNotes events and again as property-based events with a file icon
|
||
- Changed default Agenda template to disable property-based events (\`showPropertyBasedEvents: false\`)
|
||
- Users can re-enable property-based events in view settings if needed for non-task date properties
|
||
- Thanks to @YIRU69, @jhedlund, @dblinnikov, @Snakiest, @WeiYiAcc, @JacksonMcDonaldDev, @jimbo108108, and @krelltunez for reporting
|
||
|
||
- (#1386) Fixed \`timeEstimateCategory\` formula showing "Long (>2h)" instead of "No estimate" for new tasks
|
||
- The condition didn't properly handle null values when \`timeEstimate\` property is unset
|
||
- Also fixed the same issue in \`trackingStatus\` formula
|
||
- Thanks to @nicou for reporting and @osxisl for the PR
|
||
|
||
- (#1397) Fixed Bases views (Kanban, Calendar, Task List) resetting to Calendar view after a few minutes
|
||
- Also fixed CalendarView corrupting other view files when saving state on unload
|
||
- Thanks to @music-soul1-1 for reporting
|
||
|
||
- (#1398) Fixed overdue strikethrough showing on completed tasks
|
||
- Completed tasks with past due dates no longer display overdue styling
|
||
- Respects the "Hide completed from overdue" setting which defaults to true
|
||
|
||
- (#1363) Fixed calendar view showing nothing when a task has an invalid date format
|
||
- Tasks with malformed dates (e.g., "262025-12-16" instead of "2025-12-16") no longer crash the entire calendar
|
||
- Invalid tasks are now skipped with a console warning, allowing other events to display normally
|
||
- Thanks to @Erelen for reporting
|
||
|
||
- Fixed today column in week/day calendar views using FullCalendar's default yellow instead of theme accent
|
||
- Today's column now uses a tint of the theme accent color for consistent styling
|
||
|
||
- (#1399) Fixed drag-and-drop not working in Kanban view on mobile
|
||
- Cards and columns can now be dragged using long-press gesture on touch devices
|
||
- Includes haptic feedback and auto-scroll when dragging near edges
|
||
- Thanks to @l-mb for reporting and the fix
|
||
|
||
- (#1381) Fixed Pomodoro "Change Task" menu not showing newly created tasks
|
||
- Tasks created while the Pomodoro view was open would not appear in the task selector
|
||
- Improved metadata cache synchronization to properly wait for new files to be indexed
|
||
- Thanks to @Ghosthael for reporting
|
||
|
||
- (#1344) Fixed "Unsaved Changes" popup appearing randomly when closing task edit modal
|
||
- The popup would appear even when no changes were made to the task
|
||
- Caused by inconsistent trailing whitespace normalization when comparing details content
|
||
- Thanks to @hasanyilmaz for reporting
|
||
|
||
- (#1402) Fixed Kanban swimlane view showing tasks in wrong column when grouped by formula
|
||
- After editing task metadata, cards would jump to "None" column until Obsidian reload
|
||
- Column assignment now uses Bases' computed grouping instead of cached formula outputs
|
||
- Thanks to @bailob for the fix
|
||
|
||
- (#1352) Fixed date context menu not preserving time when using increment options
|
||
- Using +1 day, -1 day, +1 week, or -1 week on a task with a time (e.g., \`2025-12-10T16:00\`) now preserves the time
|
||
- Previously the time would be stripped, changing \`2025-12-10T16:00\` to \`2025-12-11\` instead of \`2025-12-11T16:00\`
|
||
- Thanks to @cathywu for the feature request
|
||
|
||
- Fixed v3 saved views exporting incorrectly to Bases format
|
||
- Title filters now correctly use \`file.name\` instead of \`note.title\`
|
||
- Archived filters now generate valid boolean expressions instead of malformed comparisons
|
||
- "Is Blocked" filters now generate correct expressions with proper operator precedence
|
||
|
||
- (#1036) Due dates can now be dragged in the calendar view
|
||
- Previously only scheduled dates were draggable; due dates were locked in place
|
||
- Dragging a due event now updates the task's due date property
|
||
- Thanks to @same774 for reporting
|
||
|
||
- Improved calendar view responsiveness for user interactions
|
||
- Task creation, editing, timeblock changes, and view option toggles now update immediately
|
||
- Previously these actions waited 5 seconds due to the debounce intended for external file changes
|
||
- The 5-second debounce is now bypassed for direct user actions while still preventing flicker during typing
|
||
|
||
- Improved visual affordance for Pomodoro timer duration adjustment buttons
|
||
- The +/- buttons below the timer now have visible backgrounds and borders
|
||
- Hover states show accent color border for clearer interactivity feedback
|
||
- Previously buttons were nearly invisible with transparent backgrounds
|
||
|
||
- (#1409), (#1214), (#979) Improved Calendar, Agenda, Kanban, and Stats views in pop-out windows
|
||
- Drag-and-drop in Kanban view now works correctly when the view is in a new window
|
||
- Context menus (status, priority, task) now work correctly in pop-out windows
|
||
- Stats view drill-down modal now appears in the correct window
|
||
- Search boxes, task cards, and grouped task lists render correctly
|
||
- Root cause: Code was using global \`document\` and standard \`instanceof\` checks which fail across windows
|
||
- Solution: Use \`ownerDocument\` for DOM operations and Obsidian's cross-window \`instanceOf()\` method
|
||
- **Known limitation**: Calendar event dragging does not work in pop-out windows due to FullCalendar library using global \`document\` for mouse event listeners. Use context menus or edit modals as a workaround.
|
||
- Updated FullCalendar to v6.1.20
|
||
- Thanks to @Snakiest, @same774, and @3zra47 for reporting
|
||
|
||
- (#1337) Fixed "Convert current note to task" hotkey not applying default values from settings
|
||
- When user configured default status/priority as "None", the modal would show "Open" and "Normal" instead
|
||
- Root cause: Task edit modal was refreshing data from file and overwriting user-configured defaults
|
||
- Now preserves constructor-provided task data when converting non-task files
|
||
- Thanks to @guihasparyk for reporting
|
||
|
||
- (#1304) Fixed "Cannot find function map on type Link" error in Blocking view
|
||
- Error occurred when embedding the Relationships base and opening the Blocking view
|
||
- Root cause: When \`blockedBy\` contained a single dependency, Bases returned it as a Link object without a \`.map()\` method
|
||
- Fixed by wrapping \`blockedBy\` with \`list()\` before calling \`.map()\`, consistent with the Blocked By view
|
||
- Thanks to @prayidae for reporting
|
||
|
||
- (#1295) Fixed missing navigation link to Default Base Templates page on tasknotes.dev
|
||
- The page existed but was not accessible from the site navigation
|
||
- Thanks to @Arachnidai for reporting
|
||
|
||
- (#1223) Fixed "Go to today's note" command opening wrong date in positive UTC offset timezones
|
||
- In timezones like Japan (UTC+9), early morning use of this command opened yesterday's note
|
||
- Root cause: Incorrectly extracting UTC date components instead of local timezone date
|
||
- Thanks to @BrucePlumb for reporting
|
||
`});var CAe,EAe=y(()=>{CAe=`# TaskNotes 4.1.3
|
||
|
||
This patch fixes a critical performance issue affecting the Calendar views. As a bonus, it adds a configurable "split" view to the task creation/edit modals.
|
||
|
||
## Added
|
||
|
||
- Split layout for task modals on wide screens (900px+)
|
||
- Details editor appears in a dedicated right column when the modal is expanded
|
||
- New setting "Split layout on wide screens" in Modal Fields settings tab to toggle this behavior
|
||
- Improves usability by showing form fields and details side-by-side
|
||
|
||
## Fixed
|
||
|
||
- (#1330) Fixed calendar view regression taking 5 seconds to load and respond to user interactions
|
||
- Initial calendar load is now immediate again
|
||
- User interactions (drag/drop, creating timeblocks, etc.) respond instantly
|
||
- Removed redundant date filtering (FullCalendar handles this more efficiently)
|
||
- Thanks to @ysafonov, @kmaustral, @sunjiawe, @\u041C\u0438\u0437\u0433\u0438\u0440\u044C, and @FiliusIcari for reporting
|
||
`});var DAe,PAe=y(()=>{DAe=`# TaskNotes 4.1.2
|
||
|
||
## Fixed
|
||
|
||
- Significant performance improvements for Bases views (TaskList, Kanban, Calendar)
|
||
- Reduced \`extractDataItems\` time from ~4 seconds to ~5-10ms for large vaults (6000+ tasks)
|
||
- Computed file properties (\`file.backlinks\`, \`file.links\`, etc.) are now fetched lazily during render instead of upfront
|
||
- Only visible items (with virtualization) trigger expensive property computations
|
||
- Added debouncing to \`onDataUpdated\` to prevent UI freezes during typing
|
||
- Timeblock generation now uses Obsidian's metadataCache instead of file reads
|
||
- Added date range filtering for calendar events to skip events outside visible range
|
||
- (#1285) Calendar view uses 5-second debounce to prevent flickering while typing
|
||
- Thanks to @steven-murray for reporting
|
||
- Calendar view switching (month/week/day/list) is now much faster
|
||
- View type is now saved on unload instead of on every change
|
||
- Fixed task edit modal archive button being too narrow on mobile devices
|
||
- (#1319) Added missing properties to Field Mapping settings
|
||
- \`recurrence_anchor\` - now in Settings > Task Properties > Task Details
|
||
- \`skipped_instances\` - now in Settings > Task Properties > Metadata Properties
|
||
- Thanks to @kazerniel for reporting
|
||
- (#1310) Fixed inline task conversion deleting text when task title exceeds filename limits
|
||
- Text that cannot fit in the filename is now preserved in the task note's body
|
||
- Thanks to @prayidae for reporting
|
||
- (#1301) Fixed inline task wikilinks leaving blank space when no metadata properties are visible
|
||
- Thanks to @Richard-UMPV for reporting
|
||
- (#1317) Fixed project autosuggest filters not working correctly when only "Required Property Key" is configured
|
||
- NLP \`+\` trigger now properly filters by property existence when no property value is specified
|
||
- Modal "Add to project" button now shows consistent results with inline autosuggest
|
||
- Thanks to @JacksonMcDonaldDev for reporting
|
||
- (#1287), (#1307) The "New" button in Bases views now opens the TaskNotes creation modal
|
||
- Tasks created from Bases views now respect default properties (status, priority, etc.)
|
||
- Tasks are now created in the configured default folder instead of the views folder
|
||
- Thanks to @anareaty and @sylvainfct-dot for reporting
|
||
- (#1291) Fixed Microsoft Calendar OAuth documentation using wrong redirect URI
|
||
- Added instructions for configuring via Azure manifest editor
|
||
- Thanks to @PlecotusAustriacus for reporting
|
||
|
||
## Added
|
||
|
||
- (#803) New command "Convert current note to task" to add task properties to an existing note
|
||
- Thanks to @GardarikanetS and @diegomarzaa for suggesting
|
||
- (#1080) Custom user fields now support default values
|
||
- Each field type has an appropriate input: text field, number input, toggle, date preset dropdown, or comma-separated list
|
||
- Defaults are applied when creating tasks via modal, instant conversion, "Create or open task" command, or HTTP API
|
||
- Thanks to @bradyrx for suggesting
|
||
|
||
## Changed
|
||
|
||
- Added documentation link to settings panel (links to tasknotes.dev)
|
||
- Reorganized settings panel for improved discoverability
|
||
- Removed "Defaults" tab - default values are now configured alongside each property in the Task Properties tab
|
||
- Moved task filename format settings to the Title property section
|
||
- Moved project autosuggest settings to the Projects property section
|
||
- Body template setting moved to the Features tab
|
||
- Added descriptions to each property explaining its purpose
|
||
- Moved "Folder for converted tasks" setting to General tab under Task Storage for better discoverability
|
||
- Updated setting description to clarify that leaving empty uses the default tasks folder
|
||
|
||
`});var MAe,AAe=y(()=>{MAe='# TaskNotes 4.1.1\n\n## Added\n\n- (#1277) Icon autosuggestion for custom status settings\n - Type to search through all available Lucide icons\n - Thanks to @Arachnidai for the suggestion\n- New formula properties in default Base templates\n - **Date calculations**: `daysUntilDue`, `daysUntilScheduled`, `daysSinceCreated`, `daysSinceModified`\n - **Boolean helpers**: `isOverdue`, `isDueToday`, `isDueThisWeek`, `isScheduledToday`, `isRecurring`, `hasTimeEstimate`\n - **Time tracking**: `timeRemaining`, `efficiencyRatio`, `timeTrackedThisWeek`, `timeTrackedToday`, `timeTrackedFormatted`\n - **Grouping**: `dueMonth`, `dueWeek`, `scheduledMonth`, `scheduledWeek`, `dueDateCategory`, `timeEstimateCategory`, `ageCategory`, `createdMonth`, `modifiedMonth`, `priorityCategory`, `projectCount`, `contextCount`, `trackingStatus`\n - **Combined due/scheduled**: `nextDate`, `daysUntilNext`, `hasDate`, `isToday`, `isThisWeek`, `nextDateCategory`, `nextDateMonth`, `nextDateWeek` - work with whichever date comes first\n - **Sorting**: `priorityWeight`, `urgencyScore` (combines priority with date proximity)\n - **Display**: `dueDateDisplay` (relative dates like "Today", "Tomorrow", "3d ago")\n - Action-oriented views (Not Blocked, Today, Overdue, This Week) now sort by urgency score, showing most important tasks first\n - See [Default Base Templates documentation](https://tasknotes.dev/views/default-base-templates) for full details\n - **Note**: To get these new formulas, either copy them from the documentation, or delete your `.base` files in `TaskNotes/Views/` and restart Obsidian to regenerate them\n\n## Changed\n\n- (#1282) Added spacing between task title and metadata in inline task widgets for improved readability\n - Thanks to @3zra47 for the suggestion\n- Custom status icons now display in all context menus (task context menu, batch operations menu, and task creation/edit modals)\n- Added embedded video guide for Google Calendar OAuth setup in documentation\n - Thanks to [@antoneheyward](https://www.youtube.com/@antoneheyward) for the tutorial\n\n## Fixed\n\n- (#1279) Fixed Kanban column width setting not being respected on mobile devices\n - Thanks to @guncav for reporting\n- (#1026), (#1177) Fixed recurring task completion from Base views recording the wrong date for users in negative UTC offset timezones (e.g., PST/PDT) when completing tasks in the evening\n - The bug caused `complete_instances` to record the next day instead of the user\'s current calendar day\n - Thanks to @3zra47 and @nslee123 for reporting and providing detailed reproduction steps\n\n'});var _Ae,IAe=y(()=>{_Ae=`# TaskNotes 4.1.0
|
||
|
||
## Added
|
||
|
||
- (#1245), (#793) Added custom icon support for task statuses
|
||
- Configure a Lucide icon name (e.g., \`check\`, \`circle\`, \`clock\`) per status in Settings \u2192 Task Properties \u2192 Task Statuses
|
||
- Icons display instead of the colored dot, inheriting the status color
|
||
- Browse available icons at [lucide.dev](https://lucide.dev)
|
||
- Improves accessibility by allowing shape-based status differentiation
|
||
- Thanks to @3Fish for the feature request and @Raonmir2, @aubreyz, @prayidae, and @anareaty for the discussion on accessibility and icon-based indicators
|
||
|
||
- (#1259) Added [Property Types Reference](../settings/property-types-reference.md) documentation
|
||
- Documents expected data types (text, list, date, number) for all frontmatter properties
|
||
- Includes format specifications, examples, and a complete YAML reference
|
||
- Thanks to @Oblique82 for the suggestion
|
||
|
||
- (#1248) Added formula property support for sub-grouping in Bases Task List view
|
||
- Formula properties (e.g., \`formula.myFormula\`) now appear in the Sub-group by dropdown
|
||
- Supports all Bases Value types including strings, numbers, booleans, dates, and lists
|
||
- Thanks to @prayidae for the feature request
|
||
|
||
- (#1070) Added formula property support for swimlanes in Bases Kanban view
|
||
- Formula properties now appear in the Swim Lane dropdown
|
||
- Fixed swimlanes displaying empty when grouping by formula properties
|
||
- Note: Dragging tasks between formula-based columns/swimlanes is disabled (formulas are computed values)
|
||
- Thanks to @cathywu for reporting
|
||
|
||
- (#1010), (#1126) Added batch task selection and editing in Task List and Kanban views
|
||
- Shift+click to select multiple tasks
|
||
- Right-click selected tasks to open batch context menu
|
||
- Batch operations: change status, priority, due date, scheduled date, archive, delete
|
||
- Drag multiple selected cards in Kanban to move them together
|
||
- Click the selection count indicator to clear selection
|
||
- Thanks to @jalooc and @solidabstract for the feature requests
|
||
|
||
- (#1207) Added inline search box to Bases views (Task List, Kanban, Calendar)
|
||
- Enable via "Enable search box" toggle in view settings
|
||
- Searches across title, status, priority, tags, contexts, projects, and visible custom properties
|
||
- Press Escape or click \xD7 to clear search
|
||
- Thanks to @renatomen for the PR
|
||
|
||
- (#363) Added "Create or open task" command with NLP-based quick task creation
|
||
- Open via command palette or assign a hotkey
|
||
- Search existing tasks or type natural language to create new tasks (e.g., "Buy groceries tomorrow #shopping")
|
||
- Press Enter to select an existing task, Shift+Enter to create a new task
|
||
- Real-time preview shows parsed title, due date, priority, tags, and other metadata
|
||
- Can be used when adding sub-tasks to create sub-tasks on-the-fly
|
||
- Thanks to @luciolebrillante for the feature request
|
||
|
||
- (#1044), (#1222) Added unsaved changes confirmation when closing task edit modal
|
||
- Detects modifications to any field (title, dates, priority, tags, etc.)
|
||
- Shows confirmation dialog with Save/Discard/Keep Editing options
|
||
- Prevents accidental data loss from clicking outside the modal or pressing Escape
|
||
- Thanks to @renatomen for the PR and @0-BSCode for the feature request
|
||
|
||
- (#904) Added visual highlighting for overdue and past dates on task cards
|
||
- Overdue due dates now display in red text
|
||
- Past scheduled dates now display in blue text
|
||
- Thanks to @ras0q for the suggestion
|
||
|
||
- (#1164) Added \`priorityWeight\` formula to all default Bases templates for priority-based sorting
|
||
- Formula maps each priority value to a numeric weight based on your custom priority configuration
|
||
- Sort by \`formula.priorityWeight\` in ascending order to get highest priority tasks first
|
||
- Example: \`if(priority=="high",0,if(priority=="normal",1,if(priority=="low",2,999)))\`
|
||
- Thanks to @jhedlund for the suggestion
|
||
|
||
- (#1257), (#1064) Added configurable event stacking options for Bases Calendar view
|
||
- **Allow events to overlap**: Toggle whether timed events visually overlap or display side-by-side in week/day views
|
||
- **Max stacked events**: Limit horizontal event stacking in week/day views (0 = unlimited)
|
||
- **Max events per day**: Limit events shown per day cell in month view (0 = auto based on cell height)
|
||
- **Max event rows per day**: Limit event rows per day cell in month view (0 = unlimited)
|
||
- Configure per-view in the Bases Calendar view settings under Layout
|
||
- Thanks to @3zra47 and @hasanyilmaz for the feature requests
|
||
|
||
## Changed
|
||
|
||
- Improved inline task conversion to merge TasksPlugin and NLP parsing results
|
||
- Previously, if a task had hashtags (e.g., \`- [ ] Buy milk tomorrow #groceries\`), NLP parsing was skipped entirely
|
||
- Now NLP always parses the clean title to extract dates/times, then merges with TasksPlugin-extracted metadata
|
||
- TasksPlugin explicit values (emoji dates like \u{1F4C5}) take priority over NLP-inferred values
|
||
- Tags, contexts, and projects from both sources are combined and deduplicated
|
||
|
||
- Polished task card styling for a more native Obsidian look
|
||
- Simplified hover and focus states to use native Obsidian colors
|
||
- Removed blur filter and shadows from metadata pills
|
||
- Fixed subtask chevron vertical alignment with status dot
|
||
- Reduced swimlane label column width in Kanban view
|
||
|
||
- (#1151) Increased mini calendar heatmap color intensity for better visibility
|
||
- Days with notes now show more noticeable colors, especially with low note counts
|
||
- Intensity levels increased from 10/25/45/65% to 25/40/55/70%
|
||
- Thanks to @arreme for the suggestion
|
||
|
||
## Fixed
|
||
|
||
- (#1271) Fixed custom user fields not appearing in task modals after creation
|
||
- New custom fields are now automatically added to both creation and edit modals
|
||
- Deleting a custom field also removes it from modal configuration
|
||
- Updating a field's display name syncs to the modal configuration
|
||
- Thanks to @craziedde for reporting
|
||
|
||
- (#1256) Fixed links in custom properties not rendering as clickable in task cards
|
||
- Wikilinks (\`[[Note]]\`) now render correctly in Bases views
|
||
- Markdown links (\`[text](url)\`) now render correctly in all views
|
||
- Links in list-type properties are also properly rendered
|
||
- Thanks to @3zra47 for reporting
|
||
|
||
- (#1157) Fixed inline task embeds breaking layout when placed in indented bullet lists
|
||
- Task titles now wrap naturally within line boundaries instead of forcing the entire card to a new line
|
||
- Metadata (dates, tags, etc.) stays inline when space permits, with horizontal scrolling on hover when needed
|
||
- Thanks to @3zra47 for reporting
|
||
|
||
- (#1241) Fixed deleting custom priorities in settings removing the wrong priority when multiple priorities exist
|
||
- Thanks to @Anthonyhunter100 for reporting
|
||
|
||
- (#1165) Fixed Kanban view grouping by list properties (contexts, tags, projects) treating multiple values as a single combined column
|
||
- Tasks with multiple values now appear in each individual column (e.g., a task with \`contexts: [work, call]\` appears in both "work" and "call" columns)
|
||
- Added "Show items in multiple columns" option (enabled by default) to control this behavior
|
||
- Fixed drag-and-drop to properly add/remove individual values instead of replacing the entire list
|
||
- Fixed swimlane mode to also respect list property explosion
|
||
- Thanks to @dictionarymouse for reporting
|
||
|
||
- (#1217) Fixed inconsistent Ctrl+Click/Cmd+Click behavior for opening notes in new tabs
|
||
- Note cards and internal links now properly support Ctrl/Cmd+Click to open in new tab
|
||
- Added middle-click support for opening in new tab
|
||
- Thanks to @diegomarzaa for reporting
|
||
|
||
- (#1265) Fixed task edit modal corrupting markdown-style project links on save
|
||
- Links like \`[Project Name](path.md)\` were being wrapped in extra brackets: \`[[[Project Name](path.md)]]\`
|
||
- Plain text project names are now preserved as-is instead of being converted to wikilinks
|
||
- Markdown-style project links now resolve properly and display as linked (not orange/unresolved)
|
||
- Thanks to @minchinweb for reporting
|
||
|
||
- (#1266) Fixed Kanban view scroll position resetting to top of column after any change
|
||
- Clicking status dots, priority, or other task properties no longer jumps the column back to top
|
||
- Scroll position is now preserved for both regular columns and swimlane cells
|
||
- Thanks to @essouflenfer for reporting
|
||
|
||
- (#485), (#1221), (#1262) Fixed NLP parser not recognizing non-ASCII characters in tags, contexts, and projects
|
||
- Tags like \`#investigaci\xF3n\` were being truncated at accented characters (e.g., \`#investigaci\`)
|
||
- Non-Latin scripts (Chinese, Cyrillic, Japanese, etc.) were not recognized at all (e.g., \`@\u5BB6\`, \`#\u6742\u4E8B\`, \`@\u043E\u0437\u043D\u0430\u043A\u043E\u043C\u0438\u0442\u044C\u0441\u044F\`)
|
||
- Parser now uses Unicode-aware regex patterns to support all languages and scripts
|
||
- Thanks to @Arachnidai, @fidelaznar, and @qian1ing for reporting
|
||
|
||
- (#1249) Fixed project preview in task creation modal showing quadruple brackets (\`[[[[Project]]]]\`)
|
||
- Projects selected from autocomplete were being wrapped in extra wikilink brackets in the preview display
|
||
- Thanks to @2vzqwz8tvg-png for reporting
|
||
|
||
- (#1249) Fixed custom priority ordering in settings being unclear and non-intuitive
|
||
- Priority cards are now draggable to reorder (like statuses)
|
||
- Priorities are displayed in weight order (lowest to highest priority)
|
||
- New priorities are added at the end (highest priority) instead of with a fixed weight
|
||
- Thanks to @2vzqwz8tvg-png for reporting
|
||
|
||
- (#1272) Fixed recurrence anchor not being saved when set to "completion" during task creation
|
||
- Selecting "completion" as the recurrence anchor now correctly persists to the task frontmatter
|
||
- Thanks to @blaxcky for reporting
|
||
|
||
- (#1128) Fixed NLP parser not allowing slashes in context names
|
||
- Contexts like \`@shopping/groceries\` were being split into \`@shopping\` and \`/groceries\`
|
||
- Hierarchical context names now work the same as tags and projects
|
||
- Thanks to @wealthychef1 for reporting
|
||
|
||
- (#1170) Fixed \`dateCreated\` and \`dateModified\` not using custom property names when creating notes from calendar events
|
||
- Notes created from ICS events now respect the field mapping configured in settings
|
||
- Thanks to @maddie-m for reporting
|
||
|
||
- (#1171) Fixed calendar event toggles not responding to changes after initial load
|
||
- Toggling "Show scheduled tasks", "Show due tasks", and other event filters now correctly updates the calendar
|
||
- Previously, changing these toggles had no effect until the view was reloaded
|
||
- Thanks to @hangryscribe3 for reporting
|
||
|
||
- (#1198) Fixed project links being created relative to the wrong file when editing from Bases views
|
||
- Relative paths in project links are now correctly resolved relative to the task note file
|
||
- Previously, editing a task from a Bases view would create project links relative to the \`.base\` file
|
||
- Thanks to @minchinweb for reporting
|
||
|
||
`});var NAe,RAe=y(()=>{NAe=`# TaskNotes 4.0.5
|
||
|
||
## Changed
|
||
|
||
- (#790) Task edit modal now shows unresolved project links with appropriate styling
|
||
- Similar to how dependencies are displayed, unresolved projects now appear with visual indication
|
||
- Hovering over an unresolved project shows a tooltip explaining it couldn't be resolved
|
||
- Thanks to @aubreyz for reporting
|
||
|
||
## Fixed
|
||
|
||
- (#1011) Fixed chevrons incorrectly showing on tasks with no subtasks
|
||
- Project index was incorrectly adding all linked files instead of only files referenced in the projects field
|
||
- Now properly parses the projects field and only indexes those specific files as projects
|
||
- Also fixed alias handling in project and dependency links - aliases are now correctly stripped before link resolution
|
||
- Thanks to @craziedde for reporting
|
||
- (#1200) Fixed kanban drag & drop not updating task properties correctly
|
||
- Dragging tasks to different columns now properly triggers business logic (completedDate, auto-archive, webhooks)
|
||
- Previously, kanban updates bypassed \`updateProperty\` and directly modified frontmatter
|
||
- Thanks very much to @tvoklov for the PR
|
||
- (#1203) Fixed autocomplete dropdown being clipped inside NLP field boundaries
|
||
- Configure CodeMirror tooltips to render in document.body instead of constrained editor container
|
||
- Prevents suggestion dropdown from being hidden when it extends beyond the NLP field height
|
||
- Thanks to @Andrei-Ioda for reporting
|
||
- (#1172) Fixed task lists and checkboxes rendering incorrectly in task details editor
|
||
- Remove padding-left override on \`.cm-line\` to allow CodeMirror decorations (checkboxes, indentation) to render properly
|
||
- Content padding is now handled by \`.cm-content\` while \`.cm-line\` uses natural spacing
|
||
- Thanks to @nightroman for reporting
|
||
- Fixed relationships widget not appearing on project notes without frontmatter
|
||
- Widget now correctly shows on any note referenced as a project by tasks, regardless of whether the note has frontmatter
|
||
- Fixed task card and relationships widgets not appearing when opening notes in source mode
|
||
- Removed live preview mode restriction to allow widgets to render in both source and live preview modes
|
||
- (#901) Fixed calendar view toolbar buttons overflowing on narrow screens
|
||
- Added \`flex-wrap: wrap\` to calendar header toolbar to allow buttons to wrap to multiple lines
|
||
- Thanks to @RumiaKitinari for reporting
|
||
- (#1193), (#1194), (#1185) Fixed new calendar views not respecting user's default calendar settings
|
||
- Previously, new Bases calendar views used hardcoded inline defaults instead of user-configured preferences
|
||
- Calendar view initialization now correctly uses \`plugin.settings.calendarViewSettings\` as the fallback
|
||
- Thanks @ki5ck, @minchinweb and @ThamirysOlv for reporting
|
||
- Fixed calendar to ensure that it respects user's locale
|
||
- Tries to use calendar locale, then tries UI language, then system language, then falls back to English
|
||
- (#1043) Fixed default reminders with "at time of event" (0 offset) not being applied to tasks
|
||
- UI was displaying "1" instead of "0" for zero-offset reminders in settings
|
||
- Thanks to @dblinnikov for reporting
|
||
- (#1206) Fixed NLP status parsing regressions with trigger prefixes and temporal keywords
|
||
- Manually typing status trigger + label now correctly parses (e.g., \`*Done\` when label is \`Done\`)
|
||
- Status values containing temporal keywords no longer misparsed as dates (e.g., \`Expedite = Now\`)
|
||
- Thanks very much to @renatomen for the PR
|
||
- (#1212) Fixed "Show release notes on update" toggle not saving correctly
|
||
- Thanks to @Jon-dog for reporting
|
||
- (#1197) Add Portuguese language to list of translations in general tab settings
|
||
- Allows users to select the Portuguese translation option
|
||
- Thanks to @andysteel for the PR
|
||
- Fixed file properties displaying incorrectly in Bases views
|
||
- File properties like \`file.name\`, \`file.basename\`, \`file.size\`, etc. were showing as "Title" or returning null
|
||
- Now correctly extracts and displays all file properties from Obsidian's file metadata
|
||
- Supports both direct TFile properties (name, basename, extension, path, size, ctime, mtime) and computed properties (links, embeds, tags, backlinks, aliases)
|
||
`});var FAe,OAe=y(()=>{FAe=`# TaskNotes 4.0.4
|
||
|
||
## Added
|
||
|
||
- (#1134, #779) Added CMD+Enter (Mac) / Ctrl+Enter (Windows/Linux) keyboard shortcut support for saving in all modals
|
||
- Works from any input field in task creation, task edit, time entry, timeblock, and property selector modals
|
||
- Thanks to @luckb0x, @hamlim and @nightroman for the feature requests
|
||
|
||
## Fixed
|
||
|
||
- (#1181) Fixed vertical overflow in Kanban view columns with fewer than 15 tasks
|
||
- Prevents cards from extending beyond column boundaries before virtualization activates
|
||
- Thanks to @lomarcanys for reporting
|
||
- (#1177) Bases views now anchor recurring completion and calendar navigation to the right date
|
||
- Recurring completion from Bases Task List/Kanban uses the task's scheduled/due date instead of "today" (fixes complete_instances)
|
||
- Bases calendar navigation and property-based events use UTC anchors to avoid previous-day jumps
|
||
- Thanks to @nslee123 for flagging the issue
|
||
- Bases calendar navigation now respects UTC-anchored dates to avoid landing on the previous day
|
||
- Corrected all-day end date calculation to prevent off-by-one spans
|
||
- Added regression test for the UTC anchor behavior
|
||
- Thanks to KaCii for [flagging the issue](https://discord.com/channels/686053708261228577/1433165116702199880/1439757826380660767)
|
||
|
||
## Changed
|
||
|
||
- Refactored plugin styling to better align with Obsidian's native UI conventions
|
||
- Replaced all \`cursor: pointer\` with \`cursor: var(--cursor)\` (100+ instances) to follow Obsidian's cursor convention
|
||
- Removed forced \`border: none; box-shadow: none\` rules that were fighting against Obsidian's native button styling
|
||
- Scoped custom \`.tn-btn\` button system to settings modal only (\`.mod-settings\`), allowing Obsidian's native button styles to work elsewhere
|
||
- Thanks to @kepano for guidance
|
||
`});var LAe,zAe=y(()=>{LAe=`# TaskNotes 4.0.3
|
||
|
||
## Fixed
|
||
|
||
- (#1157) Fixed task embeds appearing on new line instead of inline with bullets in lists
|
||
- Changed inline task cards to use span elements instead of divs for proper inline flow
|
||
- Added max-width constraint to prevent wrapping when tasks are wider than editor
|
||
- Task embeds now display correctly inline with bullet points during live preview
|
||
- Thanks to @3zra47 for reporting
|
||
- (#1168) Fixed mini calendar stealing focus every few seconds when pinned to sidebar
|
||
- Thanks to @DearHaruHaru for reporting
|
||
- (#1161, #1162) Fixed "unexpected scalar" YAML parsing error in generated tasks-default.base template
|
||
- Changed nested quotes in "Not Blocked" filter from double to single quotes
|
||
- Thanks to @benschifman and @InterstellarRaccoon for reporting, @GarrettKaupp for identifying the fix
|
||
|
||
## Changed
|
||
|
||
- Updated task modal UI to use native Obsidian patterns for better theme compatibility
|
||
- Thanks to @kepano for feedback
|
||
|
||
`});var jAe,$Ae=y(()=>{jAe=`# TaskNotes 4.0.2
|
||
|
||
This release fixes some of the more urgent (and easy-to-fix) bugs that were introduced in the v4 major release. Thanks to everyone for your patience, and to those who have reported issues, for taking the time to do so. There will be more releases over the coming weeks to iron out some of v4's kinks.
|
||
|
||
## Added
|
||
|
||
- Added "Not Blocked" view to default task list template
|
||
- Shows incomplete tasks that are ready to work on (not blocked by incomplete dependencies)
|
||
- Uses Bases \`list.filter()\` to check completion status of each blocking task
|
||
- This new view can be accessed by regenerating the Task List view, or by copying the filters from the [default base templates documentation](https://tasknotes.dev/views/default-base-templates)
|
||
|
||
## Fixed
|
||
|
||
- (#1145, #1156) Fixed default Kanban view requiring manual 'Group by' configuration
|
||
- Default Kanban template now automatically includes \`groupBy\` property set to status
|
||
- Resolves "Kanban requires a 'Group by' property to be configured" error on first use
|
||
- Users no longer need to manually configure grouping through the Sort menu
|
||
- Thanks to @randomness42 and @seepage87 for reporting
|
||
- Fixed user-defined custom fields appearing as \`user:field_xxx\` in generated base templates
|
||
- Custom fields now use their actual property names (e.g., \`effort\` instead of \`user:field_1761435303709\`)
|
||
- Ensures Bases can properly query user-defined properties
|
||
- Also fixed \`totalTrackedTime\` to correctly map to the configured \`timeEntries\` property name
|
||
- (#1145) Improved Kanban error message when no 'Group by' property is configured
|
||
- Now includes instructions: "Click the 'Sort' button and select a property under 'Group by'"
|
||
- Thanks to @randomness42 for the suggestion
|
||
- (#1139, #1141) Fixed relationships widget not appearing in project notes
|
||
- Project references are now resolved to full file paths when indexing
|
||
- Uses Obsidian's link resolution API to handle wikilinks, markdown links, and relative paths
|
||
- Restores v3.x behavior where subtasks appear in parent project notes
|
||
- Thanks to @jhedlund, @n1njaznutz, and @luckb0x for reporting and testing
|
||
- Fixed dependency blocking status to be status-aware
|
||
- "Blocked (x)" pill now only appears when tasks have **incomplete** blocking dependencies
|
||
- Tasks with all completed blocking dependencies no longer show as blocked
|
||
- Fixed cache invalidation bug causing blocking/blocked pills to disappear when editing tasks
|
||
- When a task is modified, only forward dependencies are cleared (stored in its frontmatter)
|
||
- Reverse dependencies are preserved (stored in other tasks' frontmatter)
|
||
|
||
## Changed
|
||
|
||
- Removed custom TaskNotes icon from task modals
|
||
- Task creation and edit modals now use Obsidian's standard title styling
|
||
- Thanks to @kepano for the suggestion
|
||
- Moved default base templates documentation to \`docs/views/\`
|
||
- Location: \`docs/views/default-base-templates.md\`
|
||
- Added cross-references to official Obsidian Bases documentation
|
||
- Updated code comments to reference new documentation path
|
||
- Fixed incorrect quote escaping in default base templates documentation
|
||
- YAML examples now use proper single quotes for strings containing double quotes
|
||
`});var BAe,UAe=y(()=>{BAe=`# TaskNotes 4
|
||
|
||
TaskNotes 4.0.1 is a stability-focused major release that finishes the migration to Obsidian's Bases core plugin. Every task-facing view (Task List, Kanban, Calendar, Agenda, Mini Calendar, and the embedded Relationships widget) now runs on \`.base\` files. This refactor simplifies the plugin codebase, removes bespoke UI logic, and lets workflows feel native to Obsidian\u2014views are just files in your vault.
|
||
|
||
## Highlights
|
||
|
||
**New features and improvements:**
|
||
|
||
- Performance improvements
|
||
- Virtual scrolling in Task List and Kanban views handles **30,000+ tasks** without performance degradation
|
||
- **OAuth calendar integration**
|
||
- Google Calendar and Microsoft Outlook bi-directional sync
|
||
- Drag calendar events in the TaskNotes calendar to update them online
|
||
- **Configurable modals and NLP**
|
||
- New Modal Fields settings tab for moving, hiding, or requiring fields in create/edit modals
|
||
- Rich markdown editor and customizable NLP triggers, including autocomplete for user fields
|
||
- **Time management features**
|
||
- Time Entry Editor Modal
|
||
- Improved Timeblock creation and management
|
||
- Completion-based recurrence with \`recurrence_anchor\` field
|
||
- Skippable recurrence instances
|
||
|
||
**Bases architecture changes:**
|
||
|
||
- **Bases-first architecture**
|
||
- Task views ship as \`.base\` files inside \`TaskNotes/Views/\`
|
||
- Commands and ribbon buttons now open files you control
|
||
- Filtering/grouping/sorting uses Bases YAML instead of TaskNotes-specific UI
|
||
- Agenda is a dedicated list-mode calendar \`.base\` file for fast daily/weekly reviews
|
||
- **Inline workflows stay in sync**
|
||
- Unified Relationships widget embeds a Bases view so project subtasks, dependencies, and blocking tasks stay in one place
|
||
- Task cards inside notes honor the same Bases filtering/grouping rules as standalone views
|
||
|
||
## Why Bases?
|
||
|
||
Moving everything to Bases allowed us to delete thousands of lines of bespoke filtering logic, state management, and widget code. The plugin now leans on Obsidian's supported API, which:
|
||
|
||
- Reduces maintenance overhead and improves reliability
|
||
- Lets advanced users version-control and audit their view definitions
|
||
- Makes saved views portable between vaults
|
||
- Keeps TaskNotes behavior consistent with other Obsidian-native workflows
|
||
|
||
## Upgrade Notes
|
||
|
||
- Obsidian **1.10.1 or later** is required (Bases public API with group-by support)
|
||
- Enable the **Bases** core plugin before opening TaskNotes views
|
||
- Run **Settings \u2192 TaskNotes \u2192 General \u2192 Create Default Files** if you need fresh \`.base\` files
|
||
- Use **Export All Saved Views to Bases** to convert any legacy FilterBar saved views into \`.base\` files
|
||
- The Relationships widget uses \`TaskNotes/Views/relationships.base\`; adjust that file to change what appears inside notes
|
||
|
||
## Breaking Changes
|
||
|
||
- The old FilterBar UI has been removed\u2014all filtering and saved views live in \`.base\` files
|
||
- Legacy widget settings (\`showProjectSubtasks\`, \`showTaskDependencies\`, etc.) were replaced with \`showRelationships\` and \`relationshipsPosition\`
|
||
- Task view commands now fail if their mapped \`.base\` file is missing; configure paths under **Settings \u2192 TaskNotes \u2192 General \u2192 View Commands**
|
||
- **Priority sorting now uses alphabetical order instead of custom weights**
|
||
- In v3, TaskNotes used priority "weights" to determine sort order (higher weight = higher priority)
|
||
- In v4, Obsidian's Bases plugin sorts priorities alphabetically by their value
|
||
- The weight field has been removed from the settings UI
|
||
- **Workaround**: Name your priority values to sort alphabetically in your desired order
|
||
- Example: \`1-urgent\`, \`2-high\`, \`3-medium\`, \`4-normal\`, \`5-low\`
|
||
- Or: \`a-urgent\`, \`b-high\`, \`c-medium\`, \`d-normal\`, \`e-low\`
|
||
- Agenda view has been replaced by the list view in Calendar
|
||
- Grouping is not supported in this view, so the "Overdue" group is no longer provided
|
||
- A separate "Overdue" view is available in the "Task List" base file
|
||
|
||
## Known Issues
|
||
|
||
- Users upgrading from versions prior to 3.x should export saved views to Bases before deleting old plugin data
|
||
- Embedded Bases views still require the Bases plugin to remain enabled; disabling Bases will hide TaskNotes task views
|
||
|
||
## Details
|
||
|
||
### Added
|
||
|
||
- Virtual scrolling and lazy rendering to Bases views for handling thousands of notes without performance degradation - Thanks to @aubreyz and @turingexmachina for reporting performance issues and help with diagnosis
|
||
- Google Calendar and Microsoft Outlook integration via OAuth 2.0 with automatic syncing
|
||
- Time Entry Editor Modal for managing time entries (Alt-drag on calendar to create)
|
||
- Kanban Swimlane Layout with horizontal grouping and configurable column widths
|
||
- Saved View Converter button in settings to convert v3 saved filter views to \`.base\` files
|
||
- Context menus for time entries and ICS events in calendar views
|
||
- Calendar icon to ICS event titles for better visual distinction
|
||
- Hover tooltips for timeblocks in calendar views
|
||
- MiniCalendar view for Bases integration with monthly grid and dot indicators - Thanks to @aubreyz and @turingexmachina for reporting performance issues and help with diagnosis
|
||
- (#1090) Portuguese (Brazil) translation - Thanks to @andysteel for the contribution
|
||
- Configurable task modal fields with drag-and-drop reordering in new "Modal Fields" settings tab
|
||
- Rich markdown editor for NLP task creation with syntax highlighting and wikilink support
|
||
- Customizable NLP triggers with autocomplete and keyboard navigation
|
||
- Inline task link overlay enhancements with configurable visible properties
|
||
- Kanban column reordering via drag and drop with saved order per grouping property
|
||
- Mini calendar enhancements including week numbers, heat map visualization, note preview tooltips, and keyboard navigation
|
||
- Unified Relationships widget consolidating project subtasks, dependencies, and blocking relationships with automatic tabs
|
||
- Updated task card styling with improved hover effects, shadows, and gradient accents
|
||
- (#361) Completion-based recurrence support with \`recurrence_anchor\` field for tasks that recur based on completion date - Thanks to @luciolebrillante for the original feature request, and @jhedlund, @nschenone, @BryanWall, @realJohnDoe, and @kazerniel for additional input and interest
|
||
- (#416) Support for skipped recurrence instances with \`skipped_instances\` field and right-click skip/unskip in calendar - Thanks to @mdbraber for suggesting the array approach and @jerzy-dudzic for reporting the issue
|
||
- Sub-grouping support to Bases Task List view with nested grouping by any property and collapsible groups
|
||
- Documentation for default Bases templates showing all default \`.base\` file templates with examples
|
||
|
||
### Changed
|
||
|
||
- All views (Calendar, MiniCalendar, Kanban, Tasks, Agenda, Project Subtasks) now use Bases architecture with \`.base\` files
|
||
- Calendar sources (Google, Microsoft, ICS events) can be toggled independently with improved timezone handling
|
||
- Reorganized settings tabs with OAuth calendar settings in Integrations tab
|
||
- Refactored Bases integration to use public API and trust pre-sorted data
|
||
- Refactored calendar modules to use ES6 imports instead of lazy require() calls
|
||
- Time entry events now show task context menu on right-click
|
||
- Replaced MinimalNativeCache with just-in-time TaskManager for zero startup time and always-fresh task data
|
||
- Completed internationalization with 100% translation coverage across all 6 supported languages
|
||
- Migrated to i18n-state-manager CLI tool for improved translation management
|
||
- Bases view templates now generate dynamically based on user settings with adaptive task filters
|
||
- Updated Bases CalendarView to show TaskNotes in property-based events
|
||
- NLP system overhaul with consolidated trigger configuration and direct NaturalLanguageParser usage
|
||
- Simplified TaskCard interface and refactored TaskLinkWidget for consistency
|
||
- Settings UI enhancements with NLP triggers configurable through Features tab
|
||
- Refactored Bases views to use Component lifecycle properly with automatic cleanup
|
||
- Improved development experience by converting ESLint errors to warnings
|
||
- Renamed "Advanced Calendar" to "Calendar" throughout the UI
|
||
- Improved timeblock visual styling in calendar views with reduced border width and softer shadows
|
||
- Updated "Export All Views" button to "Export V3 Views" to clarify it migrates v3 saved views
|
||
- Improved internationalization (i18n) support in General settings tab with all Bases integration settings using translation keys
|
||
- Changed default Tasks List template view order with "All Tasks" first and added "Unscheduled" view
|
||
|
||
### Fixed
|
||
|
||
- (#843) Fixed task tag being added when "Identify tasks by" is set to "Property" - Thanks to @jack2game for reporting
|
||
- Fixed dark mode calendar borders
|
||
- Fixed Bases Kanban column ordering - Thanks to @mweichert for reporting
|
||
- Fixed state management bug in FilterSettingsComponent
|
||
- Fixed timezone handling for recurring events
|
||
- (#1022, #684) Fixed tasks randomly disappearing when Smart Connections plugin is enabled by eliminating race condition - Thanks to @alejandrospoz, @seepage87, @amarjt, @luckb0x, and camara-tech for reporting and help debugging
|
||
- (#992) Fixed "Failed to resolve module specifier 'obsidian'" error when moving recurring task instances in calendar - Thanks to @jalooc for reporting
|
||
- Fixed task dependencies not displaying on task cards with proper isBlocked and isBlocking flags
|
||
- Fixed Bases property mapping for user-configured field names
|
||
- Fixed Bases views not respecting user-configured visible properties
|
||
- Fixed MiniCalendar UTC anchoring for consistent timezone-independent date handling
|
||
- Fixed DateValue conversion in BasesDataAdapter for property-based events in CalendarView
|
||
- (#1084) Fixed word wrapping in NLP preview items - Thanks to @maybetm for the fix
|
||
- (#975) Fixed advanced calendar list headers not respecting theme colors - Thanks to @hugohil for the fix
|
||
- (#1089) Fixed embedded task list bases growing unbounded and leaving large empty space - Thanks to @same774 for reporting with screenshot
|
||
- Fixed "Highlight today" toggle and calendar view type persistence in Bases Calendar view options
|
||
- (#1050) Fixed task modal adding unwanted empty contexts and projects arrays - Thanks to @nightroman for reporting
|
||
- Fixed inline task link overlay layout prioritization and horizontal scrolling for metadata
|
||
- Fixed group collapse/expand functionality in TaskListView
|
||
- Fixed config loading race condition in KanbanView and CalendarView
|
||
- Fixed MiniCalendarView to use direct Bases API like other views
|
||
- (#893) Fixed yearly recurring tasks not always updating scheduled date to next occurrence when completed - Thanks to @VenturaNotes for reporting
|
||
- (#951) Fixed yearly recurring tasks not showing up in calendar's weekly, 3-day, or day views - Thanks to @bespokecomp for reporting
|
||
- (#889) Fixed git merge conflicts in calendar subscription metadata by storing in memory instead of disk - Thanks to @karlfrohlich for reporting
|
||
- Fixed recurrence modal not loading DTSTART date/time when editing existing recurrence rules
|
||
- (#1097) Fixed custom properties and formulas not displaying in Bases views using getValue() method - Thanks to @cathywu for reporting
|
||
- (#1099) Fixed issues with default Bases file creation including double-prefix bug and race condition - Thanks to @kmaustral for reporting
|
||
- (#1110) Fixed open recurring tasks appearing crossed out in Tasks view by using UTC-anchored dates - Thanks to @kmaustral for reporting
|
||
- (#1118) Fixed user-defined fields not working in inline task conversion to TaskNote - Thanks to @guncav for reporting
|
||
- Fixed kanban column width CSS constraints not matching settings slider range
|
||
- Fixed Kanban view showing empty columns for all user-defined statuses when grouping by status - Thanks to @williamcheuk03 for reporting
|
||
- (#1103) Fixed TaskNotes/Views folder being created unnecessarily on startup - Thanks to @Wayment9504 for reporting
|
||
- (#1133) Fixed empty priority columns not showing in Kanban view when "Hide empty columns" is disabled - Thanks to @luckb0x for reporting
|
||
- Fixed OAuth calendar cards showing "Unknown account" by removing non-functional Account field - Thanks to @Oblique for reporting
|
||
- Fixed incorrect Bases syntax in default template files with correct parameter naming
|
||
- Fixed incorrect Bases syntax in "Export V3 Views" feature with correct YAML structure
|
||
- (#1127) Fixed custom priority colors not being respected in Task List and Subtasks sections - Thanks to @HPmattsloper for reporting
|
||
- (#1043) Fixed inability to set "at time of event" (0 offset) as default reminder in settings - Thanks to @dblinnikov for reporting
|
||
- (#1055) Fixed break sessions being logged as \`type: work\` when started via command/hotkey - Thanks to @0-BSCode for reporting and debugging
|
||
- (#1024) Fixed date/time picker immediately closing when selecting time on iPhone by refactoring to native Modal components - Thanks to @3zra47 for reporting
|
||
- (#1122) Fixed inline task titles being truncated too aggressively with increased max-width - Thanks to @jacorvillo for reporting
|
||
- Fixed Obsidian crashes when invalid time values entered in Bases calendar view configuration
|
||
- (#1120) Fixed custom field mappings not being respected throughout the application - Thanks to @kmaustral for reporting
|
||
- (#1121) Fixed custom user fields being saved with auto-generated IDs instead of user-defined property keys - Thanks to @guncav for reporting
|
||
- (#1123) Fixed relationships widget only displaying on task notes, now appears on both task and project notes - Thanks to @dblinnikov for reporting
|
||
- Fixed time entries not showing in calendar view for tasks without scheduled or due dates
|
||
- (#1091) Fixed task card and relationships widgets appearing inside footnote editors - Thanks to @3zra47 for reporting
|
||
- (#1086) Fixed calendar "+more" popover showing white text on white background in dark mode - Thanks to @same774 for reporting
|
||
- (#1076) Fixed inability to create timeblocks ending at midnight (00:00) - Thanks to @skoove for reporting
|
||
- (#958) Fixed cursor jumping and layout shifts when typing near task card or relationships widgets in live preview - Thanks to @thesmithmode for detailed debugging information
|
||
- (#513) Fixed task card and relationships widgets not appearing in reading mode and fixed critical memory leak - Thanks to @berzernberg for reporting
|
||
|
||
### Removed
|
||
|
||
- Removed StatusSuggestionService (functionality consolidated into NaturalLanguageParser)
|
||
- Removed legacy FilterBar UI - all filtering now lives in \`.base\` files
|
||
- Removed legacy views
|
||
|
||
`});var HAe,VAe=y(()=>{HAe=`# TaskNotes 4.0.0-beta.3
|
||
|
||
> **Beta Release**
|
||
>
|
||
> You may encounter issues. Report problems on [GitHub Issues](https://github.com/callumalpass/tasknotes/issues).
|
||
|
||
## Added
|
||
|
||
- Updated task card styling
|
||
- Increased status dot size from 16px to 18px
|
||
- Added subtle shadows and transitions to card hover states
|
||
- Updated hover effects on status and priority dots with scaling and removed glow
|
||
- Modified metadata pills with backdrop blur and adjusted spacing
|
||
- Added box shadows to interactive elements (dates, projects, tags) on hover
|
||
- Updated animations to use cubic-bezier easing
|
||
- Added gradient accents to subtask and blocking task borders
|
||
- Fixed subtasks appearing behind parent card hover backgrounds
|
||
- Fixed subtask click and context menu events bubbling to parent cards
|
||
- Fixed subtasks inheriting parent priority and status colors
|
||
|
||
- (#361) Added completion-based recurrence support with \`recurrence_anchor\` field
|
||
- Tasks can now recur based on completion date instead of scheduled date
|
||
- Set \`recurrence_anchor: completion\` in task frontmatter to enable this behavior
|
||
- When completing a recurring task, the next occurrence will be scheduled relative to the completion date
|
||
- The DTSTART in the RRULE automatically updates to the completion date, ensuring calendar views show future occurrences at the correct dates
|
||
- Defaults to \`scheduled\` (original behavior) if not specified
|
||
- Useful for tasks like "Exercise weekly" where you want the next occurrence 7 days after you actually complete it, not 7 days after it was scheduled
|
||
- Example: Complete a weekly task 2 days late, and the next occurrence will be 7 days from the completion date (not the original scheduled date)
|
||
- Thanks to @luciolebrillante for the original feature request, and @jhedlund, @nschenone, @BryanWall, @realJohnDoe, and @kazerniel for additional input and interest
|
||
|
||
- (#416) Added support for skipped recurrence instances with \`skipped_instances\` field
|
||
- Recurring tasks can now have individual instances marked as "skipped" without completing them
|
||
- Skipped instances are stored in the \`skipped_instances\` frontmatter array (e.g., \`["2025-11-15", "2025-11-22"]\`)
|
||
- Right-click on a recurring task instance in calendar views to skip/unskip it
|
||
- Visual styling differentiates skipped instances:
|
||
- Calendar views: Gray background with muted appearance
|
||
- Task cards: Strike-through text with gray styling
|
||
- Skipped instances don't affect the recurrence pattern - future instances continue as scheduled
|
||
- Useful for holidays, vacations, or other planned exceptions to recurring tasks
|
||
- Thanks to @mdbraber for the suggestion to use an array similar to \`complete_instances\`, and @jerzy-dudzic for reporting the issue
|
||
|
||
|
||
## Fixed
|
||
|
||
- (#893) Fixed yearly recurring tasks not always updating scheduled date to next occurrence when completed
|
||
- Increased look-ahead period for yearly recurrence from 365 days to 800 days (~2.2 years)
|
||
- Also optimized look-ahead periods for other frequencies: daily (30 days), weekly (90 days), monthly (400 days)
|
||
- Ensures the next occurrence is always found when completing recurring task instances
|
||
- Thanks to @VenturaNotes for reporting
|
||
|
||
- (#951) Fixed yearly recurring tasks not showing up in calendar's weekly, 3-day, or day views
|
||
- Extended the look-ahead period for yearly recurring tasks when generating calendar instances
|
||
- Calendar views now look ahead ~2.2 years for yearly tasks to ensure occurrences appear even in short date ranges
|
||
- Only displays instances that fall within the actual visible calendar range
|
||
- Weekly recurring tasks were unaffected and continued to work correctly
|
||
- Thanks to @bespokecomp for reporting
|
||
|
||
- (#889) Fixed git merge conflicts in calendar subscription metadata
|
||
- Calendar subscription \`lastFetched\` and \`lastError\` fields are now stored in memory instead of being saved to disk
|
||
- Prevents git conflicts when syncing vaults across multiple computers that independently fetch calendar subscriptions
|
||
- The "last synced" timestamp in settings will reset on plugin reload, but subscriptions will re-fetch automatically
|
||
- Thanks to @karlfrohlich for reporting
|
||
|
||
- Fixed recurrence modal not loading DTSTART date/time when editing existing recurrence rules
|
||
- The custom recurrence modal now correctly parses and displays the start date and time fields
|
||
- Fixed parser that was splitting on \`=\` instead of \`:\` for DTSTART values
|
||
|
||
- (#1097) Fixed custom properties and formulas not displaying in Bases views
|
||
- Updated TaskCard to use Bases API's getValue() method for formulas and custom note properties
|
||
- Formulas now work correctly using \`formula.NAME\` syntax
|
||
- Custom note properties now work correctly using \`note.PROPERTY\` syntax
|
||
- Thanks to @cathywu for reporting
|
||
|
||
- (#1099) Fixed issues with default Bases file creation
|
||
- Fixed double-prefix bug in relationships template that generated invalid filter expressions like \`note.note.projects\`
|
||
- Fixed race condition where files created during plugin load wouldn't appear in file explorer
|
||
- Default Bases files now generate with correct property paths and appear reliably in the file explorer
|
||
- Thanks to @kmaustral for reporting
|
||
|
||
- (#1110) Fixed open recurring tasks appearing crossed out in Tasks view
|
||
- Removed stale \`selectedDate\` property that was never updated in v4
|
||
- Tasks view now uses fresh UTC-anchored "today" for correct recurring task completion status
|
||
- Fixes issue where tasks completed yesterday would appear crossed out today for users in positive UTC offset timezones
|
||
- Also fixed KanbanView to use UTC-anchored dates for consistency
|
||
- Thanks to @kmaustral for reporting
|
||
|
||
- (#1118) Fixed user-defined fields not working in inline task conversion
|
||
- User-defined fields like \`>customfield value\` now properly convert to frontmatter when using the "TaskNote: Convert task to TaskNote" command
|
||
- Fixed fields appearing with internal IDs (e.g., \`field_1761435101864\`) instead of configured frontmatter key names
|
||
- Array values are now properly joined with commas
|
||
- Added \`userFields\` property to \`ParsedTaskData\` interface to support custom fields throughout the conversion flow
|
||
- Thanks to @guncav for reporting
|
||
|
||
- Fixed kanban column width CSS constraints not matching settings
|
||
- Updated CSS min-width from 280px to 200px and max-width from 350px to 500px to match slider range
|
||
- Column width slider now works correctly across the full 200-500px range
|
||
|
||
- Kanban view now shows empty columns for all user-defined statuses when grouping by status
|
||
- Empty columns appear for custom statuses defined in settings, even when no tasks have that status
|
||
- Allows users to drag tasks into empty status columns
|
||
- Works in both flat kanban view and swimlane mode
|
||
- Respects the existing "Hide empty columns" setting
|
||
- Thanks to @williamcheuk03 for reporting this issue
|
||
`});var qAe,WAe=y(()=>{qAe=`# TaskNotes 4.0.0-beta.2
|
||
|
||
> **Beta Release**
|
||
>
|
||
> You may encounter issues. Report problems on [GitHub Issues](https://github.com/callumalpass/tasknotes/issues).
|
||
|
||
## Added
|
||
|
||
- (#1090) Portuguese (Brazil) translation
|
||
- Full Portuguese (pt-BR) localization support
|
||
- A big thanks to @andysteel for the contribution
|
||
- **Configurable task modal fields**
|
||
- New "Modal Fields" settings tab for complete control over task creation and edit modals
|
||
- Configure which fields appear in creation vs edit modals independently
|
||
- Drag-and-drop reordering of fields within groups (metadata, organization, dependencies, custom)
|
||
- Enable/disable individual fields (including core fields like contexts, tags, time estimate)
|
||
- Organize fields into groups
|
||
- Automatic migration of existing user-defined fields
|
||
- Title and details fields support visibility toggling (ordering fixed for consistency)
|
||
- **Rich markdown editor for NLP task creation**
|
||
- Replaced plain textarea with full CodeMirror markdown editor
|
||
- Live preview, syntax highlighting, and wikilink support
|
||
- Ctrl/Cmd+Enter keyboard shortcut to save task
|
||
- Esc/Tab keyboard shortcuts for modal control
|
||
- **Customizable NLP triggers with autocomplete**
|
||
- Configure custom trigger characters/strings for each property type (tags, contexts, projects, status, priority)
|
||
- Supports user-defined field triggers
|
||
- CodeMirror-based autocomplete with keyboard navigation (arrow keys, Enter, Tab)
|
||
- Quote support for multi-word values in user fields
|
||
- Native tag suggester integration when using # trigger
|
||
- **Inline task link overlay enhancements**
|
||
- Configurable visible properties for inline task cards
|
||
- PropertySelectorModal for selecting which properties to display
|
||
- Improved layout: title prioritized, horizontal scrolling for metadata
|
||
- Real-time updates when task data changes
|
||
- **New utility services**
|
||
- \`TriggerConfigService\` - manages NLP trigger configurations
|
||
- \`PropertySelectorModal\` - reusable multi-select property picker
|
||
- Property helpers for consistent property handling across views
|
||
- Kanban column reordering via drag and drop
|
||
- Drag column headers to reorder columns
|
||
- Column order is saved per grouping property
|
||
- Visual feedback during drag operations
|
||
- Mini calendar enhancements (in progress)
|
||
- Week numbers column
|
||
- Heat map intensity visualization
|
||
- Note preview tooltips on hover
|
||
- Keyboard navigation
|
||
- **Unified Relationships widget**
|
||
- Consolidated project subtasks, task dependencies, and blocking relationships into a single dynamic widget
|
||
- Four automatic tabs: Subtasks (Kanban), Projects (List), Blocked By (List), Blocking (Kanban)
|
||
- Tabs automatically show/hide based on available relationship data
|
||
- Bases views handle all data updates reactively - no manual refresh needed
|
||
- Single configuration setting: show/hide and position (top/bottom)
|
||
- Significantly reduced code complexity (430 fewer lines)
|
||
|
||
## Fixed
|
||
|
||
- (#1084) Fixed word wrapping in NLP preview items
|
||
- Thanks to @maybetm for the fix
|
||
- (#975) Fixed advanced calendar list headers not respecting theme colors
|
||
- Thanks to @hugohil for the fix
|
||
- (#1089) Fixed embedded task list bases growing unbounded and leaving large empty space
|
||
- Embedded bases now scroll internally instead of expanding to show all tasks
|
||
- Consistent behavior between task list and kanban embedded views
|
||
- Thanks to @same774 for reporting with screenshot
|
||
- **Bases Calendar view options now working correctly**
|
||
- Fixed "Highlight today" toggle not applying - now properly adds/removes CSS class when toggled
|
||
- Fixed calendar view type (month/week/day/etc) not being saved when changed via calendar buttons
|
||
- View type is now persisted when users click month/week/day buttons in the calendar UI
|
||
- (#1050) Task modal no longer adds unwanted empty contexts and projects arrays
|
||
- FieldMapper now checks if arrays are empty before writing to frontmatter
|
||
- Thanks to @nightroman for reporting this issue
|
||
- **Inline task link overlay fixes**
|
||
- Fixed layout prioritization: title now prioritized over metadata
|
||
- Added horizontal scrolling for metadata to prevent overflow
|
||
- Fixed real-time update listeners for task data changes
|
||
- Fixed group collapse/expand functionality in TaskListView
|
||
- Re-registered click event listener for group headers using Component API
|
||
- Groups can now be properly collapsed and expanded
|
||
- Fixed config loading race condition in KanbanView and CalendarView
|
||
- Config is now properly loaded in onload() lifecycle method
|
||
- Views wait for config before rendering options
|
||
- Fixed MiniCalendarView to use direct Bases API like other views
|
||
- Consistent use of Component lifecycle methods
|
||
- Proper cleanup in onunload()
|
||
|
||
## Changed
|
||
|
||
- **NLP system overhaul**
|
||
- Replaced \`StatusSuggestionService\` wrapper with direct \`NaturalLanguageParser\` usage
|
||
- Consolidated trigger configuration into unified \`TriggerConfigService\`
|
||
- Enhanced \`NaturalLanguageParser\` with full trigger and user field support
|
||
- Removed custom # tag autocomplete in favor of Obsidian's native tag suggester (when using # trigger)
|
||
- **Task card and editor improvements**
|
||
- Simplified \`TaskCard\` interface - removed unused options (showCheckbox, showArchiveButton, groupByDate)
|
||
- Refactored \`TaskLinkWidget\` to use unified \`TaskCard\` component for consistency
|
||
- Added support for inline vs. block layout modes in task cards
|
||
- Improved task card BEM CSS with better styling for inline mode
|
||
- **Settings UI enhancements**
|
||
- NLP triggers now configurable through Settings > Features tab
|
||
- Added settings for inline task card visible properties
|
||
- Improved appearance tab with property selector integration
|
||
- Better organization of NLP-related settings
|
||
- Refactored Bases views to use Component lifecycle properly
|
||
- Views now extend Component and use onload()/onunload()
|
||
- Automatic cleanup of event listeners via Component.registerDomEvent()
|
||
- Improved state management and ephemeral state handling
|
||
- Improved development experience
|
||
- Converted ESLint errors to warnings for non-blocking development
|
||
- Fixed various linting issues and unused imports
|
||
|
||
## Removed
|
||
|
||
- Removed \`StatusSuggestionService\` (functionality consolidated into \`NaturalLanguageParser\`)
|
||
|
||
## Breaking Changes
|
||
|
||
- **Relationships widget settings consolidated** (automatic migration)
|
||
- Old settings removed: \`showProjectSubtasks\`, \`projectSubtasksPosition\`, \`showTaskDependencies\`, \`taskDependenciesPosition\`
|
||
- New unified settings: \`showRelationships\`, \`relationshipsPosition\`
|
||
- Widget now appears on ALL notes (tasks, projects, regular notes) - Bases filtering controls which tabs are visible
|
||
- **Migration**: Existing users will see the new unified widget automatically. If you had project subtasks enabled, relationships widget will be enabled by default
|
||
- **Bases file change**: The command mapping changed from \`'project-subtasks': 'TaskNotes/Views/project-subtasks.base'\` to \`'relationships': 'TaskNotes/Views/relationships.base'\`
|
||
- Run "Create Default Files" in Settings > General to create the new \`relationships.base\` file
|
||
|
||
`});var YAe,GAe=y(()=>{YAe=`# TaskNotes 4.0.0-beta.1
|
||
|
||
> **Beta Release**
|
||
>
|
||
> You may encounter issues. Report problems on [GitHub Issues](https://github.com/callumalpass/tasknotes/issues).
|
||
|
||
## Added
|
||
|
||
- Added context menus for time entries and ICS events in calendar
|
||
- Time entries: Right-click shows task context menu, left-click opens time entry editor modal
|
||
- ICS/Google/Microsoft Calendar events: Right-click shows ICS event context menu with options to show details, create task/note, link note, and copy info
|
||
- Added calendar icon to ICS event titles for better visual distinction
|
||
- Added hover tooltips for timeblocks in calendar views
|
||
- Added **MiniCalendar view** for Bases integration
|
||
- Monthly calendar grid with dot indicators on days with notes
|
||
- Configurable date property (file.ctime, note.dateCreated, etc.)
|
||
- Fuzzy selector modal for selecting notes on clicked days
|
||
- Ctrl+click (or Cmd+click on Mac) on any day opens/creates daily note
|
||
- Added virtual scrolling and lazy rendering to Bases views for high-performance handling of large datasets
|
||
- TaskListView: Virtual scrolling for 100+ tasks in flat and grouped views with collapsible groups
|
||
- KanbanView: Virtual scrolling for regular columns (30+ tasks) and swimlane cells (30+ tasks per cell)
|
||
- Tested with up to **30,000 notes** with no performance degradation
|
||
- Thanks to @aubreyz and @turingexmachina for their reports of performance issues and diagnosis help
|
||
|
||
|
||
## Changed
|
||
|
||
- Refactored Bases integration to use public API and trust pre-sorted data
|
||
- Migrated all three views (Task List, Kanban, Calendar) to clean class-based architecture
|
||
- Removed legacy view files and ~500 lines of redundant sorting/grouping logic
|
||
- Introduced BasesDataAdapter, PropertyMappingService, and BasesViewBase abstractions
|
||
- Trusts Bases plugin to provide pre-sorted and pre-grouped data via public API
|
||
- Reduced code duplication by 40% while maintaining full feature parity
|
||
- Refactored calendar modules to use ES6 imports instead of lazy require() calls
|
||
- Removed all dynamic require() calls from calendar-core.ts and calendar-view.ts
|
||
- Consolidated all imports at module top level
|
||
- Improves code maintainability, makes dependencies explicit, and follows modern TypeScript best practices
|
||
- Time entry events now show task context menu on right-click (previously had no context menu)
|
||
- Replaced MinimalNativeCache with just-in-time TaskManager for improved reliability
|
||
- Removed complex index synchronization in favor of direct MetadataCache queries
|
||
- Eliminated 7 internal indexes (tasksByDate, tasksByStatus, overdueTasks, etc.)
|
||
- Added minimal DependencyCache for task dependencies and project references only
|
||
- Zero startup time (no index building required)
|
||
- Always provides fresh, accurate task data from Obsidian's MetadataCache
|
||
- Completed internationalization with 100% translation coverage across all supported languages
|
||
- Added 90 missing translation keys to English base
|
||
- Completed 829 translations across 6 languages (German, Spanish, French, Japanese, Russian, Chinese)
|
||
- All locales now have complete coverage (1745/1745 keys)
|
||
- Improved translation quality for migration system, calendar settings, statistics, ICS events, and filter components
|
||
- Migrated to i18n-state-manager CLI tool for translation management
|
||
- Replaced custom scripts with more robust i18n-state-manager package
|
||
- Added i18n-state.config.json for project-specific patterns
|
||
- New features: find-unused, check-duplicates, improved stale detection
|
||
- Hash-based state tracking and ripgrep-based scanning for performance
|
||
- Bases view templates now generate dynamically based on user settings
|
||
- Task filters adapt to user's task identification method (tag or property)
|
||
- Property ordering reflects defaultVisibleProperties setting
|
||
- Uses correct YAML object notation for Bases filters
|
||
- Maintains backward compatibility with legacy static templates
|
||
- Updated Bases CalendarView to show TaskNotes in property-based events
|
||
- Tasks can now be visualized on calendar via any date property (dateCreated, scheduled, due, etc.)
|
||
- Previously all TaskNotes were filtered out from property-based events
|
||
|
||
## Fixed
|
||
|
||
- (#1022, #684) Fixed tasks randomly disappearing when Smart Connections plugin is enabled
|
||
- Eliminated race condition caused by index synchronization delays
|
||
- TaskManager now reads directly from Obsidian's MetadataCache instead of maintaining separate indexes
|
||
- No more timing-sensitive code that could conflict with other plugins' metadata processing
|
||
- Tasks will always be visible regardless of other plugins' processing times
|
||
- Thanks to @alejandrospoz, @seepage87, @amarjt, @luckb0x, camara-tech for reporting and help debugging.
|
||
- (#992) Fixed "Failed to resolve module specifier 'obsidian'" error when moving recurring task instances in calendar
|
||
- Removed unnecessary dynamic imports that were causing module resolution failures
|
||
- Consolidated imports at top of calendar-core.ts module
|
||
- Thanks to @jalooc for reporting this issue
|
||
- Fixed task dependencies not displaying on task cards
|
||
- TaskManager now properly calculates isBlocked and isBlocking flags from dependency data
|
||
- Added missing property extractors and renderers in TaskCard for all dependency-related fields
|
||
- Dependency information now shows correctly in Bases views, task note widgets, and other views
|
||
- Shows "Blocked (n)" and "Blocking (n)" pills, plus detailed task links
|
||
- Fixed Bases property mapping for user-configured field names
|
||
- PropertyMappingService now correctly strips prefixes and applies FieldMapper transformations
|
||
- Example: User configures "state" \u2192 "status", Bases provides "note.state", now correctly maps to "status"
|
||
- Ensures TaskCard properly recognizes and renders user-configured properties
|
||
- Fixed Bases views not respecting user-configured visible properties
|
||
- Now prioritizes Bases 1.10.0+ public API config.getOrder() method
|
||
- Removed reliance on internal API paths that no longer work
|
||
- Filters out blocked/blocking properties when using defaults (only shown when explicitly requested via blockedBy)
|
||
- Fixed MiniCalendar UTC anchoring for consistent timezone-independent date handling
|
||
- Fixed DateValue conversion in BasesDataAdapter
|
||
- DateValue objects have {date: Date, time: boolean} structure
|
||
- Now properly checks for value.date instanceof Date before legacy conversion methods
|
||
- Fixes property-based events in CalendarView
|
||
|
||
`});var KAe,ZAe=y(()=>{KAe=`# TaskNotes 4.0.0-beta.0
|
||
|
||
> **Beta Release**
|
||
>
|
||
> You may encounter issues. Report problems on [GitHub Issues](https://github.com/callumalpass/tasknotes/issues).
|
||
|
||
## What's New in v4
|
||
|
||
TaskNotes v4 migrates all views to the Bases system.
|
||
|
||
### Breaking Changes
|
||
|
||
- **Minimum Obsidian version: 1.10.1**
|
||
- **View commands now use Bases files** - Ribbon icons and command palette commands (Calendar, Kanban, Tasks, Agenda, Project Subtasks) now open \`.base\` files created automatically in your vault
|
||
- **Saved filter views** - Custom saved views can be converted to \`.base\` files using a conversion button in settings
|
||
|
||
## Added
|
||
|
||
### OAuth Calendar Integration
|
||
|
||
- Google Calendar and Microsoft Outlook integration via OAuth 2.0
|
||
- View and sync calendar events in Bases calendar
|
||
- Drag events in the TaskNotes bases calendar to change the event's time online
|
||
- Events sync every 15 minutes or upon local change
|
||
- Requires creating your own OAuth application (approximately 15 minutes)
|
||
- See [Calendar Setup Guide](https://tasknotes.dev/calendar-setup)
|
||
|
||
### Time Entry Editor Modal
|
||
|
||
- Dedicated interface for managing time entries
|
||
- Alt-drag on Bases calendar to create time entries
|
||
- View total tracked time per task
|
||
- Edit and delete time entries
|
||
- Access via Task Action Palette (Alt/Opt + Enter)
|
||
|
||
### Kanban Swimlane Layout
|
||
|
||
- Horizontal swimlane grouping option for Bases Kanban
|
||
- Group tasks by status, priority, or other fields
|
||
- Hide empty columns
|
||
- Configurable column widths
|
||
- Improved drag-and-drop in swimlane mode
|
||
|
||
### Saved View Converter
|
||
|
||
- Conversion button in settings to convert saved filter views to \`.base\` files
|
||
- Original settings preserved
|
||
- Converted views created in \`TaskNotes/Views/\`
|
||
|
||
## Changed
|
||
|
||
### View System Architecture
|
||
|
||
- All views now use Bases architecture
|
||
- Calendar, Kanban, Tasks, Agenda, and Project Subtasks are \`.base\` files
|
||
- Views stored in \`TaskNotes/Views/\`
|
||
- Keyboard shortcuts and ribbon icons map to \`.base\` files
|
||
- Configure file paths in Settings \u2192 Integrations \u2192 Bases Integration
|
||
|
||
### Calendar
|
||
|
||
- Control which calendar sources display
|
||
- Toggle Google Calendar, Microsoft Calendar, and ICS events independently
|
||
- Configurable list view with custom day count (2-10 days)
|
||
- Improved timezone handling for recurring events
|
||
|
||
### Settings
|
||
|
||
- Reorganized settings tabs
|
||
- OAuth calendar settings in Integrations tab
|
||
- Updated help text
|
||
|
||
## Fixed
|
||
|
||
- (#843) Fixed task tag being added when "Identify tasks by" is set to "Property"
|
||
- TaskCreationModal, TaskEditModal, and InstantTaskConvertService now respect taskIdentificationMethod setting
|
||
- Thanks to @jack2game
|
||
- Fixed dark mode calendar borders
|
||
- Fixed Bases Kanban column ordering - Thanks to @mweichert
|
||
- Fixed state management bug in FilterSettingsComponent
|
||
- Fixed timezone handling for recurring events
|
||
|
||
## Migration Guide
|
||
|
||
### First Launch
|
||
|
||
1. Default view files are created automatically in \`TaskNotes/Views/\`
|
||
2. Ribbon and command palette commands now open \`.base\` files
|
||
3. Review Settings \u2192 General to customize view file paths
|
||
|
||
### Converting Saved Filter Views
|
||
|
||
1. Go to Settings \u2192 General
|
||
2. Click the conversion button to convert saved filter views to \`.base\` files
|
||
3. Converted views appear in a file in \`TaskNotes/Views/\`
|
||
|
||
### Calendar Integration (Optional)
|
||
|
||
1. Go to Settings \u2192 Integrations \u2192 OAuth Calendar Integration
|
||
2. Follow the [Calendar Setup Guide](https://tasknotes.dev/calendar-setup)
|
||
3. Create OAuth applications with Google and/or Microsoft (approximately 15 minutes)
|
||
4. Enter Client ID and Secret in calendar cards
|
||
5. Click Connect
|
||
|
||
## Known Limitations
|
||
|
||
- Quick OAuth setup is disabled - only advanced setup (your own credentials) is available
|
||
- Saved filter views require manual conversion using the button in settings
|
||
- Migration is one-way - downgrading to v3 may require manual reconfiguration
|
||
- OAuth setup requires creating applications with Google/Microsoft
|
||
|
||
## Feedback
|
||
|
||
Report issues on [GitHub](https://github.com/callumalpass/tasknotes/issues). Include:
|
||
|
||
- Obsidian version
|
||
- Steps to reproduce
|
||
- Console errors (Ctrl/Cmd + Shift + I)
|
||
- Whether issue occurs after migration or fresh install
|
||
`});var QAe,JAe,XAe=y(()=>{vMe();bMe();wMe();xMe();EMe();PMe();AMe();IMe();RMe();OMe();zMe();$Me();UMe();VMe();WMe();GMe();ZMe();JMe();eAe();rAe();aAe();sAe();lAe();dAe();pAe();fAe();gAe();vAe();bAe();wAe();xAe();EAe();PAe();AAe();IAe();RAe();OAe();zAe();$Ae();UAe();VAe();WAe();GAe();ZAe();QAe="4.12.5",JAe=[{version:"4.12.5",content:yMe,date:"2026-08-26T12:59:44+10:00",isCurrent:!0},{version:"4.12.4",content:kMe,date:"2026-08-24T00:23:43+10:00",isCurrent:!1},{version:"4.12.3",content:TMe,date:"2026-08-10T08:08:05+10:00",isCurrent:!1},{version:"4.12.2",content:SMe,date:"2026-08-09T15:41:43+10:00",isCurrent:!1},{version:"4.12.1",content:CMe,date:"2026-08-08T13:02:07+10:00",isCurrent:!1},{version:"4.12.0",content:DMe,date:"2026-08-07T18:42:18+10:00",isCurrent:!1},{version:"4.11.1",content:MMe,date:"2026-06-26T08:38:30+10:00",isCurrent:!1},{version:"4.11.0",content:_Me,date:"2026-06-10T08:09:52+10:00",isCurrent:!1},{version:"4.10.2",content:NMe,date:"2026-06-05T22:52:07+10:00",isCurrent:!1},{version:"4.10.1",content:FMe,date:"2026-06-05T10:16:05+10:00",isCurrent:!1},{version:"4.10.0",content:LMe,date:"2026-06-01T21:50:12+10:00",isCurrent:!1},{version:"4.9.2",content:jMe,date:"2026-05-30T05:43:04+10:00",isCurrent:!1},{version:"4.9.1",content:BMe,date:"2026-05-26T18:40:45+10:00",isCurrent:!1},{version:"4.9.0",content:HMe,date:"2026-05-24T09:35:31+10:00",isCurrent:!1},{version:"4.8.1",content:qMe,date:"2026-05-20T17:46:40+10:00",isCurrent:!1},{version:"4.8.0",content:YMe,date:"2026-05-19T18:47:44+10:00",isCurrent:!1},{version:"4.7.2",content:KMe,date:"2026-05-14T22:13:36+10:00",isCurrent:!1},{version:"4.7.1",content:QMe,date:"2026-05-14T08:02:31+10:00",isCurrent:!1},{version:"4.7.0",content:XMe,date:"2026-05-14T06:40:12+10:00",isCurrent:!1},{version:"4.6.0",content:tAe,date:"2026-05-13T08:24:23+10:00",isCurrent:!1},{version:"4.5.3",content:nAe,date:"2026-04-30T22:32:11+10:00",isCurrent:!1},{version:"4.5.2",content:iAe,date:"2026-04-26T20:11:43+10:00",isCurrent:!1},{version:"4.5.1",content:oAe,date:"2026-03-31T20:39:11+11:00",isCurrent:!1},{version:"4.5.0",content:cAe,date:"2026-03-31T08:48:09+11:00",isCurrent:!1},{version:"4.4.0",content:uAe,date:"2026-02-17T21:53:32+11:00",isCurrent:!1},{version:"4.3.3",content:mAe,date:"2026-02-15T15:09:21+11:00",isCurrent:!1},{version:"4.3.2",content:hAe,date:"2026-02-08T19:22:37+11:00",isCurrent:!1},{version:"4.3.1",content:yAe,date:"2026-02-08T14:06:51+11:00",isCurrent:!1},{version:"4.3.0",content:kAe,date:"2026-01-07T20:31:36+11:00",isCurrent:!1},{version:"4.2.1",content:TAe,date:"2026-01-04T11:51:59+11:00",isCurrent:!1},{version:"4.2.0",content:SAe,date:"2026-01-02T08:38:48+11:00",isCurrent:!1},{version:"4.1.3",content:CAe,date:"2025-12-08T21:28:48+11:00",isCurrent:!1},{version:"4.1.2",content:DAe,date:"2025-12-07T16:22:44+11:00",isCurrent:!1},{version:"4.1.1",content:MAe,date:"2025-12-01T21:44:07+11:00",isCurrent:!1},{version:"4.1.0",content:_Ae,date:"2025-11-30T18:58:10+11:00",isCurrent:!1},{version:"4.0.5",content:NAe,date:"2025-11-23T20:27:09+11:00",isCurrent:!1},{version:"4.0.4",content:FAe,date:"2025-11-20T23:38:28+11:00",isCurrent:!1},{version:"4.0.3",content:LAe,date:"2025-11-20T08:16:00+11:00",isCurrent:!1},{version:"4.0.2",content:jAe,date:"2025-11-19T21:50:00+11:00",isCurrent:!1},{version:"4.0.1",content:BAe,date:"2025-11-18T22:29:23+11:00",isCurrent:!1},{version:"4.0.0-beta.3",content:HAe,date:"2025-11-17T07:51:37+11:00",isCurrent:!1},{version:"4.0.0-beta.2",content:qAe,date:"2025-11-09T20:36:35+11:00",isCurrent:!1},{version:"4.0.0-beta.1",content:YAe,date:"2025-11-04T20:05:28+11:00",isCurrent:!1},{version:"4.0.0-beta.0",content:KAe,date:"2025-10-30T00:02:44+11:00",isCurrent:!1}]});function S6(r){try{return decodeURIComponent(r)}catch(e){return r}}function t_e(r){let e=r.trim();return e.startsWith("<")&&e.endsWith(">")?e.slice(1,-1).trim():e}function vO(r){var a;if(!r)return"";let e=S6(t_e(r));return((a=e.split(/[#!^]/)[0])!=null?a:e).replace(/^\/+/,"").replace(/\.md$/i,"").trim()}function x6(r){return r?S6(r).trim().replace(/^[#^]+/,"").trim():""}function e_e(r){var n;let e=vO(r),t=e.split("/").filter(Boolean);return(n=t[t.length-1])!=null?n:e}function JD(r){if(!r)return;let e=S6(t_e(r)),t=e.search(/[#^]/);if(t!==-1)return x6(e.slice(t))||void 0}function kd(r,e){let t=x6(e);if(!t)return;let n=r==null?void 0:r.trim();return n?`${n} > ${t}`:t}function C6(r,e,t,n){let a=vO(r)||x6(r);if(!a||!e)return!1;let i=vO(e),s=vO(t),o=new Set([i,e_e(i)]);s&&(o.add(s),o.add(e_e(s)));let l=JD(t);if(l){o.add(l);let c=kd(n,l);c&&o.add(c)}return o.has(a)}function nT(r,e,t){let n=r==null?void 0:r.trim();if(n&&!C6(n,e,t))return n}var kO=y(()=>{});var E6={};at(E6,{TaskLinkDetectionService:()=>XD});var Yg,XD,bO=y(()=>{Yg=require("obsidian");K();kO();XD=class{constructor(e,t){this.linkCache=new Map;this.plugin=e,this.logger=t!=null?t:N({tag:"TaskLinkDetectionService",isDebugEnabled:()=>e.settings.enableDebugLogging})}async detectTaskLink(e,t,n="wikilink"){let a=n==="wikilink"?this.parseWikilink(e):this.parseMarkdownLink(e);if(!a)return{isValidTaskLink:!1};let{linkPath:i,displayText:s}=a,o=`${t}:${i}`,l=this.linkCache.get(o);if(l){let p=this.plugin.app.vault.getAbstractFileByPath(i);if(p instanceof Yg.TFile&&p.stat.mtime===l.lastModified)return l.result}let c=this.resolveLinkPath(i,t);if(!c){let p={isValidTaskLink:!1};return this.cacheResult(o,p,0),p}let d=this.plugin.app.vault.getAbstractFileByPath(c);if(!(d instanceof Yg.TFile)){let p={isValidTaskLink:!1};return this.cacheResult(o,p,0),p}try{let p=await this.plugin.cacheManager.getTaskInfo(c);if(p){let m=this.resolveDisplayText(a,n,p,i,s),f={isValidTaskLink:!0,taskPath:c,taskInfo:p,displayText:m};return this.cacheResult(o,f,d.stat.mtime),f}}catch(p){this.logger.debug("Error checking task info for link",{category:"stale-data",operation:"detect-task-link",details:{resolvedPath:c},error:p})}let u={isValidTaskLink:!1};return this.cacheResult(o,u,d.stat.mtime),u}resolveDisplayText(e,t,n,a,i){return t==="markdown"?i?nT(i,n.path,a):kd(n.title,e.subpath):e.hasExplicitAlias?i:kd(n.title,e.subpath)}parseWikilink(e){let t=e.slice(2,-2).trim();if(!t)return null;let n=t.indexOf("|");if(n!==-1){let i=t.slice(0,n).trim(),s=t.slice(n+1).trim();if(!i||!s)return null;let o=(0,Yg.parseLinktext)(i);return{linkPath:o.path,displayText:s,subpath:o.subpath||void 0,hasExplicitAlias:!0}}let a=(0,Yg.parseLinktext)(t);return{linkPath:a.path,subpath:a.subpath||void 0,hasExplicitAlias:!1}}parseMarkdownLink(e){let t=e.match(/^\[([^\]]*)\]\(([^)]+)\)$/);if(!t)return null;let n=t[1].trim(),a=t[2].trim();if(a.startsWith("<")&&a.endsWith(">")&&(a=a.slice(1,-1).trim()),!a)return null;try{a=decodeURIComponent(a)}catch(s){this.logger.debug("Failed to decode URI component",{category:"validation",operation:"parse-markdown-link",details:{linkPath:a},error:s})}let i=(0,Yg.parseLinktext)(a);return{linkPath:i.path,displayText:n||void 0,subpath:i.subpath||void 0,hasExplicitAlias:!!n}}resolveLinkPath(e,t){try{let n=this.plugin.app.metadataCache.getFirstLinkpathDest(e,t);return(n==null?void 0:n.path)||null}catch(n){return this.logger.debug("Error resolving link path",{category:"provider",operation:"resolve-link-path",details:{linkPath:e,sourcePath:t},error:n}),null}}cacheResult(e,t,n){if(this.linkCache.set(e,{result:t,lastModified:n}),this.linkCache.size>1e3){let a=this.linkCache.keys().next().value;this.linkCache.delete(a)}}clearCacheForFile(e){for(let[t]of this.linkCache)t.includes(e)&&this.linkCache.delete(t)}clearCache(){this.linkCache.clear()}findWikilinks(e){let t=[],n=/\[\[([^\]]+)\]\]/g,a;for(;(a=n.exec(e))!==null;)t.push({match:a[0],start:a.index,end:a.index+a[0].length,type:"wikilink"});let i=/\[([^\]]*)\]\(([^)]+)\)/g;for(n.lastIndex=0;(a=i.exec(e))!==null;)t.push({match:a[0],start:a.index,end:a.index+a[0].length,type:"markdown"});return t.sort((s,o)=>s.start-o.start)}cleanup(){this.linkCache.clear()}}});var r_e,Gg,D6=y(()=>{r_e=require("@codemirror/view");TO();mi();$c();Me();Gg=class r extends r_e.WidgetType{constructor(e,t,n,a,i=wn(new Date)){super(),this.taskInfo=e,this.plugin=t,this.originalText=n,this.displayText=a,this.targetDate=i,this.targetDateKey=ce(i)}toDOM(e){let t=this.plugin.settings.inlineVisibleProperties||["status","priority","due","scheduled","recurrence"],n=$i(t,this.plugin),a=activeWindow.createSpan();a.className="tasknotes-plugin tasknotes-inline-widget",a.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),a.classList.add("tn-static-display-inline-cccfa456"),a.classList.add("tn-static-vertical-align-baseline-657d9c46"),a.addEventListener("pointerdown",s=>{s.stopPropagation()}),a.addEventListener("mousedown",s=>{s.stopPropagation(),s.button===0&&s.preventDefault()}),a.addEventListener("mouseup",s=>{s.stopPropagation()});let i=Dr(this.taskInfo,this.plugin,n,{layout:"inline",targetDate:this.targetDate,displayText:this.displayText});return a.appendChild(i),i.dataset.originalText=this.originalText,i.addEventListener("tasknotes:task-updated",()=>{window.setTimeout(()=>{e&&typeof e.dispatch=="function"&&sf(e,this.taskInfo.path)},50)}),a}eq(e){return e instanceof r?this.taskInfo.path===e.taskInfo.path&&this.taskInfo.status===e.taskInfo.status&&this.taskInfo.title===e.taskInfo.title&&this.taskInfo.priority===e.taskInfo.priority&&this.taskInfo.archived===e.taskInfo.archived&&this.taskInfo.due===e.taskInfo.due&&this.taskInfo.scheduled===e.taskInfo.scheduled&&this.taskInfo.recurrence===e.taskInfo.recurrence&&this.displayText===e.displayText&&this.targetDateKey===e.targetDateKey&&JSON.stringify(this.taskInfo.complete_instances)===JSON.stringify(e.taskInfo.complete_instances)&&JSON.stringify(this.taskInfo.skipped_instances)===JSON.stringify(e.taskInfo.skipped_instances)&&this.taskInfo.dateModified===e.taskInfo.dateModified:!1}ignoreEvent(e){return e.type==="mousedown"||e.type==="click"}get estimatedHeight(){return-1}get block(){return!1}}});function cft(r){let e=new Map,t=new Map;return rc.ViewPlugin.fromClass(class{constructor(n){this.eventListeners=[];this.view=n,this.decorations=this.buildDecorations(n),this.setupEventListeners()}destroy(){this.eventListeners.forEach(n=>{r.emitter.offref(n)}),this.eventListeners=[]}setupEventListeners(){let n=r.emitter.on(ii,()=>{this.refreshDecorations()}),a=r.emitter.on(ot,()=>{this.refreshDecorations()}),i=r.emitter.on(is,l=>{l!=null&&l.path&&t.delete(l.path),this.refreshDecorations()}),s=r.emitter.on(Wp,()=>{t.clear(),this.refreshDecorations()}),o=r.emitter.on("settings-changed",()=>{this.refreshDecorations()});this.eventListeners.push(n,a,i,s,o)}refreshDecorations(){this.view&&typeof this.view.dispatch=="function"&&queueMicrotask(()=>{try{e.clear(),this.view.dispatch({effects:[wO.of({})]})}catch(n){eP.error("Error dispatching task link update:",{category:"validation",operation:"dispatching-task-link-update",error:n})}})}update(n){var i,s;if(this.view=n.view,!((i=r==null?void 0:r.settings)!=null&&i.enableTaskLinkOverlay)){this.decorations=rc.Decoration.none;return}try{if(!n.state.field(nc.editorLivePreviewField)){this.decorations=rc.Decoration.none;return}}catch(o){this.decorations=rc.Decoration.none;return}let a=n.transactions.some(o=>o.effects.some(l=>l.is(wO)));if(n.docChanged||n.selectionSet||a){if(a){let o=(s=n.transactions.flatMap(l=>l.effects).find(l=>l.is(wO)))==null?void 0:s.value;if(o!=null&&o.taskPath)for(let[l]of e.entries())l.includes(o.taskPath)&&e.delete(l);else e.clear()}this.decorations=this.buildDecorations(n.view)}}buildDecorations(n){var a,i;try{if(!((a=r==null?void 0:r.settings)!=null&&a.enableTaskLinkOverlay))return rc.Decoration.none;if(!n.state.field(nc.editorLivePreviewField))return rc.Decoration.none;let o=n.state.field(nc.editorInfoField,!1),l=(i=o==null?void 0:o.file)==null?void 0:i.path;return dft(n.state,r,e,l,t)}catch(s){return eP.error("Error building task link decorations:",{category:"persistence",operation:"building-task-link-decorations",error:s}),rc.Decoration.none}}},{decorations:n=>n.decorations})}function dft(r,e,t,n,a){var l,c;let i=new SO.RangeSetBuilder;if(!r||!e||!t)return i.finish();let s=r.doc;if(!s||!e.app||!e.app.workspace)return i.finish();let o=e.taskLinkDetectionService||new XD(e);if(!n){let d=e.app.workspace.getActiveViewOfType(nc.MarkdownView);if(!d)return i.finish();n=(l=d.file)==null?void 0:l.path}if(!n||typeof n!="string"||n.length===0)return i.finish();try{let d=s.toString();if(typeof d!="string"||d.length>1e5)return i.finish();let u=(c=r.selection)==null?void 0:c.main.head,p=o.findWikilinks(d);if(!Array.isArray(p))return i.finish();for(let m of p)try{if(!m||typeof m.match!="string"||typeof m.start!="number"||typeof m.end!="number"||m.start<0||m.end<=m.start||m.start>=d.length||m.end>d.length||e.settings.disableOverlayOnAlias&&m.type==="wikilink"&&m.match.includes("|"))continue;let f=m.type==="wikilink"?uft(m.match):pft(m.match);if(!f)continue;let{linkPath:h}=f;if(!h||typeof h!="string"||h.trim().length===0)continue;let g=mft(h,n,e);if(!g)continue;let v=fft(g,e);if(v){if(!v.title||typeof v.title!="string"||u!==void 0&&u>=m.start&&u<m.end)continue;let b=`${g}-${m.start}-${m.end}`,k;m.type==="markdown"?k=f.displayText?nT(f.displayText,v.path,h):kd(v.title,f.subpath):f.hasExplicitAlias?k=f.displayText:k=kd(v.title,f.subpath);let w=new Gg(v,e,m.match,k),S=t.get(b);(!S||!S.eq(w))&&t.set(b,w),a==null||a.set(g,w);let C=rc.Decoration.replace({widget:t.get(b),inclusive:!0});i.add(m.start,m.end,C)}else if(a!=null&&a.has(g)){if(u!==void 0&&u>=m.start&&u<m.end)continue;let b=a.get(g);if(!b)continue;let k=`${g}-${m.start}-${m.end}`;t.set(k,b);let w=rc.Decoration.replace({widget:b,inclusive:!0});i.add(m.start,m.end,w)}}catch(f){continue}}catch(d){eP.error("Error in buildTaskLinkDecorations:",{category:"persistence",operation:"buildtasklinkdecorations",error:d})}return i.finish()}function uft(r){if(!r||typeof r!="string"||r.length<4||!r.startsWith("[[")||!r.endsWith("]]"))return null;let e=r.slice(2,-2).trim();if(!e||e.length===0||e.length>500)return null;let t=e.indexOf("|");if(t!==-1){let a=e.slice(0,t).trim(),i=e.slice(t+1).trim();if(!a||!i)return null;let s=(0,nc.parseLinktext)(a);return s.path?{linkPath:s.path,displayText:i,subpath:s.subpath||void 0,hasExplicitAlias:!0}:null}let n=(0,nc.parseLinktext)(e);return n.path?{linkPath:n.path,subpath:n.subpath||void 0,hasExplicitAlias:!1}:null}function pft(r){if(!r||typeof r!="string")return null;let e=r.match(/^\[([^\]]*)\]\(([^)]+)\)$/);if(!e)return null;let t=e[1].trim(),n=e[2].trim();if(n.startsWith("<")&&n.endsWith(">")&&(n=n.slice(1,-1).trim()),!n||n.length===0||n.length>500)return null;try{n=decodeURIComponent(n)}catch(i){}let a=(0,nc.parseLinktext)(n);return a.path?{linkPath:a.path,displayText:t||void 0,subpath:a.subpath||void 0,hasExplicitAlias:!!t}:null}function mft(r,e,t){if(!r||typeof r!="string"||r.trim().length===0||!e||typeof e!="string"||!t||!t.app||!t.app.metadataCache)return null;try{let n=t.app.metadataCache.getFirstLinkpathDest(r,e);return!n||!n.path||typeof n.path!="string"?null:n.path}catch(n){return null}}function fft(r,e){if(!r||typeof r!="string"||r.trim().length===0||!e)return null;try{let t=/[<>:"|?*]/,n=r.split("").some(s=>{let o=s.charCodeAt(0);return o<=31||o===127});if(t.test(r)||n)return null;let a=e.cacheManager;if(!a||!a.getCachedTaskInfoSync)return null;let i=a.getCachedTaskInfoSync(r);return i&&typeof i=="object"&&i.title?i:null}catch(t){return null}}function n_e(r){return cft(r)}function sf(r,e){if(!r||typeof r.dispatch!="function"){eP.warn("Invalid EditorView passed to dispatchTaskUpdate:",{category:"validation",operation:"invalid-editorview-passed-dispatchtaskupdate",details:{value:r}});return}try{r.dispatch({effects:[wO.of({taskPath:e})]})}catch(t){eP.error("Error dispatching task update:",{category:"validation",operation:"dispatching-task-update",error:t})}}var SO,rc,nc,eP,wO,TO=y(()=>{SO=require("@codemirror/state"),rc=require("@codemirror/view"),nc=require("obsidian");Yr();bO();D6();K();kO();eP=N({tag:"Editor/TaskLinkOverlay"}),wO=SO.StateEffect.define()});var aT,P6=y(()=>{aT=class{constructor(){this.states=new WeakMap;this.disposed=!1}schedule(e,t){if(this.disposed)return;let n=this.getState(e);if(n.version+=1,n.running){n.rerun=!0;return}n.running=!0,this.runLoop(e,t)}dispose(){this.disposed=!0}getState(e){let t=this.states.get(e);return t||(t={running:!1,rerun:!1,version:0},this.states.set(e,t)),t}async runLoop(e,t){let n=this.getState(e);try{do{n.rerun=!1;let a=n.version;await t({isCurrent:()=>{var i;return!this.disposed&&((i=this.states.get(e))==null?void 0:i.version)===a}})}while(n.rerun&&!this.disposed)}finally{n.running=!1,n.rerun&&!this.disposed&&(n.running=!0,this.runLoop(e,t))}}}});function a_e(r){return!!(r!=null&&r.closest(".canvas-node-content"))}function s_e(r){if(!r||typeof r!="object")return!1;let e=r;return"parent"in e&&e.parent==null}function M6(r){return!!(r!=null&&r.closest(hft))}function iT(r,e=gft){var t,n,a;if(a_e(r.dom))return!1;if(M6(r.dom))return!0;try{let i=r.state.field(i_e.editorInfoField,!1);return((a=(n=(t=i==null?void 0:i.leaf)==null?void 0:t.view)==null?void 0:n.getMode)==null?void 0:a.call(n))==="preview"||s_e(i==null?void 0:i.leaf)?!0:a_e(i==null?void 0:i.containerEl)?!1:M6(i==null?void 0:i.containerEl)}catch(i){return e.debug("Error checking markdown widget editor context",{category:"provider",operation:"check-editor-context",error:i}),!1}}function sT(r){var t;if(s_e(r))return!0;let e=(t=r.view)==null?void 0:t.containerEl;return M6(e)}var i_e,hft,gft,tP=y(()=>{i_e=require("obsidian");K();hft=[".blp-inline-edit-root",".internal-embed.markdown-embed",".markdown-embed",".popover.hover-popover"].join(", "),gft=N({tag:"MarkdownWidgetContext"})});function vft(r,e){if(typeof r.requestAnimationFrame=="function"){let n=r.requestAnimationFrame(e);return{id:n,cancel:()=>r.cancelAnimationFrame(n)}}let t=r.setTimeout(e,0);return{id:t,cancel:()=>r.clearTimeout(t)}}function o_e(r){var e;return typeof((e=r.performance)==null?void 0:e.now)=="function"?r.performance.now():Date.now()}function l_e(r,e){if(r.nodeType!==Node.ELEMENT_NODE)return!1;let t=r;return t.matches(e)||!!t.querySelector(e)}function kft(r,e){return[...Array.from(r.addedNodes),...Array.from(r.removedNodes)].some(n=>l_e(n,e)||l_e(n,".markdown-preview-sizer"))}function bft(r){let e=r.view;return!(e instanceof c_e.MarkdownView)||e.getMode()!=="preview"||sT(r)?null:e.previewMode.containerEl}function xO(r,e,t,n,a,i,s={}){var f;let o=bft(r);if(!o||n.has(o))return;let l=(f=s.scrollQuietPeriodMs)!=null?f:yft,c=null,d=Number.NEGATIVE_INFINITY,u=()=>{var h;d=o_e((h=o.ownerDocument.defaultView)!=null?h:window)};o.addEventListener("scroll",u,{capture:!0,passive:!0});let p=()=>{var g;if(c)return;let h=(g=o.ownerDocument.defaultView)!=null?g:window;c=vft(h,()=>{if(c=null,!o.isConnected||!i(r))return;let v=o.querySelector(".markdown-preview-sizer");if(!(!v||v.querySelector(e))){if(l>0&&o_e(h)-d<l){p();return}t(r)}})},m=new MutationObserver(h=>{h.some(g=>kft(g,e))&&p()});m.observe(o,{childList:!0,subtree:!0}),n.add(o),a.push(()=>{c==null||c.cancel(),o.removeEventListener("scroll",u,{capture:!0}),m.disconnect()})}var c_e,yft,A6=y(()=>{c_e=require("obsidian");tP();yft=200});function Tft(r,e){let t=e;for(;t!=null&&t.parentElement&&t.parentElement!==r;)t=t.parentElement;return(t==null?void 0:t.parentElement)===r?t:null}function wft(r){for(let e=0;e<r.children.length;e++){let t=r.children.item(e);if(t!=null&&t.classList.contains("mod-header")&&t.classList.contains("mod-ui"))return t}return null}function Sft(r,e){for(let t=0;t<r.children.length;t++){let n=r.children.item(t);if(n!=null&&n.classList.contains(e))return n}return null}function xft(r){var a;let e=r.querySelector(".metadata-container");if(e){let i=Tft(r,e);return(a=i==null?void 0:i.nextSibling)!=null?a:null}let t=wft(r);if(t)return t.nextSibling;let n=Sft(r,"markdown-preview-pusher");return n?n.nextSibling:r.firstChild}function Kg(r,e){r.insertBefore(e,xft(r))}function CO(r,e){let t=r.parentNode;return t?(t.insertBefore(e,r.nextSibling),!0):!1}var _6=y(()=>{});function m_e(r){let e=new Set,t=r.previewMode.containerEl.querySelector(".markdown-preview-sizer"),n=r.containerEl.querySelector(".cm-sizer");return t&&e.add(t),n&&e.add(n),Array.from(e).flatMap(a=>oT(a).filter(i=>i.classList.contains(rP)))}function f_e(r){m_e(r).forEach(e=>{var t;(t=e.component)==null||t.unload(),e.remove()})}function oT(r){return Array.from(r.children).filter(e=>e.instanceOf(HTMLElement))}function Eft(r,e){var s;let t=r.settings.projectAutosuggest;if(!t)return!1;let n=(s=t.requiredTags)!=null?s:[];if(n.some(o=>!o.trim().startsWith("-"))&&br.matchesTagConditions(Vv(e),n))return!0;let i=Uv(t);return i.enabled&&Hv(e==null?void 0:e.frontmatter,i)}function EO(r,e,t){var n;return!!((n=r.dependencyCache)!=null&&n.isFileUsedAsProject(e.path)||Eft(r,t))}function Dft(r){var n;let e=r.querySelector(".cm-content");if(e)return(n=e.closest(".cm-contentContainer"))!=null?n:e;let t=oT(r).filter(a=>!a.classList.contains(rP)&&!a.classList.contains("embedded-backlinks")&&!a.classList.contains("markdown-preview-pusher")&&!a.classList.contains("mod-footer"));return t.length>0?t[t.length-1]:null}function d_e(r){let e=Number.parseFloat(r);return Number.isFinite(e)?e:null}function Pft(r){var i;let t=((i=r.ownerDocument.defaultView)!=null?i:window).getComputedStyle(r),n=d_e(t.marginTop);if(n!==null)return n;let a=d_e(t.fontSize);return a!==null?a*1.5:24}function u_e(r){let e=r.getBoundingClientRect();return e.width<=0&&e.height<=0?null:e.bottom}function Mft(r){let e=u_e(r);return r.querySelectorAll("*").forEach(t=>{let n=u_e(t);n!==null&&(e===null||n>e)&&(e=n)}),e}function Aft(r){let e=null;for(let t of r){let n=Mft(t);n!==null&&(e===null||n>e)&&(e=n)}return e}function h_e(r,e){e.style.removeProperty("--tn-relationships-widget-margin-top");let t=r.querySelector(".cm-content");if(!t)return;let n=Aft(oT(t)),a=t.closest(".cm-contentContainer");if(n===null||!a)return;let i=Math.max(0,Math.round(a.getBoundingClientRect().bottom-n));if(i>0){let s=Pft(e),o=Math.round(s-i);e.style.setProperty("--tn-relationships-widget-margin-top",`${o}px`)}}function g_e(r,e){let t=Dft(r);t?CO(t,e):r.appendChild(e),h_e(r,e)}async function y_e(r,e){let t=activeWindow.createDiv();t.className=`tasknotes-plugin ${rP}`,t.setAttribute("contenteditable","false"),t.setAttribute("spellcheck","false"),t.setAttribute("data-widget-type","relationships"),t.setAttribute("data-note-path",e);let n=activeWindow.createDiv();n.className="relationships__bases-container",t.appendChild(n);let a=new Va.Component;a.load(),t.component=a;try{let i=r.settings.commandFileMapping.relationships;if(!i){let o=activeWindow.createDiv();return o.className="relationships__error",o.textContent="Relationships view not configured",n.appendChild(o),t}let s=`![[${i}]]`;await Va.MarkdownRenderer.render(r.app,s,n,e,a)}catch(i){bd.error("[TaskNotes] Error rendering Bases view in relationships widget:",{category:"internal",operation:"rendering-bases-view-relationships-widget",error:i});let s=activeWindow.createDiv();s.className="relationships__error",s.textContent="Failed to load relationships view",n.appendChild(s)}return t}function v_e(r){return p_e.ViewPlugin.fromClass(class extends I6{constructor(e){super(e,r)}destroy(){super.destroy()}})}async function _ft(r,e,t){var c,d,u;let n=r.view;if(!(n instanceof Va.MarkdownView)||n.getMode()!=="preview"||sT(r))return;let a=n.file;if(!a||!e.settings.showRelationships)return;let i=!1,s=!1,o=e.app.metadataCache.getFileCache(a);if(o!=null&&o.frontmatter&&(i=e.cacheManager.isTaskFile(o.frontmatter)),s=EO(e,a,o),!i&&!s){try{let p=m_e(n);(p.some(h=>h.dataset.notePath!==a.path)||o!==null)&&p.forEach(h=>{var g;(g=h.component)==null||g.unload(),h.remove()})}catch(p){bd.debug("[TaskNotes] Error cleaning up relationships widget in reading mode:",{category:"persistence",operation:"cleaning-up-relationships-widget-reading-mode",error:p})}return}let l=null;try{let m=n.previewMode.containerEl;f_e(n);let f=e.settings.relationshipsPosition||"bottom",h=a.path;if(l=await y_e(e,h),t&&!t.isCurrent()){(c=l.component)==null||c.unload(),l.remove();return}let g=m.querySelector(".markdown-preview-sizer");if(!g){(d=l.component)==null||d.unload(),l.remove(),bd.warn("[TaskNotes] Could not find .markdown-preview-sizer for relationships in reading mode",{category:"stale-data",operation:"find-markdown-preview-sizer-relationships-reading-mode"});return}if(f==="top"){let v=oT(g).find(b=>b.classList.contains("tasknotes-task-card-note-widget"));v?CO(v,l):Kg(g,l)}else g_e(g,l)}catch(p){(u=l==null?void 0:l.component)==null||u.unload(),l==null||l.remove(),bd.error("[TaskNotes] Error injecting relationships widget in reading mode:",{category:"persistence",operation:"injecting-relationships-widget-reading-mode",error:p})}}function k_e(r){var C;let e=[],t=[],n=[],a=[],i=new WeakSet,s=new aT,o=E=>{s.schedule(E,D=>_ft(E,r,D))},l=E=>{let D=E.view;return r.settings.showRelationships&&D instanceof Va.MarkdownView&&D.getMode()==="preview"&&!!D.file},c=E=>{xO(E,`.${rP}`,o,i,a,l)},d=()=>{r.app.workspace.getLeavesOfType("markdown").forEach(E=>{c(E)})},u=(E,D)=>{var O;let P=E.view;return P instanceof Va.MarkdownView&&(!D||((O=P.file)==null?void 0:O.path)===D.path)},p=E=>{r.app.workspace.getLeavesOfType("markdown").forEach(P=>{u(P,E)&&(o(P),c(P))})},m=null,f=()=>{m&&window.clearTimeout(m),m=window.setTimeout(()=>{r.app.workspace.getLeavesOfType("markdown").forEach(D=>{o(D)}),d()},100)},h=r.app.workspace.on("layout-change",f);e.push(h);let g=r.app.workspace.on("active-leaf-change",E=>{E&&(o(E),c(E))});e.push(g);let v=r.app.workspace.on("file-open",E=>{p(E instanceof Va.TFile?E:null)});e.push(v);let b=new Map,k=r.app.metadataCache.on("changed",E=>{let D=b.get(E.path);D&&window.clearTimeout(D);let P=r.app.workspace.getLeavesOfType("markdown"),O=P.filter(R=>{var F;let A=R.view;return A instanceof Va.MarkdownView&&((F=A.file)==null?void 0:F.path)===E.path&&A.getMode()==="preview"});if(O.length>0){b.delete(E.path),O.forEach(R=>{o(R),c(R)});return}let z=window.setTimeout(()=>{b.delete(E.path),P.forEach(R=>{var F;let A=R.view;A instanceof Va.MarkdownView&&((F=A.file)==null?void 0:F.path)===E.path&&(o(R),c(R))})},500);b.set(E.path,z)});t.push(k);let w=(C=r.dependencyCache)==null?void 0:C.on(Am,f);return w&&n.push(w),r.app.workspace.getLeavesOfType("markdown").forEach(E=>{o(E)}),d(),()=>{s.dispose(),m&&window.clearTimeout(m),b.forEach(E=>window.clearTimeout(E)),b.clear(),a.forEach(E=>E()),e.forEach(E=>r.app.workspace.offref(E)),t.forEach(E=>r.app.metadataCache.offref(E)),n.forEach(E=>{var D;return(D=r.dependencyCache)==null?void 0:D.offref(E)}),r.app.workspace.getLeavesOfType("markdown").forEach(E=>{E.view instanceof Va.MarkdownView&&f_e(E.view)})}}var p_e,Va,bd,rP,Cft,I6,b_e=y(()=>{p_e=require("@codemirror/view"),Va=require("obsidian");iW();P6();A6();tP();_6();Du();R_();N_();K();bd=N({tag:"Editor/RelationshipsDecorations"}),rP="tasknotes-relationships-widget",Cft="task-card-injected";I6=class{constructor(e,t){this.plugin=t;this.currentFile=null;this.currentWidget=null;this.widgetContainer=null;this.debounceTimer=null;this.eventListeners=[];this.dependencyCacheEventListeners=[];this.injectionRunId=0;this.bottomOffsetFrame=null;this.view=e,this.currentFile=this.getFileFromView(e),this.setupEventListeners(),this.debouncedInjectWidget(e)}update(e){this.view=e.view;let t=this.getFileFromView(e.view);t!==this.currentFile?(this.currentFile=t,this.debouncedInjectWidget(e.view)):(e.docChanged||e.geometryChanged||e.viewportChanged)&&this.scheduleBottomOffsetRefresh()}destroy(){this.injectionRunId++,this.debounceTimer&&(window.clearTimeout(this.debounceTimer),this.debounceTimer=null),this.bottomOffsetFrame!==null&&(window.cancelAnimationFrame(this.bottomOffsetFrame),this.bottomOffsetFrame=null),this.removeWidget(),this.eventListeners.forEach(e=>{this.plugin.emitter.offref(e)}),this.eventListeners=[],this.dependencyCacheEventListeners.forEach(e=>{var t;(t=this.plugin.dependencyCache)==null||t.offref(e)}),this.dependencyCacheEventListeners=[]}setupEventListeners(){var a;let e=this.plugin.emitter.on(Cft,()=>{this.debouncedInjectWidget(this.view)});this.eventListeners.push(e);let t=this.plugin.emitter.on("settings-changed",()=>{this.debouncedInjectWidget(this.view)});this.eventListeners.push(t);let n=(a=this.plugin.dependencyCache)==null?void 0:a.on(Am,()=>{this.debouncedInjectWidget(this.view)});n&&this.dependencyCacheEventListeners.push(n)}debouncedInjectWidget(e){this.debounceTimer&&window.clearTimeout(this.debounceTimer),this.debounceTimer=window.setTimeout(()=>{this.debounceTimer=null,this.injectWidget(e)},100)}scheduleBottomOffsetRefresh(){!this.currentWidget||!this.widgetContainer||(this.plugin.settings.relationshipsPosition||"bottom")!=="bottom"||(this.bottomOffsetFrame!==null&&window.cancelAnimationFrame(this.bottomOffsetFrame),this.bottomOffsetFrame=window.requestAnimationFrame(()=>{var e,t;this.bottomOffsetFrame=null,(e=this.currentWidget)!=null&&e.isConnected&&((t=this.widgetContainer)!=null&&t.isConnected)&&h_e(this.widgetContainer,this.currentWidget)}))}getFileFromView(e){try{let t=e.state.field(Va.editorInfoField,!1);return(t==null?void 0:t.file)||null}catch(t){return bd.debug("[TaskNotes] Error getting file from editor view:",{category:"persistence",operation:"getting-file-editor-view",error:t}),null}}isTableCellEditor(e){try{let t=e.dom;if(!t)return!1;if(iT(e)||t.closest("td, th")||t.closest(".cm-table-widget")||t.closest(".popover.hover-popover")||t.closest(".markdown-embed[data-type='footnote']"))return!0;let o=e.state.field(Va.editorInfoField,!1);if(!(o!=null&&o.file)){let l=t.parentElement,c=0,d=20;for(;l&&l!==activeDocument.body&&c<d;){if(l.tagName==="TABLE"||l.tagName==="TD"||l.tagName==="TH"||l.classList.contains("markdown-rendered")||l.classList.contains("popover")||l.classList.contains("hover-popover")||l.classList.contains("markdown-embed")&&l.getAttribute("data-type")==="footnote")return!0;l=l.parentElement,c++}}return!1}catch(t){return bd.debug("[TaskNotes] Error detecting table cell editor:",{category:"internal",operation:"detecting-table-cell-editor",error:t}),!1}}removeWidget(){var e;this.bottomOffsetFrame!==null&&(window.cancelAnimationFrame(this.bottomOffsetFrame),this.bottomOffsetFrame=null),this.currentWidget&&((e=this.currentWidget.component)==null||e.unload(),this.currentWidget.remove(),this.currentWidget=null),this.widgetContainer=null}cleanupOrphanedWidgets(e){var t;try{let n=(t=e.dom.closest(".markdown-source-view"))==null?void 0:t.querySelector(".cm-sizer");if(!n){bd.debug("[TaskNotes] Could not find .cm-sizer for orphan cleanup",{category:"stale-data",operation:"find-cm-sizer-orphan-cleanup"});return}oT(n).filter(a=>a.classList.contains(rP)).forEach(a=>{var s;(s=a.component)==null||s.unload(),a.remove()}),this.currentWidget=null,this.widgetContainer=null}catch(n){bd.error("[TaskNotes] Error cleaning up orphaned relationships widgets:",{category:"stale-data",operation:"cleaning-up-orphaned-relationships-widgets",error:n})}}async injectWidget(e){var n,a;let t=++this.injectionRunId;if(this.removeWidget(),!this.isTableCellEditor(e)){this.cleanupOrphanedWidgets(e);try{if(!this.plugin.settings.showRelationships)return;let i=this.currentFile||this.getFileFromView(e);if(!(i instanceof Va.TFile))return;let s=!1,o=!1,l=this.plugin.app.metadataCache.getFileCache(i);if(l!=null&&l.frontmatter?(s=this.plugin.cacheManager.isTaskFile(l.frontmatter),o=EO(this.plugin,i,l)):o=EO(this.plugin,i,l),!s&&!o)return;let c=i.path,d=this.plugin.settings.relationshipsPosition||"bottom",u=(n=e.dom.closest(".markdown-source-view"))==null?void 0:n.querySelector(".cm-sizer");if(!u){bd.warn("[TaskNotes] Could not find .cm-sizer container for relationships widget",{category:"stale-data",operation:"find-cm-sizer-container-relationships-widget"});return}let p=await y_e(this.plugin,c);if(t!==this.injectionRunId){(a=p.component)==null||a.unload(),p.remove();return}if(this.cleanupOrphanedWidgets(e),this.currentWidget=p,this.widgetContainer=u,d==="top"){let m=oT(u).find(f=>f.classList.contains("tasknotes-task-card-note-widget"));m?CO(m,p):Kg(u,p)}else g_e(u,p),this.scheduleBottomOffsetRefresh()}catch(i){bd.error("[TaskNotes] Error injecting relationships widget:",{category:"internal",operation:"injecting-relationships-widget",error:i}),this.removeWidget()}}}}});function F6(r,e){let t=activeWindow.createDiv();t.className=`tasknotes-plugin task-card-note-widget ${Zg}`,t.setAttribute("contenteditable","false"),t.setAttribute("spellcheck","false"),t.setAttribute("data-widget-type","task-card"),t.setAttribute("data-task-path",e.path);let n=new qi.Component;n.load(),t.component=n;let a=r.settings.defaultVisibleProperties?$i(r.settings.defaultVisibleProperties,r):void 0,i=Dr(e,r,a);return i.classList.add("task-card-note-widget__card"),t.appendChild(i),t}function N6(r){r.querySelectorAll(`.${Zg}`).forEach(e=>{var n;(n=e.component)==null||n.unload(),e.remove()})}function w_e(r){return r.querySelector(".markdown-preview-sizer")}function Nft(r){let e=r,t=r.ownerDocument.defaultView;for(;e;){let n=t==null?void 0:t.getComputedStyle(e);if(e.style.display==="none"||(n==null?void 0:n.display)==="none"||(n==null?void 0:n.visibility)==="hidden")return!0;e=e.parentElement}return!1}function S_e(r,e){if(r.isEditing||e.querySelector(".markdown-source-view, .cm-editor"))return!0;let t=w_e(e);return!!(t&&Nft(t))}function Rft(r,e){let t=Array.from(e.querySelectorAll(`.${Zg}`));if(t.length===0)return!0;let n=t.some(i=>i.parentElement===e),a=t.some(i=>!!i.closest(".markdown-preview-sizer"));return S_e(r,e)?!n:n||!a}function Fft(r){var a;let e=(a=r.view)==null?void 0:a.canvas,t=e==null?void 0:e.nodes,n=t==null?void 0:t.values;return typeof n!="function"?[]:Array.from(n.call(t))}function Oft(r){return typeof r.filePath=="string"&&r.filePath.trim()?r.filePath:typeof r.file=="string"&&r.file.trim()?r.file:r.file instanceof qi.TFile?r.file.path:null}function x_e(r){return T_e.ViewPlugin.fromClass(class extends R6{constructor(e){super(e,r)}destroy(){super.destroy()}})}async function Lft(r,e,t){var s;let n=r.view;if(!(n instanceof qi.MarkdownView)||n.getMode()!=="preview"||sT(r))return;let a=n.file;if(!a||!e.settings.showTaskCardInNote)return;let i=e.cacheManager.getCachedTaskInfoSync(a.path);if(!i){try{let l=n.previewMode.containerEl,d=Array.from(l.querySelectorAll(`.${Zg}`)).some(m=>m.dataset.taskPath!==a.path),u=e.app.metadataCache.getFileCache(a),p=u!==null&&(!u.frontmatter||!e.cacheManager.isTaskFile(u.frontmatter));(d||p)&&N6(l)}catch(o){Td.debug("[TaskNotes] Error cleaning up task card in reading mode:",{category:"persistence",operation:"cleaning-up-task-card-reading-mode",error:o})}return}try{let l=n.previewMode.containerEl;N6(l);let c=F6(e,i);if(t&&!t.isCurrent()){(s=c.component)==null||s.unload(),c.remove();return}let d=l.querySelector(".markdown-preview-sizer");if(!d){Td.warn("[TaskNotes] Could not find .markdown-preview-sizer for task card in reading mode",{category:"stale-data",operation:"find-markdown-preview-sizer-task-card-reading-mode"});return}Kg(d,c)}catch(o){Td.error("[TaskNotes] Error injecting task card widget in reading mode:",{category:"persistence",operation:"injecting-task-card-widget-reading-mode",error:o})}}function C_e(r,e={}){if(r.settings.showTaskCardInNote)for(let t of r.app.workspace.getLeavesOfType("canvas"))for(let n of Fft(t)){let a=Oft(n),i=n.contentEl;if(!a||!i)continue;let s=S_e(n,i),o=i.querySelector(".markdown-source-view, .cm-editor");if(o!=null&&o.querySelector(`.${Zg}`))continue;let l=w_e(i);if(!s&&!l||!e.force&&!Rft(n,i))continue;let c=r.cacheManager.getCachedTaskInfoSync(a);if(N6(i),!c)continue;let d=F6(r,c);s?i.insertBefore(d,i.firstChild):l&&Kg(l,d)}}function E_e(r){let e=[],t=[],n=[],a=[],i=[],s=new WeakSet,o=[],l=new WeakSet,c=new aT,d=A=>{c.schedule(A,F=>Lft(A,r,F))},u=A=>{let F=A.view;return r.settings.showTaskCardInNote&&F instanceof qi.MarkdownView&&F.getMode()==="preview"&&!!F.file},p=A=>{xO(A,`.${Zg}`,d,l,o,u)},m=()=>{r.app.workspace.getLeavesOfType("markdown").forEach(A=>{p(A)})},f=(A,F)=>{var B;let $=A.view;return $ instanceof qi.MarkdownView&&(!F||((B=$.file)==null?void 0:B.path)===F.path)},h=A=>{r.app.workspace.getLeavesOfType("markdown").forEach($=>{f($,A)&&(d($),p($))})},g=null,v=null,b=(A={})=>{v&&window.clearTimeout(v),v=window.setTimeout(()=>{C_e(r,A),v=null},100)},k=()=>{for(let A of r.app.workspace.getLeavesOfType("canvas")){let F=A.view.containerEl;if(!F||s.has(F))continue;let $=new MutationObserver(()=>{b()});$.observe(F,{attributes:!0,attributeFilter:["class","style"],childList:!0,subtree:!0});let B=()=>{b({force:!0})};F.addEventListener("pointerdown",B,!0),F.addEventListener("focusin",B,!0),i.push(()=>{F.removeEventListener("pointerdown",B,!0),F.removeEventListener("focusin",B,!0)}),s.add(F),a.push($)}},w=()=>{g&&window.clearTimeout(g),g=window.setTimeout(()=>{r.app.workspace.getLeavesOfType("markdown").forEach(F=>{d(F)}),m(),k(),b({force:!0})},100)},S=r.app.workspace.on("layout-change",w);e.push(S);let C=r.app.workspace.on("active-leaf-change",A=>{A&&(d(A),p(A),k(),b())});e.push(C);let E=r.app.workspace.on("file-open",A=>{h(A instanceof qi.TFile?A:null),k(),b({force:!0})});e.push(E);let D=new Map,P=r.app.metadataCache.on("changed",A=>{let F=D.get(A.path);F&&window.clearTimeout(F);let $=r.app.workspace.getLeavesOfType("markdown"),B=$.filter(Q=>{var ie;let G=Q.view;return G instanceof qi.MarkdownView&&((ie=G.file)==null?void 0:ie.path)===A.path&&G.getMode()==="preview"});if(B.length>0){D.delete(A.path),B.forEach(Q=>{d(Q),p(Q)}),b({force:!0});return}let ue=window.setTimeout(()=>{D.delete(A.path),$.forEach(Q=>{var ie;let G=Q.view;G instanceof qi.MarkdownView&&((ie=G.file)==null?void 0:ie.path)===A.path&&(d(Q),p(Q))}),b({force:!0})},500);D.set(A.path,ue)});t.push(P);let O=r.emitter.on(ot,w);n.push(O);let z=r.emitter.on(ii,w);return n.push(z),r.app.workspace.getLeavesOfType("markdown").forEach(A=>{d(A)}),m(),k(),b({force:!0}),()=>{g&&window.clearTimeout(g),v&&window.clearTimeout(v),D.forEach(A=>window.clearTimeout(A)),D.clear(),c.dispose(),o.forEach(A=>A()),a.forEach(A=>A.disconnect()),i.forEach(A=>A()),e.forEach(A=>r.app.workspace.offref(A)),t.forEach(A=>r.app.metadataCache.offref(A)),n.forEach(A=>r.emitter.offref(A))}}var T_e,qi,Td,Zg,Ift,R6,D_e=y(()=>{T_e=require("@codemirror/view");Yr();qi=require("obsidian");mi();$c();P6();A6();tP();_6();K();Td=N({tag:"Editor/TaskCardNoteDecorations"}),Zg="tasknotes-task-card-note-widget",Ift="task-card-injected";R6=class{constructor(e,t){this.plugin=t;this.cachedTask=null;this.currentFile=null;this.eventListeners=[];this.currentWidget=null;this.widgetContainer=null;this.debounceTimer=null;this.view=e,this.currentFile=this.getFileFromView(e),this.setupEventListeners(),this.loadTaskForCurrentFile(e)}update(e){this.view=e.view;let t=this.getFileFromView(e.view);t!==this.currentFile&&(this.currentFile=t,this.loadTaskForCurrentFile(e.view))}destroy(){this.debounceTimer&&(window.clearTimeout(this.debounceTimer),this.debounceTimer=null),this.removeWidget(),this.eventListeners.forEach(e=>{this.plugin.emitter.offref(e)}),this.eventListeners=[]}setupEventListeners(){let e=()=>{this.debounceTimer&&window.clearTimeout(this.debounceTimer),this.debounceTimer=window.setTimeout(()=>{this.loadTaskForCurrentFile(this.view)},100)},t=this.plugin.emitter.on(ii,e),n=this.plugin.emitter.on(ot,e),a=this.plugin.emitter.on(is,e),i=this.plugin.emitter.on(Wp,e),s=this.plugin.emitter.on("settings-changed",e);this.eventListeners.push(t,n,a,i,s)}removeWidget(){var e;this.currentWidget&&((e=this.currentWidget.component)==null||e.unload(),this.currentWidget.remove(),this.currentWidget=null),this.widgetContainer=null}cleanupOrphanedWidgets(e){var t;try{let n=(t=e.dom.closest(".canvas-node-content"))!=null?t:e.dom.closest(".workspace-leaf-content");if(!n){Td.debug("[TaskNotes] Could not find workspace-leaf-content for orphan cleanup",{category:"stale-data",operation:"find-workspace-leaf-content-orphan-cleanup"});return}n.querySelectorAll(`.${Zg}`).forEach(a=>{var i;a!==this.currentWidget&&((i=a.component)==null||i.unload(),a.remove())})}catch(n){Td.error("[TaskNotes] Error cleaning up orphaned task card widgets:",{category:"stale-data",operation:"cleaning-up-orphaned-task-card-widgets",error:n})}}loadTaskForCurrentFile(e){var n,a,i,s,o,l,c,d,u,p,m,f,h;let t=this.getFileFromView(e);if(t instanceof qi.TFile)try{let g=this.plugin.cacheManager.getCachedTaskInfoSync(t.path),v=k=>!(k!=null&&k.timeEntries)||k.timeEntries.length===0?!1:!k.timeEntries[k.timeEntries.length-1].endTime;(((n=this.cachedTask)==null?void 0:n.title)!==(g==null?void 0:g.title)||((a=this.cachedTask)==null?void 0:a.status)!==(g==null?void 0:g.status)||((i=this.cachedTask)==null?void 0:i.priority)!==(g==null?void 0:g.priority)||((s=this.cachedTask)==null?void 0:s.due)!==(g==null?void 0:g.due)||((o=this.cachedTask)==null?void 0:o.scheduled)!==(g==null?void 0:g.scheduled)||((l=this.cachedTask)==null?void 0:l.path)!==(g==null?void 0:g.path)||((c=this.cachedTask)==null?void 0:c.archived)!==(g==null?void 0:g.archived)||((d=this.cachedTask)==null?void 0:d.timeEstimate)!==(g==null?void 0:g.timeEstimate)||((u=this.cachedTask)==null?void 0:u.recurrence)!==(g==null?void 0:g.recurrence)||v(this.cachedTask)!==v(g)||JSON.stringify(((p=this.cachedTask)==null?void 0:p.tags)||[])!==JSON.stringify((g==null?void 0:g.tags)||[])||JSON.stringify(((m=this.cachedTask)==null?void 0:m.contexts)||[])!==JSON.stringify((g==null?void 0:g.contexts)||[])||JSON.stringify(((f=this.cachedTask)==null?void 0:f.projects)||[])!==JSON.stringify((g==null?void 0:g.projects)||[])||JSON.stringify(((h=this.cachedTask)==null?void 0:h.complete_instances)||[])!==JSON.stringify((g==null?void 0:g.complete_instances)||[]))&&(this.cachedTask=g,this.injectWidget(e))}catch(g){Td.error("[TaskNotes] Error loading task for task note:",{category:"persistence",operation:"loading-task-task-note",error:g})}else this.cachedTask!==null&&(this.cachedTask=null,this.injectWidget(e))}getFileFromView(e){try{let t=e.state.field(qi.editorInfoField,!1);return(t==null?void 0:t.file)||null}catch(t){return Td.debug("[TaskNotes] Error getting file from editor view:",{category:"persistence",operation:"getting-file-editor-view",error:t}),null}}isTableCellEditor(e){try{let t=e.dom;if(!t)return!1;if(iT(e)||t.closest("td, th")||t.closest(".cm-table-widget")||t.closest(".popover.hover-popover")||t.closest(".markdown-embed[data-type='footnote']"))return!0;let o=e.state.field(qi.editorInfoField,!1);if(!(o!=null&&o.file)){let l=t.parentElement,c=0,d=20;for(;l&&l!==activeDocument.body&&c<d;){if(l.tagName==="TABLE"||l.tagName==="TD"||l.tagName==="TH"||l.classList.contains("markdown-rendered")||l.classList.contains("popover")||l.classList.contains("hover-popover")||l.classList.contains("markdown-embed")&&l.getAttribute("data-type")==="footnote")return!0;l=l.parentElement,c++}}return!1}catch(t){return Td.debug("[TaskNotes] Error detecting table cell editor:",{category:"persistence",operation:"detecting-table-cell-editor",error:t}),!1}}injectWidget(e){var t;if(this.removeWidget(),this.isTableCellEditor(e)){e.dom.closest(".canvas-node-content")&&window.setTimeout(()=>{C_e(this.plugin,{force:!0})},0);return}this.cleanupOrphanedWidgets(e);try{if(!this.plugin.settings.showTaskCardInNote||!this.cachedTask)return;let n=(t=e.dom.closest(".markdown-source-view"))==null?void 0:t.querySelector(".cm-sizer");if(!n){Td.warn("[TaskNotes] Could not find .cm-sizer container for task card widget",{category:"stale-data",operation:"find-cm-sizer-container-task-card-widget"});return}let a=F6(this.plugin,this.cachedTask);this.currentWidget=a,this.widgetContainer=n,Kg(n,a),this.plugin.emitter.trigger(Ift,{container:n})}catch(n){Td.error("[TaskNotes] Error injecting task card widget:",{category:"persistence",operation:"injecting-task-card-widget",error:n}),this.removeWidget()}}}});function zft(r){try{return decodeURIComponent(r)}catch(e){return r}}function nP(r){let e=zft(r).trim();if(!e)return"";if(e.startsWith("app://"))try{e=new URL(e).pathname}catch(t){}return e=e.replace(/^\/+/,""),e=e.split("#")[0].trim(),e.endsWith(".md")&&(e=e.slice(0,-3)),e}function P_e(r){var n;let e=nP(r),t=e.split("/");return(n=t[t.length-1])!=null?n:e}function jft(r,e){let t=nP(r),n=nP(e);return!t||!n?!1:t===n?!0:P_e(t)===P_e(n)}function $ft(r){let e=[],t=/!?\[\[([^\]]+)\]\]/g,n;for(;(n=t.exec(r))!==null;){if(n[0].startsWith("!"))continue;let a=n[1].trim();if(!a)continue;let i=a.indexOf("|"),s=i===-1?a:a.slice(0,i),o=nP(s);o&&e.push({target:o,hasAlias:i!==-1,subpath:JD(s)})}return e}function Bft(r,e,t){let n=nP(t);if(!n)return null;let a=()=>{for(let s=e.index;s<r.length;s++){let o=r[s];if(jft(o.target,n))return e.index=s+1,o}return null},i=a();return i||(e.index>0?(e.index=0,a()):null)}function Uft(r,e){return`${r}\0${e}`}function Hft(){return{index:0}}function qft(r){var n;if(!r.disableOverlayOnAlias)return!1;if(r.hasExplicitAlias)return!0;let e=r.linkText.trim(),t=kd(r.taskTitle,(n=r.taskSubpath)!=null?n:JD(r.originalLinkPath));return t&&e===t||C6(e,r.taskPath,r.originalLinkPath,r.taskTitle)?!1:e!==r.originalLinkPath&&e!==r.taskTitle}function Wft(r,e){var t,n,a;try{return(a=(n=(t=r.getSectionInfo)==null?void 0:t.call(r,e))==null?void 0:n.text)!=null?a:""}catch(i){return""}}function M_e(r){return new O6(r).createPostProcessor()}var DO,Vft,O6,A_e=y(()=>{Yr();D6();K();kO();DO=N({tag:"Editor/ReadingModeTaskLinkProcessor"});Vft=".task-inline-preview--reading-mode[data-task-path]";O6=class{constructor(e){this.sourceLinkCursors=new Map;this.refreshTimer=null;this.pendingRefreshAll=!1;this.pendingRefreshTaskPaths=new Set;this.plugin=e,this.setupEventListeners()}createPostProcessor(){return(e,t)=>{var l,c,d;if(!this.plugin.settings.enableTaskLinkOverlay)return;let n=e.querySelectorAll("a"),a=Wft(t,e),i=$ft(a),s=Uft(t.sourcePath,a),o=(l=this.sourceLinkCursors.get(s))!=null?l:Hft();this.sourceLinkCursors.set(s,o);for(let u of Array.from(n)){let p=u,m=p.getAttribute("href"),f=p.getAttribute("data-href")||m||"",h=i.length>0?Bft(i,o,f):null;p.classList.contains("internal-link")?this.processLink(p,t.sourcePath,"internal",(c=h==null?void 0:h.hasAlias)!=null?c:!1,h==null?void 0:h.subpath):m&&!m.startsWith("http://")&&!m.startsWith("https://")&&!m.includes("://")&&this.processLink(p,t.sourcePath,"external",(d=h==null?void 0:h.hasAlias)!=null?d:!1,h==null?void 0:h.subpath)}}}async processLink(e,t,n,a,i){try{let s=e.getAttribute("href");if(!s)return;let o=s;if(n==="internal"){if(s.startsWith("app://")){let d=new URL(s);o=decodeURIComponent(d.pathname),o.startsWith("/")&&(o=o.substring(1))}}else{if(s.startsWith("http://")||s.startsWith("https://")||s.includes("://"))return;o=s}let l=this.resolveLinkPath(o,t);if(!l)return;let c=this.getTaskInfo(l);if(!c)return;await this.replaceWithTaskWidget(e,c,o,a,i)}catch(s){DO.debug("Error processing link in reading mode:",{category:"persistence",operation:"processing-link-reading-mode",error:s})}}setupEventListeners(){this.plugin.registerEvent(this.plugin.emitter.on(ot,e=>{var t,n,a,i;this.scheduleReadingModeWidgetRefresh((i=(n=e==null?void 0:e.path)!=null?n:(t=e==null?void 0:e.updatedTask)==null?void 0:t.path)!=null?i:(a=e==null?void 0:e.task)==null?void 0:a.path)})),this.plugin.registerEvent(this.plugin.emitter.on(is,e=>{this.scheduleReadingModeWidgetRefresh(e==null?void 0:e.path)})),this.plugin.registerEvent(this.plugin.emitter.on(ii,()=>{this.scheduleReadingModeWidgetRefresh()})),this.plugin.registerEvent(this.plugin.emitter.on(Wp,()=>{this.scheduleReadingModeWidgetRefresh()})),this.plugin.registerEvent(this.plugin.emitter.on("settings-changed",()=>{this.scheduleReadingModeWidgetRefresh()})),this.plugin.register(()=>{this.refreshTimer!==null&&(window.clearTimeout(this.refreshTimer),this.refreshTimer=null)})}scheduleReadingModeWidgetRefresh(e){e?this.pendingRefreshAll||this.pendingRefreshTaskPaths.add(e):(this.pendingRefreshAll=!0,this.pendingRefreshTaskPaths.clear()),this.refreshTimer!==null&&window.clearTimeout(this.refreshTimer),this.refreshTimer=window.setTimeout(()=>{this.refreshTimer=null;let t=this.pendingRefreshAll?void 0:new Set(this.pendingRefreshTaskPaths);this.pendingRefreshAll=!1,this.pendingRefreshTaskPaths.clear(),this.refreshReadingModeWidgets(t)},100)}refreshReadingModeWidgets(e){let t=this.getReadingModeContainers();if(t.length!==0)for(let n of t){let a=Array.from(n.querySelectorAll(Vft));for(let i of a){let s=i.dataset.taskPath;if(!s||e&&!e.has(s))continue;if(!this.plugin.settings.enableTaskLinkOverlay){this.replaceWidgetWithOriginalLink(i);continue}let o=this.getTaskInfo(s);if(!o){this.replaceWidgetWithOriginalLink(i);continue}let l=i.dataset.originalLinkPath||o.path,c=i.dataset.originalText||o.title,d=i.dataset.displayText||void 0,u=new Gg(o,this.plugin,c,d),p=this.createReadingModeWidget(u,o,l,c,d);i.replaceWith(p)}}}getReadingModeContainers(){var n,a,i,s,o;let e=(i=(a=(n=this.plugin.app.workspace).getLeavesOfType)==null?void 0:a.call(n,"markdown"))!=null?i:[],t=[];for(let l of e){let c=l.view;if(typeof c.getMode=="function"&&c.getMode()!=="preview")continue;let d=(o=(s=c.previewMode)==null?void 0:s.containerEl)!=null?o:c.containerEl;d&&t.push(d)}return t}replaceWidgetWithOriginalLink(e){let t=e.dataset.originalLinkPath;if(!t){e.remove();return}let n=activeWindow.createEl("a");n.className="internal-link",n.setAttribute("href",t),n.setAttribute("data-href",t),n.textContent=e.dataset.originalText||t,e.replaceWith(n)}resolveLinkPath(e,t){try{let n=this.plugin.app.metadataCache.getFirstLinkpathDest(e,t);return(n==null?void 0:n.path)||null}catch(n){return DO.debug("Error resolving link path:",{category:"persistence",operation:"resolving-link-path",details:{value:e},error:n}),null}}getTaskInfo(e){try{if(!e||typeof e!="string"||e.trim().length===0)return null;let t=this.plugin.cacheManager;if(!t||!t.getCachedTaskInfoSync)return null;let n=t.getCachedTaskInfoSync(e);return n&&typeof n=="object"&&n.title?n:null}catch(t){return DO.debug("Error getting task info for:",{category:"persistence",operation:"getting-task-info",details:{value:e},error:t}),null}}async replaceWithTaskWidget(e,t,n,a,i){var s;try{let o=e.textContent||`[[${n}]]`,l=kd(t.title,i!=null?i:JD(n));if(qft({disableOverlayOnAlias:this.plugin.settings.disableOverlayOnAlias,hasExplicitAlias:a,linkText:e.textContent||"",originalLinkPath:n,taskSubpath:i,taskPath:t.path,taskTitle:t.title}))return;let c,d=e.textContent||"";a?c=d.trim()||void 0:l?c=l:d!==n&&d!==t.title&&(c=nT(d,t.path,n));let u=new Gg(t,this.plugin,o,c),p=this.createReadingModeWidget(u,t,n,o,c);(s=e.parentNode)==null||s.replaceChild(p,e)}catch(o){DO.error("Error replacing wikilink with task widget:",{category:"persistence",operation:"replacing-wikilink-task-widget",error:o})}}createReadingModeWidget(e,t,n,a,i){let s={},o=e.toDOM(s);return o.classList.add("task-inline-preview--reading-mode"),o.dataset.taskPath=t.path,o.dataset.originalLinkPath=n,o.dataset.originalText=a,i&&(o.dataset.displayText=i),o}}});function Kft(r,e,t){let n;switch(r){case"P":e&&e==="-"?t.isNegative=!0:t.isNegative=!1;break;case"D":n="days";break;case"W":n="weeks";break;case"H":n="hours";break;case"M":n="minutes";break;case"S":n="seconds";break;default:return 0}if(n){if(!e&&e!==0)throw new Error('invalid duration value: Missing number before "'+r+'"');let a=parseInt(e,10);if(sP(a))throw new Error('invalid duration value: Invalid number "'+e+'" before "'+r+'"');t[n]=a}return 1}function xr(r){let e={},t=e.component=[];if(e.stack=[t],xr._eachLine(r,function(n,a){xr._handleContentLine(a,e)}),e.stack.length>1)throw new op("invalid ical body. component began but did not end");return e=null,t.length==1?t[0]:t}function rht(r){let e,t,n,a,i;if(!r||r.name!=="vcalendar")return r;for(e=r.getAllSubcomponents(),t=[],n={},i=0;i<e.length;i++)if(e[i].name==="vtimezone"){let s=e[i].getFirstProperty("tzid").getFirstValue();n[s]=e[i]}else t=t.concat(e[i].getAllProperties());for(a={},i=0;i<t.length;i++){let s=t[i].getParameter("tzid");s&&(a[s]=!0)}for(let[s,o]of Object.entries(n))a[s]||r.removeSubcomponent(o);for(let s of Object.keys(a))!n[s]&&OO.has(s)&&r.addSubcomponent(OO.get(s).component);return r}function sP(r){return typeof r=="number"&&isNaN(r)}function vi(r){let e=parseInt(r,10);if(sP(e))throw new Error('Could not extract integer from "'+r+'"');return e}function ip(r,e){if(typeof r!="undefined")return r instanceof e?r:new e(r)}function U_e(r,e,t){for(;(t=r.indexOf(e,t))!==-1;)if(t>0&&r[t-1]==="\\")t+=1;else return t;return-1}function Jg(r,e,t){if(!r.length)return 0;let n=0,a=r.length-1,i,s;for(;n<=a;)if(i=n+Math.floor((a-n)/2),s=t(e,r[i]),s<0)a=i-1;else if(s>0)n=i+1;else break;return s<0?i:s>0?i+1:i}function ey(r,e){if(!r||typeof r!="object")return r;if(r instanceof Date)return new Date(r.getTime());if("clone"in r)return r.clone();if(Array.isArray(r)){let t=[];for(let n=0;n<r.length;n++)t.push(e?ey(r[n],!0):r[n]);return t}else{let t={};for(let[n,a]of Object.entries(r))e?t[n]=ey(a,!0):t[n]=a;return t}}function H_e(r){let e="",t=r||"",n=0,a=0;for(;t.length;){let i=t.codePointAt(n);i<128?++a:i<2048?a+=2:i<65536?a+=3:a+=4,a<ho.foldLength+1?n+=i>65535?2:1:(e+=ho.newLineChar+" "+t.slice(0,Math.max(0,n)),t=t.slice(Math.max(0,n)),n=a=0)}return e.slice(ho.newLineChar.length+1)}function Ss(r){switch(typeof r!="string"&&(typeof r=="number"&&(r=parseInt(r)),r=String(r)),r.length){case 0:return"00";case 1:return"0"+r;default:return r}}function Ia(r){return r<0?Math.ceil(r):Math.floor(r)}function ty(r,e){for(let t in r){let n=Object.getOwnPropertyDescriptor(r,t);n&&!Object.getOwnPropertyDescriptor(e,t)&&Object.defineProperty(e,t,n)}return e}function of(r,e,t,n){let a=n;if(n[0]==="+"&&(a=n.slice(1)),a=vi(a),e!==void 0&&n<e)throw new Error(r+': invalid value "'+n+'" must be > '+e);if(t!==void 0&&n>t)throw new Error(r+': invalid value "'+n+'" must be < '+e);return a}function $6(r,e){return{matches:/.*/,fromICAL:function(n,a){return dht(n,r,a)},toICAL:function(n,a){let i=e;return a&&(i=new RegExp(i.source+"|"+a,i.flags)),n.replace(i,function(s){switch(s){case"\\":return"\\\\";case";":return"\\;";case",":return"\\,";case`
|
||
`:return"\\n";default:return s}})}}}function cht(r){switch(r){case"\\\\":return"\\";case"\\;":return";";case"\\,":return",";case"\\n":case"\\N":return`
|
||
`;default:return r}}function dht(r,e,t){return r.indexOf("\\")===-1?r:(t&&(e=new RegExp(e.source+"|\\\\"+t,e.flags)),r.replace(e,cht))}function Dn(r){typeof r[0]=="string"&&(r=[r]);let e=0,t=r.length,n="";for(;e<t;e++)n+=Dn.component(r[e])+NO;return n}function B_e(r,e){return r[0]>e[0]?1:e[0]>r[0]?-1:0}var RO,Yft,Gft,fo,iP,cT,we,Ie,Zft,FO,j6,Qft,Jft,Xft,eht,op,tht,dT,uT,cr,Pr,Wi,OO,nht,sp,Qg,ws,oP,lT,aht,iht,V_e,sht,__e,ac,L6,z6,oht,lht,I_e,N_e,dr,lP,LO,PO,MO,AO,Ts,R_e,F_e,O_e,U6,H6,uht,sa,pht,mo,mht,fht,hht,ght,yht,ap,L_e,z_e,Mr,NO,j_e,vht,$_e,_O,IO,lf,Xg,cf,wd,df,kht,bht,nl,zO,aP,jO,B6,ho,q_e=y(()=>{RO=class r{constructor(e){I(this,"icaltype","binary");this.value=e}static fromString(e){return new r(e)}decodeValue(){return this._b64_decode(this.value)}setEncodedValue(e){this.value=this._b64_encode(e)}_b64_encode(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n,a,i,s,o,l,c,d,u=0,p=0,m="",f=[];if(!e)return e;do n=e.charCodeAt(u++),a=e.charCodeAt(u++),i=e.charCodeAt(u++),d=n<<16|a<<8|i,s=d>>18&63,o=d>>12&63,l=d>>6&63,c=d&63,f[p++]=t.charAt(s)+t.charAt(o)+t.charAt(l)+t.charAt(c);while(u<e.length);m=f.join("");let h=e.length%3;return(h?m.slice(0,h-3):m)+"===".slice(h||3)}_b64_decode(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n,a,i,s,o,l,c,d,u=0,p=0,m="",f=[];if(!e)return e;e+="";do s=t.indexOf(e.charAt(u++)),o=t.indexOf(e.charAt(u++)),l=t.indexOf(e.charAt(u++)),c=t.indexOf(e.charAt(u++)),d=s<<18|o<<12|l<<6|c,n=d>>16&255,a=d>>8&255,i=d&255,l==64?f[p++]=String.fromCharCode(n):c==64?f[p++]=String.fromCharCode(n,a):f[p++]=String.fromCharCode(n,a,i);while(u<e.length);return m=f.join(""),m}toString(){return this.value}},Yft=/([PDWHMTS]{1,1})/,Gft=["weeks","days","hours","minutes","seconds","isNegative"],fo=class r{constructor(e){I(this,"weeks",0);I(this,"days",0);I(this,"hours",0);I(this,"minutes",0);I(this,"seconds",0);I(this,"isNegative",!1);I(this,"icalclass","icalduration");I(this,"icaltype","duration");this.wrappedJSObject=this,this.fromData(e)}static fromSeconds(e){return new r().fromSeconds(e)}static isValueString(e){return e[0]==="P"||e[1]==="P"}static fromString(e){let t=0,n=Object.create(null),a=0;for(;(t=e.search(Yft))!==-1;){let i=e[t],s=e.slice(0,Math.max(0,t));e=e.slice(t+1),a+=Kft(i,s,n)}if(a<2)throw new Error('invalid duration value: Not enough duration components in "'+e+'"');return new r(n)}static fromData(e){return new r(e)}clone(){return r.fromData(this)}toSeconds(){let e=this.seconds+60*this.minutes+3600*this.hours+86400*this.days+604800*this.weeks;return this.isNegative?-e:e}fromSeconds(e){let t=Math.abs(e);return this.isNegative=e<0,this.days=Ia(t/86400),this.days%7==0?(this.weeks=this.days/7,this.days=0):this.weeks=0,t-=(this.days+7*this.weeks)*86400,this.hours=Ia(t/3600),t-=this.hours*3600,this.minutes=Ia(t/60),t-=this.minutes*60,this.seconds=t,this}fromData(e){for(let t of Gft)e&&t in e?this[t]=e[t]:this[t]=0}reset(){this.isNegative=!1,this.weeks=0,this.days=0,this.hours=0,this.minutes=0,this.seconds=0}compare(e){let t=this.toSeconds(),n=e.toSeconds();return(t>n)-(t<n)}normalize(){this.fromSeconds(this.toSeconds())}toString(){if(this.toSeconds()==0)return"PT0S";{let e="";this.isNegative&&(e+="-"),e+="P";let t=!1;return this.weeks?this.days||this.hours||this.minutes||this.seconds?e+=this.weeks*7+this.days+"D":(e+=this.weeks+"W",t=!0):this.days&&(e+=this.days+"D"),t||(this.hours||this.minutes||this.seconds)&&(e+="T",this.hours&&(e+=this.hours+"H"),this.minutes&&(e+=this.minutes+"M"),this.seconds&&(e+=this.seconds+"S")),e}}toICALString(){return this.toString()}};iP=class r{constructor(e){I(this,"start",null);I(this,"end",null);I(this,"duration",null);I(this,"icalclass","icalperiod");I(this,"icaltype","period");if(this.wrappedJSObject=this,e&&"start"in e){if(e.start&&!(e.start instanceof Ie))throw new TypeError(".start must be an instance of ICAL.Time");this.start=e.start}if(e&&e.end&&e.duration)throw new Error("cannot accept both end and duration");if(e&&"end"in e){if(e.end&&!(e.end instanceof Ie))throw new TypeError(".end must be an instance of ICAL.Time");this.end=e.end}if(e&&"duration"in e){if(e.duration&&!(e.duration instanceof fo))throw new TypeError(".duration must be an instance of ICAL.Duration");this.duration=e.duration}}static fromString(e,t){let n=e.split("/");if(n.length!==2)throw new Error('Invalid string value: "'+e+'" must contain a "/" char.');let a={start:Ie.fromDateTimeString(n[0],t)},i=n[1];return fo.isValueString(i)?a.duration=fo.fromString(i):a.end=Ie.fromDateTimeString(i,t),new r(a)}static fromData(e){return new r(e)}static fromJSON(e,t,n){function a(i,s){return n?Ie.fromString(i,s):Ie.fromDateTimeString(i,s)}return fo.isValueString(e[1])?r.fromData({start:a(e[0],t),duration:fo.fromString(e[1])}):r.fromData({start:a(e[0],t),end:a(e[1],t)})}clone(){return r.fromData({start:this.start?this.start.clone():null,end:this.end?this.end.clone():null,duration:this.duration?this.duration.clone():null})}getDuration(){return this.duration?this.duration:this.end.subtractDate(this.start)}getEnd(){if(this.end)return this.end;{let e=this.start.clone();return e.addDuration(this.duration),e}}compare(e){return e.compare(this.start)<0?1:e.compare(this.getEnd())>0?-1:0}toString(){return this.start+"/"+(this.end||this.duration)}toJSON(){return[this.start.toString(),(this.end||this.duration).toString()]}toICALString(){return this.start.toICALString()+"/"+(this.end||this.duration).toICALString()}},we=class we{constructor(e,t){I(this,"icalclass","icaltime");I(this,"_cachedUnixTime",null);I(this,"zone",null);I(this,"_pendingNormalization",!1);this.wrappedJSObject=this,this._time=Object.create(null),this._time.year=0,this._time.month=1,this._time.day=1,this._time.hour=0,this._time.minute=0,this._time.second=0,this._time.isDate=!1,this.fromData(e,t)}static daysInMonth(e,t){let n=[0,31,28,31,30,31,30,31,31,30,31,30,31],a=30;return e<1||e>12||(a=n[e],e==2&&(a+=we.isLeapYear(t))),a}static isLeapYear(e){return e<=1752?e%4==0:e%4==0&&e%100!=0||e%400==0}static fromDayOfYear(e,t){let n=t,a=e,i=new we;i.auto_normalize=!1;let s=we.isLeapYear(n)?1:0;if(a<1)return n--,s=we.isLeapYear(n)?1:0,a+=we.daysInYearPassedMonth[s][12],we.fromDayOfYear(a,n);if(a>we.daysInYearPassedMonth[s][12])return s=we.isLeapYear(n)?1:0,a-=we.daysInYearPassedMonth[s][12],n++,we.fromDayOfYear(a,n);i.year=n,i.isDate=!0;for(let o=11;o>=0;o--)if(a>we.daysInYearPassedMonth[s][o]){i.month=o+1,i.day=a-we.daysInYearPassedMonth[s][o];break}return i.auto_normalize=!0,i}static fromStringv2(e){return new we({year:parseInt(e.slice(0,4),10),month:parseInt(e.slice(5,7),10),day:parseInt(e.slice(8,10),10),isDate:!0})}static fromDateString(e){return new we({year:vi(e.slice(0,4)),month:vi(e.slice(5,7)),day:vi(e.slice(8,10)),isDate:!0})}static fromDateTimeString(e,t){if(e.length<19)throw new Error('invalid date-time value: "'+e+'"');let n,a;e.slice(-1)==="Z"?n=Pr.utcTimezone:t&&(a=t.getParameter("tzid"),t.parent&&(t.parent.name==="standard"||t.parent.name==="daylight"?n=Pr.localTimezone:a&&(n=t.parent.getTimeZoneByID(a))));let i={year:vi(e.slice(0,4)),month:vi(e.slice(5,7)),day:vi(e.slice(8,10)),hour:vi(e.slice(11,13)),minute:vi(e.slice(14,16)),second:vi(e.slice(17,19))};return a&&!n&&(i.timezone=a),new we(i,n)}static fromString(e,t){return e.length>10?we.fromDateTimeString(e,t):we.fromDateString(e)}static fromJSDate(e,t){return new we().fromJSDate(e,t)}static now(){return we.fromJSDate(new Date,!1)}static weekOneStarts(e,t){let n=we.fromData({year:e,month:1,day:1,isDate:!0}),a=n.dayOfWeek(),i=t||we.DEFAULT_WEEK_START;return a>we.THURSDAY&&(n.day+=7),i>we.THURSDAY&&(n.day-=7),n.day-=a-i,n}static getDominicalLetter(e){let t="GFEDCBA",n=(e+(e/4|0)+(e/400|0)-(e/100|0)-1)%7;return we.isLeapYear(e)?t[(n+6)%7]+t[n]:t[n]}static get epochTime(){return In(this,cT)||xo(this,cT,we.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:"Z"})),In(this,cT)}static _cmp_attr(e,t,n){return e[n]>t[n]?1:e[n]<t[n]?-1:0}get icaltype(){return this.isDate?"date":"date-time"}get year(){return this._getTimeAttr("year")}set year(e){this._setTimeAttr("year",e)}get month(){return this._getTimeAttr("month")}set month(e){this._setTimeAttr("month",e)}get day(){return this._getTimeAttr("day")}set day(e){this._setTimeAttr("day",e)}get hour(){return this._getTimeAttr("hour")}set hour(e){this._setTimeAttr("hour",e)}get minute(){return this._getTimeAttr("minute")}set minute(e){this._setTimeAttr("minute",e)}get second(){return this._getTimeAttr("second")}set second(e){this._setTimeAttr("second",e)}get isDate(){return this._getTimeAttr("isDate")}set isDate(e){this._setTimeAttr("isDate",e)}_getTimeAttr(e){return this._pendingNormalization&&(this._normalize(),this._pendingNormalization=!1),this._time[e]}_setTimeAttr(e,t){e==="isDate"&&t&&!this._time.isDate&&this.adjust(0,0,0,0),this._cachedUnixTime=null,this._pendingNormalization=!0,this._time[e]=t}clone(){return new we(this._time,this.zone)}reset(){this.fromData(we.epochTime),this.zone=Pr.utcTimezone}resetTo(e,t,n,a,i,s,o){this.fromData({year:e,month:t,day:n,hour:a,minute:i,second:s,zone:o})}fromJSDate(e,t){return e?t?(this.zone=Pr.utcTimezone,this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()):(this.zone=Pr.localTimezone,this.year=e.getFullYear(),this.month=e.getMonth()+1,this.day=e.getDate(),this.hour=e.getHours(),this.minute=e.getMinutes(),this.second=e.getSeconds()):this.reset(),this._cachedUnixTime=null,this}fromData(e,t){if(e)for(let[n,a]of Object.entries(e))n!=="icaltype"&&(this[n]=a);if(t&&(this.zone=t),e&&!("isDate"in e)?this.isDate=!("hour"in e):e&&"isDate"in e&&(this.isDate=e.isDate),e&&"timezone"in e){let n=OO.get(e.timezone);this.zone=n||Pr.localTimezone}return e&&"zone"in e&&(this.zone=e.zone),this.zone||(this.zone=Pr.localTimezone),this._cachedUnixTime=null,this}dayOfWeek(e){let t=e||we.SUNDAY,n=(this.year<<12)+(this.month<<8)+(this.day<<3)+t;if(n in we._dowCache)return we._dowCache[n];let a=this.day,i=this.month+(this.month<3?12:0),s=this.year-(this.month<3?1:0),o=a+s+Ia((i+1)*26/10)+Ia(s/4);return o+=Ia(s/100)*6+Ia(s/400),o=(o+7-t)%7+1,we._dowCache[n]=o,o}dayOfYear(){let e=we.isLeapYear(this.year)?1:0;return we.daysInYearPassedMonth[e][this.month-1]+this.day}startOfWeek(e){let t=e||we.SUNDAY,n=this.clone();return n.day-=(this.dayOfWeek()+7-t)%7,n.isDate=!0,n.hour=0,n.minute=0,n.second=0,n}endOfWeek(e){let t=e||we.SUNDAY,n=this.clone();return n.day+=(7-this.dayOfWeek()+t-we.SUNDAY)%7,n.isDate=!0,n.hour=0,n.minute=0,n.second=0,n}startOfMonth(){let e=this.clone();return e.day=1,e.isDate=!0,e.hour=0,e.minute=0,e.second=0,e}endOfMonth(){let e=this.clone();return e.day=we.daysInMonth(e.month,e.year),e.isDate=!0,e.hour=0,e.minute=0,e.second=0,e}startOfYear(){let e=this.clone();return e.day=1,e.month=1,e.isDate=!0,e.hour=0,e.minute=0,e.second=0,e}endOfYear(){let e=this.clone();return e.day=31,e.month=12,e.isDate=!0,e.hour=0,e.minute=0,e.second=0,e}startDoyWeek(e){let t=e||we.SUNDAY,n=this.dayOfWeek()-t;return n<0&&(n+=7),this.dayOfYear()-n}getDominicalLetter(){return we.getDominicalLetter(this.year)}nthWeekDay(e,t){let n=we.daysInMonth(this.month,this.year),a,i=t,s=0,o=this.clone();if(i>=0){o.day=1,i!=0&&i--,s=o.day;let l=o.dayOfWeek(),c=e-l;c<0&&(c+=7),s+=c,s-=e,a=e}else{o.day=n;let l=o.dayOfWeek();i++,a=l-e,a<0&&(a+=7),a=n-a}return a+=i*7,s+a}isNthWeekDay(e,t){let n=this.dayOfWeek();return t===0&&n===e||this.nthWeekDay(e,t)===this.day}weekNumber(e){let t=(this.year<<12)+(this.month<<8)+(this.day<<3)+e;if(t in we._wnCache)return we._wnCache[t];let n,a=this.clone();a.isDate=!0;let i=this.year;a.month==12&&a.day>25?(n=we.weekOneStarts(i+1,e),a.compare(n)<0?n=we.weekOneStarts(i,e):i++):(n=we.weekOneStarts(i,e),a.compare(n)<0&&(n=we.weekOneStarts(--i,e)));let s=a.subtractDate(n).toSeconds()/86400,o=Ia(s/7)+1;return we._wnCache[t]=o,o}addDuration(e){let t=e.isNegative?-1:1,n=this.second,a=this.minute,i=this.hour,s=this.day;n+=t*e.seconds,a+=t*e.minutes,i+=t*e.hours,s+=t*e.days,s+=t*7*e.weeks,this.second=n,this.minute=a,this.hour=i,this.day=s,this._cachedUnixTime=null}subtractDate(e){let t=this.toUnixTime()+this.utcOffset(),n=e.toUnixTime()+e.utcOffset();return fo.fromSeconds(t-n)}subtractDateTz(e){let t=this.toUnixTime(),n=e.toUnixTime();return fo.fromSeconds(t-n)}compare(e){if(e instanceof iP)return-1*e.compare(this);{let t=this.toUnixTime(),n=e.toUnixTime();return t>n?1:n>t?-1:0}}compareDateOnlyTz(e,t){let n=this.convertToZone(t),a=e.convertToZone(t),i=0;return(i=we._cmp_attr(n,a,"year"))!=0||(i=we._cmp_attr(n,a,"month"))!=0||(i=we._cmp_attr(n,a,"day"))!=0,i}convertToZone(e){let t=this.clone(),n=this.zone.tzid==e.tzid;return!this.isDate&&!n&&Pr.convert_time(t,this.zone,e),t.zone=e,t}utcOffset(){return this.zone==Pr.localTimezone||this.zone==Pr.utcTimezone?0:this.zone.utcOffset(this)}toICALString(){let e=this.toString();return e.length>10?Mr.icalendar.value["date-time"].toICAL(e):Mr.icalendar.value.date.toICAL(e)}toString(){let e=this.year+"-"+Ss(this.month)+"-"+Ss(this.day);return this.isDate||(e+="T"+Ss(this.hour)+":"+Ss(this.minute)+":"+Ss(this.second),this.zone===Pr.utcTimezone&&(e+="Z")),e}toJSDate(){return this.zone==Pr.localTimezone?this.isDate?new Date(this.year,this.month-1,this.day):new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.second,0):new Date(this.toUnixTime()*1e3)}_normalize(){return this._time.isDate&&(this._time.hour=0,this._time.minute=0,this._time.second=0),this.adjust(0,0,0,0),this}adjust(e,t,n,a,i){let s,o,l=0,c=0,d,u,p,m,f,h=i||this._time;if(h.isDate||(d=h.second+a,h.second=d%60,s=Ia(d/60),h.second<0&&(h.second+=60,s--),u=h.minute+n+s,h.minute=u%60,o=Ia(u/60),h.minute<0&&(h.minute+=60,o--),p=h.hour+t+o,h.hour=p%24,l=Ia(p/24),h.hour<0&&(h.hour+=24,l--)),h.month>12?c=Ia((h.month-1)/12):h.month<1&&(c=Ia(h.month/12)-1),h.year+=c,h.month-=12*c,m=h.day+e+l,m>0)for(;f=we.daysInMonth(h.month,h.year),!(m<=f);)h.month++,h.month>12&&(h.year++,h.month=1),m-=f;else for(;m<=0;)h.month==1?(h.year--,h.month=12):h.month--,m+=we.daysInMonth(h.month,h.year);return h.day=m,this._cachedUnixTime=null,this}fromUnixTime(e){this.zone=Pr.utcTimezone;let t=new Date(e*1e3);this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this._time.isDate?(this.hour=0,this.minute=0,this.second=0):(this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()),this._cachedUnixTime=null}toUnixTime(){if(this._cachedUnixTime!==null)return this._cachedUnixTime;let e=this.utcOffset(),t=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second-e);return this._cachedUnixTime=t/1e3,this._cachedUnixTime}toJSON(){let e=["year","month","day","hour","minute","second","isDate"],t=Object.create(null),n=0,a=e.length,i;for(;n<a;n++)i=e[n],t[i]=this[i];return this.zone&&(t.timezone=this.zone.tzid),t}};cT=new WeakMap,I(we,"_dowCache",{}),I(we,"_wnCache",{}),I(we,"fromData",function(t,n){return new we().fromData(t,n)}),Tc(we,cT,null),I(we,"daysInYearPassedMonth",[[0,31,59,90,120,151,181,212,243,273,304,334,365],[0,31,60,91,121,152,182,213,244,274,305,335,366]]),I(we,"SUNDAY",1),I(we,"MONDAY",2),I(we,"TUESDAY",3),I(we,"WEDNESDAY",4),I(we,"THURSDAY",5),I(we,"FRIDAY",6),I(we,"SATURDAY",7),I(we,"DEFAULT_WEEK_START",2);Ie=we,Zft=/[^ \t]/,FO=":",j6=";",Qft="=",Jft="unknown",Xft="text",eht={"^'":'"',"^n":`
|
||
`,"^^":"^"};xr.property=function(r,e){let t={component:[[],[]],designSet:e||Mr.defaultSet};return xr._handleContentLine(r,t),t.component[1][0]};xr.component=function(r){return xr(r)};op=class extends Error{constructor(){super(...arguments);I(this,"name",this.constructor.name)}};xr.ParserError=op;xr._handleContentLine=function(r,e){let t=r.indexOf(FO),n=r.indexOf(j6),a,i,s,o,l={};n!==-1&&t!==-1&&n>t&&(n=-1);let c;if(n!==-1){if(s=r.slice(0,Math.max(0,n)).toLowerCase(),c=xr._parseParameters(r.slice(Math.max(0,n)),0,e.designSet),c[2]==-1)throw new op("Invalid parameters in '"+r+"'");l=c[0];let v;if(typeof c[1]=="string"?v=c[1].length:v=c[1].reduce((b,k)=>b+k.length,0),a=v+c[2]+n,(i=r.slice(Math.max(0,a)).indexOf(FO))!==-1)o=r.slice(Math.max(0,a+i+1));else throw new op("Missing parameter value in '"+r+"'")}else if(t!==-1){if(s=r.slice(0,Math.max(0,t)).toLowerCase(),o=r.slice(Math.max(0,t+1)),s==="begin"){let v=[o.toLowerCase(),[],[]];e.stack.length===1?e.component.push(v):e.component[2].push(v),e.stack.push(e.component),e.component=v,e.designSet||(e.designSet=Mr.getDesignSet(e.component[0]));return}else if(s==="end"){e.component=e.stack.pop();return}}else throw new op('invalid line (no token ";" or ":") "'+r+'"');let d,u=!1,p=!1,m,f,h;e.designSet.propertyGroups&&s.indexOf(".")!==-1?(f=s.split("."),l.group=f[0],h=f[1]):h=s,h in e.designSet.property&&(m=e.designSet.property[h],"multiValue"in m&&(u=m.multiValue),"structuredValue"in m&&(p=m.structuredValue),o&&"detectType"in m&&(d=m.detectType(o))),d||("value"in l?d=l.value.toLowerCase():m?d=m.defaultType:d=Jft),delete l.value;let g;u&&p?(o=xr._parseMultiValue(o,p,d,[],u,e.designSet,p),g=[h,l,d,o]):u?(g=[h,l,d],xr._parseMultiValue(o,u,d,g,null,e.designSet,!1)):p?(o=xr._parseMultiValue(o,p,d,[],null,e.designSet,p),g=[h,l,d,o]):(o=xr._parseValue(o,d,e.designSet,!1),g=[h,l,d,o]),e.component[0]==="vcard"&&e.component[1].length===0&&!(s==="version"&&o==="4.0")&&(e.designSet=Mr.getDesignSet("vcard3")),e.component[1].push(g)};xr._parseValue=function(r,e,t,n){return e in t.value&&"fromICAL"in t.value[e]?t.value[e].fromICAL(r,n):r};xr._parseParameters=function(r,e,t){let n=e,a=0,i=Qft,s={},o,l,c,d=-1,u,p,m;for(;a!==!1&&(a=r.indexOf(i,a+1))!==-1;){if(o=r.slice(n+1,a),o.length==0)throw new op("Empty parameter name in '"+r+"'");if(l=o.toLowerCase(),m=!1,p=!1,l in t.param&&t.param[l].valueType?u=t.param[l].valueType:u=Xft,l in t.param&&(p=t.param[l].multiValue,t.param[l].multiValueSeparateDQuote&&(m=xr._rfc6868Escape('"'+p+'"'))),r[a+1]==='"'){if(d=a+2,a=r.indexOf('"',d),p&&a!=-1){let v=!0;for(;v;)r[a+1]==p&&r[a+2]=='"'?a=r.indexOf('"',a+3):v=!1}if(a===-1)throw new op('invalid line (no matching double quote) "'+r+'"');c=r.slice(d,a),n=r.indexOf(j6,a);let g=r.indexOf(FO,a);(n===-1||g!==-1&&n>g)&&(a=!1)}else{d=a+1;let g=r.indexOf(j6,d),v=r.indexOf(FO,d);v!==-1&&g>v?(g=v,a=!1):g===-1?(v===-1?g=r.length:g=v,a=!1):(n=g,a=g),c=r.slice(d,g)}let h=c.length;if(c=xr._rfc6868Escape(c),d+=h-c.length,p){let g=m||p;c=xr._parseMultiValue(c,g,u,[],null,t)}else c=xr._parseValue(c,u,t);p&&l in s?Array.isArray(s[l])?s[l].push(c):s[l]=[s[l],c]:s[l]=c}return[s,c,d]};xr._rfc6868Escape=function(r){return r.replace(/\^['n^]/g,function(e){return eht[e]})};xr._parseMultiValue=function(r,e,t,n,a,i,s){let o=0,l=0,c;if(e.length===0)return r;for(;(o=U_e(r,e,l))!==-1;)c=r.slice(l,o),a?c=xr._parseMultiValue(c,a,t,[],null,i,s):c=xr._parseValue(c,t,i,s),n.push(c),l=o+e.length;return c=r.slice(l),a?c=xr._parseMultiValue(c,a,t,[],null,i,s):c=xr._parseValue(c,t,i,s),n.push(c),n.length==1?n[0]:n};xr._eachLine=function(r,e){let t=r.length,n=r.search(Zft),a=n,i,s,o;do a=r.indexOf(`
|
||
`,n)+1,a>1&&r[a-2]==="\r"?o=2:o=1,a===0&&(a=t,o=0),s=r[n],s===" "||s===" "?i+=r.slice(n+1,a-o):(i&&e(null,i),i=r.slice(n,a-o)),n=a;while(a!==t);i=i.trim(),i.length&&e(null,i)};tht=["tzid","location","tznames","latitude","longitude"],cr=class cr{constructor(e){I(this,"tzid","");I(this,"location","");I(this,"tznames","");I(this,"latitude",0);I(this,"longitude",0);I(this,"component",null);I(this,"expandedUntilYear",0);I(this,"icalclass","icaltimezone");this.wrappedJSObject=this,this.fromData(e)}static _compare_change_fn(e,t){return e.year<t.year?-1:e.year>t.year?1:e.month<t.month?-1:e.month>t.month?1:e.day<t.day?-1:e.day>t.day?1:e.hour<t.hour?-1:e.hour>t.hour?1:e.minute<t.minute?-1:e.minute>t.minute?1:e.second<t.second?-1:e.second>t.second?1:0}static convert_time(e,t,n){if(e.isDate||t.tzid==n.tzid||t==cr.localTimezone||n==cr.localTimezone)return e.zone=n,e;let a=t.utcOffset(e);return e.adjust(0,0,0,-a),a=n.utcOffset(e),e.adjust(0,0,0,a),null}static fromData(e){return new cr().fromData(e)}static get utcTimezone(){return In(this,dT)||xo(this,dT,cr.fromData({tzid:"UTC"})),In(this,dT)}static get localTimezone(){return In(this,uT)||xo(this,uT,cr.fromData({tzid:"floating"})),In(this,uT)}static adjust_change(e,t,n,a,i){return Ie.prototype.adjust.call(e,t,n,a,i,e)}fromData(e){if(this.expandedUntilYear=0,this.changes=[],e instanceof nl)this.component=e;else{if(e&&"component"in e)if(typeof e.component=="string"){let t=xr(e.component);this.component=new nl(t)}else e.component instanceof nl?this.component=e.component:this.component=null;for(let t of tht)e&&t in e&&(this[t]=e[t])}return this.component instanceof nl&&!this.tzid&&(this.tzid=this.component.getFirstPropertyValue("tzid")),this}utcOffset(e){if(this==cr.utcTimezone||this==cr.localTimezone||(this._ensureCoverage(e.year),!this.changes.length))return 0;let t={year:e.year,month:e.month,day:e.day,hour:e.hour,minute:e.minute,second:e.second},n=this._findNearbyChange(t),a=-1,i=1;for(;;){let l=ey(this.changes[n],!0);if(l.utcOffset<l.prevUtcOffset?cr.adjust_change(l,0,0,0,l.utcOffset):cr.adjust_change(l,0,0,0,l.prevUtcOffset),cr._compare_change_fn(t,l)>=0?a=n:i=-1,i==-1&&a!=-1)break;if(n+=i,n<0)return 0;if(n>=this.changes.length)break}let s=this.changes[a];if(s.utcOffset-s.prevUtcOffset<0&&a>0){let l=ey(s,!0);if(cr.adjust_change(l,0,0,0,l.prevUtcOffset),cr._compare_change_fn(t,l)<0){let c=this.changes[a-1],d=!1;s.is_daylight!=d&&c.is_daylight==d&&(s=c)}}return s.utcOffset}_findNearbyChange(e){let t=Jg(this.changes,e,cr._compare_change_fn);return t>=this.changes.length?this.changes.length-1:t}_ensureCoverage(e){if(cr._minimumExpansionYear==-1){let n=Ie.now();cr._minimumExpansionYear=n.year}let t=e;if(t<cr._minimumExpansionYear&&(t=cr._minimumExpansionYear),t+=cr.EXTRA_COVERAGE,!this.changes.length||this.expandedUntilYear<e){let n=this.component.getAllSubcomponents(),a=n.length,i=0;for(;i<a;i++)this._expandComponent(n[i],t,this.changes);this.changes.sort(cr._compare_change_fn),this.expandedUntilYear=t}}_expandComponent(e,t,n){if(!e.hasProperty("dtstart")||!e.hasProperty("tzoffsetto")||!e.hasProperty("tzoffsetfrom"))return null;let a=e.getFirstProperty("dtstart").getFirstValue(),i;function s(l){return l.factor*(l.hours*3600+l.minutes*60)}function o(){let l={};return l.is_daylight=e.name=="daylight",l.utcOffset=s(e.getFirstProperty("tzoffsetto").getFirstValue()),l.prevUtcOffset=s(e.getFirstProperty("tzoffsetfrom").getFirstValue()),l}if(!e.hasProperty("rrule")&&!e.hasProperty("rdate"))i=o(),i.year=a.year,i.month=a.month,i.day=a.day,i.hour=a.hour,i.minute=a.minute,i.second=a.second,cr.adjust_change(i,0,0,0,-i.prevUtcOffset),n.push(i);else{let l=e.getAllProperties("rdate");for(let d of l){let u=d.getFirstValue();i=o(),i.year=u.year,i.month=u.month,i.day=u.day,u.isDate?(i.hour=a.hour,i.minute=a.minute,i.second=a.second,a.zone!=cr.utcTimezone&&cr.adjust_change(i,0,0,0,-i.prevUtcOffset)):(i.hour=u.hour,i.minute=u.minute,i.second=u.second,u.zone!=cr.utcTimezone&&cr.adjust_change(i,0,0,0,-i.prevUtcOffset)),n.push(i)}let c=e.getFirstProperty("rrule");if(c){c=c.getFirstValue(),i=o(),c.until&&c.until.zone==cr.utcTimezone&&(c.until.adjust(0,0,0,i.prevUtcOffset),c.until.zone=cr.localTimezone);let d=c.iterator(a),u;for(;(u=d.next())&&(i=o(),!(u.year>t||!u));)i.year=u.year,i.month=u.month,i.day=u.day,i.hour=u.hour,i.minute=u.minute,i.second=u.second,i.isDate=u.isDate,cr.adjust_change(i,0,0,0,-i.prevUtcOffset),n.push(i)}}return n}toString(){return this.tznames?this.tznames:this.tzid}};dT=new WeakMap,uT=new WeakMap,Tc(cr,dT,null),Tc(cr,uT,null),I(cr,"_minimumExpansionYear",-1),I(cr,"EXTRA_COVERAGE",5);Pr=cr,Wi=null,OO={get count(){return Wi===null?0:Object.keys(Wi).length},reset:function(){Wi=Object.create(null);let r=Pr.utcTimezone;Wi.Z=r,Wi.UTC=r,Wi.GMT=r},_hard_reset:function(){Wi=null},has:function(r){return Wi===null?!1:!!Wi[r]},get:function(r){return Wi===null&&this.reset(),Wi[r]},register:function(r,e){if(Wi===null&&this.reset(),typeof r=="string"&&e instanceof Pr&&([r,e]=[e,r]),e||(r instanceof Pr?e=r.tzid:r.name==="vtimezone"&&(r=new Pr(r),e=r.tzid)),!e)throw new TypeError("Neither a timezone nor a name was passed");if(r instanceof Pr)Wi[e]=r;else throw new TypeError("timezone must be ICAL.Timezone or ICAL.Component")},remove:function(r){return Wi===null?null:delete Wi[r]}};nht=Object.freeze({__proto__:null,binsearchInsert:Jg,clone:ey,extend:ty,foldline:H_e,formatClassType:ip,isStrictlyNaN:sP,pad2:Ss,strictParseInt:vi,trunc:Ia,unescapedIndexOf:U_e,updateTimezones:rht}),sp=class r{constructor(e){I(this,"hours",0);I(this,"minutes",0);I(this,"factor",1);I(this,"icaltype","utc-offset");this.fromData(e)}static fromString(e){let t={};return t.factor=e[0]==="+"?1:-1,t.hours=vi(e.slice(1,3)),t.minutes=vi(e.slice(4,6)),new r(t)}static fromSeconds(e){let t=new r;return t.fromSeconds(e),t}clone(){return r.fromSeconds(this.toSeconds())}fromData(e){if(e)for(let[t,n]of Object.entries(e))this[t]=n;this._normalize()}fromSeconds(e){let t=Math.abs(e);return this.factor=e<0?-1:1,this.hours=Ia(t/3600),t-=this.hours*3600,this.minutes=Ia(t/60),this}toSeconds(){return this.factor*(60*this.minutes+3600*this.hours)}compare(e){let t=this.toSeconds(),n=e.toSeconds();return(t>n)-(n>t)}_normalize(){let e=this.toSeconds(),t=this.factor;for(;e<-43200;)e+=97200;for(;e>50400;)e-=97200;this.fromSeconds(e),e==0&&(this.factor=t)}toICALString(){return Mr.icalendar.value["utc-offset"].toICAL(this.toString())}toString(){return(this.factor==1?"+":"-")+Ss(this.hours)+":"+Ss(this.minutes)}},Qg=class r extends Ie{constructor(t,n,a){super(t,n);I(this,"icalclass","vcardtime");I(this,"icaltype","date-and-or-time");this.icaltype=a||"date-and-or-time"}static fromDateAndOrTimeString(t,n){function a(g,v,b){return g?vi(g.slice(v,v+b)):null}let i=t.split("T"),s=i[0],o=i[1],l=o?Mr.vcard.value.time._splitZone(o):[],c=l[0],d=l[1],u=s?s.length:0,p=d?d.length:0,m=s&&s[0]=="-"&&s[1]=="-",f=d&&d[0]=="-",h={year:m?null:a(s,0,4),month:m&&(u==4||u==7)?a(s,2,2):u==7||u==10?a(s,5,2):null,day:u==5?a(s,3,2):u==7&&m?a(s,5,2):u==10?a(s,8,2):null,hour:f?null:a(d,0,2),minute:f&&p==3?a(d,1,2):p>4?f?a(d,1,2):a(d,3,2):null,second:p==4?a(d,2,2):p==6?a(d,4,2):p==8?a(d,6,2):null};return c=="Z"?c=Pr.utcTimezone:c&&c[3]==":"?c=sp.fromString(c):c=null,new r(h,c,n)}clone(){return new r(this._time,this.zone,this.icaltype)}_normalize(){return this}utcOffset(){return this.zone instanceof sp?this.zone.toSeconds():Ie.prototype.utcOffset.apply(this,arguments)}toICALString(){return Mr.vcard.value[this.icaltype].toICAL(this.toString())}toString(){let t=this.year,n=this.month,a=this.day,i=this.hour,s=this.minute,o=this.second,l=t!==null,c=n!==null,d=a!==null,u=i!==null,p=s!==null,m=o!==null,f=(l?Ss(t)+(c||d?"-":""):c||d?"--":"")+(c?Ss(n):"")+(d?"-"+Ss(a):""),h=(u?Ss(i):"-")+(u&&p?":":"")+(p?Ss(s):"")+(!u&&!p?"-":"")+(p&&m?":":"")+(m?Ss(o):""),g;switch(this.zone===Pr.utcTimezone?g="Z":this.zone instanceof sp?g=this.zone.toString():this.zone===Pr.localTimezone?g="":this.zone instanceof Pr?g=sp.fromSeconds(this.zone.utcOffset(this)).toString():g="",this.icaltype){case"time":return h+g;case"date-and-or-time":case"date-time":return f+(h=="--"?"":"T"+h+g);case"date":return f}return null}},ws=class ws{constructor(e){I(this,"completed",!1);I(this,"rule",null);I(this,"dtstart",null);I(this,"last",null);I(this,"occurrence_number",0);I(this,"by_indices",null);I(this,"initialized",!1);I(this,"by_data",null);I(this,"days",null);I(this,"days_index",0);this.fromData(e)}fromData(e){if(this.rule=ip(e.rule,ac),!this.rule)throw new Error("iterator requires a (ICAL.Recur) rule");if(this.dtstart=ip(e.dtstart,Ie),!this.dtstart)throw new Error("iterator requires a (ICAL.Time) dtstart");if(e.by_data?this.by_data=e.by_data:this.by_data=ey(this.rule.parts,!0),e.occurrence_number&&(this.occurrence_number=e.occurrence_number),this.days=e.days||[],e.last&&(this.last=ip(e.last,Ie)),this.by_indices=e.by_indices,this.by_indices||(this.by_indices={BYSECOND:0,BYMINUTE:0,BYHOUR:0,BYDAY:0,BYMONTH:0,BYWEEKNO:0,BYMONTHDAY:0}),this.initialized=e.initialized||!1,!this.initialized)try{this.init()}catch(t){if(t instanceof lT)this.completed=!0;else throw t}}init(){this.initialized=!0,this.last=this.dtstart.clone();let e=this.by_data;if("BYDAY"in e&&this.sort_byday_rules(e.BYDAY),"BYYEARDAY"in e&&("BYMONTH"in e||"BYWEEKNO"in e||"BYMONTHDAY"in e))throw new Error("Invalid BYYEARDAY rule");if("BYWEEKNO"in e&&"BYMONTHDAY"in e)throw new Error("BYWEEKNO does not fit to BYMONTHDAY");if(this.rule.freq=="MONTHLY"&&("BYYEARDAY"in e||"BYWEEKNO"in e))throw new Error("For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear");if(this.rule.freq=="WEEKLY"&&("BYYEARDAY"in e||"BYMONTHDAY"in e))throw new Error("For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear");if(this.rule.freq!="YEARLY"&&"BYYEARDAY"in e)throw new Error("BYYEARDAY may only appear in YEARLY rules");if(this.last.second=this.setup_defaults("BYSECOND","SECONDLY",this.dtstart.second),this.last.minute=this.setup_defaults("BYMINUTE","MINUTELY",this.dtstart.minute),this.last.hour=this.setup_defaults("BYHOUR","HOURLY",this.dtstart.hour),this.last.day=this.setup_defaults("BYMONTHDAY","DAILY",this.dtstart.day),this.last.month=this.setup_defaults("BYMONTH","MONTHLY",this.dtstart.month),this.rule.freq=="WEEKLY")if("BYDAY"in e){let[,t]=this.ruleDayOfWeek(e.BYDAY[0],this.rule.wkst),n=t-this.last.dayOfWeek(this.rule.wkst);(this.last.dayOfWeek(this.rule.wkst)<t&&n>=0||n<0)&&(this.last.day+=n)}else{let t=ac.numericDayToIcalDay(this.dtstart.dayOfWeek());e.BYDAY=[t]}if(this.rule.freq=="YEARLY"){let t=this.rule.until?this.rule.until.year:2e4;for(;this.last.year<=t&&(this.expand_year_days(this.last.year),!(this.days.length>0));)this.increment_year(this.rule.interval);if(this.days.length==0)throw new lT;if(!this._nextByYearDay()&&!this.next_year()&&!this.next_year()&&!this.next_year())throw new lT}if(this.rule.freq=="MONTHLY"){if(this.has_by_data("BYDAY")){let t=null,n=this.last.clone(),a=Ie.daysInMonth(this.last.month,this.last.year);for(let i of this.by_data.BYDAY){this.last=n.clone();let[s,o]=this.ruleDayOfWeek(i),l=this.last.nthWeekDay(o,s);if(s>=6||s<=-6)throw new Error("Malformed values in BYDAY part");if(l>a||l<=0){if(t&&t.month==n.month)continue;for(;l>a||l<=0;)this.increment_month(),a=Ie.daysInMonth(this.last.month,this.last.year),l=this.last.nthWeekDay(o,s)}this.last.day=l,(!t||this.last.compare(t)<0)&&(t=this.last.clone())}if(this.last=t.clone(),this.has_by_data("BYMONTHDAY")&&this._byDayAndMonthDay(!0),this.last.day>a||this.last.day==0)throw new Error("Malformed values in BYDAY part")}else if(this.has_by_data("BYMONTHDAY")){this.last.day=1;let t=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY).filter(n=>n>=this.last.day);if(t.length)this.last.day=t[0],this.by_data.BYMONTHDAY=t;else if(!this.next_month()&&!this.next_month()&&!this.next_month())throw new lT}}}next(e=!1){let t=this.last?this.last.clone():null;if((this.rule.count&&this.occurrence_number>=this.rule.count||this.rule.until&&this.last.compare(this.rule.until)>0)&&(this.completed=!0),this.completed)return null;if(this.occurrence_number==0&&this.last.compare(this.dtstart)>=0)return this.occurrence_number++,this.last;let n,a=0;do switch(n=1,this.rule.freq){case"SECONDLY":this.next_second();break;case"MINUTELY":this.next_minute();break;case"HOURLY":this.next_hour();break;case"DAILY":this.next_day();break;case"WEEKLY":this.next_week();break;case"MONTHLY":if(n=this.next_month(),n)a=0;else if(++a==336)return this.completed=!0,null;break;case"YEARLY":if(n=this.next_year(),n)a=0;else if(++a==28)return this.completed=!0,null;break;default:return null}while(!this.check_contracting_rules()||this.last.compare(this.dtstart)<0||!n);if(this.last.compare(t)==0){if(e)throw new Error("Same occurrence found twice, protecting you from death by recursion");this.next(!0)}return this.rule.until&&this.last.compare(this.rule.until)>0?(this.completed=!0,null):(this.occurrence_number++,this.last)}next_second(){return this.next_generic("BYSECOND","SECONDLY","second","minute")}increment_second(e){return this.increment_generic(e,"second",60,"minute")}next_minute(){return this.next_generic("BYMINUTE","MINUTELY","minute","hour","next_second")}increment_minute(e){return this.increment_generic(e,"minute",60,"hour")}next_hour(){return this.next_generic("BYHOUR","HOURLY","hour","monthday","next_minute")}increment_hour(e){this.increment_generic(e,"hour",24,"monthday")}next_day(){let e=this.rule.freq=="DAILY";return this.next_hour()==0||(e?this.increment_monthday(this.rule.interval):this.increment_monthday(1)),0}next_week(){let e=0;if(this.next_weekday_by_week()==0)return e;if(this.has_by_data("BYWEEKNO")){this.by_indices.BYWEEKNO++,this.by_indices.BYWEEKNO==this.by_data.BYWEEKNO.length&&(this.by_indices.BYWEEKNO=0,e=1),this.last.month=1,this.last.day=1;let t=this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];this.last.day+=7*t,e&&this.increment_year(1)}else this.increment_monthday(7*this.rule.interval);return e}normalizeByMonthDayRules(e,t,n){let a=Ie.daysInMonth(t,e),i=[],s=0,o=n.length,l;for(;s<o;s++){if(l=parseInt(n[s],10),isNaN(l))throw new Error("Invalid BYMONTHDAY value");if(!(Math.abs(l)>a)){if(l<0)l=a+(l+1);else if(l===0)continue;i.indexOf(l)===-1&&i.push(l)}}return i.sort(function(c,d){return c-d})}_byDayAndMonthDay(e){let t,n=this.by_data.BYDAY,a,i=0,s,o=n.length,l=0,c,d=this,u=this.last.day;function p(){for(c=Ie.daysInMonth(d.last.month,d.last.year),t=d.normalizeByMonthDayRules(d.last.year,d.last.month,d.by_data.BYMONTHDAY),s=t.length;t[i]<=u&&!(e&&t[i]==u)&&i<s-1;)i++}function m(){u=0,d.increment_month(),i=0,p()}p(),e&&(u-=1);let f=48;for(;!l&&f;){if(f--,a=u+1,a>c){m();continue}let h=t[i++];if(h>=a)u=h;else{m();continue}for(let g=0;g<o;g++){let v=this.ruleDayOfWeek(n[g]),b=v[0],k=v[1];if(this.last.day=u,this.last.isNthWeekDay(k,b)){l=1;break}}if(!l&&i===s){m();continue}}if(f<=0)throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts");return l}next_month(){let e=1;if(this.next_hour()==0)return e;if(this.has_by_data("BYDAY")&&this.has_by_data("BYMONTHDAY"))e=this._byDayAndMonthDay();else if(this.has_by_data("BYDAY")){let t=Ie.daysInMonth(this.last.month,this.last.year),n=0,a=0;if(this.has_by_data("BYSETPOS")){let s=this.last.day;for(let o=1;o<=t;o++)this.last.day=o,this.is_day_in_byday(this.last)&&(a++,o<=s&&n++);this.last.day=s}e=0;let i;for(i=this.last.day+1;i<=t;i++)if(this.last.day=i,this.is_day_in_byday(this.last)&&(!this.has_by_data("BYSETPOS")||this.check_set_position(++n)||this.check_set_position(n-a-1))){e=1;break}i>t&&(this.last.day=1,this.increment_month(),this.is_day_in_byday(this.last)?(!this.has_by_data("BYSETPOS")||this.check_set_position(1))&&(e=1):e=0)}else if(this.has_by_data("BYMONTHDAY")){if(this.by_indices.BYMONTHDAY++,this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month(),this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length))return 0;let t=Ie.daysInMonth(this.last.month,this.last.year),n=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];n<0&&(n=t+n+1),n>t?(this.last.day=1,e=this.is_day_in_byday(this.last)):this.last.day=n}else{this.increment_month();let t=Ie.daysInMonth(this.last.month,this.last.year);this.by_data.BYMONTHDAY[0]>t?e=0:this.last.day=this.by_data.BYMONTHDAY[0]}return e}next_weekday_by_week(){let e=0;if(this.next_hour()==0)return e;if(!this.has_by_data("BYDAY"))return 1;for(;;){let t=new Ie;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,e=1);let n=this.by_data.BYDAY[this.by_indices.BYDAY],i=this.ruleDayOfWeek(n)[1];i-=this.rule.wkst,i<0&&(i+=7),t.year=this.last.year,t.month=this.last.month,t.day=this.last.day;let s=t.startDoyWeek(this.rule.wkst);if(i+s<1&&!e)continue;let o=Ie.fromDayOfYear(s+i,this.last.year);return this.last.year=o.year,this.last.month=o.month,this.last.day=o.day,e}}next_year(){return this.next_hour()==0||(this.days.length==0||++this.days_index==this.days.length)&&(this.days_index=0,this.increment_year(this.rule.interval),this.has_by_data("BYMONTHDAY")&&(this.by_data.BYMONTHDAY=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY)),this.expand_year_days(this.last.year),this.days.length==0)?0:this._nextByYearDay()}_nextByYearDay(){let e=this.days[this.days_index],t=this.last.year;if(Math.abs(e)==366&&!Ie.isLeapYear(this.last.year))return 0;e<1&&(e+=1,t+=1);let n=Ie.fromDayOfYear(e,t);return this.last.day=n.day,this.last.month=n.month,1}ruleDayOfWeek(e,t){let n=e.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);if(n){let a=parseInt(n[1]||0,10);return e=ac.icalDayToNumericDay(n[2],t),[a,e]}else return[0,0]}next_generic(e,t,n,a,i){let s=e in this.by_data,o=this.rule.freq==t,l=0;if(i&&this[i]()==0)return l;if(s){this.by_indices[e]++;let c=this.by_data[e];this.by_indices[e]==c.length&&(this.by_indices[e]=0,l=1),this.last[n]=c[this.by_indices[e]]}else o&&this["increment_"+n](this.rule.interval);return s&&l&&o&&this["increment_"+a](1),l}increment_monthday(e){for(let t=0;t<e;t++){let n=Ie.daysInMonth(this.last.month,this.last.year);this.last.day++,this.last.day>n&&(this.last.day-=n,this.increment_month())}}increment_month(){if(this.last.day=1,this.has_by_data("BYMONTH"))this.by_indices.BYMONTH++,this.by_indices.BYMONTH==this.by_data.BYMONTH.length&&(this.by_indices.BYMONTH=0,this.increment_year(1)),this.last.month=this.by_data.BYMONTH[this.by_indices.BYMONTH];else{this.rule.freq=="MONTHLY"?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;let e=Ia(this.last.month/12);this.last.month%=12,this.last.month++,e!=0&&this.increment_year(e)}this.has_by_data("BYMONTHDAY")&&(this.by_data.BYMONTHDAY=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY))}increment_year(e){this.last.day=1,this.last.year+=e}increment_generic(e,t,n,a){this.last[t]+=e;let i=Ia(this.last[t]/n);this.last[t]%=n,i!=0&&this["increment_"+a](i)}has_by_data(e){return e in this.rule.parts}expand_year_days(e){let t=new Ie;this.days=[];let n={},a=["BYDAY","BYWEEKNO","BYMONTHDAY","BYMONTH","BYYEARDAY"];for(let o of a)o in this.rule.parts&&(n[o]=this.rule.parts[o]);if("BYMONTH"in n&&"BYWEEKNO"in n){let o=1,l={};t.year=e,t.isDate=!0;for(let c=0;c<this.by_data.BYMONTH.length;c++){let d=this.by_data.BYMONTH[c];t.month=d,t.day=1;let u=t.weekNumber(this.rule.wkst);t.day=Ie.daysInMonth(d,e);let p=t.weekNumber(this.rule.wkst);for(c=u;c<p;c++)l[c]=1}for(let c=0;c<this.by_data.BYWEEKNO.length&&o;c++)this.by_data.BYWEEKNO[c]<52?o&=l[c]:o=0;o?delete n.BYMONTH:delete n.BYWEEKNO}let i=Object.keys(n).length;if(i==0){let o=this.dtstart.clone();o.year=this.last.year,this.days.push(o.dayOfYear())}else if(i==1&&"BYMONTH"in n)for(let o of this.by_data.BYMONTH){let l=this.dtstart.clone();l.year=e,l.month=o,l.isDate=!0,this.days.push(l.dayOfYear())}else if(i==1&&"BYMONTHDAY"in n)for(let o of this.by_data.BYMONTHDAY){let l=this.dtstart.clone();if(o<0){let c=Ie.daysInMonth(l.month,e);o=o+c+1}l.day=o,l.year=e,l.isDate=!0,this.days.push(l.dayOfYear())}else if(i==2&&"BYMONTHDAY"in n&&"BYMONTH"in n)for(let o of this.by_data.BYMONTH){let l=Ie.daysInMonth(o,e);for(let c of this.by_data.BYMONTHDAY)c<0&&(c=c+l+1),t.day=c,t.month=o,t.year=e,t.isDate=!0,this.days.push(t.dayOfYear())}else if(!(i==1&&"BYWEEKNO"in n)){if(!(i==2&&"BYWEEKNO"in n&&"BYMONTHDAY"in n)){if(i==1&&"BYDAY"in n)this.days=this.days.concat(this.expand_by_day(e));else if(i==2&&"BYDAY"in n&&"BYMONTH"in n){for(let o of this.by_data.BYMONTH){let l=Ie.daysInMonth(o,e);t.year=e,t.month=o,t.day=1,t.isDate=!0;let c=t.dayOfWeek(),d=t.dayOfYear()-1;t.day=l;let u=t.dayOfWeek();if(this.has_by_data("BYSETPOS")){let p=[];for(let m=1;m<=l;m++)t.day=m,this.is_day_in_byday(t)&&p.push(m);for(let m=0;m<p.length;m++)(this.check_set_position(m+1)||this.check_set_position(m-p.length))&&this.days.push(d+p[m])}else for(let p of this.by_data.BYDAY){let m=this.ruleDayOfWeek(p),f=m[0],h=m[1],g,v=(h+7-c)%7+1,b=l-(u+7-h)%7;if(f==0)for(let k=v;k<=l;k+=7)this.days.push(d+k);else f>0?(g=v+(f-1)*7,g<=l&&this.days.push(d+g)):(g=b+(f+1)*7,g>0&&this.days.push(d+g))}}this.days.sort(function(o,l){return o-l})}else if(i==2&&"BYDAY"in n&&"BYMONTHDAY"in n){let o=this.expand_by_day(e);for(let l of o){let c=Ie.fromDayOfYear(l,e);this.by_data.BYMONTHDAY.indexOf(c.day)>=0&&this.days.push(l)}}else if(i==3&&"BYDAY"in n&&"BYMONTHDAY"in n&&"BYMONTH"in n){let o=this.expand_by_day(e);for(let l of o){let c=Ie.fromDayOfYear(l,e);this.by_data.BYMONTH.indexOf(c.month)>=0&&this.by_data.BYMONTHDAY.indexOf(c.day)>=0&&this.days.push(l)}}else if(i==2&&"BYDAY"in n&&"BYWEEKNO"in n){let o=this.expand_by_day(e);for(let l of o){let d=Ie.fromDayOfYear(l,e).weekNumber(this.rule.wkst);this.by_data.BYWEEKNO.indexOf(d)&&this.days.push(l)}}else if(!(i==3&&"BYDAY"in n&&"BYWEEKNO"in n&&"BYMONTHDAY"in n))if(i==1&&"BYYEARDAY"in n)this.days=this.days.concat(this.by_data.BYYEARDAY);else if(i==2&&"BYYEARDAY"in n&&"BYDAY"in n){let o=Ie.isLeapYear(e)?366:365,l=new Set(this.expand_by_day(e));for(let c of this.by_data.BYYEARDAY)c<0&&(c+=o+1),l.has(c)&&this.days.push(c)}else this.days=[]}}let s=Ie.isLeapYear(e)?366:365;return this.days.sort((o,l)=>(o<0&&(o+=s+1),l<0&&(l+=s+1),o-l)),0}expand_by_day(e){let t=[],n=this.last.clone();n.year=e,n.month=1,n.day=1,n.isDate=!0;let a=n.dayOfWeek();n.month=12,n.day=31,n.isDate=!0;let i=n.dayOfWeek(),s=n.dayOfYear();for(let o of this.by_data.BYDAY){let l=this.ruleDayOfWeek(o),c=l[0],d=l[1];if(c==0){let u=(d+7-a)%7+1;for(let p=u;p<=s;p+=7)t.push(p)}else if(c>0){let u;d>=a?u=d-a+1:u=d-a+8,t.push(u+(c-1)*7)}else{let u;c=-c,d<=i?u=s-i+d:u=s-i+d-7,t.push(u-(c-1)*7)}}return t}is_day_in_byday(e){if(this.by_data.BYDAY)for(let t of this.by_data.BYDAY){let n=this.ruleDayOfWeek(t),a=n[0],i=n[1],s=e.dayOfWeek();if(a==0&&i==s||e.nthWeekDay(i,a)==e.day)return 1}return 0}check_set_position(e){return this.has_by_data("BYSETPOS")?this.by_data.BYSETPOS.indexOf(e)!==-1:!1}sort_byday_rules(e){for(let t=0;t<e.length;t++)for(let n=0;n<t;n++){let a=this.ruleDayOfWeek(e[n],this.rule.wkst)[1],i=this.ruleDayOfWeek(e[t],this.rule.wkst)[1];if(a>i){let s=e[t];e[t]=e[n],e[n]=s}}}check_contract_restriction(e,t){let n=ws._indexMap[e],a=ws._expandMap[this.rule.freq][n],i=!1;if(e in this.by_data&&a==ws.CONTRACT){let s=this.by_data[e];for(let o of s)if(o==t){i=!0;break}}else i=!0;return i}check_contracting_rules(){let e=this.last.dayOfWeek(),t=this.last.weekNumber(this.rule.wkst),n=this.last.dayOfYear();return this.check_contract_restriction("BYSECOND",this.last.second)&&this.check_contract_restriction("BYMINUTE",this.last.minute)&&this.check_contract_restriction("BYHOUR",this.last.hour)&&this.check_contract_restriction("BYDAY",ac.numericDayToIcalDay(e))&&this.check_contract_restriction("BYWEEKNO",t)&&this.check_contract_restriction("BYMONTHDAY",this.last.day)&&this.check_contract_restriction("BYMONTH",this.last.month)&&this.check_contract_restriction("BYYEARDAY",n)}setup_defaults(e,t,n){let a=ws._indexMap[e];return ws._expandMap[this.rule.freq][a]!=ws.CONTRACT&&(e in this.by_data||(this.by_data[e]=[n]),this.rule.freq!=t)?this.by_data[e][0]:n}toJSON(){let e=Object.create(null);return e.initialized=this.initialized,e.rule=this.rule.toJSON(),e.dtstart=this.dtstart.toJSON(),e.by_data=this.by_data,e.days=this.days,e.last=this.last.toJSON(),e.by_indices=this.by_indices,e.occurrence_number=this.occurrence_number,e}};I(ws,"_indexMap",{BYSECOND:0,BYMINUTE:1,BYHOUR:2,BYDAY:3,BYMONTHDAY:4,BYYEARDAY:5,BYWEEKNO:6,BYMONTH:7,BYSETPOS:8}),I(ws,"_expandMap",{SECONDLY:[1,1,1,1,1,1,1,1],MINUTELY:[2,1,1,1,1,1,1,1],HOURLY:[2,2,1,1,1,1,1,1],DAILY:[2,2,2,1,1,1,1,1],WEEKLY:[2,2,2,2,3,3,1,1],MONTHLY:[2,2,2,2,2,3,3,1],YEARLY:[2,2,2,2,2,2,2,2]}),I(ws,"UNKNOWN",0),I(ws,"CONTRACT",1),I(ws,"EXPAND",2),I(ws,"ILLEGAL",3);oP=ws,lT=class extends Error{constructor(){super("Recurrence rule has no valid occurrences")}},aht=/^(SU|MO|TU|WE|TH|FR|SA)$/,iht=/^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/,V_e={SU:Ie.SUNDAY,MO:Ie.MONDAY,TU:Ie.TUESDAY,WE:Ie.WEDNESDAY,TH:Ie.THURSDAY,FR:Ie.FRIDAY,SA:Ie.SATURDAY},sht=Object.fromEntries(Object.entries(V_e).map(r=>r.reverse())),__e=["SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY"],ac=class r{constructor(e){I(this,"parts",null);I(this,"interval",1);I(this,"wkst",Ie.MONDAY);I(this,"until",null);I(this,"count",null);I(this,"freq",null);I(this,"icalclass","icalrecur");I(this,"icaltype","recur");this.wrappedJSObject=this,this.parts={},e&&typeof e=="object"&&this.fromData(e)}static fromString(e){let t=this._stringToData(e,!1);return new r(t)}static fromData(e){return new r(e)}static _stringToData(e,t){let n=Object.create(null),a=e.split(";"),i=a.length;for(let s=0;s<i;s++){let o=a[s].split("="),l=o[0].toUpperCase(),c=o[0].toLowerCase(),d=t?c:l,u=o[1];if(l in z6){let p=u.split(","),m=new Set;for(let f of p)m.add(z6[l](f));p=[...m],n[d]=p.length==1?p[0]:p}else l in L6?L6[l](u,n,t):n[c]=u}return n}static icalDayToNumericDay(e,t){let n=t||Ie.SUNDAY;return(V_e[e]-n+7)%7+1}static numericDayToIcalDay(e,t){let n=t||Ie.SUNDAY,a=e+n-Ie.SUNDAY;return a>7&&(a-=7),sht[a]}iterator(e){return new oP({rule:this,dtstart:e})}clone(){return new r(this.toJSON())}isFinite(){return!!(this.count||this.until)}isByCount(){return!!(this.count&&!this.until)}addComponent(e,t){let n=e.toUpperCase();n in this.parts?this.parts[n].push(t):this.parts[n]=[t]}setComponent(e,t){this.parts[e.toUpperCase()]=t.slice()}getComponent(e){let t=e.toUpperCase();return t in this.parts?this.parts[t].slice():[]}getNextOccurrence(e,t){let n=this.iterator(e),a;do a=n.next();while(a&&a.compare(t)<=0);return a&&t.zone&&(a.zone=t.zone),a}fromData(e){for(let t in e){let n=t.toUpperCase();n in z6?Array.isArray(e[t])?this.parts[n]=e[t]:this.parts[n]=[e[t]]:this[t]=e[t]}this.interval&&typeof this.interval!="number"&&L6.INTERVAL(this.interval,this),this.wkst&&typeof this.wkst!="number"&&(this.wkst=r.icalDayToNumericDay(this.wkst)),this.until&&!(this.until instanceof Ie)&&(this.until=Ie.fromString(this.until))}toJSON(){let e=Object.create(null);e.freq=this.freq,this.count&&(e.count=this.count),this.interval>1&&(e.interval=this.interval);for(let[t,n]of Object.entries(this.parts))Array.isArray(n)&&n.length==1?e[t.toLowerCase()]=n[0]:e[t.toLowerCase()]=ey(n);return this.until&&(e.until=this.until.toString()),"wkst"in this&&this.wkst!==Ie.DEFAULT_WEEK_START&&(e.wkst=r.numericDayToIcalDay(this.wkst)),e}toString(){let e="FREQ="+this.freq;this.count&&(e+=";COUNT="+this.count),this.interval>1&&(e+=";INTERVAL="+this.interval);for(let[t,n]of Object.entries(this.parts))e+=";"+t+"="+n;return this.until&&(e+=";UNTIL="+this.until.toICALString()),"wkst"in this&&this.wkst!==Ie.DEFAULT_WEEK_START&&(e+=";WKST="+r.numericDayToIcalDay(this.wkst)),e}};L6={FREQ:function(r,e,t){if(__e.indexOf(r)!==-1)e.freq=r;else throw new Error('invalid frequency "'+r+'" expected: "'+__e.join(", ")+'"')},COUNT:function(r,e,t){e.count=vi(r)},INTERVAL:function(r,e,t){e.interval=vi(r),e.interval<1&&(e.interval=1)},UNTIL:function(r,e,t){r.length>10?e.until=Mr.icalendar.value["date-time"].fromICAL(r):e.until=Mr.icalendar.value.date.fromICAL(r),t||(e.until=Ie.fromString(e.until))},WKST:function(r,e,t){if(aht.test(r))e.wkst=ac.icalDayToNumericDay(r);else throw new Error('invalid WKST value "'+r+'"')}},z6={BYSECOND:of.bind(void 0,"BYSECOND",0,60),BYMINUTE:of.bind(void 0,"BYMINUTE",0,59),BYHOUR:of.bind(void 0,"BYHOUR",0,23),BYDAY:function(r){if(iht.test(r))return r;throw new Error('invalid BYDAY value "'+r+'"')},BYMONTHDAY:of.bind(void 0,"BYMONTHDAY",-31,31),BYYEARDAY:of.bind(void 0,"BYYEARDAY",-366,366),BYWEEKNO:of.bind(void 0,"BYWEEKNO",-53,53),BYMONTH:of.bind(void 0,"BYMONTH",1,12),BYSETPOS:of.bind(void 0,"BYSETPOS",-366,366)},oht=/\\\\|\\;|\\,|\\[Nn]/g,lht=/\\|;|,|\n/g,I_e=/\\\\|\\,|\\[Nn]/g,N_e=/\\|,|\n/g;dr={defaultType:"text"},lP={defaultType:"text",multiValue:","},LO={defaultType:"text",structuredValue:";"},PO={defaultType:"integer"},MO={defaultType:"date-time",allowedTypes:["date-time","date"]},AO={defaultType:"date-time"},Ts={defaultType:"uri"},R_e={defaultType:"utc-offset"},F_e={defaultType:"recur"},O_e={defaultType:"date-and-or-time",allowedTypes:["date-time","date","text"]};U6={categories:lP,url:Ts,version:dr,uid:dr},H6={boolean:{values:["TRUE","FALSE"],fromICAL:function(r){switch(r){case"TRUE":return!0;case"FALSE":return!1;default:return!1}},toICAL:function(r){return r?"TRUE":"FALSE"}},float:{matches:/^[+-]?\d+\.\d+$/,fromICAL:function(r){let e=parseFloat(r);return sP(e)?0:e},toICAL:function(r){return String(r)}},integer:{fromICAL:function(r){let e=parseInt(r);return sP(e)?0:e},toICAL:function(r){return String(r)}},"utc-offset":{toICAL:function(r){return r.length<7?r.slice(0,3)+r.slice(4,6):r.slice(0,3)+r.slice(4,6)+r.slice(7,9)},fromICAL:function(r){return r.length<6?r.slice(0,3)+":"+r.slice(3,5):r.slice(0,3)+":"+r.slice(3,5)+":"+r.slice(5,7)},decorate:function(r){return sp.fromString(r)},undecorate:function(r){return r.toString()}}},uht={cutype:{values:["INDIVIDUAL","GROUP","RESOURCE","ROOM","UNKNOWN"],allowXName:!0,allowIanaToken:!0},"delegated-from":{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},"delegated-to":{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},encoding:{values:["8BIT","BASE64"]},fbtype:{values:["FREE","BUSY","BUSY-UNAVAILABLE","BUSY-TENTATIVE"],allowXName:!0,allowIanaToken:!0},member:{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},partstat:{values:["NEEDS-ACTION","ACCEPTED","DECLINED","TENTATIVE","DELEGATED","COMPLETED","IN-PROCESS"],allowXName:!0,allowIanaToken:!0},range:{values:["THISANDFUTURE"]},related:{values:["START","END"]},reltype:{values:["PARENT","CHILD","SIBLING"],allowXName:!0,allowIanaToken:!0},role:{values:["REQ-PARTICIPANT","CHAIR","OPT-PARTICIPANT","NON-PARTICIPANT"],allowXName:!0,allowIanaToken:!0},rsvp:{values:["TRUE","FALSE"]},"sent-by":{valueType:"cal-address"},tzid:{matches:/^\//},value:{values:["binary","boolean","cal-address","date","date-time","duration","float","integer","period","recur","text","time","uri","utc-offset"],allowXName:!0,allowIanaToken:!0}},sa=ty(H6,{text:$6(oht,lht),uri:{},binary:{decorate:function(r){return RO.fromString(r)},undecorate:function(r){return r.toString()}},"cal-address":{},date:{decorate:function(r,e){return Mr.strict?Ie.fromDateString(r,e):Ie.fromString(r,e)},undecorate:function(r){return r.toString()},fromICAL:function(r){return!Mr.strict&&r.length>=15?sa["date-time"].fromICAL(r):r.slice(0,4)+"-"+r.slice(4,6)+"-"+r.slice(6,8)},toICAL:function(r){let e=r.length;return e==10?r.slice(0,4)+r.slice(5,7)+r.slice(8,10):e>=19?sa["date-time"].toICAL(r):r}},"date-time":{fromICAL:function(r){if(!Mr.strict&&r.length==8)return sa.date.fromICAL(r);{let e=r.slice(0,4)+"-"+r.slice(4,6)+"-"+r.slice(6,8)+"T"+r.slice(9,11)+":"+r.slice(11,13)+":"+r.slice(13,15);return r[15]&&r[15]==="Z"&&(e+="Z"),e}},toICAL:function(r){let e=r.length;if(e==10&&!Mr.strict)return sa.date.toICAL(r);if(e>=19){let t=r.slice(0,4)+r.slice(5,7)+r.slice(8,13)+r.slice(14,16)+r.slice(17,19);return r[19]&&r[19]==="Z"&&(t+="Z"),t}else return r},decorate:function(r,e){return Mr.strict?Ie.fromDateTimeString(r,e):Ie.fromString(r,e)},undecorate:function(r){return r.toString()}},duration:{decorate:function(r){return fo.fromString(r)},undecorate:function(r){return r.toString()}},period:{fromICAL:function(r){let e=r.split("/");return e[0]=sa["date-time"].fromICAL(e[0]),fo.isValueString(e[1])||(e[1]=sa["date-time"].fromICAL(e[1])),e},toICAL:function(r){return r=r.slice(),!Mr.strict&&r[0].length==10?r[0]=sa.date.toICAL(r[0]):r[0]=sa["date-time"].toICAL(r[0]),fo.isValueString(r[1])||(!Mr.strict&&r[1].length==10?r[1]=sa.date.toICAL(r[1]):r[1]=sa["date-time"].toICAL(r[1])),r.join("/")},decorate:function(r,e){return iP.fromJSON(r,e,!Mr.strict)},undecorate:function(r){return r.toJSON()}},recur:{fromICAL:function(r){return ac._stringToData(r,!0)},toICAL:function(r){let e="";for(let[t,n]of Object.entries(r))t=="until"?n.length>10?n=sa["date-time"].toICAL(n):n=sa.date.toICAL(n):t=="wkst"?typeof n=="number"&&(n=ac.numericDayToIcalDay(n)):Array.isArray(n)&&(n=n.join(",")),e+=t.toUpperCase()+"="+n+";";return e.slice(0,Math.max(0,e.length-1))},decorate:function(e){return ac.fromData(e)},undecorate:function(r){return r.toJSON()}},time:{fromICAL:function(r){if(r.length<6)return r;let e=r.slice(0,2)+":"+r.slice(2,4)+":"+r.slice(4,6);return r[6]==="Z"&&(e+="Z"),e},toICAL:function(r){if(r.length<8)return r;let e=r.slice(0,2)+r.slice(3,5)+r.slice(6,8);return r[8]==="Z"&&(e+="Z"),e}}}),pht=ty(U6,{action:dr,attach:{defaultType:"uri"},attendee:{defaultType:"cal-address"},calscale:dr,class:dr,comment:dr,completed:AO,contact:dr,created:AO,description:dr,dtend:MO,dtstamp:AO,dtstart:MO,due:MO,duration:{defaultType:"duration"},exdate:{defaultType:"date-time",allowedTypes:["date-time","date"],multiValue:","},exrule:F_e,freebusy:{defaultType:"period",multiValue:","},geo:{defaultType:"float",structuredValue:";"},"last-modified":AO,location:dr,method:dr,organizer:{defaultType:"cal-address"},"percent-complete":PO,priority:PO,prodid:dr,"related-to":dr,repeat:PO,rdate:{defaultType:"date-time",allowedTypes:["date-time","date","period"],multiValue:",",detectType:function(r){return r.indexOf("/")!==-1?"period":r.indexOf("T")===-1?"date":"date-time"}},"recurrence-id":MO,resources:lP,"request-status":LO,rrule:F_e,sequence:PO,status:dr,summary:dr,transp:dr,trigger:{defaultType:"duration",allowedTypes:["duration","date-time"]},tzoffsetfrom:R_e,tzoffsetto:R_e,tzurl:Ts,tzid:dr,tzname:dr}),mo=ty(H6,{text:$6(I_e,N_e),uri:$6(I_e,N_e),date:{decorate:function(r){return Qg.fromDateAndOrTimeString(r,"date")},undecorate:function(r){return r.toString()},fromICAL:function(r){return r.length==8?sa.date.fromICAL(r):r[0]=="-"&&r.length==6?r.slice(0,4)+"-"+r.slice(4):r},toICAL:function(r){return r.length==10?sa.date.toICAL(r):r[0]=="-"&&r.length==7?r.slice(0,4)+r.slice(5):r}},time:{decorate:function(r){return Qg.fromDateAndOrTimeString("T"+r,"time")},undecorate:function(r){return r.toString()},fromICAL:function(r){let e=mo.time._splitZone(r,!0),t=e[0],n=e[1];return n.length==6?n=n.slice(0,2)+":"+n.slice(2,4)+":"+n.slice(4,6):n.length==4&&n[0]!="-"?n=n.slice(0,2)+":"+n.slice(2,4):n.length==5&&(n=n.slice(0,3)+":"+n.slice(3,5)),t.length==5&&(t[0]=="-"||t[0]=="+")&&(t=t.slice(0,3)+":"+t.slice(3)),n+t},toICAL:function(r){let e=mo.time._splitZone(r),t=e[0],n=e[1];return n.length==8?n=n.slice(0,2)+n.slice(3,5)+n.slice(6,8):n.length==5&&n[0]!="-"?n=n.slice(0,2)+n.slice(3,5):n.length==6&&(n=n.slice(0,3)+n.slice(4,6)),t.length==6&&(t[0]=="-"||t[0]=="+")&&(t=t.slice(0,3)+t.slice(4)),n+t},_splitZone:function(r,e){let t=r.length-1,n=r.length-(e?5:6),a=r[n],i,s;return r[t]=="Z"?(i=r[t],s=r.slice(0,Math.max(0,t))):r.length>6&&(a=="-"||a=="+")?(i=r.slice(n),s=r.slice(0,Math.max(0,n))):(i="",s=r),[i,s]}},"date-time":{decorate:function(r){return Qg.fromDateAndOrTimeString(r,"date-time")},undecorate:function(r){return r.toString()},fromICAL:function(r){return mo["date-and-or-time"].fromICAL(r)},toICAL:function(r){return mo["date-and-or-time"].toICAL(r)}},"date-and-or-time":{decorate:function(r){return Qg.fromDateAndOrTimeString(r,"date-and-or-time")},undecorate:function(r){return r.toString()},fromICAL:function(r){let e=r.split("T");return(e[0]?mo.date.fromICAL(e[0]):"")+(e[1]?"T"+mo.time.fromICAL(e[1]):"")},toICAL:function(r){let e=r.split("T");return mo.date.toICAL(e[0])+(e[1]?"T"+mo.time.toICAL(e[1]):"")}},timestamp:sa["date-time"],"language-tag":{matches:/^[a-zA-Z0-9-]+$/},"phone-number":{fromICAL:function(r){return Array.from(r).filter(function(e){return e==="\\"?void 0:e}).join("")},toICAL:function(r){return Array.from(r).map(function(e){return e===","||e===";"?"\\"+e:e}).join("")}}}),mht={type:{valueType:"text",multiValue:","},value:{values:["text","uri","date","time","date-time","date-and-or-time","timestamp","boolean","integer","float","utc-offset","language-tag"],allowXName:!0,allowIanaToken:!0}},fht=ty(U6,{adr:{defaultType:"text",structuredValue:";",multiValue:","},anniversary:O_e,bday:O_e,caladruri:Ts,caluri:Ts,clientpidmap:LO,email:dr,fburl:Ts,fn:dr,gender:LO,geo:Ts,impp:Ts,key:Ts,kind:dr,lang:{defaultType:"language-tag"},logo:Ts,member:Ts,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:lP,note:dr,org:{defaultType:"text",structuredValue:";"},photo:Ts,related:Ts,rev:{defaultType:"timestamp"},role:dr,sound:Ts,source:Ts,tel:{defaultType:"uri",allowedTypes:["uri","text"]},title:dr,tz:{defaultType:"text",allowedTypes:["text","utc-offset","uri"]},xml:dr}),hht=ty(H6,{binary:sa.binary,date:mo.date,"date-time":mo["date-time"],"phone-number":mo["phone-number"],uri:sa.uri,text:mo.text,time:sa.time,vcard:sa.text,"utc-offset":{toICAL:function(r){return r.slice(0,7)},fromICAL:function(r){return r.slice(0,7)},decorate:function(r){return sp.fromString(r)},undecorate:function(r){return r.toString()}}}),ght={type:{valueType:"text",multiValue:","},value:{values:["text","uri","date","date-time","phone-number","time","boolean","integer","float","utc-offset","vcard","binary"],allowXName:!0,allowIanaToken:!0}},yht=ty(U6,{fn:dr,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:lP,photo:{defaultType:"binary",allowedTypes:["binary","uri"]},bday:{defaultType:"date-time",allowedTypes:["date-time","date"],detectType:function(r){return r.indexOf("T")===-1?"date":"date-time"}},adr:{defaultType:"text",structuredValue:";",multiValue:","},label:dr,tel:{defaultType:"phone-number"},email:dr,mailer:dr,tz:{defaultType:"utc-offset",allowedTypes:["utc-offset","text"]},geo:{defaultType:"float",structuredValue:";"},title:dr,role:dr,logo:{defaultType:"binary",allowedTypes:["binary","uri"]},agent:{defaultType:"vcard",allowedTypes:["vcard","text","uri"]},org:LO,note:lP,prodid:dr,rev:{defaultType:"date-time",allowedTypes:["date-time","date"],detectType:function(r){return r.indexOf("T")===-1?"date":"date-time"}},"sort-string":dr,sound:{defaultType:"binary",allowedTypes:["binary","uri"]},class:dr,key:{defaultType:"binary",allowedTypes:["binary","text"]}}),ap={name:"ical",value:sa,param:uht,property:pht,propertyGroups:!1},L_e={name:"vcard4",value:mo,param:mht,property:fht,propertyGroups:!0},z_e={name:"vcard3",value:hht,param:ght,property:yht,propertyGroups:!0},Mr={strict:!0,defaultSet:ap,defaultType:"unknown",components:{vcard:L_e,vcard3:z_e,vevent:ap,vtodo:ap,vjournal:ap,valarm:ap,vtimezone:ap,daylight:ap,standard:ap},icalendar:ap,vcard:L_e,vcard3:z_e,getDesignSet:function(r){return r&&r in Mr.components?Mr.components[r]:Mr.defaultSet}},NO=`\r
|
||
`,j_e="unknown",vht={'"':"^'","\n":"^n","^":"^^"};Dn.component=function(r,e){let t=r[0].toUpperCase(),n="BEGIN:"+t+NO,a=r[1],i=0,s=a.length,o=r[0];for(o==="vcard"&&r[1].length>0&&!(r[1][0][0]==="version"&&r[1][0][3]==="4.0")&&(o="vcard3"),e=e||Mr.getDesignSet(o);i<s;i++)n+=Dn.property(a[i],e)+NO;let l=r[2]||[],c=0,d=l.length;for(;c<d;c++)n+=Dn.component(l[c],e)+NO;return n+="END:"+t,n};Dn.property=function(r,e,t){let n=r[0].toUpperCase(),a=r[0],i=r[1];e||(e=Mr.defaultSet);let s=i.group,o;e.propertyGroups&&s?o=s.toUpperCase()+"."+n:o=n;for(let[m,f]of Object.entries(i)){if(e.propertyGroups&&m=="group")continue;let h=e.param[m],g=h&&h.multiValue;g&&Array.isArray(f)?(f=f.map(function(v){return v=Dn._rfc6868Unescape(v),v=Dn.paramPropertyValue(v,h.multiValueSeparateDQuote),v}),f=Dn.multiValue(f,g,"unknown",null,e)):(f=Dn._rfc6868Unescape(f),f=Dn.paramPropertyValue(f)),o+=";"+m.toUpperCase()+"="+f}if(r.length===3)return o+":";let l=r[2],c,d=!1,u=!1,p=!1;return a in e.property?(c=e.property[a],"multiValue"in c&&(d=c.multiValue),"structuredValue"in c&&Array.isArray(r[3])&&(u=c.structuredValue),"defaultType"in c?l===c.defaultType&&(p=!0):l===j_e&&(p=!0)):l===j_e&&(p=!0),p||(o+=";VALUE="+l.toUpperCase()),o+=":",d&&u?o+=Dn.multiValue(r[3],u,l,d,e,u):d?o+=Dn.multiValue(r.slice(3),d,l,null,e,!1):u?o+=Dn.multiValue(r[3],u,l,null,e,u):o+=Dn.value(r[3],l,e,!1),t?o:H_e(o)};Dn.paramPropertyValue=function(r,e){return!e&&r.indexOf(",")===-1&&r.indexOf(":")===-1&&r.indexOf(";")===-1?r:'"'+r+'"'};Dn.multiValue=function(r,e,t,n,a,i){let s="",o=r.length,l=0;for(;l<o;l++)n&&Array.isArray(r[l])?s+=Dn.multiValue(r[l],n,t,null,a,i):s+=Dn.value(r[l],t,a,i),l!==o-1&&(s+=e);return s};Dn.value=function(r,e,t,n){return e in t.value&&"toICAL"in t.value[e]?t.value[e].toICAL(r,n):r};Dn._rfc6868Unescape=function(r){return r.replace(/[\n^"]/g,function(e){return vht[e]})};$_e=0,_O=1,IO=2,lf=3,Xg=class r{static fromString(e,t){return new r(xr.property(e,t))}constructor(e,t){this._parent=t||null,typeof e=="string"?(this.jCal=[e,{},Mr.defaultType],this.jCal[IO]=this.getDefaultType()):this.jCal=e,this._updateType()}get type(){return this.jCal[IO]}get name(){return this.jCal[$_e]}get parent(){return this._parent}set parent(e){let t=!this._parent||e&&e._designSet!=this._parent._designSet;this._parent=e,this.type==Mr.defaultType&&t&&(this.jCal[IO]=this.getDefaultType(),this._updateType())}get _designSet(){return this.parent?this.parent._designSet:Mr.defaultSet}_updateType(){let e=this._designSet;this.type in e.value&&("decorate"in e.value[this.type]?this.isDecorated=!0:this.isDecorated=!1,this.name in e.property&&(this.isMultiValue="multiValue"in e.property[this.name],this.isStructuredValue="structuredValue"in e.property[this.name]))}_hydrateValue(e){return this._values&&this._values[e]?this._values[e]:this.jCal.length<=lf+e?null:this.isDecorated?(this._values||(this._values=[]),this._values[e]=this._decorate(this.jCal[lf+e])):this.jCal[lf+e]}_decorate(e){return this._designSet.value[this.type].decorate(e,this)}_undecorate(e){return this._designSet.value[this.type].undecorate(e,this)}_setDecoratedValue(e,t){this._values||(this._values=[]),typeof e=="object"&&"icaltype"in e?(this.jCal[lf+t]=this._undecorate(e),this._values[t]=e):(this.jCal[lf+t]=e,this._values[t]=this._decorate(e))}getParameter(e){if(e in this.jCal[_O])return this.jCal[_O][e]}getFirstParameter(e){let t=this.getParameter(e);return Array.isArray(t)?t[0]:t}setParameter(e,t){let n=e.toLowerCase();typeof t=="string"&&n in this._designSet.param&&"multiValue"in this._designSet.param[n]&&(t=[t]),this.jCal[_O][e]=t}removeParameter(e){delete this.jCal[_O][e]}getDefaultType(){let e=this.jCal[$_e],t=this._designSet;if(e in t.property){let n=t.property[e];if("defaultType"in n)return n.defaultType}return Mr.defaultType}resetType(e){this.removeAllValues(),this.jCal[IO]=e,this._updateType()}getFirstValue(){return this._hydrateValue(0)}getValues(){let e=this.jCal.length-lf;if(e<1)return[];let t=0,n=[];for(;t<e;t++)n[t]=this._hydrateValue(t);return n}removeAllValues(){this._values&&(this._values.length=0),this.jCal.length=3}setValues(e){if(!this.isMultiValue)throw new Error(this.name+`: does not not support mulitValue.
|
||
override isMultiValue`);let t=e.length,n=0;if(this.removeAllValues(),t>0&&typeof e[0]=="object"&&"icaltype"in e[0]&&this.resetType(e[0].icaltype),this.isDecorated)for(;n<t;n++)this._setDecoratedValue(e[n],n);else for(;n<t;n++)this.jCal[lf+n]=e[n]}setValue(e){this.removeAllValues(),typeof e=="object"&&"icaltype"in e&&this.resetType(e.icaltype),this.isDecorated?this._setDecoratedValue(e,0):this.jCal[lf]=e}toJSON(){return this.jCal}toICALString(){return Dn.property(this.jCal,this._designSet,!0)}},cf=0,wd=1,df=2,kht=0,bht=3,nl=class r{constructor(e,t){I(this,"_hydratedPropertyCount",0);I(this,"_hydratedComponentCount",0);I(this,"_timezoneCache",null);I(this,"_components",null);I(this,"_properties",null);typeof e=="string"&&(e=[e,[],[]]),this.jCal=e,this.parent=t||null,!this.parent&&this.name==="vcalendar"&&(this._timezoneCache=new Map)}static fromString(e){return new r(xr.component(e))}get name(){return this.jCal[cf]}get _designSet(){var t;let e=this.parent&&this.parent._designSet;if(!e&&this.name=="vcard"){let n=(t=this.jCal[wd])==null?void 0:t[0];if(n&&n[kht]=="version"&&n[bht]=="3.0")return Mr.getDesignSet("vcard3")}return e||Mr.getDesignSet(this.name)}_hydrateComponent(e){if(this._components||(this._components=[],this._hydratedComponentCount=0),this._components[e])return this._components[e];let t=new r(this.jCal[df][e],this);return this._hydratedComponentCount++,this._components[e]=t}_hydrateProperty(e){if(this._properties||(this._properties=[],this._hydratedPropertyCount=0),this._properties[e])return this._properties[e];let t=new Xg(this.jCal[wd][e],this);return this._hydratedPropertyCount++,this._properties[e]=t}getFirstSubcomponent(e){if(e){let t=0,n=this.jCal[df],a=n.length;for(;t<a;t++)if(n[t][cf]===e)return this._hydrateComponent(t)}else if(this.jCal[df].length)return this._hydrateComponent(0);return null}getAllSubcomponents(e){let t=this.jCal[df].length,n=0;if(e){let a=this.jCal[df],i=[];for(;n<t;n++)e===a[n][cf]&&i.push(this._hydrateComponent(n));return i}else{if(!this._components||this._hydratedComponentCount!==t)for(;n<t;n++)this._hydrateComponent(n);return this._components||[]}}hasProperty(e){let t=this.jCal[wd],n=t.length,a=0;for(;a<n;a++)if(t[a][cf]===e)return!0;return!1}getFirstProperty(e){if(e){let t=0,n=this.jCal[wd],a=n.length;for(;t<a;t++)if(n[t][cf]===e)return this._hydrateProperty(t)}else if(this.jCal[wd].length)return this._hydrateProperty(0);return null}getFirstPropertyValue(e){let t=this.getFirstProperty(e);return t?t.getFirstValue():null}getAllProperties(e){let t=this.jCal[wd].length,n=0;if(e){let a=this.jCal[wd],i=[];for(;n<t;n++)e===a[n][cf]&&i.push(this._hydrateProperty(n));return i}else{if(!this._properties||this._hydratedPropertyCount!==t)for(;n<t;n++)this._hydrateProperty(n);return this._properties||[]}}_removeObjectByIndex(e,t,n){if(t=t||[],t[n]){let a=t[n];"parent"in a&&(a.parent=null)}t.splice(n,1),this.jCal[e].splice(n,1)}_removeObject(e,t,n){let a=0,i=this.jCal[e],s=i.length,o=this[t];if(typeof n=="string"){for(;a<s;a++)if(i[a][cf]===n)return this._removeObjectByIndex(e,o,a),!0}else if(o){for(;a<s;a++)if(o[a]&&o[a]===n)return this._removeObjectByIndex(e,o,a),!0}return!1}_removeAllObjects(e,t,n){let a=this[t],i=this.jCal[e],s=i.length-1;for(;s>=0;s--)(!n||i[s][cf]===n)&&this._removeObjectByIndex(e,a,s)}addSubcomponent(e){this._components||(this._components=[],this._hydratedComponentCount=0),e.parent&&e.parent.removeSubcomponent(e);let t=this.jCal[df].push(e.jCal);return this._components[t-1]=e,this._hydratedComponentCount++,e.parent=this,e}removeSubcomponent(e){let t=this._removeObject(df,"_components",e);return t&&this._hydratedComponentCount--,t}removeAllSubcomponents(e){let t=this._removeAllObjects(df,"_components",e);return this._hydratedComponentCount=0,t}addProperty(e){if(!(e instanceof Xg))throw new TypeError("must be instance of ICAL.Property");this._properties||(this._properties=[],this._hydratedPropertyCount=0),e.parent&&e.parent.removeProperty(e);let t=this.jCal[wd].push(e.jCal);return this._properties[t-1]=e,this._hydratedPropertyCount++,e.parent=this,e}addPropertyWithValue(e,t){let n=new Xg(e);return n.setValue(t),this.addProperty(n),n}updatePropertyWithValue(e,t){let n=this.getFirstProperty(e);return n?n.setValue(t):n=this.addPropertyWithValue(e,t),n}removeProperty(e){let t=this._removeObject(wd,"_properties",e);return t&&this._hydratedPropertyCount--,t}removeAllProperties(e){let t=this._removeAllObjects(wd,"_properties",e);return this._hydratedPropertyCount=0,t}toJSON(){return this.jCal}toString(){return Dn.component(this.jCal,this._designSet)}getTimeZoneByID(e){if(this.parent)return this.parent.getTimeZoneByID(e);if(!this._timezoneCache)return null;if(this._timezoneCache.has(e))return this._timezoneCache.get(e);let t=this.getAllSubcomponents("vtimezone");for(let n of t)if(n.getFirstProperty("tzid").getFirstValue()===e){let a=new Pr({component:n,tzid:e});return this._timezoneCache.set(e,a),a}return null}},zO=class{constructor(e){I(this,"complete",!1);I(this,"ruleIterators",null);I(this,"ruleDates",null);I(this,"exDates",null);I(this,"ruleDateInc",0);I(this,"exDateInc",0);I(this,"exDate",null);I(this,"ruleDate",null);I(this,"dtstart",null);I(this,"last",null);this.ruleDates=[],this.exDates=[],this.fromData(e)}fromData(e){let t=ip(e.dtstart,Ie);if(t)this.dtstart=t;else throw new Error(".dtstart (ICAL.Time) must be given");if(e.component)this._init(e.component);else{if(this.last=ip(e.last,Ie)||t.clone(),!e.ruleIterators)throw new Error(".ruleIterators or .component must be given");this.ruleIterators=e.ruleIterators.map(function(n){return ip(n,oP)}),this.ruleDateInc=e.ruleDateInc,this.exDateInc=e.exDateInc,e.ruleDates&&(this.ruleDates=e.ruleDates.map(n=>ip(n,Ie)),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.exDates&&(this.exDates=e.exDates.map(n=>ip(n,Ie)),this.exDate=this.exDates[this.exDateInc]),typeof e.complete!="undefined"&&(this.complete=e.complete)}}_compare_special(e,t){return!e.isDate&&t.isDate?new Ie({year:e.year,month:e.month,day:e.day}).compare(t):e.compare(t)}next(){let e,t,n,a=500,i=0;for(;;){if(i++>a)throw new Error("max tries have occurred, rule may be impossible to fulfill.");if(t=this.ruleDate,e=this._nextRecurrenceIter(this.last),!t&&!e){this.complete=!0;break}if((!t||e&&t.compare(e.last)>0)&&(t=e.last.clone(),e.next()),this.ruleDate===t&&this._nextRuleDay(),this.last=t,this.exDate&&(n=this._compare_special(this.last,this.exDate),n>0&&this._nextExDay(),n===0)){this._nextExDay();continue}return this.last}}toJSON(){function e(n){return n.toJSON()}let t=Object.create(null);return t.ruleIterators=this.ruleIterators.map(e),this.ruleDates&&(t.ruleDates=this.ruleDates.map(e)),this.exDates&&(t.exDates=this.exDates.map(e)),t.ruleDateInc=this.ruleDateInc,t.exDateInc=this.exDateInc,t.last=this.last.toJSON(),t.dtstart=this.dtstart.toJSON(),t.complete=this.complete,t}_extractDates(e,t){let n=[],a=e.getAllProperties(t);for(let i=0,s=a.length;i<s;i++)for(let o of a[i].getValues()){let l=Jg(n,o,(c,d)=>c.compare(d));n.splice(l,0,o)}return n}_init(e){if(this.ruleIterators=[],this.last=this.dtstart.clone(),!e.hasProperty("rdate")&&!e.hasProperty("rrule")&&!e.hasProperty("recurrence-id")){this.ruleDate=this.last.clone(),this.complete=!0;return}if(e.hasProperty("rdate")&&(this.ruleDates=this._extractDates(e,"rdate"),this.ruleDates[0]&&this.ruleDates[0].compare(this.dtstart)<0?(this.ruleDateInc=0,this.last=this.ruleDates[0].clone()):this.ruleDateInc=Jg(this.ruleDates,this.last,(t,n)=>t.compare(n)),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.hasProperty("rrule")){let t=e.getAllProperties("rrule"),n=0,a=t.length,i,s;for(;n<a;n++)i=t[n].getFirstValue(),s=i.iterator(this.dtstart),this.ruleIterators.push(s),s.next()}e.hasProperty("exdate")&&(this.exDates=this._extractDates(e,"exdate"),this.exDateInc=Jg(this.exDates,this.last,this._compare_special),this.exDate=this.exDates[this.exDateInc])}_nextExDay(){this.exDate=this.exDates[++this.exDateInc]}_nextRuleDay(){this.ruleDate=this.ruleDates[++this.ruleDateInc]}_nextRecurrenceIter(){let e=this.ruleIterators;if(e.length===0)return null;let t=e.length,n,a,i=0,s;for(;i<t;i++){if(n=e[i],a=n.last,n.completed){t--,i!==0&&i--,e.splice(i,1);continue}(!s||s.last.compare(a)>0)&&(s=n)}return s}},aP=class aP{constructor(e,t){I(this,"exceptions",null);I(this,"strictExceptions",!1);e instanceof nl||(t=e,e=null),e?this.component=e:this.component=new nl("vevent"),this._rangeExceptionCache=Object.create(null),this.exceptions=Object.create(null),this.rangeExceptions=[],t&&t.strictExceptions&&(this.strictExceptions=t.strictExceptions),t&&t.exceptions?t.exceptions.forEach(this.relateException,this):this.component.parent&&!this.isRecurrenceException()&&this.component.parent.getAllSubcomponents("vevent").forEach(function(n){n.hasProperty("recurrence-id")&&this.relateException(n)},this)}relateException(e){if(this.isRecurrenceException())throw new Error("cannot relate exception to exceptions");if(e instanceof nl&&(e=new aP(e)),this.strictExceptions&&e.uid!==this.uid)throw new Error("attempted to relate unrelated exception");let t=e.recurrenceId.toString();if(this.exceptions[t]=e,e.modifiesFuture()){let n=[e.recurrenceId.toUnixTime(),t],a=Jg(this.rangeExceptions,n,B_e);this.rangeExceptions.splice(a,0,n)}}modifiesFuture(){return this.component.hasProperty("recurrence-id")?this.component.getFirstProperty("recurrence-id").getParameter("range")===aP.THISANDFUTURE:!1}findRangeException(e){if(!this.rangeExceptions.length)return null;let t=e.toUnixTime(),n=Jg(this.rangeExceptions,[t],B_e);if(n-=1,n<0)return null;let a=this.rangeExceptions[n];return t<a[0]?null:a[1]}getOccurrenceDetails(e){let t=e.toString(),n=e.convertToZone(Pr.utcTimezone).toString(),a,i={recurrenceId:e};if(t in this.exceptions)a=i.item=this.exceptions[t],i.startDate=a.startDate,i.endDate=a.endDate,i.item=a;else if(n in this.exceptions)a=this.exceptions[n],i.startDate=a.startDate,i.endDate=a.endDate,i.item=a;else{let s=this.findRangeException(e),o;if(s){let l=this.exceptions[s];i.item=l;let c=this._rangeExceptionCache[s];if(!c){let u=l.recurrenceId.clone(),p=l.startDate.clone();u.zone=p.zone,c=p.subtractDate(u),this._rangeExceptionCache[s]=c}let d=e.clone();d.zone=l.startDate.zone,d.addDuration(c),o=d.clone(),o.addDuration(l.duration),i.startDate=d,i.endDate=o}else o=e.clone(),o.addDuration(this.duration),i.endDate=o,i.startDate=e,i.item=this}return i}iterator(e){return new zO({component:this.component,dtstart:e||this.startDate})}isRecurring(){let e=this.component;return e.hasProperty("rrule")||e.hasProperty("rdate")}isRecurrenceException(){return this.component.hasProperty("recurrence-id")}getRecurrenceTypes(){let e=this.component.getAllProperties("rrule"),t=0,n=e.length,a=Object.create(null);for(;t<n;t++){let i=e[t].getFirstValue();a[i.freq]=!0}return a}get uid(){return this._firstProp("uid")}set uid(e){this._setProp("uid",e)}get startDate(){return this._firstProp("dtstart")}set startDate(e){this._setTime("dtstart",e)}get endDate(){let e=this._firstProp("dtend");if(!e){let t=this._firstProp("duration");e=this.startDate.clone(),t?e.addDuration(t):e.isDate&&(e.day+=1)}return e}set endDate(e){this.component.hasProperty("duration")&&this.component.removeProperty("duration"),this._setTime("dtend",e)}get duration(){let e=this._firstProp("duration");return e||this.endDate.subtractDateTz(this.startDate)}set duration(e){this.component.hasProperty("dtend")&&this.component.removeProperty("dtend"),this._setProp("duration",e)}get location(){return this._firstProp("location")}set location(e){this._setProp("location",e)}get attendees(){return this.component.getAllProperties("attendee")}get summary(){return this._firstProp("summary")}set summary(e){this._setProp("summary",e)}get description(){return this._firstProp("description")}set description(e){this._setProp("description",e)}get color(){return this._firstProp("color")}set color(e){this._setProp("color",e)}get organizer(){return this._firstProp("organizer")}set organizer(e){this._setProp("organizer",e)}get sequence(){return this._firstProp("sequence")}set sequence(e){this._setProp("sequence",e)}get recurrenceId(){return this._firstProp("recurrence-id")}set recurrenceId(e){this._setTime("recurrence-id",e)}_setTime(e,t){let n=this.component.getFirstProperty(e);n||(n=new Xg(e),this.component.addProperty(n)),t.zone===Pr.localTimezone||t.zone===Pr.utcTimezone?n.removeParameter("tzid"):n.setParameter("tzid",t.zone.tzid),n.setValue(t)}_setProp(e,t){this.component.updatePropertyWithValue(e,t)}_firstProp(e){return this.component.getFirstPropertyValue(e)}toString(){return this.component.toString()}};I(aP,"THISANDFUTURE","THISANDFUTURE");jO=aP;B6=class{constructor(e){I(this,"parseEvent",!0);I(this,"parseTimezone",!0);I(this,"oncomplete",function(){});I(this,"onerror",function(e){});I(this,"ontimezone",function(e){});I(this,"onevent",function(e){});typeof e=="undefined"&&(e={});for(let[t,n]of Object.entries(e))this[t]=n}process(e){typeof e=="string"&&(e=xr(e)),e instanceof nl||(e=new nl(e));let t=e.getAllSubcomponents(),n=0,a=t.length,i;for(;n<a;n++)switch(i=t[n],i.name){case"vtimezone":if(this.parseTimezone){let s=i.getFirstPropertyValue("tzid");s&&this.ontimezone(new Pr({tzid:s,component:i}))}break;case"vevent":this.parseEvent&&this.onevent(new jO(i));break;default:continue}this.oncomplete()}},ho={foldLength:75,debug:!1,newLineChar:`\r
|
||
`,Binary:RO,Component:nl,ComponentParser:B6,Duration:fo,Event:jO,Period:iP,Property:Xg,Recur:ac,RecurExpansion:zO,RecurIterator:oP,Time:Ie,Timezone:Pr,TimezoneService:OO,UtcOffset:sp,VCardTime:Qg,parse:xr,stringify:Dn,design:Mr,helpers:nht}});function W_e(r){let e=V6.get(r);if(e!==void 0)return e;try{return new Intl.DateTimeFormat("en-US",{timeZone:r}),V6.set(r,!0),!0}catch(t){return V6.set(r,!1),!1}}function q6(r){if(!r)return null;let e=r.trim();if(!e)return null;let t=e.replace(/^\([^)]+\)\s*/u,"").trim();if(W_e(t))return t;let n=Tht[t];return n&&W_e(n)?n:null}function wht(r){let e=Y_e.get(r);return e||(e=new Intl.DateTimeFormat("en-US",{timeZone:r,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}),Y_e.set(r,e)),e}function Sht(r,e){let t=wht(e).formatToParts(new Date(r)),n={};for(let i of t)n[i.type]=i.value;let a=parseInt(n.hour,10)%24;return{year:parseInt(n.year,10),month:parseInt(n.month,10),day:parseInt(n.day,10),hour:a,minute:parseInt(n.minute,10),second:parseInt(n.second,10)}}function W6(r,e){let t={year:r.year,month:r.month,day:r.day,hour:r.hour,minute:r.minute,second:r.second},n=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second);for(let a=0;a<3;a++){let i=Sht(n,e),s=Date.UTC(i.year,i.month-1,i.day,i.hour,i.minute,i.second),o=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second),l=s-o;if(l===0)break;n-=l}return new Date(n).toISOString()}var Tht,V6,Y_e,G_e=y(()=>{Tht=Object.freeze({"AUS Central Standard Time":"Australia/Darwin","AUS Eastern Standard Time":"Australia/Sydney","Afghanistan Standard Time":"Asia/Kabul","Alaskan Standard Time":"America/Anchorage","Aleutian Standard Time":"America/Adak","Altai Standard Time":"Asia/Barnaul","Arab Standard Time":"Asia/Riyadh","Arabian Standard Time":"Asia/Dubai","Arabic Standard Time":"Asia/Baghdad","Argentina Standard Time":"America/Buenos_Aires","Astrakhan Standard Time":"Europe/Astrakhan","Atlantic Standard Time":"America/Halifax","Aus Central W. Standard Time":"Australia/Eucla","Azerbaijan Standard Time":"Asia/Baku","Azores Standard Time":"Atlantic/Azores","Bahia Standard Time":"America/Bahia","Bangladesh Standard Time":"Asia/Dhaka","Belarus Standard Time":"Europe/Minsk","Bougainville Standard Time":"Pacific/Bougainville","Canada Central Standard Time":"America/Regina","Cape Verde Standard Time":"Atlantic/Cape_Verde","Caucasus Standard Time":"Asia/Yerevan","Cen. Australia Standard Time":"Australia/Adelaide","Central America Standard Time":"America/Guatemala","Central Asia Standard Time":"Asia/Almaty","Central Brazilian Standard Time":"America/Cuiaba","Central Europe Standard Time":"Europe/Budapest","Central European Standard Time":"Europe/Warsaw","Central Pacific Standard Time":"Pacific/Guadalcanal","Central Standard Time":"America/Chicago","Central Standard Time (Mexico)":"America/Mexico_City","Chatham Islands Standard Time":"Pacific/Chatham","China Standard Time":"Asia/Shanghai","Cuba Standard Time":"America/Havana","Dateline Standard Time":"Etc/GMT+12","E. Africa Standard Time":"Africa/Nairobi","E. Australia Standard Time":"Australia/Brisbane","E. Europe Standard Time":"Europe/Chisinau","E. South America Standard Time":"America/Sao_Paulo","Easter Island Standard Time":"Pacific/Easter","Eastern Standard Time":"America/New_York","Eastern Standard Time (Mexico)":"America/Cancun","Egypt Standard Time":"Africa/Cairo","Ekaterinburg Standard Time":"Asia/Yekaterinburg","FLE Standard Time":"Europe/Kiev","Fiji Standard Time":"Pacific/Fiji","GMT Standard Time":"Europe/London","GTB Standard Time":"Europe/Bucharest","Georgian Standard Time":"Asia/Tbilisi","Greenland Standard Time":"America/Godthab","Greenwich Standard Time":"Atlantic/Reykjavik","Haiti Standard Time":"America/Port-au-Prince","Hawaiian Standard Time":"Pacific/Honolulu","India Standard Time":"Asia/Kolkata","Iran Standard Time":"Asia/Tehran","Israel Standard Time":"Asia/Jerusalem","Jordan Standard Time":"Asia/Amman","Kaliningrad Standard Time":"Europe/Kaliningrad","Korea Standard Time":"Asia/Seoul","Libya Standard Time":"Africa/Tripoli","Line Islands Standard Time":"Pacific/Kiritimati","Lord Howe Standard Time":"Australia/Lord_Howe","Magadan Standard Time":"Asia/Magadan","Magallanes Standard Time":"America/Punta_Arenas","Marquesas Standard Time":"Pacific/Marquesas","Mauritius Standard Time":"Indian/Mauritius","Middle East Standard Time":"Asia/Beirut","Montevideo Standard Time":"America/Montevideo","Morocco Standard Time":"Africa/Casablanca","Mountain Standard Time":"America/Denver","Mountain Standard Time (Mexico)":"America/Chihuahua","Myanmar Standard Time":"Asia/Yangon","N. Central Asia Standard Time":"Asia/Novosibirsk","Namibia Standard Time":"Africa/Windhoek","Nepal Standard Time":"Asia/Katmandu","New Zealand Standard Time":"Pacific/Auckland","Newfoundland Standard Time":"America/St_Johns","Norfolk Standard Time":"Pacific/Norfolk","North Asia East Standard Time":"Asia/Irkutsk","North Asia Standard Time":"Asia/Krasnoyarsk","North Korea Standard Time":"Asia/Pyongyang","Omsk Standard Time":"Asia/Omsk","Pacific SA Standard Time":"America/Santiago","Pacific Standard Time":"America/Los_Angeles","Pacific Standard Time (Mexico)":"America/Tijuana","Pakistan Standard Time":"Asia/Karachi","Paraguay Standard Time":"America/Asuncion","Qyzylorda Standard Time":"Asia/Qyzylorda","Romance Standard Time":"Europe/Paris","Russia Time Zone 10":"Asia/Srednekolymsk","Russia Time Zone 11":"Asia/Kamchatka","Russia Time Zone 3":"Europe/Samara","Russian Standard Time":"Europe/Moscow","SA Eastern Standard Time":"America/Cayenne","SA Pacific Standard Time":"America/Bogota","SA Western Standard Time":"America/La_Paz","SE Asia Standard Time":"Asia/Bangkok","Saint Pierre Standard Time":"America/Miquelon","Sakhalin Standard Time":"Asia/Sakhalin","Samoa Standard Time":"Pacific/Apia","Sao Tome Standard Time":"Africa/Sao_Tome","Saratov Standard Time":"Europe/Saratov","Singapore Standard Time":"Asia/Singapore","South Africa Standard Time":"Africa/Johannesburg","South Sudan Standard Time":"Africa/Juba","Sri Lanka Standard Time":"Asia/Colombo","Sudan Standard Time":"Africa/Khartoum","Syria Standard Time":"Asia/Damascus","Taipei Standard Time":"Asia/Taipei","Tasmania Standard Time":"Australia/Hobart","Tocantins Standard Time":"America/Araguaina","Tokyo Standard Time":"Asia/Tokyo","Tomsk Standard Time":"Asia/Tomsk","Tonga Standard Time":"Pacific/Tongatapu","Transbaikal Standard Time":"Asia/Chita","Turkey Standard Time":"Europe/Istanbul","Turks And Caicos Standard Time":"America/Grand_Turk","US Eastern Standard Time":"America/Indianapolis","US Mountain Standard Time":"America/Phoenix",UTC:"Etc/UTC","UTC+12":"Etc/GMT-12","UTC+13":"Etc/GMT-13","UTC-02":"Etc/GMT+2","UTC-08":"Etc/GMT+8","UTC-09":"Etc/GMT+9","UTC-11":"Etc/GMT+11","Ulaanbaatar Standard Time":"Asia/Ulaanbaatar","Venezuela Standard Time":"America/Caracas","Vladivostok Standard Time":"Asia/Vladivostok","Volgograd Standard Time":"Europe/Volgograd","W. Australia Standard Time":"Australia/Perth","W. Central Africa Standard Time":"Africa/Lagos","W. Europe Standard Time":"Europe/Berlin","W. Mongolia Standard Time":"Asia/Hovd","West Asia Standard Time":"Asia/Tashkent","West Bank Standard Time":"Asia/Hebron","West Pacific Standard Time":"Pacific/Port_Moresby","Yakutsk Standard Time":"Asia/Yakutsk"}),V6=new Map;Y_e=new Map});function Z_e(r){let e=r.getFirstPropertyValue("tzid");return typeof e=="string"?e.trim():null}function Pht(r){let e=r.replace(/\s+\([^)]+\)$/u,"").trim();return e&&e!==r?[e]:[]}function Mht(r,e){var t;return(t=r.getAllSubcomponents("vtimezone").find(n=>Z_e(n)===e))!=null?t:null}function Aht(r,e){let t=new ho.Component(JSON.parse(JSON.stringify(r.toJSON())));return t.updatePropertyWithValue("tzid",e),t}function _ht(r){r.getAllSubcomponents("vtimezone").forEach(t=>{let n=Z_e(t);ho.TimezoneService.register(t),n&&Pht(n).forEach(a=>{let i=Mht(r,a),s=i!=null?i:Aht(t,a),o=new ho.Timezone({component:s,tzid:a});i||r.addSubcomponent(s),ho.TimezoneService.register(o)})})}function Y6(r){if(!Dht.test(r))return null;let[e,t,n]=r.split("-").map(Number);return Date.UTC(e,t-1,n)}function Iht(r){let e=r.getUTCFullYear().toString().padStart(4,"0"),t=(r.getUTCMonth()+1).toString().padStart(2,"0"),n=r.getUTCDate().toString().padStart(2,"0");return`${e}-${t}-${n}`}function Nht(r,e){let t=Y6(r),n=Y6(e);return t===null||n===null||n<=t?null:Math.round((n-t)/K_e)}function Rht(r,e){let t=Y6(r);return t===null?r:Iht(new Date(t+e*K_e))}var BO,cP,xht,Cht,Eht,Dht,K_e,$O,Q_e=y(()=>{BO=require("obsidian");q_e();oD();kr();K();fs();G_e();cP=N({tag:"Services/ICSSubscriptionService"}),xht=365*24*60*60*1e3,Cht=3e3,Eht=1e4,Dht=/^\d{4}-\d{2}-\d{2}$/u,K_e=1440*60*1e3;$O=class extends sd{constructor(t){super();this.subscriptions=[];this.cache=new Map;this.refreshTimers=new Map;this.fileWatchers=new Map;this.pendingRefreshes=new Set;this.lastFetched=new Map;this.lastError=new Map;this.destroyed=!1;this.CACHE_GRACE_PERIOD=300*1e3;this.plugin=t}translate(t,n){return this.plugin.i18n.translate(t,n)}icalTimeToISOString(t,n){var s;if(t.isDate){let o=t.year.toString().padStart(4,"0"),l=t.month.toString().padStart(2,"0"),c=t.day.toString().padStart(2,"0");return`${o}-${l}-${c}`}let a=(s=t.zone)==null?void 0:s.tzid;if(a==="floating"||a===void 0){let o=q6(n);if(o)return W6(t,o);if(!(typeof n=="string"&&n.trim().length>0)){let c=this.getLocalTimeZoneForFloatingTime();if(c)return W6(t,c)}}let i=t.toUnixTime();return new Date(i*1e3).toISOString()}getLocalTimeZoneForFloatingTime(){try{return q6(Intl.DateTimeFormat().resolvedOptions().timeZone)}catch(t){return null}}rawTzidOf(t,n){let a=t.getFirstProperty(n);if(!a)return null;let i=a.getParameter("tzid");return typeof i=="string"?i:null}getRecurringInstanceEnd(t,n,a,i){if(!a)return;if(i){let o=Nht(n,a);return o===null?a:Rht(t,o)}let s=new Date(a).getTime()-new Date(n).getTime();return new Date(new Date(t).getTime()+s).toISOString()}async initialize(){this.destroyed=!1,await this.loadSubscriptions();let t=[];this.subscriptions.forEach(n=>{if(n.enabled){n.type==="remote"?this.startRefreshTimer(n):n.type==="local"&&this.startFileWatcher(n);let a=this.cache.get(n.id);(!a||new Date(a.expires)<=new Date)&&t.push(this.fetchSubscription(n.id))}}),await Promise.allSettled(t),this.emit("data-changed")}async loadSubscriptions(){try{let t=await this.plugin.loadData();this.subscriptions=(t==null?void 0:t.icsSubscriptions)||[]}catch(t){cP.error("Failed to load ICS subscriptions:",{category:"provider",operation:"load-ics-subscriptions",error:t}),this.subscriptions=[]}}async saveSubscriptions(){try{let t=await this.plugin.loadPluginDataForSafeWrite("save-ics-subscriptions");if(!t)return;t.icsSubscriptions=this.subscriptions,await this.plugin.saveData(t)}catch(t){throw cP.error("Failed to save ICS subscriptions:",{category:"provider",operation:"save-ics-subscriptions",error:t}),t}}getSubscriptions(){return[...this.subscriptions]}getLastFetched(t){return this.lastFetched.get(t)}getLastError(t){return this.lastError.get(t)}async addSubscription(t){let n={...t,filePath:t.type==="local"&&t.filePath?this.normalizeLocalICSFilePathIfPossible(t.filePath):t.filePath,id:this.generateId()};return this.subscriptions.push(n),await this.saveSubscriptions(),n.enabled&&(n.type==="remote"?(this.startRefreshTimer(n),await this.fetchSubscription(n.id)):n.type==="local"&&(this.startFileWatcher(n),await this.fetchSubscription(n.id))),this.emit("data-changed"),n}async updateSubscription(t,n){let a=this.subscriptions.findIndex(l=>l.id===t);if(a===-1)throw new Error("Subscription not found");let i=this.subscriptions[a],s={...n};typeof n.filePath=="string"&&(s.filePath=this.normalizeLocalICSFilePathIfPossible(n.filePath));let o={...i,...s};this.subscriptions[a]=o,await this.saveSubscriptions(),this.stopRefreshTimer(t),this.stopFileWatcher(t),o.enabled&&(o.type==="remote"?this.startRefreshTimer(o):o.type==="local"&&this.startFileWatcher(o)),(n.url&&n.url!==i.url||n.filePath&&n.filePath!==i.filePath)&&this.cache.delete(t),this.emit("data-changed")}async removeSubscription(t){let n=this.subscriptions.findIndex(a=>a.id===t);if(n===-1)throw new Error("Subscription not found");this.subscriptions.splice(n,1),await this.saveSubscriptions(),this.stopRefreshTimer(t),this.stopFileWatcher(t),this.cache.delete(t),this.lastFetched.delete(t),this.lastError.delete(t),this.emit("data-changed")}async fetchSubscription(t){let n=this.subscriptions.find(a=>a.id===t);if(!(!n||!n.enabled))try{let a;if(n.type==="remote"){if(!n.url)throw new Error("Remote subscription missing URL");a=(await(0,BO.requestUrl)({url:n.url,method:"GET",headers:{Accept:"text/calendar,*/*;q=0.1","Accept-Language":"en-US,en;q=0.9","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"}})).text}else if(n.type==="local"){if(!n.filePath)throw new Error("Local subscription missing file path");let o=this.normalizeLocalICSFilePath(n.filePath);a=await this.readLocalICSFile(o),n.filePath!==o&&(n.filePath=o,await this.saveSubscriptions())}else throw new Error("Unknown subscription type");let i=this.parseICS(a,n.id),s={subscriptionId:t,events:i,lastUpdated:new Date().toISOString(),expires:new Date(Date.now()+n.refreshInterval*60*1e3).toISOString()};this.cache.set(t,s),this.lastFetched.set(t,new Date().toISOString()),this.lastError.delete(t),this.emit("data-changed")}catch(a){let i=a instanceof Error?a.message:String(a);this.lastError.set(t,i),n.type==="remote"?i.includes("404")?Te(this.plugin.emitter,this.translate("services.icsSubscription.notices.calendarNotFound",{name:n.name})):i.includes("500")||i.includes("OwaBasicUnsupportedException")?Te(this.plugin.emitter,this.translate("services.icsSubscription.notices.calendarAccessDenied",{name:n.name})):Te(this.plugin.emitter,this.translate("services.icsSubscription.notices.fetchRemoteFailed",{name:n.name,error:i})):Te(this.plugin.emitter,this.translate("services.icsSubscription.notices.readLocalFailed",{name:n.name,error:i}))}}parseICS(t,n){try{let a=ho.parse(t),i=new ho.Component(a);_ht(i);let s=i.getAllSubcomponents("vevent"),o=[],l=new Map;return s.forEach(c=>{let d=new ho.Event(c),u=d.uid;if(!u)return;let p=c.getFirstPropertyValue("recurrence-id");if(p){l.has(u)||l.set(u,new Map);let m=J(p);l.get(u).set(m,d)}}),s.forEach(c=>{try{let d=new ho.Event(c);if(c.getFirstPropertyValue("recurrence-id"))return;let p=c.getFirstPropertyValue("status");if(typeof p=="string"&&p.toUpperCase()==="CANCELLED")return;let m=c.getAllProperties("attendee");if(m&&m.length>0&&m.some(R=>{let A=R.getParameter("partstat");return typeof A=="string"&&A.toUpperCase()==="DECLINED"}))return;let f=d.summary||"Untitled Event",h=d.description||void 0,g=d.location||void 0,v=d.startDate,b=d.endDate;if(!v)return;let k=this.rawTzidOf(c,"dtstart"),w=this.rawTzidOf(c,"dtend"),S=v.isDate,C=this.icalTimeToISOString(v,k),E=b?this.icalTimeToISOString(b,w!=null?w:k):void 0,D=d.uid||`${n}-${o.length}`,P=`${n}-${D}`,O={id:P,subscriptionId:n,title:f,description:h,start:C,end:E,allDay:S,location:g,url:d.url||void 0};if(d.isRecurring()){let z=new Set;c.getAllProperties("exdate").forEach(G=>{let ie=G.getFirstValue();ie&&(Array.isArray(ie)?ie:[ie]).forEach(ee=>{ee&&typeof ee.toString=="function"&&z.add(ee.toString())})});let A=l.get(D)||new Map,F=d.iterator(v),$=new ho.Time;$.fromJSDate(new Date(Date.now()+xht));let B,ue=0,Q=0;for(;(B=F.next())&&ue<Eht&&Q<Cht&&(ue++,!(B.compare($)>0));){let G=B.toString();if(z.has(G))continue;let ie=`${P}-${Q}`,Ee=A.get(G);if(Ee){let ee=Ee.startDate,re=Ee.endDate,et=Ee.component,fe=et?this.rawTzidOf(et,"dtstart"):null,ut=et?this.rawTzidOf(et,"dtend"):null;ee&&(o.push({id:ie,subscriptionId:n,title:Ee.summary||f,description:Ee.description||h,start:this.icalTimeToISOString(ee,fe),end:re?this.icalTimeToISOString(re,ut!=null?ut:fe):void 0,allDay:ee.isDate,location:Ee.location||g,url:Ee.url||O.url,recurringEventId:P}),Q++)}else{let ee=this.icalTimeToISOString(B,k),re=this.getRecurringInstanceEnd(ee,C,E,S);o.push({...O,id:ie,start:ee,end:re,recurringEventId:P}),Q++}}}else o.push(O)}catch(d){cP.warn("Failed to parse individual event:",{category:"provider",operation:"parse-individual-event",error:d})}}),o}catch(a){throw cP.error("Failed to parse ICS data:",{category:"provider",operation:"parse-ics-data",error:a}),new Error("Invalid ICS format")}}getAllEvents(){let t=[],n=new Date;return this.subscriptions.forEach(a=>{if(!a.enabled)return;let i=this.cache.get(a.id);if(!i){this.pendingRefreshes.has(a.id)||(this.pendingRefreshes.add(a.id),this.fetchSubscription(a.id).finally(()=>this.pendingRefreshes.delete(a.id)));return}let s=new Date(i.expires),o=new Date(s.getTime()+this.CACHE_GRACE_PERIOD);n<o?(t.push(...i.events),n>s&&!this.pendingRefreshes.has(a.id)&&(this.pendingRefreshes.add(a.id),this.fetchSubscription(a.id).finally(()=>this.pendingRefreshes.delete(a.id)))):this.pendingRefreshes.has(a.id)||(this.pendingRefreshes.add(a.id),this.fetchSubscription(a.id).finally(()=>this.pendingRefreshes.delete(a.id)))}),t}getEventsForSubscription(t){let n=this.cache.get(t);if(!n){let l=this.subscriptions.find(c=>c.id===t);return l&&l.enabled&&!this.pendingRefreshes.has(t)&&(this.pendingRefreshes.add(t),this.fetchSubscription(t).finally(()=>this.pendingRefreshes.delete(t))),[]}let a=new Date,i=new Date(n.expires),s=new Date(i.getTime()+this.CACHE_GRACE_PERIOD);return a>=s?(this.pendingRefreshes.has(t)||(this.pendingRefreshes.add(t),this.fetchSubscription(t).finally(()=>this.pendingRefreshes.delete(t))),[]):(a>i&&!this.pendingRefreshes.has(t)&&(this.pendingRefreshes.add(t),this.fetchSubscription(t).finally(()=>this.pendingRefreshes.delete(t))),[...n.events])}async refreshAllSubscriptions(){let t=this.subscriptions.filter(n=>n.enabled);for(let n of t)await this.fetchSubscription(n.id)}getVaultBasePath(){let t=this.plugin.app.vault.adapter;if(typeof(t==null?void 0:t.getBasePath)=="function")try{let n=t.getBasePath();return typeof n=="string"&&n.trim()?n:void 0}catch(n){cP.warn("Failed to resolve vault base path for local ICS file:",{category:"provider",operation:"resolve-vault-base-path-local-ics-file",error:n});return}}normalizePathSeparators(t){return t.trim().replace(/\\/g,"/").replace(/^\.\/+/u,"")}isAbsoluteFilePath(t){return t.startsWith("/")||/^[A-Za-z]:\//u.test(t)}normalizeLocalICSFilePath(t){let n=this.normalizePathSeparators(t);if(!this.isAbsoluteFilePath(n))return n;let a=this.getVaultBasePath();if(a){let i=this.normalizePathSeparators(a).replace(/\/+$/u,"");if(n.startsWith(`${i}/`))return n.slice(i.length+1)}throw new Error('Local ICS files must be inside the current Obsidian vault. Move the file into the vault or use a vault-relative path such as "Calendar.ics".')}normalizeLocalICSFilePathIfPossible(t){try{return this.normalizeLocalICSFilePath(t)}catch(n){return this.normalizePathSeparators(t)}}async readLocalICSFile(t){try{let n=this.normalizeLocalICSFilePath(t),a=this.plugin.app.vault.getAbstractFileByPath(n);if(!a||!(a instanceof BO.TFile))throw new Error(`File not found: ${n}`);if(a.extension!=="ics")throw new Error(`File is not an ICS file: ${n}`);return await this.plugin.app.vault.cachedRead(a)}catch(n){throw new Error(`Failed to read local ICS file "${t}": ${n instanceof Error?n.message:String(n)}`)}}startFileWatcher(t){if(!t.filePath)return;this.stopFileWatcher(t.id);let n=this.normalizeLocalICSFilePathIfPossible(t.filePath),a=(l,c)=>{(l.path===n||c===n)&&window.setTimeout(()=>{this.fetchSubscription(t.id)},1e3)},i=this.plugin.app.vault.on("modify",a),s=this.plugin.app.vault.on("rename",a),o=this.plugin.app.vault.on("delete",l=>{l.path===n&&this.lastError.set(t.id,"Local ICS file was deleted")});this.fileWatchers.set(t.id,()=>{this.plugin.app.vault.offref(i),this.plugin.app.vault.offref(s),this.plugin.app.vault.offref(o)}),this.startFileRefreshTimer(t)}stopFileWatcher(t){let n=this.fileWatchers.get(t);n&&(n(),this.fileWatchers.delete(t))}async refreshSubscription(t){await this.fetchSubscription(t)}startRefreshTimer(t){this.stopRefreshTimer(t.id),this.startRemoteRefreshTimer(t)}startFileRefreshTimer(t){let n=t.refreshInterval*60*1e3,a=window.setTimeout(()=>{this.refreshTimers.delete(t.id),this.fetchSubscription(t.id).finally(()=>{this.shouldContinueRefresh(t.id)&&this.startFileRefreshTimer(t)})},n);this.refreshTimers.set(t.id,a)}startRemoteRefreshTimer(t){let n=t.refreshInterval*60*1e3,a=window.setTimeout(()=>{this.refreshTimers.delete(t.id),this.fetchSubscription(t.id).finally(()=>{this.shouldContinueRefresh(t.id)&&this.startRemoteRefreshTimer(t)})},n);this.refreshTimers.set(t.id,a)}shouldContinueRefresh(t){return!this.destroyed&&this.subscriptions.some(n=>n.id===t&&n.enabled)}stopRefreshTimer(t){let n=this.refreshTimers.get(t);n&&(window.clearTimeout(n),this.refreshTimers.delete(t))}generateId(){return"ics_"+Math.random().toString(36).substring(2,11)+Date.now().toString(36)}destroy(){this.destroyed=!0,this.refreshTimers.forEach(t=>window.clearTimeout(t)),this.refreshTimers.clear(),this.fileWatchers.forEach(t=>t()),this.fileWatchers.clear(),this.cache.clear(),this.pendingRefreshes.clear(),this.removeAllListeners()}getLocalICSFiles(){return this.plugin.app.vault.getFiles().filter(t=>t.extension==="ics").sort((t,n)=>t.path.localeCompare(n.path))}}});var dP,Sd,UO,J_e=y(()=>{dP=require("obsidian");Wr();u4();Me();Kk();Ct();qR();K();fs();Ba();Sd=N({tag:"Services/ICSNoteService"}),UO=class{constructor(e){this.plugin=e}translate(e,t){return this.plugin.i18n.translate(e,t)}findEventById(e){var s,o,l,c,d,u,p,m,f;let t=e.trim();if(!t)return null;let n=(s=this.plugin.icsSubscriptionService)==null?void 0:s.getAllEvents().find(h=>h.id===t);if(n){let h=(l=(o=this.plugin.icsSubscriptionService)==null?void 0:o.getSubscriptions().find(g=>g.id===n.subscriptionId))==null?void 0:l.name;return{event:n,subscriptionName:h}}let a=(c=this.plugin.googleCalendarService)==null?void 0:c.getAllEvents().find(h=>h.id===t);if(a){let h=a.subscriptionId.replace("google-",""),g=((u=(d=this.plugin.googleCalendarService)==null?void 0:d.getAvailableCalendars().find(v=>v.id===h))==null?void 0:u.summary)||"Google Calendar";return{event:a,subscriptionName:g}}let i=(p=this.plugin.microsoftCalendarService)==null?void 0:p.getAllEvents().find(h=>h.id===t);if(i){let h=i.subscriptionId.replace("microsoft-",""),g=((f=(m=this.plugin.microsoftCalendarService)==null?void 0:m.getAvailableCalendars().find(v=>v.id===h))==null?void 0:f.summary)||"Microsoft Calendar";return{event:i,subscriptionName:g}}return null}getLoadedCalendarEvents(){var e,t,n,a,i,s;return[...(t=(e=this.plugin.icsSubscriptionService)==null?void 0:e.getAllEvents())!=null?t:[],...(a=(n=this.plugin.googleCalendarService)==null?void 0:n.getAllEvents())!=null?a:[],...(s=(i=this.plugin.microsoftCalendarService)==null?void 0:i.getAllEvents())!=null?s:[]]}getExplicitSeriesId(e){var n;return((n=e.recurringEventId)==null?void 0:n.trim())||null}getRecurringRelatedNotesMode(){var e,t;return((t=(e=this.plugin.settings)==null?void 0:e.icsIntegration)==null?void 0:t.recurringEventRelatedNotesMode)==="instance"?"instance":"series"}buildEventSeriesIndex(){let e=new Map;for(let a of this.getLoadedCalendarEvents()){let i=this.getExplicitSeriesId(a);if(!i)continue;let s=e.get(i);s||(s=new Set,e.set(i,s)),s.add(a.id)}let t=new Map,n=new Map;for(let[a,i]of e){n.set(a,i);for(let s of i)t.set(s,a)}return{seriesIdByEventId:t,eventIdsBySeriesId:n}}getRelatedEventIds(e,t){var s;let n=new Set([e]);if(this.getRecurringRelatedNotesMode()==="instance")return n;let a=t.seriesIdByEventId.get(e),i=t.eventIdsBySeriesId.has(e)?e:a;if(i){n.add(i);for(let o of(s=t.eventIdsBySeriesId.get(i))!=null?s:[])n.add(o)}return n}eventIdsMatchSeries(e,t,n){for(let a of this.getRelatedEventIds(e,n))if(t.has(a))return!0;return!1}async getRelatedNoteCountsByEventId(){let e=new Map,t=this.plugin.fieldMapper.toUserField("icsEventId"),n=this.buildEventSeriesIndex(),a=(i,s)=>{for(let o of this.normalizeEventIds(i))for(let l of this.getRelatedEventIds(o,n)){let c=e.get(l);c||(c=new Set,e.set(l,c)),c.add(s)}};try{let i=await this.plugin.cacheManager.getAllTasks();for(let o of i)a(o.icsEventId,o.path);let s=this.plugin.app.vault.getMarkdownFiles();for(let o of s){let l=this.plugin.app.metadataCache.getFileCache(o),c=l==null?void 0:l.frontmatter;c&&a(c[t],o.path)}}catch(i){return Sd.error("Error counting related notes for ICS events:",{category:"provider",operation:"counting-related-notes-ics-events",error:i}),new Map}return new Map(Array.from(e.entries()).map(([i,s])=>[i,s.size]))}normalizeEventIds(e){return(Array.isArray(e)?e:e?[e]:[]).filter(n=>typeof n=="string").map(n=>n.trim()).filter(Boolean)}async createTaskFromICS(e,t){var n;try{let a=this.plugin.icsSubscriptionService.getSubscriptions().find(l=>l.id===e.subscriptionId),i=(a==null?void 0:a.name)||"Unknown Calendar",s=(t==null?void 0:t.scheduled)!==void 0?t.scheduled:this.computeScheduledFromICSEvent(e),o={title:(t==null?void 0:t.title)||e.title,status:(t==null?void 0:t.status)||this.plugin.settings.defaultTaskStatus,priority:(t==null?void 0:t.priority)||this.plugin.settings.defaultTaskPriority,due:(t==null?void 0:t.due)!==void 0?t.due:(n=this.plugin.settings.icsIntegration)!=null&&n.useICSEndAsDue?this.computeDueFromICSEnd(e):void 0,scheduled:s,contexts:(t==null?void 0:t.contexts)||(e.location?[e.location]:void 0),projects:t==null?void 0:t.projects,tags:(t==null?void 0:t.tags)||[this.plugin.fieldMapper.toUserField("icsEventTag")],timeEstimate:(t==null?void 0:t.timeEstimate)||this.calculateEventDuration(e),details:(t==null?void 0:t.details)||this.buildICSEventDetails(e,i),icsEventId:[e.id],creationContext:"ics-event",dateCreated:Ge(),dateModified:Ge(),...Object.fromEntries(Object.entries(t||{}).filter(([l])=>l!=="due"))};return await this.plugin.taskService.createTask(o,{applyDefaults:!1})}catch(a){let i=a instanceof Error?a.message:String(a);throw Sd.error("Error creating task from ICS event:",{category:"provider",operation:"creating-task-ics-event",details:{icsEventId:e.id,icsEventTitle:e.title},error:i}),new Error(`Failed to create task from ICS event: ${i}`)}}computeScheduledFromICSEvent(e){try{if(!e.start)return;let t=e.allDay&&/^\d{4}-\d{2}-\d{2}$/.test(e.start)?e.start+"T00:00:00":e.start,n=new Date(t);return e.allDay?ce(n):M(n,"yyyy-MM-dd'T'HH:mm")}catch(t){return Sd.warn("Failed to compute scheduled from ICS event start:",{category:"provider",operation:"compute-scheduled-ics-event-start",details:{start:e.start},error:t}),e.start}}computeDueFromICSEnd(e){try{if(!e.end)return;if(e.allDay){if(!e.start)return;let a=/^\d{4}-\d{2}-\d{2}$/.test(e.start)?e.start+"T00:00:00":e.start,i=new Date(a);return ce(i)}let t=/^\d{4}-\d{2}-\d{2}$/.test(e.end)?e.end+"T00:00:00":e.end,n=new Date(t);return M(n,"yyyy-MM-dd'T'HH:mm")}catch(t){Sd.warn("Failed to compute due from ICS event end:",{category:"provider",operation:"compute-due-ics-event-end",details:{end:e.end},error:t});return}}async createNoteFromICS(e,t){var n;try{let a=this.plugin.icsSubscriptionService.getSubscriptions().find(O=>O.id===e.subscriptionId),i=(a==null?void 0:a.name)||"Unknown Calendar",s=e.allDay&&/^\d{4}-\d{2}-\d{2}$/.test(e.start)?e.start+"T00:00:00":e.start,o=new Date(s),l=(t==null?void 0:t.title)||`${e.title} - ${M(o,"PPP")}`,c=(t==null?void 0:t.folder)||((n=this.plugin.settings.icsIntegration)==null?void 0:n.defaultNoteFolder)||"",d=YR(c,{date:o,icsData:{title:e.title,location:e.location,description:e.description}}),u={title:e.title,priority:"",status:"",date:o,dueDate:e.end,scheduledDate:e.start,icsEventTitle:e.title,icsEventLocation:e.location,icsEventDescription:e.description},p=LSe(u,this.plugin.settings),m=await Gk(p,d,this.plugin.app.vault),f=d?`${d}/${m}.md`:`${m}.md`;d&&await tm(this.plugin.app.vault,d);let h={title:l,priority:"",status:"",contexts:e.location?[e.location]:[],tags:[this.plugin.fieldMapper.toUserField("icsEventTag")],timeEstimate:0,dueDate:e.end||"",scheduledDate:e.start||"",details:e.description||"",parentNote:"",icsEventTitle:e.title,icsEventStart:e.start,icsEventEnd:e.end||"",icsEventLocation:e.location||"",icsEventDescription:e.description||"",icsEventUrl:e.url||"",icsEventSubscription:i,icsEventId:e.id},g=this.plugin.fieldMapper.toUserField("dateCreated"),v=this.plugin.fieldMapper.toUserField("dateModified"),b={title:l,[g]:Ge(),[v]:Ge(),tags:[this.plugin.fieldMapper.toUserField("icsEventTag")],[this.plugin.fieldMapper.toUserField("icsEventId")]:[e.id]},k=this.buildICSEventDetails(e,i);if(t!=null&&t.template)try{let O=(0,dP.normalizePath)(t.template.trim()),z=this.plugin.app.vault.getAbstractFileByPath(O.endsWith(".md")?O:`${O}.md`);if(z instanceof dP.TFile){let R=await this.plugin.app.vault.read(z),A=iD(R,h);b={...b,...A.frontmatter},k=A.body||k}else Sd.warn(`ICS note template not found: ${O}`,{category:"provider",operation:"ics-note-template-not-found"}),Te(this.plugin.emitter,this.translate("services.icsNote.notices.templateNotFound",{path:O}))}catch(O){Sd.error("Error processing ICS note template:",{category:"provider",operation:"processing-ics-note-template",error:O}),Te(this.plugin.emitter,this.translate("services.icsNote.notices.templateProcessError",{template:t.template}))}let S=`${Object.keys(b).length>0?`---
|
||
${Object.entries(b).map(([O,z])=>`${O}: ${this.formatYamlValue(z)}`).join(`
|
||
`)}
|
||
---
|
||
|
||
`:""}${k}`,C=await this.plugin.app.vault.create(f,S),E=Array.isArray(b.tags)?b.tags.filter(O=>typeof O=="string"):[],D=typeof b[g]=="string"?b[g]:void 0,P={title:l,path:C.path,tags:E,createdDate:D,lastModified:Date.now()};return{file:C,noteInfo:P}}catch(a){let i=a instanceof Error?a.message:String(a);throw Sd.error("Error creating note from ICS event:",{category:"provider",operation:"creating-note-ics-event",details:{icsEventId:e.id,icsEventTitle:e.title},error:i}),new Error(`Failed to create note from ICS event: ${i}`)}}async findRelatedNotes(e){try{let t=[],n=new Set,a=this.plugin.fieldMapper.toUserField("icsEventId"),i=this.buildEventSeriesIndex(),s=this.getRelatedEventIds(e.id,i),o=d=>this.normalizeEventIds(d).some(u=>this.eventIdsMatchSeries(u,s,i)),l=await this.plugin.cacheManager.getAllTasks();for(let d of l)if(o(d.icsEventId)){if(n.has(d.path))continue;t.push(d),n.add(d.path)}let c=this.plugin.app.vault.getMarkdownFiles();for(let d of c)try{let u=this.plugin.app.metadataCache.getFileCache(d),p=u==null?void 0:u.frontmatter;if(p&&o(p[a])){if(n.has(d.path))continue;let m={title:p.title||d.basename,path:d.path,tags:p.tags||[],createdDate:p.dateCreated,lastModified:d.stat.mtime};t.push(m),n.add(d.path)}}catch(u){continue}return t}catch(t){return Sd.error("Error finding related notes for ICS event:",{category:"provider",operation:"finding-related-notes-ics-event",error:t}),[]}}async linkNoteToICS(e,t){try{let n=this.plugin.app.vault.getAbstractFileByPath(e);if(!(n instanceof dP.TFile))throw new Error(`Cannot find note file: ${e}`);await Fr(this.plugin.app,n,a=>{let i=this.plugin.fieldMapper.toUserField("icsEventId"),s=a[i],o=s?Array.isArray(s)?[...s]:[s]:[];o.includes(t.id)||o.push(t.id),a[i]=o;let l=this.plugin.fieldMapper.toUserField("dateModified");a[l]=Ge()}),Te(this.plugin.emitter,this.translate("services.icsNote.notices.linkedToEvent",{title:t.title}))}catch(n){let a=n instanceof Error?n.message:String(n);throw Sd.error("Error linking note to ICS event:",{category:"provider",operation:"linking-note-ics-event",details:{notePath:e,icsEventId:t.id},error:a}),new Error(`Failed to link note to ICS event: ${a}`)}}buildICSEventDetails(e,t){let n=[];if(n.push(`# ${e.title}`),n.push(""),e.start){let a=e.allDay&&/^\d{4}-\d{2}-\d{2}$/.test(e.start)?e.start+"T00:00:00":e.start,i=new Date(a);n.push(`**Start:** ${M(i,"PPPp")}`)}if(e.end&&!e.allDay){let a=/^\d{4}-\d{2}-\d{2}$/.test(e.end)?e.end+"T00:00:00":e.end,i=new Date(a);n.push(`**End:** ${M(i,"PPPp")}`)}return e.location&&n.push(`**Location:** ${e.location}`),n.push(`**Calendar:** ${t}`),e.description&&(n.push(""),n.push("## Description"),n.push(e.description)),e.url&&(n.push(""),n.push(`**Event URL:** ${e.url}`)),n.join(`
|
||
`)}formatYamlValue(e){return typeof e=="string"?e.includes(":")||e.includes("#")||e.includes("[")||e.includes("{")?`"${e.replace(/"/g,'\\"')}"`:e:Array.isArray(e)?`[${e.map(t=>typeof t=="string"?`"${t}"`:t).join(", ")}]`:String(e)}calculateEventDuration(e){if(!(!e.start||!e.end))try{let t=e.allDay&&/^\d{4}-\d{2}-\d{2}$/.test(e.start)?e.start+"T00:00:00":e.start,n=e.allDay&&/^\d{4}-\d{2}-\d{2}$/.test(e.end)?e.end+"T00:00:00":e.end,a=new Date(t).getTime(),i=new Date(n).getTime();if(isNaN(a)||isNaN(i))return;let s=i-a,o=Math.round(s/(1e3*60));return o>0&&o<1440?o:void 0}catch(t){Sd.warn("Error calculating event duration:",{category:"provider",operation:"calculating-event-duration",error:t});return}}}});var HO,go,pT,IBr,mT=y(()=>{HO={TOKEN_REFRESH_BUFFER_MS:3e5,CALLBACK_PORT_START:8080,CALLBACK_PORT_END:8090},go={REFRESH_INTERVAL_MS:900*1e3,MIN_MANUAL_REFRESH_INTERVAL_MS:30*1e3,MAX_RESULTS_PER_REQUEST:2500,VIEW_RANGE:{DAYS_BEFORE:180,DAYS_AFTER:90},DEFAULT_EVENT_DURATION_MS:3600*1e3,MAX_REMINDER_MINUTES:40320,RATE_LIMIT:{MAX_RETRIES:3,INITIAL_BACKOFF_MS:1e3,MAX_BACKOFF_MS:16e3,BACKOFF_MULTIPLIER:2}},pT={REFRESH_INTERVAL_MS:900*1e3,MIN_MANUAL_REFRESH_INTERVAL_MS:30*1e3,MAX_RESULTS_PER_REQUEST:50,VIEW_RANGE:{DAYS_BEFORE:30,DAYS_AFTER:90},DEFAULT_EVENT_DURATION_MS:3600*1e3,RATE_LIMIT:{MAX_RETRIES:3,INITIAL_BACKOFF_MS:1e3,MAX_BACKOFF_MS:16e3,BACKOFF_MULTIPLIER:2}},IBr={SECOND_MS:1e3,MINUTE_MS:60*1e3,HOUR_MS:3600*1e3,DAY_MS:1440*60*1e3}});var uP,pP,xs,ry,VO,qa,uf,fT,al,pf,hT=y(()=>{uP=class extends Error{constructor(t,n){super(t);this.code=n;this.name="TaskNotesServiceError",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},pP=class extends uP{constructor(t,n,a){super(t,a);this.provider=n;this.name="OAuthError"}},xs=class extends pP{constructor(e){super(`${e} authentication expired. Please reconnect.`,e,"TOKEN_EXPIRED"),this.name="TokenExpiredError"}},ry=class extends pP{constructor(t,n,a){let i=`${t} connection expired. Please reconnect in Settings > Integrations.`;super(i,t,"TOKEN_REFRESH_FAILED");this.oauthErrorCode=n;this.oauthErrorDescription=a;this.name="TokenRefreshError"}},VO=class extends pP{constructor(e){super(`${e} OAuth is not configured. Please provide OAuth credentials in settings.`,e,"NOT_CONFIGURED"),this.name="OAuthNotConfiguredError"}},qa=class extends uP{constructor(t,n,a){super(t,a);this.statusCode=n;this.name="GoogleCalendarError"}},uf=class extends qa{constructor(e){super(`Calendar event not found: ${e}`,404,"EVENT_NOT_FOUND"),this.name="EventNotFoundError"}},fT=class extends qa{constructor(e){super(`Calendar not found: ${e}`,404,"CALENDAR_NOT_FOUND"),this.name="CalendarNotFoundError"}},al=class extends qa{constructor(e){let t=e?`Rate limit exceeded. Retry after ${e} seconds.`:"Rate limit exceeded. Please try again later.";super(t,429,"RATE_LIMIT"),this.name="RateLimitError"}},pf=class extends uP{constructor(t,n){super(t,"VALIDATION_ERROR");this.field=n;this.name="ValidationError"}}});function X_e(){if(mf.Platform.isDesktop&&mf.Platform.isDesktopApp)return G6||(G6=require("http")),G6;throw new Error("OAuth redirect handling is only available on desktop.")}var mf,il,G6,qO,eIe=y(()=>{mf=require("obsidian");mT();hT();K();fs();il=N({tag:"Services/OAuthService"}),G6=null;qO=class{constructor(e,t){this.callbackServer=null;this.pendingOAuthState=new Map;this.tokenRefreshPromises=new Map;this.connectionGenerations=new Map;this.configs={google:{provider:"google",clientId:"",redirectUri:"http://127.0.0.1:8080",scope:["https://www.googleapis.com/auth/calendar.readonly","https://www.googleapis.com/auth/calendar.events"],authorizationEndpoint:"https://accounts.google.com/o/oauth2/v2/auth",tokenEndpoint:"https://oauth2.googleapis.com/token",deviceCodeEndpoint:"https://oauth2.googleapis.com/device/code",revocationEndpoint:"https://oauth2.googleapis.com/revoke"},microsoft:{provider:"microsoft",clientId:"",redirectUri:"http://localhost:8080",scope:["Calendars.Read","Calendars.ReadWrite","offline_access"],authorizationEndpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/authorize",tokenEndpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/token",deviceCodeEndpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/devicecode",revocationEndpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/logout"}};this.plugin=e,this.secretStore=t}getCredentials(e){return this.secretStore.getCredentials(e)}setCredentials(e,t){this.secretStore.setCredentials(e,t)}clearCredentials(e){this.secretStore.clearCredentials(e)}getConfig(e){var n;let t=this.secretStore.getCredentials(e);return{...this.configs[e],clientId:(n=t==null?void 0:t.clientId)!=null?n:"",clientSecret:t==null?void 0:t.clientSecret}}async authenticate(e){if(!this.getConfig(e).clientId)throw new VO(e);return await this.authenticateStandard(e)}async authenticateStandard(e){try{let t=this.getConfig(e);if(!mf.Platform.isDesktopApp)throw Te(this.plugin.emitter,"OAUTH authentication requires the desktop app."),new Error("OAuth authentication requires the desktop app.");let n=this.generateCodeVerifier(),a=await this.generateCodeChallenge(n),i=this.generateState(),s=await this.findAvailablePort(HO.CALLBACK_PORT_START,HO.CALLBACK_PORT_END);await this.startCallbackServer(s);let o=t.redirectUri;t.redirectUri=`http://127.0.0.1:${s}`;try{let l=this.buildAuthorizationUrl(t,a,i);this.pendingOAuthState.set(i,{provider:e,codeVerifier:n,resolve:()=>{},reject:()=>{}}),Te(this.plugin.emitter,`Opening browser for ${e} authorization...`),await this.openAuthorizationUrl(l);let c=await this.waitForCallback(i,3e5),d=await this.exchangeCodeForTokens(t,c,n);await this.storeConnection(e,d),Te(this.plugin.emitter,`Successfully connected to ${e} Calendar!`)}finally{t.redirectUri=o}}catch(t){throw il.error(`OAuth authentication failed for ${e}:`,{category:"provider",operation:"oauth-authentication",error:t}),Te(this.plugin.emitter,`Failed to connect to ${e}: ${t.message}`),t}finally{await this.stopCallbackServer()}}async openAuthorizationUrl(e){try{let n=require("electron").shell;if(n!=null&&n.openExternal){await n.openExternal(e);return}}catch(t){il.warn("Failed to open OAuth URL in system browser; falling back to window.open.",{category:"provider",operation:"oauth-open-external",error:t})}window.open(e,"_blank")}async findAvailablePort(e,t){let n=X_e();for(let a=e;a<=t;a++)try{return await new Promise((i,s)=>{let o=n.createServer();o.once("error",s),o.once("listening",()=>{o.close(),i()}),o.listen(a,"127.0.0.1")}),a}catch(i){continue}throw new Error(`No available ports found between ${e} and ${t}`)}generateCodeVerifier(){return this.base64UrlEncode(crypto.getRandomValues(new Uint8Array(32)))}async generateCodeChallenge(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest("SHA-256",t);return this.base64UrlEncode(new Uint8Array(n))}generateState(){return Array.from(crypto.getRandomValues(new Uint8Array(16))).map(e=>e.toString(16).padStart(2,"0")).join("")}base64UrlEncode(e){let t="";return e.forEach(n=>{t+=String.fromCharCode(n)}),btoa(t).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}buildAuthorizationUrl(e,t,n){let a=new URLSearchParams({client_id:e.clientId,redirect_uri:e.redirectUri,response_type:"code",scope:e.scope.join(" "),state:n,code_challenge:t,code_challenge_method:"S256"});return e.provider==="google"&&(a.set("access_type","offline"),a.set("prompt","consent")),`${e.authorizationEndpoint}?${a.toString()}`}async startCallbackServer(e){return new Promise((t,n)=>{if(this.callbackServer){t();return}let a;try{a=X_e()}catch(i){n(i instanceof Error?i:new Error(String(i)));return}this.callbackServer=a.createServer((i,s)=>{this.handleCallback(i,s)}),this.callbackServer.once("error",i=>{il.error("OAuth callback server error:",{category:"provider",operation:"oauth-callback-server",error:i}),n(i)}),this.callbackServer.listen(e,"127.0.0.1",()=>{t()})})}async stopCallbackServer(){return new Promise(e=>{if(!this.callbackServer){e();return}this.callbackServer.close(()=>{this.callbackServer=null,e()})})}handleCallback(e,t){let n=e.headers.host,a=Array.isArray(n)?n[0]:n!=null?n:"localhost",i=new URL(e.url||"",`http://${a}`),s=i.searchParams.get("code"),o=i.searchParams.get("state"),l=i.searchParams.get("error");if(t.writeHead(200,{"Content-Type":"text/html"}),l){t.end(`
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<head><title>OAuth Error</title></head>
|
||
<body>
|
||
<h1>Authorization Failed</h1>
|
||
<p>Error: ${l}</p>
|
||
<p>You can close this window.</p>
|
||
</body>
|
||
</html>
|
||
`);let d=o?this.pendingOAuthState.get(o):null;d&&o&&(d.reject(new Error(`OAuth error: ${l}`)),this.pendingOAuthState.delete(o));return}if(!s||!o){t.end(`
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<head><title>OAuth Error</title></head>
|
||
<body>
|
||
<h1>Invalid Callback</h1>
|
||
<p>Missing required parameters.</p>
|
||
<p>You can close this window.</p>
|
||
</body>
|
||
</html>
|
||
`);return}t.end(`
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<head><title>OAuth Success</title></head>
|
||
<body>
|
||
<h1>Authorization Successful!</h1>
|
||
<p>You can close this window and return to Obsidian.</p>
|
||
<script>window.close();<\/script>
|
||
</body>
|
||
</html>
|
||
`);let c=this.pendingOAuthState.get(o);c&&(c.resolve(s),this.pendingOAuthState.delete(o))}waitForCallback(e,t){return new Promise((n,a)=>{let i=this.pendingOAuthState.get(e);if(!i){a(new Error("Invalid OAuth state"));return}i.resolve=n,i.reject=a,window.setTimeout(()=>{this.pendingOAuthState.has(e)&&(this.pendingOAuthState.delete(e),a(new Error("OAuth timeout - authorization took too long")))},t)})}async exchangeCodeForTokens(e,t,n){let a={client_id:e.clientId,code:t,code_verifier:n,redirect_uri:e.redirectUri,grant_type:"authorization_code"};e.clientSecret&&(a.client_secret=e.clientSecret);let i=new URLSearchParams(a);try{let s=await(0,mf.requestUrl)({url:e.tokenEndpoint,method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:i.toString(),throw:!1});if(s.status!==200)throw il.error("Token exchange failed with status:",{category:"provider",operation:"token-exchange-status",details:{value:s.status}}),il.error("Response headers:",{category:"provider",operation:"response-headers",details:{value:s.headers}}),il.error("Response body:",{category:"provider",operation:"response-body",details:{value:s.text}}),il.error("Response JSON:",{category:"provider",operation:"response-json",details:{value:s.json}}),new Error(`Token exchange failed with status ${s.status}: ${s.text||JSON.stringify(s.json)}`);let o=s.json;if(!o.access_token)throw new Error("No access token in response");let l=o.expires_in||3600,c=Date.now()+l*1e3;return{accessToken:o.access_token,refreshToken:o.refresh_token,expiresAt:c,scope:o.scope||e.scope.join(" "),tokenType:o.token_type||"Bearer"}}catch(s){throw il.error("Token exchange error:",{category:"provider",operation:"token-exchange",error:s}),new Error(`Failed to exchange code for tokens: ${s.message}`)}}async refreshToken(e){var o;let t=await this.getConnection(e);if(!t)throw new Error(`No ${e} connection found`);if(!t.tokens.refreshToken)throw new Error(`No refresh token available for ${e}`);let n=(o=this.connectionGenerations.get(e))!=null?o:0,a=this.getConfig(e),i={client_id:a.clientId,refresh_token:t.tokens.refreshToken,grant_type:"refresh_token"};a.clientSecret&&(i.client_secret=a.clientSecret);let s=new URLSearchParams(i);try{let l=await(0,mf.requestUrl)({url:a.tokenEndpoint,method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:s.toString(),throw:!1});if(l.status!==200){let m,f;try{let g=l.json;m=g==null?void 0:g.error,f=g==null?void 0:g.error_description}catch(g){}throw il.error("[OAuth] Token refresh failed:",{category:"provider",operation:"token-refresh",details:{status:l.status,description:f},error:m}),l.status===401||l.status===400&&(m==="invalid_grant"||m==="invalid_client")?this.clearConnection(e,n)?(Te(this.plugin.emitter,`${e} connection expired. Please reconnect in Settings > Integrations.`),new ry(e,m,f)):new Error(`${e} OAuth connection changed during token refresh`):new Error(`Token refresh failed with status ${l.status}: ${m||l.text||"Unknown error"}`)}let c=l.json;if(!c.access_token)throw new Error("No access token in refresh response");let d=c.expires_in||3600,u=Date.now()+d*1e3,p={accessToken:c.access_token,refreshToken:c.refresh_token||t.tokens.refreshToken,expiresAt:u,scope:c.scope||t.tokens.scope,tokenType:c.token_type||"Bearer"};return await this.storeConnection(e,p,t.userEmail,n),p}catch(l){throw l instanceof ry?l:(il.error("Token refresh failed:",{category:"provider",operation:"token-refresh",error:l}),new Error(`Failed to refresh ${e} token: ${l.message}`))}}clearConnection(e,t){var a;let n=(a=this.connectionGenerations.get(e))!=null?a:0;return t!==void 0&&t!==n?!1:(this.secretStore.clearConnection(e),this.connectionGenerations.set(e,n+1),!0)}async getValidToken(e,t){this.assertExpectedConnectionGeneration(e,t);let n=await this.getConnection(e);if(this.assertExpectedConnectionGeneration(e,t),!n)throw new xs(e);let a=Date.now(),i=HO.TOKEN_REFRESH_BUFFER_MS;if(n.tokens.expiresAt-i<a){let s=this.tokenRefreshPromises.get(e);if(s){let c=await s;return this.assertExpectedConnectionGeneration(e,t),c.accessToken}let o=this.refreshToken(e).finally(()=>{this.tokenRefreshPromises.delete(e)});this.tokenRefreshPromises.set(e,o);let l=await o;return this.assertExpectedConnectionGeneration(e,t),l.accessToken}return this.assertExpectedConnectionGeneration(e,t),n.tokens.accessToken}assertExpectedConnectionGeneration(e,t){if(t!==void 0&&this.getConnectionGeneration(e)!==t)throw new Error(`${e} OAuth connection changed during calendar operation`)}async storeConnection(e,t,n,a){var s,o;if(a!==void 0&&a!==((s=this.connectionGenerations.get(e))!=null?s:0))throw new Error(`${e} OAuth connection changed during token refresh`);let i={provider:e,tokens:t,userEmail:n,connectedAt:new Date().toISOString(),lastRefreshed:new Date().toISOString()};if(this.secretStore.setConnection(e,i),a===void 0){let l=(o=this.connectionGenerations.get(e))!=null?o:0;this.connectionGenerations.set(e,l+1)}}async getConnection(e){return this.secretStore.getConnection(e)}async isConnected(e){return await this.getConnection(e)!==null}getConnectionGeneration(e){var t;return(t=this.connectionGenerations.get(e))!=null?t:0}async isConnectionGenerationCurrent(e,t){return this.getConnectionGeneration(e)===t&&await this.isConnected(e)}async disconnect(e){let t=this.getConnectionGeneration(e),n=await this.getConnection(e);n&&this.clearConnection(e,t)&&(await this.revokeToken(e,n.tokens.accessToken),n.tokens.refreshToken&&await this.revokeToken(e,n.tokens.refreshToken),Te(this.plugin.emitter,`Disconnected from ${e} Calendar`))}async revokeToken(e,t){let n=this.getConfig(e);if(!n.revocationEndpoint){il.warn(`No revocation endpoint configured for ${e}`,{category:"provider",operation:"no-revocation-endpoint-configured"});return}try{await(0,mf.requestUrl)({url:n.revocationEndpoint,method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({token:t,...n.clientId&&{client_id:n.clientId}}).toString(),throw:!1})}catch(a){il.error(`[OAuth] Failed to revoke token for ${e}:`,{category:"provider",operation:"revoke-token",error:a})}}async destroy(){await this.stopCallbackServer(),this.pendingOAuthState.clear(),this.tokenRefreshPromises.clear(),this.connectionGenerations.clear()}}});function K6(r,e){if(!r||r.trim()==="")throw new pf(`${e} cannot be empty`,e)}function sl(r,e){if(r==null)throw new pf(`${e} is required`,e)}function WO(r){if(K6(r,"Calendar ID"),!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$|^[a-zA-Z0-9_-]+$|^[a-zA-Z0-9+/]+=*$/.test(r))throw new pf("Invalid calendar ID format. Expected email-like, alphanumeric, or Base64 format.","calendarId")}function Fht(r){for(let e=0;e<r.length;e++){let t=r.charCodeAt(e);if(t<32||t===127)return!0}return!1}function YO(r){if(K6(r,"Calendar ID"),Fht(r))throw new pf("Invalid calendar ID format. Microsoft calendar IDs cannot contain control characters.","calendarId")}function gT(r){if(K6(r,"Event ID"),!/^[a-zA-Z0-9_+/=-]+$/.test(r))throw new pf("Invalid event ID format. Expected alphanumeric or Base64 format.","eventId")}var Z6=y(()=>{hT()});var Oht,yT,GO,KO=y(()=>{oD();K();Oht=N({tag:"Services/CalendarProvider"}),yT=class extends sd{ownsEvent(e){var t,n;return(n=(t=e.subscriptionId)==null?void 0:t.startsWith(`${this.providerId}-`))!=null?n:!1}extractEventIds(e){let t=e.subscriptionId.replace(`${this.providerId}-`,""),n=e.id.replace(`${this.providerId}-${t}-`,"");return{calendarId:t,eventId:n}}},GO=class{constructor(){this.providers=new Map}register(e){this.providers.set(e.providerId,e)}unregister(e){this.providers.delete(e)}getProvider(e){return this.providers.get(e)}getAllProviders(){return Array.from(this.providers.values())}findProviderForEvent(e){for(let t of this.providers.values())if(t.ownsEvent(e))return t}getAllEvents(){let e=[];for(let t of this.providers.values())e.push(...t.getAllEvents());return e}async refreshAll(){let e=Array.from(this.providers.values()).map(t=>t.refresh().catch(n=>{Oht.error(`Failed to refresh ${t.providerName}:`,{category:"provider",operation:"refresh",error:n})}));await Promise.all(e)}destroyAll(){for(let e of this.providers.values())e.destroy();this.providers.clear()}}});function Hht(r){return $ht.test(r)||Bht.test(r)||Uht.test(r)}function Vht(r){return Lht.has(r)?2:zht.has(r)?1:0}function qht(r,e){var i;let t=[];r.childNodes.forEach(s=>Q6(s,t));let n=nIe(rIe(t)),a=((i=r.getAttribute("href"))!=null?i:"").trim();if(!a||a===n){e.push(n);return}if(!n){e.push(a);return}e.push(`${n} (${a})`)}function Q6(r,e){var i;if(r.nodeType===3){e.push((i=r.textContent)!=null?i:"");return}if(r.nodeType!==1)return;let t=r,n=t.tagName.toUpperCase();if(jht.has(n))return;if(n==="BR"){e.push({weight:1});return}if(n==="A"){qht(t,e);return}let a=Vht(n);a>0&&e.push({weight:a}),n==="LI"&&e.push("- "),t.childNodes.forEach(s=>Q6(s,e)),a>0&&e.push({weight:a})}function rIe(r){let e="",t=0;for(let n of r){if(typeof n!="string"){t=Math.max(t,n.weight);continue}n.length!==0&&(t>0&&n.trim().length===0||(e.length>0&&t>0&&(e+=`
|
||
`.repeat(t)),t=0,e+=n))}return e}function nIe(r){return r.replace(/\u00a0/g," ").replace(/\r\n?/g,`
|
||
`).split(`
|
||
`).map(e=>e.replace(/[ \t]+/g," ").trim()).join(`
|
||
`).replace(/\n{3,}/g,`
|
||
|
||
`).trim()}function Wht(r){let e=(0,tIe.sanitizeHTMLToDom)(r),t=[];return e.childNodes.forEach(n=>Q6(n,t)),nIe(rIe(t))}function aIe(r){if(typeof r!="string"||r.length===0)return;if(!Hht(r))return r;let e=Wht(r);return e.length>0?e:void 0}var tIe,Lht,zht,jht,$ht,Bht,Uht,iIe=y(()=>{tIe=require("obsidian"),Lht=new Set(["ADDRESS","ARTICLE","ASIDE","BLOCKQUOTE","DL","FIELDSET","FIGURE","FOOTER","FORM","H1","H2","H3","H4","H5","H6","HEADER","HR","MAIN","NAV","OL","P","PRE","SECTION","TABLE","UL"]),zht=new Set(["DD","DIV","DT","FIGCAPTION","LI","TBODY","TD","TFOOT","TH","THEAD","TR"]),jht=new Set(["SCRIPT","STYLE","TEMPLATE","HEAD"]),$ht=/<([a-z][\w:-]*)(?:\s[^>]*)?>[\s\S]*?<\/\1\s*>/i,Bht=/<(?:area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?:\s[^>]*)?\/?\s*>/i,Uht=/<!--[\s\S]*?-->/});var ff,ol,Yht,ZO,sIe=y(()=>{ff=require("obsidian");Wr();mT();hT();Z6();KO();K();fs();iIe();ol=N({tag:"Services/GoogleCalendarService"}),Yht={1:"#a4bdfc",2:"#7ae7bf",3:"#dbadff",4:"#ff887c",5:"#fbd75b",6:"#ffb878",7:"#46d6db",8:"#e1e1e1",9:"#5484ed",10:"#51b749",11:"#dc2127"},ZO=class extends yT{constructor(t,n){super();this.providerId="google";this.providerName="Google Calendar";this.baseUrl="https://www.googleapis.com/calendar/v3";this.cache=new Map;this.refreshTimer=null;this.availableCalendars=[];this.calendarColors=new Map;this.lastManualRefresh=0;this.plugin=t,this.oauthService=n}sleep(t){return new Promise(n=>window.setTimeout(n,t))}async withRetry(t,n){let{MAX_RETRIES:a,INITIAL_BACKOFF_MS:i,MAX_BACKOFF_MS:s,BACKOFF_MULTIPLIER:o}=go.RATE_LIMIT,l=null,c=i;for(let d=0;d<=a;d++)try{return await t()}catch(u){l=u;let p=u.status===429,m=u.status>=500&&u.status<600,f=d===a;if(!p&&!m)throw u;if(f)throw ol.error(`[GoogleCalendar] ${n} failed after ${a} retries`,{category:"provider",operation:"retry-google-calendar-request",details:{context:n,attempts:a},error:u}),u;let h=Math.random()*.3*c,g=Math.min(c+h,s);ol.warn("Google Calendar request failed and will be retried",{category:"provider",operation:"retry-google-calendar-request",details:{context:n,status:u.status,delayMs:Math.round(g),nextAttempt:d+1,maxRetries:a},error:u}),await this.sleep(g),c=Math.min(c*o,s)}throw l instanceof Error?l:new Error(String(l))}getAvailableCalendars(){return this.availableCalendars}getConnectionGeneration(){return this.oauthService.getConnectionGeneration("google")}async isConnectionGenerationCurrent(t){return this.oauthService.isConnectionGenerationCurrent("google",t)}getEnabledCalendarIds(){return this.plugin.settings.enabledGoogleCalendars.length===0?this.availableCalendars.map(t=>t.id):this.plugin.settings.enabledGoogleCalendars}getSyncToken(t){return this.plugin.settings.googleCalendarSyncTokens[t]}async saveSyncToken(t,n){this.plugin.settings.googleCalendarSyncTokens[t]!==n&&(this.plugin.settings.googleCalendarSyncTokens[t]=n,await this.persistSettingsDataOnly())}async clearSyncToken(t){t in this.plugin.settings.googleCalendarSyncTokens&&(delete this.plugin.settings.googleCalendarSyncTokens[t],await this.persistSettingsDataOnly())}async persistSettingsDataOnly(){let t=this.plugin.saveSettingsDataOnly;typeof t=="function"&&await t.call(this.plugin)}async initialize(){await this.oauthService.isConnected("google")&&(await this.refreshAllCalendars(),this.startRefreshTimer())}startRefreshTimer(){this.refreshTimer&&window.clearTimeout(this.refreshTimer),this.refreshTimer=window.setTimeout(()=>{this.refreshTimer=null,this.refreshAllCalendars().catch(t=>{ol.error("Google Calendar refresh failed:",{category:"provider",operation:"google-calendar-refresh",error:t})}).finally(()=>{this.oauthService.isConnected("google").then(t=>{t&&this.startRefreshTimer()})})},go.REFRESH_INTERVAL_MS)}stopRefreshTimer(){this.refreshTimer&&(window.clearTimeout(this.refreshTimer),this.refreshTimer=null)}async listCalendars(){try{return await this.withRetry(async()=>{let t=await this.oauthService.getValidToken("google"),i=(await(0,ff.requestUrl)({url:`${this.baseUrl}/users/me/calendarList`,method:"GET",headers:{Authorization:`Bearer ${t}`,Accept:"application/json"}})).json.items||[],s=[];for(let o of i)o.backgroundColor&&this.calendarColors.set(o.id,o.backgroundColor),s.push({id:o.id,summary:o.summary,description:o.description,backgroundColor:o.backgroundColor,primary:o.primary||!1});return s},"List calendars")}catch(t){throw ol.error("Failed to list calendars:",{category:"provider",operation:"list-calendars",error:t}),new qa(`Failed to fetch calendar list: ${t.message}`,t.status)}}async fetchCalendarEvents(t,n,a){try{let i=await this.oauthService.getValidToken("google"),s=this.getSyncToken(t),o=[],l,c,d=!s,u=!1,p,m;if(!s){let f=new Date;p=n||new Date(f.getTime()-go.VIEW_RANGE.DAYS_BEFORE*24*60*60*1e3),m=a||new Date(f.getTime()+go.VIEW_RANGE.DAYS_AFTER*24*60*60*1e3)}do try{let f=new URLSearchParams({singleEvents:"true",maxResults:go.MAX_RESULTS_PER_REQUEST.toString()});s?f.set("syncToken",s):(f.set("timeMin",p.toISOString()),f.set("timeMax",m.toISOString()),f.set("orderBy","startTime")),l&&f.set("pageToken",l);let g=(await this.withRetry(async()=>await(0,ff.requestUrl)({url:`${this.baseUrl}/calendars/${encodeURIComponent(t)}/events?${f.toString()}`,method:"GET",headers:{Authorization:`Bearer ${i}`,Accept:"application/json"}}),`Fetch events for ${t}`)).json,v=g.items||[];!d&&v.some(b=>b.status==="cancelled")&&(u=!0),o.push(...v),l=g.nextPageToken,g.nextSyncToken&&(c=g.nextSyncToken)}catch(f){if(f.status===410)return await this.clearSyncToken(t),await this.fetchCalendarEvents(t,n,a);throw f}while(l);return c&&await this.saveSyncToken(t,c),{events:o,isFullSync:d,hasDeletes:u}}catch(i){throw ol.error(`Failed to fetch events from calendar ${t}:`,{category:"provider",operation:"fetch-events-calendar",error:i}),new Error(`Failed to fetch calendar events: ${i.message}`)}}convertToICSEvent(t,n){var c,d;let a,i,s;if(t.start.date)a=t.start.date,i=(c=t.end)==null?void 0:c.date,s=!0;else{let u=new Date(t.start.dateTime),p=(d=t.end)!=null&&d.dateTime?new Date(t.end.dateTime):void 0;a=M(u,"yyyy-MM-dd'T'HH:mm:ss"),i=p?M(p,"yyyy-MM-dd'T'HH:mm:ss"):void 0,s=!1}let o;t.colorId&&(o=Yht[t.colorId]),o||(o=this.calendarColors.get(n)),o||(o="#4285F4");let l=t.recurringEventId?`google-${n}-${t.recurringEventId}`:void 0;return{id:`google-${n}-${t.id}`,subscriptionId:`google-${n}`,title:t.summary||"Untitled Event",description:aIe(t.description),start:a,end:i,allDay:s,location:t.location,url:t.htmlLink,recurringEventId:l,color:o}}async refreshAllCalendars(t={}){try{if(!await this.oauthService.isConnected("google"))return;this.availableCalendars=await this.listCalendars();let a=this.getEnabledCalendarIds(),i=this.cache.get("all")||[];for(let s of a)try{let{events:o,isFullSync:l}=await this.fetchCalendarEvents(s);if(l){i=i.filter(d=>d.subscriptionId!==`google-${s}`);let c=o.filter(d=>d.status!=="cancelled").map(d=>this.convertToICSEvent(d,s));i.push(...c)}else for(let c of o){let d=`google-${s}-${c.id}`,u=i.findIndex(p=>p.id===d);if(c.status==="cancelled")u!==-1&&i.splice(u,1);else{let p=this.convertToICSEvent(c,s);u!==-1?i[u]=p:i.push(p)}}}catch(o){ol.error(`Failed to fetch events from calendar ${s}:`,{category:"provider",operation:"fetch-events-calendar",error:o})}this.cache.set("all",i),this.emit("data-changed")}catch(n){if(ol.error("Failed to refresh Google calendars:",{category:"provider",operation:"refresh-google-calendars",error:n}),n.message&&n.message.includes("401")&&ol.warn("[GoogleCalendar] Authentication expired - caller should handle re-authentication",{category:"provider",operation:"authentication-expired-caller-should-handle-re-authentication"}),t.propagateErrors)throw n}}getAllEvents(){return this.cache.get("all")||[]}getCachedEvents(){return this.getAllEvents()}async getEvents(t,n,a){let{events:i}=await this.fetchCalendarEvents(t,n,a);return i.filter(s=>s.status!=="cancelled").map(s=>this.convertToICSEvent(s,t))}async manualRefresh(){return this.refresh()}async refresh(){let n=Date.now()-this.lastManualRefresh,a=go.MIN_MANUAL_REFRESH_INTERVAL_MS;if(n<a){let i=a-n;Te(this.plugin.emitter,`Please wait ${Math.ceil(i/1e3)}s before refreshing again`);return}await this.refreshAllCalendars({propagateErrors:!0}),this.lastManualRefresh=Date.now()}clearCache(){this.cache.clear()}async updateEvent(t,n,a,i){WO(t),gT(n),sl(a,"updates");try{let s=await this.oauthService.getValidToken("google",i),c={...(await this.withRetry(async()=>await(0,ff.requestUrl)({url:`${this.baseUrl}/calendars/${encodeURIComponent(t)}/events/${encodeURIComponent(n)}`,method:"GET",headers:{Authorization:`Bearer ${s}`,Accept:"application/json"}}),`Get event ${n}`)).json};c.status==="cancelled"&&(c.status="confirmed"),(a.title!==void 0||a.summary!==void 0)&&(c.summary=a.summary||a.title),a.description!==void 0&&(c.description=a.description),a.location!==void 0&&(c.location=a.location),a.reminders!==void 0&&(c.reminders=a.reminders),a.colorId!==void 0&&(c.colorId=a.colorId),a.recurrence!==void 0&&(c.recurrence=a.recurrence),a.start!==void 0&&(typeof a.start=="string"?a.isAllDay||!/T/.test(a.start)?c.start={date:a.start}:c.start={dateTime:a.start,timeZone:"UTC"}:c.start=a.start),a.end!==void 0&&(typeof a.end=="string"?a.isAllDay||!/T/.test(a.end)?c.end={date:a.end}:c.end={dateTime:a.end,timeZone:"UTC"}:c.end=a.end),c.start&&(c.start.date?(delete c.start.dateTime,delete c.start.timeZone):c.start.dateTime&&delete c.start.date),c.end&&(c.end.date?(delete c.end.dateTime,delete c.end.timeZone):c.end.dateTime&&delete c.end.date);let u=(await this.withRetry(async()=>await(0,ff.requestUrl)({url:`${this.baseUrl}/calendars/${encodeURIComponent(t)}/events/${encodeURIComponent(n)}`,method:"PUT",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(c)}),`Update event ${n}`)).json,p=this.convertToICSEvent(u,t);return await this.refreshAllCalendars(),p}catch(s){throw ol.error("Failed to update Google Calendar event:",{category:"provider",operation:"update-google-calendar-event",error:s}),s.status===404?new uf(n):s.status===401||s.status===403?new xs("google"):s.status===429?new al:new qa(`Failed to update event: ${s.message}`,s.status)}}async createEvent(t,n,a){WO(t),sl(n,"event");let i=n.summary||n.title;sl(i,"event.summary"),sl(n.start,"event.start"),sl(n.end,"event.end");try{let s=await this.oauthService.getValidToken("google",a),o={summary:i,description:n.description,location:n.location};n.reminders&&(o.reminders=n.reminders),n.colorId&&(o.colorId=n.colorId),n.recurrence&&n.recurrence.length>0&&(o.recurrence=n.recurrence),typeof n.start=="string"?n.isAllDay||!/T/.test(n.start)?(o.start={date:n.start},o.end={date:n.end}):(o.start={dateTime:n.start,timeZone:"UTC"},o.end={dateTime:n.end,timeZone:"UTC"}):(o.start=n.start,o.end=typeof n.end=="string"?{dateTime:n.end,timeZone:"UTC"}:n.end);let c=(await this.withRetry(async()=>await(0,ff.requestUrl)({url:`${this.baseUrl}/calendars/${encodeURIComponent(t)}/events`,method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(o)}),`Create event in ${t}`)).json,d=this.convertToICSEvent(c,t);return await this.refreshAllCalendars(),d}catch(s){throw ol.error("Failed to create Google Calendar event:",{category:"provider",operation:"create-google-calendar-event",error:s}),s.status===404?new fT(t):s.status===401||s.status===403?new xs("google"):s.status===429?new al:new qa(`Failed to create event: ${s.message}`,s.status)}}async deleteEvent(t,n,a){WO(t),gT(n);try{let i=await this.oauthService.getValidToken("google",a);await this.withRetry(async()=>await(0,ff.requestUrl)({url:`${this.baseUrl}/calendars/${encodeURIComponent(t)}/events/${encodeURIComponent(n)}`,method:"DELETE",headers:{Authorization:`Bearer ${i}`}}),`Delete event ${n}`),await this.refreshAllCalendars()}catch(i){if(i.status===410)return;throw ol.error("Failed to delete Google Calendar event:",{category:"provider",operation:"delete-google-calendar-event",error:i}),i.status===404?new uf(n):i.status===401||i.status===403?new xs("google"):i.status===429?new al:new qa(`Failed to delete event: ${i.message}`,i.status)}}async createCalendar(t,n){try{let a=await this.oauthService.getValidToken("google"),s=(await this.withRetry(async()=>await(0,ff.requestUrl)({url:`${this.baseUrl}/calendars`,method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({summary:t,description:n,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone})}),"Create calendar")).json;return this.availableCalendars=await this.listCalendars(),s.id}catch(a){throw ol.error("Failed to create calendar:",{category:"provider",operation:"create-calendar",error:a}),a.status===401||a.status===403?new xs("google"):a.status===429?new al:new qa(`Failed to create calendar: ${a.message}`,a.status)}}destroy(){this.stopRefreshTimer(),this.cache.clear(),this.removeAllListeners()}}});var bt=x(rt=>{"use strict";rt.secondsInYear=rt.secondsInWeek=rt.secondsInQuarter=rt.secondsInMonth=rt.secondsInMinute=rt.secondsInHour=rt.secondsInDay=rt.quartersInYear=rt.monthsInYear=rt.monthsInQuarter=rt.minutesInYear=rt.minutesInMonth=rt.minutesInHour=rt.minutesInDay=rt.minTime=rt.millisecondsInWeek=rt.millisecondsInSecond=rt.millisecondsInMinute=rt.millisecondsInHour=rt.millisecondsInDay=rt.maxTime=rt.daysInYear=rt.daysInWeek=rt.constructFromSymbol=void 0;var r2r=rt.daysInWeek=7,Ght=rt.daysInYear=365.2425,Kht=rt.maxTime=Math.pow(10,8)*24*60*60*1e3,n2r=rt.minTime=-Kht,a2r=rt.millisecondsInWeek=6048e5,i2r=rt.millisecondsInDay=864e5,s2r=rt.millisecondsInMinute=6e4,o2r=rt.millisecondsInHour=36e5,l2r=rt.millisecondsInSecond=1e3,c2r=rt.minutesInYear=525600,d2r=rt.minutesInMonth=43200,u2r=rt.minutesInDay=1440,p2r=rt.minutesInHour=60,m2r=rt.monthsInQuarter=3,f2r=rt.monthsInYear=12,h2r=rt.quartersInYear=4,Zht=rt.secondsInHour=3600,g2r=rt.secondsInMinute=60,oIe=rt.secondsInDay=Zht*24,y2r=rt.secondsInWeek=oIe*7,Qht=rt.secondsInYear=oIe*Ght,Jht=rt.secondsInMonth=Qht/12,v2r=rt.secondsInQuarter=Jht*3,k2r=rt.constructFromSymbol=Symbol.for("constructDateFrom")});var qe=x(cIe=>{"use strict";cIe.constructFrom=Xht;var lIe=bt();function Xht(r,e){return typeof r=="function"?r(e):r&&typeof r=="object"&&lIe.constructFromSymbol in r?r[lIe.constructFromSymbol](e):r instanceof Date?new r.constructor(e):new Date(e)}});var X=x(dIe=>{"use strict";dIe.toDate=tgt;var egt=qe();function tgt(r,e){return(0,egt.constructFrom)(e||r,r)}});var xd=x(uIe=>{"use strict";uIe.addDays=agt;var rgt=qe(),ngt=X();function agt(r,e,t){let n=(0,ngt.toDate)(r,t==null?void 0:t.in);return isNaN(e)?(0,rgt.constructFrom)((t==null?void 0:t.in)||r,NaN):(e&&n.setDate(n.getDate()+e),n)}});var vT=x(mIe=>{"use strict";mIe.addMonths=sgt;var pIe=qe(),igt=X();function sgt(r,e,t){let n=(0,igt.toDate)(r,t==null?void 0:t.in);if(isNaN(e))return(0,pIe.constructFrom)((t==null?void 0:t.in)||r,NaN);if(!e)return n;let a=n.getDate(),i=(0,pIe.constructFrom)((t==null?void 0:t.in)||r,n.getTime());i.setMonth(n.getMonth()+e+1,0);let s=i.getDate();return a>=s?i:(n.setFullYear(i.getFullYear(),i.getMonth(),a),n)}});var J6=x(fIe=>{"use strict";fIe.add=ugt;var ogt=xd(),lgt=vT(),cgt=qe(),dgt=X();function ugt(r,e,t){let{years:n=0,months:a=0,weeks:i=0,days:s=0,hours:o=0,minutes:l=0,seconds:c=0}=e,d=(0,dgt.toDate)(r,t==null?void 0:t.in),u=a||n?(0,lgt.addMonths)(d,a+n*12):d,p=s||i?(0,ogt.addDays)(u,s+i*7):u,m=l+o*60,h=(c+m*60)*1e3;return(0,cgt.constructFrom)((t==null?void 0:t.in)||r,+p+h)}});var X6=x(hIe=>{"use strict";hIe.isSaturday=mgt;var pgt=X();function mgt(r,e){return(0,pgt.toDate)(r,e==null?void 0:e.in).getDay()===6}});var e9=x(gIe=>{"use strict";gIe.isSunday=hgt;var fgt=X();function hgt(r,e){return(0,fgt.toDate)(r,e==null?void 0:e.in).getDay()===0}});var mP=x(yIe=>{"use strict";yIe.isWeekend=ygt;var ggt=X();function ygt(r,e){let t=(0,ggt.toDate)(r,e==null?void 0:e.in).getDay();return t===0||t===6}});var r9=x(vIe=>{"use strict";vIe.addBusinessDays=wgt;var vgt=qe(),kgt=X6(),bgt=e9(),t9=mP(),Tgt=X();function wgt(r,e,t){let n=(0,Tgt.toDate)(r,t==null?void 0:t.in),a=(0,t9.isWeekend)(n,t);if(isNaN(e))return(0,vgt.constructFrom)(t==null?void 0:t.in,NaN);let i=n.getHours(),s=e<0?-1:1,o=Math.trunc(e/5);n.setDate(n.getDate()+o*7);let l=Math.abs(e%5);for(;l>0;)n.setDate(n.getDate()+s),(0,t9.isWeekend)(n,t)||(l-=1);return a&&(0,t9.isWeekend)(n,t)&&e!==0&&((0,kgt.isSaturday)(n,t)&&n.setDate(n.getDate()+(s<0?2:-1)),(0,bgt.isSunday)(n,t)&&n.setDate(n.getDate()+(s<0?1:-2))),n.setHours(i),n}});var fP=x(kIe=>{"use strict";kIe.addMilliseconds=Cgt;var Sgt=qe(),xgt=X();function Cgt(r,e,t){return(0,Sgt.constructFrom)((t==null?void 0:t.in)||r,+(0,xgt.toDate)(r)+e)}});var n9=x(bIe=>{"use strict";bIe.addHours=Pgt;var Egt=fP(),Dgt=bt();function Pgt(r,e,t){return(0,Egt.addMilliseconds)(r,e*Dgt.millisecondsInHour,t)}});var ki=x(a9=>{"use strict";a9.getDefaultOptions=Mgt;a9.setDefaultOptions=Agt;var TIe={};function Mgt(){return TIe}function Agt(r){TIe=r}});var ic=x(wIe=>{"use strict";wIe.startOfWeek=Ngt;var _gt=ki(),Igt=X();function Ngt(r,e){var o,l,c,d,u,p,m,f;let t=(0,_gt.getDefaultOptions)(),n=(f=(m=(d=(c=e==null?void 0:e.weekStartsOn)!=null?c:(l=(o=e==null?void 0:e.locale)==null?void 0:o.options)==null?void 0:l.weekStartsOn)!=null?d:t.weekStartsOn)!=null?m:(p=(u=t.locale)==null?void 0:u.options)==null?void 0:p.weekStartsOn)!=null?f:0,a=(0,Igt.toDate)(r,e==null?void 0:e.in),i=a.getDay(),s=(i<n?7:0)+i-n;return a.setDate(a.getDate()-s),a.setHours(0,0,0,0),a}});var Cd=x(SIe=>{"use strict";SIe.startOfISOWeek=Fgt;var Rgt=ic();function Fgt(r,e){return(0,Rgt.startOfWeek)(r,{...e,weekStartsOn:1})}});var hf=x(EIe=>{"use strict";EIe.getISOWeekYear=Lgt;var xIe=qe(),CIe=Cd(),Ogt=X();function Lgt(r,e){let t=(0,Ogt.toDate)(r,e==null?void 0:e.in),n=t.getFullYear(),a=(0,xIe.constructFrom)(t,0);a.setFullYear(n+1,0,4),a.setHours(0,0,0,0);let i=(0,CIe.startOfISOWeek)(a),s=(0,xIe.constructFrom)(t,0);s.setFullYear(n,0,4),s.setHours(0,0,0,0);let o=(0,CIe.startOfISOWeek)(s);return t.getTime()>=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}});var lp=x(DIe=>{"use strict";DIe.getTimezoneOffsetInMilliseconds=jgt;var zgt=X();function jgt(r){let e=(0,zgt.toDate)(r),t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+r-+t}});var Nr=x(PIe=>{"use strict";PIe.normalizeDates=Bgt;var $gt=qe();function Bgt(r,...e){let t=$gt.constructFrom.bind(null,r||e.find(n=>typeof n=="object"));return e.map(t)}});var hP=x(MIe=>{"use strict";MIe.startOfDay=Hgt;var Ugt=X();function Hgt(r,e){let t=(0,Ugt.toDate)(r,e==null?void 0:e.in);return t.setHours(0,0,0,0),t}});var cp=x(IIe=>{"use strict";IIe.differenceInCalendarDays=Wgt;var AIe=lp(),Vgt=Nr(),qgt=bt(),_Ie=hP();function Wgt(r,e,t){let[n,a]=(0,Vgt.normalizeDates)(t==null?void 0:t.in,r,e),i=(0,_Ie.startOfDay)(n),s=(0,_Ie.startOfDay)(a),o=+i-(0,AIe.getTimezoneOffsetInMilliseconds)(i),l=+s-(0,AIe.getTimezoneOffsetInMilliseconds)(s);return Math.round((o-l)/qgt.millisecondsInDay)}});var kT=x(NIe=>{"use strict";NIe.startOfISOWeekYear=Zgt;var Ygt=qe(),Ggt=hf(),Kgt=Cd();function Zgt(r,e){let t=(0,Ggt.getISOWeekYear)(r,e),n=(0,Ygt.constructFrom)((e==null?void 0:e.in)||r,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),(0,Kgt.startOfISOWeek)(n)}});var i9=x(FIe=>{"use strict";FIe.setISOWeekYear=eyt;var Qgt=qe(),Jgt=cp(),RIe=kT(),Xgt=X();function eyt(r,e,t){let n=(0,Xgt.toDate)(r,t==null?void 0:t.in),a=(0,Jgt.differenceInCalendarDays)(n,(0,RIe.startOfISOWeekYear)(n,t)),i=(0,Qgt.constructFrom)((t==null?void 0:t.in)||r,0);return i.setFullYear(e,0,4),i.setHours(0,0,0,0),n=(0,RIe.startOfISOWeekYear)(i),n.setDate(n.getDate()+a),n}});var s9=x(OIe=>{"use strict";OIe.addISOWeekYears=nyt;var tyt=hf(),ryt=i9();function nyt(r,e,t){return(0,ryt.setISOWeekYear)(r,(0,tyt.getISOWeekYear)(r,t)+e,t)}});var QO=x(LIe=>{"use strict";LIe.addMinutes=syt;var ayt=bt(),iyt=X();function syt(r,e,t){let n=(0,iyt.toDate)(r,t==null?void 0:t.in);return n.setTime(n.getTime()+e*ayt.millisecondsInMinute),n}});var JO=x(zIe=>{"use strict";zIe.addQuarters=lyt;var oyt=vT();function lyt(r,e,t){return(0,oyt.addMonths)(r,e*3,t)}});var o9=x(jIe=>{"use strict";jIe.addSeconds=dyt;var cyt=fP();function dyt(r,e,t){return(0,cyt.addMilliseconds)(r,e*1e3,t)}});var gP=x($Ie=>{"use strict";$Ie.addWeeks=pyt;var uyt=xd();function pyt(r,e,t){return(0,uyt.addDays)(r,e*7,t)}});var l9=x(BIe=>{"use strict";BIe.addYears=fyt;var myt=vT();function fyt(r,e,t){return(0,myt.addMonths)(r,e*12,t)}});var HIe=x(UIe=>{"use strict";UIe.areIntervalsOverlapping=hyt;var XO=X();function hyt(r,e,t){let[n,a]=[+(0,XO.toDate)(r.start,t==null?void 0:t.in),+(0,XO.toDate)(r.end,t==null?void 0:t.in)].sort((o,l)=>o-l),[i,s]=[+(0,XO.toDate)(e.start,t==null?void 0:t.in),+(0,XO.toDate)(e.end,t==null?void 0:t.in)].sort((o,l)=>o-l);return t!=null&&t.inclusive?n<=s&&i<=a:n<s&&i<a}});var c9=x(qIe=>{"use strict";qIe.max=yyt;var VIe=qe(),gyt=X();function yyt(r,e){let t,n=e==null?void 0:e.in;return r.forEach(a=>{!n&&typeof a=="object"&&(n=VIe.constructFrom.bind(null,a));let i=(0,gyt.toDate)(a,n);(!t||t<i||isNaN(+i))&&(t=i)}),(0,VIe.constructFrom)(n,t||NaN)}});var d9=x(YIe=>{"use strict";YIe.min=kyt;var WIe=qe(),vyt=X();function kyt(r,e){let t,n=e==null?void 0:e.in;return r.forEach(a=>{!n&&typeof a=="object"&&(n=WIe.constructFrom.bind(null,a));let i=(0,vyt.toDate)(a,n);(!t||t>i||isNaN(+i))&&(t=i)}),(0,WIe.constructFrom)(n,t||NaN)}});var KIe=x(GIe=>{"use strict";GIe.clamp=Syt;var byt=Nr(),Tyt=c9(),wyt=d9();function Syt(r,e,t){let[n,a,i]=(0,byt.normalizeDates)(t==null?void 0:t.in,r,e.start,e.end);return(0,wyt.min)([(0,Tyt.max)([n,a],t),i],t)}});var u9=x(QIe=>{"use strict";QIe.closestIndexTo=xyt;var ZIe=X();function xyt(r,e){let t=+(0,ZIe.toDate)(r);if(isNaN(t))return NaN;let n,a;return e.forEach((i,s)=>{let o=(0,ZIe.toDate)(i);if(isNaN(+o)){n=NaN,a=NaN;return}let l=Math.abs(t-+o);(n==null||l<a)&&(n=s,a=l)}),n}});var XIe=x(JIe=>{"use strict";JIe.closestTo=Pyt;var Cyt=Nr(),Eyt=u9(),Dyt=qe();function Pyt(r,e,t){let[n,...a]=(0,Cyt.normalizeDates)(t==null?void 0:t.in,r,...e),i=(0,Eyt.closestIndexTo)(n,a);if(typeof i=="number"&&isNaN(i))return(0,Dyt.constructFrom)(n,NaN);if(i!==void 0)return a[i]}});var ny=x(tNe=>{"use strict";tNe.compareAsc=Myt;var eNe=X();function Myt(r,e){let t=+(0,eNe.toDate)(r)-+(0,eNe.toDate)(e);return t<0?-1:t>0?1:t}});var aNe=x(nNe=>{"use strict";nNe.compareDesc=Ayt;var rNe=X();function Ayt(r,e){let t=+(0,rNe.toDate)(r)-+(0,rNe.toDate)(e);return t>0?-1:t<0?1:t}});var ba=x(iNe=>{"use strict";iNe.constructNow=Iyt;var _yt=qe();function Iyt(r){return(0,_yt.constructFrom)(r,Date.now())}});var oNe=x(sNe=>{"use strict";sNe.daysToWeeks=Ryt;var Nyt=bt();function Ryt(r){let e=Math.trunc(r/Nyt.daysInWeek);return e===0?0:e}});var bT=x(cNe=>{"use strict";cNe.isSameDay=Oyt;var Fyt=Nr(),lNe=hP();function Oyt(r,e,t){let[n,a]=(0,Fyt.normalizeDates)(t==null?void 0:t.in,r,e);return+(0,lNe.startOfDay)(n)==+(0,lNe.startOfDay)(a)}});var p9=x(dNe=>{"use strict";dNe.isDate=Lyt;function Lyt(r){return r instanceof Date||typeof r=="object"&&Object.prototype.toString.call(r)==="[object Date]"}});var dp=x(uNe=>{"use strict";uNe.isValid=$yt;var zyt=p9(),jyt=X();function $yt(r){return!(!(0,zyt.isDate)(r)&&typeof r!="number"||isNaN(+(0,jyt.toDate)(r)))}});var hNe=x(fNe=>{"use strict";fNe.differenceInBusinessDays=qyt;var Byt=Nr(),pNe=xd(),Uyt=cp(),Hyt=bT(),mNe=dp(),Vyt=mP();function qyt(r,e,t){let[n,a]=(0,Byt.normalizeDates)(t==null?void 0:t.in,r,e);if(!(0,mNe.isValid)(n)||!(0,mNe.isValid)(a))return NaN;let i=(0,Uyt.differenceInCalendarDays)(n,a),s=i<0?-1:1,o=Math.trunc(i/7),l=o*5,c=(0,pNe.addDays)(a,o*7);for(;!(0,Hyt.isSameDay)(n,c);)l+=(0,Vyt.isWeekend)(c,t)?0:s,c=(0,pNe.addDays)(c,s);return l===0?0:l}});var m9=x(yNe=>{"use strict";yNe.differenceInCalendarISOWeekYears=Yyt;var Wyt=Nr(),gNe=hf();function Yyt(r,e,t){let[n,a]=(0,Wyt.normalizeDates)(t==null?void 0:t.in,r,e);return(0,gNe.getISOWeekYear)(n,t)-(0,gNe.getISOWeekYear)(a,t)}});var TNe=x(bNe=>{"use strict";bNe.differenceInCalendarISOWeeks=Zyt;var vNe=lp(),Gyt=Nr(),Kyt=bt(),kNe=Cd();function Zyt(r,e,t){let[n,a]=(0,Gyt.normalizeDates)(t==null?void 0:t.in,r,e),i=(0,kNe.startOfISOWeek)(n),s=(0,kNe.startOfISOWeek)(a),o=+i-(0,vNe.getTimezoneOffsetInMilliseconds)(i),l=+s-(0,vNe.getTimezoneOffsetInMilliseconds)(s);return Math.round((o-l)/Kyt.millisecondsInWeek)}});var eL=x(wNe=>{"use strict";wNe.differenceInCalendarMonths=Jyt;var Qyt=Nr();function Jyt(r,e,t){let[n,a]=(0,Qyt.normalizeDates)(t==null?void 0:t.in,r,e),i=n.getFullYear()-a.getFullYear(),s=n.getMonth()-a.getMonth();return i*12+s}});var f9=x(SNe=>{"use strict";SNe.getQuarter=evt;var Xyt=X();function evt(r,e){let t=(0,Xyt.toDate)(r,e==null?void 0:e.in);return Math.trunc(t.getMonth()/3)+1}});var h9=x(CNe=>{"use strict";CNe.differenceInCalendarQuarters=rvt;var tvt=Nr(),xNe=f9();function rvt(r,e,t){let[n,a]=(0,tvt.normalizeDates)(t==null?void 0:t.in,r,e),i=n.getFullYear()-a.getFullYear(),s=(0,xNe.getQuarter)(n)-(0,xNe.getQuarter)(a);return i*4+s}});var tL=x(PNe=>{"use strict";PNe.differenceInCalendarWeeks=ivt;var ENe=lp(),nvt=Nr(),avt=bt(),DNe=ic();function ivt(r,e,t){let[n,a]=(0,nvt.normalizeDates)(t==null?void 0:t.in,r,e),i=(0,DNe.startOfWeek)(n,t),s=(0,DNe.startOfWeek)(a,t),o=+i-(0,ENe.getTimezoneOffsetInMilliseconds)(i),l=+s-(0,ENe.getTimezoneOffsetInMilliseconds)(s);return Math.round((o-l)/avt.millisecondsInWeek)}});var rL=x(MNe=>{"use strict";MNe.differenceInCalendarYears=ovt;var svt=Nr();function ovt(r,e,t){let[n,a]=(0,svt.normalizeDates)(t==null?void 0:t.in,r,e);return n.getFullYear()-a.getFullYear()}});var nL=x(_Ne=>{"use strict";_Ne.differenceInDays=dvt;var lvt=Nr(),cvt=cp();function dvt(r,e,t){let[n,a]=(0,lvt.normalizeDates)(t==null?void 0:t.in,r,e),i=ANe(n,a),s=Math.abs((0,cvt.differenceInCalendarDays)(n,a));n.setDate(n.getDate()-i*s);let o=+(ANe(n,a)===-i),l=i*(s-o);return l===0?0:l}function ANe(r,e){let t=r.getFullYear()-e.getFullYear()||r.getMonth()-e.getMonth()||r.getDate()-e.getDate()||r.getHours()-e.getHours()||r.getMinutes()-e.getMinutes()||r.getSeconds()-e.getSeconds()||r.getMilliseconds()-e.getMilliseconds();return t<0?-1:t>0?1:t}});var up=x(INe=>{"use strict";INe.getRoundingMethod=uvt;function uvt(r){return e=>{let n=(r?Math[r]:Math.trunc)(e);return n===0?0:n}}});var aL=x(NNe=>{"use strict";NNe.differenceInHours=hvt;var pvt=up(),mvt=Nr(),fvt=bt();function hvt(r,e,t){let[n,a]=(0,mvt.normalizeDates)(t==null?void 0:t.in,r,e),i=(+n-+a)/fvt.millisecondsInHour;return(0,pvt.getRoundingMethod)(t==null?void 0:t.roundingMethod)(i)}});var g9=x(RNe=>{"use strict";RNe.subISOWeekYears=yvt;var gvt=s9();function yvt(r,e,t){return(0,gvt.addISOWeekYears)(r,-e,t)}});var LNe=x(ONe=>{"use strict";ONe.differenceInISOWeekYears=Tvt;var vvt=Nr(),FNe=ny(),kvt=m9(),bvt=g9();function Tvt(r,e,t){let[n,a]=(0,vvt.normalizeDates)(t==null?void 0:t.in,r,e),i=(0,FNe.compareAsc)(n,a),s=Math.abs((0,kvt.differenceInCalendarISOWeekYears)(n,a,t)),o=(0,bvt.subISOWeekYears)(n,i*s,t),l=+((0,FNe.compareAsc)(o,a)===-i),c=i*(s-l);return c===0?0:c}});var iL=x(jNe=>{"use strict";jNe.differenceInMilliseconds=wvt;var zNe=X();function wvt(r,e){return+(0,zNe.toDate)(r)-+(0,zNe.toDate)(e)}});var sL=x($Ne=>{"use strict";$Ne.differenceInMinutes=Evt;var Svt=up(),xvt=bt(),Cvt=iL();function Evt(r,e,t){let n=(0,Cvt.differenceInMilliseconds)(r,e)/xvt.millisecondsInMinute;return(0,Svt.getRoundingMethod)(t==null?void 0:t.roundingMethod)(n)}});var oL=x(BNe=>{"use strict";BNe.endOfDay=Pvt;var Dvt=X();function Pvt(r,e){let t=(0,Dvt.toDate)(r,e==null?void 0:e.in);return t.setHours(23,59,59,999),t}});var lL=x(UNe=>{"use strict";UNe.endOfMonth=Avt;var Mvt=X();function Avt(r,e){let t=(0,Mvt.toDate)(r,e==null?void 0:e.in),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}});var y9=x(HNe=>{"use strict";HNe.isLastDayOfMonth=Rvt;var _vt=oL(),Ivt=lL(),Nvt=X();function Rvt(r,e){let t=(0,Nvt.toDate)(r,e==null?void 0:e.in);return+(0,_vt.endOfDay)(t,e)==+(0,Ivt.endOfMonth)(t,e)}});var yP=x(VNe=>{"use strict";VNe.differenceInMonths=zvt;var Fvt=Nr(),v9=ny(),Ovt=eL(),Lvt=y9();function zvt(r,e,t){let[n,a,i]=(0,Fvt.normalizeDates)(t==null?void 0:t.in,r,r,e),s=(0,v9.compareAsc)(a,i),o=Math.abs((0,Ovt.differenceInCalendarMonths)(a,i));if(o<1)return 0;a.getMonth()===1&&a.getDate()>27&&a.setDate(30),a.setMonth(a.getMonth()-s*o);let l=(0,v9.compareAsc)(a,i)===-s;(0,Lvt.isLastDayOfMonth)(n)&&o===1&&(0,v9.compareAsc)(n,i)===1&&(l=!1);let c=s*(o-+l);return c===0?0:c}});var WNe=x(qNe=>{"use strict";qNe.differenceInQuarters=Bvt;var jvt=up(),$vt=yP();function Bvt(r,e,t){let n=(0,$vt.differenceInMonths)(r,e,t)/3;return(0,jvt.getRoundingMethod)(t==null?void 0:t.roundingMethod)(n)}});var vP=x(YNe=>{"use strict";YNe.differenceInSeconds=Vvt;var Uvt=up(),Hvt=iL();function Vvt(r,e,t){let n=(0,Hvt.differenceInMilliseconds)(r,e)/1e3;return(0,Uvt.getRoundingMethod)(t==null?void 0:t.roundingMethod)(n)}});var KNe=x(GNe=>{"use strict";GNe.differenceInWeeks=Yvt;var qvt=up(),Wvt=nL();function Yvt(r,e,t){let n=(0,Wvt.differenceInDays)(r,e,t)/7;return(0,qvt.getRoundingMethod)(t==null?void 0:t.roundingMethod)(n)}});var k9=x(QNe=>{"use strict";QNe.differenceInYears=Zvt;var Gvt=Nr(),ZNe=ny(),Kvt=rL();function Zvt(r,e,t){let[n,a]=(0,Gvt.normalizeDates)(t==null?void 0:t.in,r,e),i=(0,ZNe.compareAsc)(n,a),s=Math.abs((0,Kvt.differenceInCalendarYears)(n,a));n.setFullYear(1584),a.setFullYear(1584);let o=(0,ZNe.compareAsc)(n,a)===-i,l=i*(s-+o);return l===0?0:l}});var Ed=x(JNe=>{"use strict";JNe.normalizeInterval=Jvt;var Qvt=Nr();function Jvt(r,e){let[t,n]=(0,Qvt.normalizeDates)(r,e.start,e.end);return{start:t,end:n}}});var b9=x(XNe=>{"use strict";XNe.eachDayOfInterval=tkt;var Xvt=Ed(),ekt=qe();function tkt(r,e){var c;let{start:t,end:n}=(0,Xvt.normalizeInterval)(e==null?void 0:e.in,r),a=+t>+n,i=a?+t:+n,s=a?n:t;s.setHours(0,0,0,0);let o=(c=e==null?void 0:e.step)!=null?c:1;if(!o)return[];o<0&&(o=-o,a=!a);let l=[];for(;+s<=i;)l.push((0,ekt.constructFrom)(t,s)),s.setDate(s.getDate()+o),s.setHours(0,0,0,0);return a?l.reverse():l}});var tRe=x(eRe=>{"use strict";eRe.eachHourOfInterval=akt;var rkt=Ed(),nkt=qe();function akt(r,e){var c;let{start:t,end:n}=(0,rkt.normalizeInterval)(e==null?void 0:e.in,r),a=+t>+n,i=a?+t:+n,s=a?n:t;s.setMinutes(0,0,0);let o=(c=e==null?void 0:e.step)!=null?c:1;if(!o)return[];o<0&&(o=-o,a=!a);let l=[];for(;+s<=i;)l.push((0,nkt.constructFrom)(t,s)),s.setHours(s.getHours()+o);return a?l.reverse():l}});var nRe=x(rRe=>{"use strict";rRe.eachMinuteOfInterval=lkt;var ikt=Ed(),skt=QO(),okt=qe();function lkt(r,e){var c;let{start:t,end:n}=(0,ikt.normalizeInterval)(e==null?void 0:e.in,r);t.setSeconds(0,0);let a=+t>+n,i=a?+t:+n,s=a?n:t,o=(c=e==null?void 0:e.step)!=null?c:1;if(!o)return[];o<0&&(o=-o,a=!a);let l=[];for(;+s<=i;)l.push((0,okt.constructFrom)(t,s)),s=(0,skt.addMinutes)(s,o);return a?l.reverse():l}});var iRe=x(aRe=>{"use strict";aRe.eachMonthOfInterval=ukt;var ckt=Ed(),dkt=qe();function ukt(r,e){var c;let{start:t,end:n}=(0,ckt.normalizeInterval)(e==null?void 0:e.in,r),a=+t>+n,i=a?+t:+n,s=a?n:t;s.setHours(0,0,0,0),s.setDate(1);let o=(c=e==null?void 0:e.step)!=null?c:1;if(!o)return[];o<0&&(o=-o,a=!a);let l=[];for(;+s<=i;)l.push((0,dkt.constructFrom)(t,s)),s.setMonth(s.getMonth()+o);return a?l.reverse():l}});var cL=x(sRe=>{"use strict";sRe.startOfQuarter=mkt;var pkt=X();function mkt(r,e){let t=(0,pkt.toDate)(r,e==null?void 0:e.in),n=t.getMonth(),a=n-n%3;return t.setMonth(a,1),t.setHours(0,0,0,0),t}});var lRe=x(oRe=>{"use strict";oRe.eachQuarterOfInterval=ykt;var fkt=Ed(),hkt=JO(),gkt=qe(),dL=cL();function ykt(r,e){var c;let{start:t,end:n}=(0,fkt.normalizeInterval)(e==null?void 0:e.in,r),a=+t>+n,i=a?+(0,dL.startOfQuarter)(t):+(0,dL.startOfQuarter)(n),s=a?(0,dL.startOfQuarter)(n):(0,dL.startOfQuarter)(t),o=(c=e==null?void 0:e.step)!=null?c:1;if(!o)return[];o<0&&(o=-o,a=!a);let l=[];for(;+s<=i;)l.push((0,gkt.constructFrom)(t,s)),s=(0,hkt.addQuarters)(s,o);return a?l.reverse():l}});var dRe=x(cRe=>{"use strict";cRe.eachWeekOfInterval=Tkt;var vkt=Ed(),kkt=gP(),bkt=qe(),uL=ic();function Tkt(r,e){var u;let{start:t,end:n}=(0,vkt.normalizeInterval)(e==null?void 0:e.in,r),a=+t>+n,i=a?(0,uL.startOfWeek)(n,e):(0,uL.startOfWeek)(t,e),s=a?(0,uL.startOfWeek)(t,e):(0,uL.startOfWeek)(n,e);i.setHours(15),s.setHours(15);let o=+s.getTime(),l=i,c=(u=e==null?void 0:e.step)!=null?u:1;if(!c)return[];c<0&&(c=-c,a=!a);let d=[];for(;+l<=o;)l.setHours(0),d.push((0,bkt.constructFrom)(t,l)),l=(0,kkt.addWeeks)(l,c),l.setHours(15);return a?d.reverse():d}});var pL=x(uRe=>{"use strict";uRe.eachWeekendOfInterval=Ekt;var wkt=Ed(),Skt=qe(),xkt=b9(),Ckt=mP();function Ekt(r,e){let{start:t,end:n}=(0,wkt.normalizeInterval)(e==null?void 0:e.in,r),a=(0,xkt.eachDayOfInterval)({start:t,end:n},e),i=[],s=0;for(;s<a.length;){let o=a[s++];(0,Ckt.isWeekend)(o)&&i.push((0,Skt.constructFrom)(t,o))}return i}});var kP=x(pRe=>{"use strict";pRe.startOfMonth=Pkt;var Dkt=X();function Pkt(r,e){let t=(0,Dkt.toDate)(r,e==null?void 0:e.in);return t.setDate(1),t.setHours(0,0,0,0),t}});var fRe=x(mRe=>{"use strict";mRe.eachWeekendOfMonth=Ikt;var Mkt=pL(),Akt=lL(),_kt=kP();function Ikt(r,e){let t=(0,_kt.startOfMonth)(r,e),n=(0,Akt.endOfMonth)(r,e);return(0,Mkt.eachWeekendOfInterval)({start:t,end:n},e)}});var T9=x(hRe=>{"use strict";hRe.endOfYear=Rkt;var Nkt=X();function Rkt(r,e){let t=(0,Nkt.toDate)(r,e==null?void 0:e.in),n=t.getFullYear();return t.setFullYear(n+1,0,0),t.setHours(23,59,59,999),t}});var mL=x(gRe=>{"use strict";gRe.startOfYear=Okt;var Fkt=X();function Okt(r,e){let t=(0,Fkt.toDate)(r,e==null?void 0:e.in);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}});var vRe=x(yRe=>{"use strict";yRe.eachWeekendOfYear=$kt;var Lkt=pL(),zkt=T9(),jkt=mL();function $kt(r,e){let t=(0,jkt.startOfYear)(r,e),n=(0,zkt.endOfYear)(r,e);return(0,Lkt.eachWeekendOfInterval)({start:t,end:n},e)}});var bRe=x(kRe=>{"use strict";kRe.eachYearOfInterval=Hkt;var Bkt=Ed(),Ukt=qe();function Hkt(r,e){var c;let{start:t,end:n}=(0,Bkt.normalizeInterval)(e==null?void 0:e.in,r),a=+t>+n,i=a?+t:+n,s=a?n:t;s.setHours(0,0,0,0),s.setMonth(0,1);let o=(c=e==null?void 0:e.step)!=null?c:1;if(!o)return[];o<0&&(o=-o,a=!a);let l=[];for(;+s<=i;)l.push((0,Ukt.constructFrom)(t,s)),s.setFullYear(s.getFullYear()+o);return a?l.reverse():l}});var wRe=x(TRe=>{"use strict";TRe.endOfDecade=qkt;var Vkt=X();function qkt(r,e){let t=(0,Vkt.toDate)(r,e==null?void 0:e.in),n=t.getFullYear(),a=9+Math.floor(n/10)*10;return t.setFullYear(a,11,31),t.setHours(23,59,59,999),t}});var xRe=x(SRe=>{"use strict";SRe.endOfHour=Ykt;var Wkt=X();function Ykt(r,e){let t=(0,Wkt.toDate)(r,e==null?void 0:e.in);return t.setMinutes(59,59,999),t}});var w9=x(CRe=>{"use strict";CRe.endOfWeek=Zkt;var Gkt=ki(),Kkt=X();function Zkt(r,e){var o,l,c,d,u,p,m,f;let t=(0,Gkt.getDefaultOptions)(),n=(f=(m=(d=(c=e==null?void 0:e.weekStartsOn)!=null?c:(l=(o=e==null?void 0:e.locale)==null?void 0:o.options)==null?void 0:l.weekStartsOn)!=null?d:t.weekStartsOn)!=null?m:(p=(u=t.locale)==null?void 0:u.options)==null?void 0:p.weekStartsOn)!=null?f:0,a=(0,Kkt.toDate)(r,e==null?void 0:e.in),i=a.getDay(),s=(i<n?-7:0)+6-(i-n);return a.setDate(a.getDate()+s),a.setHours(23,59,59,999),a}});var DRe=x(ERe=>{"use strict";ERe.endOfISOWeek=Jkt;var Qkt=w9();function Jkt(r,e){return(0,Qkt.endOfWeek)(r,{...e,weekStartsOn:1})}});var MRe=x(PRe=>{"use strict";PRe.endOfISOWeekYear=rbt;var Xkt=qe(),ebt=hf(),tbt=Cd();function rbt(r,e){let t=(0,ebt.getISOWeekYear)(r,e),n=(0,Xkt.constructFrom)((e==null?void 0:e.in)||r,0);n.setFullYear(t+1,0,4),n.setHours(0,0,0,0);let a=(0,tbt.startOfISOWeek)(n,e);return a.setMilliseconds(a.getMilliseconds()-1),a}});var _Re=x(ARe=>{"use strict";ARe.endOfMinute=abt;var nbt=X();function abt(r,e){let t=(0,nbt.toDate)(r,e==null?void 0:e.in);return t.setSeconds(59,999),t}});var NRe=x(IRe=>{"use strict";IRe.endOfQuarter=sbt;var ibt=X();function sbt(r,e){let t=(0,ibt.toDate)(r,e==null?void 0:e.in),n=t.getMonth(),a=n-n%3+3;return t.setMonth(a,0),t.setHours(23,59,59,999),t}});var FRe=x(RRe=>{"use strict";RRe.endOfSecond=lbt;var obt=X();function lbt(r,e){let t=(0,obt.toDate)(r,e==null?void 0:e.in);return t.setMilliseconds(999),t}});var LRe=x(ORe=>{"use strict";ORe.endOfToday=dbt;var cbt=oL();function dbt(r){return(0,cbt.endOfDay)(Date.now(),r)}});var $Re=x(jRe=>{"use strict";jRe.endOfTomorrow=ubt;var zRe=ba();function ubt(r){let e=(0,zRe.constructNow)(r==null?void 0:r.in),t=e.getFullYear(),n=e.getMonth(),a=e.getDate(),i=(0,zRe.constructNow)(r==null?void 0:r.in);return i.setFullYear(t,n,a+1),i.setHours(23,59,59,999),r!=null&&r.in?r.in(i):i}});var URe=x(BRe=>{"use strict";BRe.endOfYesterday=fbt;var pbt=qe(),mbt=ba();function fbt(r){let e=(0,mbt.constructNow)(r==null?void 0:r.in),t=(0,pbt.constructFrom)(r==null?void 0:r.in,0);return t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()-1),t.setHours(23,59,59,999),t}});var HRe=x(S9=>{"use strict";S9.formatDistance=void 0;var hbt={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},gbt=(r,e,t)=>{let n,a=hbt[r];return typeof a=="string"?n=a:e===1?n=a.one:n=a.other.replace("{{count}}",e.toString()),t!=null&&t.addSuffix?t.comparison&&t.comparison>0?"in "+n:n+" ago":n};S9.formatDistance=gbt});var qRe=x(VRe=>{"use strict";VRe.buildFormatLongFn=ybt;function ybt(r){return(e={})=>{let t=e.width?String(e.width):r.defaultWidth;return r.formats[t]||r.formats[r.defaultWidth]}}});var WRe=x(C9=>{"use strict";C9.formatLong=void 0;var x9=qRe(),vbt={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},kbt={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},bbt={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},aHr=C9.formatLong={date:(0,x9.buildFormatLongFn)({formats:vbt,defaultWidth:"full"}),time:(0,x9.buildFormatLongFn)({formats:kbt,defaultWidth:"full"}),dateTime:(0,x9.buildFormatLongFn)({formats:bbt,defaultWidth:"full"})}});var YRe=x(E9=>{"use strict";E9.formatRelative=void 0;var Tbt={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},wbt=(r,e,t,n)=>Tbt[r];E9.formatRelative=wbt});var KRe=x(GRe=>{"use strict";GRe.buildLocalizeFn=Sbt;function Sbt(r){return(e,t)=>{let n=t!=null&&t.context?String(t.context):"standalone",a;if(n==="formatting"&&r.formattingValues){let s=r.defaultFormattingWidth||r.defaultWidth,o=t!=null&&t.width?String(t.width):s;a=r.formattingValues[o]||r.formattingValues[s]}else{let s=r.defaultWidth,o=t!=null&&t.width?String(t.width):r.defaultWidth;a=r.values[o]||r.values[s]}let i=r.argumentCallback?r.argumentCallback(e):e;return a[i]}}});var ZRe=x(D9=>{"use strict";D9.localize=void 0;var bP=KRe(),xbt={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Cbt={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Ebt={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Dbt={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Pbt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Mbt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Abt=(r,e)=>{let t=Number(r),n=t%100;if(n>20||n<10)switch(n%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},lHr=D9.localize={ordinalNumber:Abt,era:(0,bP.buildLocalizeFn)({values:xbt,defaultWidth:"wide"}),quarter:(0,bP.buildLocalizeFn)({values:Cbt,defaultWidth:"wide",argumentCallback:r=>r-1}),month:(0,bP.buildLocalizeFn)({values:Ebt,defaultWidth:"wide"}),day:(0,bP.buildLocalizeFn)({values:Dbt,defaultWidth:"wide"}),dayPeriod:(0,bP.buildLocalizeFn)({values:Pbt,defaultWidth:"wide",formattingValues:Mbt,defaultFormattingWidth:"wide"})}});var JRe=x(QRe=>{"use strict";QRe.buildMatchFn=_bt;function _bt(r){return(e,t={})=>{let n=t.width,a=n&&r.matchPatterns[n]||r.matchPatterns[r.defaultMatchWidth],i=e.match(a);if(!i)return null;let s=i[0],o=n&&r.parsePatterns[n]||r.parsePatterns[r.defaultParseWidth],l=Array.isArray(o)?Nbt(o,u=>u.test(s)):Ibt(o,u=>u.test(s)),c;c=r.valueCallback?r.valueCallback(l):l,c=t.valueCallback?t.valueCallback(c):c;let d=e.slice(s.length);return{value:c,rest:d}}}function Ibt(r,e){for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)&&e(r[t]))return t}function Nbt(r,e){for(let t=0;t<r.length;t++)if(e(r[t]))return t}});var eFe=x(XRe=>{"use strict";XRe.buildMatchPatternFn=Rbt;function Rbt(r){return(e,t={})=>{let n=e.match(r.matchPattern);if(!n)return null;let a=n[0],i=e.match(r.parsePattern);if(!i)return null;let s=r.valueCallback?r.valueCallback(i[0]):i[0];s=t.valueCallback?t.valueCallback(s):s;let o=e.slice(a.length);return{value:s,rest:o}}}});var tFe=x(P9=>{"use strict";P9.match=void 0;var TP=JRe(),Fbt=eFe(),Obt=/^(\d+)(th|st|nd|rd)?/i,Lbt=/\d+/i,zbt={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},jbt={any:[/^b/i,/^(a|c)/i]},$bt={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Bbt={any:[/1/i,/2/i,/3/i,/4/i]},Ubt={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},Hbt={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Vbt={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},qbt={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Wbt={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Ybt={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},pHr=P9.match={ordinalNumber:(0,Fbt.buildMatchPatternFn)({matchPattern:Obt,parsePattern:Lbt,valueCallback:r=>parseInt(r,10)}),era:(0,TP.buildMatchFn)({matchPatterns:zbt,defaultMatchWidth:"wide",parsePatterns:jbt,defaultParseWidth:"any"}),quarter:(0,TP.buildMatchFn)({matchPatterns:$bt,defaultMatchWidth:"wide",parsePatterns:Bbt,defaultParseWidth:"any",valueCallback:r=>r+1}),month:(0,TP.buildMatchFn)({matchPatterns:Ubt,defaultMatchWidth:"wide",parsePatterns:Hbt,defaultParseWidth:"any"}),day:(0,TP.buildMatchFn)({matchPatterns:Vbt,defaultMatchWidth:"wide",parsePatterns:qbt,defaultParseWidth:"any"}),dayPeriod:(0,TP.buildMatchFn)({matchPatterns:Wbt,defaultMatchWidth:"any",parsePatterns:Ybt,defaultParseWidth:"any"})}});var rFe=x(M9=>{"use strict";M9.enUS=void 0;var Gbt=HRe(),Kbt=WRe(),Zbt=YRe(),Qbt=ZRe(),Jbt=tFe(),fHr=M9.enUS={code:"en-US",formatDistance:Gbt.formatDistance,formatLong:Kbt.formatLong,formatRelative:Zbt.formatRelative,localize:Qbt.localize,match:Jbt.match,options:{weekStartsOn:0,firstWeekContainsDate:1}}});var ay=x(nFe=>{"use strict";Object.defineProperty(nFe,"defaultLocale",{enumerable:!0,get:function(){return Xbt.enUS}});var Xbt=rFe()});var A9=x(aFe=>{"use strict";aFe.getDayOfYear=nTt;var eTt=cp(),tTt=mL(),rTt=X();function nTt(r,e){let t=(0,rTt.toDate)(r,e==null?void 0:e.in);return(0,eTt.differenceInCalendarDays)(t,(0,tTt.startOfYear)(t))+1}});var fL=x(iFe=>{"use strict";iFe.getISOWeek=lTt;var aTt=bt(),iTt=Cd(),sTt=kT(),oTt=X();function lTt(r,e){let t=(0,oTt.toDate)(r,e==null?void 0:e.in),n=+(0,iTt.startOfISOWeek)(t)-+(0,sTt.startOfISOWeekYear)(t);return Math.round(n/aTt.millisecondsInWeek)+1}});var wP=x(lFe=>{"use strict";lFe.getWeekYear=uTt;var cTt=ki(),sFe=qe(),oFe=ic(),dTt=X();function uTt(r,e){var d,u,p,m,f,h,g,v;let t=(0,dTt.toDate)(r,e==null?void 0:e.in),n=t.getFullYear(),a=(0,cTt.getDefaultOptions)(),i=(v=(g=(m=(p=e==null?void 0:e.firstWeekContainsDate)!=null?p:(u=(d=e==null?void 0:e.locale)==null?void 0:d.options)==null?void 0:u.firstWeekContainsDate)!=null?m:a.firstWeekContainsDate)!=null?g:(h=(f=a.locale)==null?void 0:f.options)==null?void 0:h.firstWeekContainsDate)!=null?v:1,s=(0,sFe.constructFrom)((e==null?void 0:e.in)||r,0);s.setFullYear(n+1,0,i),s.setHours(0,0,0,0);let o=(0,oFe.startOfWeek)(s,e),l=(0,sFe.constructFrom)((e==null?void 0:e.in)||r,0);l.setFullYear(n,0,i),l.setHours(0,0,0,0);let c=(0,oFe.startOfWeek)(l,e);return+t>=+o?n+1:+t>=+c?n:n-1}});var hL=x(cFe=>{"use strict";cFe.startOfWeekYear=gTt;var pTt=ki(),mTt=qe(),fTt=wP(),hTt=ic();function gTt(r,e){var o,l,c,d,u,p,m,f;let t=(0,pTt.getDefaultOptions)(),n=(f=(m=(d=(c=e==null?void 0:e.firstWeekContainsDate)!=null?c:(l=(o=e==null?void 0:e.locale)==null?void 0:o.options)==null?void 0:l.firstWeekContainsDate)!=null?d:t.firstWeekContainsDate)!=null?m:(p=(u=t.locale)==null?void 0:u.options)==null?void 0:p.firstWeekContainsDate)!=null?f:1,a=(0,fTt.getWeekYear)(r,e),i=(0,mTt.constructFrom)((e==null?void 0:e.in)||r,0);return i.setFullYear(a,0,n),i.setHours(0,0,0,0),(0,hTt.startOfWeek)(i,e)}});var gL=x(dFe=>{"use strict";dFe.getWeek=TTt;var yTt=bt(),vTt=ic(),kTt=hL(),bTt=X();function TTt(r,e){let t=(0,bTt.toDate)(r,e==null?void 0:e.in),n=+(0,vTt.startOfWeek)(t,e)-+(0,kTt.startOfWeekYear)(t,e);return Math.round(n/yTt.millisecondsInWeek)+1}});var iy=x(uFe=>{"use strict";uFe.addLeadingZeros=wTt;function wTt(r,e){let t=r<0?"-":"",n=Math.abs(r).toString().padStart(e,"0");return t+n}});var I9=x(_9=>{"use strict";_9.lightFormatters=void 0;var gf=iy(),SHr=_9.lightFormatters={y(r,e){let t=r.getFullYear(),n=t>0?t:1-t;return(0,gf.addLeadingZeros)(e==="yy"?n%100:n,e.length)},M(r,e){let t=r.getMonth();return e==="M"?String(t+1):(0,gf.addLeadingZeros)(t+1,2)},d(r,e){return(0,gf.addLeadingZeros)(r.getDate(),e.length)},a(r,e){let t=r.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return t.toUpperCase();case"aaa":return t;case"aaaaa":return t[0];case"aaaa":default:return t==="am"?"a.m.":"p.m."}},h(r,e){return(0,gf.addLeadingZeros)(r.getHours()%12||12,e.length)},H(r,e){return(0,gf.addLeadingZeros)(r.getHours(),e.length)},m(r,e){return(0,gf.addLeadingZeros)(r.getMinutes(),e.length)},s(r,e){return(0,gf.addLeadingZeros)(r.getSeconds(),e.length)},S(r,e){let t=e.length,n=r.getMilliseconds(),a=Math.trunc(n*Math.pow(10,t-3));return(0,gf.addLeadingZeros)(a,e.length)}}});var fFe=x(N9=>{"use strict";N9.formatters=void 0;var STt=A9(),xTt=fL(),CTt=hf(),ETt=gL(),DTt=wP(),Yn=iy(),yf=I9(),TT={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},CHr=N9.formatters={G:function(r,e,t){let n=r.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return t.era(n,{width:"abbreviated"});case"GGGGG":return t.era(n,{width:"narrow"});case"GGGG":default:return t.era(n,{width:"wide"})}},y:function(r,e,t){if(e==="yo"){let n=r.getFullYear(),a=n>0?n:1-n;return t.ordinalNumber(a,{unit:"year"})}return yf.lightFormatters.y(r,e)},Y:function(r,e,t,n){let a=(0,DTt.getWeekYear)(r,n),i=a>0?a:1-a;if(e==="YY"){let s=i%100;return(0,Yn.addLeadingZeros)(s,2)}return e==="Yo"?t.ordinalNumber(i,{unit:"year"}):(0,Yn.addLeadingZeros)(i,e.length)},R:function(r,e){let t=(0,CTt.getISOWeekYear)(r);return(0,Yn.addLeadingZeros)(t,e.length)},u:function(r,e){let t=r.getFullYear();return(0,Yn.addLeadingZeros)(t,e.length)},Q:function(r,e,t){let n=Math.ceil((r.getMonth()+1)/3);switch(e){case"Q":return String(n);case"QQ":return(0,Yn.addLeadingZeros)(n,2);case"Qo":return t.ordinalNumber(n,{unit:"quarter"});case"QQQ":return t.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return t.quarter(n,{width:"narrow",context:"formatting"});case"QQQQ":default:return t.quarter(n,{width:"wide",context:"formatting"})}},q:function(r,e,t){let n=Math.ceil((r.getMonth()+1)/3);switch(e){case"q":return String(n);case"qq":return(0,Yn.addLeadingZeros)(n,2);case"qo":return t.ordinalNumber(n,{unit:"quarter"});case"qqq":return t.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return t.quarter(n,{width:"narrow",context:"standalone"});case"qqqq":default:return t.quarter(n,{width:"wide",context:"standalone"})}},M:function(r,e,t){let n=r.getMonth();switch(e){case"M":case"MM":return yf.lightFormatters.M(r,e);case"Mo":return t.ordinalNumber(n+1,{unit:"month"});case"MMM":return t.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return t.month(n,{width:"narrow",context:"formatting"});case"MMMM":default:return t.month(n,{width:"wide",context:"formatting"})}},L:function(r,e,t){let n=r.getMonth();switch(e){case"L":return String(n+1);case"LL":return(0,Yn.addLeadingZeros)(n+1,2);case"Lo":return t.ordinalNumber(n+1,{unit:"month"});case"LLL":return t.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return t.month(n,{width:"narrow",context:"standalone"});case"LLLL":default:return t.month(n,{width:"wide",context:"standalone"})}},w:function(r,e,t,n){let a=(0,ETt.getWeek)(r,n);return e==="wo"?t.ordinalNumber(a,{unit:"week"}):(0,Yn.addLeadingZeros)(a,e.length)},I:function(r,e,t){let n=(0,xTt.getISOWeek)(r);return e==="Io"?t.ordinalNumber(n,{unit:"week"}):(0,Yn.addLeadingZeros)(n,e.length)},d:function(r,e,t){return e==="do"?t.ordinalNumber(r.getDate(),{unit:"date"}):yf.lightFormatters.d(r,e)},D:function(r,e,t){let n=(0,STt.getDayOfYear)(r);return e==="Do"?t.ordinalNumber(n,{unit:"dayOfYear"}):(0,Yn.addLeadingZeros)(n,e.length)},E:function(r,e,t){let n=r.getDay();switch(e){case"E":case"EE":case"EEE":return t.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return t.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(n,{width:"short",context:"formatting"});case"EEEE":default:return t.day(n,{width:"wide",context:"formatting"})}},e:function(r,e,t,n){let a=r.getDay(),i=(a-n.weekStartsOn+8)%7||7;switch(e){case"e":return String(i);case"ee":return(0,Yn.addLeadingZeros)(i,2);case"eo":return t.ordinalNumber(i,{unit:"day"});case"eee":return t.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return t.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(a,{width:"short",context:"formatting"});case"eeee":default:return t.day(a,{width:"wide",context:"formatting"})}},c:function(r,e,t,n){let a=r.getDay(),i=(a-n.weekStartsOn+8)%7||7;switch(e){case"c":return String(i);case"cc":return(0,Yn.addLeadingZeros)(i,e.length);case"co":return t.ordinalNumber(i,{unit:"day"});case"ccc":return t.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return t.day(a,{width:"narrow",context:"standalone"});case"cccccc":return t.day(a,{width:"short",context:"standalone"});case"cccc":default:return t.day(a,{width:"wide",context:"standalone"})}},i:function(r,e,t){let n=r.getDay(),a=n===0?7:n;switch(e){case"i":return String(a);case"ii":return(0,Yn.addLeadingZeros)(a,e.length);case"io":return t.ordinalNumber(a,{unit:"day"});case"iii":return t.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return t.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return t.day(n,{width:"short",context:"formatting"});case"iiii":default:return t.day(n,{width:"wide",context:"formatting"})}},a:function(r,e,t){let a=r.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return t.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return t.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(r,e,t){let n=r.getHours(),a;switch(n===12?a=TT.noon:n===0?a=TT.midnight:a=n/12>=1?"pm":"am",e){case"b":case"bb":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return t.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return t.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(r,e,t){let n=r.getHours(),a;switch(n>=17?a=TT.evening:n>=12?a=TT.afternoon:n>=4?a=TT.morning:a=TT.night,e){case"B":case"BB":case"BBB":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return t.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return t.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(r,e,t){if(e==="ho"){let n=r.getHours()%12;return n===0&&(n=12),t.ordinalNumber(n,{unit:"hour"})}return yf.lightFormatters.h(r,e)},H:function(r,e,t){return e==="Ho"?t.ordinalNumber(r.getHours(),{unit:"hour"}):yf.lightFormatters.H(r,e)},K:function(r,e,t){let n=r.getHours()%12;return e==="Ko"?t.ordinalNumber(n,{unit:"hour"}):(0,Yn.addLeadingZeros)(n,e.length)},k:function(r,e,t){let n=r.getHours();return n===0&&(n=24),e==="ko"?t.ordinalNumber(n,{unit:"hour"}):(0,Yn.addLeadingZeros)(n,e.length)},m:function(r,e,t){return e==="mo"?t.ordinalNumber(r.getMinutes(),{unit:"minute"}):yf.lightFormatters.m(r,e)},s:function(r,e,t){return e==="so"?t.ordinalNumber(r.getSeconds(),{unit:"second"}):yf.lightFormatters.s(r,e)},S:function(r,e){return yf.lightFormatters.S(r,e)},X:function(r,e,t){let n=r.getTimezoneOffset();if(n===0)return"Z";switch(e){case"X":return mFe(n);case"XXXX":case"XX":return sy(n);case"XXXXX":case"XXX":default:return sy(n,":")}},x:function(r,e,t){let n=r.getTimezoneOffset();switch(e){case"x":return mFe(n);case"xxxx":case"xx":return sy(n);case"xxxxx":case"xxx":default:return sy(n,":")}},O:function(r,e,t){let n=r.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+pFe(n,":");case"OOOO":default:return"GMT"+sy(n,":")}},z:function(r,e,t){let n=r.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+pFe(n,":");case"zzzz":default:return"GMT"+sy(n,":")}},t:function(r,e,t){let n=Math.trunc(+r/1e3);return(0,Yn.addLeadingZeros)(n,e.length)},T:function(r,e,t){return(0,Yn.addLeadingZeros)(+r,e.length)}};function pFe(r,e=""){let t=r>0?"-":"+",n=Math.abs(r),a=Math.trunc(n/60),i=n%60;return i===0?t+String(a):t+String(a)+e+(0,Yn.addLeadingZeros)(i,2)}function mFe(r,e){return r%60===0?(r>0?"-":"+")+(0,Yn.addLeadingZeros)(Math.abs(r)/60,2):sy(r,e)}function sy(r,e=""){let t=r>0?"-":"+",n=Math.abs(r),a=(0,Yn.addLeadingZeros)(Math.trunc(n/60),2),i=(0,Yn.addLeadingZeros)(n%60,2);return t+a+e+i}});var F9=x(R9=>{"use strict";R9.longFormatters=void 0;var hFe=(r,e)=>{switch(r){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}},gFe=(r,e)=>{switch(r){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}},PTt=(r,e)=>{let t=r.match(/(P+)(p+)?/)||[],n=t[1],a=t[2];if(!a)return hFe(r,e);let i;switch(n){case"P":i=e.dateTime({width:"short"});break;case"PP":i=e.dateTime({width:"medium"});break;case"PPP":i=e.dateTime({width:"long"});break;case"PPPP":default:i=e.dateTime({width:"full"});break}return i.replace("{{date}}",hFe(n,e)).replace("{{time}}",gFe(a,e))},DHr=R9.longFormatters={p:gFe,P:PTt}});var O9=x(yL=>{"use strict";yL.isProtectedDayOfYearToken=ITt;yL.isProtectedWeekYearToken=NTt;yL.warnOrThrowProtectedError=RTt;var MTt=/^D+$/,ATt=/^Y+$/,_Tt=["D","DD","YY","YYYY"];function ITt(r){return MTt.test(r)}function NTt(r){return ATt.test(r)}function RTt(r,e,t){let n=FTt(r,e,t);if(console.warn(n),_Tt.includes(r))throw new RangeError(n)}function FTt(r,e,t){let n=r[0]==="Y"?"years":"days of the month";return`Use \`${r.toLowerCase()}\` instead of \`${r}\` (in \`${e}\`) for formatting ${n} to the input \`${t}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}});var j9=x(SP=>{"use strict";SP.format=SP.formatDate=qTt;Object.defineProperty(SP,"formatters",{enumerable:!0,get:function(){return z9.formatters}});Object.defineProperty(SP,"longFormatters",{enumerable:!0,get:function(){return yFe.longFormatters}});var OTt=ay(),LTt=ki(),z9=fFe(),yFe=F9(),L9=O9(),zTt=dp(),jTt=X(),$Tt=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,BTt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,UTt=/^'([^]*?)'?$/,HTt=/''/g,VTt=/[a-zA-Z]/;function qTt(r,e,t){var d,u,p,m,f,h,g,v,b,k,w,S,C,E,D,P,O,z;let n=(0,LTt.getDefaultOptions)(),a=(u=(d=t==null?void 0:t.locale)!=null?d:n.locale)!=null?u:OTt.defaultLocale,i=(k=(b=(h=(f=t==null?void 0:t.firstWeekContainsDate)!=null?f:(m=(p=t==null?void 0:t.locale)==null?void 0:p.options)==null?void 0:m.firstWeekContainsDate)!=null?h:n.firstWeekContainsDate)!=null?b:(v=(g=n.locale)==null?void 0:g.options)==null?void 0:v.firstWeekContainsDate)!=null?k:1,s=(z=(O=(E=(C=t==null?void 0:t.weekStartsOn)!=null?C:(S=(w=t==null?void 0:t.locale)==null?void 0:w.options)==null?void 0:S.weekStartsOn)!=null?E:n.weekStartsOn)!=null?O:(P=(D=n.locale)==null?void 0:D.options)==null?void 0:P.weekStartsOn)!=null?z:0,o=(0,jTt.toDate)(r,t==null?void 0:t.in);if(!(0,zTt.isValid)(o))throw new RangeError("Invalid time value");let l=e.match(BTt).map(R=>{let A=R[0];if(A==="p"||A==="P"){let F=yFe.longFormatters[A];return F(R,a.formatLong)}return R}).join("").match($Tt).map(R=>{if(R==="''")return{isToken:!1,value:"'"};let A=R[0];if(A==="'")return{isToken:!1,value:WTt(R)};if(z9.formatters[A])return{isToken:!0,value:R};if(A.match(VTt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+A+"`");return{isToken:!1,value:R}});a.localize.preprocessor&&(l=a.localize.preprocessor(o,l));let c={firstWeekContainsDate:i,weekStartsOn:s,locale:a};return l.map(R=>{if(!R.isToken)return R.value;let A=R.value;(!(t!=null&&t.useAdditionalWeekYearTokens)&&(0,L9.isProtectedWeekYearToken)(A)||!(t!=null&&t.useAdditionalDayOfYearTokens)&&(0,L9.isProtectedDayOfYearToken)(A))&&(0,L9.warnOrThrowProtectedError)(A,e,String(r));let F=z9.formatters[A[0]];return F(o,A,a.localize,c)}).join("")}function WTt(r){let e=r.match(UTt);return e?e[1].replace(HTt,"'"):r}});var $9=x(kFe=>{"use strict";kFe.formatDistance=XTt;var YTt=ay(),GTt=ki(),vFe=lp(),KTt=Nr(),ZTt=ny(),wT=bt(),QTt=yP(),JTt=vP();function XTt(r,e,t){var f,h;let n=(0,GTt.getDefaultOptions)(),a=(h=(f=t==null?void 0:t.locale)!=null?f:n.locale)!=null?h:YTt.defaultLocale,i=2520,s=(0,ZTt.compareAsc)(r,e);if(isNaN(s))throw new RangeError("Invalid time value");let o=Object.assign({},t,{addSuffix:t==null?void 0:t.addSuffix,comparison:s}),[l,c]=(0,KTt.normalizeDates)(t==null?void 0:t.in,...s>0?[e,r]:[r,e]),d=(0,JTt.differenceInSeconds)(c,l),u=((0,vFe.getTimezoneOffsetInMilliseconds)(c)-(0,vFe.getTimezoneOffsetInMilliseconds)(l))/1e3,p=Math.round((d-u)/60),m;if(p<2)return t!=null&&t.includeSeconds?d<5?a.formatDistance("lessThanXSeconds",5,o):d<10?a.formatDistance("lessThanXSeconds",10,o):d<20?a.formatDistance("lessThanXSeconds",20,o):d<40?a.formatDistance("halfAMinute",0,o):d<60?a.formatDistance("lessThanXMinutes",1,o):a.formatDistance("xMinutes",1,o):p===0?a.formatDistance("lessThanXMinutes",1,o):a.formatDistance("xMinutes",p,o);if(p<45)return a.formatDistance("xMinutes",p,o);if(p<90)return a.formatDistance("aboutXHours",1,o);if(p<wT.minutesInDay){let g=Math.round(p/60);return a.formatDistance("aboutXHours",g,o)}else{if(p<i)return a.formatDistance("xDays",1,o);if(p<wT.minutesInMonth){let g=Math.round(p/wT.minutesInDay);return a.formatDistance("xDays",g,o)}else if(p<wT.minutesInMonth*2)return m=Math.round(p/wT.minutesInMonth),a.formatDistance("aboutXMonths",m,o)}if(m=(0,QTt.differenceInMonths)(c,l),m<12){let g=Math.round(p/wT.minutesInMonth);return a.formatDistance("xMonths",g,o)}else{let g=m%12,v=Math.trunc(m/12);return g<3?a.formatDistance("aboutXYears",v,o):g<9?a.formatDistance("overXYears",v,o):a.formatDistance("almostXYears",v+1,o)}}});var B9=x(TFe=>{"use strict";TFe.formatDistanceStrict=iwt;var ewt=ay(),twt=ki(),rwt=up(),bFe=lp(),nwt=Nr(),awt=ny(),vf=bt();function iwt(r,e,t){var g,v,b;let n=(0,twt.getDefaultOptions)(),a=(v=(g=t==null?void 0:t.locale)!=null?g:n.locale)!=null?v:ewt.defaultLocale,i=(0,awt.compareAsc)(r,e);if(isNaN(i))throw new RangeError("Invalid time value");let s=Object.assign({},t,{addSuffix:t==null?void 0:t.addSuffix,comparison:i}),[o,l]=(0,nwt.normalizeDates)(t==null?void 0:t.in,...i>0?[e,r]:[r,e]),c=(0,rwt.getRoundingMethod)((b=t==null?void 0:t.roundingMethod)!=null?b:"round"),d=l.getTime()-o.getTime(),u=d/vf.millisecondsInMinute,p=(0,bFe.getTimezoneOffsetInMilliseconds)(l)-(0,bFe.getTimezoneOffsetInMilliseconds)(o),m=(d-p)/vf.millisecondsInMinute,f=t==null?void 0:t.unit,h;if(f?h=f:u<1?h="second":u<60?h="minute":u<vf.minutesInDay?h="hour":m<vf.minutesInMonth?h="day":m<vf.minutesInYear?h="month":h="year",h==="second"){let k=c(d/1e3);return a.formatDistance("xSeconds",k,s)}else if(h==="minute"){let k=c(u);return a.formatDistance("xMinutes",k,s)}else if(h==="hour"){let k=c(u/60);return a.formatDistance("xHours",k,s)}else if(h==="day"){let k=c(m/vf.minutesInDay);return a.formatDistance("xDays",k,s)}else if(h==="month"){let k=c(m/vf.minutesInMonth);return k===12&&f!=="month"?a.formatDistance("xYears",1,s):a.formatDistance("xMonths",k,s)}else{let k=c(m/vf.minutesInYear);return a.formatDistance("xYears",k,s)}}});var SFe=x(wFe=>{"use strict";wFe.formatDistanceToNow=lwt;var swt=ba(),owt=$9();function lwt(r,e){return(0,owt.formatDistance)(r,(0,swt.constructNow)(r),e)}});var CFe=x(xFe=>{"use strict";xFe.formatDistanceToNowStrict=uwt;var cwt=ba(),dwt=B9();function uwt(r,e){return(0,dwt.formatDistanceStrict)(r,(0,cwt.constructNow)(r),e)}});var DFe=x(EFe=>{"use strict";EFe.formatDuration=hwt;var pwt=ay(),mwt=ki(),fwt=["years","months","weeks","days","hours","minutes","seconds"];function hwt(r,e){var l,c,d,u,p;let t=(0,mwt.getDefaultOptions)(),n=(c=(l=e==null?void 0:e.locale)!=null?l:t.locale)!=null?c:pwt.defaultLocale,a=(d=e==null?void 0:e.format)!=null?d:fwt,i=(u=e==null?void 0:e.zero)!=null?u:!1,s=(p=e==null?void 0:e.delimiter)!=null?p:" ";return n.formatDistance?a.reduce((m,f)=>{let h=`x${f.replace(/(^.)/,v=>v.toUpperCase())}`,g=r[f];return g!==void 0&&(i||r[f])?m.concat(n.formatDistance(h,g)):m},[]).join(s):""}});var MFe=x(PFe=>{"use strict";PFe.formatISO=ywt;var kf=iy(),gwt=X();function ywt(r,e){var c,d;let t=(0,gwt.toDate)(r,e==null?void 0:e.in);if(isNaN(+t))throw new RangeError("Invalid time value");let n=(c=e==null?void 0:e.format)!=null?c:"extended",a=(d=e==null?void 0:e.representation)!=null?d:"complete",i="",s="",o=n==="extended"?"-":"",l=n==="extended"?":":"";if(a!=="time"){let u=(0,kf.addLeadingZeros)(t.getDate(),2),p=(0,kf.addLeadingZeros)(t.getMonth()+1,2);i=`${(0,kf.addLeadingZeros)(t.getFullYear(),4)}${o}${p}${o}${u}`}if(a!=="date"){let u=t.getTimezoneOffset();if(u!==0){let v=Math.abs(u),b=(0,kf.addLeadingZeros)(Math.trunc(v/60),2),k=(0,kf.addLeadingZeros)(v%60,2);s=`${u<0?"+":"-"}${b}:${k}`}else s="Z";let p=(0,kf.addLeadingZeros)(t.getHours(),2),m=(0,kf.addLeadingZeros)(t.getMinutes(),2),f=(0,kf.addLeadingZeros)(t.getSeconds(),2),h=i===""?"":"T",g=[p,m,f].join(l);i=`${i}${h}${g}${s}`}return i}});var _Fe=x(AFe=>{"use strict";AFe.formatISO9075=bwt;var ST=iy(),vwt=dp(),kwt=X();function bwt(r,e){var l,c;let t=(0,kwt.toDate)(r,e==null?void 0:e.in);if(!(0,vwt.isValid)(t))throw new RangeError("Invalid time value");let n=(l=e==null?void 0:e.format)!=null?l:"extended",a=(c=e==null?void 0:e.representation)!=null?c:"complete",i="",s=n==="extended"?"-":"",o=n==="extended"?":":"";if(a!=="time"){let d=(0,ST.addLeadingZeros)(t.getDate(),2),u=(0,ST.addLeadingZeros)(t.getMonth()+1,2);i=`${(0,ST.addLeadingZeros)(t.getFullYear(),4)}${s}${u}${s}${d}`}if(a!=="date"){let d=(0,ST.addLeadingZeros)(t.getHours(),2),u=(0,ST.addLeadingZeros)(t.getMinutes(),2),p=(0,ST.addLeadingZeros)(t.getSeconds(),2);i=`${i}${i===""?"":" "}${d}${o}${u}${o}${p}`}return i}});var NFe=x(IFe=>{"use strict";IFe.formatISODuration=Twt;function Twt(r){let{years:e=0,months:t=0,days:n=0,hours:a=0,minutes:i=0,seconds:s=0}=r;return`P${e}Y${t}M${n}DT${a}H${i}M${s}S`}});var FFe=x(RFe=>{"use strict";RFe.formatRFC3339=xwt;var bf=iy(),wwt=dp(),Swt=X();function xwt(r,e){var m;let t=(0,Swt.toDate)(r,e==null?void 0:e.in);if(!(0,wwt.isValid)(t))throw new RangeError("Invalid time value");let n=(m=e==null?void 0:e.fractionDigits)!=null?m:0,a=(0,bf.addLeadingZeros)(t.getDate(),2),i=(0,bf.addLeadingZeros)(t.getMonth()+1,2),s=t.getFullYear(),o=(0,bf.addLeadingZeros)(t.getHours(),2),l=(0,bf.addLeadingZeros)(t.getMinutes(),2),c=(0,bf.addLeadingZeros)(t.getSeconds(),2),d="";if(n>0){let f=t.getMilliseconds(),h=Math.trunc(f*Math.pow(10,n-3));d="."+(0,bf.addLeadingZeros)(h,n)}let u="",p=t.getTimezoneOffset();if(p!==0){let f=Math.abs(p),h=(0,bf.addLeadingZeros)(Math.trunc(f/60),2),g=(0,bf.addLeadingZeros)(f%60,2);u=`${p<0?"+":"-"}${h}:${g}`}else u="Z";return`${s}-${i}-${a}T${o}:${l}:${c}${d}${u}`}});var LFe=x(OFe=>{"use strict";OFe.formatRFC7231=Mwt;var vL=iy(),Cwt=dp(),Ewt=X(),Dwt=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Pwt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Mwt(r){let e=(0,Ewt.toDate)(r);if(!(0,Cwt.isValid)(e))throw new RangeError("Invalid time value");let t=Dwt[e.getUTCDay()],n=(0,vL.addLeadingZeros)(e.getUTCDate(),2),a=Pwt[e.getUTCMonth()],i=e.getUTCFullYear(),s=(0,vL.addLeadingZeros)(e.getUTCHours(),2),o=(0,vL.addLeadingZeros)(e.getUTCMinutes(),2),l=(0,vL.addLeadingZeros)(e.getUTCSeconds(),2);return`${t}, ${n} ${a} ${i} ${s}:${o}:${l} GMT`}});var jFe=x(zFe=>{"use strict";zFe.formatRelative=Fwt;var Awt=ay(),_wt=ki(),Iwt=Nr(),Nwt=cp(),Rwt=j9();function Fwt(r,e,t){var u,p,m,f,h,g,v,b,k,w;let[n,a]=(0,Iwt.normalizeDates)(t==null?void 0:t.in,r,e),i=(0,_wt.getDefaultOptions)(),s=(p=(u=t==null?void 0:t.locale)!=null?u:i.locale)!=null?p:Awt.defaultLocale,o=(w=(k=(g=(h=t==null?void 0:t.weekStartsOn)!=null?h:(f=(m=t==null?void 0:t.locale)==null?void 0:m.options)==null?void 0:f.weekStartsOn)!=null?g:i.weekStartsOn)!=null?k:(b=(v=i.locale)==null?void 0:v.options)==null?void 0:b.weekStartsOn)!=null?w:0,l=(0,Nwt.differenceInCalendarDays)(n,a);if(isNaN(l))throw new RangeError("Invalid time value");let c;l<-6?c="other":l<-1?c="lastWeek":l<0?c="yesterday":l<1?c="today":l<2?c="tomorrow":l<7?c="nextWeek":c="other";let d=s.formatRelative(c,n,a,{locale:s,weekStartsOn:o});return(0,Rwt.format)(n,d,{locale:s,weekStartsOn:o})}});var BFe=x($Fe=>{"use strict";$Fe.fromUnixTime=Lwt;var Owt=X();function Lwt(r,e){return(0,Owt.toDate)(r*1e3,e==null?void 0:e.in)}});var U9=x(UFe=>{"use strict";UFe.getDate=jwt;var zwt=X();function jwt(r,e){return(0,zwt.toDate)(r,e==null?void 0:e.in).getDate()}});var xP=x(HFe=>{"use strict";HFe.getDay=Bwt;var $wt=X();function Bwt(r,e){return(0,$wt.toDate)(r,e==null?void 0:e.in).getDay()}});var H9=x(VFe=>{"use strict";VFe.getDaysInMonth=Vwt;var Uwt=qe(),Hwt=X();function Vwt(r,e){let t=(0,Hwt.toDate)(r,e==null?void 0:e.in),n=t.getFullYear(),a=t.getMonth(),i=(0,Uwt.constructFrom)(t,0);return i.setFullYear(n,a+1,0),i.setHours(0,0,0,0),i.getDate()}});var V9=x(qFe=>{"use strict";qFe.isLeapYear=Wwt;var qwt=X();function Wwt(r,e){let n=(0,qwt.toDate)(r,e==null?void 0:e.in).getFullYear();return n%400===0||n%4===0&&n%100!==0}});var YFe=x(WFe=>{"use strict";WFe.getDaysInYear=Kwt;var Ywt=V9(),Gwt=X();function Kwt(r,e){let t=(0,Gwt.toDate)(r,e==null?void 0:e.in);return Number.isNaN(+t)?NaN:(0,Ywt.isLeapYear)(t)?366:365}});var KFe=x(GFe=>{"use strict";GFe.getDecade=Qwt;var Zwt=X();function Qwt(r,e){let n=(0,Zwt.toDate)(r,e==null?void 0:e.in).getFullYear();return Math.floor(n/10)*10}});var q9=x(ZFe=>{"use strict";ZFe.getDefaultOptions=Xwt;var Jwt=ki();function Xwt(){return Object.assign({},(0,Jwt.getDefaultOptions)())}});var JFe=x(QFe=>{"use strict";QFe.getHours=tSt;var eSt=X();function tSt(r,e){return(0,eSt.toDate)(r,e==null?void 0:e.in).getHours()}});var W9=x(XFe=>{"use strict";XFe.getISODay=nSt;var rSt=X();function nSt(r,e){let t=(0,rSt.toDate)(r,e==null?void 0:e.in).getDay();return t===0?7:t}});var rOe=x(tOe=>{"use strict";tOe.getISOWeeksInYear=sSt;var aSt=gP(),iSt=bt(),eOe=kT();function sSt(r,e){let t=(0,eOe.startOfISOWeekYear)(r,e),a=+(0,eOe.startOfISOWeekYear)((0,aSt.addWeeks)(t,60))-+t;return Math.round(a/iSt.millisecondsInWeek)}});var aOe=x(nOe=>{"use strict";nOe.getMilliseconds=lSt;var oSt=X();function lSt(r){return(0,oSt.toDate)(r).getMilliseconds()}});var sOe=x(iOe=>{"use strict";iOe.getMinutes=dSt;var cSt=X();function dSt(r,e){return(0,cSt.toDate)(r,e==null?void 0:e.in).getMinutes()}});var lOe=x(oOe=>{"use strict";oOe.getMonth=pSt;var uSt=X();function pSt(r,e){return(0,uSt.toDate)(r,e==null?void 0:e.in).getMonth()}});var uOe=x(dOe=>{"use strict";dOe.getOverlappingDaysInIntervals=fSt;var cOe=lp(),mSt=bt(),kL=X();function fSt(r,e){let[t,n]=[+(0,kL.toDate)(r.start),+(0,kL.toDate)(r.end)].sort((u,p)=>u-p),[a,i]=[+(0,kL.toDate)(e.start),+(0,kL.toDate)(e.end)].sort((u,p)=>u-p);if(!(t<i&&a<n))return 0;let o=a<t?t:a,l=o-(0,cOe.getTimezoneOffsetInMilliseconds)(o),c=i>n?n:i,d=c-(0,cOe.getTimezoneOffsetInMilliseconds)(c);return Math.ceil((d-l)/mSt.millisecondsInDay)}});var mOe=x(pOe=>{"use strict";pOe.getSeconds=gSt;var hSt=X();function gSt(r){return(0,hSt.toDate)(r).getSeconds()}});var hOe=x(fOe=>{"use strict";fOe.getTime=vSt;var ySt=X();function vSt(r){return+(0,ySt.toDate)(r)}});var yOe=x(gOe=>{"use strict";gOe.getUnixTime=bSt;var kSt=X();function bSt(r){return Math.trunc(+(0,kSt.toDate)(r)/1e3)}});var kOe=x(vOe=>{"use strict";vOe.getWeekOfMonth=ESt;var TSt=ki(),wSt=U9(),SSt=xP(),xSt=kP(),CSt=X();function ESt(r,e){var l,c,d,u,p,m,f,h;let t=(0,TSt.getDefaultOptions)(),n=(h=(f=(u=(d=e==null?void 0:e.weekStartsOn)!=null?d:(c=(l=e==null?void 0:e.locale)==null?void 0:l.options)==null?void 0:c.weekStartsOn)!=null?u:t.weekStartsOn)!=null?f:(m=(p=t.locale)==null?void 0:p.options)==null?void 0:m.weekStartsOn)!=null?h:0,a=(0,wSt.getDate)((0,CSt.toDate)(r,e==null?void 0:e.in));if(isNaN(a))return NaN;let i=(0,SSt.getDay)((0,xSt.startOfMonth)(r,e)),s=n-i;s<=0&&(s+=7);let o=a-s;return Math.ceil(o/7)+1}});var Y9=x(TOe=>{"use strict";TOe.lastDayOfMonth=DSt;var bOe=X();function DSt(r,e){let t=(0,bOe.toDate)(r,e==null?void 0:e.in),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(0,0,0,0),(0,bOe.toDate)(t,e==null?void 0:e.in)}});var SOe=x(wOe=>{"use strict";wOe.getWeeksInMonth=ISt;var PSt=tL(),MSt=Y9(),ASt=kP(),_St=X();function ISt(r,e){let t=(0,_St.toDate)(r,e==null?void 0:e.in);return(0,PSt.differenceInCalendarWeeks)((0,MSt.lastDayOfMonth)(t,e),(0,ASt.startOfMonth)(t,e),e)+1}});var COe=x(xOe=>{"use strict";xOe.getYear=RSt;var NSt=X();function RSt(r,e){return(0,NSt.toDate)(r,e==null?void 0:e.in).getFullYear()}});var DOe=x(EOe=>{"use strict";EOe.hoursToMilliseconds=OSt;var FSt=bt();function OSt(r){return Math.trunc(r*FSt.millisecondsInHour)}});var MOe=x(POe=>{"use strict";POe.hoursToMinutes=zSt;var LSt=bt();function zSt(r){return Math.trunc(r*LSt.minutesInHour)}});var _Oe=x(AOe=>{"use strict";AOe.hoursToSeconds=$St;var jSt=bt();function $St(r){return Math.trunc(r*jSt.secondsInHour)}});var NOe=x(IOe=>{"use strict";IOe.interval=USt;var BSt=Nr();function USt(r,e,t){let[n,a]=(0,BSt.normalizeDates)(t==null?void 0:t.in,r,e);if(isNaN(+n))throw new TypeError("Start date is invalid");if(isNaN(+a))throw new TypeError("End date is invalid");if(t!=null&&t.assertPositive&&+n>+a)throw new TypeError("End date must be after start date");return{start:n,end:a}}});var FOe=x(ROe=>{"use strict";ROe.intervalToDuration=ZSt;var HSt=Ed(),CP=J6(),VSt=nL(),qSt=aL(),WSt=sL(),YSt=yP(),GSt=vP(),KSt=k9();function ZSt(r,e){let{start:t,end:n}=(0,HSt.normalizeInterval)(e==null?void 0:e.in,r),a={},i=(0,KSt.differenceInYears)(n,t);i&&(a.years=i);let s=(0,CP.add)(t,{years:a.years}),o=(0,YSt.differenceInMonths)(n,s);o&&(a.months=o);let l=(0,CP.add)(s,{months:a.months}),c=(0,VSt.differenceInDays)(n,l);c&&(a.days=c);let d=(0,CP.add)(l,{days:a.days}),u=(0,qSt.differenceInHours)(n,d);u&&(a.hours=u);let p=(0,CP.add)(d,{hours:a.hours}),m=(0,WSt.differenceInMinutes)(n,p);m&&(a.minutes=m);let f=(0,CP.add)(p,{minutes:a.minutes}),h=(0,GSt.differenceInSeconds)(n,f);return h&&(a.seconds=h),a}});var LOe=x(OOe=>{"use strict";OOe.intlFormat=JSt;var QSt=X();function JSt(r,e,t){let n;return XSt(e)?n=e:t=e,new Intl.DateTimeFormat(t==null?void 0:t.locale,n).format((0,QSt.toDate)(r))}function XSt(r){return r!==void 0&&!("locale"in r)}});var HOe=x(UOe=>{"use strict";UOe.intlFormatDistance=txt;var ext=Nr(),oy=bt(),G9=cp(),zOe=eL(),K9=h9(),jOe=tL(),Z9=rL(),$Oe=aL(),BOe=sL(),Q9=vP();function txt(r,e,t){let n=0,a,[i,s]=(0,ext.normalizeDates)(t==null?void 0:t.in,r,e);if(t!=null&&t.unit)a=t==null?void 0:t.unit,a==="second"?n=(0,Q9.differenceInSeconds)(i,s):a==="minute"?n=(0,BOe.differenceInMinutes)(i,s):a==="hour"?n=(0,$Oe.differenceInHours)(i,s):a==="day"?n=(0,G9.differenceInCalendarDays)(i,s):a==="week"?n=(0,jOe.differenceInCalendarWeeks)(i,s):a==="month"?n=(0,zOe.differenceInCalendarMonths)(i,s):a==="quarter"?n=(0,K9.differenceInCalendarQuarters)(i,s):a==="year"&&(n=(0,Z9.differenceInCalendarYears)(i,s));else{let l=(0,Q9.differenceInSeconds)(i,s);Math.abs(l)<oy.secondsInMinute?(n=(0,Q9.differenceInSeconds)(i,s),a="second"):Math.abs(l)<oy.secondsInHour?(n=(0,BOe.differenceInMinutes)(i,s),a="minute"):Math.abs(l)<oy.secondsInDay&&Math.abs((0,G9.differenceInCalendarDays)(i,s))<1?(n=(0,$Oe.differenceInHours)(i,s),a="hour"):Math.abs(l)<oy.secondsInWeek&&(n=(0,G9.differenceInCalendarDays)(i,s))&&Math.abs(n)<7?a="day":Math.abs(l)<oy.secondsInMonth?(n=(0,jOe.differenceInCalendarWeeks)(i,s),a="week"):Math.abs(l)<oy.secondsInQuarter?(n=(0,zOe.differenceInCalendarMonths)(i,s),a="month"):Math.abs(l)<oy.secondsInYear&&(0,K9.differenceInCalendarQuarters)(i,s)<4?(n=(0,K9.differenceInCalendarQuarters)(i,s),a="quarter"):(n=(0,Z9.differenceInCalendarYears)(i,s),a="year")}return new Intl.RelativeTimeFormat(t==null?void 0:t.locale,{numeric:"auto",...t}).format(n,a)}});var WOe=x(qOe=>{"use strict";qOe.isAfter=rxt;var VOe=X();function rxt(r,e){return+(0,VOe.toDate)(r)>+(0,VOe.toDate)(e)}});var KOe=x(GOe=>{"use strict";GOe.isBefore=nxt;var YOe=X();function nxt(r,e){return+(0,YOe.toDate)(r)<+(0,YOe.toDate)(e)}});var JOe=x(QOe=>{"use strict";QOe.isEqual=axt;var ZOe=X();function axt(r,e){return+(0,ZOe.toDate)(r)==+(0,ZOe.toDate)(e)}});var eLe=x(XOe=>{"use strict";XOe.isExists=ixt;function ixt(r,e,t){let n=new Date(r,e,t);return n.getFullYear()===r&&n.getMonth()===e&&n.getDate()===t}});var rLe=x(tLe=>{"use strict";tLe.isFirstDayOfMonth=oxt;var sxt=X();function oxt(r,e){return(0,sxt.toDate)(r,e==null?void 0:e.in).getDate()===1}});var aLe=x(nLe=>{"use strict";nLe.isFriday=cxt;var lxt=X();function cxt(r,e){return(0,lxt.toDate)(r,e==null?void 0:e.in).getDay()===5}});var sLe=x(iLe=>{"use strict";iLe.isFuture=uxt;var dxt=X();function uxt(r){return+(0,dxt.toDate)(r)>Date.now()}});var J9=x(oLe=>{"use strict";oLe.transpose=mxt;var pxt=qe();function mxt(r,e){let t=fxt(e)?new e(0):(0,pxt.constructFrom)(e,0);return t.setFullYear(r.getFullYear(),r.getMonth(),r.getDate()),t.setHours(r.getHours(),r.getMinutes(),r.getSeconds(),r.getMilliseconds()),t}function fxt(r){var e;return typeof r=="function"&&((e=r.prototype)==null?void 0:e.constructor)===r}});var tY=x(ly=>{"use strict";ly.ValueSetter=ly.Setter=ly.DateTimezoneSetter=void 0;var lLe=qe(),hxt=J9(),gxt=10,EP=class{constructor(){I(this,"subPriority",0)}validate(e,t){return!0}};ly.Setter=EP;var X9=class extends EP{constructor(e,t,n,a,i){super(),this.value=e,this.validateValue=t,this.setValue=n,this.priority=a,i&&(this.subPriority=i)}validate(e,t){return this.validateValue(e,this.value,t)}set(e,t,n){return this.setValue(e,t,this.value,n)}};ly.ValueSetter=X9;var eY=class extends EP{constructor(t,n){super();I(this,"priority",gxt);I(this,"subPriority",-1);this.context=t||(a=>(0,lLe.constructFrom)(n,a))}set(t,n){return n.timestampIsSet?t:(0,lLe.constructFrom)(t,(0,hxt.transpose)(t,this.context))}};ly.DateTimezoneSetter=eY});var yr=x(nY=>{"use strict";nY.Parser=void 0;var yxt=tY(),rY=class{run(e,t,n,a){let i=this.parse(e,t,n,a);return i?{setter:new yxt.ValueSetter(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}validate(e,t,n){return!0}};nY.Parser=rY});var cLe=x(iY=>{"use strict";iY.EraParser=void 0;var vxt=yr(),aY=class extends vxt.Parser{constructor(){super(...arguments);I(this,"priority",140);I(this,"incompatibleTokens",["R","u","t","T"])}parse(t,n,a){switch(n){case"G":case"GG":case"GGG":return a.era(t,{width:"abbreviated"})||a.era(t,{width:"narrow"});case"GGGGG":return a.era(t,{width:"narrow"});case"GGGG":default:return a.era(t,{width:"wide"})||a.era(t,{width:"abbreviated"})||a.era(t,{width:"narrow"})}}set(t,n,a){return n.era=a,t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}};iY.EraParser=aY});var bi=x(DP=>{"use strict";DP.timezonePatterns=DP.numericPatterns=void 0;var AVr=DP.numericPatterns={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},_Vr=DP.timezonePatterns={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/}});var Ar=x(Dd=>{"use strict";Dd.dayPeriodEnumToHours=xxt;Dd.isLeapYearIndex=Ext;Dd.mapValue=kxt;Dd.normalizeTwoDigitYear=Cxt;Dd.parseAnyDigitsSigned=Txt;Dd.parseNDigits=wxt;Dd.parseNDigitsSigned=Sxt;Dd.parseNumericPattern=ll;Dd.parseTimezonePattern=bxt;var sY=bt(),pp=bi();function kxt(r,e){return r&&{value:e(r.value),rest:r.rest}}function ll(r,e){let t=e.match(r);return t?{value:parseInt(t[0],10),rest:e.slice(t[0].length)}:null}function bxt(r,e){let t=e.match(r);if(!t)return null;if(t[0]==="Z")return{value:0,rest:e.slice(1)};let n=t[1]==="+"?1:-1,a=t[2]?parseInt(t[2],10):0,i=t[3]?parseInt(t[3],10):0,s=t[5]?parseInt(t[5],10):0;return{value:n*(a*sY.millisecondsInHour+i*sY.millisecondsInMinute+s*sY.millisecondsInSecond),rest:e.slice(t[0].length)}}function Txt(r){return ll(pp.numericPatterns.anyDigitsSigned,r)}function wxt(r,e){switch(r){case 1:return ll(pp.numericPatterns.singleDigit,e);case 2:return ll(pp.numericPatterns.twoDigits,e);case 3:return ll(pp.numericPatterns.threeDigits,e);case 4:return ll(pp.numericPatterns.fourDigits,e);default:return ll(new RegExp("^\\d{1,"+r+"}"),e)}}function Sxt(r,e){switch(r){case 1:return ll(pp.numericPatterns.singleDigitSigned,e);case 2:return ll(pp.numericPatterns.twoDigitsSigned,e);case 3:return ll(pp.numericPatterns.threeDigitsSigned,e);case 4:return ll(pp.numericPatterns.fourDigitsSigned,e);default:return ll(new RegExp("^-?\\d{1,"+r+"}"),e)}}function xxt(r){switch(r){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;case"am":case"midnight":case"night":default:return 0}}function Cxt(r,e){let t=e>0,n=t?e:1-e,a;if(n<=50)a=r||100;else{let i=n+50,s=Math.trunc(i/100)*100,o=r>=i%100;a=r+s-(o?100:0)}return t?a:1-a}function Ext(r){return r%400===0||r%4===0&&r%100!==0}});var dLe=x(lY=>{"use strict";lY.YearParser=void 0;var Dxt=yr(),xT=Ar(),oY=class extends Dxt.Parser{constructor(){super(...arguments);I(this,"priority",130);I(this,"incompatibleTokens",["Y","R","u","w","I","i","e","c","t","T"])}parse(t,n,a){let i=s=>({year:s,isTwoDigitYear:n==="yy"});switch(n){case"y":return(0,xT.mapValue)((0,xT.parseNDigits)(4,t),i);case"yo":return(0,xT.mapValue)(a.ordinalNumber(t,{unit:"year"}),i);default:return(0,xT.mapValue)((0,xT.parseNDigits)(n.length,t),i)}}validate(t,n){return n.isTwoDigitYear||n.year>0}set(t,n,a){let i=t.getFullYear();if(a.isTwoDigitYear){let o=(0,xT.normalizeTwoDigitYear)(a.year,i);return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}let s=!("era"in n)||n.era===1?a.year:1-a.year;return t.setFullYear(s,0,1),t.setHours(0,0,0,0),t}};lY.YearParser=oY});var pLe=x(dY=>{"use strict";dY.LocalWeekYearParser=void 0;var Pxt=wP(),uLe=ic(),Mxt=yr(),CT=Ar(),cY=class extends Mxt.Parser{constructor(){super(...arguments);I(this,"priority",130);I(this,"incompatibleTokens",["y","R","u","Q","q","M","L","I","d","D","i","t","T"])}parse(t,n,a){let i=s=>({year:s,isTwoDigitYear:n==="YY"});switch(n){case"Y":return(0,CT.mapValue)((0,CT.parseNDigits)(4,t),i);case"Yo":return(0,CT.mapValue)(a.ordinalNumber(t,{unit:"year"}),i);default:return(0,CT.mapValue)((0,CT.parseNDigits)(n.length,t),i)}}validate(t,n){return n.isTwoDigitYear||n.year>0}set(t,n,a,i){let s=(0,Pxt.getWeekYear)(t,i);if(a.isTwoDigitYear){let l=(0,CT.normalizeTwoDigitYear)(a.year,s);return t.setFullYear(l,0,i.firstWeekContainsDate),t.setHours(0,0,0,0),(0,uLe.startOfWeek)(t,i)}let o=!("era"in n)||n.era===1?a.year:1-a.year;return t.setFullYear(o,0,i.firstWeekContainsDate),t.setHours(0,0,0,0),(0,uLe.startOfWeek)(t,i)}};dY.LocalWeekYearParser=cY});var fLe=x(pY=>{"use strict";pY.ISOWeekYearParser=void 0;var Axt=Cd(),_xt=qe(),Ixt=yr(),mLe=Ar(),uY=class extends Ixt.Parser{constructor(){super(...arguments);I(this,"priority",130);I(this,"incompatibleTokens",["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"])}parse(t,n){return n==="R"?(0,mLe.parseNDigitsSigned)(4,t):(0,mLe.parseNDigitsSigned)(n.length,t)}set(t,n,a){let i=(0,_xt.constructFrom)(t,0);return i.setFullYear(a,0,4),i.setHours(0,0,0,0),(0,Axt.startOfISOWeek)(i)}};pY.ISOWeekYearParser=uY});var gLe=x(fY=>{"use strict";fY.ExtendedYearParser=void 0;var Nxt=yr(),hLe=Ar(),mY=class extends Nxt.Parser{constructor(){super(...arguments);I(this,"priority",130);I(this,"incompatibleTokens",["G","y","Y","R","w","I","i","e","c","t","T"])}parse(t,n){return n==="u"?(0,hLe.parseNDigitsSigned)(4,t):(0,hLe.parseNDigitsSigned)(n.length,t)}set(t,n,a){return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}};fY.ExtendedYearParser=mY});var yLe=x(gY=>{"use strict";gY.QuarterParser=void 0;var Rxt=yr(),Fxt=Ar(),hY=class extends Rxt.Parser{constructor(){super(...arguments);I(this,"priority",120);I(this,"incompatibleTokens",["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"])}parse(t,n,a){switch(n){case"Q":case"QQ":return(0,Fxt.parseNDigits)(n.length,t);case"Qo":return a.ordinalNumber(t,{unit:"quarter"});case"QQQ":return a.quarter(t,{width:"abbreviated",context:"formatting"})||a.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return a.quarter(t,{width:"narrow",context:"formatting"});case"QQQQ":default:return a.quarter(t,{width:"wide",context:"formatting"})||a.quarter(t,{width:"abbreviated",context:"formatting"})||a.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=1&&n<=4}set(t,n,a){return t.setMonth((a-1)*3,1),t.setHours(0,0,0,0),t}};gY.QuarterParser=hY});var vLe=x(vY=>{"use strict";vY.StandAloneQuarterParser=void 0;var Oxt=yr(),Lxt=Ar(),yY=class extends Oxt.Parser{constructor(){super(...arguments);I(this,"priority",120);I(this,"incompatibleTokens",["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"])}parse(t,n,a){switch(n){case"q":case"qq":return(0,Lxt.parseNDigits)(n.length,t);case"qo":return a.ordinalNumber(t,{unit:"quarter"});case"qqq":return a.quarter(t,{width:"abbreviated",context:"standalone"})||a.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return a.quarter(t,{width:"narrow",context:"standalone"});case"qqqq":default:return a.quarter(t,{width:"wide",context:"standalone"})||a.quarter(t,{width:"abbreviated",context:"standalone"})||a.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=1&&n<=4}set(t,n,a){return t.setMonth((a-1)*3,1),t.setHours(0,0,0,0),t}};vY.StandAloneQuarterParser=yY});var kLe=x(bY=>{"use strict";bY.MonthParser=void 0;var zxt=bi(),jxt=yr(),PP=Ar(),kY=class extends jxt.Parser{constructor(){super(...arguments);I(this,"incompatibleTokens",["Y","R","q","Q","L","w","I","D","i","e","c","t","T"]);I(this,"priority",110)}parse(t,n,a){let i=s=>s-1;switch(n){case"M":return(0,PP.mapValue)((0,PP.parseNumericPattern)(zxt.numericPatterns.month,t),i);case"MM":return(0,PP.mapValue)((0,PP.parseNDigits)(2,t),i);case"Mo":return(0,PP.mapValue)(a.ordinalNumber(t,{unit:"month"}),i);case"MMM":return a.month(t,{width:"abbreviated",context:"formatting"})||a.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return a.month(t,{width:"narrow",context:"formatting"});case"MMMM":default:return a.month(t,{width:"wide",context:"formatting"})||a.month(t,{width:"abbreviated",context:"formatting"})||a.month(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.setMonth(a,1),t.setHours(0,0,0,0),t}};bY.MonthParser=kY});var bLe=x(wY=>{"use strict";wY.StandAloneMonthParser=void 0;var $xt=bi(),Bxt=yr(),MP=Ar(),TY=class extends Bxt.Parser{constructor(){super(...arguments);I(this,"priority",110);I(this,"incompatibleTokens",["Y","R","q","Q","M","w","I","D","i","e","c","t","T"])}parse(t,n,a){let i=s=>s-1;switch(n){case"L":return(0,MP.mapValue)((0,MP.parseNumericPattern)($xt.numericPatterns.month,t),i);case"LL":return(0,MP.mapValue)((0,MP.parseNDigits)(2,t),i);case"Lo":return(0,MP.mapValue)(a.ordinalNumber(t,{unit:"month"}),i);case"LLL":return a.month(t,{width:"abbreviated",context:"standalone"})||a.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return a.month(t,{width:"narrow",context:"standalone"});case"LLLL":default:return a.month(t,{width:"wide",context:"standalone"})||a.month(t,{width:"abbreviated",context:"standalone"})||a.month(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.setMonth(a,1),t.setHours(0,0,0,0),t}};wY.StandAloneMonthParser=TY});var SY=x(wLe=>{"use strict";wLe.setWeek=Hxt;var Uxt=gL(),TLe=X();function Hxt(r,e,t){let n=(0,TLe.toDate)(r,t==null?void 0:t.in),a=(0,Uxt.getWeek)(n,t)-e;return n.setDate(n.getDate()-a*7),(0,TLe.toDate)(n,t==null?void 0:t.in)}});var xLe=x(CY=>{"use strict";CY.LocalWeekParser=void 0;var Vxt=SY(),qxt=ic(),Wxt=bi(),Yxt=yr(),SLe=Ar(),xY=class extends Yxt.Parser{constructor(){super(...arguments);I(this,"priority",100);I(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","i","t","T"])}parse(t,n,a){switch(n){case"w":return(0,SLe.parseNumericPattern)(Wxt.numericPatterns.week,t);case"wo":return a.ordinalNumber(t,{unit:"week"});default:return(0,SLe.parseNDigits)(n.length,t)}}validate(t,n){return n>=1&&n<=53}set(t,n,a,i){return(0,qxt.startOfWeek)((0,Vxt.setWeek)(t,a,i),i)}};CY.LocalWeekParser=xY});var EY=x(CLe=>{"use strict";CLe.setISOWeek=Zxt;var Gxt=fL(),Kxt=X();function Zxt(r,e,t){let n=(0,Kxt.toDate)(r,t==null?void 0:t.in),a=(0,Gxt.getISOWeek)(n,t)-e;return n.setDate(n.getDate()-a*7),n}});var DLe=x(PY=>{"use strict";PY.ISOWeekParser=void 0;var Qxt=EY(),Jxt=Cd(),Xxt=bi(),eCt=yr(),ELe=Ar(),DY=class extends eCt.Parser{constructor(){super(...arguments);I(this,"priority",100);I(this,"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"])}parse(t,n,a){switch(n){case"I":return(0,ELe.parseNumericPattern)(Xxt.numericPatterns.week,t);case"Io":return a.ordinalNumber(t,{unit:"week"});default:return(0,ELe.parseNDigits)(n.length,t)}}validate(t,n){return n>=1&&n<=53}set(t,n,a){return(0,Jxt.startOfISOWeek)((0,Qxt.setISOWeek)(t,a))}};PY.ISOWeekParser=DY});var PLe=x(_Y=>{"use strict";_Y.DateParser=void 0;var tCt=bi(),rCt=yr(),MY=Ar(),nCt=[31,28,31,30,31,30,31,31,30,31,30,31],aCt=[31,29,31,30,31,30,31,31,30,31,30,31],AY=class extends rCt.Parser{constructor(){super(...arguments);I(this,"priority",90);I(this,"subPriority",1);I(this,"incompatibleTokens",["Y","R","q","Q","w","I","D","i","e","c","t","T"])}parse(t,n,a){switch(n){case"d":return(0,MY.parseNumericPattern)(tCt.numericPatterns.date,t);case"do":return a.ordinalNumber(t,{unit:"date"});default:return(0,MY.parseNDigits)(n.length,t)}}validate(t,n){let a=t.getFullYear(),i=(0,MY.isLeapYearIndex)(a),s=t.getMonth();return i?n>=1&&n<=aCt[s]:n>=1&&n<=nCt[s]}set(t,n,a){return t.setDate(a),t.setHours(0,0,0,0),t}};_Y.DateParser=AY});var MLe=x(RY=>{"use strict";RY.DayOfYearParser=void 0;var iCt=bi(),sCt=yr(),IY=Ar(),NY=class extends sCt.Parser{constructor(){super(...arguments);I(this,"priority",90);I(this,"subpriority",1);I(this,"incompatibleTokens",["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"])}parse(t,n,a){switch(n){case"D":case"DD":return(0,IY.parseNumericPattern)(iCt.numericPatterns.dayOfYear,t);case"Do":return a.ordinalNumber(t,{unit:"date"});default:return(0,IY.parseNDigits)(n.length,t)}}validate(t,n){let a=t.getFullYear();return(0,IY.isLeapYearIndex)(a)?n>=1&&n<=366:n>=1&&n<=365}set(t,n,a){return t.setMonth(0,a),t.setHours(0,0,0,0),t}};RY.DayOfYearParser=NY});var AP=x(ALe=>{"use strict";ALe.setDay=dCt;var oCt=ki(),lCt=xd(),cCt=X();function dCt(r,e,t){var u,p,m,f,h,g,v,b;let n=(0,oCt.getDefaultOptions)(),a=(b=(v=(f=(m=t==null?void 0:t.weekStartsOn)!=null?m:(p=(u=t==null?void 0:t.locale)==null?void 0:u.options)==null?void 0:p.weekStartsOn)!=null?f:n.weekStartsOn)!=null?v:(g=(h=n.locale)==null?void 0:h.options)==null?void 0:g.weekStartsOn)!=null?b:0,i=(0,cCt.toDate)(r,t==null?void 0:t.in),s=i.getDay(),l=(e%7+7)%7,c=7-a,d=e<0||e>6?e-(s+c)%7:(l+c)%7-(s+c)%7;return(0,lCt.addDays)(i,d,t)}});var _Le=x(OY=>{"use strict";OY.DayParser=void 0;var uCt=AP(),pCt=yr(),FY=class extends pCt.Parser{constructor(){super(...arguments);I(this,"priority",90);I(this,"incompatibleTokens",["D","i","e","c","t","T"])}parse(t,n,a){switch(n){case"E":case"EE":case"EEE":return a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return a.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"EEEE":default:return a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,i){return t=(0,uCt.setDay)(t,a,i),t.setHours(0,0,0,0),t}};OY.DayParser=FY});var ILe=x(jY=>{"use strict";jY.LocalDayParser=void 0;var mCt=AP(),fCt=yr(),LY=Ar(),zY=class extends fCt.Parser{constructor(){super(...arguments);I(this,"priority",90);I(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"])}parse(t,n,a,i){let s=o=>{let l=Math.floor((o-1)/7)*7;return(o+i.weekStartsOn+6)%7+l};switch(n){case"e":case"ee":return(0,LY.mapValue)((0,LY.parseNDigits)(n.length,t),s);case"eo":return(0,LY.mapValue)(a.ordinalNumber(t,{unit:"day"}),s);case"eee":return a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"eeeee":return a.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"eeee":default:return a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,i){return t=(0,mCt.setDay)(t,a,i),t.setHours(0,0,0,0),t}};jY.LocalDayParser=zY});var NLe=x(UY=>{"use strict";UY.StandAloneLocalDayParser=void 0;var hCt=AP(),gCt=yr(),$Y=Ar(),BY=class extends gCt.Parser{constructor(){super(...arguments);I(this,"priority",90);I(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"])}parse(t,n,a,i){let s=o=>{let l=Math.floor((o-1)/7)*7;return(o+i.weekStartsOn+6)%7+l};switch(n){case"c":case"cc":return(0,$Y.mapValue)((0,$Y.parseNDigits)(n.length,t),s);case"co":return(0,$Y.mapValue)(a.ordinalNumber(t,{unit:"day"}),s);case"ccc":return a.day(t,{width:"abbreviated",context:"standalone"})||a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"});case"ccccc":return a.day(t,{width:"narrow",context:"standalone"});case"cccccc":return a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"});case"cccc":default:return a.day(t,{width:"wide",context:"standalone"})||a.day(t,{width:"abbreviated",context:"standalone"})||a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,i){return t=(0,hCt.setDay)(t,a,i),t.setHours(0,0,0,0),t}};UY.StandAloneLocalDayParser=BY});var HY=x(RLe=>{"use strict";RLe.setISODay=bCt;var yCt=xd(),vCt=W9(),kCt=X();function bCt(r,e,t){let n=(0,kCt.toDate)(r,t==null?void 0:t.in),a=(0,vCt.getISODay)(n,t),i=e-a;return(0,yCt.addDays)(n,i,t)}});var FLe=x(qY=>{"use strict";qY.ISODayParser=void 0;var TCt=HY(),wCt=yr(),_P=Ar(),VY=class extends wCt.Parser{constructor(){super(...arguments);I(this,"priority",90);I(this,"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"])}parse(t,n,a){let i=s=>s===0?7:s;switch(n){case"i":case"ii":return(0,_P.parseNDigits)(n.length,t);case"io":return a.ordinalNumber(t,{unit:"day"});case"iii":return(0,_P.mapValue)(a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),i);case"iiiii":return(0,_P.mapValue)(a.day(t,{width:"narrow",context:"formatting"}),i);case"iiiiii":return(0,_P.mapValue)(a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),i);case"iiii":default:return(0,_P.mapValue)(a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),i)}}validate(t,n){return n>=1&&n<=7}set(t,n,a){return t=(0,TCt.setISODay)(t,a),t.setHours(0,0,0,0),t}};qY.ISODayParser=VY});var OLe=x(YY=>{"use strict";YY.AMPMParser=void 0;var SCt=yr(),xCt=Ar(),WY=class extends SCt.Parser{constructor(){super(...arguments);I(this,"priority",80);I(this,"incompatibleTokens",["b","B","H","k","t","T"])}parse(t,n,a){switch(n){case"a":case"aa":case"aaa":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return a.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaa":default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours((0,xCt.dayPeriodEnumToHours)(a),0,0,0),t}};YY.AMPMParser=WY});var LLe=x(KY=>{"use strict";KY.AMPMMidnightParser=void 0;var CCt=yr(),ECt=Ar(),GY=class extends CCt.Parser{constructor(){super(...arguments);I(this,"priority",80);I(this,"incompatibleTokens",["a","B","H","k","t","T"])}parse(t,n,a){switch(n){case"b":case"bb":case"bbb":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return a.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbb":default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours((0,ECt.dayPeriodEnumToHours)(a),0,0,0),t}};KY.AMPMMidnightParser=GY});var zLe=x(QY=>{"use strict";QY.DayPeriodParser=void 0;var DCt=yr(),PCt=Ar(),ZY=class extends DCt.Parser{constructor(){super(...arguments);I(this,"priority",80);I(this,"incompatibleTokens",["a","b","t","T"])}parse(t,n,a){switch(n){case"B":case"BB":case"BBB":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return a.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBB":default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours((0,PCt.dayPeriodEnumToHours)(a),0,0,0),t}};QY.DayPeriodParser=ZY});var $Le=x(XY=>{"use strict";XY.Hour1to12Parser=void 0;var MCt=bi(),ACt=yr(),jLe=Ar(),JY=class extends ACt.Parser{constructor(){super(...arguments);I(this,"priority",70);I(this,"incompatibleTokens",["H","K","k","t","T"])}parse(t,n,a){switch(n){case"h":return(0,jLe.parseNumericPattern)(MCt.numericPatterns.hour12h,t);case"ho":return a.ordinalNumber(t,{unit:"hour"});default:return(0,jLe.parseNDigits)(n.length,t)}}validate(t,n){return n>=1&&n<=12}set(t,n,a){let i=t.getHours()>=12;return i&&a<12?t.setHours(a+12,0,0,0):!i&&a===12?t.setHours(0,0,0,0):t.setHours(a,0,0,0),t}};XY.Hour1to12Parser=JY});var ULe=x(t5=>{"use strict";t5.Hour0to23Parser=void 0;var _Ct=bi(),ICt=yr(),BLe=Ar(),e5=class extends ICt.Parser{constructor(){super(...arguments);I(this,"priority",70);I(this,"incompatibleTokens",["a","b","h","K","k","t","T"])}parse(t,n,a){switch(n){case"H":return(0,BLe.parseNumericPattern)(_Ct.numericPatterns.hour23h,t);case"Ho":return a.ordinalNumber(t,{unit:"hour"});default:return(0,BLe.parseNDigits)(n.length,t)}}validate(t,n){return n>=0&&n<=23}set(t,n,a){return t.setHours(a,0,0,0),t}};t5.Hour0to23Parser=e5});var VLe=x(n5=>{"use strict";n5.Hour0To11Parser=void 0;var NCt=bi(),RCt=yr(),HLe=Ar(),r5=class extends RCt.Parser{constructor(){super(...arguments);I(this,"priority",70);I(this,"incompatibleTokens",["h","H","k","t","T"])}parse(t,n,a){switch(n){case"K":return(0,HLe.parseNumericPattern)(NCt.numericPatterns.hour11h,t);case"Ko":return a.ordinalNumber(t,{unit:"hour"});default:return(0,HLe.parseNDigits)(n.length,t)}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.getHours()>=12&&a<12?t.setHours(a+12,0,0,0):t.setHours(a,0,0,0),t}};n5.Hour0To11Parser=r5});var WLe=x(i5=>{"use strict";i5.Hour1To24Parser=void 0;var FCt=bi(),OCt=yr(),qLe=Ar(),a5=class extends OCt.Parser{constructor(){super(...arguments);I(this,"priority",70);I(this,"incompatibleTokens",["a","b","h","H","K","t","T"])}parse(t,n,a){switch(n){case"k":return(0,qLe.parseNumericPattern)(FCt.numericPatterns.hour24h,t);case"ko":return a.ordinalNumber(t,{unit:"hour"});default:return(0,qLe.parseNDigits)(n.length,t)}}validate(t,n){return n>=1&&n<=24}set(t,n,a){let i=a<=24?a%24:a;return t.setHours(i,0,0,0),t}};i5.Hour1To24Parser=a5});var GLe=x(o5=>{"use strict";o5.MinuteParser=void 0;var LCt=bi(),zCt=yr(),YLe=Ar(),s5=class extends zCt.Parser{constructor(){super(...arguments);I(this,"priority",60);I(this,"incompatibleTokens",["t","T"])}parse(t,n,a){switch(n){case"m":return(0,YLe.parseNumericPattern)(LCt.numericPatterns.minute,t);case"mo":return a.ordinalNumber(t,{unit:"minute"});default:return(0,YLe.parseNDigits)(n.length,t)}}validate(t,n){return n>=0&&n<=59}set(t,n,a){return t.setMinutes(a,0,0),t}};o5.MinuteParser=s5});var ZLe=x(c5=>{"use strict";c5.SecondParser=void 0;var jCt=bi(),$Ct=yr(),KLe=Ar(),l5=class extends $Ct.Parser{constructor(){super(...arguments);I(this,"priority",50);I(this,"incompatibleTokens",["t","T"])}parse(t,n,a){switch(n){case"s":return(0,KLe.parseNumericPattern)(jCt.numericPatterns.second,t);case"so":return a.ordinalNumber(t,{unit:"second"});default:return(0,KLe.parseNDigits)(n.length,t)}}validate(t,n){return n>=0&&n<=59}set(t,n,a){return t.setSeconds(a,0),t}};c5.SecondParser=l5});var JLe=x(u5=>{"use strict";u5.FractionOfSecondParser=void 0;var BCt=yr(),QLe=Ar(),d5=class extends BCt.Parser{constructor(){super(...arguments);I(this,"priority",30);I(this,"incompatibleTokens",["t","T"])}parse(t,n){let a=i=>Math.trunc(i*Math.pow(10,-n.length+3));return(0,QLe.mapValue)((0,QLe.parseNDigits)(n.length,t),a)}set(t,n,a){return t.setMilliseconds(a),t}};u5.FractionOfSecondParser=d5});var XLe=x(m5=>{"use strict";m5.ISOTimezoneWithZParser=void 0;var UCt=qe(),HCt=lp(),IP=bi(),VCt=yr(),NP=Ar(),p5=class extends VCt.Parser{constructor(){super(...arguments);I(this,"priority",10);I(this,"incompatibleTokens",["t","T","x"])}parse(t,n){switch(n){case"X":return(0,NP.parseTimezonePattern)(IP.timezonePatterns.basicOptionalMinutes,t);case"XX":return(0,NP.parseTimezonePattern)(IP.timezonePatterns.basic,t);case"XXXX":return(0,NP.parseTimezonePattern)(IP.timezonePatterns.basicOptionalSeconds,t);case"XXXXX":return(0,NP.parseTimezonePattern)(IP.timezonePatterns.extendedOptionalSeconds,t);case"XXX":default:return(0,NP.parseTimezonePattern)(IP.timezonePatterns.extended,t)}}set(t,n,a){return n.timestampIsSet?t:(0,UCt.constructFrom)(t,t.getTime()-(0,HCt.getTimezoneOffsetInMilliseconds)(t)-a)}};m5.ISOTimezoneWithZParser=p5});var e1e=x(h5=>{"use strict";h5.ISOTimezoneParser=void 0;var qCt=qe(),WCt=lp(),RP=bi(),YCt=yr(),FP=Ar(),f5=class extends YCt.Parser{constructor(){super(...arguments);I(this,"priority",10);I(this,"incompatibleTokens",["t","T","X"])}parse(t,n){switch(n){case"x":return(0,FP.parseTimezonePattern)(RP.timezonePatterns.basicOptionalMinutes,t);case"xx":return(0,FP.parseTimezonePattern)(RP.timezonePatterns.basic,t);case"xxxx":return(0,FP.parseTimezonePattern)(RP.timezonePatterns.basicOptionalSeconds,t);case"xxxxx":return(0,FP.parseTimezonePattern)(RP.timezonePatterns.extendedOptionalSeconds,t);case"xxx":default:return(0,FP.parseTimezonePattern)(RP.timezonePatterns.extended,t)}}set(t,n,a){return n.timestampIsSet?t:(0,qCt.constructFrom)(t,t.getTime()-(0,WCt.getTimezoneOffsetInMilliseconds)(t)-a)}};h5.ISOTimezoneParser=f5});var t1e=x(y5=>{"use strict";y5.TimestampSecondsParser=void 0;var GCt=qe(),KCt=yr(),ZCt=Ar(),g5=class extends KCt.Parser{constructor(){super(...arguments);I(this,"priority",40);I(this,"incompatibleTokens","*")}parse(t){return(0,ZCt.parseAnyDigitsSigned)(t)}set(t,n,a){return[(0,GCt.constructFrom)(t,a*1e3),{timestampIsSet:!0}]}};y5.TimestampSecondsParser=g5});var r1e=x(k5=>{"use strict";k5.TimestampMillisecondsParser=void 0;var QCt=qe(),JCt=yr(),XCt=Ar(),v5=class extends JCt.Parser{constructor(){super(...arguments);I(this,"priority",20);I(this,"incompatibleTokens","*")}parse(t){return(0,XCt.parseAnyDigitsSigned)(t)}set(t,n,a){return[(0,QCt.constructFrom)(t,a),{timestampIsSet:!0}]}};k5.TimestampMillisecondsParser=v5});var n1e=x(b5=>{"use strict";b5.parsers=void 0;var eEt=cLe(),tEt=dLe(),rEt=pLe(),nEt=fLe(),aEt=gLe(),iEt=yLe(),sEt=vLe(),oEt=kLe(),lEt=bLe(),cEt=xLe(),dEt=DLe(),uEt=PLe(),pEt=MLe(),mEt=_Le(),fEt=ILe(),hEt=NLe(),gEt=FLe(),yEt=OLe(),vEt=LLe(),kEt=zLe(),bEt=$Le(),TEt=ULe(),wEt=VLe(),SEt=WLe(),xEt=GLe(),CEt=ZLe(),EEt=JLe(),DEt=XLe(),PEt=e1e(),MEt=t1e(),AEt=r1e(),Vqr=b5.parsers={G:new eEt.EraParser,y:new tEt.YearParser,Y:new rEt.LocalWeekYearParser,R:new nEt.ISOWeekYearParser,u:new aEt.ExtendedYearParser,Q:new iEt.QuarterParser,q:new sEt.StandAloneQuarterParser,M:new oEt.MonthParser,L:new lEt.StandAloneMonthParser,w:new cEt.LocalWeekParser,I:new dEt.ISOWeekParser,d:new uEt.DateParser,D:new pEt.DayOfYearParser,E:new mEt.DayParser,e:new fEt.LocalDayParser,c:new hEt.StandAloneLocalDayParser,i:new gEt.ISODayParser,a:new yEt.AMPMParser,b:new vEt.AMPMMidnightParser,B:new kEt.DayPeriodParser,h:new bEt.Hour1to12Parser,H:new TEt.Hour0to23Parser,K:new wEt.Hour0To11Parser,k:new SEt.Hour1To24Parser,m:new xEt.MinuteParser,s:new CEt.SecondParser,S:new EEt.FractionOfSecondParser,X:new DEt.ISOTimezoneWithZParser,x:new PEt.ISOTimezoneParser,t:new MEt.TimestampSecondsParser,T:new AEt.TimestampMillisecondsParser}});var w5=x(TL=>{"use strict";Object.defineProperty(TL,"longFormatters",{enumerable:!0,get:function(){return T5.longFormatters}});TL.parse=BEt;Object.defineProperty(TL,"parsers",{enumerable:!0,get:function(){return i1e.parsers}});var _Et=ay(),T5=F9(),bL=O9(),IEt=qe(),NEt=q9(),a1e=X(),REt=tY(),i1e=n1e(),FEt=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,OEt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,LEt=/^'([^]*?)'?$/,zEt=/''/g,jEt=/\S/,$Et=/[a-zA-Z]/;function BEt(r,e,t,n){var g,v,b,k,w,S,C,E,D,P,O,z,R,A,F,$,B,ue;let a=()=>(0,IEt.constructFrom)((n==null?void 0:n.in)||t,NaN),i=(0,NEt.getDefaultOptions)(),s=(v=(g=n==null?void 0:n.locale)!=null?g:i.locale)!=null?v:_Et.defaultLocale,o=(P=(D=(S=(w=n==null?void 0:n.firstWeekContainsDate)!=null?w:(k=(b=n==null?void 0:n.locale)==null?void 0:b.options)==null?void 0:k.firstWeekContainsDate)!=null?S:i.firstWeekContainsDate)!=null?D:(E=(C=i.locale)==null?void 0:C.options)==null?void 0:E.firstWeekContainsDate)!=null?P:1,l=(ue=(B=(A=(R=n==null?void 0:n.weekStartsOn)!=null?R:(z=(O=n==null?void 0:n.locale)==null?void 0:O.options)==null?void 0:z.weekStartsOn)!=null?A:i.weekStartsOn)!=null?B:($=(F=i.locale)==null?void 0:F.options)==null?void 0:$.weekStartsOn)!=null?ue:0;if(!e)return r?a():(0,a1e.toDate)(t,n==null?void 0:n.in);let c={firstWeekContainsDate:o,weekStartsOn:l,locale:s},d=[new REt.DateTimezoneSetter(n==null?void 0:n.in,t)],u=e.match(OEt).map(Q=>{let G=Q[0];if(G in T5.longFormatters){let ie=T5.longFormatters[G];return ie(Q,s.formatLong)}return Q}).join("").match(FEt),p=[];for(let Q of u){!(n!=null&&n.useAdditionalWeekYearTokens)&&(0,bL.isProtectedWeekYearToken)(Q)&&(0,bL.warnOrThrowProtectedError)(Q,e,r),!(n!=null&&n.useAdditionalDayOfYearTokens)&&(0,bL.isProtectedDayOfYearToken)(Q)&&(0,bL.warnOrThrowProtectedError)(Q,e,r);let G=Q[0],ie=i1e.parsers[G];if(ie){let{incompatibleTokens:Ee}=ie;if(Array.isArray(Ee)){let re=p.find(et=>Ee.includes(et.token)||et.token===G);if(re)throw new RangeError(`The format string mustn't contain \`${re.fullToken}\` and \`${Q}\` at the same time`)}else if(ie.incompatibleTokens==="*"&&p.length>0)throw new RangeError(`The format string mustn't contain \`${Q}\` and any other token at the same time`);p.push({token:G,fullToken:Q});let ee=ie.run(r,Q,s.match,c);if(!ee)return a();d.push(ee.setter),r=ee.rest}else{if(G.match($Et))throw new RangeError("Format string contains an unescaped latin alphabet character `"+G+"`");if(Q==="''"?Q="'":G==="'"&&(Q=UEt(Q)),r.indexOf(Q)===0)r=r.slice(Q.length);else return a()}}if(r.length>0&&jEt.test(r))return a();let m=d.map(Q=>Q.priority).sort((Q,G)=>G-Q).filter((Q,G,ie)=>ie.indexOf(Q)===G).map(Q=>d.filter(G=>G.priority===Q).sort((G,ie)=>ie.subPriority-G.subPriority)).map(Q=>Q[0]),f=(0,a1e.toDate)(t,n==null?void 0:n.in);if(isNaN(+f))return a();let h={};for(let Q of m){if(!Q.validate(f,c))return a();let G=Q.set(f,h,c);Array.isArray(G)?(f=G[0],Object.assign(h,G[1])):f=G}return f}function UEt(r){return r.match(LEt)[1].replace(zEt,"'")}});var o1e=x(s1e=>{"use strict";s1e.isMatch=qEt;var HEt=dp(),VEt=w5();function qEt(r,e,t){return(0,HEt.isValid)((0,VEt.parse)(r,e,new Date,t))}});var c1e=x(l1e=>{"use strict";l1e.isMonday=YEt;var WEt=X();function YEt(r,e){return(0,WEt.toDate)(r,e==null?void 0:e.in).getDay()===1}});var u1e=x(d1e=>{"use strict";d1e.isPast=KEt;var GEt=X();function KEt(r){return+(0,GEt.toDate)(r)<Date.now()}});var S5=x(p1e=>{"use strict";p1e.startOfHour=QEt;var ZEt=X();function QEt(r,e){let t=(0,ZEt.toDate)(r,e==null?void 0:e.in);return t.setMinutes(0,0,0),t}});var x5=x(f1e=>{"use strict";f1e.isSameHour=XEt;var JEt=Nr(),m1e=S5();function XEt(r,e,t){let[n,a]=(0,JEt.normalizeDates)(t==null?void 0:t.in,r,e);return+(0,m1e.startOfHour)(n)==+(0,m1e.startOfHour)(a)}});var wL=x(g1e=>{"use strict";g1e.isSameWeek=tDt;var eDt=Nr(),h1e=ic();function tDt(r,e,t){let[n,a]=(0,eDt.normalizeDates)(t==null?void 0:t.in,r,e);return+(0,h1e.startOfWeek)(n,t)==+(0,h1e.startOfWeek)(a,t)}});var C5=x(y1e=>{"use strict";y1e.isSameISOWeek=nDt;var rDt=wL();function nDt(r,e,t){return(0,rDt.isSameWeek)(r,e,{...t,weekStartsOn:1})}});var b1e=x(k1e=>{"use strict";k1e.isSameISOWeekYear=iDt;var v1e=kT(),aDt=Nr();function iDt(r,e,t){let[n,a]=(0,aDt.normalizeDates)(t==null?void 0:t.in,r,e);return+(0,v1e.startOfISOWeekYear)(n)==+(0,v1e.startOfISOWeekYear)(a)}});var E5=x(T1e=>{"use strict";T1e.startOfMinute=oDt;var sDt=X();function oDt(r,e){let t=(0,sDt.toDate)(r,e==null?void 0:e.in);return t.setSeconds(0,0),t}});var D5=x(S1e=>{"use strict";S1e.isSameMinute=lDt;var w1e=E5();function lDt(r,e){return+(0,w1e.startOfMinute)(r)==+(0,w1e.startOfMinute)(e)}});var P5=x(x1e=>{"use strict";x1e.isSameMonth=dDt;var cDt=Nr();function dDt(r,e,t){let[n,a]=(0,cDt.normalizeDates)(t==null?void 0:t.in,r,e);return n.getFullYear()===a.getFullYear()&&n.getMonth()===a.getMonth()}});var M5=x(E1e=>{"use strict";E1e.isSameQuarter=pDt;var uDt=Nr(),C1e=cL();function pDt(r,e,t){let[n,a]=(0,uDt.normalizeDates)(t==null?void 0:t.in,r,e);return+(0,C1e.startOfQuarter)(n)==+(0,C1e.startOfQuarter)(a)}});var A5=x(D1e=>{"use strict";D1e.startOfSecond=fDt;var mDt=X();function fDt(r,e){let t=(0,mDt.toDate)(r,e==null?void 0:e.in);return t.setMilliseconds(0),t}});var _5=x(M1e=>{"use strict";M1e.isSameSecond=hDt;var P1e=A5();function hDt(r,e){return+(0,P1e.startOfSecond)(r)==+(0,P1e.startOfSecond)(e)}});var I5=x(A1e=>{"use strict";A1e.isSameYear=yDt;var gDt=Nr();function yDt(r,e,t){let[n,a]=(0,gDt.normalizeDates)(t==null?void 0:t.in,r,e);return n.getFullYear()===a.getFullYear()}});var I1e=x(_1e=>{"use strict";_1e.isThisHour=TDt;var vDt=ba(),kDt=x5(),bDt=X();function TDt(r,e){return(0,kDt.isSameHour)((0,bDt.toDate)(r,e==null?void 0:e.in),(0,vDt.constructNow)((e==null?void 0:e.in)||r))}});var R1e=x(N1e=>{"use strict";N1e.isThisISOWeek=CDt;var wDt=qe(),SDt=ba(),xDt=C5();function CDt(r,e){return(0,xDt.isSameISOWeek)((0,wDt.constructFrom)((e==null?void 0:e.in)||r,r),(0,SDt.constructNow)((e==null?void 0:e.in)||r))}});var O1e=x(F1e=>{"use strict";F1e.isThisMinute=PDt;var EDt=ba(),DDt=D5();function PDt(r){return(0,DDt.isSameMinute)(r,(0,EDt.constructNow)(r))}});var z1e=x(L1e=>{"use strict";L1e.isThisMonth=IDt;var MDt=qe(),ADt=ba(),_Dt=P5();function IDt(r,e){return(0,_Dt.isSameMonth)((0,MDt.constructFrom)((e==null?void 0:e.in)||r,r),(0,ADt.constructNow)((e==null?void 0:e.in)||r))}});var $1e=x(j1e=>{"use strict";j1e.isThisQuarter=ODt;var NDt=qe(),RDt=ba(),FDt=M5();function ODt(r,e){return(0,FDt.isSameQuarter)((0,NDt.constructFrom)((e==null?void 0:e.in)||r,r),(0,RDt.constructNow)((e==null?void 0:e.in)||r))}});var U1e=x(B1e=>{"use strict";B1e.isThisSecond=jDt;var LDt=ba(),zDt=_5();function jDt(r){return(0,zDt.isSameSecond)(r,(0,LDt.constructNow)(r))}});var V1e=x(H1e=>{"use strict";H1e.isThisWeek=HDt;var $Dt=qe(),BDt=ba(),UDt=wL();function HDt(r,e){return(0,UDt.isSameWeek)((0,$Dt.constructFrom)((e==null?void 0:e.in)||r,r),(0,BDt.constructNow)((e==null?void 0:e.in)||r),e)}});var W1e=x(q1e=>{"use strict";q1e.isThisYear=YDt;var VDt=qe(),qDt=ba(),WDt=I5();function YDt(r,e){return(0,WDt.isSameYear)((0,VDt.constructFrom)((e==null?void 0:e.in)||r,r),(0,qDt.constructNow)((e==null?void 0:e.in)||r))}});var G1e=x(Y1e=>{"use strict";Y1e.isThursday=KDt;var GDt=X();function KDt(r,e){return(0,GDt.toDate)(r,e==null?void 0:e.in).getDay()===4}});var Z1e=x(K1e=>{"use strict";K1e.isToday=XDt;var ZDt=qe(),QDt=ba(),JDt=bT();function XDt(r,e){return(0,JDt.isSameDay)((0,ZDt.constructFrom)((e==null?void 0:e.in)||r,r),(0,QDt.constructNow)((e==null?void 0:e.in)||r))}});var J1e=x(Q1e=>{"use strict";Q1e.isTomorrow=nPt;var ePt=xd(),tPt=ba(),rPt=bT();function nPt(r,e){return(0,rPt.isSameDay)(r,(0,ePt.addDays)((0,tPt.constructNow)((e==null?void 0:e.in)||r),1),e)}});var eze=x(X1e=>{"use strict";X1e.isTuesday=iPt;var aPt=X();function iPt(r,e){return(0,aPt.toDate)(r,e==null?void 0:e.in).getDay()===2}});var rze=x(tze=>{"use strict";tze.isWednesday=oPt;var sPt=X();function oPt(r,e){return(0,sPt.toDate)(r,e==null?void 0:e.in).getDay()===3}});var aze=x(nze=>{"use strict";nze.isWithinInterval=lPt;var N5=X();function lPt(r,e,t){let n=+(0,N5.toDate)(r,t==null?void 0:t.in),[a,i]=[+(0,N5.toDate)(e.start,t==null?void 0:t.in),+(0,N5.toDate)(e.end,t==null?void 0:t.in)].sort((s,o)=>s-o);return n>=a&&n<=i}});var OP=x(ize=>{"use strict";ize.subDays=dPt;var cPt=xd();function dPt(r,e,t){return(0,cPt.addDays)(r,-e,t)}});var oze=x(sze=>{"use strict";sze.isYesterday=hPt;var uPt=qe(),pPt=ba(),mPt=bT(),fPt=OP();function hPt(r,e){return(0,mPt.isSameDay)((0,uPt.constructFrom)((e==null?void 0:e.in)||r,r),(0,fPt.subDays)((0,pPt.constructNow)((e==null?void 0:e.in)||r),1))}});var dze=x(cze=>{"use strict";cze.lastDayOfDecade=gPt;var lze=X();function gPt(r,e){let t=(0,lze.toDate)(r,e==null?void 0:e.in),n=t.getFullYear(),a=9+Math.floor(n/10)*10;return t.setFullYear(a+1,0,0),t.setHours(0,0,0,0),(0,lze.toDate)(t,e==null?void 0:e.in)}});var R5=x(uze=>{"use strict";uze.lastDayOfWeek=kPt;var yPt=ki(),vPt=X();function kPt(r,e){var o,l,c,d,u,p,m,f;let t=(0,yPt.getDefaultOptions)(),n=(f=(m=(d=(c=e==null?void 0:e.weekStartsOn)!=null?c:(l=(o=e==null?void 0:e.locale)==null?void 0:o.options)==null?void 0:l.weekStartsOn)!=null?d:t.weekStartsOn)!=null?m:(p=(u=t.locale)==null?void 0:u.options)==null?void 0:p.weekStartsOn)!=null?f:0,a=(0,vPt.toDate)(r,e==null?void 0:e.in),i=a.getDay(),s=(i<n?-7:0)+6-(i-n);return a.setHours(0,0,0,0),a.setDate(a.getDate()+s),a}});var mze=x(pze=>{"use strict";pze.lastDayOfISOWeek=TPt;var bPt=R5();function TPt(r,e){return(0,bPt.lastDayOfWeek)(r,{...e,weekStartsOn:1})}});var hze=x(fze=>{"use strict";fze.lastDayOfISOWeekYear=CPt;var wPt=qe(),SPt=hf(),xPt=Cd();function CPt(r,e){let t=(0,SPt.getISOWeekYear)(r,e),n=(0,wPt.constructFrom)((e==null?void 0:e.in)||r,0);n.setFullYear(t+1,0,4),n.setHours(0,0,0,0);let a=(0,xPt.startOfISOWeek)(n,e);return a.setDate(a.getDate()-1),a}});var yze=x(gze=>{"use strict";gze.lastDayOfQuarter=DPt;var EPt=X();function DPt(r,e){let t=(0,EPt.toDate)(r,e==null?void 0:e.in),n=t.getMonth(),a=n-n%3+3;return t.setMonth(a,0),t.setHours(0,0,0,0),t}});var kze=x(vze=>{"use strict";vze.lastDayOfYear=MPt;var PPt=X();function MPt(r,e){let t=(0,PPt.toDate)(r,e==null?void 0:e.in),n=t.getFullYear();return t.setFullYear(n+1,0,0),t.setHours(0,0,0,0),t}});var Tze=x(F5=>{"use strict";F5.lightFormat=OPt;Object.defineProperty(F5,"lightFormatters",{enumerable:!0,get:function(){return bze.lightFormatters}});var bze=I9(),APt=dp(),_Pt=X(),IPt=/(\w)\1*|''|'(''|[^'])+('|$)|./g,NPt=/^'([^]*?)'?$/,RPt=/''/g,FPt=/[a-zA-Z]/;function OPt(r,e){let t=(0,_Pt.toDate)(r);if(!(0,APt.isValid)(t))throw new RangeError("Invalid time value");let n=e.match(IPt);return n?n.map(i=>{if(i==="''")return"'";let s=i[0];if(s==="'")return LPt(i);let o=bze.lightFormatters[s];if(o)return o(t,i);if(s.match(FPt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+s+"`");return i}).join(""):""}function LPt(r){let e=r.match(NPt);return e?e[1].replace(RPt,"'"):r}});var xze=x(Sze=>{"use strict";Sze.milliseconds=zPt;var wze=bt();function zPt({years:r,months:e,weeks:t,days:n,hours:a,minutes:i,seconds:s}){let o=0;r&&(o+=r*wze.daysInYear),e&&(o+=e*(wze.daysInYear/12)),t&&(o+=t*7),n&&(o+=n);let l=o*24*60*60;return a&&(l+=a*60*60),i&&(l+=i*60),s&&(l+=s),Math.trunc(l*1e3)}});var Eze=x(Cze=>{"use strict";Cze.millisecondsToHours=$Pt;var jPt=bt();function $Pt(r){let e=r/jPt.millisecondsInHour;return Math.trunc(e)}});var Pze=x(Dze=>{"use strict";Dze.millisecondsToMinutes=UPt;var BPt=bt();function UPt(r){let e=r/BPt.millisecondsInMinute;return Math.trunc(e)}});var Aze=x(Mze=>{"use strict";Mze.millisecondsToSeconds=VPt;var HPt=bt();function VPt(r){let e=r/HPt.millisecondsInSecond;return Math.trunc(e)}});var Ize=x(_ze=>{"use strict";_ze.minutesToHours=WPt;var qPt=bt();function WPt(r){let e=r/qPt.minutesInHour;return Math.trunc(e)}});var Rze=x(Nze=>{"use strict";Nze.minutesToMilliseconds=GPt;var YPt=bt();function GPt(r){return Math.trunc(r*YPt.millisecondsInMinute)}});var Oze=x(Fze=>{"use strict";Fze.minutesToSeconds=ZPt;var KPt=bt();function ZPt(r){return Math.trunc(r*KPt.secondsInMinute)}});var zze=x(Lze=>{"use strict";Lze.monthsToQuarters=JPt;var QPt=bt();function JPt(r){let e=r/QPt.monthsInQuarter;return Math.trunc(e)}});var $ze=x(jze=>{"use strict";jze.monthsToYears=e0t;var XPt=bt();function e0t(r){let e=r/XPt.monthsInYear;return Math.trunc(e)}});var mp=x(Bze=>{"use strict";Bze.nextDay=n0t;var t0t=xd(),r0t=xP();function n0t(r,e,t){let n=e-(0,r0t.getDay)(r,t);return n<=0&&(n+=7),(0,t0t.addDays)(r,n,t)}});var Hze=x(Uze=>{"use strict";Uze.nextFriday=i0t;var a0t=mp();function i0t(r,e){return(0,a0t.nextDay)(r,5,e)}});var qze=x(Vze=>{"use strict";Vze.nextMonday=o0t;var s0t=mp();function o0t(r,e){return(0,s0t.nextDay)(r,1,e)}});var Yze=x(Wze=>{"use strict";Wze.nextSaturday=c0t;var l0t=mp();function c0t(r,e){return(0,l0t.nextDay)(r,6,e)}});var Kze=x(Gze=>{"use strict";Gze.nextSunday=u0t;var d0t=mp();function u0t(r,e){return(0,d0t.nextDay)(r,0,e)}});var Qze=x(Zze=>{"use strict";Zze.nextThursday=m0t;var p0t=mp();function m0t(r,e){return(0,p0t.nextDay)(r,4,e)}});var Xze=x(Jze=>{"use strict";Jze.nextTuesday=h0t;var f0t=mp();function h0t(r,e){return(0,f0t.nextDay)(r,2,e)}});var tje=x(eje=>{"use strict";eje.nextWednesday=y0t;var g0t=mp();function y0t(r,e){return(0,g0t.nextDay)(r,3,e)}});var ije=x(aje=>{"use strict";aje.parseISO=k0t;var xL=bt(),v0t=qe(),rje=X();function k0t(r,e){var c;let t=()=>(0,v0t.constructFrom)(e==null?void 0:e.in,NaN),n=(c=e==null?void 0:e.additionalDigits)!=null?c:2,a=S0t(r),i;if(a.date){let d=x0t(a.date,n);i=C0t(d.restDateString,d.year)}if(!i||isNaN(+i))return t();let s=+i,o=0,l;if(a.time&&(o=E0t(a.time),isNaN(o)))return t();if(a.timezone){if(l=D0t(a.timezone),isNaN(l))return t()}else{let d=new Date(s+o),u=(0,rje.toDate)(0,e==null?void 0:e.in);return u.setFullYear(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate()),u.setHours(d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds(),d.getUTCMilliseconds()),u}return(0,rje.toDate)(s+o+l,e==null?void 0:e.in)}var SL={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},b0t=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,T0t=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,w0t=/^([+-])(\d{2})(?::?(\d{2}))?$/;function S0t(r){let e={},t=r.split(SL.dateTimeDelimiter),n;if(t.length>2)return e;if(/:/.test(t[0])?n=t[0]:(e.date=t[0],n=t[1],SL.timeZoneDelimiter.test(e.date)&&(e.date=r.split(SL.timeZoneDelimiter)[0],n=r.substr(e.date.length,r.length))),n){let a=SL.timezone.exec(n);a?(e.time=n.replace(a[1],""),e.timezone=a[1]):e.time=n}return e}function x0t(r,e){let t=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+e)+"})|(\\d{2}|[+-]\\d{"+(2+e)+"})$)"),n=r.match(t);if(!n)return{year:NaN,restDateString:""};let a=n[1]?parseInt(n[1]):null,i=n[2]?parseInt(n[2]):null;return{year:i===null?a:i*100,restDateString:r.slice((n[1]||n[2]).length)}}function C0t(r,e){if(e===null)return new Date(NaN);let t=r.match(b0t);if(!t)return new Date(NaN);let n=!!t[4],a=LP(t[1]),i=LP(t[2])-1,s=LP(t[3]),o=LP(t[4]),l=LP(t[5])-1;if(n)return I0t(e,o,l)?P0t(e,o,l):new Date(NaN);{let c=new Date(0);return!A0t(e,i,s)||!_0t(e,a)?new Date(NaN):(c.setUTCFullYear(e,i,Math.max(a,s)),c)}}function LP(r){return r?parseInt(r):1}function E0t(r){let e=r.match(T0t);if(!e)return NaN;let t=O5(e[1]),n=O5(e[2]),a=O5(e[3]);return N0t(t,n,a)?t*xL.millisecondsInHour+n*xL.millisecondsInMinute+a*1e3:NaN}function O5(r){return r&&parseFloat(r.replace(",","."))||0}function D0t(r){if(r==="Z")return 0;let e=r.match(w0t);if(!e)return 0;let t=e[1]==="+"?-1:1,n=parseInt(e[2]),a=e[3]&&parseInt(e[3])||0;return R0t(n,a)?t*(n*xL.millisecondsInHour+a*xL.millisecondsInMinute):NaN}function P0t(r,e,t){let n=new Date(0);n.setUTCFullYear(r,0,4);let a=n.getUTCDay()||7,i=(e-1)*7+t+1-a;return n.setUTCDate(n.getUTCDate()+i),n}var M0t=[31,null,31,30,31,30,31,31,30,31,30,31];function nje(r){return r%400===0||r%4===0&&r%100!==0}function A0t(r,e,t){return e>=0&&e<=11&&t>=1&&t<=(M0t[e]||(nje(r)?29:28))}function _0t(r,e){return e>=1&&e<=(nje(r)?366:365)}function I0t(r,e,t){return e>=1&&e<=53&&t>=0&&t<=6}function N0t(r,e,t){return r===24?e===0&&t===0:t>=0&&t<60&&e>=0&&e<60&&r>=0&&r<25}function R0t(r,e){return e>=0&&e<=59}});var lje=x(oje=>{"use strict";oje.parseJSON=F0t;var sje=X();function F0t(r,e){let t=r.match(/(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(?:\.(\d{0,7}))?(?:Z|(.)(\d{2}):?(\d{2})?)?/);return t?(0,sje.toDate)(Date.UTC(+t[1],+t[2]-1,+t[3],+t[4]-(+t[9]||0)*(t[8]=="-"?-1:1),+t[5]-(+t[10]||0)*(t[8]=="-"?-1:1),+t[6],+((t[7]||"0")+"00").substring(0,3)),e==null?void 0:e.in):(0,sje.toDate)(NaN,e==null?void 0:e.in)}});var fp=x(cje=>{"use strict";cje.previousDay=z0t;var O0t=xP(),L0t=OP();function z0t(r,e,t){let n=(0,O0t.getDay)(r,t)-e;return n<=0&&(n+=7),(0,L0t.subDays)(r,n,t)}});var uje=x(dje=>{"use strict";dje.previousFriday=$0t;var j0t=fp();function $0t(r,e){return(0,j0t.previousDay)(r,5,e)}});var mje=x(pje=>{"use strict";pje.previousMonday=U0t;var B0t=fp();function U0t(r,e){return(0,B0t.previousDay)(r,1,e)}});var hje=x(fje=>{"use strict";fje.previousSaturday=V0t;var H0t=fp();function V0t(r,e){return(0,H0t.previousDay)(r,6,e)}});var yje=x(gje=>{"use strict";gje.previousSunday=W0t;var q0t=fp();function W0t(r,e){return(0,q0t.previousDay)(r,0,e)}});var kje=x(vje=>{"use strict";vje.previousThursday=G0t;var Y0t=fp();function G0t(r,e){return(0,Y0t.previousDay)(r,4,e)}});var Tje=x(bje=>{"use strict";bje.previousTuesday=Z0t;var K0t=fp();function Z0t(r,e){return(0,K0t.previousDay)(r,2,e)}});var Sje=x(wje=>{"use strict";wje.previousWednesday=J0t;var Q0t=fp();function J0t(r,e){return(0,Q0t.previousDay)(r,3,e)}});var Cje=x(xje=>{"use strict";xje.quartersToMonths=eMt;var X0t=bt();function eMt(r){return Math.trunc(r*X0t.monthsInQuarter)}});var Dje=x(Eje=>{"use strict";Eje.quartersToYears=rMt;var tMt=bt();function rMt(r){let e=r/tMt.quartersInYear;return Math.trunc(e)}});var Mje=x(Pje=>{"use strict";Pje.roundToNearestHours=sMt;var nMt=up(),aMt=qe(),iMt=X();function sMt(r,e){var u,p;let t=(u=e==null?void 0:e.nearestTo)!=null?u:1;if(t<1||t>12)return(0,aMt.constructFrom)((e==null?void 0:e.in)||r,NaN);let n=(0,iMt.toDate)(r,e==null?void 0:e.in),a=n.getMinutes()/60,i=n.getSeconds()/60/60,s=n.getMilliseconds()/1e3/60/60,o=n.getHours()+a+i+s,l=(p=e==null?void 0:e.roundingMethod)!=null?p:"round",d=(0,nMt.getRoundingMethod)(l)(o/t)*t;return n.setHours(d,0,0,0),n}});var _je=x(Aje=>{"use strict";Aje.roundToNearestMinutes=dMt;var oMt=up(),lMt=qe(),cMt=X();function dMt(r,e){var d,u;let t=(d=e==null?void 0:e.nearestTo)!=null?d:1;if(t<1||t>30)return(0,lMt.constructFrom)(r,NaN);let n=(0,cMt.toDate)(r,e==null?void 0:e.in),a=n.getSeconds()/60,i=n.getMilliseconds()/1e3/60,s=n.getMinutes()+a+i,o=(u=e==null?void 0:e.roundingMethod)!=null?u:"round",c=(0,oMt.getRoundingMethod)(o)(s/t)*t;return n.setMinutes(c,0,0),n}});var Nje=x(Ije=>{"use strict";Ije.secondsToHours=pMt;var uMt=bt();function pMt(r){let e=r/uMt.secondsInHour;return Math.trunc(e)}});var Fje=x(Rje=>{"use strict";Rje.secondsToMilliseconds=fMt;var mMt=bt();function fMt(r){return r*mMt.millisecondsInSecond}});var Lje=x(Oje=>{"use strict";Oje.secondsToMinutes=gMt;var hMt=bt();function gMt(r){let e=r/hMt.secondsInMinute;return Math.trunc(e)}});var CL=x(zje=>{"use strict";zje.setMonth=bMt;var yMt=qe(),vMt=H9(),kMt=X();function bMt(r,e,t){let n=(0,kMt.toDate)(r,t==null?void 0:t.in),a=n.getFullYear(),i=n.getDate(),s=(0,yMt.constructFrom)((t==null?void 0:t.in)||r,0);s.setFullYear(a,e,15),s.setHours(0,0,0,0);let o=(0,vMt.getDaysInMonth)(s);return n.setMonth(e,Math.min(i,o)),n}});var $je=x(jje=>{"use strict";jje.set=xMt;var TMt=qe(),wMt=CL(),SMt=X();function xMt(r,e,t){let n=(0,SMt.toDate)(r,t==null?void 0:t.in);return isNaN(+n)?(0,TMt.constructFrom)((t==null?void 0:t.in)||r,NaN):(e.year!=null&&n.setFullYear(e.year),e.month!=null&&(n=(0,wMt.setMonth)(n,e.month)),e.date!=null&&n.setDate(e.date),e.hours!=null&&n.setHours(e.hours),e.minutes!=null&&n.setMinutes(e.minutes),e.seconds!=null&&n.setSeconds(e.seconds),e.milliseconds!=null&&n.setMilliseconds(e.milliseconds),n)}});var Uje=x(Bje=>{"use strict";Bje.setDate=EMt;var CMt=X();function EMt(r,e,t){let n=(0,CMt.toDate)(r,t==null?void 0:t.in);return n.setDate(e),n}});var Vje=x(Hje=>{"use strict";Hje.setDayOfYear=PMt;var DMt=X();function PMt(r,e,t){let n=(0,DMt.toDate)(r,t==null?void 0:t.in);return n.setMonth(0),n.setDate(e),n}});var Yje=x(Wje=>{"use strict";Wje.setDefaultOptions=MMt;var qje=ki();function MMt(r){let e={},t=(0,qje.getDefaultOptions)();for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);for(let n in r)Object.prototype.hasOwnProperty.call(r,n)&&(r[n]===void 0?delete e[n]:e[n]=r[n]);(0,qje.setDefaultOptions)(e)}});var Kje=x(Gje=>{"use strict";Gje.setHours=_Mt;var AMt=X();function _Mt(r,e,t){let n=(0,AMt.toDate)(r,t==null?void 0:t.in);return n.setHours(e),n}});var Qje=x(Zje=>{"use strict";Zje.setMilliseconds=NMt;var IMt=X();function NMt(r,e,t){let n=(0,IMt.toDate)(r,t==null?void 0:t.in);return n.setMilliseconds(e),n}});var Xje=x(Jje=>{"use strict";Jje.setMinutes=FMt;var RMt=X();function FMt(r,e,t){let n=(0,RMt.toDate)(r,t==null?void 0:t.in);return n.setMinutes(e),n}});var t$e=x(e$e=>{"use strict";e$e.setQuarter=zMt;var OMt=CL(),LMt=X();function zMt(r,e,t){let n=(0,LMt.toDate)(r,t==null?void 0:t.in),a=Math.trunc(n.getMonth()/3)+1,i=e-a;return(0,OMt.setMonth)(n,n.getMonth()+i*3)}});var n$e=x(r$e=>{"use strict";r$e.setSeconds=$Mt;var jMt=X();function $Mt(r,e,t){let n=(0,jMt.toDate)(r,t==null?void 0:t.in);return n.setSeconds(e),n}});var s$e=x(i$e=>{"use strict";i$e.setWeekYear=qMt;var BMt=ki(),UMt=qe(),HMt=cp(),a$e=hL(),VMt=X();function qMt(r,e,t){var l,c,d,u,p,m,f,h;let n=(0,BMt.getDefaultOptions)(),a=(h=(f=(u=(d=t==null?void 0:t.firstWeekContainsDate)!=null?d:(c=(l=t==null?void 0:t.locale)==null?void 0:l.options)==null?void 0:c.firstWeekContainsDate)!=null?u:n.firstWeekContainsDate)!=null?f:(m=(p=n.locale)==null?void 0:p.options)==null?void 0:m.firstWeekContainsDate)!=null?h:1,i=(0,HMt.differenceInCalendarDays)((0,VMt.toDate)(r,t==null?void 0:t.in),(0,a$e.startOfWeekYear)(r,t),t),s=(0,UMt.constructFrom)((t==null?void 0:t.in)||r,0);s.setFullYear(e,0,a),s.setHours(0,0,0,0);let o=(0,a$e.startOfWeekYear)(s,t);return o.setDate(o.getDate()+i),o}});var l$e=x(o$e=>{"use strict";o$e.setYear=GMt;var WMt=qe(),YMt=X();function GMt(r,e,t){let n=(0,YMt.toDate)(r,t==null?void 0:t.in);return isNaN(+n)?(0,WMt.constructFrom)((t==null?void 0:t.in)||r,NaN):(n.setFullYear(e),n)}});var d$e=x(c$e=>{"use strict";c$e.startOfDecade=ZMt;var KMt=X();function ZMt(r,e){let t=(0,KMt.toDate)(r,e==null?void 0:e.in),n=t.getFullYear(),a=Math.floor(n/10)*10;return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}});var p$e=x(u$e=>{"use strict";u$e.startOfToday=JMt;var QMt=hP();function JMt(r){return(0,QMt.startOfDay)(Date.now(),r)}});var f$e=x(m$e=>{"use strict";m$e.startOfTomorrow=tAt;var XMt=qe(),eAt=ba();function tAt(r){let e=(0,eAt.constructNow)(r==null?void 0:r.in),t=e.getFullYear(),n=e.getMonth(),a=e.getDate(),i=(0,XMt.constructFrom)(r==null?void 0:r.in,0);return i.setFullYear(t,n,a+1),i.setHours(0,0,0,0),i}});var y$e=x(g$e=>{"use strict";g$e.startOfYesterday=rAt;var h$e=ba();function rAt(r){let e=(0,h$e.constructNow)(r==null?void 0:r.in),t=e.getFullYear(),n=e.getMonth(),a=e.getDate(),i=(0,h$e.constructNow)(r==null?void 0:r.in);return i.setFullYear(t,n,a-1),i.setHours(0,0,0,0),i}});var L5=x(v$e=>{"use strict";v$e.subMonths=aAt;var nAt=vT();function aAt(r,e,t){return(0,nAt.addMonths)(r,-e,t)}});var b$e=x(k$e=>{"use strict";k$e.sub=lAt;var iAt=qe(),sAt=OP(),oAt=L5();function lAt(r,e,t){let{years:n=0,months:a=0,weeks:i=0,days:s=0,hours:o=0,minutes:l=0,seconds:c=0}=e,d=(0,oAt.subMonths)(r,a+n*12,t),u=(0,sAt.subDays)(d,s+i*7,t),p=l+o*60,f=(c+p*60)*1e3;return(0,iAt.constructFrom)((t==null?void 0:t.in)||r,+u-f)}});var w$e=x(T$e=>{"use strict";T$e.subBusinessDays=dAt;var cAt=r9();function dAt(r,e,t){return(0,cAt.addBusinessDays)(r,-e,t)}});var x$e=x(S$e=>{"use strict";S$e.subHours=pAt;var uAt=n9();function pAt(r,e,t){return(0,uAt.addHours)(r,-e,t)}});var E$e=x(C$e=>{"use strict";C$e.subMilliseconds=fAt;var mAt=fP();function fAt(r,e,t){return(0,mAt.addMilliseconds)(r,-e,t)}});var P$e=x(D$e=>{"use strict";D$e.subMinutes=gAt;var hAt=QO();function gAt(r,e,t){return(0,hAt.addMinutes)(r,-e,t)}});var A$e=x(M$e=>{"use strict";M$e.subQuarters=vAt;var yAt=JO();function vAt(r,e,t){return(0,yAt.addQuarters)(r,-e,t)}});var I$e=x(_$e=>{"use strict";_$e.subSeconds=bAt;var kAt=o9();function bAt(r,e,t){return(0,kAt.addSeconds)(r,-e,t)}});var R$e=x(N$e=>{"use strict";N$e.subWeeks=wAt;var TAt=gP();function wAt(r,e,t){return(0,TAt.addWeeks)(r,-e,t)}});var O$e=x(F$e=>{"use strict";F$e.subYears=xAt;var SAt=l9();function xAt(r,e,t){return(0,SAt.addYears)(r,-e,t)}});var z$e=x(L$e=>{"use strict";L$e.weeksToDays=EAt;var CAt=bt();function EAt(r){return Math.trunc(r*CAt.daysInWeek)}});var $$e=x(j$e=>{"use strict";j$e.yearsToDays=PAt;var DAt=bt();function PAt(r){return Math.trunc(r*DAt.daysInYear)}});var U$e=x(B$e=>{"use strict";B$e.yearsToMonths=AAt;var MAt=bt();function AAt(r){return Math.trunc(r*MAt.monthsInYear)}});var V$e=x(H$e=>{"use strict";H$e.yearsToQuarters=IAt;var _At=bt();function IAt(r){return Math.trunc(r*_At.quartersInYear)}});var q$e=x(T=>{"use strict";var z5=J6();Object.keys(z5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===z5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return z5[r]}})});var j5=r9();Object.keys(j5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===j5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return j5[r]}})});var $5=xd();Object.keys($5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===$5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return $5[r]}})});var B5=n9();Object.keys(B5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===B5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return B5[r]}})});var U5=s9();Object.keys(U5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===U5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return U5[r]}})});var H5=fP();Object.keys(H5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===H5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return H5[r]}})});var V5=QO();Object.keys(V5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===V5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return V5[r]}})});var q5=vT();Object.keys(q5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===q5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return q5[r]}})});var W5=JO();Object.keys(W5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===W5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return W5[r]}})});var Y5=o9();Object.keys(Y5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===Y5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return Y5[r]}})});var G5=gP();Object.keys(G5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===G5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return G5[r]}})});var K5=l9();Object.keys(K5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===K5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return K5[r]}})});var Z5=HIe();Object.keys(Z5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===Z5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return Z5[r]}})});var Q5=KIe();Object.keys(Q5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===Q5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return Q5[r]}})});var J5=u9();Object.keys(J5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===J5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return J5[r]}})});var X5=XIe();Object.keys(X5).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===X5[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return X5[r]}})});var eG=ny();Object.keys(eG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===eG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return eG[r]}})});var tG=aNe();Object.keys(tG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===tG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return tG[r]}})});var rG=qe();Object.keys(rG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===rG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return rG[r]}})});var nG=ba();Object.keys(nG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===nG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return nG[r]}})});var aG=oNe();Object.keys(aG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===aG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return aG[r]}})});var iG=hNe();Object.keys(iG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===iG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return iG[r]}})});var sG=cp();Object.keys(sG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===sG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return sG[r]}})});var oG=m9();Object.keys(oG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===oG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return oG[r]}})});var lG=TNe();Object.keys(lG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===lG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return lG[r]}})});var cG=eL();Object.keys(cG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===cG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return cG[r]}})});var dG=h9();Object.keys(dG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===dG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return dG[r]}})});var uG=tL();Object.keys(uG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===uG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return uG[r]}})});var pG=rL();Object.keys(pG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===pG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return pG[r]}})});var mG=nL();Object.keys(mG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===mG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return mG[r]}})});var fG=aL();Object.keys(fG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===fG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return fG[r]}})});var hG=LNe();Object.keys(hG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===hG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return hG[r]}})});var gG=iL();Object.keys(gG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===gG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return gG[r]}})});var yG=sL();Object.keys(yG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===yG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return yG[r]}})});var vG=yP();Object.keys(vG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===vG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return vG[r]}})});var kG=WNe();Object.keys(kG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===kG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return kG[r]}})});var bG=vP();Object.keys(bG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===bG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return bG[r]}})});var TG=KNe();Object.keys(TG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===TG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return TG[r]}})});var wG=k9();Object.keys(wG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===wG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return wG[r]}})});var SG=b9();Object.keys(SG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===SG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return SG[r]}})});var xG=tRe();Object.keys(xG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===xG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return xG[r]}})});var CG=nRe();Object.keys(CG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===CG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return CG[r]}})});var EG=iRe();Object.keys(EG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===EG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return EG[r]}})});var DG=lRe();Object.keys(DG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===DG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return DG[r]}})});var PG=dRe();Object.keys(PG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===PG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return PG[r]}})});var MG=pL();Object.keys(MG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===MG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return MG[r]}})});var AG=fRe();Object.keys(AG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===AG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return AG[r]}})});var _G=vRe();Object.keys(_G).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===_G[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return _G[r]}})});var IG=bRe();Object.keys(IG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===IG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return IG[r]}})});var NG=oL();Object.keys(NG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===NG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return NG[r]}})});var RG=wRe();Object.keys(RG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===RG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return RG[r]}})});var FG=xRe();Object.keys(FG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===FG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return FG[r]}})});var OG=DRe();Object.keys(OG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===OG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return OG[r]}})});var LG=MRe();Object.keys(LG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===LG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return LG[r]}})});var zG=_Re();Object.keys(zG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===zG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return zG[r]}})});var jG=lL();Object.keys(jG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===jG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return jG[r]}})});var $G=NRe();Object.keys($G).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===$G[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return $G[r]}})});var BG=FRe();Object.keys(BG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===BG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return BG[r]}})});var UG=LRe();Object.keys(UG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===UG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return UG[r]}})});var HG=$Re();Object.keys(HG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===HG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return HG[r]}})});var VG=w9();Object.keys(VG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===VG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return VG[r]}})});var qG=T9();Object.keys(qG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===qG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return qG[r]}})});var WG=URe();Object.keys(WG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===WG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return WG[r]}})});var YG=j9();Object.keys(YG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===YG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return YG[r]}})});var GG=$9();Object.keys(GG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===GG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return GG[r]}})});var KG=B9();Object.keys(KG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===KG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return KG[r]}})});var ZG=SFe();Object.keys(ZG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===ZG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return ZG[r]}})});var QG=CFe();Object.keys(QG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===QG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return QG[r]}})});var JG=DFe();Object.keys(JG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===JG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return JG[r]}})});var XG=MFe();Object.keys(XG).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===XG[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return XG[r]}})});var eK=_Fe();Object.keys(eK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===eK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return eK[r]}})});var tK=NFe();Object.keys(tK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===tK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return tK[r]}})});var rK=FFe();Object.keys(rK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===rK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return rK[r]}})});var nK=LFe();Object.keys(nK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===nK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return nK[r]}})});var aK=jFe();Object.keys(aK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===aK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return aK[r]}})});var iK=BFe();Object.keys(iK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===iK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return iK[r]}})});var sK=U9();Object.keys(sK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===sK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return sK[r]}})});var oK=xP();Object.keys(oK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===oK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return oK[r]}})});var lK=A9();Object.keys(lK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===lK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return lK[r]}})});var cK=H9();Object.keys(cK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===cK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return cK[r]}})});var dK=YFe();Object.keys(dK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===dK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return dK[r]}})});var uK=KFe();Object.keys(uK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===uK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return uK[r]}})});var pK=q9();Object.keys(pK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===pK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return pK[r]}})});var mK=JFe();Object.keys(mK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===mK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return mK[r]}})});var fK=W9();Object.keys(fK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===fK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return fK[r]}})});var hK=fL();Object.keys(hK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===hK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return hK[r]}})});var gK=hf();Object.keys(gK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===gK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return gK[r]}})});var yK=rOe();Object.keys(yK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===yK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return yK[r]}})});var vK=aOe();Object.keys(vK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===vK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return vK[r]}})});var kK=sOe();Object.keys(kK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===kK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return kK[r]}})});var bK=lOe();Object.keys(bK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===bK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return bK[r]}})});var TK=uOe();Object.keys(TK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===TK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return TK[r]}})});var wK=f9();Object.keys(wK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===wK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return wK[r]}})});var SK=mOe();Object.keys(SK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===SK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return SK[r]}})});var xK=hOe();Object.keys(xK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===xK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return xK[r]}})});var CK=yOe();Object.keys(CK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===CK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return CK[r]}})});var EK=gL();Object.keys(EK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===EK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return EK[r]}})});var DK=kOe();Object.keys(DK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===DK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return DK[r]}})});var PK=wP();Object.keys(PK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===PK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return PK[r]}})});var MK=SOe();Object.keys(MK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===MK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return MK[r]}})});var AK=COe();Object.keys(AK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===AK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return AK[r]}})});var _K=DOe();Object.keys(_K).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===_K[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return _K[r]}})});var IK=MOe();Object.keys(IK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===IK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return IK[r]}})});var NK=_Oe();Object.keys(NK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===NK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return NK[r]}})});var RK=NOe();Object.keys(RK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===RK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return RK[r]}})});var FK=FOe();Object.keys(FK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===FK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return FK[r]}})});var OK=LOe();Object.keys(OK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===OK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return OK[r]}})});var LK=HOe();Object.keys(LK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===LK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return LK[r]}})});var zK=WOe();Object.keys(zK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===zK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return zK[r]}})});var jK=KOe();Object.keys(jK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===jK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return jK[r]}})});var $K=p9();Object.keys($K).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===$K[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return $K[r]}})});var BK=JOe();Object.keys(BK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===BK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return BK[r]}})});var UK=eLe();Object.keys(UK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===UK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return UK[r]}})});var HK=rLe();Object.keys(HK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===HK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return HK[r]}})});var VK=aLe();Object.keys(VK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===VK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return VK[r]}})});var qK=sLe();Object.keys(qK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===qK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return qK[r]}})});var WK=y9();Object.keys(WK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===WK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return WK[r]}})});var YK=V9();Object.keys(YK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===YK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return YK[r]}})});var GK=o1e();Object.keys(GK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===GK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return GK[r]}})});var KK=c1e();Object.keys(KK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===KK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return KK[r]}})});var ZK=u1e();Object.keys(ZK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===ZK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return ZK[r]}})});var QK=bT();Object.keys(QK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===QK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return QK[r]}})});var JK=x5();Object.keys(JK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===JK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return JK[r]}})});var XK=C5();Object.keys(XK).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===XK[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return XK[r]}})});var e8=b1e();Object.keys(e8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===e8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return e8[r]}})});var t8=D5();Object.keys(t8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===t8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return t8[r]}})});var r8=P5();Object.keys(r8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===r8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return r8[r]}})});var n8=M5();Object.keys(n8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===n8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return n8[r]}})});var a8=_5();Object.keys(a8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===a8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return a8[r]}})});var i8=wL();Object.keys(i8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===i8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return i8[r]}})});var s8=I5();Object.keys(s8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===s8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return s8[r]}})});var o8=X6();Object.keys(o8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===o8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return o8[r]}})});var l8=e9();Object.keys(l8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===l8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return l8[r]}})});var c8=I1e();Object.keys(c8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===c8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return c8[r]}})});var d8=R1e();Object.keys(d8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===d8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return d8[r]}})});var u8=O1e();Object.keys(u8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===u8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return u8[r]}})});var p8=z1e();Object.keys(p8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===p8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return p8[r]}})});var m8=$1e();Object.keys(m8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===m8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return m8[r]}})});var f8=U1e();Object.keys(f8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===f8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return f8[r]}})});var h8=V1e();Object.keys(h8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===h8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return h8[r]}})});var g8=W1e();Object.keys(g8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===g8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return g8[r]}})});var y8=G1e();Object.keys(y8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===y8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return y8[r]}})});var v8=Z1e();Object.keys(v8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===v8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return v8[r]}})});var k8=J1e();Object.keys(k8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===k8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return k8[r]}})});var b8=eze();Object.keys(b8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===b8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return b8[r]}})});var T8=dp();Object.keys(T8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===T8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return T8[r]}})});var w8=rze();Object.keys(w8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===w8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return w8[r]}})});var S8=mP();Object.keys(S8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===S8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return S8[r]}})});var x8=aze();Object.keys(x8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===x8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return x8[r]}})});var C8=oze();Object.keys(C8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===C8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return C8[r]}})});var E8=dze();Object.keys(E8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===E8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return E8[r]}})});var D8=mze();Object.keys(D8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===D8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return D8[r]}})});var P8=hze();Object.keys(P8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===P8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return P8[r]}})});var M8=Y9();Object.keys(M8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===M8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return M8[r]}})});var A8=yze();Object.keys(A8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===A8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return A8[r]}})});var _8=R5();Object.keys(_8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===_8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return _8[r]}})});var I8=kze();Object.keys(I8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===I8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return I8[r]}})});var N8=Tze();Object.keys(N8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===N8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return N8[r]}})});var R8=c9();Object.keys(R8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===R8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return R8[r]}})});var F8=xze();Object.keys(F8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===F8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return F8[r]}})});var O8=Eze();Object.keys(O8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===O8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return O8[r]}})});var L8=Pze();Object.keys(L8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===L8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return L8[r]}})});var z8=Aze();Object.keys(z8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===z8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return z8[r]}})});var j8=d9();Object.keys(j8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===j8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return j8[r]}})});var $8=Ize();Object.keys($8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===$8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return $8[r]}})});var B8=Rze();Object.keys(B8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===B8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return B8[r]}})});var U8=Oze();Object.keys(U8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===U8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return U8[r]}})});var H8=zze();Object.keys(H8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===H8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return H8[r]}})});var V8=$ze();Object.keys(V8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===V8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return V8[r]}})});var q8=mp();Object.keys(q8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===q8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return q8[r]}})});var W8=Hze();Object.keys(W8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===W8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return W8[r]}})});var Y8=qze();Object.keys(Y8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===Y8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return Y8[r]}})});var G8=Yze();Object.keys(G8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===G8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return G8[r]}})});var K8=Kze();Object.keys(K8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===K8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return K8[r]}})});var Z8=Qze();Object.keys(Z8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===Z8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return Z8[r]}})});var Q8=Xze();Object.keys(Q8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===Q8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return Q8[r]}})});var J8=tje();Object.keys(J8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===J8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return J8[r]}})});var X8=w5();Object.keys(X8).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===X8[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return X8[r]}})});var e7=ije();Object.keys(e7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===e7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return e7[r]}})});var t7=lje();Object.keys(t7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===t7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return t7[r]}})});var r7=fp();Object.keys(r7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===r7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return r7[r]}})});var n7=uje();Object.keys(n7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===n7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return n7[r]}})});var a7=mje();Object.keys(a7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===a7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return a7[r]}})});var i7=hje();Object.keys(i7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===i7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return i7[r]}})});var s7=yje();Object.keys(s7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===s7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return s7[r]}})});var o7=kje();Object.keys(o7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===o7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return o7[r]}})});var l7=Tje();Object.keys(l7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===l7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return l7[r]}})});var c7=Sje();Object.keys(c7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===c7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return c7[r]}})});var d7=Cje();Object.keys(d7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===d7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return d7[r]}})});var u7=Dje();Object.keys(u7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===u7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return u7[r]}})});var p7=Mje();Object.keys(p7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===p7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return p7[r]}})});var m7=_je();Object.keys(m7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===m7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return m7[r]}})});var f7=Nje();Object.keys(f7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===f7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return f7[r]}})});var h7=Fje();Object.keys(h7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===h7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return h7[r]}})});var g7=Lje();Object.keys(g7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===g7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return g7[r]}})});var y7=$je();Object.keys(y7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===y7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return y7[r]}})});var v7=Uje();Object.keys(v7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===v7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return v7[r]}})});var k7=AP();Object.keys(k7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===k7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return k7[r]}})});var b7=Vje();Object.keys(b7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===b7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return b7[r]}})});var T7=Yje();Object.keys(T7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===T7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return T7[r]}})});var w7=Kje();Object.keys(w7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===w7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return w7[r]}})});var S7=HY();Object.keys(S7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===S7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return S7[r]}})});var x7=EY();Object.keys(x7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===x7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return x7[r]}})});var C7=i9();Object.keys(C7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===C7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return C7[r]}})});var E7=Qje();Object.keys(E7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===E7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return E7[r]}})});var D7=Xje();Object.keys(D7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===D7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return D7[r]}})});var P7=CL();Object.keys(P7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===P7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return P7[r]}})});var M7=t$e();Object.keys(M7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===M7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return M7[r]}})});var A7=n$e();Object.keys(A7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===A7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return A7[r]}})});var _7=SY();Object.keys(_7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===_7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return _7[r]}})});var I7=s$e();Object.keys(I7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===I7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return I7[r]}})});var N7=l$e();Object.keys(N7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===N7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return N7[r]}})});var R7=hP();Object.keys(R7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===R7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return R7[r]}})});var F7=d$e();Object.keys(F7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===F7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return F7[r]}})});var O7=S5();Object.keys(O7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===O7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return O7[r]}})});var L7=Cd();Object.keys(L7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===L7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return L7[r]}})});var z7=kT();Object.keys(z7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===z7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return z7[r]}})});var j7=E5();Object.keys(j7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===j7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return j7[r]}})});var $7=kP();Object.keys($7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===$7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return $7[r]}})});var B7=cL();Object.keys(B7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===B7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return B7[r]}})});var U7=A5();Object.keys(U7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===U7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return U7[r]}})});var H7=p$e();Object.keys(H7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===H7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return H7[r]}})});var V7=f$e();Object.keys(V7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===V7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return V7[r]}})});var q7=ic();Object.keys(q7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===q7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return q7[r]}})});var W7=hL();Object.keys(W7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===W7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return W7[r]}})});var Y7=mL();Object.keys(Y7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===Y7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return Y7[r]}})});var G7=y$e();Object.keys(G7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===G7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return G7[r]}})});var K7=b$e();Object.keys(K7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===K7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return K7[r]}})});var Z7=w$e();Object.keys(Z7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===Z7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return Z7[r]}})});var Q7=OP();Object.keys(Q7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===Q7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return Q7[r]}})});var J7=x$e();Object.keys(J7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===J7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return J7[r]}})});var X7=g9();Object.keys(X7).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===X7[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return X7[r]}})});var eZ=E$e();Object.keys(eZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===eZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return eZ[r]}})});var tZ=P$e();Object.keys(tZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===tZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return tZ[r]}})});var rZ=L5();Object.keys(rZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===rZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return rZ[r]}})});var nZ=A$e();Object.keys(nZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===nZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return nZ[r]}})});var aZ=I$e();Object.keys(aZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===aZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return aZ[r]}})});var iZ=R$e();Object.keys(iZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===iZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return iZ[r]}})});var sZ=O$e();Object.keys(sZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===sZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return sZ[r]}})});var oZ=X();Object.keys(oZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===oZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return oZ[r]}})});var lZ=J9();Object.keys(lZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===lZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return lZ[r]}})});var cZ=z$e();Object.keys(cZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===cZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return cZ[r]}})});var dZ=$$e();Object.keys(dZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===dZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return dZ[r]}})});var uZ=U$e();Object.keys(uZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===uZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return uZ[r]}})});var pZ=V$e();Object.keys(pZ).forEach(function(r){r==="default"||r==="__esModule"||r in T&&T[r]===pZ[r]||Object.defineProperty(T,r,{enumerable:!0,get:function(){return pZ[r]}})})});var cy,Yi,EL,W$e=y(()=>{cy=require("obsidian");mT();hT();Z6();KO();K();fs();Yi=N({tag:"Services/MicrosoftCalendarService"}),EL=class extends yT{constructor(t,n){super();this.providerId="microsoft";this.providerName="Microsoft Calendar";this.baseUrl="https://graph.microsoft.com/v1.0";this.cache=new Map;this.refreshTimer=null;this.availableCalendars=[];this.lastManualRefresh=0;this.syncStatus={lastAttempt:null,lastSuccess:null,lastError:null,calendarErrors:[],calendarsChecked:0,eventsLoaded:0};this.plugin=t,this.oauthService=n}sleep(t){return new Promise(n=>window.setTimeout(n,t))}async withRetry(t,n){let{MAX_RETRIES:a,INITIAL_BACKOFF_MS:i,MAX_BACKOFF_MS:s,BACKOFF_MULTIPLIER:o}=pT.RATE_LIMIT,l=null,c=i;for(let d=0;d<=a;d++)try{return await t()}catch(u){l=u;let p=u.status===429,m=u.status>=500&&u.status<600,f=d===a;if(!p&&!m)throw u;if(f)throw Yi.error(`[MicrosoftCalendar] ${n} failed after ${a} retries`,{category:"provider",operation:"retry-microsoft-calendar-request",details:{context:n,attempts:a},error:u}),u;let h=Math.random()*.3*c,g=Math.min(c+h,s);Yi.warn("Microsoft Calendar request failed and will be retried",{category:"provider",operation:"retry-microsoft-calendar-request",details:{context:n,status:u.status,delayMs:Math.round(g),nextAttempt:d+1,maxRetries:a},error:u}),await this.sleep(g),c=Math.min(c*o,s)}throw l instanceof Error?l:new Error(String(l))}getAvailableCalendars(){return this.availableCalendars}getSyncStatus(){return{...this.syncStatus,calendarErrors:this.syncStatus.calendarErrors.map(t=>({...t}))}}getEnabledCalendarIds(){return this.plugin.settings.enabledMicrosoftCalendars.length===0?this.availableCalendars.map(t=>t.id):this.plugin.settings.enabledMicrosoftCalendars}getSyncToken(t){var n;return(n=this.plugin.settings.microsoftCalendarSyncTokens)==null?void 0:n[t]}async saveSyncToken(t,n){this.plugin.settings.microsoftCalendarSyncTokens||(this.plugin.settings.microsoftCalendarSyncTokens={}),this.plugin.settings.microsoftCalendarSyncTokens[t]!==n&&(this.plugin.settings.microsoftCalendarSyncTokens[t]=n,await this.persistSettingsDataOnly())}async clearSyncToken(t){this.plugin.settings.microsoftCalendarSyncTokens&&t in this.plugin.settings.microsoftCalendarSyncTokens&&(delete this.plugin.settings.microsoftCalendarSyncTokens[t],await this.persistSettingsDataOnly())}async persistSettingsDataOnly(){let t=this.plugin.saveSettingsDataOnly;typeof t=="function"&&await t.call(this.plugin)}getErrorMessage(t){if(t instanceof Error)return t.message;if(typeof t=="object"&&t!==null&&"message"in t){let n=t.message;if(typeof n=="string")return n}return String(t)}getErrorStatus(t){if(typeof t!="object"||t===null)return;let n=t.status;if(typeof n=="number")return n;let a=t.statusCode;return typeof a=="number"?a:void 0}createSyncError(t,n){return{calendarId:n==null?void 0:n.id,calendarName:n==null?void 0:n.summary,message:this.getErrorMessage(t),status:this.getErrorStatus(t),occurredAt:new Date().toISOString()}}formatSyncErrorSummary(t){if(t.length===0)return null;let n=t[0],a=n.calendarName||n.calendarId||"Microsoft calendar";return t.length===1?`${a}: ${n.message}`:`${t.length} Microsoft calendars failed to refresh. First error: ${a}: ${n.message}`}async initialize(){await this.oauthService.isConnected("microsoft")&&(await this.refreshAllCalendars(),this.startRefreshTimer())}startRefreshTimer(){this.refreshTimer&&window.clearTimeout(this.refreshTimer),this.refreshTimer=window.setTimeout(()=>{this.refreshTimer=null,this.refreshAllCalendars().catch(t=>{Yi.error("Microsoft Calendar refresh failed:",{category:"provider",operation:"microsoft-calendar-refresh",error:t})}).finally(()=>{this.oauthService.isConnected("microsoft").then(t=>{t&&this.startRefreshTimer()})})},pT.REFRESH_INTERVAL_MS)}stopRefreshTimer(){this.refreshTimer&&(window.clearTimeout(this.refreshTimer),this.refreshTimer=null)}async listCalendars(){try{return await this.withRetry(async()=>{let t=await this.oauthService.getValidToken("microsoft"),n=[],a=`${this.baseUrl}/me/calendars`;for(;a;){let s=(await(0,cy.requestUrl)({url:a,method:"GET",headers:{Authorization:`Bearer ${t}`,Accept:"application/json"}})).json,o=s.value||[];n.push(...o),a=s["@odata.nextLink"]}return n.map(i=>({id:i.id,summary:i.name,name:i.name,color:i.hexColor||void 0,backgroundColor:i.hexColor||void 0,primary:i.isDefaultCalendar||!1,isDefault:i.isDefaultCalendar||!1}))},"List calendars")}catch(t){throw Yi.error("Failed to list calendars:",{category:"provider",operation:"list-calendars",error:t}),new qa(`Failed to fetch calendar list: ${t.message}`,t.status)}}async fetchCalendarEvents(t,n,a){try{let i=await this.oauthService.getValidToken("microsoft"),s=this.getSyncToken(t),o=[],l,c,d=!s,u=!1,p;if(s)p=s;else{let m=new Date,f=n||new Date(m.getTime()-720*60*60*1e3),h=a||new Date(m.getTime()+2160*60*60*1e3),g=new URLSearchParams({startDateTime:f.toISOString(),endDateTime:h.toISOString(),$top:pT.MAX_RESULTS_PER_REQUEST.toString()});p=`${this.baseUrl}/me/calendars/${encodeURIComponent(t)}/calendarView?${g.toString()}`}do try{let f=(await this.withRetry(async()=>{let g=[`odata.maxpagesize=${pT.MAX_RESULTS_PER_REQUEST}`,'outlook.timezone="UTC"'];return await(0,cy.requestUrl)({url:l||p,method:"GET",headers:{Authorization:`Bearer ${i}`,Accept:"application/json",Prefer:g.join(", ")}})},`Fetch events for ${t}`)).json,h=f.value||[];!d&&h.some(g=>g.isCancelled||g["@removed"])&&(u=!0),o.push(...h),l=f["@odata.nextLink"],f["@odata.deltaLink"]&&(c=f["@odata.deltaLink"])}catch(m){if(m.status===410)return await this.clearSyncToken(t),await this.fetchCalendarEvents(t,n,a);throw m}while(l);return c&&await this.saveSyncToken(t,c),{events:o,isFullSync:d,hasDeletes:u}}catch(i){Yi.error(`Failed to fetch events from calendar ${t}:`,{category:"provider",operation:"fetch-events-calendar",error:i});let s=new Error(`Failed to fetch calendar events: ${this.getErrorMessage(i)}`),o=this.getErrorStatus(i);throw s.status=o,s.statusCode=o,s}}convertToICSEvent(t,n){var c,d;if(!t.start||!t.end)throw new Error("Event missing start/end");let a,i,s=t.isAllDay||!1;if(s)a=t.start.dateTime.split("T")[0],i=t.end.dateTime.split("T")[0];else{let{format:u,parseISO:p}=q$e(),m=this.ensureUtcDateTime(t.start.dateTime,t.start.timeZone),f=this.ensureUtcDateTime(t.end.dateTime,t.end.timeZone),h=p(m),g=p(f);a=u(h,"yyyy-MM-dd'T'HH:mm:ss"),i=u(g,"yyyy-MM-dd'T'HH:mm:ss")}let o="#0078D4",l=t.seriesMasterId?`microsoft-${n}-${t.seriesMasterId}`:void 0;return{id:`microsoft-${n}-${t.id}`,subscriptionId:`microsoft-${n}`,title:t.subject||"Untitled Event",description:t.bodyPreview||((c=t.body)==null?void 0:c.content),start:a,end:i,allDay:s,location:(d=t.location)==null?void 0:d.displayName,url:t.webLink,recurringEventId:l,color:o}}async refreshAllCalendars(){var n,a;let t=new Date().toISOString();this.syncStatus={...this.syncStatus,lastAttempt:t,lastError:null,calendarErrors:[],calendarsChecked:0,eventsLoaded:((n=this.cache.get("all"))==null?void 0:n.length)||0};try{if(!await this.oauthService.isConnected("microsoft"))return;this.availableCalendars=await this.listCalendars();let s=this.getEnabledCalendarIds(),o=new Map(this.availableCalendars.map(d=>[d.id,d])),l=[],c=this.cache.get("all")||[];for(let d of s)try{let{events:u,isFullSync:p}=await this.fetchCalendarEvents(d);if(p){c=c.filter(f=>f.subscriptionId!==`microsoft-${d}`);let m=u.filter(f=>!f.isCancelled&&!f["@removed"]).map(f=>this.convertToICSEvent(f,d));c.push(...m)}else for(let m of u){let f=m["@removed"],h=`microsoft-${d}-${m.id}`,g=c.findIndex(v=>v.id===h);if(f){g!==-1&&c.splice(g,1);continue}if(m.isCancelled)g!==-1&&c.splice(g,1);else try{let v=this.convertToICSEvent(m,d);g!==-1?c[g]=v:c.push(v)}catch(v){Yi.warn("[MicrosoftCalendar] Failed to convert event during refresh",{category:"provider",operation:"convert-event-refresh",details:{value:m.id},error:v})}}}catch(u){Yi.error(`Failed to fetch events from calendar ${d}:`,{category:"provider",operation:"fetch-events-calendar",error:u}),l.push(this.createSyncError(u,o.get(d)))}this.cache.set("all",c),this.syncStatus={lastAttempt:t,lastSuccess:l.length===0?new Date().toISOString():this.syncStatus.lastSuccess,lastError:this.formatSyncErrorSummary(l),calendarErrors:l,calendarsChecked:s.length,eventsLoaded:c.length},this.emit("data-changed")}catch(i){Yi.error("Failed to refresh Microsoft calendars:",{category:"provider",operation:"refresh-microsoft-calendars",error:i});let s=this.createSyncError(i);this.syncStatus={...this.syncStatus,lastAttempt:t,lastError:s.message,calendarErrors:[s],calendarsChecked:0,eventsLoaded:((a=this.cache.get("all"))==null?void 0:a.length)||0},this.getErrorMessage(i).includes("401")&&Yi.warn("[MicrosoftCalendar] Authentication expired - caller should handle re-authentication",{category:"provider",operation:"authentication-expired-caller-should-handle-re-authentication"})}}getAllEvents(){return this.cache.get("all")||[]}getCachedEvents(){return this.getAllEvents()}async getEvents(t,n,a){let{events:i}=await this.fetchCalendarEvents(t,n,a),s=[];for(let o of i)if(!(o["@removed"]||o.isCancelled))try{s.push(this.convertToICSEvent(o,t))}catch(l){Yi.warn("[MicrosoftCalendar] Skipping event due to conversion failure",{category:"provider",operation:"skipping-event-due-conversion",details:{value:o.id},error:l})}return s}async manualRefresh(){return this.refresh()}async disconnect(){this.clearCache(),this.stopRefreshTimer()}async refresh(){let t=Date.now(),n=t-this.lastManualRefresh,a=pT.MIN_MANUAL_REFRESH_INTERVAL_MS;if(n<a){let i=a-n;Te(this.plugin.emitter,`Please wait ${Math.ceil(i/1e3)}s before refreshing again`);return}this.lastManualRefresh=t,await this.refreshAllCalendars()}clearCache(){this.cache.clear()}async updateEvent(t,n,a){YO(t),gT(n),sl(a,"updates");try{let i=await this.oauthService.getValidToken("microsoft"),s={};(a.title!==void 0||a.summary!==void 0)&&(s.subject=a.summary||a.title),a.description!==void 0&&(s.body={contentType:"text",content:a.description});let o=!1,l=!1;a.start!==void 0&&(o=!0,typeof a.start=="string"?(l=a.isAllDay!==void 0?a.isAllDay:!/T/.test(a.start),s.start={dateTime:a.start,timeZone:"UTC"}):(s.start={dateTime:a.start.dateTime||a.start.date,timeZone:a.start.timeZone||"UTC"},a.start.date&&!a.start.dateTime&&(l=!0))),a.end!==void 0&&(o=!0,typeof a.end=="string"?s.end={dateTime:a.end,timeZone:"UTC"}:s.end={dateTime:a.end.dateTime||a.end.date,timeZone:a.end.timeZone||"UTC"}),a.isAllDay!==void 0?s.isAllDay=a.isAllDay:o&&(s.isAllDay=l),a.location!==void 0&&(s.location={displayName:a.location});let d=(await this.withRetry(async()=>await(0,cy.requestUrl)({url:`${this.baseUrl}/me/calendars/${encodeURIComponent(t)}/events/${encodeURIComponent(n)}`,method:"PATCH",headers:{Authorization:`Bearer ${i}`,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(s)}),`Update event ${n}`)).json,u=this.convertToICSEvent(d,t);return await this.refreshAllCalendars(),u}catch(i){throw Yi.error("Failed to update Microsoft Calendar event:",{category:"provider",operation:"update-microsoft-calendar-event",error:i}),i.status===404?new uf(n):i.status===401||i.status===403?new xs("microsoft"):i.status===429?new al:new qa(`Failed to update event: ${i.message}`,i.status)}}async createEvent(t,n){YO(t),sl(n,"event");let a=n.summary||n.title;sl(a,"event.summary"),sl(n.start,"event.start"),sl(n.end,"event.end");try{let i=await this.oauthService.getValidToken("microsoft"),s={subject:a};if(n.description&&(s.body={contentType:"text",content:n.description}),n.location&&(s.location={displayName:n.location}),typeof n.start=="string"){let d=n.isAllDay||!/T/.test(n.start);s.start={dateTime:n.start,timeZone:"UTC"},s.end={dateTime:typeof n.end=="string"?n.end:n.end.dateTime||n.end.date,timeZone:"UTC"},s.isAllDay=d}else{let d=n.end;s.start={dateTime:n.start.dateTime||n.start.date,timeZone:n.start.timeZone||"UTC"},s.end={dateTime:typeof d=="string"?d:d.dateTime||d.date,timeZone:typeof d=="string"?"UTC":d.timeZone||"UTC"},n.start.date&&!n.start.dateTime&&(s.isAllDay=!0)}let l=(await this.withRetry(async()=>await(0,cy.requestUrl)({url:`${this.baseUrl}/me/calendars/${encodeURIComponent(t)}/events`,method:"POST",headers:{Authorization:`Bearer ${i}`,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(s)}),`Create event in ${t}`)).json,c=this.convertToICSEvent(l,t);return await this.refreshAllCalendars(),c}catch(i){throw Yi.error("Failed to create Microsoft Calendar event:",{category:"provider",operation:"create-microsoft-calendar-event",error:i}),i.status===404?new fT(t):i.status===401||i.status===403?new xs("microsoft"):i.status===429?new al:new qa(`Failed to create event: ${i.message}`,i.status)}}async deleteEvent(t,n){YO(t),gT(n);try{let a=await this.oauthService.getValidToken("microsoft");await this.withRetry(async()=>await(0,cy.requestUrl)({url:`${this.baseUrl}/me/calendars/${encodeURIComponent(t)}/events/${encodeURIComponent(n)}`,method:"DELETE",headers:{Authorization:`Bearer ${a}`}}),`Delete event ${n}`),await this.refreshAllCalendars()}catch(a){throw a.status===404?new uf(n):(Yi.error("Failed to delete Microsoft Calendar event:",{category:"provider",operation:"delete-microsoft-calendar-event",error:a}),a.status===401||a.status===403?new xs("microsoft"):a.status===429?new al:new qa(`Failed to delete event: ${a.message}`,a.status))}}async createCalendar(t,n){try{let a=await this.oauthService.getValidToken("microsoft"),s=(await this.withRetry(async()=>await(0,cy.requestUrl)({url:`${this.baseUrl}/me/calendars`,method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({name:t})}),"Create calendar")).json;return this.availableCalendars=await this.listCalendars(),s.id}catch(a){throw Yi.error("Failed to create calendar:",{category:"provider",operation:"create-calendar",error:a}),a.status===401||a.status===403?new xs("microsoft"):a.status===429?new al:new qa(`Failed to create calendar: ${a.message}`,a.status)}}ensureUtcDateTime(t,n){if(!t)throw new Error("Missing dateTime value");return/[+-]\d{2}:\d{2}$/.test(t)||t.endsWith("Z")?t:(n&&n.toUpperCase()!=="UTC"&&Yi.warn(`[MicrosoftCalendar] Falling back to UTC conversion for timezone "${n}"`,{category:"provider",operation:"falling-back-utc-conversion-timezone"}),`${t.replace(/\.\d+$/,"")}Z`)}destroy(){this.stopRefreshTimer(),this.cache.clear(),this.removeAllListeners()}}});function NAt(r,e){return r!==null&&typeof r=="object"&&Object.prototype.hasOwnProperty.call(r,e)}function RAt(r,e){return JSON.stringify(r)===JSON.stringify(e)}function Y$e(r,e,t){return!RAt(r==null?void 0:r.pomodoroState,e)||(r==null?void 0:r.lastPomodoroDate)!==t}function G$e(r,e){return e===void 0?NAt(r,"lastSelectedTaskPath"):(r==null?void 0:r.lastSelectedTaskPath)!==e}var K$e=y(()=>{});var FAt,DL,Z$e=y(()=>{FAt=`
|
||
let timerInterval = null;
|
||
|
||
self.onmessage = function(event) {
|
||
if (event.data && event.data.command === "start") {
|
||
if (timerInterval) {
|
||
clearInterval(timerInterval);
|
||
}
|
||
|
||
timerInterval = setInterval(function() {
|
||
self.postMessage({ type: "tick" });
|
||
}, 1000);
|
||
return;
|
||
}
|
||
|
||
if (event.data && event.data.command === "stop") {
|
||
if (timerInterval) {
|
||
clearInterval(timerInterval);
|
||
timerInterval = null;
|
||
}
|
||
}
|
||
};
|
||
`,DL=class{constructor(e){this.onTick=e;this.worker=null;this.workerUrl=null;this.fallbackInterval=null;this.running=!1}start(){if(!this.running){if(this.running=!0,this.canUseWorker()){this.startWorkerTicker();return}this.fallbackInterval=window.setInterval(this.onTick,1e3)}}stop(){!this.running&&!this.worker&&this.fallbackInterval===null||(this.running=!1,this.worker&&(this.worker.postMessage({command:"stop"}),this.worker.terminate(),this.worker=null),this.workerUrl&&(URL.revokeObjectURL(this.workerUrl),this.workerUrl=null),this.fallbackInterval!==null&&(window.clearInterval(this.fallbackInterval),this.fallbackInterval=null))}destroy(){this.stop()}canUseWorker(){return typeof Worker!="undefined"&&typeof Blob!="undefined"&&typeof URL!="undefined"&&typeof URL.createObjectURL=="function"}startWorkerTicker(){let e=new Blob([FAt],{type:"application/javascript"});this.workerUrl=URL.createObjectURL(e),this.worker=new Worker(this.workerUrl),this.worker.onmessage=t=>{var n;((n=t.data)==null?void 0:n.type)==="tick"&&this.onTick()},this.worker.postMessage({command:"start"})}}});var J$e={};at(J$e,{PomodoroService:()=>zP});function PL(r){return(0,Q$e.moment)(r)}function ML(r){return r!==null&&typeof r=="object"&&typeof r.id=="string"}var Q$e,zn,zt,zP,mZ=y(()=>{Q$e=require("obsidian"),zn=st(iu());Yr();fs();Ba();Me();b6();K$e();Z$e();lO();lN();K();zt=N({tag:"Services/PomodoroService"});zP=class{constructor(e){this.ticker=null;this.activeAudioContexts=new Set;this.cleanupTimeouts=new Set;this.lastSelectedTaskPathLoaded=!1;this.completionInProgress=!1;this.plugin=e,this.state={isRunning:!1,timeRemaining:e.settings.pomodoroWorkDuration*60}}translate(e,t){return this.plugin.i18n.translate(e,t)}async initialize(){await this.loadState(),this.setupTicker(),this.subscribeToTaskFileRenames(),this.state.isRunning&&this.state.currentSession&&this.resumeTimer()}subscribeToTaskFileRenames(){this.taskFileRenameUnsubscribe||(this.taskFileRenameUnsubscribe=this.plugin.cacheManager.subscribe("file-renamed",e=>{if(!e||typeof e!="object")return;let{oldPath:t,newPath:n}=e;typeof t!="string"||typeof n!="string"||this.handleTaskFileRenamed(t,n)}))}async handleTaskFileRenamed(e,t){var i;if(!e||!t||e===t)return;let n=!1,a=!1;((i=this.state.currentSession)==null?void 0:i.taskPath)===e&&(this.state.currentSession.taskPath=t,n=!0),this.lastWorkSessionTaskPath===e&&(this.lastWorkSessionTaskPath=t),this.lastSelectedTaskPath===e&&(this.lastSelectedTaskPath=t,this.lastSelectedTaskPathLoaded=!0,a=!0);try{let s=await this.plugin.loadPluginDataForSafeWrite("persist-pomodoro-task-path-file-rename");if(!s)return;let o=!1;n&&(s.pomodoroState=this.state,s.lastPomodoroDate=ce(Er()),o=!0),(a||s.lastSelectedTaskPath===e)&&(this.lastSelectedTaskPath=t,this.lastSelectedTaskPathLoaded=!0,s.lastSelectedTaskPath=t,o=!0),o&&await this.plugin.saveData(s)}catch(s){zt.error("Failed to persist Pomodoro task path after file rename:",{category:"persistence",operation:"persist-pomodoro-task-path-file-rename",error:s})}n&&this.plugin.emitter.trigger(Ri,{timeRemaining:this.state.timeRemaining,session:this.state.currentSession})}setWebhookNotifier(e){this.webhookNotifier=e}setupTicker(){var e;(e=this.ticker)==null||e.destroy(),this.ticker=new DL(()=>this.handleTimerTick())}handleTimerTick(){if(!this.state.isRunning||!this.state.currentSession)return;this.syncRunningTimeRemaining()<=0&&!this.completionInProgress&&(this.completionInProgress=!0,this.completePomodoro().finally(()=>{this.completionInProgress=!1}))}async loadState(){try{let e=await this.plugin.loadData();if(e!=null&&e.pomodoroState){this.state=e.pomodoroState,this.state.timeRemaining=Math.max(0,this.state.timeRemaining||0);let t=ce(Er());if(e.lastPomodoroDate!==t&&this.state.currentSession&&(this.state.currentSession=void 0,this.state.isRunning=!1,this.state.nextSessionType=void 0),this.state.currentSession){let a=new Date(this.state.currentSession.startTime).getTime();(Date.now()-a)/(1e3*60*60)>24&&(this.state.currentSession=void 0,this.state.isRunning=!1,this.state.timeRemaining=this.plugin.settings.pomodoroWorkDuration*60,this.state.nextSessionType=void 0)}this.state.currentSession||(this.state.timeRemaining=this.plugin.settings.pomodoroWorkDuration*60,this.state.nextSessionType=void 0)}}catch(e){zt.error("Failed to load pomodoro state:",{category:"persistence",operation:"load-pomodoro-state",error:e}),this.state={isRunning:!1,timeRemaining:this.plugin.settings.pomodoroWorkDuration*60}}}async saveState(){try{let e=await this.plugin.loadPluginDataForSafeWrite("save-pomodoro-state");if(!e)return;let t=ce(Er());if(!Y$e(e,this.state,t))return;e.pomodoroState=this.state,e.lastPomodoroDate=t,await this.plugin.saveData(e)}catch(e){zt.error("Failed to save pomodoro state:",{category:"persistence",operation:"save-pomodoro-state",error:e})}}async saveLastSelectedTask(e){this.lastSelectedTaskPath=e,this.lastSelectedTaskPathLoaded=!0;try{let t=await this.plugin.loadPluginDataForSafeWrite("save-last-selected-task");if(!t||!G$e(t,e))return;e===void 0?delete t.lastSelectedTaskPath:t.lastSelectedTaskPath=e,await this.plugin.saveData(t)}catch(t){zt.error("Failed to save last selected task:",{category:"persistence",operation:"save-last-selected-task",error:t})}}async getLastSelectedTaskPath(){if(this.lastSelectedTaskPathLoaded)return this.lastSelectedTaskPath;try{let e=await this.plugin.loadData(),t=e==null?void 0:e.lastSelectedTaskPath;return typeof t=="string"&&t.trim().length>0?this.lastSelectedTaskPath=t:this.lastSelectedTaskPath=void 0,this.lastSelectedTaskPathLoaded=!0,this.lastSelectedTaskPath}catch(e){zt.error("Failed to load last selected task:",{category:"persistence",operation:"load-last-selected-task",error:e});return}}async startPomodoro(e,t){var c;if(this.state.isRunning){Te(this.plugin.emitter,this.translate("services.pomodoro.notices.alreadyRunning"));return}if(this.state.currentSession&&!this.state.isRunning){Te(this.plugin.emitter,this.translate("services.pomodoro.notices.resumeCurrentSession"));return}let n=this.state.nextSessionType==="short-break"||this.state.nextSessionType==="long-break"?this.plugin.settings.pomodoroWorkDuration*60:this.state.timeRemaining,a=t!==void 0?t*60:void 0,i=af(a!=null?a:n),s=i/60,o=Ge(),l={id:Date.now().toString(),taskPath:e==null?void 0:e.path,startTime:o,plannedDuration:s,type:"work",completed:!1,activePeriods:[{startTime:o}]};if(e!=null&&e.path&&(this.lastWorkSessionTaskPath=e.path,this.lastSelectedTaskPath=e.path,this.lastSelectedTaskPathLoaded=!0),this.state.currentSession=l,this.state.isRunning=!0,this.state.timeRemaining=i,this.state.nextSessionType=void 0,await this.saveState(),this.startTimer(),e)try{await this.plugin.taskService.startTimeTracking(e)}catch(d){(c=d.message)!=null&&c.includes("Time tracking is already active")||zt.error("Failed to start time tracking for Pomodoro:",{category:"internal",operation:"start-time-tracking-pomodoro",error:d})}if(this.plugin.emitter.trigger(ou,{session:l,task:e}),this.webhookNotifier)try{await this.webhookNotifier.triggerWebhook("pomodoro.started",{session:l,task:e})}catch(d){zt.warn("Failed to trigger webhook for pomodoro start:",{category:"provider",operation:"trigger-webhook-pomodoro-start",error:d})}this.showPomodoroNotification(`Pomodoro started${e?` for: ${e.title}`:""}`)}async startPomodoroWithLastSelectedTask(e){let t=await this.getAutoStartTask();await this.startPomodoro(t,e)}async startBreak(e=!1){if(this.state.isRunning){Te(this.plugin.emitter,this.translate("services.pomodoro.notices.timerAlreadyRunning"));return}if(this.state.currentSession&&!this.state.isRunning){Te(this.plugin.emitter,this.translate("services.pomodoro.notices.resumeSessionInstead"));return}let t=e?Math.max(1,Math.min(60,this.plugin.settings.pomodoroLongBreakDuration)):Math.max(1,Math.min(30,this.plugin.settings.pomodoroShortBreakDuration)),n=Ge(),a={id:Date.now().toString(),startTime:n,plannedDuration:t,type:e?"long-break":"short-break",completed:!1,activePeriods:[{startTime:n}]};this.state.currentSession=a,this.state.isRunning=!0,this.state.timeRemaining=a.plannedDuration*60,this.state.nextSessionType=void 0,await this.saveState(),this.startTimer(),Te(this.plugin.emitter,this.translate(e?"services.pomodoro.notices.longBreakStarted":"services.pomodoro.notices.shortBreakStarted"))}async pausePomodoro(){if(!this.state.isRunning)return;this.syncRunningTimeRemaining(),this.stopTimer(),this.state.isRunning=!1;let e=Ge();if(this.state.currentSession&&this.state.currentSession.activePeriods.length>0){let t=this.state.currentSession.activePeriods[this.state.currentSession.activePeriods.length-1];t.endTime||(t.endTime=e)}if(this.state.currentSession&&this.state.currentSession.taskPath)try{let t=await this.plugin.cacheManager.getTaskInfo(this.state.currentSession.taskPath);t&&await this.plugin.taskService.stopTimeTracking(t)}catch(t){zt.error("Failed to stop time tracking for Pomodoro pause:",{category:"internal",operation:"stop-time-tracking-pomodoro-pause",error:t})}await this.saveState(),this.plugin.emitter.trigger(Ri,{timeRemaining:this.state.timeRemaining,session:this.state.currentSession}),Te(this.plugin.emitter,this.translate("services.pomodoro.notices.paused"))}async resumePomodoro(){var e;if(!(this.state.isRunning||!this.state.currentSession)){if(this.state.isRunning=!0,this.state.currentSession&&this.state.currentSession.activePeriods.push({startTime:Ge()}),await this.saveState(),this.startTimer(),this.state.currentSession&&this.state.currentSession.taskPath)try{let t=await this.plugin.cacheManager.getTaskInfo(this.state.currentSession.taskPath);t&&await this.plugin.taskService.startTimeTracking(t)}catch(t){(e=t.message)!=null&&e.includes("Time tracking is already active")||zt.error("Failed to start time tracking for Pomodoro resume:",{category:"internal",operation:"start-time-tracking-pomodoro-resume",error:t})}this.plugin.emitter.trigger(Ri,{timeRemaining:this.state.timeRemaining,session:this.state.currentSession}),Te(this.plugin.emitter,this.translate("services.pomodoro.notices.resumed"))}}async stopPomodoro(){if(!this.state.currentSession)return;let e=this.state.isRunning;e&&this.syncRunningTimeRemaining(),this.stopTimer();let t=Ge();if(this.state.currentSession){if(this.state.currentSession.interrupted=!0,this.state.currentSession.endTime=t,this.state.currentSession.activePeriods.length>0){let n=this.state.currentSession.activePeriods[this.state.currentSession.activePeriods.length-1];n.endTime||(n.endTime=t)}await this.addSessionToHistory(this.state.currentSession)}if(this.plugin.emitter.trigger(cu,{session:this.state.currentSession}),this.webhookNotifier&&this.state.currentSession)try{let n=this.state.currentSession.taskPath?await this.plugin.cacheManager.getTaskInfo(this.state.currentSession.taskPath):void 0;await this.webhookNotifier.triggerWebhook("pomodoro.interrupted",{session:this.state.currentSession,task:n})}catch(n){zt.warn("Failed to trigger webhook for pomodoro interruption:",{category:"provider",operation:"trigger-webhook-pomodoro-interruption",error:n})}if(this.state.currentSession&&this.state.currentSession.taskPath&&e)try{let n=await this.plugin.cacheManager.getTaskInfo(this.state.currentSession.taskPath);n&&await this.plugin.taskService.stopTimeTracking(n)}catch(n){zt.error("Failed to stop time tracking for Pomodoro interrupt:",{category:"internal",operation:"stop-time-tracking-pomodoro-interrupt",error:n})}this.state.currentSession=void 0,this.state.isRunning=!1,this.state.timeRemaining=this.plugin.settings.pomodoroWorkDuration*60,this.state.nextSessionType=void 0,await this.saveState(),this.plugin.emitter.trigger(Ri,{timeRemaining:this.state.timeRemaining,session:this.state.currentSession}),e&&Te(this.plugin.emitter,this.translate("services.pomodoro.notices.stoppedAndReset"))}async skipBreak(){this.state.currentSession||this.state.nextSessionType!=="short-break"&&this.state.nextSessionType!=="long-break"||(this.stopTimer(),this.state.isRunning=!1,this.state.currentSession=void 0,this.state.timeRemaining=this.plugin.settings.pomodoroWorkDuration*60,this.state.nextSessionType=void 0,await this.saveState(),this.plugin.emitter.trigger(Ri,{timeRemaining:this.state.timeRemaining,session:this.state.currentSession}))}startTimer(){var e;this.ticker||this.setupTicker(),this.syncRunningTimeRemaining(),(e=this.ticker)==null||e.start()}stopTimer(){var e;(e=this.ticker)==null||e.stop()}resumeTimer(){if(this.state.currentSession&&this.state.currentSession.startTime){let e=new Date(this.state.currentSession.startTime).getTime(),t=Date.now();if(e>t){this.stopPomodoro();return}!this.state.isRunning&&this.state.timeRemaining>0?this.state.timeRemaining=Math.min(this.state.timeRemaining,af(this.state.currentSession.plannedDuration*60)):this.state.isRunning&&(this.state.timeRemaining=oO(this.state.currentSession,t)),this.state.timeRemaining>0&&this.state.isRunning?this.startTimer():this.state.timeRemaining<=0&&this.completePomodoro()}}syncRunningTimeRemaining(e=Date.now()){return this.state.currentSession?(this.state.isRunning&&(this.state.timeRemaining=oO(this.state.currentSession,e)),this.plugin.emitter.trigger(Ri,{timeRemaining:this.state.timeRemaining,session:this.state.currentSession}),this.state.timeRemaining):this.state.timeRemaining}async autoStartWorkSession(){if(!this.state.isRunning)try{let e=await this.getAutoStartTask();e?await this.startPomodoro(e):await this.startPomodoro()}catch(e){zt.error("Failed to auto-start work session:",{category:"internal",operation:"auto-start-work-session",error:e})}}async getAutoStartTask(){var a;let e=[];this.lastWorkSessionTaskPath&&e.push(this.lastWorkSessionTaskPath),(a=this.state.currentSession)!=null&&a.taskPath&&e.push(this.state.currentSession.taskPath);let t=await this.getLastSelectedTaskPath();t&&e.push(t);let n=Array.from(new Set(e.filter(i=>typeof i=="string"&&i.length>0)));for(let i of n)try{let s=await this.plugin.cacheManager.getTaskInfo(i);if(!s){this.clearCachedTaskPath(i);continue}let o=cg(s,new Date,this.plugin.statusManager,this.plugin.settings.defaultTaskStatus);if(s.archived||o)continue;return s}catch(s){zt.warn(`Failed to load task for auto-start (${i}):`,{category:"persistence",operation:"load-task-auto-start",error:s})}}clearCachedTaskPath(e){this.lastWorkSessionTaskPath===e&&(this.lastWorkSessionTaskPath=void 0),this.lastSelectedTaskPath===e&&(this.lastSelectedTaskPath=void 0,this.lastSelectedTaskPathLoaded=!0)}async completePomodoro(){if(this.stopTimer(),!this.state.currentSession)return;let e=this.state.currentSession,t=X0e(e),n=t!==null?eMe(t):Ge();if(e.completed=!0,e.endTime=n,e.type==="work"&&e.taskPath&&(this.lastWorkSessionTaskPath=e.taskPath),e.activePeriods.length>0){let o=e.activePeriods[e.activePeriods.length-1];o.endTime||(o.endTime=n)}if(e.type==="work"&&this.state.isRunning&&e.taskPath)try{let o=await this.plugin.cacheManager.getTaskInfo(e.taskPath);o&&await this.plugin.taskService.stopTimeTracking(o)}catch(o){zt.error("Failed to stop time tracking for Pomodoro completion:",{category:"internal",operation:"stop-time-tracking-pomodoro-completion",error:o})}let a=!1;if(e.type==="work")try{a=((await this.getTodayStats()).pomodorosCompleted+1)%this.plugin.settings.pomodoroLongBreakInterval===0}catch(o){zt.error("Failed to calculate break type:",{category:"internal",operation:"calculate-break-type",error:o}),a=!1}if(await this.addSessionToHistory(e),this.plugin.emitter.trigger(lu,{session:e,nextType:e.type==="work"?a?"long-break":"short-break":"work"}),this.webhookNotifier)try{let o=e.taskPath?await this.plugin.cacheManager.getTaskInfo(e.taskPath):void 0;await this.webhookNotifier.triggerWebhook("pomodoro.completed",{session:e,task:o})}catch(o){zt.warn("Failed to trigger webhook for pomodoro completion:",{category:"provider",operation:"trigger-webhook-pomodoro-completion",error:o})}let i=e.type==="work"?"\u{1F345} Pomodoro completed!":"\u2615 Break completed!",s=e.type==="work"?`Time for a ${a?"long break \u{1F4A4}":"short break \u2615"}`:"Ready for the next pomodoro?";if(this.showPomodoroNotification(i,{body:s}),this.plugin.settings.pomodoroSoundEnabled&&this.playCompletionSound(),this.state.currentSession=void 0,this.state.isRunning=!1,e.type==="work"){let o=a?this.plugin.settings.pomodoroLongBreakDuration:this.plugin.settings.pomodoroShortBreakDuration;if(this.state.timeRemaining=o*60,this.state.nextSessionType=a?"long-break":"short-break",this.plugin.settings.pomodoroAutoStartBreaks){let l=window.setTimeout(()=>{this.startBreak(a)},1e3);this.cleanupTimeouts.add(l)}}else if(this.state.timeRemaining=this.plugin.settings.pomodoroWorkDuration*60,this.state.nextSessionType="work",this.plugin.settings.pomodoroAutoStartWork){let o=window.setTimeout(()=>{this.autoStartWorkSession()},1e3);this.cleanupTimeouts.add(o)}await this.saveState(),this.plugin.emitter.trigger(Ri,{timeRemaining:this.state.timeRemaining,session:this.state.currentSession})}playCompletionSound(){try{let e=new(window.AudioContext||window.webkitAudioContext),t=e.createOscillator(),n=e.createGain();t.connect(n),n.connect(e.destination);let a=Math.max(0,Math.min(1,this.plugin.settings.pomodoroSoundVolume/100));n.gain.value=a*.3,t.frequency.value=800,t.type="sine",t.start(),t.stop(e.currentTime+.1),this.activeAudioContexts.add(e);let i=window.setTimeout(()=>{try{let o=e.createOscillator();o.connect(n),o.frequency.value=1e3,o.type="sine",o.start(),o.stop(e.currentTime+.1)}catch(o){zt.error("Failed to play second beep:",{category:"provider",operation:"play-second-beep",error:o})}},150);this.cleanupTimeouts.add(i);let s=window.setTimeout(()=>{this.activeAudioContexts.delete(e),e.close().catch(()=>{})},300);this.cleanupTimeouts.add(s)}catch(e){zt.error("Failed to play completion sound:",{category:"provider",operation:"play-completion-sound",error:e})}}showPomodoroNotification(e,t){if(this.plugin.settings.pomodoroNotifications&&!(typeof Notification=="undefined"||Notification.permission!=="granted"))try{new Notification(e,t)}catch(n){zt.warn("Failed to show Pomodoro notification:",{category:"provider",operation:"show-pomodoro-notification",error:n})}}getState(){return{...this.state}}adjustSessionTime(e){if(this.state.currentSession){let t=af(this.state.timeRemaining+e);this.setCurrentSessionRemainingTime(t)}}setCurrentSessionRemainingTime(e){if(!this.state.currentSession)return;let t=Date.now();this.state.isRunning&&(this.state.timeRemaining=oO(this.state.currentSession,t));let n=af(e),a=Jb(this.state.currentSession,t);this.state.timeRemaining=n,this.state.currentSession.plannedDuration=(a+n)/60,this.saveState(),this.plugin.emitter.trigger(Ri,{timeRemaining:this.state.timeRemaining,session:this.state.currentSession})}adjustPreparedTimer(e){this.state.currentSession||(this.stopTimer(),this.state.timeRemaining=af(e),this.saveState(),this.plugin.emitter.trigger(Ri,{timeRemaining:this.state.timeRemaining,session:this.state.currentSession}))}isRunning(){return this.state.isRunning}getCurrentSession(){return this.state.currentSession}getTimeRemaining(){return this.state.timeRemaining}async getPomodorosCompleted(){return(await this.getTodayStats()).pomodorosCompleted}async getCurrentStreak(){return(await this.getTodayStats()).currentStreak}async getTotalMinutesToday(){return(await this.getTodayStats()).totalMinutes}async assignTaskToCurrentSession(e){var s;if(!this.state.currentSession)return;let t=this.state.currentSession,n=t.taskPath,a=e==null?void 0:e.path,i=this.state.isRunning&&t.type==="work"&&n!==a;if(i&&n)try{let o=await this.plugin.cacheManager.getTaskInfo(n);o&&await this.plugin.taskService.stopTimeTracking(o)}catch(o){zt.error("Failed to stop time tracking for previous Pomodoro task:",{category:"persistence",operation:"stop-time-tracking-previous-pomodoro-task",error:o})}if(t.taskPath=a,a?(this.lastWorkSessionTaskPath=a,this.lastSelectedTaskPath=a,this.lastSelectedTaskPathLoaded=!0):(this.lastWorkSessionTaskPath=void 0,this.lastSelectedTaskPath=void 0,this.lastSelectedTaskPathLoaded=!0),await this.saveState(),i&&e)try{await this.plugin.taskService.startTimeTracking(e)}catch(o){(s=o.message)!=null&&s.includes("Time tracking is already active")||zt.error("Failed to start time tracking for new Pomodoro task:",{category:"persistence",operation:"start-time-tracking-new-pomodoro-task",error:o})}this.plugin.emitter.trigger(Ri,{timeRemaining:this.state.timeRemaining,session:t})}async getSessionHistory(){try{let e=await this.loadPluginHistory(),t;if(this.plugin.settings.pomodoroStorageLocation==="daily-notes"){let n=await this.loadHistoryFromDailyNotes();t=n,e.length>0&&(t=this.mergeHistories(e,n))}else t=e;return KD(t)}catch(e){return zt.error("Failed to load session history:",{category:"persistence",operation:"load-session-history",error:e}),[]}}async getSessionsForDate(e){try{let t=ce(e);if(!t)return[];let n=await this.loadPluginHistoryForDateKey(t),a;if(this.plugin.settings.pomodoroStorageLocation==="daily-notes"){let i=await this.loadHistoryFromDailyNoteForDateKey(t);a=n.length>0?this.mergeHistories(n,i):i}else a=n;return KD(a)}catch(t){return zt.error("Failed to load session history for date:",{category:"validation",operation:"load-session-history-date",error:t}),[]}}async getSessionsForDateRange(e,t){try{let n=await this.loadPluginHistoryForDateRange(e,t),a;if(this.plugin.settings.pomodoroStorageLocation==="daily-notes"){let i=await this.loadHistoryFromDailyNotesForDateRange(e,t);a=n.length>0?this.mergeHistories(n,i):i}else a=n;return KD(a)}catch(n){return zt.error("Failed to load session history for date range:",{category:"validation",operation:"load-session-history-date-range",error:n}),[]}}async saveSessionHistory(e){try{this.plugin.settings.pomodoroStorageLocation==="daily-notes"?await this.saveHistoryToDailyNotes(e):await this.savePluginHistory(e)}catch(t){zt.error("Failed to save session history:",{category:"persistence",operation:"save-session-history",error:t})}}async deleteSessionFromHistory(e){let t=!1;try{let n=await this.loadPluginHistory(),a=n.filter(i=>i.id!==e.id);a.length!==n.length&&(await this.savePluginHistory(a),t=!0),this.plugin.settings.pomodoroStorageLocation==="daily-notes"&&(t=await this.deleteSessionFromDailyNote(e)||t)}catch(n){zt.error("Failed to delete pomodoro session:",{category:"persistence",operation:"delete-pomodoro-session",error:n})}return t}async addSessionToHistory(e){if(!e.endTime){zt.warn("Cannot add session to history without end time",{category:"persistence",operation:"add-session-history-without-end-time"});return}let t={id:e.id,startTime:e.startTime,endTime:e.endTime,plannedDuration:e.plannedDuration,type:e.type,taskPath:e.taskPath,completed:e.completed&&!e.interrupted,activePeriods:e.activePeriods.slice()};try{if(this.plugin.settings.pomodoroStorageLocation==="daily-notes")await this.addSingleSessionToDailyNote(t);else{let n=await this.getSessionHistory();n.push(t),await this.saveSessionHistory(n)}}catch(n){zt.error("Failed to add session to history:",{category:"persistence",operation:"add-session-history",error:n})}}async getStatsForDate(e){let t=await this.getSessionsForDate(e);return tT(t)}async getStatsForDateRange(e,t){let n=await this.getSessionsForDateRange(e,t);return tT(n)}async getOverallStats(){let e=await this.getSessionHistory();return tT(e)}async getTodayStats(){let e=Er(),t=wn(e);return this.getStatsForDate(t)}cleanup(){var e,t;this.stopTimer(),(e=this.ticker)==null||e.destroy(),this.ticker=null,(t=this.taskFileRenameUnsubscribe)==null||t.call(this),this.taskFileRenameUnsubscribe=void 0;for(let n of this.cleanupTimeouts)window.clearTimeout(n);this.cleanupTimeouts.clear();for(let n of this.activeAudioContexts)n.state!=="closed"&&n.close().catch(()=>{});this.activeAudioContexts.clear(),this.saveState()}async loadPluginHistory(){let e=await this.plugin.loadData(),t=e==null?void 0:e.pomodoroHistory;return Array.isArray(t)?t:[]}async savePluginHistory(e){let t=await this.plugin.loadPluginDataForSafeWrite("save-pomodoro-history");t&&(t.pomodoroHistory=e,await this.plugin.saveData(t))}async loadPluginHistoryForDateKey(e){return cMe(await this.loadPluginHistory(),e)}async loadPluginHistoryForDateRange(e,t){return dMe(await this.loadPluginHistory(),e,t)}async saveHistoryToDailyNotes(e){try{if(!(0,zn.appHasDailyNotesPluginLoaded)())throw new Error("Daily notes must be enabled in the core Daily Notes plugin or Periodic Notes");let t=this.groupSessionsByDate(e);for(let[n,a]of t)await this.updateDailyNotePomodoros(n,a)}catch(t){throw zt.error("Failed to save history to daily notes:",{category:"persistence",operation:"save-history-daily-notes",error:t}),t}}async loadHistoryFromDailyNotesForDateRange(e,t){try{if(!(0,zn.appHasDailyNotesPluginLoaded)())return[];let n=(0,zn.getAllDailyNotes)(),a=[];for(let i of uMe(e,t)){let s=await this.loadHistoryFromDailyNoteForDateKey(i,n);a.push(...s)}return a}catch(n){return zt.error("Failed to load history from daily notes for date range:",{category:"validation",operation:"load-history-daily-notes-date-range",error:n}),[]}}async loadHistoryFromDailyNoteForDateKey(e,t){try{if(!e||!(0,zn.appHasDailyNotesPluginLoaded)())return[];let n=t!=null?t:(0,zn.getAllDailyNotes)(),a=it(e),i=PL(a),s=(0,zn.getDailyNote)(i,n);return s?this.readPomodoroSessionsFromDailyNote(s):[]}catch(n){return zt.warn(`Failed to load pomodoro history for daily note ${e}:`,{category:"persistence",operation:"load-pomodoro-history-daily-note",error:n}),[]}}async loadHistoryFromDailyNotes(){try{if(!(0,zn.appHasDailyNotesPluginLoaded)())return[];let e=[],t=(0,zn.getAllDailyNotes)();for(let[,n]of Object.entries(t))try{e.push(...this.readPomodoroSessionsFromDailyNote(n))}catch(a){zt.warn(`Failed to read pomodoro data from daily note ${n.path}:`,{category:"persistence",operation:"read-pomodoro-data-daily-note",error:a})}return e}catch(e){return zt.error("Failed to load history from daily notes:",{category:"persistence",operation:"load-history-daily-notes",error:e}),[]}}readPomodoroSessionsFromDailyNote(e){let t=this.plugin.app.metadataCache.getFileCache(e),n=t==null?void 0:t.frontmatter,a=this.plugin.fieldMapper.toUserField("pomodoros"),i=n==null?void 0:n[a];return Array.isArray(i)?i.filter(ML):[]}groupSessionsByDate(e){let t=new Map;for(let n of e){let a=eT(n);a&&(t.has(a)||t.set(a,[]),t.get(a).push(n))}return t}async addSingleSessionToDailyNote(e){try{let t=eT(e);if(!t)throw new Error(`Invalid Pomodoro session start time: ${e.startTime}`);let n=it(t),a=PL(n),i=(0,zn.getAllDailyNotes)(),s=(0,zn.getDailyNote)(a,i);if(!s&&(s=await(0,zn.createDailyNote)(a),!s))throw new Error("Failed to create daily note. Please check your Daily Notes plugin configuration and ensure the daily notes folder exists.");let o=this.plugin.fieldMapper.toUserField("pomodoros");await Fr(this.plugin.app,s,l=>{let c=Array.isArray(l[o])?l[o].filter(ML):[];new Set(c.map(u=>u.id)).has(e.id)||(l[o]=[...c,e])})}catch(t){zt.error("Failed to add session to daily note:",{category:"persistence",operation:"add-session-daily-note",error:t})}}async deleteSessionFromDailyNote(e){try{if(!(0,zn.appHasDailyNotesPluginLoaded)())return!1;let t=eT(e);if(!t)return!1;let n=it(t),a=PL(n),i=(0,zn.getDailyNote)(a,(0,zn.getAllDailyNotes)());if(!i)return!1;let s=this.plugin.fieldMapper.toUserField("pomodoros"),o=!1;return await Fr(this.plugin.app,i,l=>{let c=Array.isArray(l[s])?l[s].filter(ML):[],d=c.filter(u=>u.id!==e.id);d.length!==c.length&&(l[s]=d,o=!0)}),o}catch(t){return zt.error("Failed to delete pomodoro session from daily note:",{category:"persistence",operation:"delete-pomodoro-session-daily-note",error:t}),!1}}async updateDailyNotePomodoros(e,t){try{let n=it(e),a=PL(n),i=(0,zn.getAllDailyNotes)(),s=(0,zn.getDailyNote)(a,i);if(!s&&(s=await(0,zn.createDailyNote)(a),!s))throw new Error("Failed to create daily note. Please check your Daily Notes plugin configuration and ensure the daily notes folder exists.");let o=this.plugin.fieldMapper.toUserField("pomodoros");await Fr(this.plugin.app,s,l=>{let c=Array.isArray(l[o])?l[o].filter(ML):[],d=new Set(c.map(p=>p.id)),u=t.filter(p=>!d.has(p.id));u.length>0&&(l[o]=[...c,...u])})}catch(n){zt.error(`Failed to update daily note for ${e}:`,{category:"validation",operation:"update-daily-note",error:n})}}mergeHistories(e,t){let n=[...t],a=new Set(t.map(i=>i.id));for(let i of e)a.has(i.id)||n.push(i);return n}async migrateTodailyNotes(){try{if(!(0,zn.appHasDailyNotesPluginLoaded)())throw new Error("Daily notes must be enabled in the core Daily Notes plugin or Periodic Notes for migration");let e=await this.plugin.loadData(),t=(e==null?void 0:e.pomodoroHistory)||[];if(t.length===0)return;await this.saveHistoryToDailyNotes(t),e.pomodoroHistory=[],await this.plugin.saveData(e),Te(this.plugin.emitter,this.translate("services.pomodoro.notices.migrationSuccess",{count:t.length}))}catch(e){throw zt.error("Failed to migrate pomodoro data to daily notes:",{category:"persistence",operation:"migrate-pomodoro-data-daily-notes",error:e}),Te(this.plugin.emitter,this.translate("services.pomodoro.notices.migrationFailure")),e}}}});var OAt,AL,X$e=y(()=>{bq();K();fs();Ba();OAt=N({tag:"Services/AutoExportService"}),AL=class{constructor(e){this.scheduledExportId=null;this.lastExportTime=null;this.nextExportTime=null;this.isRunning=!1;this.plugin=e}translate(e,t){return this.plugin.i18n.translate(e,t)}start(){this.plugin.settings.icsIntegration.enableAutoExport&&(this.stop(),this.isRunning=!0,this.scheduleNextExport())}stop(){this.isRunning=!1,this.scheduledExportId!==null&&(window.clearTimeout(this.scheduledExportId),this.scheduledExportId=null),this.nextExportTime=null}updateInterval(e){this.plugin.settings.icsIntegration.enableAutoExport&&this.start()}async exportNow(){await this.performExport()}getLastExportTime(){return this.lastExportTime}getNextExportTime(){return this.nextExportTime}scheduleNextExport(){if(!this.isRunning||!this.plugin.settings.icsIntegration.enableAutoExport){this.nextExportTime=null;return}let t=this.plugin.settings.icsIntegration.autoExportInterval*60*1e3;this.nextExportTime=new Date(Date.now()+t),this.scheduledExportId=window.setTimeout(()=>{this.scheduledExportId=null,this.performExport().finally(()=>{this.isRunning&&this.scheduleNextExport()})},t)}async performExport(){var e,t,n,a;try{let i=this.plugin.settings.icsIntegration.autoExportPath||"tasknotes-calendar.ics",s=await this.plugin.cacheManager.getAllTasks();if(s.length===0)return;let o={useDurationForExport:this.plugin.settings.icsIntegration.useDurationForExport,excludeArchived:(e=this.plugin.settings.icsIntegration.excludeArchivedFromExport)!=null?e:!1,excludeCompleted:(t=this.plugin.settings.icsIntegration.excludeCompletedFromExport)!=null?t:!1,completedStatuses:this.plugin.statusManager.getCompletedStatuses(),requireDueDate:(n=this.plugin.settings.icsIntegration.requireDueDateForExport)!=null?n:!1,requireScheduledDate:(a=this.plugin.settings.icsIntegration.requireScheduledDateForExport)!=null?a:!1,includeObsidianLink:!0,vaultName:this.plugin.app.vault.getName()},l=Em.generateMultipleTasksICSContent(s,o),c=i;await this.plugin.app.vault.adapter.exists(c)?await this.plugin.app.vault.adapter.write(c,l):await _h(this.plugin.app,c,l),this.lastExportTime=new Date}catch(i){OAt.error("TaskNotes: Auto export failed:",{category:"provider",operation:"auto-export",error:i}),(!this.lastExportTime||Date.now()-this.lastExportTime.getTime()>360*60*1e3)&&Te(this.plugin.emitter,this.translate("services.autoExport.notices.exportFailed",{error:i instanceof Error?i.message:String(i)}))}}destroy(){this.stop()}}});function zAt(r){var e,t;return(t=(e=r.updatedTask)!=null?e:r.taskInfo)!=null?t:r.task}function _L(r){if(r===void 0)return null;if(Array.isArray(r))return r.map(e=>_L(e));if(r&&typeof r=="object"){let e=r;return Object.keys(e).sort().reduce((t,n)=>(t[n]=_L(e[n]),t),{})}return r}function jAt(r,e){return JSON.stringify(_L(r))===JSON.stringify(_L(e))}function $At(r,e){var t;return(t=LAt.find(n=>!jAt(r[n],e[n])))!=null?t:null}var tBe,eBe,LAt,IL,rBe=y(()=>{tBe=require("obsidian");Yr();K();eBe=N({tag:"Services/TaskFileLifecycleReconciliationService"}),LAt=["status","title","scheduled","due","priority","recurrence","complete_instances","skipped_instances","timeEstimate","tags","contexts","projects"];IL=class{constructor(e){this.plugin=e;this.taskSnapshots=new Map;this.taskUpdatedRef=null;this.handlingPaths=new Set}async initialize(){await this.captureCurrentTasks(),this.taskUpdatedRef=this.plugin.emitter.on(ot,e=>{this.handleTaskUpdatedEvent(e)})}destroy(){this.taskUpdatedRef&&(this.plugin.emitter.offref(this.taskUpdatedRef),this.taskUpdatedRef=null),this.handlingPaths.clear(),this.taskSnapshots.clear()}async handleTaskUpdatedEvent(e){var o;let t=zAt(e),n=(o=e.path)!=null?o:t==null?void 0:t.path;if(!n||!t)return;if(e.originalTask){e.originalTask.path!==n&&this.taskSnapshots.delete(e.originalTask.path),this.taskSnapshots.set(n,t);return}let a=this.taskSnapshots.get(n);if(this.taskSnapshots.set(n,t),!a||this.handlingPaths.has(n))return;let i=$At(a,t);if(!i)return;let s=this.plugin.app.vault.getAbstractFileByPath(n);if(s instanceof tBe.TFile){this.handlingPaths.add(n);try{await this.plugin.taskService.applyPropertyChangeSideEffects(s,a,t,i,a[i],t[i])}catch(l){eBe.warn("Failed to reconcile direct task file edit:",{category:"persistence",operation:"reconcile-direct-task-file-edit",details:{taskPath:n,property:i},error:l})}finally{this.handlingPaths.delete(n)}}}async captureCurrentTasks(){try{let e=await this.plugin.cacheManager.getAllTasks();for(let t of e)this.taskSnapshots.set(t.path,t)}catch(e){eBe.warn("Failed to snapshot tasks for direct file edit reconciliation:",{category:"stale-data",operation:"snapshot-direct-task-file-reconciliation",error:e})}}}});var jt,fZ,ve,Pd,jP=y(()=>{(function(r){r.assertEqual=a=>{};function e(a){}r.assertIs=e;function t(a){throw new Error}r.assertNever=t,r.arrayToEnum=a=>{let i={};for(let s of a)i[s]=s;return i},r.getValidEnumValues=a=>{let i=r.objectKeys(a).filter(o=>typeof a[a[o]]!="number"),s={};for(let o of i)s[o]=a[o];return r.objectValues(s)},r.objectValues=a=>r.objectKeys(a).map(function(i){return a[i]}),r.objectKeys=typeof Object.keys=="function"?a=>Object.keys(a):a=>{let i=[];for(let s in a)Object.prototype.hasOwnProperty.call(a,s)&&i.push(s);return i},r.find=(a,i)=>{for(let s of a)if(i(s))return s},r.isInteger=typeof Number.isInteger=="function"?a=>Number.isInteger(a):a=>typeof a=="number"&&Number.isFinite(a)&&Math.floor(a)===a;function n(a,i=" | "){return a.map(s=>typeof s=="string"?`'${s}'`:s).join(i)}r.joinValues=n,r.jsonStringifyReplacer=(a,i)=>typeof i=="bigint"?i.toString():i})(jt||(jt={}));(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(fZ||(fZ={}));ve=jt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Pd=r=>{switch(typeof r){case"undefined":return ve.undefined;case"string":return ve.string;case"number":return Number.isNaN(r)?ve.nan:ve.number;case"boolean":return ve.boolean;case"function":return ve.function;case"bigint":return ve.bigint;case"symbol":return ve.symbol;case"object":return Array.isArray(r)?ve.array:r===null?ve.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?ve.promise:typeof Map!="undefined"&&r instanceof Map?ve.map:typeof Set!="undefined"&&r instanceof Set?ve.set:typeof Date!="undefined"&&r instanceof Date?ve.date:ve.object;default:return ve.unknown}}});var ne,BAt,Cs,NL=y(()=>{jP();ne=jt.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),BAt=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:"),Cs=class r extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){let t=e||function(i){return i.message},n={_errors:[]},a=i=>{for(let s of i.issues)if(s.code==="invalid_union")s.unionErrors.map(a);else if(s.code==="invalid_return_type")a(s.returnTypeError);else if(s.code==="invalid_arguments")a(s.argumentsError);else if(s.path.length===0)n._errors.push(t(s));else{let o=n,l=0;for(;l<s.path.length;){let c=s.path[l];l===s.path.length-1?(o[c]=o[c]||{_errors:[]},o[c]._errors.push(t(s))):o[c]=o[c]||{_errors:[]},o=o[c],l++}}};return a(this),n}static assert(e){if(!(e instanceof r))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,jt.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){let t={},n=[];for(let a of this.issues)if(a.path.length>0){let i=a.path[0];t[i]=t[i]||[],t[i].push(e(a))}else n.push(e(a));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};Cs.create=r=>new Cs(r)});var UAt,hp,hZ=y(()=>{NL();jP();UAt=(r,e)=>{let t;switch(r.code){case ne.invalid_type:r.received===ve.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case ne.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,jt.jsonStringifyReplacer)}`;break;case ne.unrecognized_keys:t=`Unrecognized key(s) in object: ${jt.joinValues(r.keys,", ")}`;break;case ne.invalid_union:t="Invalid input";break;case ne.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${jt.joinValues(r.options)}`;break;case ne.invalid_enum_value:t=`Invalid enum value. Expected ${jt.joinValues(r.options)}, received '${r.received}'`;break;case ne.invalid_arguments:t="Invalid function arguments";break;case ne.invalid_return_type:t="Invalid function return type";break;case ne.invalid_date:t="Invalid date";break;case ne.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:jt.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case ne.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="bigint"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case ne.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case ne.custom:t="Invalid input";break;case ne.invalid_intersection_types:t="Intersection results could not be merged";break;case ne.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case ne.not_finite:t="Number must be finite";break;default:t=e.defaultError,jt.assertNever(r)}return{message:t}},hp=UAt});function HAt(r){nBe=r}function ET(){return nBe}var nBe,RL=y(()=>{hZ();nBe=hp});function me(r,e){let t=ET(),n=$P({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===hp?void 0:hp].filter(a=>!!a)});r.common.issues.push(n)}var $P,VAt,Wa,Ze,dy,Ti,FL,OL,Tf,DT,gZ=y(()=>{RL();hZ();$P=r=>{let{data:e,path:t,errorMaps:n,issueData:a}=r,i=[...t,...a.path||[]],s={...a,path:i};if(a.message!==void 0)return{...a,path:i,message:a.message};let o="",l=n.filter(c=>!!c).slice().reverse();for(let c of l)o=c(s,{data:e,defaultError:o}).message;return{...a,path:i,message:o}},VAt=[];Wa=class r{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){let n=[];for(let a of t){if(a.status==="aborted")return Ze;a.status==="dirty"&&e.dirty(),n.push(a.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){let n=[];for(let a of t){let i=await a.key,s=await a.value;n.push({key:i,value:s})}return r.mergeObjectSync(e,n)}static mergeObjectSync(e,t){let n={};for(let a of t){let{key:i,value:s}=a;if(i.status==="aborted"||s.status==="aborted")return Ze;i.status==="dirty"&&e.dirty(),s.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof s.value!="undefined"||a.alwaysSet)&&(n[i.value]=s.value)}return{status:e.value,value:n}}},Ze=Object.freeze({status:"aborted"}),dy=r=>({status:"dirty",value:r}),Ti=r=>({status:"valid",value:r}),FL=r=>r.status==="aborted",OL=r=>r.status==="dirty",Tf=r=>r.status==="valid",DT=r=>typeof Promise!="undefined"&&r instanceof Promise});var aBe=y(()=>{});var Re,iBe=y(()=>{(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(Re||(Re={}))});function gt(r){if(!r)return{};let{errorMap:e,invalid_type_error:t,required_error:n,description:a}=r;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:a}:{errorMap:(s,o)=>{var c,d;let{message:l}=r;return s.code==="invalid_enum_value"?{message:l!=null?l:o.defaultError}:typeof o.data=="undefined"?{message:(c=l!=null?l:n)!=null?c:o.defaultError}:s.code!=="invalid_type"?{message:o.defaultError}:{message:(d=l!=null?l:t)!=null?d:o.defaultError}},description:a}}function cBe(r){let e="[0-5]\\d";r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`);let t=r.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function o_t(r){return new RegExp(`^${cBe(r)}$`)}function dBe(r){let e=`${lBe}T${cBe(r)}`,t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function l_t(r,e){return!!((e==="v4"||!e)&&e_t.test(r)||(e==="v6"||!e)&&r_t.test(r))}function c_t(r,e){if(!ZAt.test(r))return!1;try{let[t]=r.split(".");if(!t)return!1;let n=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),a=JSON.parse(atob(n));return!(typeof a!="object"||a===null||"typ"in a&&(a==null?void 0:a.typ)!=="JWT"||!a.alg||e&&a.alg!==e)}catch(t){return!1}}function d_t(r,e){return!!((e==="v4"||!e)&&t_t.test(r)||(e==="v6"||!e)&&n_t.test(r))}function u_t(r,e){let t=(r.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,a=t>n?t:n,i=Number.parseInt(r.toFixed(a).replace(".","")),s=Number.parseInt(e.toFixed(a).replace(".",""));return i%s/10**a}function PT(r){if(r instanceof Ds){let e={};for(let t in r.shape){let n=r.shape[t];e[t]=Es.create(PT(n))}return new Ds({...r._def,shape:()=>e})}else return r instanceof vp?new vp({...r._def,type:PT(r.element)}):r instanceof Es?Es.create(PT(r.unwrap())):r instanceof Ad?Ad.create(PT(r.unwrap())):r instanceof Md?Md.create(r.items.map(e=>PT(e))):r}function vZ(r,e){let t=Pd(r),n=Pd(e);if(r===e)return{valid:!0,data:r};if(t===ve.object&&n===ve.object){let a=jt.objectKeys(e),i=jt.objectKeys(r).filter(o=>a.indexOf(o)!==-1),s={...r,...e};for(let o of i){let l=vZ(r[o],e[o]);if(!l.valid)return{valid:!1};s[o]=l.data}return{valid:!0,data:s}}else if(t===ve.array&&n===ve.array){if(r.length!==e.length)return{valid:!1};let a=[];for(let i=0;i<r.length;i++){let s=r[i],o=e[i],l=vZ(s,o);if(!l.valid)return{valid:!1};a.push(l.data)}return{valid:!0,data:a}}else return t===ve.date&&n===ve.date&&+r==+e?{valid:!0,data:r}:{valid:!1}}function uBe(r,e){return new Ty({values:r,typeName:ae.ZodEnum,...gt(e)})}function oBe(r,e){let t=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof t=="string"?{message:t}:t}function pBe(r,e={},t){return r?Sf.create().superRefine((n,a)=>{var s,o;let i=r(n);if(i instanceof Promise)return i.then(l=>{var c,d;if(!l){let u=oBe(e,n),p=(d=(c=u.fatal)!=null?c:t)!=null?d:!0;a.addIssue({code:"custom",...u,fatal:p})}});if(!i){let l=oBe(e,n),c=(o=(s=l.fatal)!=null?s:t)!=null?o:!0;a.addIssue({code:"custom",...l,fatal:c})}}):Sf.create()}var cl,sBe,Tt,qAt,WAt,YAt,GAt,KAt,ZAt,QAt,JAt,XAt,yZ,e_t,t_t,r_t,n_t,a_t,i_t,lBe,s_t,wf,uy,py,my,fy,MT,hy,gy,Sf,yp,sc,AT,vp,Ds,yy,gp,LL,vy,Md,zL,_T,IT,jL,ky,by,Ty,wy,xf,dl,Es,Ad,Sy,xy,NT,p_t,BP,UP,Cy,m_t,ae,f_t,mBe,fBe,h_t,g_t,hBe,y_t,v_t,k_t,b_t,T_t,w_t,S_t,x_t,C_t,kZ,E_t,D_t,P_t,M_t,A_t,__t,I_t,N_t,R_t,F_t,O_t,L_t,z_t,j_t,$_t,B_t,U_t,H_t,V_t,q_t,W_t,Y_t,G_t,K_t,gBe=y(()=>{NL();RL();iBe();gZ();jP();cl=class{constructor(e,t,n,a){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=a}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},sBe=(r,e)=>{if(Tf(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let t=new Cs(r.common.issues);return this._error=t,this._error}}};Tt=class{get description(){return this._def.description}_getType(e){return Pd(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Pd(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Wa,ctx:{common:e.parent.common,data:e.data,parsedType:Pd(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(DT(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var i;let n={common:{issues:[],async:(i=t==null?void 0:t.async)!=null?i:!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Pd(e)},a=this._parseSync({data:e,path:n.path,parent:n});return sBe(n,a)}"~validate"(e){var n,a;let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Pd(e)};if(!this["~standard"].async)try{let i=this._parseSync({data:e,path:[],parent:t});return Tf(i)?{value:i.value}:{issues:t.common.issues}}catch(i){(a=(n=i==null?void 0:i.message)==null?void 0:n.toLowerCase())!=null&&a.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(i=>Tf(i)?{value:i.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Pd(e)},a=this._parse({data:e,path:n.path,parent:n}),i=await(DT(a)?a:Promise.resolve(a));return sBe(n,i)}refine(e,t){let n=a=>typeof t=="string"||typeof t=="undefined"?{message:t}:typeof t=="function"?t(a):t;return this._refinement((a,i)=>{let s=e(a),o=()=>i.addIssue({code:ne.custom,...n(a)});return typeof Promise!="undefined"&&s instanceof Promise?s.then(l=>l?!0:(o(),!1)):s?!0:(o(),!1)})}refinement(e,t){return this._refinement((n,a)=>e(n)?!0:(a.addIssue(typeof t=="function"?t(n,a):t),!1))}_refinement(e){return new dl({schema:this,typeName:ae.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return Es.create(this,this._def)}nullable(){return Ad.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return vp.create(this)}promise(){return xf.create(this,this._def)}or(e){return yy.create([this,e],this._def)}and(e){return vy.create(this,e,this._def)}transform(e){return new dl({...gt(this._def),schema:this,typeName:ae.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let t=typeof e=="function"?e:()=>e;return new Sy({...gt(this._def),innerType:this,defaultValue:t,typeName:ae.ZodDefault})}brand(){return new BP({typeName:ae.ZodBranded,type:this,...gt(this._def)})}catch(e){let t=typeof e=="function"?e:()=>e;return new xy({...gt(this._def),innerType:this,catchValue:t,typeName:ae.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return UP.create(this,e)}readonly(){return Cy.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},qAt=/^c[^\s-]{8,}$/i,WAt=/^[0-9a-z]+$/,YAt=/^[0-9A-HJKMNP-TV-Z]{26}$/i,GAt=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,KAt=/^[a-z0-9_-]{21}$/i,ZAt=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,QAt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,JAt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,XAt="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",e_t=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,t_t=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,r_t=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,n_t=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,a_t=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,i_t=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,lBe="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",s_t=new RegExp(`^${lBe}$`);wf=class r extends Tt{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ve.string){let i=this._getOrReturnCtx(e);return me(i,{code:ne.invalid_type,expected:ve.string,received:i.parsedType}),Ze}let n=new Wa,a;for(let i of this._def.checks)if(i.kind==="min")e.data.length<i.value&&(a=this._getOrReturnCtx(e,a),me(a,{code:ne.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="max")e.data.length>i.value&&(a=this._getOrReturnCtx(e,a),me(a,{code:ne.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){let s=e.data.length>i.value,o=e.data.length<i.value;(s||o)&&(a=this._getOrReturnCtx(e,a),s?me(a,{code:ne.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):o&&me(a,{code:ne.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),n.dirty())}else if(i.kind==="email")JAt.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"email",code:ne.invalid_string,message:i.message}),n.dirty());else if(i.kind==="emoji")yZ||(yZ=new RegExp(XAt,"u")),yZ.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"emoji",code:ne.invalid_string,message:i.message}),n.dirty());else if(i.kind==="uuid")GAt.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"uuid",code:ne.invalid_string,message:i.message}),n.dirty());else if(i.kind==="nanoid")KAt.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"nanoid",code:ne.invalid_string,message:i.message}),n.dirty());else if(i.kind==="cuid")qAt.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"cuid",code:ne.invalid_string,message:i.message}),n.dirty());else if(i.kind==="cuid2")WAt.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"cuid2",code:ne.invalid_string,message:i.message}),n.dirty());else if(i.kind==="ulid")YAt.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"ulid",code:ne.invalid_string,message:i.message}),n.dirty());else if(i.kind==="url")try{new URL(e.data)}catch(s){a=this._getOrReturnCtx(e,a),me(a,{validation:"url",code:ne.invalid_string,message:i.message}),n.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"regex",code:ne.invalid_string,message:i.message}),n.dirty())):i.kind==="trim"?e.data=e.data.trim():i.kind==="includes"?e.data.includes(i.value,i.position)||(a=this._getOrReturnCtx(e,a),me(a,{code:ne.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),n.dirty()):i.kind==="toLowerCase"?e.data=e.data.toLowerCase():i.kind==="toUpperCase"?e.data=e.data.toUpperCase():i.kind==="startsWith"?e.data.startsWith(i.value)||(a=this._getOrReturnCtx(e,a),me(a,{code:ne.invalid_string,validation:{startsWith:i.value},message:i.message}),n.dirty()):i.kind==="endsWith"?e.data.endsWith(i.value)||(a=this._getOrReturnCtx(e,a),me(a,{code:ne.invalid_string,validation:{endsWith:i.value},message:i.message}),n.dirty()):i.kind==="datetime"?dBe(i).test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{code:ne.invalid_string,validation:"datetime",message:i.message}),n.dirty()):i.kind==="date"?s_t.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{code:ne.invalid_string,validation:"date",message:i.message}),n.dirty()):i.kind==="time"?o_t(i).test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{code:ne.invalid_string,validation:"time",message:i.message}),n.dirty()):i.kind==="duration"?QAt.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"duration",code:ne.invalid_string,message:i.message}),n.dirty()):i.kind==="ip"?l_t(e.data,i.version)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"ip",code:ne.invalid_string,message:i.message}),n.dirty()):i.kind==="jwt"?c_t(e.data,i.alg)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"jwt",code:ne.invalid_string,message:i.message}),n.dirty()):i.kind==="cidr"?d_t(e.data,i.version)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"cidr",code:ne.invalid_string,message:i.message}),n.dirty()):i.kind==="base64"?a_t.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"base64",code:ne.invalid_string,message:i.message}),n.dirty()):i.kind==="base64url"?i_t.test(e.data)||(a=this._getOrReturnCtx(e,a),me(a,{validation:"base64url",code:ne.invalid_string,message:i.message}),n.dirty()):jt.assertNever(i);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(a=>e.test(a),{validation:t,code:ne.invalid_string,...Re.errToObj(n)})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Re.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Re.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Re.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Re.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Re.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Re.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Re.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Re.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Re.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...Re.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...Re.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Re.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...Re.errToObj(e)})}datetime(e){var t,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)=="undefined"?null:e==null?void 0:e.precision,offset:(t=e==null?void 0:e.offset)!=null?t:!1,local:(n=e==null?void 0:e.local)!=null?n:!1,...Re.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)=="undefined"?null:e==null?void 0:e.precision,...Re.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Re.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Re.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...Re.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Re.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Re.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Re.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Re.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Re.errToObj(t)})}nonempty(e){return this.min(1,Re.errToObj(e))}trim(){return new r({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};wf.create=r=>{var e;return new wf({checks:[],typeName:ae.ZodString,coerce:(e=r==null?void 0:r.coerce)!=null?e:!1,...gt(r)})};uy=class r extends Tt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==ve.number){let i=this._getOrReturnCtx(e);return me(i,{code:ne.invalid_type,expected:ve.number,received:i.parsedType}),Ze}let n,a=new Wa;for(let i of this._def.checks)i.kind==="int"?jt.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),me(n,{code:ne.invalid_type,expected:"integer",received:"float",message:i.message}),a.dirty()):i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(n=this._getOrReturnCtx(e,n),me(n,{code:ne.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),a.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),me(n,{code:ne.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),a.dirty()):i.kind==="multipleOf"?u_t(e.data,i.value)!==0&&(n=this._getOrReturnCtx(e,n),me(n,{code:ne.not_multiple_of,multipleOf:i.value,message:i.message}),a.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),me(n,{code:ne.not_finite,message:i.message}),a.dirty()):jt.assertNever(i);return{status:a.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Re.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Re.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Re.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Re.toString(t))}setLimit(e,t,n,a){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Re.toString(a)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Re.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Re.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Re.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Re.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Re.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Re.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Re.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Re.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Re.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&jt.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}};uy.create=r=>new uy({checks:[],typeName:ae.ZodNumber,coerce:(r==null?void 0:r.coerce)||!1,...gt(r)});py=class r extends Tt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch(i){return this._getInvalidInput(e)}if(this._getType(e)!==ve.bigint)return this._getInvalidInput(e);let n,a=new Wa;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(n=this._getOrReturnCtx(e,n),me(n,{code:ne.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),a.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),me(n,{code:ne.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),a.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),me(n,{code:ne.not_multiple_of,multipleOf:i.value,message:i.message}),a.dirty()):jt.assertNever(i);return{status:a.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return me(t,{code:ne.invalid_type,expected:ve.bigint,received:t.parsedType}),Ze}gte(e,t){return this.setLimit("min",e,!0,Re.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Re.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Re.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Re.toString(t))}setLimit(e,t,n,a){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Re.toString(a)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Re.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Re.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Re.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Re.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Re.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};py.create=r=>{var e;return new py({checks:[],typeName:ae.ZodBigInt,coerce:(e=r==null?void 0:r.coerce)!=null?e:!1,...gt(r)})};my=class extends Tt{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ve.boolean){let n=this._getOrReturnCtx(e);return me(n,{code:ne.invalid_type,expected:ve.boolean,received:n.parsedType}),Ze}return Ti(e.data)}};my.create=r=>new my({typeName:ae.ZodBoolean,coerce:(r==null?void 0:r.coerce)||!1,...gt(r)});fy=class r extends Tt{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ve.date){let i=this._getOrReturnCtx(e);return me(i,{code:ne.invalid_type,expected:ve.date,received:i.parsedType}),Ze}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return me(i,{code:ne.invalid_date}),Ze}let n=new Wa,a;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()<i.value&&(a=this._getOrReturnCtx(e,a),me(a,{code:ne.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),n.dirty()):i.kind==="max"?e.data.getTime()>i.value&&(a=this._getOrReturnCtx(e,a),me(a,{code:ne.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):jt.assertNever(i);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Re.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Re.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}};fy.create=r=>new fy({checks:[],coerce:(r==null?void 0:r.coerce)||!1,typeName:ae.ZodDate,...gt(r)});MT=class extends Tt{_parse(e){if(this._getType(e)!==ve.symbol){let n=this._getOrReturnCtx(e);return me(n,{code:ne.invalid_type,expected:ve.symbol,received:n.parsedType}),Ze}return Ti(e.data)}};MT.create=r=>new MT({typeName:ae.ZodSymbol,...gt(r)});hy=class extends Tt{_parse(e){if(this._getType(e)!==ve.undefined){let n=this._getOrReturnCtx(e);return me(n,{code:ne.invalid_type,expected:ve.undefined,received:n.parsedType}),Ze}return Ti(e.data)}};hy.create=r=>new hy({typeName:ae.ZodUndefined,...gt(r)});gy=class extends Tt{_parse(e){if(this._getType(e)!==ve.null){let n=this._getOrReturnCtx(e);return me(n,{code:ne.invalid_type,expected:ve.null,received:n.parsedType}),Ze}return Ti(e.data)}};gy.create=r=>new gy({typeName:ae.ZodNull,...gt(r)});Sf=class extends Tt{constructor(){super(...arguments),this._any=!0}_parse(e){return Ti(e.data)}};Sf.create=r=>new Sf({typeName:ae.ZodAny,...gt(r)});yp=class extends Tt{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ti(e.data)}};yp.create=r=>new yp({typeName:ae.ZodUnknown,...gt(r)});sc=class extends Tt{_parse(e){let t=this._getOrReturnCtx(e);return me(t,{code:ne.invalid_type,expected:ve.never,received:t.parsedType}),Ze}};sc.create=r=>new sc({typeName:ae.ZodNever,...gt(r)});AT=class extends Tt{_parse(e){if(this._getType(e)!==ve.undefined){let n=this._getOrReturnCtx(e);return me(n,{code:ne.invalid_type,expected:ve.void,received:n.parsedType}),Ze}return Ti(e.data)}};AT.create=r=>new AT({typeName:ae.ZodVoid,...gt(r)});vp=class r extends Tt{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),a=this._def;if(t.parsedType!==ve.array)return me(t,{code:ne.invalid_type,expected:ve.array,received:t.parsedType}),Ze;if(a.exactLength!==null){let s=t.data.length>a.exactLength.value,o=t.data.length<a.exactLength.value;(s||o)&&(me(t,{code:s?ne.too_big:ne.too_small,minimum:o?a.exactLength.value:void 0,maximum:s?a.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:a.exactLength.message}),n.dirty())}if(a.minLength!==null&&t.data.length<a.minLength.value&&(me(t,{code:ne.too_small,minimum:a.minLength.value,type:"array",inclusive:!0,exact:!1,message:a.minLength.message}),n.dirty()),a.maxLength!==null&&t.data.length>a.maxLength.value&&(me(t,{code:ne.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((s,o)=>a.type._parseAsync(new cl(t,s,t.path,o)))).then(s=>Wa.mergeArray(n,s));let i=[...t.data].map((s,o)=>a.type._parseSync(new cl(t,s,t.path,o)));return Wa.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new r({...this._def,minLength:{value:e,message:Re.toString(t)}})}max(e,t){return new r({...this._def,maxLength:{value:e,message:Re.toString(t)}})}length(e,t){return new r({...this._def,exactLength:{value:e,message:Re.toString(t)}})}nonempty(e){return this.min(1,e)}};vp.create=(r,e)=>new vp({type:r,minLength:null,maxLength:null,exactLength:null,typeName:ae.ZodArray,...gt(e)});Ds=class r extends Tt{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=jt.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==ve.object){let c=this._getOrReturnCtx(e);return me(c,{code:ne.invalid_type,expected:ve.object,received:c.parsedType}),Ze}let{status:n,ctx:a}=this._processInputParams(e),{shape:i,keys:s}=this._getCached(),o=[];if(!(this._def.catchall instanceof sc&&this._def.unknownKeys==="strip"))for(let c in a.data)s.includes(c)||o.push(c);let l=[];for(let c of s){let d=i[c],u=a.data[c];l.push({key:{status:"valid",value:c},value:d._parse(new cl(a,u,a.path,c)),alwaysSet:c in a.data})}if(this._def.catchall instanceof sc){let c=this._def.unknownKeys;if(c==="passthrough")for(let d of o)l.push({key:{status:"valid",value:d},value:{status:"valid",value:a.data[d]}});else if(c==="strict")o.length>0&&(me(a,{code:ne.unrecognized_keys,keys:o}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let d of o){let u=a.data[d];l.push({key:{status:"valid",value:d},value:c._parse(new cl(a,u,a.path,d)),alwaysSet:d in a.data})}}return a.common.async?Promise.resolve().then(async()=>{let c=[];for(let d of l){let u=await d.key,p=await d.value;c.push({key:u,value:p,alwaysSet:d.alwaysSet})}return c}).then(c=>Wa.mergeObjectSync(n,c)):Wa.mergeObjectSync(n,l)}get shape(){return this._def.shape()}strict(e){return Re.errToObj,new r({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var i,s,o,l;let a=(o=(s=(i=this._def).errorMap)==null?void 0:s.call(i,t,n).message)!=null?o:n.defaultError;return t.code==="unrecognized_keys"?{message:(l=Re.errToObj(e).message)!=null?l:a}:{message:a}}}:{}})}strip(){return new r({...this._def,unknownKeys:"strip"})}passthrough(){return new r({...this._def,unknownKeys:"passthrough"})}extend(e){return new r({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new r({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:ae.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new r({...this._def,catchall:e})}pick(e){let t={};for(let n of jt.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new r({...this._def,shape:()=>t})}omit(e){let t={};for(let n of jt.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new r({...this._def,shape:()=>t})}deepPartial(){return PT(this)}partial(e){let t={};for(let n of jt.objectKeys(this.shape)){let a=this.shape[n];e&&!e[n]?t[n]=a:t[n]=a.optional()}return new r({...this._def,shape:()=>t})}required(e){let t={};for(let n of jt.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof Es;)i=i._def.innerType;t[n]=i}return new r({...this._def,shape:()=>t})}keyof(){return uBe(jt.objectKeys(this.shape))}};Ds.create=(r,e)=>new Ds({shape:()=>r,unknownKeys:"strip",catchall:sc.create(),typeName:ae.ZodObject,...gt(e)});Ds.strictCreate=(r,e)=>new Ds({shape:()=>r,unknownKeys:"strict",catchall:sc.create(),typeName:ae.ZodObject,...gt(e)});Ds.lazycreate=(r,e)=>new Ds({shape:r,unknownKeys:"strip",catchall:sc.create(),typeName:ae.ZodObject,...gt(e)});yy=class extends Tt{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function a(i){for(let o of i)if(o.result.status==="valid")return o.result;for(let o of i)if(o.result.status==="dirty")return t.common.issues.push(...o.ctx.common.issues),o.result;let s=i.map(o=>new Cs(o.ctx.common.issues));return me(t,{code:ne.invalid_union,unionErrors:s}),Ze}if(t.common.async)return Promise.all(n.map(async i=>{let s={...t,common:{...t.common,issues:[]},parent:null};return{result:await i._parseAsync({data:t.data,path:t.path,parent:s}),ctx:s}})).then(a);{let i,s=[];for(let l of n){let c={...t,common:{...t.common,issues:[]},parent:null},d=l._parseSync({data:t.data,path:t.path,parent:c});if(d.status==="valid")return d;d.status==="dirty"&&!i&&(i={result:d,ctx:c}),c.common.issues.length&&s.push(c.common.issues)}if(i)return t.common.issues.push(...i.ctx.common.issues),i.result;let o=s.map(l=>new Cs(l));return me(t,{code:ne.invalid_union,unionErrors:o}),Ze}}get options(){return this._def.options}};yy.create=(r,e)=>new yy({options:r,typeName:ae.ZodUnion,...gt(e)});gp=r=>r instanceof ky?gp(r.schema):r instanceof dl?gp(r.innerType()):r instanceof by?[r.value]:r instanceof Ty?r.options:r instanceof wy?jt.objectValues(r.enum):r instanceof Sy?gp(r._def.innerType):r instanceof hy?[void 0]:r instanceof gy?[null]:r instanceof Es?[void 0,...gp(r.unwrap())]:r instanceof Ad?[null,...gp(r.unwrap())]:r instanceof BP||r instanceof Cy?gp(r.unwrap()):r instanceof xy?gp(r._def.innerType):[],LL=class r extends Tt{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==ve.object)return me(t,{code:ne.invalid_type,expected:ve.object,received:t.parsedType}),Ze;let n=this.discriminator,a=t.data[n],i=this.optionsMap.get(a);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(me(t,{code:ne.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Ze)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){let a=new Map;for(let i of t){let s=gp(i.shape[e]);if(!s.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of s){if(a.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);a.set(o,i)}}return new r({typeName:ae.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:a,...gt(n)})}};vy=class extends Tt{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),a=(i,s)=>{if(FL(i)||FL(s))return Ze;let o=vZ(i.value,s.value);return o.valid?((OL(i)||OL(s))&&t.dirty(),{status:t.value,value:o.data}):(me(n,{code:ne.invalid_intersection_types}),Ze)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,s])=>a(i,s)):a(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};vy.create=(r,e,t)=>new vy({left:r,right:e,typeName:ae.ZodIntersection,...gt(t)});Md=class r extends Tt{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==ve.array)return me(n,{code:ne.invalid_type,expected:ve.array,received:n.parsedType}),Ze;if(n.data.length<this._def.items.length)return me(n,{code:ne.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Ze;!this._def.rest&&n.data.length>this._def.items.length&&(me(n,{code:ne.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());let i=[...n.data].map((s,o)=>{let l=this._def.items[o]||this._def.rest;return l?l._parse(new cl(n,s,n.path,o)):null}).filter(s=>!!s);return n.common.async?Promise.all(i).then(s=>Wa.mergeArray(t,s)):Wa.mergeArray(t,i)}get items(){return this._def.items}rest(e){return new r({...this._def,rest:e})}};Md.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Md({items:r,typeName:ae.ZodTuple,rest:null,...gt(e)})};zL=class r extends Tt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==ve.object)return me(n,{code:ne.invalid_type,expected:ve.object,received:n.parsedType}),Ze;let a=[],i=this._def.keyType,s=this._def.valueType;for(let o in n.data)a.push({key:i._parse(new cl(n,o,n.path,o)),value:s._parse(new cl(n,n.data[o],n.path,o)),alwaysSet:o in n.data});return n.common.async?Wa.mergeObjectAsync(t,a):Wa.mergeObjectSync(t,a)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof Tt?new r({keyType:e,valueType:t,typeName:ae.ZodRecord,...gt(n)}):new r({keyType:wf.create(),valueType:e,typeName:ae.ZodRecord,...gt(t)})}},_T=class extends Tt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==ve.map)return me(n,{code:ne.invalid_type,expected:ve.map,received:n.parsedType}),Ze;let a=this._def.keyType,i=this._def.valueType,s=[...n.data.entries()].map(([o,l],c)=>({key:a._parse(new cl(n,o,n.path,[c,"key"])),value:i._parse(new cl(n,l,n.path,[c,"value"]))}));if(n.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let l of s){let c=await l.key,d=await l.value;if(c.status==="aborted"||d.status==="aborted")return Ze;(c.status==="dirty"||d.status==="dirty")&&t.dirty(),o.set(c.value,d.value)}return{status:t.value,value:o}})}else{let o=new Map;for(let l of s){let c=l.key,d=l.value;if(c.status==="aborted"||d.status==="aborted")return Ze;(c.status==="dirty"||d.status==="dirty")&&t.dirty(),o.set(c.value,d.value)}return{status:t.value,value:o}}}};_T.create=(r,e,t)=>new _T({valueType:e,keyType:r,typeName:ae.ZodMap,...gt(t)});IT=class r extends Tt{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==ve.set)return me(n,{code:ne.invalid_type,expected:ve.set,received:n.parsedType}),Ze;let a=this._def;a.minSize!==null&&n.data.size<a.minSize.value&&(me(n,{code:ne.too_small,minimum:a.minSize.value,type:"set",inclusive:!0,exact:!1,message:a.minSize.message}),t.dirty()),a.maxSize!==null&&n.data.size>a.maxSize.value&&(me(n,{code:ne.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),t.dirty());let i=this._def.valueType;function s(l){let c=new Set;for(let d of l){if(d.status==="aborted")return Ze;d.status==="dirty"&&t.dirty(),c.add(d.value)}return{status:t.value,value:c}}let o=[...n.data.values()].map((l,c)=>i._parse(new cl(n,l,n.path,c)));return n.common.async?Promise.all(o).then(l=>s(l)):s(o)}min(e,t){return new r({...this._def,minSize:{value:e,message:Re.toString(t)}})}max(e,t){return new r({...this._def,maxSize:{value:e,message:Re.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};IT.create=(r,e)=>new IT({valueType:r,minSize:null,maxSize:null,typeName:ae.ZodSet,...gt(e)});jL=class r extends Tt{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==ve.function)return me(t,{code:ne.invalid_type,expected:ve.function,received:t.parsedType}),Ze;function n(o,l){return $P({data:o,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ET(),hp].filter(c=>!!c),issueData:{code:ne.invalid_arguments,argumentsError:l}})}function a(o,l){return $P({data:o,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ET(),hp].filter(c=>!!c),issueData:{code:ne.invalid_return_type,returnTypeError:l}})}let i={errorMap:t.common.contextualErrorMap},s=t.data;if(this._def.returns instanceof xf){let o=this;return Ti(async function(...l){let c=new Cs([]),d=await o._def.args.parseAsync(l,i).catch(m=>{throw c.addIssue(n(l,m)),c}),u=await Reflect.apply(s,this,d);return await o._def.returns._def.type.parseAsync(u,i).catch(m=>{throw c.addIssue(a(u,m)),c})})}else{let o=this;return Ti(function(...l){let c=o._def.args.safeParse(l,i);if(!c.success)throw new Cs([n(l,c.error)]);let d=Reflect.apply(s,this,c.data),u=o._def.returns.safeParse(d,i);if(!u.success)throw new Cs([a(d,u.error)]);return u.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new r({...this._def,args:Md.create(e).rest(yp.create())})}returns(e){return new r({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new r({args:e||Md.create([]).rest(yp.create()),returns:t||yp.create(),typeName:ae.ZodFunction,...gt(n)})}},ky=class extends Tt{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};ky.create=(r,e)=>new ky({getter:r,typeName:ae.ZodLazy,...gt(e)});by=class extends Tt{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return me(t,{received:t.data,code:ne.invalid_literal,expected:this._def.value}),Ze}return{status:"valid",value:e.data}}get value(){return this._def.value}};by.create=(r,e)=>new by({value:r,typeName:ae.ZodLiteral,...gt(e)});Ty=class r extends Tt{_parse(e){if(typeof e.data!="string"){let t=this._getOrReturnCtx(e),n=this._def.values;return me(t,{expected:jt.joinValues(n),received:t.parsedType,code:ne.invalid_type}),Ze}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return me(t,{received:t.data,code:ne.invalid_enum_value,options:n}),Ze}return Ti(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return r.create(e,{...this._def,...t})}exclude(e,t=this._def){return r.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}};Ty.create=uBe;wy=class extends Tt{_parse(e){let t=jt.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==ve.string&&n.parsedType!==ve.number){let a=jt.objectValues(t);return me(n,{expected:jt.joinValues(a),received:n.parsedType,code:ne.invalid_type}),Ze}if(this._cache||(this._cache=new Set(jt.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let a=jt.objectValues(t);return me(n,{received:n.data,code:ne.invalid_enum_value,options:a}),Ze}return Ti(e.data)}get enum(){return this._def.values}};wy.create=(r,e)=>new wy({values:r,typeName:ae.ZodNativeEnum,...gt(e)});xf=class extends Tt{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==ve.promise&&t.common.async===!1)return me(t,{code:ne.invalid_type,expected:ve.promise,received:t.parsedType}),Ze;let n=t.parsedType===ve.promise?t.data:Promise.resolve(t.data);return Ti(n.then(a=>this._def.type.parseAsync(a,{path:t.path,errorMap:t.common.contextualErrorMap})))}};xf.create=(r,e)=>new xf({type:r,typeName:ae.ZodPromise,...gt(e)});dl=class extends Tt{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ae.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),a=this._def.effect||null,i={addIssue:s=>{me(n,s),s.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),a.type==="preprocess"){let s=a.transform(n.data,i);if(n.common.async)return Promise.resolve(s).then(async o=>{if(t.value==="aborted")return Ze;let l=await this._def.schema._parseAsync({data:o,path:n.path,parent:n});return l.status==="aborted"?Ze:l.status==="dirty"?dy(l.value):t.value==="dirty"?dy(l.value):l});{if(t.value==="aborted")return Ze;let o=this._def.schema._parseSync({data:s,path:n.path,parent:n});return o.status==="aborted"?Ze:o.status==="dirty"?dy(o.value):t.value==="dirty"?dy(o.value):o}}if(a.type==="refinement"){let s=o=>{let l=a.refinement(o,i);if(n.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?Ze:(o.status==="dirty"&&t.dirty(),s(o.value),{status:t.value,value:o.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>o.status==="aborted"?Ze:(o.status==="dirty"&&t.dirty(),s(o.value).then(()=>({status:t.value,value:o.value}))))}if(a.type==="transform")if(n.common.async===!1){let s=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Tf(s))return Ze;let o=a.transform(s.value,i);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:o}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(s=>Tf(s)?Promise.resolve(a.transform(s.value,i)).then(o=>({status:t.value,value:o})):Ze);jt.assertNever(a)}};dl.create=(r,e,t)=>new dl({schema:r,typeName:ae.ZodEffects,effect:e,...gt(t)});dl.createWithPreprocess=(r,e,t)=>new dl({schema:e,effect:{type:"preprocess",transform:r},typeName:ae.ZodEffects,...gt(t)});Es=class extends Tt{_parse(e){return this._getType(e)===ve.undefined?Ti(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Es.create=(r,e)=>new Es({innerType:r,typeName:ae.ZodOptional,...gt(e)});Ad=class extends Tt{_parse(e){return this._getType(e)===ve.null?Ti(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Ad.create=(r,e)=>new Ad({innerType:r,typeName:ae.ZodNullable,...gt(e)});Sy=class extends Tt{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===ve.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Sy.create=(r,e)=>new Sy({innerType:r,typeName:ae.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...gt(e)});xy=class extends Tt{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},a=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return DT(a)?a.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Cs(n.common.issues)},input:n.data})})):{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new Cs(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};xy.create=(r,e)=>new xy({innerType:r,typeName:ae.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...gt(e)});NT=class extends Tt{_parse(e){if(this._getType(e)!==ve.nan){let n=this._getOrReturnCtx(e);return me(n,{code:ne.invalid_type,expected:ve.nan,received:n.parsedType}),Ze}return{status:"valid",value:e.data}}};NT.create=r=>new NT({typeName:ae.ZodNaN,...gt(r)});p_t=Symbol("zod_brand"),BP=class extends Tt{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},UP=class r extends Tt{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?Ze:i.status==="dirty"?(t.dirty(),dy(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{let a=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?Ze:a.status==="dirty"?(t.dirty(),{status:"dirty",value:a.value}):this._def.out._parseSync({data:a.value,path:n.path,parent:n})}}static create(e,t){return new r({in:e,out:t,typeName:ae.ZodPipeline})}},Cy=class extends Tt{_parse(e){let t=this._def.innerType._parse(e),n=a=>(Tf(a)&&(a.value=Object.freeze(a.value)),a);return DT(t)?t.then(a=>n(a)):n(t)}unwrap(){return this._def.innerType}};Cy.create=(r,e)=>new Cy({innerType:r,typeName:ae.ZodReadonly,...gt(e)});m_t={object:Ds.lazycreate};(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(ae||(ae={}));f_t=(r,e={message:`Input not instance of ${r.name}`})=>pBe(t=>t instanceof r,e),mBe=wf.create,fBe=uy.create,h_t=NT.create,g_t=py.create,hBe=my.create,y_t=fy.create,v_t=MT.create,k_t=hy.create,b_t=gy.create,T_t=Sf.create,w_t=yp.create,S_t=sc.create,x_t=AT.create,C_t=vp.create,kZ=Ds.create,E_t=Ds.strictCreate,D_t=yy.create,P_t=LL.create,M_t=vy.create,A_t=Md.create,__t=zL.create,I_t=_T.create,N_t=IT.create,R_t=jL.create,F_t=ky.create,O_t=by.create,L_t=Ty.create,z_t=wy.create,j_t=xf.create,$_t=dl.create,B_t=Es.create,U_t=Ad.create,H_t=dl.createWithPreprocess,V_t=UP.create,q_t=()=>mBe().optional(),W_t=()=>fBe().optional(),Y_t=()=>hBe().optional(),G_t={string:(r=>wf.create({...r,coerce:!0})),number:(r=>uy.create({...r,coerce:!0})),boolean:(r=>my.create({...r,coerce:!0})),bigint:(r=>py.create({...r,coerce:!0})),date:(r=>fy.create({...r,coerce:!0}))},K_t=Ze});var L={};at(L,{BRAND:()=>p_t,DIRTY:()=>dy,EMPTY_PATH:()=>VAt,INVALID:()=>Ze,NEVER:()=>K_t,OK:()=>Ti,ParseStatus:()=>Wa,Schema:()=>Tt,ZodAny:()=>Sf,ZodArray:()=>vp,ZodBigInt:()=>py,ZodBoolean:()=>my,ZodBranded:()=>BP,ZodCatch:()=>xy,ZodDate:()=>fy,ZodDefault:()=>Sy,ZodDiscriminatedUnion:()=>LL,ZodEffects:()=>dl,ZodEnum:()=>Ty,ZodError:()=>Cs,ZodFirstPartyTypeKind:()=>ae,ZodFunction:()=>jL,ZodIntersection:()=>vy,ZodIssueCode:()=>ne,ZodLazy:()=>ky,ZodLiteral:()=>by,ZodMap:()=>_T,ZodNaN:()=>NT,ZodNativeEnum:()=>wy,ZodNever:()=>sc,ZodNull:()=>gy,ZodNullable:()=>Ad,ZodNumber:()=>uy,ZodObject:()=>Ds,ZodOptional:()=>Es,ZodParsedType:()=>ve,ZodPipeline:()=>UP,ZodPromise:()=>xf,ZodReadonly:()=>Cy,ZodRecord:()=>zL,ZodSchema:()=>Tt,ZodSet:()=>IT,ZodString:()=>wf,ZodSymbol:()=>MT,ZodTransformer:()=>dl,ZodTuple:()=>Md,ZodType:()=>Tt,ZodUndefined:()=>hy,ZodUnion:()=>yy,ZodUnknown:()=>yp,ZodVoid:()=>AT,addIssueToContext:()=>me,any:()=>T_t,array:()=>C_t,bigint:()=>g_t,boolean:()=>hBe,coerce:()=>G_t,custom:()=>pBe,date:()=>y_t,datetimeRegex:()=>dBe,defaultErrorMap:()=>hp,discriminatedUnion:()=>P_t,effect:()=>$_t,enum:()=>L_t,function:()=>R_t,getErrorMap:()=>ET,getParsedType:()=>Pd,instanceof:()=>f_t,intersection:()=>M_t,isAborted:()=>FL,isAsync:()=>DT,isDirty:()=>OL,isValid:()=>Tf,late:()=>m_t,lazy:()=>F_t,literal:()=>O_t,makeIssue:()=>$P,map:()=>I_t,nan:()=>h_t,nativeEnum:()=>z_t,never:()=>S_t,null:()=>b_t,nullable:()=>U_t,number:()=>fBe,object:()=>kZ,objectUtil:()=>fZ,oboolean:()=>Y_t,onumber:()=>W_t,optional:()=>B_t,ostring:()=>q_t,pipeline:()=>V_t,preprocess:()=>H_t,promise:()=>j_t,quotelessJson:()=>BAt,record:()=>__t,set:()=>N_t,setErrorMap:()=>HAt,strictObject:()=>E_t,string:()=>mBe,symbol:()=>v_t,transformer:()=>$_t,tuple:()=>A_t,undefined:()=>k_t,union:()=>D_t,unknown:()=>w_t,util:()=>jt,void:()=>x_t});var $L=y(()=>{RL();gZ();aBe();jP();gBe();NL()});var BL=y(()=>{$L();$L()});function TBe(r={}){return{...kp,...r,fieldMapping:{...bBe,...r.fieldMapping},statuses:r.statuses?r.statuses.map(e=>({...e})):kp.statuses.map(e=>({...e})),priorities:r.priorities?r.priorities.map(e=>({...e})):kp.priorities.map(e=>({...e})),defaults:{...kp.defaults,...r.defaults},taskIdentification:{...kp.taskIdentification,...r.taskIdentification},userFields:r.userFields?r.userFields.map(e=>({...e})):[],recurrence:{...kp.recurrence,...r.recurrence},occurrences:{...kp.occurrences,...r.occurrences},timeTracking:{...kp.timeTracking,...r.timeTracking},nlp:r.nlp?{triggers:r.nlp.triggers.map(e=>({...e}))}:void 0}}function yBe(r,e=kp.statuses){return r?e.some(t=>t.value===r&&t.isCompleted):!1}function wBe(r){let e=tIt(r),t=e.match(wZ);if(t){let[,a,i,s]=t,o=Number(a),l=Number(i),c=Number(s);if(!SBe(o,l,c))throw new Error(`Invalid date "${r}".`);return new Date(Date.UTC(o,l-1,c,0,0,0,0))}if(!rIt(e))throw new Error(`Invalid date "${r}".`);let n=new Date(e);if(!xBe(n))throw new Error(`Invalid date "${r}".`);return n}function X_t(r){if(!xBe(r))return"";let e=r.getUTCFullYear(),t=String(r.getUTCMonth()+1).padStart(2,"0"),n=String(r.getUTCDate()).padStart(2,"0");return`${e}-${t}-${n}`}function bZ(r){if(!/^\d{4}-\d{2}-\d{2}$/.test(r))throw new Error(`Invalid date "${r}". Expected YYYY-MM-DD.`);return wBe(r),r}function eIt(r){if(!r)return"";let e=r.trim();if(wZ.test(e))return e;let t=e.indexOf("T");if(t>-1)return e.slice(0,t);let n=e.indexOf(" ");return n>-1&&wZ.test(e.slice(0,n))?e.slice(0,n):X_t(wBe(e))}function tIt(r,e="Date string cannot be empty"){if(!r||r.trim().length===0)throw new Error(e);return r.trim()}function rIt(r){let e=r.match(J_t);if(!e)return!1;let[,t,n,a,i,s,o,,l,c,d]=e;return SBe(Number(t),Number(n),Number(a))&&nIt(Number(i),Number(s),Number(o))&&aIt(l,c,d)}function SBe(r,e,t){let n=new Date(Date.UTC(r,e-1,t,0,0,0,0));return n.getUTCFullYear()===r&&n.getUTCMonth()===e-1&&n.getUTCDate()===t}function nIt(r,e,t){return r>=0&&r<=23&&e>=0&&e<=59&&t>=0&&t<=59}function aIt(r,e,t){if(!r)return!0;let n=Number(e),a=Number(t);return!(n>14||a>59||n===14&&a!==0)}function xBe(r){return r instanceof Date&&!Number.isNaN(r.getTime())}function iIt(r,e=""){var c;let t=r.trim(),n="path",a=t.match(/^\[\[([^|\]#]+)(?:#[^|\]]*)?(?:\|[^\]]*)?\]\]$/);if(a)n="wikilink",t=a[1].trim();else{let d=t.match(/^\[[^\]]*\]\(([^)#]+)(?:#[^)]*)?\)$/);d&&(n="markdown",t=d[1].trim())}try{t=decodeURI(t)}catch(d){return}if(t=t.replace(/\\/g,"/"),!t||/^[A-Za-z][A-Za-z\d+.-]*:/.test(t))return;let i=t.startsWith("/")||n==="wikilink"&&!t.startsWith("./")&&!t.startsWith("../"),s=e.replace(/\\/g,"/").split("/").filter(Boolean);s.length>0&&s.pop();let o=i?[]:s;for(let d of t.replace(/^\/+/,"").split("/"))if(!(!d||d===".")){if(d===".."){if(o.length===0)return;o.pop();continue}if(d.includes("\0")||d.includes("[")||d.includes("]"))return;o.push(d)}if(o.length===0)return;let l=(c=o[o.length-1])!=null?c:"";if(/^.+\.[^.]+$/.test(l))return o.join("/")}function sIt(r,e=""){let t=[],n=new Set;for(let[a,i]of(r!=null?r:[]).entries()){let s=iIt(i,e);if(!s){t.push({code:"invalid_attachment_reference",message:"Attachment references must identify a collection file using an explicit extension",index:a,reference:i});continue}if(n.has(s)){t.push({code:"duplicate_attachment_reference",message:`Attachment target is listed more than once: ${s}`,index:a,reference:i});continue}n.add(s)}return{valid:t.length===0,issues:t}}function SZ(r){let e=[],t=EBe.partial().safeParse(r);if(!t.success)for(let n of t.error.issues)e.push({code:"schema_invalid",message:n.message,severity:"error",path:n.path.map(String)});for(let n of["due","scheduled","completedDate","dateCreated","dateModified"]){let a=r[n];if(a!==void 0&&typeof a=="string")try{bZ(eIt(a))}catch(i){e.push({code:"invalid_date",message:`${n} must contain a valid date`,severity:"error",field:n})}}if(r.complete_instances)for(let n of r.complete_instances)try{bZ(n)}catch(a){e.push({code:"invalid_complete_instance",message:`Invalid completed recurrence instance "${n}"`,severity:"warning",field:"complete_instances"})}if(r.skipped_instances)for(let n of r.skipped_instances)try{bZ(n)}catch(a){e.push({code:"invalid_skipped_instance",message:`Invalid skipped recurrence instance "${n}"`,severity:"warning",field:"skipped_instances"})}r.timeEntries&&e.push(...dIt(r.timeEntries).issues);for(let n of sIt(r.attachments,r.path).issues)e.push({code:n.code,message:n.message,severity:"error",path:["attachments",String(n.index)],field:"attachments"});return{valid:!e.some(n=>n.severity==="error"),issues:e}}function dIt(r){let e=[];return Array.isArray(r)?(r.forEach((n,a)=>{let i=CBe.safeParse(n);if(!i.success){for(let s of i.error.issues)e.push({code:"invalid_time_entry",message:s.message,severity:"error",path:["timeEntries",String(a),...s.path.map(String)]});return}uIt(i.data,a,e)}),r.filter(n=>n&&!n.endTime).length>1&&e.push({code:"multiple_active_time_entries",message:"Only one active time entry is allowed",severity:"warning",field:"timeEntries"}),{valid:!e.some(n=>n.severity==="error"),issues:e}):{valid:!1,issues:[{code:"time_entries_not_array",message:"timeEntries must be an array",severity:"error",field:"timeEntries"}]}}function DBe(r,e){let t=SZ(r);for(let n of["title","status","dateCreated","dateModified"]){let a=r[n];(typeof a!="string"||a.trim().length===0)&&t.issues.push({code:"missing_required",message:`${n} is required`,severity:"error",field:n})}if(r.status&&!e.some(n=>n.value===r.status)&&t.issues.push({code:"invalid_status",message:`Unknown status "${r.status}"`,severity:"error",field:"status"}),r.completedDate!==void 0&&!/^\d{4}-\d{2}-\d{2}$/.test(r.completedDate)&&t.issues.push({code:"invalid_date_value",message:"completedDate must be a YYYY-MM-DD date",severity:"error",field:"completedDate"}),r.status&&yBe(r.status,e)&&!r.recurrence&&!r.completedDate&&t.issues.push({code:"missing_required",message:"completedDate is required for a completed non-recurring task",severity:"error",field:"completedDate"}),r.dateCreated&&r.dateModified){let n=Date.parse(r.dateCreated),a=Date.parse(r.dateModified);Number.isFinite(n)&&Number.isFinite(a)&&a<n&&t.issues.push({code:"date_modified_before_created",message:"dateModified must not be before dateCreated",severity:"error",field:"dateModified"})}return r.status&&yBe(r.status,e)&&r.recurrence&&r.completedDate&&t.issues.push({code:"recurring_task_completed_date",message:"Recurring task completion is tracked per instance, not with completedDate",severity:"warning",field:"completedDate"}),{valid:!t.issues.some(n=>n.severity==="error"),issues:t.issues}}function uIt(r,e,t){let n=new Date(r.startTime);if(Number.isNaN(n.getTime())){t.push({code:"invalid_time_entry_start",message:"Time entry startTime must be a valid datetime",severity:"error",path:["timeEntries",String(e),"startTime"]});return}if(!r.endTime)return;let a=new Date(r.endTime);if(Number.isNaN(a.getTime())){t.push({code:"invalid_time_entry_end",message:"Time entry endTime must be a valid datetime",severity:"error",path:["timeEntries",String(e),"endTime"]});return}a<n&&t.push({code:"time_entry_negative_duration",message:"Time entry endTime must not be before startTime",severity:"error",path:["timeEntries",String(e),"endTime"]})}var kBe,bBe,Z_t,Q_t,kp,wZ,J_t,oIt,lIt,CBe,cIt,Z3r,Q3r,EBe,J3r,TZ,vBe,X3r,PBe=y(()=>{BL();Ov();aD();aD();kBe="0.3.0-rc.3",bBe={title:"title",status:"status",priority:"priority",due:"due",scheduled:"scheduled",contexts:"contexts",projects:"projects",attachments:"attachments",timeEstimate:"timeEstimate",completedDate:"completedDate",dateCreated:"dateCreated",dateModified:"dateModified",recurrence:"recurrence",recurrenceAnchor:"recurrence_anchor",recurrenceParent:"recurrence_parent",occurrenceDate:"occurrence_date",occurrenceMaterialization:"occurrence_materialization",occurrenceNextTrigger:"occurrence_next_trigger",occurrenceTemplate:"occurrence_template",occurrencePastHorizon:"occurrence_past_horizon",occurrenceFutureHorizon:"occurrence_future_horizon",archiveTag:"archived",timeEntries:"timeEntries",completeInstances:"complete_instances",skippedInstances:"skipped_instances",blockedBy:"blockedBy",pomodoros:"pomodoros",icsEventId:"icsEventId",icsEventTag:"ics_event",googleCalendarEventId:"googleCalendarEventId",googleCalendarExceptionEventId:"googleCalendarExceptionEventId",googleCalendarExceptionOriginalScheduled:"googleCalendarExceptionOriginalScheduled",googleCalendarMovedOriginalDates:"googleCalendarMovedOriginalDates",reminders:"reminders",sortOrder:"tasknotes_manual_order"},Z_t=[{id:"none",value:"none",label:"None",color:"#cccccc",isCompleted:!1,excludeFromCycle:!1,order:0,autoArchive:!1,autoArchiveDelay:5},{id:"open",value:"open",label:"Open",color:"#808080",isCompleted:!1,excludeFromCycle:!1,order:1,autoArchive:!1,autoArchiveDelay:5},{id:"in-progress",value:"in-progress",label:"In progress",color:"#0066cc",isCompleted:!1,excludeFromCycle:!1,order:2,autoArchive:!1,autoArchiveDelay:5},{id:"done",value:"done",label:"Done",color:"#00aa00",isCompleted:!0,excludeFromCycle:!1,order:3,autoArchive:!1,autoArchiveDelay:5}],Q_t=[{id:"none",value:"none",label:"None",color:"#cccccc",weight:0},{id:"low",value:"low",label:"Low",color:"#00aa00",weight:1},{id:"normal",value:"normal",label:"Normal",color:"#ffaa00",weight:2},{id:"high",value:"high",label:"High",color:"#ff0000",weight:3}],kp={fieldMapping:bBe,statuses:Z_t,priorities:Q_t,defaults:{status:"open",priority:"normal",taskTag:"task"},taskIdentification:{method:"tag",tag:"task",propertyName:"isTask",propertyValue:"true"},storeTitleInFilename:!1,userFields:[],recurrence:{maintainDueDateOffset:!0,resetCheckboxesOnRecurrence:!1},occurrences:{defaultMaterialization:"manual",defaultNextTrigger:"completion",pastHorizon:"P0D",futureHorizon:"P14D"},timeTracking:{autoStopOnComplete:!1,autoStopNotification:!0,defaultSessionDescription:"Work session"}};wZ=/^(\d{4})-(\d{2})-(\d{2})$/,J_t=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d{1,3})?(?:Z|([+-])(\d{2}):(\d{2}))?$/;oIt=L.enum(["FINISHTOSTART","FINISHTOFINISH","STARTTOSTART","STARTTOFINISH"]),lIt=L.object({uid:L.string().min(1),reltype:oIt,gap:L.string().optional()}),CBe=L.object({startTime:L.string().min(1),endTime:L.string().min(1).optional(),description:L.string().optional(),duration:L.number().optional()}),cIt=L.object({id:L.string().min(1),type:L.enum(["absolute","relative"]),relatedTo:L.enum(["due","scheduled"]).optional(),offset:L.string().optional(),absoluteTime:L.string().optional(),description:L.string().optional()}),Z3r=L.object({id:L.string().min(1),value:L.string().min(1),label:L.string().min(1),color:L.string().min(1),icon:L.string().optional(),isCompleted:L.boolean(),isSkipped:L.boolean().optional(),excludeFromCycle:L.boolean().optional(),nextStatus:L.string().optional(),order:L.number(),autoArchive:L.boolean(),autoArchiveDelay:L.number()}),Q3r=L.object({id:L.string().min(1),value:L.string().min(1),label:L.string().min(1),color:L.string().min(1),icon:L.string().optional(),weight:L.number()}),EBe=L.object({id:L.string().optional(),title:L.string(),status:L.string(),priority:L.string(),due:L.string().optional(),scheduled:L.string().optional(),path:L.string(),archived:L.boolean(),tags:L.array(L.string()).optional(),contexts:L.array(L.string()).optional(),projects:L.array(L.string()).optional(),attachments:L.array(L.string().min(1)).optional(),recurrence:L.string().optional(),recurrence_anchor:L.enum(["scheduled","completion"]).optional(),complete_instances:L.array(L.string()).optional(),skipped_instances:L.array(L.string()).optional(),recurrence_parent:L.string().optional(),occurrence_date:L.string().optional(),occurrence_materialization:L.enum(["manual","on_completion","rolling"]).optional(),occurrence_next_trigger:L.enum(["completion","completion_or_skip"]).optional(),occurrence_template:L.string().optional(),occurrence_past_horizon:L.string().optional(),occurrence_future_horizon:L.string().optional(),completedDate:L.string().optional(),timeEstimate:L.number().optional(),timeEntries:L.array(CBe).optional(),totalTrackedTime:L.number().optional(),dateCreated:L.string().optional(),dateModified:L.string().optional(),icsEventId:L.array(L.string()).optional(),googleCalendarEventId:L.string().optional(),googleCalendarExceptionEventId:L.string().optional(),googleCalendarExceptionOriginalScheduled:L.string().optional(),googleCalendarMovedOriginalDates:L.array(L.string()).optional(),reminders:L.array(cIt).optional(),customProperties:L.record(L.unknown()).optional(),basesData:L.unknown().optional(),blockedBy:L.array(lIt).optional(),blocking:L.array(L.string()).optional(),isBlocked:L.boolean().optional(),isBlocking:L.boolean().optional(),hasSubtasks:L.boolean().optional(),details:L.string().optional(),sortOrder:L.string().optional()}),J3r=L.object({frontmatter:L.record(L.unknown()),body:L.string(),task:EBe.partial(),path:L.string().optional()}),TZ=Reflect.get(Qp,"default"),X3r=(vBe=ke)!=null?vBe:TZ==null?void 0:TZ.RRule});function pIt(r){return!r||r.length===0?0:r.reduce((e,t)=>{if(t.endTime){let n=new Date(t.endTime).getTime()-new Date(t.startTime).getTime();return e+Math.floor(n/(1e3*60))}else{let n=Date.now()-new Date(t.startTime).getTime();return e+Math.floor(n/(1e3*60))}},0)}function RT(r,e){let t=[];for(let n of r){let a=e(n);if(a){let i=new Date(a.startTime),s=Math.floor((Date.now()-i.getTime())/(1e3*60));t.push({task:{id:n.path,title:n.title,status:n.status,priority:n.priority,tags:n.tags||[],projects:n.projects||[]},session:{startTime:a.startTime,description:a.description,elapsedMinutes:s},elapsedMinutes:s})}}return{activeSessions:t,totalActiveSessions:t.length,totalElapsedMinutes:t.reduce((n,a)=>n+a.elapsedMinutes,0)}}function mIt(r){let e,t=new Date;switch(r.period){case"today":e=new Date,e.setHours(0,0,0,0);break;case"week":e=new Date,e.setDate(e.getDate()-e.getDay()),e.setHours(0,0,0,0);break;case"month":e=new Date,e.setDate(1),e.setHours(0,0,0,0);break;case"all":e=new Date(0);break;default:r.fromDate?(e=r.fromDate,r.toDate&&(t=r.toDate)):(e=new Date,e.setHours(0,0,0,0))}return{startDate:e,endDate:t}}function FT(r,e,t){let{startDate:n,endDate:a}=mIt(e),i=0,s=0,o=0,l=[],c=new Map,d=e.includeTags?new Map:null;for(let m of r){if(!m.timeEntries||m.timeEntries.length===0)continue;let f=0,h=!1;for(let g of m.timeEntries){let v=new Date(g.startTime);if(v>=n&&v<=a)if(!g.endTime)f+=Math.floor((Date.now()-v.getTime())/(1e3*60)),h=!0;else{let b=new Date(g.endTime);f+=Math.floor((b.getTime()-v.getTime())/(1e3*60))}}if(f>0){if(i+=f,l.push({task:m.path,title:m.title,minutes:f}),h?o++:t(m.status)&&s++,m.projects)for(let g of m.projects)c.set(g,(c.get(g)||0)+f);if(d&&m.tags)for(let g of m.tags)d.set(g,(d.get(g)||0)+f)}}l.sort((m,f)=>f.minutes-m.minutes);let u=Array.from(c.entries()).sort((m,f)=>f[1]-m[1]).slice(0,10).map(([m,f])=>({project:m,minutes:f})),p={period:e.period,dateRange:{from:n.toISOString(),to:a.toISOString()},summary:{totalMinutes:i,totalHours:Math.round(i/60*100)/100,tasksWithTime:l.length,activeTasks:o,completedTasks:s},topTasks:l.slice(0,10),topProjects:u};return d&&(p.topTags=Array.from(d.entries()).sort((m,f)=>f[1]-m[1]).slice(0,10).map(([m,f])=>({tag:m,minutes:f}))),p}function Cf(r,e){let t=r.timeEntries||[],n=e(r),a=pIt(t),i=t.filter(l=>l.endTime).length,s=t.filter(l=>l.endTime),o=s.length>0?Math.round(s.reduce((l,c)=>l+Math.floor((new Date(c.endTime).getTime()-new Date(c.startTime).getTime())/(1e3*60)),0)/s.length*100)/100:0;return{task:{id:r.path,title:r.title,status:r.status,priority:r.priority},summary:{totalMinutes:a,totalHours:Math.round(a/60*100)/100,totalSessions:t.length,completedSessions:i,activeSessions:n?1:0,averageSessionMinutes:o},activeSession:n?{startTime:n.startTime,description:n.description,elapsedMinutes:Math.floor((Date.now()-new Date(n.startTime).getTime())/(1e3*60))}:null,timeEntries:t.map(l=>({startTime:l.startTime,endTime:l.endTime||null,description:l.description||null,duration:l.endTime?Math.floor((new Date(l.endTime).getTime()-new Date(l.startTime).getTime())/(1e3*60)):Math.floor((Date.now()-new Date(l.startTime).getTime())/(1e3*60)),isActive:!l.endTime}))}}var HP=y(()=>{});function xZ(r){if(!r||typeof r!="object")return!1;let e=r;return e.name==="TaskNotesApiError"&&typeof e.message=="string"&&typeof e.status=="number"&&typeof e.code=="string"&&fIt.includes(e.code)}function IBe(r){return r instanceof ln||xZ(r)}var MBe,ABe,_d,_Be,fIt,ln,NBe,VP=y(()=>{MBe=["model.read","model.validate","catalog.read","extensions.read","extensions.register","tasks.read","tasks.write","tasks.delete","tasks.move","tasks.events","relationships.read","events.list","time.read","time.write","time.summary","pomodoro.read","pomodoro.write","pomodoro.events","recurring.write","recurring.materialize","recurring.events","settings.snapshot","bases.write","nlp.parse","ui.task-menu","query.tasks","query.validate","query.explain","query.filter-options","stats.tasks","system.health","lifecycle.events","errors.typed"],ABe=[{name:"task.created",label:"Task created",description:"A TaskNotes task was created.",category:"task"},{name:"task.updated",label:"Task updated",description:"Any tracked TaskNotes task property changed.",category:"task"},{name:"task.deleted",label:"Task deleted",description:"A TaskNotes task was deleted.",category:"task"},{name:"task.moved",label:"Task moved",description:"A TaskNotes task note moved to a new path.",category:"task"},{name:"task.status.changed",label:"Task status changed",description:"A TaskNotes task status changed.",category:"task"},{name:"task.completed",label:"Task completed",description:"A TaskNotes task moved into a completed status.",category:"task"},{name:"task.uncompleted",label:"Task uncompleted",description:"A TaskNotes task moved out of a completed status.",category:"task"},{name:"task.archived",label:"Task archived",description:"A TaskNotes task was archived.",category:"task"},{name:"task.unarchived",label:"Task unarchived",description:"A TaskNotes task was unarchived.",category:"task"},{name:"task.scheduled.changed",label:"Task scheduled date changed",description:"A TaskNotes task scheduled date changed.",category:"task"},{name:"task.due.changed",label:"Task due date changed",description:"A TaskNotes task due date changed.",category:"task"},{name:"task.priority.changed",label:"Task priority changed",description:"A TaskNotes task priority changed.",category:"task"},{name:"task.tags.changed",label:"Task tags changed",description:"A TaskNotes task tag list changed.",category:"task"},{name:"task.contexts.changed",label:"Task contexts changed",description:"A TaskNotes task context list changed.",category:"task"},{name:"task.projects.changed",label:"Task projects changed",description:"A TaskNotes task project list changed.",category:"task"},{name:"task.attachments.changed",label:"Task attachments changed",description:"A TaskNotes task attachment list changed.",category:"task"},{name:"task.reminders.changed",label:"Task reminders changed",description:"A TaskNotes task reminder list changed.",category:"task"},{name:"task.dependencies.changed",label:"Task dependencies changed",description:"A TaskNotes task dependency list changed.",category:"task"},{name:"task.recurrence.changed",label:"Task recurrence changed",description:"A TaskNotes task recurrence rule changed.",category:"task"},{name:"time.started",label:"Time tracking started",description:"A time entry started on a TaskNotes task.",category:"time"},{name:"time.stopped",label:"Time tracking stopped",description:"A time entry stopped on a TaskNotes task.",category:"time"},{name:"pomodoro.started",label:"Pomodoro started",description:"A Pomodoro session started.",category:"pomodoro"},{name:"pomodoro.completed",label:"Pomodoro completed",description:"A Pomodoro session completed.",category:"pomodoro"},{name:"pomodoro.interrupted",label:"Pomodoro interrupted",description:"A Pomodoro session was interrupted.",category:"pomodoro"},{name:"recurring.instance.completed",label:"Recurring instance completed",description:"A recurring task instance was completed.",category:"recurring"},{name:"recurring.instance.skipped",label:"Recurring instance skipped",description:"A recurring task instance was skipped.",category:"recurring"}],_d={ready:"tasknotes:runtime.ready","layout.ready":"tasknotes:runtime.layout-ready","settings.changed":"settings-changed","cache.changed":"tasknotes:cache.changed","cache.rebuilt":"tasknotes:cache.rebuilt","extension.registered":"tasknotes:extension.registered","extension.unregistered":"tasknotes:extension.unregistered",unloading:"tasknotes:runtime.unloading"},_Be=[{name:"ready",label:"Runtime ready",description:"TaskNotes loaded its runtime API.",category:"runtime"},{name:"layout.ready",label:"Layout ready",description:"TaskNotes completed post-layout initialization.",category:"runtime"},{name:"settings.changed",label:"Settings changed",description:"TaskNotes settings were saved or reloaded.",category:"settings"},{name:"cache.changed",label:"Cache changed",description:"TaskNotes task data changed or was invalidated.",category:"cache"},{name:"cache.rebuilt",label:"Cache rebuilt",description:"TaskNotes cache was explicitly rebuilt.",category:"cache"},{name:"extension.registered",label:"Extension registered",description:"A companion plugin registered a runtime API extension namespace.",category:"extension"},{name:"extension.unregistered",label:"Extension unregistered",description:"A companion plugin unregistered a runtime API extension namespace.",category:"extension"},{name:"unloading",label:"Runtime unloading",description:"TaskNotes started unloading.",category:"runtime"}],fIt=["invalid_input","invalid_task_path","invalid_status","task_not_found","task_file_not_found","file_already_exists","extension_invalid","extension_namespace_reserved","extension_namespace_conflict","extension_not_registered","operation_failed"],ln=class extends Error{constructor(t,n,a={}){var i;super(n);this.name="TaskNotesApiError";this.code=t,this.status=(i=a.status)!=null?i:500,this.details=a.details,a.cause!==void 0&&(this.cause=a.cause)}toJSON(){return{name:this.name,code:this.code,message:this.message,status:this.status,details:this.details}}};NBe=["eq","ne","contains","notContains","in","notIn","exists","missing","lt","lte","gt","gte","isTrue","isFalse"]});function wIt(r){let e=Et(r).trim();return e?(0,Gi.normalizePath)(e):null}function Gn(r,e,t,n,a,i,s={}){var l,c,d,u,p;let o=ope.find(m=>m.id===e);return{id:r,internalProperty:e,label:t,category:n,valueType:a,source:i,queryable:!0,sortable:(l=s.sortable)!=null?l:!1,groupable:(c=s.groupable)!=null?c:!1,supportedOperators:xIt((d=o==null?void 0:o.supportedOperators)!=null?d:HL(a)),aliases:s.aliases,valueInputType:(p=(u=s.valueInputType)!=null?u:o==null?void 0:o.valueInputType)!=null?p:"text"}}function SIt(r){return EZ.find(e=>e.internalProperty===r)}function xIt(r){let e=r.map(t=>UBe(t)).filter(Id);return e.includes("eq")&&e.push("in"),e.includes("ne")&&e.push("notIn"),Array.from(new Set(e))}function HL(r){return r==="boolean"?["isTrue","isFalse"]:r==="number"?["eq","ne","in","notIn","lt","lte","gt","gte","exists","missing"]:r==="date"||r==="datetime"?["eq","ne","in","notIn","lt","lte","gt","gte","exists","missing"]:r.endsWith("[]")?["contains","notContains","exists","missing"]:["eq","ne","in","notIn","contains","notContains","exists","missing"]}function FBe(r){return r==="number"?"number":r==="date"?"date":r==="boolean"?"none":r==="list"?"multi-select":"text"}function UBe(r){if(typeof r!="string")return null;let e=r.trim(),t=kIt.get(e);return t||(NBe.includes(e)?e:null)}function CIt(r){return!["exists","missing","isTrue","isFalse"].includes(r)}function OBe(){return{sort:[],offset:0,group:[],scope:{includeArchived:!0}}}function EIt(r,e,t){if(!(typeof r=="undefined"||r===null)){if(typeof r!="number"||!Number.isInteger(r)||r<=0){t.push({path:e,code:"limit_invalid",message:"Runtime query limit must be a positive integer."});return}return r}}function DIt(r,e,t){return typeof r=="undefined"||r===null?0:typeof r!="number"||!Number.isInteger(r)||r<0?(t.push({path:e,code:"offset_invalid",message:"Runtime query offset must be a non-negative integer."}),0):r}function PIt(r,e){return typeof r=="undefined"||r===null?{includeArchived:!0}:bp(r)?{includeArchived:r.includeArchived!==!1,folders:LBe(r.folders,"$.scope.folders",e),excludeFolders:LBe(r.excludeFolders,"$.scope.excludeFolders",e)}:(e.push({path:"$.scope",code:"scope_not_object",message:"Runtime query scope must be an object."}),{includeArchived:!0})}function LBe(r,e,t){if(typeof r=="undefined")return;if(!Array.isArray(r)){t.push({path:e,code:"folder_list_invalid",message:"Runtime query folder scope must be an array of folder paths."});return}let n=r.map((a,i)=>typeof a!="string"||a.trim().length===0?(t.push({path:`${e}.${i}`,code:"folder_invalid",message:"Runtime query folder path must be a non-empty string."}),null):(0,Gi.normalizePath)(a)).filter(Id);return n.length>0?n:void 0}function qL(r){if(Array.isArray(r))return r.map(qL);if(bp(r)){let e=r.fn;if(e==="today")return{fn:"today"};if(e==="now")return{fn:"now"};if(e==="date"&&typeof r.value=="string")return{fn:"date",value:r.value};if(e==="dateAdd"&&Number.isFinite(r.amount)&&(r.unit==="day"||r.unit==="week"||r.unit==="month"))return{fn:"dateAdd",value:qL(r.value),amount:Number(r.amount),unit:r.unit}}return typeof r=="string"||typeof r=="number"||typeof r=="boolean"||r===null?r:HBe(r)}function WL(r){if(typeof r=="undefined")return null;if(Array.isArray(r))return r.map(e=>String(WL(e)));if(bp(r)){if(r.fn==="today")return"today";if(r.fn==="now")return new Date().toISOString();if(r.fn==="date"&&typeof r.value=="string")return r.value;if(r.fn==="dateAdd")return MIt(r)}return typeof r=="string"||typeof r=="number"||typeof r=="boolean"||r===null?r:HBe(r)}function HBe(r){var e;if(typeof r=="string"||typeof r=="number"||typeof r=="boolean"||typeof r=="bigint")return String(r);try{return(e=JSON.stringify(r))!=null?e:""}catch(t){return""}}function MIt(r){let e=WL(r.value),t=e==="today"?new Date:typeof e=="string"?new Date(e):new Date;return r.unit==="day"&&t.setDate(t.getDate()+r.amount),r.unit==="week"&&t.setDate(t.getDate()+r.amount*7),r.unit==="month"&&t.setMonth(t.getMonth()+r.amount),t.toISOString().slice(0,10)}function DZ(r){if("all"in r)return{any:r.all.map(DZ).filter(Id)};if("any"in r)return{all:r.any.map(DZ).filter(Id)};if("not"in r)return r.not;let e=AIt(r.op);return e?{...r,op:e}:null}function AIt(r){var t;return(t={eq:"ne",ne:"eq",contains:"notContains",notContains:"contains",in:"notIn",notIn:"in",exists:"missing",missing:"exists",lt:"gte",lte:"gt",gt:"lte",gte:"lt",isTrue:"isFalse",isFalse:"isTrue"}[r])!=null?t:null}function _It(r,e){return r.filter(t=>{var n;return!(!e.includeArchived&&t.archived||e.folders&&!e.folders.some(a=>zBe(t,a))||(n=e.excludeFolders)!=null&&n.some(a=>zBe(t,a)))})}function zBe(r,e){let t=(0,Gi.normalizePath)(e);return t?r.path===t||r.path.startsWith(`${t}/`):!0}function IIt(r,e){let t=[];for(let[n,a]of r.entries()){let i=a.map(s=>s.path).filter(s=>e.has(s));i.length>0&&t.push({key:n,label:n,taskPaths:i})}return t}function qP(r){return`runtime:${r.replace(/[^a-z0-9._-]+/giu,"-")}`}function Id(r){return r!==null&&typeof r!="undefined"}function NIt(r){let e=(0,Gi.normalizePath)(r),t=[e];return/\.md$/iu.test(e)||t.push(`${e}.md`),t}function CZ(r){let e=new Set,t=[];for(let n of r)e.has(n.path)||(e.add(n.path),t.push(n));return t}function RIt(r){return{...r}}function WP(r){switch(r){case"number":return"number";case"date":return"date";case"boolean":return"boolean";case"list":return"string[]";case"text":default:return"string"}}function jBe(r){return r?r instanceof Date?r:new Date(r):null}function bp(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function FIt(r,e){let t={},n=new Set([...Object.keys(r!=null?r:{}),...Object.keys(e!=null?e:{})]);for(let a of n){if(a==="basesData")continue;let i=r==null?void 0:r[a],s=e==null?void 0:e[a];Ey(i,s)||(t[a]={before:i,after:s})}return t}function Ey(r,e){if(Object.is(r,e))return!0;if(typeof r!="object"||r===null||typeof e!="object"||e===null)return!1;try{return JSON.stringify(r)===JSON.stringify(e)}catch(t){return!1}}function UL(r){var e;return((e=r.timeEntries)!=null?e:[]).filter(t=>!t.endTime).length}function $Be(r,e){let t=new Set(r!=null?r:[]);return(e!=null?e:[]).some(n=>!t.has(n))}function OIt(r){return r==="task.deleted"?is:r==="pomodoro.started"?ou:r==="pomodoro.completed"?lu:r==="pomodoro.interrupted"?cu:ot}function Cr(r){let e={...r};return r.tags&&(e.tags=[...r.tags]),r.contexts&&(e.contexts=[...r.contexts]),r.projects&&(e.projects=[...r.projects]),r.complete_instances&&(e.complete_instances=[...r.complete_instances]),r.skipped_instances&&(e.skipped_instances=[...r.skipped_instances]),r.icsEventId&&(e.icsEventId=[...r.icsEventId]),r.googleCalendarMovedOriginalDates&&(e.googleCalendarMovedOriginalDates=[...r.googleCalendarMovedOriginalDates]),r.reminders&&(e.reminders=r.reminders.map(t=>({...t}))),r.timeEntries&&(e.timeEntries=r.timeEntries.map(t=>({...t}))),r.blockedBy&&(e.blockedBy=r.blockedBy.map(t=>({...t}))),r.blocking&&(e.blocking=[...r.blocking]),r.customProperties&&(e.customProperties={...r.customProperties}),e}var Gi,gIt,yIt,vIt,BBe,kIt,EZ,RBe,bIt,TIt,VL,VBe=y(()=>{Gi=require("obsidian");PBe();Lc();Yr();Ct();qn();HP();TE();VP();VP();gIt=new Set(["apiversion","capabilities","events","extensions","hascapability","nlp","pomodoro","relationships","recurring","settings","tasks","time"]),yIt=[{id:"title",label:"Title",valueType:"string",source:"model",writable:!0,required:!0},{id:"status",label:"Status",valueType:"string",source:"model",writable:!0,required:!0},{id:"priority",label:"Priority",valueType:"string",source:"model",writable:!0,required:!0},{id:"due",label:"Due",valueType:"date",source:"model",writable:!0},{id:"scheduled",label:"Scheduled",valueType:"date",source:"model",writable:!0},{id:"archived",label:"Archived",valueType:"boolean",source:"model",writable:!0},{id:"tags",label:"Tags",valueType:"string[]",source:"model",writable:!0},{id:"contexts",label:"Contexts",valueType:"string[]",source:"model",writable:!0},{id:"projects",label:"Projects",valueType:"string[]",source:"model",writable:!0},{id:"recurrence",label:"Recurrence",valueType:"string",source:"model",writable:!0},{id:"recurrence_anchor",label:"Recurrence anchor",valueType:"string",source:"model",writable:!0},{id:"complete_instances",label:"Complete instances",valueType:"string[]",source:"model",writable:!0},{id:"skipped_instances",label:"Skipped instances",valueType:"string[]",source:"model",writable:!0},{id:"recurrence_parent",label:"Recurrence parent",valueType:"string",source:"model",writable:!0},{id:"occurrence_date",label:"Occurrence date",valueType:"date",source:"model",writable:!0},{id:"occurrence_materialization",label:"Occurrence materialization",valueType:"string",source:"model",writable:!0},{id:"occurrence_next_trigger",label:"Occurrence next trigger",valueType:"string",source:"model",writable:!0},{id:"occurrence_template",label:"Occurrence template",valueType:"string",source:"model",writable:!0},{id:"occurrence_past_horizon",label:"Occurrence past horizon",valueType:"string",source:"model",writable:!0},{id:"occurrence_future_horizon",label:"Occurrence future horizon",valueType:"string",source:"model",writable:!0},{id:"completedDate",label:"Completed date",valueType:"date",source:"model",writable:!0},{id:"timeEstimate",label:"Time estimate",valueType:"number",source:"model",writable:!0},{id:"timeEntries",label:"Time entries",valueType:"timeEntry[]",source:"model",writable:!0},{id:"attachments",label:"Attachments",valueType:"string[]",source:"model",writable:!0},{id:"dateCreated",label:"Date created",valueType:"datetime",source:"model",writable:!0},{id:"dateModified",label:"Date modified",valueType:"datetime",source:"model",writable:!0},{id:"reminders",label:"Reminders",valueType:"reminder[]",source:"model",writable:!0},{id:"blockedBy",label:"Blocked by",valueType:"dependency[]",source:"model",writable:!0},{id:"details",label:"Details",valueType:"string",source:"model",writable:!0},{id:"sortOrder",label:"Sort order",valueType:"string",source:"model",writable:!0},{id:"path",label:"Path",valueType:"string",source:"model",writable:!1},{id:"totalTrackedTime",label:"Total tracked time",valueType:"number",source:"computed",writable:!1},{id:"blocking",label:"Blocking",valueType:"string[]",source:"computed",writable:!1},{id:"isBlocked",label:"Is blocked",valueType:"boolean",source:"computed",writable:!1},{id:"isBlocking",label:"Is blocking",valueType:"boolean",source:"computed",writable:!1},{id:"hasSubtasks",label:"Has subtasks",valueType:"boolean",source:"computed",writable:!1}],vIt={title:"title",status:"status",priority:"priority",due:"due",scheduled:"scheduled",contexts:"contexts",projects:"projects",attachments:"attachments",recurrence:"recurrence",recurrence_anchor:"recurrenceAnchor",complete_instances:"completeInstances",skipped_instances:"skippedInstances",recurrence_parent:"recurrenceParent",occurrence_date:"occurrenceDate",occurrence_materialization:"occurrenceMaterialization",occurrence_next_trigger:"occurrenceNextTrigger",occurrence_template:"occurrenceTemplate",occurrence_past_horizon:"occurrencePastHorizon",occurrence_future_horizon:"occurrenceFutureHorizon",completedDate:"completedDate",timeEstimate:"timeEstimate",timeEntries:"timeEntries",dateCreated:"dateCreated",dateModified:"dateModified",reminders:"reminders",blockedBy:"blockedBy",sortOrder:"sortOrder"},BBe=[{id:"eq",label:"equals",valueRequired:!0,appliesTo:["string","number","boolean","date","datetime","string[]"],aliases:["is"]},{id:"ne",label:"does not equal",valueRequired:!0,appliesTo:["string","number","boolean","date","datetime","string[]"],aliases:["is-not"]},{id:"contains",label:"contains",valueRequired:!0,appliesTo:["string","string[]","dependency[]"]},{id:"notContains",label:"does not contain",valueRequired:!0,appliesTo:["string","string[]","dependency[]"],aliases:["does-not-contain"]},{id:"in",label:"is one of",valueRequired:!0,appliesTo:["string","number","boolean","date","datetime"]},{id:"notIn",label:"is not one of",valueRequired:!0,appliesTo:["string","number","boolean","date","datetime"]},{id:"exists",label:"exists",valueRequired:!1,appliesTo:["string","number","boolean","date","datetime","string[]"],aliases:["is-not-empty"]},{id:"missing",label:"is missing",valueRequired:!1,appliesTo:["string","number","boolean","date","datetime","string[]"],aliases:["is-empty"]},{id:"lt",label:"is less than",valueRequired:!0,appliesTo:["number","date","datetime"],aliases:["is-before","is-less-than"]},{id:"lte",label:"is less than or equal",valueRequired:!0,appliesTo:["number","date","datetime"],aliases:["is-on-or-before","is-less-than-or-equal"]},{id:"gt",label:"is greater than",valueRequired:!0,appliesTo:["number","date","datetime"],aliases:["is-after","is-greater-than"]},{id:"gte",label:"is greater than or equal",valueRequired:!0,appliesTo:["number","date","datetime"],aliases:["is-on-or-after","is-greater-than-or-equal"]},{id:"isTrue",label:"is true",valueRequired:!1,appliesTo:["boolean"],aliases:["is-checked"]},{id:"isFalse",label:"is false",valueRequired:!1,appliesTo:["boolean"],aliases:["is-not-checked"]}],kIt=new Map(BBe.flatMap(r=>{var e;return[[r.id,r.id],...((e=r.aliases)!=null?e:[]).map(t=>[t,r.id])]})),EZ=[Gn("task.title","title","Title","text","string","model",{aliases:["title","note.title"],sortable:!0}),Gn("file.path","path","Path","file","string","file",{aliases:["path","task.path","note.path"]}),Gn("task.status","status","Status","select","string","model",{aliases:["status","note.status"],sortable:!0,groupable:!0}),Gn("task.priority","priority","Priority","select","string","model",{aliases:["priority","note.priority"],sortable:!0,groupable:!0}),Gn("task.tags","tags","Tags","select","string[]","model",{aliases:["tags","file.tags","note.tags"],sortable:!0,groupable:!0}),Gn("task.contexts","contexts","Contexts","select","string[]","model",{aliases:["contexts"],groupable:!0}),Gn("task.projects","projects","Projects","select","string[]","model",{aliases:["projects"],groupable:!0}),Gn("task.blockedBy","blockedBy","Blocked by","select","dependency[]","model",{aliases:["blockedBy"]}),Gn("task.blocking","blocking","Blocking","select","string[]","computed",{aliases:["blocking"]}),Gn("task.due","due","Due date","date","date","model",{aliases:["due","note.due"],sortable:!0,groupable:!0}),Gn("task.scheduled","scheduled","Scheduled date","date","date","model",{aliases:["scheduled","note.scheduled"],sortable:!0,groupable:!0}),Gn("task.completedDate","completedDate","Completed date","date","date","model",{aliases:["completedDate"],sortable:!0,groupable:!0}),Gn("task.dateCreated","dateCreated","Created date","date","datetime","model",{aliases:["dateCreated","file.ctime"],sortable:!0}),Gn("task.dateModified","dateModified","Modified date","date","datetime","model",{aliases:["dateModified","file.mtime"]}),Gn("task.archived","archived","Archived","boolean","boolean","model",{aliases:["archived"]}),Gn("task.hasSubtasks","hasSubtasks","Has subtasks","boolean","boolean","computed",{aliases:["hasSubtasks"]}),Gn("task.isBlocked","dependencies.isBlocked","Blocked","boolean","boolean","computed",{aliases:["dependencies.isBlocked","isBlocked"]}),Gn("task.isBlocking","dependencies.isBlocking","Blocking others","boolean","boolean","computed",{aliases:["dependencies.isBlocking","isBlocking"]}),Gn("task.timeEstimate","timeEstimate","Time estimate","numeric","number","model",{aliases:["timeEstimate"],sortable:!0}),Gn("task.recurrence","recurrence","Recurrence","special","string","model",{aliases:["recurrence"]}),Gn("task.isCompleted","status.isCompleted","Completed","boolean","boolean","computed",{aliases:["status.isCompleted","completed"]})],RBe={eq:"is",ne:"is-not",contains:"contains",notContains:"does-not-contain",in:"is",notIn:"is-not",exists:"is-not-empty",missing:"is-empty",lt:"is-before",lte:"is-on-or-before",gt:"is-after",gte:"is-on-or-after",isTrue:"is-checked",isFalse:"is-not-checked"},bIt=[{id:"parents",label:"Parents",description:"Tasks referenced from this task's projects."},{id:"subtasks",label:"Subtasks",description:"Tasks that reference this task as a project."},{id:"dependencies",label:"Dependencies",description:"Tasks this task is blocked by."},{id:"blocking",label:"Blocking",description:"Tasks blocked by this task."}],TIt=[{value:"FINISHTOSTART",label:"Finish to start",description:"The blocking task should finish before this task starts."},{value:"FINISHTOFINISH",label:"Finish to finish",description:"The blocking task should finish before this task finishes."},{value:"STARTTOSTART",label:"Start to start",description:"The blocking task should start before this task starts."},{value:"STARTTOFINISH",label:"Start to finish",description:"The blocking task should start before this task finishes."}],VL=class{constructor(e){this.plugin=e;this.apiVersion=1;this.model={info:()=>({packageName:"@tasknotes/model",specVersion:kBe,runtimeApiVersion:this.apiVersion}),config:()=>this.getModelConfig(),validateTask:e=>this.validateTask(e),validatePatch:e=>this.validateTaskPatch(e)};this.catalog={statuses:()=>this.getStatuses(),priorities:()=>this.getPriorities(),userFields:()=>this.getUserFields(),fields:()=>this.getFieldDefinitions(),writableFields:()=>this.getFieldDefinitions().filter(e=>e.writable),filterProperties:()=>this.getFilterPropertyDefinitions(),filterOperators:()=>BBe.map(e=>({...e})),relationships:()=>bIt.map(e=>({...e})),dependencyRelTypes:()=>TIt.map(e=>({...e})),events:()=>this.events.list()};this.tasks={get:e=>this.getTask(e),list:e=>this.listTasks(e),create:(e,t)=>this.createTask(e,t),update:(e,t,n)=>this.updateTask(e,t,n),patch:(e,t,n)=>this.updateTask(e,t,n),delete:(e,t)=>this.deleteTask(e,t),complete:(e,t,n)=>this.completeTask(e,t,n),uncomplete:(e,t,n)=>this.uncompleteTask(e,t,n),setStatus:(e,t,n)=>this.setTaskProperty(e,"status",t,n),setPriority:(e,t,n)=>this.setTaskProperty(e,"priority",t,n),setDue:(e,t,n)=>this.setTaskProperty(e,"due",t,n),clearDue:(e,t)=>this.setTaskProperty(e,"due",void 0,t),setScheduled:(e,t,n)=>this.setTaskProperty(e,"scheduled",t,n),clearScheduled:(e,t)=>this.setTaskProperty(e,"scheduled",void 0,t),reschedule:(e,t,n)=>this.rescheduleTask(e,t,n),archive:(e,t,n)=>this.archiveTask(e,t,n),move:(e,t,n)=>this.moveTask(e,t,n),addTag:(e,t,n)=>this.updateStringList(e,"tags",t,"add",n),removeTag:(e,t,n)=>this.updateStringList(e,"tags",t,"remove",n),addProject:(e,t,n)=>this.updateStringList(e,"projects",t,"add",n),removeProject:(e,t,n)=>this.updateStringList(e,"projects",t,"remove",n),addContext:(e,t,n)=>this.updateStringList(e,"contexts",t,"add",n),removeContext:(e,t,n)=>this.updateStringList(e,"contexts",t,"remove",n),setReminders:(e,t,n)=>this.updateTask(e,{reminders:t.map(a=>({...a}))},n),addReminder:(e,t,n)=>this.addReminder(e,t,n),removeReminder:(e,t,n)=>this.removeReminder(e,t,n),addDependency:(e,t,n)=>this.addDependency(e,t,n),removeDependency:(e,t,n)=>this.removeDependency(e,t,n)};this.relationships={parents:e=>this.getParentTasks(e),subtasks:e=>this.getSubtasks(e),dependencies:e=>this.getTaskDependencies(e),blocking:e=>this.getBlockingTasks(e),all:e=>this.getTaskRelationships(e)};this.time={start:(e,t,n)=>this.startTime(e,t,n),stop:(e,t)=>this.stopTime(e,t),active:()=>this.getActiveTimeEntries(),summary:e=>this.getTimeSummary(e),task:e=>this.getTaskTimeData(e),append:(e,t,n)=>this.appendTimeEntry(e,t,n),deleteEntry:(e,t,n)=>this.deleteTimeEntry(e,t,n)};this.pomodoro={status:()=>Promise.resolve(this.copyPomodoroState(this.plugin.pomodoroService.getState())),start:(e,t)=>this.startPomodoro(e,t),stop:e=>this.stopPomodoro(e),pause:e=>this.pausePomodoro(e),resume:e=>this.resumePomodoro(e),assignTask:(e,t)=>this.assignPomodoroTask(e,t),sessions:e=>this.getPomodoroSessions(e),stats:e=>this.getPomodoroStats(e)};this.recurring={toggleCompleteInstance:(e,t,n)=>this.toggleRecurringComplete(e,t,n),toggleSkippedInstance:(e,t,n)=>this.toggleRecurringSkipped(e,t,n),materializeOccurrence:(e,t,n)=>this.materializeOccurrence(e,t,n)};this.events={on:(e,t)=>this.on(e,t),off:e=>this.off(e),list:()=>ABe.map(e=>({...e}))};this.settings={snapshot:()=>this.getSettingsSnapshot()};this.bases={updateDefaultFiles:()=>this.updateDefaultBasesFiles()};this.nlp={parse:e=>this.parseNaturalLanguage(e)};this.query={tasks:e=>this.queryTasks(e),validate:e=>this.validateRuntimeQuery(e),normalize:e=>this.normalizeRuntimeQueryOrThrow(e),explain:e=>this.explainRuntimeQuery(e),filterOptions:()=>this.getFilterOptions()};this.stats={tasks:e=>this.getTaskStats(e)};this.system={health:()=>this.getHealth()};this.ui={taskMenu:{show:e=>this.showTaskMenu(e),showAtElement:e=>this.showTaskMenuAtElement(e),populate:(e,t)=>this.populateTaskMenu(e,t)}};this.lifecycle={ready:()=>this.plugin.onReady(),isReady:()=>this.plugin.initializationComplete===!0,on:(e,t)=>this.onLifecycle(e,t),off:e=>this.off(e),list:()=>_Be.map(e=>({...e}))};this.errors={isApiError:e=>IBe(e),normalize:e=>this.normalizeError(e),toResult:async e=>{try{return{ok:!0,value:await e()}}catch(t){return{ok:!1,error:this.normalizeError(t)}}}};this.extensions={register:e=>this.registerExtension(e),get:e=>this.getExtension(e),require:e=>this.requireExtension(e),has:e=>this.hasExtension(e),list:()=>this.listExtensions(),capabilities:()=>this.getExtensionCapabilities()};this.mutationContextByPath=new Map;this.mutationContextStack=[];this.extensionRegistry=new Map}get capabilities(){return[...MBe,...this.getExtensionCapabilities()]}hasCapability(e){return this.capabilities.includes(e)}parseNaturalLanguage(e){if(typeof e!="string")throw new ln("invalid_input","TaskNotes API parseNaturalLanguage expects a string",{status:400});return ra.fromPlugin(this.plugin).parseInput(e)}getModelConfig(){var t,n,a,i,s,o,l,c,d,u,p,m,f,h;let e=this.plugin.settings;return TBe({fieldMapping:e.fieldMapping,statuses:e.customStatuses,priorities:e.customPriorities,defaults:{status:(t=e.defaultTaskStatus)!=null?t:"open",priority:(n=e.defaultTaskPriority)!=null?n:"normal",taskTag:(a=e.taskTag)!=null?a:"task"},taskIdentification:{method:(i=e.taskIdentificationMethod)!=null?i:"tag",tag:(s=e.taskTag)!=null?s:"task",propertyName:(o=e.taskPropertyName)!=null?o:"type",propertyValue:(l=e.taskPropertyValue)!=null?l:"task",excludedFolders:(c=e.excludedFolders)!=null?c:""},storeTitleInFilename:(d=e.storeTitleInFilename)!=null?d:!1,userFields:(u=e.userFields)!=null?u:[],recurrence:{maintainDueDateOffset:(p=e.maintainDueDateOffsetInRecurring)!=null?p:!0,resetCheckboxesOnRecurrence:(m=e.resetCheckboxesOnRecurrence)!=null?m:!0},timeTracking:{autoStopOnComplete:(f=e.autoStopTimeTrackingOnComplete)!=null?f:!1,autoStopNotification:(h=e.autoStopTimeTrackingNotification)!=null?h:!0,defaultSessionDescription:""}})}validateTask(e){var t;return DBe(e,(t=this.plugin.settings.customStatuses)!=null?t:[])}validateTaskPatch(e){return SZ(e)}normalizeError(e){return e instanceof ln?e.toJSON():xZ(e)?e:new ln("operation_failed",e instanceof Error?e.message:String(e),{status:500,cause:e}).toJSON()}async updateDefaultBasesFiles(){return this.plugin.updateDefaultBasesFiles()}getStatuses(){var e;return((e=this.plugin.settings.customStatuses)!=null?e:[]).map(t=>({...t}))}getPriorities(){var e;return((e=this.plugin.settings.customPriorities)!=null?e:[]).map(t=>({...t}))}getUserFields(){var e;return((e=this.plugin.settings.userFields)!=null?e:[]).map(t=>({...t}))}getFieldDefinitions(){var a;let e=(a=this.plugin.settings.fieldMapping)!=null?a:{},t=yIt.map(i=>{var l,c,d;let s=vIt[i.id],o=SIt(i.id);return{...i,frontmatterKey:s?e[s]:void 0,queryable:!!o,sortable:(l=o==null?void 0:o.sortable)!=null?l:!1,groupable:(c=o==null?void 0:o.groupable)!=null?c:!1,supportedOperators:o==null?void 0:o.supportedOperators,aliases:o?[o.id,...(d=o.aliases)!=null?d:[]]:void 0}}),n=this.getUserFields().map(i=>({id:`user:${i.id||i.key}`,label:i.displayName||i.key,valueType:WP(i.type),source:"user",writable:!0,queryable:!0,sortable:!0,groupable:!0,supportedOperators:HL(WP(i.type)),aliases:[`user.${i.id||i.key}`,`user:${i.id||i.key}`],frontmatterKey:i.key,description:`User-defined field ${i.key}`}));return[...t,...n]}getFilterPropertyDefinitions(){let e=this.getUserFields().map(t=>({id:`user.${t.id||t.key}`,label:t.displayName||t.key,category:"user",valueType:WP(t.type),source:"user",queryable:!0,sortable:!0,groupable:!0,supportedOperators:HL(WP(t.type)),aliases:[`user:${t.id||t.key}`,`user.${t.key}`,`user:${t.key}`],frontmatterKey:t.key,valueInputType:FBe(t.type)}));return[...EZ.map(({internalProperty:t,...n})=>({...n,aliases:n.aliases?[...n.aliases]:void 0,supportedOperators:[...n.supportedOperators]})),...e]}async queryTasks(e){let t=this.normalizeRuntimeQueryForExecution(e);if(!t.validation.valid)throw new ln("invalid_input","TaskNotes runtime query is invalid",{status:400,details:{issues:t.validation.issues}});let n=await this.plugin.cacheManager.getAllTasks(),a=_It(n,t.normalized.scope),i=new Set(a.map(m=>m.path)),s=await this.plugin.filterService.getGroupedTasks(t.filterQuery),o=new Map;for(let m of s.values())for(let f of m)i.has(f.path)&&!o.has(f.path)&&o.set(f.path,f);let l=Array.from(o.values()),c=t.normalized.offset,d=t.normalized.limit,u=typeof d=="number"?l.slice(c,c+d):l.slice(c),p=new Set(u.map(m=>m.path));return{tasks:u.map(Cr),total:a.length,matched:l.length,returned:u.length,groups:t.normalized.group.length>0?IIt(s,p):void 0,query:t.normalized,warnings:t.validation.warnings}}validateRuntimeQuery(e){return this.normalizeRuntimeQueryForExecution(e).validation}normalizeRuntimeQueryOrThrow(e){let t=this.normalizeRuntimeQueryForExecution(e);if(!t.validation.valid)throw new ln("invalid_input","TaskNotes runtime query is invalid",{status:400,details:{issues:t.validation.issues}});return t.normalized}async explainRuntimeQuery(e){var i;let t=this.normalizeRuntimeQueryForExecution(e);if(!t.validation.valid)return{valid:!1,issues:t.validation.issues,warnings:t.validation.warnings,notes:["Query validation failed before execution."]};let n=await this.queryTasks(e),a=[];return t.normalized.sort.length>1&&a.push("Only the first sort is currently applied by the TaskNotes filter engine."),t.normalized.group.length>1&&a.push("Only the first group is currently applied by the TaskNotes filter engine."),{valid:!0,query:n.query,issues:[],warnings:(i=n.warnings)!=null?i:[],total:n.total,matched:n.matched,returned:n.returned,groups:n.groups,appliedSort:n.query.sort.slice(0,1),appliedLimit:n.query.limit,appliedOffset:n.query.offset,notes:a}}async getFilterOptions(){return this.plugin.filterService.getFilterOptions()}normalizeRuntimeQueryForExecution(e){let t=[],n=[],a=this.normalizeRuntimeTaskQuery(e,t,n);return{filterQuery:this.runtimeQueryToFilterQuery(a,t,n),normalized:a,validation:{valid:t.length===0,issues:t,warnings:n,normalized:t.length===0?a:void 0}}}normalizeRuntimeTaskQuery(e,t,n){if(e==null)return OBe();if(!bp(e))return t.push({path:"$",code:"query_not_object",message:"Runtime task query must be an object."}),OBe();let a=typeof e.where=="undefined"?void 0:this.normalizeRuntimePredicate(e.where,"$.where",t),i=this.normalizeRuntimeSorts(e.sort,t,n),s=this.normalizeRuntimeGroups(e.group,t,n),o=EIt(e.limit,"$.limit",t),l=DIt(e.offset,"$.offset",t),c=PIt(e.scope,t);return{where:a,sort:i,limit:o,offset:l,group:s,scope:c}}normalizeRuntimePredicate(e,t,n){if(!bp(e)){n.push({path:t,code:"predicate_not_object",message:"Runtime query predicate must be an object."});return}if(Array.isArray(e.all))return{all:e.all.map((a,i)=>this.normalizeRuntimePredicate(a,`${t}.all.${i}`,n)).filter(Id)};if(Array.isArray(e.any))return{any:e.any.map((a,i)=>this.normalizeRuntimePredicate(a,`${t}.any.${i}`,n)).filter(Id)};if(typeof e.not!="undefined"){let a=this.normalizeRuntimePredicate(e.not,`${t}.not`,n);return a?{not:a}:void 0}return this.normalizeRuntimeCondition(e,t,n)}normalizeRuntimeCondition(e,t,n){if(typeof e.field!="string"||e.field.trim().length===0){n.push({path:`${t}.field`,code:"field_required",message:"Runtime query condition requires a field."});return}let a=this.resolveRuntimeQueryField(e.field);if(!a){n.push({path:`${t}.field`,code:"field_unknown",message:`Unsupported runtime query field: ${e.field}`});return}let i=UBe(e.op);if(!i){n.push({path:`${t}.op`,code:"operator_unknown",message:`Unsupported runtime query operator: ${String(e.op)}`});return}if(!a.definition.supportedOperators.includes(i)){n.push({path:`${t}.op`,code:"operator_unsupported",message:`Operator ${i} is not supported for ${a.definition.id}.`});return}let s=CIt(i);if(s&&typeof e.value=="undefined"){n.push({path:`${t}.value`,code:"value_required",message:`Operator ${i} requires a value.`});return}if((i==="in"||i==="notIn")&&!Array.isArray(e.value)){n.push({path:`${t}.value`,code:"value_array_required",message:`Operator ${i} requires an array value.`});return}return{field:a.definition.id,op:i,value:s?qL(e.value):void 0}}normalizeRuntimeSorts(e,t,n){if(typeof e=="undefined")return[];if(!Array.isArray(e))return t.push({path:"$.sort",code:"sort_not_array",message:"Runtime query sort must be an array."}),[];let a=e.map((i,s)=>{if(!bp(i)||typeof i.field!="string")return t.push({path:`$.sort.${s}`,code:"sort_invalid",message:"Runtime query sort entries require a field."}),null;let o=this.resolveRuntimeQueryField(i.field);if(!o||!o.definition.sortable)return t.push({path:`$.sort.${s}.field`,code:"sort_field_unsupported",message:`Runtime query field is not sortable: ${i.field}`}),null;let l=i.direction==="desc"?"desc":"asc";return{field:o.definition.id,direction:l}}).filter(Id);return a.length>1&&n.push({path:"$.sort",code:"multiple_sorts",message:"Only the first sort is currently applied by TaskNotes."}),a}normalizeRuntimeGroups(e,t,n){if(typeof e=="undefined")return[];if(!Array.isArray(e))return t.push({path:"$.group",code:"group_not_array",message:"Runtime query group must be an array."}),[];let a=e.map((i,s)=>{if(!bp(i)||typeof i.field!="string")return t.push({path:`$.group.${s}`,code:"group_invalid",message:"Runtime query group entries require a field."}),null;let o=this.resolveRuntimeQueryField(i.field);return!o||!o.definition.groupable?(t.push({path:`$.group.${s}.field`,code:"group_field_unsupported",message:`Runtime query field is not groupable: ${i.field}`}),null):{field:o.definition.id}}).filter(Id);return a.length>1&&n.push({path:"$.group",code:"multiple_groups",message:"Only the first group is currently applied by TaskNotes."}),a}runtimeQueryToFilterQuery(e,t,n){var c;let a=this.runtimePredicateToFilterNode(e.where,"$.where",t),s={type:"group",id:"runtime-query-root",conjunction:"and",children:a?a.type==="group"&&a.conjunction==="and"?a.children:[a]:[]},o=e.sort[0];if(o){let d=this.runtimeFieldToSortKey(o.field);d?(s.sortKey=d,s.sortDirection=(c=o.direction)!=null?c:"asc"):n.push({path:"$.sort.0.field",code:"sort_not_applied",message:`Sort field ${o.field} could not be mapped to TaskNotes sorting.`})}let l=e.group[0];if(l){let d=this.runtimeFieldToGroupKey(l.field);d?s.groupKey=d:n.push({path:"$.group.0.field",code:"group_not_applied",message:`Group field ${l.field} could not be mapped to TaskNotes grouping.`})}return s}runtimePredicateToFilterNode(e,t,n){if(!e)return null;if("all"in e)return{type:"group",id:qP(t),conjunction:"and",children:e.all.map((a,i)=>this.runtimePredicateToFilterNode(a,`${t}.all.${i}`,n)).filter(Id)};if("any"in e)return{type:"group",id:qP(t),conjunction:"or",children:e.any.map((a,i)=>this.runtimePredicateToFilterNode(a,`${t}.any.${i}`,n)).filter(Id)};if("not"in e){let a=DZ(e.not);return a?this.runtimePredicateToFilterNode(a,`${t}.not`,n):(n.push({path:`${t}.not`,code:"not_unsupported",message:"Unable to invert runtime query predicate."}),null)}return this.runtimeConditionToFilterNode(e,t)}runtimeConditionToFilterNode(e,t){var i;let n=this.resolveRuntimeQueryField(e.field),a=Array.isArray(e.value)&&(e.op==="in"||e.op==="notIn")?e.value:null;return a?{type:"group",id:qP(t),conjunction:e.op==="in"?"or":"and",children:a.map((s,o)=>{var l;return{type:"condition",id:qP(`${t}.value.${o}`),property:(l=n==null?void 0:n.internalProperty)!=null?l:e.field,operator:RBe[e.op],value:WL(qL(s))}})}:{type:"condition",id:qP(t),property:(i=n==null?void 0:n.internalProperty)!=null?i:e.field,operator:RBe[e.op],value:WL(e.value)}}resolveRuntimeQueryField(e){let t=e.trim(),n=this.resolveRuntimeUserField(t);if(n)return n;let a=EZ.find(i=>{var s;return i.id===t||((s=i.aliases)!=null?s:[]).includes(t)});return a?{definition:a,internalProperty:a.internalProperty}:null}resolveRuntimeUserField(e){if(!e.startsWith("user.")&&!e.startsWith("user:"))return null;let t=e.slice(5),n=this.getUserFields().find(s=>s.id===t||s.key===t);if(!n)return null;let a=n.id||n.key,i=WP(n.type);return{internalProperty:`user:${a}`,definition:{id:`user.${a}`,label:n.displayName||n.key,category:"user",valueType:i,source:"user",queryable:!0,sortable:!0,groupable:!0,supportedOperators:HL(i),aliases:[`user:${a}`,`user.${n.key}`,`user:${n.key}`],frontmatterKey:n.key,valueInputType:FBe(n.type)}}}runtimeFieldToSortKey(e){let t=this.resolveRuntimeQueryField(e);if(!t)return null;let n=t.internalProperty;return n.startsWith("user:")||n==="due"||n==="scheduled"||n==="priority"||n==="status"||n==="title"||n==="dateCreated"||n==="completedDate"||n==="tags"?n:null}runtimeFieldToGroupKey(e){let t=this.resolveRuntimeQueryField(e);if(!t)return null;let n=t.internalProperty;return n.startsWith("user:")||n==="priority"||n==="due"||n==="scheduled"||n==="status"||n==="tags"||n==="completedDate"?n:n==="contexts"?"context":n==="projects"?"project":null}async getTaskStats(e){var a,i;let t=e?(await this.queryTasks(e)).tasks:await this.plugin.cacheManager.getAllTasks(),n=(i=(a=this.plugin.taskStatsService)==null?void 0:a.getStats(t))!=null?i:this.computeTaskStats(t);return{total:n.total,statusCounts:{...n.statusCounts},priorityCounts:{...n.priorityCounts},completed:n.completed,active:n.active,overdue:n.overdue,archived:n.archived,withTimeEntries:n.withTimeEntries,totalTrackedMinutes:n.totalTrackedMinutes,totalTrackedHours:n.totalTrackedHours}}async getTimeSummary(e={}){var n,a;let t=await this.plugin.cacheManager.getAllTasks();return FT(t,{period:(n=e.period)!=null?n:"today",fromDate:jBe(e.from),toDate:jBe(e.to),includeTags:(a=e.includeTags)!=null?a:!0},i=>this.plugin.statusManager.isCompletedStatus(i))}async getTaskTimeData(e){let t=await this.requireTask(e);return Cf(t,n=>this.plugin.getActiveTimeSession(n))}async getHealth(){let e=await this.plugin.cacheManager.getAllTasks();return{status:"ok",timestamp:new Date().toISOString(),apiVersion:this.apiVersion,capabilities:this.capabilities,vault:this.getVaultInfo(),tasks:{total:e.length}}}async showTaskMenu(e){(await this.buildTaskContextMenu(e)).show(e.event)}async showTaskMenuAtElement(e){(await this.buildTaskContextMenu(e)).showAtElement(e.element)}async populateTaskMenu(e,t){var a,i;let n=await this.requireTask(t.taskPath);Yl.addToMenu(e,{task:n,plugin:this.plugin,targetDate:(a=t.targetDate)!=null?a:new Date,promoteOccurrenceControls:t.promoteOccurrenceControls,onUpdate:(i=t.onUpdate)!=null?i:this.defaultTaskMenuUpdateHandler()})}async buildTaskContextMenu(e){var n,a;let t=await this.requireTask(e.taskPath);return new Yl({task:t,plugin:this.plugin,targetDate:(n=e.targetDate)!=null?n:new Date,promoteOccurrenceControls:e.promoteOccurrenceControls,onUpdate:(a=e.onUpdate)!=null?a:this.defaultTaskMenuUpdateHandler()})}defaultTaskMenuUpdateHandler(){return()=>{this.plugin.app.workspace.trigger("tasknotes:refresh-views")}}getVaultInfo(){let e=this.plugin.app.vault.adapter,t=null;try{typeof e.basePath=="string"?t=e.basePath:typeof e.path=="string"&&(t=e.path)}catch(n){t=null}return{name:this.plugin.app.vault.getName(),path:t}}computeTaskStats(e){var u,p,m,f,h;let t={},n={},a=0,i=0,s=0,o=0,l=0,c=0,d=(u=new Date().toISOString().split("T")[0])!=null?u:"";for(let g of e){t[g.status]=((p=t[g.status])!=null?p:0)+1,n[g.priority]=((m=n[g.priority])!=null?m:0)+1;let v=this.plugin.statusManager.isCompletedStatus(g.status);v&&a++,g.archived&&o++,!v&&!g.archived&&i++,g.due&&g.due<d&&!v&&!g.archived&&s++,(f=g.timeEntries)!=null&&f.length&&(l++,c+=(h=g.totalTrackedTime)!=null?h:0)}return{total:e.length,statusCounts:t,priorityCounts:n,completed:a,active:i,overdue:s,archived:o,withTimeEntries:l,totalTrackedMinutes:c,totalTrackedHours:Math.round(c/60*100)/100}}async getTask(e){let t=await this.plugin.cacheManager.getTaskInfo(this.normalizeTaskPath(e));return t?Cr(t):null}async listTasks(e){return e?(await this.queryTasks(e)).tasks:(await this.plugin.cacheManager.getAllTasks()).map(Cr)}async getParentTasks(e){var a;let t=await this.requireTask(e),n=[];for(let i of(a=t.projects)!=null?a:[]){let s=await this.resolveTaskReference(i,t.path);s&&n.push(s)}return CZ(n).map(Cr)}async getSubtasks(e){var i;let t=await this.requireTask(e),n=await this.plugin.cacheManager.getAllTasks(),a=[];for(let s of n)if(s.path!==t.path){for(let o of(i=s.projects)!=null?i:[])if(await this.taskReferenceMatches(o,s.path,t.path)){a.push(s);break}}return CZ(a).map(Cr)}async getTaskDependencies(e){var a,i;let t=await this.requireTask(e),n=[];for(let s of(a=t.blockedBy)!=null?a:[]){let o=await this.resolveTaskReferencePath(s.uid,t.path),l=o?await this.plugin.cacheManager.getTaskInfo(o):null;n.push({dependency:RIt(s),task:l?Cr(l):null,path:(i=l==null?void 0:l.path)!=null?i:o})}return n}async getBlockingTasks(e){var i;let t=await this.requireTask(e),n=await this.plugin.cacheManager.getAllTasks(),a=[];for(let s of n)if(s.path!==t.path){for(let o of(i=s.blockedBy)!=null?i:[])if(await this.taskReferenceMatches(o.uid,s.path,t.path)){a.push(s);break}}return CZ(a).map(Cr)}async getTaskRelationships(e){let t=await this.requireTask(e),[n,a,i,s]=await Promise.all([this.getParentTasks(t.path),this.getSubtasks(t.path),this.getTaskDependencies(t.path),this.getBlockingTasks(t.path)]);return{task:Cr(t),parents:n,subtasks:a,dependencies:i,blocking:s}}async createTask(e,t){let n=await this.withMutationContext([],t,async()=>{var a;return this.plugin.taskService.createTask({...e,creationContext:(a=e.creationContext)!=null?a:"api"},{applyDefaults:!0})});return Cr(n.taskInfo)}async updateTask(e,t,n){let a=await this.requireTask(e),i=await this.withMutationContext([a.path],n,()=>this.plugin.taskService.updateTask(a,t));return Cr(i)}async completeTask(e,t,n){var o,l;let a=await this.requireTask(e),i=(l=(o=t==null?void 0:t.status)!=null?o:this.plugin.statusManager.getCompletedStatuses()[0])!=null?l:"done";if(!this.plugin.statusManager.isCompletedStatus(i))throw new ln("invalid_status",`Status "${i}" is not configured as a completed status`,{status:400,details:{status:i}});if(!(t!=null&&t.status)&&this.plugin.statusManager.isCompletedStatus(a.status))return Cr(a);let s=await this.withMutationContext([a.path],n,()=>this.plugin.taskService.updateProperty(a,"status",i));return Cr(s)}async rescheduleTask(e,t,n){let a=await this.requireTask(e),i=await this.withMutationContext([a.path],n,()=>this.plugin.taskService.updateProperty(a,"scheduled",t!=null?t:void 0));return Cr(i)}async archiveTask(e,t,n){let a=await this.requireTask(e);if(a.archived===t)return Cr(a);let i=await this.withMutationContext([a.path],n,()=>this.plugin.taskService.toggleArchive(a));return Cr(i)}async moveTask(e,t,n){let a=await this.requireTask(e),i=this.requireTaskFile(a.path),s=(0,Gi.normalizePath)(t),o=s?`${s}/${i.name}`:i.name;return o===a.path?Cr(a):this.withMutationContext([a.path,o],n,async()=>{if(s&&await tm(this.plugin.app.vault,s),this.plugin.app.vault.getAbstractFileByPath(o))throw new ln("file_already_exists",`Cannot move task to "${o}" because a file already exists`,{status:409,details:{path:o}});await this.plugin.app.fileManager.renameFile(i,o);let c=Cr({...a,id:a.id&&a.id!==a.path?a.id:o,path:o});return this.plugin.cacheManager.clearCacheEntry(a.path),this.plugin.cacheManager.updateTaskInfoInCache(o,c),this.plugin.emitter.trigger(ot,{path:o,originalTask:a,updatedTask:c}),c})}async deleteTask(e,t){let n=await this.requireTask(e);await this.withMutationContext([n.path],t,()=>this.plugin.taskService.deleteTask(n))}async uncompleteTask(e,t,n){var o,l;let a=await this.requireTask(e),i=(l=(o=t==null?void 0:t.status)!=null?o:this.plugin.settings.defaultTaskStatus)!=null?l:"open";if(!this.plugin.statusManager.isCompletedStatus(a.status)&&!(t!=null&&t.status))return Cr(a);let s=await this.withMutationContext([a.path],n,()=>this.plugin.taskService.updateProperty(a,"status",i));return Cr(s)}async startTimeEntry(e,t){await this.startTime(e,void 0,t)}async stopTimeEntry(e,t){await this.stopTime(e,t)}async setTaskProperty(e,t,n,a){let i=await this.requireTask(e),s=await this.withMutationContext([i.path],a,()=>this.plugin.taskService.updateProperty(i,t,n));return Cr(s)}async updateStringList(e,t,n,a,i){var d;let s=await this.requireTask(e),o=(d=s[t])!=null?d:[],l=n.trim();if(!l)throw new ln("invalid_input",`TaskNotes API ${a} ${t} expects a non-empty value`,{status:400,details:{operation:a,property:t}});let c=a==="add"?Array.from(new Set([...o,l])):o.filter(u=>u!==l);return this.updateTask(s.path,{[t]:c},i)}async addReminder(e,t,n){var s;let a=await this.requireTask(e),i=[...(s=a.reminders)!=null?s:[],{...t}];return this.updateTask(a.path,{reminders:i},n)}async removeReminder(e,t,n){var s;let a=await this.requireTask(e),i=((s=a.reminders)!=null?s:[]).filter(o=>o.id!==t);return this.updateTask(a.path,{reminders:i},n)}async addDependency(e,t,n){var l;let a=await this.requireTask(e),i=(l=a.blockedBy)!=null?l:[],s=i.findIndex(c=>c.uid===t.uid),o=s>=0?i.map((c,d)=>d===s?{...t}:{...c}):[...i.map(c=>({...c})),{...t}];return this.updateTask(a.path,{blockedBy:o},n)}async removeDependency(e,t,n){var s;let a=await this.requireTask(e),i=((s=a.blockedBy)!=null?s:[]).filter(o=>o.uid!==t);return this.updateTask(a.path,{blockedBy:i.length>0?i:void 0},n)}async startTime(e,t,n){var s;let a=await this.requireTask(e),i=await this.withMutationContext([a.path],n,()=>this.plugin.taskService.startTimeTracking(a));if(t!=null&&t.description&&((s=i.timeEntries)!=null&&s.length)){let o=i.timeEntries.map(c=>({...c})),l=-1;for(let c=o.length-1;c>=0;c--)if(!o[c].endTime){l=c;break}l>=0&&(o[l]={...o[l],description:t.description},i=await this.updateTask(i.path,{timeEntries:o},n))}return Cr(i)}async stopTime(e,t){let n=await this.requireTask(e),a=await this.withMutationContext([n.path],t,()=>this.plugin.taskService.stopTimeTracking(n));return Cr(a)}async appendTimeEntry(e,t,n){var s;let a=await this.requireTask(e),i=[...((s=a.timeEntries)!=null?s:[]).map(o=>({...o})),{...t}];return this.updateTask(a.path,{timeEntries:i},n)}async deleteTimeEntry(e,t,n){let a=await this.requireTask(e),i=await this.withMutationContext([a.path],n,()=>this.plugin.taskService.deleteTimeEntry(a,t));return Cr(i)}async getActiveTimeEntries(){var n;let e=await this.plugin.cacheManager.getAllTasks(),t=[];for(let a of e)for(let[i,s]of((n=a.timeEntries)!=null?n:[]).entries())s.endTime||t.push({taskPath:a.path,task:Cr(a),entry:{...s},index:i});return t}getSettingsSnapshot(){return JSON.parse(JSON.stringify(this.plugin.settings))}registerExtension(e){var o;if(!e||typeof e!="object")throw new ln("extension_invalid","TaskNotes API extension registration expects an object",{status:400});if(typeof e.id!="string"||e.id.trim().length===0)throw new ln("extension_invalid","TaskNotes API extension registration expects a non-empty id",{status:400});if(e.api===null||typeof e.api=="undefined")throw new ln("extension_invalid","TaskNotes API extension registration expects an api object",{status:400});let t=e.id.trim(),n=this.normalizeExtensionNamespace(e.namespace);if(gIt.has(n))throw new ln("extension_namespace_reserved",`Cannot register TaskNotes API extension namespace "${n}"`,{status:400,details:{namespace:n}});if(this.extensionRegistry.has(n))throw new ln("extension_namespace_conflict",`TaskNotes API extension namespace "${n}" is already registered`,{status:409,details:{namespace:n}});let a=Symbol(n),i=Array.from(new Set(((o=e.capabilities)!=null?o:[]).map(l=>this.normalizeExtensionCapability(l)))),s={id:t,namespace:n,api:e.api,displayName:e.displayName,version:e.version,capabilities:i,token:a};return this.extensionRegistry.set(n,s),this.emitLifecycle("extension.registered",{extension:this.extensionInfo(s)}),{id:t,namespace:n,unregister:()=>{let l=this.extensionRegistry.get(n);(l==null?void 0:l.token)===a&&(this.extensionRegistry.delete(n),this.emitLifecycle("extension.unregistered",{extension:this.extensionInfo(l)}))}}}getExtension(e){var t;return(t=this.extensionRegistry.get(this.normalizeExtensionNamespace(e)))==null?void 0:t.api}requireExtension(e){let t=this.normalizeExtensionNamespace(e),n=this.extensionRegistry.get(t);if(!n)throw new ln("extension_not_registered",`TaskNotes API extension namespace "${t}" is not registered`,{status:404,details:{namespace:t}});return n.api}hasExtension(e){return this.extensionRegistry.has(this.normalizeExtensionNamespace(e))}listExtensions(){return Array.from(this.extensionRegistry.values()).map(e=>this.extensionInfo(e))}extensionInfo(e){return{id:e.id,namespace:e.namespace,displayName:e.displayName,version:e.version,capabilities:[...e.capabilities]}}getExtensionCapabilities(){return Array.from(this.extensionRegistry.values()).flatMap(e=>[...e.capabilities])}normalizeExtensionNamespace(e){if(typeof e!="string"||e.trim().length===0)throw new ln("extension_invalid","TaskNotes API extension namespace must be a non-empty string",{status:400});let t=e.trim().toLowerCase();if(!/^[a-z][a-z0-9._-]*$/.test(t))throw new ln("extension_invalid",`TaskNotes API extension namespace "${e}" must use letters, numbers, dots, underscores, or dashes`,{status:400,details:{namespace:e}});return t}normalizeExtensionCapability(e){if(typeof e!="string"||e.trim().length===0)throw new ln("extension_invalid","TaskNotes API extension capabilities must be non-empty strings",{status:400});let t=e.trim().toLowerCase();if(!/^[a-z][a-z0-9._:-]*$/.test(t))throw new ln("extension_invalid",`TaskNotes API extension capability "${e}" must use letters, numbers, dots, underscores, dashes, or colons`,{status:400,details:{capability:e}});return t}async startPomodoro(e,t){let n=e!=null&&e.taskPath?await this.requireTask(e.taskPath):void 0;return await this.withMutationContext(n?[n.path]:[],t,()=>this.plugin.pomodoroService.startPomodoro(n,e==null?void 0:e.duration)),this.copyPomodoroState(this.plugin.pomodoroService.getState())}async stopPomodoro(e){return await this.withMutationContext([],e,()=>this.plugin.pomodoroService.stopPomodoro()),this.copyPomodoroState(this.plugin.pomodoroService.getState())}async pausePomodoro(e){return await this.withMutationContext([],e,()=>this.plugin.pomodoroService.pausePomodoro()),this.copyPomodoroState(this.plugin.pomodoroService.getState())}async resumePomodoro(e){return await this.withMutationContext([],e,()=>this.plugin.pomodoroService.resumePomodoro()),this.copyPomodoroState(this.plugin.pomodoroService.getState())}async assignPomodoroTask(e,t){let n=e?await this.requireTask(e):void 0;return await this.withMutationContext(n?[n.path]:[],t,()=>this.plugin.pomodoroService.assignTaskToCurrentSession(n)),this.copyPomodoroState(this.plugin.pomodoroService.getState())}async getPomodoroSessions(e){let t=await this.plugin.pomodoroService.getSessionHistory();return e!=null&&e.date&&(t=t.filter(n=>new Date(n.startTime).toISOString().split("T")[0]===e.date)),e!=null&&e.limit&&e.limit>0&&(t=t.slice(-e.limit)),t.map(n=>({...n}))}getPomodoroStats(e){return e?this.plugin.pomodoroService.getStatsForDate(new Date(e)):this.plugin.pomodoroService.getTodayStats()}copyPomodoroState(e){return JSON.parse(JSON.stringify(e))}async toggleRecurringComplete(e,t,n){let a=await this.requireTask(e),i=t?new Date(t):void 0,s=await this.withMutationContext([a.path],n,()=>this.plugin.taskService.toggleRecurringTaskCompleteWithOccurrenceNotes(a,i));return Cr(s)}async materializeOccurrence(e,t,n){let a=await this.requireTask(e),i=await this.withMutationContext([a.path],n,()=>this.plugin.taskService.materializeOccurrence(a,t));return Cr(i)}async toggleRecurringSkipped(e,t,n){let a=await this.requireTask(e),i=t?new Date(t):void 0,s=await this.withMutationContext([a.path],n,()=>this.plugin.taskService.toggleRecurringTaskSkipped(a,i));return Cr(s)}on(e,t){let n=OIt(e);return this.plugin.emitter.on(n,a=>{let i=this.normalizeRawEvent(n,a);for(let s of i)s.event===e&&t(s)})}onLifecycle(e,t){let n=_d[e],a=this.plugin.emitter.on(n,i=>{t(this.normalizeLifecycleEvent(e,n,i))});return e==="ready"&&this.plugin.onReady().then(()=>{t(this.normalizeLifecycleEvent(e,n,void 0))}),a}emitLifecycle(e,t={}){this.plugin.emitter.trigger(_d[e],{...t,timestamp:new Date().toISOString()})}off(e){this.plugin.emitter.offref(e)}async resolveTaskReference(e,t){let n=await this.resolveTaskReferencePath(e,t);return n?await this.plugin.cacheManager.getTaskInfo(n):null}async taskReferenceMatches(e,t,n){return await this.resolveTaskReferencePath(e,t)===(0,Gi.normalizePath)(n)}async resolveTaskReferencePath(e,t){var s;let n=wIt(e);if(!n)return null;let a=this.plugin.app.metadataCache,i=(s=a==null?void 0:a.getFirstLinkpathDest)==null?void 0:s.call(a,n,t);if(i instanceof Gi.TFile)return(0,Gi.normalizePath)(i.path);for(let o of NIt(n)){let l=await this.plugin.cacheManager.getTaskInfo(o);if(l)return l.path}return(0,Gi.normalizePath)(n)}async requireTask(e){let t=this.normalizeTaskPath(e),n=await this.plugin.cacheManager.getTaskInfo(t);if(!n)throw new ln("task_not_found",`Task not found: ${t}`,{status:404,details:{path:t}});return n}requireTaskFile(e){let t=this.plugin.app.vault.getAbstractFileByPath(e);if(!(t instanceof Gi.TFile))throw new ln("task_file_not_found",`Cannot find task file: ${e}`,{status:404,details:{path:e}});return t}normalizeTaskPath(e){if(typeof e!="string"||e.trim().length===0)throw new ln("invalid_task_path","TaskNotes API expects a non-empty task path",{status:400});return(0,Gi.normalizePath)(e)}async withMutationContext(e,t,n){var i;if(!t)return n();let a=e.map(s=>(0,Gi.normalizePath)(s));for(let s of a){let o=(i=this.mutationContextByPath.get(s))!=null?i:[];o.push(t),this.mutationContextByPath.set(s,o)}this.mutationContextStack.push(t);try{return await n()}finally{for(let s of a){let o=this.mutationContextByPath.get(s);o==null||o.pop(),o!=null&&o.length||this.mutationContextByPath.delete(s)}this.mutationContextStack.pop()}}normalizeUpdatedEvent(e){var c,d,u,p,m,f,h,g,v,b,k,w,S,C,E;let t=e.originalTask?Cr(e.originalTask):void 0,n=e.updatedTask?Cr(e.updatedTask):void 0,a=(u=(d=(c=n==null?void 0:n.path)!=null?c:t==null?void 0:t.path)!=null?d:e.path)!=null?u:"",i=FIt(t,n),s=this.getMutationContext(e),o=this.buildEventPayloadBase({taskPath:a,before:t,after:n,task:n,changes:i,context:s,rawEvent:ot}),l=[];if(!t&&n&&l.push({...o,event:"task.created"}),l.push({...o,event:"task.updated"}),t&&n&&t.path!==n.path&&l.push({...o,event:"task.moved"}),t&&n&&t.status!==n.status){l.push({...o,event:"task.status.changed"});let D=this.plugin.statusManager.isCompletedStatus(t.status),P=this.plugin.statusManager.isCompletedStatus(n.status);!D&&P?l.push({...o,event:"task.completed"}):D&&!P&&l.push({...o,event:"task.uncompleted"})}return t&&n&&t.archived!==n.archived&&l.push({...o,event:n.archived?"task.archived":"task.unarchived"}),t&&n&&t.scheduled!==n.scheduled&&l.push({...o,event:"task.scheduled.changed"}),t&&n&&t.due!==n.due&&l.push({...o,event:"task.due.changed"}),t&&n&&t.priority!==n.priority&&l.push({...o,event:"task.priority.changed"}),t&&n&&!Ey((p=t.tags)!=null?p:[],(m=n.tags)!=null?m:[])&&l.push({...o,event:"task.tags.changed"}),t&&n&&!Ey((f=t.contexts)!=null?f:[],(h=n.contexts)!=null?h:[])&&l.push({...o,event:"task.contexts.changed"}),t&&n&&!Ey((g=t.projects)!=null?g:[],(v=n.projects)!=null?v:[])&&l.push({...o,event:"task.projects.changed"}),t&&n&&!Ey((b=t.attachments)!=null?b:[],(k=n.attachments)!=null?k:[])&&l.push({...o,event:"task.attachments.changed"}),t&&n&&!Ey((w=t.reminders)!=null?w:[],(S=n.reminders)!=null?S:[])&&l.push({...o,event:"task.reminders.changed"}),t&&n&&!Ey((C=t.blockedBy)!=null?C:[],(E=n.blockedBy)!=null?E:[])&&l.push({...o,event:"task.dependencies.changed"}),t&&n&&t.recurrence!==n.recurrence&&l.push({...o,event:"task.recurrence.changed"}),t&&n&&$Be(t.complete_instances,n.complete_instances)&&l.push({...o,event:"recurring.instance.completed"}),t&&n&&$Be(t.skipped_instances,n.skipped_instances)&&l.push({...o,event:"recurring.instance.skipped"}),t&&n&&UL(t)!==UL(n)&&l.push({...o,event:UL(n)>UL(t)?"time.started":"time.stopped"}),l}normalizeDeletedEvent(e){var i,s;let t=e.deletedTask?Cr(e.deletedTask):void 0,n=(s=(i=t==null?void 0:t.path)!=null?i:e.path)!=null?s:"",a=this.getMutationContext(e);return[this.buildEventPayloadBase({event:"task.deleted",taskPath:n,deletedTask:t,task:t,changes:{},context:a,rawEvent:is})]}normalizeLifecycleEvent(e,t,n){var s;let a=bp(n)?n:{},i=bp(a.extension)?a.extension:void 0;return{event:e,timestamp:typeof a.timestamp=="string"?a.timestamp:new Date().toISOString(),data:(s=a.data)!=null?s:n,settings:e==="settings.changed"?this.getSettingsSnapshot():void 0,extension:i,filePath:typeof a.filePath=="string"?a.filePath:void 0,force:typeof a.force=="boolean"?a.force:void 0,rawEvent:t}}buildEventPayloadBase(e){var t,n,a,i;return{event:(t=e.event)!=null?t:"task.updated",timestamp:new Date().toISOString(),taskPath:e.taskPath,task:e.task,before:e.before,after:e.after,deletedTask:e.deletedTask,changes:e.changes,data:e.data,context:e.context,source:(n=e.context)==null?void 0:n.source,correlationId:(a=e.context)==null?void 0:a.correlationId,reason:(i=e.context)==null?void 0:i.reason,rawEvent:e.rawEvent}}getMutationContext(e){var n,a,i;let t=[e.path,"originalTask"in e?(n=e.originalTask)==null?void 0:n.path:void 0,"updatedTask"in e?(a=e.updatedTask)==null?void 0:a.path:void 0,"deletedTask"in e?(i=e.deletedTask)==null?void 0:i.path:void 0].filter(s=>!!s).map(s=>(0,Gi.normalizePath)(s));for(let s of t){let o=this.mutationContextByPath.get(s),l=o==null?void 0:o[o.length-1];if(l)return l}return this.mutationContextStack[this.mutationContextStack.length-1]}normalizeRawEvent(e,t){return e===is?this.normalizeDeletedEvent(t):e===ou?this.normalizePomodoroEvent("pomodoro.started",e,t):e===lu?this.normalizePomodoroEvent("pomodoro.completed",e,t):e===cu?this.normalizePomodoroEvent("pomodoro.interrupted",e,t):this.normalizeUpdatedEvent(t)}normalizePomodoroEvent(e,t,n){var l,c;let a=n,i=a.task?Cr(a.task):void 0,s=(c=i==null?void 0:i.path)!=null?c:(l=a.session)==null?void 0:l.taskPath,o=this.mutationContextStack[this.mutationContextStack.length-1];return[this.buildEventPayloadBase({event:e,taskPath:s,task:i,changes:{},data:n,context:o,rawEvent:t})]}}});function YL(r,e=qBe.Platform.isMobile){return e&&r.disableCalendarOnMobile}var qBe,PZ=y(()=>{qBe=require("obsidian")});var YBe={};at(YBe,{TaskSelectionService:()=>MZ});var WBe,MZ,GBe=y(()=>{K();WBe=N({tag:"Services/TaskSelectionService"}),MZ=class{constructor(e){this.selectedTaskPaths=new Set;this.lastSelectedPath=null;this.primarySelectedPath=null;this.selectionModeActive=!1;this.selectionModeListeners=[];this.selectionChangeListeners=[];this.plugin=e}isSelectionModeActive(){return this.selectionModeActive}enterSelectionMode(){this.selectionModeActive||(this.selectionModeActive=!0,this.notifySelectionModeChange(!0))}exitSelectionMode(e=!1){this.selectionModeActive&&(this.selectionModeActive=!1,e&&this.clearSelection(),this.notifySelectionModeChange(!1))}toggleSelectionMode(){this.selectionModeActive?this.exitSelectionMode():this.enterSelectionMode()}isSelected(e){return this.selectedTaskPaths.has(e)}toggleSelection(e){this.selectedTaskPaths.has(e)?(this.selectedTaskPaths.delete(e),this.primarySelectedPath===e&&(this.primarySelectedPath=this.selectedTaskPaths.size>0?Array.from(this.selectedTaskPaths)[0]:null)):(this.selectedTaskPaths.size===0&&(this.primarySelectedPath=e),this.selectedTaskPaths.add(e)),this.lastSelectedPath=e,this.selectedTaskPaths.size>0&&!this.selectionModeActive&&this.enterSelectionMode(),this.selectedTaskPaths.size===0&&this.selectionModeActive&&this.exitSelectionMode(),this.notifySelectionChange()}selectTask(e){this.selectedTaskPaths.clear(),this.selectedTaskPaths.add(e),this.lastSelectedPath=e,this.primarySelectedPath=e,this.notifySelectionChange()}addToSelection(e){this.selectedTaskPaths.size===0&&(this.primarySelectedPath=e),this.selectedTaskPaths.add(e),this.lastSelectedPath=e,this.notifySelectionChange()}removeFromSelection(e){this.selectedTaskPaths.delete(e),this.notifySelectionChange()}selectRange(e,t){if(!this.lastSelectedPath){this.selectTask(e);return}let n=t.indexOf(this.lastSelectedPath),a=t.indexOf(e);if(n===-1||a===-1){this.toggleSelection(e);return}let i=Math.min(n,a),s=Math.max(n,a);for(let o=i;o<=s;o++)this.selectedTaskPaths.add(t[o]);this.lastSelectedPath=e,this.notifySelectionChange()}selectAdjacentRange(e,t){var s;if(t.length===0)return;let n=this.lastSelectedPath;if((!n||!t.includes(n))&&(n=(s=t.find(o=>this.selectedTaskPaths.has(o)))!=null?s:null),!n){this.selectTask(e>0?t[0]:t[t.length-1]);return}let a=t.indexOf(n);if(a===-1)return;let i=Math.max(0,Math.min(t.length-1,a+e));i!==a&&(this.lastSelectedPath=n,this.selectRange(t[i],t))}selectAll(e){this.selectedTaskPaths.size===0&&e.length>0&&(this.primarySelectedPath=e[0]);for(let t of e)this.selectedTaskPaths.add(t);e.length>0&&(this.lastSelectedPath=e[e.length-1]),this.notifySelectionChange()}clearSelection(){this.selectedTaskPaths.clear(),this.lastSelectedPath=null,this.primarySelectedPath=null,this.notifySelectionChange()}getSelectedPaths(){return Array.from(this.selectedTaskPaths)}getPrimarySelectedPath(){return this.primarySelectedPath}getSelectionCount(){return this.selectedTaskPaths.size}async getSelectedTasks(){let e=[];for(let t of this.selectedTaskPaths){let n=await this.plugin.cacheManager.getTaskInfo(t);n&&e.push(n)}return e}onSelectionModeChange(e){return this.selectionModeListeners.push(e),()=>{let t=this.selectionModeListeners.indexOf(e);t!==-1&&this.selectionModeListeners.splice(t,1)}}onSelectionChange(e){return this.selectionChangeListeners.push(e),()=>{let t=this.selectionChangeListeners.indexOf(e);t!==-1&&this.selectionChangeListeners.splice(t,1)}}notifySelectionModeChange(e){for(let t of this.selectionModeListeners)try{t(e)}catch(n){WBe.error("[TaskSelectionService] Error in selection mode listener:",{category:"persistence",operation:"selection-mode-listener",error:n})}}notifySelectionChange(){let e=this.getSelectedPaths();for(let t of this.selectionChangeListeners)try{t(e)}catch(n){WBe.error("[TaskSelectionService] Error in selection change listener:",{category:"persistence",operation:"selection-change-listener",error:n})}}destroy(){this.selectedTaskPaths.clear(),this.selectionModeListeners=[],this.selectionChangeListeners=[]}}});var KBe={};at(KBe,{BasesFilterConverter:()=>_Z});function LIt(r){return r instanceof Error?r.message:String(r)}function zIt(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}var AZ,_Z,ZBe=y(()=>{kr();K();AZ=N({tag:"Services/BasesFilterConverter"});_Z=class{constructor(e){this.plugin=e,this.statusManager=e.statusManager,this.priorityManager=e.priorityManager}convertToBasesFilter(e){try{let t=this.convertNodeToObject(e);return t||null}catch(t){throw AZ.error("Error converting TaskNotes filter to Bases:",{category:"validation",operation:"converting-tasknotes-filter-bases",error:t}),new Error(`Failed to convert filter: ${LIt(t)}`)}}convertNodeToObject(e){return e.type=="group"?this.convertGroupToObject(e):e.type=="condition"?this.convertConditionToString(e):null}convertGroupToObject(e){let t=e.children.filter(i=>i.type=="condition"?this.isConditionComplete(i):!0);if(t.length==0)return null;let n=t.map(i=>this.convertNodeToObject(i)).filter(i=>i!==null);return n.length==0?null:n.length===1?n[0]:{[e.conjunction=="and"?"and":"or"]:n}}convertConditionToString(e){let{property:t,operator:n,value:a}=e;if(t=="status.isCompleted")return this.convertCompletedStatusCondition(n,a);if(t=="archived")return this.convertArchivedCondition(n);if(t=="dependencies.isBlocked")return this.convertIsBlockedCondition(n);if(t.startsWith("user:"))return this.convertUserFieldCondition(t,n,a);let i=this.getBasesPropertyPath(t);return this.convertOperator(i,n,a,t)}isConditionComplete(e){let{property:t,operator:n,value:a}=e;return!t||!n?!1:["is-empty","is-not-empty","is-checked","is-not-checked"].includes(n)?!0:a!=null&&a!==""}convertCompletedStatusCondition(e,t){let n=this.statusManager.getCompletedStatuses(),a=this.plugin.fieldMapper,i=a.toUserField("status"),s=n.map(u=>`note.${i} == "${this.escapeString(u)}"`).join(" || "),o=n.length>1?`(${s})`:s,l=a.toUserField("completeInstances"),c=`note.${l} && note.${l}.map(date(value).format("YYYY-MM-DD")).contains(today().format("YYYY-MM-DD"))`,d=`(${o}) || (${c})`;return e=="is-not-checked"||e=="is-not"?`!(${d})`:d}convertArchivedCondition(e){let n=this.plugin.fieldMapper.toUserField("archiveTag"),a=`file.tags.contains("${this.escapeString(n)}")`;return e=="is-not-checked"||e=="is-not"?`!${a}`:a}convertIsBlockedCondition(e){let n=this.plugin.fieldMapper.toUserField("blockedBy"),a=`(note.${n} && list(note.${n}).length > 0)`;return e=="is-not-checked"||e=="is-not"?`!(${a})`:a}convertUserFieldCondition(e,t,n){let a=e.slice(5),s=(this.plugin.settings.userFields||[]).find(l=>(l.id||l.key)===a||l.key===a);if(!s)return AZ.warn(`User field not found: ${a}`,{category:"validation",operation:"user-field-not-found"}),"true";let o=`note.${s.key}`;return this.convertOperator(o,t,n,e,s.type)}getBasesPropertyPath(e){let t=this.plugin.fieldMapper,n;switch(e){case"title":return"file.name";case"status":n=t.toUserField("status");break;case"priority":n=t.toUserField("priority");break;case"due":n=t.toUserField("due");break;case"scheduled":n=t.toUserField("scheduled");break;case"contexts":n=t.toUserField("contexts");break;case"projects":n=t.toUserField("projects");break;case"tags":return"file.tags";case"path":return"file.path";case"dateCreated":return"file.ctime";case"dateModified":return"file.mtime";case"timeEstimate":n=t.toUserField("timeEstimate");break;case"completedDate":n=t.toUserField("completedDate");break;case"recurrence":n=t.toUserField("recurrence");break;case"blockedBy":n=t.toUserField("blockedBy");break;case"blocking":n="blocking";break;default:n=e}return`note.${n}`}convertOperator(e,t,n,a,i){switch(t){case"is":return this.convertIsOperator(e,n,i);case"is-not":return`!(${this.convertIsOperator(e,n,i)})`;case"contains":return this.convertContainsOperator(e,n,a);case"does-not-contain":return`!(${this.convertContainsOperator(e,n,a)})`;case"is-before":return`${e} < "${this.escapeString(String(n))}"`;case"is-after":return`${e} > "${this.escapeString(String(n))}"`;case"is-on-or-before":return`${e} <= "${this.escapeString(String(n))}"`;case"is-on-or-after":return`${e} >= "${this.escapeString(String(n))}"`;case"is-empty":return`${e}.isEmpty()`;case"is-not-empty":return`!${e}.isEmpty()`;case"is-checked":return`${e} == true`;case"is-not-checked":return`${e} != true`;case"is-greater-than":return`${e} > ${this.formatNumericValue(n)}`;case"is-less-than":return`${e} < ${this.formatNumericValue(n)}`;case"is-greater-than-or-equal":return`${e} >= ${this.formatNumericValue(n)}`;case"is-less-than-or-equal":return`${e} <= ${this.formatNumericValue(n)}`;default:return AZ.warn("Unknown operator:",{category:"validation",operation:"unknown-operator",details:{value:t}}),"true"}}convertIsOperator(e,t,n){if(Array.isArray(t)){if(t.length==0)return`(!${e} || ${e}.length == 0)`;let a=t.map(i=>`${e}.contains("${this.escapeString(J(i))}")`);return a.length>1?`(${a.join(" || ")})`:a[0]}if(n=="list")return`${e}.contains("${this.escapeString(J(t))}")`;if(typeof t=="boolean"||n=="boolean"){let a=typeof t=="boolean"?t?"true":"false":J(t);return`${e} == ${a}`}return typeof t=="number"||n=="number"?`${e} == ${this.formatNumericValue(t)}`:t==null||t==""?`(!${e} || ${e} == "" || ${e} == null)`:`${e} == "${this.escapeString(J(t))}"`}convertContainsOperator(e,t,n){if(["tags","contexts","projects"].includes(n)){if(Array.isArray(t)){let i=t.map(s=>`${e}.contains("${this.escapeString(String(s))}")`);return i.length>1?`(${i.join(" || ")})`:i[0]}if(n=="projects"){let i=String(t);return i.startsWith("[[")&&i.endsWith("]]")?`${e}.contains("${this.escapeString(i)}")`:`(${e}.contains("[[${this.escapeString(i)}]]") || ${e}.contains("${this.escapeString(i)}"))`}return`${e}.contains("${this.escapeString(J(t))}")`}return`${e}.lower().contains("${this.escapeString(J(t).toLowerCase())}")`}formatNumericValue(e){if(typeof e=="number")return String(e);let t=parseFloat(J(e));return isNaN(t)?"0":String(t)}escapeString(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}filterObjectToYAML(e,t=0){let n=" ".repeat(t);if(typeof e=="string")return`'${e.replace(/'/g,"\\'")}'`;if(Array.isArray(e))return e.map(a=>`
|
||
${n}- ${this.filterObjectToYAML(a,t+1)}`).join("");if(zIt(e)){let a=Object.keys(e)[0],i=e[a];return Array.isArray(i)?`
|
||
${n}${a}:${i.map(s=>`
|
||
${n} - ${this.filterObjectToYAML(s,t+2)}`).join("")}`:`
|
||
${n}${a}: ${this.filterObjectToYAML(i,t+1)}`}return String(e)}convertSavedViewToBasesFile(e,t="tasknotesTaskList"){let n=this.convertToBasesFilter(e.query),a=`# ${e.name}
|
||
|
||
`;if(n&&(a+=`filters:${this.filterObjectToYAML(n,1)}
|
||
|
||
`),a+=`views:
|
||
`,a+=` - type: ${t}
|
||
`,a+=` name: "${e.name}"
|
||
`,e.query.sortKey){let i=this.mapSortKeyToBasesColumn(e.query.sortKey),s=(e.query.sortDirection||"asc").toUpperCase();a+=` sort:
|
||
`,a+=` - column: ${i}
|
||
`,a+=` direction: ${s}
|
||
`}if(e.query.groupKey&&e.query.groupKey!=="none"){let i=this.mapGroupKeyToBasesColumn(e.query.groupKey),s=(e.query.sortDirection||"asc").toUpperCase();a+=` groupBy:
|
||
`,a+=` property: ${i}
|
||
`,a+=` direction: ${s}
|
||
`}return e.viewOptions&&Object.keys(e.viewOptions).length>0&&(a+=` options:
|
||
`,Object.entries(e.viewOptions).forEach(([i,s])=>{let o;typeof s=="boolean"||typeof s=="number"?o=String(s):typeof s=="string"?o=`"${this.escapeString(s)}"`:o=JSON.stringify(s),a+=` ${i}: ${o}
|
||
`})),a}mapSortKeyToBasesColumn(e){let t=this.plugin.fieldMapper;switch(e){case"due":return t.toUserField("due");case"scheduled":return t.toUserField("scheduled");case"priority":return t.toUserField("priority");case"status":return t.toUserField("status");case"title":return t.toUserField("title");case"dateCreated":return"file.ctime";case"dateModified":return"file.mtime";case"completedDate":return t.toUserField("completedDate");case"tags":return"file.tags";case"path":return"file.path";case"timeEstimate":return t.toUserField("timeEstimate");case"recurrence":return t.toUserField("recurrence");default:if(e.startsWith("user:")){let n=e.slice(5),i=(this.plugin.settings.userFields||[]).find(s=>(s.id||s.key)===n||s.key===n);return(i==null?void 0:i.key)||e}return e}}mapGroupKeyToBasesColumn(e){return this.mapSortKeyToBasesColumn(e)}convertAllSavedViewsToBasesFile(e){if(!e||e.length==0)return"";let t=`# All Saved Views
|
||
`;t+=`# Converted from TaskNotes saved views
|
||
|
||
`;let n=[];for(let a of e){let i=this.detectViewType(a),s=this.convertToBasesFilter(a.query),o=` - type: ${i}
|
||
`;if(o+=` name: "${a.name}"
|
||
`,s&&(o+=` filters:${this.filterObjectToYAML(s,3)}
|
||
`),a.query.sortKey){let l=this.mapSortKeyToBasesColumn(a.query.sortKey),c=(a.query.sortDirection||"asc").toUpperCase();o+=` sort:
|
||
`,o+=` - column: ${l}
|
||
`,o+=` direction: ${c}
|
||
`}if(a.query.groupKey&&a.query.groupKey!=="none"){let l=this.mapGroupKeyToBasesColumn(a.query.groupKey),c=(a.query.sortDirection||"asc").toUpperCase();o+=` groupBy:
|
||
`,o+=` property: ${l}
|
||
`,o+=` direction: ${c}
|
||
`}a.viewOptions&&Object.keys(a.viewOptions).length>0&&(o+=` options:
|
||
`,Object.entries(a.viewOptions).forEach(([l,c])=>{let d;typeof c=="boolean"||typeof c=="number"?d=String(c):typeof c=="string"?d=`"${this.escapeString(c)}"`:d=JSON.stringify(c),o+=` ${l}: ${d}
|
||
`})),n.push(o)}return t+=`views:
|
||
`,t+=n.join(`
|
||
`),t}detectViewType(e){let t=e.viewOptions||{};return["showScheduled","showDue","showRecurring","showTimeEntries","showTimeblocks","showPropertyBasedEvents","calendarView","customDayCount","firstDay","slotMinTime","slotMaxTime","slotDuration","snapDuration"].some(o=>o in t)?"tasknotesCalendar":["columnWidth","hideEmptyColumns","pinnedColumns","cardLayout"].some(o=>o in t)?"tasknotesKanban":"tasknotesTaskList"}}});var JBe={};at(JBe,{MdbaseSpecService:()=>NZ});function Tp(r){return`"${r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function jIt(r){return Tp(r)}function $It(r){let e=r.toLowerCase();return e==="true"||e==="false"?e:Tp(r)}var QBe,IZ,YP,NZ,XBe=y(()=>{QBe=require("obsidian");aD();K();IZ=N({tag:"Services/MdbaseSpecService"}),YP="_types",NZ=class{constructor(e){this.plugin=e}async onSettingsChanged(){this.plugin.settings.enableMdbaseSpec&&await this.generate()}async generate(){try{let e=this.plugin.app.vault,t=await this.getTypesFolder(),n=`${t}/task.md`;await this.ensureFolderPath(t);let a=this.buildTaskTypeDef();if(await this.writeFile(n,a),!await e.adapter.exists("mdbase.yaml")){let s=this.buildMdbaseYaml(t);await this.writeFile("mdbase.yaml",s)}IZ.debug(`[TaskNotes][mdbase-spec] Generated mdbase.yaml and ${n}`,{category:"configuration",operation:"generated-mdbase-yaml-and"})}catch(e){IZ.error("[TaskNotes][mdbase-spec] Failed to generate files:",{category:"configuration",operation:"generate-files",error:e})}}async getTypesFolder(){var n,a;let e=this.plugin.app.vault;if(!await e.adapter.exists("mdbase.yaml"))return YP;try{let i=await e.adapter.read("mdbase.yaml"),s=xb.parse(i);return(a=this.normalizeTypesFolder((n=s==null?void 0:s.settings)==null?void 0:n.types_folder))!=null?a:YP}catch(i){return IZ.warn("[TaskNotes][mdbase-spec] Failed to read mdbase.yaml:",{category:"configuration",operation:"read-mdbase-yaml",error:i}),YP}}normalizeTypesFolder(e){if(typeof e!="string")return null;let t=e.trim();if(!t||t.startsWith("/")||t==="."||t==="..")return null;let n=(0,QBe.normalizePath)(t);return!n||n==="."||n===".."||n.startsWith("../")||n.includes("/../")?null:n}async ensureFolderPath(e){let t=this.plugin.app.vault,n=e.split("/").filter(Boolean),a="";for(let i of n)a=a?`${a}/${i}`:i,await t.adapter.exists(a)||await t.createFolder(a)}async writeFile(e,t){let n=this.plugin.app.vault;await n.adapter.exists(e)?await n.adapter.write(e,t):await n.create(e,t)}buildMdbaseYaml(e=YP){var n;let t=(n=this.normalizeTypesFolder(e))!=null?n:YP;return['spec_version: "0.2.0"','name: "TaskNotes"','description: "Task collection managed by TaskNotes for Obsidian"',"settings:",` types_folder: ${Tp(t)}`," default_strict: false"," exclude:",` - ${Tp(t)}`,""].join(`
|
||
`)}buildTaskTypeDef(){var i,s;let e=this.plugin.settings,t=this.plugin.fieldMapper,n=[];if(n.push("---"),n.push("name: task"),n.push("description: A task managed by the TaskNotes plugin for Obsidian."),n.push(`display_name_key: ${t.toUserField("title")}`),n.push("strict: false"),n.push(`path_pattern: ${Tp(this.buildPathPattern())}`),n.push(""),n.push("match:"),this.addMatchRules(n),n.push(""),n.push("fields:"),this.addRoleField(n,"title",{type:"string",required:!0,description:"Short summary of the task."}),this.addRoleField(n,"status",{type:"enum",required:!0,values:e.customStatuses.map(o=>o.value),default:e.defaultTaskStatus,tn_completed_values:e.customStatuses.filter(o=>o.isCompleted).map(o=>o.value)}),this.addRoleField(n,"priority",{type:"enum",values:e.customPriorities.map(o=>o.value),default:e.defaultTaskPriority}),this.addRoleField(n,"due",{type:"date"}),this.addRoleField(n,"scheduled",{type:"date"}),this.addRoleField(n,"contexts",{type:"list",items:{type:"string"}}),this.addRoleField(n,"projects",{type:"list",items:{type:"link"},description:"Wikilinks to related project notes."}),this.addRoleField(n,"timeEstimate",{type:"integer",min:0,description:"Estimated time in minutes."}),this.addRoleField(n,"completedDate",{type:"date"}),this.addRoleField(n,"dateCreated",{type:"datetime",required:!0,generated:"now"}),this.addRoleField(n,"dateModified",{type:"datetime",generated:"now_on_write"}),this.addRoleField(n,"recurrence",{type:"string"}),this.addRoleField(n,"recurrenceAnchor",{type:"enum",values:["scheduled","completion"],default:"scheduled"}),this.addRoleField(n,"occurrenceMaterialization",{type:"enum",values:["manual","on_completion","rolling"],default:"manual",description:"How occurrence task notes are materialized for a recurring parent task."}),this.addRoleField(n,"occurrenceNextTrigger",{type:"enum",values:["completion","completion_or_skip"],default:"completion",description:"Which occurrence state changes should materialize the next occurrence."}),this.addRoleField(n,"occurrenceTemplate",{type:"link",description:"Optional template note used when materializing occurrences."}),this.addRoleField(n,"occurrencePastHorizon",{type:"string",description:"ISO 8601 duration controlling rolling materialization before today."}),this.addRoleField(n,"occurrenceFutureHorizon",{type:"string",description:"ISO 8601 duration controlling rolling materialization after today."}),this.addRoleField(n,"recurrenceParent",{type:"link",description:"Parent recurring task for a materialized occurrence note."}),this.addRoleField(n,"occurrenceDate",{type:"date",description:"Target recurrence date for a materialized occurrence note."}),this.addField(n,"tags",{type:"list",items:{type:"string"},tn_role:"tags"}),this.addRoleField(n,"timeEntries",{type:"list",items:{type:"object",fields:{startTime:{type:"datetime"},endTime:{type:"datetime"},description:{type:"string"},duration:{type:"integer"}}}}),this.addRoleField(n,"reminders",{type:"list",items:{type:"object",fields:{id:{type:"string",required:!0},type:{type:"enum",values:["absolute","relative"]},description:{type:"string"},relatedTo:{type:"enum",values:["due","scheduled"],description:"Field the reminder is relative to (e.g. 'due')."},offset:{type:"string",description:"ISO 8601 duration offset (e.g. '-PT1H')."},absoluteTime:{type:"datetime"}}},description:"Reminder objects with id, type, offset, etc."}),this.addRoleField(n,"blockedBy",{type:"list",items:{type:"object",fields:{uid:{type:"link",required:!0},reltype:{type:"string"},gap:{type:"string"}}}}),this.addRoleField(n,"completeInstances",{type:"list",items:{type:"date"}}),this.addRoleField(n,"skippedInstances",{type:"list",items:{type:"date"}}),this.addRoleField(n,"icsEventId",{type:"list",items:{type:"string"}}),this.addRoleField(n,"googleCalendarEventId",{type:"string"}),this.addRoleField(n,"googleCalendarExceptionEventId",{type:"string"}),this.addRoleField(n,"googleCalendarExceptionOriginalScheduled",{type:"date"}),this.addRoleField(n,"googleCalendarMovedOriginalDates",{type:"list",items:{type:"date"}}),e.userFields&&e.userFields.length>0)for(let o of e.userFields)this.addField(n,o.key,this.mapUserFieldType(o));n.push(""),n.push("x-tasknotes:"),n.push(" nlp:");let a=(s=(i=e.nlpTriggers)==null?void 0:i.triggers)!=null?s:[];if(a.length===0)n.push(" triggers: []");else{n.push(" triggers:");for(let o of a)n.push(` - property_id: ${Tp(o.propertyId)}`),n.push(` trigger: ${Tp(o.trigger)}`),n.push(` enabled: ${o.enabled===!0}`)}return n.push("---"),n.push(""),n.push("# Task"),n.push(""),n.push("This type definition describes the data schema for tasks managed by"),n.push("[TaskNotes](https://github.com/callumalpass/tasknotes), an Obsidian plugin"),n.push("for note-based task management."),n.push(""),n.push("It conforms to [mdbase-spec](https://github.com/callumalpass/mdbase-spec) v0.2.0,"),n.push("a specification for typed markdown collections."),n.push(""),n.push("TaskNotes also adds a non-standard `tn_role` field annotation on schema"),n.push("fields. This maps each field to its TaskNotes semantic role so custom"),n.push("frontmatter field names can still be interpreted consistently."),n.push("The status field also includes `tn_completed_values`, listing"),n.push("which status values count as completed."),n.push(""),n.push("This file is automatically generated from TaskNotes settings and should not be"),n.push("edited manually. Changes to TaskNotes settings (statuses, priorities, field"),n.push("mappings, user fields) will cause this file to be regenerated."),n.push(""),n.join(`
|
||
`)}addField(e,t,n,a=2){let i=" ".repeat(a);e.push(`${i}${t}:`),this.writeFieldProps(e,n,a+2)}addRoleField(e,t,n,a=2){let i=this.plugin.fieldMapper.toUserField(t);this.addField(e,i,{...n,tn_role:t},a)}writeFieldProps(e,t,n){let a=" ".repeat(n);if(e.push(`${a}type: ${t.type}`),t.required&&e.push(`${a}required: true`),t.generated&&e.push(`${a}generated: ${t.generated}`),t.values&&e.push(`${a}values: [${t.values.join(", ")}]`),t.tn_completed_values&&t.tn_completed_values.length>0&&e.push(`${a}tn_completed_values: [${t.tn_completed_values.join(", ")}]`),t.default!==void 0&&e.push(`${a}default: ${t.default}`),t.min!==void 0&&e.push(`${a}min: ${t.min}`),t.description&&e.push(`${a}description: ${Tp(t.description)}`),t.tn_role&&e.push(`${a}tn_role: ${t.tn_role}`),t.items)if(t.items.type==="object"&&t.items.fields){e.push(`${a}items:`),e.push(`${a} type: object`),e.push(`${a} fields:`);for(let[i,s]of Object.entries(t.items.fields))this.addField(e,i,s,n+4)}else e.push(`${a}items:`),e.push(`${a} type: ${t.items.type}`)}mapUserFieldType(e){switch(e.type){case"text":return{type:"string"};case"number":return{type:"number"};case"date":return{type:"date"};case"boolean":return{type:"boolean"};case"list":return{type:"list",items:{type:"string"}};default:return{type:"string"}}}addMatchRules(e){var n,a;let t=this.plugin.settings;if(t.taskIdentificationMethod==="property"){let i=(n=t.taskPropertyName)==null?void 0:n.trim(),s=(a=t.taskPropertyValue)==null?void 0:a.trim();if(!i){this.addTagMatchRule(e);return}e.push(" where:"),e.push(` ${jIt(i)}:`),s?e.push(` eq: ${$It(s)}`):e.push(" exists: true");return}this.addTagMatchRule(e)}addTagMatchRule(e){var n;let t=((n=this.plugin.settings.taskTag)==null?void 0:n.trim())||"task";e.push(" where:"),e.push(" tags:"),e.push(` contains: ${Tp(t)}`)}buildPathPattern(){let e=this.toMdbaseTemplate(this.plugin.settings.tasksFolder||""),t=this.getFilenameTemplate(),n=this.toMdbaseTemplate(t)||`{${this.plugin.fieldMapper.toUserField("title")}}`,a=n.endsWith(".md")?n:`${n}.md`;return e?`${e}/${a}`:a}getFilenameTemplate(){var t;let e=this.plugin.settings;if(e.storeTitleInFilename||e.taskFilenameFormat==="title")return"{{title}}";switch(e.taskFilenameFormat){case"timestamp":return"{{timestamp}}";case"uuid":return"{{uuid}}";case"custom":return((t=e.customFilenameTemplate)==null?void 0:t.trim())||"{{title}}";case"zettel":default:return"{{zettel}}"}}toMdbaseTemplate(e){let t=(e||"").trim();if(!t)return"";let n=this.getPathVariableMap();return t.replace(/\{\{(\w+)\}\}|\{(\w+)\}/g,(i,s,o)=>{let l=String(s!=null?s:o);return`{${n[l]||l}}`}).replace(/\\/g,"/").replace(/\/+/g,"/").replace(/^\/+|\/+$/g,"")}getPathVariableMap(){let e=this.plugin.fieldMapper;return{title:e.toUserField("title"),priority:e.toUserField("priority"),status:e.toUserField("status"),dueDate:e.toUserField("due"),scheduledDate:e.toUserField("scheduled"),due:e.toUserField("due"),scheduled:e.toUserField("scheduled")}}}});function GP(r){var i,s;if(r==null)return null;let e=r;if(((i=e.constructor)==null?void 0:i.name)==="NullValue"||t2e(e))return null;if(typeof e.data!="undefined")return e.data;let t=n2e(e);if(t)return t;let n=r2e(e);if(n!==void 0)return n;if(e.date instanceof Date)return e.date.toISOString();if(((s=e.constructor)==null?void 0:s.name)==="DateValue"&&e.toISOString)return e.toISOString();if(e.file)return e.file.path;let a=Reflect.get(e,"toString");if(typeof a=="function"&&a!==Object.prototype.toString){let o=Reflect.apply(a,e,[]);if(o!=="[object Object]")return o}return r}function e2e(r){var n;if(r==null)return"Unknown";let e=r;if(((n=e.constructor)==null?void 0:n.name)==="NullValue")return"Unknown";if(t2e(e))return"None";let t=BIt(e);return UIt(t)}function BIt(r){if(r.file&&typeof r.file=="object")return r.file.path;if(r.date instanceof Date)return r.date;let e=n2e(r);if(e)return e;if(typeof r.data!="undefined")return r.data;let t=r2e(r);return t!==void 0?t:r}function t2e(r){return r.icon==="lucide-file-question"&&typeof r.data=="undefined"&&typeof r.display=="undefined"&&typeof r.label=="undefined"&&!(r.date instanceof Date)&&!r.file&&!Array.isArray(r.value)&&typeof r.get!="function"&&typeof r.at!="function"&&typeof r.length!="function"&&typeof r.toISOString!="function"}function r2e(r){for(let e of[r.value,r.display,r.label])if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e}function UIt(r){if(r==null)return"None";if(r instanceof Date){let e=r.getFullYear(),t=String(r.getMonth()+1).padStart(2,"0"),n=String(r.getDate()).padStart(2,"0");return`${e}-${t}-${n}`}return typeof r=="string"?r||"None":typeof r=="number"?String(r):typeof r=="boolean"?r?"True":"False":Array.isArray(r)?r.length>0?r.map(J).join(", "):"None":J(r)||"None"}function n2e(r){let e=typeof r.get=="function"?r.get.bind(r):typeof r.at=="function"?r.at.bind(r):null;if(typeof r.length=="function"&&e){let t=r.length(),n=[];for(let a=0;a<t;a++){let i=e(a);n.push(GP(i))}return n}return Array.isArray(r.value)?r.value.map(t=>GP(t)):null}var a2e=y(()=>{kr()});function i2e(r){let t={...r.frontmatter||r.properties||{}},n=r.file;return n&&(n.name!==void 0&&(t["file.name"]=n.name),n.basename!==void 0&&(t["file.basename"]=n.basename),n.extension!==void 0&&(t["file.extension"]=n.extension),n.path!==void 0&&(t["file.path"]=n.path),n.stat&&(n.stat.size!==void 0&&(t["file.size"]=n.stat.size),n.stat.ctime!==void 0&&(t["file.ctime"]=n.stat.ctime),n.stat.mtime!==void 0&&(t["file.mtime"]=n.stat.mtime))),t}var s2e=y(()=>{});var GL,o2e=y(()=>{K();a2e();s2e();GL=class{constructor(e,t=N({tag:"Bases/DataAdapter"})){this.basesView=e;this.logger=t}extractDataItems(){return this.basesView.data.data.map(t=>({key:t.file.path,data:t,file:t.file,path:t.file.path,properties:this.extractEntryProperties(t),basesData:t}))}getGroupedData(){return this.basesView.data.groupedData}isGrouped(){let e=this.basesView.data.groupedData;return e.length!==1?!0:e[0].hasKey()}getSortConfig(){return this.basesView.config.getSort()}getVisiblePropertyIds(){return this.basesView.config.getOrder()}getPropertyDisplayName(e){return this.basesView.config.getDisplayName(e)}getPropertyValue(e,t){try{let n=e.getValue(t);return GP(n)}catch(n){return this.logger.warn("Failed to get property value",{category:"provider",operation:"get-property-value",details:{propertyId:t},error:n}),null}}convertGroupKeyToString(e){return e2e(e)}extractEntryProperties(e){return i2e(e)}getComputedProperty(e,t){if(!e||typeof e!="object")return null;try{let n=e.getValue;if(typeof n!="function")return null;let a=n.call(e,t);return GP(a)}catch(n){return null}}}});var KP,RZ=y(()=>{KP=class{constructor(e,t){this.fieldMapper=t!=null?t:e}basesToTaskCardProperty(e){if(this.fieldMapper&&this.fieldMapper.isRecognizedProperty(e))return this.applySpecialTransformations(e);if(e.startsWith("note.")){let t=e.substring(5);return this.fieldMapper&&this.fieldMapper.isRecognizedProperty(t)?this.applySpecialTransformations(t):t==="dateCreated"?"dateCreated":t==="dateModified"?"dateModified":t==="completedDate"?"completedDate":this.applySpecialTransformations(t)}if(e.startsWith("task.")){let t=e.substring(5);return this.fieldMapper&&this.fieldMapper.isRecognizedProperty(t)?this.applySpecialTransformations(t):this.applySpecialTransformations(t)}return e.startsWith("file.")?e==="file.ctime"?"dateCreated":e==="file.mtime"?"dateModified":e==="file.tasks"?"checklistProgress":e:e.startsWith("formula.")?e==="formula.checklistProgress"?"checklistProgress":e:this.applySpecialTransformations(e)}internalToUserProperty(e){let t=this.fieldMapper.getMapping();return e in t?this.fieldMapper.toUserField(e):e}userPropertyToInternal(e){return this.fieldMapper.lookupMappingKey(e)||e}basesToUserProperty(e){let t=this.basesToTaskCardProperty(e);return this.internalToUserProperty(t)}applySpecialTransformations(e){return e==="timeEntries"?"totalTrackedTime":e==="blockedBy"?"blocked":e==="file.tasks"||e==="formula.checklistProgress"?"checklistProgress":e}basesToInternal(e){return this.basesToTaskCardProperty(e)}basesToTaskInfoProperty(e){var a;let t=e.replace(/^(note\.|file\.|task\.)/,""),n=(a=this.fieldMapper)==null?void 0:a.lookupMappingKey(t);return n||(t==="ctime"||e==="file.ctime"?"dateCreated":t==="mtime"||e==="file.mtime"?"dateModified":t==="name"||t==="basename"?"title":t)}mapVisibleProperties(e){let t=new Set,n=[];for(let a of e){let i=this.basesToTaskCardProperty(a);t.has(i)||(t.add(i),n.push(i))}return n}}});function Dy(r){if(r!=null)return __(r)}function Ya(r){if(r!=null)return J(r)}function qIt(r){if(typeof r=="number")return r;if(typeof r=="string"&&r.trim()!==""){let e=Number(r);return Number.isNaN(e)?void 0:e}}function WIt(r){let e=Ya(r);return e==="manual"||e==="on_completion"||e==="rolling"?e:void 0}function YIt(r){let e=Ya(r);return e==="completion"||e==="completion_or_skip"?e:void 0}function GIt(r){return Array.isArray(r)?r:void 0}function KIt(r){return Array.isArray(r)?r:void 0}function ZIt(r){return r===void 0?void 0:Fh(r)}function l2e(r,e,t){var d,u,p;let n=new Set(["title","status","priority","archived","due","scheduled","contexts","projects","tags","timeEstimate","completedDate","recurrence","recurrence_parent","occurrence_date","occurrence_materialization","occurrence_next_trigger","occurrence_template","occurrence_past_horizon","occurrence_future_horizon","dateCreated","dateModified","timeEntries","reminders","icsEventId","complete_instances","skipped_instances","blockedBy","blocking","sortOrder","customProperties"]),a={};Object.keys(r).forEach(m=>{n.has(m)||(a[m]=r[m])});let i=GIt(r.timeEntries),s=i?Li(i):0,o=!1,l=[],c=!1;return t!=null&&t.dependencyCache&&e.path?(o=t.dependencyCache.isTaskBlocked(e.path),l=t.dependencyCache.getBlockedTaskPaths(e.path),c=l.length>0):o=Array.isArray(r.blockedBy)&&r.blockedBy.length>0,{title:Ya(r.title)||e.name||((u=(d=e.path)==null?void 0:d.split("/").pop())==null?void 0:u.replace(".md",""))||"Untitled",status:Ya(r.status)||((p=t==null?void 0:t.settings)==null?void 0:p.defaultTaskStatus)||"open",priority:Ya(r.priority)||"normal",path:e.path||"",archived:r.archived===!0,due:Ya(r.due),scheduled:Ya(r.scheduled),contexts:Dy(r.contexts),projects:Dy(r.projects),attachments:Dy(r.attachments),tags:Dy(r.tags),timeEstimate:qIt(r.timeEstimate),completedDate:Ya(r.completedDate),recurrence:Ya(r.recurrence),recurrence_parent:Ya(r.recurrence_parent),occurrence_date:Ya(r.occurrence_date),occurrence_materialization:WIt(r.occurrence_materialization),occurrence_next_trigger:YIt(r.occurrence_next_trigger),occurrence_template:Ya(r.occurrence_template),occurrence_past_horizon:Ya(r.occurrence_past_horizon),occurrence_future_horizon:Ya(r.occurrence_future_horizon),dateCreated:Ya(r.dateCreated),dateModified:Ya(r.dateModified),timeEntries:i,totalTrackedTime:s,reminders:KIt(r.reminders),icsEventId:Dy(r.icsEventId),complete_instances:Dy(r.complete_instances),skipped_instances:Dy(r.skipped_instances),blockedBy:ZIt(r.blockedBy),blocking:l.length>0?l:void 0,isBlocked:o,isBlocking:c,sortOrder:Ya(r.sortOrder),customProperties:Object.keys(a).length>0?a:void 0,basesData:e.basesData}}function QIt(r,e){let t={...r!=null?r:{},...e!=null?e:{}};return Object.keys(t).length>0?t:void 0}function c2e(r,e){var n,a;let t=(a=(n=e==null?void 0:e.cacheManager)==null?void 0:n.getCachedTaskInfoSync)==null?void 0:a.call(n,r.path);return t?{...t,basesData:r.basesData,customProperties:QIt(t.customProperties,r.customProperties)}:r}function JIt(r,e){if(!(r!=null&&r.path))return null;let t=r.properties||r.frontmatter||{};if(e!=null&&e.fieldMapper){let n=e.fieldMapper.mapFromFrontmatter(t,r.path,e.settings.storeTitleInFilename),a=l2e(n,r,e),i={};return Object.keys(t).forEach(s=>{s.startsWith("file.")&&(i[s]=t[s])}),c2e({...a,customProperties:{...n.customProperties,...a.customProperties,...i}},e)}else return c2e(l2e(t,r,e),e)}async function wp(r,e,t){let n=t||JIt,a=[];for(let i of r)if(i!=null&&i.path)try{let s=n(i,e);s&&a.push(s)}catch(s){VIt.warn("[TaskNotes][BasesPOC] Error converting Bases item to TaskInfo:",{category:"validation",operation:"converting-bases-item-taskinfo",error:s})}return a}var HIt,VIt,ZP=y(()=>{HIt=require("obsidian");Ct();$c();ag();RZ();Io();kr();K();ms();VIt=N({tag:"Bases/Helpers"})});function FZ(r){return Array.isArray(r)?r.map(String):[String(r)]}function ul(r,e,t){return r[e.toUserField(t)]}function Ef(r){return J(r)}function eNt(r,e){return new Set([...XIt.map(t=>r.toUserField(t)),r.toUserField("archiveTag"),"tags",...e.map(t=>t.key)])}function d2e(r,e,t=[]){let n={},a={},i=ul(r,e,"title");i!==void 0&&(n.title=Ef(i));let s=ul(r,e,"status");s!==void 0&&(n.status=Ef(s));let o=ul(r,e,"priority");o!==void 0&&(n.priority=Ef(o));let l=ul(r,e,"due");l!==void 0&&(n.due=Ef(l));let c=ul(r,e,"scheduled");c!==void 0&&(n.scheduled=Ef(c));let d=ul(r,e,"contexts");d!==void 0&&(n.contexts=FZ(d));let u=ul(r,e,"projects");u!==void 0&&(n.projects=FZ(u)),r.tags!==void 0&&(n.tags=FZ(r.tags)),Array.isArray(r.tags)&&(n.archived=r.tags.includes(e.toUserField("archiveTag")));let p=ul(r,e,"timeEstimate");p!==void 0&&(n.timeEstimate=Number(p));let m=ul(r,e,"recurrence");m!==void 0&&(n.recurrence=Ef(m));let f=ul(r,e,"completedDate");f!==void 0&&(n.completedDate=Ef(f));let h=ul(r,e,"dateCreated");h!==void 0&&(n.dateCreated=Ef(h));let g=ul(r,e,"blockedBy");g!==void 0&&(n.blockedBy=Fh(g));for(let k of t)r[k.key]!==void 0&&(a[k.key]=r[k.key]);let v=eNt(e,t);for(let[k,w]of Object.entries(r))v.has(k)||(a[k]=w);let b={...n};return Object.keys(a).length>0&&(b.customFrontmatter=a),b}var XIt,u2e=y(()=>{Io();kr();XIt=["title","status","priority","due","scheduled","contexts","projects","timeEstimate","recurrence","completedDate","dateCreated","blockedBy"]});function ZL(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}function OZ(r){try{return JSON.parse(`"${r}"`)}catch(e){return r}}function p2e(r){let e={},t=ZL(r.config)?r.config:{},n=ZL(t.query)?t.query:void 0;return zZ(n==null?void 0:n.filters,e,r),zZ(t.filters,e,r),e}function zZ(r,e,t){if(!ZL(r))return;let n=r,a=Array.isArray(n.filters)?n.filters:[];if(a.length>0){if(n.conjunction!==void 0&&n.conjunction!=="and")return;for(let s of a)zZ(s,e,t);return}let i=ZL(n.rule)?n.rule.text:void 0;typeof i=="string"&&tNt(i,e,t)}function tNt(r,e,t){let n=r.trim(),a=n.match(/^file\.hasTag\("((?:\\.|[^"\\])*)"\)$/);if(a){let l=OZ(a[1]);l!==t.taskTag&&KL(e,"tags",l,t.fieldMapper);return}let i=n.match(/^(.+?)\s*==\s*"((?:\\.|[^"\\])*)"$/);if(i){let l=LZ(i[1],t);l&&KL(e,l,OZ(i[2]),t.fieldMapper);return}let s=n.match(/^(.+?)\.contains\("((?:\\.|[^"\\])*)"\)$/);if(s){let l=LZ(s[1],t);l&&KL(e,l,OZ(s[2]),t.fieldMapper);return}let o=n.match(/^(.+?)\.contains\(this\.file\.asLink\(\)\)$/);if(o){let l=LZ(o[1],t),c=rNt(t.currentFileLink);l&&c&&KL(e,l,c,t.fieldMapper)}}function rNt(r){return typeof r=="function"?r():r!=null?r:null}function LZ(r,e){var a;let t=r.trim(),n=t.match(/^list\((.+)\)$/);if(n&&(t=n[1].trim()),t=t.replace(/^(note|task)\./,""),t==="tags"||t==="file.tags")return"tags";for(let i of nNt){let s=e.fieldMapper.toUserField(i);if(t===i||t===s)return s}return(a=e.userFields)!=null&&a.some(i=>i.key===t)?t:null}function KL(r,e,t,n){if(!new Set(["tags",n.toUserField("contexts"),n.toUserField("projects"),n.toUserField("blockedBy")]).has(e)){r[e]===void 0&&(r[e]=t);return}let i=r[e],s=Array.isArray(i)?i.filter(o=>typeof o=="string"):typeof i=="string"?[i]:[];s.includes(t)||(r[e]=[...s,t])}var nNt,m2e=y(()=>{nNt=["title","status","priority","due","scheduled","contexts","projects","timeEstimate","completedDate","dateCreated","recurrence","blockedBy"]});function f2e({config:r,fieldMapper:e,taskTag:t,userFields:n=[],currentFileLink:a,frontmatterProcessor:i}){let s=p2e({config:r,fieldMapper:e,taskTag:t,userFields:n,currentFileLink:a});return i==null||i(s),d2e(s,e,n)}function h2e(r){let e=r.workspace.getActiveFile();return!e||e.extension==="base"?null:r.fileManager.generateMarkdownLink(e,e.path)}var g2e=y(()=>{u2e();m2e()});function v2e(r,e){let t=aNt(e),n=r.map(a=>t.map(i=>{var s,o;return i.id==="file"?(o=(s=a.file)==null?void 0:s.path)!=null?o:"":iNt(e.getPropertyValue(a,i.id))}));return{columns:t,rows:n}}function aNt(r){let e=r.getVisiblePropertyIds();return[{id:"file",label:"File"},...e.map(t=>({id:t,label:r.getPropertyDisplayName(t)||t}))]}function iNt(r){return J(r).replace(/\r?\n/g," ")}function k2e(r){return[r.columns.map(e=>y2e(e.label)),...r.rows].map(e=>e.map(y2e).join(" ")).join(`
|
||
`)}function b2e(r){return[r.columns.map(e=>e.label),...r.rows].map(e=>e.map(sNt).join(",")).join(`
|
||
`)}function T2e(r,e){let n=J(r)||e||"tasknotes-bases-export";return`${oNt(n)}.csv`}function y2e(r){return r.replace(/\t/g," ")}function sNt(r){return/[",\r\n]/.test(r)?`"${r.replace(/"/g,'""')}"`:r}function oNt(r){return r.trim().replace(/[\\/:*?"<>|]+/g,"-").replace(/\s+/g,"-").replace(/^-+|-+$/g,"")||"tasknotes-bases-export"}var w2e=y(()=>{kr()});function S2e(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}function x2e(r,e){var o,l,c,d;let t=S2e(r)?r:{},n=(l=(o=t.updatedTask)!=null?o:t.task)!=null?l:t.taskInfo;if(!(n!=null&&n.path))return{action:"ignore"};let a=n.path,i=(d=(c=t.originalTask)==null?void 0:c.path)!=null?d:typeof t.path=="string"?t.path:void 0;return e.has(a)||(i?e.has(i):!1)?i&&i!==a?{action:"refresh-renamed-task",removePath:i,addPath:a}:{action:"handle-task",task:n,source:cNt(t)}:lNt(t)?{action:"refresh-view"}:{action:"ignore"}}function lNt(r){return r.originalTask?!0:!(r.task!==void 0||r.taskInfo!==void 0)}function cNt(r){return r.task!==void 0||r.taskInfo!==void 0?"metadata-cache":"tasknotes-service"}function C2e(r,e){var s,o,l,c;let t=S2e(r)?r:{},n=typeof t.path=="string"?t.path:(s=t.deletedTask)==null?void 0:s.path,a=typeof n=="string"&&e.renderedTaskPaths.has(n),i=((c=(l=(o=t.deletedTask)==null?void 0:o.projects)==null?void 0:l.length)!=null?c:0)>0||dNt(t.prevCache,e.projectsField);return{deletedPath:n,shouldRefresh:a||i}}function E2e(r){let e=new Set;if(!r)return e;let t=r.querySelectorAll(".task-card[data-task-path]");for(let n of Array.from(t))n.dataset.taskPath&&e.add(n.dataset.taskPath);return e}function dNt(r,e){let t=r==null?void 0:r.frontmatter;if(!t)return!1;let n=t[e];return Array.isArray(n)?n.length>0:typeof n=="string"&&n.trim().length>0}var jZ=y(()=>{});function M2e(r){var n;let e=r.closest(".bases-view"),t=e==null?void 0:e.parentElement;(n=t==null?void 0:t.querySelector(`.${$Z}`))==null||n.remove(),t==null||t.classList.remove(P2e)}function A2e(r){var d;let e=r.containerEl.closest(".bases-view");if(!e)return"missing-bases-view";let t=e.parentElement;if(!t)return"missing-parent";t.classList.add(P2e);let n=t.querySelector(".bases-toolbar");if(!n)return"missing-toolbar";(d=n.querySelector(`.${$Z}`))==null||d.remove();let a=r.containerEl.ownerDocument,i=Ne(a,"div");i.className=`bases-toolbar-item ${$Z}`;let s=Ne(a,"button");s.className="text-icon-button",s.type="button",s.setAttribute("aria-label",r.label);let o=Ne(a,"span");o.className="text-button-icon",(0,D2e.setIcon)(o,"plus"),s.appendChild(o);let l=Ne(a,"span");l.className="text-button-label",l.textContent=r.label,s.appendChild(l),i.appendChild(s),i.addEventListener("click",r.onClick);let c=n.querySelector(".bases-toolbar-new-item-menu");return c?c.before(i):n.appendChild(i),"injected"}var D2e,P2e,$Z,_2e=y(()=>{D2e=require("obsidian");ms();P2e="tasknotes-view-active",$Z="tn-bases-new-task-btn"});function I2e({basesPropertyIds:r,propertyMapper:e,fallbackInternalProperties:t,toUserProperties:n}){let a=e.mapVisibleProperties([...r]);return a.length>0?a:n(t)}function N2e({basesPropertyIds:r,propertyMapper:e,getDisplayName:t}){let n={};for(let a of r){let i=e.basesToTaskCardProperty(a),s=t(a);i&&typeof s=="string"&&s.trim()!==""&&(n[i]=s)}return n}var R2e=y(()=>{});var F2e,QL,O2e=y(()=>{F2e=require("obsidian");Yc();ms();QL=class{constructor(e,t,n=300){this.searchBoxEl=null;this.inputEl=null;this.clearBtnEl=null;this.debouncedSearch=null;this.destroyed=!1;this.handleInput=()=>{if(!this.inputEl)return;let e=this.inputEl.value;this.updateClearButtonVisibility(),this.debouncedSearch&&this.debouncedSearch(e)};this.handleKeydown=e=>{e.key==="Escape"&&(this.clear(),this.debouncedSearch&&this.debouncedSearch(""))};this.handleClear=()=>{var e;this.clear(),this.debouncedSearch&&this.debouncedSearch(""),(e=this.inputEl)==null||e.focus()};this.container=e,this.onSearch=t,this.debounceMs=n,this.debouncedSearch=Ok(a=>{this.destroyed||this.onSearch(a)},this.debounceMs,!1)}render(){let e=this.container.ownerDocument;this.searchBoxEl=Ne(e,"div"),this.searchBoxEl.className="tn-search-box";let t=Ne(e,"div");t.className="tn-search-box__input-wrapper";let n=Ne(e,"div");n.className="tn-search-box__icon",(0,F2e.setIcon)(n,"search"),this.inputEl=Ne(e,"input"),this.inputEl.type="text",this.inputEl.className="tn-search-box__input",this.inputEl.placeholder="Search tasks...",this.inputEl.setAttribute("aria-label","Search tasks");let a=Ne(e,"button");return a.type="button",a.className="tn-search-box__clear",a.textContent="\xD7",a.setAttribute("aria-label","Clear search"),this.clearBtnEl=a,t.appendChild(n),t.appendChild(this.inputEl),t.appendChild(this.clearBtnEl),this.searchBoxEl.appendChild(t),this.container.appendChild(this.searchBoxEl),this.attachEventListeners(),this.searchBoxEl}attachEventListeners(){!this.inputEl||!this.clearBtnEl||(this.inputEl.addEventListener("input",this.handleInput),this.inputEl.addEventListener("keydown",this.handleKeydown),this.clearBtnEl.addEventListener("click",this.handleClear))}updateClearButtonVisibility(){if(!this.inputEl||!this.clearBtnEl)return;this.inputEl.value.length>0?this.clearBtnEl.classList.add("is-visible"):this.clearBtnEl.classList.remove("is-visible")}getValue(){var e;return((e=this.inputEl)==null?void 0:e.value)||""}setValue(e){this.inputEl&&(this.inputEl.value=e,this.updateClearButtonVisibility())}clear(){this.inputEl&&(this.inputEl.value="",this.updateClearButtonVisibility())}destroy(){this.destroyed=!0,this.inputEl&&(this.inputEl.removeEventListener("input",this.handleInput),this.inputEl.removeEventListener("keydown",this.handleKeydown)),this.clearBtnEl&&this.clearBtnEl.removeEventListener("click",this.handleClear),this.inputEl=null,this.clearBtnEl=null,this.searchBoxEl=null,this.debouncedSearch=null}}});var JL,L2e=y(()=>{kr();JL=class{constructor(e){this.visibleProperties=e||[]}filterTasks(e,t){let a=this.normalizeSearchTerm(t).split(/\s+/).filter(Boolean);return a.length===0?e:e.filter(i=>{let s=this.extractSearchableText(i);return a.some(o=>s.includes(o))})}extractSearchableText(e){let t=[];if(t.push(e.title||""),t.push(e.status||""),t.push(e.priority||""),e.tags&&Array.isArray(e.tags)&&t.push(e.tags.join(" ")),e.contexts&&Array.isArray(e.contexts)&&t.push(e.contexts.join(" ")),e.projects&&Array.isArray(e.projects)&&t.push(e.projects.join(" ")),e.customProperties&&this.visibleProperties.length>0)for(let n of this.visibleProperties){let a=e.customProperties[n];a!=null&&(Array.isArray(a)?t.push(a.join(" ")):t.push(J(a)))}return t.join(" ").toLowerCase()}normalizeSearchTerm(e){return e.trim().toLowerCase()}}});function z2e({container:r,visibleProperties:e,currentSearchTerm:t,onSearch:n,debounceMs:a=300}){let i=r.ownerDocument,s=Ne(i,"div");s.className="tn-search-container",r.firstChild?r.insertBefore(s,r.firstChild):r.appendChild(s);let o=new JL([...e]),l=new QL(s,n,a);return l.render(),t&&l.setValue(t),{searchContainer:s,searchBox:l,searchFilter:o}}function j2e(r,e,t){return r.length>0&&e===0&&t>0}function $2e(r,e){let t=r.ownerDocument,n=Ne(t,"div");n.className="tn-search-no-results";let a=Ne(t,"div");a.className="tn-search-no-results__text",a.textContent=`No tasks match "${e}"`;let i=Ne(t,"div");return i.className="tn-search-no-results__hint",i.textContent="Try a different search term or clear the search",n.appendChild(a),n.appendChild(i),r.appendChild(n),n}var B2e=y(()=>{O2e();L2e();ms()});function V2e(r,e){if(e){r.classList.add("tn-selection-mode"),r.setAttribute("data-selection-mode","true");return}r.classList.remove("tn-selection-mode"),r.removeAttribute("data-selection-mode"),XL(r)}function q2e(r,e){if(!e){XL(r);return}let t=e.getPrimarySelectedPath(),n=r.querySelectorAll(".task-card");for(let i of n)H2e({element:i,path:i.dataset.taskPath,selected:i.dataset.taskPath?e.isSelected(i.dataset.taskPath):!1,primary:i.dataset.taskPath===t,selectedClass:"task-card--selected",primaryClass:"task-card--selected-primary"});let a=r.querySelectorAll(".kanban-view__card-wrapper");for(let i of a)H2e({element:i,path:i.dataset.taskPath,selected:i.dataset.taskPath?e.isSelected(i.dataset.taskPath):!1,primary:i.dataset.taskPath===t,selectedClass:"kanban-view__card-wrapper--selected",primaryClass:"kanban-view__card-wrapper--selected-primary"})}function XL(r){let e=r.querySelectorAll(".task-card--selected");for(let n of e)n.classList.remove("task-card--selected"),n.classList.remove("task-card--selected-primary");let t=r.querySelectorAll(".kanban-view__card-wrapper--selected");for(let n of t)n.classList.remove("kanban-view__card-wrapper--selected"),n.classList.remove("kanban-view__card-wrapper--selected-primary")}function W2e({rootElement:r,indicatorEl:e,count:t,onClearSelection:n}){if(t<=0)return e&&U2e(e,"tn-static-display-none-6b99de8b"),e;let a=e!=null?e:pNt(r);return a.onclick=()=>{n()},a.onkeydown=i=>{i.key!=="Enter"&&i.key!==" "||(i.preventDefault(),n())},a.textContent=`${t} selected`,a.setAttribute("aria-label",`${t} selected. Activate to clear selection.`),U2e(a,"tn-static-display-block-2a1b75c9"),a}function Y2e({event:r,taskPath:e,selectionService:t,getVisibleTaskPaths:n,updateSelectionVisuals:a}){return!t||!t.isSelectionModeActive()&&!r.shiftKey&&!r.ctrlKey&&!r.metaKey?!1:(r.shiftKey&&!t.isSelectionModeActive()&&t.enterSelectionMode(),r.shiftKey?t.selectRange(e,n()):(r.ctrlKey||r.metaKey||t.isSelectionModeActive())&&t.toggleSelection(e),a(),!0)}function G2e({event:r,selectionService:e,getVisibleTaskPaths:t,updateSelectionModeUi:n,updateSelectionVisuals:a}){if(!(e!=null&&e.isSelectionModeActive())||fNt(r.target))return!1;if(r.key==="Escape")return e.exitSelectionMode(!0),n(!1),!0;if((r.ctrlKey||r.metaKey)&&r.key.toLowerCase()==="a")return r.preventDefault(),e.selectAll(t()),a(),!0;let i=mNt(r);return i!==null?(r.preventDefault(),e.selectAdjacentRange(i,t()),a(),!0):!1}function K2e(r){if(!r)return[];let e=r.querySelectorAll(".task-card[data-task-path]"),t=[];for(let n of e){let a=n.dataset.taskPath;a&&t.push(a)}return t}function pNt(r){let e=r.ownerDocument,t=Ne(e,"div");return t.className="tn-selection-indicator",t.setAttribute("role","button"),t.tabIndex=0,r.appendChild(t),t}function U2e(r,e){r.classList.remove(...uNt),r.classList.add(e)}function H2e({element:r,path:e,selected:t,primary:n,selectedClass:a,primaryClass:i}){if(!e||!t){r.classList.remove(a),r.classList.remove(i);return}r.classList.add(a),n?r.classList.add(i):r.classList.remove(i)}function mNt(r){return r.shiftKey?r.key==="ArrowUp"||r.key==="ArrowLeft"?-1:r.key==="ArrowDown"||r.key==="ArrowRight"?1:null:null}function fNt(r){if(!(r instanceof HTMLElement))return!1;if(r.isContentEditable)return!0;let e=r.tagName.toLowerCase();return e==="input"||e==="textarea"||e==="select"}var uNt,Z2e=y(()=>{ms();uNt=["tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"]});function hNt(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}function gNt(r,e,t){let n=r;if(n&&typeof n.then=="function"){n.then(e,e);return}t(e,0)}function Q2e({controller:r,view:e,isConnected:t,refresh:n,scheduleTimeout:a}){if(!hNt(r)||typeof r.onConfigChanged!="function")return null;let i=r,s=i.onConfigChanged;if(!s)return null;let o=()=>{i.view&&i.view!==e||t()&&n()},l=(...c)=>{let d=s.apply(i,c);return gNt(d,o,a),d};return i.onConfigChanged=l,()=>{i.onConfigChanged===l&&(i.onConfigChanged=s)}}function J2e({currentTimer:r,scheduler:e,isConnected:t,beforeRender:n,render:a,onTimerCleared:i,onRenderError:s,delayMs:o=500}){return t()?(r&&e.clearTimeout(r),e.setTimeout(()=>{i();try{n(),a()}catch(l){s(l)}},o)):r}function X2e({currentTimer:r,scheduler:e,render:t,onTimerCleared:n,delayMs:a=300}){return r&&e.clearTimeout(r),e.setTimeout(()=>{try{t()}finally{n()}},a)}var eUe=y(()=>{});function rUe(r){return[{name:"Copy task filenames",icon:"lucide-file-text",callback:()=>r("filenames")},{name:"Copy task links",icon:"lucide-link",callback:()=>r("markdown-links")},{name:"Copy task titles",icon:"lucide-text",callback:()=>r("titles")}]}async function nUe({dataItems:r,format:e,identifyTaskNotes:t,filterTasks:n,resolveLinkText:a,writeText:i}){let s=await t(r),l=n(s).map(d=>({path:d.path,title:d.title}));if(l.length===0)return{status:"empty"};let c=FI(l,e,a);return await i(c),{status:"copied",count:l.length}}function aUe(r,e){let t=r.vault.getAbstractFileByPath(e);return t instanceof tUe.TFile?r.metadataCache.fileToLinktext(t,""):e}var tUe,iUe=y(()=>{tUe=require("obsidian");gV()});async function yNt({eventData:r,isConnected:e,relevantPathsCache:t,handleTaskUpdate:n,debouncedRefresh:a,onError:i}){try{if(!e())return;let s=x2e(r,t);if(s.action==="refresh-view"){a();return}if(s.action==="refresh-renamed-task"){t.delete(s.removePath),t.add(s.addPath),a();return}s.action==="handle-task"&&await n(s.task,s.source)}catch(s){i(s),a()}}function sUe({emitter:r,isConnected:e,relevantPathsCache:t,handleTaskUpdate:n,handleTaskDeleted:a,debouncedRefresh:i,onError:s}){let o=r.on(ot,d=>yNt({eventData:d,isConnected:e,relevantPathsCache:t,handleTaskUpdate:n,debouncedRefresh:i,onError:s})),l=r.on(is,d=>{a(d)}),c=r.on("file-deleted",d=>{a(d)});return[o,l,c]}function oUe(r,e){for(let t of e)r.offref(t)}var lUe=y(()=>{Yr();jZ()});function vNt(r,e){return e!==r||r.trim().startsWith("[[")}function kNt(r,e,t){if(!Array.isArray(r.projects)||r.projects.length===0)return!1;for(let n of r.projects){if(typeof n!="string"||n.trim().length===0)continue;let a=Et(n);if(!vNt(n,a))continue;let i=t(a,r.path);if(i!=null&&i.path&&e.has(i.path))return!0}return!1}function cUe(r,e){let t=new Set(r.map(n=>n.path));return r.filter(n=>!kNt(n,t,e))}var dUe=y(()=>{qn()});function bNt(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}var Nd,Rd,QP=y(()=>{Nd=require("obsidian");o2e();RZ();$c();ag();vV();ZP();g2e();w2e();jZ();_2e();R2e();B2e();Z2e();ms();eUe();iUe();lUe();dUe();K();Rd=class extends Nd.Component{constructor(t,n,a){super();this.app=void 0;this.config=void 0;this.data=void 0;this.allProperties=[];this.rootElement=null;this.taskUpdateListener=null;this.updateDebounceTimer=null;this.dataUpdateDebounceTimer=null;this.restoreConfigChangeHook=null;this.relevantPathsCache=new Set;this.enableSearch=!1;this.searchBox=null;this.searchContainerEl=null;this.searchFilter=null;this.currentSearchTerm="";this.selectionModeCleanup=null;this.selectionIndicatorEl=null;this.plugin=a,this.containerEl=n,this.logger=N({tag:()=>`Bases/${this.type}`,isDebugEnabled:()=>this.plugin.settings.enableDebugLogging}),this.dataAdapter=new GL(this,this.logger.child("DataAdapter")),this.propertyMapper=new KP(a.fieldMapper),this.createFileForView=this.createFileForView.bind(this),this.setupConfigChangeHook(t)}setupConfigChangeHook(t){let n=Q2e({controller:t,view:this,isConnected:()=>{var a;return!!((a=this.rootElement)!=null&&a.isConnected)},refresh:()=>this.debouncedRefresh(),scheduleTimeout:(a,i)=>{this.getTimeoutScheduler().setTimeout(a,i)}});n&&(this.restoreConfigChangeHook=n,typeof this.register=="function"&&this.register(()=>{var a;(a=this.restoreConfigChangeHook)==null||a.call(this),this.restoreConfigChangeHook=null}))}getTimeoutScheduler(){let t=this.containerEl.ownerDocument.defaultView||window;return{setTimeout:(n,a)=>t.setTimeout(n,a),clearTimeout:n=>t.clearTimeout(n)}}onload(){this.setupContainer(),this.setupTaskUpdateListener(),this.setupSelectionHandling(),this.updateRelevantPathsCache(),this.render()}onDataUpdated(){var t;(t=this.rootElement)!=null&&t.isConnected&&(this.dataUpdateDebounceTimer=J2e({currentTimer:this.dataUpdateDebounceTimer,scheduler:this.getTimeoutScheduler(),isConnected:()=>{var n;return!!((n=this.rootElement)!=null&&n.isConnected)},beforeRender:()=>this.updateRelevantPathsCache(),render:async()=>{let n=this.getEphemeralState();try{await this.render()}finally{this.setEphemeralState(n)}},onTimerCleared:()=>{this.dataUpdateDebounceTimer=null},onRenderError:n=>{this.logger.error("Render error during data update",{category:"internal",operation:"data-update-render",error:n}),this.renderError(n)},delayMs:500}))}updateRelevantPathsCache(){this.relevantPathsCache.clear();try{let t=this.dataAdapter.extractDataItems();for(let n of t)n.path&&this.relevantPathsCache.add(n.path)}catch(t){}}getEphemeralState(){var t;return{scrollTop:((t=this.rootElement)==null?void 0:t.scrollTop)||0,containerScrollTop:this.containerEl.scrollTop||0}}setEphemeralState(t){if(!(!bNt(t)||!this.rootElement||!this.rootElement.isConnected))try{let n=t;typeof n.scrollTop=="number"&&(this.rootElement.scrollTop=n.scrollTop),typeof n.containerScrollTop=="number"&&(this.containerEl.scrollTop=n.containerScrollTop)}catch(n){this.logger.debug("Failed to restore ephemeral state",{category:"stale-data",operation:"restore-ephemeral-state",error:n})}}focus(){var t;try{(t=this.rootElement)!=null&&t.isConnected&&typeof this.rootElement.focus=="function"&&this.rootElement.focus()}catch(n){this.logger.debug("Failed to focus view",{category:"internal",operation:"focus-view",error:n})}}refresh(){this.render()}copyToClipboard(){this.copyBasesTableToClipboard()}exportTable(){this.exportBasesTableAsCsv()}getViewActions(){return rUe(t=>{this.copyCurrentViewTasks(t)})}onResize(){}setupContainer(){this.containerEl.empty();let t=this.containerEl.ownerDocument,n=Ne(t,"div");n.className=`tn-bases-integration tasknotes-plugin tasknotes-container tn-${this.type}`,n.tabIndex=-1,this.containerEl.appendChild(n),this.rootElement=n,this.setupNewTaskButton()}setupNewTaskButton(){window.setTimeout(()=>this.injectNewTaskButton(),100),this.register(()=>this.cleanupNewTaskButton())}cleanupNewTaskButton(){M2e(this.containerEl)}injectNewTaskButton(){let t=A2e({containerEl:this.containerEl,label:this.plugin.i18n.translate("common.new"),onClick:n=>{n.preventDefault(),n.stopPropagation(),this.createFileForView("New Task")}});if(t==="missing-bases-view"){this.logger.debug("No .bases-view element found",{category:"provider",operation:"inject-new-task-button"});return}if(t==="missing-parent"){this.logger.debug("No parent element found for Bases view",{category:"provider",operation:"inject-new-task-button"});return}if(t==="missing-toolbar"){this.logger.debug("No .bases-toolbar element found",{category:"provider",operation:"inject-new-task-button"});return}this.logger.debug("Injected New Task button into toolbar",{category:"provider",operation:"inject-new-task-button"})}setupTaskUpdateListener(){this.taskUpdateListener||(this.taskUpdateListener=sUe({emitter:this.plugin.emitter,isConnected:()=>{var t;return!!((t=this.rootElement)!=null&&t.isConnected)},relevantPathsCache:this.relevantPathsCache,handleTaskUpdate:(t,n)=>this.handleTaskUpdate(t,n),handleTaskDeleted:t=>this.handleTaskDeletedEvent(t),debouncedRefresh:()=>this.debouncedRefresh(),onError:t=>{this.logger.error("Error in task update handler",{category:"internal",operation:"task-update-handler",error:t})}}),this.register(()=>{this.taskUpdateListener&&(oUe(this.plugin.emitter,this.taskUpdateListener),this.taskUpdateListener=null)}))}handleTaskDeletedEvent(t){var a,i;let n=C2e(t,{projectsField:this.plugin.fieldMapper.toUserField("projects"),renderedTaskPaths:E2e(this.rootElement)});n.deletedPath&&this.relevantPathsCache.delete(n.deletedPath),(a=this.plugin.projectSubtasksService)==null||a.invalidateIndex(),(i=this.rootElement)!=null&&i.isConnected&&n.shouldRefresh&&this.debouncedRefresh()}debouncedRefresh(){this.updateDebounceTimer=X2e({currentTimer:this.updateDebounceTimer,scheduler:this.getTimeoutScheduler(),render:async()=>{let t=this.getEphemeralState();try{await this.render()}finally{this.setEphemeralState(t)}},onTimerCleared:()=>{this.updateDebounceTimer=null},delayMs:300})}async createFileForView(t,n){let{TaskCreationModal:a}=await Promise.resolve().then(()=>(FN(),WSe)),i=this.app||this.plugin.app,s=f2e({config:this.config,fieldMapper:this.plugin.fieldMapper,taskTag:this.plugin.settings.taskTag,userFields:this.plugin.settings.userFields||[],currentFileLink:()=>h2e(i),frontmatterProcessor:n});new a(i,this.plugin,{prePopulatedValues:s,onTaskCreated:l=>{this.refresh()}}).open()}getVisibleProperties(){let t=this.plugin.settings.defaultVisibleProperties||[...aE,"tags"];return I2e({basesPropertyIds:this.config.getOrder(),propertyMapper:this.propertyMapper,fallbackInternalProperties:t,toUserProperties:n=>$i([...n],this.plugin)})}getVisiblePropertyLabels(){return N2e({basesPropertyIds:this.config.getOrder(),propertyMapper:this.propertyMapper,getDisplayName:t=>{var n,a;return(a=(n=this.config).getDisplayName)==null?void 0:a.call(n,t)}})}buildTaskCardOptions(t={}){return{propertyLabels:this.getVisiblePropertyLabels(),...t}}filterTopLevelSubtasks(t){return cUe(t,(n,a)=>this.plugin.app.metadataCache.getFirstLinkpathDest(n,a))}setupSearch(t){if(this.searchBox&&!this.enableSearch){this.teardownSearch();return}if(this.searchBox){this.currentSearchTerm&&this.searchBox.getValue()!==this.currentSearchTerm&&this.searchBox.setValue(this.currentSearchTerm);return}if(!this.enableSearch)return;let n=[];try{this.config&&(n=this.getVisibleProperties())}catch(i){this.logger.debug("Could not get visible properties during search setup",{category:"provider",operation:"setup-search",error:i})}let a=z2e({container:t,visibleProperties:n,currentSearchTerm:this.currentSearchTerm,onSearch:i=>this.handleSearch(i)});this.searchFilter=a.searchFilter,this.searchBox=a.searchBox,this.searchContainerEl=a.searchContainer,this.register(()=>this.teardownSearch())}teardownSearch(){var t;this.searchBox&&(this.searchBox.destroy(),this.searchBox=null),(t=this.searchContainerEl)==null||t.remove(),this.searchContainerEl=null,this.searchFilter=null,this.currentSearchTerm=""}handleSearch(t){let n=performance.now();this.currentSearchTerm=t,this.render();let a=performance.now()-n;a>200&&this.logger.warn("Slow search",{category:"internal",operation:"search",details:{elapsedMs:a,term:t}})}applySearchFilter(t){if(!this.searchFilter||!this.currentSearchTerm)return t;let n=performance.now(),a=this.searchFilter.filterTasks(t,this.currentSearchTerm),i=performance.now()-n;return i>100&&this.logger.warn("Slow filter operation",{category:"internal",operation:"filter",details:{elapsedMs:i,taskCount:t.length}}),a}async copyCurrentViewTasks(t){try{let n=this.app||this.plugin.app,a=await nUe({dataItems:this.dataAdapter.extractDataItems(),format:t,identifyTaskNotes:i=>wp(i,this.plugin),filterTasks:i=>this.applySearchFilter(i),resolveLinkText:i=>aUe(n,i.path),writeText:i=>navigator.clipboard.writeText(i)});if(a.status==="empty"){new Nd.Notice("No tasks to copy");return}new Nd.Notice(`Copied ${a.count} tasks`)}catch(n){this.logger.error("Failed to copy current view tasks",{category:"provider",operation:"copy-current-view-tasks",error:n}),new Nd.Notice("Failed to copy tasks")}}getBasesExportTable(){var t,n;return v2e((n=(t=this.data)==null?void 0:t.data)!=null?n:[],this.dataAdapter)}getBasesExportFileName(){var n;let t=typeof((n=this.config)==null?void 0:n.get)=="function"?this.config.get("name"):"";return T2e(t,this.type)}async copyBasesTableToClipboard(){try{let t=this.getBasesExportTable(),n=k2e(t);await navigator.clipboard.writeText(n),new Nd.Notice(`Copied ${t.rows.length} rows`)}catch(t){this.logger.error("Failed to copy Bases table",{category:"provider",operation:"copy-bases-table",error:t}),new Nd.Notice("Failed to copy table")}}async exportBasesTableAsCsv(){var t;try{let n=this.getBasesExportTable(),a=b2e(n),i=new Blob([a],{type:"text/csv;charset=utf-8"}),s=(t=this.containerEl.ownerDocument.defaultView)!=null?t:window,o=s.URL.createObjectURL(i),l=Ne(this.containerEl.ownerDocument,"a");l.href=o,l.download=this.getBasesExportFileName(),l.click(),s.URL.revokeObjectURL(o),new Nd.Notice(`Exported ${n.rows.length} rows`)}catch(n){this.logger.error("Failed to export Bases table",{category:"provider",operation:"export-bases-table",error:n}),new Nd.Notice("Failed to export table")}}isSearchWithNoResults(t,n){return j2e(this.currentSearchTerm,t.length,n)}renderSearchNoResults(t){$2e(t,this.currentSearchTerm)}setupSelectionHandling(){if(!this.rootElement)return;let t=this.plugin.taskSelectionService;if(!t)return;let n=s=>{G2e({event:s,selectionService:t,getVisibleTaskPaths:()=>this.getVisibleTaskPaths(),updateSelectionModeUi:o=>this.updateSelectionModeUI(o),updateSelectionVisuals:()=>this.updateSelectionVisuals()})};this.rootElement.addEventListener("keydown",n);let a=t.onSelectionChange(s=>{this.updateSelectionVisuals(),this.updateSelectionIndicator(s.length)}),i=t.onSelectionModeChange(s=>{this.updateSelectionModeUI(s)});this.register(()=>{var s;(s=this.rootElement)==null||s.removeEventListener("keydown",n),a(),i()})}updateSelectionModeUI(t){this.rootElement&&V2e(this.rootElement,t)}updateSelectionVisuals(){if(!this.rootElement)return;let t=this.plugin.taskSelectionService;t&&q2e(this.rootElement,t)}clearSelectionVisuals(){this.rootElement&&XL(this.rootElement)}updateSelectionIndicator(t){this.rootElement&&(this.selectionIndicatorEl=W2e({rootElement:this.rootElement,indicatorEl:this.selectionIndicatorEl,count:t,onClearSelection:()=>{var n,a;(n=this.plugin.taskSelectionService)==null||n.clearSelection(),(a=this.plugin.taskSelectionService)==null||a.exitSelectionMode()}}))}handleSelectionClick(t,n){var s;let a=this.plugin.taskSelectionService,i=Y2e({event:t,taskPath:n,selectionService:a,getVisibleTaskPaths:()=>this.getVisibleTaskPaths(),updateSelectionVisuals:()=>this.updateSelectionVisuals()});return i&&((s=this.rootElement)==null||s.focus({preventScroll:!0})),i}showBatchContextMenu(t){let n=this.plugin.taskSelectionService;if(!n)return;let a=n.getSelectedPaths();if(a.length===0)return;new xk({plugin:this.plugin,selectedPaths:a,onUpdate:()=>{this.render()}}).show(t)}getVisibleTaskPaths(){return K2e(this.rootElement)}}});function pUe(r,e,t){var c,d;let n=(c=t.sourcePath)!=null?c:"",a=Et(r),i=t.metadataCache.getFirstLinkpathDest(a,n)||t.metadataCache.getFirstLinkpathDest(a,"");if(!(i instanceof JP.TFile))return e;let s=t.metadataCache.getCache(i.path),o=(d=s==null?void 0:s.frontmatter)==null?void 0:d.title,l=TNt(e,i,a);if(typeof o=="string"&&o.trim().length>0)return l?o:e;if(l){let u=(e==null?void 0:e.trim())||"";return u&&!u.includes("/")?u:i.basename}return e}function TNt(r,e,t){let n=(r==null?void 0:r.trim())||"",a=e.path.replace(/\.md$/i,""),i=t.replace(/\.md$/i,"");return new Set(["",e.name,e.basename,e.path,a,t,i]).has(n)}function mUe(r){let e=r.match(/^\[\[([^\]]+)\]\]$/);if(!e)return null;let t=e[1];if(t.includes("|")){let a=t.split("|");return{filePath:a[0].trim(),displayText:a[1].trim()}}let n=(0,JP.parseLinktext)(t);return{filePath:n.path,displayText:n.path}}function fUe(r){let e=r.match(/^\[([^\]]*)\]\(([^)]+)\)$/);return e?{displayText:e[1].trim(),filePath:Et(r)}:null}function wNt(r){return mUe(r)||fUe(r)}function SNt(r,e){let t=r.slice(e),n=t.match(/^\[\[([^\]]+)\]\]/);if(n){let i=mUe(n[0]);return i?{segment:i,endIndex:e+n[0].length}:null}let a=t.match(/^\[([^\]]*)\]\(([^)]+)\)/);if(a){let i=fUe(a[0]);return i?{segment:i,endIndex:e+a[0].length}:null}return null}function xNt(r){var a,i,s,o,l;let e=[],t=0,n=0;for(;t<r.length;){let c=(i=(a=r.slice(t).match(/^\s*/))==null?void 0:a[0])!=null?i:"";t+=c.length;let d=SNt(r,t);if(!d)return null;e.push(d.segment),n+=1,t=d.endIndex;let u=(o=(s=r.slice(t).match(/^\s*/))==null?void 0:s[0])!=null?o:"";if(t+=u.length,t>=r.length)break;let p=(l=r.slice(t).match(/^,\s*/))==null?void 0:l[0];if(!p)return null;e.push(p),t+=p.length}return n>1?e:null}function uUe(r,e,t){let n=pUe(e.filePath,e.displayText,t);Ul(r,e.filePath,n,t,{cssClass:"internal-link task-group-link",hoverSource:"tasknotes-bases-group",showErrorNotices:!1})}function e1(r,e,t){let n=wNt(e);if(n){uUe(r,n,t);return}let a=xNt(e);if(a){for(let o of a)typeof o=="string"?r.appendChild(activeDocument.createTextNode(o)):uUe(r,o,t);return}let i=e.endsWith(".md")?e.replace(/\.md$/,""):e,s=t.metadataCache.getFirstLinkpathDest(i,"");if(s instanceof JP.TFile){let o=s.basename,l=pUe(i,o,t);Ul(r,i,l,t,{cssClass:"internal-link task-group-link",hoverSource:"tasknotes-bases-group",showErrorNotices:!1});return}r.textContent=e}var JP,BZ=y(()=>{JP=require("obsidian");vm();qn()});var CNt,Df,UZ=y(()=>{K();CNt=N({tag:"Utils/VirtualScroller"}),Df=class{constructor(e){this.items=[];this.state={startIndex:0,endIndex:0,totalItems:0,offsetY:0};this.renderedElements=new Map;this.scrollRAF=null;this.itemHeights=new Map;this.positionCache=[];this.totalHeight=0;this.resizeObserver=null;this.measurementRAF=null;this.pendingMeasurements=new Set;this.invalidatedKeys=new Set;this.handleScroll=()=>{this.scrollRAF===null&&(this.scrollRAF=window.requestAnimationFrame(()=>{this.updateVisibleRange(),this.scrollRAF=null}))};var t,n,a;this.container=e.container,this.items=e.items,this.estimatedHeight=(t=e.itemHeight)!=null?t:0,this.overscan=(n=e.overscan)!=null?n:5,this.renderItem=e.renderItem,this.getItemKey=(a=e.getItemKey)!=null?a:((i,s)=>String(s)),this.setupDOM(),this.attachScrollListener(),this.setupResizeObserver(),!e.itemHeight&&this.items.length>0&&this.calculateEstimatedHeight(),this.rebuildPositionCache(),this.updateVisibleRange()}setupDOM(){this.container.empty(),this.container.classList.remove("tn-static-margin-top-12px-91e0f558"),this.container.classList.add("tn-static-position-relative-d461c96d"),this.spacer=this.container.createDiv({cls:"virtual-scroller__spacer"}),this.spacer.style.cssText=`
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
pointer-events: none;
|
||
`,this.updateSpacerHeight(),this.contentContainer=this.container.createDiv({cls:"virtual-scroller__content"}),this.contentContainer.style.cssText=`
|
||
position: relative;
|
||
`,this.scrollContainer=this.findScrollContainer(this.container)}calculateEstimatedHeight(){let e=Math.min(5,this.items.length),t=[],n=this.contentContainer.createDiv({cls:"virtual-scroller__sample"});n.style.cssText=`
|
||
position: absolute;
|
||
visibility: hidden;
|
||
pointer-events: none;
|
||
`;for(let a=0;a<e;a++){let i=this.renderItem(this.items[a],a);n.appendChild(i);let s=i.getBoundingClientRect().height;s>0&&t.push(s)}if(n.remove(),t.length>0){let a=t.reduce((i,s)=>i+s,0);this.estimatedHeight=Math.ceil(a/t.length)}else this.estimatedHeight=60}findScrollContainer(e){let t=e;for(;t;){let a=window.getComputedStyle(t).overflowY;if(a==="scroll"||a==="auto")return t;t=t.parentElement}return e}getContainerBottomPadding(){var a;let e=this.container.ownerDocument.defaultView,t=(a=e==null?void 0:e.getComputedStyle(this.container).paddingBottom)!=null?a:"",n=Number.parseFloat(t);return Number.isFinite(n)?n:0}updateSpacerHeight(){this.spacer.style.height=`${this.totalHeight+this.getContainerBottomPadding()}px`}binarySearchPosition(e){if(this.positionCache.length===0)return 0;let t=0,n=this.positionCache.length-1;for(;t<n;){let a=Math.floor((t+n)/2);this.positionCache[a]<e?t=a+1:n=a}return Math.max(0,t-1)}getItemHeight(e){var t;return(t=this.itemHeights.get(e))!=null?t:this.estimatedHeight}getItemPosition(e){return e<0||e>=this.positionCache.length?0:this.positionCache[e]}rebuildPositionCache(){this.positionCache=[];let e=0;for(let t=0;t<this.items.length;t++)this.positionCache[t]=e,e+=this.getItemHeight(t);this.totalHeight=e,this.updateSpacerHeight()}getItemEntries(){return this.items.map((e,t)=>({item:e,key:this.getItemKey(e,t),height:this.itemHeights.get(t)}))}hasUniqueStableKeys(e){let t=new Set;for(let n of e){if(t.has(n.key))return!1;t.add(n.key)}return!0}applyItemEntries(e){this.items=e.map(n=>n.item),this.state.totalItems=this.items.length;let t=new Map;e.forEach((n,a)=>{n.height!==void 0&&t.set(a,n.height)}),this.itemHeights=t,this.pendingMeasurements.clear(),this.rebuildPositionCache()}forceVisibleRangeUpdate(){this.state.startIndex=-1,this.state.endIndex=-1,this.updateVisibleRange()}getUniqueCurrentEntries(){let e=this.getItemEntries();return this.hasUniqueStableKeys(e)?e:null}buildEntriesAfterRemoval(e){let t=new Set(e);if(e.length===0||t.size!==e.length)return null;let n=this.getUniqueCurrentEntries();if(!n)return null;let a=new Set(n.map(o=>o.key));if(!e.every(o=>a.has(o)))return null;let i=n.filter(o=>!t.has(o.key));return i.every((o,l)=>this.getItemKey(o.item,l)===o.key)?i:null}buildEntriesAfterInsertion(e){var l;if(e.items.length===0)return null;let t=this.getUniqueCurrentEntries();if(!t)return null;let n=(l=e.position)!=null?l:"end";if(n!=="end"&&!e.targetKey)return null;let a=t.length;if(n!=="end"){let c=t.findIndex(d=>d.key===e.targetKey);if(c===-1)return null;a=n==="before"?c:c+1}let i=e.items.map((c,d)=>({item:c,key:this.getItemKey(c,a+d)})),s=[...t.slice(0,a),...i,...t.slice(a)];return this.hasUniqueStableKeys(s)&&s.every((c,d)=>this.getItemKey(c.item,d)===c.key)?s:null}setupResizeObserver(){this.resizeObserver=new ResizeObserver(e=>{for(let t of e){let n=t.target,a=parseInt(n.dataset.virtualIndex||"-1",10);a>=0&&a<this.items.length&&this.pendingMeasurements.add(a)}this.measurementRAF===null&&(this.measurementRAF=window.requestAnimationFrame(()=>{this.processPendingMeasurements(),this.measurementRAF=null}))})}processPendingMeasurements(){if(this.pendingMeasurements.size===0)return;let e=!1;for(let t of this.pendingMeasurements){let n=this.contentContainer.querySelector(`[data-virtual-index="${t}"]`);if(n){let a=n.getBoundingClientRect().height;this.itemHeights.get(t)!==a&&a>0&&(this.itemHeights.set(t,a),e=!0)}}this.pendingMeasurements.clear(),e&&this.rebuildPositionCache()}measureRenderedItems(){let e=this.contentContainer.querySelectorAll("[data-virtual-index]"),t=!1;for(let n of e){let a=parseInt(n.dataset.virtualIndex||"-1",10);if(a>=0&&a<this.items.length){let i=n.getBoundingClientRect().height;this.itemHeights.get(a)!==i&&i>0&&(this.itemHeights.set(a,i),t=!0)}}t&&this.rebuildPositionCache()}attachScrollListener(){this.scrollContainer.addEventListener("scroll",this.handleScroll)}updateVisibleRange(){var o;let e=this.scrollContainer.scrollTop,t=this.scrollContainer.clientHeight;t===0&&(t=((o=this.scrollContainer.parentElement)==null?void 0:o.clientHeight)||0),t===0&&(t=window.innerHeight,CNt.warn("[VirtualScroller] Using window height as fallback:",{category:"configuration",operation:"using-window-height-as-fallback",details:{value:t}}));let n=Math.max(0,this.binarySearchPosition(e)-this.overscan),a=n,i=e+t;for(;a<this.items.length-1&&!(this.getItemPosition(a)+this.getItemHeight(a)>i);)a++;a=Math.min(this.items.length-1,a+this.overscan);let s=this.getItemPosition(n);(n!==this.state.startIndex||a!==this.state.endIndex||this.items.length!==this.state.totalItems)&&(this.state={startIndex:n,endIndex:a,totalItems:this.items.length,offsetY:s},this.renderVisibleItems())}renderVisibleItems(){let{startIndex:e,endIndex:t,offsetY:n}=this.state,a=new Set;this.contentContainer.style.transform=`translateY(${n}px)`;let i=new Map;for(let[o,l]of this.renderedElements)l.parentElement===this.contentContainer&&i.set(o,l);let s=null;for(let o=e;o<=t;o++){let l=this.items[o],c=this.getItemKey(l,o);a.add(c);let d=this.renderedElements.get(c);d&&this.invalidatedKeys.has(c)&&(this.resizeObserver&&this.resizeObserver.unobserve(d),d.remove(),this.renderedElements.delete(c),d=void 0),d?d.dataset.virtualIndex=String(o):(d=this.renderItem(l,o),d.dataset.virtualIndex=String(o),this.renderedElements.set(c,d),this.resizeObserver&&this.resizeObserver.observe(d)),this.invalidatedKeys.delete(c),s?d.previousElementSibling!==s&&s.after(d):this.contentContainer.firstChild!==d&&this.contentContainer.prepend(d),s=d}for(let[o,l]of this.renderedElements)a.has(o)||(this.resizeObserver&&this.resizeObserver.unobserve(l),l.remove(),this.renderedElements.delete(o),this.invalidatedKeys.delete(o));window.requestAnimationFrame(()=>{this.measureRenderedItems()})}updateItems(e){let t=this.scrollContainer.scrollTop;this.items=e,this.state.totalItems=e.length;let n=this.itemHeights.size;for(let a=e.length;a<n;a++)this.itemHeights.delete(a);this.rebuildPositionCache();for(let a of this.renderedElements.values())this.resizeObserver&&this.resizeObserver.unobserve(a);this.renderedElements.clear(),this.contentContainer.empty(),this.state.startIndex=-1,this.state.endIndex=-1,this.scrollContainer.scrollTop=t,this.updateVisibleRange()}getItems(){return[...this.items]}reorderItems(e){let t=[...e.movedKeys],n=new Set(t);if(t.length===0||n.size!==t.length||n.has(e.targetKey))return!1;let a=this.getItemEntries();if(!this.hasUniqueStableKeys(a))return!1;let i=new Map(a.map(m=>[m.key,m]));if(!i.has(e.targetKey)||!t.every(m=>i.has(m)))return!1;let s=a.filter(m=>!n.has(m.key)),o=s.findIndex(m=>m.key===e.targetKey);if(o===-1)return!1;let l=[];for(let m of t){let f=i.get(m);if(!f)return!1;l.push(f)}let c=e.position==="before"?o:o+1,d=[...s.slice(0,c),...l,...s.slice(c)];if(!d.every((m,f)=>this.getItemKey(m.item,f)===m.key))return!1;let p=this.scrollContainer.scrollTop;return this.applyItemEntries(d),this.scrollContainer.scrollTop=p,this.forceVisibleRangeUpdate(),!0}canRemoveItems(e){return this.buildEntriesAfterRemoval(e)!==null}removeItems(e){let t=this.buildEntriesAfterRemoval(e);if(!t)return!1;let n=this.scrollContainer.scrollTop;for(let a of e){let i=this.renderedElements.get(a);i&&(this.resizeObserver&&this.resizeObserver.unobserve(i),i.remove(),this.renderedElements.delete(a)),this.invalidatedKeys.delete(a)}return this.applyItemEntries(t),this.scrollContainer.scrollTop=n,this.forceVisibleRangeUpdate(),!0}canInsertItems(e){return this.buildEntriesAfterInsertion(e)!==null}insertItems(e){let t=this.buildEntriesAfterInsertion(e);if(!t)return!1;let n=this.scrollContainer.scrollTop;return this.applyItemEntries(t),this.scrollContainer.scrollTop=n,this.forceVisibleRangeUpdate(),!0}invalidateItems(e,t={}){if(e.length===0)return;let n=new Set(e);if(t.invalidateHeights){for(let a of n){let i=this.renderedElements.get(a);if(!i)continue;let s=parseInt(i.dataset.virtualIndex||"-1",10);s>=0&&this.itemHeights.delete(s)}this.rebuildPositionCache()}for(let a of n)this.invalidatedKeys.add(a);this.forceVisibleRangeUpdate()}scrollToIndex(e,t="smooth"){let n=this.getItemPosition(e);this.scrollContainer.scrollTo({top:n,behavior:t})}recalculate(){this.state.startIndex=-1,this.state.endIndex=-1,this.updateSpacerHeight(),this.updateVisibleRange()}invalidateItem(e){this.invalidateItems([e],{invalidateHeights:!0})}invalidateHeights(e){for(let t of e)this.itemHeights.delete(t);this.rebuildPositionCache()}getState(){return{...this.state}}destroy(){this.scrollRAF!==null&&cancelAnimationFrame(this.scrollRAF),this.measurementRAF!==null&&cancelAnimationFrame(this.measurementRAF),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.scrollContainer.removeEventListener("scroll",this.handleScroll),this.renderedElements.clear(),this.contentContainer.empty(),this.itemHeights.clear(),this.positionCache=[],this.pendingMeasurements.clear(),this.invalidatedKeys.clear()}}});var hUe=x(t1=>{"use strict";Object.defineProperty(t1,"__esModule",{value:!0});t1.lexoHelper=void 0;t1.lexoHelper={arrayCopy:ENt};function ENt(r,e,t,n,a){let i=n,s=e+a;for(let o=e;o<s;o++)t[i]=r[o],++i}});var r1=x(VZ=>{"use strict";Object.defineProperty(VZ,"__esModule",{value:!0});var HZ=class{constructor(e=""){this.str=e}get length(){return this.str.length}set length(e){this.str=this.str.substring(0,e)}append(e){return this.str=this.str+e,this}remove(e,t){return this.str=this.str.substr(0,e)+this.str.substr(e+t),this}insert(e,t){return this.str=this.str.substr(0,e)+t+this.str.substr(e),this}toString(){return this.str}};VZ.default=HZ});var i1=x(a1=>{"use strict";Object.defineProperty(a1,"__esModule",{value:!0});a1.LexoInteger=void 0;var n1=hUe(),DNt=r1(),Pf=class r{constructor(e,t,n){this.sys=e,this.sign=t,this.mag=n}static parse(e,t){let n=e,a=1;e.indexOf(t.getPositiveChar())===0?n=e.substring(1):e.indexOf(t.getNegativeChar())===0&&(n=e.substring(1),a=-1);let i=new Array(n.length),s=i.length-1;for(let o=0;s>=0;++o)i[o]=t.toDigit(n.charAt(s)),--s;return r.make(t,a,i)}static zero(e){return new r(e,0,r.ZERO_MAG)}static one(e){return r.make(e,1,r.ONE_MAG)}static make(e,t,n){let a;for(a=n.length;a>0&&n[a-1]===0;--a);if(a===0)return r.zero(e);if(a===n.length)return new r(e,t,n);let i=new Array(a).fill(0);return n1.lexoHelper.arrayCopy(n,0,i,0,a),new r(e,t,i)}static add(e,t,n){let a=Math.max(t.length,n.length),i=new Array(a).fill(0),s=0;for(let o=0;o<a;++o){let l=o<t.length?t[o]:0,c=o<n.length?n[o]:0,d=l+c+s;for(s=0;d>=e.getBase();d-=e.getBase())++s;i[o]=d}return r.extendWithCarry(i,s)}static extendWithCarry(e,t){if(t>0){let n=new Array(e.length+1).fill(0);return n1.lexoHelper.arrayCopy(e,0,n,0,e.length),n[n.length-1]=t,n}return e}static subtract(e,t,n){let a=r.complement(e,n,t.length),i=r.add(e,t,a);return i[i.length-1]=0,r.add(e,i,r.ONE_MAG)}static multiply(e,t,n){let a=new Array(t.length+n.length).fill(0);for(let i=0;i<t.length;++i)for(let s=0;s<n.length;++s){let o=i+s;for(a[o]+=t[i]*n[s];a[o]>=e.getBase();a[o]-=e.getBase())++a[o+1]}return a}static complement(e,t,n){if(n<=0)throw new Error("Expected at least 1 digit");let a=new Array(n).fill(e.getBase()-1);for(let i=0;i<t.length;++i)a[i]=e.getBase()-1-t[i];return a}static compare(e,t){if(e.length<t.length)return-1;if(e.length>t.length)return 1;for(let n=e.length-1;n>=0;--n){if(e[n]<t[n])return-1;if(e[n]>t[n])return 1}return 0}add(e){if(this.checkSystem(e),this.isZero())return e;if(e.isZero())return this;if(this.sign!==e.sign){let n;return this.sign===-1?(n=this.negate(),n.subtract(e).negate()):(n=e.negate(),this.subtract(n))}let t=r.add(this.sys,this.mag,e.mag);return r.make(this.sys,this.sign,t)}subtract(e){if(this.checkSystem(e),this.isZero())return e.negate();if(e.isZero())return this;if(this.sign!==e.sign){let n;return this.sign===-1?(n=this.negate(),n.add(e).negate()):(n=e.negate(),this.add(n))}let t=r.compare(this.mag,e.mag);return t===0?r.zero(this.sys):t<0?r.make(this.sys,this.sign===-1?1:-1,r.subtract(this.sys,e.mag,this.mag)):r.make(this.sys,this.sign===-1?-1:1,r.subtract(this.sys,this.mag,e.mag))}multiply(e){if(this.checkSystem(e),this.isZero())return this;if(e.isZero())return e;if(this.isOneish())return this.sign===e.sign?r.make(this.sys,1,e.mag):r.make(this.sys,-1,e.mag);if(e.isOneish())return this.sign===e.sign?r.make(this.sys,1,this.mag):r.make(this.sys,-1,this.mag);let t=r.multiply(this.sys,this.mag,e.mag);return this.sign===e.sign?r.make(this.sys,1,t):r.make(this.sys,-1,t)}negate(){return this.isZero()?this:r.make(this.sys,this.sign===1?-1:1,this.mag)}shiftLeft(e=1){if(e===0)return this;if(e<0)return this.shiftRight(Math.abs(e));let t=new Array(this.mag.length+e).fill(0);return n1.lexoHelper.arrayCopy(this.mag,0,t,e,this.mag.length),r.make(this.sys,this.sign,t)}shiftRight(e=1){if(this.mag.length-e<=0)return r.zero(this.sys);let t=new Array(this.mag.length-e).fill(0);return n1.lexoHelper.arrayCopy(this.mag,e,t,0,t.length),r.make(this.sys,this.sign,t)}complement(){return this.complementDigits(this.mag.length)}complementDigits(e){return r.make(this.sys,this.sign,r.complement(this.sys,this.mag,e))}isZero(){return this.sign===0&&this.mag.length===1&&this.mag[0]===0}isOne(){return this.sign===1&&this.mag.length===1&&this.mag[0]===1}getMag(e){return this.mag[e]}compareTo(e){if(this===e)return 0;if(!e)return 1;if(this.sign===-1){if(e.sign===-1){let t=r.compare(this.mag,e.mag);return t===-1?1:t===1?-1:0}return-1}return this.sign===1?e.sign===1?r.compare(this.mag,e.mag):1:e.sign===-1?1:e.sign===1?-1:0}getSystem(){return this.sys}format(){if(this.isZero())return""+this.sys.toChar(0);let e=new DNt.default,t=this.mag,n=t.length;for(let a=0;a<n;++a){let i=t[a];e.insert(0,this.sys.toChar(i))}return this.sign===-1&&e.insert(0,this.sys.getNegativeChar()),e.toString()}equals(e){return this===e?!0:e?this.sys.getBase()===e.sys.getBase()&&this.compareTo(e)===0:!1}toString(){return this.format()}isOneish(){return this.mag.length===1&&this.mag[0]===1}checkSystem(e){if(this.sys.getBase()!==e.sys.getBase())throw new Error("Expected numbers of same numeral sys")}};a1.LexoInteger=Pf;Pf.ZERO_MAG=[0];Pf.ONE_MAG=[1];Pf.NEGATIVE_SIGN=-1;Pf.ZERO_SIGN=0;Pf.POSITIVE_SIGN=1});var WZ=x(s1=>{"use strict";Object.defineProperty(s1,"__esModule",{value:!0});s1.LexoDecimal=void 0;var XP=i1(),PNt=r1(),qZ=class r{constructor(e,t){this.mag=e,this.sig=t}static half(e){let t=e.getBase()/2|0;return r.make(XP.LexoInteger.make(e,1,[t]),1)}static parse(e,t){let n=e.indexOf(t.getRadixPointChar());if(e.lastIndexOf(t.getRadixPointChar())!==n)throw new Error("More than one "+t.getRadixPointChar());if(n<0)return r.make(XP.LexoInteger.parse(e,t),0);let a=e.substring(0,n)+e.substring(n+1);return r.make(XP.LexoInteger.parse(a,t),e.length-1-n)}static from(e){return r.make(e,0)}static make(e,t){if(e.isZero())return new r(e,0);let n=0;for(let s=0;s<t&&e.getMag(s)===0;++s)++n;let a=e.shiftRight(n),i=t-n;return new r(a,i)}getSystem(){return this.mag.getSystem()}add(e){let t=this.mag,n=this.sig,a=e.mag,i;for(i=e.sig;n<i;++n)t=t.shiftLeft();for(;n>i;)a=a.shiftLeft(),++i;return r.make(t.add(a),n)}subtract(e){let t=this.mag,n=this.sig,a=e.mag,i;for(i=e.sig;n<i;++n)t=t.shiftLeft();for(;n>i;)a=a.shiftLeft(),++i;return r.make(t.subtract(a),n)}multiply(e){return r.make(this.mag.multiply(e.mag),this.sig+e.sig)}floor(){return this.mag.shiftRight(this.sig)}ceil(){if(this.isExact())return this.mag;let e=this.floor();return e.add(XP.LexoInteger.one(e.getSystem()))}isExact(){if(this.sig===0)return!0;for(let e=0;e<this.sig;++e)if(this.mag.getMag(e)!==0)return!1;return!0}getScale(){return this.sig}setScale(e,t=!1){if(e>=this.sig)return this;e<0&&(e=0);let n=this.sig-e,a=this.mag.shiftRight(n);return t&&(a=a.add(XP.LexoInteger.one(a.getSystem()))),r.make(a,e)}compareTo(e){if(this===e)return 0;if(!e)return 1;let t=this.mag,n=e.mag;return this.sig>e.sig?n=n.shiftLeft(this.sig-e.sig):this.sig<e.sig&&(t=t.shiftLeft(e.sig-this.sig)),t.compareTo(n)}format(){let e=this.mag.format();if(this.sig===0)return e;let t=new PNt.default(e),n=t[0],a=n===this.mag.getSystem().getPositiveChar()||n===this.mag.getSystem().getNegativeChar();for(a&&t.remove(0,1);t.length<this.sig+1;)t.insert(0,this.mag.getSystem().toChar(0));return t.insert(t.length-this.sig,this.mag.getSystem().getRadixPointChar()),t.length-this.sig===0&&t.insert(0,this.mag.getSystem().toChar(0)),a&&t.insert(0,n),t.toString()}equals(e){return this===e?!0:e?this.mag.equals(e.mag)&&this.sig===e.sig:!1}toString(){return this.format()}};s1.LexoDecimal=qZ});var KZ=x(GZ=>{"use strict";Object.defineProperty(GZ,"__esModule",{value:!0});var gUe=i1(),yUe=ZZ(),YZ=class r{constructor(e){this.value=gUe.LexoInteger.parse(e,yUe.LexoRank.NUMERAL_SYSTEM)}static get BUCKET_0(){return this._BUCKET_0||(this._BUCKET_0=new r("0")),this._BUCKET_0}static get BUCKET_1(){return this._BUCKET_1||(this._BUCKET_1=new r("1")),this._BUCKET_1}static get BUCKET_2(){return this._BUCKET_2||(this._BUCKET_2=new r("2")),this._BUCKET_2}static get VALUES(){return this._VALUES||(this._VALUES=[r.BUCKET_0,r.BUCKET_1,r.BUCKET_2]),this._VALUES}static max(){return r.VALUES[r.VALUES.length-1]}static from(e){let t=gUe.LexoInteger.parse(e,yUe.LexoRank.NUMERAL_SYSTEM),n=r.VALUES,a=n.length;for(let i=0;i<a;++i){let s=n[i];if(s.value.equals(t))return s}throw new Error("Unknown bucket: "+e)}static resolve(e){let t=r.VALUES,n=t.length;for(let a=0;a<n;++a){let i=t[a];if(i.equals(r.from(e.toString())))return i}throw new Error("No bucket found with id "+e)}format(){return this.value.format()}next(){return this.equals(r.BUCKET_0)?r.BUCKET_1:this.equals(r.BUCKET_1)?r.BUCKET_2:this.equals(r.BUCKET_2)?r.BUCKET_0:r.BUCKET_2}prev(){return this.equals(r.BUCKET_0)?r.BUCKET_2:this.equals(r.BUCKET_1)?r.BUCKET_0:this.equals(r.BUCKET_2)?r.BUCKET_1:r.BUCKET_0}equals(e){return this===e?!0:e?this.value.equals(e.value):!1}};GZ.default=YZ});var kUe=x(vUe=>{"use strict";Object.defineProperty(vUe,"__esModule",{value:!0})});var bUe=x(o1=>{"use strict";Object.defineProperty(o1,"__esModule",{value:!0});o1.LexoNumeralSystem10=void 0;var QZ=class{getBase(){return 10}getPositiveChar(){return"+"}getNegativeChar(){return"-"}getRadixPointChar(){return"."}toDigit(e){if(e>="0"&&e<="9")return e.charCodeAt(0)-48;throw new Error("Not valid digit: "+e)}toChar(e){return String.fromCharCode(e+48)}};o1.LexoNumeralSystem10=QZ});var TUe=x(l1=>{"use strict";Object.defineProperty(l1,"__esModule",{value:!0});l1.LexoNumeralSystem36=void 0;var JZ=class{constructor(){this.DIGITS="0123456789abcdefghijklmnopqrstuvwxyz".split("")}getBase(){return 36}getPositiveChar(){return"+"}getNegativeChar(){return"-"}getRadixPointChar(){return":"}toDigit(e){if(e>="0"&&e<="9")return e.charCodeAt(0)-48;if(e>="a"&&e<="z")return e.charCodeAt(0)-97+10;throw new Error("Not valid digit: "+e)}toChar(e){return this.DIGITS[e]}};l1.LexoNumeralSystem36=JZ});var wUe=x(c1=>{"use strict";Object.defineProperty(c1,"__esModule",{value:!0});c1.LexoNumeralSystem64=void 0;var XZ=class{constructor(){this.DIGITS="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ^_abcdefghijklmnopqrstuvwxyz".split("")}getBase(){return 64}getPositiveChar(){return"+"}getNegativeChar(){return"-"}getRadixPointChar(){return":"}toDigit(e){if(e>="0"&&e<="9")return e.charCodeAt(0)-48;if(e>="A"&&e<="Z")return e.charCodeAt(0)-65+10;if(e==="^")return 36;if(e==="_")return 37;if(e>="a"&&e<="z")return e.charCodeAt(0)-97+38;throw new Error("Not valid digit: "+e)}toChar(e){return this.DIGITS[e]}};c1.LexoNumeralSystem64=XZ});var eQ=x(Fd=>{"use strict";var MNt=Fd&&Fd.__createBinding||(Object.create?(function(r,e,t,n){n===void 0&&(n=t);var a=Object.getOwnPropertyDescriptor(e,t);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,n,a)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]})),d1=Fd&&Fd.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&MNt(e,r,t)};Object.defineProperty(Fd,"__esModule",{value:!0});d1(kUe(),Fd);d1(bUe(),Fd);d1(TUe(),Fd);d1(wUe(),Fd)});var ZZ=x(p1=>{"use strict";Object.defineProperty(p1,"__esModule",{value:!0});p1.LexoRank=void 0;var Od=WZ(),u1=KZ(),ANt=r1(),_Nt=eQ(),tQ=class r{constructor(e,t){this.value=e.format()+"|"+r.formatDecimal(t),this.bucket=e,this.decimal=t}static get NUMERAL_SYSTEM(){return this._NUMERAL_SYSTEM||(this._NUMERAL_SYSTEM=new _Nt.LexoNumeralSystem36),this._NUMERAL_SYSTEM}static get ZERO_DECIMAL(){return this._ZERO_DECIMAL||(this._ZERO_DECIMAL=Od.LexoDecimal.parse("0",r.NUMERAL_SYSTEM)),this._ZERO_DECIMAL}static get ONE_DECIMAL(){return this._ONE_DECIMAL||(this._ONE_DECIMAL=Od.LexoDecimal.parse("1",r.NUMERAL_SYSTEM)),this._ONE_DECIMAL}static get EIGHT_DECIMAL(){return this._EIGHT_DECIMAL||(this._EIGHT_DECIMAL=Od.LexoDecimal.parse("8",r.NUMERAL_SYSTEM)),this._EIGHT_DECIMAL}static get MIN_DECIMAL(){return this._MIN_DECIMAL||(this._MIN_DECIMAL=r.ZERO_DECIMAL),this._MIN_DECIMAL}static get MAX_DECIMAL(){return this._MAX_DECIMAL||(this._MAX_DECIMAL=Od.LexoDecimal.parse("1000000",r.NUMERAL_SYSTEM).subtract(r.ONE_DECIMAL)),this._MAX_DECIMAL}static get MID_DECIMAL(){return this._MID_DECIMAL||(this._MID_DECIMAL=r.between(r.MIN_DECIMAL,r.MAX_DECIMAL)),this._MID_DECIMAL}static get INITIAL_MIN_DECIMAL(){return this._INITIAL_MIN_DECIMAL||(this._INITIAL_MIN_DECIMAL=Od.LexoDecimal.parse("100000",r.NUMERAL_SYSTEM)),this._INITIAL_MIN_DECIMAL}static get INITIAL_MAX_DECIMAL(){return this._INITIAL_MAX_DECIMAL||(this._INITIAL_MAX_DECIMAL=Od.LexoDecimal.parse(r.NUMERAL_SYSTEM.toChar(r.NUMERAL_SYSTEM.getBase()-2)+"00000",r.NUMERAL_SYSTEM)),this._INITIAL_MAX_DECIMAL}static min(){return r.from(u1.default.BUCKET_0,r.MIN_DECIMAL)}static middle(){let e=r.min();return e.between(r.max(e.bucket))}static max(e=u1.default.BUCKET_0){return r.from(e,r.MAX_DECIMAL)}static initial(e){return e===u1.default.BUCKET_0?r.from(e,r.INITIAL_MIN_DECIMAL):r.from(e,r.INITIAL_MAX_DECIMAL)}static between(e,t){if(e.getSystem().getBase()!==t.getSystem().getBase())throw new Error("Expected same system");let n=e,a=t,i;if(e.getScale()<t.getScale()){if(i=t.setScale(e.getScale(),!1),e.compareTo(i)>=0)return r.mid(e,t);a=i}if(e.getScale()>a.getScale()){if(i=e.setScale(a.getScale(),!0),i.compareTo(a)>=0)return r.mid(e,t);n=i}let s;for(let c=n.getScale();c>0;a=s){let d=c-1,u=n.setScale(d,!0);if(s=a.setScale(d,!1),u.compareTo(s)===0)return r.checkMid(e,t,u);if(u.compareTo(s)>0)break;c=d,n=u}let o=r.middleInternal(e,t,n,a),l;for(let c=o.getScale();c>0;c=l){l=c-1;let d=o.setScale(l);if(e.compareTo(d)>=0||d.compareTo(t)>=0)break;o=d}return o}static parse(e){let t=e.split("|"),n=u1.default.from(t[0]),a=Od.LexoDecimal.parse(t[1],r.NUMERAL_SYSTEM);return new r(n,a)}static from(e,t){if(t.getSystem().getBase()!==r.NUMERAL_SYSTEM.getBase())throw new Error("Expected different system");return new r(e,t)}static middleInternal(e,t,n,a){let i=r.mid(n,a);return r.checkMid(e,t,i)}static checkMid(e,t,n){return e.compareTo(n)>=0||n.compareTo(t)>=0?r.mid(e,t):n}static mid(e,t){let a=e.add(t).multiply(Od.LexoDecimal.half(e.getSystem())),i=e.getScale()>t.getScale()?e.getScale():t.getScale();if(a.getScale()>i){let s=a.setScale(i,!1);if(s.compareTo(e)>0)return s;let o=a.setScale(i,!0);if(o.compareTo(t)<0)return o}return a}static formatDecimal(e){let t=e.format(),n=new ANt.default(t),a=t.indexOf(r.NUMERAL_SYSTEM.getRadixPointChar()),i=r.NUMERAL_SYSTEM.toChar(0);for(a<0&&(a=t.length,n.append(r.NUMERAL_SYSTEM.getRadixPointChar()));a<6;)n.insert(0,i),++a;for(;n[n.length-1]===i;)n.length=n.length-1;return n.toString()}genPrev(){if(this.isMax())return new r(this.bucket,r.INITIAL_MAX_DECIMAL);let e=this.decimal.floor(),n=Od.LexoDecimal.from(e).subtract(r.EIGHT_DECIMAL);return n.compareTo(r.MIN_DECIMAL)<=0&&(n=r.between(r.MIN_DECIMAL,this.decimal)),new r(this.bucket,n)}genNext(){if(this.isMin())return new r(this.bucket,r.INITIAL_MIN_DECIMAL);let e=this.decimal.ceil(),n=Od.LexoDecimal.from(e).add(r.EIGHT_DECIMAL);return n.compareTo(r.MAX_DECIMAL)>=0&&(n=r.between(this.decimal,r.MAX_DECIMAL)),new r(this.bucket,n)}between(e){if(!this.bucket.equals(e.bucket))throw new Error("Between works only within the same bucket");let t=this.decimal.compareTo(e.decimal);if(t>0)return new r(this.bucket,r.between(e.decimal,this.decimal));if(t===0)throw new Error("Try to rank between issues with same rank this="+this+" other="+e+" this.decimal="+this.decimal+" other.decimal="+e.decimal);return new r(this.bucket,r.between(this.decimal,e.decimal))}getBucket(){return this.bucket}getDecimal(){return this.decimal}inNextBucket(){return r.from(this.bucket.next(),this.decimal)}inPrevBucket(){return r.from(this.bucket.prev(),this.decimal)}isMin(){return this.decimal.equals(r.MIN_DECIMAL)}isMax(){return this.decimal.equals(r.MAX_DECIMAL)}format(){return this.value}equals(e){return this===e?!0:e?this.value===e.value:!1}toString(){return this.value}compareTo(e){return this===e?0:e?this.value.localeCompare(e.value):1}};p1.LexoRank=tQ});var SUe=x(Ld=>{"use strict";var INt=Ld&&Ld.__createBinding||(Object.create?(function(r,e,t,n){n===void 0&&(n=t);var a=Object.getOwnPropertyDescriptor(e,t);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,n,a)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]})),m1=Ld&&Ld.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&INt(e,r,t)};Object.defineProperty(Ld,"__esModule",{value:!0});m1(ZZ(),Ld);m1(KZ(),Ld);m1(WZ(),Ld);m1(i1(),Ld)});var CUe=x(Mf=>{"use strict";var NNt=Mf&&Mf.__createBinding||(Object.create?(function(r,e,t,n){n===void 0&&(n=t);var a=Object.getOwnPropertyDescriptor(e,t);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,n,a)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]})),xUe=Mf&&Mf.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&NNt(e,r,t)};Object.defineProperty(Mf,"__esModule",{value:!0});xUe(SUe(),Mf);xUe(eQ(),Mf)});function jUe(r){let e=Math.max(0,Math.min(OT,Math.floor(r))),t=Array(rQ);for(let n=rQ-1;n>=0;n--)t[n]=String.fromCharCode(97+e%g1),e=Math.floor(e/g1);return`${zUe}${t.join("")}`}function v1(r){if(!ONt.test(r))return null;let e=0;for(let t of r.slice(zUe.length))e=e*g1+(t.charCodeAt(0)-97);return e}function LNt(r,e,t){let n=Math.max(1,Math.floor(OT/(e+1))),a=t==="asc"?r+1:e-r;return jUe(n*a)}function pl(r,e){let t=FNt.compare(r,e);return t!==0?t:r.localeCompare(e)}function EUe(r,e,t){return t==="asc"?pl(r,e):pl(e,r)}function f1(r,e,t,n){return!(e&&EUe(e,r,n)>=0||t&&EUe(r,t,n)>=0)}function y1(r){return OUe.LexoRank.parse(r)}function DUe(){return new LT(Math.floor(OT/2))}function wi(r){let e=r.split("."),t=0;for(;t<e.length-1&&["note","file","formula","task"].includes(e[t]);)t++;return t>0?e.slice(t).join("."):r}function e0(r,e){try{let t=r.getSortConfig();return t?(Array.isArray(t)?t:[t]).some(a=>{if(!a||typeof a!="object")return!1;let i=a.property||a.column||a.field||a.id||a.name||"";return J(i).replace(/^(note\.|file\.|task\.)/,"")===e}):!1}catch(t){return!1}}function Sp(r){if(typeof r!="string"||r.length===0)return null;let e=v1(r);if(e!==null)return new LT(e);try{return y1(r)}catch(t){return null}}function zNt(r){return Sp(r.sortOrder)!==null}function h1(r){return r?r.isMax()||r.toString().length>RNt:!1}function PUe(r){return r==null||r===""?"None":typeof r=="string"?r:typeof r=="boolean"?r?"True":"False":typeof r=="number"?String(r):J(r)||"None"}function jNt(r){return r==null||r===""?["None"]:Array.isArray(r)?r.length>0?r.map(e=>PUe(e)):["None"]:[PUe(r)]}function MUe(r,e){return e===null?!0:jNt(r).includes(e)}function $Nt(r){let e=new Map;return r&&r.forEach((t,n)=>{e.set(t,n)}),e}function BNt(r,e,t){if(!e||e.length===0)return r.filter(i=>i.path!==t);let n=new Map(r.map(i=>[i.path,i])),a=e.filter(i=>i!==t).map(i=>n.get(i)).filter(i=>!!i);return a.length>0?a:r.filter(i=>i.path!==t)}function UNt(r){for(let e=1;e<r.length;e++){let t=Sp(r[e-1].sortOrder),n=Sp(r[e].sortOrder);if(!t||!n)continue;let a=pl(t.toString(),n.toString());if(a<0)return"asc";if(a>0)return"desc"}return"asc"}function AUe(r,e,t){return t==="asc"?pl(r.toString(),e.toString()):pl(e.toString(),r.toString())}function _Ue(r,e){return e==="asc"?aQ(r):nQ(r)}function IUe(r,e){return e==="asc"?nQ(r):aQ(r)}function NUe(r,e,t){return t==="asc"?RUe(r,e):RUe(e,r)}function nQ(r){let e=r.toString();try{let c=r.genNext();if(c.toString()>e)return c}catch(c){}if(v1(e)!==null)return new LT(OT);let n=e.indexOf("|"),a=e.indexOf(":"),i=e.substring(0,n),s=e.substring(n+1,a),o=e.substring(a+1),l=s.charAt(0);if(l!=="z"){let c=l>="0"&&l<="8"?String.fromCharCode(l.charCodeAt(0)+1):l==="9"?"a":l>="a"&&l<="y"?String.fromCharCode(l.charCodeAt(0)+1):"z",d=`${i}|${c}${s.slice(1)}:`,u=r.between(y1(d));if(u.toString()>e)return u}return y1(`${i}|${s}:${o}i`)}function aQ(r){let e=r.toString();try{let c=r.genPrev();if(c.toString()<e)return c}catch(c){}if(v1(e)!==null)return new LT(0);let n=e.indexOf("|"),a=e.indexOf(":"),i=e.substring(0,n),s=e.substring(n+1,a),o=s.charAt(0),l;if(o==="0")l=`${i}|0:`;else{let c=o>="1"&&o<="9"?String.fromCharCode(o.charCodeAt(0)-1):o==="a"?"9":o>="b"&&o<="z"?String.fromCharCode(o.charCodeAt(0)-1):"0";l=`${i}|${c}${s.slice(1)}:`}return y1(l).between(r)}function RUe(r,e){let t=r.toString(),n=e.toString();try{let s=r.between(e).toString();if(pl(s,t)>0&&pl(s,n)<0)return s}catch(s){}let a=nQ(r).toString();if(pl(a,t)>0&&pl(a,n)<0)return a;let i=aQ(e).toString();return pl(i,t)>0&&pl(i,n)<0?i:a}function Py(r,e,t,n){let a=t?e:e+1,i=r.map(l=>l.path);i.splice(a,0,null);let s=[],o=null;for(let l=0;l<i.length;l++){let c=LNt(l,i.length,n),d=i[l];d===null?o=c:s.push({path:d,sortOrder:c})}return{sortOrder:o,additionalWrites:s,reason:"rebalance"}}function HNt(r,e,t,n={}){var c,d,u;let a=t.settings.fieldMapping.sortOrder,i=$Nt(n.visibleTaskPaths),s=n.candidateTaskPaths?new Set(n.candidateTaskPaths):null,o=t.app.vault.getMarkdownFiles(),l=[];for(let p of o){if(s&&!s.has(p.path))continue;let m=(c=t.app.metadataCache.getFileCache(p))==null?void 0:c.frontmatter;if(!m||r!==null&&e&&!MUe(m[e],r)||(d=n.scopeFilters)!=null&&d.some(v=>!MUe(m[v.property],v.value)))continue;let f=m[a],h=f!==void 0?String(f):void 0,g=(u=n.taskInfoCache)==null?void 0:u.get(p.path);if(g){g.sortOrder=h,l.push(g);continue}l.push({path:p.path,title:p.basename,status:m.status||"open",priority:m.priority||"",archived:m.archived||!1,sortOrder:h})}return l.sort((p,m)=>{let f=Sp(p.sortOrder),h=Sp(m.sortOrder);if(f&&h){let b=pl(f.toString(),h.toString());if(b!==0)return b}if(f&&!h)return-1;if(!f&&h)return 1;let g=i.get(p.path),v=i.get(m.path);return g!==void 0&&v!==void 0?g-v:g!==void 0?-1:v!==void 0?1:p.path.localeCompare(m.path)}),l}async function FUe(r,e,t){let n=t.app.vault.getAbstractFileByPath(r);if(!(n instanceof LUe.TFile))return;let a=t.settings.fieldMapping.sortOrder;await Fr(t.app,n,i=>{i[a]=e})}async function k1(r,e,t,n,a,i,s={}){var w;let o=HNt(t,n,i,s).filter(S=>S.path!==a),l=BNt(o,s.visibleTaskPaths,a),c=UNt(l);if(o.length===0)return{sortOrder:DUe().toString(),additionalWrites:[],reason:"boundary"};let d=l.findIndex(S=>S.path===r);if(d===-1){let S=[...l].reverse().find(E=>zNt(E)),C=S?Sp(S.sortOrder):null;if(C&&!h1(C)){let E=IUe(C,c).toString();if(f1(E,C.toString(),null,c))return{sortOrder:E,additionalWrites:[],reason:"boundary"}}return l.length>0?Py(l,l.length-1,!1,c):{sortOrder:DUe().toString(),additionalWrites:[],reason:"boundary"}}let u=l[d],p=d>0?l[d-1]:null,m=d<l.length-1?l[d+1]:null,f=Sp(u.sortOrder),h=p?Sp(p.sortOrder):null,g=m?Sp(m.sortOrder):null;if(!f)return Py(l,d,e,c);let v=h?AUe(h,f,c)>=0:!1,b=g?AUe(f,g,c)>=0:!1;if(e&&v||!e&&b||h1(h)||h1(f)||h1(g))return Py(l,d,e,c);if(e){let S=d===0?_Ue(f,c).toString():h?NUe(h,f,c):_Ue(f,c).toString();return f1(S,(w=h==null?void 0:h.toString())!=null?w:null,f.toString(),c)?{sortOrder:S,additionalWrites:[],reason:d===0?"boundary":"midpoint"}:Py(l,d,e,c)}if(!m||!g){let S=IUe(f,c).toString();return f1(S,f.toString(),null,c)?{sortOrder:S,additionalWrites:[],reason:"boundary"}:Py(l,d,e,c)}let k=NUe(f,g,c);return f1(k,f.toString(),g.toString(),c)?{sortOrder:k,additionalWrites:[],reason:"midpoint"}:Py(l,d,e,c)}async function b1(r,e,t,n={}){if(e.sortOrder){for(let a of e.additionalWrites)await FUe(a.path,a.sortOrder,t);n.includeDragged!==!1&&await FUe(r,e.sortOrder,t)}}var OUe,LUe,RNt,FNt,zUe,rQ,g1,OT,ONt,LT,zT,t0=y(()=>{OUe=st(CUe()),LUe=require("obsidian");kr();Ba();RNt=32,FNt=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}),zUe="tn",rQ=10,g1=26,OT=Math.pow(g1,rQ)-1,ONt=/^tn[a-z]{10}$/,LT=class r{constructor(e){this.value=e}toString(){return jUe(this.value)}genPrev(){if(this.value<=0)throw new Error("Cannot generate rank before minimum alpha rank");return new r(this.value-1)}genNext(){if(this.value>=OT)throw new Error("Cannot generate rank after maximum alpha rank");return new r(this.value+1)}between(e){let t=v1(e.toString());if(t===null)throw new Error("Cannot generate alpha midpoint against a non-alpha rank");let n=Math.min(this.value,t),a=Math.max(this.value,t),i=Math.floor((n+a)/2);if(i<=n||i>=a)throw new Error("No alpha rank gap available");return new r(i)}isMax(){return this.value>=OT}};zT=class{constructor(){this.queues=new Map}async enqueue(e,t){var i;let a=((i=this.queues.get(e))!=null?i:Promise.resolve()).then(t,t);this.queues.set(e,a);try{await a}finally{this.queues.get(e)===a&&this.queues.delete(e)}}}});function Af(r){r.classList.remove(...VNt),r.removeAttribute("style")}var VNt,T1=y(()=>{VNt=["tn-static-align-items-baseline-4b95b5c7","tn-static-align-items-center-7c619740","tn-static-align-items-flex-start-0486f781","tn-static-background-color-var-background-mo-94b219f0","tn-static-background-color-var-background-se-9087a23e","tn-static-background-color-var-color-base-40-ef5f175e","tn-static-background-color-var-color-red-134bc721","tn-static-background-color-var-text-accent-a954c70f","tn-static-border-1px-solid-var-background-mo-b65b5121","tn-static-border-none-2eda1daa","tn-static-border-radius-4px-c290c56e","tn-static-border-radius-6px-0dc8408c","tn-static-border-style-dashed-12296c91","tn-static-border-style-solid-11080b69","tn-static-border-top-1px-solid-var-backgroun-aab7c2ca","tn-static-border-width-2px-a1222254","tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-grab-dad79857","tn-static-cursor-pointer-2723efcc","tn-static-cursor-pointer-3b6a3a65","tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-flex-1-14e3b769","tn-static-flex-1-97445a8d","tn-static-flex-direction-column-06c8b5ed","tn-static-flex-shrink-0-6ee0661e","tn-static-font-size-0-75em-948e16e5","tn-static-font-size-0-8em-19dc7c13","tn-static-font-size-0-9em-65025e95","tn-static-font-size-1-2em-3a352995","tn-static-font-size-12px-65574819","tn-static-font-size-12px-b0cc7e05","tn-static-font-size-var-tn-font-size-sm-0274a31d","tn-static-font-weight-500-02a2d333","tn-static-font-weight-600-eed0f8fb","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-gap-0-5rem-ce2fca4d","tn-static-gap-10px-f3d7ce77","tn-static-gap-12px-ed7b3d87","tn-static-gap-6px-f0abc1db","tn-static-gap-8px-33fcd4c3","tn-static-height-0-7a31cef0","tn-static-height-100-62264068","tn-static-height-12px-06c0747e","tn-static-height-16px-30de4aee","tn-static-height-24px-29a11d37","tn-static-justify-content-center-03c4bb6f","tn-static-justify-content-flex-end-455f8cca","tn-static-justify-content-space-between-a562f4fd","tn-static-margin-0-11696618","tn-static-margin-0-auto-266e9b04","tn-static-margin-0-db0d5f36","tn-static-margin-0-var-size-4-2-77f7dc08","tn-static-margin-2px-0-edce9b14","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-20px-49f14f8f","tn-static-margin-bottom-8px-fdf33f23","tn-static-margin-left-4px-46cec891","tn-static-margin-right-4px-c6b76b85","tn-static-margin-right-8px-539fa9a0","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68","tn-static-max-height-400px-f0787633","tn-static-max-width-900px-1d34c094","tn-static-min-height-800px-997b4c8c","tn-static-min-width-0-3922d326","tn-static-min-width-2px-709d7da0","tn-static-opacity-0-6-d95b59ac","tn-static-opacity-0-8d919cb5","tn-static-opacity-1-c6e7979d","tn-static-overflow-hidden-69824400","tn-static-overflow-y-auto-03df744e","tn-static-overflow-y-clip-c5043043","tn-static-padding-0-16px-16px-16px-f1aa998c","tn-static-padding-0-41d7d7e2","tn-static-padding-12px-43bef435","tn-static-padding-16px-287f770e","tn-static-padding-20px-769fed37","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c","tn-static-padding-2px-8px-c8eea84a","tn-static-padding-2rem-42aa6d9c","tn-static-padding-top-20px-49826953","tn-static-position-relative-d461c96d","tn-static-text-align-center-91a87015","tn-static-text-decoration-line-through-7059a4e5","tn-static-text-decoration-none-80d654f9","tn-static-transform-translatey-0-1b976432","tn-static-transform-translatey-10px-5b91bf02","tn-static-transition-background-color-0-2s-8142f01e","tn-static-vertical-align-baseline-657d9c46","tn-static-width-100-0466783d","tn-static-width-12px-fbf353fb","tn-static-width-16px-7375d50b","tn-static-width-1px-aa77e27e","tn-static-width-200px-2acaf3b5","tn-static-width-60px-bd09c419","tn-static-width-80px-8573bae3"]});function w1(r){return typeof r=="object"&&r!==null}function S1(r,e){let t=iQ(r,e);return typeof t=="string"&&qNt.has(t)}function iQ(r,e){var i,s;let t=r.metadataTypeManager,n=(i=t==null?void 0:t.properties)==null?void 0:i[e.toLowerCase()],a=(s=n==null?void 0:n.type)!=null?s:n==null?void 0:n.widget;return typeof a=="string"?a:null}function WNt(r){if(!(!w1(r)||!w1(r.ctx)||!w1(r.ctx.formulas)))return r.ctx.formulas}function $Ue(r){return w1(r.basesData)?r.basesData:void 0}function YNt(r){return typeof(r==null?void 0:r.getValue)=="function"}function GNt(r,e,t){let n=e.frontmatter;if(n&&Object.keys(t).length>0){e.frontmatter={...n,...t};try{return r.getValue(e)}finally{e.frontmatter=n}}return r.getValue(e)}function KNt(r,e){var n,a;let t=(a=(n=$Ue(e))==null?void 0:n.formulaResults)==null?void 0:a.cachedFormulaOutputs;if(!(!t||typeof t!="object"))for(let[i,s]of Object.entries(t))r[`formula.${i}`]=s}function ZNt(r){var e,t,n;return(e=r.formulaResults)!=null||(r.formulaResults={}),(n=(t=r.formulaResults).cachedFormulaOutputs)!=null||(t.cachedFormulaOutputs={}),r.formulaResults.cachedFormulaOutputs}function x1(r){let e=new Map;for(let t of r){if(!t.path)continue;let n={...t.properties||{}};KNt(n,t),e.set(t.path,n)}return e}function r0(r,e){let t=WNt(r);if(!(!t||e.length===0))for(let n of e){let a=$Ue(n);if(!a)continue;let i=ZNt(a);for(let s of Object.keys(t)){let o=t[s];if(YNt(o))try{let l=n.properties||{},c=GNt(o,a,l);c!==void 0&&(i[s]=c)}catch(l){}}}}var qNt,n0=y(()=>{qNt=new Set(["multitext","tags","aliases"])});function XNt(r,e){var i;let t=r==null?void 0:r.find(s=>s.key===e);if(t)return t.type;let n=e.toLowerCase(),a=r==null?void 0:r.find(s=>s.key.toLowerCase()===n);return(i=a==null?void 0:a.type)!=null?i:null}function eRt(r,e,t){var n;return(n=XNt(t,e))!=null?n:iQ(r,e)}function tRt(r,e){if(!e)return r;let t=e.toLowerCase(),n=r.trim();if(t==="number"&&JNt.test(n)){let a=Number(n);return Number.isFinite(a)?a:r}if(QNt.has(t)){if(n.toLowerCase()==="true")return!0;if(n.toLowerCase()==="false")return!1}return r}function C1(r,e,t,n){let a=eRt(r,e,n);return tRt(t,a)}var QNt,JNt,sQ=y(()=>{n0();QNt=new Set(["boolean","checkbox"]),JNt=/^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?$/i});function BUe(r){if(r.length===0)return[];let e=[];for(let t of r){let n=e[e.length-1];if(!n||n.groupKey!==t.groupKey){e.push({groupKey:t.groupKey,cards:[t]});continue}n.cards.push(t)}return e}function UUe(r,e,t){let n=r[e];if(!n||n.cards.length===0)return null;let a=Math.max(0,Math.min(t,n.cards.length));return a===0?{taskPath:n.cards[0].path,above:!0}:{taskPath:n.cards[a-1].path,above:!1}}function HUe(r,e){if(r.length===0)return null;let t=r.length-1;for(let s=0;s<r.length;s++){let o=r[s],l=s>0?r[s-1]:null,c=s<r.length-1?r[s+1]:null,d=o.cards[0],u=o.cards[o.cards.length-1],p=l?(l.cards[l.cards.length-1].bottom+d.top)/2:Number.NEGATIVE_INFINITY,m=c?(u.bottom+c.cards[0].top)/2:Number.POSITIVE_INFINITY;if((e<m||s===r.length-1)&&(e>=p||s===0)){t=s;break}}let n=r[t],a=n.cards,i=a.findIndex(s=>e<s.midpoint);if(i===-1){let s=a[a.length-1];return{groupKey:n.groupKey,segmentIndex:t,insertionIndex:a.length,element:s.card,position:"after"}}return{groupKey:n.groupKey,segmentIndex:t,insertionIndex:i,element:a[i].card,position:"before"}}var VUe=y(()=>{});function a0(r){return x1(r)}function rRt(r,e){var n,a;if(!e)return null;if(e.startsWith("formula."))return(n=r[e])!=null?n:null;let t=e.replace(/^(note\.|task\.|file\.)/,"");return(a=r[t])!=null?a:null}function oQ(r){var e,t;if(r==null)return"None";if(typeof r=="object"&&r!==null&&typeof r.toString=="function"){let n=r;if(((e=n.constructor)==null?void 0:e.name)==="NullValue"||n.isTruthy&&!n.isTruthy())return"None";if(((t=n.constructor)==null?void 0:t.name)==="ListValue"||Array.isArray(n.value)){let a=n.value||[];return a.length>0?a.map(i=>oQ(i)).join(", "):"None"}return n.toString()||"None"}return typeof r=="string"?r||"None":typeof r=="number"?String(r):typeof r=="boolean"?r?"True":"False":Array.isArray(r)?r.length>0?r.map(n=>oQ(n)).join(", "):"None":J(r)||"None"}function jT(r,e,t){let n=new Map;for(let a of r){let i=t.get(a.path)||{},s=rRt(i,e),o=oQ(s),l=n.get(o)||[];l.push(a),n.set(o,l)}return n}function qUe(r,e,t){let n=new Set(e.map(i=>i.path)),a=new Map;for(let i of r){let s=t(i.key),o=i.entries.map(l=>{var c;return(c=l.file)==null?void 0:c.path}).filter(l=>!!l&&n.has(l));a.set(s,o)}return a}function WUe(r){let e=new Map;for(let[t,n]of r)e.set(t,n.map(a=>a.path));return e}function lQ(r){let e=[];for(let t of r.groups){let n=r.convertGroupKeyToString(t.key),a=new Set(t.entries.map(o=>{var l;return(l=o.file)==null?void 0:l.path})),i=r.taskNotes.filter(o=>a.has(o.path));if(i.length===0)continue;let s=r.collapsedGroups.has(n);if(e.push({type:"primary-header",groupKey:n,groupTitle:n,taskCount:i.length,groupEntries:t.entries,isCollapsed:s}),!s){if(r.subGroupPropertyId){let o=jT(i,r.subGroupPropertyId,r.pathToProps);for(let[l,c]of o){if(c.length===0)continue;let d=`${n}:${l}`,u=r.collapsedSubGroups.has(d);if(e.push({type:"sub-header",groupKey:n,subGroupKey:l,subGroupTitle:l,taskCount:c.length,isCollapsed:u,parentKey:n}),!u)for(let p of c)e.push({type:"task",task:p,groupKey:n,subGroupKey:l})}continue}for(let o of i)e.push({type:"task",task:o,groupKey:n})}}return e}function cQ(r,e){let t=[];for(let[n,a]of r){if(a.length===0)continue;let i=e.has(n);if(t.push({type:"primary-header",groupKey:n,groupTitle:n,taskCount:a.length,groupEntries:[],isCollapsed:i}),!i)for(let s of a)t.push({type:"task",task:s,groupKey:n})}return t}var YUe=y(()=>{kr();n0()});function GUe({groupByPropertyId:r,sourceGroupKey:e,targetGroupKey:t,lookupMappingKey:n,isListTypeProperty:a}){let i=r?wi(r):null,s=!!(r!=null&&r.startsWith("formula.")),o=t==="None"?null:t,l=!!r&&o!==e,c=i?n(i):null,d=!!i&&a(i),u=r?r.replace(/^(note\.|file\.|task\.)/,""):null;return{groupByPropertyId:r,cleanGroupBy:i,frontmatterKey:u,groupByTaskProp:c,isFormulaGrouping:s,isListGrouping:d,needsGroupUpdate:l,normalizedTargetGroupKey:o,sourceGroupKey:e}}function KUe({frontmatter:r,plan:e,sortOrderField:t,sortOrder:n,isRecurring:a,dateModifiedField:i,coerceGroupKeyForFrontmatter:s,updateCompletedDateInFrontmatter:o,getTimestamp:l}){if(e.needsGroupUpdate&&e.frontmatterKey){if(e.isListGrouping){let c=r[e.frontmatterKey],u=(Array.isArray(c)?c:c?[c]:[]).filter(p=>p!==e.sourceGroupKey);e.normalizedTargetGroupKey!==null&&!u.includes(e.normalizedTargetGroupKey)&&u.push(e.normalizedTargetGroupKey),u.length>0?r[e.frontmatterKey]=u:delete r[e.frontmatterKey]}else e.normalizedTargetGroupKey===null?delete r[e.frontmatterKey]:r[e.frontmatterKey]=s(e.frontmatterKey,e.normalizedTargetGroupKey);e.groupByTaskProp==="status"&&e.normalizedTargetGroupKey!==null&&(o(r,e.normalizedTargetGroupKey,a),r[i]=l())}n!==null&&(r[t]=n)}function ZUe(r,{plan:e,isCompletedStatus:t,getTimestamp:n,getCompletedDate:a}){if(!e.needsGroupUpdate||!e.groupByTaskProp)return null;let i={...r},s=r,o=i,l=e.groupByTaskProp;if(e.isListGrouping){let c=s[l],u=(Array.isArray(c)?[...c]:c?[J(c)]:[]).filter(p=>p!==e.sourceGroupKey);e.normalizedTargetGroupKey!==null&&!u.includes(e.normalizedTargetGroupKey)&&u.push(e.normalizedTargetGroupKey),o[l]=u}else o[l]=e.normalizedTargetGroupKey;return i.dateModified=n(),l==="status"&&!r.recurrence&&(e.normalizedTargetGroupKey!==null&&t(e.normalizedTargetGroupKey)?i.completedDate=a():i.completedDate=void 0),i}var QUe=y(()=>{kr();t0()});function i0(r,e){let t=new Map;e.sortOrder&&t.set(r,e.sortOrder);for(let n of e.additionalWrites)t.set(n.path,n.sortOrder);return t}function s0(r,e,t){for(let[n,a]of e){let i=r.get(n);i&&(i.sortOrder=a,t==null||t(i))}}function o0(r,e,t,n){for(let a of r){let i=e(a);if(!i)continue;let s=t.get(i.path);s!==void 0&&(i.sortOrder=s,n==null||n(i))}}function l0(r,e,t,n){if(e.length===0||e.includes(t))return null;let a=new Set(r),i=new Set(e);if(!e.every(c=>a.has(c)))return null;let s=r.filter(c=>!i.has(c)),o=s.indexOf(t);if(o===-1)return null;let l=n?o:o+1;return[...s.slice(0,l),...e,...s.slice(l)]}function JUe(r,e,t,n,a){if(t.length===0||t.includes(n))return null;let i=new Set(t),s=new Map,o=[];for(let u of r){let p=e(u);p&&i.has(p)?s.set(p,u):o.push(u)}if(!t.every(u=>s.has(u)))return null;let l=o.findIndex(u=>e(u)===n);if(l===-1)return null;let c=[];for(let u of t){let p=s.get(u);if(!p)return null;c.push(p)}let d=a?l:l+1;return[...o.slice(0,d),...c,...o.slice(d)]}var dQ=y(()=>{});function eHe(r){return typeof r=="object"&&r!==null}function nRt(r){return eHe(r)}function XUe(r){if(typeof r=="number")return r===1?"show-all":"inherit";let e=J(r).trim().toLowerCase().replace(/^['"]|['"]$/g,"").replace(/[_\s]+/g,"-");return e==="show-all"||e==="1"?"show-all":"inherit"}function tHe(r){return function(e,t){if(!t)throw yo.error("[TaskNotes][TaskListView] No containerEl provided",{category:"stale-data",operation:"no-containerel-provided"}),new Error("TaskListView requires a containerEl");return new uQ(e,t,r)}}var Ta,yo,uQ,rHe=y(()=>{Ta=require("obsidian");QP();ZP();mi();BZ();bk();dE();Pk();ro();Mk();Me();kr();UZ();t0();T1();ms();n0();sQ();VUe();YUe();QUe();dQ();K();Ba();yo=N({tag:"Bases/TaskListView"});uQ=class extends Rd{constructor(t,n,a){super(t,n,a);this.type="tasknotesTaskList";this.configLoaded=!1;this.itemsContainer=null;this.currentTaskElements=new Map;this.lastRenderWasGrouped=!1;this.lastFlatPaths=[];this.lastVirtualItems=[];this.lastTaskSignatures=new Map;this.lastCardRenderSignature="";this.taskInfoCache=new Map;this.clickTimeouts=new Map;this.currentTargetDate=wn(new Date);this.containerListenersRegistered=!1;this.virtualScroller=null;this.useVirtualScrolling=!1;this.collapsedGroups=new Set;this.collapsedSubGroups=new Set;this.subGroupPropertyId=null;this.defaultCollapsedState="Expanded";this.expandedRelationshipFilterMode="inherit";this.currentVisibleTaskPaths=new Set;this.currentVisibleTaskOrder=new Map;this.expandedRelationshipTaskPaths=new Set;this.expandedRelationshipTaskOrder=new Map;this.hideTopLevelSubtasks=!1;this.currentPrimaryGroupKeys=[];this.currentSubGroupKeysByParent=new Map;this.initializedPrimaryGroupKeys=new Set;this.initializedSubGroupKeys=new Set;this.deferCollapseDefaultForNextSnapshot=!1;this.draggedTaskPath=null;this.dragGroupKey=null;this.currentInsertionGroupKey=null;this.currentInsertionSegmentIndex=-1;this.currentInsertionIndex=-1;this.pendingDragClientY=null;this.pendingRender=!1;this.taskGroupKeys=new Map;this.sortScopeTaskPaths=new Map;this.sortScopeCandidateTaskPaths=new Map;this.dragOverRafId=0;this.dragContainer=null;this.currentDropSlotElement=null;this.currentDropSlotPosition=null;this.dragBaselineCards=[];this.dropQueue=new zT;this.VIRTUAL_SCROLL_THRESHOLD=100;this.LARGE_REORDER_WARNING_THRESHOLD=10;this.UNGROUPED_SORT_SCOPE_KEY="__ungrouped__";this.CARD_NO_DRAG_SELECTOR='[data-tn-no-drag="true"], a, button, input, select, textarea, [contenteditable="true"]';this.CARD_DRAG_HANDLE_SELECTOR='[data-tn-drag-handle="true"]';this.handleItemClick=async t=>{let n=t.target,a=n.closest(".task-group-header");if(a){let i=a.closest(".task-group"),s=i==null?void 0:i.dataset.groupKey;if(s){if(n.closest("a"))return;t.preventDefault(),t.stopPropagation(),await this.handleGroupToggle(s);return}}};this.handleItemContextMenu=async t=>{let n=this.getTaskContextFromEvent(t);if(!n)return;t.preventDefault(),t.stopPropagation();let a=this.plugin.taskSelectionService;if(a&&a.getSelectionCount()>1){a.isSelected(n.task.path)||a.addToSelection(n.task.path),this.showBatchContextMenu(t);return}await qo(t,n.task.path,this.plugin,this.currentTargetDate)};this.handleItemPointerOver=t=>{if("pointerType"in t&&t.pointerType!=="mouse")return;let n=this.getTaskContextFromEvent(t);if(!n)return;let a=t.relatedTarget;if(a&&n.card.contains(a))return;let i=this.app||this.plugin.app;i.vault.getAbstractFileByPath(n.task.path)&&i.workspace.trigger("hover-link",{event:t,source:"tasknotes-task-card",hoverParent:n.card,targetEl:n.card,linktext:n.task.path,sourcePath:n.task.path})};this.basesController=t,this.dataAdapter.basesView=this}onload(){this.readViewOptions(),super.onload(),this.registerGroupContextMenuListeners()}registerGroupContextMenuListeners(){this.rootElement&&this.rootElement.addEventListener("contextmenu",t=>{let n=t.target,a=n.closest(".task-group-header");if(a){let s=a.closest(".task-group"),o=s==null?void 0:s.dataset.groupKey;if(o&&!this.isSubGroupKey(o)){t.preventDefault(),this.showGroupHeaderContextMenu(t,o);return}}!n.closest(".task-card")&&!a&&this.currentPrimaryGroupKeys.length>0&&(t.preventDefault(),this.showContainerContextMenu(t))})}showGroupHeaderContextMenu(t,n){let a=this.currentSubGroupKeysByParent.get(n);if(!a||a.length===0)return;let i=a.every(o=>this.collapsedSubGroups.has(o)),s=new Ta.Menu;s.addItem(o=>{o.setTitle(i?"Expand subgroups":"Collapse subgroups").setIcon(i?"list-tree":"list-collapse").onClick(()=>void this.setSubGroupsCollapsed(n,!i))}),s.showAtMouseEvent(t)}showContainerContextMenu(t){let n=new Ta.Menu;n.addItem(a=>{a.setTitle("Expand all groups").setIcon("chevrons-down").onClick(()=>void this.setAllPrimaryGroupsCollapsed(!1))}),n.addItem(a=>{a.setTitle("Collapse all groups").setIcon("chevrons-up").onClick(()=>void this.setAllPrimaryGroupsCollapsed(!0))}),n.addItem(a=>{a.setTitle("Expand all groups and subgroups").setIcon("list-tree").onClick(()=>void this.setAllGroupsAndSubGroupsCollapsed(!1))}),n.addItem(a=>{a.setTitle("Collapse all groups and subgroups").setIcon("list-collapse").onClick(()=>void this.setAllGroupsAndSubGroupsCollapsed(!0))}),n.showAtMouseEvent(t)}readViewOptions(){if(!this.config||typeof this.config.get!="function"){yo.debug("[TaskListView] Config not available yet in readViewOptions",{category:"configuration",operation:"config-not-yet-readviewoptions"});return}try{this.subGroupPropertyId=this.config.getAsPropertyId("subGroup");let t=this.config.get("enableSearch");this.enableSearch=t!=null?t:!1;let n=this.config.get("defaultCollapsedState");this.defaultCollapsedState=n==="Collapsed"||n==="1"?"Collapsed":"Expanded";let a=this.config.get("expandedRelationshipFilterMode");this.expandedRelationshipFilterMode=XUe(a),this.hideTopLevelSubtasks=this.config.get("hideTopLevelSubtasks")===!0,this.configLoaded=!0}catch(t){yo.warn("[TaskListView] Failed to parse config:",{category:"configuration",operation:"parse-config",error:t})}}clearGroupingSnapshot(){this.currentPrimaryGroupKeys=[],this.currentSubGroupKeysByParent.clear()}initializeCollapseStateForSnapshot(t,n){let a=this.defaultCollapsedState==="Collapsed"&&!this.deferCollapseDefaultForNextSnapshot;for(let i of t)this.initializedPrimaryGroupKeys.has(i)||(this.initializedPrimaryGroupKeys.add(i),a&&this.collapsedGroups.add(i));for(let i of n.values())for(let s of i)this.initializedSubGroupKeys.has(s)||(this.initializedSubGroupKeys.add(s),a&&this.collapsedSubGroups.add(s));this.deferCollapseDefaultForNextSnapshot=!1}applyGroupingSnapshot(t){let n=new Map;for(let[a,i]of t.subGroupKeysByParent.entries())n.set(a,[...i]);this.initializeCollapseStateForSnapshot(t.primaryGroupKeys,n),this.currentPrimaryGroupKeys=[...t.primaryGroupKeys],this.currentSubGroupKeysByParent=n}createGroupedHierarchySnapshot(t,n){let a={primaryGroupKeys:[],subGroupKeysByParent:new Map},i=this.subGroupPropertyId?a0(this.dataAdapter.extractDataItems()):new Map;for(let s of t){let o=this.dataAdapter.convertGroupKeyToString(s.key),l=new Set(s.entries.map(p=>{var m;return(m=p.file)==null?void 0:m.path})),c=n.filter(p=>l.has(p.path));if(c.length===0||(a.primaryGroupKeys.push(o),!this.subGroupPropertyId))continue;let d=[],u=jT(c,this.subGroupPropertyId,i);for(let[p,m]of u)m.length!==0&&d.push(`${o}:${p}`);d.length>0&&a.subGroupKeysByParent.set(o,d)}return a}createSubPropertyHierarchySnapshot(t){return{primaryGroupKeys:Array.from(t.keys()),subGroupKeysByParent:new Map}}setupContainer(){var a;super.setupContainer(),this.rootElement&&(this.rootElement.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-flex-direction-column-06c8b5ed","tn-static-height-0-7a31cef0","tn-static-height-100-62264068","tn-static-height-12px-06c0747e","tn-static-height-16px-30de4aee","tn-static-height-24px-29a11d37","tn-static-min-height-800px-997b4c8c"),this.rootElement.classList.add("tn-static-display-flex-4d51fc62"));let t=this.containerEl.ownerDocument,n=Ne(t,"div");n.className="tn-bases-items-container",n.classList.remove("tn-static-flex-1-14e3b769","tn-static-flex-1-97445a8d","tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68","tn-static-max-height-400px-f0787633","tn-static-overflow-y-auto-03df744e","tn-static-overflow-y-clip-c5043043","tn-static-position-relative-d461c96d"),n.classList.add("tn-static-margin-top-12px-91e0f558"),(a=this.rootElement)==null||a.appendChild(n),this.itemsContainer=n,this.registerContainerListeners(),this.setupContainerDragHandlers()}async render(){var t;if(!(!this.itemsContainer||!this.rootElement)){if(this.draggedTaskPath){this.pendingRender=!0;return}this.config&&this.readViewOptions(),this.rootElement&&this.setupSearch(this.rootElement);try{if(!((t=this.data)!=null&&t.data)){this.clearGroupingSnapshot();return}let n=this.dataAdapter.extractDataItems();r0(this.data,n);let a=await wp(n,this.plugin);if(a.length===0){this.clearAllTaskElements(),this.sortScopeTaskPaths.clear(),this.sortScopeCandidateTaskPaths.clear(),this.clearGroupingSnapshot(),this.renderEmptyState(),this.lastRenderWasGrouped=!1;return}let i=this.dataAdapter.isGrouped();!i&&this.subGroupPropertyId?(this.lastRenderWasGrouped||this.clearAllTaskElements(),await this.renderGroupedBySubProperty(a),this.lastRenderWasGrouped=!0):i?(this.lastRenderWasGrouped||this.clearAllTaskElements(),await this.renderGrouped(a),this.lastRenderWasGrouped=!0):(this.lastRenderWasGrouped&&this.clearAllTaskElements(),this.clearGroupingSnapshot(),await this.renderFlat(a),this.lastRenderWasGrouped=!1)}catch(n){yo.error("[TaskNotes][TaskListView] Error rendering:",{category:"persistence",operation:"rendering",error:n}),this.clearAllTaskElements(),this.sortScopeTaskPaths.clear(),this.sortScopeCandidateTaskPaths.clear(),this.renderError(n instanceof Error?n:new Error(String(n)))}}}getGroupByPropertyId(){var n;let t=this.basesController;if((n=t==null?void 0:t.query)!=null&&n.views&&(t!=null&&t.viewName)){for(let a of t.query.views)if((a==null?void 0:a.name)===t.viewName){if(a.groupBy){if(typeof a.groupBy=="object"&&a.groupBy.property)return a.groupBy.property;if(typeof a.groupBy=="string")return a.groupBy}return null}}return null}getSortScopeKey(t){return t!=null?t:this.UNGROUPED_SORT_SCOPE_KEY}getVisibleSortScopePaths(t){return this.sortScopeTaskPaths.get(this.getSortScopeKey(t))}getCandidateSortScopePaths(t){return this.sortScopeCandidateTaskPaths.get(this.getSortScopeKey(t))}setSortScopePaths(t){this.sortScopeTaskPaths.clear();for(let[n,a]of t)this.sortScopeTaskPaths.set(this.getSortScopeKey(n),[...a])}setSortScopeCandidatePaths(t){this.sortScopeCandidateTaskPaths.clear();for(let[n,a]of t)this.sortScopeCandidateTaskPaths.set(this.getSortScopeKey(n),[...a])}getVirtualItemTask(t){return"type"in t?t.type==="task"?t.task:null:t}getVirtualItemPath(t){var n,a;return(a=(n=this.getVirtualItemTask(t))==null?void 0:n.path)!=null?a:null}getVirtualItemGroupKey(t){return"type"in t&&t.type==="task"?t.groupKey:null}rebuildSortScopesFromVirtualItems(t){var i;let n=new Map,a=[];for(let s of t){let o=this.getVirtualItemTask(s);if(!o)continue;a.push(o.path);let l=this.getVirtualItemGroupKey(s),c=(i=n.get(l))!=null?i:[];c.push(o.path),n.set(l,c)}n.size>0?this.setSortScopePaths(n):this.setSortScopePaths([[null,a]])}applyOptimisticSortOrderResult(t,n,a,i,s,o){var u,p;if(s!==i)return!1;let l=i0(t,o);if(s0(this.taskInfoCache,l,m=>{this.lastTaskSignatures.set(m.path,this.buildTaskSignature(m))}),this.virtualScroller&&this.lastVirtualItems.length>0){let m=JUe(this.lastVirtualItems,f=>this.getVirtualItemPath(f),[t],n,a);return m?(o0(m,f=>this.getVirtualItemTask(f),l,f=>{this.taskInfoCache.set(f.path,f),this.lastTaskSignatures.set(f.path,this.buildTaskSignature(f))}),this.lastVirtualItems=m,this.virtualScroller.updateItems(m),this.rebuildSortScopesFromVirtualItems(m),this.setCurrentVisibleTaskPaths(m.map(f=>this.getVirtualItemTask(f)).filter(f=>!!f)),this.lastFlatPaths=m.map(f=>this.getVirtualItemPath(f)).filter(f=>!!f),!0):!1}let c=(u=this.itemsContainer)==null?void 0:u.querySelector(`.task-card[data-task-path="${CSS.escape(t)}"]`),d=(p=this.itemsContainer)==null?void 0:p.querySelector(`.task-card[data-task-path="${CSS.escape(n)}"]`);return!c||!d?!1:(a?d.before(c):d.after(c),!0)}isListTypeProperty(t){if(S1(this.plugin.app,t))return!0;let n=this.plugin.fieldMapper.toUserField("contexts"),a=this.plugin.fieldMapper.toUserField("projects");return new Set(["contexts",n,"projects",a,"tags","aliases"]).has(t)}coerceGroupKeyForFrontmatter(t,n){return C1(this.plugin.app,t,n,this.plugin.settings.userFields)}async confirmLargeReorder(t,n){let a=this.plugin.settings.fieldMapping.sortOrder,i=n===null?this.plugin.i18n.translate("views.taskList.reorder.scope.ungrouped"):this.plugin.i18n.translate("views.taskList.reorder.scope.group",{group:n});return Ir(this.plugin.app,{title:this.plugin.i18n.translate("common.reorder.confirmLargeTitle"),message:this.plugin.i18n.translate("common.reorder.confirmLargeMessage",{field:a,count:t,scope:i}),confirmText:this.plugin.i18n.translate("common.reorder.confirmButton"),cancelText:this.plugin.i18n.translate("common.cancel")})}getEventTargetElement(t){let n=t;return!n||typeof n.nodeType!="number"?null:n.nodeType===Node.ELEMENT_NODE?n:n.parentElement}shouldSuppressCardDrag(t,n){let a=this.getEventTargetElement(t);if(!a||!n.contains(a))return!1;let i=a.closest(this.CARD_NO_DRAG_SELECTOR);return i&&n.contains(i)?!0:this.isMobileDragHandleOnlyMode(n)&&!a.closest(this.CARD_DRAG_HANDLE_SELECTOR)}isMobileDragHandleOnlyMode(t){return t.ownerDocument.body.classList.contains("is-mobile")}setupCardDragHandle(t){t.classList.add("task-card--reorderable"),t.classList.toggle("task-card--drag-handle-only",this.isMobileDragHandleOnlyMode(t));let n=t.querySelector(this.CARD_DRAG_HANDLE_SELECTOR);if(n){n.setAttribute("draggable","true");return}let a=Ne(t.ownerDocument,"div");a.className="task-card__drag-handle",a.dataset.tnDragHandle="true",a.setAttribute("draggable","true"),a.setAttribute("aria-label","Drag to reorder"),a.setAttribute("title","Drag to reorder"),(0,Ta.setIcon)(a,"grip-vertical"),a.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation()}),t.insertBefore(a,t.firstChild)}setupCardDragHandlers(t,n,a){let i=null,s=!1,o=()=>{t.setAttribute("draggable",this.isMobileDragHandleOnlyMode(t)?"false":"true"),i=null,s=!1},l=d=>typeof d.button!="number"||d.button===0,c=d=>{i=d.target,s=this.shouldSuppressCardDrag(d.target,t),t.setAttribute("draggable",s?"false":"true"),!(s||!l(d))&&(d.stopPropagation(),d.type==="mousedown"&&d.preventDefault())};this.setupCardDragHandle(t),o(),t.addEventListener("pointerdown",c,{capture:!0}),t.addEventListener("mousedown",c,{capture:!0}),t.addEventListener("mouseup",d=>{!s&&l(d)&&d.stopPropagation(),o()}),t.addEventListener("click",o,{capture:!0}),t.addEventListener("dragstart",d=>{if(this.shouldSuppressCardDrag(i!=null?i:d.target,t)){d.preventDefault(),d.stopPropagation(),o();return}d.stopPropagation(),this.draggedTaskPath=n.path,this.dragGroupKey=a,t.classList.add("task-card--dragging"),d.dataTransfer&&(d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",n.path)),this.containerEl.ownerDocument.body.classList.add("tn-drag-active");let u=t.getBoundingClientRect().height,p=this.itemsContainer;window.requestAnimationFrame(()=>{if(t.classList.remove("tn-static-display-flex-4d51fc62","tn-static-height-100-62264068","tn-static-height-12px-06c0747e","tn-static-height-16px-30de4aee","tn-static-height-24px-29a11d37","tn-static-min-height-800px-997b4c8c"),t.classList.add("tn-static-height-0-7a31cef0"),t.classList.remove("tn-static-flex-1-14e3b769"),t.classList.add("tn-static-overflow-hidden-69824400"),t.classList.remove("tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-0-16px-16px-16px-f1aa998c","tn-static-padding-12px-43bef435","tn-static-padding-16px-287f770e","tn-static-padding-20px-769fed37","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c","tn-static-padding-2px-8px-c8eea84a","tn-static-padding-2rem-42aa6d9c"),t.classList.add("tn-static-padding-0-41d7d7e2"),t.classList.remove("tn-static-margin-0-auto-266e9b04","tn-static-margin-0-db0d5f36","tn-static-margin-0-var-size-4-2-77f7dc08","tn-static-margin-2px-0-edce9b14","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-12px-43bef435","tn-static-padding-20px-ebe8e48c"),t.classList.add("tn-static-margin-0-11696618"),t.classList.remove("tn-static-border-1px-solid-var-background-mo-b65b5121","tn-static-padding-12px-43bef435"),t.classList.add("tn-static-border-none-2eda1daa"),t.classList.remove("tn-static-opacity-0-6-d95b59ac","tn-static-opacity-1-c6e7979d"),t.classList.add("tn-static-opacity-0-8d919cb5"),p){let m=getComputedStyle(p).gap,f=parseFloat(m)||4;p.style.setProperty("--tn-drag-gap",`${u+f}px`),this.dragContainer=p,this.currentInsertionGroupKey=a,this.currentInsertionSegmentIndex=-1,this.currentInsertionIndex=-1,this.currentDropSlotElement=null,this.currentDropSlotPosition=null,this.captureDropBaseline()}})}),t.addEventListener("dragend",()=>{o(),Af(t),t.classList.remove("task-card--dragging"),this.cleanupDragShift(),this.containerEl.ownerDocument.body.classList.remove("tn-drag-active"),this.draggedTaskPath=null,this.dragGroupKey=null,this.currentInsertionGroupKey=null,this.currentInsertionSegmentIndex=-1,this.currentInsertionIndex=-1,this.dragOverRafId&&(cancelAnimationFrame(this.dragOverRafId),this.dragOverRafId=0),this.pendingDragClientY=null,this.pendingRender&&(this.containerEl.ownerDocument.defaultView||window).setTimeout(()=>{this.pendingRender&&(this.pendingRender=!1,this.debouncedRefresh())},200)})}shouldEnableManualReordering(){return e0(this.dataAdapter,this.plugin.settings.fieldMapping.sortOrder)}configureCardForManualReordering(t,n,a){this.shouldEnableManualReordering()&&(t.setAttribute("draggable","true"),this.setupCardDragHandlers(t,n,a))}clearDropIndicators(){var t;(t=this.itemsContainer)==null||t.querySelectorAll(".task-card--drop-above, .task-card--drop-below, .task-list-view__drop-slot-before, .task-list-view__drop-slot-after").forEach(n=>{n.classList.remove("task-card--drop-above","task-card--drop-below","task-list-view__drop-slot-before","task-list-view__drop-slot-after")}),this.currentDropSlotElement=null,this.currentDropSlotPosition=null}cleanupDragShift(){var t;this.dragContainer&&this.dragContainer.style.removeProperty("--tn-drag-gap"),(t=this.itemsContainer)==null||t.querySelectorAll(".task-card--drag-shift, .task-card--shift-down, .task-list-view__drop-slot-before, .task-list-view__drop-slot-after").forEach(n=>{n.classList.remove("task-card--drag-shift","task-card--shift-down","task-list-view__drop-slot-before","task-list-view__drop-slot-after")}),this.dragContainer=null,this.currentDropSlotElement=null,this.currentDropSlotPosition=null,this.currentInsertionGroupKey=null,this.currentInsertionSegmentIndex=-1,this.currentInsertionIndex=-1,this.dragBaselineCards=[]}getDropSegments(){return BUe(this.getDropBaselineCards())}reconstructDropTargetFromInsertionSlot(t,n){return UUe(this.getDropSegments(),t,n)}getCurrentInsertionTarget(){return this.currentInsertionSegmentIndex<0||this.currentInsertionIndex<0?null:this.reconstructDropTargetFromInsertionSlot(this.currentInsertionSegmentIndex,this.currentInsertionIndex)}getVisibleSortScopePathsForDrag(t){return this.getVisibleSortScopePaths(t)}getReorderScopeQueueKey(t,n){return n?`manual-sort:${n}:${this.getSortScopeKey(t)}`:"manual-sort:list"}syncGroupedDragMetadata(t){this.taskGroupKeys.clear();let n=new Map;for(let a of t){if(a.type!=="task")continue;this.taskGroupKeys.set(a.task.path,a.groupKey);let i=n.get(a.groupKey)||[];i.push(a.task.path),n.set(a.groupKey,i)}this.setSortScopePaths(n)}updateDropSlotPreview(t){let{element:n,position:a}=t;n===this.currentDropSlotElement&&a===this.currentDropSlotPosition||(this.clearDropIndicators(),n.classList.add(a==="before"?"task-list-view__drop-slot-before":"task-list-view__drop-slot-after"),this.currentDropSlotElement=n,this.currentDropSlotPosition=a)}updateResolvedInsertionSlot(t){let n=this.resolveClosestInsertionSlot(t);return n?(this.currentInsertionGroupKey=n.groupKey,this.currentInsertionSegmentIndex=n.segmentIndex,this.currentInsertionIndex=n.insertionIndex,this.updateDropSlotPreview(n),!0):!1}flushPendingInsertionSlot(t){return this.dragOverRafId&&(cancelAnimationFrame(this.dragOverRafId),this.dragOverRafId=0),this.pendingDragClientY=null,this.updateResolvedInsertionSlot(t)}getVisibleDropCards(){return this.itemsContainer?Array.from(this.itemsContainer.querySelectorAll(".task-card[data-task-path]")).filter(t=>{var a;return t.dataset.taskPath===this.draggedTaskPath?!1:!((a=t.parentElement)==null?void 0:a.closest(".task-card[data-task-path]"))}):[]}captureDropBaseline(t=this.getVisibleDropCards()){if(!this.itemsContainer){this.dragBaselineCards=[];return}let n=this.itemsContainer.getBoundingClientRect(),a=this.itemsContainer.scrollTop;this.dragBaselineCards=t.map(i=>{var c;let s=i.dataset.taskPath;if(!s)return null;let o=i.getBoundingClientRect(),l=o.top-n.top+a;return{path:s,groupKey:(c=this.taskGroupKeys.get(s))!=null?c:null,card:i,top:l,bottom:l+o.height,midpoint:l+o.height/2}}).filter(i=>!!i)}getDropBaselineCards(){let t=this.getVisibleDropCards(),n=t.map(s=>{var o;return(o=s.dataset.taskPath)!=null?o:""}),a=this.dragBaselineCards.map(s=>s.path);return n.length===a.length&&n.every((s,o)=>s===a[o])||this.captureDropBaseline(t),this.dragBaselineCards}getContainerLocalY(t){if(!this.itemsContainer)return t;let n=this.itemsContainer.getBoundingClientRect();return t-n.top+this.itemsContainer.scrollTop}resolveClosestInsertionSlot(t){let n=this.getDropSegments(),a=this.getContainerLocalY(t);return HUe(n,a)}setupContainerDragHandlers(){this.itemsContainer&&(this.itemsContainer.addEventListener("dragenter",t=>{this.draggedTaskPath&&(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="move"))}),this.itemsContainer.addEventListener("dragover",t=>{this.draggedTaskPath&&(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="move"),this.pendingDragClientY=t.clientY,this.dragOverRafId||(this.dragOverRafId=window.requestAnimationFrame(()=>{this.dragOverRafId=0;let n=this.pendingDragClientY;this.pendingDragClientY=null,n!==null&&this.updateResolvedInsertionSlot(n)})))}),this.itemsContainer.addEventListener("dragleave",t=>{var a;let n=t.relatedTarget;(!n||!((a=this.itemsContainer)!=null&&a.contains(n)))&&this.clearDropIndicators()}),this.itemsContainer.addEventListener("drop",t=>{(async()=>{if(t.preventDefault(),!this.draggedTaskPath||!this.flushPendingInsertionSlot(t.clientY)&&this.currentInsertionIndex<0)return;let n=this.draggedTaskPath,a=this.dragGroupKey,i=this.currentInsertionGroupKey,s=this.getVisibleSortScopePathsForDrag(i),o=this.currentInsertionSegmentIndex,l=this.currentInsertionIndex,c=o>=0&&l>=0?this.reconstructDropTargetFromInsertionSlot(o,l):null;!n||!c||(this.clearDropIndicators(),this.cleanupDragShift(),this.draggedTaskPath=null,this.dragGroupKey=null,this.currentInsertionGroupKey=null,this.currentInsertionSegmentIndex=-1,this.currentInsertionIndex=-1,this.pendingDragClientY=null,await this.handleSortOrderDrop(n,c.taskPath,c.above,i,a,s))})()}))}async handleSortOrderDrop(t,n,a,i,s,o){let l=this.getGroupByPropertyId(),c=this.getReorderScopeQueueKey(i,l);await this.dropQueue.enqueue(c,async()=>{var v;let d=GUe({groupByPropertyId:l,sourceGroupKey:s,targetGroupKey:i,lookupMappingKey:b=>this.plugin.fieldMapper.lookupMappingKey(b),isListTypeProperty:b=>this.isListTypeProperty(b)});if(d.isFormulaGrouping){new Ta.Notice(this.plugin.i18n.translate("views.taskList.errors.formulaGroupingReadOnly"));return}let u=await k1(n,a,i,d.cleanGroupBy,t,this.plugin,{taskInfoCache:this.taskInfoCache,visibleTaskPaths:o!=null?o:this.getVisibleSortScopePaths(i),candidateTaskPaths:this.getCandidateSortScopePaths(i)});if(u.sortOrder===null)return;let p=u.additionalWrites.length+1;if(p>this.LARGE_REORDER_WARNING_THRESHOLD&&!await this.confirmLargeReorder(p,i))return;if(!(d.needsGroupUpdate||u!==null)){this.debouncedRefresh();return}let f=this.plugin.app.vault.getAbstractFileByPath(t);if(!f||!(f instanceof Ta.TFile)){this.debouncedRefresh();return}let h=this.plugin.settings.fieldMapping.sortOrder;if(await b1(t,u,this.plugin,{includeDragged:!1}),await Fr(this.plugin.app,f,b=>{var k;KUe({frontmatter:b,plan:d,sortOrderField:h,sortOrder:u.sortOrder,isRecurring:!!((k=this.taskInfoCache.get(t))!=null&&k.recurrence),dateModifiedField:this.plugin.fieldMapper.toUserField("dateModified"),coerceGroupKeyForFrontmatter:(w,S)=>this.coerceGroupKeyForFrontmatter(w,S),updateCompletedDateInFrontmatter:(w,S,C)=>this.plugin.taskService.updateCompletedDateInFrontmatter(w,S,C),getTimestamp:Ge})}),d.needsGroupUpdate&&d.groupByTaskProp)try{let b=(v=this.taskInfoCache.get(t))!=null?v:await this.plugin.cacheManager.getTaskInfo(t);if(b){let k=ZUe(b,{plan:d,isCompletedStatus:w=>this.plugin.statusManager.isCompletedStatus(w),getTimestamp:Ge,getCompletedDate:()=>new Date().toISOString().split("T")[0]});k&&await this.plugin.taskService.applyPropertyChangeSideEffects(f,b,k,d.groupByTaskProp,d.sourceGroupKey,d.normalizedTargetGroupKey)}}catch(b){yo.warn("[TaskNotes][TaskListView] Side-effect error after drop:",{category:"persistence",operation:"side-effect-drop",error:b})}this.applyOptimisticSortOrderResult(t,n,a,i,s,u)||this.debouncedRefresh()})}async renderFlat(t){let n=this.getVisibleProperties();this.setSortScopeCandidatePaths([[null,t.map(c=>c.path)]]);let a=this.applySearchFilter(t);this.setExpandedRelationshipTaskScope(a);let i=this.getTopLevelRenderTasks(a);if(this.setCurrentVisibleTaskPaths(i),this.isSearchWithNoResults(a,t.length)){this.clearAllTaskElements(),this.sortScopeTaskPaths.clear(),this.sortScopeCandidateTaskPaths.clear(),this.itemsContainer&&this.renderSearchNoResults(this.itemsContainer);return}let s=wn(new Date);this.currentTargetDate=s;let o=this.getCardOptions(s),l=i.length>=this.VIRTUAL_SCROLL_THRESHOLD;l&&!this.useVirtualScrolling?(this.cleanupNonVirtualRendering(),this.useVirtualScrolling=!0):!l&&this.useVirtualScrolling&&(this.destroyVirtualScroller(),this.useVirtualScrolling=!1),this.useVirtualScrolling?await this.renderFlatVirtual(i,n,o):await this.renderFlatNormal(i,n,o)}async renderFlatVirtual(t,n,a){if(this.itemsContainer){if(this.taskGroupKeys.clear(),this.setSortScopePaths([[null,t.map(i=>i.path)]]),!this.virtualScroller)this.resetVirtualScrollerIfCardRenderChanged(this.buildCardRenderSignature(n,a)),this.virtualScroller=new Df({container:this.itemsContainer,items:t,overscan:5,renderItem:i=>{if("type"in i)throw new Error("Unexpected grouped item in flat renderer");let s=i,o=Dr(i,this.plugin,n,a);return this.configureCardForManualReordering(o,s,null),this.taskInfoCache.set(s.path,s),this.lastTaskSignatures.set(s.path,this.buildTaskSignature(s)),o},getItemKey:i=>"type"in i?`grouped-${i.groupKey}`:i.path}),window.setTimeout(()=>{var i;(i=this.virtualScroller)==null||i.recalculate()},0);else{if(this.resetVirtualScrollerIfCardRenderChanged(this.buildCardRenderSignature(n,a)),!this.virtualScroller){await this.renderFlatVirtual(t,n,a);return}this.virtualScroller.updateItems(t)}this.lastVirtualItems=t,this.lastFlatPaths=t.map(i=>i.path),this.lastCardRenderSignature=this.buildCardRenderSignature(n,a)}}async renderFlatNormal(t,n,a){if(!this.itemsContainer)return;this.lastVirtualItems=[],this.taskGroupKeys.clear(),this.setSortScopePaths([[null,t.map(c=>c.path)]]);let i=new Set,s=!this.arePathArraysEqual(t,this.lastFlatPaths),o=this.buildCardRenderSignature(n,a),l=o!==this.lastCardRenderSignature;s&&(this.itemsContainer.empty(),this.currentTaskElements.clear());for(let c of t){let d=s?null:this.currentTaskElements.get(c.path)||null,u=this.buildTaskSignature(c),p=this.lastTaskSignatures.get(c.path),m=l||u!==p||!d;if(!d||m){let f=Dr(c,this.plugin,n,a);d&&d.isConnected&&d.replaceWith(f),d=f}d.isConnected||this.itemsContainer.appendChild(d),m&&this.configureCardForManualReordering(d,c,null),this.currentTaskElements.set(c.path,d),this.taskInfoCache.set(c.path,c),this.lastTaskSignatures.set(c.path,u),i.add(c.path)}if(!s&&i.size!==this.currentTaskElements.size){for(let[c,d]of this.currentTaskElements)if(!i.has(c)){d.remove(),this.currentTaskElements.delete(c);let u=this.clickTimeouts.get(c);u&&(window.clearTimeout(u),this.clickTimeouts.delete(c)),this.taskInfoCache.delete(c),this.lastTaskSignatures.delete(c)}}this.lastFlatPaths=t.map(c=>c.path),this.lastCardRenderSignature=o}async renderGroupedBySubProperty(t){let n=this.getVisibleProperties(),a=this.applySearchFilter(t);this.setExpandedRelationshipTaskScope(a);let i=this.getTopLevelRenderTasks(a),s=this.getTopLevelRenderTasks(t);if(this.setCurrentVisibleTaskPaths(i),this.isSearchWithNoResults(a,t.length)){this.clearAllTaskElements(),this.sortScopeTaskPaths.clear(),this.sortScopeCandidateTaskPaths.clear(),this.itemsContainer&&this.renderSearchNoResults(this.itemsContainer);return}let o=wn(new Date);this.currentTargetDate=o;let l=this.getCardOptions(o),c=a0(this.dataAdapter.extractDataItems()),d=jT(i,this.subGroupPropertyId,c),u=jT(s,this.subGroupPropertyId,c);this.setSortScopeCandidatePaths(WUe(u)),this.applyGroupingSnapshot(this.createSubPropertyHierarchySnapshot(d));let p=cQ(d,this.collapsedGroups),m=p.length>=this.VIRTUAL_SCROLL_THRESHOLD;if(this.useVirtualScrolling&&m&&this.virtualScroller){await this.renderGroupedVirtual(p,n,l),this.lastFlatPaths=t.map(f=>f.path);return}this.itemsContainer.empty(),this.currentTaskElements.clear(),this.clearClickTimeouts(),this.taskInfoCache.clear(),this.lastTaskSignatures.clear(),m&&!this.useVirtualScrolling?(this.cleanupNonVirtualRendering(),this.useVirtualScrolling=!0):!m&&this.useVirtualScrolling&&(this.destroyVirtualScroller(),this.useVirtualScrolling=!1),this.useVirtualScrolling?await this.renderGroupedVirtual(p,n,l):await this.renderGroupedNormal(p,n,l),this.lastFlatPaths=t.map(f=>f.path)}async renderGrouped(t){let n=this.getVisibleProperties(),a=this.dataAdapter.getGroupedData(),i=this.applySearchFilter(t);this.setExpandedRelationshipTaskScope(i);let s=this.getTopLevelRenderTasks(i),o=this.getTopLevelRenderTasks(t);if(this.setCurrentVisibleTaskPaths(s),this.isSearchWithNoResults(i,t.length)){this.clearAllTaskElements(),this.sortScopeTaskPaths.clear(),this.sortScopeCandidateTaskPaths.clear(),this.itemsContainer&&this.renderSearchNoResults(this.itemsContainer);return}let l=wn(new Date);this.currentTargetDate=l;let c=this.getCardOptions(l);this.applyGroupingSnapshot(this.createGroupedHierarchySnapshot(a,s));let d=this.subGroupPropertyId?a0(this.dataAdapter.extractDataItems()):new Map,u=lQ({groups:a,taskNotes:s,subGroupPropertyId:this.subGroupPropertyId,pathToProps:d,collapsedGroups:this.collapsedGroups,collapsedSubGroups:this.collapsedSubGroups,convertGroupKeyToString:m=>this.dataAdapter.convertGroupKeyToString(m)});this.setSortScopeCandidatePaths(qUe(a,o,m=>this.dataAdapter.convertGroupKeyToString(m)));let p=u.length>=this.VIRTUAL_SCROLL_THRESHOLD;if(this.useVirtualScrolling&&p&&this.virtualScroller){await this.renderGroupedVirtual(u,n,c),this.lastFlatPaths=t.map(m=>m.path);return}this.itemsContainer.empty(),this.currentTaskElements.clear(),this.clearClickTimeouts(),this.taskInfoCache.clear(),this.lastTaskSignatures.clear(),p&&!this.useVirtualScrolling?(this.cleanupNonVirtualRendering(),this.useVirtualScrolling=!0):!p&&this.useVirtualScrolling&&(this.destroyVirtualScroller(),this.useVirtualScrolling=!1),this.useVirtualScrolling?await this.renderGroupedVirtual(u,n,c):await this.renderGroupedNormal(u,n,c),this.lastFlatPaths=t.map(m=>m.path)}async renderGroupedVirtual(t,n,a){if(this.syncGroupedDragMetadata(t),!this.virtualScroller)this.virtualScroller=new Df({container:this.itemsContainer,items:t,overscan:5,renderItem:i=>{if(!("type"in i))throw new Error("Unexpected flat task item in grouped renderer");if(i.type==="primary-header"||i.type==="sub-header")return this.createGroupHeader(i);{let s=Dr(i.task,this.plugin,n,a);return this.configureCardForManualReordering(s,i.task,i.groupKey),this.taskInfoCache.set(i.task.path,i.task),this.lastTaskSignatures.set(i.task.path,this.buildTaskSignature(i.task)),s}},getItemKey:i=>"type"in i?i.type==="primary-header"?`primary-${i.groupKey}`:i.type==="sub-header"?`sub-${i.groupKey}:${i.subGroupKey}`:i.task.path:i.path}),window.setTimeout(()=>{var i;(i=this.virtualScroller)==null||i.recalculate()},0);else{if(this.resetVirtualScrollerIfCardRenderChanged(this.buildCardRenderSignature(n,a)),!this.virtualScroller){await this.renderGroupedVirtual(t,n,a);return}this.virtualScroller.updateItems(t)}this.lastVirtualItems=t,this.lastCardRenderSignature=this.buildCardRenderSignature(n,a)}async renderGroupedNormal(t,n,a){this.lastVirtualItems=[],this.syncGroupedDragMetadata(t);for(let i of t)if(i.type==="primary-header"||i.type==="sub-header"){let s=this.createGroupHeader(i);this.itemsContainer.appendChild(s)}else{let s=Dr(i.task,this.plugin,n,a);this.configureCardForManualReordering(s,i.task,i.groupKey),this.itemsContainer.appendChild(s),this.currentTaskElements.set(i.task.path,s),this.taskInfoCache.set(i.task.path,i.task),this.lastTaskSignatures.set(i.task.path,this.buildTaskSignature(i.task))}this.lastCardRenderSignature=this.buildCardRenderSignature(n,a)}createGroupHeader(t){let n=this.containerEl.ownerDocument,a=Ne(n,"div");a.className="task-section task-group";let i=t.type==="sub-header",s=i?"sub":"primary";a.dataset.level=s;let o=i?`${t.groupKey}:${t.subGroupKey}`:t.groupKey;i?(a.dataset.groupKey=o,a.dataset.parentKey=t.parentKey):a.dataset.groupKey=o,t.isCollapsed&&a.classList.add("is-collapsed");let l=Ne(n,"h3");l.className="task-group-header task-list-view__group-header",a.appendChild(l);let c=Ne(n,"button");c.className="task-group-toggle",c.type="button",c.setAttribute("aria-label","Toggle group"),c.setAttribute("aria-expanded",String(!t.isCollapsed)),c.dataset.groupKey=o,l.appendChild(c),(0,Ta.setIcon)(c,"chevron-right");let d=c.querySelector("svg");d&&(d.classList.add("chevron"),d.setAttribute("width","16"),d.setAttribute("height","16"));let u=l.createSpan({cls:"task-group-title"}),p=i?t.subGroupTitle:t.groupTitle;return this.renderGroupTitle(u,p),l.createSpan({text:` (${t.taskCount})`,cls:"agenda-view__item-count"}),a}async handleTaskUpdate(t){var n;if(this.taskInfoCache.set(t.path,t),this.lastTaskSignatures.set(t.path,this.buildTaskSignature(t)),this.useVirtualScrolling)this.debouncedRefresh();else{let a=this.currentTaskElements.get(t.path);if(a&&a.isConnected){let i=this.getVisibleProperties(),s=Dr(t,this.plugin,i,this.getCardOptions(this.currentTargetDate));this.configureCardForManualReordering(s,t,(n=this.taskGroupKeys.get(t.path))!=null?n:null),a.replaceWith(s),s.classList.add("task-card--updated"),(this.containerEl.ownerDocument.defaultView||window).setTimeout(()=>{s.classList.remove("task-card--updated")},1e3),this.currentTaskElements.set(t.path,s)}else this.debouncedRefresh()}}renderEmptyState(){let t=this.containerEl.ownerDocument,n=Ne(t,"div");n.className="tn-bases-empty",n.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-0-16px-16px-16px-f1aa998c","tn-static-padding-0-41d7d7e2","tn-static-padding-12px-43bef435","tn-static-padding-16px-287f770e","tn-static-padding-20px-769fed37","tn-static-padding-20px-ebe8e48c","tn-static-padding-2px-8px-c8eea84a","tn-static-padding-2rem-42aa6d9c","tn-static-text-align-center-91a87015"),n.classList.add("tn-static-padding-20px-7a035d95"),n.textContent="No tasknotes tasks found for this base.",this.itemsContainer.appendChild(n)}renderError(t){let n=this.containerEl.ownerDocument,a=Ne(n,"div");a.className="tn-bases-error",a.classList.remove("tn-static-border-radius-4px-c290c56e","tn-static-border-radius-6px-0dc8408c","tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-0-11696618","tn-static-margin-0-auto-266e9b04","tn-static-margin-0-db0d5f36","tn-static-margin-0-var-size-4-2-77f7dc08","tn-static-margin-2px-0-edce9b14","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-0-16px-16px-16px-f1aa998c","tn-static-padding-0-41d7d7e2","tn-static-padding-12px-43bef435","tn-static-padding-16px-287f770e","tn-static-padding-20px-769fed37","tn-static-padding-20px-7a035d95","tn-static-padding-2px-8px-c8eea84a","tn-static-padding-2rem-42aa6d9c"),a.classList.add("tn-static-padding-20px-ebe8e48c"),a.textContent=`Error loading tasks: ${t.message||"Unknown error"}`,this.itemsContainer.appendChild(a)}renderGroupTitle(t,n){let a=this.app||this.plugin.app,i={metadataCache:a.metadataCache,workspace:a.workspace};e1(t,n,i)}onunload(){this.unregisterContainerListeners(),this.destroyVirtualScroller(),this.currentTaskElements.clear(),this.itemsContainer=null,this.lastRenderWasGrouped=!1,this.clearClickTimeouts(),this.taskInfoCache.clear(),this.lastTaskSignatures.clear(),this.lastFlatPaths=[],this.useVirtualScrolling=!1,this.collapsedGroups.clear(),this.collapsedSubGroups.clear(),this.clearGroupingSnapshot(),this.initializedPrimaryGroupKeys.clear(),this.initializedSubGroupKeys.clear(),this.taskGroupKeys.clear(),this.sortScopeTaskPaths.clear()}getEphemeralState(){var a,i;let t=super.getEphemeralState();return{...eHe(t)?t:{},scrollTop:((a=this.rootElement)==null?void 0:a.scrollTop)||0,itemsContainerScrollTop:((i=this.itemsContainer)==null?void 0:i.scrollTop)||0,collapsedGroups:Array.from(this.collapsedGroups),collapsedSubGroups:Array.from(this.collapsedSubGroups)}}hasInitializedCollapseState(){return this.initializedPrimaryGroupKeys.size>0||this.initializedSubGroupKeys.size>0}restoreCollapsedStateFromEphemeral(t){let n=!1;if(t.collapsedGroups&&Array.isArray(t.collapsedGroups)){let a=t.collapsedGroups.filter(i=>typeof i=="string");this.collapsedGroups=new Set(a),n=n||a.length>0}if(t.collapsedSubGroups&&Array.isArray(t.collapsedSubGroups)){let a=t.collapsedSubGroups.filter(i=>typeof i=="string");this.collapsedSubGroups=new Set(a),n=n||a.length>0}this.deferCollapseDefaultForNextSnapshot=n}setEphemeralState(t){if(nRt(t)){if(super.setEphemeralState(t),this.hasInitializedCollapseState()||this.restoreCollapsedStateFromEphemeral(t),typeof t.scrollTop=="number"&&this.rootElement){let n=t.scrollTop;window.requestAnimationFrame(()=>{this.rootElement&&this.rootElement.isConnected&&(this.rootElement.scrollTop=n)})}if(typeof t.itemsContainerScrollTop=="number"){let n=t.itemsContainerScrollTop;window.requestAnimationFrame(()=>{var a;this.itemsContainer&&this.itemsContainer.isConnected&&(this.itemsContainer.scrollTop=n,(a=this.virtualScroller)==null||a.recalculate())})}}}clearAllTaskElements(){var t;this.useVirtualScrolling&&(this.destroyVirtualScroller(),this.useVirtualScrolling=!1),(t=this.itemsContainer)==null||t.empty(),this.currentTaskElements.forEach(n=>n.remove()),this.currentTaskElements.clear(),this.lastFlatPaths=[],this.lastTaskSignatures.clear(),this.taskInfoCache.clear(),this.clearClickTimeouts(),this.taskGroupKeys.clear(),this.sortScopeTaskPaths.clear(),this.expandedRelationshipTaskPaths.clear(),this.expandedRelationshipTaskOrder.clear()}getCardOptions(t){return this.buildTaskCardOptions({targetDate:t,expandedRelationshipFilterMode:this.expandedRelationshipFilterMode,resolveExpandedRelationshipFilterMode:()=>{var n;return XUe((n=this.config)==null?void 0:n.get("expandedRelationshipFilterMode"))},expandedRelationshipTaskPaths:this.expandedRelationshipTaskPaths,expandedRelationshipTaskOrder:this.expandedRelationshipTaskOrder})}getTopLevelRenderTasks(t){return this.hideTopLevelSubtasks?this.filterTopLevelSubtasks(t):[...t]}setExpandedRelationshipTaskScope(t){this.expandedRelationshipTaskPaths.clear(),this.expandedRelationshipTaskOrder.clear(),t.forEach((n,a)=>{this.expandedRelationshipTaskPaths.add(n.path),this.expandedRelationshipTaskOrder.set(n.path,a)})}setCurrentVisibleTaskPaths(t){this.currentVisibleTaskPaths.clear(),this.currentVisibleTaskOrder.clear(),t.forEach((n,a)=>{this.currentVisibleTaskPaths.add(n.path),this.currentVisibleTaskOrder.set(n.path,a)})}clearClickTimeouts(){for(let t of this.clickTimeouts.values())t&&window.clearTimeout(t);this.clickTimeouts.clear()}registerContainerListeners(){!this.itemsContainer||this.containerListenersRegistered||(this.registerDomEvent(this.itemsContainer,"click",this.handleItemClick),this.containerListenersRegistered=!0)}unregisterContainerListeners(){this.containerListenersRegistered=!1}getTaskContextFromEvent(t){let n=t.target;if(!n)return null;let a=n.closest(".task-card");if(!a)return null;let i=a.dataset.taskPath;if(!i)return null;let s=this.taskInfoCache.get(i);return s?{task:s,card:a}:null}isSubGroupKey(t){return t.includes(":")}setSetEntry(t,n,a){if(a){t.add(n);return}t.delete(n)}getCurrentSubGroupKeys(){let t=[];for(let n of this.currentSubGroupKeysByParent.values())t.push(...n);return t}async setSubGroupsCollapsed(t,n){for(let a of this.currentSubGroupKeysByParent.get(t)||[])this.setSetEntry(this.collapsedSubGroups,a,n);this.lastRenderWasGrouped&&await this.refreshGroupedView()}async setAllPrimaryGroupsCollapsed(t){for(let n of this.currentPrimaryGroupKeys)this.setSetEntry(this.collapsedGroups,n,t);this.lastRenderWasGrouped&&await this.refreshGroupedView()}async setAllGroupsAndSubGroupsCollapsed(t){for(let n of this.currentPrimaryGroupKeys)this.setSetEntry(this.collapsedGroups,n,t);for(let n of this.getCurrentSubGroupKeys())this.setSetEntry(this.collapsedSubGroups,n,t);this.lastRenderWasGrouped&&await this.refreshGroupedView()}async handleGroupToggle(t){this.isSubGroupKey(t)?this.setSetEntry(this.collapsedSubGroups,t,!this.collapsedSubGroups.has(t)):this.setSetEntry(this.collapsedGroups,t,!this.collapsedGroups.has(t)),this.lastRenderWasGrouped&&await this.refreshGroupedView()}async refreshGroupedView(){var l;if(!((l=this.data)!=null&&l.data))return;let t=this.dataAdapter.extractDataItems();r0(this.data,t);let n=await wp(t,this.plugin),a=this.applySearchFilter(n);this.setExpandedRelationshipTaskScope(a);let i=this.getTopLevelRenderTasks(a);this.setCurrentVisibleTaskPaths(i);let s=this.subGroupPropertyId?a0(t):new Map,o;if(!this.dataAdapter.isGrouped()&&this.subGroupPropertyId){let c=jT(i,this.subGroupPropertyId,s);this.applyGroupingSnapshot(this.createSubPropertyHierarchySnapshot(c)),o=cQ(c,this.collapsedGroups)}else{let c=this.dataAdapter.getGroupedData();this.applyGroupingSnapshot(this.createGroupedHierarchySnapshot(c,i)),o=lQ({groups:c,taskNotes:i,subGroupPropertyId:this.subGroupPropertyId,pathToProps:s,collapsedGroups:this.collapsedGroups,collapsedSubGroups:this.collapsedSubGroups,convertGroupKeyToString:d=>this.dataAdapter.convertGroupKeyToString(d)})}this.useVirtualScrolling&&this.virtualScroller?(this.syncGroupedDragMetadata(o),this.virtualScroller.updateItems(o)):await this.render()}async handleActionClick(t,n,a,i){switch(t){case"toggle-status":await this.handleToggleStatus(n,i);return;case"priority-menu":this.showPriorityMenu(n,i);return;case"recurrence-menu":this.showRecurrenceMenu(n,i);return;case"reminder-menu":this.showReminderModal(n);return;case"task-context-menu":await qo(i,n.path,this.plugin,this.getTaskActionDate(n));return;case"edit-date":await this.openDateContextMenu(n,a.dataset.tnDateType,i);return;case"toggle-subtasks":await this.toggleSubtasks(n,a);return;case"toggle-blocking-tasks":await this.toggleBlockingTasks(n,a);return;default:await this.handleCardClick(n,i)}}async handleToggleStatus(t,n){try{if(t.recurrence){let a=this.getTaskActionDate(t);await this.plugin.toggleRecurringTaskComplete(t,a)}else await this.plugin.toggleTaskStatus(t)}catch(a){let i=a instanceof Error?a.message:String(a);yo.error("[TaskNotes][TaskListView] Failed to toggle status",{category:"persistence",operation:"toggle-status",details:{taskPath:t.path},error:i}),new Ta.Notice(`Failed to toggle task status: ${i}`)}}getTaskActionDate(t){let n=de(t.scheduled||t.due||"");return n?kt(n):this.currentTargetDate}showPriorityMenu(t,n){new ju({currentValue:t.priority,onSelect:i=>{(async()=>{try{await this.plugin.updateTaskProperty(t,"priority",i)}catch(s){yo.error("[TaskNotes][TaskListView] Failed to update priority",{category:"validation",operation:"update-priority",error:s}),new Ta.Notice("Failed to update priority")}})()},plugin:this.plugin}).show(n)}showRecurrenceMenu(t,n){new Vl({currentValue:typeof t.recurrence=="string"?t.recurrence:void 0,currentAnchor:t.recurrence_anchor||"scheduled",scheduledDate:t.scheduled,onSelect:(i,s)=>{(async()=>{try{await this.plugin.updateTaskProperty(t,"recurrence",i||void 0),s!==void 0&&await this.plugin.updateTaskProperty(t,"recurrence_anchor",s)}catch(o){yo.error("[TaskNotes][TaskListView] Failed to update recurrence",{category:"validation",operation:"update-recurrence",error:o}),new Ta.Notice("Failed to update recurrence")}})()},app:this.plugin.app,plugin:this.plugin}).show(n)}showReminderModal(t){new ql(this.plugin.app,this.plugin,t,a=>{(async()=>{try{await this.plugin.updateTaskProperty(t,"reminders",a.length>0?a:void 0)}catch(i){yo.error("[TaskNotes][TaskListView] Failed to update reminders",{category:"validation",operation:"update-reminders",error:i}),new Ta.Notice("Failed to update reminders")}})()}).open()}async openDateContextMenu(t,n,a){if(!n)return;let i=n==="due"?t.due:t.scheduled;new Bl({currentValue:de(i||""),currentTime:Oi(i||""),onSelect:(o,l)=>{(async()=>{try{let c;o?l?c=`${o}T${l}`:c=o:c=void 0,await this.plugin.updateTaskProperty(t,n,c)}catch(c){let d=c instanceof Error?c.message:String(c);yo.error("[TaskNotes][TaskListView] Failed to update date",{category:"validation",operation:"update-date",details:{taskPath:t.path,dateType:n},error:d}),new Ta.Notice(`Failed to update ${n} date: ${d}`)}})()},dateRole:n,plugin:this.plugin,app:this.app||this.plugin.app}).show(a)}async handleCardClick(t,n){if(this.handleSelectionClick(n,t.path))return;if(this.plugin.settings.doubleClickAction==="none"){await this.executeSingleClickAction(t,n);return}let a=this.clickTimeouts.get(t.path);if(a)window.clearTimeout(a),this.clickTimeouts.delete(t.path),await this.executeDoubleClickAction(t,n);else{let s=(this.containerEl.ownerDocument.defaultView||window).setTimeout(()=>{(async()=>(this.clickTimeouts.delete(t.path),await this.executeSingleClickAction(t,n)))()},250);this.clickTimeouts.set(t.path,s)}}async executeSingleClickAction(t,n){if(n.ctrlKey||n.metaKey){this.openTaskNote(t,!0);return}switch(this.plugin.settings.singleClickAction){case"edit":await this.editTask(t);break;case"openNote":this.openTaskNote(t,!1);break;default:break}}async executeDoubleClickAction(t,n){switch(this.plugin.settings.doubleClickAction){case"edit":await this.editTask(t);break;case"openNote":this.openTaskNote(t,!1);break;default:break}}async editTask(t){await this.plugin.openTaskEditModal(t)}openTaskNote(t,n){let a=this.app||this.plugin.app,i=a.vault.getAbstractFileByPath(t.path);i instanceof Ta.TFile&&(n?a.workspace.openLinkText(t.path,"",!0):a.workspace.getLeaf(!1).openFile(i))}async toggleSubtasks(t,n){var a;try{if(!this.plugin.expandedProjectsService){yo.error("[TaskNotes][TaskListView] ExpandedProjectsService not initialized",{category:"stale-data",operation:"expandedprojectsservice-not-initialized"}),new Ta.Notice("Service not available. Please try reloading the plugin.");return}let i=this.plugin.expandedProjectsService.toggle(t.path,((a=this.plugin.settings)==null?void 0:a.expandSubtasksByDefault)===!0);n.classList.toggle("task-card__chevron--expanded",i),n.setAttribute("aria-label",i?"Collapse subtasks":"Expand subtasks");let s=n.closest(".task-card");if(s){let{toggleSubtasks:o}=await Promise.resolve().then(()=>(mi(),qk));await o(s,t,this.plugin,i)}}catch(i){yo.error("[TaskNotes][TaskListView] Failed to toggle subtasks",{category:"persistence",operation:"toggle-subtasks",error:i}),new Ta.Notice("Failed to toggle subtasks")}}async toggleBlockingTasks(t,n){try{let a=n.classList.toggle("task-card__blocking-toggle--expanded"),i=n.closest(".task-card");if(i){let{toggleBlockingTasks:s}=await Promise.resolve().then(()=>(mi(),qk));await s(i,t,this.plugin,a)}}catch(a){yo.error("[TaskNotes][TaskListView] Failed to toggle blocking tasks",{category:"persistence",operation:"toggle-blocking-tasks",error:a}),new Ta.Notice("Failed to toggle blocking tasks")}}arePathArraysEqual(t,n){if(t.length!==n.length)return!1;for(let a=0;a<t.length;a++)if(t[a].path!==n[a])return!1;return!0}cleanupNonVirtualRendering(){var t;(t=this.itemsContainer)==null||t.empty(),this.currentTaskElements.clear(),this.clearClickTimeouts()}destroyVirtualScroller(){this.virtualScroller&&(this.virtualScroller.destroy(),this.virtualScroller=null),this.lastVirtualItems=[]}resetVirtualScrollerIfCardRenderChanged(t){this.virtualScroller&&this.lastCardRenderSignature!==""&&this.lastCardRenderSignature!==t&&this.destroyVirtualScroller()}buildTaskSignature(t){var n,a,i,s;return`${t.path}|${t.title}|${t.status}|${t.priority}|${t.due}|${t.scheduled}|${t.recurrence}|${t.archived}|${t.sortOrder}|${(n=t.complete_instances)==null?void 0:n.join(",")}|${(a=t.reminders)==null?void 0:a.length}|${(i=t.blocking)==null?void 0:i.length}|${(s=t.blockedBy)==null?void 0:s.length}`}buildCardRenderSignature(t,n){var i,s,o;let a=n.propertyLabels?Object.entries(n.propertyLabels).sort(([l],[c])=>l.localeCompare(c)):[];return JSON.stringify({visibleProperties:t!=null?t:null,propertyLabels:a,expandedRelationshipFilterMode:(i=n.expandedRelationshipFilterMode)!=null?i:null,targetDate:(o=(s=n.targetDate)==null?void 0:s.toISOString().slice(0,10))!=null?o:null})}}});async function pQ({action:r,task:e,target:t,event:n,plugin:a,app:i}){let[{DateContextMenu:s},{PriorityContextMenu:o},{RecurrenceContextMenu:l},{ReminderModal:c},{showTaskContextMenu:d,toggleBlockingTasks:u,toggleSubtasks:p}]=await Promise.all([Promise.resolve().then(()=>(bk(),xbe)),Promise.resolve().then(()=>(dE(),tTe)),Promise.resolve().then(()=>(Pk(),lTe)),Promise.resolve().then(()=>(Mk(),cTe)),Promise.resolve().then(()=>(mi(),qk))]);switch(r){case"toggle-status":await aRt(e,n,a);return;case"priority-menu":iRt(e,n,a,o);return;case"recurrence-menu":sRt(e,n,a,l);return;case"reminder-menu":oRt(e,a,c);return;case"task-context-menu":await d(n,e.path,a,d0(e));return;case"edit-date":await lRt(e,t.dataset.tnDateType,n,a,i,s);return;case"toggle-subtasks":await cRt(e,t,a,p);return;case"toggle-blocking-tasks":await dRt(e,t,a,u);return}}async function aRt(r,e,t){try{r.recurrence?await t.toggleRecurringTaskComplete(r,d0(r)):await t.toggleTaskStatus(r)}catch(n){c0.error("[TaskNotes][KanbanView] Failed to toggle status",{category:"internal",operation:"toggle-status",error:n})}}function d0(r){let e=de(r.scheduled||r.due||"");return e?kt(e):wn(new Date)}function iRt(r,e,t,n){new n({currentValue:r.priority,onSelect:i=>{(async()=>{try{await t.updateTaskProperty(r,"priority",i)}catch(s){c0.error("[TaskNotes][KanbanView] Failed to update priority",{category:"validation",operation:"update-priority",error:s})}})()},plugin:t}).show(e)}function sRt(r,e,t,n){new n({currentValue:typeof r.recurrence=="string"?r.recurrence:void 0,currentAnchor:r.recurrence_anchor||"scheduled",scheduledDate:r.scheduled,onSelect:(i,s)=>{(async()=>{try{await t.updateTaskProperty(r,"recurrence",i||void 0),s!==void 0&&await t.updateTaskProperty(r,"recurrence_anchor",s)}catch(o){c0.error("[TaskNotes][KanbanView] Failed to update recurrence",{category:"validation",operation:"update-recurrence",error:o})}})()},app:t.app,plugin:t}).show(e)}function oRt(r,e,t){new t(e.app,e,r,a=>{(async()=>{try{await e.updateTaskProperty(r,"reminders",a.length>0?a:void 0)}catch(i){c0.error("[TaskNotes][KanbanView] Failed to update reminders",{category:"validation",operation:"update-reminders",error:i})}})()}).open()}async function lRt(r,e,t,n,a,i){if(!e)return;let{getDatePart:s,getTimePart:o}=await Promise.resolve().then(()=>(Me(),U2)),l=e==="due"?r.due:r.scheduled;new i({currentValue:s(l||""),currentTime:o(l||""),onSelect:(d,u)=>{(async()=>{try{let p;d?u?p=`${d}T${u}`:p=d:p=void 0,await n.updateTaskProperty(r,e,p)}catch(p){c0.error("[TaskNotes][KanbanView] Failed to update date",{category:"validation",operation:"update-date",error:p})}})()},dateRole:e,plugin:n,app:a}).show(t)}async function cRt(r,e,t,n){var o,l;let a=e.closest(".task-card");if(!a)return;let s=!(((o=t.expandedProjectsService)==null?void 0:o.isExpanded(r.path))||!1);(l=t.expandedProjectsService)==null||l.setExpanded(r.path,s),e.classList.toggle("is-rotated",s),await n(a,r,t,s)}async function dRt(r,e,t,n){let a=e.closest(".task-card");if(!a)return;let i=e.classList.toggle("task-card__blocking-toggle--expanded");await n(a,r,t,i)}var c0,nHe=y(()=>{Me();K();c0=N({tag:"Bases/KanbanCardActions"})});function aHe(r,e,t){return Math.min(Math.max(r,e),t)}function uRt(r,e,t){let n=Math.max(0,r.width),a=Math.max(0,r.height);return{x:aHe(e-r.left,0,n),y:aHe(t-r.top,0,a)}}function iHe(r,e,t){let n=r.dataTransfer;if(!n||typeof n.setDragImage!="function")return null;let a=e.ownerDocument,i=a.body;if(!i)return null;let s=e.getBoundingClientRect(),o=e.cloneNode(!0);o.classList.add("tasknotes-plugin"),t&&o.classList.add(t),o.setAttribute("aria-hidden","true"),o.style.width=`${Math.max(0,s.width)}px`,o.style.height=`${Math.max(0,s.height)}px`,i.appendChild(o);let l=uRt(s,r.clientX,r.clientY);n.setDragImage(o,l.x,l.y);let c=a.defaultView;return(c!=null?c:window).setTimeout(()=>{o.remove()},0),o}var sHe=y(()=>{});function pRt(r){let e=r;return!e||typeof e.nodeType!="number"?null:e.nodeType===Node.ELEMENT_NODE?e:e.parentElement}function mQ(r,e){let t=pRt(r);if(!t||!e.contains(t))return null;let n=t.closest(".task-card__subtasks .task-card[data-task-path]");if(!n||!e.contains(n))return null;let a=n.dataset.taskPath;return a?{taskPath:a,sourceElement:n}:null}function D1(r,e){return r?{taskPath:r,above:e}:void 0}function u0(r,e){return r.length>0?[...r]:[e]}function fQ({dropTarget:r,isCrossScope:e,targetInDropScope:t,fallbackDropTarget:n}){if(!(r&&e&&!t))return!r&&!e?n:r}function lHe(r,e,t){let n=r.getBoundingClientRect();return{taskPath:e,above:t<n.top+n.height/2}}function hQ({cardsContainer:r,draggedTaskPaths:e,currentInsertionIndex:t,clientY:n}){let a=Array.from(r.querySelectorAll(".kanban-view__card-wrapper")).filter(s=>{let o=s.dataset.taskPath;return!!o&&!e.includes(o)});if(a.length===0)return;if(n!==void 0&&Number.isFinite(n)){let s=a.findIndex(o=>{let l=o.getBoundingClientRect();return n<l.top+l.height/2});return s===-1?{taskPath:a[a.length-1].dataset.taskPath,above:!1}:{taskPath:a[s].dataset.taskPath,above:!0}}let i=t>=0?Math.min(t,a.length):a.length;return i===0?{taskPath:a[0].dataset.taskPath,above:!0}:{taskPath:a[i-1].dataset.taskPath,above:!1}}function cHe(r,e,t){r.classList.remove("kanban-view__cards--drop-marker-end");for(let a of e)a.classList.remove("kanban-view__card-wrapper--drop-marker");let n=e[t];if(n){n.classList.add("kanban-view__card-wrapper--drop-marker");return}e.length>0&&t>=e.length&&r.classList.add("kanban-view__cards--drop-marker-end")}function gQ(r){r.nodeType===Node.ELEMENT_NODE&&r.classList.remove("kanban-view__card-wrapper--drop-marker","kanban-view__cards--drop-marker-end"),r.querySelectorAll(".kanban-view__card-wrapper--drop-marker").forEach(e=>{e.classList.remove("kanban-view__card-wrapper--drop-marker")}),r.querySelectorAll(".kanban-view__cards--drop-marker-end").forEach(e=>{e.classList.remove("kanban-view__cards--drop-marker-end")})}function dHe({draggedPaths:r,dropTarget:e,targetContainer:t,currentTaskElements:n,removeEmptyCellHint:a,log:i}){var d,u;if(r.length===0)return i==null||i("OPTIMISTIC-REORDER: bail \u2014 no dragged paths"),!1;let s=()=>{let p=[];for(let m of r){let f=n.get(m);if(!f)return i==null||i("OPTIMISTIC-REORDER: bail \u2014 element not in currentTaskElements",{path:m.split("/").pop()}),null;p.push(f)}return p};if(!e){if(!t)return i==null||i("OPTIMISTIC-REORDER: bail \u2014 no dropTarget AND no targetContainer"),!1;let p=s();if(!p)return!1;a==null||a(t),i==null||i("OPTIMISTIC-REORDER: cross-column append path",{paths:r.map(m=>m.split("/").pop()),containerChildCount:t.childElementCount,containerClass:t.className});for(let m of p){let f=m.parentElement;i==null||i("OPTIMISTIC-REORDER: moving element",{path:(d=m.dataset.taskPath)==null?void 0:d.split("/").pop(),oldParentClass:f==null?void 0:f.className,oldParentChildCount:f==null?void 0:f.childElementCount,sameContainer:f===t,elCurrentStyles:m.style.cssText.slice(0,120)}),Af(m),m.classList.remove("kanban-view__card--dragging"),t.appendChild(m)}return i==null||i("OPTIMISTIC-REORDER: cross-column append SUCCESS",{containerChildCount:t.childElementCount}),!0}i==null||i("OPTIMISTIC-REORDER: drop-on-card path",{paths:r.map(p=>p.split("/").pop()),targetCard:e.taskPath.split("/").pop(),above:e.above,hasContainer:!!t});let o=n.get(e.taskPath);if(!o)return i==null||i("OPTIMISTIC-REORDER: bail \u2014 target element not in currentTaskElements",{target:e.taskPath.split("/").pop()}),!1;let l=t||o.parentElement;if(!l)return i==null||i("OPTIMISTIC-REORDER: bail \u2014 no container resolved"),!1;if(!l.contains(o))return i==null||i("OPTIMISTIC-REORDER: bail \u2014 targetEl not in container",{containerClass:l.className,targetElParentClass:(u=o.parentElement)==null?void 0:u.className}),!1;let c=s();if(!c)return!1;a==null||a(l);for(let p of c)Af(p),p.classList.remove("kanban-view__card--dragging"),e.above?l.insertBefore(p,o):l.insertBefore(p,o.nextSibling);return i==null||i("OPTIMISTIC-REORDER: drop-on-card SUCCESS"),!0}function oHe(r){return r.replace(/^(note\.|file\.|task\.)/,"")}function uHe({path:r,sourceColumn:e,sourceSwimlane:t,newGroupValue:n,newSwimLaneValue:a,groupByPropertyId:i,swimLanePropertyId:s,groupByTaskProp:o,swimlaneTaskProp:l,isGroupByListProperty:c,isSwimlaneListProperty:d}){let u=e!==n,p=a!==null&&!!s&&t!==a,m=u?o:p?l:null,f=u?e:t,h=u?n:a;return{path:r,sourceColumn:e,sourceSwimlane:t,needsGroupUpdate:u,needsSwimlaneUpdate:p,groupByFrontmatterKey:oHe(i),swimlaneFrontmatterKey:s?oHe(s):void 0,groupByTaskProp:o,swimlaneTaskProp:l,changedTaskProp:m,oldPropValue:f,newPropValue:h,newGroupValue:n,newSwimLaneValue:a,isGroupByListProperty:c,isSwimlaneListProperty:d}}function pHe(r,e){return r.needsGroupUpdate||r.needsSwimlaneUpdate||e}function mRt(r){return Array.isArray(r)?r:r?[r]:[]}function E1(r,e,t){let n=mRt(r).filter(a=>a!==e);return!n.includes(t)&&t!=="None"&&n.push(t),n.length>0?n:[]}function mHe(r,e,t){e.needsGroupUpdate&&(e.isGroupByListProperty&&e.sourceColumn?r[e.groupByFrontmatterKey]=E1(r[e.groupByFrontmatterKey],e.sourceColumn,e.newGroupValue):r[e.groupByFrontmatterKey]=t.coerceGroupValue(e.groupByFrontmatterKey,e.newGroupValue)),e.needsSwimlaneUpdate&&e.swimlaneFrontmatterKey&&e.newSwimLaneValue!==null&&(e.isSwimlaneListProperty&&e.sourceSwimlane?r[e.swimlaneFrontmatterKey]=E1(r[e.swimlaneFrontmatterKey],e.sourceSwimlane,e.newSwimLaneValue):r[e.swimlaneFrontmatterKey]=t.coerceGroupValue(e.swimlaneFrontmatterKey,e.newSwimLaneValue))}function fHe({plan:r,task:e,dateModifiedField:t,dateModifiedValue:n}){let a=r.needsGroupUpdate&&r.groupByTaskProp==="status"?r.newGroupValue:r.needsSwimlaneUpdate&&r.swimlaneTaskProp==="status"&&r.newSwimLaneValue!==null?r.newSwimLaneValue:null;return a===null?null:{statusValue:a,isRecurring:!!(e!=null&&e.recurrence),dateModifiedField:t,dateModifiedValue:n}}function hHe({plan:r,originalTask:e,dateModifiedValue:t,isCompletedStatus:n}){if(!r.changedTaskProp||!e)return null;let a=r.changedTaskProp,i=fRt(r,e,a),s={...e,[a]:i,dateModified:t};return a==="status"&&!e.recurrence&&(s.completedDate=typeof i=="string"&&n(i)?new Date().toISOString().split("T")[0]:void 0),{changedTaskProp:a,oldPropValue:r.oldPropValue,newPropValue:i,updatedTask:s}}function fRt(r,e,t){let n=e[t];return r.needsGroupUpdate&&r.isGroupByListProperty?E1(n,r.sourceColumn,r.newGroupValue):r.needsSwimlaneUpdate&&r.isSwimlaneListProperty&&r.newSwimLaneValue!==null?E1(n,r.sourceSwimlane,r.newSwimLaneValue):r.newPropValue}var gHe=y(()=>{T1()});function yHe(r){let{frontmatter:e,propertyId:t,groupKey:n}=r;if(!t||!n||n==="None")return;let a=gRt({propertyId:t,propertyMapper:r.propertyMapper,fieldMapper:r.fieldMapper,userFields:r.userFields});if(a){if(yRt({property:a,fieldMapper:r.fieldMapper,userFields:r.userFields,isListTypeProperty:r.isListTypeProperty})){kRt(e,a,n);return}e[a]=r.coerceGroupKeyForFrontmatter(a,n)}}function gRt(r){var n;if(r.propertyId.startsWith("file.")||r.propertyId.startsWith("formula."))return null;let e=r.propertyMapper.basesToUserProperty(r.propertyId);return new Set([...hRt.map(a=>r.fieldMapper.toUserField(a)),"tags"]).has(e)||(n=r.userFields)!=null&&n.some(a=>a.key===e)?e:null}function yRt(r){var t;if(vRt(r.fieldMapper).has(r.property))return!0;let e=(t=r.userFields)==null?void 0:t.find(n=>n.key===r.property);return(e==null?void 0:e.type)==="list"||r.isListTypeProperty(r.property)}function vRt(r){return new Set(["tags",r.toUserField("contexts"),r.toUserField("projects"),r.toUserField("blockedBy")])}function kRt(r,e,t){let n=r[e],a=Array.isArray(n)?n.filter(i=>typeof i=="string"):typeof n=="string"?[n]:[];a.includes(t)||(r[e]=[...a,t])}var hRt,vHe=y(()=>{hRt=["status","priority","due","scheduled","contexts","projects","timeEstimate","recurrence","blockedBy"]});function xHe(r){return typeof r=="object"&&r!==null}function P1(r){let e=new Set,t=[];for(let n of r){let a=J(n).trim();!a||e.has(a)||(e.add(a),t.push(a))}return t}function yQ(r){if(r==null)return{};let e=r;if(typeof r=="string"){let n=r.trim();if(!n)return{};try{e=JSON.parse(n)}catch(a){return{}}}if(!xHe(e))return{};let t={};for(let[n,a]of Object.entries(e)){if(!Array.isArray(a))continue;let i=P1(a);i.length>0&&(t[n]=i)}return t}function CHe(r){let e=typeof r=="number"?r:typeof r=="string"&&r.trim()?Number(r):Number.NaN;return!Number.isFinite(e)||e<=0?null:Math.floor(e)}function vQ(r){if(r==null)return{};let e=r;if(typeof r=="string"){let n=r.trim();if(!n)return{};try{e=JSON.parse(n)}catch(a){return{}}}if(!xHe(e))return{};let t={};for(let[n,a]of Object.entries(e)){let i=J(n).trim(),s=CHe(a);i&&s!==null&&(t[i]=s)}return t}function M1(r,e){let t=CHe(e);return t===null?{text:` (${r})`,isExceeded:!1}:{text:` (${r}/${t})`,isExceeded:r>t}}function kQ(r){if(r==null)return[];if(Array.isArray(r))return P1(r);if(typeof r!="string")return[];let e=r.trim();if(!e)return[];if(e.startsWith("["))try{let t=JSON.parse(e);if(Array.isArray(t))return P1(t)}catch(t){}return P1(e.split(","))}function EHe(r,e){for(let t of e)r.has(t)||r.set(t,[])}function DHe(r,e){let t=new Set(e),n=new Set(r),a=e.filter(s=>n.has(s)),i=r.filter(s=>!t.has(s)).sort();return[...a,...i]}function bQ(r,e,t,n){return!r||t.length>0||n.includes(e)}function bRt(r,e){var n;if(e.startsWith("formula."))return(n=r[e])!=null?n:null;let t=wi(e);return r[e]!==void 0?r[e]:r[t]!==void 0?r[t]:null}function PHe(r,e,t){return t(r)?!0:new Set(["contexts",e.contextsField,"projects",e.projectsField,"tags","aliases"]).has(r)}function MHe(r,e,t,n){return e==="contexts"||e===n.contextsField?r.contexts:e==="projects"||e===n.projectsField?r.projects:e==="tags"?r.tags:(t.get(r.path)||{})[e]}function A1(r,e){return r?wi(r)===e:!1}function TQ(r,e){return r?wi(r)===e:!1}function AHe(r,e=()=>null){let t=new Set;for(let n of[r.value,r.label]){let a=n.trim();if(!a)continue;t.add(a);let i=e(a);i&&t.add(i)}return t}function wQ(r,e,t,n){let a=r.trim();if(!a||a==="None")return;let i=e.find(d=>d.value===a);if(i)return i;let s=t(a),o=e.find(d=>d.value===s);if(o)return o;let l=e.filter(d=>d.label===a);if(l.length===1)return l[0];let c=e.filter(d=>n(d).has(a));return c.length===1?c[0]:void 0}function _He(r){var e,t;return r.groupKey.trim()==="None"?r.groupKey:A1(r.propertyId,r.fields.statusField)?(t=(e=wQ(r.groupKey,r.statuses,r.normalizeStatusValue,r.getStatusGroupKeyAliases))==null?void 0:e.value)!=null?t:r.groupKey:TQ(r.propertyId,r.fields.priorityField)?r.normalizePriorityValue(r.groupKey):r.groupKey}function TRt(r,e,t){let n=t(e);for(let a of r.keys())if(n.has(a.trim()))return!0;return!1}function wRt(r,e,t,n,a){if(n(e))for(let i of t)TRt(r,i,a)||r.set(i.value,[])}function SRt(r,e,t,n){if(n(e))for(let a of t)r.has(a.value)||r.set(a.value,[])}function p0(r){var e,t;if(r==null)return"None";if(typeof r=="object"&&r!==null&&typeof r.toString=="function"){let n=r;if(((e=n.constructor)==null?void 0:e.name)==="NullValue"||n.isTruthy&&!n.isTruthy())return"None";if(((t=n.constructor)==null?void 0:t.name)==="ListValue"||Array.isArray(n.value)){let i=n.value||[];return i.length===0?"None":i.map(s=>p0(s)).join(", ")}return n.toString()||"None"}return typeof r=="string"?r||"None":typeof r=="number"?String(r):typeof r=="boolean"?r?"True":"False":Array.isArray(r)?r.length>0?r.map(n=>p0(n)).join(", "):"None":J(r)||"None"}function IHe(r){let e;Array.isArray(r)?e=r:r==null?e=[]:typeof r=="object"&&r!==null&&Array.isArray(r.value)?e=r.value||[]:e=[r];let t=e.map(n=>p0(n)).filter(n=>n!=="None");return t.length>0?Array.from(new Set(t)):["None"]}function xRt(r,e){for(let t of r.values())t.sort((n,a)=>{var i,s;return((i=e.get(n.path))!=null?i:Number.MAX_SAFE_INTEGER)-((s=e.get(a.path))!=null?s:Number.MAX_SAFE_INTEGER)})}function CRt(r,e){if(e)for(let t of r.values())t.sort((n,a)=>{let i=e.get(n.path),s=e.get(a.path);return i!=null&&s!=null?J(i).localeCompare(J(s)):i!=null?-1:s!=null?1:0})}function kHe(r,e,t){var n;r.has(e)||r.set(e,[]),(n=r.get(e))==null||n.push(t)}function NHe(r){if(!r.swimLanePropertyId)return["None"];let e=wi(r.swimLanePropertyId);if(r.explodeListColumns&&r.isListTypeProperty(e)){let a=r.getListPropertyValue(r.task,e);return IHe(a)}let t=r.pathToProps.get(r.task.path)||{},n=p0(bRt(t,r.swimLanePropertyId));return[r.canonicalizeGroupKey(n,r.swimLanePropertyId)]}function RHe(r){let e=new Map,t=new Map(r.taskNotes.map((o,l)=>[o.path,l])),n=wi(r.groupByPropertyId),a=r.isStatusGroupingProperty(r.groupByPropertyId),i=r.isPriorityGroupingProperty(r.groupByPropertyId);if(r.explodeListColumns&&r.isListTypeProperty(n))for(let o of r.taskNotes){let l=r.getListPropertyValue(o,n),c=IHe(l);for(let d of c)kHe(e,d,o)}else if(a||i)for(let o of r.taskNotes){let l=a?o.status:o.priority,c=p0(l),d=r.canonicalizeGroupKey(c,r.groupByPropertyId);kHe(e,d,o)}else{let o=new Map(r.taskNotes.map(l=>[l.path,l]));for(let l of r.groupedData){let c=r.convertGroupKeyToString(l.key),d=r.canonicalizeGroupKey(c,r.groupByPropertyId),u=e.get(d)||[];for(let p of l.entries){let m=o.get(p.file.path);m&&u.push(m)}e.has(d)||e.set(d,u)}}return xRt(e,t),CRt(e,r.sortOrderValues),wRt(e,r.groupByPropertyId,r.statusConfigs,r.isStatusGroupingProperty,r.getStatusGroupKeyAliases),SRt(e,r.groupByPropertyId,r.priorityConfigs,r.isPriorityGroupingProperty),EHe(e,r.pinnedColumns),e}function SQ(r,e,t){var i;let n=new Set;for(let s of r)for(let o of t(s))n.add(o);let a=new Map;for(let s of n){let o=new Map;a.set(s,o);for(let[l]of e)o.set(l,[])}for(let[s,o]of e)for(let l of o)for(let c of t(l)){let d=a.get(c);d&&d.has(s)&&((i=d.get(s))==null||i.push(l))}return a}function xQ(r,e){var n,a,i;let t=new Map(e.map(s=>[s,0]));for(let s of r.values())for(let o of e)t.set(o,((n=t.get(o))!=null?n:0)+((i=(a=s.get(o))==null?void 0:a.length)!=null?i:0));return t}function FHe(r,e,t,n){if(!t)return[...r];let a=xQ(e,r);return r.filter(i=>{var s;return((s=a.get(i))!=null?s:0)>0||n.includes(i)})}function bHe(r,e){return r==="None"&&e!=="None"?1:e==="None"&&r!=="None"?-1:r.localeCompare(e)}function OHe(r,e){var t;if(e)return(t=r[e])!=null?t:r[wi(e)]}function THe(r,e){let t=new Set(r),n=new Set(e),a=e.filter(s=>t.has(s)),i=r.filter(s=>!n.has(s));return[...a,...i]}function wHe(r){let e=[...r.actualKeys];return r.isPriorityField(r.groupBy)?THe(e.sort((t,n)=>r.getPriorityWeight(n)-r.getPriorityWeight(t)||bHe(t,n)),r.pinnedColumns):r.isStatusField(r.groupBy)?THe(e.sort((t,n)=>{let a=r.findStatusConfig(t),i=r.findStatusConfig(n);return a&&i?a.order-i.order||t.localeCompare(n):a?-1:i?1:bHe(t,n)}),r.pinnedColumns):DHe([...r.actualKeys],r.pinnedColumns)}function LHe(r){let e=OHe(r.columnOrders,r.groupBy);if(!e||e.length===0)return wHe(r);let t=[],n=[],a=new Set(r.actualKeys);for(let i of e)(!r.hideEmptyColumns||a.has(i))&&t.push(i);for(let i of r.actualKeys)e.includes(i)||n.push(i);return[...t,...wHe({...r,actualKeys:n})]}function SHe(r){let e=[...r.actualKeys];return r.isPriorityField(r.swimLanePropertyId)?e.sort((t,n)=>r.getPriorityWeight(n)-r.getPriorityWeight(t)||t.localeCompare(n)):r.isStatusField(r.swimLanePropertyId)?e.sort((t,n)=>r.getStatusOrder(t)-r.getStatusOrder(n)||t.localeCompare(n)):e}function CQ(r){let e=OHe(r.swimLaneOrders,r.swimLanePropertyId);if(!e||e.length===0)return SHe(r);let t=new Set(r.actualKeys),n=e.filter(i=>t.has(i)||!r.hideEmptySwimLanes),a=SHe({...r,actualKeys:r.actualKeys.filter(i=>!e.includes(i))});return[...n,...a]}function ERt(r){return new Map(r.map(e=>[e,[]]))}function DRt(r){return Array.from(r.values()).reduce((e,t)=>e+t.length,0)}function zHe(r){var n;let e=CQ({swimLanePropertyId:r.swimLanePropertyId,actualKeys:Array.from(r.swimLanes.keys()),swimLaneOrders:r.swimLaneOrders,hideEmptySwimLanes:r.hideEmptySwimLanes,isPriorityField:r.isPriorityField,isStatusField:r.isStatusField,getPriorityWeight:r.getPriorityWeight,getStatusOrder:r.getStatusOrder}),t=new Map;for(let a of e){let i=(n=r.swimLanes.get(a))!=null?n:ERt(r.columnKeys);r.hideEmptySwimLanes&&DRt(i)===0||t.set(a,i instanceof Map?i:new Map(Array.from(i.entries()).map(([s,o])=>[s,[...o]])))}return t}var EQ=y(()=>{kr();t0()});function PQ(r){return typeof r=="object"&&r!==null}function PRt(r){return PQ(r)}function _1(r){return r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function MRt(r){if(!PQ(r.columnScroll))return null;let e={};for(let[t,n]of Object.entries(r.columnScroll))typeof n=="number"&&(e[t]=n);return e}function jHe(r){if(typeof r=="number")return r===1?"show-all":"inherit";let e=J(r).trim().toLowerCase().replace(/^['"]|['"]$/g,"").replace(/[_\s]+/g,"-");return e==="show-all"||e==="1"?"show-all":"inherit"}function $He(r,e=navigator,t=window){var n,a,i,s;return r||typeof(e==null?void 0:e.maxTouchPoints)=="number"&&e.maxTouchPoints>0?!0:!!((a=(n=t==null?void 0:t.matchMedia)==null?void 0:n.call(t,"(any-pointer: coarse)"))!=null&&a.matches||(s=(i=t==null?void 0:t.matchMedia)==null?void 0:i.call(t,"(pointer: coarse)"))!=null&&s.matches)}function ARt(r){return r==="compact"?"compact":"default"}function BHe(r){return function(e,t){if(!t)throw My.error("[TaskNotes][KanbanView] No containerEl provided",{category:"stale-data",operation:"no-containerel-provided"}),new Error("KanbanView requires a containerEl");return new DQ(e,t,r)}}var Kn,My,$T,DQ,UHe=y(()=>{Kn=require("obsidian");QP();ZP();mi();BZ();ro();UZ();Me();qn();kr();t0();dQ();nHe();T1();sHe();ms();gHe();n0();vHe();sQ();EQ();K();Ba();EQ();My=N({tag:"Bases/KanbanView"});$T=class $T extends Rd{constructor(t,n,a){super(t,n,a);this.type="tasknotesKanban";this.boardEl=null;this.currentTaskElements=new Map;this.draggedTaskPath=null;this.draggedTaskPaths=[];this.draggedFromColumn=null;this.draggedFromSwimlane=null;this.dropTargetPath=null;this.pendingRender=!1;this.dropAbove=!0;this.dragOverRafId=0;this.dragContainer=null;this.currentInsertionIndex=-1;this.dragSourceColumnEl=null;this.dragTargetColumnEl=null;this.activeDragSourceElement=null;this.floatingDragPreviewEl=null;this.floatingDragPreviewDocument=null;this.floatingDragPreviewMoveHandler=null;this.floatingDragPreviewRafId=null;this.floatingDragPreviewWidth=280;this.floatingDragPreviewHeight=40;this.floatingDragPreviewPendingX=0;this.floatingDragPreviewPendingY=0;this.draggedSourceColumns=new Map;this.draggedSourceSwimlanes=new Map;this.taskInfoCache=new Map;this.sortScopeTaskPaths=new Map;this.sortScopeCandidateTaskPaths=new Map;this.containerListenersRegistered=!1;this.columnScrollers=new Map;this.expandedRelationshipFilterMode="inherit";this.currentVisibleTaskPaths=new Set;this.currentVisibleTaskOrder=new Map;this.expandedRelationshipTaskPaths=new Set;this.expandedRelationshipTaskOrder=new Map;this.hideTopLevelSubtasks=!1;this.suppressRenderUntil=0;this.postDropTimer=null;this.dropQueue=new zT;this.activeDropCount=0;this.postDropRefreshRequested=!1;this.touchDragActive=!1;this.touchDragGhost=null;this.touchStartX=0;this.touchStartY=0;this.longPressTimer=null;this.autoScrollTimer=null;this.autoScrollDirection=0;this.LONG_PRESS_DELAY=350;this.TOUCH_MOVE_THRESHOLD=10;this.AUTO_SCROLL_EDGE=60;this.AUTO_SCROLL_SPEED=8;this.touchDragType=null;this.draggedColumnKey=null;this.boundContextMenuBlocker=t=>{t.preventDefault(),t.stopPropagation()};this.LARGE_REORDER_WARNING_THRESHOLD=10;this.swimLanePropertyId=null;this.columnWidth=280;this.maxSwimlaneHeight=600;this.hideEmptyColumns=!1;this.explodeListColumns=!0;this.consolidateStatusIcon=!1;this.columnOrders={};this.pinnedColumns=[];this.wipLimits={};this.swimLaneOrders={};this.hideEmptySwimLanes=!1;this.cardLayout="default";this.configLoaded=!1;this.VIRTUAL_SCROLL_THRESHOLD=15;this.handleBoardClick=async t=>{let n=this.getTaskContextFromEvent(t);if(!n)return;let{task:a,card:i}=n,o=t.target.closest("[data-tn-action]");if(o&&o!==i){let l=o.dataset.tnAction;if(l){t.preventDefault(),t.stopPropagation(),await this.handleCardAction(l,a,o,t);return}}};this.handleBoardContextMenu=async t=>{let n=this.getTaskContextFromEvent(t);if(!n)return;t.preventDefault(),t.stopPropagation();let{showTaskContextMenu:a}=await Promise.resolve().then(()=>(mi(),qk));await a(t,n.task.path,this.plugin,d0(n.task))};this.basesController=t,this.dataAdapter.basesView=this}onload(){this.readViewOptions(),super.onload()}onDataUpdated(){if(this.draggedTaskPath){this.debugLog("ON-DATA-UPDATED: deferred (drag active)",{draggedTask:this.draggedTaskPath.split("/").pop()}),this.pendingRender=!0;return}if(this.activeDropCount>0||Date.now()<this.suppressRenderUntil){this.debugLog("ON-DATA-UPDATED: suppressed",{activeDropCount:this.activeDropCount,msRemaining:this.suppressRenderUntil-Date.now()});return}this.postDropTimer?(this.debugLog("ON-DATA-UPDATED: cancelling postDropTimer, rendering with fresh Bases data"),window.clearTimeout(this.postDropTimer),this.postDropTimer=null):this.debugLog("ON-DATA-UPDATED: normal render (no suppression active)");let t=this.getEphemeralState();try{this.render()}catch(n){My.error(`[TaskNotes][${this.type}] Render error:`,{category:"internal",operation:"render-kanban-view",error:n}),this.renderError(n)}this.setEphemeralState(t)}readViewOptions(){var t;if(!(!this.config||typeof this.config.get!="function"))try{this.swimLanePropertyId=this.config.getAsPropertyId("swimLane"),this.columnWidth=this.config.get("columnWidth")||280,this.maxSwimlaneHeight=this.config.get("maxSwimlaneHeight")||600,this.hideEmptyColumns=this.config.get("hideEmptyColumns")||!1;let n=this.config.get("explodeListColumns");this.explodeListColumns=n!==!1;let a=this.config.get("consolidateStatusIcon");this.consolidateStatusIcon=a===!0,this.columnOrders=yQ(this.config.get("columnOrder")),this.pinnedColumns=kQ(this.config.get("pinnedColumns")),this.wipLimits=vQ(this.config.get("wipLimits")),this.swimLaneOrders=yQ((t=this.config.get("swimLaneOrder"))!=null?t:this.config.get("swimLaneOrders")),this.hideEmptySwimLanes=this.config.get("hideEmptySwimLanes")===!0,this.cardLayout=ARt(this.config.get("cardLayout"));let i=this.config.get("enableSearch");this.enableSearch=i!=null?i:!1;let s=this.config.get("expandedRelationshipFilterMode");this.expandedRelationshipFilterMode=jHe(s),this.hideTopLevelSubtasks=this.config.get("hideTopLevelSubtasks")===!0,this.configLoaded=!0}catch(n){My.warn("[KanbanView] Failed to parse config:",{category:"configuration",operation:"parse-config",error:n})}}getEphemeralState(){var i;let t=super.getEphemeralState(),n=PQ(t)?t:{},a={};for(let[s,o]of this.columnScrollers){let l=o.scrollContainer;l&&(a[s]=l.scrollTop)}return this.boardEl&&(this.boardEl.querySelectorAll(".kanban-view__column").forEach(l=>{let c=l.getAttribute("data-group"),d=l.querySelector(".kanban-view__cards");c&&d&&!(c in a)&&(a[c]=d.scrollTop)}),this.boardEl.querySelectorAll(".kanban-view__swimlane-column").forEach(l=>{let c=l.getAttribute("data-column"),d=l.getAttribute("data-swimlane");if(c&&d){let u=`${d}:${c}`,p=l.querySelector(".kanban-view__tasks-container");p&&!(u in a)&&(a[u]=p.scrollTop)}})),{...n,scrollTop:((i=this.rootElement)==null?void 0:i.scrollTop)||0,columnScroll:a}}setEphemeralState(t){if(!PRt(t))return;super.setEphemeralState(t);let n=MRt(t);if(typeof t.scrollTop=="number"&&this.rootElement){let a=t.scrollTop;window.requestAnimationFrame(()=>{this.rootElement&&this.rootElement.isConnected&&(this.rootElement.scrollTop=a)})}n&&window.requestAnimationFrame(()=>{for(let[a,i]of this.columnScrollers){let s=n[a];if(s!==void 0){let o=i.scrollContainer;o&&(o.scrollTop=s)}}this.boardEl&&(this.boardEl.querySelectorAll(".kanban-view__column").forEach(s=>{let o=s.getAttribute("data-group");if(o&&n[o]!==void 0){let l=s.querySelector(".kanban-view__cards");l&&!this.columnScrollers.has(o)&&(l.scrollTop=n[o])}}),this.boardEl.querySelectorAll(".kanban-view__swimlane-column").forEach(s=>{let o=s.getAttribute("data-column"),l=s.getAttribute("data-swimlane");if(o&&l){let c=`${l}:${o}`;if(n[c]!==void 0){let d=s.querySelector(".kanban-view__tasks-container");d&&!this.columnScrollers.has(c)&&(d.scrollTop=n[c])}}}))})}async render(){var t,n;if(!(!this.boardEl||!this.rootElement)&&(t=this.data)!=null&&t.data){this.debugLog("RENDER-START",{activeDropCount:this.activeDropCount,suppressRenderRemaining:Math.max(0,this.suppressRenderUntil-Date.now()),draggedTaskPath:((n=this.draggedTaskPath)==null?void 0:n.split("/").pop())||null,currentTaskElementsCount:this.currentTaskElements.size}),this.config&&this.readViewOptions(),this.rootElement&&this.setupSearch(this.rootElement);try{let a=this.dataAdapter.extractDataItems();r0(this.data,a);let i=await wp(a,this.plugin),s=this.applySearchFilter(i);this.setExpandedRelationshipTaskScope(s);let o=this.getTopLevelRenderTasks(s),l=this.getTopLevelRenderTasks(i);if(this.setCurrentVisibleTaskPaths(o),this.destroyColumnScrollers(),this.boardEl.empty(),this.sortScopeTaskPaths.clear(),this.sortScopeCandidateTaskPaths.clear(),o.length===0){this.isSearchWithNoResults(s,i.length)?this.renderSearchNoResults(this.boardEl):this.renderEmptyState();return}let c=x1(this.dataAdapter.extractDataItems()),d=this.getGroupByPropertyId();if(!d){this.renderNoGroupByError();return}let u=this.groupTasks(o,d,c),p=this.groupTasks(l,d,c);this.swimLanePropertyId?await this.renderWithSwimLanes(u,o,p,l,c,d):await this.renderFlat(u,p)}catch(a){My.error("[TaskNotes][KanbanView] Error rendering:",{category:"internal",operation:"rendering",error:a}),this.renderError(a instanceof Error?a:new Error(String(a)))}}}getGroupByPropertyId(){var n;let t=this.basesController;if((n=t==null?void 0:t.query)!=null&&n.views&&(t!=null&&t.viewName)){let a=t.query.views,i=t.viewName;for(let s=0;s<a.length;s++){let o=a[s];if(o&&o.name===i){if(o.groupBy){if(typeof o.groupBy=="object"&&o.groupBy.property)return o.groupBy.property;if(typeof o.groupBy=="string")return o.groupBy}return null}}}return null}getSortScopeKey(t,n=null){return n===null?t:`${n}::${t}`}getColumnScrollerKey(t,n=null){return n===null?t:`${n}:${t}`}getVisibleSortScopePaths(t,n=null){return this.sortScopeTaskPaths.get(this.getSortScopeKey(t,n))}getCandidateSortScopePaths(t,n=null){return this.sortScopeCandidateTaskPaths.get(this.getSortScopeKey(t,n))}setSortScopePathsForScope(t,n,a){this.sortScopeTaskPaths.set(this.getSortScopeKey(t,n),[...a])}hasVirtualScrollerForScope(t,n){return this.columnScrollers.has(this.getColumnScrollerKey(t,n))}canFastPatchManualOrderDrop(t,n,a,i,s){var l,c;let o=this.hasVirtualScrollerForScope(i,s);return!!n&&a.length===1&&((c=(l=t.draggedPaths)==null?void 0:l.length)!=null?c:1)===1&&(t.optimisticReorderApplied===!0||o)}canFastPatchCrossScopeDrop(t,n){var a,i;return n.length===1&&((i=(a=t.draggedPaths)==null?void 0:a.length)!=null?i:1)===1}setSortScopeCandidatePaths(t){this.sortScopeCandidateTaskPaths.clear();for(let[n,a]of t)this.sortScopeCandidateTaskPaths.set(n,[...a])}getCurrentVisibleTaskPathOrder(){return Array.from(this.currentVisibleTaskOrder.entries()).sort(([,t],[,n])=>t-n).map(([t])=>t)}setCurrentVisibleTaskPathOrder(t){this.currentVisibleTaskPaths.clear(),this.currentVisibleTaskOrder.clear(),t.forEach((n,a)=>{this.currentVisibleTaskPaths.add(n),this.currentVisibleTaskOrder.set(n,a)}),this.hideTopLevelSubtasks||(this.expandedRelationshipTaskPaths.clear(),this.expandedRelationshipTaskOrder.clear(),t.forEach((n,a)=>{this.expandedRelationshipTaskPaths.add(n),this.expandedRelationshipTaskOrder.set(n,a)}))}applyOptimisticSortOrderResult(t,n,a,i,s,o){let l=this.getVisibleSortScopePaths(i,s);if(!l)return!1;let c=l0(l,[t],n,a);if(!c)return!1;let d=this.getCurrentVisibleTaskPathOrder(),u=l0(d,[t],n,a);if(!u)return!1;let p=this.columnScrollers.get(this.getColumnScrollerKey(i,s));if(p&&!p.reorderItems({movedKeys:[t],targetKey:n,position:a?"before":"after"}))return!1;let m=i0(t,o);return s0(this.taskInfoCache,m),p&&(o0(p.getItems(),f=>f,m,f=>{this.taskInfoCache.set(f.path,f)}),p.invalidateItems([...m.keys()])),this.setSortScopePathsForScope(i,s,c),this.setCurrentVisibleTaskPathOrder(u),!0}applySuccessfulKanbanDropLocally({path:t,dropPlan:n,dropTarget:a,sortOrderPlan:i,updatedTask:s,optimisticReorderApplied:o}){var E;if(!n.needsGroupUpdate&&!n.needsSwimlaneUpdate||n.isGroupByListProperty||n.isSwimlaneListProperty)return!1;let l=n.sourceColumn;if(!l)return!1;let c=this.swimLanePropertyId&&(E=n.sourceSwimlane)!=null?E:null,d=n.newGroupValue,u=this.swimLanePropertyId?n.newSwimLaneValue:null,p=this.getVisibleSortScopePaths(l,c),m=this.getVisibleSortScopePaths(d,u);if(!p||!m||!p.includes(t))return!1;let f=p.filter(D=>D!==t),h=this.insertPathIntoDropScope(m,t,a);if(!h)return!1;let g=this.moveVisiblePathForDrop(t,a);if(!g)return!1;let v=s!=null?s:this.buildTaskInfoForLocalDropPatch(t,n,i);if(!v)return!1;let b=i?i0(t,i):new Map,k=b.get(t);k&&(v.sortOrder=k);let w=this.columnScrollers.get(this.getColumnScrollerKey(l,c)),S=this.columnScrollers.get(this.getColumnScrollerKey(d,u)),C={items:[v],targetKey:a==null?void 0:a.taskPath,position:a?a.above?"before":"after":"end"};if(w&&!w.canRemoveItems([t])||S&&!S.canInsertItems(C)||!S&&!this.getTaskContainerForScope(d,u)||!S&&!o&&!a||w&&!w.removeItems([t]))return!1;if(S){if(!S.insertItems(C))return!1;S.invalidateItems([t]),this.removeNormalRenderedTask(t)}else if(!this.renderNormalTaskInDropScope(v,d,u,a))return!1;this.taskInfoCache.set(t,v),s0(this.taskInfoCache,b);for(let D of[w,S]){if(!D)continue;let P=D.getItems();o0(P,R=>R,b,R=>{this.taskInfoCache.set(R.path,R)});let O=new Set(P.map(R=>R.path)),z=[...b.keys()].filter(R=>O.has(R));D.invalidateItems(z)}return this.setSortScopePathsForScope(l,c,f),this.setSortScopePathsForScope(d,u,h),this.setCurrentVisibleTaskPathOrder(g),this.updateScopeEmptyHint(l,c),this.updateScopeEmptyHint(d,u),this.updateCountDisplaysForScope(l,c),this.updateCountDisplaysForScope(d,u),!0}insertPathIntoDropScope(t,n,a){let i=t.filter(s=>s!==n);return a?i.includes(a.taskPath)?l0([...i,n],[n],a.taskPath,a.above):null:[...i,n]}moveVisiblePathForDrop(t,n){let a=this.getCurrentVisibleTaskPathOrder();return a.includes(t)?n?a.includes(n.taskPath)?l0(a,[t],n.taskPath,n.above):null:[...a.filter(i=>i!==t),t]:null}buildTaskInfoForLocalDropPatch(t,n,a){var o;let i=this.taskInfoCache.get(t);if(!i)return null;let s={...i,customProperties:{...(o=i.customProperties)!=null?o:{}}};return n.needsGroupUpdate&&this.applyLocalDropValue(s,n.groupByTaskProp,n.groupByFrontmatterKey,n.newGroupValue),n.needsSwimlaneUpdate&&n.swimlaneFrontmatterKey&&n.newSwimLaneValue!==null&&this.applyLocalDropValue(s,n.swimlaneTaskProp,n.swimlaneFrontmatterKey,n.newSwimLaneValue),a!=null&&a.sortOrder&&(s.sortOrder=a.sortOrder),s}applyLocalDropValue(t,n,a,i){var o;let s=i==="None"?null:i;n&&(t[n]=s),t.customProperties={...(o=t.customProperties)!=null?o:{},[a]:s}}createRenderedTaskWrapper(t){let n=this.containerEl.ownerDocument,a=Ne(n,"div");a.className="kanban-view__card-wrapper",a.setAttribute("draggable","true"),a.setAttribute("data-task-path",t.path);let i=Dr(t,this.plugin,this.getVisibleProperties(),this.getCardOptions());return a.appendChild(i),this.setupCardDragHandlers(a,t),a}renderNormalTaskInDropScope(t,n,a,i){let s=this.getTaskContainerForScope(n,a);if(!s)return!1;let o=this.currentTaskElements.get(t.path),l=this.createRenderedTaskWrapper(t);if(this.removeEmptyCellHint(s),o&&s.contains(o))o.replaceWith(l);else{let c=i?this.currentTaskElements.get(i.taskPath):null;c&&s.contains(c)?i!=null&&i.above?s.insertBefore(l,c):s.insertBefore(l,c.nextSibling):s.appendChild(l),o==null||o.remove()}return this.currentTaskElements.set(t.path,l),!0}removeNormalRenderedTask(t){let n=this.currentTaskElements.get(t);n==null||n.remove(),this.currentTaskElements.delete(t)}getTaskContainerForScope(t,n){if(!this.boardEl)return null;let a=_1(t);if(n===null)return this.boardEl.querySelector(`.kanban-view__column[data-group="${a}"] .kanban-view__cards`);let i=_1(n);return this.boardEl.querySelector(`.kanban-view__swimlane-column[data-column="${a}"][data-swimlane="${i}"] .kanban-view__tasks-container`)}updateScopeEmptyHint(t,n){var s;let a=this.getTaskContainerForScope(t,n);if(!a)return;let i=(s=this.getVisibleSortScopePaths(t,n))!=null?s:[];this.removeEmptyCellHint(a),i.length===0&&this.renderEmptyCellHint(a,t,n)}updateCountDisplaysForScope(t,n){this.updateColumnCountDisplay(t),n!==null&&this.updateSwimLaneCountDisplay(n)}updateColumnCountDisplay(t){var o;let n=this.getVisibleColumnTaskCount(t),a=M1(n,this.wipLimits[t]),i=_1(t),s=(o=this.boardEl)==null?void 0:o.querySelector(`.kanban-view__column[data-group="${i}"] .kanban-view__column-count, .kanban-view__column-header-cell[data-column-key="${i}"] .kanban-view__column-count`);s&&(s.textContent=a.text,s.classList.toggle("kanban-view__column-count--exceeded",a.isExceeded))}getVisibleColumnTaskCount(t){var i,s;if(!this.swimLanePropertyId)return(s=(i=this.getVisibleSortScopePaths(t,null))==null?void 0:i.length)!=null?s:0;let n=`::${t}`,a=0;for(let[o,l]of this.sortScopeTaskPaths)o.endsWith(n)&&(a+=l.length);return a}updateSwimLaneCountDisplay(t){var l,c;let n=_1(t),a=(c=(l=this.boardEl)==null?void 0:l.querySelector(`.kanban-view__swimlane-column[data-swimlane="${n}"]`))==null?void 0:c.closest(".kanban-view__swimlane-row"),i=a==null?void 0:a.querySelector(".kanban-view__swimlane-count");if(!i)return;let s=`${t}::`,o=0;for(let[d,u]of this.sortScopeTaskPaths)d.startsWith(s)&&(o+=u.length);i.textContent=`${o}`}async confirmLargeReorder(t,n,a){let i=this.plugin.settings.fieldMapping.sortOrder,s=a===null?this.plugin.i18n.translate("views.kanban.reorder.scope.column",{group:n}):this.plugin.i18n.translate("views.kanban.reorder.scope.columnInSwimlane",{group:n,swimlane:a});return Ir(this.plugin.app,{title:this.plugin.i18n.translate("common.reorder.confirmLargeTitle"),message:this.plugin.i18n.translate("common.reorder.confirmLargeMessage",{field:i,count:t,scope:s}),confirmText:this.plugin.i18n.translate("common.reorder.confirmButton"),cancelText:this.plugin.i18n.translate("common.cancel")})}groupTasks(t,n,a){var s,o;let i=this.plugin.settings.fieldMapping.sortOrder;return RHe({taskNotes:t,groupByPropertyId:n,pathToProps:a,explodeListColumns:this.explodeListColumns,groupedData:this.dataAdapter.getGroupedData(),convertGroupKeyToString:l=>this.dataAdapter.convertGroupKeyToString(l),isListTypeProperty:l=>this.isListTypeProperty(l),getListPropertyValue:(l,c)=>this.getListPropertyValue(l,c,a),canonicalizeGroupKey:(l,c)=>this.canonicalizeConfiguredGroupKey(l,c),sortOrderValues:e0(this.dataAdapter,i)?this.getSortOrderValues(t,i):void 0,statusConfigs:this.plugin.settings.customStatuses||[],priorityConfigs:((o=(s=this.plugin.priorityManager)==null?void 0:s.getAllPriorities)==null?void 0:o.call(s))||this.plugin.settings.customPriorities||[],isStatusGroupingProperty:l=>this.isStatusGroupingProperty(l),isPriorityGroupingProperty:l=>this.isPriorityGroupingProperty(l),getStatusGroupKeyAliases:l=>this.getStatusGroupKeyAliases(l),pinnedColumns:this.pinnedColumns})}getSortOrderValues(t,n){var i;let a=new Map;for(let s of t){let o=this.plugin.app.vault.getAbstractFileByPath(s.path),l=o instanceof Kn.TFile?(i=this.plugin.app.metadataCache.getFileCache(o))==null?void 0:i.frontmatter:void 0,c=l==null?void 0:l[n];c!=null&&a.set(s.path,c)}return a}isListTypeProperty(t){return PHe(t,{contextsField:this.plugin.fieldMapper.toUserField("contexts"),projectsField:this.plugin.fieldMapper.toUserField("projects")},n=>S1(this.plugin.app,n))}getListPropertyValue(t,n,a){return MHe(t,n,a,{contextsField:this.plugin.fieldMapper.toUserField("contexts"),projectsField:this.plugin.fieldMapper.toUserField("projects")})}getSwimLaneKeys(t,n){return NHe({task:t,pathToProps:n,swimLanePropertyId:this.swimLanePropertyId,explodeListColumns:this.explodeListColumns,isListTypeProperty:a=>this.isListTypeProperty(a),getListPropertyValue:(a,i)=>this.getListPropertyValue(a,i,n),canonicalizeGroupKey:(a,i)=>this.canonicalizeConfiguredGroupKey(a,i)})}isStatusGroupingProperty(t){return A1(t,this.plugin.fieldMapper.toUserField("status"))}isPriorityGroupingProperty(t){return TQ(t,this.plugin.fieldMapper.toUserField("priority"))}canonicalizeConfiguredGroupKey(t,n){var s,o;let a=this.plugin.fieldMapper.toUserField("status"),i=this.plugin.fieldMapper.toUserField("priority");return _He({groupKey:t,propertyId:n,fields:{statusField:a,priorityField:i},statuses:A1(n,a)?((o=(s=this.plugin.statusManager)==null?void 0:s.getAllStatuses)==null?void 0:o.call(s))||[]:[],normalizeStatusValue:l=>{var c,d,u;return(u=(d=(c=this.plugin.statusManager)==null?void 0:c.normalizeStatusValue)==null?void 0:d.call(c,l))!=null?u:l},normalizePriorityValue:l=>{var c,d,u;return(u=(d=(c=this.plugin.priorityManager)==null?void 0:c.normalizePriorityValue)==null?void 0:d.call(c,l))!=null?u:l},getStatusGroupKeyAliases:l=>this.getStatusGroupKeyAliases(l)})}findStatusConfigForGroupKey(t){var n,a;return wQ(t,((a=(n=this.plugin.statusManager)==null?void 0:n.getAllStatuses)==null?void 0:a.call(n))||[],i=>{var s,o,l;return(l=(o=(s=this.plugin.statusManager)==null?void 0:s.normalizeStatusValue)==null?void 0:o.call(s,i))!=null?l:i},i=>this.getStatusGroupKeyAliases(i))}getStatusGroupKeyAliases(t){return AHe(t,n=>Fl(n,this.plugin.app))}isUnknownStatusGroup(t,n){if(!n||!this.isStatusGroupingProperty(n))return!1;let a=t.trim();return!a||a==="None"?!1:!this.findStatusConfigForGroupKey(a)}markUnknownStatusColumn(t,n){t.addClass("kanban-view__column--unknown-status"),t.setAttribute("data-unknown-status",n),(0,Kn.setTooltip)(t,"Status is not defined in TaskNotes settings")}markUnknownStatusColumnHeader(t,n){t.addClass("kanban-view__column-header--unknown-status"),t.setAttribute("data-unknown-status",n),(0,Kn.setTooltip)(t,"Status is not defined in TaskNotes settings")}async renderFlat(t,n){if(!this.boardEl)return;this.boardEl.classList.remove("kanban-view__board--swimlanes"),this.sortScopeTaskPaths.clear(),this.setSortScopeCandidatePaths(Array.from(n.entries()).map(([l,c])=>[this.getSortScopeKey(l),c.map(d=>d.path)])),this.boardEl.style.setProperty("--kanban-column-width",`${this.columnWidth}px`);let a=this.getVisibleProperties(),i=this.getGroupByPropertyId(),s=Array.from(t.keys()),o=i?this.applyColumnOrder(i,s):s;for(let l of o){let c=t.get(l)||[];if(!bQ(this.hideEmptyColumns,l,c,this.pinnedColumns))continue;this.sortScopeTaskPaths.set(this.getSortScopeKey(l),c.map(u=>u.path));let d=await this.createColumn(l,c,a,i);this.boardEl&&this.boardEl.appendChild(d)}}async renderWithSwimLanes(t,n,a,i,s,o){if(!this.swimLanePropertyId)return;this.sortScopeTaskPaths.clear();let l=SQ(n,t,f=>this.getSwimLaneKeys(f,s)),c=SQ(i,a,f=>this.getSwimLaneKeys(f,s));this.setSortScopeCandidatePaths(Array.from(c.entries()).flatMap(([f,h])=>Array.from(h.entries()).map(([g,v])=>[this.getSortScopeKey(g,f),v.map(b=>b.path)])));let d=Array.from(t.keys()),u=this.applyColumnOrder(o,d),p=FHe(u,l,this.hideEmptyColumns,this.pinnedColumns),m=this.applySwimLaneOrderToMap(this.swimLanePropertyId,l,d);await this.renderSwimLaneTable(m,p,s,o)}async renderSwimLaneTable(t,n,a,i){var c;if(!this.boardEl)return;this.boardEl.style.setProperty("--kanban-column-width",`${this.columnWidth}px`),this.boardEl.style.setProperty("--kanban-swimlane-max-height",`${this.maxSwimlaneHeight}px`),this.boardEl.addClass("kanban-view__board--swimlanes");let s=this.boardEl.createDiv({cls:"kanban-view__swimlane-row kanban-view__swimlane-row--header"});s.createDiv({cls:"kanban-view__swimlane-label"});let o=xQ(t,n);for(let d of n){let u=s.createDiv({cls:"kanban-view__column-header-cell"});u.setAttribute("draggable","true"),u.setAttribute("data-column-key",d),this.isUnknownStatusGroup(d,i)&&this.markUnknownStatusColumnHeader(u,d);let m=u.createSpan({cls:"kanban-view__drag-handle"});if(m.setAttribute("aria-hidden","true"),(0,Kn.setIcon)(m,"grip-vertical"),this.consolidateStatusIcon&&this.isGroupedByStatus()){let h=this.plugin.statusManager.getStatusConfig(d);if(h!=null&&h.icon){let g=u.createSpan({cls:"kanban-view__column-icon"});g.style.color=h.color,(0,Kn.setIcon)(g,h.icon)}}let f=u.createSpan({cls:"kanban-view__column-title"});this.renderGroupTitleWrapper(f,d,!1,!0),this.renderColumnCount(u,d,(c=o.get(d))!=null?c:0),this.setupColumnHeaderDragHandlers(u)}let l=this.getVisibleProperties();for(let[d,u]of t){let p=this.boardEl.createDiv({cls:"kanban-view__swimlane-row"}),m=p.createDiv({cls:"kanban-view__swimlane-label"}),f=m.createDiv({cls:"kanban-view__swimlane-title"});this.renderGroupTitleWrapper(f,d,!0);let h=Array.from(u.values()).reduce((g,v)=>g+v.length,0);m.createDiv({cls:"kanban-view__swimlane-count",text:`${h}`});for(let g of n){let v=u.get(g)||[],b=this.isUnknownStatusGroup(g,i);this.sortScopeTaskPaths.set(this.getSortScopeKey(g,d),v.map(S=>S.path));let k=p.createDiv({cls:"kanban-view__swimlane-column",attr:{"data-column":g,"data-swimlane":d}});b&&this.markUnknownStatusColumn(k,g),this.setupSwimLaneCellDragDrop(k,g,d);let w=k.createDiv({cls:"kanban-view__tasks-container"});if(v.length>=this.VIRTUAL_SCROLL_THRESHOLD)await this.createVirtualSwimLaneCell(w,`${d}:${g}`,v,l);else{let S=this.getCardOptions();for(let C of v){let E=w.createDiv({cls:"kanban-view__card-wrapper"});E.setAttribute("draggable","true"),E.setAttribute("data-task-path",C.path);let D=Dr(C,this.plugin,l,S);E.appendChild(D),this.currentTaskElements.set(C.path,E),this.taskInfoCache.set(C.path,C),this.setupCardDragHandlers(E,C)}}v.length===0&&this.renderEmptyCellHint(w,g,d),this.createAddTaskButton(k,i,g,d)}}}async createColumn(t,n,a,i){let s=this.containerEl.ownerDocument,o=Ne(s,"div");o.className="kanban-view__column",o.style.width=`${this.columnWidth}px`,o.setAttribute("data-group",t);let l=this.isUnknownStatusGroup(t,i);l&&this.markUnknownStatusColumn(o,t);let c=o.createDiv({cls:"kanban-view__column-header"});c.setAttribute("draggable","true"),c.setAttribute("data-column-key",t),l&&this.markUnknownStatusColumnHeader(c,t);let d=c.createSpan({cls:"kanban-view__drag-handle"});if(d.setAttribute("aria-hidden","true"),(0,Kn.setIcon)(d,"grip-vertical"),this.consolidateStatusIcon&&this.isGroupedByStatus()){let f=this.plugin.statusManager.getStatusConfig(t);if(f!=null&&f.icon){let h=c.createSpan({cls:"kanban-view__column-icon"});h.style.color=f.color,(0,Kn.setIcon)(h,f.icon)}}let u=c.createSpan({cls:"kanban-view__column-title"});this.renderGroupTitleWrapper(u,t,!1,!0),this.renderColumnCount(c,t,n.length),this.setupColumnHeaderDragHandlers(c);let p=o.createDiv({cls:"kanban-view__cards"});this.setupColumnDragDrop(o,p,t);let m=this.getCardOptions();return n.length>=this.VIRTUAL_SCROLL_THRESHOLD?this.createVirtualColumn(p,t,n,a,m):this.createNormalColumn(p,n,a,m),n.length===0&&this.renderEmptyCellHint(p,t),this.createAddTaskButton(o,i,t),o}renderColumnCount(t,n,a){let i=M1(a,this.wipLimits[n]),s=t.createSpan({cls:"kanban-view__column-count",text:i.text});i.isExceeded&&s.addClass("kanban-view__column-count--exceeded")}createAddTaskButton(t,n,a,i=null){let o=t.createDiv({cls:"kanban-view__add-task-footer"}).createEl("button",{cls:"kanban-view__add-task-button clickable-icon",attr:{type:"button","aria-label":this.getAddTaskLabel(a,i)}});(0,Kn.setIcon)(o,"plus"),(0,Kn.setTooltip)(o,this.getAddTaskLabel(a,i)),o.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),this.openTaskCreationForKanbanCell(n,a,i)})}getAddTaskLabel(t,n){return n?`Add task to ${t} / ${n}`:`Add task to ${t}`}renderEmptyCellHint(t,n,a=null){let i=this.plugin.i18n.translate("views.kanban.noTasks"),s=a?`${i}: ${n} / ${a}`:`${i}: ${n}`,o=t.createDiv({cls:"kanban-view__empty-cell",attr:{"aria-label":s}}),l=o.createSpan({cls:"kanban-view__empty-cell-icon",attr:{"aria-hidden":"true"}});(0,Kn.setIcon)(l,"plus-circle"),o.createSpan({cls:"kanban-view__empty-cell-text",text:i})}removeEmptyCellHint(t){var n;(n=t==null?void 0:t.querySelector(".kanban-view__empty-cell"))==null||n.remove()}async openTaskCreationForKanbanCell(t,n,a=null){await this.createFileForView(void 0,i=>{let s=(o,l)=>{yHe({frontmatter:i,propertyId:o,groupKey:l,propertyMapper:this.propertyMapper,fieldMapper:this.plugin.fieldMapper,userFields:this.plugin.settings.userFields,isListTypeProperty:c=>this.isListTypeProperty(c),coerceGroupKeyForFrontmatter:(c,d)=>this.coerceGroupKeyForFrontmatter(c,d)})};s(t,n),s(this.swimLanePropertyId,a)})}coerceGroupKeyForFrontmatter(t,n){return C1(this.plugin.app,t,n,this.plugin.settings.userFields)}createVirtualColumn(t,n,a,i,s){t.addClass("kanban-view__cards--virtual");let o=this.containerEl.ownerDocument,l=new Df({container:t,items:a,overscan:3,renderItem:c=>{let d=Ne(o,"div");d.className="kanban-view__card-wrapper",d.setAttribute("draggable","true"),d.setAttribute("data-task-path",c.path);let u=Dr(c,this.plugin,i,s);return d.appendChild(u),this.taskInfoCache.set(c.path,c),this.setupCardDragHandlers(d,c),d},getItemKey:c=>c.path});this.columnScrollers.set(n,l)}async createVirtualSwimLaneCell(t,n,a,i){t.addClass("kanban-view__tasks-container--virtual");let s=this.getCardOptions(),o=this.containerEl.ownerDocument,l=new Df({container:t,items:a,overscan:3,renderItem:c=>{let d=Ne(o,"div");d.className="kanban-view__card-wrapper",d.setAttribute("draggable","true"),d.setAttribute("data-task-path",c.path);let u=Dr(c,this.plugin,i,s);return d.appendChild(u),this.taskInfoCache.set(c.path,c),this.setupCardDragHandlers(d,c),d},getItemKey:c=>c.path});this.columnScrollers.set(n,l)}createNormalColumn(t,n,a,i){for(let s of n){let o=t.createDiv({cls:"kanban-view__card-wrapper"});o.setAttribute("draggable","true"),o.setAttribute("data-task-path",s.path);let l=Dr(s,this.plugin,a,i);o.appendChild(l),this.currentTaskElements.set(s.path,o),this.taskInfoCache.set(s.path,s),this.setupCardDragHandlers(o,s)}}setupColumnHeaderDragHandlers(t){let n=t.dataset.columnKey;if(!n)return;let a=t.classList.contains("kanban-view__column-header-cell"),i=a?"kanban-view__column-header-cell--dragging":"kanban-view__column-header--dragging",s=a?"kanban-view__column-header-cell--dragover":"kanban-view__column-header--dragover";t.addEventListener("dragstart",o=>{o.dataTransfer&&(o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("text/x-kanban-column",n),t.classList.add(i))}),t.addEventListener("dragover",o=>{var l;(l=o.dataTransfer)!=null&&l.types.includes("text/x-kanban-column")&&(o.preventDefault(),o.stopPropagation(),o.dataTransfer.dropEffect="move",t.classList.add(s))}),t.addEventListener("dragleave",o=>{var l;(l=o.dataTransfer)!=null&&l.types.includes("text/x-kanban-column")&&o.target===t&&t.classList.remove(s)}),t.addEventListener("drop",o=>{(async()=>{var g;if(!((g=o.dataTransfer)!=null&&g.types.includes("text/x-kanban-column")))return;o.preventDefault(),o.stopPropagation(),t.classList.remove(s);let l=o.dataTransfer.getData("text/x-kanban-column"),c=t.dataset.columnKey;if(!c||!l||l===c)return;let d=this.getGroupByPropertyId();if(!d)return;let u=a?".kanban-view__column-header-cell":".kanban-view__column-header",p=Array.from(this.boardEl.querySelectorAll(u)).map(v=>v.dataset.columnKey).filter(Boolean),m=p.indexOf(l),f=p.indexOf(c),h=[...p];h.splice(m,1),h.splice(f,0,l),await this.saveColumnOrder(d,h),await this.render()})()}),t.addEventListener("dragend",()=>{t.classList.remove(i)}),this.setupColumnHeaderTouchHandlers(t,n,a,i)}setupColumnHeaderTouchHandlers(t,n,a,i){$He(Kn.Platform.isMobile)&&(t.addEventListener("contextmenu",s=>{(this.longPressTimer||this.touchDragActive)&&(s.preventDefault(),s.stopPropagation())}),t.addEventListener("touchstart",s=>{if(s.touches.length!==1)return;let o=s.touches[0];this.touchStartX=o.clientX,this.touchStartY=o.clientY,this.longPressTimer=window.setTimeout(()=>{var l;this.touchDragActive=!0,this.touchDragType="column",this.draggedColumnKey=n,this.containerEl.ownerDocument.addEventListener("contextmenu",this.boundContextMenuBlocker,!0),t.classList.add(i),this.touchDragGhost=this.createTouchDragGhost(t,o.clientX,o.clientY),(l=navigator.vibrate)==null||l.call(navigator,50)},this.LONG_PRESS_DELAY)},{passive:!0}),t.addEventListener("touchmove",s=>{if(s.touches.length!==1)return;let o=s.touches[0];if(!this.touchDragActive&&this.longPressTimer){let l=Math.abs(o.clientX-this.touchStartX),c=Math.abs(o.clientY-this.touchStartY);(l>this.TOUCH_MOVE_THRESHOLD||c>this.TOUCH_MOVE_THRESHOLD)&&(window.clearTimeout(this.longPressTimer),this.longPressTimer=null);return}this.touchDragActive&&this.touchDragType==="column"&&(s.preventDefault(),this.updateTouchDragGhost(o.clientX,o.clientY),this.updateDropTargetFeedback(o.clientX,o.clientY),this.handleAutoScroll(o.clientX))},{passive:!1}),t.addEventListener("touchend",s=>{(async()=>{if(this.longPressTimer&&(window.clearTimeout(this.longPressTimer),this.longPressTimer=null),t.classList.remove(i),!this.touchDragActive||this.touchDragType!=="column")return;let o=s.changedTouches[0];if(!o){this.clearTouchDragState();return}let l=this.findDropTargetAt(o.clientX,o.clientY);if(l.type&&l.groupKey&&this.draggedColumnKey&&l.groupKey!==this.draggedColumnKey){let c=this.getGroupByPropertyId();if(c){let d=a?".kanban-view__column-header-cell":".kanban-view__column-header",u=Array.from(this.boardEl.querySelectorAll(d)).map(f=>f.dataset.columnKey).filter(Boolean),p=u.indexOf(this.draggedColumnKey),m=u.indexOf(l.groupKey);if(p!==-1&&m!==-1){let f=[...u];f.splice(p,1),f.splice(m,0,this.draggedColumnKey),await this.saveColumnOrder(c,f),await this.render()}}}this.clearTouchDragState()})()}),t.addEventListener("touchcancel",()=>{t.classList.remove(i),this.clearTouchDragState()}))}setupColumnDragDrop(t,n,a){t.addEventListener("dragover",i=>{var s;(s=i.dataTransfer)!=null&&s.types.includes("text/x-kanban-column")||(i.preventDefault(),i.stopPropagation(),i.dataTransfer&&(i.dataTransfer.dropEffect="move"),t.classList.add("kanban-view__column--dragover"))}),t.addEventListener("dragleave",i=>{let s=t.getBoundingClientRect(),o=i.clientX,l=i.clientY;(o<s.left||o>=s.right||l<s.top||l>=s.bottom)&&t.classList.remove("kanban-view__column--dragover")}),t.addEventListener("drop",i=>{(async()=>{var f,h,g,v,b,k;if((f=i.dataTransfer)!=null&&f.types.includes("text/x-kanban-column"))return;if(i.preventDefault(),i.stopPropagation(),this.debugLog("COLUMN-DROP-EVENT-RECEIVED",{targetColumn:a,draggedTaskPath:((h=this.draggedTaskPath)==null?void 0:h.split("/").pop())||"(null)",dropTargetPath:((g=this.dropTargetPath)==null?void 0:g.split("/").pop())||"(null)",eventTarget:(b=(v=i.target)==null?void 0:v.className)==null?void 0:b.slice(0,60)}),!this.draggedTaskPath){this.debugLog("COLUMN-DROP: bail \u2014 draggedTaskPath is null (dragend already fired?)"),t.classList.remove("kanban-view__column--dragover"),this.cleanupDragShift();return}let s=D1(this.dropTargetPath,this.dropAbove),o=t.querySelector(".kanban-view__cards"),l=this.draggedFromColumn!==a,c=!!s&&(o==null?void 0:o.querySelector(`[data-task-path="${CSS.escape(s.taskPath)}"]`))!=null,d=o?hQ({cardsContainer:o,draggedTaskPaths:this.draggedTaskPaths,currentInsertionIndex:this.currentInsertionIndex,clientY:i.clientY}):void 0,u=fQ({dropTarget:d!=null?d:s,isCrossScope:l,targetInDropScope:!!d||c,fallbackDropTarget:l?void 0:d});this.debugLog("COLUMN-DROP",{draggedTask:(k=this.draggedTaskPath)==null?void 0:k.split("/").pop(),sourceColumn:this.draggedFromColumn,targetColumn:a,isCrossColumn:l,dropTarget:u?{file:u.taskPath.split("/").pop(),above:u.above}:null,cardsContainerFound:!!o,cardsContainerChildCount:o==null?void 0:o.childElementCount,draggedTaskPaths:this.draggedTaskPaths.map(w=>w.split("/").pop())});let p=u0(this.draggedTaskPaths,this.draggedTaskPath),m=this.performOptimisticReorder(p,u,o);this.debugLog("COLUMN-DROP-OPTIMISTIC-RESULT",{success:m}),t.classList.remove("kanban-view__column--dragover"),this.cleanupDragShift(),await this.handleTaskDrop(this.draggedTaskPath,a,null,u,{optimisticReorderApplied:m,draggedPaths:p}),this.draggedTaskPath=null,this.draggedFromColumn=null})()}),t.addEventListener("dragend",()=>{t.classList.remove("kanban-view__column--dragover")})}setupSwimLaneCellDragDrop(t,n,a){t.addEventListener("dragover",i=>{i.preventDefault(),i.stopPropagation(),i.dataTransfer&&(i.dataTransfer.dropEffect="move"),t.classList.add("kanban-view__swimlane-column--dragover")}),t.addEventListener("dragleave",i=>{let s=t.getBoundingClientRect(),o=i.clientX,l=i.clientY;(o<s.left||o>=s.right||l<s.top||l>=s.bottom)&&t.classList.remove("kanban-view__swimlane-column--dragover")}),t.addEventListener("drop",i=>{(async()=>{var g,v,b,k,w;if(i.preventDefault(),i.stopPropagation(),this.debugLog("SWIMLANE-CELL-DROP-EVENT-RECEIVED",{targetColumn:n,targetSwimlane:a,draggedTaskPath:((g=this.draggedTaskPath)==null?void 0:g.split("/").pop())||"(null)",dropTargetPath:((v=this.dropTargetPath)==null?void 0:v.split("/").pop())||"(null)",eventTarget:(k=(b=i.target)==null?void 0:b.className)==null?void 0:k.slice(0,60)}),!this.draggedTaskPath){this.debugLog("SWIMLANE-CELL-DROP: bail \u2014 draggedTaskPath is null (dragend already fired?)"),t.classList.remove("kanban-view__swimlane-column--dragover"),this.cleanupDragShift();return}let s=D1(this.dropTargetPath,this.dropAbove),o=t.querySelector(".kanban-view__tasks-container"),l=this.draggedFromColumn!==n,c=this.draggedFromSwimlane!==a,d=l||c,u=!!s&&(o==null?void 0:o.querySelector(`[data-task-path="${CSS.escape(s.taskPath)}"]`))!=null,p=o?hQ({cardsContainer:o,draggedTaskPaths:this.draggedTaskPaths,currentInsertionIndex:this.currentInsertionIndex,clientY:i.clientY}):void 0,m=fQ({dropTarget:p!=null?p:s,isCrossScope:d,targetInDropScope:!!p||u,fallbackDropTarget:d?void 0:p}),f=u0(this.draggedTaskPaths,this.draggedTaskPath);this.debugLog("SWIMLANE-CELL-DROP",{draggedTask:(w=this.draggedTaskPath)==null?void 0:w.split("/").pop(),isCrossColumn:l,isCrossSwimlane:c,dropTarget:m?{file:m.taskPath.split("/").pop(),above:m.above}:null,cardsContainerFound:!!o,cardsContainerChildCount:o==null?void 0:o.childElementCount});let h=this.performOptimisticReorder(f,m,o);this.debugLog("SWIMLANE-CELL-DROP-OPTIMISTIC-RESULT",{success:h}),t.classList.remove("kanban-view__swimlane-column--dragover"),this.cleanupDragShift(),await this.handleTaskDrop(this.draggedTaskPath,n,a,m,{optimisticReorderApplied:h,draggedPaths:f}),this.draggedTaskPath=null,this.draggedFromColumn=null})()}),t.addEventListener("dragend",()=>{t.classList.remove("kanban-view__swimlane-column--dragover")})}createTouchDragGhost(t,n,a){let i=t.cloneNode(!0);return i.classList.add("kanban-view__touch-ghost"),i.style.cssText=`
|
||
position: fixed;
|
||
left: ${n}px;
|
||
top: ${a}px;
|
||
width: ${t.offsetWidth}px;
|
||
pointer-events: none;
|
||
z-index: 10000;
|
||
opacity: 0.8;
|
||
transform: translate(-50%, -50%) rotate(3deg);
|
||
box-shadow: 0 8px 24px rgba(0,0,0,0.3);
|
||
`,this.containerEl.ownerDocument.body.appendChild(i),i}updateTouchDragGhost(t,n){this.touchDragGhost&&(this.touchDragGhost.style.left=`${t}px`,this.touchDragGhost.style.top=`${n}px`)}removeTouchDragGhost(){this.touchDragGhost&&(this.touchDragGhost.remove(),this.touchDragGhost=null)}findDropTargetAt(t,n){this.touchDragGhost&&(this.touchDragGhost.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),this.touchDragGhost.classList.add("tn-static-display-none-6b99de8b"));let i=this.containerEl.ownerDocument.elementFromPoint(t,n);if(this.touchDragGhost&&(this.touchDragGhost.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),this.touchDragGhost.style.removeProperty("display")),!i)return{type:null,groupKey:null,swimLaneKey:null,element:null};let s=i.closest(".kanban-view__card-wrapper"),o=s==null?void 0:s.dataset.taskPath;if(s&&o&&!this.draggedTaskPaths.includes(o)){let u=s.closest("[data-group]"),p=s.closest("[data-column]"),m=s.closest("[data-swimlane]"),f=(u==null?void 0:u.dataset.group)||(p==null?void 0:p.dataset.column)||null,h=s.getBoundingClientRect();return{type:"task",groupKey:f,swimLaneKey:(m==null?void 0:m.dataset.swimlane)||null,element:s,taskPath:o,above:n<h.top+h.height/2,cardsContainer:s.parentElement}}let l=i.closest("[data-column][data-swimlane]");if(l)return{type:"swimlane",groupKey:l.dataset.column||null,swimLaneKey:l.dataset.swimlane||null,element:l};let c=i.closest("[data-group]");if(c)return{type:"column",groupKey:c.dataset.group||null,swimLaneKey:null,element:c};let d=i.closest("[data-column-key]");return d?{type:"columnHeader",groupKey:d.dataset.columnKey||null,swimLaneKey:null,element:d}:{type:null,groupKey:null,swimLaneKey:null,element:null}}clearDragoverFeedback(){var t,n,a,i;(t=this.boardEl)==null||t.querySelectorAll(".kanban-view__column--dragover").forEach(s=>{s.classList.remove("kanban-view__column--dragover")}),(n=this.boardEl)==null||n.querySelectorAll(".kanban-view__swimlane-column--dragover").forEach(s=>{s.classList.remove("kanban-view__swimlane-column--dragover")}),(a=this.boardEl)==null||a.querySelectorAll(".kanban-view__column-header--dragover").forEach(s=>{s.classList.remove("kanban-view__column-header--dragover")}),(i=this.boardEl)==null||i.querySelectorAll(".kanban-view__column-header-cell--dragover").forEach(s=>{s.classList.remove("kanban-view__column-header-cell--dragover")})}updateDropTargetFeedback(t,n){var i;this.clearDragoverFeedback();let a=this.findDropTargetAt(t,n);if(a.element)if(a.type==="column")a.element.classList.add("kanban-view__column--dragover");else if(a.type==="swimlane")a.element.classList.add("kanban-view__swimlane-column--dragover");else if(a.type==="task"){let s=a.element.closest(".kanban-view__swimlane-column");s?s.classList.add("kanban-view__swimlane-column--dragover"):(i=a.element.closest(".kanban-view__column"))==null||i.classList.add("kanban-view__column--dragover")}else a.type==="columnHeader"&&this.touchDragType==="column"&&(a.element.classList.contains("kanban-view__column-header-cell")?a.element.classList.add("kanban-view__column-header-cell--dragover"):a.element.classList.add("kanban-view__column-header--dragover"))}clearTouchDragState(){var t,n;this.touchDragActive=!1,this.containerEl.ownerDocument.removeEventListener("contextmenu",this.boundContextMenuBlocker,!0),this.removeTouchDragGhost(),this.stopAutoScroll(),this.longPressTimer&&(window.clearTimeout(this.longPressTimer),this.longPressTimer=null),this.clearDragoverFeedback();for(let a of this.draggedTaskPaths)(t=this.currentTaskElements.get(a))==null||t.classList.remove("kanban-view__card--dragging");(n=this.activeDragSourceElement)==null||n.classList.remove("kanban-view__card--dragging"),this.activeDragSourceElement=null,this.draggedTaskPath=null,this.draggedTaskPaths=[],this.draggedFromColumn=null,this.draggedFromSwimlane=null,this.draggedSourceColumns.clear(),this.draggedSourceSwimlanes.clear(),this.touchDragType=null,this.draggedColumnKey=null}handleAutoScroll(t){if(!this.boardEl)return;let n=this.boardEl.getBoundingClientRect(),a=n.left+this.AUTO_SCROLL_EDGE,i=n.right-this.AUTO_SCROLL_EDGE,s=0;t<a?s=-1:t>i&&(s=1),s!==this.autoScrollDirection&&(this.stopAutoScroll(),this.autoScrollDirection=s,s!==0&&(this.autoScrollTimer=window.setInterval(()=>{this.boardEl&&(this.boardEl.scrollLeft+=this.autoScrollDirection*this.AUTO_SCROLL_SPEED)},16)))}stopAutoScroll(){this.autoScrollTimer&&(window.clearInterval(this.autoScrollTimer),this.autoScrollTimer=null),this.autoScrollDirection=0}setupCardDragHandlers(t,n){let a=null,i=()=>{a=null};t.addEventListener("mousedown",s=>{a=mQ(s.target,t)},{capture:!0}),t.addEventListener("mouseup",i),t.addEventListener("click",i,{capture:!0}),t.addEventListener("click",s=>{if(this.handleSelectionClick(s,n.path)){s.stopPropagation();return}}),t.addEventListener("contextmenu",s=>{if(s.preventDefault(),s.stopPropagation(),this.longPressTimer||this.touchDragActive)return;let o=this.plugin.taskSelectionService;if(o&&o.getSelectionCount()>1){o.isSelected(n.path)||o.addToSelection(n.path),this.showBatchContextMenu(s);return}qo(s,n.path,this.plugin,new Date)}),t.addEventListener("dragover",s=>{if(this.draggedTaskPath===n.path)return;s.preventDefault(),s.stopPropagation(),s.dataTransfer&&(s.dataTransfer.dropEffect="move");let o=s.clientY;this.dragOverRafId||(this.dragOverRafId=window.requestAnimationFrame(()=>{this.dragOverRafId=0;let l=t.getBoundingClientRect(),c=o<l.top+l.height/2;this.dropTargetPath=n.path,this.dropAbove=c;let d=t.parentElement;if(!d)return;if(d!==this.dragContainer){this.cleanupDragShift();let m=this.currentTaskElements.get(this.draggedTaskPath||""),f=m&&m.getBoundingClientRect().height||60,h=getComputedStyle(d).gap,g=parseFloat(h)||4,v=f+g;d.style.setProperty("--tn-drag-gap",`${v}px`),d.classList.remove("tn-static-margin-top-12px-91e0f558"),d.style.paddingBottom=`${v}px`;let b=d.closest(".kanban-view__column, .kanban-view__swimlane-column");if(b){let w=b.getBoundingClientRect().height;b.style.maxHeight=`${w+v}px`,this.dragTargetColumnEl=b}let k=d.querySelectorAll(".kanban-view__card-wrapper");for(let w of k)this.draggedTaskPaths.includes(w.dataset.taskPath||"")||w.classList.add("kanban-view__card-wrapper--drag-shift");this.dragContainer=d}let u=Array.from(d.querySelectorAll(".kanban-view__card-wrapper")).filter(m=>!this.draggedTaskPaths.includes(m.dataset.taskPath||"")),p=u.length;for(let m=0;m<u.length;m++)if(u[m].dataset.taskPath===n.path){p=c?m:m+1;break}if(p!==this.currentInsertionIndex){this.currentInsertionIndex=p;for(let m=0;m<u.length;m++)u[m].classList.toggle("kanban-view__card-wrapper--shift-down",m>=p);cHe(d,u,p)}}))}),t.addEventListener("dragleave",()=>{}),t.addEventListener("drop",s=>{(async()=>{var h,g;if((h=s.dataTransfer)!=null&&h.types.includes("text/x-kanban-column")||(s.preventDefault(),s.stopPropagation(),!this.draggedTaskPath))return;let o=t.closest("[data-group]"),l=t.closest("[data-column]"),c=t.closest("[data-swimlane]"),d=(o==null?void 0:o.dataset.group)||(l==null?void 0:l.dataset.column),u=(c==null?void 0:c.dataset.swimlane)||null;if(!d)return;let p=lHe(t,n.path,s.clientY);this.debugLog("CARD-DROP (drop-on-card handler)",{draggedTask:(g=this.draggedTaskPath)==null?void 0:g.split("/").pop(),targetCard:n.path.split("/").pop(),sourceColumn:this.draggedFromColumn,targetColumn:d,isCrossColumn:this.draggedFromColumn!==d,above:p.above,swimLaneKey:u});let m=u0(this.draggedTaskPaths,this.draggedTaskPath),f=this.performOptimisticReorder(m,p);this.cleanupDragShift(),o==null||o.classList.remove("kanban-view__column--dragover"),await this.handleTaskDrop(this.draggedTaskPath,d,u,p,{optimisticReorderApplied:f,draggedPaths:m}),this.draggedTaskPath=null,this.draggedFromColumn=null})()}),t.addEventListener("dragstart",s=>{s.stopPropagation();let o=a!=null?a:{taskPath:n.path,sourceElement:t},l=o.taskPath,c=o.sourceElement;this.debugLog("DRAGSTART",{task:l.split("/").pop(),parentTask:n.path.split("/").pop(),inCurrentTaskElements:this.currentTaskElements.has(l),isNestedSource:l!==n.path}),iHe(s,c,"kanban-view__drag-image");let d=this.plugin.taskSelectionService;if(d&&d.isSelected(l)&&d.getSelectionCount()>1){this.draggedTaskPaths=d.getSelectedPaths(),this.draggedTaskPath=l,this.draggedSourceColumns.clear(),this.draggedSourceSwimlanes.clear();for(let v of this.draggedTaskPaths){let b=this.currentTaskElements.get(v);if(b){b.classList.add("kanban-view__card--dragging");let k=b.closest("[data-group]"),w=b.closest("[data-column]"),S=b.closest("[data-swimlane]"),C=(k==null?void 0:k.dataset.group)||(w==null?void 0:w.dataset.column),E=S==null?void 0:S.dataset.swimlane;C&&this.draggedSourceColumns.set(v,C),E&&this.draggedSourceSwimlanes.set(v,E)}}s.dataTransfer&&(s.dataTransfer.effectAllowed="move",s.dataTransfer.setData("text/plain",this.draggedTaskPaths.join(",")),s.dataTransfer.setData("text/x-batch-drag","true")),c.classList.add("kanban-view__card--dragging")}else this.draggedTaskPath=l,this.draggedTaskPaths=[l],c.classList.add("kanban-view__card--dragging"),s.dataTransfer&&(s.dataTransfer.effectAllowed="move",s.dataTransfer.setData("text/plain",l));this.activeDragSourceElement=c,this.showFloatingDragPreview(c,s);let u=t.closest("[data-group]"),p=t.closest("[data-column]"),m=t.closest("[data-swimlane]");this.draggedFromColumn=(u==null?void 0:u.dataset.group)||(p==null?void 0:p.dataset.column)||null,this.draggedFromSwimlane=(m==null?void 0:m.dataset.swimlane)||null,this.containerEl.ownerDocument.body.classList.add("tn-drag-active");let f=c.getBoundingClientRect().height,h=t.parentElement,g=t.closest(".kanban-view__column, .kanban-view__swimlane-column");g&&(g.style.minHeight=`${g.offsetHeight}px`,this.dragSourceColumnEl=g),window.requestAnimationFrame(()=>{for(let v of this.draggedTaskPaths){let b=this.currentTaskElements.get(v);b&&(b.classList.remove("tn-static-display-flex-4d51fc62","tn-static-height-100-62264068","tn-static-height-12px-06c0747e","tn-static-height-16px-30de4aee","tn-static-height-24px-29a11d37","tn-static-min-height-800px-997b4c8c"),b.classList.add("tn-static-height-0-7a31cef0"),b.classList.remove("tn-static-flex-1-14e3b769"),b.classList.add("tn-static-overflow-hidden-69824400"),b.classList.remove("tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-0-16px-16px-16px-f1aa998c","tn-static-padding-12px-43bef435","tn-static-padding-16px-287f770e","tn-static-padding-20px-769fed37","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c","tn-static-padding-2px-8px-c8eea84a","tn-static-padding-2rem-42aa6d9c"),b.classList.add("tn-static-padding-0-41d7d7e2"),b.classList.remove("tn-static-margin-0-auto-266e9b04","tn-static-margin-0-db0d5f36","tn-static-margin-0-var-size-4-2-77f7dc08","tn-static-margin-2px-0-edce9b14","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-12px-43bef435","tn-static-padding-20px-ebe8e48c"),b.classList.add("tn-static-margin-0-11696618"),b.classList.remove("tn-static-border-1px-solid-var-background-mo-b65b5121","tn-static-padding-12px-43bef435"),b.classList.add("tn-static-border-none-2eda1daa"),b.classList.remove("tn-static-opacity-0-6-d95b59ac","tn-static-opacity-1-c6e7979d"),b.classList.add("tn-static-opacity-0-8d919cb5"))}if(h){let v=getComputedStyle(h).gap,b=parseFloat(v)||4;h.style.setProperty("--tn-drag-gap",`${f+b}px`),h.classList.remove("tn-static-margin-top-12px-91e0f558");let k=h.querySelectorAll(".kanban-view__card-wrapper");for(let w of k)this.draggedTaskPaths.includes(w.dataset.taskPath||"")||w.classList.add("kanban-view__card-wrapper--drag-shift");this.dragContainer=h,this.currentInsertionIndex=-1}})}),t.addEventListener("dragend",s=>{var o,l,c,d,u;s.stopPropagation(),this.debugLog("DRAGEND-FIRED",{draggedTask:n.path.split("/").pop(),draggedTaskPath:((o=this.draggedTaskPath)==null?void 0:o.split("/").pop())||"(already null)",draggedTaskPathsCount:this.draggedTaskPaths.length,pendingRender:this.pendingRender,activeDropCount:this.activeDropCount,suppressRenderRemaining:Math.max(0,this.suppressRenderUntil-Date.now())}),this.cleanupFloatingDragPreview();for(let p of this.draggedTaskPaths){let m=this.currentTaskElements.get(p);if(m){let f=((l=m.parentElement)==null?void 0:l.className)||"(detached)";this.debugLog("DRAGEND-RESTORE-CARD",{path:p.split("/").pop(),parentClass:f,currentStyles:m.style.cssText.slice(0,80)}),Af(m),m.classList.remove("kanban-view__card--dragging")}}Af(t),t.classList.remove("kanban-view__card--dragging"),(c=this.activeDragSourceElement)==null||c.classList.remove("kanban-view__card--dragging"),this.activeDragSourceElement=null,i(),this.cleanupDragShift(),this.dragSourceColumnEl&&(this.dragSourceColumnEl.classList.remove("tn-static-flex-1-14e3b769","tn-static-min-height-800px-997b4c8c"),this.dragSourceColumnEl.style.removeProperty("min-height"),this.dragSourceColumnEl=null),this.containerEl.ownerDocument.body.classList.remove("tn-drag-active"),this.draggedTaskPath=null,this.draggedFromColumn=null,this.draggedFromSwimlane=null,this.draggedTaskPaths=[],this.draggedSourceColumns.clear(),this.draggedSourceSwimlanes.clear(),(d=this.boardEl)==null||d.querySelectorAll(".kanban-view__column--dragover").forEach(p=>{p.classList.remove("kanban-view__column--dragover")}),(u=this.boardEl)==null||u.querySelectorAll(".kanban-view__swimlane-column--dragover").forEach(p=>{p.classList.remove("kanban-view__swimlane-column--dragover")}),this.dropTargetPath=null,this.dragOverRafId&&(cancelAnimationFrame(this.dragOverRafId),this.dragOverRafId=0),this.pendingRender?(this.debugLog("DRAGEND-PENDING-RENDER: flushing deferred render via debouncedRefresh"),this.pendingRender=!1,this.debouncedRefresh()):this.debugLog("DRAGEND: no pending render to flush")}),this.setupCardTouchHandlers(t,n)}performOptimisticReorder(t,n,a){return dHe({draggedPaths:t,dropTarget:n,targetContainer:a,currentTaskElements:this.currentTaskElements,removeEmptyCellHint:i=>this.removeEmptyCellHint(i),log:(i,s)=>this.debugLog(i,s)})}cleanupDragShift(){var t;if(this.dragContainer){this.dragContainer.style.removeProperty("--tn-drag-gap"),this.dragContainer.classList.remove("tn-static-margin-top-12px-91e0f558","tn-static-overflow-y-auto-03df744e","tn-static-overflow-y-clip-c5043043"),gQ(this.dragContainer),this.dragContainer.style.removeProperty("overflow-y"),this.dragContainer.style.removeProperty("padding-bottom");let n=this.dragContainer.querySelectorAll(".kanban-view__card-wrapper--drag-shift, .kanban-view__card-wrapper--shift-down");for(let a of n)a.classList.remove("kanban-view__card-wrapper--drag-shift","kanban-view__card-wrapper--shift-down");this.dragContainer=null}this.dragTargetColumnEl&&(this.dragTargetColumnEl.classList.remove("tn-static-margin-top-12px-91e0f558","tn-static-max-height-400px-f0787633"),this.dragTargetColumnEl.style.removeProperty("max-height"),this.dragTargetColumnEl=null),this.boardEl&&gQ(this.boardEl),(t=this.boardEl)==null||t.querySelectorAll(".kanban-view__card-wrapper--drag-shift, .kanban-view__card-wrapper--shift-down").forEach(n=>{n.classList.remove("kanban-view__card-wrapper--drag-shift","kanban-view__card-wrapper--shift-down")}),this.currentInsertionIndex=-1}showFloatingDragPreview(t,n){this.cleanupFloatingDragPreview();let a=t.ownerDocument,i=a.body;if(!i)return;let s=t.getBoundingClientRect(),o=Ne(a,"div"),l=this.getFloatingDragPreviewTitle(t),c=Ne(a,"span");c.className="kanban-view__floating-drag-preview-title",c.textContent=l,o.classList.add("tasknotes-plugin","kanban-view__floating-drag-preview"),o.appendChild(c),o.setAttribute("aria-hidden","true"),o.setAttribute("draggable","false"),this.draggedTaskPaths.length>1&&(o.dataset.dragCount=`${this.draggedTaskPaths.length}`),this.floatingDragPreviewWidth=Math.min(Math.max(s.width,180),320),this.floatingDragPreviewHeight=40,o.setCssProps({"--tn-kanban-drag-preview-width":`${this.floatingDragPreviewWidth}px`,"--tn-kanban-drag-preview-transform":"translate3d(-9999px, -9999px, 0)"}),i.appendChild(o),this.floatingDragPreviewEl=o,this.floatingDragPreviewDocument=a;let d=u=>{this.positionFloatingDragPreview(u.clientX,u.clientY)};this.floatingDragPreviewMoveHandler=d,a.addEventListener("drag",d,!0),a.addEventListener("dragover",d,!0),this.positionFloatingDragPreview(n.clientX,n.clientY)}positionFloatingDragPreview(t,n){var p;let a=this.floatingDragPreviewEl;if(!a||t===0&&n===0)return;let i=(p=a.ownerDocument.defaultView)!=null?p:window,s=8,o=14,l=this.floatingDragPreviewWidth,c=this.floatingDragPreviewHeight,d=t+o,u=n+o;d+l>i.innerWidth-s&&(d=t-l-o),u+c>i.innerHeight-s&&(u=n-c-o),d=Math.max(s,Math.min(d,Math.max(s,i.innerWidth-l-s))),u=Math.max(s,Math.min(u,Math.max(s,i.innerHeight-c-s))),d+=i.scrollX,u+=i.scrollY,this.floatingDragPreviewPendingX=d,this.floatingDragPreviewPendingY=u,this.floatingDragPreviewRafId===null&&(this.floatingDragPreviewRafId=i.requestAnimationFrame(()=>{var h;this.floatingDragPreviewRafId=null;let m=this.floatingDragPreviewPendingX,f=this.floatingDragPreviewPendingY;(h=this.floatingDragPreviewEl)==null||h.setCssProps({"--tn-kanban-drag-preview-transform":`translate3d(${m}px, ${f}px, 0)`})}))}getFloatingDragPreviewTitle(t){var i,s,o,l;let a=(((i=t.querySelector(".task-card__title-text"))==null?void 0:i.textContent)||((s=t.querySelector(".task-card__title"))==null?void 0:s.textContent)||((l=(o=t.dataset.taskPath)==null?void 0:o.split("/").pop())==null?void 0:l.replace(/\.md$/i,""))||"Task").trim().replace(/\s+/g," ");return a.length>80?`${a.slice(0,77).trimEnd()}...`:a}cleanupFloatingDragPreview(){var t,n,a;this.floatingDragPreviewRafId!==null&&(((n=(t=this.floatingDragPreviewDocument)==null?void 0:t.defaultView)!=null?n:window).cancelAnimationFrame(this.floatingDragPreviewRafId),this.floatingDragPreviewRafId=null),this.floatingDragPreviewMoveHandler&&this.floatingDragPreviewDocument&&(this.floatingDragPreviewDocument.removeEventListener("drag",this.floatingDragPreviewMoveHandler,!0),this.floatingDragPreviewDocument.removeEventListener("dragover",this.floatingDragPreviewMoveHandler,!0)),(a=this.floatingDragPreviewEl)==null||a.remove(),this.floatingDragPreviewEl=null,this.floatingDragPreviewDocument=null,this.floatingDragPreviewMoveHandler=null,this.floatingDragPreviewWidth=280,this.floatingDragPreviewHeight=40,this.floatingDragPreviewPendingX=0,this.floatingDragPreviewPendingY=0}setupCardTouchHandlers(t,n){if(!$He(Kn.Platform.isMobile))return;let a=null,i=()=>{a=null};t.addEventListener("touchstart",s=>{if(s.touches.length!==1)return;a=mQ(s.target,t);let o=s.touches[0];this.touchStartX=o.clientX,this.touchStartY=o.clientY,this.longPressTimer=window.setTimeout(()=>{this.initiateTouchDrag(t,n,o.clientX,o.clientY,a)},this.LONG_PRESS_DELAY)},{passive:!0}),t.addEventListener("touchmove",s=>{if(s.touches.length!==1)return;let o=s.touches[0];if(!this.touchDragActive&&this.longPressTimer){let l=Math.abs(o.clientX-this.touchStartX),c=Math.abs(o.clientY-this.touchStartY);(l>this.TOUCH_MOVE_THRESHOLD||c>this.TOUCH_MOVE_THRESHOLD)&&(window.clearTimeout(this.longPressTimer),this.longPressTimer=null);return}this.touchDragActive&&this.touchDragType==="task"&&(s.preventDefault(),this.updateTouchDragGhost(o.clientX,o.clientY),this.updateDropTargetFeedback(o.clientX,o.clientY),this.handleAutoScroll(o.clientX))},{passive:!1}),t.addEventListener("touchend",s=>{(async()=>{var c,d,u,p;if(this.longPressTimer&&(window.clearTimeout(this.longPressTimer),this.longPressTimer=null),!this.touchDragActive||this.touchDragType!=="task")return;let o=s.changedTouches[0];if(!o){this.clearTouchDragState();return}let l=this.findDropTargetAt(o.clientX,o.clientY);if(l.groupKey&&this.draggedTaskPath){let m=l.type==="task"?D1(l.taskPath,(c=l.above)!=null?c:!0):void 0,f=(p=(u=l.cardsContainer)!=null?u:(d=l.element)==null?void 0:d.querySelector(".kanban-view__cards, .kanban-view__tasks-container"))!=null?p:null,h=u0(this.draggedTaskPaths,this.draggedTaskPath),g=this.performOptimisticReorder(h,m,f);this.cleanupDragShift(),await this.handleTaskDrop(this.draggedTaskPath,l.groupKey,l.swimLaneKey,m,{optimisticReorderApplied:g,draggedPaths:h})}this.clearTouchDragState(),i()})()}),t.addEventListener("touchcancel",()=>{i(),this.clearTouchDragState()})}initiateTouchDrag(t,n,a,i,s=null){var f;this.touchDragActive=!0,this.touchDragType="task",this.containerEl.ownerDocument.addEventListener("contextmenu",this.boundContextMenuBlocker,!0);let o=s!=null?s:{taskPath:n.path,sourceElement:t},l=o.taskPath,c=o.sourceElement,d=this.plugin.taskSelectionService;if(d!=null&&d.isSelected(l)&&d.getSelectionCount()>1){this.draggedTaskPaths=d.getSelectedPaths(),this.draggedTaskPath=l,this.draggedSourceColumns.clear(),this.draggedSourceSwimlanes.clear();for(let h of this.draggedTaskPaths){let g=this.currentTaskElements.get(h);if(g){g.classList.add("kanban-view__card--dragging");let v=g.closest("[data-group]"),b=g.closest("[data-column]"),k=g.closest("[data-swimlane]"),w=(v==null?void 0:v.dataset.group)||(b==null?void 0:b.dataset.column),S=k==null?void 0:k.dataset.swimlane;w&&this.draggedSourceColumns.set(h,w),S&&this.draggedSourceSwimlanes.set(h,S)}}c.classList.add("kanban-view__card--dragging")}else this.draggedTaskPath=l,this.draggedTaskPaths=[l],c.classList.add("kanban-view__card--dragging");this.activeDragSourceElement=c;let u=t.closest("[data-group]"),p=t.closest("[data-column]"),m=t.closest("[data-swimlane]");this.draggedFromColumn=(u==null?void 0:u.dataset.group)||(p==null?void 0:p.dataset.column)||null,this.draggedFromSwimlane=(m==null?void 0:m.dataset.swimlane)||null,this.touchDragGhost=this.createTouchDragGhost(c,a,i),(f=navigator.vibrate)==null||f.call(navigator,50)}async handleTaskDrop(t,n,a,i,s={}){this.activeDropCount++;let o=!0;try{await this.dropQueue.enqueue(t,async()=>{var ue,Q,G,ie,Ee,ee;this.suppressRenderUntil=Date.now()+1e4;let l=this.getGroupByPropertyId();if(!l)return;if(l.startsWith("formula.")){new Kn.Notice(this.plugin.i18n.translate("views.kanban.errors.formulaGroupingReadOnly"));return}if(a!==null&&((ue=this.swimLanePropertyId)!=null&&ue.startsWith("formula."))){new Kn.Notice(this.plugin.i18n.translate("views.kanban.errors.formulaSwimlaneReadOnly"));return}let c=wi(l),d=this.explodeListColumns&&this.isListTypeProperty(c),u=this.swimLanePropertyId?wi(this.swimLanePropertyId):null,p=u&&this.isListTypeProperty(u),m=this.draggedFromColumn,f=this.draggedFromSwimlane,h=new Map(this.draggedSourceColumns),g=new Map(this.draggedSourceSwimlanes),v=s.draggedPaths&&s.draggedPaths.length>0?[...s.draggedPaths]:[...this.draggedTaskPaths],b=v.length>1?v:[t],k=b.length>1,w=this.canFastPatchManualOrderDrop(s,i,b,n,a),S=this.canFastPatchCrossScopeDrop(s,b),C=!1,E=!1,D=e0(this.dataAdapter,this.plugin.settings.fieldMapping.sortOrder),P=this.plugin.settings.fieldMapping.sortOrder,O=wi(l),z=this.swimLanePropertyId?wi(this.swimLanePropertyId):null,R=a!==null&&z?[{property:z,value:a}]:void 0,A=this.getVisibleSortScopePaths(n,a),F=this.getCandidateSortScopePaths(n,a);this.debugLog("SORT-ORDER-CHECK",{hasDropTarget:!!i,hasSortOrder:D,dropTarget:i?{file:i.taskPath.split("/").pop(),above:i.above}:null});let $=this.plugin.fieldMapper.lookupMappingKey(c),B=u?this.plugin.fieldMapper.lookupMappingKey(u):null;for(let re of b){let et=k?h.get(re):m,fe=k?g.get(re):f,ut=uHe({path:re,sourceColumn:et,sourceSwimlane:fe,newGroupValue:n,newSwimLaneValue:a,groupByPropertyId:l,swimLanePropertyId:this.swimLanePropertyId,groupByTaskProp:$,swimlaneTaskProp:B,isGroupByListProperty:d,isSwimlaneListProperty:!!p});this.debugLog("HANDLE-DROP-TASK",{taskFile:re.split("/").pop(),sourceColumn:et,newGroupValue:n,isSameColumn:!ut.needsGroupUpdate,isGroupByListProperty:d,sourceSwimlane:fe,newSwimLaneValue:a});let Je=null;if(D){if(i){if(this.debugLog("COMPUTE-SORT-ORDER-CALL",{taskFile:re.split("/").pop(),targetFile:i.taskPath.split("/").pop(),above:i.above,groupKey:n,cleanGroupBy:O,cleanSwimLane:z}),Je=await k1(i.taskPath,i.above,n,O,re,this.plugin,{scopeFilters:R,taskInfoCache:this.taskInfoCache,visibleTaskPaths:A,candidateTaskPaths:F}),Je.sortOrder===null)continue;let se=Je.additionalWrites.length+1;if(se>this.LARGE_REORDER_WARNING_THRESHOLD&&!await this.confirmLargeReorder(se,n,a))return}else this.debugLog("SORT-ORDER-CROSS-COLUMN-PRESERVE",{taskFile:re.split("/").pop(),groupKey:n});this.debugLog("SORT-ORDER-RESULT",{taskFile:re.split("/").pop(),newSortOrder:(Q=Je==null?void 0:Je.sortOrder)!=null?Q:null,isNull:(Je==null?void 0:Je.sortOrder)===null,additionalWrites:(G=Je==null?void 0:Je.additionalWrites.length)!=null?G:0})}if(!pHe(ut,Je!==null))continue;let ai=this.plugin.app.vault.getAbstractFileByPath(re);if(!ai||!(ai instanceof Kn.TFile))continue;Je&&await b1(re,Je,this.plugin,{includeDragged:!1}),await Fr(this.plugin.app,ai,se=>{mHe(se,ut,{coerceGroupValue:(bn,gh)=>this.coerceGroupKeyForFrontmatter(bn,gh)}),(Je==null?void 0:Je.sortOrder)!==null&&Je&&(se[P]=Je.sortOrder);let De=fHe({plan:ut,task:this.taskInfoCache.get(re),dateModifiedField:this.plugin.fieldMapper.toUserField("dateModified"),dateModifiedValue:Ge()});De&&(this.plugin.taskService.updateCompletedDateInFrontmatter(se,De.statusValue,De.isRecurring),se[De.dateModifiedField]=De.dateModifiedValue)}),this.debugLog("ATOMIC-WRITE-DONE",{taskFile:re.split("/").pop(),needsGroupUpdate:ut.needsGroupUpdate,needsSwimlaneUpdate:ut.needsSwimlaneUpdate,hasSortOrder:Je!==null}),w&&i&&Je&&!ut.needsGroupUpdate&&!ut.needsSwimlaneUpdate&&(C=this.applyOptimisticSortOrderResult(re,i.taskPath,i.above,n,a,Je));let _n=!1,Bs=null;if(ut.changedTaskProp)try{let se=(ie=this.taskInfoCache.get(re))!=null?ie:await this.plugin.cacheManager.getTaskInfo(re),De=hHe({plan:ut,originalTask:se,dateModifiedValue:Ge(),isCompletedStatus:bn=>this.plugin.statusManager.isCompletedStatus(bn)});De&&(await this.plugin.taskService.applyPropertyChangeSideEffects(ai,se,De.updatedTask,De.changedTaskProp,De.oldPropValue,De.newPropValue),Bs=De.updatedTask)}catch(se){_n=!0,My.warn("[TaskNotes][KanbanView] Side-effect error after drop:",{category:"configuration",operation:"side-effect-drop",error:se})}S&&!_n&&(ut.needsGroupUpdate||ut.needsSwimlaneUpdate)&&(E=this.applySuccessfulKanbanDropLocally({path:re,dropPlan:ut,dropTarget:i,sortOrderPlan:Je,updatedTask:Bs,optimisticReorderApplied:s.optimisticReorderApplied===!0}))}k&&((Ee=this.plugin.taskSelectionService)==null||Ee.clearSelection(),(ee=this.plugin.taskSelectionService)==null||ee.exitSelectionMode()),this.debugLog("HANDLE-DROP-COMPLETE",{pathsUpdated:b.map(re=>re.split("/").pop()),fastPatchedManualOrder:C,fastPatchedCrossScopeDrop:E}),(C||E)&&(this.pendingRender=!1,o=!1)})}catch(l){My.error("[TaskNotes][KanbanView] Error updating task:",{category:"persistence",operation:"updating-task",error:l})}finally{if(this.activeDropCount--,o&&(this.postDropRefreshRequested=!0),this.activeDropCount===0){let l=this.postDropRefreshRequested;this.postDropRefreshRequested=!1,l?this.schedulePostDropRender():this.finishFastPostDrop()}}}setupContainer(){var a;super.setupContainer();let t=this.containerEl.ownerDocument,n=Ne(t,"div");n.className="kanban-view__board",(a=this.rootElement)==null||a.appendChild(n),this.boardEl=n,this.registerBoardListeners()}async handleTaskUpdate(t){this.debouncedRefresh()}debouncedRefresh(){this.updateDebounceTimer&&(this.debugLog("DEBOUNCED-REFRESH: cancelling previous pending timer"),window.clearTimeout(this.updateDebounceTimer)),this.debugLog("DEBOUNCED-REFRESH: scheduling render in 150ms",{activeDropCount:this.activeDropCount,suppressRenderRemaining:Math.max(0,this.suppressRenderUntil-Date.now())});let t=this.getEphemeralState(),n=this.containerEl.ownerDocument.defaultView||window;this.updateDebounceTimer=n.setTimeout(()=>{(async()=>{if(this.activeDropCount>0||Date.now()<this.suppressRenderUntil){this.debugLog("DEBOUNCED-REFRESH-TIMER-FIRED: SKIPPED (drop still in-flight)",{activeDropCount:this.activeDropCount,suppressRenderRemaining:Math.max(0,this.suppressRenderUntil-Date.now())}),this.updateDebounceTimer=null;return}this.debugLog("DEBOUNCED-REFRESH-TIMER-FIRED: executing render now",{activeDropCount:this.activeDropCount,suppressRenderRemaining:Math.max(0,this.suppressRenderUntil-Date.now())}),await this.render(),this.updateDebounceTimer=null,this.setEphemeralState(t)})()},150)}debugLog(t,n){this.logger.debug(t,{category:"internal",operation:"kanban-debug",details:n})}schedulePostDropRender(){this.debugLog("SCHEDULE-POST-DROP-RENDER",{delay:$T.POST_DROP_RENDER_DELAY}),this.suppressRenderUntil=Date.now()+$T.POST_DROP_RENDER_DELAY,this.pendingRender=!1,this.postDropTimer&&window.clearTimeout(this.postDropTimer);let t=this.containerEl.ownerDocument.defaultView||window;this.postDropTimer=t.setTimeout(()=>{this.debugLog("POST-DROP-TIMER-FIRED: rendering now"),this.postDropTimer=null,this.suppressRenderUntil=0,this.debouncedRefresh()},$T.POST_DROP_RENDER_DELAY)}finishFastPostDrop(){this.debugLog("FAST-POST-DROP-COMPLETE"),this.postDropTimer&&(window.clearTimeout(this.postDropTimer),this.postDropTimer=null),this.suppressRenderUntil=0,this.pendingRender=!1}renderEmptyState(){if(!this.boardEl)return;let t=this.containerEl.ownerDocument,n=Ne(t,"div");n.className="tn-bases-empty",n.textContent="No tasknotes tasks found for this base.",this.boardEl.appendChild(n)}renderNoGroupByError(){if(!this.boardEl)return;let t=this.containerEl.ownerDocument,n=Ne(t,"div");n.className="tn-bases-error",n.textContent=this.plugin.i18n.translate("views.kanban.errors.noGroupBy"),this.boardEl.appendChild(n)}renderError(t){if(!this.boardEl)return;let n=this.containerEl.ownerDocument,a=Ne(n,"div");a.className="tn-bases-error",a.textContent=`Error loading kanban: ${t.message||"Unknown error"}`,this.boardEl.appendChild(a)}getGroupDisplayTitle(t,n){if(!n)return t;let a=wi(n),i=this.plugin.fieldMapper.toUserField("status");if(a===i){let o=this.plugin.statusManager.getStatusConfig(t);if(o!=null&&o.label)return o.label}let s=this.plugin.fieldMapper.toUserField("priority");if(a===s){let o=this.plugin.priorityManager.getPriorityConfig(t);if(o!=null&&o.label)return o.label}return t}renderGroupTitleWrapper(t,n,a=!1,i=!1){if(a?this.isSwimLaneByStatus():this.isGroupedByStatus()){let c=this.plugin.statusManager.getStatusConfig(n);if(c){if(this.consolidateStatusIcon&&!i&&c.icon){let d=t.createSpan({cls:"kanban-view__column-icon"});d.style.color=c.color,(0,Kn.setIcon)(d,c.icon)}this.renderLinkAwareGroupTitle(t,c.label);return}}let o=a?this.swimLanePropertyId:this.getGroupByPropertyId(),l=this.getGroupDisplayTitle(n,o);this.renderLinkAwareGroupTitle(t,l)}renderLinkAwareGroupTitle(t,n){let a=this.app||this.plugin.app,i={metadataCache:a.metadataCache,workspace:a.workspace};e1(t,n,i)}applyColumnOrder(t,n){return LHe({groupBy:t,actualKeys:n,columnOrders:this.columnOrders,hideEmptyColumns:this.hideEmptyColumns,pinnedColumns:this.pinnedColumns,isPriorityField:a=>this.isPropertyField(a,"priority"),isStatusField:a=>this.isPropertyField(a,"status"),getPriorityWeight:a=>this.plugin.priorityManager.getPriorityWeight(a),findStatusConfig:a=>this.findStatusConfigForGroupKey(a)})}applySwimLaneOrder(t,n){return CQ({swimLanePropertyId:t,actualKeys:n,swimLaneOrders:this.swimLaneOrders,hideEmptySwimLanes:this.hideEmptySwimLanes,isPriorityField:a=>this.isPropertyField(a,"priority"),isStatusField:a=>this.isPropertyField(a,"status"),getPriorityWeight:a=>this.plugin.priorityManager.getPriorityWeight(a),getStatusOrder:a=>this.plugin.statusManager.getStatusOrder(a)})}isPropertyField(t,n){return t?wi(t)===this.plugin.fieldMapper.toUserField(n):!1}applySwimLaneOrderToMap(t,n,a){return zHe({swimLanePropertyId:t,swimLanes:n,columnKeys:a,swimLaneOrders:this.swimLaneOrders,hideEmptySwimLanes:this.hideEmptySwimLanes,isPriorityField:i=>this.isPropertyField(i,"priority"),isStatusField:i=>this.isPropertyField(i,"status"),getPriorityWeight:i=>this.plugin.priorityManager.getPriorityWeight(i),getStatusOrder:i=>this.plugin.statusManager.getStatusOrder(i)})}async saveColumnOrder(t,n){this.columnOrders[t]=n;try{let a=JSON.stringify(this.columnOrders);this.config.set("columnOrder",a)}catch(a){My.error("[KanbanView] Failed to save column order:",{category:"persistence",operation:"save-column-order",error:a})}}getCardOptions(){let t=new Date,n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),a=this.consolidateStatusIcon&&this.isGroupedByStatus();return this.buildTaskCardOptions({layout:this.cardLayout,targetDate:n,hideStatusIndicator:a,expandedRelationshipFilterMode:this.expandedRelationshipFilterMode,resolveExpandedRelationshipFilterMode:()=>{var i;return jHe((i=this.config)==null?void 0:i.get("expandedRelationshipFilterMode"))},expandedRelationshipTaskPaths:this.expandedRelationshipTaskPaths,expandedRelationshipTaskOrder:this.expandedRelationshipTaskOrder})}getTopLevelRenderTasks(t){return this.hideTopLevelSubtasks?this.filterTopLevelSubtasks(t):[...t]}setExpandedRelationshipTaskScope(t){this.expandedRelationshipTaskPaths.clear(),this.expandedRelationshipTaskOrder.clear(),t.forEach((n,a)=>{this.expandedRelationshipTaskPaths.add(n.path),this.expandedRelationshipTaskOrder.set(n.path,a)})}setCurrentVisibleTaskPaths(t){this.currentVisibleTaskPaths.clear(),this.currentVisibleTaskOrder.clear(),t.forEach((n,a)=>{this.currentVisibleTaskPaths.add(n.path),this.currentVisibleTaskOrder.set(n.path,a)})}isGroupedByStatus(){let t=this.getGroupByPropertyId();if(!t)return!1;let n=this.plugin.fieldMapper.toUserField("status");return t.replace(/^(note\.|file\.|task\.)/,"")===n}isSwimLaneByStatus(){if(!this.swimLanePropertyId)return!1;let t=this.plugin.fieldMapper.toUserField("status");return this.swimLanePropertyId.replace(/^(note\.|file\.|task\.)/,"")===t}registerBoardListeners(){}unregisterBoardListeners(){}getTaskContextFromEvent(t){let n=t.target;if(!n)return null;let a=n.closest(".task-card");if(!a)return null;let i=a.closest(".kanban-view__card-wrapper");if(!i)return null;let s=i.dataset.taskPath;if(!s)return null;let o=this.taskInfoCache.get(s);return o?{task:o,card:a}:null}async handleCardAction(t,n,a,i){await pQ({action:t,task:n,target:a,event:i,plugin:this.plugin,app:this.app||this.plugin.app})}async handleToggleStatus(t,n){await pQ({action:"toggle-status",task:t,target:this.containerEl,event:n,plugin:this.plugin,app:this.app||this.plugin.app})}getTaskActionDate(t){return d0(t)}destroyColumnScrollers(){for(let t of this.columnScrollers.values())t.destroy();this.columnScrollers.clear()}onunload(){this.postDropTimer&&(window.clearTimeout(this.postDropTimer),this.postDropTimer=null),this.suppressRenderUntil=0,this.unregisterBoardListeners(),this.cleanupFloatingDragPreview(),this.destroyColumnScrollers(),this.currentTaskElements.clear(),this.taskInfoCache.clear(),this.sortScopeTaskPaths.clear(),this.boardEl=null}};$T.POST_DROP_RENDER_DELAY=500;DQ=$T});var m0=y(()=>{Ku();pD()});function N1(r,e){let t=[];for(let n=0;n<e;n+=1)t[n]=[];for(let n of r)t[n.row].push(n);return t}function I1(r,e){let t=[];for(let n=0;n<e;n+=1)t[n]=[];for(let n of r)t[n.firstCol].push(n);return t}function HHe(r,e){let t=[];if(r){for(let n=0;n<e;n+=1)t[n]={affectedInstances:r.affectedInstances,isEvent:r.isEvent,segs:[]};for(let n of r.segs)t[n.row].segs.push(n)}else for(let n=0;n<e;n+=1)t[n]=null;return t}function qHe(r){let{display:e}=r.eventRange.ui;return e==="list-item"||e==="auto"&&!r.eventRange.def.allDay&&r.firstCol===r.lastCol&&r.isStart&&r.isEnd}function _Rt(r){return _(Gt,null,_("div",{className:"fc-daygrid-event-dot",style:{borderColor:r.borderColor||r.backgroundColor}}),r.timeText&&_("div",{className:"fc-event-time"},r.timeText),_("div",{className:"fc-event-title"},r.event.title||_(Gt,null,"\xA0")))}function IRt(r){let e=[],t=[];for(let n of r)e.push(n.seg),n.isVisible||t.push(n.seg);return{allSegs:e,invisibleSegs:t}}function RRt(r){return r.dayNumberText||_(Gt,null,"\xA0")}function FRt(r,e,t){let{start:n,end:a}=e,i=ld(a,-1),s=t.getYear(n),o=t.getMonth(n),l=t.getYear(i),c=t.getMonth(i);return!(s===l&&o===c)&&(r.valueOf()===n.valueOf()||t.getDay(r)===1&&r.valueOf()<a.valueOf())}function WHe(r){return r.eventRange.instance.instanceId+":"+r.firstCol}function YHe(r){return WHe(r)+":"+r.lastCol}function ORt(r,e,t,n,a,i,s){let o=new IQ(v=>{let b=r[v.index].eventRange.instance.instanceId+":"+v.span.start+":"+(v.span.end-1);return a[b]||1});o.allowReslicing=!0,o.strictOrder=n,e===!0||t===!0?(o.maxCoord=i,o.hiddenConsumes=!0):typeof e=="number"?o.maxStackCnt=e:typeof t=="number"&&(o.maxStackCnt=t,o.hiddenConsumes=!0);let l=[],c=[];for(let v=0;v<r.length;v+=1){let b=r[v],k=YHe(b);a[k]!=null?l.push({index:v,span:{start:b.firstCol,end:b.lastCol+1}}):c.push(b)}let d=o.addSegs(l),u=o.toRects(),{singleColPlacements:p,multiColPlacements:m,leftoverMargins:f}=LRt(u,r,s),h=[],g=[];for(let v of c){m[v.firstCol].push({seg:v,isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let b=v.firstCol;b<=v.lastCol;b+=1)p[b].push({seg:BT(v,b,b+1,s),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let v=0;v<s.length;v+=1)h.push(0);for(let v of d){let b=r[v.index],k=v.span;m[k.start].push({seg:BT(b,k.start,k.end,s),isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let w=k.start;w<k.end;w+=1)h[w]+=1,p[w].push({seg:BT(b,w,w+1,s),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let v=0;v<s.length;v+=1)g.push(f[v]);return{singleColPlacements:p,multiColPlacements:m,moreCnts:h,moreMarginTops:g}}function LRt(r,e,t){let n=zRt(r,t.length),a=[],i=[],s=[];for(let o=0;o<t.length;o+=1){let l=n[o],c=[],d=0,u=0;for(let m of l){let f=e[m.index];c.push({seg:BT(f,o,o+1,t),isVisible:!0,isAbsolute:!1,absoluteTop:m.levelCoord,marginTop:m.levelCoord-d}),d=m.levelCoord+m.thickness}let p=[];d=0,u=0;for(let m of l){let f=e[m.index],h=m.span.end-m.span.start>1,g=m.span.start===o;u+=m.levelCoord-d,d=m.levelCoord+m.thickness,h?(u+=m.thickness,g&&p.push({seg:BT(f,m.span.start,m.span.end,t),isVisible:!0,isAbsolute:!0,absoluteTop:m.levelCoord,marginTop:0})):g&&(p.push({seg:BT(f,m.span.start,m.span.end,t),isVisible:!0,isAbsolute:!1,absoluteTop:m.levelCoord,marginTop:u}),u=0)}a.push(c),i.push(p),s.push(u)}return{singleColPlacements:a,multiColPlacements:i,leftoverMargins:s}}function zRt(r,e){let t=[];for(let n=0;n<e;n+=1)t.push([]);for(let n of r)for(let a=n.span.start;a<n.span.end;a+=1)t[a].push(n);return t}function BT(r,e,t,n){if(r.firstCol===e&&r.lastCol===t-1)return r;let a=r.eventRange,i=a.range,s=Vi(i,{start:n[e].date,end:hn(n[t-1].date,1)});return Object.assign(Object.assign({},r),{firstCol:e,lastCol:t-1,eventRange:{def:a.def,ui:Object.assign(Object.assign({},a.ui),{durationEditable:!1}),instance:a.instance,range:s},isStart:r.isStart&&s.start.valueOf()===i.start.valueOf(),isEnd:r.isEnd&&s.end.valueOf()===i.end.valueOf()})}function jRt(r,e){if(!r.length)return[];let t=$Rt(e);return r.map(n=>({seg:n,isVisible:!0,isAbsolute:!0,absoluteTop:t[n.eventRange.instance.instanceId],marginTop:0}))}function $Rt(r){let e={};for(let t of r)for(let n of t)e[n.seg.eventRange.instance.instanceId]=n.absoluteTop;return e}function BRt(r,e){return N1(r.filter(URt),e)}function URt(r){return r.eventRange.def.allDay}function HRt(r,e){let t;return e.currentRangeUnit.match(/year|month/)&&(t=r.querySelector(`[data-date="${Ub(e.currentDate)}-01"]`)),t||(t=r.querySelector(`[data-date="${ef(e.currentDate)}"]`)),t}function RQ(r,e){let t=new Fg(r.renderRange,e);return new Og(t,/year|month|week/.test(r.currentRangeUnit))}function FQ(r){let{dateEnv:e,currentRange:t}=r,{start:n,end:a}=t,i;if(r.snapToWeek&&(n=e.startOfWeek(n),i=e.startOfWeek(a),i.valueOf()!==a.valueOf()&&(a=LF(i,1))),r.fixedWeekCount){let s=e.startOfWeek(e.startOfMonth(hn(t.end,-1))),o=Math.ceil(p3(s,a));a=LF(a,6-o)}return{start:n,end:a}}var MQ,VHe,R1,F1,AQ,NRt,_Q,IQ,O1,f0,NQ,h0,g0,L1,UT,VRt,z1=y(()=>{qg();m0();MQ=class extends ia{constructor(){super(...arguments),this.headerElRef=En()}renderSimpleLayout(e,t){let{props:n,context:a}=this,i=[],s=Hg(a.options);return e&&i.push({type:"header",key:"header",isSticky:s,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),i.push({type:"body",key:"body",liquid:!0,chunk:{content:t}}),_(co,{elClasses:["fc-daygrid"],viewSpec:a.viewSpec},_(Qm,{liquid:!n.isHeightAuto&&!n.forPrint,collapsibleWidth:n.forPrint,cols:[],sections:i}))}renderHScrollLayout(e,t,n,a){let i=this.context.pluginHooks.scrollGridImpl;if(!i)throw new Error("No ScrollGrid implementation");let{props:s,context:o}=this,l=!s.forPrint&&Hg(o.options),c=!s.forPrint&&HD(o.options),d=[];return e&&d.push({type:"header",key:"header",isSticky:l,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),d.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:t}]}),c&&d.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:Zb}]}),_(co,{elClasses:["fc-daygrid"],viewSpec:o.viewSpec},_(i,{liquid:!s.isHeightAuto&&!s.forPrint,forPrint:s.forPrint,collapsibleWidth:s.forPrint,colGroups:[{cols:[{span:n,minWidth:a}]}],sections:d}))}};VHe=Kt({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});R1=class extends Pt{render(){let{props:e}=this;return _(Jm,Object.assign({},e,{elClasses:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:VHe,defaultDisplayEventEnd:e.defaultDisplayEventEnd,disableResizing:!e.seg.eventRange.def.allDay}))}},F1=class extends Pt{render(){let{props:e,context:t}=this,{options:n}=t,{seg:a}=e,i=n.eventTimeFormat||VHe,s=rf(a,i,t,!0,e.defaultDisplayEventEnd);return _(ep,Object.assign({},e,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:Yb(e.seg,t),defaultGenerator:_Rt,timeText:s,isResizing:!1,isDateSelecting:!1}))}};AQ=class extends Pt{constructor(){super(...arguments),this.compileSegs=_e(IRt)}render(){let{props:e}=this,{allSegs:t,invisibleSegs:n}=this.compileSegs(e.singlePlacements);return _(jg,{elClasses:["fc-daygrid-more-link"],dateProfile:e.dateProfile,todayRange:e.todayRange,allDayDate:e.allDayDate,moreCnt:e.moreCnt,allSegs:t,hiddenSegs:n,alignmentElRef:e.alignmentElRef,alignGridTop:e.alignGridTop,extraDateSpan:e.extraDateSpan,popoverContent:()=>{let a=(e.eventDrag?e.eventDrag.affectedInstances:null)||(e.eventResize?e.eventResize.affectedInstances:null)||{};return _(Gt,null,t.map(i=>{let s=i.eventRange.instance.instanceId;return _("div",{className:"fc-daygrid-event-harness",key:s,style:{visibility:a[s]?"hidden":""}},qHe(i)?_(F1,Object.assign({seg:i,isDragging:!1,isSelected:s===e.eventSelection,defaultDisplayEventEnd:!1},po(i,e.todayRange))):_(R1,Object.assign({seg:i,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:s===e.eventSelection,defaultDisplayEventEnd:!1},po(i,e.todayRange))))}))}})}};NRt=Kt({week:"narrow"}),_Q=class extends ia{constructor(){super(...arguments),this.rootElRef=En(),this.state={dayNumberId:bs()},this.handleRootEl=e=>{uo(this.rootElRef,e),uo(this.props.elRef,e)}}render(){let{context:e,props:t,state:n,rootElRef:a}=this,{options:i,dateEnv:s}=e,{date:o,dateProfile:l}=t,c=t.showDayNumber&&FRt(o,l.currentRange,s);return _(Xm,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygrid-day",...t.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},t.extraDataAttrs),t.showDayNumber?{"aria-labelledby":n.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:RRt,date:o,dateProfile:l,todayRange:t.todayRange,showDayNumber:t.showDayNumber,isMonthStart:c,extraRenderProps:t.extraRenderProps},(d,u)=>_("div",{ref:t.innerElRef,className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",style:{minHeight:t.minHeight}},t.showWeekNumber&&_(WD,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:gd(e,o,"week"),date:o,defaultFormat:NRt}),!u.isDisabled&&(t.showDayNumber||Qb(i)||t.forceDayTop)?_("div",{className:"fc-daygrid-day-top"},_(d,{elTag:"a",elClasses:["fc-daygrid-day-number",c&&"fc-daygrid-month-start"],elAttrs:Object.assign(Object.assign({},gd(e,o)),{id:n.dayNumberId})})):t.showDayNumber?_("div",{className:"fc-daygrid-day-top",style:{visibility:"hidden"}},_("a",{className:"fc-daygrid-day-number"},"\xA0")):void 0,_("div",{className:"fc-daygrid-day-events",ref:t.fgContentElRef},t.fgContent,_("div",{className:"fc-daygrid-day-bottom",style:{marginTop:t.moreMarginTop}},_(AQ,{allDayDate:o,singlePlacements:t.singlePlacements,moreCnt:t.moreCnt,alignmentElRef:a,alignGridTop:!t.showDayNumber,extraDateSpan:t.extraDateSpan,dateProfile:t.dateProfile,eventSelection:t.eventSelection,eventDrag:t.eventDrag,eventResize:t.eventResize,todayRange:t.todayRange}))),_("div",{className:"fc-daygrid-day-bg"},t.bgContent)))}};IQ=class extends Rg{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(e){let t=super.addSegs(e),{entriesByLevel:n}=this,a=i=>!this.forceHidden[dd(i)];for(let i=0;i<n.length;i+=1)n[i]=n[i].filter(a);return t}handleInvalidInsertion(e,t,n){let{entriesByLevel:a,forceHidden:i}=this,{touchingEntry:s,touchingLevel:o,touchingLateral:l}=e;if(this.hiddenConsumes&&s){let c=dd(s);if(!i[c])if(this.allowReslicing){let d=Object.assign(Object.assign({},s),{span:$D(s.span,t.span)}),u=dd(d);i[u]=!0,a[o][l]=d,n.push(d),this.splitEntry(s,t,n)}else i[c]=!0,n.push(s)}super.handleInvalidInsertion(e,t,n)}},O1=class extends ia{constructor(){super(...arguments),this.cellElRefs=new ks,this.frameElRefs=new ks,this.fgElRefs=new ks,this.segHarnessRefs=new ks,this.rootElRef=En(),this.state={framePositions:null,maxContentHeight:null,segHeights:{}},this.handleResize=e=>{e&&this.updateSizing(!0)}}render(){let{props:e,state:t,context:n}=this,{options:a}=n,i=e.cells.length,s=I1(e.businessHourSegs,i),o=I1(e.bgEventSegs,i),l=I1(this.getHighlightSegs(),i),c=I1(this.getMirrorSegs(),i),{singleColPlacements:d,multiColPlacements:u,moreCnts:p,moreMarginTops:m}=ORt(Bg(e.fgEventSegs,a.eventOrder),e.dayMaxEvents,e.dayMaxEventRows,a.eventOrderStrict,t.segHeights,t.maxContentHeight,e.cells),f=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{};return _("tr",{ref:this.rootElRef,role:"row"},e.renderIntro&&e.renderIntro(),e.cells.map((h,g)=>{let v=this.renderFgSegs(g,e.forPrint?d[g]:u[g],e.todayRange,f),b=this.renderFgSegs(g,jRt(c[g],u),e.todayRange,{},!!e.eventDrag,!!e.eventResize,!1);return _(_Q,{key:h.key,elRef:this.cellElRefs.createRef(h.key),innerElRef:this.frameElRefs.createRef(h.key),dateProfile:e.dateProfile,date:h.date,showDayNumber:e.showDayNumbers,showWeekNumber:e.showWeekNumbers&&g===0,forceDayTop:e.showWeekNumbers,todayRange:e.todayRange,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,extraRenderProps:h.extraRenderProps,extraDataAttrs:h.extraDataAttrs,extraClassNames:h.extraClassNames,extraDateSpan:h.extraDateSpan,moreCnt:p[g],moreMarginTop:m[g],singlePlacements:d[g],fgContentElRef:this.fgElRefs.createRef(h.key),fgContent:_(Gt,null,_(Gt,null,v),_(Gt,null,b)),bgContent:_(Gt,null,this.renderFillSegs(l[g],"highlight"),this.renderFillSegs(s[g],"non-business"),this.renderFillSegs(o[g],"bg-event")),minHeight:e.cellMinHeight})}))}componentDidMount(){this.updateSizing(!0),this.context.addResizeHandler(this.handleResize)}componentDidUpdate(e,t){let n=this.props;this.updateSizing(!gi(e,n))}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}getHighlightSegs(){let{props:e}=this;return e.eventDrag&&e.eventDrag.segs.length?e.eventDrag.segs:e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:e.dateSelectionSegs}getMirrorSegs(){let{props:e}=this;return e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:[]}renderFgSegs(e,t,n,a,i,s,o){let{context:l}=this,{eventSelection:c}=this.props,{framePositions:d}=this.state,u=this.props.cells.length===1,p=i||s||o,m=[];if(d)for(let f of t){let{seg:h}=f,{instanceId:g}=h.eventRange.instance,v=f.isVisible&&!a[g],b=f.isAbsolute,k="",w="";b&&(l.isRtl?(w=0,k=d.lefts[h.lastCol]-d.lefts[h.firstCol]):(k=0,w=d.rights[h.firstCol]-d.rights[h.lastCol])),m.push(_("div",{className:"fc-daygrid-event-harness"+(b?" fc-daygrid-event-harness-abs":""),key:WHe(h),ref:p?null:this.segHarnessRefs.createRef(YHe(h)),style:{visibility:v?"":"hidden",marginTop:b?"":f.marginTop,top:b?f.absoluteTop:"",left:k,right:w}},qHe(h)?_(F1,Object.assign({seg:h,isDragging:i,isSelected:g===c,defaultDisplayEventEnd:u},po(h,n))):_(R1,Object.assign({seg:h,isDragging:i,isResizing:s,isDateSelecting:o,isSelected:g===c,defaultDisplayEventEnd:u},po(h,n)))))}return m}renderFillSegs(e,t){let{isRtl:n}=this.context,{todayRange:a}=this.props,{framePositions:i}=this.state,s=[];if(i)for(let o of e){let l=n?{right:0,left:i.lefts[o.lastCol]-i.lefts[o.firstCol]}:{left:0,right:i.rights[o.firstCol]-i.rights[o.lastCol]};s.push(_("div",{key:OD(o.eventRange),className:"fc-daygrid-bg-harness",style:l},t==="bg-event"?_(zg,Object.assign({seg:o},po(o,a))):qD(t)))}return _(Gt,{},...s)}updateSizing(e){let{props:t,state:n,frameElRefs:a}=this;if(!t.forPrint&&t.clientWidth!==null){if(e){let l=t.cells.map(c=>a.currentMap[c.key]);if(l.length){let c=this.rootElRef.current,d=new tc(c,l,!0,!1);(!n.framePositions||!n.framePositions.similarTo(d))&&this.setState({framePositions:new tc(c,l,!0,!1)})}}let i=this.state.segHeights,s=this.querySegHeights(),o=t.dayMaxEvents===!0||t.dayMaxEventRows===!0;this.safeSetState({segHeights:Object.assign(Object.assign({},i),s),maxContentHeight:o?this.computeMaxContentHeight():null})}}querySegHeights(){let e=this.segHarnessRefs.currentMap,t={};for(let n in e){let a=Math.round(e[n].getBoundingClientRect().height);t[n]=Math.max(t[n]||0,a)}return t}computeMaxContentHeight(){let e=this.props.cells[0].key,t=this.cellElRefs.currentMap[e],n=this.fgElRefs.currentMap[e];return t.getBoundingClientRect().bottom-n.getBoundingClientRect().top}getCellEls(){let e=this.cellElRefs.currentMap;return this.props.cells.map(t=>e[t.key])}};O1.addStateEquality({segHeights:gi});f0=class extends ia{constructor(){super(...arguments),this.splitBusinessHourSegs=_e(N1),this.splitBgEventSegs=_e(BRt),this.splitFgEventSegs=_e(N1),this.splitDateSelectionSegs=_e(N1),this.splitEventDrag=_e(HHe),this.splitEventResize=_e(HHe),this.rowRefs=new ks}render(){let{props:e,context:t}=this,n=e.cells.length,a=this.splitBusinessHourSegs(e.businessHourSegs,n),i=this.splitBgEventSegs(e.bgEventSegs,n),s=this.splitFgEventSegs(e.fgEventSegs,n),o=this.splitDateSelectionSegs(e.dateSelectionSegs,n),l=this.splitEventDrag(e.eventDrag,n),c=this.splitEventResize(e.eventResize,n),d=n>=7&&e.clientWidth?e.clientWidth/t.options.aspectRatio/6:null;return _(vs,{unit:"day"},(u,p)=>_(Gt,null,e.cells.map((m,f)=>_(O1,{ref:this.rowRefs.createRef(f),key:m.length?m[0].date.toISOString():f,showDayNumbers:n>1,showWeekNumbers:e.showWeekNumbers,todayRange:p,dateProfile:e.dateProfile,cells:m,renderIntro:e.renderRowIntro,businessHourSegs:a[f],eventSelection:e.eventSelection,bgEventSegs:i[f],fgEventSegs:s[f],dateSelectionSegs:o[f],eventDrag:l[f],eventResize:c[f],dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,clientWidth:e.clientWidth,clientHeight:e.clientHeight,cellMinHeight:d,forPrint:e.forPrint}))))}componentDidMount(){this.registerInteractiveComponent()}componentDidUpdate(){this.registerInteractiveComponent()}registerInteractiveComponent(){if(!this.rootEl){let e=this.rowRefs.currentMap[0].getCellEls()[0],t=e?e.closest(".fc-daygrid-body"):null;t&&(this.rootEl=t,this.context.registerInteractiveComponent(this,{el:t,isHitComboAllowed:this.props.isHitComboAllowed}))}}componentWillUnmount(){this.rootEl&&(this.context.unregisterInteractiveComponent(this),this.rootEl=null)}prepareHits(){this.rowPositions=new tc(this.rootEl,this.rowRefs.collect().map(e=>e.getCellEls()[0]),!1,!0),this.colPositions=new tc(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)}queryHit(e,t){let{colPositions:n,rowPositions:a}=this,i=n.leftToIndex(e),s=a.topToIndex(t);if(s!=null&&i!=null){let o=this.props.cells[s][i];return{dateProfile:this.props.dateProfile,dateSpan:Object.assign({range:this.getCellRange(s,i),allDay:!0},o.extraDateSpan),dayEl:this.getCellEl(s,i),rect:{left:n.lefts[i],right:n.rights[i],top:a.tops[s],bottom:a.bottoms[s]},layer:0}}return null}getCellEl(e,t){return this.rowRefs.currentMap[e].getCellEls()[t]}getCellRange(e,t){let n=this.props.cells[e][t].date,a=hn(n,1);return{start:n,end:a}}};NQ=class extends ia{constructor(){super(...arguments),this.elRef=En(),this.needsScrollReset=!1}render(){let{props:e}=this,{dayMaxEventRows:t,dayMaxEvents:n,expandRows:a}=e,i=n===!0||t===!0;i&&!a&&(i=!1,t=null,n=null);let s=["fc-daygrid-body",i?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",a?"":"fc-daygrid-body-natural"];return _("div",{ref:this.elRef,className:s.join(" "),style:{width:e.clientWidth,minWidth:e.tableMinWidth}},_("table",{role:"presentation",className:"fc-scrollgrid-sync-table",style:{width:e.clientWidth,minWidth:e.tableMinWidth,height:a?e.clientHeight:""}},e.colGroupNode,_("tbody",{role:"presentation"},_(f0,{dateProfile:e.dateProfile,cells:e.cells,renderRowIntro:e.renderRowIntro,showWeekNumbers:e.showWeekNumbers,clientWidth:e.clientWidth,clientHeight:e.clientHeight,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,dayMaxEvents:n,dayMaxEventRows:t,forPrint:e.forPrint,isHitComboAllowed:e.isHitComboAllowed}))))}componentDidMount(){this.requestScrollReset()}componentDidUpdate(e){e.dateProfile!==this.props.dateProfile?this.requestScrollReset():this.flushScrollReset()}requestScrollReset(){this.needsScrollReset=!0,this.flushScrollReset()}flushScrollReset(){if(this.needsScrollReset&&this.props.clientWidth){let e=HRt(this.elRef.current,this.props.dateProfile);if(e){let t=e.closest(".fc-daygrid-body"),n=t.closest(".fc-scroller"),a=e.getBoundingClientRect().top-t.getBoundingClientRect().top;n.scrollTop=a?a+1:0}this.needsScrollReset=!1}}};h0=class extends Lg{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(e,t){return t.sliceRange(e)}},g0=class extends ia{constructor(){super(...arguments),this.slicer=new h0,this.tableRef=En()}render(){let{props:e,context:t}=this;return _(NQ,Object.assign({ref:this.tableRef},this.slicer.sliceProps(e,e.dateProfile,e.nextDayThreshold,t,e.dayTableModel),{dateProfile:e.dateProfile,cells:e.dayTableModel.cells,colGroupNode:e.colGroupNode,tableMinWidth:e.tableMinWidth,renderRowIntro:e.renderRowIntro,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.showWeekNumbers,expandRows:e.expandRows,headerAlignElRef:e.headerAlignElRef,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint}))}},L1=class extends MQ{constructor(){super(...arguments),this.buildDayTableModel=_e(RQ),this.headerRef=En(),this.tableRef=En()}render(){let{options:e,dateProfileGenerator:t}=this.context,{props:n}=this,a=this.buildDayTableModel(n.dateProfile,t),i=e.dayHeaders&&_(Xu,{ref:this.headerRef,dateProfile:n.dateProfile,dates:a.headerDates,datesRepDistinctDays:a.rowCnt===1}),s=o=>_(g0,{ref:this.tableRef,dateProfile:n.dateProfile,dayTableModel:a,businessHours:n.businessHours,dateSelection:n.dateSelection,eventStore:n.eventStore,eventUiBases:n.eventUiBases,eventSelection:n.eventSelection,eventDrag:n.eventDrag,eventResize:n.eventResize,nextDayThreshold:e.nextDayThreshold,colGroupNode:o.tableColGroupNode,tableMinWidth:o.tableMinWidth,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.weekNumbers,expandRows:!n.isHeightAuto,headerAlignElRef:this.headerElRef,clientWidth:o.clientWidth,clientHeight:o.clientHeight,forPrint:n.forPrint});return e.dayMinWidth?this.renderHScrollLayout(i,s,a.colCnt,e.dayMinWidth):this.renderSimpleLayout(i,s)}};UT=class extends Ag{buildRenderRange(e,t,n){let a=super.buildRenderRange(e,t,n),{props:i}=this;return FQ({currentRange:a,snapToWeek:/^(year|month)$/.test(t),fixedWeekCount:i.fixedWeekCount,dateEnv:i.dateEnv})}};VRt=':root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:"";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:"";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}';ud(VRt)});var GHe,KHe=y(()=>{Vg();z1();GHe=yi({name:"@fullcalendar/daygrid",initialView:"dayGridMonth",views:{dayGrid:{component:L1,dateProfileGeneratorClass:UT},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},fixedWeekCount:!0},dayGridYear:{type:"dayGrid",duration:{years:1}}}})});function eVe(r){let e=["fc-timegrid-slot","fc-timegrid-slot-label",r.isLabeled?"fc-scrollgrid-shrink":"fc-timegrid-slot-minor"];return _(tl.Consumer,null,t=>{if(!r.isLabeled)return _("td",{className:e.join(" "),"data-time":r.isoTimeStr});let{dateEnv:n,options:a,viewApi:i}=t,s=a.slotLabelFormat==null?qRt:Array.isArray(a.slotLabelFormat)?Kt(a.slotLabelFormat[0]):Kt(a.slotLabelFormat),o={level:0,time:r.time,date:n.toDate(r.date),view:i,text:n.format(r.date,s)};return _(Ln,{elTag:"td",elClasses:e,elAttrs:{"data-time":r.isoTimeStr},renderProps:o,generatorName:"slotLabelContent",customGenerator:a.slotLabelContent,defaultGenerator:WRt,classNameGenerator:a.slotLabelClassNames,didMount:a.slotLabelDidMount,willUnmount:a.slotLabelWillUnmount},l=>_("div",{className:"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame"},_(l,{elTag:"div",elClasses:["fc-timegrid-slot-label-cushion","fc-scrollgrid-shrink-cushion"]})))})}function WRt(r){return r.text}function KRt(r){return r.text}function ZRt(r,e){return e.map(t=>r[t.key])}function y0(r,e){let t=[],n;for(n=0;n<e;n+=1)t.push([]);if(r)for(n=0;n<r.length;n+=1)t[r[n].col].push(r[n]);return t}function ZHe(r,e){let t=[];if(r){for(let n=0;n<e;n+=1)t[n]={affectedInstances:r.affectedInstances,isEvent:r.isEvent,segs:[]};for(let n of r.segs)t[n.col].segs.push(n)}else for(let n=0;n<e;n+=1)t[n]=null;return t}function QRt(r){return r.shortText}function JRt(r,e,t){let n=new Rg;e!=null&&(n.strictOrder=e),t!=null&&(n.maxStackCnt=t);let a=n.addSegs(r),i=U3(a),s=XRt(n);return s=nFt(s,1),{segRects:aFt(s),hiddenGroups:i}}function XRt(r){let{entriesByLevel:e}=r,t=KQ((n,a)=>n+":"+a,(n,a)=>{let i=rFt(r,n,a),s=QHe(i,t),o=e[n][a];return[Object.assign(Object.assign({},o),{nextLevelNodes:s[0]}),o.thickness+s[1]]});return QHe(e.length?{level:0,lateralStart:0,lateralEnd:e[0].length}:null,t)[0]}function QHe(r,e){if(!r)return[[],0];let{level:t,lateralStart:n,lateralEnd:a}=r,i=n,s=[];for(;i<a;)s.push(e(t,i)),i+=1;return s.sort(eFt),[s.map(tFt),s[0][1]]}function eFt(r,e){return e[1]-r[1]}function tFt(r){return r[0]}function rFt(r,e,t){let{levelCoords:n,entriesByLevel:a}=r,i=a[e][t],s=n[e]+i.thickness,o=n.length,l=e;for(;l<o&&n[l]<s;l+=1);for(;l<o;l+=1){let c=a[l],d,u=ED(c,i.span.start,CD),p=u[0]+u[1],m=p;for(;(d=c[m])&&d.span.start<i.span.end;)m+=1;if(p<m)return{level:l,lateralStart:p,lateralEnd:m}}return null}function nFt(r,e){let t=KQ((n,a,i)=>dd(n),(n,a,i)=>{let{nextLevelNodes:s,thickness:o}=n,l=o+i,c=o/l,d,u=[];if(!s.length)d=e;else for(let m of s)if(d===void 0){let f=t(m,a,l);d=f[0],u.push(f[1])}else{let f=t(m,d,0);u.push(f[1])}let p=(d-a)*c;return[d-p,Object.assign(Object.assign({},n),{thickness:p,nextLevelNodes:u})]});return r.map(n=>t(n,0,0)[1])}function aFt(r){let e=[],t=KQ((a,i,s)=>dd(a),(a,i,s)=>{let o=Object.assign(Object.assign({},a),{levelCoord:i,stackDepth:s,stackForward:0});return e.push(o),o.stackForward=n(a.nextLevelNodes,i+a.thickness,s+1)+1});function n(a,i,s){let o=0;for(let l of a)o=Math.max(t(l,i,s),o);return o}return n(r,0,0),e}function KQ(r,e){let t={};return(...n)=>{let a=r(...n);return a in t?t[a]:t[a]=e(...n)}}function JHe(r,e,t=null,n=0){let a=[];if(t)for(let i=0;i<r.length;i+=1){let s=r[i],o=t.computeDateTop(s.start,e),l=Math.max(o+(n||0),t.computeDateTop(s.end,e));a.push({start:Math.round(o),end:Math.round(l)})}return a}function iFt(r,e,t,n){let a=[],i=[];for(let c=0;c<r.length;c+=1){let d=e[c];d?a.push({index:c,thickness:1,span:d}):i.push(r[c])}let{segRects:s,hiddenGroups:o}=JRt(a,t,n),l=[];for(let c of s)l.push({seg:r[c.index],rect:c});for(let c of i)l.push({seg:c,rect:null});return{segPlacements:l,hiddenGroups:o}}function tVe(r,{todayRange:e,nowDate:t,eventSelection:n,eventDrag:a,eventResize:i}){let s=(a?a.affectedInstances:null)||(i?i.affectedInstances:null)||{};return _(Gt,null,r.map(o=>{let l=o.eventRange.instance.instanceId;return _("div",{key:l,style:{visibility:s[l]?"hidden":""}},_(j1,Object.assign({seg:o,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:l===n,isShort:!1},po(o,e,t))))}))}function OQ(r){return r?{top:r.start,bottom:-r.end}:{top:"",bottom:""}}function oFt(r,e){return r.map(t=>e[t.index])}function lFt(r,e){return e.map(t=>r[t.key])}function cFt(r,e){let t=e||r,n=_D(r,t);return n===null&&(t=r,n=1),{snapDuration:t,snapsPerSlot:n}}function dFt(r,e,t){let n=[];for(let a of r.headerDates)n.push({start:t.add(a,e.slotMinTime),end:t.add(a,e.slotMaxTime)});return n}function uFt(r,e,t,n,a){let i=new Date(0),s=r,o=mt(0),l=t||pFt(n),c=[];for(;lo(s)<lo(e);){let d=a.add(i,s),u=_D(o,l)!==null;c.push({date:d,time:s,key:d.toISOString(),isoTimeStr:f3(d),isLabeled:u}),s=AD(s,n),o=AD(o,n)}return c}function pFt(r){let e,t,n;for(e=XHe.length-1;e>=0;e-=1)if(t=mt(XHe[e]),n=_D(t,r),n!==null&&n>1)return t;return r}function mFt(r,e){let t=new Fg(r.renderRange,e);return new Og(t,!1)}var LQ,qRt,zQ,YRt,GRt,jQ,$Q,BQ,UQ,HQ,sFt,j1,VQ,qQ,WQ,YQ,GQ,XHe,$1,fFt,rVe=y(()=>{qg();m0();z1();LQ=class extends wD{getKeyInfo(){return{allDay:{},timed:{}}}getKeysForDateSpan(e){return e.allDay?["allDay"]:["timed"]}getKeysForEventDef(e){return e.allDay?_3(e)?["timed","allDay"]:["allDay"]:["timed"]}},qRt=Kt({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short"});zQ=class extends Pt{render(){return this.props.slatMetas.map(e=>_("tr",{key:e.key},_(eVe,Object.assign({},e))))}},YRt=Kt({week:"short"}),GRt=5,jQ=class extends ia{constructor(){super(...arguments),this.allDaySplitter=new LQ,this.headerElRef=En(),this.rootElRef=En(),this.scrollerElRef=En(),this.state={slatCoords:null},this.handleScrollTopRequest=e=>{let t=this.scrollerElRef.current;t&&(t.scrollTop=e)},this.renderHeadAxis=(e,t="")=>{let{options:n}=this.context,{dateProfile:a}=this.props,i=a.renderRange,o=md(i.start,i.end)===1?gd(this.context,i.start,"week"):{};return n.weekNumbers&&e==="day"?_(WD,{elTag:"th",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},date:i.start,defaultFormat:YRt},l=>_("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame","fc-timegrid-axis-frame-liquid"].join(" "),style:{height:t}},_(l,{elTag:"a",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"],elAttrs:o}))):_("th",{"aria-hidden":!0,className:"fc-timegrid-axis"},_("div",{className:"fc-timegrid-axis-frame",style:{height:t}}))},this.renderTableRowAxis=e=>{let{options:t,viewApi:n}=this.context,a={text:t.allDayText,view:n};return _(Ln,{elTag:"td",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},renderProps:a,generatorName:"allDayContent",customGenerator:t.allDayContent,defaultGenerator:KRt,classNameGenerator:t.allDayClassNames,didMount:t.allDayDidMount,willUnmount:t.allDayWillUnmount},i=>_("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame",e==null?" fc-timegrid-axis-frame-liquid":""].join(" "),style:{height:e}},_(i,{elTag:"span",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"]})))},this.handleSlatCoords=e=>{this.setState({slatCoords:e})}}renderSimpleLayout(e,t,n){let{context:a,props:i}=this,s=[],o=Hg(a.options);return e&&s.push({type:"header",key:"header",isSticky:o,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),t&&(s.push({type:"body",key:"all-day",chunk:{content:t}}),s.push({type:"body",key:"all-day-divider",outerContent:_("tr",{role:"presentation",className:"fc-scrollgrid-section"},_("td",{className:"fc-timegrid-divider "+a.theme.getClass("tableCellShaded")}))})),s.push({type:"body",key:"body",liquid:!0,expandRows:!!a.options.expandRows,chunk:{scrollerElRef:this.scrollerElRef,content:n}}),_(co,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:a.viewSpec},_(Qm,{liquid:!i.isHeightAuto&&!i.forPrint,collapsibleWidth:i.forPrint,cols:[{width:"shrink"}],sections:s}))}renderHScrollLayout(e,t,n,a,i,s,o){let l=this.context.pluginHooks.scrollGridImpl;if(!l)throw new Error("No ScrollGrid implementation");let{context:c,props:d}=this,u=!d.forPrint&&Hg(c.options),p=!d.forPrint&&HD(c.options),m=[];e&&m.push({type:"header",key:"header",isSticky:u,syncRowHeights:!0,chunks:[{key:"axis",rowContent:h=>_("tr",{role:"presentation"},this.renderHeadAxis("day",h.rowSyncHeights[0]))},{key:"cols",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),t&&(m.push({type:"body",key:"all-day",syncRowHeights:!0,chunks:[{key:"axis",rowContent:h=>_("tr",{role:"presentation"},this.renderTableRowAxis(h.rowSyncHeights[0]))},{key:"cols",content:t}]}),m.push({key:"all-day-divider",type:"body",outerContent:_("tr",{role:"presentation",className:"fc-scrollgrid-section"},_("td",{colSpan:2,className:"fc-timegrid-divider "+c.theme.getClass("tableCellShaded")}))}));let f=c.options.nowIndicator;return m.push({type:"body",key:"body",liquid:!0,expandRows:!!c.options.expandRows,chunks:[{key:"axis",content:h=>_("div",{className:"fc-timegrid-axis-chunk"},_("table",{"aria-hidden":!0,style:{height:h.expandRows?h.clientHeight:""}},h.tableColGroupNode,_("tbody",null,_(zQ,{slatMetas:s}))),_("div",{className:"fc-timegrid-now-indicator-container"},_(vs,{unit:f?"minute":"day"},g=>{let v=f&&o&&o.safeComputeTop(g);return typeof v=="number"?_(VD,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:v},isAxis:!0,date:g}):null})))},{key:"cols",scrollerElRef:this.scrollerElRef,content:n}]}),p&&m.push({key:"footer",type:"footer",isSticky:!0,chunks:[{key:"axis",content:Zb},{key:"cols",content:Zb}]}),_(co,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:c.viewSpec},_(l,{liquid:!d.isHeightAuto&&!d.forPrint,forPrint:d.forPrint,collapsibleWidth:!1,colGroups:[{width:"shrink",cols:[{width:"shrink"}]},{cols:[{span:a,minWidth:i}]}],sections:m}))}getAllDayMaxEventProps(){let{dayMaxEvents:e,dayMaxEventRows:t}=this.context.options;return(e===!0||t===!0)&&(e=void 0,t=GRt),{dayMaxEvents:e,dayMaxEventRows:t}}};$Q=class{constructor(e,t,n){this.positions=e,this.dateProfile=t,this.slotDuration=n}safeComputeTop(e){let{dateProfile:t}=this;if(Xo(t.currentRange,e)){let n=gr(e),a=e.valueOf()-n.valueOf();if(a>=lo(t.slotMinTime)&&a<lo(t.slotMaxTime))return this.computeTimeTop(mt(a))}return null}computeDateTop(e,t){return t||(t=gr(e)),this.computeTimeTop(mt(e.valueOf()-t.valueOf()))}computeTimeTop(e){let{positions:t,dateProfile:n}=this,a=t.els.length,i=(e.milliseconds-lo(n.slotMinTime))/lo(this.slotDuration),s,o;return i=Math.max(0,i),i=Math.min(a,i),s=Math.floor(i),s=Math.min(s,a-1),o=i-s,t.tops[s]+t.getHeight(s)*o}},BQ=class extends Pt{render(){let{props:e,context:t}=this,{options:n}=t,{slatElRefs:a}=e;return _("tbody",null,e.slatMetas.map((i,s)=>{let o={time:i.time,date:t.dateEnv.toDate(i.date),view:t.viewApi};return _("tr",{key:i.key,ref:a.createRef(i.key)},e.axis&&_(eVe,Object.assign({},i)),_(Ln,{elTag:"td",elClasses:["fc-timegrid-slot","fc-timegrid-slot-lane",!i.isLabeled&&"fc-timegrid-slot-minor"],elAttrs:{"data-time":i.isoTimeStr},renderProps:o,generatorName:"slotLaneContent",customGenerator:n.slotLaneContent,classNameGenerator:n.slotLaneClassNames,didMount:n.slotLaneDidMount,willUnmount:n.slotLaneWillUnmount}))}))}},UQ=class extends Pt{constructor(){super(...arguments),this.rootElRef=En(),this.slatElRefs=new ks}render(){let{props:e,context:t}=this;return _("div",{ref:this.rootElRef,className:"fc-timegrid-slots"},_("table",{"aria-hidden":!0,className:t.theme.getClass("table"),style:{minWidth:e.tableMinWidth,width:e.clientWidth,height:e.minHeight}},e.tableColGroupNode,_(BQ,{slatElRefs:this.slatElRefs,axis:e.axis,slatMetas:e.slatMetas})))}componentDidMount(){this.updateSizing()}componentDidUpdate(){this.updateSizing()}componentWillUnmount(){this.props.onCoords&&this.props.onCoords(null)}updateSizing(){let{context:e,props:t}=this;t.onCoords&&t.clientWidth!==null&&this.rootElRef.current.offsetHeight&&t.onCoords(new $Q(new tc(this.rootElRef.current,ZRt(this.slatElRefs.currentMap,t.slatMetas),!1,!0),this.props.dateProfile,e.options.slotDuration))}};HQ=class extends Pt{render(){let{props:e}=this;return _(jg,{elClasses:["fc-timegrid-more-link"],elStyle:{top:e.top,bottom:e.bottom},allDayDate:null,moreCnt:e.hiddenSegs.length,allSegs:e.hiddenSegs,hiddenSegs:e.hiddenSegs,extraDateSpan:e.extraDateSpan,dateProfile:e.dateProfile,todayRange:e.todayRange,popoverContent:()=>tVe(e.hiddenSegs,e),defaultGenerator:QRt,forceTimed:!0},t=>_(t,{elTag:"div",elClasses:["fc-timegrid-more-link-inner","fc-sticky"]}))}};sFt=Kt({hour:"numeric",minute:"2-digit",meridiem:!1}),j1=class extends Pt{render(){return _(Jm,Object.assign({},this.props,{elClasses:["fc-timegrid-event","fc-v-event",this.props.isShort&&"fc-timegrid-event-short"],defaultTimeFormat:sFt}))}},VQ=class extends Pt{constructor(){super(...arguments),this.sortEventSegs=_e(Bg)}render(){let{props:e,context:t}=this,{options:n}=t,a=n.selectMirror,i=e.eventDrag&&e.eventDrag.segs||e.eventResize&&e.eventResize.segs||a&&e.dateSelectionSegs||[],s=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{},o=this.sortEventSegs(e.fgEventSegs,n.eventOrder);return _(Xm,{elTag:"td",elRef:e.elRef,elClasses:["fc-timegrid-col",...e.extraClassNames||[]],elAttrs:Object.assign({role:"gridcell"},e.extraDataAttrs),date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,extraRenderProps:e.extraRenderProps},l=>_("div",{className:"fc-timegrid-col-frame"},_("div",{className:"fc-timegrid-col-bg"},this.renderFillSegs(e.businessHourSegs,"non-business"),this.renderFillSegs(e.bgEventSegs,"bg-event"),this.renderFillSegs(e.dateSelectionSegs,"highlight")),_("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(o,s,!1,!1,!1)),_("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(i,{},!!e.eventDrag,!!e.eventResize,!!a,"mirror")),_("div",{className:"fc-timegrid-now-indicator-container"},this.renderNowIndicator(e.nowIndicatorSegs)),Qb(n)&&_(l,{elTag:"div",elClasses:["fc-timegrid-col-misc"]})))}renderFgSegs(e,t,n,a,i,s){let{props:o}=this;return o.forPrint?tVe(e,o):this.renderPositionedFgSegs(e,t,n,a,i,s)}renderPositionedFgSegs(e,t,n,a,i,s){let{eventMaxStack:o,eventShortHeight:l,eventOrderStrict:c,eventMinHeight:d}=this.context.options,{date:u,slatCoords:p,eventSelection:m,todayRange:f,nowDate:h}=this.props,g=n||a||i,v=JHe(e,u,p,d),{segPlacements:b,hiddenGroups:k}=iFt(e,v,c,o);return _(Gt,null,this.renderHiddenGroups(k,e),b.map(w=>{let{seg:S,rect:C}=w,E=S.eventRange.instance.instanceId,D=g||!!(!t[E]&&C),P=OQ(C&&C.span),O=!g&&C?this.computeSegHStyle(C):{left:0,right:0},z=!!C&&C.stackForward>0,R=!!C&&C.span.end-C.span.start<l;return _("div",{className:"fc-timegrid-event-harness"+(z?" fc-timegrid-event-harness-inset":""),key:s||E,style:Object.assign(Object.assign({visibility:D?"":"hidden"},P),O)},_(j1,Object.assign({seg:S,isDragging:n,isResizing:a,isDateSelecting:i,isSelected:E===m,isShort:R},po(S,f,h))))}))}renderHiddenGroups(e,t){let{extraDateSpan:n,dateProfile:a,todayRange:i,nowDate:s,eventSelection:o,eventDrag:l,eventResize:c}=this.props;return _(Gt,null,e.map(d=>{let u=OQ(d.span),p=oFt(d.entries,t);return _(HQ,{key:zF(KF(p)),hiddenSegs:p,top:u.top,bottom:u.bottom,extraDateSpan:n,dateProfile:a,todayRange:i,nowDate:s,eventSelection:o,eventDrag:l,eventResize:c})}))}renderFillSegs(e,t){let{props:n,context:a}=this,s=JHe(e,n.date,n.slatCoords,a.options.eventMinHeight).map((o,l)=>{let c=e[l];return _("div",{key:OD(c.eventRange),className:"fc-timegrid-bg-harness",style:OQ(o)},t==="bg-event"?_(zg,Object.assign({seg:c},po(c,n.todayRange,n.nowDate))):qD(t))});return _(Gt,null,s)}renderNowIndicator(e){let{slatCoords:t,date:n}=this.props;return t?e.map((a,i)=>_(VD,{key:i,elClasses:["fc-timegrid-now-indicator-line"],elStyle:{top:t.computeDateTop(a.start,n)},isAxis:!1,date:n})):null}computeSegHStyle(e){let{isRtl:t,options:n}=this.context,a=n.slotEventOverlap,i=e.levelCoord,s=e.levelCoord+e.thickness,o,l;a&&(s=Math.min(1,i+(s-i)*2)),t?(o=1-s,l=i):(o=i,l=1-s);let c={zIndex:e.stackDepth+1,left:o*100+"%",right:l*100+"%"};return a&&!e.stackForward&&(c[t?"marginLeft":"marginRight"]=20),c}};qQ=class extends Pt{constructor(){super(...arguments),this.splitFgEventSegs=_e(y0),this.splitBgEventSegs=_e(y0),this.splitBusinessHourSegs=_e(y0),this.splitNowIndicatorSegs=_e(y0),this.splitDateSelectionSegs=_e(y0),this.splitEventDrag=_e(ZHe),this.splitEventResize=_e(ZHe),this.rootElRef=En(),this.cellElRefs=new ks}render(){let{props:e,context:t}=this,n=t.options.nowIndicator&&e.slatCoords&&e.slatCoords.safeComputeTop(e.nowDate),a=e.cells.length,i=this.splitFgEventSegs(e.fgEventSegs,a),s=this.splitBgEventSegs(e.bgEventSegs,a),o=this.splitBusinessHourSegs(e.businessHourSegs,a),l=this.splitNowIndicatorSegs(e.nowIndicatorSegs,a),c=this.splitDateSelectionSegs(e.dateSelectionSegs,a),d=this.splitEventDrag(e.eventDrag,a),u=this.splitEventResize(e.eventResize,a);return _("div",{className:"fc-timegrid-cols",ref:this.rootElRef},_("table",{role:"presentation",style:{minWidth:e.tableMinWidth,width:e.clientWidth}},e.tableColGroupNode,_("tbody",{role:"presentation"},_("tr",{role:"row"},e.axis&&_("td",{"aria-hidden":!0,className:"fc-timegrid-col fc-timegrid-axis"},_("div",{className:"fc-timegrid-col-frame"},_("div",{className:"fc-timegrid-now-indicator-container"},typeof n=="number"&&_(VD,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:n},isAxis:!0,date:e.nowDate})))),e.cells.map((p,m)=>_(VQ,{key:p.key,elRef:this.cellElRefs.createRef(p.key),dateProfile:e.dateProfile,date:p.date,nowDate:e.nowDate,todayRange:e.todayRange,extraRenderProps:p.extraRenderProps,extraDataAttrs:p.extraDataAttrs,extraClassNames:p.extraClassNames,extraDateSpan:p.extraDateSpan,fgEventSegs:i[m],bgEventSegs:s[m],businessHourSegs:o[m],nowIndicatorSegs:l[m],dateSelectionSegs:c[m],eventDrag:d[m],eventResize:u[m],slatCoords:e.slatCoords,eventSelection:e.eventSelection,forPrint:e.forPrint}))))))}componentDidMount(){this.updateCoords()}componentDidUpdate(){this.updateCoords()}updateCoords(){let{props:e}=this;e.onColCoords&&e.clientWidth!==null&&e.onColCoords(new tc(this.rootElRef.current,lFt(this.cellElRefs.currentMap,e.cells),!0,!1))}};WQ=class extends ia{constructor(){super(...arguments),this.processSlotOptions=_e(cFt),this.state={slatCoords:null},this.handleRootEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e,isHitComboAllowed:this.props.isHitComboAllowed}):this.context.unregisterInteractiveComponent(this)},this.handleScrollRequest=e=>{let{onScrollTopRequest:t}=this.props,{slatCoords:n}=this.state;if(t&&n){if(e.time){let a=n.computeTimeTop(e.time);a=Math.ceil(a),a&&(a+=1),t(a)}return!0}return!1},this.handleColCoords=e=>{this.colCoords=e},this.handleSlatCoords=e=>{this.setState({slatCoords:e}),this.props.onSlatCoords&&this.props.onSlatCoords(e)}}render(){let{props:e,state:t}=this;return _("div",{className:"fc-timegrid-body",ref:this.handleRootEl,style:{width:e.clientWidth,minWidth:e.tableMinWidth}},_(UQ,{axis:e.axis,dateProfile:e.dateProfile,slatMetas:e.slatMetas,clientWidth:e.clientWidth,minHeight:e.expandRows?e.clientHeight:"",tableMinWidth:e.tableMinWidth,tableColGroupNode:e.axis?e.tableColGroupNode:null,onCoords:this.handleSlatCoords}),_(qQ,{cells:e.cells,axis:e.axis,dateProfile:e.dateProfile,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,todayRange:e.todayRange,nowDate:e.nowDate,nowIndicatorSegs:e.nowIndicatorSegs,clientWidth:e.clientWidth,tableMinWidth:e.tableMinWidth,tableColGroupNode:e.tableColGroupNode,slatCoords:t.slatCoords,onColCoords:this.handleColCoords,forPrint:e.forPrint}))}componentDidMount(){this.scrollResponder=this.context.createScrollResponder(this.handleScrollRequest)}componentDidUpdate(e){this.scrollResponder.update(e.dateProfile!==this.props.dateProfile)}componentWillUnmount(){this.scrollResponder.detach()}queryHit(e,t){let{dateEnv:n,options:a}=this.context,{colCoords:i}=this,{dateProfile:s}=this.props,{slatCoords:o}=this.state,{snapDuration:l,snapsPerSlot:c}=this.processSlotOptions(this.props.slotDuration,a.snapDuration),d=i.leftToIndex(e),u=o.positions.topToIndex(t);if(d!=null&&u!=null){let p=this.props.cells[d],m=o.positions.tops[u],f=o.positions.getHeight(u),h=(t-m)/f,g=Math.floor(h*c),v=u*c+g,b=this.props.cells[d].date,k=AD(s.slotMinTime,u3(l,v)),w=n.add(b,k),S=n.add(w,l);return{dateProfile:s,dateSpan:Object.assign({range:{start:w,end:S},allDay:!1},p.extraDateSpan),dayEl:i.els[d],rect:{left:i.lefts[d],right:i.rights[d],top:m,bottom:m+f},layer:0}}return null}};YQ=class extends Lg{sliceRange(e,t){let n=[];for(let a=0;a<t.length;a+=1){let i=Vi(e,t[a]);i&&n.push({start:i.start,end:i.end,isStart:i.start.valueOf()===e.start.valueOf(),isEnd:i.end.valueOf()===e.end.valueOf(),col:a})}return n}},GQ=class extends ia{constructor(){super(...arguments),this.buildDayRanges=_e(dFt),this.slicer=new YQ,this.timeColsRef=En()}render(){let{props:e,context:t}=this,{dateProfile:n,dayTableModel:a}=e,{nowIndicator:i,nextDayThreshold:s}=t.options,o=this.buildDayRanges(a,n,t.dateEnv);return _(vs,{unit:i?"minute":"day"},(l,c)=>_(WQ,Object.assign({ref:this.timeColsRef},this.slicer.sliceProps(e,n,null,t,o),{forPrint:e.forPrint,axis:e.axis,dateProfile:n,slatMetas:e.slatMetas,slotDuration:e.slotDuration,cells:a.cells[0],tableColGroupNode:e.tableColGroupNode,tableMinWidth:e.tableMinWidth,clientWidth:e.clientWidth,clientHeight:e.clientHeight,expandRows:e.expandRows,nowDate:l,nowIndicatorSegs:i&&this.slicer.sliceNowDate(l,n,s,t,o),todayRange:c,onScrollTopRequest:e.onScrollTopRequest,onSlatCoords:e.onSlatCoords})))}};XHe=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}];$1=class extends jQ{constructor(){super(...arguments),this.buildTimeColsModel=_e(mFt),this.buildSlatMetas=_e(uFt)}render(){let{options:e,dateEnv:t,dateProfileGenerator:n}=this.context,{props:a}=this,{dateProfile:i}=a,s=this.buildTimeColsModel(i,n),o=this.allDaySplitter.splitProps(a),l=this.buildSlatMetas(i.slotMinTime,i.slotMaxTime,e.slotLabelInterval,e.slotDuration,t),{dayMinWidth:c}=e,d=!c,u=c,p=e.dayHeaders&&_(Xu,{dates:s.headerDates,dateProfile:i,datesRepDistinctDays:!0,renderIntro:d?this.renderHeadAxis:null}),m=e.allDaySlot!==!1&&(h=>_(g0,Object.assign({},o.allDay,{dateProfile:i,dayTableModel:s,nextDayThreshold:e.nextDayThreshold,tableMinWidth:h.tableMinWidth,colGroupNode:h.tableColGroupNode,renderRowIntro:d?this.renderTableRowAxis:null,showWeekNumbers:!1,expandRows:!1,headerAlignElRef:this.headerElRef,clientWidth:h.clientWidth,clientHeight:h.clientHeight,forPrint:a.forPrint},this.getAllDayMaxEventProps()))),f=h=>_(GQ,Object.assign({},o.timed,{dayTableModel:s,dateProfile:i,axis:d,slotDuration:e.slotDuration,slatMetas:l,forPrint:a.forPrint,tableColGroupNode:h.tableColGroupNode,tableMinWidth:h.tableMinWidth,clientWidth:h.clientWidth,clientHeight:h.clientHeight,onSlatCoords:this.handleSlatCoords,expandRows:h.expandRows,onScrollTopRequest:this.handleScrollTopRequest}));return u?this.renderHScrollLayout(p,m,f,s.colCnt,c,l,this.state.slatCoords):this.renderSimpleLayout(p,m,f)}};fFt='.fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:"\\00a0"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:"\\00a0-\\00a0"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-arrow,.fc .fc-timegrid-now-indicator-line{pointer-events:none}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}';ud(fFt)});var hFt,nVe,aVe=y(()=>{Vg();rVe();hFt={allDaySlot:Boolean},nVe=yi({name:"@fullcalendar/timegrid",initialView:"timeGridWeek",optionRefiners:hFt,views:{timeGrid:{component:$1,usesMinMaxTime:!0,allDaySlot:!0,slotDuration:"00:30:00",slotEventOverlap:!0},timeGridDay:{type:"timeGrid",duration:{days:1}},timeGridWeek:{type:"timeGrid",duration:{weeks:1}}}})});function gFt(r){return _(Gt,null,r.text&&_("a",Object.assign({id:r.textId,className:"fc-list-day-text"},r.navLinkAttrs),r.text),r.sideText&&_("a",Object.assign({"aria-hidden":!0,className:"fc-list-day-side-text"},r.sideNavLinkAttrs),r.sideText))}function vFt(r,e){let t=Yb(r,e);return _("a",Object.assign({},t),r.eventRange.def.title)}function kFt(r,e,t,n,a){let{options:i}=t;if(i.displayEventTime!==!1){let s=r.eventRange.def,o=r.eventRange.instance,l=!1,c;if(s.allDay?l=!0:S3(r.eventRange.range)?r.isStart?c=rf(r,e,t,null,null,o.range.start,r.end):r.isEnd?c=rf(r,e,t,null,null,r.start,o.range.end):l=!0:c=rf(r,e,t),l){let d={text:t.options.allDayText,view:t.viewApi};return _(Ln,{elTag:"td",elClasses:["fc-list-event-time"],elAttrs:{headers:`${n} ${a}`},renderProps:d,generatorName:"allDayContent",customGenerator:i.allDayContent,defaultGenerator:bFt,classNameGenerator:i.allDayClassNames,didMount:i.allDayDidMount,willUnmount:i.allDayWillUnmount})}return _("td",{className:"fc-list-event-time"},c)}return null}function bFt(r){return r.text}function TFt(r){return r.text}function wFt(r){let e=gr(r.renderRange.start),t=r.renderRange.end,n=[],a=[];for(;e<t;)n.push(e),a.push({start:e,end:hn(e,1)}),e=hn(e,1);return{dayDates:n,dayRanges:a}}function SFt(r){let e=[],t,n;for(t=0;t<r.length;t+=1)n=r[t],(e[n.dayIndex]||(e[n.dayIndex]=[])).push(n);return e}var ZQ,yFt,QQ,B1,xFt,iVe=y(()=>{qg();m0();ZQ=class extends Pt{constructor(){super(...arguments),this.state={textId:bs()}}render(){let{theme:e,dateEnv:t,options:n,viewApi:a}=this.context,{cellId:i,dayDate:s,todayRange:o}=this.props,{textId:l}=this.state,c=zD(s,o),d=n.listDayFormat?t.format(s,n.listDayFormat):"",u=n.listDaySideFormat?t.format(s,n.listDaySideFormat):"",p=Object.assign({date:t.toDate(s),view:a,textId:l,text:d,sideText:u,navLinkAttrs:gd(this.context,s),sideNavLinkAttrs:gd(this.context,s,"day",!1)},c);return _(Ln,{elTag:"tr",elClasses:["fc-list-day",...Gb(c,e)],elAttrs:{"data-date":ef(s)},renderProps:p,generatorName:"dayHeaderContent",customGenerator:n.dayHeaderContent,defaultGenerator:gFt,classNameGenerator:n.dayHeaderClassNames,didMount:n.dayHeaderDidMount,willUnmount:n.dayHeaderWillUnmount},m=>_("th",{scope:"colgroup",colSpan:3,id:i,"aria-labelledby":l},_(m,{elTag:"div",elClasses:["fc-list-day-cushion",e.getClass("tableCellShaded")]})))}};yFt=Kt({hour:"numeric",minute:"2-digit",meridiem:"short"}),QQ=class extends Pt{render(){let{props:e,context:t}=this,{options:n}=t,{seg:a,timeHeaderId:i,eventHeaderId:s,dateHeaderId:o}=e,l=n.eventTimeFormat||yFt;return _(ep,Object.assign({},e,{elTag:"tr",elClasses:["fc-list-event",a.eventRange.def.url&&"fc-event-forced-url"],defaultGenerator:()=>vFt(a,t),seg:a,timeText:"",disableDragging:!0,disableResizing:!0}),(c,d)=>_(Gt,null,kFt(a,l,t,i,o),_("td",{"aria-hidden":!0,className:"fc-list-event-graphic"},_("span",{className:"fc-list-event-dot",style:{borderColor:d.borderColor||d.backgroundColor}})),_(c,{elTag:"td",elClasses:["fc-list-event-title"],elAttrs:{headers:`${s} ${o}`}})))}};B1=class extends ia{constructor(){super(...arguments),this.computeDateVars=_e(wFt),this.eventStoreToSegs=_e(this._eventStoreToSegs),this.state={timeHeaderId:bs(),eventHeaderId:bs(),dateHeaderIdRoot:bs()},this.setRootEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e}):this.context.unregisterInteractiveComponent(this)}}render(){let{props:e,context:t}=this,{dayDates:n,dayRanges:a}=this.computeDateVars(e.dateProfile),i=this.eventStoreToSegs(e.eventStore,e.eventUiBases,a);return _(co,{elRef:this.setRootEl,elClasses:["fc-list",t.theme.getClass("table"),t.options.stickyHeaderDates!==!1?"fc-list-sticky":""],viewSpec:t.viewSpec},_(zb,{liquid:!e.isHeightAuto,overflowX:e.isHeightAuto?"visible":"hidden",overflowY:e.isHeightAuto?"visible":"auto"},i.length>0?this.renderSegList(i,n):this.renderEmptyMessage()))}renderEmptyMessage(){let{options:e,viewApi:t}=this.context,n={text:e.noEventsText,view:t};return _(Ln,{elTag:"div",elClasses:["fc-list-empty"],renderProps:n,generatorName:"noEventsContent",customGenerator:e.noEventsContent,defaultGenerator:TFt,classNameGenerator:e.noEventsClassNames,didMount:e.noEventsDidMount,willUnmount:e.noEventsWillUnmount},a=>_(a,{elTag:"div",elClasses:["fc-list-empty-cushion"]}))}renderSegList(e,t){let{theme:n,options:a}=this.context,{timeHeaderId:i,eventHeaderId:s,dateHeaderIdRoot:o}=this.state,l=SFt(e);return _(vs,{unit:"day"},(c,d)=>{let u=[];for(let p=0;p<l.length;p+=1){let m=l[p];if(m){let f=ef(t[p]),h=o+"-"+f;u.push(_(ZQ,{key:f,cellId:h,dayDate:t[p],todayRange:d})),m=Bg(m,a.eventOrder);for(let g of m)u.push(_(QQ,Object.assign({key:f+":"+g.eventRange.instance.instanceId,seg:g,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,timeHeaderId:i,eventHeaderId:s,dateHeaderId:h},po(g,d,c))))}}return _("table",{className:"fc-list-table "+n.getClass("table")},_("thead",null,_("tr",null,_("th",{scope:"col",id:i},a.timeHint),_("th",{scope:"col","aria-hidden":!0}),_("th",{scope:"col",id:s},a.eventHint))),_("tbody",null,u))})}_eventStoreToSegs(e,t,n){return this.eventRangesToSegs(Lb(e,t,this.props.dateProfile.activeRange,this.context.options.nextDayThreshold).fg,n)}eventRangesToSegs(e,t){let n=[];for(let a of e)n.push(...this.eventRangeToSegs(a,t));return n}eventRangeToSegs(e,t){let{dateEnv:n}=this.context,{nextDayThreshold:a}=this.context.options,i=e.range,s=e.def.allDay,o,l,c,d=[];for(o=0;o<t.length;o+=1)if(l=Vi(i,t[o]),l&&(c={component:this,eventRange:e,start:l.start,end:l.end,isStart:e.isStart&&l.start.valueOf()===i.start.valueOf(),isEnd:e.isEnd&&l.end.valueOf()===i.end.valueOf(),dayIndex:o},d.push(c),!c.isEnd&&!s&&o+1<t.length&&i.end<n.add(t[o+1].start,a))){c.end=i.end,c.isEnd=!0;break}return d}};xFt=':root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:"";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}';ud(xFt)});function sVe(r){return r===!1?null:Kt(r)}var CFt,oVe,lVe=y(()=>{Vg();iVe();qg();CFt={listDayFormat:sVe,listDaySideFormat:sVe,noEventsClassNames:U,noEventsContent:U,noEventsDidMount:U,noEventsWillUnmount:U};oVe=yi({name:"@fullcalendar/list",optionRefiners:CFt,views:{list:{component:B1,buttonTextKey:"list",listDayFormat:{month:"long",day:"numeric",year:"numeric"}},listDay:{type:"list",duration:{days:1},listDayFormat:{weekday:"long"}},listWeek:{type:"list",duration:{weeks:1},listDayFormat:{weekday:"long"},listDaySideFormat:{month:"long",day:"numeric",year:"numeric"}},listMonth:{type:"list",duration:{month:1},listDaySideFormat:{weekday:"long"}},listYear:{type:"list",duration:{year:1},listDaySideFormat:{weekday:"long"}}}})});function DFt(r,e,t,n,a){let{start:i,end:s}=e.currentRange,o=i,l=[];for(;o.valueOf()<s.valueOf();){let c=t.add(o,EFt),d={start:r.skipHiddenDays(o),end:r.skipHiddenDays(c,-1,!0)},u=FQ({currentRange:d,snapToWeek:!0,fixedWeekCount:n,dateEnv:t});u={start:r.skipHiddenDays(u.start),end:r.skipHiddenDays(u.end,-1,!0)};let p=e.activeRange?Vi(e.activeRange,a?u:d):null;l.push({currentDate:e.currentDate,isValid:e.isValid,validRange:e.validRange,renderRange:u,activeRange:p,currentRange:d,currentRangeUnit:"month",isRangeAllDay:!0,dateIncrement:e.dateIncrement,slotMinTime:e.slotMaxTime,slotMaxTime:e.slotMinTime}),o=c}return l}function AFt(r,e){return r||(e[0].currentRange.start.getUTCFullYear()!==e[e.length-1].currentRange.start.getUTCFullYear()?PFt:MFt)}var JQ,XQ,EFt,PFt,MFt,_Ft,IFt,cVe,dVe=y(()=>{Vg();z1();qg();m0();JQ=class extends ia{constructor(){super(...arguments),this.buildDayTableModel=_e(RQ),this.slicer=new h0,this.state={labelId:bs()}}render(){let{props:e,state:t,context:n}=this,{dateProfile:a,forPrint:i}=e,{options:s}=n,o=this.buildDayTableModel(a,n.dateProfileGenerator),l=this.slicer.sliceProps(e,a,s.nextDayThreshold,n,o),c=e.tableWidth!=null?e.tableWidth/s.aspectRatio:null,d=o.cells.length,u=c!=null?c/d:null;return _("div",{ref:e.elRef,"data-date":e.isoDateStr,className:"fc-multimonth-month",style:{width:e.width},role:"grid","aria-labelledby":t.labelId},_("div",{className:"fc-multimonth-header",style:{marginBottom:u},role:"presentation"},_("div",{className:"fc-multimonth-title",id:t.labelId},n.dateEnv.format(e.dateProfile.currentRange.start,e.titleFormat)),_("table",{className:["fc-multimonth-header-table",n.theme.getClass("table")].join(" "),role:"presentation"},_("thead",{role:"rowgroup"},_(Xu,{dateProfile:e.dateProfile,dates:o.headerDates,datesRepDistinctDays:!1})))),_("div",{className:["fc-multimonth-daygrid","fc-daygrid","fc-daygrid-body",!i&&"fc-daygrid-body-balanced",i&&"fc-daygrid-body-unbalanced",i&&"fc-daygrid-body-natural"].join(" "),style:{marginTop:-u}},_("table",{className:["fc-multimonth-daygrid-table",n.theme.getClass("table")].join(" "),style:{height:i?"":c},role:"presentation"},_("tbody",{role:"rowgroup"},_(f0,Object.assign({},l,{dateProfile:a,cells:o.cells,eventSelection:e.eventSelection,dayMaxEvents:!i,dayMaxEventRows:!i,showWeekNumbers:s.weekNumbers,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:i}))))))}},XQ=class extends ia{constructor(){super(...arguments),this.splitDateProfileByMonth=_e(DFt),this.buildMonthFormat=_e(AFt),this.scrollElRef=En(),this.firstMonthElRef=En(),this.needsScrollReset=!1,this.handleSizing=e=>{e&&this.updateSize()}}render(){let{context:e,props:t,state:n}=this,{options:a}=e,{clientWidth:i,clientHeight:s}=n,o=n.monthHPadding||0,l=Math.min(i!=null?Math.floor(i/(a.multiMonthMinWidth+o)):1,a.multiMonthMaxColumns)||1,c=100/l+"%",d=i==null?null:i/l-o,u=i!=null&&l===1,p=this.splitDateProfileByMonth(e.dateProfileGenerator,t.dateProfile,e.dateEnv,u?!1:a.fixedWeekCount,a.showNonCurrentDates),m=this.buildMonthFormat(a.multiMonthTitleFormat,p),f=["fc-multimonth",u?"fc-multimonth-singlecol":"fc-multimonth-multicol",d!=null&&d<400?"fc-multimonth-compact":"",t.isHeightAuto?"":"fc-scroller"];return _(co,{elRef:this.scrollElRef,elClasses:f,viewSpec:e.viewSpec},p.map((h,g)=>{let v=Ub(h.currentRange.start);return _(JQ,Object.assign({},t,{key:v,isoDateStr:v,elRef:g===0?this.firstMonthElRef:void 0,titleFormat:m,dateProfile:h,width:c,tableWidth:d,clientWidth:i,clientHeight:s}))}))}componentDidMount(){this.updateSize(),this.context.addResizeHandler(this.handleSizing),this.requestScrollReset()}componentDidUpdate(e){gi(e,this.props)||this.handleSizing(!1),e.dateProfile!==this.props.dateProfile?this.requestScrollReset():this.flushScrollReset()}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}updateSize(){let e=this.scrollElRef.current,t=this.firstMonthElRef.current;e&&this.setState({clientWidth:e.clientWidth,clientHeight:e.clientHeight}),t&&e&&this.state.monthHPadding==null&&this.setState({monthHPadding:e.clientWidth-t.firstChild.offsetWidth})}requestScrollReset(){this.needsScrollReset=!0,this.flushScrollReset()}flushScrollReset(){if(this.needsScrollReset&&this.state.monthHPadding!=null){let{currentDate:e}=this.props.dateProfile,t=this.scrollElRef.current,n=t.querySelector(`[data-date="${Ub(e)}"]`);t.scrollTop=n.getBoundingClientRect().top-this.firstMonthElRef.current.getBoundingClientRect().top,this.needsScrollReset=!1}}shouldComponentUpdate(){return!0}},EFt=mt(1,"month");PFt=Kt({year:"numeric",month:"long"}),MFt=Kt({month:"long"});_Ft={multiMonthTitleFormat:Kt,multiMonthMaxColumns:Number,multiMonthMinWidth:Number},IFt=".fc .fc-multimonth{border:1px solid var(--fc-border-color);display:flex;flex-wrap:wrap;overflow-x:hidden;overflow-y:auto}.fc .fc-multimonth-title{font-size:1.2em;font-weight:700;padding:1em 0;text-align:center}.fc .fc-multimonth-daygrid{background:var(--fc-page-bg-color)}.fc .fc-multimonth-daygrid-table,.fc .fc-multimonth-header-table{table-layout:fixed;width:100%}.fc .fc-multimonth-daygrid-table{border-top-style:hidden!important}.fc .fc-multimonth-singlecol .fc-multimonth{position:relative}.fc .fc-multimonth-singlecol .fc-multimonth-header{background:var(--fc-page-bg-color);position:relative;top:0;z-index:2}.fc .fc-multimonth-singlecol .fc-multimonth-daygrid{position:relative;z-index:1}.fc .fc-multimonth-singlecol .fc-multimonth-daygrid-table,.fc .fc-multimonth-singlecol .fc-multimonth-header-table{border-left-style:hidden;border-right-style:hidden}.fc .fc-multimonth-singlecol .fc-multimonth-month:last-child .fc-multimonth-daygrid-table{border-bottom-style:hidden}.fc .fc-multimonth-multicol{line-height:1}.fc .fc-multimonth-multicol .fc-multimonth-month{padding:0 1.2em 1.2em}.fc .fc-multimonth-multicol .fc-daygrid-more-link{border:1px solid var(--fc-event-border-color);display:block;float:none;padding:1px}.fc .fc-multimonth-compact{line-height:1}.fc .fc-multimonth-compact .fc-multimonth-daygrid-table,.fc .fc-multimonth-compact .fc-multimonth-header-table{font-size:.9em}.fc-media-screen .fc-multimonth-singlecol .fc-multimonth-header{position:sticky}.fc-media-print .fc-multimonth{overflow:visible}";ud(IFt);cVe=yi({name:"@fullcalendar/multimonth",initialView:"multiMonthYear",optionRefiners:_Ft,views:{multiMonth:{component:XQ,dateProfileGeneratorClass:UT,multiMonthMinWidth:350,multiMonthMaxColumns:3},multiMonthYear:{type:"multiMonth",duration:{years:1},fixedWeekCount:!0,showNonCurrentDates:!1}}})});function uVe(r,e){return(0,qt.moment)(r,e)}function pVe(r){let e=(0,qt.parseYaml)(r);return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{}}var qt,xp,v0,U1,mVe=y(()=>{qt=require("obsidian");yE();Vo();xp=st(iu());Me();Mc();fi();Ba();K();v0=N({tag:"Modals/TimeblockInfoModal"});U1=class extends qt.Modal{constructor(t,n,a,i,s,o){super(t);this.selectedAttachments=[];this.keyboardHandler=null;this.plugin=n,this.timeblock={...a},this.originalTimeblock=a,this.eventDate=i,this.timeblockDate=s||ce(i),this.translate=n.i18n.translate.bind(n.i18n),this.onChange=o}async onOpen(){let{contentEl:t}=this;t.empty(),t.addClass("timeblock-info-modal"),this.keyboardHandler=d=>{d.key==="Enter"&&(d.ctrlKey||d.metaKey)&&(d.preventDefault(),this.handleSave())},this.containerEl.addEventListener("keydown",this.keyboardHandler),new qt.Setting(t).setName(this.translate("modals.timeblockInfo.editHeading")).setHeading();let n=t.createDiv({cls:"timeblock-date-display"});n.createEl("strong",{text:this.translate("modals.timeblockInfo.dateTimeLabel")});let a=`${this.eventDate.toLocaleDateString()} from ${this.timeblock.startTime} to ${this.timeblock.endTime}`;n.createSpan({text:a}),new qt.Setting(t).setName(this.translate("modals.timeblockInfo.titleLabel")).setDesc(this.translate("modals.timeblockInfo.titleDesc")).addText(d=>{this.titleInput=d.inputEl,d.setPlaceholder(this.translate("modals.timeblockInfo.titlePlaceholder")).setValue(this.timeblock.title||"").onChange(()=>this.validateForm())}),new qt.Setting(t).setName(this.translate("modals.timeblockInfo.descriptionLabel")).setDesc(this.translate("modals.timeblockInfo.descriptionDesc")).addTextArea(d=>{this.descriptionInput=d.inputEl,d.setPlaceholder(this.translate("modals.timeblockInfo.descriptionPlaceholder")).setValue(this.timeblock.description||""),this.descriptionInput.rows=3}),new qt.Setting(t).setName(this.translate("modals.timeblockInfo.colorLabel")).setDesc(this.translate("modals.timeblockInfo.colorDesc")).addText(d=>{this.colorInput=d.inputEl,d.setPlaceholder(this.translate("modals.timeblockInfo.colorPlaceholder")).setValue(Su(this.timeblock.color||this.plugin.settings.calendarViewSettings.defaultTimeblockColor)),dg(this.colorInput)}),new qt.Setting(t).setName(this.translate("modals.timeblockInfo.attachmentsLabel")).setDesc(this.translate("modals.timeblockInfo.attachmentsDesc")).addButton(d=>{d.setButtonText(this.translate("modals.timeblockInfo.addAttachmentButton")).setTooltip(this.translate("modals.timeblockInfo.addAttachmentTooltip")).onClick(()=>{Tm(this.plugin,u=>{u instanceof qt.TAbstractFile&&this.addAttachment(u)},{placeholder:"Search files or type to create new...",filter:"all",sortOrder:this.plugin.settings.calendarViewSettings.timeblockAttachmentSearchOrder})})}).addButton(d=>{d.setButtonText("Add task").setTooltip("Select task").onClick(()=>{this.openTaskSelectorForTitle()})}),this.attachmentsList=t.createDiv({cls:"timeblock-attachments-list"}),await this.initializeAttachments(),this.renderAttachmentsList();let i=t.createDiv({cls:"timeblock-modal-buttons"});i.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),i.classList.add("tn-static-display-flex-75816cae"),i.classList.remove("tn-static-justify-content-center-03c4bb6f","tn-static-justify-content-flex-end-455f8cca"),i.classList.add("tn-static-justify-content-space-between-a562f4fd"),i.classList.remove("tn-static-align-items-baseline-4b95b5c7","tn-static-align-items-flex-start-0486f781"),i.classList.add("tn-static-align-items-center-7c619740"),i.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),i.classList.add("tn-static-margin-top-20px-a26bda7d"),i.createEl("button",{text:this.translate("modals.timeblockInfo.deleteButton"),cls:"mod-warning timeblock-delete-button"}).addEventListener("click",()=>{this.handleDelete()});let o=i.createDiv({cls:"timeblock-modal-buttons-right"});o.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),o.classList.add("tn-static-display-flex-75816cae"),o.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-0-5rem-ce2fca4d","tn-static-gap-10px-f3d7ce77","tn-static-gap-12px-ed7b3d87","tn-static-gap-6px-f0abc1db"),o.classList.add("tn-static-gap-8px-33fcd4c3"),o.createEl("button",{text:this.translate("common.cancel")}).addEventListener("click",()=>this.close()),o.createEl("button",{text:this.translate("modals.timeblockInfo.saveButton"),cls:"mod-cta timeblock-save-button"}).addEventListener("click",()=>{this.handleSave()}),this.validateForm(),window.setTimeout(()=>this.titleInput.focus(),50)}validateForm(){var i;let t=this.contentEl.querySelector(".timeblock-save-button");if(!t)return;let a=!!((i=this.titleInput)==null?void 0:i.value.trim());t.disabled=!a,t.style.opacity=a?"1":"0.5"}async initializeAttachments(){if(this.timeblock.attachments)for(let t of this.timeblock.attachments){let n=t.replace(/^\[\[|\]\]$/g,""),a=this.app.vault.getAbstractFileByPath(n);a&&this.selectedAttachments.push(a)}}addAttachment(t){if(this.selectedAttachments.some(n=>n.path===t.path)){new qt.Notice(this.translate("notices.timeblockAttachmentExists",{fileName:t.name}));return}if(this.titleInput&&!this.titleInput.value.trim()){let n=t instanceof qt.TFile?t.basename:t.name;this.titleInput.value=n,this.timeblock.title=n,this.validateForm()}this.selectedAttachments.push(t),this.renderAttachmentsList(),new qt.Notice(this.translate("notices.timeblockAttachmentAdded",{fileName:t.name}))}async openTaskSelectorForTitle(){var t,n,a;try{let s=((a=await((n=(t=this.plugin.cacheManager).getAllTasks)==null?void 0:n.call(t)))!=null?a:[]).filter(o=>!o.archived);if(s.length===0){new qt.Notice("No tasks available to select");return}Fn(this.plugin,s,o=>{if(!o)return;this.titleInput.value=o.title||"",this.timeblock.title=o.title||"",this.validateForm();let l=this.app.vault.getAbstractFileByPath(o.path);l&&this.addAttachment(l)},{title:"Select task"})}catch(i){v0.error("Failed to open task selector for timeblock edit:",{category:"persistence",operation:"open-task-selector-timeblock-edit",error:i}),new qt.Notice("Failed to open task selector")}}removeAttachment(t){this.selectedAttachments=this.selectedAttachments.filter(n=>n.path!==t.path),this.renderAttachmentsList(),new qt.Notice(this.translate("notices.timeblockAttachmentRemoved",{fileName:t.name}))}openAttachment(t){t instanceof qt.TFile?this.app.workspace.getLeaf(!1).openFile(t):new qt.Notice(this.translate("notices.timeblockFileTypeNotSupported",{fileName:t.name}))}renderAttachmentsList(){if(this.attachmentsList.empty(),this.selectedAttachments.length===0){let t=this.attachmentsList.createDiv({cls:"timeblock-attachments-empty"});t.textContent="No attachments";return}this.selectedAttachments.forEach(t=>{let n=this.attachmentsList.createDiv({cls:"timeblock-attachment-item"}),a=n.createDiv({cls:"timeblock-attachment-info"});a.classList.remove("tn-static-cursor-grab-dad79857","tn-static-cursor-pointer-2723efcc"),a.classList.add("tn-static-cursor-pointer-3b6a3a65"),(0,qt.setTooltip)(a,"Click to open",{placement:"top"}),a.addEventListener("click",()=>this.openAttachment(t));let i=a.createSpan({cls:"timeblock-attachment-name"});if(i.textContent=t.name,t.path!==t.name){let o=a.createDiv({cls:"timeblock-attachment-path"});o.textContent=t.path}let s=n.createEl("button",{cls:"timeblock-attachment-remove",text:"\xD7"});(0,qt.setTooltip)(s,"Remove attachment",{placement:"top"}),s.addEventListener("click",o=>{o.stopPropagation(),this.removeAttachment(t)})})}async handleSave(){var t;try{let n=this.titleInput.value.trim();if(!n){new qt.Notice(this.translate("notices.timeblockTitleRequired"));return}this.timeblock.title=n,this.timeblock.description=this.descriptionInput.value.trim()||void 0,this.timeblock.color=_r(this.colorInput.value||void 0)||void 0;let a=this.selectedAttachments.map(i=>`[[${i.path}]]`);this.timeblock.attachments=a.length>0?a:void 0,await this.updateTimeblockInDailyNote(),(t=this.onChange)==null||t.call(this),this.plugin.emitter.trigger("data-changed"),new qt.Notice(this.translate("notices.timeblockUpdatedSuccess",{title:n})),this.close()}catch(n){v0.error("Error updating timeblock:",{category:"internal",operation:"updating-timeblock",error:n}),new qt.Notice(this.translate("notices.timeblockUpdateFailed"))}}async updateTimeblockInDailyNote(){if(!(0,xp.appHasDailyNotesPluginLoaded)())throw new Error("Daily Notes plugin is not enabled");let t=this.timeblockDate,n=uVe(t,"YYYY-MM-DD"),a=(0,xp.getAllDailyNotes)(),i=(0,xp.getDailyNote)(n,a);if(!i)throw new Error("Daily note not found");let s=await this.app.vault.read(i),o={},l=s;if(s.startsWith("---")){let u=s.indexOf("---",3);if(u!==-1){let p=s.substring(3,u);l=s.substring(u+3);try{o=pVe(p)}catch(m){v0.error("Error parsing existing frontmatter:",{category:"validation",operation:"parsing-existing-frontmatter",error:m}),o={}}}}if(o.timeblocks&&Array.isArray(o.timeblocks)){let u=o.timeblocks.findIndex(p=>p.id===this.originalTimeblock.id||p.title===this.originalTimeblock.title&&p.startTime===this.originalTimeblock.startTime&&p.endTime===this.originalTimeblock.endTime);if(u>=0)o.timeblocks[u]=this.timeblock;else throw new Error("Timeblock not found in daily note")}else throw new Error("No timeblocks found in daily note");let d=`---
|
||
${(0,qt.stringifyYaml)(o)}---${l}`;await Mo(this.app,i,d)}async handleDelete(){var n;if(await this.showDeleteConfirmation())try{await this.deleteTimeblockFromDailyNote(),(n=this.onChange)==null||n.call(this),this.plugin.emitter.trigger("data-changed"),new qt.Notice(this.translate("notices.timeblockDeletedSuccess",{title:this.timeblock.title})),this.close()}catch(a){v0.error("Error deleting timeblock:",{category:"internal",operation:"deleting-timeblock",error:a}),new qt.Notice(this.translate("notices.timeblockDeleteFailed"))}}async showDeleteConfirmation(){return new Promise(t=>{let n=new qt.Modal(this.app);n.titleEl.setText(this.translate("modals.timeblockInfo.deleteConfirmationTitle"));let a=n.contentEl;a.createEl("p",{text:`Are you sure you want to delete the timeblock "${this.timeblock.title}"?`}),a.createEl("p",{text:"This action cannot be undone.",cls:"mod-warning"});let i=a.createDiv({cls:"modal-button-container"});i.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),i.classList.add("tn-static-display-flex-75816cae"),i.classList.remove("tn-static-justify-content-center-03c4bb6f","tn-static-justify-content-space-between-a562f4fd"),i.classList.add("tn-static-justify-content-flex-end-455f8cca"),i.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-0-5rem-ce2fca4d","tn-static-gap-10px-f3d7ce77","tn-static-gap-12px-ed7b3d87","tn-static-gap-6px-f0abc1db"),i.classList.add("tn-static-gap-8px-33fcd4c3"),i.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),i.classList.add("tn-static-margin-top-20px-a26bda7d");let s=i.createEl("button",{text:this.translate("common.cancel")});s.addEventListener("click",()=>{n.close(),t(!1)}),i.createEl("button",{text:"Delete",cls:"mod-warning"}).addEventListener("click",()=>{n.close(),t(!0)}),n.open(),window.setTimeout(()=>s.focus(),50)})}async deleteTimeblockFromDailyNote(){if(!(0,xp.appHasDailyNotesPluginLoaded)())throw new Error("Daily Notes plugin is not enabled");let t=this.timeblockDate,n=uVe(t,"YYYY-MM-DD"),a=(0,xp.getAllDailyNotes)(),i=(0,xp.getDailyNote)(n,a);if(!i)throw new Error("Daily note not found");let s=await this.app.vault.read(i),o={},l=s;if(s.startsWith("---")){let u=s.indexOf("---",3);if(u!==-1){let p=s.substring(3,u);l=s.substring(u+3);try{o=pVe(p)}catch(m){v0.error("Error parsing existing frontmatter:",{category:"validation",operation:"parsing-existing-frontmatter",error:m}),o={}}}}if(o.timeblocks&&Array.isArray(o.timeblocks)){let u=o.timeblocks.findIndex(p=>p.id===this.originalTimeblock.id||p.title===this.originalTimeblock.title&&p.startTime===this.originalTimeblock.startTime&&p.endTime===this.originalTimeblock.endTime);if(u>=0)o.timeblocks.splice(u,1),o.timeblocks.length===0&&delete o.timeblocks;else throw new Error("Timeblock not found in daily note")}else throw new Error("No timeblocks found in daily note");let c=Object.keys(o).length>0?(0,qt.stringifyYaml)(o):"",d=c?`---
|
||
${c}---${l}`:l.trim();await Mo(this.app,i,d)}onClose(){this.keyboardHandler&&(this.containerEl.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=null);let{contentEl:t}=this;t.empty()}}});function HT(r,e){if(!e)return;let t=Math.ceil(e/1440),n=kt(r),a=new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()+t));return ce(a)}function fVe(r,e){if(!r.scheduled)return null;let t=mr(r.scheduled),n=r.scheduled,a;if(t&&r.timeEstimate){let o=it(n),l=new Date(o.getTime()+r.timeEstimate*60*1e3);a=M(l,"yyyy-MM-dd'T'HH:mm")}else t||(a=HT(n,r.timeEstimate));let i=_r(e.getPriorityColor(r.priority),"var(--color-accent)"),s=xu(i)?e.getThemeTextColor(!0):i;return{id:`scheduled-${r.path}`,title:r.title,start:n,end:a,allDay:!t,backgroundColor:"transparent",borderColor:i,textColor:s,editable:!0,extendedProps:{taskInfo:r,eventType:"scheduled",isCompleted:e.isCompletedStatus(r.status)}}}function hVe(r,e){if(!r.due)return null;let t=mr(r.due),n=r.due,a;if(t){let o=it(n),l=new Date(o.getTime()+1800*1e3);a=M(l,"yyyy-MM-dd'T'HH:mm")}let i=_r(e.getPriorityColor(r.priority),"var(--color-orange)"),s=xu(i)?e.getThemeTextColor(!0):i;return{id:`due-${r.path}`,title:r.title,start:n,end:a,allDay:!t,backgroundColor:zv(i,.15),borderColor:i,textColor:s,editable:!0,extendedProps:{taskInfo:r,eventType:"due",isCompleted:e.isCompletedStatus(r.status)}}}function gVe(r,e,t){if(!e||!t)return!0;let n=it(r.start),a=r.end?it(r.end):n;return n.getTime()<t.getTime()&&a.getTime()>=e.getTime()}function NFt(r,e){if(!r.scheduled||!r.due)return null;let t=it(r.scheduled),n=it(r.due);if(n<=t)return null;let a=new Date(n);a.setDate(a.getDate()+1);let i=_r(e.getPriorityColor(r.priority),"var(--color-accent)"),s=xu(i)?e.getThemeTextColor(!0):i;return{id:`span-${r.path}`,title:r.title,start:M(t,"yyyy-MM-dd"),end:M(a,"yyyy-MM-dd"),allDay:!0,backgroundColor:zv(i,.2),borderColor:i,textColor:s,editable:!0,extendedProps:{taskInfo:r,eventType:"scheduledToDueSpan",isCompleted:e.isCompletedStatus(r.status)}}}function RFt(r,e,t,n){if(!r.scheduled||!r.due)return[];let a=it(r.scheduled);if(it(r.due)<=a)return[];let s=Oi(r.scheduled);if(!s)return[];let[o,l]=s.split(":").map(Number),c=it(de(r.scheduled)),d=it(de(r.due)),u=_r(e.getPriorityColor(r.priority),"var(--color-accent)"),p=xu(u)?e.getThemeTextColor(!0):u,m=e.isCompletedStatus(r.status),f=[];for(let h=new Date(c);h.getTime()<=d.getTime();h.setDate(h.getDate()+1)){let g=new Date(h);g.setHours(o,l,0,0);let v;if(r.timeEstimate){let w=new Date(g.getTime()+r.timeEstimate*60*1e3);v=M(w,"yyyy-MM-dd'T'HH:mm")}let b=M(h,"yyyy-MM-dd"),k={id:`span-${r.path}-${b}`,title:r.title,start:M(g,"yyyy-MM-dd'T'HH:mm"),end:v,allDay:!1,backgroundColor:zv(u,.2),borderColor:u,textColor:p,editable:!0,extendedProps:{taskInfo:r,eventType:"scheduledToDueSpan",isCompleted:m}};gVe(k,t,n)&&f.push(k)}return f}function yVe(r,e,t,n){if(!r.scheduled||!r.due)return[];if(mr(r.scheduled))return RFt(r,e,t,n);let a=NFt(r,e);return!a||!gVe(a,t,n)?[]:[a]}function FFt(r){return typeof r.endTime=="string"&&r.endTime.length>0}function vVe(r,e){if(!r.timeEntries)return[];let t=e.isCompletedStatus(r.status);return r.timeEntries.map((n,a)=>({entry:n,index:a})).filter(({entry:n})=>FFt(n)).map(({entry:n,index:a})=>({id:`timeentry-${r.path}-${a}`,title:r.title,start:n.startTime,end:n.endTime,allDay:!1,editable:!0,extendedProps:{taskInfo:r,eventType:"timeEntry",isCompleted:t,timeEntryIndex:a}}))}var eJ=y(()=>{Wr();Me();Mc()});function b0(r,e){return(e?de(e):"")||M(r,"yyyy-MM-dd")}function xVe(r){return r instanceof Error?r.message:String(r)}function CVe(r){return!!(r!=null&&r.ctrlKey||r!=null&&r.metaKey||r!=null&&r.altKey)}function EVe(r){return window.moment(r)}function H1(r,e){return zv(r,e)}function zFt(){return activeDocument.body.classList.contains("theme-dark")}function Ay(r=!1){return r?zFt()?"#e8eaed":"#202124":""}function V1(r){return xu(r)}function DVe(r,e){let t=r.title;if(r.projects&&r.projects.length>0&&(t+=`
|
||
Project: ${r.projects[0]}`),r.priority){let n=e.priorityManager.getPriorityConfig(r.priority);t+=`
|
||
Priority: ${(n==null?void 0:n.label)||r.priority}`}if(r.status){let n=e.statusManager.getStatusConfig(r.status);t+=`
|
||
Status: ${(n==null?void 0:n.label)||r.status}`}if(r.timeEstimate){let n=Math.floor(r.timeEstimate/60),a=r.timeEstimate%60;t+=`
|
||
Estimate: ${n>0?`${n}h `:""}${a}m`}return t}function PVe(r,e){let{isNextScheduledOccurrence:t=!1,isPatternInstance:n=!1,isRecurringInstance:a=!1,isCompleted:i=!1}=e;if(t?(r.classList.remove("tn-static-border-style-dashed-12296c91"),r.classList.add("tn-static-border-style-solid-11080b69"),r.classList.add("tn-static-border-width-2px-a1222254"),r.setAttribute("data-next-scheduled","true"),r.classList.add("fc-next-scheduled-event"),i&&(r.classList.remove("tn-static-opacity-0-8d919cb5","tn-static-opacity-1-c6e7979d"),r.classList.add("tn-static-opacity-0-6-d95b59ac"))):n?(r.classList.remove("tn-static-border-style-solid-11080b69"),r.classList.add("tn-static-border-style-dashed-12296c91"),r.classList.add("tn-static-border-width-2px-a1222254"),r.style.opacity=i?"0.4":"0.7",r.setAttribute("data-pattern-instance","true"),r.classList.add("fc-pattern-instance-event")):a&&(r.classList.remove("tn-static-border-style-solid-11080b69"),r.classList.add("tn-static-border-style-dashed-12296c91"),r.classList.add("tn-static-border-width-2px-a1222254"),r.setAttribute("data-recurring","true"),r.classList.add("fc-recurring-event"),i&&(r.classList.remove("tn-static-opacity-0-8d919cb5","tn-static-opacity-1-c6e7979d"),r.classList.add("tn-static-opacity-0-6-d95b59ac"))),e.isMaterializedOccurrence&&(r.setAttribute("data-materialized-occurrence","true"),r.classList.add("fc-materialized-occurrence-event")),i){let s=r.querySelector(".fc-event-title, .fc-event-title-container");s?(s.classList.remove("tn-static-text-decoration-none-80d654f9"),s.classList.add("tn-static-text-decoration-line-through-7059a4e5")):(r.classList.remove("tn-static-text-decoration-none-80d654f9"),r.classList.add("tn-static-text-decoration-line-through-7059a4e5")),r.classList.add("fc-completed-event")}}async function jFt(r,e,t,n){try{if(!r.recurrence||typeof r.recurrence!="string")throw new Error("Task does not have a valid RRULE string");let a=r.recurrence.match(/DTSTART:(\d{8}(?:T\d{6}Z?)?)/),i;if(a){let s=a[1],o;if(t)o=s.slice(0,8);else{let l=s.slice(0,8),c=String(e.getHours()).padStart(2,"0"),d=String(e.getMinutes()).padStart(2,"0");o=`${l}T${c}${d}00Z`}i=r.recurrence.replace(/DTSTART:[^;]+/,`DTSTART:${o}`),new Zn.Notice("Updated recurring pattern time. All future instances now appear at this time.")}else{let s=Tfe(r,e,t);if(!s)throw new Error("Failed to add DTSTART to recurrence rule");i=s,new Zn.Notice("Added time information to recurring pattern. All future instances now appear at this time.")}await n.taskService.updateProperty(r,"recurrence",i)}catch(a){throw zd.error("Error updating pattern instance time:",{category:"provider",operation:"updating-pattern-instance-time",error:a}),a}}async function MVe(r,e,t){var l,c;let{isRecurringInstance:n,isNextScheduledOccurrence:a,isPatternInstance:i}=(l=r.event.extendedProps)!=null?l:{},s=r.event.start;if(!s){r.revert();return}let o=(c=r.event.allDay)!=null?c:!1;if(a){let d;o?d=M(s,"yyyy-MM-dd"):d=M(s,"yyyy-MM-dd'T'HH:mm"),await t.taskService.updateProperty(e,"scheduled",d),new Zn.Notice("Rescheduled next occurrence. This does not change the recurrence pattern.")}else if(i)await jFt(e,s,o,t);else if(n){let d=de(e.scheduled),u;if(o)u=d,new Zn.Notice("Updated recurring task to all-day. This affects all future instances.");else{let p=M(s,"HH:mm");u=`${d}T${p}`,new Zn.Notice(`Updated recurring task time to ${p}. This affects all future instances.`)}await t.taskService.updateProperty(e,"scheduled",u)}}function q1(r){let e=r,t=e.event||e,n=t.extendedProps||{},{isRecurringInstance:a,isNextScheduledOccurrence:i,isPatternInstance:s,isMaterializedOccurrence:o,instanceDate:l}=n;if((a||i||s||o)&&l)return kt(l);let c=t.start;if(c){let d=M(c,"yyyy-MM-dd");return kt(d)}return Er()}function W1(r){return{getPriorityColor:e=>{var t;return(t=r.priorityManager.getPriorityConfig(e))==null?void 0:t.color},isCompletedStatus:e=>r.statusManager.isCompletedStatus(e),getThemeTextColor:(e=!1)=>Ay(e)}}function $Ft(r){return r?typeof r.has=="function"?r:new Set(r):new Set}function BFt(r,e){var l,c;let t=r.recurrence_parent;if(!t)return"";let n=vg(t),a=(l=e.app)==null?void 0:l.metadataCache,i=Et(t),s=(c=a==null?void 0:a.getFirstLinkpathDest)==null?void 0:c.call(a,i,r.path),o=s&&typeof s.path=="string"?s.path:void 0;return o?vg(o):n}function UFt(r){return vg(r.path)}function HFt(r,e){let t=new Map;for(let n of r){if(!AE(n))continue;let a=BFt(n,e),i=de(n.occurrence_date);if(!a||!i)continue;let s=t.get(a);s||(s=new Set,t.set(a,s)),s.add(i)}return t}function VT(r,e){if(!AE(e))return r;let t=de(e.occurrence_date);return{...r,extendedProps:{...r.extendedProps,isMaterializedOccurrence:!0,instanceDate:t,occurrenceDate:t,occurrenceParent:e.recurrence_parent}}}function kVe(r,e){return fVe(r,W1(e))}function bVe(r,e){return hVe(r,W1(e))}function AVe(r,e,t,n){return yVe(r,W1(e),t,n)}function VFt(r,e){return vVe(r,W1(e))}function nJ(r,e,t={}){var n;try{let a=r.subscriptionId.startsWith("google-"),i=r.subscriptionId.startsWith("microsoft-"),s,o,l,c;if(a)o=r.color||"#4285F4",s=H1(o,.2),l=Ay(!0),c="Google Calendar";else if(i)o=r.color||"#0078D4",s=H1(o,.2),l=Ay(!0),c="Microsoft Calendar";else{let p=(n=e.icsSubscriptionService)==null?void 0:n.getSubscriptions().find(m=>m.id===r.subscriptionId);if(!p||!p.enabled)return null;o=_r(p.color,"#3788d8"),s=H1(o,.2),l=V1(o)?Ay(!0):o,c=p.name}let{start:d,end:u}=qFt(r.start,r.end,r.allDay);return{id:r.id,title:r.title,start:d,end:u,allDay:r.allDay,backgroundColor:s,borderColor:o,textColor:l,editable:a||i,extendedProps:{icsEvent:r,eventType:"ics",subscriptionName:c,isGoogleCalendar:a,isMicrosoftCalendar:i,relatedNoteCount:t.relatedNoteCount&&t.relatedNoteCount>0?t.relatedNoteCount:void 0}}}catch(a){return zd.error("Error creating ICS event:",{category:"provider",operation:"creating-ics-event",error:a}),null}}function qFt(r,e,t){if(t||!e)return{start:r,end:e};let n=new Date(r),a=new Date(e);if(Number.isNaN(n.getTime())||Number.isNaN(a.getTime())||a.getTime()!==n.getTime())return{start:r,end:e};let i=new Date(a.getTime()+OFt);return{start:r,end:WFt(i,e)}}function WFt(r,e){if(/Z$/i.test(e))return r.toISOString();let t=e.match(/([+-])(\d{2}):?(\d{2})$/);if(t){let[,n,a,i]=t,o=(Number(a)*60+Number(i))*60*1e3*(n==="+"?1:-1),l=new Date(r.getTime()+o),c=(p,m=2)=>String(p).padStart(m,"0"),d=`${l.getUTCFullYear()}-${c(l.getUTCMonth()+1)}-${c(l.getUTCDate())}`,u=`${c(l.getUTCHours())}:${c(l.getUTCMinutes())}:${c(l.getUTCSeconds())}.${c(l.getUTCMilliseconds(),3)}`;return`${d}T${u}${n}${a}:${i}`}return M(r,"yyyy-MM-dd'T'HH:mm:ss.SSS")}function YFt(r){if(r.recurrence&&typeof r.recurrence=="string"){let e=r.recurrence.match(/DTSTART:(\d{8}(?:T\d{6}Z?)?)/);if(e&&e[1].includes("T")){let t=e[1].split("T")[1];if(t.length>=4){let n=t.slice(0,2),a=t.slice(2,4);return`${n}:${a}`}}}if(r.scheduled){let e=Oi(r.scheduled);if(e)return e}return"09:00"}function GFt(r){if(!r.scheduled||!r.due)return null;let e=it(r.scheduled);if(it(r.due)<=e)return null;let n=it(de(r.scheduled)),a=it(de(r.due)),i=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()),s=Date.UTC(a.getFullYear(),a.getMonth(),a.getDate());return Math.round((s-i)/LFt)}function KFt(r,e){let t=new Date(r);return t.setDate(t.getDate()+e),t}function ZFt(r,e){let t=new Date(r);return t.setUTCDate(t.getUTCDate()+e),t}function _Ve(r,e){let t=Oi(r);return t?`${e}T${t}`:e}function QFt(r){return!!(r.scheduled&&r.due&&!mr(r.due)&&de(r.scheduled)===de(r.due))}function tJ(r,e,t,n,a,i,s,o){var h,g;if(!r.scheduled||!r.due)return[];let l=KFt(it(e),a),c=M(l,"yyyy-MM-dd"),d=mr(r.scheduled)?t:null,u={...r,scheduled:d?`${e}T${d}`:e,due:_Ve(r.due,c)},p=((h=r.complete_instances)==null?void 0:h.includes(e))||!1,m=((g=r.skipped_instances)==null?void 0:g.includes(e))||!1,f={isCompleted:p,isSkipped:m,isNextScheduledOccurrence:n==="next-scheduled",isPatternInstance:n==="pattern",isRecurringInstance:n==="recorded",instanceDate:e,recurringTemplateTime:t};return AVe(u,i,s,o).map(v=>{let b=de(v.start);return{...v,id:`span-${n}-${r.path}-${e}-${b}`,editable:!1,extendedProps:{...v.extendedProps,taskInfo:r,...f}}})}function JFt(r,e,t,n,a){var m,f;let i=mr(e),s;if(i&&r.timeEstimate){let h=it(e),g=new Date(h.getTime()+r.timeEstimate*60*1e3);s=M(g,"yyyy-MM-dd'T'HH:mm")}else i||(s=HT(e,r.timeEstimate));let o=a.priorityManager.getPriorityConfig(r.priority),l=_r(o==null?void 0:o.color,"var(--color-accent)"),c=((m=r.complete_instances)==null?void 0:m.includes(t))||!1,d=((f=r.skipped_instances)==null?void 0:f.includes(t))||!1,u=V1(l)?Ay(!0):l,p="transparent";return c?p="rgba(0,0,0,0.3)":d&&(p="rgba(128,128,128,0.2)"),{id:`next-scheduled-${r.path}-${t}`,title:r.title,start:e,end:s,allDay:!i,backgroundColor:p,borderColor:l,textColor:u,editable:!0,extendedProps:{taskInfo:r,eventType:"scheduled",isCompleted:c,isSkipped:d,isNextScheduledOccurrence:!0,instanceDate:t,recurringTemplateTime:n}}}function XFt(r,e,t,n,a){var f,h;let i=mr(e),s;if(i&&r.timeEstimate){let g=it(e),v=new Date(g.getTime()+r.timeEstimate*60*1e3);s=M(v,"yyyy-MM-dd'T'HH:mm")}else i||(s=HT(e,r.timeEstimate));let o=a.priorityManager.getPriorityConfig(r.priority),l=_r(o==null?void 0:o.color,"var(--color-accent)"),c=((f=r.complete_instances)==null?void 0:f.includes(t))||!1,d=((h=r.skipped_instances)==null?void 0:h.includes(t))||!1,u=H1(l,.5),p=V1(l)?Ay(!0):u,m="transparent";return c?m="rgba(0,0,0,0.2)":d&&(m="rgba(128,128,128,0.15)"),{id:`recurring-${r.path}-${t}`,title:r.title,start:e,end:s,allDay:!i,backgroundColor:m,borderColor:u,textColor:p,editable:!0,extendedProps:{taskInfo:r,eventType:"recurring",isCompleted:c,isSkipped:d,isPatternInstance:!0,instanceDate:t,recurringTemplateTime:n}}}function eOt(r,e,t,n,a){var m,f;let i=mr(e),s;if(i&&r.timeEstimate){let h=it(e),g=new Date(h.getTime()+r.timeEstimate*60*1e3);s=M(g,"yyyy-MM-dd'T'HH:mm")}else i||(s=HT(e,r.timeEstimate));let o=a.priorityManager.getPriorityConfig(r.priority),l=_r(o==null?void 0:o.color,"var(--color-accent)"),c=((m=r.complete_instances)==null?void 0:m.includes(t))||!1,d=((f=r.skipped_instances)==null?void 0:f.includes(t))||!1,u=V1(l)?Ay(!0):l,p="transparent";return c?p="rgba(0,0,0,0.3)":d&&(p="rgba(128,128,128,0.2)"),{id:`recurring-recorded-${r.path}-${t}`,title:r.title,start:e,end:s,allDay:!i,backgroundColor:p,borderColor:l,textColor:u,editable:!1,extendedProps:{taskInfo:r,eventType:"recurring",isCompleted:c,isSkipped:d,isRecurringInstance:!0,instanceDate:t,recurringTemplateTime:n}}}function tOt(r,e,t,n,a={}){if(!r.recurrence||!r.scheduled)return[];let{showCompletedRecurringInstances:i=!0,showSkippedRecurringInstances:s=!0,showProjectedRecurringInstances:o=!0,showScheduledToDueSpan:l=!1,materializedOccurrenceDates:c,visibleStartDate:d,visibleEndDate:u}=a,p=[],m=new Set,f=$Ft(c),h=b0(e,d),g=b0(t,u),v=mr(r.scheduled),b=YFt(r),k=de(r.scheduled),w=l?GFt(r):null,S=w!==null,C=S?ZFt(e,-Math.max(w,0)):e;if(o){let E=v?Oi(r.scheduled):null,D=E?`${k}T${E}`:k,P=JFt(r,D,k,E||"09:00",n);if(P&&!f.has(k)&&TVe(r,k,i,s))if(S){let A=tJ(r,k,E||b,"next-scheduled",w,n,e,t);A.length>0&&(p.push(...A),m.add(k))}else p.push(P),m.add(k);let O=t;typeof r.recurrence=="string"&&r.recurrence.includes("FREQ=YEARLY")&&(O=new Date(e.getTime()+800*24*60*60*1e3));let z=Bv(r,C,O),R=S?b0(C):h;for(let A of z){let F=ce(A);if(F<R||F>=g||F===k||f.has(F)||!TVe(r,F,i,s))continue;if(S){let ue=tJ(r,F,b,"pattern",w,n,e,t);ue.length>0&&(p.push(...ue),m.add(F));continue}let $=v?`${F}T${b}`:F,B=XFt(r,$,F,b,n);B&&(p.push(B),m.add(F))}}for(let E of rOt(r,C,t,i,s,h,g)){if(f.has(E)||m.has(E))continue;if(S){let O=tJ(r,E,b,"recorded",w,n,e,t);O.length>0&&(p.push(...O),m.add(E));continue}let D=v?`${E}T${b}`:E,P=eOt(r,D,E,b,n);P&&(p.push(P),m.add(E))}return p}function rOt(r,e,t,n,a,i=b0(e),s=b0(t)){let o=new Set;if(n)for(let l of r.complete_instances||[])l>=i&&l<s&&o.add(l);if(a)for(let l of r.skipped_instances||[])l>=i&&l<s&&o.add(l);return[...o].sort()}function TVe(r,e,t,n){var a,i;return!(!t&&((a=r.complete_instances)!=null&&a.includes(e))||!n&&((i=r.skipped_instances)!=null&&i.includes(e)))}function nOt(r,e,t="#6366f1"){let n=`${e}T${r.startTime}:00`,a=`${e}T${r.endTime}:00`,i=_r(r.color||t,"#6366f1"),s=i;return{id:`timeblock-${r.id}`,title:r.title,start:n,end:a,allDay:!1,backgroundColor:i,borderColor:s,textColor:"var(--text-on-accent)",editable:!0,extendedProps:{eventType:"timeblock",timeblock:r,originalDate:e}}}function aOt(r,e){let t=r;if(!(t!=null&&t.timeblocks)||!Array.isArray(t.timeblocks))return[];let n=[];for(let a of t.timeblocks){let i=a;i&&typeof i.id=="string"&&typeof i.startTime=="string"&&typeof i.endTime=="string"&&n.push(i)}return n}async function sOt(r,e,t){try{let n=Date.now();(!rJ||n-wVe>iOt)&&(rJ=(0,jd.getAllDailyNotes)(),wVe=n);let a=rJ,i=[];for(let s=new Date(e);s<=t;s.setUTCDate(s.getUTCDate()+1)){let o=ce(s),l=new Date(`${o}T12:00:00`),c=(0,jd.getDailyNote)(EVe(l),a);if(c){let d=r.app.metadataCache.getFileCache(c);if(d!=null&&d.frontmatter){let u=aOt(d.frontmatter,c.path);for(let p of u)i.push(nOt(p,o,r.settings.calendarViewSettings.defaultTimeblockColor))}}}return i}catch(n){return zd.error("Error getting timeblock events:",{category:"provider",operation:"getting-timeblock-events",error:n}),[]}}function k0(r,e,t,n){if(!e||!t)return!0;try{let i=it(r).getTime();if(isNaN(i))return!0;let s=i;return n&&(s=i+n*60*1e3),i<t.getTime()&&s>=e.getTime()}catch(a){return!0}}function oOt(r,e){return e?M(r,"yyyy-MM-dd'T'HH:mm"):M(r,"yyyy-MM-dd")}function IVe(r,e){if(r)return _Ve(r,e)}function lOt(r,e){if(r.end)try{let t=it(r.start),n=it(r.end),a=it(e),i=new Date(a.getTime()+(n.getTime()-t.getTime()));return oOt(i,mr(r.end))}catch(t){return IVe(r.end,de(e))}}function SVe(r,e,t,n,a,i){if(!e||!k0(t,a,i)||de(e)===t)return null;let s=!!r.extendedProps.isCompleted;if(!Nl(e,s,n))return null;let o=IVe(r.start,t);return o?{...r,id:`${r.id}-overdue-today`,start:o,end:lOt(r,o),extendedProps:{...r.extendedProps,isOverdueOnToday:!0}}:null}async function NVe(r,e,t={}){var C,E,D;let{showScheduled:n=!0,showDue:a=!0,showScheduledToDueSpan:i=!1,showTimeEntries:s=!0,showRecurring:o=!0,showCompletedRecurringInstances:l=!0,showSkippedRecurringInstances:c=!0,showICSEvents:d=!0,showTimeblocks:u=!1,showOverdueOnToday:p=!1,visibleStart:m,visibleEnd:f,visibleStartDate:h,visibleEndDate:g}=t,v=[],b=HFt(r,e),k=p?Il():null,w=(E=(C=e.settings)==null?void 0:C.hideCompletedFromOverdue)!=null?E:!0,S=(P,O,z,R=a,A=!1,F=!1)=>{let $=!1,B=!1;if(z&&i&&P.scheduled&&P.due){let G=AVe(P,e,m,f).map(ie=>VT(ie,P));G.length>0&&(v.push(...G),$=!0)}if($)return;if(O&&P.scheduled){if(k0(P.scheduled,m,f,P.timeEstimate)){let G=kVe(P,e);G&&v.push(VT(G,P))}else if(k){let G=kVe(P,e),ie=G?SVe(VT(G,P),P.scheduled,k,w,m,f):null;ie&&(v.push(ie),B=!0)}}let ue=R&&(O||A)&&QFt(P);if(R&&!ue&&P.due){if(k0(P.due,m,f)){let G=bVe(P,e);G&&v.push(VT(G,P))}else if(k&&!((B||F)&&!mr(P.due))){let G=bVe(P,e),ie=G?SVe(VT(G,P),P.due,k,w,m,f):null;ie&&v.push(ie)}}};for(let P of r)try{if(P.recurrence){let O=n,z=a,R=!0,A=!1,F=!1;if((o||l||c)&&m&&f&&P.scheduled){let $=tOt(P,m,f,e,{showCompletedRecurringInstances:l,showSkippedRecurringInstances:c,showProjectedRecurringInstances:o,showScheduledToDueSpan:i,materializedOccurrenceDates:(D=b.get(UFt(P)))!=null?D:new Set,visibleStartDate:h,visibleEndDate:g});v.push(...$),o&&(A=$.length>0,F=!!(k&&$.some(B=>de(B.start)===k)),O=!1,R=!1,$.some(B=>B.extendedProps.eventType==="scheduledToDueSpan")&&(z=!1))}S(P,O,R,z,A,F)}else S(P,n,!0);if(s&&P.timeEntries){let O=VFt(P,e);for(let z of O)k0(z.start,m,f)&&v.push(VT(z,P))}}catch(O){zd.warn(`[TaskNotes][Calendar] Error processing task "${P.title}" (${P.path}):`,{category:"provider",operation:"processing-task",error:O})}if(d&&e.icsSubscriptionService){let P=e.icsSubscriptionService.getAllEvents();for(let O of P)if(k0(O.start,m,f)){let z=nJ(O,e);z&&v.push(z)}}if(u&&m&&f){let P=await sOt(e,m,f);v.push(...P)}return v}async function RVe(r,e,t,n,a){if(t){new Zn.Notice("Timeblocks must have specific times. Please select a time range in week or day view.");return}let i=M(r,"yyyy-MM-dd"),s=M(r,"HH:mm"),o=M(e,"HH:mm");new Bk(n.app,n,{date:i,startTime:s,endTime:o,onCreated:a}).open()}async function FVe(r,e,t,n){if(t){new Zn.Notice(n.i18n.translate("modals.timeEntry.mustHaveSpecificTime"));return}try{let i=(await n.cacheManager.getAllTasks()).filter(s=>!s.archived);if(i.length===0){new Zn.Notice(n.i18n.translate("modals.timeEntry.noTasksAvailable"));return}Fn(n,i,s=>{(async()=>{if(s)try{let o=Math.round((e.getTime()-r.getTime())/6e4),l={startTime:r.toISOString(),endTime:e.toISOString(),description:""},c=[...s.timeEntries||[],l].map(d=>{let u={...d};return delete u.duration,u});await n.taskService.updateTask(s,{timeEntries:c}),n.emitter.trigger(ii),new Zn.Notice(n.i18n.translate("modals.timeEntry.created",{taskTitle:s.title,duration:o.toString()}))}catch(o){zd.error("Error creating time entry:",{category:"provider",operation:"creating-time-entry",error:o}),new Zn.Notice(n.i18n.translate("modals.timeEntry.createFailed"))}})()})}catch(a){zd.error("Error opening task selector for time entry:",{category:"provider",operation:"opening-task-selector-time-entry",error:a}),new Zn.Notice(n.i18n.translate("modals.timeEntry.createFailed"))}}async function OVe(r,e,t,n,a=!1){try{let i=r.event.start,s=r.event.end;if(!i||!s){r.revert();return}let o=M(i,"yyyy-MM-dd"),l=M(i,"HH:mm"),c=M(s,"HH:mm");if(a){await vfe(n.app,o,e,l,c),r.revert(),n.emitter.trigger(ii),new Zn.Notice("Timeblock duplicated successfully");return}await K2(n.app,e.id,t,o,l,c),new Zn.Notice("Timeblock moved successfully")}catch(i){zd.error("Error moving timeblock:",{category:"provider",operation:"moving-timeblock",error:i}),new Zn.Notice(`Failed to move timeblock: ${xVe(i)}`),r.revert()}}async function LVe(r,e,t,n){try{let a=r.event.start,i=r.event.end;if(!a||!i){r.revert();return}let s=M(a,"HH:mm"),o=M(i,"HH:mm");await K2(n.app,e.id,t,t,s,o),new Zn.Notice("Timeblock duration updated")}catch(a){zd.error("Error resizing timeblock:",{category:"provider",operation:"resizing-timeblock",error:a}),new Zn.Notice(`Failed to resize timeblock: ${xVe(a)}`),r.revert()}}async function Y1(r,e,t,n,a){new U1(n.app,n,r,e,t,a).open()}function zVe(r,e){r.setAttribute("data-timeblock-id",e.id||""),r.classList.remove("tn-static-border-style-dashed-12296c91"),r.classList.add("tn-static-border-style-solid-11080b69"),r.classList.add("tn-static-border-width-2px-a1222254"),r.classList.add("fc-timeblock-event")}function jVe(r){var t;let e=((t=r.attachments)==null?void 0:t.length)||0;return`${r.title||"Timeblock"}${r.description?` - ${r.description}`:""}${e>0?` (${e} attachment${e>1?"s":""})`:""}`}function $Ve(r,e,t,n="tasknotes-calendar"){r.addEventListener("mouseover",a=>{t.app.vault.getAbstractFileByPath(e.path)&&t.app.workspace.trigger("hover-link",{event:a,source:n,hoverParent:r,targetEl:r,linktext:e.path,sourcePath:e.path})})}async function aJ(r,e,t={}){try{let{createIfMissing:n=!0}=t;if(!(0,jd.appHasDailyNotesPluginLoaded)()){new Zn.Notice("Daily notes core plugin is not enabled. Please enable it in settings > core plugins.");return}let a=EVe(r),i=(0,jd.getAllDailyNotes)(),s=(0,jd.getDailyNote)(a,i);if(!s){if(!n){new Zn.Notice(e.i18n.translate("views.basesCalendar.notices.noDailyNoteForDate"));return}try{s=await(0,jd.createDailyNote)(a)}catch(o){let l=o instanceof Error?o.message:String(o);zd.error("Failed to create daily note:",{category:"provider",operation:"create-daily-note",error:o}),new Zn.Notice(`Failed to create daily note: ${l}`);return}}s&&await e.app.workspace.getLeaf(!1).openFile(s)}catch(n){let a=n instanceof Error?n.message:String(n);zd.error("Failed to navigate to daily note:",{category:"provider",operation:"navigate-daily-note",error:n}),new Zn.Notice(`Failed to navigate to daily note: ${a}`)}}function iJ(r,e,t,n,a=aJ){if(t!=="timeGridDay")return;let i=r.querySelector(".fc-col-header-cell-cushion")||r,s=`Go to ${M(e,"d MMMM yyyy")}`;i.setAttribute("data-navlink",""),i.setAttribute("title",s),i.setAttribute("aria-label",s),i.classList.add("tasknotes-calendar-daily-note-link"),i.dataset.tasknotesDailyNoteDate=e.toISOString(),i.matches("a")&&!i.getAttribute("href")&&i.setAttribute("href","#"),i.dataset.tasknotesDailyNoteLinkAttached!=="true"&&(i.dataset.tasknotesDailyNoteLinkAttached="true",i.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation();let l=o.currentTarget,c=l!=null&&l.dataset.tasknotesDailyNoteDate?new Date(l.dataset.tasknotesDailyNoteDate):e;a(c,n)}))}function BVe(r,e,t,n){let a=t?M(r,"yyyy-MM-dd"):M(r,"yyyy-MM-dd'T'HH:mm"),i=Math.round((e.getTime()-r.getTime())/(1e3*60)),s=!t&&i>n,o={scheduled:a};if(t){let c=Math.round((e.getTime()-r.getTime())/864e5);c>1&&(o.timeEstimate=c*1440)}else s&&(o.timeEstimate=i);return o}var Zn,jd,zd,OFt,LFt,rJ,wVe,iOt,T0=y(()=>{Wr();Yr();Me();Ct();qn();Zn=require("obsidian");pW();jd=st(iu());kq();Vo();mVe();Mc();eJ();K();eJ();zd=N({tag:"Bases/CalendarCore"}),OFt=1,LFt=1440*60*1e3;rJ=null,wVe=0,iOt=5e3});function cOt(r,e){return e?M(r,"yyyy-MM-dd"):M(r,"yyyy-MM-dd'T'HH:mm")}function G1(r){return r?r.includes(".")?r.split(".").pop()||null:r:null}function UVe(r,e){let t=it(r),n=new Date(t.getTime()+e);return mr(r)?M(n,"yyyy-MM-dd'T'HH:mm"):M(n,"yyyy-MM-dd")}function VVe(r){let{eventType:e,taskInfo:t,newStart:n,oldStart:a,allDay:i}=r;if(e==="scheduled"||e==="due")return n?{kind:"update-date-property",property:e,value:cOt(n,i)}:{kind:"revert",reason:"missing-new-start"};if(e==="scheduledToDueSpan"){if(!a)return{kind:"revert",reason:"missing-old-start"};if(!n)return{kind:"revert",reason:"missing-new-start"};let s=n.getTime()-a.getTime();return{kind:"update-scheduled-due-span",scheduled:t.scheduled?UVe(t.scheduled,s):void 0,due:t.due?UVe(t.due,s):void 0}}return{kind:"ignore",reason:"unsupported-event-type"}}function qVe(r){let{eventType:e,start:t,end:n,allDay:a}=r;return e!=="scheduled"&&e!=="recurring"?{kind:"revert",reason:"unsupported-event-type"}:!t||!n?{kind:"ignore",reason:"missing-range"}:{kind:"update-time-estimate",value:a?Math.round((n.getTime()-t.getTime())/(1440*60*1e3))*60*24:Math.round((n.getTime()-t.getTime())/(1e3*60))}}function WVe(r){return r.map(e=>{let t={...e};return delete t.duration,t})}function _y(r){return Number.isNaN(r.getTime())}function YVe(r,e){return M(r,e?"yyyy-MM-dd":"yyyy-MM-dd'T'HH:mm")}function HVe(r){if(!r.value)return null;let e=new Date(J(r.value));if(_y(e))return null;let t=new Date(e.getTime()+r.timeDiffMs);return _y(t)?null:YVe(t,r.allDay)}function GVe(r){let{frontmatter:e,startProperty:t,endProperty:n,oldStart:a,newStart:i,allDay:s}=r;if(!t)return{kind:"revert",reason:"missing-start-property"};if(!a||!i)return{kind:"revert",reason:"missing-start-date"};let o=i.getTime()-a.getTime(),l={},c=e[t];if(c){let d=HVe({value:c,timeDiffMs:o,allDay:s});if(!d)return{kind:"ignore",reason:"invalid-start-value"};l[t]=d}if(n){let d=e[n],u=HVe({value:d,timeDiffMs:o,allDay:s});u&&(l[n]=u)}return Object.keys(l).length===0?{kind:"ignore",reason:"no-date-values"}:{kind:"update-frontmatter",updates:l}}function KVe(r){let{endProperty:e,newEnd:t,allDay:n}=r;return e?t?_y(t)?{kind:"ignore",reason:"invalid-end-date"}:{kind:"update-frontmatter",updates:{[e]:YVe(t,n)}}:{kind:"revert",reason:"missing-end-date"}:{kind:"revert",reason:"missing-end-property"}}function ZVe(r){let{timeEntries:e,timeEntryIndex:t,oldStart:n,newStart:a,newEnd:i}=r;if(typeof t!="number")return{kind:"revert",reason:"missing-index"};if(!a||!i)return{kind:"revert",reason:"missing-new-range"};if(!n)return{kind:"revert",reason:"missing-old-start"};let s=WVe(e!=null?e:[]),o=s[t];if(!o)return{kind:"ignore",reason:"missing-entry"};if(!o.endTime)return{kind:"revert",reason:"missing-entry-end"};let l=new Date(o.startTime),c=new Date(o.endTime);if(_y(l)||_y(c))return{kind:"revert",reason:"invalid-date"};let d=a.getTime()-n.getTime();return o.startTime=new Date(l.getTime()+d).toISOString(),o.endTime=new Date(c.getTime()+d).toISOString(),{kind:"update-time-entries",timeEntries:s}}function QVe(r){let{timeEntries:e,timeEntryIndex:t,newStart:n,newEnd:a}=r;if(typeof t!="number")return{kind:"revert",reason:"missing-index"};if(!n||!a)return{kind:"revert",reason:"missing-new-range"};if(_y(n)||_y(a))return{kind:"revert",reason:"invalid-date"};let i=WVe(e!=null?e:[]),s=i[t];return s?(s.startTime=n.toISOString(),s.endTime=a.toISOString(),{kind:"update-time-entries",timeEntries:i}):{kind:"ignore",reason:"missing-entry"}}function sJ(r){let{start:e,allDay:t,timezone:n,requireEnd:a=!1}=r,{end:i}=r;if(!e)return{kind:"revert",reason:"missing-start"};if(!i){if(a)return{kind:"revert",reason:"missing-end"};i=new Date(e),t?i.setDate(i.getDate()+1):i.setHours(i.getHours()+1)}return t?{kind:"update-provider-event",updates:{start:{date:M(e,"yyyy-MM-dd")},end:{date:M(i,"yyyy-MM-dd")}}}:{kind:"update-provider-event",updates:{start:{dateTime:M(e,"yyyy-MM-dd'T'HH:mm:ss"),timeZone:n},end:{dateTime:M(i,"yyyy-MM-dd'T'HH:mm:ss"),timeZone:n}}}}var JVe=y(()=>{Wr();Me();kr()});function uOt(r,e){if(e){let n=r.findIndex(a=>a.provider.providerId==="google"&&a.calendar.id===e);if(n>=0)return n}let t=r.findIndex(n=>n.calendar.primary);return t>=0?t:0}var vo,dOt,K1,XVe=y(()=>{vo=require("obsidian");Wr();K();dOt=N({tag:"Modals/CalendarEventCreationModal"});K1=class extends vo.Modal{constructor(t,n,a){super(t);this.writableCalendars=[];this.keyboardHandler=null;this.plugin=n,this.options=a,this.translate=n.i18n.translate.bind(n.i18n),this.writableCalendars=this.getWritableCalendars()}getWritableCalendars(){let t=[],n=this.plugin.calendarProviderRegistry;if(!n)return t;for(let a of n.getAllProviders())for(let i of a.getAvailableCalendars())t.push({provider:a,calendar:i});return t}onOpen(){let{contentEl:t}=this;t.empty(),t.addClass("tasknotes-plugin","calendar-event-creation-modal"),this.keyboardHandler=l=>{l.key==="Enter"&&(l.ctrlKey||l.metaKey)&&(l.preventDefault(),this.handleSubmit())},this.containerEl.addEventListener("keydown",this.keyboardHandler),new vo.Setting(t).setName(this.translate("modals.calendarEventCreation.heading")).setHeading();let n=t.createDiv({cls:"calendar-event-date-display"});n.createEl("strong",{text:this.translate("modals.calendarEventCreation.dateTimeLabel")});let a=this.options.allDay?M(this.options.start,"PPP"):`${M(this.options.start,"PPP p")} \u2013 ${M(this.options.end,"p")}`;n.createSpan({text:a}),new vo.Setting(t).setName(this.translate("modals.calendarEventCreation.titleLabel")).setDesc(this.translate("modals.calendarEventCreation.titleDesc")).addText(l=>{this.titleInput=l.inputEl,l.setPlaceholder(this.translate("modals.calendarEventCreation.titlePlaceholder")).onChange(()=>this.validateForm()),window.setTimeout(()=>this.titleInput.focus(),100)}),this.writableCalendars.length>1&&new vo.Setting(t).setName(this.translate("modals.calendarEventCreation.calendarLabel")).setDesc(this.translate("modals.calendarEventCreation.calendarDesc")).addDropdown(l=>{this.calendarDropdown=l.selectEl;for(let d=0;d<this.writableCalendars.length;d++){let u=this.writableCalendars[d],p=`${u.calendar.summary} (${u.provider.providerName})`;l.addOption(String(d),p)}let c=uOt(this.writableCalendars,this.plugin.settings.googleCalendarExport.targetCalendarId);l.setValue(String(c))}),new vo.Setting(t).setName(this.translate("modals.calendarEventCreation.descriptionLabel")).setDesc(this.translate("modals.calendarEventCreation.descriptionDesc")).addTextArea(l=>{this.descriptionInput=l.inputEl,l.setPlaceholder(this.translate("modals.calendarEventCreation.descriptionPlaceholder")),this.descriptionInput.rows=3}),new vo.Setting(t).setName(this.translate("modals.calendarEventCreation.locationLabel")).setDesc(this.translate("modals.calendarEventCreation.locationDesc")).addText(l=>{this.locationInput=l.inputEl,l.setPlaceholder(this.translate("modals.calendarEventCreation.locationPlaceholder"))});let i=t.createDiv({cls:"calendar-event-modal-buttons"});i.createEl("button",{text:this.translate("common.cancel")}).addEventListener("click",()=>this.close()),i.createEl("button",{text:this.translate("modals.calendarEventCreation.createButton"),cls:"mod-cta calendar-event-create-button"}).addEventListener("click",()=>{this.handleSubmit()}),this.validateForm()}validateForm(){var a;let t=this.contentEl.querySelector(".calendar-event-create-button");if(!t)return;let n=!!((a=this.titleInput)!=null&&a.value.trim());t.disabled=!n,t.style.opacity=n?"1":"0.5"}async handleSubmit(){var i,s,o,l;let t=this.titleInput.value.trim();if(!t){new vo.Notice(this.translate("modals.calendarEventCreation.titleRequired"));return}let n=this.calendarDropdown?parseInt(this.calendarDropdown.value):0,a=this.writableCalendars[n];if(!a){new vo.Notice(this.translate("modals.calendarEventCreation.noCalendarSelected"));return}try{let{start:c,end:d,allDay:u}=this.options,p=Intl.DateTimeFormat().resolvedOptions().timeZone,m={summary:t,start:u?{date:M(c,"yyyy-MM-dd")}:{dateTime:M(c,"yyyy-MM-dd'T'HH:mm:ss"),timeZone:p},end:u?{date:M(d,"yyyy-MM-dd")}:{dateTime:M(d,"yyyy-MM-dd'T'HH:mm:ss"),timeZone:p}},f=(i=this.descriptionInput)==null?void 0:i.value.trim();f&&(m.description=f);let h=(s=this.locationInput)==null?void 0:s.value.trim();h&&(m.location=h),await a.provider.createEvent(a.calendar.id,m),new vo.Notice(this.translate("modals.calendarEventCreation.success",{title:t})),(l=(o=this.options).onEventCreated)==null||l.call(o),this.close()}catch(c){dOt.error("[TaskNotes] Error creating calendar event:",{category:"provider",operation:"creating-calendar-event",error:c}),new vo.Notice(this.translate("modals.calendarEventCreation.error",{message:c instanceof Error?c.message:String(c)}))}}onClose(){this.keyboardHandler&&(this.containerEl.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=null);let{contentEl:t}=this;t.empty()}}});function oJ(r,{showNotice:e=!0,noticeHandler:t}){e&&(t==null||t(r))}var eqe,Ps,Z1=y(()=>{K();eqe=N({tag:"Utils/SafeAsync"});Ps=class{static async execute(e,t={}){let{fallback:n,errorMessage:a="An error occurred",showNotice:i=!0,noticeHandler:s,logError:o=!0}=t;try{return await e()}catch(l){if(o&&eqe.error(a,{category:"provider",operation:"execute-safe-operation",error:l}),i){let c=l instanceof Error?l.message:String(l);oJ(`${a}: ${c}`,{showNotice:i,noticeHandler:s})}return n}}static async executeWithRetry(e,t={}){let{maxRetries:n=3,retryDelay:a=1e3,errorMessage:i="Operation failed",showNotice:s=!0,noticeHandler:o}=t,l;for(let c=0;c<=n;c++)try{return await e()}catch(d){if(l=d instanceof Error?d:new Error(String(d)),c<n){await new Promise(u=>window.setTimeout(u,a));continue}eqe.error(`${i} after ${n+1} attempts:`,{category:"provider",operation:"execute-with-retry",details:{attempts:n+1},error:l}),s&&oJ(`${i}: ${l.message}`,{showNotice:s,noticeHandler:o});return}}static async executeWithValidation(e,t,n={}){let{showNotice:a=!0,noticeHandler:i}=n;for(let s of t)if(!s.condition){a&&oJ(s.message,{showNotice:a,noticeHandler:i});return}return this.execute(e,n)}}});var Cp,qT,lJ=y(()=>{Cp=require("obsidian");Wr();Z1();Uu();qT=class extends Cp.Modal{constructor(t,n,a){super(t);this.title="";this.folder="";this.template="";this.useTemplate=!1;this.keyboardHandler=null;this.plugin=n,this.options=a,this.translate=n.i18n.translate.bind(n.i18n),this.title=this.generateDefaultTitle(),this.folder=this.getDefaultFolder(),this.template=this.getDefaultTemplate()}onOpen(){this.containerEl.addClass("tasknotes-plugin","ics-note-creation-modal"),this.keyboardHandler=t=>{t.key==="Enter"&&(t.ctrlKey||t.metaKey)&&(t.preventDefault(),this.handleCreate())},this.containerEl.addEventListener("keydown",this.keyboardHandler),this.createModalContent()}onClose(){this.keyboardHandler&&(this.containerEl.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=null),this.contentEl.empty()}createModalContent(){let{contentEl:t}=this;t.empty(),t.createDiv("modal-header").createEl("h2",{text:this.translate("modals.icsNoteCreation.heading")});let a=t.createDiv("ics-event-preview");this.createEventPreview(a),new Cp.Setting(t).setName(this.translate("modals.icsNoteCreation.titleLabel")).setDesc(this.translate("modals.icsNoteCreation.titleDesc")).addText(l=>{this.titleInput=l.inputEl,l.setValue(this.title).onChange(c=>{this.title=c,this.updatePreview()})}),new Cp.Setting(t).setName(this.translate("modals.icsNoteCreation.folderLabel")).setDesc(this.translate("modals.icsNoteCreation.folderDesc")).addText(l=>{this.folderInput=l.inputEl,l.setValue(this.folder).setPlaceholder(this.translate("modals.icsNoteCreation.folderPlaceholder")).onChange(c=>{this.folder=c,this.updatePreview()})}),this.templateContainer=t.createDiv("template-settings"),this.createTemplateSettings(),this.previewContainer=t.createDiv("content-preview"),this.updatePreview();let i=t.createDiv("modal-button-container"),s=i.createEl("button",{text:this.translate("modals.icsNoteCreation.createButton"),cls:"mod-cta"});s.onclick=l=>{l.preventDefault(),l.stopPropagation(),this.handleCreate()};let o=i.createEl("button",{text:this.translate("common.cancel")});o.onclick=l=>{l.preventDefault(),l.stopPropagation(),this.close()},window.setTimeout(()=>{var l;return(l=this.titleInput)==null?void 0:l.focus()},100)}createEventPreview(t){let{icsEvent:n,subscriptionName:a}=this.options;t.createEl("h3",{text:n.title});let i=t.createDiv("event-details");if(n.start){let o=n.allDay&&/^\d{4}-\d{2}-\d{2}$/.test(n.start)?n.start+"T00:00:00":n.start,l=new Date(o),c=i.createDiv();c.createEl("strong",{text:this.translate("modals.icsNoteCreation.startLabel")}),c.appendText(M(l,"PPPp"))}if(n.end&&!n.allDay){let o=/^\d{4}-\d{2}-\d{2}$/.test(n.end)?n.end+"T00:00:00":n.end,l=new Date(o),c=i.createDiv();c.createEl("strong",{text:this.translate("modals.icsNoteCreation.endLabel")}),c.appendText(M(l,"PPPp"))}if(n.location){let o=i.createDiv();o.createEl("strong",{text:this.translate("modals.icsNoteCreation.locationLabel")}),o.appendText(n.location)}let s=i.createDiv();s.createEl("strong",{text:this.translate("modals.icsNoteCreation.calendarLabel")}),s.appendText(a)}createTemplateSettings(){this.templateContainer.empty(),new Cp.Setting(this.templateContainer).setName(this.translate("modals.icsNoteCreation.useTemplateLabel")).setDesc(this.translate("modals.icsNoteCreation.useTemplateDesc")).addToggle(t=>{t.setValue(this.useTemplate).onChange(n=>{this.useTemplate=n,this.updateTemplateInput(),this.updatePreview()})}),this.useTemplate&&new Cp.Setting(this.templateContainer).setName(this.translate("modals.icsNoteCreation.templatePathLabel")).setDesc(this.translate("modals.icsNoteCreation.templatePathDesc")).addText(t=>{this.templateInput=t.inputEl,t.setValue(this.template).setPlaceholder(this.translate("modals.icsNoteCreation.templatePathPlaceholder")).onChange(n=>{this.template=n,this.updatePreview()})})}updateDefaultsForContentType(){var t,n;this.folder=((t=this.plugin.settings.icsIntegration)==null?void 0:t.defaultNoteFolder)||"",this.template=((n=this.plugin.settings.icsIntegration)==null?void 0:n.defaultNoteTemplate)||"",this.folderInput&&(this.folderInput.value=this.folder),this.templateInput&&(this.templateInput.value=this.template)}updateTemplateInput(){this.createTemplateSettings()}updatePreview(){if(!this.previewContainer)return;this.previewContainer.empty(),this.previewContainer.createEl("h4",{text:"Summary"});let t=this.previewContainer.createDiv("preview-details"),n=t.createDiv();n.createEl("strong",{text:"Type: "}),n.appendText("Note");let a=t.createDiv();a.createEl("strong",{text:"Title: "}),a.appendText(this.title||"Untitled");let i=t.createDiv();if(i.createEl("strong",{text:"Folder: "}),i.appendText(this.folder||"Vault root"),this.useTemplate&&this.template){let c=t.createDiv();c.createEl("strong",{text:"Template: "}),c.appendText(this.template)}else{let c=t.createDiv();c.createEl("strong",{text:"Template: "}),c.appendText("Default format")}let s=this.previewContainer.createDiv("template-variables");s.createEl("h5",{text:"Available template variables"});let o=["{{title}}","{{icsEventTitle}}","{{icsEventStart}}","{{icsEventEnd}}","{{icsEventLocation}}","{{icsEventDescription}}","{{icsEventUrl}}","{{icsEventSubscription}}","{{icsEventId}}","{{date}}","{{time}}"],l=s.createDiv("variables-list");o.forEach(c=>{l.createSpan({text:c,cls:"template-variable"})})}generateDefaultTitle(){let{icsEvent:t}=this.options,n=t.allDay&&/^\d{4}-\d{2}-\d{2}$/.test(t.start)?t.start+"T00:00:00":t.start,a=new Date(n);return`${t.title} - ${M(a,"PPP")}`}getDefaultFolder(){var t;return((t=this.plugin.settings.icsIntegration)==null?void 0:t.defaultNoteFolder)||""}getDefaultTemplate(){var t;return((t=this.plugin.settings.icsIntegration)==null?void 0:t.defaultNoteTemplate)||""}async handleCreate(){await Ps.executeWithValidation(async()=>{var a,i;let{icsEvent:t}=this.options,n=await this.plugin.icsNoteService.createNoteFromICS(t,{title:this.title,folder:this.folder||void 0,template:this.useTemplate&&this.template?this.template:void 0});new Cp.Notice(`Note created: ${this.title}`),(i=(a=this.options).onContentCreated)==null||i.call(a,n.file,n.noteInfo),this.close()},[{condition:!!this.title.trim(),message:"Title is required"}],{errorMessage:"Failed to create note from ICS event",noticeHandler:Xe})}}});var Lr,cJ,$d,w0=y(()=>{Lr=require("obsidian");lJ();yE();Z1();K();Uu();cJ=N({tag:"Modals/ICSEventInfoModal"}),$d=class extends Lr.Modal{constructor(t,n,a,i){super(t);this.relatedNotes=[];this.plugin=n,this.icsEvent=a,this.subscriptionName=i,this.translate=n.i18n.translate.bind(n.i18n)}async onOpen(){await this.renderContent()}async renderContent(){let{contentEl:t}=this;t.empty(),await this.loadRelatedNotes(),new Lr.Setting(t).setName(this.translate("modals.icsEventInfo.calendarEventHeading")).setHeading(),new Lr.Setting(t).setName(this.translate("modals.icsEventInfo.titleLabel")).setDesc(this.icsEvent.title||this.translate("ui.icsCard.untitledEvent")),this.subscriptionName&&new Lr.Setting(t).setName(this.translate("modals.icsEventInfo.calendarLabel")).setDesc(this.subscriptionName);let n=this.icsEvent.allDay&&/^\d{4}-\d{2}-\d{2}$/.test(this.icsEvent.start)?this.icsEvent.start+"T00:00:00":this.icsEvent.start,a=new Date(n),i=a.toLocaleDateString("en-US",{weekday:"long",year:"numeric",month:"long",day:"numeric"});if(!this.icsEvent.allDay&&(i+=` at ${a.toLocaleTimeString()}`,this.icsEvent.end)){let s=/^\d{4}-\d{2}-\d{2}$/.test(this.icsEvent.end)?this.icsEvent.end+"T00:00:00":this.icsEvent.end,o=new Date(s);i+=` - ${o.toLocaleTimeString()}`}new Lr.Setting(t).setName(this.translate("modals.icsEventInfo.dateTimeLabel")).setDesc(i),this.icsEvent.location&&new Lr.Setting(t).setName(this.translate("modals.icsEventInfo.locationLabel")).setDesc(this.icsEvent.location),this.icsEvent.description&&new Lr.Setting(t).setName(this.translate("modals.icsEventInfo.descriptionLabel")).setDesc(this.icsEvent.description),this.icsEvent.url&&new Lr.Setting(t).setName(this.translate("modals.icsEventInfo.urlLabel")).descEl.createEl("a",{cls:"external-link",href:this.icsEvent.url,text:this.icsEvent.url}).setAttribute("target","_blank"),new Lr.Setting(t).setName(this.translate("modals.icsEventInfo.relatedNotesHeading")).setHeading(),this.relatedNotes.length===0?new Lr.Setting(t).setDesc(this.translate("modals.icsEventInfo.noRelatedItems")):this.relatedNotes.forEach(s=>{let l=this.isTaskNote(s)?this.translate("modals.icsEventInfo.typeTask"):this.translate("modals.icsEventInfo.typeNote");new Lr.Setting(t).setName(s.title).setDesc(`Type: ${l}`).addButton(c=>{c.setButtonText("Open").onClick(async()=>{await this.safeOpenFile(s.path),this.close()})})}),new Lr.Setting(t).setName(this.translate("modals.icsEventInfo.actionsHeading")).setHeading(),new Lr.Setting(t).setName(this.translate("modals.icsEventInfo.createFromEventLabel")).setDesc(this.translate("modals.icsEventInfo.createFromEventDesc")).addButton(s=>{s.setButtonText("Create note").onClick(()=>{this.openCreationModal()})}).addButton(s=>{s.setButtonText("Create task").onClick(async()=>{await this.createTaskDirectly()})}),new Lr.Setting(t).setName(this.translate("modals.icsEventInfo.linkExistingLabel")).setDesc(this.translate("modals.icsEventInfo.linkExistingDesc")).addButton(s=>{s.setButtonText("Link note").onClick(()=>{this.linkExistingNote()})}).addButton(s=>{s.setButtonText("Refresh").onClick(()=>{this.refreshRelatedNotes()})})}async loadRelatedNotes(){let t=await Ps.execute(()=>this.plugin.icsNoteService.findRelatedNotes(this.icsEvent),{fallback:[],errorMessage:"Failed to load related notes",showNotice:!1});this.relatedNotes=t||[]}openCreationModal(){try{new qT(this.app,this.plugin,{icsEvent:this.icsEvent,subscriptionName:this.subscriptionName||"Unknown Calendar",onContentCreated:(n,a)=>{(async()=>(new Lr.Notice(this.translate("notices.icsNoteCreatedSuccess")),this.refreshRelatedNotes(),await this.safeOpenFile(n.path)))()}}).open()}catch(t){cJ.error("Error opening creation modal:",{category:"provider",operation:"opening-creation-modal",error:t}),new Lr.Notice(this.translate("notices.icsCreationModalOpenFailed"))}}async linkExistingNote(){await Ps.execute(async()=>{Tm(this.plugin,t=>{t instanceof Lr.TAbstractFile&&Ps.execute(async()=>{await this.plugin.icsNoteService.linkNoteToICS(t.path,this.icsEvent),new Lr.Notice(this.translate("notices.icsNoteLinkSuccess",{fileName:t.name})),this.refreshRelatedNotes()},{errorMessage:"Failed to link note",noticeHandler:Xe})},{placeholder:"Search notes to link...",filter:"markdown"})},{errorMessage:"Failed to open note selection",noticeHandler:Xe})}async createTaskDirectly(){await Ps.execute(async()=>{let t=await this.plugin.icsNoteService.createTaskFromICS(this.icsEvent);new Lr.Notice(this.translate("notices.icsTaskCreatedSuccess",{taskTitle:t.taskInfo.title})),await this.safeOpenFile(t.file.path),this.refreshRelatedNotes()},{errorMessage:"Failed to create task from ICS event",noticeHandler:Xe})}async refreshRelatedNotes(){await Ps.execute(async()=>{await this.loadRelatedNotes(),await this.renderContent(),new Lr.Notice(this.translate("notices.icsRelatedItemsRefreshed"))},{errorMessage:"Failed to refresh related notes",noticeHandler:Xe})}isTaskNote(t){var a;let n=this.plugin.settings.taskTag;return((a=t.tags)==null?void 0:a.includes(n))||!1}async safeOpenFile(t){try{let n=this.app.vault.getAbstractFileByPath(t);n instanceof Lr.TFile?await this.app.workspace.getLeaf().openFile(n):(new Lr.Notice(this.translate("notices.icsFileNotFound")),cJ.error("Invalid file path or file not found:",{category:"provider",operation:"invalid-file-path-or-file-not-found",details:{value:t}}))}catch(n){cJ.error("Error opening file:",{category:"provider",operation:"opening-file",error:n}),new Lr.Notice(this.translate("notices.icsFileOpenFailed"))}}onClose(){let{contentEl:t}=this;t.empty()}}});var Ga,pOt,WT,dJ=y(()=>{Ga=require("obsidian");w0();lJ();yE();Z1();Pu();K();Uu();pOt=N({tag:"Components/ICSEventContextMenu"}),WT=class{constructor(e){this.menu=new Ea,this.options=e,this.buildMenu()}t(e,t){return this.options.plugin.i18n.translate(e,t)}getLocale(){return this.options.plugin.i18n.getCurrentLocale()||"en"}buildMenu(){let{icsEvent:e,plugin:t,subscriptionName:n}=this.options;this.menu.addItem(a=>a.setTitle(this.t("contextMenus.ics.showDetails")).setIcon("info").onClick(()=>{new $d(t.app,t,e,n).open()})),this.menu.addSeparator(),this.menu.addItem(a=>a.setTitle(this.t("contextMenus.ics.createTask")).setIcon("check-circle").onClick(async()=>{await this.createTaskFromEvent()})),this.menu.addItem(a=>a.setTitle(this.t("contextMenus.ics.createNote")).setIcon("file-plus").onClick(()=>{this.createNoteFromEvent()})),this.menu.addItem(a=>a.setTitle(this.t("contextMenus.ics.linkNote")).setIcon("link").onClick(()=>{this.linkExistingNote()})),this.menu.addSeparator(),this.menu.addItem(a=>a.setTitle(this.t("contextMenus.ics.copyTitle")).setIcon("copy").onClick(async()=>{try{await navigator.clipboard.writeText(e.title),new Ga.Notice(this.t("contextMenus.ics.notices.copyTitleSuccess"))}catch(i){new Ga.Notice(this.t("contextMenus.ics.notices.copyFailure"))}})),e.location&&this.menu.addItem(a=>a.setTitle(this.t("contextMenus.ics.copyLocation")).setIcon("map-pin").onClick(async()=>{try{await navigator.clipboard.writeText(e.location||""),new Ga.Notice(this.t("contextMenus.ics.notices.copyLocationSuccess"))}catch(i){new Ga.Notice(this.t("contextMenus.ics.notices.copyFailure"))}})),e.url&&this.menu.addItem(a=>a.setTitle(this.t("contextMenus.ics.copyUrl")).setIcon("external-link").onClick(async()=>{try{await navigator.clipboard.writeText(e.url||""),new Ga.Notice(this.t("contextMenus.ics.notices.copyUrlSuccess"))}catch(i){new Ga.Notice(this.t("contextMenus.ics.notices.copyFailure"))}})),this.menu.addItem(a=>a.setTitle(this.t("contextMenus.ics.copyMarkdown")).setIcon("file-text").onClick(async()=>{let i=this.formatEventAsMarkdown();try{await navigator.clipboard.writeText(i),new Ga.Notice(this.t("contextMenus.ics.notices.copyMarkdownSuccess"))}catch(s){new Ga.Notice(this.t("contextMenus.ics.notices.copyFailure"))}}))}async createTaskFromEvent(){await Ps.execute(async()=>{let e=await this.options.plugin.icsNoteService.createTaskFromICS(this.options.icsEvent);new Ga.Notice(this.t("contextMenus.ics.notices.taskCreated",{title:e.taskInfo.title}));let t=this.options.plugin.app.vault.getAbstractFileByPath(e.file.path);t instanceof Ga.TFile&&await this.options.plugin.app.workspace.getLeaf().openFile(t),this.options.onUpdate&&this.options.onUpdate()},{errorMessage:this.t("contextMenus.ics.notices.taskCreateFailure"),noticeHandler:Xe})}createNoteFromEvent(){try{new qT(this.options.plugin.app,this.options.plugin,{icsEvent:this.options.icsEvent,subscriptionName:this.options.subscriptionName||this.t("contextMenus.ics.subscriptionUnknown"),onContentCreated:t=>{(async()=>(new Ga.Notice(this.t("contextMenus.ics.notices.noteCreated")),await this.options.plugin.app.workspace.getLeaf().openFile(t),this.options.onUpdate&&this.options.onUpdate()))()}}).open()}catch(e){pOt.error("Error opening creation modal:",{category:"provider",operation:"opening-creation-modal",error:e}),new Ga.Notice(this.t("contextMenus.ics.notices.creationFailure"))}}async linkExistingNote(){await Ps.execute(async()=>{Tm(this.options.plugin,e=>{e instanceof Ga.TAbstractFile&&Ps.execute(async()=>{await this.options.plugin.icsNoteService.linkNoteToICS(e.path,this.options.icsEvent),new Ga.Notice(this.t("contextMenus.ics.notices.linkSuccess",{name:e.name})),this.options.onUpdate&&this.options.onUpdate()},{errorMessage:this.t("contextMenus.ics.notices.linkFailure"),noticeHandler:Xe})},{placeholder:"Search notes to link...",filter:"markdown"})},{errorMessage:this.t("contextMenus.ics.notices.linkSelectionFailure"),noticeHandler:Xe})}formatEventAsMarkdown(){let{icsEvent:e,subscriptionName:t}=this.options,n=[],a=e.title||this.t("contextMenus.ics.markdown.titleFallback");n.push(`## ${a}`),n.push(""),t&&n.push(this.t("contextMenus.ics.markdown.calendar",{value:t}));let i=this.getLocale(),s=e.allDay&&/^\d{4}-\d{2}-\d{2}$/.test(e.start)?e.start+"T00:00:00":e.start,o=new Date(s),l=new Intl.DateTimeFormat(i,{weekday:"long",year:"numeric",month:"long",day:"numeric"}),c=new Intl.DateTimeFormat(i,{hour:"numeric",minute:"2-digit"}),d=l.format(o);if(!e.allDay&&(d+=this.t("contextMenus.ics.markdown.at",{time:c.format(o)}),e.end)){let u=/^\d{4}-\d{2}-\d{2}$/.test(e.end)?e.end+"T00:00:00":e.end,p=new Date(u);d+=` - ${c.format(p)}`}return n.push(this.t("contextMenus.ics.markdown.date",{value:d})),e.location&&n.push(this.t("contextMenus.ics.markdown.location",{value:e.location})),e.description&&(n.push(""),n.push(this.t("contextMenus.ics.markdown.descriptionHeading")),n.push(e.description)),e.url&&(n.push(""),n.push(this.t("contextMenus.ics.markdown.url",{value:e.url}))),n.join(`
|
||
`)}show(e){this.menu.showAtMouseEvent(e)}showAtElement(e){this.menu.showAtPosition({x:e.getBoundingClientRect().left,y:e.getBoundingClientRect().bottom+4})}}});function tqe(r,e){return r.initialDate===e.initialDate&&r.initialDateProperty===e.initialDateProperty&&r.initialDateStrategy===e.initialDateStrategy}var rqe=y(()=>{});function S0(r){if(typeof r=="string"){let e=r.trim(),t=e.toLowerCase();if(!e||t==="null"||t==="undefined")return null;if(mr(e)){let n=it(e);return Number.isNaN(n.getTime())?null:{value:M(n,"yyyy-MM-dd'T'HH:mm"),isAllDay:!1}}try{let n=kt(e);return{value:ce(n),isAllDay:!0}}catch(n){return null}}if(typeof r=="number"){let e=new Date(r);return Number.isNaN(e.getTime())?null:{value:ce(e),isAllDay:!0}}return r instanceof Date?Number.isNaN(r.getTime())?null:r.getHours()!==0||r.getMinutes()!==0||r.getSeconds()!==0||r.getMilliseconds()!==0?{value:M(r,"yyyy-MM-dd'T'HH:mm"),isAllDay:!1}:{value:ce(r),isAllDay:!0}:null}function nqe(r){return typeof r.value=="string"?r.value:M(r.value,"yyyy-MM-dd'T'HH:mm")}function mOt(r,e,t,n){if(e){let a=n(r,e);if(typeof a=="string"&&a.trim())return a.trim()}return t.basename||t.name||t.path}function aqe({entry:r,file:e,startDateProperty:t,endDateProperty:n,titleProperty:a,getPropertyValue:i}){if(!e)return null;let s=S0(i(r,t));if(!s)return null;let o=nqe(s),l,c=s.isAllDay;if(n){let d=S0(i(r,n));d&&(l=nqe(d),c=d.isAllDay)}return{id:`property-${e.path}`,title:mOt(r,a,e,i),start:o,end:l,allDay:s.isAllDay&&(l?c:!0),backgroundColor:"var(--color-accent)",borderColor:"var(--color-accent)",textColor:"var(--text-on-accent)",editable:!0,extendedProps:{eventType:"property-based",filePath:e.path,file:e,basesEntry:r}}}var uJ=y(()=>{Wr();Me()});function iqe({viewOptions:r,taskNotes:e,entries:t,getEntryPropertyValue:n,getContextPropertyValue:a,mapPropertyToTaskField:i}){var o;if(r.initialDate){let l=S0(r.initialDate);return(o=l==null?void 0:l.value)!=null?o:r.initialDate}if(!r.initialDateProperty)return;let s=fOt({propertyId:r.initialDateProperty,taskNotes:e,entries:t,getEntryPropertyValue:n,mapPropertyToTaskField:i});if(s.length===0){let l=a?pJ(a(r.initialDateProperty)):null;return l==null?void 0:l.value}return r.initialDateStrategy==="earliest"?s.reduce((l,c)=>c.compare.getTime()<l.compare.getTime()?c:l).value:r.initialDateStrategy==="latest"?s.reduce((l,c)=>c.compare.getTime()>l.compare.getTime()?c:l).value:s[0].value}function fOt({propertyId:r,taskNotes:e,entries:t,getEntryPropertyValue:n,mapPropertyToTaskField:a}){var o,l;let i=[];if(t&&n)for(let c of t){let d=pJ(n(c,r));d&&i.push(d)}if(i.length>0)return i;let s=a(r);for(let c of e){let d=c,u=c.customProperties,p=(l=(o=d[s])!=null?o:u==null?void 0:u[s])!=null?l:u==null?void 0:u[r],m=pJ(p);m&&i.push(m)}return i}function pJ(r){let e=S0(r);if(!e)return null;let t=e.isAllDay?kt(e.value):new Date(e.value);return Number.isNaN(t.getTime())?null:{compare:t,value:e.value}}function sqe(r){return{initialDate:r.initialDate,initialDateProperty:r.initialDateProperty,initialDateStrategy:r.initialDateStrategy}}var oqe=y(()=>{Me();uJ()});function yOt(r){return typeof r=="object"&&r!==null}function vOt(r){let e=r.split(".");return e.length>1&&["note","file","formula"].includes(e[0])?e.slice(1).join("."):r}function kOt(r,e){if(Object.prototype.hasOwnProperty.call(r,e))return r[e];let t=vOt(e);return t!==e&&Object.prototype.hasOwnProperty.call(r,t)?r[t]:null}function mJ(r,e=new WeakSet){return r===void 0||typeof r=="function"||typeof r=="symbol"?null:typeof r=="bigint"?r.toString():r instanceof Date?r.toISOString():Array.isArray(r)?r.map(t=>mJ(t,e)):yOt(r)?e.has(r)?"[Circular]":(e.add(r),Object.keys(r).sort().reduce((t,n)=>(t[n]=mJ(r[n],e),t),{})):r}function lqe(r){var n,a,i;let e=new Set,t=s=>{if(typeof s!="string")return;let o=s.trim();o&&e.add(o)};for(let s of hOt)t((a=(n=r.mapField(s))!=null?n:gOt[s])!=null?a:s);t("tags"),t("archived");for(let s of(i=r.visiblePropertyIds)!=null?i:[])t(s);return r.showPropertyBasedEvents&&(t(r.startDateProperty),t(r.endDateProperty),t(r.titleProperty)),Array.from(e)}function cqe(r,e){let t=r.map(n=>{let a=n.properties||n.frontmatter||{},i=e.map(s=>[s,mJ(kOt(a,s))]);return{path:n.path||"",values:i}});return JSON.stringify({propertyIds:e,rows:t})}function dqe(r){return r.map(e=>{var t,n;return(n=(t=e.file)==null?void 0:t.path)!=null?n:""}).join("\0")}var hOt,gOt,uqe=y(()=>{hOt=["title","status","priority","due","scheduled","contexts","projects","timeEstimate","completedDate","recurrence","recurrenceAnchor","timeEntries","completeInstances","skippedInstances","blockedBy","icsEventId","googleCalendarEventId","reminders","sortOrder"],gOt={completeInstances:"complete_instances",recurrenceAnchor:"recurrence_anchor",skippedInstances:"skipped_instances"}});function TOt(r){return typeof r=="object"&&r!==null}function fJ(r){let e=[];for(let t of r!=null?r:[]){if(typeof t!="string")continue;let n=t.trim();n&&e.push(n)}return e.sort()}function hJ(r,e){if(!r||typeof r.get!="function")return;let t=r.get(e);if(t!=null)return t;let n=r.get("options");if(TOt(n))return n[e]}function gJ(r,e,t){let n=hJ(r,e);return n==null?t:n}function wOt(r={}){return[...bOt,...fJ(r.icsCalendarIds).map(e=>`showICS_${e}`),...fJ(r.googleCalendarIds).map(e=>`showGoogleCalendar_${e}`),...fJ(r.microsoftCalendarIds).map(e=>`showMicrosoftCalendar_${e}`)]}function pqe(r){if(!r.config||typeof r.config.get!="function")return"";let e=wOt({icsCalendarIds:r.icsCalendarIds,googleCalendarIds:r.googleCalendarIds,microsoftCalendarIds:r.microsoftCalendarIds});return JSON.stringify(e.map(t=>hJ(r.config,t)))}var bOt,yJ=y(()=>{bOt=["showScheduled","showDue","showScheduledToDueSpan","showRecurring","showCompletedRecurringInstances","showSkippedRecurringInstances","showTimeEntries","showTimeblocks","showPropertyBasedEvents","showOverdueOnToday","calendarView","heightMode","customDayCount","listDayCount","slotMinTime","slotMaxTime","slotDuration","snapDuration","firstDay","weekNumbers","nowIndicator","showWeekends","showAllDaySlot","showTimeGrid","showTodayHighlight","todayColumnWidthMultiplier","selectMirror","timeFormat","scrollTime","eventMinHeight","slotEventOverlap","eventMaxStack","dayMaxEvents","dayMaxEventRows","startDateProperty","endDateProperty","titleProperty","initialDate","initialDateProperty","initialDateStrategy","createDailyNotesFromDateLinks"]});function SOt(r,e){return e==="google"?r.subscriptionId.replace("google-",""):e==="microsoft"?r.subscriptionId.replace("microsoft-",""):r.subscriptionId}function xOt(r,e,t){return(t==null?void 0:t.get(SOt(r,e)))!==!1}function Q1({events:r,provider:e,plugin:t,toggles:n,relatedNoteCountsByEventId:a,createEvent:i=nJ}){let s=[];for(let o of r){if(!xOt(o,e,n))continue;let l=i(o,t,{relatedNoteCount:a==null?void 0:a.get(o.id)});l&&s.push(l)}return s}var mqe=y(()=>{T0()});function fqe(r,e){return`${r.i18n.translate("modals.icsEventInfo.relatedNotesHeading")}: ${e}`}function EOt(r,e,t){let n=typeof t=="number"&&t>0?t:0,a=r.querySelector(".ics-card__related-note-indicator");if(!n){a==null||a.remove();return}let i=a||r.createSpan({cls:"ics-card__related-note-indicator"});i.dataset.relatedNoteCount=String(n),i.setAttribute("aria-label",fqe(e,n)),(0,x0.setIcon)(i,"file-text"),(0,x0.setTooltip)(i,fqe(e,n),{placement:"top"})}function DOt(r,e,t){var a;if(t!=null&&t.name)return t.name;let n=(a=e.calendarProviderRegistry)==null?void 0:a.findProviderForEvent(r);if(n){let{calendarId:i}=n.extractEventIds(r),s=n.getAvailableCalendars().find(o=>o.id===i||i==="primary"&&o.primary===!0);return(s==null?void 0:s.summary)||n.providerName}return e.i18n.translate("ui.icsCard.calendarFallback")}function POt(r,e){try{if(!r.start)return"";let t=new Date(r.start);if(r.allDay)return e.i18n.translate("ui.icsCard.allDay");let n=e.settings.calendarViewSettings.timeFormat,a=em(t,n);if(r.end){let i=new Date(r.end),s=em(i,n);return`${a} \u2013 ${s}`}return a}catch(t){return""}}function hqe(r,e,t={}){var v;let n={...COt,...t},a=activeWindow.createDiv();a.className="task-card task-card--ics",a.dataset.key=r.id,n.relatedNoteCount&&n.relatedNoteCount>0&&(a.classList.add("has-related-note","task-card--ics-has-related-note"),a.dataset.relatedNoteCount=String(n.relatedNoteCount));let i=(v=e.icsSubscriptionService)==null?void 0:v.getSubscriptions().find(b=>b.id===r.subscriptionId),s=r.color||(i==null?void 0:i.color)||"var(--color-accent)",o=DOt(r,e,i),l=a.createDiv({cls:"task-card__main-row"}),c=l.createSpan({cls:"ics-card__icon"}),d=c.createDiv({attr:{"aria-label":e.i18n.translate("ui.icsCard.calendarEvent")}});(0,x0.setIcon)(d,"calendar");let u=c;u.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),u.classList.add("tn-static-display-inline-flex-f984c520"),u.classList.remove("tn-static-width-100-0466783d","tn-static-width-12px-fbf353fb","tn-static-width-1px-aa77e27e","tn-static-width-200px-2acaf3b5","tn-static-width-60px-bd09c419","tn-static-width-80px-8573bae3"),u.classList.add("tn-static-width-16px-7375d50b"),u.classList.remove("tn-static-display-flex-4d51fc62","tn-static-height-0-7a31cef0","tn-static-height-100-62264068","tn-static-height-12px-06c0747e","tn-static-height-24px-29a11d37","tn-static-min-height-800px-997b4c8c"),u.classList.add("tn-static-height-16px-30de4aee"),u.classList.remove("tn-static-margin-right-4px-c6b76b85"),u.classList.add("tn-static-margin-right-8px-539fa9a0"),u.classList.remove("tn-static-align-items-baseline-4b95b5c7","tn-static-align-items-flex-start-0486f781"),u.classList.add("tn-static-align-items-center-7c619740"),u.classList.remove("tn-static-justify-content-flex-end-455f8cca","tn-static-justify-content-space-between-a562f4fd"),u.classList.add("tn-static-justify-content-center-03c4bb6f"),u.classList.add("tn-static-flex-shrink-0-6ee0661e"),d.classList.remove("tn-static-width-12px-fbf353fb","tn-static-width-16px-7375d50b","tn-static-width-1px-aa77e27e","tn-static-width-200px-2acaf3b5","tn-static-width-60px-bd09c419","tn-static-width-80px-8573bae3"),d.classList.add("tn-static-width-100-0466783d"),d.classList.remove("tn-static-display-flex-4d51fc62","tn-static-height-0-7a31cef0","tn-static-height-12px-06c0747e","tn-static-height-16px-30de4aee","tn-static-height-24px-29a11d37","tn-static-min-height-800px-997b4c8c"),d.classList.add("tn-static-height-100-62264068"),d.style.color=s;let p=l.createDiv({cls:"task-card__content"}),m=p.createDiv({cls:"task-card__title",text:r.title||e.i18n.translate("ui.icsCard.untitledEvent")});EOt(m,e,n.relatedNoteCount);let f=p.createDiv({cls:"task-card__metadata"}),h=[],g=POt(r,e);return g&&h.push(g),r.location&&h.push(r.location),h.push(o),f.textContent=h.join(" \u2022 "),a.addEventListener("click",()=>{new $d(e.app,e,r,o).open()}),a.addEventListener("contextmenu",b=>{b.preventDefault(),b.stopPropagation(),new WT({icsEvent:r,plugin:e,subscriptionName:o,onUpdate:()=>{e.app.workspace.trigger("tasknotes:refresh-views")}}).show(b)}),a.style.setProperty("--current-status-color",s),a}var x0,COt,gqe=y(()=>{x0=require("obsidian");dJ();Me();w0();COt={showDate:!0}});function vqe(r,e,t,n={}){var u,p,m;let a={...AOt,...n},i=activeWindow.createDiv();i.className="task-card task-card--property-event";let s=r.file;if(!s)return i.textContent=e.i18n.translate("ui.propertyEventCard.unknownFile"),i;i.dataset.key=`property-${s.path}`,i.dataset.filePath=s.path;let o=i.createDiv({cls:"task-card__main-row"}),l=o.createSpan({cls:"property-event-card__icon"}),c=l.createDiv();(0,yqe.setIcon)(c,"file-text"),l.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),l.classList.add("tn-static-display-inline-flex-f984c520"),l.classList.remove("tn-static-width-100-0466783d","tn-static-width-12px-fbf353fb","tn-static-width-1px-aa77e27e","tn-static-width-200px-2acaf3b5","tn-static-width-60px-bd09c419","tn-static-width-80px-8573bae3"),l.classList.add("tn-static-width-16px-7375d50b"),l.classList.remove("tn-static-display-flex-4d51fc62","tn-static-height-0-7a31cef0","tn-static-height-100-62264068","tn-static-height-12px-06c0747e","tn-static-height-24px-29a11d37","tn-static-min-height-800px-997b4c8c"),l.classList.add("tn-static-height-16px-30de4aee"),l.classList.remove("tn-static-margin-right-4px-c6b76b85"),l.classList.add("tn-static-margin-right-8px-539fa9a0"),l.classList.remove("tn-static-align-items-baseline-4b95b5c7","tn-static-align-items-flex-start-0486f781"),l.classList.add("tn-static-align-items-center-7c619740"),l.classList.remove("tn-static-justify-content-flex-end-455f8cca","tn-static-justify-content-space-between-a562f4fd"),l.classList.add("tn-static-justify-content-center-03c4bb6f"),l.classList.add("tn-static-flex-shrink-0-6ee0661e"),c.classList.remove("tn-static-width-12px-fbf353fb","tn-static-width-16px-7375d50b","tn-static-width-1px-aa77e27e","tn-static-width-200px-2acaf3b5","tn-static-width-60px-bd09c419","tn-static-width-80px-8573bae3"),c.classList.add("tn-static-width-100-0466783d"),c.classList.remove("tn-static-display-flex-4d51fc62","tn-static-height-0-7a31cef0","tn-static-height-12px-06c0747e","tn-static-height-16px-30de4aee","tn-static-height-24px-29a11d37","tn-static-min-height-800px-997b4c8c"),c.classList.add("tn-static-height-100-62264068"),c.classList.remove("tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),c.classList.add("tn-static-color-var-color-accent-d2cad743");let d=o.createDiv({cls:"task-card__content"});if(d.createDiv({cls:"task-card__title",text:s.basename||s.name}),a.showProperties&&t){let f=d.createDiv({cls:"task-card__metadata"}),h=0;try{let g=f.ownerDocument,v=((u=t.getOrder)==null?void 0:u.call(t))||[],b=(p=t.getAsPropertyId)==null?void 0:p.call(t,"startDateProperty"),k=(m=t.getAsPropertyId)==null?void 0:m.call(t,"endDateProperty");for(let w of v){if(w===b||w===k)continue;let S=r.getValue(w);if(!iE(S)){h>0&&f.appendChild(g.createTextNode(" \u2022 "));let C=t.getDisplayName(w)||w,E=f.createSpan({cls:"property-event-card__metadata-property"});E.createSpan({text:`${C}: `});let D=E.createSpan({cls:"property-event-card__metadata-value"});$I(D,S,e.app.renderContext),h++}}}catch(g){MOt.debug("[TaskNotes][PropertyEventCard] Error reading properties:",{category:"persistence",operation:"reading-properties",error:g})}h===0&&(f.textContent=s.path)}return i.addEventListener("click",f=>{let h=f.ctrlKey||f.metaKey;e.app.workspace.openLinkText(s.path,"",h)}),i.addEventListener("mouseover",f=>{e.app.workspace.trigger("hover-link",{event:f,source:"tasknotes-property-event-card",hoverParent:i,targetEl:i,linktext:s.path,sourcePath:s.path})}),i.setCssProps({"--current-status-color":"var(--color-accent)"}),i}var yqe,MOt,AOt,kqe=y(()=>{yqe=require("obsidian");sE();K();MOt=N({tag:"Ui/PropertyEventCard"}),AOt={showProperties:!0}});function Tqe(r,e,t={}){let n={..._Ot,...t},a=activeWindow.createDiv();a.className="task-card task-card--timeblock",a.dataset.key=`timeblock-${r.id}`;let i=a.createDiv({cls:"task-card__main-row"}),s=i.createSpan({cls:"timeblock-card__icon"}),o=s.createDiv();(0,bqe.setIcon)(o,"clock"),s.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),s.classList.add("tn-static-display-inline-flex-f984c520"),s.classList.remove("tn-static-width-100-0466783d","tn-static-width-12px-fbf353fb","tn-static-width-1px-aa77e27e","tn-static-width-200px-2acaf3b5","tn-static-width-60px-bd09c419","tn-static-width-80px-8573bae3"),s.classList.add("tn-static-width-16px-7375d50b"),s.classList.remove("tn-static-display-flex-4d51fc62","tn-static-height-0-7a31cef0","tn-static-height-100-62264068","tn-static-height-12px-06c0747e","tn-static-height-24px-29a11d37","tn-static-min-height-800px-997b4c8c"),s.classList.add("tn-static-height-16px-30de4aee"),s.classList.remove("tn-static-margin-right-4px-c6b76b85"),s.classList.add("tn-static-margin-right-8px-539fa9a0"),s.classList.remove("tn-static-align-items-baseline-4b95b5c7","tn-static-align-items-flex-start-0486f781"),s.classList.add("tn-static-align-items-center-7c619740"),s.classList.remove("tn-static-justify-content-flex-end-455f8cca","tn-static-justify-content-space-between-a562f4fd"),s.classList.add("tn-static-justify-content-center-03c4bb6f"),s.classList.add("tn-static-flex-shrink-0-6ee0661e"),o.classList.remove("tn-static-width-12px-fbf353fb","tn-static-width-16px-7375d50b","tn-static-width-1px-aa77e27e","tn-static-width-200px-2acaf3b5","tn-static-width-60px-bd09c419","tn-static-width-80px-8573bae3"),o.classList.add("tn-static-width-100-0466783d"),o.classList.remove("tn-static-display-flex-4d51fc62","tn-static-height-0-7a31cef0","tn-static-height-12px-06c0747e","tn-static-height-16px-30de4aee","tn-static-height-24px-29a11d37","tn-static-min-height-800px-997b4c8c"),o.classList.add("tn-static-height-100-62264068"),o.style.color=r.color||"var(--color-accent)";let l=i.createDiv({cls:"task-card__content"}),c=r.title||"Timeblock",d=`${r.startTime} - ${r.endTime}`;l.createDiv({cls:"task-card__title",text:c});let u=l.createDiv({cls:"task-card__metadata"});if(u.textContent=d,n.showDescription&&r.description){let p=l.createDiv({cls:"task-card__description",text:r.description});p.classList.remove("tn-static-font-size-0-75em-948e16e5","tn-static-font-size-0-8em-19dc7c13","tn-static-font-size-0-9em-65025e95","tn-static-font-size-1-2em-3a352995","tn-static-font-size-12px-65574819","tn-static-font-size-12px-b0cc7e05","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-margin-top-8px-f4f01e68"),p.classList.add("tn-static-font-size-var-tn-font-size-sm-0274a31d"),p.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),p.classList.add("tn-static-color-var-tn-text-muted-a90fb6f3"),p.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),p.classList.add("tn-static-margin-top-4px-96ad6099")}if(n.showAttachments&&r.attachments&&r.attachments.length>0){let p=l.createDiv({cls:"timeblock-card__attachments"});p.classList.remove("tn-static-font-size-0-75em-948e16e5","tn-static-font-size-0-8em-19dc7c13","tn-static-font-size-0-9em-65025e95","tn-static-font-size-1-2em-3a352995","tn-static-font-size-12px-65574819","tn-static-font-size-12px-b0cc7e05","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-margin-top-8px-f4f01e68"),p.classList.add("tn-static-font-size-var-tn-font-size-sm-0274a31d"),p.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),p.classList.add("tn-static-color-var-tn-text-muted-a90fb6f3"),p.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),p.classList.add("tn-static-margin-top-4px-96ad6099");let m=r.attachments.length===1?"1 attachment":`${r.attachments.length} attachments`;p.textContent=`\u{1F4CE} ${m}`}return a.addEventListener("click",p=>{n.eventDate&&n.originalDate&&Y1(r,n.eventDate,n.originalDate,e)}),r.color?a.style.setProperty("--current-status-color",r.color):a.setCssProps({"--current-status-color":"var(--color-accent)"}),a}var bqe,_Ot,wqe=y(()=>{bqe=require("obsidian");T0();_Ot={showDescription:!0,showAttachments:!0}});function J1(r,e){return`${r.i18n.translate("modals.icsEventInfo.relatedNotesHeading")}: ${e}`}function vJ(r){return typeof r=="number"&&r>0?r:0}function IOt(r,e,t){if(t<=0||r.querySelector(".ics-related-note-indicator"))return;let n=r.ownerDocument,a=Ne(n,"span");a.classList.add("ics-related-note-indicator"),a.setAttribute("aria-label",J1(e,t)),a.dataset.relatedNoteCount=String(t),(0,C0.setIcon)(a,"file-text"),(0,C0.setTooltip)(a,J1(e,t),{placement:"top"}),r.appendChild(a)}function Sqe({element:r,viewType:e,icsEvent:t,relatedNoteCount:n,plugin:a}){var o;if(!t||(r.setAttribute("data-ics-event","true"),r.classList.add("fc-ics-event"),n>0&&(r.classList.add("has-related-note","fc-event--has-related-note"),r.dataset.relatedNoteCount=String(n)),e==="listWeek"))return;if(((o=a.calendarProviderRegistry)==null?void 0:o.findProviderForEvent(t))&&!r.querySelector(".fc-event-provider-icon")){let l=Ne(r.ownerDocument,"span");l.classList.add("fc-event-provider-icon"),l.setAttribute("aria-hidden","true"),(0,C0.setIcon)(l,"calendar"),r.appendChild(l)}let s=r.querySelector(".fc-event-title");s&&n>0&&IOt(s,a,n)}function NOt({taskInfo:r,basesEntry:e,visibleProperties:t,logDebug:n}){var i,s,o;let a={...r};if(!e)return a;a.basesData=e;for(let l of t)if(l.startsWith("formula."))try{(i=e.getValue)==null||i.call(e,l)}catch(c){n==null||n("[TaskNotes][CalendarView] Error getting formula:",l,c)}if(!a.dateCreated)try{let l=(s=e.getValue)==null?void 0:s.call(e,"file.ctime");l!=null&&l.data&&(a.dateCreated=l.data)}catch(l){n==null||n("[TaskNotes][CalendarView] Error getting file.ctime:",l)}if(!a.dateModified)try{let l=(o=e.getValue)==null?void 0:o.call(e,"file.mtime");l!=null&&l.data&&(a.dateModified=l.data)}catch(l){n==null||n("[TaskNotes][CalendarView] Error getting file.mtime:",l)}return a}function xqe({arg:r,plugin:e,config:t,visibleProperties:n,basesEntryByPath:a,buildTaskCardOptions:i,logDebug:s,factories:o={}}){var v,b,k,w,S;if(r.view.type!=="listWeek")return!1;r.el.innerHTML="";let{taskInfo:l,timeblock:c,icsEvent:d,eventType:u,basesEntry:p,relatedNoteCount:m}=r.event.extendedProps||{},f=vJ(m),h=null;if(l&&u!=="ics"&&u!=="property-based"){let C=NOt({taskInfo:l,basesEntry:a.get(l.path),visibleProperties:n,logDebug:s}),E=q1(r);h=((v=o.createTaskCard)!=null?v:Dr)(C,e,n,i({targetDate:E,promoteOccurrenceControlsInContextMenu:!!(l.recurrence||l.recurrence_parent&&l.occurrence_date)}))}else if(d&&u==="ics")h=((b=o.createICSEventCard)!=null?b:hqe)(d,e,{relatedNoteCount:f});else if(u==="property-based"&&p)h=((k=o.createPropertyEventCard)!=null?k:vqe)(p,e,t);else if(u==="timeblock"&&c){let C=r.event.start?M(r.event.start,"yyyy-MM-dd"):void 0;h=((w=o.createTimeBlockCard)!=null?w:Tqe)(c,e,{eventDate:(S=r.event.start)!=null?S:void 0,originalDate:C})}if(!h)return r.el.classList.add("fc-event-default-list"),!1;let g=Ne(r.el.ownerDocument,"td");return g.className="fc-list-event-title fc-list-card-content",g.colSpan=3,g.appendChild(h),r.el.appendChild(g),l!=null&&l.path&&(r.el.setAttribute("data-task-path",l.path),r.el.classList.add("fc-task-event")),r.el.classList.add("fc-list-task-card"),r.el.classList.remove("fc-event","fc-event-start","fc-event-end"),!0}var C0,Cqe=y(()=>{C0=require("obsidian");Wr();mi();gqe();kqe();wqe();T0();ms()});function X1(r,e,t={}){var l,c,d;if(!r)return{value:e,isValid:!0};let n=/^(\d{2}):([0-5]\d)(?::([0-5]\d))?$/.exec(r);if(!n)return{value:e,isValid:!1};let a=Number(n[1]),i=Number(n[2]),s=Number((l=n[3])!=null?l:"00"),o=(c=t.maxHour)!=null?c:23;return a<0||a>o?{value:e,isValid:!1}:t.allowMaxHourOnlyAtZero&&a===o&&(i!==0||s!==0)?{value:e,isValid:!1}:{value:`${n[1]}:${n[2]}:${(d=n[3])!=null?d:"00"}`,isValid:!0}}var kJ=y(()=>{});function ROt(r){wa.Platform.isMobile&&(r.classList.add("tn-calendar-event-touch-target"),r.addEventListener("contextmenu",e=>{e.preventDefault(),e.stopImmediatePropagation()},{capture:!0}))}function FOt(r,e){let t=r.querySelector(".fc-refreshCalendars-button");if(!t)return;let n=e.trim()||"Refresh calendar subscriptions";t.replaceChildren(),(0,wa.setIcon)(t,"refresh-cw"),t.classList.add("tasknotes-calendar-refresh-button--icon"),t.setAttribute("aria-label",n),t.setAttribute("title",n)}function Iy(r){return typeof r=="object"&&r!==null}function Iqe(r){return Array.isArray(r)?r.length>0:!!r}function Pqe(r){return Iqe(r)?`${_qe},${Dqe}`:Dqe}function zOt(r){let e=r.extendedProps;if(!Iy(e))return null;let t=e.taskInfo;return Iy(t)&&typeof t.path=="string"?t.path:typeof e.filePath=="string"?e.filePath:null}function Mqe(r,e){if(e.size!==0)for(let t of r){let n=zOt(t);if(!n)continue;let a=e.get(n);a!==void 0&&(t.extendedProps={...Iy(t.extendedProps)?t.extendedProps:{},[_qe]:a})}}function jOt(r,e){return!e&&!!(r!=null&&r.startsWith("list"))}function $Ot(r,e,t){return jOt(e,t)?r.filter(n=>n.allDay!==!0):r}function BOt(r){return Iy(r)}function UOt(r){return Iy(r)&&typeof r.scrollTop=="number"&&typeof r.scrollLeft=="number"}function HOt(r,e){return e<=1?!1:r==="timeGridWeek"||r==="timeGridCustom"}function VOt(r){return r==="timeGridWeek"||r==="timeGridCustom"||r==="timeGridDay"}function Aqe(r,e){return!r&&VOt(e)}function qOt(r){return typeof r=="string"&&r.trim().toLowerCase()==="auto"?"auto":"fill"}function WOt(r){return r==="auto"?{height:"auto",contentHeight:"auto",expandRows:!1}:{height:"100%",expandRows:!0}}function YOt(r,e,t){return r==="auto"||!!(t!=null&&t.closest(".internal-embed, .markdown-embed"))?"auto":"fill"}function Nqe(r){let e=r.closest("table");if(!e)return null;let t=Array.from(e.children).find(a=>a.tagName==="COLGROUP");if(!t)return null;let n=t.children[r.cellIndex];return(n==null?void 0:n.tagName)==="COL"?n:null}function KOt(r){r.querySelectorAll(GOt).forEach(t=>{t.style.removeProperty("width"),t.style.removeProperty("min-width"),t.style.removeProperty("max-width");let n=Nqe(t);n&&n.style.removeProperty("width")})}function ZOt(r,e){return!r||!r.isConnected||!e.isConnected||r.ownerDocument!==e.ownerDocument?!1:r.clientWidth>0&&r.clientHeight>0}function QOt(r,e=window){if(!r)return!1;let t=r.ownerDocument.defaultView;return!!(t&&t!==e)}function Rqe(r){return r?[r,...Array.from(r.querySelectorAll(".fc-scroller"))]:[]}function JOt(r){return Rqe(r).map(e=>({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}))}function XOt(r,e){if(!Array.isArray(e))return;let t=Rqe(r);e.forEach((n,a)=>{if(!UOt(n))return;let i=t[a];i&&(i.scrollTop=n.scrollTop,i.scrollLeft=n.scrollLeft)})}function eLt(r,e,t){if(t<=1||r.length<=1)return null;let n=Array.from(new Set(r));if(!n.includes(e))return null;let a=100/(n.length-1+t),i=a*t;return new Map(n.map(s=>[s,`${s===e?i:a}%`]))}function Fqe(r){return function(e,t){if(!t)throw Qr.error("[TaskNotes][CalendarView] No containerEl provided",{category:"provider",operation:"no-containerel-provided"}),new Error("CalendarView requires a containerEl");return new TJ(e,t,r)}}var wa,Qr,Eqe,OOt,bJ,Dqe,_qe,LOt,GOt,TJ,Oqe=y(()=>{ms();QP();ZP();Vg();KHe();aVe();lVe();h6();dVe();T0();JVe();nU();FN();XVe();w0();wa=require("obsidian");Wr();TE();dJ();Me();rqe();oqe();uqe();yJ();uJ();mqe();Cqe();kJ();Ct();Ba();K();yJ();Qr=N({tag:"Bases/CalendarView"});Eqe=5e3,OOt=250,bJ=2e3,Dqe="start,-duration,allDay,title",_qe="tasknotesSortIndex",LOt=JF;GOt=".fc-col-header-cell[data-date], .fc-timegrid-col[data-date], .fc-daygrid-day[data-date], .fc-timegrid-axis, .fc-timegrid-slot-label";TJ=class extends Rd{constructor(t,n,a){super(t,n,a);this.type="tasknotesCalendar";this.calendar=null;this.calendarEl=null;this.currentTasks=[];this.basesEntryByPath=new Map;this.basesSortIndexByPath=new Map;this._isRendering=!1;this._pendingRender=!1;this._expectingImmediateUpdate=!1;this._isFirstDataUpdate=!0;this._previousConfigSnapshot=null;this._saveViewTypeTimer=null;this._configChangedNeedsRecreate=!1;this._recreateTargetDate=null;this._previousDataSignature=null;this._previousControllerViewName=null;this.icsCalendarToggles=new Map;this.googleCalendarToggles=new Map;this.microsoftCalendarToggles=new Map;this.configLoaded=!1;this.basesController=t,this.dataAdapter.basesView=this;let i=this.plugin.settings.calendarViewSettings;this.viewOptions={showScheduled:i.defaultShowScheduled,showDue:i.defaultShowDue,showScheduledToDueSpan:i.defaultShowScheduledToDueSpan,showRecurring:i.defaultShowRecurring,showCompletedRecurringInstances:!0,showSkippedRecurringInstances:!0,showTimeEntries:i.defaultShowTimeEntries,showTimeblocks:i.defaultShowTimeblocks,showPropertyBasedEvents:!0,showOverdueOnToday:!1,initialDate:"",initialDateProperty:null,initialDateStrategy:"first",createDailyNotesFromDateLinks:!0,calendarView:i.defaultView,heightMode:"fill",customDayCount:i.customDayCount,listDayCount:7,slotMinTime:this.validateTimeValue(i.slotMinTime,"00:00:00"),slotMaxTime:this.validateTimeValue(i.slotMaxTime,"24:00:00",48,!0),slotDuration:this.validateTimeValue(i.slotDuration,"00:30:00"),snapDuration:this.validateTimeValue(i.slotDuration,"00:30:00"),scrollTime:this.validateTimeValue(i.scrollTime,"08:00:00"),firstDay:i.firstDay,weekNumbers:i.weekNumbers,nowIndicator:i.nowIndicator,showWeekends:i.showWeekends,showAllDaySlot:!0,showTimeGrid:!0,showTodayHighlight:i.showTodayHighlight,todayColumnWidthMultiplier:1,selectMirror:i.selectMirror,timeFormat:i.timeFormat,eventMinHeight:i.eventMinHeight,slotEventOverlap:i.slotEventOverlap,eventMaxStack:i.eventMaxStack,dayMaxEvents:i.dayMaxEvents,dayMaxEventRows:i.dayMaxEventRows,locale:i.locale,startDateProperty:null,endDateProperty:null,titleProperty:null}}onload(){this.readViewOptions(),this._previousConfigSnapshot=this.getConfigSnapshot(),this._previousDataSignature=this.getDataSignature(),this._previousControllerViewName=this.getControllerViewName(),super.onload()}onResize(){if(this.isPopoutWindow()){this.renderPopoutUnsupported();return}!this.calendar||!this.canUpdateCalendarSize()||(this.calendar.updateSize(),this.scheduleTodayColumnWidthUpdate(),this.scheduleDailyNoteHeaderLinkUpdate())}onDataUpdated(){var i;if(!((i=this.rootElement)!=null&&i.isConnected))return;if(this.dataUpdateDebounceTimer&&(window.clearTimeout(this.dataUpdateDebounceTimer),this.dataUpdateDebounceTimer=null),this._isFirstDataUpdate){this._isFirstDataUpdate=!1,this.render();return}if(this._expectingImmediateUpdate){this._expectingImmediateUpdate=!1,this.renderPreservingEphemeralState();return}let t=this.hasConfigChanged(),n=this.hasControllerViewChanged(),a=this.hasDataSignatureChanged();if(t){this._configChangedNeedsRecreate=!0,this.renderPreservingEphemeralState();return}if(a){this.renderPreservingEphemeralState();return}this.scheduleDeferredDataUpdate(Date.now(),n)}expectImmediateUpdate(){this._expectingImmediateUpdate=!0,window.setTimeout(()=>{this._expectingImmediateUpdate=!1},2e3)}getConfigSnapshot(){var t,n,a,i,s,o;return pqe({config:this.config,icsCalendarIds:(n=(t=this.plugin.icsSubscriptionService)==null?void 0:t.getSubscriptions().map(l=>l.id))!=null?n:[],googleCalendarIds:(i=(a=this.plugin.googleCalendarService)==null?void 0:a.getAvailableCalendars().map(l=>l.id))!=null?i:[],microsoftCalendarIds:(o=(s=this.plugin.microsoftCalendarService)==null?void 0:s.getAvailableCalendars().map(l=>l.id))!=null?o:[]})}hasConfigChanged(){let t=this.getConfigSnapshot();return this._previousConfigSnapshot===null?(this._previousConfigSnapshot=t,!1):t!==this._previousConfigSnapshot?(this._previousConfigSnapshot=t,!0):!1}getDataSignature(){var n;if(!((n=this.data)!=null&&n.data))return"";let t=this.getDataSignaturePropertyIds();try{return cqe(this.dataAdapter.extractDataItems(),t)}catch(a){return dqe(this.data.data)}}getDataSignaturePropertyIds(){var n,a,i,s;let t=[];try{t=this.dataAdapter.getVisiblePropertyIds()}catch(o){}return lqe({mapField:o=>{var l,c;return(c=(l=this.plugin)==null?void 0:l.fieldMapper)==null?void 0:c.toUserField(o)},visiblePropertyIds:t,showPropertyBasedEvents:!!((n=this.viewOptions)!=null&&n.showPropertyBasedEvents),startDateProperty:(a=this.viewOptions)==null?void 0:a.startDateProperty,endDateProperty:(i=this.viewOptions)==null?void 0:i.endDateProperty,titleProperty:(s=this.viewOptions)==null?void 0:s.titleProperty})}hasDataSignatureChanged(){let t=this.getDataSignature();return this._previousDataSignature===null?(this._previousDataSignature=t,!1):t!==this._previousDataSignature?(this._previousDataSignature=t,!0):!1}getControllerViewName(){if(!Iy(this.basesController))return null;let t=this.basesController.viewName;return typeof t=="string"?t:null}hasControllerViewChanged(){let t=this.getControllerViewName();return this._previousControllerViewName===null?(this._previousControllerViewName=t,t!==null):t!==this._previousControllerViewName?(this._previousControllerViewName=t,!0):!1}scheduleDeferredDataUpdate(t=Date.now(),n=!1){let a=this.containerEl.ownerDocument.defaultView||window,i=Date.now()-t,s;i<bJ?s=OOt:n?s=0:s=Math.max(0,Eqe-i),this.dataUpdateDebounceTimer=a.setTimeout(()=>{this.dataUpdateDebounceTimer=null;let o=Date.now()-t;if(this.hasDataSignatureChanged()){this.renderPreservingEphemeralState();return}if(o<bJ){this.scheduleDeferredDataUpdate(t,n);return}if(!n&&o<Eqe){this.scheduleDeferredDataUpdate(t,!1);return}n&&this.renderPreservingEphemeralState()},s)}validateTimeValue(t,n,a=23,i=!1){let s=X1(t,n,{maxHour:a,allowMaxHourOnlyAtZero:i});return s.isValid||Qr.warn(`[TaskNotes][CalendarView] Invalid time value: ${t}, using default: ${n}`,{category:"provider",operation:"invalid-time-value"}),s.value}getConfigOption(t,n){return gJ(this.config,t,n)}readEventToggles(){if(!(!this.config||typeof this.config.get!="function"))try{if(this.viewOptions.showScheduled=this.getConfigOption("showScheduled",this.viewOptions.showScheduled),this.viewOptions.showDue=this.getConfigOption("showDue",this.viewOptions.showDue),this.viewOptions.showScheduledToDueSpan=this.getConfigOption("showScheduledToDueSpan",this.viewOptions.showScheduledToDueSpan),this.viewOptions.showRecurring=this.getConfigOption("showRecurring",this.viewOptions.showRecurring),this.viewOptions.showCompletedRecurringInstances=this.getConfigOption("showCompletedRecurringInstances",this.viewOptions.showCompletedRecurringInstances),this.viewOptions.showSkippedRecurringInstances=this.getConfigOption("showSkippedRecurringInstances",this.viewOptions.showSkippedRecurringInstances),this.viewOptions.showTimeEntries=this.getConfigOption("showTimeEntries",this.viewOptions.showTimeEntries),this.viewOptions.showTimeblocks=this.getConfigOption("showTimeblocks",this.viewOptions.showTimeblocks),this.viewOptions.showPropertyBasedEvents=this.getConfigOption("showPropertyBasedEvents",this.viewOptions.showPropertyBasedEvents),this.viewOptions.showOverdueOnToday=this.getConfigOption("showOverdueOnToday",this.viewOptions.showOverdueOnToday),this.plugin.icsSubscriptionService){let t=this.plugin.icsSubscriptionService.getSubscriptions();for(let n of t){let a=`showICS_${n.id}`;this.icsCalendarToggles.set(n.id,this.getConfigOption(a,!0))}}if(this.plugin.googleCalendarService){let t=this.plugin.googleCalendarService.getAvailableCalendars();for(let n of t){let a=`showGoogleCalendar_${n.id}`;this.googleCalendarToggles.set(n.id,this.getConfigOption(a,!0))}}if(this.plugin.microsoftCalendarService){let t=this.plugin.microsoftCalendarService.getAvailableCalendars();for(let n of t){let a=`showMicrosoftCalendar_${n.id}`;this.microsoftCalendarToggles.set(n.id,this.getConfigOption(a,!0))}}}catch(t){Qr.error("[TaskNotes][CalendarView] Error reading event toggles:",{category:"provider",operation:"reading-event-toggles",error:t})}}readViewOptions(){if(!(!this.config||typeof this.config.get!="function"))try{this.readEventToggles(),this.viewOptions.initialDate=this.getConfigOption("initialDate",this.viewOptions.initialDate),this.viewOptions.initialDateProperty=this.getConfigOption("initialDateProperty",this.viewOptions.initialDateProperty),this.viewOptions.initialDateStrategy=this.getConfigOption("initialDateStrategy",this.viewOptions.initialDateStrategy),this.viewOptions.createDailyNotesFromDateLinks=this.getConfigOption("createDailyNotesFromDateLinks",this.viewOptions.createDailyNotesFromDateLinks),this.viewOptions.calendarView=this.getConfigOption("calendarView",this.viewOptions.calendarView),this.viewOptions.heightMode=qOt(this.getConfigOption("heightMode",this.viewOptions.heightMode)),this.applyHeightModeClass(),this.viewOptions.customDayCount=this.getConfigOption("customDayCount",this.viewOptions.customDayCount),this.viewOptions.listDayCount=this.getConfigOption("listDayCount",this.viewOptions.listDayCount),this.viewOptions.slotMinTime=this.validateTimeValue(this.getConfigOption("slotMinTime",void 0),this.viewOptions.slotMinTime),this.viewOptions.slotMaxTime=this.validateTimeValue(this.getConfigOption("slotMaxTime",void 0),this.viewOptions.slotMaxTime,48,!0),this.viewOptions.slotDuration=this.validateTimeValue(this.getConfigOption("slotDuration",void 0),this.viewOptions.slotDuration),this.viewOptions.snapDuration=this.validateTimeValue(this.getConfigOption("snapDuration",void 0),this.viewOptions.slotDuration),this.viewOptions.scrollTime=this.validateTimeValue(this.getConfigOption("scrollTime",void 0),this.viewOptions.scrollTime),this.viewOptions.firstDay=Number(this.getConfigOption("firstDay",this.viewOptions.firstDay)),this.viewOptions.weekNumbers=this.getConfigOption("weekNumbers",this.viewOptions.weekNumbers),this.viewOptions.nowIndicator=this.getConfigOption("nowIndicator",this.viewOptions.nowIndicator),this.viewOptions.showWeekends=this.getConfigOption("showWeekends",this.viewOptions.showWeekends),this.viewOptions.showAllDaySlot=this.getConfigOption("showAllDaySlot",this.viewOptions.showAllDaySlot),this.viewOptions.showTimeGrid=this.getConfigOption("showTimeGrid",this.viewOptions.showTimeGrid),this.viewOptions.showTodayHighlight=this.getConfigOption("showTodayHighlight",this.viewOptions.showTodayHighlight);let t=Number(this.getConfigOption("todayColumnWidthMultiplier",1));this.viewOptions.todayColumnWidthMultiplier=t>=1&&t<=5?Math.round(t*2)/2:1,this.viewOptions.selectMirror=this.getConfigOption("selectMirror",this.viewOptions.selectMirror),this.viewOptions.timeFormat=this.getConfigOption("timeFormat",this.viewOptions.timeFormat),this.viewOptions.eventMinHeight=this.getConfigOption("eventMinHeight",this.viewOptions.eventMinHeight),this.viewOptions.slotEventOverlap=this.getConfigOption("slotEventOverlap",this.viewOptions.slotEventOverlap);let n=this.getConfigOption("eventMaxStack",void 0);n!==void 0&&(this.viewOptions.eventMaxStack=n===0?null:n);let a=this.getConfigOption("dayMaxEvents",void 0);a!==void 0&&(this.viewOptions.dayMaxEvents=a===0?!0:a);let i=this.getConfigOption("dayMaxEventRows",void 0);i!==void 0&&(this.viewOptions.dayMaxEventRows=i===0?!1:i),this.viewOptions.startDateProperty=this.getConfigOption("startDateProperty",this.viewOptions.startDateProperty),this.viewOptions.endDateProperty=this.getConfigOption("endDateProperty",this.viewOptions.endDateProperty),this.viewOptions.titleProperty=this.getConfigOption("titleProperty",this.viewOptions.titleProperty),this.enableSearch=this.getConfigOption("enableSearch",!1),this.configLoaded=!0,this.applyLayoutClasses(),this.calendar&&(this.applyTodayHighlightStyling(),this.scheduleTodayColumnWidthUpdate(),this.scheduleDailyNoteHeaderLinkUpdate())}catch(t){Qr.error("[TaskNotes][CalendarView] Error reading view options:",{category:"provider",operation:"reading-view-options",error:t})}}async render(){var t,n,a;if(this._isRendering){this._pendingRender=!0;return}if(this._isRendering=!0,this._pendingRender=!1,!this.calendarEl||!this.rootElement){this._isRendering=!1;return}if(this.isPopoutWindow()){this.renderPopoutUnsupported(),this._isRendering=!1;return}if(!((t=this.data)!=null&&t.data)){this._isRendering=!1;return}if(!this.configLoaded&&this.config)this.readViewOptions();else if(this.config)if(this._configChangedNeedsRecreate){this._configChangedNeedsRecreate=!1;let i=this.getNavigationConfigState();if(this.readViewOptions(),this.calendar){let s=this.getNavigationConfigState();this._recreateTargetDate=tqe(i,s)?this.calendar.getDate():null,this.calendar.destroy(),this.calendar=null}}else this.readEventToggles();this.rootElement&&this.setupSearch(this.rootElement);try{let i=this.dataAdapter.extractDataItems(),s=await wp(i,this.plugin),o=this.applySearchFilter(s);if(this.currentTasks=o,this.updateBasesSortIndexes(o),this.basesEntryByPath.clear(),(n=this.data)!=null&&n.data)for(let l of this.data.data)(a=l.file)!=null&&a.path&&this.basesEntryByPath.set(l.file.path,l);this.calendar?await this.updateCalendarEvents(o):await this.initializeCalendar(o)}catch(i){Qr.error("[TaskNotes][CalendarView] Error rendering:",{category:"provider",operation:"rendering",error:i}),this.renderError(i instanceof Error?i:new Error(String(i)))}finally{this._isRendering=!1}this._pendingRender&&(this._pendingRender=!1,window.setTimeout(()=>void this.render(),0))}async initializeCalendar(t){var i,s;if(!this.calendarEl)return;let n=(i=this._recreateTargetDate)!=null?i:this.determineInitialDate(t),a={plugins:[GHe,nVe,oVe,K0e,cVe],initialView:this.viewOptions.calendarView,initialDate:n,headerToolbar:{left:"prev,next today refreshCalendars",center:"title",right:"multiMonthYear,dayGridMonth,timeGridWeek,timeGridCustom,timeGridDay,listWeek"},buttonText:{today:this.plugin.i18n.translate("views.basesCalendar.today"),month:this.plugin.i18n.translate("views.basesCalendar.buttonText.month"),week:this.plugin.i18n.translate("views.basesCalendar.buttonText.week"),day:this.plugin.i18n.translate("views.basesCalendar.buttonText.day"),year:this.plugin.i18n.translate("views.basesCalendar.buttonText.year"),list:this.plugin.i18n.translate("views.basesCalendar.buttonText.list")},buttonHints:{today:this.plugin.i18n.translate("views.basesCalendar.hints.today")||"Go to today",prev:this.plugin.i18n.translate("views.basesCalendar.hints.prev")||"Previous",next:this.plugin.i18n.translate("views.basesCalendar.hints.next")||"Next",month:this.plugin.i18n.translate("views.basesCalendar.hints.month")||"Month view",week:this.plugin.i18n.translate("views.basesCalendar.hints.week")||"Week view",day:this.plugin.i18n.translate("views.basesCalendar.hints.day")||"Day view",year:this.plugin.i18n.translate("views.basesCalendar.hints.year")||"Year view",list:this.plugin.i18n.translate("views.basesCalendar.hints.list")||"List view"},customButtons:{refreshCalendars:{text:this.plugin.i18n.translate("views.basesCalendar.buttonText.refresh")||"Refresh",hint:this.plugin.i18n.translate("views.basesCalendar.hints.refresh")||"Refresh calendar subscriptions",click:()=>{this.refreshExternalCalendars()}}},views:{timeGridCustom:{type:"timeGrid",duration:{days:this.viewOptions.customDayCount},buttonText:this.plugin.i18n.translate("views.basesCalendar.buttonText.customDays",{count:this.viewOptions.customDayCount.toString()}),titleFormat:{year:"numeric",month:"short",day:"numeric"}},listWeek:{type:"list",duration:{days:this.viewOptions.listDayCount},buttonText:this.plugin.i18n.translate("views.basesCalendar.buttonText.list")}},...WOt(this.getEffectiveHeightMode()),handleWindowResize:!1,stickyHeaderDates:!1,locale:this.viewOptions.locale||this.plugin.settings.uiLanguage||navigator.language||"en",slotMinTime:this.viewOptions.slotMinTime,slotMaxTime:this.viewOptions.slotMaxTime,slotDuration:this.viewOptions.slotDuration,snapDuration:this.viewOptions.snapDuration,firstDay:this.viewOptions.firstDay,weekNumbers:this.viewOptions.weekNumbers,nowIndicator:this.viewOptions.nowIndicator,weekends:this.viewOptions.showWeekends,allDaySlot:this.viewOptions.showAllDaySlot,dayMaxEvents:this.viewOptions.dayMaxEvents,dayMaxEventRows:this.viewOptions.dayMaxEventRows,eventMaxStack:(s=this.viewOptions.eventMaxStack)!=null?s:void 0,navLinks:!0,navLinkDayClick:o=>{this.openDailyNoteFromDateLink(o)},dayHeaderDidMount:o=>{iJ(o.el,o.date,o.view.type,this.plugin,l=>this.openDailyNoteFromDateLink(l))},editable:!0,selectable:!0,...wa.Platform.isMobile?{longPressDelay:350,eventLongPressDelay:350,selectLongPressDelay:350}:{},selectMirror:this.viewOptions.selectMirror,eventTimeFormat:this.viewOptions.timeFormat==="12"?{hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short",hour12:!0}:{hour:"2-digit",minute:"2-digit",hour12:!1},slotLabelFormat:{hour:"2-digit",minute:"2-digit",hour12:this.viewOptions.timeFormat==="12"},scrollTime:this.viewOptions.scrollTime,eventMinHeight:this.viewOptions.eventMinHeight,slotEventOverlap:this.viewOptions.slotEventOverlap,eventAllow:()=>!0,eventOrder:Pqe(this.dataAdapter.getSortConfig()),events:(o,l,c)=>{this.fetchEvents(o,l,c)},eventDidMount:o=>this.handleEventDidMount(o),eventClick:o=>{this.handleEventClick(o)},eventDrop:o=>{this.handleEventDrop(o)},eventResize:o=>{this.handleEventResize(o)},select:o=>{this.handleDateSelect(o)},viewDidMount:o=>{let l=o.view.type;l&&l!==this.viewOptions.calendarView&&(this.viewOptions.calendarView=l,this.debouncedSaveViewType(l)),this.applyLayoutClasses(),this.scheduleTodayColumnWidthUpdate(),this.scheduleDailyNoteHeaderLinkUpdate(),this.scheduleRefreshButtonIconUpdate()},datesSet:()=>{this.applyLayoutClasses(),this.scheduleTodayColumnWidthUpdate(),this.scheduleDailyNoteHeaderLinkUpdate(),this.scheduleRefreshButtonIconUpdate()}};this.calendar=new LOt(this.calendarEl,a),this.calendar.render(),this._recreateTargetDate=null,this.applyLayoutClasses(),this.applyTodayHighlightStyling(),this.scheduleTodayColumnWidthUpdate(),this.scheduleDailyNoteHeaderLinkUpdate(),this.scheduleRefreshButtonIconUpdate()}updateBasesSortIndexes(t){var n,a;this.basesSortIndexByPath.clear(),Iqe(this.dataAdapter.getSortConfig())&&(t.forEach((i,s)=>{this.basesSortIndexByPath.set(i.path,s)}),(a=(n=this.data)==null?void 0:n.data)==null||a.forEach((i,s)=>{var l;let o=(l=i.file)==null?void 0:l.path;o&&!this.basesSortIndexByPath.has(o)&&this.basesSortIndexByPath.set(o,s)}))}scheduleDailyNoteHeaderLinkUpdate(){let t=this.containerEl.ownerDocument.defaultView||window;t.setTimeout(()=>this.attachDailyNoteHeaderLinks(),0),t.setTimeout(()=>this.attachDailyNoteHeaderLinks(),50)}scheduleRefreshButtonIconUpdate(){let t=this.containerEl.ownerDocument.defaultView||window;t.setTimeout(()=>this.applyRefreshButtonIcon(),0),t.setTimeout(()=>this.applyRefreshButtonIcon(),50)}applyRefreshButtonIcon(){this.calendarEl&&FOt(this.calendarEl,this.plugin.i18n.translate("views.basesCalendar.hints.refresh")||this.plugin.i18n.translate("views.basesCalendar.buttonText.refresh")||"Refresh calendar subscriptions")}attachDailyNoteHeaderLinks(){var s;if(!this.calendar||!this.calendarEl||!(((s=this.calendar.view)==null?void 0:s.type)==="timeGridDay"||!!this.calendarEl.querySelector(".fc-timeGridDay-view")))return;let a=this.calendar.getDate();this.calendarEl.querySelectorAll(".fc-col-header-cell").forEach(o=>{let l=o.dataset.date?it(o.dataset.date):a;iJ(o,l,"timeGridDay",this.plugin,c=>this.openDailyNoteFromDateLink(c))})}openDailyNoteFromDateLink(t){aJ(t,this.plugin,{createIfMissing:this.viewOptions.createDailyNotesFromDateLinks})}async refreshExternalCalendars(){var t;try{this.plugin.icsSubscriptionService&&await this.plugin.icsSubscriptionService.refreshAllSubscriptions(),this.plugin.googleCalendarService&&await this.plugin.googleCalendarService.refreshAllCalendars(),this.plugin.microsoftCalendarService&&await this.plugin.microsoftCalendarService.refreshAllCalendars(),(t=this.calendar)==null||t.refetchEvents()}catch(n){Qr.error("[TaskNotes][CalendarView] Error refreshing calendars:",{category:"provider",operation:"refreshing-calendars",error:n})}}applyTodayHighlightStyling(){this.calendarEl&&(this.viewOptions.showTodayHighlight?this.calendarEl.classList.remove("hide-today-highlight"):this.calendarEl.classList.add("hide-today-highlight"))}applyHeightModeClass(){var n;let t=this.getEffectiveHeightMode()==="auto";this.rootElement&&(this.rootElement.classList.toggle("advanced-calendar-view--auto-height",t),this.rootElement.classList.toggle("tn-static-min-height-800px-997b4c8c",!t)),(n=this.calendarEl)==null||n.classList.toggle("advanced-calendar-view__calendar--auto-height",t)}applyTimeGridVisibilityClass(){var n,a;let t=Aqe(this.viewOptions.showTimeGrid,this.viewOptions.calendarView);(n=this.rootElement)==null||n.classList.toggle("advanced-calendar-view--hide-time-grid",t),(a=this.calendarEl)==null||a.classList.toggle("advanced-calendar-view__calendar--hide-time-grid",t)}applyCalendarModeClass(){var n,a;let t=this.viewOptions.calendarView.startsWith("list");(n=this.rootElement)==null||n.classList.toggle("advanced-calendar-view--list",t),(a=this.calendarEl)==null||a.classList.toggle("advanced-calendar-view__calendar--list",t)}applyLayoutClasses(){this.applyHeightModeClass(),this.applyTimeGridVisibilityClass(),this.applyCalendarModeClass()}getEffectiveHeightMode(){return Aqe(this.viewOptions.showTimeGrid,this.viewOptions.calendarView)?"auto":YOt(this.viewOptions.heightMode,this.viewOptions.calendarView,this.containerEl)}scheduleTodayColumnWidthUpdate(){if(!this.canUpdateCalendarSize())return;(this.containerEl.ownerDocument.defaultView||window).setTimeout(()=>{this.canUpdateCalendarSize()&&this.applyTodayColumnWidth()},0)}applyTodayColumnWidth(){var d;let t=this.calendar;if(!this.calendarEl||!t||!this.canUpdateCalendarSize())return;let n=(d=t.view)==null?void 0:d.type;if(!n)return;let a=Array.from(this.calendarEl.querySelectorAll(".fc-col-header-cell[data-date]")),i=a.map(u=>u.dataset.date).filter(u=>!!u);if(this.resetTodayColumnWidths(),!HOt(n,this.viewOptions.todayColumnWidthMultiplier))return;let s=a.find(u=>u.classList.contains("fc-day-today")),o=s==null?void 0:s.dataset.date;if(!o)return;let l=eLt(i,o,this.viewOptions.todayColumnWidthMultiplier);if(!l)return;this.calendarEl.querySelectorAll(".fc-col-header-cell[data-date], .fc-timegrid-col[data-date], .fc-daygrid-day[data-date]").forEach(u=>{let p=u.dataset.date;if(!p)return;let m=l.get(p);if(!m)return;u.style.width=m,u.style.minWidth=m,u.style.maxWidth=m;let f=Nqe(u);f?f.style.width=m:Qr.warn("Calendar column width target was not found",{category:"provider",operation:"apply-today-column-width",details:{dateKey:p,reason:"FullCalendar DOM may have changed; today-column width skipped."}})})}canUpdateCalendarSize(){return ZOt(this.calendarEl,this.containerEl)}isPopoutWindow(){return QOt(this.containerEl)}renderPopoutUnsupported(){if(!this.calendarEl)return;this.calendar&&(this.calendar.destroy(),this.calendar=null),this.calendarEl.replaceChildren(),this.calendarEl.classList.add("advanced-calendar-view__calendar--popout-blocked");let t=this.calendarEl.ownerDocument,n=Ne(t,"div");n.className="advanced-calendar-view__popout-blocked";let a=Ne(t,"h3");a.textContent="Calendar view is unavailable in a separate window",n.appendChild(a);let i=Ne(t,"p");i.textContent="Open this calendar view in the main Obsidian window. The calendar can freeze Obsidian when restored inside a separate window.",n.appendChild(i),this.calendarEl.appendChild(n)}resetTodayColumnWidths(){this.calendarEl&&KOt(this.calendarEl)}debouncedSaveViewType(t){this._saveViewTypeTimer&&window.clearTimeout(this._saveViewTypeTimer),this._saveViewTypeTimer=window.setTimeout(()=>{this._saveViewTypeTimer=null;try{this.config&&typeof this.config.set=="function"&&(this.config.set("calendarView",t),Qr.debug("[TaskNotes][CalendarView] View type saved to config:",{category:"provider",operation:"view-type-saved-config",details:{value:t}}))}catch(n){Qr.error("[TaskNotes][CalendarView] Failed to save view type:",{category:"provider",operation:"save-view-type",error:n})}},1e3)}determineInitialDate(t){var n;return iqe({viewOptions:this.viewOptions,taskNotes:t,entries:(n=this.data)==null?void 0:n.data,getEntryPropertyValue:(a,i)=>this.dataAdapter.getPropertyValue(a,i),getContextPropertyValue:a=>this.getEmbeddedMarkdownDateNavigationPropertyValue(a),mapPropertyToTaskField:a=>this.propertyMapper.basesToTaskCardProperty(a)})}getEmbeddedMarkdownDateNavigationPropertyValue(t){var s;if(!this.containerEl.closest(".internal-embed, .markdown-embed"))return null;let n=this.getContainingMarkdownFile();if(!n)return null;let a=(s=this.plugin.app.metadataCache.getFileCache(n))==null?void 0:s.frontmatter;if(!a)return null;let i=[t,this.propertyMapper.basesToTaskCardProperty(t),t.replace(/^(note\.|task\.)/,"")];for(let o of new Set(i))if(Object.prototype.hasOwnProperty.call(a,o))return a[o];return null}getContainingMarkdownFile(){var n;let t=this.plugin.app.workspace.getLeavesOfType("markdown");for(let a of t){let i=a.view;if((n=i.containerEl)!=null&&n.contains(this.containerEl)&&i.file instanceof wa.TFile&&i.file.extension==="md")return i.file}return null}getNavigationConfigState(){return sqe(this.viewOptions)}async fetchEvents(t,n,a){try{let i=await this.buildAllEvents(t);n(i)}catch(i){Qr.error("[TaskNotes][CalendarView] Error fetching events:",{category:"provider",operation:"fetching-events",error:i}),a(i instanceof Error?i:new Error(String(i)))}}async buildAllEvents(t){var l,c,d,u,p;let n=[],a={showScheduled:this.viewOptions.showScheduled,showDue:this.viewOptions.showDue,showScheduledToDueSpan:this.viewOptions.showScheduledToDueSpan,showRecurring:this.viewOptions.showRecurring,showCompletedRecurringInstances:this.viewOptions.showCompletedRecurringInstances,showSkippedRecurringInstances:this.viewOptions.showSkippedRecurringInstances,showTimeEntries:this.viewOptions.showTimeEntries,showTimeblocks:this.viewOptions.showTimeblocks,showICSEvents:!1,showOverdueOnToday:this.viewOptions.showOverdueOnToday,visibleStart:t.start,visibleEnd:t.end,visibleStartDate:t.startStr,visibleEndDate:t.endStr},i=await NVe(this.currentTasks,this.plugin,a);if(Mqe(i,this.basesSortIndexByPath),n.push(...i),this.viewOptions.showPropertyBasedEvents&&this.viewOptions.startDateProperty){let m=await this.buildPropertyBasedEvents();Mqe(m,this.basesSortIndexByPath),n.push(...m)}let o=!!((l=this.plugin.icsSubscriptionService)!=null&&l.getAllEvents().length||(c=this.plugin.googleCalendarService)!=null&&c.getAllEvents().length||(d=this.plugin.microsoftCalendarService)!=null&&d.getAllEvents().length)?await this.plugin.icsNoteService.getRelatedNoteCountsByEventId():new Map;return this.plugin.icsSubscriptionService&&n.push(...Q1({events:this.plugin.icsSubscriptionService.getAllEvents(),provider:"ics",plugin:this.plugin,toggles:this.icsCalendarToggles,relatedNoteCountsByEventId:o})),this.plugin.googleCalendarService&&n.push(...Q1({events:this.plugin.googleCalendarService.getAllEvents(),provider:"google",plugin:this.plugin,toggles:this.googleCalendarToggles,relatedNoteCountsByEventId:o})),this.plugin.microsoftCalendarService&&n.push(...Q1({events:this.plugin.microsoftCalendarService.getAllEvents(),provider:"microsoft",plugin:this.plugin,toggles:this.microsoftCalendarToggles,relatedNoteCountsByEventId:o})),$Ot(n,((p=(u=this.calendar)==null?void 0:u.view)==null?void 0:p.type)||this.viewOptions.calendarView,this.viewOptions.showAllDaySlot)}async buildPropertyBasedEvents(){var n;if(!((n=this.data)!=null&&n.data))return[];if(!this.viewOptions.startDateProperty)return[];let t=[];for(let a of this.data.data)try{let i=a.file;if(!i)continue;let s=aqe({entry:a,file:i,startDateProperty:this.viewOptions.startDateProperty,endDateProperty:this.viewOptions.endDateProperty,titleProperty:this.viewOptions.titleProperty,getPropertyValue:(o,l)=>this.dataAdapter.getPropertyValue(o,l)});s&&t.push(s)}catch(i){Qr.warn("[TaskNotes][CalendarView] Error processing property-based entry:",{category:"provider",operation:"processing-property-based-entry",error:i})}return t}async updateCalendarEvents(t){this.calendar&&(this.calendar.setOption("eventOrder",Pqe(this.dataAdapter.getSortConfig())),this.calendar.refetchEvents())}async refreshCalendarWithFreshData(t){var n;if(this.calendar)try{let a=[],i=!1;for(let s of this.currentTasks){let o=(t==null?void 0:t.path)===s.path?t:this.plugin.cacheManager.getCachedTaskInfoSync(s.path);if(o){if(o.archived)continue;let l={...o,basesData:s.basesData};(t==null?void 0:t.path)===o.path&&(i=!0),a.push(l)}}t!=null&&t.path&&!i&&!t.archived&&a.push((n=this.plugin.cacheManager.getCachedTaskInfoSync(t.path))!=null?n:t),this.currentTasks=a,this.calendar.refetchEvents()}catch(a){Qr.error("[TaskNotes][CalendarView] Error refreshing calendar:",{category:"provider",operation:"refreshing-calendar",error:a})}}async refreshAfterExpectedCalendarTaskWrite(t){this._expectingImmediateUpdate&&(this._expectingImmediateUpdate=!1,await this.refreshCalendarWithFreshData(t))}clearPendingCalendarRefreshTimers(){this.updateDebounceTimer&&(window.clearTimeout(this.updateDebounceTimer),this.updateDebounceTimer=null),this.dataUpdateDebounceTimer&&(window.clearTimeout(this.dataUpdateDebounceTimer),this.dataUpdateDebounceTimer=null)}async refreshAfterDirectCalendarTaskWrite(t){this.clearPendingCalendarRefreshTimers(),await this.refreshCalendarWithFreshData(t),this.clearPendingCalendarRefreshTimers()}async handleEventClick(t){let{taskInfo:n,timeblock:a,eventType:i,filePath:s,icsEvent:o,subscriptionName:l}=t.event.extendedProps||{},c=t.jsEvent;if(i==="timeblock"&&a){let d=t.event.start;if(!d)return;let u=M(d,"yyyy-MM-dd");Y1(a,d,u,this.plugin,()=>this.expectImmediateUpdate());return}if(i==="timeEntry"&&n&&c.button===0){this.plugin.openTimeEntryEditor(n,()=>this.expectImmediateUpdate());return}if(i==="ics"&&o){new $d(this.plugin.app,this.plugin,o,l).open();return}if(i==="property-based"&&s){let d=this.plugin.app.vault.getAbstractFileByPath(s);if(d instanceof wa.TFile){let p=c.ctrlKey||c.metaKey||c.button===1;this.plugin.app.workspace.getLeaf(p).openFile(d)}return}n!=null&&n.path&&c.button===0&&$fe(n,this.plugin,c,t.event.id,()=>this.expectImmediateUpdate())}refetchWhenCreatedTimeblockIsIndexed(t){var c;let n=()=>{var u,p;let d=(p=(u=this.plugin.app.metadataCache.getFileCache(t.dailyNote))==null?void 0:u.frontmatter)==null?void 0:p.timeblocks;return Array.isArray(d)&&d.some(m=>!m||typeof m!="object"?!1:m.id===t.timeblock.id)};if(n()){(c=this.calendar)==null||c.refetchEvents();return}let a=this.containerEl.ownerDocument.defaultView||window,i=null,s=null,o=!1,l=()=>{o||(o=!0,i!==null&&(a.clearTimeout(i),i=null),s&&(this.plugin.app.metadataCache.offref(s),s=null))};s=this.plugin.app.metadataCache.on("changed",d=>{var u;d.path!==t.dailyNote.path||!n()||(l(),(u=this.calendar)==null||u.refetchEvents())}),i=a.setTimeout(()=>{var d;l(),(d=this.calendar)==null||d.refetchEvents()},bJ),this.register(l)}async handleEventDrop(t){var p,m,f,h;if(!((p=t==null?void 0:t.event)!=null&&p.extendedProps)){Qr.warn("[TaskNotes][CalendarView] Event dropped without extendedProps",{category:"provider",operation:"event-dropped-without-extendedprops"});return}let{taskInfo:n,timeblock:a,eventType:i,isRecurringInstance:s,isNextScheduledOccurrence:o,isPatternInstance:l,filePath:c,icsEvent:d}=t.event.extendedProps;if(i==="timeblock"){if(!t.oldEvent.start){t.revert();return}let g=M(t.oldEvent.start,"yyyy-MM-dd");await OVe(t,a,g,this.plugin,CVe(t.jsEvent));return}if(i==="property-based"&&c){try{let g=this.plugin.app.vault.getAbstractFileByPath(c);if(!g||!(g instanceof wa.TFile)){t.revert();return}let v=this.viewOptions.startDateProperty,b=this.viewOptions.endDateProperty,k=G1(v),w=G1(b);if(!k){t.revert();return}let S=t.oldEvent.start,C=t.event.start;if(!S||!C){t.revert();return}await Fr(this.plugin.app,g,E=>{let D=GVe({frontmatter:E,startProperty:k,endProperty:w,oldStart:S,newStart:C,allDay:t.event.allDay});if(D.kind==="update-frontmatter")for(let[P,O]of Object.entries(D.updates))E[P]=O})}catch(g){Qr.error("[TaskNotes][CalendarView] Error updating property-based event:",{category:"provider",operation:"updating-property-based-event",error:g}),t.revert()}return}if(i==="ics"&&d){let g=(m=this.plugin.calendarProviderRegistry)==null?void 0:m.findProviderForEvent(d);if(g){try{let{calendarId:v,eventId:b}=g.extractEventIds(d),k=sJ({start:t.event.start,end:t.event.end,allDay:t.event.allDay,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"});if(k.kind==="revert"){t.revert();return}await g.updateEvent(v,b,k.updates)}catch(v){Qr.error(`[TaskNotes][CalendarView] Error updating ${g.providerName} event:`,{category:"provider",operation:"updating",error:v}),t.revert()}return}else{t.revert();return}}if(i==="timeEntry"){let g=ZVe({timeEntries:n.timeEntries,timeEntryIndex:t.event.extendedProps.timeEntryIndex,oldStart:t.oldEvent.start,newStart:t.event.start,newEnd:t.event.end});if(g.kind==="revert"){t.revert();return}if(g.kind==="update-time-entries")try{let v=await this.plugin.taskService.updateTask(n,{timeEntries:g.timeEntries});await this.refreshAfterDirectCalendarTaskWrite(v)}catch(v){Qr.error("Error updating time entry:",{category:"provider",operation:"updating-time-entry",error:v}),t.revert()}return}let u=!!(n!=null&&n.recurrence_parent&&(n!=null&&n.occurrence_date));if(n&&!u&&(s||o||l)){await MVe(t,n,this.plugin);return}if(n)try{let g=VVe({eventType:i,taskInfo:n,newStart:t.event.start,oldStart:t.oldEvent.start,allDay:t.event.allDay});if(g.kind==="revert"){t.revert();return}if(g.kind==="update-date-property"){let v=await this.plugin.taskService.updateProperty(n,g.property,g.value);await this.refreshAfterDirectCalendarTaskWrite(v)}else if(g.kind==="update-scheduled-due-span"){let v=this.plugin.app.vault.getAbstractFileByPath(n.path);if(v instanceof wa.TFile){let b=this.plugin.fieldMapper.toUserField("scheduled"),k=this.plugin.fieldMapper.toUserField("due");await Fr(this.plugin.app,v,w=>{g.scheduled&&(w[b]=g.scheduled),g.due&&(w[k]=g.due)}),await this.refreshAfterDirectCalendarTaskWrite({...n,scheduled:(f=g.scheduled)!=null?f:n.scheduled,due:(h=g.due)!=null?h:n.due})}}}catch(g){Qr.error("[TaskNotes][CalendarView] Error updating task date:",{category:"provider",operation:"updating-task-date",error:g}),t.revert()}}async handleEventResize(t){var d,u;if(!((d=t==null?void 0:t.event)!=null&&d.extendedProps)){Qr.warn("[TaskNotes][CalendarView] Event resized without extendedProps",{category:"provider",operation:"event-resized-without-extendedprops"});return}let{taskInfo:n,timeblock:a,eventType:i,filePath:s,timeEntryIndex:o,icsEvent:l}=t.event.extendedProps;if(i==="timeEntry"){let p=QVe({timeEntries:n.timeEntries,timeEntryIndex:o,newStart:t.event.start,newEnd:t.event.end});if(p.kind==="revert"){t.revert();return}if(p.kind==="update-time-entries")try{let m=await this.plugin.taskService.updateTask(n,{timeEntries:p.timeEntries});await this.refreshAfterDirectCalendarTaskWrite(m)}catch(m){Qr.error("Error resizing time entry:",{category:"provider",operation:"resizing-time-entry",error:m}),t.revert()}return}if(i==="timeblock"){if(!t.event.start){t.revert();return}let p=M(t.event.start,"yyyy-MM-dd");await LVe(t,a,p,this.plugin);return}if(i==="property-based"&&s){try{let p=this.plugin.app.vault.getAbstractFileByPath(s);if(!p||!(p instanceof wa.TFile)){t.revert();return}let m=this.viewOptions.endDateProperty,f=G1(m),h=KVe({endProperty:f,newEnd:t.event.end,allDay:t.event.allDay});if(h.kind==="revert"){t.revert();return}if(h.kind==="ignore")return;await Fr(this.plugin.app,p,g=>{for(let[v,b]of Object.entries(h.updates))g[v]=b})}catch(p){Qr.error("[TaskNotes][CalendarView] Error resizing property-based event:",{category:"provider",operation:"resizing-property-based-event",error:p}),t.revert()}return}if(i==="ics"&&l){let p=(u=this.plugin.calendarProviderRegistry)==null?void 0:u.findProviderForEvent(l);if(p){try{let{calendarId:m,eventId:f}=p.extractEventIds(l),h=sJ({start:t.event.start,end:t.event.end,allDay:t.event.allDay,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC",requireEnd:!0});if(h.kind==="revert"){t.revert();return}await p.updateEvent(m,f,h.updates)}catch(m){Qr.error(`[TaskNotes][CalendarView] Error resizing ${p.providerName} event:`,{category:"provider",operation:"resizing",error:m}),t.revert()}return}}let c=qVe({eventType:i,start:t.event.start,end:t.event.end,allDay:t.event.allDay});if(c.kind==="revert"){t.revert();return}if(c.kind!=="ignore")try{let p=await this.plugin.taskService.updateProperty(n,"timeEstimate",c.value);await this.refreshAfterDirectCalendarTaskWrite(p)}catch(p){Qr.error("[TaskNotes][CalendarView] Error updating task duration:",{category:"provider",operation:"updating-task-duration",error:p}),t.revert()}}async handleDateSelect(t){let n=new wa.Menu;n.addItem(i=>{i.setTitle("Create task").setIcon("check-square").onClick(async()=>{let s=this.viewOptions.slotDuration.split(":"),o=parseInt(s[0])*60+parseInt(s[1]||"0"),l=BVe(t.start,t.end,t.allDay,o);new Pm(this.plugin.app,this.plugin,{prePopulatedValues:l,onTaskCreated:d=>{this.refreshAfterDirectCalendarTaskWrite(d)}}).open()})}),this.plugin.settings.calendarViewSettings.enableTimeblocking&&n.addItem(i=>{i.setTitle("Create timeblock").setIcon("clock").onClick(async()=>{await RVe(t.start,t.end,t.allDay,this.plugin,s=>this.refetchWhenCreatedTimeblockIsIndexed(s))})}),n.addItem(i=>{i.setTitle("Create time entry").setIcon("play").onClick(async()=>{this.expectImmediateUpdate(),await FVe(t.start,t.end,t.allDay,this.plugin)})});let a=this.plugin.calendarProviderRegistry;a&&a.getAllProviders().some(s=>s.getAvailableCalendars().length>0)&&(n.addSeparator(),n.addItem(s=>{s.setTitle("Create external calendar event").setIcon("calendar-plus").onClick(()=>{new K1(this.plugin.app,this.plugin,{start:t.start,end:t.end,allDay:t.allDay,onEventCreated:()=>{this.expectImmediateUpdate(),a.refreshAll()}}).open()})})),n.onHide(()=>{var i;(i=this.calendar)==null||i.unselect()}),t.jsEvent?n.showAtMouseEvent(t.jsEvent):n.showAtPosition({x:0,y:0})}handleEventDidMount(t){var m;let n;try{let f=(m=t==null?void 0:t.event)==null?void 0:m.extendedProps;if(!f||typeof f!="object")return;n=f}catch(f){Qr.warn("[TaskNotes][CalendarView] Event mounted without readable props",{category:"provider",operation:"event-mounted-readable-props",error:f});return}let{taskInfo:a,timeblock:i,icsEvent:s,eventType:o,relatedNoteCount:l,isRecurringInstance:c,isNextScheduledOccurrence:d,isPatternInstance:u}=n;ROt(t.el);let p=vJ(l);if(Sqe({element:t.el,viewType:t.view.type,icsEvent:s,relatedNoteCount:p,plugin:this.plugin}),!xqe({arg:t,plugin:this.plugin,config:this.config,visibleProperties:this.getVisibleProperties(),basesEntryByPath:this.basesEntryByPath,buildTaskCardOptions:f=>this.buildTaskCardOptions(f),logDebug:(f,...h)=>Qr.debug(f,{category:"provider",operation:"mount-calendar-list-event-card",details:h.length>0?{values:h}:void 0})})){if(t.el.setAttribute("data-event-type",o||"unknown"),o==="timeblock"&&i){zVe(t.el,i),t.event.setProp&&t.event.setProp("editable",!0);let f=jVe(i);(0,wa.setTooltip)(t.el,f,{placement:"top"});return}if(a&&a.path){if(t.el.setAttribute("data-task-path",a.path),t.el.classList.add("fc-task-event"),this.attachTaskEventHoverLink(t.el,a.path),a.tags&&a.tags.length>0&&a.tags.forEach(f=>{let h=f.replace(/[^a-zA-Z0-9-_]/g,"");h&&t.el.classList.add(`fc-tag-${h}`)}),Rl(a.projects||[]).forEach(f=>{let h=Cu(f);h&&t.el.classList.add(`fc-project-${h}`)}),t.event.setProp)switch(o){case"scheduled":case"recurring":case"timeEntry":case"due":case"scheduledToDueSpan":t.event.setProp("editable",o!=="scheduledToDueSpan"||!(c||d||u));break;default:break}PVe(t.el,n)}if(a){let f=DVe(a,this.plugin);(0,wa.setTooltip)(t.el,f)}else if(s){let f=p>0?`
|
||
|
||
${J1(this.plugin,p)}`:"",h=s.description?`${s.title}
|
||
|
||
${s.description}${f}`:`${s.title}${f}`;(0,wa.setTooltip)(t.el,h)}a&&o!=="ics"&&$Ve(t.el,a,this.plugin,"tasknotes-bases-calendar"),a&&t.el.addEventListener("contextmenu",f=>{f.preventDefault(),f.stopPropagation();let h=q1(t);new Yl({task:a,plugin:this.plugin,targetDate:h,occurrenceDate:a.recurrence?h:void 0,promoteOccurrenceControls:!!(a.recurrence||a.recurrence_parent&&a.occurrence_date),onUpdate:()=>{this.refreshCalendarWithFreshData()}}).show(f)}),s&&o==="ics"&&t.el.addEventListener("contextmenu",f=>{f.preventDefault(),f.stopPropagation();let h=n.subscriptionName;new WT({icsEvent:s,plugin:this.plugin,subscriptionName:h,onUpdate:()=>{this.refreshCalendarWithFreshData()}}).show(f)}),o==="property-based"&&n.filePath&&t.el.addEventListener("mouseover",f=>{this.plugin.app.vault.getAbstractFileByPath(n.filePath)&&this.plugin.app.workspace.trigger("hover-link",{event:f,source:"tasknotes-bases-calendar",hoverParent:t.el,targetEl:t.el,linktext:n.filePath,sourcePath:n.filePath})}),o==="property-based"&&n.filePath&&t.el.addEventListener("contextmenu",f=>{f.preventDefault(),f.stopPropagation();let h=this.plugin.app.vault.getAbstractFileByPath(n.filePath);if(h instanceof wa.TFile){let g=new wa.Menu;this.plugin.app.workspace.trigger("file-menu",g,h,"tasknotes-bases-calendar"),g.showAtPosition({x:f.clientX,y:f.clientY})}})}}attachTaskEventHoverLink(t,n){let a=i=>{var l,c;let s=`.fc-task-event[data-task-path="${CSS.escape(n)}"]`;((c=(l=this.rootElement)==null?void 0:l.querySelectorAll(s))!=null?c:[]).forEach(d=>{d===t?d.classList.toggle("fc-task-event--hover-source",i):d.classList.toggle("fc-task-event--related-hover",i)})};t.addEventListener("mouseenter",()=>a(!0)),t.addEventListener("mouseleave",()=>a(!1))}setupContainer(){if(super.setupContainer(),this.rootElement){this.rootElement.className="tn-bases-integration tasknotes-plugin advanced-calendar-view",this.rootElement.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-flex-1-14e3b769","tn-static-flex-direction-column-06c8b5ed","tn-static-height-0-7a31cef0","tn-static-height-100-62264068","tn-static-height-12px-06c0747e","tn-static-height-16px-30de4aee","tn-static-height-24px-29a11d37"),this.rootElement.classList.add("tn-static-min-height-800px-997b4c8c");let t=this.containerEl.ownerDocument,n=Ne(t,"div");n.id="bases-calendar",n.classList.remove("tn-static-flex-1-97445a8d","tn-static-margin-top-12px-91e0f558","tn-static-min-height-800px-997b4c8c","tn-static-overflow-hidden-69824400"),n.classList.add("tn-static-flex-1-14e3b769"),this.rootElement.appendChild(n),this.calendarEl=n,this.applyLayoutClasses()}}async handleTaskUpdate(t,n){if(this._expectingImmediateUpdate){await this.refreshAfterExpectedCalendarTaskWrite(t);return}if(n==="tasknotes-service"){await this.refreshCalendarWithFreshData(t);return}this.debouncedRefresh()}debouncedRefresh(){this.updateDebounceTimer&&window.clearTimeout(this.updateDebounceTimer);let t=this.containerEl.ownerDocument.defaultView||window;this.updateDebounceTimer=t.setTimeout(()=>{this.updateDebounceTimer=null,this.renderPreservingEphemeralState()},300)}renderPreservingEphemeralState(){let t=this.getEphemeralState();this.render().catch(n=>{Qr.error("[TaskNotes][CalendarView] Render error:",{category:"provider",operation:"render",error:n}),this.renderError(n instanceof Error?n:new Error(String(n)))}).finally(()=>this.setEphemeralState(t))}renderError(t){if(!this.calendarEl)return;let n=this.calendarEl.ownerDocument,a=Ne(n,"div");a.className="tn-bases-error",a.classList.remove("tn-static-border-radius-4px-c290c56e","tn-static-border-radius-6px-0dc8408c","tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-0-11696618","tn-static-margin-0-auto-266e9b04","tn-static-margin-0-db0d5f36","tn-static-margin-0-var-size-4-2-77f7dc08","tn-static-margin-2px-0-edce9b14","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-0-16px-16px-16px-f1aa998c","tn-static-padding-0-41d7d7e2","tn-static-padding-12px-43bef435","tn-static-padding-16px-287f770e","tn-static-padding-20px-769fed37","tn-static-padding-20px-7a035d95","tn-static-padding-2px-8px-c8eea84a","tn-static-padding-2rem-42aa6d9c"),a.classList.add("tn-static-padding-20px-ebe8e48c"),a.textContent=`Error loading calendar: ${t.message||"Unknown error"}`,this.calendarEl.appendChild(a)}onunload(){this._saveViewTypeTimer&&(window.clearTimeout(this._saveViewTypeTimer),this._saveViewTypeTimer=null),this.calendar&&(this.calendar.destroy(),this.calendar=null),this.calendarEl=null,this.currentTasks=[]}getEphemeralState(){let t=super.getEphemeralState(),n=Iy(t)?t:{};if(this.calendar){let a=this.calendar.getDate();return{...n,calendarDate:a?a.toISOString():null,calendarScroll:JOt(this.calendarEl)}}return t}setEphemeralState(t){if(super.setEphemeralState(t),!!BOt(t)){if(this.calendar&&typeof t.calendarDate=="string")try{this.calendar.gotoDate(new Date(t.calendarDate))}catch(n){Qr.debug("[CalendarView] Failed to restore calendar date:",{category:"provider",operation:"restore-calendar-date",error:n})}if(Array.isArray(t.calendarScroll)){let n=this.containerEl.ownerDocument.defaultView||window,a=()=>{XOt(this.calendarEl,t.calendarScroll)};n.requestAnimationFrame(()=>{a(),n.requestAnimationFrame(a)})}}}}});function zqe(r){if(r==null||typeof r=="string"&&r.trim()==="")return Ny;let e=typeof r=="number"?r:typeof r=="string"?Number(r.trim()):NaN;return Number.isFinite(e)?Math.max(1,Math.round(e)):Ny}function tLt(r,e=Ny){let t=Math.max(0,Math.floor(r));if(t===0)return"none";let n=zqe(e);if(t>=n)return"very-high";let a=t/n;return a<=1/Ny?"low":a<=.5?"medium":"high"}function Lqe(r){return(0,Ki.moment)(r)}function jqe(r){return function(e,t){if(!t)throw _f.error("[TaskNotes][MiniCalendarView] No containerEl provided",{category:"provider",operation:"no-containerel-provided"}),new Error("MiniCalendarView requires a containerEl");return new wJ(e,t,r)}}var Ki,Si,_f,Ny,wJ,tz,SJ=y(()=>{Ki=require("obsidian");QP();Wr();Me();kr();Ct();Si=st(iu());w0();K();ms();_f=N({tag:"Bases/MiniCalendarView"}),Ny=6;wJ=class extends Rd{constructor(t,n,a){super(t,n,a);this.type="tasknotesMiniCalendar";this.calendarEl=null;this.dateProperty=null;this.titleProperty=null;this.heatMapMaxCount=Ny;this.icsCalendarToggles=new Map;this.googleCalendarToggles=new Map;this.microsoftCalendarToggles=new Map;this.configLoaded=!1;this.isInitialRender=!0;this.shouldRestoreFocus=!1;this.multiSelectMode=!1;this.selectedDates=new Set;this.notesByDate=new Map;this.monthCalculationCache=new Map;this.keyboardHandler=null;this.dataAdapter.basesView=this;let i=Er(),s=wn(i);this.selectedDate=s,this.displayedMonth=s.getUTCMonth(),this.displayedYear=s.getUTCFullYear()}onload(){this.readViewOptions(),super.onload()}readViewOptions(){if(!(!this.config||typeof this.config.get!="function"))try{this.dateProperty=this.config.get("dateProperty")||"file.ctime",this.titleProperty=this.config.get("titleProperty")||"file.name",this.heatMapMaxCount=zqe(this.config.get("heatMapMaxCount")),this.readCalendarToggles(),this.configLoaded=!0}catch(t){_f.error("[TaskNotes][MiniCalendarView] Error reading view options:",{category:"provider",operation:"reading-view-options",error:t})}}readCalendarToggles(){if(this.icsCalendarToggles.clear(),this.googleCalendarToggles.clear(),this.microsoftCalendarToggles.clear(),!this.config||typeof this.config.get!="function")return;let t=n=>this.config.get(n)!==!1;if(this.plugin.icsSubscriptionService)for(let n of this.plugin.icsSubscriptionService.getSubscriptions())this.icsCalendarToggles.set(n.id,t(`showICS_${n.id}`));if(this.plugin.googleCalendarService)for(let n of this.plugin.googleCalendarService.getAvailableCalendars())this.googleCalendarToggles.set(n.id,t(`showGoogleCalendar_${n.id}`));if(this.plugin.microsoftCalendarService)for(let n of this.plugin.microsoftCalendarService.getAvailableCalendars())this.microsoftCalendarToggles.set(n.id,t(`showMicrosoftCalendar_${n.id}`))}async render(){var t;if(!(!this.calendarEl||!this.rootElement)&&(t=this.data)!=null&&t.data){this.config&&this.readViewOptions();try{let n=this.containerEl.ownerDocument,a=this.calendarEl.querySelector(".mini-calendar-view__grid")===n.activeElement;this.calendarEl.empty();let i=this.data.data;this.indexNotesByDate(i),this.renderCalendarControls(),this.renderCalendarGrid(),(this.isInitialRender||this.shouldRestoreFocus||a)&&(this.isInitialRender&&(this.isInitialRender=!1),this.shouldRestoreFocus=!1,window.setTimeout(()=>{var l;let o=(l=this.calendarEl)==null?void 0:l.querySelector(".mini-calendar-view__grid");o&&o.focus()},10))}catch(n){_f.error("[TaskNotes][MiniCalendarView] Error rendering:",{category:"provider",operation:"rendering",error:n}),this.renderError(n instanceof Error?n:new Error(String(n)))}}}indexNotesByDate(t){var n;if(this.notesByDate.clear(),!this.dateProperty){this.indexExternalCalendarEvents();return}for(let a of t)try{let i=a.file;if(!i)continue;let s=this.getDateValueFromProperty(a,this.dateProperty);if(!s)continue;let o=de(s);if(!o)continue;let l=i.basename||i.name;if(this.titleProperty)try{let u=(n=a.getValue)==null?void 0:n.call(a,this.titleProperty);if(u!=null)if(typeof u=="object"&&u.toString){let p=u.toString();p&&p!=="null"&&p!==""&&(l=p)}else if(typeof u=="string")l=u;else{let p=J(u);p&&p!=="null"&&p!==""&&(l=p)}else{let p=this.dataAdapter.getPropertyValue(a,this.titleProperty);if(p!=null)if(typeof p=="object"){let m=J(p);m&&m!=="null"&&m!==""&&(l=m)}else if(typeof p=="string")l=p;else{let m=J(p);m&&m!=="null"&&m!==""&&(l=m)}}}catch(u){_f.warn("[TaskNotes][MiniCalendarView] Error getting title property:",{category:"provider",operation:"getting-title-property",error:u})}let c={kind:"note",file:i,title:l,path:i.path,dateValue:s,basesEntry:a};this.notesByDate.has(o)||this.notesByDate.set(o,[]);let d=this.notesByDate.get(o);d&&d.push(c)}catch(i){_f.warn("[TaskNotes][MiniCalendarView] Error indexing note:",{category:"provider",operation:"indexing-note",error:i})}this.indexExternalCalendarEvents()}addEntryToDate(t,n){var a;this.notesByDate.has(t)||this.notesByDate.set(t,[]),(a=this.notesByDate.get(t))==null||a.push(n)}indexExternalCalendarEvents(){this.indexICSEvents(),this.indexGoogleCalendarEvents(),this.indexMicrosoftCalendarEvents()}indexICSEvents(){if(!this.plugin.icsSubscriptionService)return;let t=new Map(this.plugin.icsSubscriptionService.getSubscriptions().map(n=>[n.id,n]));for(let n of this.plugin.icsSubscriptionService.getAllEvents()){if(this.icsCalendarToggles.get(n.subscriptionId)===!1)continue;let a=t.get(n.subscriptionId);a&&!a.enabled||this.indexExternalEvent(n,(a==null?void 0:a.name)||"Calendar subscription",n.color||(a==null?void 0:a.color))}}indexGoogleCalendarEvents(){if(!this.plugin.googleCalendarService)return;let t=new Map(this.plugin.googleCalendarService.getAvailableCalendars().map(n=>[n.id,n]));for(let n of this.plugin.googleCalendarService.getAllEvents()){let a=n.subscriptionId.replace("google-","");if(this.googleCalendarToggles.get(a)===!1)continue;let i=t.get(a);this.indexExternalEvent(n,(i==null?void 0:i.summary)||"Google Calendar",n.color||"#4285F4")}}indexMicrosoftCalendarEvents(){if(!this.plugin.microsoftCalendarService)return;let t=new Map(this.plugin.microsoftCalendarService.getAvailableCalendars().map(n=>[n.id,n]));for(let n of this.plugin.microsoftCalendarService.getAllEvents()){let a=n.subscriptionId.replace("microsoft-","");if(this.microsoftCalendarToggles.get(a)===!1)continue;let i=t.get(a);this.indexExternalEvent(n,(i==null?void 0:i.summary)||"Microsoft Calendar",n.color||"#0078D4")}}indexExternalEvent(t,n,a){for(let i of this.getDateKeysForExternalEvent(t))this.addEntryToDate(i,{kind:"external",title:t.title,path:n,dateValue:t.start,externalEvent:t,sourceName:n,color:a})}getDateKeysForExternalEvent(t){let n=this.extractDateFromString(t.start);if(!n)return[];let a=this.extractDateFromString(t.end||"");if(!a||a===n)return[n];let i=this.createUTCDateFromDateKey(n),s=this.createUTCDateFromDateKey(a);if(!i||!s)return[n];if(t.allDay&&s.setUTCDate(s.getUTCDate()-1),s<i)return[n];let o=[],l=new Date(i.getTime());for(let c=0;l<=s&&c<370;c++)o.push(ce(l)),l.setUTCDate(l.getUTCDate()+1);return o.length>0?o:[n]}createUTCDateFromDateKey(t){let n=t.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!n)return null;let[,a,i,s]=n;return y_(Number(a),Number(i)-1,Number(s))}getDateValueFromProperty(t,n){try{let a=this.dataAdapter.getPropertyValue(t,n);if(!a)return null;if(typeof a=="string")return this.extractDateFromString(a);if(typeof a=="number")return this.toAnchoredDateString(new Date(a));if(a instanceof Date)return this.toAnchoredDateString(a);if(typeof a=="object"){let i=a.date;if(i instanceof Date)return this.toAnchoredDateString(i);let s=a.toISOString;if(typeof s=="function")return this.extractDateFromString(s.call(a))}return null}catch(a){return _f.warn("[TaskNotes][MiniCalendarView] Error getting date value:",{category:"provider",operation:"getting-date-value",error:a}),null}}extractDateFromString(t){let n=t==null?void 0:t.trim();if(!n)return null;if(/^\d{4}-\d{2}-\d{2}$/.test(n))return this.validateCalendarDate(n);if(n.includes("T")||/\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}/.test(n)||/[+-]\d{2}:\d{2}$/.test(n)){let s=n.includes(" ")&&!n.includes("T")?n.replace(" ","T"):n,o=new Date(s);if(!isNaN(o.getTime()))return this.toAnchoredDateString(o)}let a=n.match(/^(\d{4})[/.](\d{2})[/.](\d{2})$/);if(a){let[,s,o,l]=a;return this.validateCalendarDate(`${s}-${o}-${l}`)}let i=n.match(/(\d{4}-\d{2}-\d{2})/);return i?this.validateCalendarDate(i[1]):null}toAnchoredDateString(t){if(!(t instanceof Date)||isNaN(t.getTime()))return null;let n=wn(t);return ce(n)}validateCalendarDate(t){if(!t)return null;let a=t.trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!a)return null;let[,i,s,o]=a,l=Number(i),c=Number(s)-1,d=Number(o);if(Number.isNaN(l)||Number.isNaN(c)||Number.isNaN(d))return null;let u=y_(l,c,d);return u.getUTCFullYear()!==l||u.getUTCMonth()!==c||u.getUTCDate()!==d?null:ce(u)}renderCalendarControls(){if(!this.calendarEl)return;let n=this.calendarEl.createDiv({cls:"mini-calendar-view__controls"}).createDiv({cls:"mini-calendar-view__header"}),a=n.createDiv({cls:"mini-calendar-view__navigation"});a.createEl("button",{text:"\u2039",cls:"mini-calendar-view__nav-button mini-calendar-view__nav-button--prev tn-btn tn-btn--icon tn-btn--ghost",attr:{"aria-label":"Previous month",title:"Previous month"}}).addEventListener("click",()=>this.navigateToPreviousMonth()),a.createDiv({cls:"mini-calendar-view__month-display",text:M(ku(this.selectedDate),"MMMM yyyy")}),a.createEl("button",{text:"\u203A",cls:"mini-calendar-view__nav-button mini-calendar-view__nav-button--next tn-btn tn-btn--icon tn-btn--ghost",attr:{"aria-label":"Next month",title:"Next month"}}).addEventListener("click",()=>this.navigateToNextMonth()),n.createEl("button",{text:"Today",cls:"mini-calendar-view__today-button tn-btn tn-btn--ghost tn-btn--sm",attr:{"aria-label":"Go to today",title:"Go to today"}}).addEventListener("click",()=>this.navigateToToday())}renderCalendarGrid(){if(!this.calendarEl)return;let t=this.calendarEl.createDiv({cls:"mini-calendar-view__grid-container"}),n=this.displayedMonth,a=this.displayedYear,i=new Date(Date.UTC(a,n,1)),s=new Date(Date.UTC(a,n+1,0)),o=this.plugin.settings.calendarViewSettings.firstDay||0,l=(i.getUTCDay()-o+7)%7,c=t.createDiv({cls:"mini-calendar-view__grid",attr:{role:"grid","aria-label":`Calendar for ${M(ku(new Date(Date.UTC(a,n,1))),"MMMM yyyy")}`,tabindex:"0"}});this.setupKeyboardNavigation(c),c.addEventListener("click",()=>{c.focus()});let d=c.createDiv({cls:"mini-calendar-view__grid-header",attr:{role:"row"}});d.createDiv({text:"",cls:"mini-calendar-view__week-header",attr:{role:"columnheader"}});let u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];[...u.slice(o),...u.slice(0,o)].forEach(w=>{d.createDiv({text:w,cls:"mini-calendar-view__day-header",attr:{role:"columnheader","aria-label":w}})});let m=l,f=42,h=s.getUTCDate(),g=f-h-m,v=new Date(Date.UTC(a,n,0)).getUTCDate(),b=[],k=[];for(let w=0;w<m;w++){let S=v-m+w+1,C=new Date(Date.UTC(a,n-1,S));k.push(C)}for(let w=1;w<=h;w++){k.length===7&&(b.push(k),k=[]);let S=new Date(Date.UTC(a,n,w));k.push(S)}for(let w=1;w<=g;w++){k.length===7&&(b.push(k),k=[]);let S=new Date(Date.UTC(a,n+1,w));k.push(S)}k.length>0&&b.push(k),b.forEach(w=>{this.renderWeekRow(c,w)})}renderWeekRow(t,n){let a=t.createDiv({cls:"mini-calendar-view__week",attr:{role:"row"}}),i=this.getWeekNumber(n[0]),s=a.createDiv({cls:"mini-calendar-week-number",text:`W${i}`});s.addEventListener("click",o=>{var c;o.preventDefault(),o.stopPropagation(),this.selectWeek(n);let l=(c=this.calendarEl)==null?void 0:c.querySelector(".mini-calendar-view__grid");l&&l.focus()}),s.addEventListener("contextmenu",o=>{o.preventDefault(),o.stopPropagation(),this.showWeekContextMenu(o,n[0])}),n.forEach((o,l)=>{let c=this.displayedMonth,d=this.displayedYear,u=o.getUTCMonth()!==c||o.getUTCFullYear()!==d,p=o.getUTCDate();this.renderDay(a,o,p,u)})}renderDay(t,n,a,i){let s=Er(),o=wn(s),l=Y2(n,o),c=Y2(n,this.selectedDate),d="mini-calendar-view__day";l&&(d+=" mini-calendar-view__day--today"),c&&(d+=" mini-calendar-view__day--selected"),i&&(d+=" mini-calendar-view__day--outside-month");let u=t.createDiv({cls:d,text:a.toString(),attr:{role:"gridcell","aria-label":M(ku(n),"EEEE, MMMM d, yyyy")+(l?" (Today)":""),"aria-selected":c?"true":"false","aria-current":l?"date":null}}),p=ce(n),m=this.notesByDate.get(p);if(m&&m.length>0){let f=this.getHeatMapIntensity(m.length);u.addClass(`mini-calendar-view__day--intensity-${f}`);let h=this.createNotePreviewText(m);(0,Ki.setTooltip)(u,h,{placement:"top"}),this.renderExternalEventIndicators(u,m)}u.addEventListener("click",f=>{var g;f.preventDefault(),f.stopPropagation(),this.handleDayClick(n,f);let h=(g=this.calendarEl)==null?void 0:g.querySelector(".mini-calendar-view__grid");h&&h.focus()}),u.addEventListener("contextmenu",f=>{f.preventDefault(),f.stopPropagation(),this.showDayContextMenu(f,n)})}async handleDayClick(t,n){if(this.selectedDate=t,n&&(n.ctrlKey||n.metaKey)){await this.openDailyNoteForDate(t);return}this.refresh();let a=ce(t),i=this.notesByDate.get(a);i&&i.length>0&&new tz(this.plugin.app,this.plugin,i,o=>{o&&this.openCalendarEntry(o)}).open()}renderExternalEventIndicators(t,n){let a=n.filter(s=>s.kind==="external");if(a.length===0)return;let i=t.createDiv({cls:"mini-calendar-view__external-event-indicators"});for(let s of a){let o=i.createSpan({cls:"mini-calendar-view__external-event-dot",attr:{"aria-label":`${s.title} (${s.sourceName||"Calendar"})`}});s.color&&(o.style.backgroundColor=s.color)}}openCalendarEntry(t){if(t.file){this.plugin.app.workspace.getLeaf(!1).openFile(t.file);return}t.externalEvent&&new $d(this.plugin.app,this.plugin,t.externalEvent,t.sourceName).open()}showDayContextMenu(t,n){let a=new Ki.Menu;a.addItem(i=>{i.setTitle(this.plugin.i18n.translate("views.miniCalendar.contextMenu.openDailyNote")),i.setIcon("calendar-days"),i.onClick(()=>{this.openDailyNoteForDate(n)})}),a.showAtMouseEvent(t)}showWeekContextMenu(t,n){let a=new Ki.Menu;a.addItem(i=>{i.setTitle(this.plugin.i18n.translate("views.miniCalendar.contextMenu.openWeeklyNote")),i.setIcon("calendar-range"),i.onClick(()=>{this.openWeeklyNoteForDate(n)})}),a.showAtMouseEvent(t)}async openDailyNoteForDate(t){if(!(0,Si.appHasDailyNotesPluginLoaded)()){new Ki.Notice("Daily notes core plugin is not enabled. Please enable it in settings > core plugins.");return}let n=ku(t),a=new Date(n.getFullYear(),n.getMonth(),n.getDate(),12,0,0,0),i=Lqe(a),s=(0,Si.getAllDailyNotes)(),o=(0,Si.getDailyNote)(i,s);if(!o)try{o=await(0,Si.createDailyNote)(i)}catch(l){let c=l instanceof Error?l.message:String(l);_f.error("Failed to create daily note:",{category:"provider",operation:"create-daily-note",error:l}),new Ki.Notice(`Failed to create daily note: ${c}`);return}o&&await this.plugin.app.workspace.getLeaf(!1).openFile(o)}async openWeeklyNoteForDate(t){if(!(0,Si.appHasWeeklyNotesPluginLoaded)()){new Ki.Notice("Weekly notes core plugin is not enabled. Please enable it in settings > core plugins.");return}let n=ku(t),a=new Date(n.getFullYear(),n.getMonth(),n.getDate(),12,0,0,0),i=Lqe(a),s=(0,Si.getAllWeeklyNotes)(),o=(0,Si.getWeeklyNote)(i,s);if(!o)try{o=await(0,Si.createWeeklyNote)(i)}catch(l){let c=l instanceof Error?l.message:String(l);_f.error("Failed to create weekly note:",{category:"provider",operation:"create-weekly-note",error:l}),new Ki.Notice(`Failed to create weekly note: ${c}`);return}o&&await this.plugin.app.workspace.getLeaf(!1).openFile(o)}navigateToPreviousMonth(){let t=new Date(this.selectedDate.getTime());t.setUTCMonth(this.selectedDate.getUTCMonth()-1),this.selectedDate=t,this.displayedMonth=t.getUTCMonth(),this.displayedYear=t.getUTCFullYear(),this.monthCalculationCache.clear(),this.shouldRestoreFocus=!0,this.refresh()}navigateToNextMonth(){let t=new Date(this.selectedDate.getTime());t.setUTCMonth(this.selectedDate.getUTCMonth()+1),this.selectedDate=t,this.displayedMonth=t.getUTCMonth(),this.displayedYear=t.getUTCFullYear(),this.monthCalculationCache.clear(),this.shouldRestoreFocus=!0,this.refresh()}navigateToToday(){let t=Er(),n=wn(t);this.selectedDate=n,this.displayedMonth=n.getUTCMonth(),this.displayedYear=n.getUTCFullYear(),this.monthCalculationCache.clear(),this.shouldRestoreFocus=!0,this.refresh()}setupKeyboardNavigation(t){this.keyboardHandler&&t.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=n=>{(async()=>{if(n.key==="ArrowLeft"||n.key==="ArrowRight"||n.key==="ArrowUp"||n.key==="ArrowDown"){n.preventDefault(),this.navigateByArrowKey(n.key);return}if(n.key==="PageUp"){n.preventDefault(),n.shiftKey?this.navigateToYear(-1):this.navigateToPreviousMonth();return}if(n.key==="PageDown"){n.preventDefault(),n.shiftKey?this.navigateToYear(1):this.navigateToNextMonth();return}if(n.key==="Home"){n.preventDefault(),n.ctrlKey||n.metaKey?this.navigateToStartOfMonth():this.navigateToStartOfWeek();return}if(n.key==="End"){n.preventDefault(),n.ctrlKey||n.metaKey?this.navigateToEndOfMonth():this.navigateToEndOfWeek();return}if(n.key==="t"||n.key==="T"){n.preventDefault(),this.navigateToToday();return}if(n.key==="Escape"){this.multiSelectMode&&(n.preventDefault(),this.multiSelectMode=!1,this.selectedDates.clear(),this.refresh());return}if(n.key==="Enter"||n.key===" "){n.preventDefault(),n.ctrlKey||n.metaKey?await this.openDailyNoteForDate(this.selectedDate):await this.handleDayClick(this.selectedDate);return}})()},t.addEventListener("keydown",this.keyboardHandler)}navigateByArrowKey(t){let n=new Date(this.selectedDate.getTime());switch(t){case"ArrowLeft":n.setUTCDate(n.getUTCDate()-1);break;case"ArrowRight":n.setUTCDate(n.getUTCDate()+1);break;case"ArrowUp":n.setUTCDate(n.getUTCDate()-7);break;case"ArrowDown":n.setUTCDate(n.getUTCDate()+7);break}this.selectedDate=n,(n.getUTCMonth()!==this.displayedMonth||n.getUTCFullYear()!==this.displayedYear)&&(this.displayedMonth=n.getUTCMonth(),this.displayedYear=n.getUTCFullYear(),this.monthCalculationCache.clear()),this.shouldRestoreFocus=!0,this.refresh()}navigateToStartOfWeek(){let t=this.plugin.settings.calendarViewSettings.firstDay||0,a=(this.selectedDate.getUTCDay()-t+7)%7,i=new Date(this.selectedDate.getTime());i.setUTCDate(i.getUTCDate()-a),this.selectedDate=i,(i.getUTCMonth()!==this.displayedMonth||i.getUTCFullYear()!==this.displayedYear)&&(this.displayedMonth=i.getUTCMonth(),this.displayedYear=i.getUTCFullYear(),this.monthCalculationCache.clear()),this.shouldRestoreFocus=!0,this.refresh()}navigateToEndOfWeek(){let t=this.plugin.settings.calendarViewSettings.firstDay||0,n=this.selectedDate.getUTCDay(),i=((t+6)%7-n+7)%7,s=new Date(this.selectedDate.getTime());s.setUTCDate(s.getUTCDate()+i),this.selectedDate=s,(s.getUTCMonth()!==this.displayedMonth||s.getUTCFullYear()!==this.displayedYear)&&(this.displayedMonth=s.getUTCMonth(),this.displayedYear=s.getUTCFullYear(),this.monthCalculationCache.clear()),this.shouldRestoreFocus=!0,this.refresh()}navigateToStartOfMonth(){let t=new Date(Date.UTC(this.selectedDate.getUTCFullYear(),this.selectedDate.getUTCMonth(),1));this.selectedDate=t,this.shouldRestoreFocus=!0,this.refresh()}navigateToEndOfMonth(){let t=new Date(Date.UTC(this.selectedDate.getUTCFullYear(),this.selectedDate.getUTCMonth()+1,0));this.selectedDate=t,this.shouldRestoreFocus=!0,this.refresh()}navigateToYear(t){let n=new Date(this.selectedDate.getTime());n.setUTCFullYear(n.getUTCFullYear()+t),this.selectedDate=n,this.displayedMonth=n.getUTCMonth(),this.displayedYear=n.getUTCFullYear(),this.monthCalculationCache.clear(),this.shouldRestoreFocus=!0,this.refresh()}getWeekNumber(t){let n=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())),a=n.getUTCDay()||7;n.setUTCDate(n.getUTCDate()+4-a);let i=new Date(Date.UTC(n.getUTCFullYear(),0,1));return Math.ceil(((n.getTime()-i.getTime())/864e5+1)/7)}selectWeek(t){this.multiSelectMode=!0,this.selectedDates.clear(),t.forEach(n=>{this.selectedDates.add(ce(n))}),this.shouldRestoreFocus=!0,this.refresh(),this.showCombinedNotes()}showCombinedNotes(){let t=[];this.selectedDates.forEach(n=>{let a=this.notesByDate.get(n);a&&t.push(...a)}),t.length>0?new tz(this.plugin.app,this.plugin,t,a=>{a&&this.openCalendarEntry(a)}).open():new Ki.Notice("No notes found for selected dates")}createNotePreviewText(t){let n=[],a=t.filter(s=>s.kind==="note").length,i=t.length-a;return a>0&&i>0?n.push(`${a} note${a>1?"s":""}, ${i} event${i>1?"s":""}`):i>0?n.push(`${i} event${i>1?"s":""}`):n.push(`${a} note${a>1?"s":""}`),n.push(""),t.slice(0,5).forEach(s=>{var c,d;let o=`\u2022 ${s.title}`;if(s.kind==="external"){s.sourceName&&(o+=` (${s.sourceName})`),n.push(o);return}let l=(d=(c=s.basesEntry)==null?void 0:c.getValue)==null?void 0:d.call(c,"note.type");if(l){let u=null;if(typeof l=="object"&&l.toString){let p=l.toString();p&&p!=="null"&&p!==""&&(u=p)}else typeof l=="string"&&(u=l);u&&(o+=` (${u})`)}n.push(o)}),t.length>5&&n.push(`+ ${t.length-5} more...`),n.join(`
|
||
`)}getHeatMapIntensity(t){return tLt(t,this.heatMapMaxCount)}setupContainer(){var a;super.setupContainer();let t=this.containerEl.ownerDocument,n=Ne(t,"div");n.className="mini-calendar-bases-view",(a=this.rootElement)==null||a.appendChild(n),this.calendarEl=n}async handleTaskUpdate(t){this.debouncedRefresh()}renderError(t){if(!this.calendarEl)return;let n=this.calendarEl.ownerDocument,a=Ne(n,"div");a.className="tn-bases-error",a.classList.remove("tn-static-border-radius-4px-c290c56e","tn-static-border-radius-6px-0dc8408c","tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-text-warning-783d5f03","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-0-11696618","tn-static-margin-0-auto-266e9b04","tn-static-margin-0-db0d5f36","tn-static-margin-0-var-size-4-2-77f7dc08","tn-static-margin-2px-0-edce9b14","tn-static-margin-8px-0-0-0-a2eb8382","tn-static-padding-0-16px-16px-16px-f1aa998c","tn-static-padding-0-41d7d7e2","tn-static-padding-12px-43bef435","tn-static-padding-16px-287f770e","tn-static-padding-20px-769fed37","tn-static-padding-20px-7a035d95","tn-static-padding-2px-8px-c8eea84a","tn-static-padding-2rem-42aa6d9c"),a.classList.add("tn-static-padding-20px-ebe8e48c"),a.textContent=`Error loading mini calendar: ${t.message||"Unknown error"}`,this.calendarEl.appendChild(a)}onunload(){this.calendarEl=null,this.notesByDate.clear(),this.monthCalculationCache.clear(),this.keyboardHandler=null}},tz=class extends Ki.FuzzySuggestModal{constructor(e,t,n,a){super(e),this.plugin=t,this.notes=n,this.onChooseNote=a,this.setPlaceholder("Select an item to open"),this.setInstructions([{command:"\u2191\u2193",purpose:"Navigate"},{command:"\u21B5",purpose:"Open item"},{command:"esc",purpose:"Dismiss"}])}getItems(){return this.notes.sort((e,t)=>e.title.localeCompare(t.title))}getItemText(e){return e.title}renderSuggestion(e,t){let n=e.item,a=t.createDiv({cls:"note-selector-modal__suggestion"});a.createDiv({cls:"note-selector-modal__title",text:n.title});let i=n.kind==="external"&&n.sourceName||n.path;i!==n.title&&a.createDiv({cls:"note-selector-modal__path",text:i})}onChooseItem(e,t){this.onChooseNote(e)}}});function rLt(r,e=xJ){var t,n;try{let a=r.internalPlugins;if(!a)return e.debug("Internal plugins manager not available",{category:"configuration",operation:"get-api"}),null;let i=(t=a.getEnabledPluginById)==null?void 0:t.call(a,"bases");return i?!i.registrations||typeof i.registrations!="object"?(e.warn("Bases plugin found but registrations API is not available",{category:"provider",operation:"get-api"}),null):{registrations:i.registrations,isEnabled:!0,version:((n=i.manifest)==null?void 0:n.version)||"unknown"}:(e.debug("Bases plugin not found or not enabled",{category:"configuration",operation:"get-api"}),null)}catch(a){return e.warn("Error accessing Bases plugin API",{category:"provider",operation:"get-api",error:a}),null}}function E0(r,e,t,n=xJ){if(typeof r.registerBasesView=="function")try{return r.registerBasesView(e,t)?(n.debug("Successfully registered view via public API",{category:"configuration",operation:"register-view",details:{viewId:e}}),!0):(n.debug("Public API returned false",{category:"configuration",operation:"register-view",details:{viewId:e}}),!1)}catch(a){return a instanceof Error&&a.message.includes("already exists")?(n.debug("View already registered via public API",{category:"configuration",operation:"register-view",details:{viewId:e}}),!0):(n.warn("Public API registration failed",{category:"provider",operation:"register-view",details:{viewId:e},error:a}),!1)}return n.warn("Cannot register view because Bases public API is not available",{category:"configuration",operation:"register-view",details:{viewId:e}}),!1}function D0(r,e,t=xJ){let n=rLt(r.app,t);if(!n)return!0;try{return n.registrations[e]&&delete n.registrations[e],!0}catch(a){return t.error("Error unregistering view",{category:"provider",operation:"unregister-view",details:{viewId:e},error:a}),!1}}var xJ,$qe=y(()=>{K();xJ=N({tag:"Bases/API"})});function P0(r){return r.startsWith("note.")||r.startsWith("file.")||r.startsWith("formula.")}var Bqe=y(()=>{});function Uqe(r){return e=>r.i18n.translate(`views.basesCalendar.settings.${e}`)}function Hqe(r,e,t){let n=r.get(e);return n==null?t:n}function aLt(r,e,t){let n=Hqe(r,e,t);return typeof n=="string"?n:t}function M0(r,e,t){let n=Hqe(r,e,t);return typeof n=="boolean"?n:t}function iLt(r,e){let t=r.get(e);return t==null?!1:typeof t=="string"?t.trim().length>0:!0}function YT(r,e){return aLt(r,"calendarView",e)}function CJ(r){return r==="timeGridWeek"||r==="timeGridCustom"||r==="timeGridDay"}function Vqe(r){return r==="dayGridMonth"||r==="multiMonthYear"}function sLt(r){return r==="timeGridWeek"||r==="timeGridCustom"}function rz(r,e,t){return t(YT(r,e))}function oLt(r){return{0:r.i18n.translate("common.weekdays.sunday"),1:r.i18n.translate("common.weekdays.monday"),2:r.i18n.translate("common.weekdays.tuesday"),3:r.i18n.translate("common.weekdays.wednesday"),4:r.i18n.translate("common.weekdays.thursday"),5:r.i18n.translate("common.weekdays.friday"),6:r.i18n.translate("common.weekdays.saturday")}}function qqe(r,e){var s,o,l,c,d,u;let t=[],n=(o=(s=r.icsSubscriptionService)==null?void 0:s.getSubscriptions())!=null?o:[];n.length>0&&t.push({type:"group",displayName:e("groups.calendarSubscriptions"),items:n.map(p=>({type:"toggle",key:`showICS_${p.id}`,displayName:p.name,default:!0}))});let a=(c=(l=r.googleCalendarService)==null?void 0:l.getAvailableCalendars())!=null?c:[];a.length>0&&t.push({type:"group",displayName:e("groups.googleCalendars")||"Google Calendars",items:a.map(p=>({type:"toggle",key:`showGoogleCalendar_${p.id}`,displayName:p.summary||p.id,default:!0}))});let i=(u=(d=r.microsoftCalendarService)==null?void 0:d.getAvailableCalendars())!=null?u:[];return i.length>0&&t.push({type:"group",displayName:e("groups.microsoftCalendars")||"Microsoft Calendars",items:i.map(p=>({type:"toggle",key:`showMicrosoftCalendar_${p.id}`,displayName:p.summary||p.id,default:!0}))}),t}function lLt(r,e,t){let n=r.settings.calendarViewSettings;return{type:"group",displayName:t("groups.events"),items:[{type:"toggle",key:"showScheduled",displayName:t("events.showScheduledTasks"),default:n.defaultShowScheduled},{type:"toggle",key:"showDue",displayName:t("events.showDueTasks"),default:n.defaultShowDue},{type:"toggle",key:"showOverdueOnToday",displayName:t("events.showOverdueOnToday"),default:!1,shouldHide:()=>YT(e,n.defaultView)!=="listWeek"},{type:"toggle",key:"showScheduledToDueSpan",displayName:t("layout.spanScheduledToDue"),default:n.defaultShowScheduledToDueSpan,shouldHide:()=>!M0(e,"showScheduled",n.defaultShowScheduled)||!M0(e,"showDue",n.defaultShowDue)},{type:"toggle",key:"showRecurring",displayName:t("events.showRecurringTasks"),default:n.defaultShowRecurring},{type:"toggle",key:"showCompletedRecurringInstances",displayName:t("events.showCompletedRecurringInstances"),default:!0,shouldHide:()=>!M0(e,"showRecurring",n.defaultShowRecurring)},{type:"toggle",key:"showSkippedRecurringInstances",displayName:t("events.showSkippedRecurringInstances"),default:!0,shouldHide:()=>!M0(e,"showRecurring",n.defaultShowRecurring)},{type:"toggle",key:"showTimeEntries",displayName:t("events.showTimeEntries"),default:n.defaultShowTimeEntries},{type:"toggle",key:"showTimeblocks",displayName:t("events.showTimeblocks"),default:n.defaultShowTimeblocks},{type:"toggle",key:"showPropertyBasedEvents",displayName:t("events.showPropertyBasedEvents"),default:!0}]}}function cLt(r,e){return{type:"group",displayName:e("groups.dateNavigation"),items:[{type:"text",key:"initialDate",displayName:e("dateNavigation.navigateToDate"),default:"",placeholder:e("dateNavigation.navigateToDatePlaceholder")},{type:"property",key:"initialDateProperty",displayName:e("dateNavigation.navigateToDateFromProperty"),placeholder:e("dateNavigation.navigateToDateFromPropertyPlaceholder"),filter:t=>t.startsWith("note.")||t.startsWith("file.")},{type:"dropdown",key:"initialDateStrategy",displayName:e("dateNavigation.propertyNavigationStrategy"),default:"first",options:{first:e("dateNavigation.strategies.first"),earliest:e("dateNavigation.strategies.earliest"),latest:e("dateNavigation.strategies.latest")},shouldHide:()=>!iLt(r,"initialDateProperty")},{type:"toggle",key:"createDailyNotesFromDateLinks",displayName:e("dateNavigation.createDailyNotesFromDateLinks"),default:!0}]}}function dLt(r,e,t){let n=r.settings.calendarViewSettings,a=n.defaultView;return{type:"group",displayName:t("groups.view"),items:[{type:"dropdown",key:"calendarView",displayName:t("layout.calendarView"),default:a,options:nLt},{type:"slider",key:"customDayCount",displayName:t("layout.customDayCount"),default:n.customDayCount||3,min:1,max:14,step:1,shouldHide:()=>YT(e,a)!=="timeGridCustom"},{type:"slider",key:"listDayCount",displayName:t("layout.listDayCount"),default:7,min:1,max:365,step:1,shouldHide:()=>YT(e,a)!=="listWeek"},{type:"dropdown",key:"heightMode",displayName:t("layout.heightMode"),default:"fill",options:{fill:t("layout.heightModeFill"),auto:t("layout.heightModeAuto")}}]}}function uLt(r,e,t){let n=r.settings.calendarViewSettings,a=n.defaultView;return{type:"group",displayName:t("groups.display"),items:[{type:"dropdown",key:"firstDay",displayName:t("layout.weekStartsOn"),default:String(n.firstDay),options:oLt(r)},{type:"dropdown",key:"timeFormat",displayName:t("layout.timeFormat"),default:n.timeFormat,options:{12:t("layout.timeFormat12"),24:t("layout.timeFormat24")}},{type:"toggle",key:"weekNumbers",displayName:t("layout.showWeekNumbers"),default:n.weekNumbers,shouldHide:()=>YT(e,a)==="listWeek"},{type:"toggle",key:"showWeekends",displayName:t("layout.showWeekends"),default:n.showWeekends},{type:"toggle",key:"showAllDaySlot",displayName:t("layout.showAllDaySlot"),default:!0},{type:"toggle",key:"showTodayHighlight",displayName:t("layout.showTodayHighlight"),default:n.showTodayHighlight},{type:"slider",key:"todayColumnWidthMultiplier",displayName:t("layout.todayColumnWidthMultiplier"),default:1,min:1,max:5,step:.5,shouldHide:()=>!rz(e,a,i=>sLt(i))},{type:"toggle",key:"enableSearch",displayName:t("layout.enableSearch"),default:!1}]}}function pLt(r,e){let t=r.settings.calendarViewSettings;return[{type:"text",key:"slotMinTime",displayName:e("layout.dayStartTime"),default:t.slotMinTime,placeholder:e("layout.dayStartTimePlaceholder")},{type:"text",key:"slotMaxTime",displayName:e("layout.dayEndTime"),default:t.slotMaxTime,placeholder:e("layout.dayEndTimePlaceholder")},{type:"text",key:"slotDuration",displayName:e("layout.timeSlotDuration"),default:t.slotDuration,placeholder:e("layout.timeSlotDurationPlaceholder")},{type:"text",key:"snapDuration",displayName:e("layout.dragDropResolution"),default:t.slotDuration,placeholder:e("layout.dragDropResolutionPlaceholder")},{type:"text",key:"scrollTime",displayName:e("layout.initialScrollTime"),default:t.scrollTime,placeholder:e("layout.initialScrollTimePlaceholder")},{type:"toggle",key:"nowIndicator",displayName:e("layout.showNowIndicator"),default:t.nowIndicator},{type:"toggle",key:"showTimeGrid",displayName:e("layout.showTimeGrid"),default:!0},{type:"toggle",key:"selectMirror",displayName:e("layout.showSelectionPreview"),default:t.selectMirror}]}function mLt(r,e,t){var o;let n=r.settings.calendarViewSettings,a=n.defaultView,i=()=>!rz(e,a,l=>CJ(l)),s=()=>!rz(e,a,l=>Vqe(l));return[{type:"toggle",key:"slotEventOverlap",displayName:t("layout.slotEventOverlap"),default:n.slotEventOverlap,shouldHide:i},{type:"slider",key:"eventMinHeight",displayName:t("layout.minimumEventHeight"),default:n.eventMinHeight,min:15,max:100,step:5,shouldHide:i},{type:"slider",key:"eventMaxStack",displayName:t("layout.eventMaxStack"),default:(o=n.eventMaxStack)!=null?o:0,min:0,max:10,step:1,shouldHide:i},{type:"slider",key:"dayMaxEvents",displayName:t("layout.dayMaxEvents"),default:typeof n.dayMaxEvents=="number"?n.dayMaxEvents:0,min:0,max:20,step:1,shouldHide:s},{type:"slider",key:"dayMaxEventRows",displayName:t("layout.dayMaxEventRows"),default:typeof n.dayMaxEventRows=="number"?n.dayMaxEventRows:0,min:0,max:10,step:1,shouldHide:s}]}function fLt(r,e){return{type:"group",displayName:e("groups.propertyBasedEvents"),shouldHide:()=>!M0(r,"showPropertyBasedEvents",!0),items:[{type:"property",key:"startDateProperty",displayName:e("propertyBasedEvents.startDateProperty"),placeholder:e("propertyBasedEvents.startDatePropertyPlaceholder"),filter:t=>P0(t)},{type:"property",key:"endDateProperty",displayName:e("propertyBasedEvents.endDateProperty"),placeholder:e("propertyBasedEvents.endDatePropertyPlaceholder"),filter:t=>P0(t)},{type:"property",key:"titleProperty",displayName:e("propertyBasedEvents.titleProperty"),placeholder:e("propertyBasedEvents.titlePropertyPlaceholder"),filter:t=>P0(t)}]}}function Wqe(r,e){let t=Uqe(r),n=r.settings.calendarViewSettings.defaultView;return[lLt(r,e,t),cLt(e,t),dLt(r,e,t),uLt(r,e,t),{type:"group",displayName:t("groups.timeGrid"),shouldHide:()=>!rz(e,n,a=>CJ(a)),items:pLt(r,t)},{type:"group",displayName:t("groups.eventLayout"),shouldHide:()=>{let a=YT(e,n);return!CJ(a)&&!Vqe(a)},items:mLt(r,e,t)},fLt(e,t),...qqe(r,t)]}function Yqe(r){let e=Uqe(r),t=[{type:"property",key:"dateProperty",displayName:"Date Property",placeholder:"Select property to show on calendar",default:"file.ctime",filter:n=>n.startsWith("note.")||n.startsWith("file.")||n.startsWith("task.")},{type:"property",key:"titleProperty",displayName:"Title Property",placeholder:"Select property to use as title",default:"file.name",filter:n=>P0(n)},{type:"slider",key:"heatMapMaxCount",displayName:"Max color note count",default:Ny,min:1,max:20,step:1}];return t.push(...qqe(r,e)),t}var nLt,Gqe=y(()=>{SJ();Bqe();nLt={dayGridMonth:"Month",timeGridWeek:"Week",timeGridCustom:"Custom days",timeGridDay:"Day",listWeek:"List",multiMonthYear:"Year"}});var Qqe={};at(Qqe,{registerBasesTaskList:()=>yLt,unregisterBasesViews:()=>EJ});async function yLt(r){if(!r.settings.enableBases||!(0,Zqe.requireApiVersion)("1.10.1"))return!1;let e=N({tag:"Bases/Registration",isDebugEnabled:()=>r.settings.enableDebugLogging});return(async()=>{try{let n=E0(r,"tasknotesTaskList",{name:"TaskNotes Task List",icon:"tasknotes-simple",factory:tHe(r),options:()=>[{type:"property",key:"subGroup",displayName:"Sub-group by",placeholder:"Select property for sub-grouping (optional)",filter:o=>o.startsWith("note.")||o.startsWith("task.")||o.startsWith("formula.")},{type:"toggle",key:"enableSearch",displayName:"Enable search box",default:!1},{type:"dropdown",key:"defaultCollapsedState",displayName:"Default collapsed state",default:"Expanded",options:gLt},{type:"dropdown",key:"expandedRelationshipFilterMode",displayName:"Expanded relationships",default:"inherit",options:Kqe},{type:"toggle",key:"hideTopLevelSubtasks",displayName:"Hide top-level subtasks",default:!1}]},e),a=E0(r,"tasknotesKanban",{name:"TaskNotes Kanban",icon:"tasknotes-simple",factory:BHe(r),options:()=>[{type:"property",key:"swimLane",displayName:"Swim Lane",placeholder:"Select property for swim lanes (optional)",filter:o=>o.startsWith("note.")||o.startsWith("task.")||o.startsWith("formula.")},{type:"slider",key:"columnWidth",displayName:"Column Width",default:280,min:200,max:500,step:20},{type:"slider",key:"maxSwimlaneHeight",displayName:"Max Swimlane Height",default:600,min:300,max:1200,step:50},{type:"toggle",key:"hideEmptyColumns",displayName:"Hide Empty Columns",default:!1},{type:"text",key:"pinnedColumns",displayName:"Pinned Columns",placeholder:"Comma-separated column values to keep visible",default:""},{type:"toggle",key:"hideEmptySwimLanes",displayName:"Hide Empty Swimlanes",default:!1},{type:"toggle",key:"enableSearch",displayName:"Enable search box",default:!1},{type:"toggle",key:"explodeListColumns",displayName:"Show items in multiple columns",default:!0},{type:"toggle",key:"consolidateStatusIcon",displayName:"Show status icon in column header only",default:!1},{type:"dropdown",key:"cardLayout",displayName:"Card layout",default:"default",options:hLt},{type:"text",key:"columnOrder",displayName:"Column Order (Advanced)",placeholder:"Auto-managed when dragging columns",default:"{}"},{type:"text",key:"swimLaneOrder",displayName:"Swim Lane Order (Advanced)",placeholder:"JSON object keyed by swim lane property",default:"{}"},{type:"dropdown",key:"expandedRelationshipFilterMode",displayName:"Expanded relationships",default:"inherit",options:Kqe},{type:"toggle",key:"hideTopLevelSubtasks",displayName:"Hide top-level subtasks",default:!1}]},e),i=E0(r,"tasknotesCalendar",{name:"TaskNotes Calendar",icon:"tasknotes-simple",factory:Fqe(r),options:o=>Wqe(r,o)},e),s=E0(r,"tasknotesMiniCalendar",{name:"TaskNotes Mini Calendar",icon:"tasknotes-simple",factory:jqe(r),options:()=>Yqe(r)},e);return!n&&!a&&!i&&!s?(e.debug("Bases plugin not available for registration",{category:"configuration",operation:"register-views"}),!1):!n||!a||!i||!s?(e.warn("Some TaskNotes Bases views failed to register",{category:"configuration",operation:"register-views",details:{taskListSuccess:n,kanbanSuccess:a,calendarSuccess:i,miniCalendarSuccess:s}}),!1):(r.app.workspace.iterateAllLeaves(o=>{var l,c;if(((c=(l=o.view)==null?void 0:l.getViewType)==null?void 0:c.call(l))==="bases"){let d=o.view;if(typeof d.refresh=="function")try{d.refresh()}catch(u){e.debug("Error refreshing Bases view after registration",{category:"provider",operation:"refresh-existing-view",error:u})}}}),!0)}catch(n){return e.warn("Registration attempt failed",{category:"provider",operation:"register-views",error:n}),!1}})()}function EJ(r){let e=N({tag:"Bases/Registration",isDebugEnabled:()=>r.settings.enableDebugLogging});try{D0(r,"tasknotesTaskList",e),D0(r,"tasknotesKanban",e),D0(r,"tasknotesCalendar",e),D0(r,"tasknotesMiniCalendar",e)}catch(t){e.error("Error during view unregistration",{category:"provider",operation:"unregister-views",error:t})}}var Zqe,hLt,gLt,Kqe,DJ=y(()=>{Zqe=require("obsidian");rHe();UHe();Oqe();SJ();$qe();Gqe();K();hLt={default:"Default",compact:"Compact"},gLt={Expanded:"Expanded",Collapsed:"Collapsed"},Kqe={inherit:"Inherit","show-all":"Show all"}});var Xqe=x(()=>{var Jqe;(function(r){(function(e){var t=typeof globalThis=="object"?globalThis:typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:o(),n=a(r);typeof t.Reflect!="undefined"&&(n=a(t.Reflect,n)),e(n,t),typeof t.Reflect=="undefined"&&(t.Reflect=r);function a(l,c){return function(d,u){Object.defineProperty(l,d,{configurable:!0,writable:!0,value:u}),c&&c(d,u)}}function i(){try{return Function("return this;")()}catch(l){}}function s(){try{return(0,eval)("(function() { return this; })()")}catch(l){}}function o(){return i()||s()}})(function(e,t){var n=Object.prototype.hasOwnProperty,a=typeof Symbol=="function",i=a&&typeof Symbol.toPrimitive!="undefined"?Symbol.toPrimitive:"@@toPrimitive",s=a&&typeof Symbol.iterator!="undefined"?Symbol.iterator:"@@iterator",o=typeof Object.create=="function",l={__proto__:[]}instanceof Array,c=!o&&!l,d={create:o?function(){return uB(Object.create(null))}:l?function(){return uB({__proto__:null})}:function(){return uB({})},has:c?function(j,V){return n.call(j,V)}:function(j,V){return V in j},get:c?function(j,V){return n.call(j,V)?j[V]:void 0}:function(j,V){return j[V]}},u=Object.getPrototypeOf(Function),p=typeof Map=="function"&&typeof Map.prototype.entries=="function"?Map:dZe(),m=typeof Set=="function"&&typeof Set.prototype.entries=="function"?Set:uZe(),f=typeof WeakMap=="function"?WeakMap:pZe(),h=a?Symbol.for("@reflect-metadata:registry"):void 0,g=oZe(),v=lZe(g);function b(j,V,Z,le){if(ee(Z)){if(!Bs(j))throw new TypeError;if(!De(V))throw new TypeError;return R(j,V)}else{if(!Bs(j))throw new TypeError;if(!fe(V))throw new TypeError;if(!fe(le)&&!ee(le)&&!re(le))throw new TypeError;return re(le)&&(le=void 0),Z=_n(Z),A(j,V,Z,le)}}e("decorate",b);function k(j,V){function Z(le,Ve){if(!fe(le))throw new TypeError;if(!ee(Ve)&&!bn(Ve))throw new TypeError;Q(j,V,le,Ve)}return Z}e("metadata",k);function w(j,V,Z,le){if(!fe(Z))throw new TypeError;return ee(le)||(le=_n(le)),Q(j,V,Z,le)}e("defineMetadata",w);function S(j,V,Z){if(!fe(V))throw new TypeError;return ee(Z)||(Z=_n(Z)),F(j,V,Z)}e("hasMetadata",S);function C(j,V,Z){if(!fe(V))throw new TypeError;return ee(Z)||(Z=_n(Z)),$(j,V,Z)}e("hasOwnMetadata",C);function E(j,V,Z){if(!fe(V))throw new TypeError;return ee(Z)||(Z=_n(Z)),B(j,V,Z)}e("getMetadata",E);function D(j,V,Z){if(!fe(V))throw new TypeError;return ee(Z)||(Z=_n(Z)),ue(j,V,Z)}e("getOwnMetadata",D);function P(j,V){if(!fe(j))throw new TypeError;return ee(V)||(V=_n(V)),G(j,V)}e("getMetadataKeys",P);function O(j,V){if(!fe(j))throw new TypeError;return ee(V)||(V=_n(V)),ie(j,V)}e("getOwnMetadataKeys",O);function z(j,V,Z){if(!fe(V))throw new TypeError;if(ee(Z)||(Z=_n(Z)),!fe(V))throw new TypeError;ee(Z)||(Z=_n(Z));var le=rS(V,Z,!1);return ee(le)?!1:le.OrdinaryDeleteMetadata(j,V,Z)}e("deleteMetadata",z);function R(j,V){for(var Z=j.length-1;Z>=0;--Z){var le=j[Z],Ve=le(V);if(!ee(Ve)&&!re(Ve)){if(!De(Ve))throw new TypeError;V=Ve}}return V}function A(j,V,Z,le){for(var Ve=j.length-1;Ve>=0;--Ve){var jn=j[Ve],ca=jn(V,Z,le);if(!ee(ca)&&!re(ca)){if(!fe(ca))throw new TypeError;le=ca}}return le}function F(j,V,Z){var le=$(j,V,Z);if(le)return!0;var Ve=dB(V);return re(Ve)?!1:F(j,Ve,Z)}function $(j,V,Z){var le=rS(V,Z,!1);return ee(le)?!1:la(le.OrdinaryHasOwnMetadata(j,V,Z))}function B(j,V,Z){var le=$(j,V,Z);if(le)return ue(j,V,Z);var Ve=dB(V);if(!re(Ve))return B(j,Ve,Z)}function ue(j,V,Z){var le=rS(V,Z,!1);if(!ee(le))return le.OrdinaryGetOwnMetadata(j,V,Z)}function Q(j,V,Z,le){var Ve=rS(Z,le,!0);Ve.OrdinaryDefineOwnMetadata(j,V,Z,le)}function G(j,V){var Z=ie(j,V),le=dB(j);if(le===null)return Z;var Ve=G(le,V);if(Ve.length<=0)return Z;if(Z.length<=0)return Ve;for(var jn=new m,ca=[],Ft=0,ye=Z;Ft<ye.length;Ft++){var Ce=ye[Ft],Pe=jn.has(Ce);Pe||(jn.add(Ce),ca.push(Ce))}for(var Fe=0,Bt=Ve;Fe<Bt.length;Fe++){var Ce=Bt[Fe],Pe=jn.has(Ce);Pe||(jn.add(Ce),ca.push(Ce))}return ca}function ie(j,V){var Z=rS(j,V,!1);return Z?Z.OrdinaryOwnMetadataKeys(j,V):[]}function Ee(j){if(j===null)return 1;switch(typeof j){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return j===null?1:6;default:return 6}}function ee(j){return j===void 0}function re(j){return j===null}function et(j){return typeof j=="symbol"}function fe(j){return typeof j=="object"?j!==null:typeof j=="function"}function ut(j,V){switch(Ee(j)){case 0:return j;case 1:return j;case 2:return j;case 3:return j;case 4:return j;case 5:return j}var Z=V===3?"string":V===5?"number":"default",le=Pse(j,i);if(le!==void 0){var Ve=le.call(j,Z);if(fe(Ve))throw new TypeError;return Ve}return Je(j,Z==="default"?"number":Z)}function Je(j,V){if(V==="string"){var Z=j.toString;if(se(Z)){var le=Z.call(j);if(!fe(le))return le}var Ve=j.valueOf;if(se(Ve)){var le=Ve.call(j);if(!fe(le))return le}}else{var Ve=j.valueOf;if(se(Ve)){var le=Ve.call(j);if(!fe(le))return le}var jn=j.toString;if(se(jn)){var le=jn.call(j);if(!fe(le))return le}}throw new TypeError}function la(j){return!!j}function ai(j){return""+j}function _n(j){var V=ut(j,3);return et(V)?V:ai(V)}function Bs(j){return Array.isArray?Array.isArray(j):j instanceof Object?j instanceof Array:Object.prototype.toString.call(j)==="[object Array]"}function se(j){return typeof j=="function"}function De(j){return typeof j=="function"}function bn(j){switch(Ee(j)){case 3:return!0;case 4:return!0;default:return!1}}function gh(j,V){return j===V||j!==j&&V!==V}function Pse(j,V){var Z=j[V];if(Z!=null){if(!se(Z))throw new TypeError;return Z}}function Mse(j){var V=Pse(j,s);if(!se(V))throw new TypeError;var Z=V.call(j);if(!fe(Z))throw new TypeError;return Z}function Ase(j){return j.value}function _se(j){var V=j.next();return V.done?!1:V}function Ise(j){var V=j.return;V&&V.call(j)}function dB(j){var V=Object.getPrototypeOf(j);if(typeof j!="function"||j===u||V!==u)return V;var Z=j.prototype,le=Z&&Object.getPrototypeOf(Z);if(le==null||le===Object.prototype)return V;var Ve=le.constructor;return typeof Ve!="function"||Ve===j?V:Ve}function sZe(){var j;!ee(h)&&typeof t.Reflect!="undefined"&&!(h in t.Reflect)&&typeof t.Reflect.defineMetadata=="function"&&(j=cZe(t.Reflect));var V,Z,le,Ve=new f,jn={registerProvider:ca,getProvider:ye,setProvider:Pe};return jn;function ca(Fe){if(!Object.isExtensible(jn))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case j===Fe:break;case ee(V):V=Fe;break;case V===Fe:break;case ee(Z):Z=Fe;break;case Z===Fe:break;default:le===void 0&&(le=new m),le.add(Fe);break}}function Ft(Fe,Bt){if(!ee(V)){if(V.isProviderFor(Fe,Bt))return V;if(!ee(Z)){if(Z.isProviderFor(Fe,Bt))return V;if(!ee(le))for(var rn=Mse(le);;){var $n=_se(rn);if(!$n)return;var Dl=Ase($n);if(Dl.isProviderFor(Fe,Bt))return Ise(rn),Dl}}}if(!ee(j)&&j.isProviderFor(Fe,Bt))return j}function ye(Fe,Bt){var rn=Ve.get(Fe),$n;return ee(rn)||($n=rn.get(Bt)),ee($n)&&($n=Ft(Fe,Bt),ee($n)||(ee(rn)&&(rn=new p,Ve.set(Fe,rn)),rn.set(Bt,$n))),$n}function Ce(Fe){if(ee(Fe))throw new TypeError;return V===Fe||Z===Fe||!ee(le)&&le.has(Fe)}function Pe(Fe,Bt,rn){if(!Ce(rn))throw new Error("Metadata provider not registered.");var $n=ye(Fe,Bt);if($n!==rn){if(!ee($n))return!1;var Dl=Ve.get(Fe);ee(Dl)&&(Dl=new p,Ve.set(Fe,Dl)),Dl.set(Bt,rn)}return!0}}function oZe(){var j;return!ee(h)&&fe(t.Reflect)&&Object.isExtensible(t.Reflect)&&(j=t.Reflect[h]),ee(j)&&(j=sZe()),!ee(h)&&fe(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,h,{enumerable:!1,configurable:!1,writable:!1,value:j}),j}function lZe(j){var V=new f,Z={isProviderFor:function(Ce,Pe){var Fe=V.get(Ce);return ee(Fe)?!1:Fe.has(Pe)},OrdinaryDefineOwnMetadata:ca,OrdinaryHasOwnMetadata:Ve,OrdinaryGetOwnMetadata:jn,OrdinaryOwnMetadataKeys:Ft,OrdinaryDeleteMetadata:ye};return g.registerProvider(Z),Z;function le(Ce,Pe,Fe){var Bt=V.get(Ce),rn=!1;if(ee(Bt)){if(!Fe)return;Bt=new p,V.set(Ce,Bt),rn=!0}var $n=Bt.get(Pe);if(ee($n)){if(!Fe)return;if($n=new p,Bt.set(Pe,$n),!j.setProvider(Ce,Pe,Z))throw Bt.delete(Pe),rn&&V.delete(Ce),new Error("Wrong provider for target.")}return $n}function Ve(Ce,Pe,Fe){var Bt=le(Pe,Fe,!1);return ee(Bt)?!1:la(Bt.has(Ce))}function jn(Ce,Pe,Fe){var Bt=le(Pe,Fe,!1);if(!ee(Bt))return Bt.get(Ce)}function ca(Ce,Pe,Fe,Bt){var rn=le(Fe,Bt,!0);rn.set(Ce,Pe)}function Ft(Ce,Pe){var Fe=[],Bt=le(Ce,Pe,!1);if(ee(Bt))return Fe;for(var rn=Bt.keys(),$n=Mse(rn),Dl=0;;){var Nse=_se($n);if(!Nse)return Fe.length=Dl,Fe;var mZe=Ase(Nse);try{Fe[Dl]=mZe}catch(fZe){try{Ise($n)}finally{throw fZe}}Dl++}}function ye(Ce,Pe,Fe){var Bt=le(Pe,Fe,!1);if(ee(Bt)||!Bt.delete(Ce))return!1;if(Bt.size===0){var rn=V.get(Pe);ee(rn)||(rn.delete(Fe),rn.size===0&&V.delete(rn))}return!0}}function cZe(j){var V=j.defineMetadata,Z=j.hasOwnMetadata,le=j.getOwnMetadata,Ve=j.getOwnMetadataKeys,jn=j.deleteMetadata,ca=new f,Ft={isProviderFor:function(ye,Ce){var Pe=ca.get(ye);return!ee(Pe)&&Pe.has(Ce)?!0:Ve(ye,Ce).length?(ee(Pe)&&(Pe=new m,ca.set(ye,Pe)),Pe.add(Ce),!0):!1},OrdinaryDefineOwnMetadata:V,OrdinaryHasOwnMetadata:Z,OrdinaryGetOwnMetadata:le,OrdinaryOwnMetadataKeys:Ve,OrdinaryDeleteMetadata:jn};return Ft}function rS(j,V,Z){var le=g.getProvider(j,V);if(!ee(le))return le;if(Z){if(g.setProvider(j,V,v))return v;throw new Error("Illegal state.")}}function dZe(){var j={},V=[],Z=(function(){function Ft(ye,Ce,Pe){this._index=0,this._keys=ye,this._values=Ce,this._selector=Pe}return Ft.prototype["@@iterator"]=function(){return this},Ft.prototype[s]=function(){return this},Ft.prototype.next=function(){var ye=this._index;if(ye>=0&&ye<this._keys.length){var Ce=this._selector(this._keys[ye],this._values[ye]);return ye+1>=this._keys.length?(this._index=-1,this._keys=V,this._values=V):this._index++,{value:Ce,done:!1}}return{value:void 0,done:!0}},Ft.prototype.throw=function(ye){throw this._index>=0&&(this._index=-1,this._keys=V,this._values=V),ye},Ft.prototype.return=function(ye){return this._index>=0&&(this._index=-1,this._keys=V,this._values=V),{value:ye,done:!0}},Ft})(),le=(function(){function Ft(){this._keys=[],this._values=[],this._cacheKey=j,this._cacheIndex=-2}return Object.defineProperty(Ft.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),Ft.prototype.has=function(ye){return this._find(ye,!1)>=0},Ft.prototype.get=function(ye){var Ce=this._find(ye,!1);return Ce>=0?this._values[Ce]:void 0},Ft.prototype.set=function(ye,Ce){var Pe=this._find(ye,!0);return this._values[Pe]=Ce,this},Ft.prototype.delete=function(ye){var Ce=this._find(ye,!1);if(Ce>=0){for(var Pe=this._keys.length,Fe=Ce+1;Fe<Pe;Fe++)this._keys[Fe-1]=this._keys[Fe],this._values[Fe-1]=this._values[Fe];return this._keys.length--,this._values.length--,gh(ye,this._cacheKey)&&(this._cacheKey=j,this._cacheIndex=-2),!0}return!1},Ft.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=j,this._cacheIndex=-2},Ft.prototype.keys=function(){return new Z(this._keys,this._values,Ve)},Ft.prototype.values=function(){return new Z(this._keys,this._values,jn)},Ft.prototype.entries=function(){return new Z(this._keys,this._values,ca)},Ft.prototype["@@iterator"]=function(){return this.entries()},Ft.prototype[s]=function(){return this.entries()},Ft.prototype._find=function(ye,Ce){if(!gh(this._cacheKey,ye)){this._cacheIndex=-1;for(var Pe=0;Pe<this._keys.length;Pe++)if(gh(this._keys[Pe],ye)){this._cacheIndex=Pe;break}}return this._cacheIndex<0&&Ce&&(this._cacheIndex=this._keys.length,this._keys.push(ye),this._values.push(void 0)),this._cacheIndex},Ft})();return le;function Ve(Ft,ye){return Ft}function jn(Ft,ye){return ye}function ca(Ft,ye){return[Ft,ye]}}function uZe(){var j=(function(){function V(){this._map=new p}return Object.defineProperty(V.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),V.prototype.has=function(Z){return this._map.has(Z)},V.prototype.add=function(Z){return this._map.set(Z,Z),this},V.prototype.delete=function(Z){return this._map.delete(Z)},V.prototype.clear=function(){this._map.clear()},V.prototype.keys=function(){return this._map.keys()},V.prototype.values=function(){return this._map.keys()},V.prototype.entries=function(){return this._map.entries()},V.prototype["@@iterator"]=function(){return this.keys()},V.prototype[s]=function(){return this.keys()},V})();return j}function pZe(){var j=16,V=d.create(),Z=le();return(function(){function ye(){this._key=le()}return ye.prototype.has=function(Ce){var Pe=Ve(Ce,!1);return Pe!==void 0?d.has(Pe,this._key):!1},ye.prototype.get=function(Ce){var Pe=Ve(Ce,!1);return Pe!==void 0?d.get(Pe,this._key):void 0},ye.prototype.set=function(Ce,Pe){var Fe=Ve(Ce,!0);return Fe[this._key]=Pe,this},ye.prototype.delete=function(Ce){var Pe=Ve(Ce,!1);return Pe!==void 0?delete Pe[this._key]:!1},ye.prototype.clear=function(){this._key=le()},ye})();function le(){var ye;do ye="@@WeakMap@@"+Ft();while(d.has(V,ye));return V[ye]=!0,ye}function Ve(ye,Ce){if(!n.call(ye,Z)){if(!Ce)return;Object.defineProperty(ye,Z,{value:d.create()})}return ye[Z]}function jn(ye,Ce){for(var Pe=0;Pe<Ce;++Pe)ye[Pe]=Math.random()*255|0;return ye}function ca(ye){if(typeof Uint8Array=="function"){var Ce=new Uint8Array(ye);return typeof crypto!="undefined"?crypto.getRandomValues(Ce):typeof msCrypto!="undefined"?msCrypto.getRandomValues(Ce):jn(Ce,ye),Ce}return jn(new Array(ye),ye)}function Ft(){var ye=ca(j);ye[6]=ye[6]&79|64,ye[8]=ye[8]&191|128;for(var Ce="",Pe=0;Pe<j;++Pe){var Fe=ye[Pe];(Pe===4||Pe===6||Pe===8)&&(Ce+="-"),Fe<16&&(Ce+="0"),Ce+=Fe.toString(16).toLowerCase()}return Ce}}function uB(j){return j.__=void 0,delete j.__,j}})})(Jqe||(Jqe={}))});function tWe(r){Reflect.hasMetadata(A0,r)||Reflect.defineMetadata(A0,[],r)}function nz(r,e){return function(t,n,a){Reflect.defineMetadata(eWe,{method:r.toLowerCase(),path:e,handler:n},t,n);let i=Reflect.getMetadata("routes",t.constructor)||[];i.push({method:r.toLowerCase(),path:e,handler:n}),Reflect.defineMetadata("routes",i,t.constructor)}}function Jr(r){return nz("GET",r)}function Pn(r){return nz("POST",r)}function rWe(r){return nz("PUT",r)}function az(r){return nz("DELETE",r)}function iz(r){return function(e,t,n){Reflect.defineMetadata(kLt,r,e,t);let a=Reflect.getMetadata(A0,e.constructor)||[],i=Reflect.getMetadata(eWe,e,t),{path:s,method:o}=i||bLt(t);a.push({path:s,method:o,operation:r}),Reflect.defineMetadata(A0,a,e.constructor)}}function bLt(r){return vLt.warn(`extractPathAndMethod is deprecated. Use @Route decorators on method: ${r}`,{category:"provider",operation:"extractpathandmethod-deprecated-use-route-decorators-on-method"}),{path:"/api/unknown",method:"get"}}function _0(r){let e=Reflect.getMetadata(A0,r.constructor)||[],t=PJ(r.constructor)||[],n={openapi:"3.0.0",info:{title:"TaskNotes API",version:"1.0.0",description:"RESTful API for managing tasks, time tracking, and automation in TaskNotes",contact:{name:"TaskNotes",url:"https://github.com/your-repo/tasknotes"}},servers:[{url:"http://localhost:8080",description:"Local development server"}],security:[{bearerAuth:[]}],paths:{},components:{securitySchemes:{bearerAuth:{type:"http",scheme:"bearer",bearerFormat:"JWT",description:"Optional bearer token for API authentication"}},schemas:TLt()}};for(let a of e)n.paths[a.path]||(n.paths[a.path]={}),n.paths[a.path][a.method.toLowerCase()]=a.operation;for(let a of t)n.paths[a.path]||(n.paths[a.path]={}),n.paths[a.path][a.method.toLowerCase()]||(n.paths[a.path][a.method.toLowerCase()]={summary:`${a.method.toUpperCase()} ${a.path}`,description:`${a.method.toUpperCase()} endpoint for ${a.path}`,responses:{200:{description:"Success",content:{"application/json":{schema:{$ref:"#/components/schemas/APIResponse"}}}},400:{description:"Bad Request",content:{"application/json":{schema:{$ref:"#/components/schemas/Error"}}}},500:{description:"Internal Server Error",content:{"application/json":{schema:{$ref:"#/components/schemas/Error"}}}}}});return n}function TLt(){return{APIResponse:{type:"object",properties:{success:{type:"boolean",description:"Whether the request was successful"},data:{description:"Response data (varies by endpoint)"},error:{type:"string",description:"Error message (present when success is false)"},message:{type:"string",description:"Optional success message"}},required:["success"]},Task:{type:"object",properties:{id:{type:"string",description:"Unique task identifier (file path)"},title:{type:"string",description:"Task title",maxLength:200},status:{type:"string",description:"Current task status",enum:["todo","open","completed","in-progress","cancelled"]},priority:{type:"string",description:"Task priority level",enum:["low","normal","medium","high","urgent"]},due:{type:"string",format:"date-time",description:"Due date and time (ISO 8601 format)",nullable:!0},scheduled:{type:"string",format:"date-time",description:"Scheduled date and time (ISO 8601 format)",nullable:!0},path:{type:"string",description:"File path of the task"},archived:{type:"boolean",description:"Whether the task is archived"},tags:{type:"array",items:{type:"string"},description:"Task tags"},contexts:{type:"array",items:{type:"string"},description:"Task contexts (GTD-style)"},projects:{type:"array",items:{type:"string"},description:"Associated projects"},timeEstimate:{type:"integer",minimum:0,description:"Estimated time in minutes",nullable:!0},recurrence:{type:"string",description:"RFC 5545 recurrence rule string",nullable:!0},recurrence_anchor:{type:"string",enum:["scheduled","completion"],description:"Whether recurrence advances from the scheduled date or completion date",nullable:!0},reminders:{type:"array",items:{$ref:"#/components/schemas/Reminder"},description:"Task reminders"},blockedBy:{type:"array",items:{$ref:"#/components/schemas/TaskDependency"},description:"Dependencies that must be satisfied before this task can start"},blocking:{type:"array",items:{type:"string"},description:"Task paths this task blocks. This is derived from other tasks' blockedBy fields.",readOnly:!0},isBlocked:{type:"boolean",description:"Whether this task has incomplete blocking dependencies",readOnly:!0},isBlocking:{type:"boolean",description:"Whether this task blocks at least one other task",readOnly:!0},hasSubtasks:{type:"boolean",description:"Whether another task references this task as a project",readOnly:!0},details:{type:"string",description:"Additional task details/description",nullable:!0},dateCreated:{type:"string",format:"date-time",description:"Task creation timestamp"},dateModified:{type:"string",format:"date-time",description:"Last modification timestamp"}},required:["id","title","status","path"]},TaskCreationData:{type:"object",properties:{title:{type:"string",description:"Task title",maxLength:200},status:{type:"string",description:"Initial task status",enum:["todo","open","in-progress"]},priority:{type:"string",description:"Task priority level",enum:["low","normal","medium","high","urgent"]},due:{type:"string",format:"date-time",description:"Due date and time (ISO 8601 format)"},scheduled:{type:"string",format:"date-time",description:"Scheduled date and time (ISO 8601 format)"},tags:{type:"array",items:{type:"string"},description:"Task tags"},contexts:{type:"array",items:{type:"string"},description:"Task contexts"},projects:{type:"array",items:{type:"string"},description:"Associated projects"},details:{type:"string",description:"Task details/description"},timeEstimate:{type:"integer",minimum:0,description:"Estimated time in minutes"},recurrence:{type:"string",description:"RFC 5545 recurrence rule string"},recurrence_anchor:{type:"string",enum:["scheduled","completion"],description:"Whether recurrence advances from the scheduled date or completion date"},reminders:{type:"array",items:{$ref:"#/components/schemas/Reminder"},description:"Task reminders"},blockedBy:{type:"array",items:{$ref:"#/components/schemas/TaskDependency"},description:"Dependencies that must be satisfied before this task can start"}},required:["title"]},FilterQuery:{allOf:[{$ref:"#/components/schemas/FilterGroup"},{type:"object",properties:{sortKey:{type:"string",description:"Optional task sort key, such as due, scheduled, priority, status, title, or a user field key."},sortDirection:{type:"string",enum:["asc","desc"],description:"Sort direction."},groupKey:{type:"string",description:"Optional grouping key, such as none, priority, context, project, due, scheduled, status, tags, completedDate, or a user field key."},subgroupKey:{type:"string",description:"Optional secondary grouping key."}}}]},FilterGroup:{type:"object",properties:{type:{type:"string",enum:["group"]},id:{type:"string",description:"Client-provided identifier for this group."},conjunction:{type:"string",enum:["and","or"],description:"How child conditions and groups are combined."},children:{type:"array",items:{oneOf:[{$ref:"#/components/schemas/FilterCondition"},{$ref:"#/components/schemas/FilterGroup"}]}}},required:["type","id","conjunction","children"]},FilterCondition:{type:"object",properties:{type:{type:"string",enum:["condition"]},id:{type:"string",description:"Client-provided identifier for this condition."},property:{type:"string",enum:["title","path","status","priority","tags","contexts","projects","blockedBy","blocking","due","scheduled","completedDate","dateCreated","dateModified","archived","hasSubtasks","dependencies.isBlocked","dependencies.isBlocking","timeEstimate","recurrence","status.isCompleted"],description:"Task property to filter on. User fields use user:<fieldId>."},operator:{type:"string",enum:["is","is-not","contains","does-not-contain","is-before","is-after","is-on-or-before","is-on-or-after","is-empty","is-not-empty","is-checked","is-not-checked","is-greater-than","is-less-than","is-greater-than-or-equal","is-less-than-or-equal"],description:"Comparison operator. Use an operator supported by the selected property."},value:{description:"Comparison value. Empty and checked operators do not require a value.",nullable:!0,oneOf:[{type:"string"},{type:"array",items:{type:"string"}},{type:"number"},{type:"boolean"}]}},required:["type","id","property","operator"]},TaskDependency:{type:"object",properties:{uid:{type:"string",description:"Link or identifier for the blocking task"},reltype:{type:"string",enum:["FINISHTOSTART","FINISHTOFINISH","STARTTOSTART","STARTTOFINISH"],description:"Dependency relationship type"},gap:{type:"string",description:"Optional ISO 8601 duration offset between tasks"}},required:["uid","reltype"]},Reminder:{type:"object",properties:{id:{type:"string",description:"Reminder identifier"},type:{type:"string",enum:["absolute","relative"],description:"Reminder type"},absoluteTime:{type:"string",format:"date-time",description:"Absolute reminder timestamp"},relatedTo:{type:"string",enum:["due","scheduled"],description:"Date field used as the relative reminder anchor"},offset:{type:"string",description:"ISO 8601 duration relative to the anchor date"}},required:["id","type"]},TaskStats:{type:"object",properties:{total:{type:"integer",description:"Total number of tasks"},completed:{type:"integer",description:"Number of completed tasks"},active:{type:"integer",description:"Number of active (non-completed, non-archived) tasks"},overdue:{type:"integer",description:"Number of overdue tasks"},archived:{type:"integer",description:"Number of archived tasks"},withTimeTracking:{type:"integer",description:"Number of tasks with time tracking entries"}},required:["total","completed","active","overdue","archived","withTimeTracking"]},WebhookConfig:{type:"object",properties:{id:{type:"string",description:"Unique webhook identifier"},url:{type:"string",format:"uri",description:"Webhook endpoint URL"},events:{type:"array",items:{type:"string",enum:["task.created","task.updated","task.deleted","task.completed","task.archived","task.unarchived","time.started","time.stopped","pomodoro.started","pomodoro.completed","pomodoro.interrupted","recurring.instance.completed","reminder.triggered"]},description:"Events to subscribe to",minItems:1},active:{type:"boolean",description:"Whether the webhook is active"},transformFile:{type:"string",description:"Optional transform file path for payload customization"},corsHeaders:{type:"boolean",description:"Whether to include custom headers (disable for strict CORS services)"}},required:["url","events"]},PomodoroSession:{type:"object",properties:{id:{type:"string",description:"Unique session identifier"},type:{type:"string",enum:["work","short-break","long-break"],description:"Type of pomodoro session"},duration:{type:"integer",description:"Session duration in seconds"},startTime:{type:"string",format:"date-time",description:"Session start timestamp"},endTime:{type:"string",format:"date-time",description:"Session end timestamp",nullable:!0},task:{$ref:"#/components/schemas/Task",nullable:!0,description:"Associated task (if any)"}},required:["id","type","duration","startTime"]},PomodoroState:{type:"object",properties:{isRunning:{type:"boolean",description:"Whether a pomodoro session is currently running"},timeRemaining:{type:"integer",description:"Time remaining in current session (seconds)"},currentSession:{$ref:"#/components/schemas/PomodoroSession",nullable:!0,description:"Current active session (if any)"},nextSessionType:{type:"string",enum:["work","short-break","long-break"],nullable:!0,description:"Suggested next session type"},totalPomodoros:{type:"integer",description:"Total completed pomodoros (all time)"},currentStreak:{type:"integer",description:"Current consecutive pomodoro streak"},totalMinutesToday:{type:"integer",description:"Total focused minutes today"}},required:["isRunning","timeRemaining"]},PomodoroSessionHistory:{type:"object",properties:{id:{type:"string",description:"Session identifier"},type:{type:"string",enum:["work","short-break","long-break"]},startTime:{type:"string",format:"date-time"},endTime:{type:"string",format:"date-time"},duration:{type:"integer",description:"Actual session duration in seconds"},completed:{type:"boolean",description:"Whether the session was completed (not interrupted)"},taskPath:{type:"string",nullable:!0,description:"Associated task file path"},taskTitle:{type:"string",nullable:!0,description:"Associated task title"}},required:["id","type","startTime","endTime","duration","completed"]},PomodoroStats:{type:"object",properties:{totalSessions:{type:"integer",description:"Total number of sessions"},completedSessions:{type:"integer",description:"Number of completed sessions"},interruptedSessions:{type:"integer",description:"Number of interrupted sessions"},totalFocusTime:{type:"integer",description:"Total focused time in minutes"},workSessions:{type:"integer",description:"Number of work sessions"},breakSessions:{type:"integer",description:"Number of break sessions"},longestStreak:{type:"integer",description:"Longest consecutive completed sessions"},averageSessionLength:{type:"number",description:"Average session length in minutes"}},required:["totalSessions","completedSessions","interruptedSessions","totalFocusTime"]},TimeEntry:{type:"object",properties:{startTime:{type:"string",format:"date-time",description:"ISO timestamp when time tracking started"},endTime:{type:"string",format:"date-time",nullable:!0,description:"ISO timestamp when time tracking ended (null if still running)"},description:{type:"string",nullable:!0,description:"Optional description of work being tracked"},duration:{type:"integer",minimum:0,description:"Duration in minutes (calculated or manually set)"},isActive:{type:"boolean",description:"Whether this time entry is currently active"}},required:["startTime","duration","isActive"]},ActiveTimeSession:{type:"object",properties:{task:{type:"object",properties:{id:{type:"string",description:"Task identifier (file path)"},title:{type:"string",description:"Task title"},status:{type:"string",description:"Task status"},priority:{type:"string",description:"Task priority"},tags:{type:"array",items:{type:"string"},description:"Task tags"},projects:{type:"array",items:{type:"string"},description:"Associated projects"}},required:["id","title","status"]},session:{type:"object",properties:{startTime:{type:"string",format:"date-time",description:"When the session started"},description:{type:"string",nullable:!0,description:"Session description"},elapsedMinutes:{type:"integer",minimum:0,description:"Minutes elapsed since session started"}},required:["startTime","elapsedMinutes"]},elapsedMinutes:{type:"integer",minimum:0,description:"Total elapsed minutes for this session"}},required:["task","session","elapsedMinutes"]},TimeSummary:{type:"object",properties:{period:{type:"string",enum:["today","week","month","all","custom"],description:"Time period for the summary"},dateRange:{type:"object",properties:{from:{type:"string",format:"date-time",description:"Start date of the summary period"},to:{type:"string",format:"date-time",description:"End date of the summary period"}},required:["from","to"]},summary:{type:"object",properties:{totalMinutes:{type:"integer",minimum:0,description:"Total tracked time in minutes"},totalHours:{type:"number",minimum:0,description:"Total tracked time in hours (rounded to 2 decimals)"},tasksWithTime:{type:"integer",minimum:0,description:"Number of tasks with time tracking data"},activeTasks:{type:"integer",minimum:0,description:"Number of tasks with active time tracking"},completedTasks:{type:"integer",minimum:0,description:"Number of completed tasks with time tracking"}},required:["totalMinutes","totalHours","tasksWithTime","activeTasks","completedTasks"]},topTasks:{type:"array",items:{type:"object",properties:{task:{type:"string",description:"Task identifier"},title:{type:"string",description:"Task title"},minutes:{type:"integer",minimum:0,description:"Total minutes tracked for this task"}},required:["task","title","minutes"]},description:"Top 10 tasks by time tracked"},topProjects:{type:"array",items:{type:"object",properties:{project:{type:"string",description:"Project name"},minutes:{type:"integer",minimum:0,description:"Total minutes tracked for this project"}},required:["project","minutes"]},description:"Top 10 projects by time tracked"},topTags:{type:"array",items:{type:"object",properties:{tag:{type:"string",description:"Tag name"},minutes:{type:"integer",minimum:0,description:"Total minutes tracked for this tag"}},required:["tag","minutes"]},description:"Top 10 tags by time tracked"}},required:["period","dateRange","summary","topTasks","topProjects","topTags"]},TaskTimeData:{type:"object",properties:{task:{type:"object",properties:{id:{type:"string",description:"Task identifier (file path)"},title:{type:"string",description:"Task title"},status:{type:"string",description:"Task status"},priority:{type:"string",description:"Task priority"}},required:["id","title","status"]},summary:{type:"object",properties:{totalMinutes:{type:"integer",minimum:0,description:"Total time tracked for this task in minutes"},totalHours:{type:"number",minimum:0,description:"Total time tracked for this task in hours"},totalSessions:{type:"integer",minimum:0,description:"Total number of time tracking sessions"},completedSessions:{type:"integer",minimum:0,description:"Number of completed sessions"},activeSessions:{type:"integer",minimum:0,maximum:1,description:"Number of active sessions (0 or 1)"},averageSessionMinutes:{type:"number",minimum:0,description:"Average session length in minutes"}},required:["totalMinutes","totalHours","totalSessions","completedSessions","activeSessions","averageSessionMinutes"]},activeSession:{type:"object",nullable:!0,properties:{startTime:{type:"string",format:"date-time",description:"When the active session started"},description:{type:"string",nullable:!0,description:"Description of the active session"},elapsedMinutes:{type:"integer",minimum:0,description:"Minutes elapsed since session started"}},required:["startTime","elapsedMinutes"]},timeEntries:{type:"array",items:{$ref:"#/components/schemas/TimeEntry"},description:"All time entries for this task"}},required:["task","summary","timeEntries"]},Error:{type:"object",properties:{success:{type:"boolean",enum:[!1]},error:{type:"string",description:"Error message describing what went wrong"}},required:["success","error"]}}}function PJ(r){return Reflect.getMetadata("routes",r)||[]}var $8r,vLt,kLt,A0,eWe,Bd=y(()=>{$8r=st(Xqe());K();vLt=N({tag:"Utils/OpenAPIDecorators"}),kLt=Symbol("openapi:operation"),A0=Symbol("openapi:endpoints"),eWe=Symbol("route")});function ko(r){var e;return new URL((e=r.url)!=null?e:"","http://localhost")}var Ry=y(()=>{});var sz,nWe=y(()=>{Ry();Bd();sz=class{constructor(){this.routes=[]}compilePattern(e){let t=[],n=e.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g,(i,s)=>(t.push(s),"([^/]+)"));return{regex:new RegExp(`^${n}$`),paramNames:t}}register(e,t,n){let{regex:a,paramNames:i}=this.compilePattern(t);this.routes.push({method:e,pattern:t,handler:n,regex:a,paramNames:i})}get(e,t){this.register("GET",e,t)}post(e,t){this.register("POST",e,t)}put(e,t){this.register("PUT",e,t)}delete(e,t){this.register("DELETE",e,t)}options(e,t){this.register("OPTIONS",e,t)}async route(e,t){let n=ko(e).pathname,a=e.method;for(let i of this.routes)if(i.method===a){let s=n.match(i.regex);if(s){let o={};for(let l=0;l<i.paramNames.length;l++){let c=i.paramNames[l],d=s[l+1];d&&(o[c]=decodeURIComponent(d))}return await i.handler(e,t,o),!0}}return!1}registerController(e){let t=e,n=PJ(e.constructor);for(let a of n){let i=t[a.handler];typeof i=="function"&&this.register(a.method.toUpperCase(),a.path,i.bind(e))}}getRoutes(){return this.routes}}});function aWe(r,e){if(!r)return e;try{let t=new URL(r);return CLt.has(t.protocol)?!t.username&&!t.password&&!t.port&&!t.search&&!t.hash&&(t.pathname===""||t.pathname==="/")&&t.hostname?`${t.protocol}//${t.hostname}`:void 0:t.protocol!=="http:"&&t.protocol!=="https:"?void 0:xLt.has(t.hostname)?t.origin:void 0}catch(t){return}}function oz(r,e){var t,n;e!=null&&e.allowOrigin&&r.setHeader("Access-Control-Allow-Origin",e.allowOrigin),r.setHeader("Access-Control-Allow-Methods",(t=e==null?void 0:e.allowMethods)!=null?t:wLt),r.setHeader("Access-Control-Allow-Headers",(n=e==null?void 0:e.allowHeaders)!=null?n:SLt)}function lz(r,e,t,n){r.statusCode=e,r.setHeader("Content-Type","application/json"),oz(r,n),r.end(JSON.stringify(t))}function cz(r){return new Promise((e,t)=>{let n="";r.on("data",a=>{n+=a.toString()}),r.on("end",()=>{try{e(n?JSON.parse(n):{})}catch(a){t(new Error("Invalid JSON"))}}),r.on("error",t)})}var wLt,SLt,xLt,CLt,MJ=y(()=>{wLt="GET, POST, PUT, DELETE, OPTIONS",SLt="Content-Type, Authorization",xLt=new Set(["localhost","127.0.0.1","::1","[::1]"]),CLt=new Set(["chrome-extension:"])});var xi,If=y(()=>{MJ();xi=class{sendResponse(e,t,n){lz(e,t,n)}successResponse(e,t){return{success:!0,data:e,message:t}}errorResponse(e){return{success:!1,error:e}}getErrorMessage(e){return e instanceof Error?e.message:String(e)}async parseRequestBody(e){return await cz(e)}}});async function dz(r,e){let t=r.vault.getAbstractFileByPath(e.path);if(!(t instanceof iWe.TFile))return e;let n=await r.vault.read(t),{body:a}=rm(n);return{...e,details:a.replace(/\r\n/g,`
|
||
`).trimEnd()}}var iWe,AJ=y(()=>{iWe=require("obsidian");Ct()});var Ci,sWe=y(()=>{Ry();If();AJ();Bd();Ci=class extends xi{constructor(t,n,a,i,s){super();this.plugin=t;this.taskService=n;this.filterService=a;this.cacheManager=i;this.taskStatsService=s}async getTasks(t,n){try{let a=ko(t).searchParams;if(["status","priority","project","context","tag","overdue","completed","archived","due_before","due_after","sort"].some(h=>a.has(h))){this.sendResponse(n,400,this.errorResponse("For filtering tasks, please use POST /api/tasks/query which supports advanced filtering capabilities. GET /api/tasks is for basic listing only. See API documentation for details."));return}let o=await this.cacheManager.getAllTasks(),l=0,c=50,d=a.get("offset");d&&(l=parseInt(d,10),(isNaN(l)||l<0)&&(l=0));let u=a.get("limit");u&&(c=parseInt(u,10),(isNaN(c)||c<1)&&(c=50),c>200&&(c=200));let p=o.slice(l,l+c),m=this.plugin.app.vault.adapter,f=null;try{"basePath"in m&&typeof m.basePath=="string"?f=m.basePath:"path"in m&&typeof m.path=="string"&&(f=m.path)}catch(h){}this.sendResponse(n,200,this.successResponse({tasks:p,pagination:{total:o.length,offset:l,limit:c,hasMore:l+c<o.length},vault:{name:this.plugin.app.vault.getName(),path:f},note:"For filtering and advanced queries, use POST /api/tasks/query"}))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async createTask(t,n){try{let a=await this.parseRequestBody(t);if(!a.title||!a.title.trim()){this.sendResponse(n,400,this.errorResponse("Title is required"));return}let i=await this.taskService.createTask(a);this.sendResponse(n,201,this.successResponse(i.taskInfo))}catch(a){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(a)))}}async getTask(t,n,a){try{let i=a==null?void 0:a.id;if(!i){this.sendResponse(n,400,this.errorResponse("Task ID is required"));return}let s=await this.cacheManager.getTaskInfo(i);if(!s){this.sendResponse(n,404,this.errorResponse("Task not found"));return}let o=await dz(this.plugin.app,s);this.sendResponse(n,200,this.successResponse(o))}catch(i){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(i)))}}async updateTask(t,n,a){try{let i=a==null?void 0:a.id;if(!i){this.sendResponse(n,400,this.errorResponse("Task ID is required"));return}let s=await this.parseRequestBody(t),o=await this.cacheManager.getTaskInfo(i);if(!o){this.sendResponse(n,404,this.errorResponse("Task not found"));return}let l=await this.taskService.updateTask(o,s);this.sendResponse(n,200,this.successResponse(l))}catch(i){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(i)))}}async deleteTask(t,n,a){try{let i=a==null?void 0:a.id;if(!i){this.sendResponse(n,400,this.errorResponse("Task ID is required"));return}let s=await this.cacheManager.getTaskInfo(i);if(!s){this.sendResponse(n,404,this.errorResponse("Task not found"));return}await this.taskService.deleteTask(s),this.sendResponse(n,200,this.successResponse({message:"Task deleted successfully"}))}catch(i){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(i)))}}async toggleStatus(t,n,a){try{let i=a==null?void 0:a.id;if(!i){this.sendResponse(n,400,this.errorResponse("Task ID is required"));return}let s=await this.cacheManager.getTaskInfo(i);if(!s){this.sendResponse(n,404,this.errorResponse("Task not found"));return}let o=await this.taskService.toggleStatus(s);this.sendResponse(n,200,this.successResponse(o))}catch(i){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(i)))}}async toggleArchive(t,n,a){try{let i=a==null?void 0:a.id;if(!i){this.sendResponse(n,400,this.errorResponse("Task ID is required"));return}let s=await this.cacheManager.getTaskInfo(i);if(!s){this.sendResponse(n,404,this.errorResponse("Task not found"));return}let o=await this.taskService.toggleArchive(s);this.sendResponse(n,200,this.successResponse(o))}catch(i){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(i)))}}async completeRecurringInstance(t,n,a){try{let i=a==null?void 0:a.id;if(!i){this.sendResponse(n,400,this.errorResponse("Task ID is required"));return}let{date:s}=await this.parseRequestBody(t),o=await this.cacheManager.getTaskInfo(i);if(!o){this.sendResponse(n,404,this.errorResponse("Task not found"));return}let l=s?new Date(s):void 0,c=await this.taskService.toggleRecurringTaskCompleteWithOccurrenceNotes(o,l);this.sendResponse(n,200,this.successResponse(c))}catch(i){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(i)))}}async materializeOccurrence(t,n,a){try{let i=a==null?void 0:a.id;if(!i){this.sendResponse(n,400,this.errorResponse("Task ID is required"));return}let{date:s}=await this.parseRequestBody(t);if(!s){this.sendResponse(n,400,this.errorResponse("Date is required"));return}let o=await this.cacheManager.getTaskInfo(i);if(!o){this.sendResponse(n,404,this.errorResponse("Task not found"));return}let l=await this.taskService.materializeOccurrence(o,s);this.sendResponse(n,200,this.successResponse(l))}catch(i){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(i)))}}async queryTasks(t,n){try{let a=await this.parseRequestBody(t),i=await this.filterService.getGroupedTasks(a),s=[];for(let d of i.values())s.push(...d);let o=await this.cacheManager.getAllTasks(),l=this.plugin.app.vault.adapter,c=null;try{"basePath"in l&&typeof l.basePath=="string"?c=l.basePath:"path"in l&&typeof l.path=="string"&&(c=l.path)}catch(d){}this.sendResponse(n,200,this.successResponse({tasks:s,total:o.length,filtered:s.length,vault:{name:this.plugin.app.vault.getName(),path:c}}))}catch(a){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(a)))}}async getFilterOptions(t,n){try{let a=await this.filterService.getFilterOptions();this.sendResponse(n,200,this.successResponse(a))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async getStats(t,n){try{let a=await this.cacheManager.getAllTasks(),i=this.taskStatsService.getStats(a),s={total:i.total,completed:i.completed,active:i.active,overdue:i.overdue,archived:i.archived,withTimeTracking:i.withTimeEntries};this.sendResponse(n,200,this.successResponse(s))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}};tt([Jr("/api/tasks")],Ci.prototype,"getTasks",1),tt([Pn("/api/tasks")],Ci.prototype,"createTask",1),tt([Jr("/api/tasks/:id")],Ci.prototype,"getTask",1),tt([rWe("/api/tasks/:id")],Ci.prototype,"updateTask",1),tt([az("/api/tasks/:id")],Ci.prototype,"deleteTask",1),tt([Pn("/api/tasks/:id/toggle-status")],Ci.prototype,"toggleStatus",1),tt([Pn("/api/tasks/:id/archive")],Ci.prototype,"toggleArchive",1),tt([Pn("/api/tasks/:id/complete-instance")],Ci.prototype,"completeRecurringInstance",1),tt([Pn("/api/tasks/:id/materialize-occurrence")],Ci.prototype,"materializeOccurrence",1),tt([iz({summary:"Query tasks",description:"Filter, sort, and group tasks with a TaskNotes FilterQuery payload.",operationId:"queryTasks",tags:["Tasks"],requestBody:{required:!0,content:{"application/json":{schema:{$ref:"#/components/schemas/FilterQuery"},example:{type:"group",id:"root",conjunction:"and",children:[{type:"condition",id:"context",property:"contexts",operator:"contains",value:"@office"}],sortKey:"due",sortDirection:"asc"}}}},responses:{200:{description:"Tasks matching the query",content:{"application/json":{schema:{$ref:"#/components/schemas/APIResponse"}}}},400:{description:"Invalid query payload",content:{"application/json":{schema:{$ref:"#/components/schemas/Error"}}}}}}),Pn("/api/tasks/query")],Ci.prototype,"queryTasks",1),tt([Jr("/api/filter-options")],Ci.prototype,"getFilterOptions",1),tt([Jr("/api/stats")],Ci.prototype,"getStats",1)});var Ud,oWe=y(()=>{Ry();If();Bd();HP();Ud=class extends xi{constructor(t,n,a,i){super();this.plugin=t;this.taskService=n;this.cacheManager=a;this.statusManager=i}async startTimeTracking(t,n,a){try{let i=a==null?void 0:a.id;if(!i){this.sendResponse(n,400,this.errorResponse("Task ID is required"));return}let s=await this.cacheManager.getTaskInfo(i);if(!s){this.sendResponse(n,404,this.errorResponse("Task not found"));return}let o=await this.taskService.startTimeTracking(s);this.sendResponse(n,200,this.successResponse(o))}catch(i){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(i)))}}async stopTimeTracking(t,n,a){try{let i=a==null?void 0:a.id;if(!i){this.sendResponse(n,400,this.errorResponse("Task ID is required"));return}let s=await this.cacheManager.getTaskInfo(i);if(!s){this.sendResponse(n,404,this.errorResponse("Task not found"));return}let o=await this.taskService.stopTimeTracking(s);this.sendResponse(n,200,this.successResponse(o))}catch(i){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(i)))}}async startTimeTrackingWithDescription(t,n,a){var i;try{let s=a==null?void 0:a.id;if(!s){this.sendResponse(n,400,this.errorResponse("Task ID is required"));return}let o=await this.cacheManager.getTaskInfo(s);if(!o){this.sendResponse(n,404,this.errorResponse("Task not found"));return}let c=(i=(await this.parseRequestBody(t)).description)!=null?i:"",d=await this.taskService.startTimeTracking(o);if(c&&d.timeEntries&&d.timeEntries.length>0){let u=d.timeEntries[d.timeEntries.length-1];u&&!u.endTime&&(u.description=c,d=await this.taskService.updateTask(d,{timeEntries:d.timeEntries}))}this.sendResponse(n,200,this.successResponse({task:d,message:c?`Time tracking started with description: ${c}`:"Time tracking started"}))}catch(s){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(s)))}}async getActiveTimeSessions(t,n){try{let a=await this.cacheManager.getAllTasks(),i=RT(a,s=>this.plugin.getActiveTimeSession(s));this.sendResponse(n,200,this.successResponse(i))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async getTimeSummary(t,n){try{let a=ko(t).searchParams,i=await this.cacheManager.getAllTasks(),s=a.get("period")||"today",o=a.get("from"),l=a.get("to"),c=o?new Date(o):null,d=l?new Date(l):null,u=FT(i,{period:s,fromDate:c,toDate:d,includeTags:!0},p=>this.statusManager.isCompletedStatus(p));this.sendResponse(n,200,this.successResponse(u))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async getTaskTimeData(t,n,a){try{let i=a==null?void 0:a.id;if(!i){this.sendResponse(n,400,this.errorResponse("Task ID is required"));return}let s=await this.cacheManager.getTaskInfo(i);if(!s){this.sendResponse(n,404,this.errorResponse("Task not found"));return}let o=Cf(s,l=>this.plugin.getActiveTimeSession(l));this.sendResponse(n,200,this.successResponse(o))}catch(i){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(i)))}}};tt([Pn("/api/tasks/:id/time/start")],Ud.prototype,"startTimeTracking",1),tt([Pn("/api/tasks/:id/time/stop")],Ud.prototype,"stopTimeTracking",1),tt([Pn("/api/tasks/:id/time/start-with-description")],Ud.prototype,"startTimeTrackingWithDescription",1),tt([Jr("/api/time/active")],Ud.prototype,"getActiveTimeSessions",1),tt([Jr("/api/time/summary")],Ud.prototype,"getTimeSummary",1),tt([Jr("/api/tasks/:id/time")],Ud.prototype,"getTaskTimeData",1)});var oc,lWe=y(()=>{Ry();If();Bd();oc=class extends xi{constructor(t,n){super();this.plugin=t;this.cacheManager=n}async startPomodoro(t,n){try{let a=await this.parseRequestBody(t),i;if(a.taskId){let c=await this.cacheManager.getTaskInfo(a.taskId);if(!c){this.sendResponse(n,404,this.errorResponse("Task not found"));return}i=c}if(this.plugin.pomodoroService.getState().isRunning){this.sendResponse(n,400,this.errorResponse("Pomodoro session is already running. Stop or pause the current session first."));return}let o=a.duration!==void 0?parseInt(String(a.duration),10):void 0;await this.plugin.pomodoroService.startPomodoro(i,o);let l=this.plugin.pomodoroService.getState();this.sendResponse(n,200,this.successResponse({session:l.currentSession,task:i||null,message:"Pomodoro session started"}))}catch(a){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(a)))}}async stopPomodoro(t,n){try{if(!this.plugin.pomodoroService.getState().currentSession){this.sendResponse(n,400,this.errorResponse("No active pomodoro session to stop"));return}await this.plugin.pomodoroService.stopPomodoro(),this.sendResponse(n,200,this.successResponse({message:"Pomodoro session stopped and reset"}))}catch(a){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(a)))}}async pausePomodoro(t,n){try{let a=this.plugin.pomodoroService.getState();if(!a.isRunning||!a.currentSession){this.sendResponse(n,400,this.errorResponse("No running pomodoro session to pause"));return}await this.plugin.pomodoroService.pausePomodoro();let i=this.plugin.pomodoroService.getState();this.sendResponse(n,200,this.successResponse({timeRemaining:i.timeRemaining,message:"Pomodoro session paused"}))}catch(a){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(a)))}}async resumePomodoro(t,n){try{let a=this.plugin.pomodoroService.getState();if(a.isRunning){this.sendResponse(n,400,this.errorResponse("Pomodoro session is already running"));return}if(!a.currentSession){this.sendResponse(n,400,this.errorResponse("No paused session to resume"));return}await this.plugin.pomodoroService.resumePomodoro();let i=this.plugin.pomodoroService.getState();this.sendResponse(n,200,this.successResponse({timeRemaining:i.timeRemaining,message:"Pomodoro session resumed"}))}catch(a){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(a)))}}async getPomodoroStatus(t,n){try{let i={...this.plugin.pomodoroService.getState(),totalPomodoros:await this.plugin.pomodoroService.getPomodorosCompleted(),currentStreak:await this.plugin.pomodoroService.getCurrentStreak(),totalMinutesToday:await this.plugin.pomodoroService.getTotalMinutesToday()};this.sendResponse(n,200,this.successResponse(i))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async getPomodoroSessions(t,n){try{let a=ko(t).searchParams,i=await this.plugin.pomodoroService.getSessionHistory(),s=a.get("date");if(s){let c=s;i=i.filter(d=>new Date(d.startTime).toISOString().split("T")[0]===c)}let o=i.length,l=a.get("limit");if(l){let c=parseInt(l,10);c>0&&(i=i.slice(-c))}this.sendResponse(n,200,this.successResponse({sessions:i,total:o}))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async getPomodoroStats(t,n){try{let a=ko(t).searchParams,i,s=a.get("date");if(s){let o=new Date(s);i=await this.plugin.pomodoroService.getStatsForDate(o)}else i=await this.plugin.pomodoroService.getTodayStats();this.sendResponse(n,200,this.successResponse(i))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}};tt([Pn("/api/pomodoro/start")],oc.prototype,"startPomodoro",1),tt([Pn("/api/pomodoro/stop")],oc.prototype,"stopPomodoro",1),tt([Pn("/api/pomodoro/pause")],oc.prototype,"pausePomodoro",1),tt([Pn("/api/pomodoro/resume")],oc.prototype,"resumePomodoro",1),tt([Jr("/api/pomodoro/status")],oc.prototype,"getPomodoroStatus",1),tt([Jr("/api/pomodoro/sessions")],oc.prototype,"getPomodoroSessions",1),tt([Jr("/api/pomodoro/stats")],oc.prototype,"getPomodoroStats",1)});var cWe,Ep,dWe=y(()=>{If();fE();Bd();K();cWe=N({tag:"Api/SystemController"}),Ep=class extends xi{constructor(t,n,a,i){super();this.plugin=t;this.taskService=n;this.nlParser=a;this.httpAPIService=i}async healthCheck(t,n){let a=this.plugin.app.vault.getName(),i=this.plugin.app.vault.adapter,s=null;try{"basePath"in i&&typeof i.basePath=="string"?s=i.basePath:"path"in i&&typeof i.path=="string"&&(s=i.path)}catch(o){}this.sendResponse(n,200,this.successResponse({status:"ok",timestamp:new Date().toISOString(),vault:{name:a,path:s}}))}async handleNLPParse(t,n){try{let a=await this.parseRequestBody(t);if(!a.text||typeof a.text!="string"){this.sendResponse(n,400,this.errorResponse("Text field is required and must be a string"));return}let i=this.nlParser.parseInput(a.text),s=Bu(this.plugin,i);this.sendResponse(n,200,this.successResponse({parsed:i,taskData:s}))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async handleNLPCreate(t,n){try{let a=await this.parseRequestBody(t);if(!a.text||typeof a.text!="string"){this.sendResponse(n,400,this.errorResponse("Text field is required and must be a string"));return}let i=this.nlParser.parseInput(a.text),s=Bu(this.plugin,i,{creationContext:"api"}),o=await this.taskService.createTask(s);this.sendResponse(n,201,this.successResponse({task:o.taskInfo,parsed:i}))}catch(a){this.sendResponse(n,400,this.errorResponse(this.getErrorMessage(a)))}}async handleOpenAPISpec(t,n){try{let a=this.httpAPIService&&this.httpAPIService.generateOpenAPISpec?this.httpAPIService.generateOpenAPISpec():_0(this);n.statusCode=200,n.setHeader("Content-Type","application/json"),n.end(JSON.stringify(a,null,2))}catch(a){cWe.error("OpenAPI spec generation error:",{category:"provider",operation:"openapi-spec-generation",error:a}),this.sendResponse(n,500,this.errorResponse("Failed to generate API specification"))}}async handleSwaggerUI(t,n){try{let a=this.generateSwaggerUIHTML();n.statusCode=200,n.setHeader("Content-Type","text/html"),n.end(a)}catch(a){cWe.error("Swagger UI generation error:",{category:"provider",operation:"swagger-ui-generation",error:a}),this.sendResponse(n,500,this.errorResponse("Failed to generate API documentation"))}}generateSwaggerUIHTML(){return`<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>TaskNotes API Documentation</title>
|
||
<link rel="stylesheet" type="text/css" href="https://unpkg.com/swagger-ui-dist@5.9.0/swagger-ui.css" />
|
||
<style>
|
||
body { margin: 0; }
|
||
.swagger-ui .topbar { display: none; }
|
||
.swagger-ui .info .title { color: #663399; }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div id="swagger-ui"></div>
|
||
<script src="https://unpkg.com/swagger-ui-dist@5.9.0/swagger-ui-bundle.js"><\/script>
|
||
<script src="https://unpkg.com/swagger-ui-dist@5.9.0/swagger-ui-standalone-preset.js"><\/script>
|
||
<script>
|
||
SwaggerUIBundle({
|
||
url: 'http://localhost:${this.plugin.settings.apiPort}/api/docs',
|
||
dom_id: '#swagger-ui',
|
||
deepLinking: true,
|
||
presets: [
|
||
SwaggerUIBundle.presets.apis,
|
||
SwaggerUIStandalonePreset
|
||
],
|
||
plugins: [
|
||
SwaggerUIBundle.plugins.DownloadUrl
|
||
],
|
||
layout: "StandaloneLayout",
|
||
tryItOutEnabled: true,
|
||
displayRequestDuration: true,
|
||
docExpansion: 'list',
|
||
filter: true,
|
||
validatorUrl: null
|
||
});
|
||
<\/script>
|
||
</body>
|
||
</html>`}};tt([Jr("/api/health")],Ep.prototype,"healthCheck",1),tt([Pn("/api/nlp/parse")],Ep.prototype,"handleNLPParse",1),tt([Pn("/api/nlp/create")],Ep.prototype,"handleNLPCreate",1),tt([Jr("/api/docs")],Ep.prototype,"handleOpenAPISpec",1),tt([Jr("/api/docs/ui")],Ep.prototype,"handleSwaggerUI",1)});function uz(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function DLt(r){return typeof r=="string"&&ELt.has(r)}function Nf(r){return r instanceof Error?r.message:String(r)}function _J(r){return typeof r=="string"&&r.length>0?r:void 0}var uWe,GT,ELt,Rf,pWe=y(()=>{uWe=require("obsidian");If();Bd();K();GT=N({tag:"Api/WebhookController"}),ELt=new Set(["task.created","task.updated","task.deleted","task.completed","task.archived","task.unarchived","time.started","time.stopped","pomodoro.started","pomodoro.completed","pomodoro.interrupted","recurring.instance.completed","recurring.instance.skipped","reminder.triggered"]);Rf=class extends xi{constructor(t){super();this.plugin=t;this.webhooks=new Map;this.webhookDeliveryQueue=[];this.loadWebhooks()}async registerWebhook(t,n){var a,i;try{let s=await this.parseRequestBody(t),o=uz(s)?s:{};if(typeof o.url!="string"){this.sendResponse(n,400,this.errorResponse("URL is required and must be a string"));return}if(!Array.isArray(o.events)||o.events.length===0||!o.events.every(DLt)){this.sendResponse(n,400,this.errorResponse("Events array is required and must contain valid webhook events"));return}let l=(a=_J(o.id))!=null?a:this.generateWebhookId(),c=(i=_J(o.secret))!=null?i:this.generateWebhookSecret(),d={id:l,url:o.url,events:o.events,secret:c,active:o.active!==!1,createdAt:new Date().toISOString(),failureCount:0,successCount:0,transformFile:_J(o.transformFile),corsHeaders:o.corsHeaders!==!1};this.webhooks.set(l,d),await this.saveWebhooks(),this.sendResponse(n,201,this.successResponse({webhook:d,message:"Webhook registered successfully. Save the secret for signature validation."}))}catch(s){this.sendResponse(n,400,this.errorResponse(Nf(s)))}}async listWebhooks(t,n){try{let a=Array.from(this.webhooks.values()).map(i=>({...i,secret:void 0}));this.sendResponse(n,200,this.successResponse({webhooks:a,total:a.length}))}catch(a){this.sendResponse(n,500,this.errorResponse(Nf(a)))}}async deleteWebhook(t,n,a){try{let i=a==null?void 0:a.id;if(!i){this.sendResponse(n,400,this.errorResponse("Webhook ID is required"));return}if(!this.webhooks.has(i)){this.sendResponse(n,404,this.errorResponse("Webhook not found"));return}this.webhooks.delete(i),await this.saveWebhooks(),this.sendResponse(n,200,this.successResponse({message:"Webhook deleted successfully"}))}catch(i){this.sendResponse(n,500,this.errorResponse(Nf(i)))}}async getWebhookDeliveries(t,n){try{let a=this.webhookDeliveryQueue.slice(-100);this.sendResponse(n,200,this.successResponse({deliveries:a,total:a.length}))}catch(a){this.sendResponse(n,500,this.errorResponse(Nf(a)))}}async triggerWebhook(t,n){setImmediate(()=>{this.processWebhookTrigger(t,n).catch(a=>{GT.error("Webhook processing error:",{category:"provider",operation:"webhook-processing",error:a})})})}async processWebhookTrigger(t,n){let a=Array.from(this.webhooks.values()).filter(l=>l.active&&l.events.includes(t));if(a.length===0)return;let i=this.plugin.app.vault.adapter,s;try{"basePath"in i&&typeof i.basePath=="string"?s=i.basePath:"path"in i&&typeof i.path=="string"&&(s=i.path)}catch(l){}let o={event:t,timestamp:new Date().toISOString(),vault:{name:this.plugin.app.vault.getName(),path:s},data:n};for(let l of a){let c=o;if(l.transformFile)try{c=await this.applyTransformation(l.transformFile,o)}catch(u){GT.error(`Transform error for ${l.transformFile}:`,{category:"provider",operation:"transform",error:u})}let d={id:this.generateDeliveryId(),webhookId:l.id,event:t,payload:c,status:"pending",attempts:0};this.webhookDeliveryQueue.push(d),this.deliverWebhook(l,d)}this.webhookDeliveryQueue.length>100&&(this.webhookDeliveryQueue=this.webhookDeliveryQueue.slice(-100))}async deliverWebhook(t,n,a=0){try{n.attempts++,n.lastAttempt=new Date().toISOString();let s=await this.generateSignature(n.payload,t.secret),o={"Content-Type":"application/json"};t.corsHeaders!==!1&&(o["X-TaskNotes-Event"]=n.event,o["X-TaskNotes-Signature"]=s,o["X-TaskNotes-Delivery-ID"]=n.id);let l=await(0,uWe.requestUrl)({url:t.url,method:"POST",headers:o,body:JSON.stringify(n.payload),throw:!1});if(n.responseStatus=l.status,l.status>=200&&l.status<300)n.status="success",t.successCount++,t.lastTriggered=new Date().toISOString();else throw new Error(`HTTP ${l.status}: ${l.text}`)}catch(s){if(n.error=Nf(s),t.failureCount++,a<3){let o=Math.pow(2,a)*1e3;window.setTimeout(()=>{this.deliverWebhook(t,n,a+1)},o)}else n.status="failed",t.failureCount>10&&(t.active=!1,GT.warn(`Webhook ${t.id} disabled after ${t.failureCount} failures`,{category:"provider",operation:"webhook"}))}await this.saveWebhooks()}async generateSignature(t,n){let a=new TextEncoder,i=await crypto.subtle.importKey("raw",a.encode(n),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),s=await crypto.subtle.sign("HMAC",i,a.encode(JSON.stringify(t)));return this.bytesToHex(new Uint8Array(s))}generateWebhookId(){return`wh_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}generateWebhookSecret(){return this.bytesToHex(crypto.getRandomValues(new Uint8Array(32)))}generateDeliveryId(){return`del_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}bytesToHex(t){return Array.from(t).map(n=>n.toString(16).padStart(2,"0")).join("")}async saveWebhooks(){let t=Array.from(this.webhooks.values());this.plugin.settings.webhooks=t,await this.plugin.saveSettings()}loadWebhooks(){if(this.plugin.settings.webhooks){this.webhooks.clear();for(let t of this.plugin.settings.webhooks)this.webhooks.set(t.id,t)}}syncFromSettings(){this.loadWebhooks()}async applyTransformation(t,n){try{if(t.endsWith(".js"))throw new Error("JavaScript webhook transforms are no longer supported. Use a JSON transform template instead.");return t.endsWith(".json")?await this.applyJSONTransformation(t,n):(GT.warn(`\u26A0\uFE0F Unknown transform file type for ${t}, using original payload`,{category:"provider",operation:"unknown-transform-file-type"}),n)}catch(a){throw GT.error(`\u274C Transformation failed for ${t}:`,{category:"provider",operation:"transformation",error:a}),a}}async applyJSONTransformation(t,n){var a;try{let i;try{i=await this.plugin.app.vault.adapter.read(t)}catch(c){throw new Error(`Failed to read template file '${t}': ${Nf(c)}. Please check the file path and ensure it exists in your vault.`)}if(!i.trim())throw new Error(`Template file '${t}' is empty. Please add JSON template content.`);let s;try{s=JSON.parse(i)}catch(c){throw new Error(`Invalid JSON in template file '${t}': ${Nf(c)}`)}if(!uz(s))throw new Error(`Invalid JSON in template file '${t}': expected an object with event templates`);let o=(a=s[n.event])!=null?a:s.default;if(!o){let c=Object.keys(s).filter(d=>d!=="default");throw new Error(`No template found for event '${n.event}' and no default template. Available templates: ${c.join(", ")}`)}return this.interpolateTemplate(o,n)}catch(i){throw GT.error(`\u274C JSON transformation error for '${t}':`,{category:"provider",operation:"json-transformation",details:{value:Nf(i)}}),i}}interpolateTemplate(t,n){if(typeof t=="string")return t.replace(/\$\{([^}]+)\}/g,(a,i)=>{let s=this.getNestedValue(n,i);return s==null?a:this.formatTemplateValue(s)});if(Array.isArray(t))return t.map(a=>this.interpolateTemplate(a,n));if(uz(t)){let a={};for(let[i,s]of Object.entries(t))a[i]=this.interpolateTemplate(s,n);return a}else return t}getNestedValue(t,n){return n.split(".").reduce((a,i)=>{if(uz(a))return a[i]!==void 0?a[i]:void 0},t)}formatTemplateValue(t){if(typeof t=="string")return t;if(typeof t=="number")return Number.prototype.toString.call(t);if(typeof t=="bigint")return BigInt.prototype.toString.call(t);if(typeof t=="boolean")return t?"true":"false";try{let n=JSON.stringify(t);return typeof n=="string"?n:""}catch(n){return""}}};tt([Pn("/api/webhooks")],Rf.prototype,"registerWebhook",1),tt([Jr("/api/webhooks")],Rf.prototype,"listWebhooks",1),tt([az("/api/webhooks/:id")],Rf.prototype,"deleteWebhook",1),tt([Jr("/api/webhooks/deliveries")],Rf.prototype,"getWebhookDeliveries",1)});function mWe(r,e,t){if(!e&&!t)return!0;let n=new Date(r.start),a=r.end?new Date(r.end):n;return!(e&&a<e||t&&n>t)}function PLt(r){return r.startsWith("google-")?"google":r.startsWith("microsoft-")?"microsoft":"unknown"}function pz(r,e,t){var l,c;let n=(l=t.start)!=null?l:null,a=(c=t.end)!=null?c:null,i=[],s={},o=r.getAllEvents();for(let d of o){let u=PLt(d.subscriptionId);mWe(d,n,a)&&(i.push({...d,provider:u}),s[u]=(s[u]||0)+1)}if(e){let d=e.getAllEvents();for(let u of d)mWe(u,n,a)&&(i.push({...u,provider:"ics"}),s.ics=(s.ics||0)+1)}return i.sort((d,u)=>new Date(d.start).getTime()-new Date(u.start).getTime()),{events:i,total:i.length,sources:s}}var IJ=y(()=>{});var Dp,fWe=y(()=>{Ry();If();Bd();IJ();Dp=class extends xi{constructor(t,n,a,i){super();this.plugin=t;this.oauthService=n;this.icsSubscriptionService=a;this.calendarProviderRegistry=i}async getCalendars(t,n){try{let a=await this.getProvidersOverview(),i=this.icsSubscriptionService.getSubscriptions();this.sendResponse(n,200,this.successResponse({providers:a,subscriptions:{total:i.length,enabled:i.filter(s=>s.enabled).length}}))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async getGoogleCalendars(t,n){try{let a=await this.getProviderDetails("google");this.sendResponse(n,200,this.successResponse(a))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async getMicrosoftCalendars(t,n){try{let a=await this.getProviderDetails("microsoft");this.sendResponse(n,200,this.successResponse(a))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async getSubscriptions(t,n){try{let i=this.icsSubscriptionService.getSubscriptions().map(s=>({...s,lastFetched:this.icsSubscriptionService.getLastFetched(s.id)||null,lastError:this.icsSubscriptionService.getLastError(s.id)||null}));this.sendResponse(n,200,this.successResponse({subscriptions:i}))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async getEvents(t,n){try{let a=ko(t).searchParams,i=a.get("start"),s=a.get("end"),o=i?new Date(i):null,l=s?new Date(s):null,c=pz(this.calendarProviderRegistry,this.icsSubscriptionService,{start:o,end:l});this.sendResponse(n,200,this.successResponse(c))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}async getProvidersOverview(){var c,d;let t=[],n=await this.oauthService.isConnected("google"),a=n?await this.oauthService.getConnection("google"):null,i=((c=this.plugin.googleCalendarService)==null?void 0:c.getAvailableCalendars())||[];t.push({id:"google",name:"Google Calendar",connected:n,...n&&{email:a==null?void 0:a.userEmail,calendarCount:i.length}});let s=await this.oauthService.isConnected("microsoft"),o=s?await this.oauthService.getConnection("microsoft"):null,l=((d=this.plugin.microsoftCalendarService)==null?void 0:d.getAvailableCalendars())||[];return t.push({id:"microsoft",name:"Microsoft Calendar",connected:s,...s&&{email:o==null?void 0:o.userEmail,calendarCount:l.length}}),t}async getProviderDetails(t){let n=await this.oauthService.isConnected(t),a=n?await this.oauthService.getConnection(t):null;if(!n)return{connected:!1};let i=t==="google"?this.plugin.googleCalendarService:this.plugin.microsoftCalendarService,s=(i==null?void 0:i.getAvailableCalendars())||[];return{connected:!0,email:a==null?void 0:a.userEmail,connectedAt:a==null?void 0:a.connectedAt,calendars:s}}};tt([Jr("/api/calendars")],Dp.prototype,"getCalendars",1),tt([Jr("/api/calendars/google")],Dp.prototype,"getGoogleCalendars",1),tt([Jr("/api/calendars/microsoft")],Dp.prototype,"getMicrosoftCalendars",1),tt([Jr("/api/calendars/subscriptions")],Dp.prototype,"getSubscriptions",1),tt([Jr("/api/calendars/events")],Dp.prototype,"getEvents",1)});var I0,hWe=y(()=>{If();Bd();I0=class extends xi{constructor(t){super();this.plugin=t}async updateDefaultFiles(t,n){try{let a=await this.plugin.updateDefaultBasesFiles();this.sendResponse(n,200,this.successResponse(a))}catch(a){this.sendResponse(n,500,this.errorResponse(this.getErrorMessage(a)))}}};tt([iz({summary:"Update default Base files",description:"Overwrite the configured default TaskNotes .base files with templates generated from current settings.",operationId:"updateDefaultBaseFiles",tags:["Bases"],responses:{200:{description:"Default Base files updated",content:{"application/json":{schema:{type:"object",properties:{success:{type:"boolean"},data:{type:"object",properties:{created:{type:"array",items:{type:"string"}},updated:{type:"array",items:{type:"string"}},skipped:{type:"array",items:{type:"string"}}},required:["created","updated","skipped"]}},required:["success","data"]}}}},500:{description:"Default Base files could not be updated",content:{"application/json":{schema:{$ref:"#/components/schemas/Error"}}}}}}),Pn("/api/bases/default-files/update")],I0.prototype,"updateDefaultFiles",1)});var N0=y(()=>{$L()});function Y(r,e,t){var o;function n(l,c){var u,p;var d;Object.defineProperty(l,"_zod",{value:(u=l._zod)!=null?u:{},enumerable:!1}),(p=(d=l._zod).traits)!=null||(d.traits=new Set),l._zod.traits.add(r),e(l,c);for(let m in s.prototype)m in l||Object.defineProperty(l,m,{value:s.prototype[m].bind(l)});l._zod.constr=s,l._zod.def=c}let a=(o=t==null?void 0:t.Parent)!=null?o:Object;class i extends a{}Object.defineProperty(i,"name",{value:r});function s(l){var u;var c;let d=t!=null&&t.Parent?new i:this;n(d,l),(u=(c=d._zod).deferred)!=null||(c.deferred=[]);for(let p of d._zod.deferred)p();return d}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:l=>{var c,d;return t!=null&&t.Parent&&l instanceof t.Parent?!0:(d=(c=l==null?void 0:l._zod)==null?void 0:c.traits)==null?void 0:d.has(r)}}),Object.defineProperty(s,"name",{value:r}),s}function bo(r){return r&&Object.assign(mz,r),mz}var ALt,_Lt,Pp,mz,KT=y(()=>{ALt=Object.freeze({status:"aborted"});_Lt=Symbol("zod_brand"),Pp=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},mz={}});var $t={};at($t,{BIGINT_FORMAT_RANGES:()=>yWe,Class:()=>RJ,NUMBER_FORMAT_RANGES:()=>BJ,aborted:()=>Oy,allowsEval:()=>zJ,assert:()=>OLt,assertEqual:()=>ILt,assertIs:()=>RLt,assertNever:()=>FLt,assertNotEqual:()=>NLt,assignProp:()=>LJ,cached:()=>O0,captureStackTrace:()=>hz,cleanEnum:()=>KLt,cleanRegex:()=>z0,clone:()=>To,createTransparentProxy:()=>ULt,defineLazy:()=>Xr,esc:()=>Fy,escapeRegex:()=>Ff,extend:()=>qLt,finalizeIssue:()=>lc,floatSafeRemainder:()=>OJ,getElementAtPath:()=>LLt,getEnumValues:()=>F0,getLengthableOrigin:()=>j0,getParsedType:()=>BLt,getSizableOrigin:()=>vWe,isObject:()=>ZT,isPlainObject:()=>QT,issue:()=>UJ,joinValues:()=>fz,jsonStringifyReplacer:()=>FJ,merge:()=>WLt,normalizeParams:()=>Qe,nullish:()=>L0,numKeys:()=>$Lt,omit:()=>VLt,optionalKeys:()=>$J,partial:()=>YLt,pick:()=>HLt,prefixIssues:()=>Hd,primitiveTypes:()=>gWe,promiseAllObject:()=>zLt,propertyKeyTypes:()=>jJ,randomString:()=>jLt,required:()=>GLt,stringifyPrimitive:()=>gz,unwrapMessage:()=>R0});function ILt(r){return r}function NLt(r){return r}function RLt(r){}function FLt(r){throw new Error}function OLt(r){}function F0(r){let e=Object.values(r).filter(n=>typeof n=="number");return Object.entries(r).filter(([n,a])=>e.indexOf(+n)===-1).map(([n,a])=>a)}function fz(r,e="|"){return r.map(t=>gz(t)).join(e)}function FJ(r,e){return typeof e=="bigint"?e.toString():e}function O0(r){return{get value(){{let t=r();return Object.defineProperty(this,"value",{value:t}),t}throw new Error("cached value already set")}}}function L0(r){return r==null}function z0(r){let e=r.startsWith("^")?1:0,t=r.endsWith("$")?r.length-1:r.length;return r.slice(e,t)}function OJ(r,e){let t=(r.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,a=t>n?t:n,i=Number.parseInt(r.toFixed(a).replace(".","")),s=Number.parseInt(e.toFixed(a).replace(".",""));return i%s/10**a}function Xr(r,e,t){Object.defineProperty(r,e,{get(){{let a=t();return r[e]=a,a}throw new Error("cached value already set")},set(a){Object.defineProperty(r,e,{value:a})},configurable:!0})}function LJ(r,e,t){Object.defineProperty(r,e,{value:t,writable:!0,enumerable:!0,configurable:!0})}function LLt(r,e){return e?e.reduce((t,n)=>t==null?void 0:t[n],r):r}function zLt(r){let e=Object.keys(r),t=e.map(n=>r[n]);return Promise.all(t).then(n=>{let a={};for(let i=0;i<e.length;i++)a[e[i]]=n[i];return a})}function jLt(r=10){let e="abcdefghijklmnopqrstuvwxyz",t="";for(let n=0;n<r;n++)t+=e[Math.floor(Math.random()*e.length)];return t}function Fy(r){return JSON.stringify(r)}function ZT(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function QT(r){if(ZT(r)===!1)return!1;let e=r.constructor;if(e===void 0)return!0;let t=e.prototype;return!(ZT(t)===!1||Object.prototype.hasOwnProperty.call(t,"isPrototypeOf")===!1)}function $Lt(r){let e=0;for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&e++;return e}function Ff(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function To(r,e,t){let n=new r._zod.constr(e!=null?e:r._zod.def);return(!e||t!=null&&t.parent)&&(n._zod.parent=r),n}function Qe(r){let e=r;if(!e)return{};if(typeof e=="string")return{error:()=>e};if((e==null?void 0:e.message)!==void 0){if((e==null?void 0:e.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function ULt(r){let e;return new Proxy({},{get(t,n,a){return e!=null||(e=r()),Reflect.get(e,n,a)},set(t,n,a,i){return e!=null||(e=r()),Reflect.set(e,n,a,i)},has(t,n){return e!=null||(e=r()),Reflect.has(e,n)},deleteProperty(t,n){return e!=null||(e=r()),Reflect.deleteProperty(e,n)},ownKeys(t){return e!=null||(e=r()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(t,n){return e!=null||(e=r()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(t,n,a){return e!=null||(e=r()),Reflect.defineProperty(e,n,a)}})}function gz(r){return typeof r=="bigint"?r.toString()+"n":typeof r=="string"?`"${r}"`:`${r}`}function $J(r){return Object.keys(r).filter(e=>r[e]._zod.optin==="optional"&&r[e]._zod.optout==="optional")}function HLt(r,e){let t={},n=r._zod.def;for(let a in e){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&(t[a]=n.shape[a])}return To(r,{...r._zod.def,shape:t,checks:[]})}function VLt(r,e){let t={...r._zod.def.shape},n=r._zod.def;for(let a in e){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&delete t[a]}return To(r,{...r._zod.def,shape:t,checks:[]})}function qLt(r,e){if(!QT(e))throw new Error("Invalid input to extend: expected a plain object");let t={...r._zod.def,get shape(){let n={...r._zod.def.shape,...e};return LJ(this,"shape",n),n},checks:[]};return To(r,t)}function WLt(r,e){return To(r,{...r._zod.def,get shape(){let t={...r._zod.def.shape,...e._zod.def.shape};return LJ(this,"shape",t),t},catchall:e._zod.def.catchall,checks:[]})}function YLt(r,e,t){let n=e._zod.def.shape,a={...n};if(t)for(let i in t){if(!(i in n))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(a[i]=r?new r({type:"optional",innerType:n[i]}):n[i])}else for(let i in n)a[i]=r?new r({type:"optional",innerType:n[i]}):n[i];return To(e,{...e._zod.def,shape:a,checks:[]})}function GLt(r,e,t){let n=e._zod.def.shape,a={...n};if(t)for(let i in t){if(!(i in a))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(a[i]=new r({type:"nonoptional",innerType:n[i]}))}else for(let i in n)a[i]=new r({type:"nonoptional",innerType:n[i]});return To(e,{...e._zod.def,shape:a,checks:[]})}function Oy(r,e=0){var t;for(let n=e;n<r.issues.length;n++)if(((t=r.issues[n])==null?void 0:t.continue)!==!0)return!0;return!1}function Hd(r,e){return e.map(t=>{var a;var n;return(a=(n=t).path)!=null||(n.path=[]),t.path.unshift(r),t})}function R0(r){return typeof r=="string"?r:r==null?void 0:r.message}function lc(r,e,t){var a,i,s,o,l,c,d,u,p,m,f;let n={...r,path:(a=r.path)!=null?a:[]};if(!r.message){let h=(f=(m=(u=(c=R0((o=(s=(i=r.inst)==null?void 0:i._zod.def)==null?void 0:s.error)==null?void 0:o.call(s,r)))!=null?c:R0((l=e==null?void 0:e.error)==null?void 0:l.call(e,r)))!=null?u:R0((d=t.customError)==null?void 0:d.call(t,r)))!=null?m:R0((p=t.localeError)==null?void 0:p.call(t,r)))!=null?f:"Invalid input";n.message=h}return delete n.inst,delete n.continue,e!=null&&e.reportInput||delete n.input,n}function vWe(r){return r instanceof Set?"set":r instanceof Map?"map":r instanceof File?"file":"unknown"}function j0(r){return Array.isArray(r)?"array":typeof r=="string"?"string":"unknown"}function UJ(...r){let[e,t,n]=r;return typeof e=="string"?{message:e,code:"custom",input:t,inst:n}:{...e}}function KLt(r){return Object.entries(r).filter(([e,t])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var hz,zJ,BLt,jJ,gWe,BJ,yWe,RJ,Vd=y(()=>{hz=Error.captureStackTrace?Error.captureStackTrace:(...r)=>{};zJ=O0(()=>{var r;if(typeof navigator!="undefined"&&((r=navigator==null?void 0:navigator.userAgent)!=null&&r.includes("Cloudflare")))return!1;try{let e=Function;return new e(""),!0}catch(e){return!1}});BLt=r=>{let e=typeof r;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(r)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(r)?"array":r===null?"null":r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?"promise":typeof Map!="undefined"&&r instanceof Map?"map":typeof Set!="undefined"&&r instanceof Set?"set":typeof Date!="undefined"&&r instanceof Date?"date":typeof File!="undefined"&&r instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},jJ=new Set(["string","number","symbol"]),gWe=new Set(["string","number","bigint","boolean","symbol","undefined"]);BJ={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},yWe={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};RJ=class{constructor(...e){}}});function HJ(r,e=t=>t.message){let t={},n=[];for(let a of r.issues)a.path.length>0?(t[a.path[0]]=t[a.path[0]]||[],t[a.path[0]].push(e(a))):n.push(e(a));return{formErrors:n,fieldErrors:t}}function VJ(r,e){let t=e||function(i){return i.message},n={_errors:[]},a=i=>{for(let s of i.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(o=>a({issues:o}));else if(s.code==="invalid_key")a({issues:s.issues});else if(s.code==="invalid_element")a({issues:s.issues});else if(s.path.length===0)n._errors.push(t(s));else{let o=n,l=0;for(;l<s.path.length;){let c=s.path[l];l===s.path.length-1?(o[c]=o[c]||{_errors:[]},o[c]._errors.push(t(s))):o[c]=o[c]||{_errors:[]},o=o[c],l++}}};return a(r),n}var kWe,yz,$0,qJ=y(()=>{KT();Vd();kWe=(r,e)=>{r.name="$ZodError",Object.defineProperty(r,"_zod",{value:r._zod,enumerable:!1}),Object.defineProperty(r,"issues",{value:e,enumerable:!1}),Object.defineProperty(r,"message",{get(){return JSON.stringify(e,FJ,2)},enumerable:!0}),Object.defineProperty(r,"toString",{value:()=>r.message,enumerable:!1})},yz=Y("$ZodError",kWe),$0=Y("$ZodError",kWe,{Parent:Error})});var WJ,YJ,GJ,KJ,ZJ,Ly,QJ,zy,JJ=y(()=>{KT();qJ();Vd();WJ=r=>(e,t,n,a)=>{var o;let i=n?Object.assign(n,{async:!1}):{async:!1},s=e._zod.run({value:t,issues:[]},i);if(s instanceof Promise)throw new Pp;if(s.issues.length){let l=new((o=a==null?void 0:a.Err)!=null?o:r)(s.issues.map(c=>lc(c,i,bo())));throw hz(l,a==null?void 0:a.callee),l}return s.value},YJ=WJ($0),GJ=r=>async(e,t,n,a)=>{var o;let i=n?Object.assign(n,{async:!0}):{async:!0},s=e._zod.run({value:t,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let l=new((o=a==null?void 0:a.Err)!=null?o:r)(s.issues.map(c=>lc(c,i,bo())));throw hz(l,a==null?void 0:a.callee),l}return s.value},KJ=GJ($0),ZJ=r=>(e,t,n)=>{let a=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:t,issues:[]},a);if(i instanceof Promise)throw new Pp;return i.issues.length?{success:!1,error:new(r!=null?r:yz)(i.issues.map(s=>lc(s,a,bo())))}:{success:!0,data:i.value}},Ly=ZJ($0),QJ=r=>async(e,t,n)=>{let a=n?Object.assign(n,{async:!0}):{async:!0},i=e._zod.run({value:t,issues:[]},a);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new r(i.issues.map(s=>lc(s,a,bo())))}:{success:!0,data:i.value}},zy=QJ($0)});function MWe(){return new RegExp(QLt,"u")}function jWe(r){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof r.precision=="number"?r.precision===-1?`${e}`:r.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${r.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function $We(r){return new RegExp(`^${jWe(r)}$`)}function BWe(r){let e=jWe({precision:r.precision}),t=["Z"];r.local&&t.push(""),r.offset&&t.push("([+-]\\d{2}:\\d{2})");let n=`${e}(?:${t.join("|")})`;return new RegExp(`^${LWe}T(?:${n})$`)}var bWe,TWe,wWe,SWe,xWe,CWe,EWe,DWe,XJ,PWe,QLt,AWe,_We,IWe,NWe,RWe,eX,FWe,OWe,LWe,zWe,UWe,HWe,VWe,qWe,WWe,YWe,GWe,rX=y(()=>{bWe=/^[cC][^\s-]{8,}$/,TWe=/^[0-9a-z]+$/,wWe=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,SWe=/^[0-9a-vA-V]{20}$/,xWe=/^[A-Za-z0-9]{27}$/,CWe=/^[a-zA-Z0-9_-]{21}$/,EWe=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,DWe=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,XJ=r=>r?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${r}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,PWe=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,QLt="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";AWe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_We=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,IWe=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,NWe=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,RWe=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,eX=/^[A-Za-z0-9_-]*$/,FWe=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,OWe=/^\+(?:[0-9]){6,14}[0-9]$/,LWe="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",zWe=new RegExp(`^${LWe}$`);UWe=r=>{var t,n;let e=r?`[\\s\\S]{${(t=r==null?void 0:r.minimum)!=null?t:0},${(n=r==null?void 0:r.maximum)!=null?n:""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},HWe=/^\d+$/,VWe=/^-?\d+(?:\.\d+)?/i,qWe=/true|false/i,WWe=/null/i,YWe=/^[^A-Z]*$/,GWe=/^[^a-z]*$/});var Ka,KWe,nX,aX,ZWe,QWe,JWe,XWe,e4e,B0,t4e,r4e,n4e,a4e,i4e,s4e,o4e,vz=y(()=>{KT();rX();Vd();Ka=Y("$ZodCheck",(r,e)=>{var n,a;var t;(n=r._zod)!=null||(r._zod={}),r._zod.def=e,(a=(t=r._zod).onattach)!=null||(t.onattach=[])}),KWe={number:"number",bigint:"bigint",object:"date"},nX=Y("$ZodCheckLessThan",(r,e)=>{Ka.init(r,e);let t=KWe[typeof e.value];r._zod.onattach.push(n=>{var s;let a=n._zod.bag,i=(s=e.inclusive?a.maximum:a.exclusiveMaximum)!=null?s:Number.POSITIVE_INFINITY;e.value<i&&(e.inclusive?a.maximum=e.value:a.exclusiveMaximum=e.value)}),r._zod.check=n=>{(e.inclusive?n.value<=e.value:n.value<e.value)||n.issues.push({origin:t,code:"too_big",maximum:e.value,input:n.value,inclusive:e.inclusive,inst:r,continue:!e.abort})}}),aX=Y("$ZodCheckGreaterThan",(r,e)=>{Ka.init(r,e);let t=KWe[typeof e.value];r._zod.onattach.push(n=>{var s;let a=n._zod.bag,i=(s=e.inclusive?a.minimum:a.exclusiveMinimum)!=null?s:Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?a.minimum=e.value:a.exclusiveMinimum=e.value)}),r._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:t,code:"too_small",minimum:e.value,input:n.value,inclusive:e.inclusive,inst:r,continue:!e.abort})}}),ZWe=Y("$ZodCheckMultipleOf",(r,e)=>{Ka.init(r,e),r._zod.onattach.push(t=>{var a;var n;(a=(n=t._zod.bag).multipleOf)!=null||(n.multipleOf=e.value)}),r._zod.check=t=>{if(typeof t.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof t.value=="bigint"?t.value%e.value===BigInt(0):OJ(t.value,e.value)===0)||t.issues.push({origin:typeof t.value,code:"not_multiple_of",divisor:e.value,input:t.value,inst:r,continue:!e.abort})}}),QWe=Y("$ZodCheckNumberFormat",(r,e)=>{var s;Ka.init(r,e),e.format=e.format||"float64";let t=(s=e.format)==null?void 0:s.includes("int"),n=t?"int":"number",[a,i]=BJ[e.format];r._zod.onattach.push(o=>{let l=o._zod.bag;l.format=e.format,l.minimum=a,l.maximum=i,t&&(l.pattern=HWe)}),r._zod.check=o=>{let l=o.value;if(t){if(!Number.isInteger(l)){o.issues.push({expected:n,format:e.format,code:"invalid_type",input:l,inst:r});return}if(!Number.isSafeInteger(l)){l>0?o.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:r,origin:n,continue:!e.abort}):o.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:r,origin:n,continue:!e.abort});return}}l<a&&o.issues.push({origin:"number",input:l,code:"too_small",minimum:a,inclusive:!0,inst:r,continue:!e.abort}),l>i&&o.issues.push({origin:"number",input:l,code:"too_big",maximum:i,inst:r})}}),JWe=Y("$ZodCheckMaxLength",(r,e)=>{var n;var t;Ka.init(r,e),(n=(t=r._zod.def).when)!=null||(t.when=a=>{let i=a.value;return!L0(i)&&i.length!==void 0}),r._zod.onattach.push(a=>{var s;let i=(s=a._zod.bag.maximum)!=null?s:Number.POSITIVE_INFINITY;e.maximum<i&&(a._zod.bag.maximum=e.maximum)}),r._zod.check=a=>{let i=a.value;if(i.length<=e.maximum)return;let o=j0(i);a.issues.push({origin:o,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:r,continue:!e.abort})}}),XWe=Y("$ZodCheckMinLength",(r,e)=>{var n;var t;Ka.init(r,e),(n=(t=r._zod.def).when)!=null||(t.when=a=>{let i=a.value;return!L0(i)&&i.length!==void 0}),r._zod.onattach.push(a=>{var s;let i=(s=a._zod.bag.minimum)!=null?s:Number.NEGATIVE_INFINITY;e.minimum>i&&(a._zod.bag.minimum=e.minimum)}),r._zod.check=a=>{let i=a.value;if(i.length>=e.minimum)return;let o=j0(i);a.issues.push({origin:o,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:r,continue:!e.abort})}}),e4e=Y("$ZodCheckLengthEquals",(r,e)=>{var n;var t;Ka.init(r,e),(n=(t=r._zod.def).when)!=null||(t.when=a=>{let i=a.value;return!L0(i)&&i.length!==void 0}),r._zod.onattach.push(a=>{let i=a._zod.bag;i.minimum=e.length,i.maximum=e.length,i.length=e.length}),r._zod.check=a=>{let i=a.value,s=i.length;if(s===e.length)return;let o=j0(i),l=s>e.length;a.issues.push({origin:o,...l?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:a.value,inst:r,continue:!e.abort})}}),B0=Y("$ZodCheckStringFormat",(r,e)=>{var a,i;var t,n;Ka.init(r,e),r._zod.onattach.push(s=>{var l;let o=s._zod.bag;o.format=e.format,e.pattern&&((l=o.patterns)!=null||(o.patterns=new Set),o.patterns.add(e.pattern))}),e.pattern?(a=(t=r._zod).check)!=null||(t.check=s=>{e.pattern.lastIndex=0,!e.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:e.format,input:s.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:r,continue:!e.abort})}):(i=(n=r._zod).check)!=null||(n.check=()=>{})}),t4e=Y("$ZodCheckRegex",(r,e)=>{B0.init(r,e),r._zod.check=t=>{e.pattern.lastIndex=0,!e.pattern.test(t.value)&&t.issues.push({origin:"string",code:"invalid_format",format:"regex",input:t.value,pattern:e.pattern.toString(),inst:r,continue:!e.abort})}}),r4e=Y("$ZodCheckLowerCase",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=YWe),B0.init(r,e)}),n4e=Y("$ZodCheckUpperCase",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=GWe),B0.init(r,e)}),a4e=Y("$ZodCheckIncludes",(r,e)=>{Ka.init(r,e);let t=Ff(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${t}`:t);e.pattern=n,r._zod.onattach.push(a=>{var s;let i=a._zod.bag;(s=i.patterns)!=null||(i.patterns=new Set),i.patterns.add(n)}),r._zod.check=a=>{a.value.includes(e.includes,e.position)||a.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:a.value,inst:r,continue:!e.abort})}}),i4e=Y("$ZodCheckStartsWith",(r,e)=>{var n;Ka.init(r,e);let t=new RegExp(`^${Ff(e.prefix)}.*`);(n=e.pattern)!=null||(e.pattern=t),r._zod.onattach.push(a=>{var s;let i=a._zod.bag;(s=i.patterns)!=null||(i.patterns=new Set),i.patterns.add(t)}),r._zod.check=a=>{a.value.startsWith(e.prefix)||a.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:a.value,inst:r,continue:!e.abort})}}),s4e=Y("$ZodCheckEndsWith",(r,e)=>{var n;Ka.init(r,e);let t=new RegExp(`.*${Ff(e.suffix)}$`);(n=e.pattern)!=null||(e.pattern=t),r._zod.onattach.push(a=>{var s;let i=a._zod.bag;(s=i.patterns)!=null||(i.patterns=new Set),i.patterns.add(t)}),r._zod.check=a=>{a.value.endsWith(e.suffix)||a.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:a.value,inst:r,continue:!e.abort})}}),o4e=Y("$ZodCheckOverwrite",(r,e)=>{Ka.init(r,e),r._zod.check=t=>{t.value=e.tx(t.value)}})});var kz,iX=y(()=>{kz=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(`
|
||
`).filter(s=>s),a=Math.min(...n.map(s=>s.length-s.trimStart().length)),i=n.map(s=>s.slice(a)).map(s=>" ".repeat(this.indent*2)+s);for(let s of i)this.content.push(s)}compile(){var i;let e=Function,t=this==null?void 0:this.args,a=[...((i=this==null?void 0:this.content)!=null?i:[""]).map(s=>` ${s}`)];return new e(...t,a.join(`
|
||
`))}}});var c4e,sX=y(()=>{c4e={major:4,minor:0,patch:0}});function S4e(r){if(r==="")return!0;if(r.length%4!==0)return!1;try{return atob(r),!0}catch(e){return!1}}function JLt(r){if(!eX.test(r))return!1;let e=r.replace(/[-_]/g,n=>n==="-"?"+":"/"),t=e.padEnd(Math.ceil(e.length/4)*4,"=");return S4e(t)}function XLt(r,e=null){try{let t=r.split(".");if(t.length!==3)return!1;let[n]=t;if(!n)return!1;let a=JSON.parse(atob(n));return!("typ"in a&&(a==null?void 0:a.typ)!=="JWT"||!a.alg||e&&(!("alg"in a)||a.alg!==e))}catch(t){return!1}}function d4e(r,e,t){r.issues.length&&e.issues.push(...Hd(t,r.issues)),e.value[t]=r.value}function bz(r,e,t){r.issues.length&&e.issues.push(...Hd(t,r.issues)),e.value[t]=r.value}function u4e(r,e,t,n){r.issues.length?n[t]===void 0?t in n?e.value[t]=void 0:e.value[t]=r.value:e.issues.push(...Hd(t,r.issues)):r.value===void 0?t in n&&(e.value[t]=void 0):e.value[t]=r.value}function p4e(r,e,t,n){for(let a of r)if(a.issues.length===0)return e.value=a.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:t,errors:r.map(a=>a.issues.map(i=>lc(i,n,bo())))}),e}function oX(r,e){if(r===e)return{valid:!0,data:r};if(r instanceof Date&&e instanceof Date&&+r==+e)return{valid:!0,data:r};if(QT(r)&&QT(e)){let t=Object.keys(e),n=Object.keys(r).filter(i=>t.indexOf(i)!==-1),a={...r,...e};for(let i of n){let s=oX(r[i],e[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};a[i]=s.data}return{valid:!0,data:a}}if(Array.isArray(r)&&Array.isArray(e)){if(r.length!==e.length)return{valid:!1,mergeErrorPath:[]};let t=[];for(let n=0;n<r.length;n++){let a=r[n],i=e[n],s=oX(a,i);if(!s.valid)return{valid:!1,mergeErrorPath:[n,...s.mergeErrorPath]};t.push(s.data)}return{valid:!0,data:t}}return{valid:!1,mergeErrorPath:[]}}function m4e(r,e,t){if(e.issues.length&&r.issues.push(...e.issues),t.issues.length&&r.issues.push(...t.issues),Oy(r))return r;let n=oX(e.value,t.value);if(!n.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(n.mergeErrorPath)}`);return r.value=n.data,r}function f4e(r,e){return r.value===void 0&&(r.value=e.defaultValue),r}function h4e(r,e){return!r.issues.length&&r.value===void 0&&r.issues.push({code:"invalid_type",expected:"nonoptional",input:r.value,inst:e}),r}function g4e(r,e,t){return Oy(r)?r:e.out._zod.run({value:r.value,issues:r.issues},t)}function y4e(r){return r.value=Object.freeze(r.value),r}function v4e(r,e,t,n){var a;if(!r){let i={code:"custom",input:t,inst:n,path:[...(a=n._zod.def.path)!=null?a:[]],continue:!n._zod.def.abort};n._zod.def.params&&(i.params=n._zod.def.params),e.issues.push(UJ(i))}}var zr,U0,en,lX,cX,dX,uX,pX,mX,fX,hX,gX,yX,vX,k4e,b4e,T4e,w4e,kX,bX,TX,wX,SX,xX,CX,EX,Tz,DX,PX,MX,AX,_X,IX,wz,Sz,NX,RX,FX,OX,LX,zX,jX,$X,BX,UX,HX,VX,qX,WX,YX,x4e=y(()=>{vz();KT();iX();JJ();rX();Vd();sX();Vd();zr=Y("$ZodType",(r,e)=>{var a,i,s;var t;r!=null||(r={}),r._zod.def=e,r._zod.bag=r._zod.bag||{},r._zod.version=c4e;let n=[...(a=r._zod.def.checks)!=null?a:[]];r._zod.traits.has("$ZodCheck")&&n.unshift(r);for(let o of n)for(let l of o._zod.onattach)l(r);if(n.length===0)(i=(t=r._zod).deferred)!=null||(t.deferred=[]),(s=r._zod.deferred)==null||s.push(()=>{r._zod.run=r._zod.parse});else{let o=(l,c,d)=>{let u=Oy(l),p;for(let m of c){if(m._zod.def.when){if(!m._zod.def.when(l))continue}else if(u)continue;let f=l.issues.length,h=m._zod.check(l);if(h instanceof Promise&&(d==null?void 0:d.async)===!1)throw new Pp;if(p||h instanceof Promise)p=(p!=null?p:Promise.resolve()).then(async()=>{await h,l.issues.length!==f&&(u||(u=Oy(l,f)))});else{if(l.issues.length===f)continue;u||(u=Oy(l,f))}}return p?p.then(()=>l):l};r._zod.run=(l,c)=>{let d=r._zod.parse(l,c);if(d instanceof Promise){if(c.async===!1)throw new Pp;return d.then(u=>o(u,n,c))}return o(d,n,c)}}r["~standard"]={validate:o=>{var l;try{let c=Ly(r,o);return c.success?{value:c.data}:{issues:(l=c.error)==null?void 0:l.issues}}catch(c){return zy(r,o).then(d=>{var u;return d.success?{value:d.data}:{issues:(u=d.error)==null?void 0:u.issues}})}},vendor:"zod",version:1}}),U0=Y("$ZodString",(r,e)=>{var t,n,a;zr.init(r,e),r._zod.pattern=(a=[...(n=(t=r==null?void 0:r._zod.bag)==null?void 0:t.patterns)!=null?n:[]].pop())!=null?a:UWe(r._zod.bag),r._zod.parse=(i,s)=>{if(e.coerce)try{i.value=String(i.value)}catch(o){}return typeof i.value=="string"||i.issues.push({expected:"string",code:"invalid_type",input:i.value,inst:r}),i}}),en=Y("$ZodStringFormat",(r,e)=>{B0.init(r,e),U0.init(r,e)}),lX=Y("$ZodGUID",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=DWe),en.init(r,e)}),cX=Y("$ZodUUID",(r,e)=>{var t,n;if(e.version){let i={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(i===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);(t=e.pattern)!=null||(e.pattern=XJ(i))}else(n=e.pattern)!=null||(e.pattern=XJ());en.init(r,e)}),dX=Y("$ZodEmail",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=PWe),en.init(r,e)}),uX=Y("$ZodURL",(r,e)=>{en.init(r,e),r._zod.check=t=>{try{let n=t.value,a=new URL(n),i=a.href;e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(a.hostname)||t.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:FWe.source,input:t.value,inst:r,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(a.protocol.endsWith(":")?a.protocol.slice(0,-1):a.protocol)||t.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:t.value,inst:r,continue:!e.abort})),!n.endsWith("/")&&i.endsWith("/")?t.value=i.slice(0,-1):t.value=i;return}catch(n){t.issues.push({code:"invalid_format",format:"url",input:t.value,inst:r,continue:!e.abort})}}}),pX=Y("$ZodEmoji",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=MWe()),en.init(r,e)}),mX=Y("$ZodNanoID",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=CWe),en.init(r,e)}),fX=Y("$ZodCUID",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=bWe),en.init(r,e)}),hX=Y("$ZodCUID2",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=TWe),en.init(r,e)}),gX=Y("$ZodULID",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=wWe),en.init(r,e)}),yX=Y("$ZodXID",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=SWe),en.init(r,e)}),vX=Y("$ZodKSUID",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=xWe),en.init(r,e)}),k4e=Y("$ZodISODateTime",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=BWe(e)),en.init(r,e)}),b4e=Y("$ZodISODate",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=zWe),en.init(r,e)}),T4e=Y("$ZodISOTime",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=$We(e)),en.init(r,e)}),w4e=Y("$ZodISODuration",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=EWe),en.init(r,e)}),kX=Y("$ZodIPv4",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=AWe),en.init(r,e),r._zod.onattach.push(n=>{let a=n._zod.bag;a.format="ipv4"})}),bX=Y("$ZodIPv6",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=_We),en.init(r,e),r._zod.onattach.push(n=>{let a=n._zod.bag;a.format="ipv6"}),r._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch(a){n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:r,continue:!e.abort})}}}),TX=Y("$ZodCIDRv4",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=IWe),en.init(r,e)}),wX=Y("$ZodCIDRv6",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=NWe),en.init(r,e),r._zod.check=n=>{let[a,i]=n.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${a}]`)}catch(s){n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:r,continue:!e.abort})}}});SX=Y("$ZodBase64",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=RWe),en.init(r,e),r._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),r._zod.check=n=>{S4e(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:r,continue:!e.abort})}});xX=Y("$ZodBase64URL",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=eX),en.init(r,e),r._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),r._zod.check=n=>{JLt(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:r,continue:!e.abort})}}),CX=Y("$ZodE164",(r,e)=>{var t;(t=e.pattern)!=null||(e.pattern=OWe),en.init(r,e)});EX=Y("$ZodJWT",(r,e)=>{en.init(r,e),r._zod.check=t=>{XLt(t.value,e.alg)||t.issues.push({code:"invalid_format",format:"jwt",input:t.value,inst:r,continue:!e.abort})}}),Tz=Y("$ZodNumber",(r,e)=>{var t;zr.init(r,e),r._zod.pattern=(t=r._zod.bag.pattern)!=null?t:VWe,r._zod.parse=(n,a)=>{if(e.coerce)try{n.value=Number(n.value)}catch(o){}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:r,...s?{received:s}:{}}),n}}),DX=Y("$ZodNumber",(r,e)=>{QWe.init(r,e),Tz.init(r,e)}),PX=Y("$ZodBoolean",(r,e)=>{zr.init(r,e),r._zod.pattern=qWe,r._zod.parse=(t,n)=>{if(e.coerce)try{t.value=!!t.value}catch(i){}let a=t.value;return typeof a=="boolean"||t.issues.push({expected:"boolean",code:"invalid_type",input:a,inst:r}),t}}),MX=Y("$ZodNull",(r,e)=>{zr.init(r,e),r._zod.pattern=WWe,r._zod.values=new Set([null]),r._zod.parse=(t,n)=>{let a=t.value;return a===null||t.issues.push({expected:"null",code:"invalid_type",input:a,inst:r}),t}}),AX=Y("$ZodUnknown",(r,e)=>{zr.init(r,e),r._zod.parse=t=>t}),_X=Y("$ZodNever",(r,e)=>{zr.init(r,e),r._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:r}),t)});IX=Y("$ZodArray",(r,e)=>{zr.init(r,e),r._zod.parse=(t,n)=>{let a=t.value;if(!Array.isArray(a))return t.issues.push({expected:"array",code:"invalid_type",input:a,inst:r}),t;t.value=Array(a.length);let i=[];for(let s=0;s<a.length;s++){let o=a[s],l=e.element._zod.run({value:o,issues:[]},n);l instanceof Promise?i.push(l.then(c=>d4e(c,t,s))):d4e(l,t,s)}return i.length?Promise.all(i).then(()=>t):t}});wz=Y("$ZodObject",(r,e)=>{zr.init(r,e);let t=O0(()=>{let u=Object.keys(e.shape);for(let m of u)if(!(e.shape[m]instanceof zr))throw new Error(`Invalid element at key "${m}": expected a Zod schema`);let p=$J(e.shape);return{shape:e.shape,keys:u,keySet:new Set(u),numKeys:u.length,optionalKeys:new Set(p)}});Xr(r._zod,"propValues",()=>{var m;let u=e.shape,p={};for(let f in u){let h=u[f]._zod;if(h.values){(m=p[f])!=null||(p[f]=new Set);for(let g of h.values)p[f].add(g)}}return p});let n=u=>{let p=new kz(["shape","payload","ctx"]),m=t.value,f=b=>{let k=Fy(b);return`shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`};p.write("const input = payload.value;");let h=Object.create(null),g=0;for(let b of m.keys)h[b]=`key_${g++}`;p.write("const newResult = {}");for(let b of m.keys)if(m.optionalKeys.has(b)){let k=h[b];p.write(`const ${k} = ${f(b)};`);let w=Fy(b);p.write(`
|
||
if (${k}.issues.length) {
|
||
if (input[${w}] === undefined) {
|
||
if (${w} in input) {
|
||
newResult[${w}] = undefined;
|
||
}
|
||
} else {
|
||
payload.issues = payload.issues.concat(
|
||
${k}.issues.map((iss) => ({
|
||
...iss,
|
||
path: iss.path ? [${w}, ...iss.path] : [${w}],
|
||
}))
|
||
);
|
||
}
|
||
} else if (${k}.value === undefined) {
|
||
if (${w} in input) newResult[${w}] = undefined;
|
||
} else {
|
||
newResult[${w}] = ${k}.value;
|
||
}
|
||
`)}else{let k=h[b];p.write(`const ${k} = ${f(b)};`),p.write(`
|
||
if (${k}.issues.length) payload.issues = payload.issues.concat(${k}.issues.map(iss => ({
|
||
...iss,
|
||
path: iss.path ? [${Fy(b)}, ...iss.path] : [${Fy(b)}]
|
||
})));`),p.write(`newResult[${Fy(b)}] = ${k}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let v=p.compile();return(b,k)=>v(u,b,k)},a,i=ZT,s=!mz.jitless,l=s&&zJ.value,c=e.catchall,d;r._zod.parse=(u,p)=>{d!=null||(d=t.value);let m=u.value;if(!i(m))return u.issues.push({expected:"object",code:"invalid_type",input:m,inst:r}),u;let f=[];if(s&&l&&(p==null?void 0:p.async)===!1&&p.jitless!==!0)a||(a=n(e.shape)),u=a(u,p);else{u.value={};let k=d.shape;for(let w of d.keys){let S=k[w],C=S._zod.run({value:m[w],issues:[]},p),E=S._zod.optin==="optional"&&S._zod.optout==="optional";C instanceof Promise?f.push(C.then(D=>E?u4e(D,u,w,m):bz(D,u,w))):E?u4e(C,u,w,m):bz(C,u,w)}}if(!c)return f.length?Promise.all(f).then(()=>u):u;let h=[],g=d.keySet,v=c._zod,b=v.def.type;for(let k of Object.keys(m)){if(g.has(k))continue;if(b==="never"){h.push(k);continue}let w=v.run({value:m[k],issues:[]},p);w instanceof Promise?f.push(w.then(S=>bz(S,u,k))):bz(w,u,k)}return h.length&&u.issues.push({code:"unrecognized_keys",keys:h,input:m,inst:r}),f.length?Promise.all(f).then(()=>u):u}});Sz=Y("$ZodUnion",(r,e)=>{zr.init(r,e),Xr(r._zod,"optin",()=>e.options.some(t=>t._zod.optin==="optional")?"optional":void 0),Xr(r._zod,"optout",()=>e.options.some(t=>t._zod.optout==="optional")?"optional":void 0),Xr(r._zod,"values",()=>{if(e.options.every(t=>t._zod.values))return new Set(e.options.flatMap(t=>Array.from(t._zod.values)))}),Xr(r._zod,"pattern",()=>{if(e.options.every(t=>t._zod.pattern)){let t=e.options.map(n=>n._zod.pattern);return new RegExp(`^(${t.map(n=>z0(n.source)).join("|")})$`)}}),r._zod.parse=(t,n)=>{let a=!1,i=[];for(let s of e.options){let o=s._zod.run({value:t.value,issues:[]},n);if(o instanceof Promise)i.push(o),a=!0;else{if(o.issues.length===0)return o;i.push(o)}}return a?Promise.all(i).then(s=>p4e(s,t,r,n)):p4e(i,t,r,n)}}),NX=Y("$ZodDiscriminatedUnion",(r,e)=>{Sz.init(r,e);let t=r._zod.parse;Xr(r._zod,"propValues",()=>{let a={};for(let i of e.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[o,l]of Object.entries(s)){a[o]||(a[o]=new Set);for(let c of l)a[o].add(c)}}return a});let n=O0(()=>{let a=e.options,i=new Map;for(let s of a){let o=s._zod.propValues[e.discriminator];if(!o||o.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let l of o){if(i.has(l))throw new Error(`Duplicate discriminator value "${String(l)}"`);i.set(l,s)}}return i});r._zod.parse=(a,i)=>{let s=a.value;if(!ZT(s))return a.issues.push({code:"invalid_type",expected:"object",input:s,inst:r}),a;let o=n.value.get(s==null?void 0:s[e.discriminator]);return o?o._zod.run(a,i):e.unionFallback?t(a,i):(a.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:s,path:[e.discriminator],inst:r}),a)}}),RX=Y("$ZodIntersection",(r,e)=>{zr.init(r,e),r._zod.parse=(t,n)=>{let a=t.value,i=e.left._zod.run({value:a,issues:[]},n),s=e.right._zod.run({value:a,issues:[]},n);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([l,c])=>m4e(t,l,c)):m4e(t,i,s)}});FX=Y("$ZodRecord",(r,e)=>{zr.init(r,e),r._zod.parse=(t,n)=>{let a=t.value;if(!QT(a))return t.issues.push({expected:"record",code:"invalid_type",input:a,inst:r}),t;let i=[];if(e.keyType._zod.values){let s=e.keyType._zod.values;t.value={};for(let l of s)if(typeof l=="string"||typeof l=="number"||typeof l=="symbol"){let c=e.valueType._zod.run({value:a[l],issues:[]},n);c instanceof Promise?i.push(c.then(d=>{d.issues.length&&t.issues.push(...Hd(l,d.issues)),t.value[l]=d.value})):(c.issues.length&&t.issues.push(...Hd(l,c.issues)),t.value[l]=c.value)}let o;for(let l in a)s.has(l)||(o=o!=null?o:[],o.push(l));o&&o.length>0&&t.issues.push({code:"unrecognized_keys",input:a,inst:r,keys:o})}else{t.value={};for(let s of Reflect.ownKeys(a)){if(s==="__proto__")continue;let o=e.keyType._zod.run({value:s,issues:[]},n);if(o instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(o.issues.length){t.issues.push({origin:"record",code:"invalid_key",issues:o.issues.map(c=>lc(c,n,bo())),input:s,path:[s],inst:r}),t.value[o.value]=o.value;continue}let l=e.valueType._zod.run({value:a[s],issues:[]},n);l instanceof Promise?i.push(l.then(c=>{c.issues.length&&t.issues.push(...Hd(s,c.issues)),t.value[o.value]=c.value})):(l.issues.length&&t.issues.push(...Hd(s,l.issues)),t.value[o.value]=l.value)}}return i.length?Promise.all(i).then(()=>t):t}}),OX=Y("$ZodEnum",(r,e)=>{zr.init(r,e);let t=F0(e.entries);r._zod.values=new Set(t),r._zod.pattern=new RegExp(`^(${t.filter(n=>jJ.has(typeof n)).map(n=>typeof n=="string"?Ff(n):n.toString()).join("|")})$`),r._zod.parse=(n,a)=>{let i=n.value;return r._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t,input:i,inst:r}),n}}),LX=Y("$ZodLiteral",(r,e)=>{zr.init(r,e),r._zod.values=new Set(e.values),r._zod.pattern=new RegExp(`^(${e.values.map(t=>typeof t=="string"?Ff(t):t?t.toString():String(t)).join("|")})$`),r._zod.parse=(t,n)=>{let a=t.value;return r._zod.values.has(a)||t.issues.push({code:"invalid_value",values:e.values,input:a,inst:r}),t}}),zX=Y("$ZodTransform",(r,e)=>{zr.init(r,e),r._zod.parse=(t,n)=>{let a=e.transform(t.value,t);if(n.async)return(a instanceof Promise?a:Promise.resolve(a)).then(s=>(t.value=s,t));if(a instanceof Promise)throw new Pp;return t.value=a,t}}),jX=Y("$ZodOptional",(r,e)=>{zr.init(r,e),r._zod.optin="optional",r._zod.optout="optional",Xr(r._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Xr(r._zod,"pattern",()=>{let t=e.innerType._zod.pattern;return t?new RegExp(`^(${z0(t.source)})?$`):void 0}),r._zod.parse=(t,n)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(t,n):t.value===void 0?t:e.innerType._zod.run(t,n)}),$X=Y("$ZodNullable",(r,e)=>{zr.init(r,e),Xr(r._zod,"optin",()=>e.innerType._zod.optin),Xr(r._zod,"optout",()=>e.innerType._zod.optout),Xr(r._zod,"pattern",()=>{let t=e.innerType._zod.pattern;return t?new RegExp(`^(${z0(t.source)}|null)$`):void 0}),Xr(r._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),r._zod.parse=(t,n)=>t.value===null?t:e.innerType._zod.run(t,n)}),BX=Y("$ZodDefault",(r,e)=>{zr.init(r,e),r._zod.optin="optional",Xr(r._zod,"values",()=>e.innerType._zod.values),r._zod.parse=(t,n)=>{if(t.value===void 0)return t.value=e.defaultValue,t;let a=e.innerType._zod.run(t,n);return a instanceof Promise?a.then(i=>f4e(i,e)):f4e(a,e)}});UX=Y("$ZodPrefault",(r,e)=>{zr.init(r,e),r._zod.optin="optional",Xr(r._zod,"values",()=>e.innerType._zod.values),r._zod.parse=(t,n)=>(t.value===void 0&&(t.value=e.defaultValue),e.innerType._zod.run(t,n))}),HX=Y("$ZodNonOptional",(r,e)=>{zr.init(r,e),Xr(r._zod,"values",()=>{let t=e.innerType._zod.values;return t?new Set([...t].filter(n=>n!==void 0)):void 0}),r._zod.parse=(t,n)=>{let a=e.innerType._zod.run(t,n);return a instanceof Promise?a.then(i=>h4e(i,r)):h4e(a,r)}});VX=Y("$ZodCatch",(r,e)=>{zr.init(r,e),r._zod.optin="optional",Xr(r._zod,"optout",()=>e.innerType._zod.optout),Xr(r._zod,"values",()=>e.innerType._zod.values),r._zod.parse=(t,n)=>{let a=e.innerType._zod.run(t,n);return a instanceof Promise?a.then(i=>(t.value=i.value,i.issues.length&&(t.value=e.catchValue({...t,error:{issues:i.issues.map(s=>lc(s,n,bo()))},input:t.value}),t.issues=[]),t)):(t.value=a.value,a.issues.length&&(t.value=e.catchValue({...t,error:{issues:a.issues.map(i=>lc(i,n,bo()))},input:t.value}),t.issues=[]),t)}}),qX=Y("$ZodPipe",(r,e)=>{zr.init(r,e),Xr(r._zod,"values",()=>e.in._zod.values),Xr(r._zod,"optin",()=>e.in._zod.optin),Xr(r._zod,"optout",()=>e.out._zod.optout),r._zod.parse=(t,n)=>{let a=e.in._zod.run(t,n);return a instanceof Promise?a.then(i=>g4e(i,e,n)):g4e(a,e,n)}});WX=Y("$ZodReadonly",(r,e)=>{zr.init(r,e),Xr(r._zod,"propValues",()=>e.innerType._zod.propValues),Xr(r._zod,"values",()=>e.innerType._zod.values),Xr(r._zod,"optin",()=>e.innerType._zod.optin),Xr(r._zod,"optout",()=>e.innerType._zod.optout),r._zod.parse=(t,n)=>{let a=e.innerType._zod.run(t,n);return a instanceof Promise?a.then(y4e):y4e(a)}});YX=Y("$ZodCustom",(r,e)=>{Ka.init(r,e),zr.init(r,e),r._zod.parse=(t,n)=>t,r._zod.check=t=>{let n=t.value,a=e.fn(n);if(a instanceof Promise)return a.then(i=>v4e(i,t,n,r));v4e(a,t,n,r)}})});function C4e(){return{localeError:t1t()}}var e1t,t1t,E4e=y(()=>{Vd();e1t=r=>{let e=typeof r;switch(e){case"number":return Number.isNaN(r)?"NaN":"number";case"object":{if(Array.isArray(r))return"array";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return e},t1t=()=>{let r={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(n){var a;return(a=r[n])!=null?a:null}let t={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return n=>{var a,i,s,o;switch(n.code){case"invalid_type":return`Invalid input: expected ${n.expected}, received ${e1t(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${gz(n.values[0])}`:`Invalid option: expected one of ${fz(n.values,"|")}`;case"too_big":{let l=n.inclusive?"<=":"<",c=e(n.origin);return c?`Too big: expected ${(a=n.origin)!=null?a:"value"} to have ${l}${n.maximum.toString()} ${(i=c.unit)!=null?i:"elements"}`:`Too big: expected ${(s=n.origin)!=null?s:"value"} to be ${l}${n.maximum.toString()}`}case"too_small":{let l=n.inclusive?">=":">",c=e(n.origin);return c?`Too small: expected ${n.origin} to have ${l}${n.minimum.toString()} ${c.unit}`:`Too small: expected ${n.origin} to be ${l}${n.minimum.toString()}`}case"invalid_format":{let l=n;return l.format==="starts_with"?`Invalid string: must start with "${l.prefix}"`:l.format==="ends_with"?`Invalid string: must end with "${l.suffix}"`:l.format==="includes"?`Invalid string: must include "${l.includes}"`:l.format==="regex"?`Invalid string: must match pattern ${l.pattern}`:`Invalid ${(o=t[l.format])!=null?o:n.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${n.divisor}`;case"unrecognized_keys":return`Unrecognized key${n.keys.length>1?"s":""}: ${fz(n.keys,", ")}`;case"invalid_key":return`Invalid key in ${n.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${n.origin}`;default:return"Invalid input"}}}});function D4e(){return new H0}var r1t,n1t,H0,Of,GX=y(()=>{r1t=Symbol("ZodOutput"),n1t=Symbol("ZodInput"),H0=class{constructor(){this._map=new Map,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){var n;let t=e._zod.parent;if(t){let a={...(n=this.get(t))!=null?n:{}};return delete a.id,{...a,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};Of=D4e()});function KX(r,e){return new r({type:"string",...Qe(e)})}function ZX(r,e){return new r({type:"string",format:"email",check:"string_format",abort:!1,...Qe(e)})}function xz(r,e){return new r({type:"string",format:"guid",check:"string_format",abort:!1,...Qe(e)})}function QX(r,e){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,...Qe(e)})}function JX(r,e){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Qe(e)})}function XX(r,e){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Qe(e)})}function eee(r,e){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Qe(e)})}function tee(r,e){return new r({type:"string",format:"url",check:"string_format",abort:!1,...Qe(e)})}function ree(r,e){return new r({type:"string",format:"emoji",check:"string_format",abort:!1,...Qe(e)})}function nee(r,e){return new r({type:"string",format:"nanoid",check:"string_format",abort:!1,...Qe(e)})}function aee(r,e){return new r({type:"string",format:"cuid",check:"string_format",abort:!1,...Qe(e)})}function iee(r,e){return new r({type:"string",format:"cuid2",check:"string_format",abort:!1,...Qe(e)})}function see(r,e){return new r({type:"string",format:"ulid",check:"string_format",abort:!1,...Qe(e)})}function oee(r,e){return new r({type:"string",format:"xid",check:"string_format",abort:!1,...Qe(e)})}function lee(r,e){return new r({type:"string",format:"ksuid",check:"string_format",abort:!1,...Qe(e)})}function cee(r,e){return new r({type:"string",format:"ipv4",check:"string_format",abort:!1,...Qe(e)})}function dee(r,e){return new r({type:"string",format:"ipv6",check:"string_format",abort:!1,...Qe(e)})}function uee(r,e){return new r({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Qe(e)})}function pee(r,e){return new r({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Qe(e)})}function mee(r,e){return new r({type:"string",format:"base64",check:"string_format",abort:!1,...Qe(e)})}function fee(r,e){return new r({type:"string",format:"base64url",check:"string_format",abort:!1,...Qe(e)})}function hee(r,e){return new r({type:"string",format:"e164",check:"string_format",abort:!1,...Qe(e)})}function gee(r,e){return new r({type:"string",format:"jwt",check:"string_format",abort:!1,...Qe(e)})}function P4e(r,e){return new r({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Qe(e)})}function M4e(r,e){return new r({type:"string",format:"date",check:"string_format",...Qe(e)})}function A4e(r,e){return new r({type:"string",format:"time",check:"string_format",precision:null,...Qe(e)})}function _4e(r,e){return new r({type:"string",format:"duration",check:"string_format",...Qe(e)})}function yee(r,e){return new r({type:"number",checks:[],...Qe(e)})}function vee(r,e){return new r({type:"number",check:"number_format",abort:!1,format:"safeint",...Qe(e)})}function kee(r,e){return new r({type:"boolean",...Qe(e)})}function bee(r,e){return new r({type:"null",...Qe(e)})}function Tee(r){return new r({type:"unknown"})}function wee(r,e){return new r({type:"never",...Qe(e)})}function Cz(r,e){return new nX({check:"less_than",...Qe(e),value:r,inclusive:!1})}function V0(r,e){return new nX({check:"less_than",...Qe(e),value:r,inclusive:!0})}function Ez(r,e){return new aX({check:"greater_than",...Qe(e),value:r,inclusive:!1})}function q0(r,e){return new aX({check:"greater_than",...Qe(e),value:r,inclusive:!0})}function Dz(r,e){return new ZWe({check:"multiple_of",...Qe(e),value:r})}function Pz(r,e){return new JWe({check:"max_length",...Qe(e),maximum:r})}function JT(r,e){return new XWe({check:"min_length",...Qe(e),minimum:r})}function Mz(r,e){return new e4e({check:"length_equals",...Qe(e),length:r})}function See(r,e){return new t4e({check:"string_format",format:"regex",...Qe(e),pattern:r})}function xee(r){return new r4e({check:"string_format",format:"lowercase",...Qe(r)})}function Cee(r){return new n4e({check:"string_format",format:"uppercase",...Qe(r)})}function Eee(r,e){return new a4e({check:"string_format",format:"includes",...Qe(e),includes:r})}function Dee(r,e){return new i4e({check:"string_format",format:"starts_with",...Qe(e),prefix:r})}function Pee(r,e){return new s4e({check:"string_format",format:"ends_with",...Qe(e),suffix:r})}function jy(r){return new o4e({check:"overwrite",tx:r})}function Mee(r){return jy(e=>e.normalize(r))}function Aee(){return jy(r=>r.trim())}function _ee(){return jy(r=>r.toLowerCase())}function Iee(){return jy(r=>r.toUpperCase())}function I4e(r,e,t){return new r({type:"array",element:e,...Qe(t)})}function Nee(r,e,t){var i;let n=Qe(t);return(i=n.abort)!=null||(n.abort=!0),new r({type:"custom",check:"custom",fn:e,...n})}function Ree(r,e,t){return new r({type:"custom",check:"custom",fn:e,...Qe(t)})}var N4e=y(()=>{vz();Vd()});var R4e=y(()=>{});function Fee(r,e){if(r instanceof H0){let n=new Az(e),a={};for(let o of r._idmap.entries()){let[l,c]=o;n.process(c)}let i={},s={registry:r,uri:e==null?void 0:e.uri,defs:a};for(let o of r._idmap.entries()){let[l,c]=o;i[l]=n.emit(c,{...e,external:s})}if(Object.keys(a).length>0){let o=n.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[o]:a}}return{schemas:i}}let t=new Az(e);return t.process(r),t.emit(r,e)}function Sa(r,e){let t=e!=null?e:{seen:new Set};if(t.seen.has(r))return!1;t.seen.add(r);let a=r._zod.def;switch(a.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return Sa(a.element,t);case"object":{for(let i in a.shape)if(Sa(a.shape[i],t))return!0;return!1}case"union":{for(let i of a.options)if(Sa(i,t))return!0;return!1}case"intersection":return Sa(a.left,t)||Sa(a.right,t);case"tuple":{for(let i of a.items)if(Sa(i,t))return!0;return!!(a.rest&&Sa(a.rest,t))}case"record":return Sa(a.keyType,t)||Sa(a.valueType,t);case"map":return Sa(a.keyType,t)||Sa(a.valueType,t);case"set":return Sa(a.valueType,t);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return Sa(a.innerType,t);case"lazy":return Sa(a.getter(),t);case"default":return Sa(a.innerType,t);case"prefault":return Sa(a.innerType,t);case"custom":return!1;case"transform":return!0;case"pipe":return Sa(a.in,t)||Sa(a.out,t);case"success":return!1;case"catch":return!1;default:}throw new Error(`Unknown schema type: ${a.type}`)}var Az,F4e=y(()=>{GX();Vd();Az=class{constructor(e){var t,n,a,i,s;this.counter=0,this.metadataRegistry=(t=e==null?void 0:e.metadata)!=null?t:Of,this.target=(n=e==null?void 0:e.target)!=null?n:"draft-2020-12",this.unrepresentable=(a=e==null?void 0:e.unrepresentable)!=null?a:"throw",this.override=(i=e==null?void 0:e.override)!=null?i:(()=>{}),this.io=(s=e==null?void 0:e.io)!=null?s:"output",this.seen=new Map}process(e,t={path:[],schemaPath:[]}){var u,p,m,f,h;var n;let a=e._zod.def,i={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},s=this.seen.get(e);if(s)return s.count++,t.schemaPath.includes(e)&&(s.cycle=t.path),s.schema;let o={schema:{},count:1,cycle:void 0,path:t.path};this.seen.set(e,o);let l=(p=(u=e._zod).toJSONSchema)==null?void 0:p.call(u);if(l)o.schema=l;else{let g={...t,schemaPath:[...t.schemaPath,e],path:t.path},v=e._zod.parent;if(v)o.ref=v,this.process(v,g),this.seen.get(v).isParent=!0;else{let b=o.schema;switch(a.type){case"string":{let k=b;k.type="string";let{minimum:w,maximum:S,format:C,patterns:E,contentEncoding:D}=e._zod.bag;if(typeof w=="number"&&(k.minLength=w),typeof S=="number"&&(k.maxLength=S),C&&(k.format=(m=i[C])!=null?m:C,k.format===""&&delete k.format),D&&(k.contentEncoding=D),E&&E.size>0){let P=[...E];P.length===1?k.pattern=P[0].source:P.length>1&&(o.schema.allOf=[...P.map(O=>({...this.target==="draft-7"?{type:"string"}:{},pattern:O.source}))])}break}case"number":{let k=b,{minimum:w,maximum:S,format:C,multipleOf:E,exclusiveMaximum:D,exclusiveMinimum:P}=e._zod.bag;typeof C=="string"&&C.includes("int")?k.type="integer":k.type="number",typeof P=="number"&&(k.exclusiveMinimum=P),typeof w=="number"&&(k.minimum=w,typeof P=="number"&&(P>=w?delete k.minimum:delete k.exclusiveMinimum)),typeof D=="number"&&(k.exclusiveMaximum=D),typeof S=="number"&&(k.maximum=S,typeof D=="number"&&(D<=S?delete k.maximum:delete k.exclusiveMaximum)),typeof E=="number"&&(k.multipleOf=E);break}case"boolean":{let k=b;k.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{b.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{b.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{let k=b,{minimum:w,maximum:S}=e._zod.bag;typeof w=="number"&&(k.minItems=w),typeof S=="number"&&(k.maxItems=S),k.type="array",k.items=this.process(a.element,{...g,path:[...g.path,"items"]});break}case"object":{let k=b;k.type="object",k.properties={};let w=a.shape;for(let E in w)k.properties[E]=this.process(w[E],{...g,path:[...g.path,"properties",E]});let S=new Set(Object.keys(w)),C=new Set([...S].filter(E=>{let D=a.shape[E]._zod;return this.io==="input"?D.optin===void 0:D.optout===void 0}));C.size>0&&(k.required=Array.from(C)),((f=a.catchall)==null?void 0:f._zod.def.type)==="never"?k.additionalProperties=!1:a.catchall?a.catchall&&(k.additionalProperties=this.process(a.catchall,{...g,path:[...g.path,"additionalProperties"]})):this.io==="output"&&(k.additionalProperties=!1);break}case"union":{let k=b;k.anyOf=a.options.map((w,S)=>this.process(w,{...g,path:[...g.path,"anyOf",S]}));break}case"intersection":{let k=b,w=this.process(a.left,{...g,path:[...g.path,"allOf",0]}),S=this.process(a.right,{...g,path:[...g.path,"allOf",1]}),C=D=>"allOf"in D&&Object.keys(D).length===1,E=[...C(w)?w.allOf:[w],...C(S)?S.allOf:[S]];k.allOf=E;break}case"tuple":{let k=b;k.type="array";let w=a.items.map((E,D)=>this.process(E,{...g,path:[...g.path,"prefixItems",D]}));if(this.target==="draft-2020-12"?k.prefixItems=w:k.items=w,a.rest){let E=this.process(a.rest,{...g,path:[...g.path,"items"]});this.target==="draft-2020-12"?k.items=E:k.additionalItems=E}a.rest&&(k.items=this.process(a.rest,{...g,path:[...g.path,"items"]}));let{minimum:S,maximum:C}=e._zod.bag;typeof S=="number"&&(k.minItems=S),typeof C=="number"&&(k.maxItems=C);break}case"record":{let k=b;k.type="object",k.propertyNames=this.process(a.keyType,{...g,path:[...g.path,"propertyNames"]}),k.additionalProperties=this.process(a.valueType,{...g,path:[...g.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{let k=b,w=F0(a.entries);w.every(S=>typeof S=="number")&&(k.type="number"),w.every(S=>typeof S=="string")&&(k.type="string"),k.enum=w;break}case"literal":{let k=b,w=[];for(let S of a.values)if(S===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof S=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");w.push(Number(S))}else w.push(S);if(w.length!==0)if(w.length===1){let S=w[0];k.type=S===null?"null":typeof S,k.const=S}else w.every(S=>typeof S=="number")&&(k.type="number"),w.every(S=>typeof S=="string")&&(k.type="string"),w.every(S=>typeof S=="boolean")&&(k.type="string"),w.every(S=>S===null)&&(k.type="null"),k.enum=w;break}case"file":{let k=b,w={type:"string",format:"binary",contentEncoding:"binary"},{minimum:S,maximum:C,mime:E}=e._zod.bag;S!==void 0&&(w.minLength=S),C!==void 0&&(w.maxLength=C),E?E.length===1?(w.contentMediaType=E[0],Object.assign(k,w)):k.anyOf=E.map(D=>({...w,contentMediaType:D})):Object.assign(k,w);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let k=this.process(a.innerType,g);b.anyOf=[k,{type:"null"}];break}case"nonoptional":{this.process(a.innerType,g),o.ref=a.innerType;break}case"success":{let k=b;k.type="boolean";break}case"default":{this.process(a.innerType,g),o.ref=a.innerType,b.default=JSON.parse(JSON.stringify(a.defaultValue));break}case"prefault":{this.process(a.innerType,g),o.ref=a.innerType,this.io==="input"&&(b._prefault=JSON.parse(JSON.stringify(a.defaultValue)));break}case"catch":{this.process(a.innerType,g),o.ref=a.innerType;let k;try{k=a.catchValue(void 0)}catch(w){throw new Error("Dynamic catch values are not supported in JSON Schema")}b.default=k;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let k=b,w=e._zod.pattern;if(!w)throw new Error("Pattern not found in template literal");k.type="string",k.pattern=w.source;break}case"pipe":{let k=this.io==="input"?a.in._zod.def.type==="transform"?a.out:a.in:a.out;this.process(k,g),o.ref=k;break}case"readonly":{this.process(a.innerType,g),o.ref=a.innerType,b.readOnly=!0;break}case"promise":{this.process(a.innerType,g),o.ref=a.innerType;break}case"optional":{this.process(a.innerType,g),o.ref=a.innerType;break}case"lazy":{let k=e._zod.innerType;this.process(k,g),o.ref=k;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}default:}}}let c=this.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),this.io==="input"&&Sa(e)&&(delete o.schema.examples,delete o.schema.default),this.io==="input"&&o.schema._prefault&&((h=(n=o.schema).default)!=null||(n.default=o.schema._prefault)),delete o.schema._prefault,this.seen.get(e).schema}emit(e,t){var d,u,p,m,f,h,g,v,b,k;let n={cycles:(d=t==null?void 0:t.cycles)!=null?d:"ref",reused:(u=t==null?void 0:t.reused)!=null?u:"inline",external:(p=t==null?void 0:t.external)!=null?p:void 0},a=this.seen.get(e);if(!a)throw new Error("Unprocessed schema. This is a bug in Zod.");let i=w=>{var P,O,z,R,A;let S=this.target==="draft-2020-12"?"$defs":"definitions";if(n.external){let F=(P=n.external.registry.get(w[0]))==null?void 0:P.id,$=(O=n.external.uri)!=null?O:(ue=>ue);if(F)return{ref:$(F)};let B=(R=(z=w[1].defId)!=null?z:w[1].schema.id)!=null?R:`schema${this.counter++}`;return w[1].defId=B,{defId:B,ref:`${$("__shared")}#/${S}/${B}`}}if(w[1]===a)return{ref:"#"};let E=`#/${S}/`,D=(A=w[1].schema.id)!=null?A:`__schema${this.counter++}`;return{defId:D,ref:E+D}},s=w=>{if(w[1].schema.$ref)return;let S=w[1],{ref:C,defId:E}=i(w);S.def={...S.schema},E&&(S.defId=E);let D=S.schema;for(let P in D)delete D[P];D.$ref=C};if(n.cycles==="throw")for(let w of this.seen.entries()){let S=w[1];if(S.cycle)throw new Error(`Cycle detected: #/${(m=S.cycle)==null?void 0:m.join("/")}/<root>
|
||
|
||
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let w of this.seen.entries()){let S=w[1];if(e===w[0]){s(w);continue}if(n.external){let E=(f=n.external.registry.get(w[0]))==null?void 0:f.id;if(e!==w[0]&&E){s(w);continue}}if((h=this.metadataRegistry.get(w[0]))==null?void 0:h.id){s(w);continue}if(S.cycle){s(w);continue}if(S.count>1&&n.reused==="ref"){s(w);continue}}let o=(w,S)=>{var O,z,R;let C=this.seen.get(w),E=(O=C.def)!=null?O:C.schema,D={...E};if(C.ref===null)return;let P=C.ref;if(C.ref=null,P){o(P,S);let A=this.seen.get(P).schema;A.$ref&&S.target==="draft-7"?(E.allOf=(z=E.allOf)!=null?z:[],E.allOf.push(A)):(Object.assign(E,A),Object.assign(E,D))}C.isParent||this.override({zodSchema:w,jsonSchema:E,path:(R=C.path)!=null?R:[]})};for(let w of[...this.seen.entries()].reverse())o(w[0],{target:this.target});let l={};if(this.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?l.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),(g=n.external)!=null&&g.uri){let w=(v=n.external.registry.get(e))==null?void 0:v.id;if(!w)throw new Error("Schema is missing an `id` property");l.$id=n.external.uri(w)}Object.assign(l,a.def);let c=(k=(b=n.external)==null?void 0:b.defs)!=null?k:{};for(let w of this.seen.entries()){let S=w[1];S.def&&S.defId&&(c[S.defId]=S.def)}n.external||Object.keys(c).length>0&&(this.target==="draft-2020-12"?l.$defs=c:l.definitions=c);try{return JSON.parse(JSON.stringify(l))}catch(w){throw new Error("Error converting schema to JSON.")}}}});var wo=y(()=>{KT();JJ();qJ();x4e();vz();sX();Vd();GX();iX();R4e();N4e();F4e()});var Oee=y(()=>{wo()});function Lee(r,e){let t={type:"object",get shape(){return $t.assignProp(this,"shape",{...r}),this.shape},...$t.normalizeParams(e)};return new j1t(t)}var z1t,j1t,O4e=y(()=>{wo();wo();Oee();z1t=Y("ZodMiniType",(r,e)=>{if(!r._zod)throw new Error("Uninitialized schema in ZodMiniType.");zr.init(r,e),r.def=e,r.parse=(t,n)=>YJ(r,t,n,{callee:r.parse}),r.safeParse=(t,n)=>Ly(r,t,n),r.parseAsync=async(t,n)=>KJ(r,t,n,{callee:r.parseAsync}),r.safeParseAsync=async(t,n)=>zy(r,t,n),r.check=(...t)=>{var n;return r.clone({...e,checks:[...(n=e.checks)!=null?n:[],...t.map(a=>typeof a=="function"?{_zod:{check:a,def:{check:"custom"},onattach:[]}}:a)]})},r.clone=(t,n)=>To(r,t,n),r.brand=()=>r,r.register=((t,n)=>(t.add(r,n),r))}),j1t=Y("ZodMiniObject",(r,e)=>{wz.init(r,e),z1t.init(r,e),$t.defineLazy(r,"shape",()=>e.shape)})});var L4e=y(()=>{});var z4e=y(()=>{Oee();O4e();L4e();wo()});var j4e=y(()=>{z4e()});var zee=y(()=>{j4e()});function ml(r){return!!r._zod}function $y(r){let e=Object.values(r);if(e.length===0)return Lee({});let t=e.every(ml),n=e.every(a=>!ml(a));if(t)return Lee(r);if(n)return kZ(r);throw new Error("Mixed Zod versions detected in object shape.")}function Lf(r,e){return ml(r)?Ly(r,e):r.safeParse(e)}async function _z(r,e){return ml(r)?await zy(r,e):await r.safeParseAsync(e)}function zf(r){var t,n;if(!r)return;let e;if(ml(r)?e=(n=(t=r._zod)==null?void 0:t.def)==null?void 0:n.shape:e=r.shape,!!e){if(typeof e=="function")try{return e()}catch(a){return}return e}}function XT(r){var e;if(r){if(typeof r=="object"){let t=r,n=r;if(!t._def&&!n._zod){let a=Object.values(r);if(a.length>0&&a.every(i=>typeof i=="object"&&i!==null&&(i._def!==void 0||i._zod!==void 0||typeof i.parse=="function")))return $y(r)}}if(ml(r)){let n=(e=r._zod)==null?void 0:e.def;if(n&&(n.type==="object"||n.shape!==void 0))return r}else if(r.shape!==void 0)return r}}function Iz(r){if(r&&typeof r=="object"){if("message"in r&&typeof r.message=="string")return r.message;if("issues"in r&&Array.isArray(r.issues)&&r.issues.length>0){let e=r.issues[0];if(e&&typeof e=="object"&&"message"in e)return String(e.message)}try{return JSON.stringify(r)}catch(e){return String(r)}}return String(r)}function B4e(r){return r.description}function U4e(r){var t,n,a;if(ml(r))return((n=(t=r._zod)==null?void 0:t.def)==null?void 0:n.type)==="optional";let e=r;return typeof r.isOptional=="function"?r.isOptional():((a=e._def)==null?void 0:a.typeName)==="ZodOptional"}function Nz(r){var a;if(ml(r)){let s=(a=r._zod)==null?void 0:a.def;if(s){if(s.value!==void 0)return s.value;if(Array.isArray(s.values)&&s.values.length>0)return s.values[0]}}let t=r._def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}let n=r.value;if(n!==void 0)return n}var Y0=y(()=>{N0();zee()});var jee=y(()=>{wo()});var ew={};at(ew,{ZodISODate:()=>V4e,ZodISODateTime:()=>H4e,ZodISODuration:()=>W4e,ZodISOTime:()=>q4e,date:()=>Bee,datetime:()=>$ee,duration:()=>Hee,time:()=>Uee});function $ee(r){return P4e(H4e,r)}function Bee(r){return M4e(V4e,r)}function Uee(r){return A4e(q4e,r)}function Hee(r){return _4e(W4e,r)}var H4e,V4e,q4e,W4e,Vee=y(()=>{wo();qee();H4e=Y("ZodISODateTime",(r,e)=>{k4e.init(r,e),gn.init(r,e)});V4e=Y("ZodISODate",(r,e)=>{b4e.init(r,e),gn.init(r,e)});q4e=Y("ZodISOTime",(r,e)=>{T4e.init(r,e),gn.init(r,e)});W4e=Y("ZodISODuration",(r,e)=>{w4e.init(r,e),gn.init(r,e)})});var Y4e,VZr,G0,Wee=y(()=>{wo();wo();Y4e=(r,e)=>{yz.init(r,e),r.name="ZodError",Object.defineProperties(r,{format:{value:t=>VJ(r,t)},flatten:{value:t=>HJ(r,t)},addIssue:{value:t=>r.issues.push(t)},addIssues:{value:t=>r.issues.push(...t)},isEmpty:{get(){return r.issues.length===0}}})},VZr=Y("ZodError",Y4e),G0=Y("ZodError",Y4e,{Parent:Error})});var G4e,K4e,Z4e,Q4e,Yee=y(()=>{wo();Wee();G4e=WJ(G0),K4e=GJ(G0),Z4e=ZJ(G0),Q4e=QJ(G0)});function W(r){return KX(Y1t,r)}function Rr(r){return yee(r3e,r)}function X4e(r){return vee(uzt,r)}function Na(r){return kee(pzt,r)}function Zee(r){return bee(mzt,r)}function yn(){return Tee(fzt)}function gzt(r){return wee(hzt,r)}function Zt(r,e){return I4e(yzt,r,e)}function be(r,e){let t={type:"object",get shape(){return $t.assignProp(this,"shape",{...r}),this.shape},...$t.normalizeParams(e)};return new n3e(t)}function Zi(r,e){return new n3e({type:"object",get shape(){return $t.assignProp(this,"shape",{...r}),this.shape},catchall:yn(),...$t.normalizeParams(e)})}function tn(r,e){return new a3e({type:"union",options:r,...$t.normalizeParams(e)})}function Qee(r,e,t){return new vzt({type:"union",options:e,discriminator:r,...$t.normalizeParams(t)})}function Fz(r,e){return new kzt({type:"intersection",left:r,right:e})}function vn(r,e,t){return new bzt({type:"record",keyType:r,valueType:e,...$t.normalizeParams(t)})}function Ms(r,e){let t=Array.isArray(r)?Object.fromEntries(r.map(n=>[n,n])):r;return new Gee({type:"enum",entries:t,...$t.normalizeParams(e)})}function ze(r,e){return new Tzt({type:"literal",values:Array.isArray(r)?r:[r],...$t.normalizeParams(e)})}function i3e(r){return new wzt({type:"transform",transform:r})}function Mn(r){return new s3e({type:"optional",innerType:r})}function e3e(r){return new Szt({type:"nullable",innerType:r})}function Czt(r,e){return new xzt({type:"default",innerType:r,get defaultValue(){return typeof e=="function"?e():e}})}function Dzt(r,e){return new Ezt({type:"prefault",innerType:r,get defaultValue(){return typeof e=="function"?e():e}})}function Pzt(r,e){return new o3e({type:"nonoptional",innerType:r,...$t.normalizeParams(e)})}function Azt(r,e){return new Mzt({type:"catch",innerType:r,catchValue:typeof e=="function"?e:()=>e})}function Kee(r,e){return new _zt({type:"pipe",in:r,out:e})}function Nzt(r){return new Izt({type:"readonly",innerType:r})}function Rzt(r){let e=new Ka({check:"custom"});return e._zod.check=r,e}function c3e(r,e){return Nee(l3e,r!=null?r:(()=>!0),e)}function Fzt(r,e={}){return Ree(l3e,r,e)}function Ozt(r){let e=Rzt(t=>(t.addIssue=n=>{var a,i,s,o;if(typeof n=="string")t.issues.push($t.issue(n,t.value,e._zod.def));else{let l=n;l.fatal&&(l.continue=!1),(a=l.code)!=null||(l.code="custom"),(i=l.input)!=null||(l.input=t.value),(s=l.inst)!=null||(l.inst=e),(o=l.continue)!=null||(l.continue=!e._zod.def.abort),t.issues.push($t.issue(l))}},r(t.value,t)));return e}function Jee(r,e){return Kee(i3e(r),e)}var An,t3e,Y1t,gn,G1t,J4e,Rz,K1t,Z1t,Q1t,J1t,X1t,ezt,tzt,rzt,nzt,azt,izt,szt,ozt,lzt,czt,dzt,r3e,uzt,pzt,mzt,fzt,hzt,yzt,n3e,a3e,vzt,kzt,bzt,Gee,Tzt,wzt,s3e,Szt,xzt,Ezt,o3e,Mzt,_zt,Izt,l3e,qee=y(()=>{wo();wo();jee();Vee();Yee();An=Y("ZodType",(r,e)=>(zr.init(r,e),r.def=e,Object.defineProperty(r,"_def",{value:e}),r.check=(...t)=>{var n;return r.clone({...e,checks:[...(n=e.checks)!=null?n:[],...t.map(a=>typeof a=="function"?{_zod:{check:a,def:{check:"custom"},onattach:[]}}:a)]})},r.clone=(t,n)=>To(r,t,n),r.brand=()=>r,r.register=((t,n)=>(t.add(r,n),r)),r.parse=(t,n)=>G4e(r,t,n,{callee:r.parse}),r.safeParse=(t,n)=>Z4e(r,t,n),r.parseAsync=async(t,n)=>K4e(r,t,n,{callee:r.parseAsync}),r.safeParseAsync=async(t,n)=>Q4e(r,t,n),r.spa=r.safeParseAsync,r.refine=(t,n)=>r.check(Fzt(t,n)),r.superRefine=t=>r.check(Ozt(t)),r.overwrite=t=>r.check(jy(t)),r.optional=()=>Mn(r),r.nullable=()=>e3e(r),r.nullish=()=>Mn(e3e(r)),r.nonoptional=t=>Pzt(r,t),r.array=()=>Zt(r),r.or=t=>tn([r,t]),r.and=t=>Fz(r,t),r.transform=t=>Kee(r,i3e(t)),r.default=t=>Czt(r,t),r.prefault=t=>Dzt(r,t),r.catch=t=>Azt(r,t),r.pipe=t=>Kee(r,t),r.readonly=()=>Nzt(r),r.describe=t=>{let n=r.clone();return Of.add(n,{description:t}),n},Object.defineProperty(r,"description",{get(){var t;return(t=Of.get(r))==null?void 0:t.description},configurable:!0}),r.meta=(...t)=>{if(t.length===0)return Of.get(r);let n=r.clone();return Of.add(n,t[0]),n},r.isOptional=()=>r.safeParse(void 0).success,r.isNullable=()=>r.safeParse(null).success,r)),t3e=Y("_ZodString",(r,e)=>{var n,a,i;U0.init(r,e),An.init(r,e);let t=r._zod.bag;r.format=(n=t.format)!=null?n:null,r.minLength=(a=t.minimum)!=null?a:null,r.maxLength=(i=t.maximum)!=null?i:null,r.regex=(...s)=>r.check(See(...s)),r.includes=(...s)=>r.check(Eee(...s)),r.startsWith=(...s)=>r.check(Dee(...s)),r.endsWith=(...s)=>r.check(Pee(...s)),r.min=(...s)=>r.check(JT(...s)),r.max=(...s)=>r.check(Pz(...s)),r.length=(...s)=>r.check(Mz(...s)),r.nonempty=(...s)=>r.check(JT(1,...s)),r.lowercase=s=>r.check(xee(s)),r.uppercase=s=>r.check(Cee(s)),r.trim=()=>r.check(Aee()),r.normalize=(...s)=>r.check(Mee(...s)),r.toLowerCase=()=>r.check(_ee()),r.toUpperCase=()=>r.check(Iee())}),Y1t=Y("ZodString",(r,e)=>{U0.init(r,e),t3e.init(r,e),r.email=t=>r.check(ZX(G1t,t)),r.url=t=>r.check(tee(K1t,t)),r.jwt=t=>r.check(gee(dzt,t)),r.emoji=t=>r.check(ree(Z1t,t)),r.guid=t=>r.check(xz(J4e,t)),r.uuid=t=>r.check(QX(Rz,t)),r.uuidv4=t=>r.check(JX(Rz,t)),r.uuidv6=t=>r.check(XX(Rz,t)),r.uuidv7=t=>r.check(eee(Rz,t)),r.nanoid=t=>r.check(nee(Q1t,t)),r.guid=t=>r.check(xz(J4e,t)),r.cuid=t=>r.check(aee(J1t,t)),r.cuid2=t=>r.check(iee(X1t,t)),r.ulid=t=>r.check(see(ezt,t)),r.base64=t=>r.check(mee(ozt,t)),r.base64url=t=>r.check(fee(lzt,t)),r.xid=t=>r.check(oee(tzt,t)),r.ksuid=t=>r.check(lee(rzt,t)),r.ipv4=t=>r.check(cee(nzt,t)),r.ipv6=t=>r.check(dee(azt,t)),r.cidrv4=t=>r.check(uee(izt,t)),r.cidrv6=t=>r.check(pee(szt,t)),r.e164=t=>r.check(hee(czt,t)),r.datetime=t=>r.check($ee(t)),r.date=t=>r.check(Bee(t)),r.time=t=>r.check(Uee(t)),r.duration=t=>r.check(Hee(t))});gn=Y("ZodStringFormat",(r,e)=>{en.init(r,e),t3e.init(r,e)}),G1t=Y("ZodEmail",(r,e)=>{dX.init(r,e),gn.init(r,e)}),J4e=Y("ZodGUID",(r,e)=>{lX.init(r,e),gn.init(r,e)}),Rz=Y("ZodUUID",(r,e)=>{cX.init(r,e),gn.init(r,e)}),K1t=Y("ZodURL",(r,e)=>{uX.init(r,e),gn.init(r,e)}),Z1t=Y("ZodEmoji",(r,e)=>{pX.init(r,e),gn.init(r,e)}),Q1t=Y("ZodNanoID",(r,e)=>{mX.init(r,e),gn.init(r,e)}),J1t=Y("ZodCUID",(r,e)=>{fX.init(r,e),gn.init(r,e)}),X1t=Y("ZodCUID2",(r,e)=>{hX.init(r,e),gn.init(r,e)}),ezt=Y("ZodULID",(r,e)=>{gX.init(r,e),gn.init(r,e)}),tzt=Y("ZodXID",(r,e)=>{yX.init(r,e),gn.init(r,e)}),rzt=Y("ZodKSUID",(r,e)=>{vX.init(r,e),gn.init(r,e)}),nzt=Y("ZodIPv4",(r,e)=>{kX.init(r,e),gn.init(r,e)}),azt=Y("ZodIPv6",(r,e)=>{bX.init(r,e),gn.init(r,e)}),izt=Y("ZodCIDRv4",(r,e)=>{TX.init(r,e),gn.init(r,e)}),szt=Y("ZodCIDRv6",(r,e)=>{wX.init(r,e),gn.init(r,e)}),ozt=Y("ZodBase64",(r,e)=>{SX.init(r,e),gn.init(r,e)}),lzt=Y("ZodBase64URL",(r,e)=>{xX.init(r,e),gn.init(r,e)}),czt=Y("ZodE164",(r,e)=>{CX.init(r,e),gn.init(r,e)}),dzt=Y("ZodJWT",(r,e)=>{EX.init(r,e),gn.init(r,e)}),r3e=Y("ZodNumber",(r,e)=>{var n,a,i,s,o,l,c,d,u;Tz.init(r,e),An.init(r,e),r.gt=(p,m)=>r.check(Ez(p,m)),r.gte=(p,m)=>r.check(q0(p,m)),r.min=(p,m)=>r.check(q0(p,m)),r.lt=(p,m)=>r.check(Cz(p,m)),r.lte=(p,m)=>r.check(V0(p,m)),r.max=(p,m)=>r.check(V0(p,m)),r.int=p=>r.check(X4e(p)),r.safe=p=>r.check(X4e(p)),r.positive=p=>r.check(Ez(0,p)),r.nonnegative=p=>r.check(q0(0,p)),r.negative=p=>r.check(Cz(0,p)),r.nonpositive=p=>r.check(V0(0,p)),r.multipleOf=(p,m)=>r.check(Dz(p,m)),r.step=(p,m)=>r.check(Dz(p,m)),r.finite=()=>r;let t=r._zod.bag;r.minValue=(i=Math.max((n=t.minimum)!=null?n:Number.NEGATIVE_INFINITY,(a=t.exclusiveMinimum)!=null?a:Number.NEGATIVE_INFINITY))!=null?i:null,r.maxValue=(l=Math.min((s=t.maximum)!=null?s:Number.POSITIVE_INFINITY,(o=t.exclusiveMaximum)!=null?o:Number.POSITIVE_INFINITY))!=null?l:null,r.isInt=((c=t.format)!=null?c:"").includes("int")||Number.isSafeInteger((d=t.multipleOf)!=null?d:.5),r.isFinite=!0,r.format=(u=t.format)!=null?u:null});uzt=Y("ZodNumberFormat",(r,e)=>{DX.init(r,e),r3e.init(r,e)});pzt=Y("ZodBoolean",(r,e)=>{PX.init(r,e),An.init(r,e)});mzt=Y("ZodNull",(r,e)=>{MX.init(r,e),An.init(r,e)});fzt=Y("ZodUnknown",(r,e)=>{AX.init(r,e),An.init(r,e)});hzt=Y("ZodNever",(r,e)=>{_X.init(r,e),An.init(r,e)});yzt=Y("ZodArray",(r,e)=>{IX.init(r,e),An.init(r,e),r.element=e.element,r.min=(t,n)=>r.check(JT(t,n)),r.nonempty=t=>r.check(JT(1,t)),r.max=(t,n)=>r.check(Pz(t,n)),r.length=(t,n)=>r.check(Mz(t,n)),r.unwrap=()=>r.element});n3e=Y("ZodObject",(r,e)=>{wz.init(r,e),An.init(r,e),$t.defineLazy(r,"shape",()=>e.shape),r.keyof=()=>Ms(Object.keys(r._zod.def.shape)),r.catchall=t=>r.clone({...r._zod.def,catchall:t}),r.passthrough=()=>r.clone({...r._zod.def,catchall:yn()}),r.loose=()=>r.clone({...r._zod.def,catchall:yn()}),r.strict=()=>r.clone({...r._zod.def,catchall:gzt()}),r.strip=()=>r.clone({...r._zod.def,catchall:void 0}),r.extend=t=>$t.extend(r,t),r.merge=t=>$t.merge(r,t),r.pick=t=>$t.pick(r,t),r.omit=t=>$t.omit(r,t),r.partial=(...t)=>$t.partial(s3e,r,t[0]),r.required=(...t)=>$t.required(o3e,r,t[0])});a3e=Y("ZodUnion",(r,e)=>{Sz.init(r,e),An.init(r,e),r.options=e.options});vzt=Y("ZodDiscriminatedUnion",(r,e)=>{a3e.init(r,e),NX.init(r,e)});kzt=Y("ZodIntersection",(r,e)=>{RX.init(r,e),An.init(r,e)});bzt=Y("ZodRecord",(r,e)=>{FX.init(r,e),An.init(r,e),r.keyType=e.keyType,r.valueType=e.valueType});Gee=Y("ZodEnum",(r,e)=>{OX.init(r,e),An.init(r,e),r.enum=e.entries,r.options=Object.values(e.entries);let t=new Set(Object.keys(e.entries));r.extract=(n,a)=>{let i={};for(let s of n)if(t.has(s))i[s]=e.entries[s];else throw new Error(`Key ${s} not found in enum`);return new Gee({...e,checks:[],...$t.normalizeParams(a),entries:i})},r.exclude=(n,a)=>{let i={...e.entries};for(let s of n)if(t.has(s))delete i[s];else throw new Error(`Key ${s} not found in enum`);return new Gee({...e,checks:[],...$t.normalizeParams(a),entries:i})}});Tzt=Y("ZodLiteral",(r,e)=>{LX.init(r,e),An.init(r,e),r.values=new Set(e.values),Object.defineProperty(r,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});wzt=Y("ZodTransform",(r,e)=>{zX.init(r,e),An.init(r,e),r._zod.parse=(t,n)=>{t.addIssue=i=>{var s,o,l,c;if(typeof i=="string")t.issues.push($t.issue(i,t.value,e));else{let d=i;d.fatal&&(d.continue=!1),(s=d.code)!=null||(d.code="custom"),(o=d.input)!=null||(d.input=t.value),(l=d.inst)!=null||(d.inst=r),(c=d.continue)!=null||(d.continue=!0),t.issues.push($t.issue(d))}};let a=e.transform(t.value,t);return a instanceof Promise?a.then(i=>(t.value=i,t)):(t.value=a,t)}});s3e=Y("ZodOptional",(r,e)=>{jX.init(r,e),An.init(r,e),r.unwrap=()=>r._zod.def.innerType});Szt=Y("ZodNullable",(r,e)=>{$X.init(r,e),An.init(r,e),r.unwrap=()=>r._zod.def.innerType});xzt=Y("ZodDefault",(r,e)=>{BX.init(r,e),An.init(r,e),r.unwrap=()=>r._zod.def.innerType,r.removeDefault=r.unwrap});Ezt=Y("ZodPrefault",(r,e)=>{UX.init(r,e),An.init(r,e),r.unwrap=()=>r._zod.def.innerType});o3e=Y("ZodNonOptional",(r,e)=>{HX.init(r,e),An.init(r,e),r.unwrap=()=>r._zod.def.innerType});Mzt=Y("ZodCatch",(r,e)=>{VX.init(r,e),An.init(r,e),r.unwrap=()=>r._zod.def.innerType,r.removeCatch=r.unwrap});_zt=Y("ZodPipe",(r,e)=>{qX.init(r,e),An.init(r,e),r.in=e.in,r.out=e.out});Izt=Y("ZodReadonly",(r,e)=>{WX.init(r,e),An.init(r,e)});l3e=Y("ZodCustom",(r,e)=>{YX.init(r,e),An.init(r,e)})});var d3e=y(()=>{});var u3e=y(()=>{qee();jee();Wee();Yee();d3e();wo();E4e();Vee();bo(C4e())});var p3e=y(()=>{u3e()});var m3e=y(()=>{p3e()});function P3e(r){if(r.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${r.params.ref.type}`)}function M3e(r){if(r.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${r.params.ref.type}`)}var ete,f3e,K0,jf,Lz,Za,h3e,g3e,sQr,zzt,jzt,tte,So,Z0,y3e,Qa,fl,hl,Ja,zz,v3e,$f,k3e,b3e,rte,Mp,He,nte,rw,ate,oQr,jz,$zt,$z,Bzt,Q0,tw,T3e,Uzt,Hzt,Vzt,qzt,Wzt,Yzt,Bz,ite,Gzt,Kzt,ste,Uz,Zzt,Qzt,Hz,Jzt,J0,X0,Xzt,eM,nw,ejt,tM,Vz,qz,Wz,lQr,Yz,Gz,Kz,w3e,S3e,x3e,ote,C3e,rM,aw,E3e,tjt,Zz,rjt,Qz,njt,lte,ajt,Jz,ijt,sjt,ojt,ljt,cjt,djt,ujt,pjt,mjt,fjt,Xz,hjt,gjt,ej,cte,dte,ute,yjt,vjt,kjt,pte,bjt,Tjt,wjt,Sjt,xjt,D3e,tj,Cjt,rj,cQr,Ejt,iw,Djt,dQr,nM,Pjt,mte,Mjt,Ajt,_jt,Ijt,Njt,Rjt,Fjt,Oz,Ojt,Ljt,zjt,fte,hte,jjt,$jt,Bjt,Ujt,Hjt,Vjt,qjt,Wjt,Yjt,Gjt,Kjt,Zjt,Qjt,Jjt,Xjt,e$t,t$t,r$t,nj,n$t,a$t,i$t,aj,s$t,o$t,l$t,gte,c$t,uQr,pQr,mQr,fQr,hQr,gQr,Oe,Xee,aM=y(()=>{m3e();ete="2025-11-25",f3e="2025-03-26",K0=[ete,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],jf="io.modelcontextprotocol/related-task",Lz="2.0",Za=c3e(r=>r!==null&&(typeof r=="object"||typeof r=="function")),h3e=tn([W(),Rr().int()]),g3e=W(),sQr=Zi({ttl:tn([Rr(),Zee()]).optional(),pollInterval:Rr().optional()}),zzt=be({ttl:Rr().optional()}),jzt=be({taskId:W()}),tte=Zi({progressToken:h3e.optional(),[jf]:jzt.optional()}),So=be({_meta:tte.optional()}),Z0=So.extend({task:zzt.optional()}),y3e=r=>Z0.safeParse(r).success,Qa=be({method:W(),params:So.loose().optional()}),fl=be({_meta:tte.optional()}),hl=be({method:W(),params:fl.loose().optional()}),Ja=Zi({_meta:tte.optional()}),zz=tn([W(),Rr().int()]),v3e=be({jsonrpc:ze(Lz),id:zz,...Qa.shape}).strict(),$f=r=>v3e.safeParse(r).success,k3e=be({jsonrpc:ze(Lz),...hl.shape}).strict(),b3e=r=>k3e.safeParse(r).success,rte=be({jsonrpc:ze(Lz),id:zz,result:Ja}).strict(),Mp=r=>rte.safeParse(r).success;(function(r){r[r.ConnectionClosed=-32e3]="ConnectionClosed",r[r.RequestTimeout=-32001]="RequestTimeout",r[r.ParseError=-32700]="ParseError",r[r.InvalidRequest=-32600]="InvalidRequest",r[r.MethodNotFound=-32601]="MethodNotFound",r[r.InvalidParams=-32602]="InvalidParams",r[r.InternalError=-32603]="InternalError",r[r.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(He||(He={}));nte=be({jsonrpc:ze(Lz),id:zz.optional(),error:be({code:Rr().int(),message:W(),data:yn().optional()})}).strict(),rw=r=>nte.safeParse(r).success,ate=tn([v3e,k3e,rte,nte]),oQr=tn([rte,nte]),jz=Ja.strict(),$zt=fl.extend({requestId:zz.optional(),reason:W().optional()}),$z=hl.extend({method:ze("notifications/cancelled"),params:$zt}),Bzt=be({src:W(),mimeType:W().optional(),sizes:Zt(W()).optional(),theme:Ms(["light","dark"]).optional()}),Q0=be({icons:Zt(Bzt).optional()}),tw=be({name:W(),title:W().optional()}),T3e=tw.extend({...tw.shape,...Q0.shape,version:W(),websiteUrl:W().optional(),description:W().optional()}),Uzt=Fz(be({applyDefaults:Na().optional()}),vn(W(),yn())),Hzt=Jee(r=>r&&typeof r=="object"&&!Array.isArray(r)&&Object.keys(r).length===0?{form:{}}:r,Fz(be({form:Uzt.optional(),url:Za.optional()}),vn(W(),yn()).optional())),Vzt=Zi({list:Za.optional(),cancel:Za.optional(),requests:Zi({sampling:Zi({createMessage:Za.optional()}).optional(),elicitation:Zi({create:Za.optional()}).optional()}).optional()}),qzt=Zi({list:Za.optional(),cancel:Za.optional(),requests:Zi({tools:Zi({call:Za.optional()}).optional()}).optional()}),Wzt=be({experimental:vn(W(),Za).optional(),sampling:be({context:Za.optional(),tools:Za.optional()}).optional(),elicitation:Hzt.optional(),roots:be({listChanged:Na().optional()}).optional(),tasks:Vzt.optional()}),Yzt=So.extend({protocolVersion:W(),capabilities:Wzt,clientInfo:T3e}),Bz=Qa.extend({method:ze("initialize"),params:Yzt}),ite=r=>Bz.safeParse(r).success,Gzt=be({experimental:vn(W(),Za).optional(),logging:Za.optional(),completions:Za.optional(),prompts:be({listChanged:Na().optional()}).optional(),resources:be({subscribe:Na().optional(),listChanged:Na().optional()}).optional(),tools:be({listChanged:Na().optional()}).optional(),tasks:qzt.optional()}),Kzt=Ja.extend({protocolVersion:W(),capabilities:Gzt,serverInfo:T3e,instructions:W().optional()}),ste=hl.extend({method:ze("notifications/initialized"),params:fl.optional()}),Uz=Qa.extend({method:ze("ping"),params:So.optional()}),Zzt=be({progress:Rr(),total:Mn(Rr()),message:Mn(W())}),Qzt=be({...fl.shape,...Zzt.shape,progressToken:h3e}),Hz=hl.extend({method:ze("notifications/progress"),params:Qzt}),Jzt=So.extend({cursor:g3e.optional()}),J0=Qa.extend({params:Jzt.optional()}),X0=Ja.extend({nextCursor:g3e.optional()}),Xzt=Ms(["working","input_required","completed","failed","cancelled"]),eM=be({taskId:W(),status:Xzt,ttl:tn([Rr(),Zee()]),createdAt:W(),lastUpdatedAt:W(),pollInterval:Mn(Rr()),statusMessage:Mn(W())}),nw=Ja.extend({task:eM}),ejt=fl.merge(eM),tM=hl.extend({method:ze("notifications/tasks/status"),params:ejt}),Vz=Qa.extend({method:ze("tasks/get"),params:So.extend({taskId:W()})}),qz=Ja.merge(eM),Wz=Qa.extend({method:ze("tasks/result"),params:So.extend({taskId:W()})}),lQr=Ja.loose(),Yz=J0.extend({method:ze("tasks/list")}),Gz=X0.extend({tasks:Zt(eM)}),Kz=Qa.extend({method:ze("tasks/cancel"),params:So.extend({taskId:W()})}),w3e=Ja.merge(eM),S3e=be({uri:W(),mimeType:Mn(W()),_meta:vn(W(),yn()).optional()}),x3e=S3e.extend({text:W()}),ote=W().refine(r=>{try{return atob(r),!0}catch(e){return!1}},{message:"Invalid Base64 string"}),C3e=S3e.extend({blob:ote}),rM=Ms(["user","assistant"]),aw=be({audience:Zt(rM).optional(),priority:Rr().min(0).max(1).optional(),lastModified:ew.datetime({offset:!0}).optional()}),E3e=be({...tw.shape,...Q0.shape,uri:W(),description:Mn(W()),mimeType:Mn(W()),annotations:aw.optional(),_meta:Mn(Zi({}))}),tjt=be({...tw.shape,...Q0.shape,uriTemplate:W(),description:Mn(W()),mimeType:Mn(W()),annotations:aw.optional(),_meta:Mn(Zi({}))}),Zz=J0.extend({method:ze("resources/list")}),rjt=X0.extend({resources:Zt(E3e)}),Qz=J0.extend({method:ze("resources/templates/list")}),njt=X0.extend({resourceTemplates:Zt(tjt)}),lte=So.extend({uri:W()}),ajt=lte,Jz=Qa.extend({method:ze("resources/read"),params:ajt}),ijt=Ja.extend({contents:Zt(tn([x3e,C3e]))}),sjt=hl.extend({method:ze("notifications/resources/list_changed"),params:fl.optional()}),ojt=lte,ljt=Qa.extend({method:ze("resources/subscribe"),params:ojt}),cjt=lte,djt=Qa.extend({method:ze("resources/unsubscribe"),params:cjt}),ujt=fl.extend({uri:W()}),pjt=hl.extend({method:ze("notifications/resources/updated"),params:ujt}),mjt=be({name:W(),description:Mn(W()),required:Mn(Na())}),fjt=be({...tw.shape,...Q0.shape,description:Mn(W()),arguments:Mn(Zt(mjt)),_meta:Mn(Zi({}))}),Xz=J0.extend({method:ze("prompts/list")}),hjt=X0.extend({prompts:Zt(fjt)}),gjt=So.extend({name:W(),arguments:vn(W(),W()).optional()}),ej=Qa.extend({method:ze("prompts/get"),params:gjt}),cte=be({type:ze("text"),text:W(),annotations:aw.optional(),_meta:vn(W(),yn()).optional()}),dte=be({type:ze("image"),data:ote,mimeType:W(),annotations:aw.optional(),_meta:vn(W(),yn()).optional()}),ute=be({type:ze("audio"),data:ote,mimeType:W(),annotations:aw.optional(),_meta:vn(W(),yn()).optional()}),yjt=be({type:ze("tool_use"),name:W(),id:W(),input:vn(W(),yn()),_meta:vn(W(),yn()).optional()}),vjt=be({type:ze("resource"),resource:tn([x3e,C3e]),annotations:aw.optional(),_meta:vn(W(),yn()).optional()}),kjt=E3e.extend({type:ze("resource_link")}),pte=tn([cte,dte,ute,kjt,vjt]),bjt=be({role:rM,content:pte}),Tjt=Ja.extend({description:W().optional(),messages:Zt(bjt)}),wjt=hl.extend({method:ze("notifications/prompts/list_changed"),params:fl.optional()}),Sjt=be({title:W().optional(),readOnlyHint:Na().optional(),destructiveHint:Na().optional(),idempotentHint:Na().optional(),openWorldHint:Na().optional()}),xjt=be({taskSupport:Ms(["required","optional","forbidden"]).optional()}),D3e=be({...tw.shape,...Q0.shape,description:W().optional(),inputSchema:be({type:ze("object"),properties:vn(W(),Za).optional(),required:Zt(W()).optional()}).catchall(yn()),outputSchema:be({type:ze("object"),properties:vn(W(),Za).optional(),required:Zt(W()).optional()}).catchall(yn()).optional(),annotations:Sjt.optional(),execution:xjt.optional(),_meta:vn(W(),yn()).optional()}),tj=J0.extend({method:ze("tools/list")}),Cjt=X0.extend({tools:Zt(D3e)}),rj=Ja.extend({content:Zt(pte).default([]),structuredContent:vn(W(),yn()).optional(),isError:Na().optional()}),cQr=rj.or(Ja.extend({toolResult:yn()})),Ejt=Z0.extend({name:W(),arguments:vn(W(),yn()).optional()}),iw=Qa.extend({method:ze("tools/call"),params:Ejt}),Djt=hl.extend({method:ze("notifications/tools/list_changed"),params:fl.optional()}),dQr=be({autoRefresh:Na().default(!0),debounceMs:Rr().int().nonnegative().default(300)}),nM=Ms(["debug","info","notice","warning","error","critical","alert","emergency"]),Pjt=So.extend({level:nM}),mte=Qa.extend({method:ze("logging/setLevel"),params:Pjt}),Mjt=fl.extend({level:nM,logger:W().optional(),data:yn()}),Ajt=hl.extend({method:ze("notifications/message"),params:Mjt}),_jt=be({name:W().optional()}),Ijt=be({hints:Zt(_jt).optional(),costPriority:Rr().min(0).max(1).optional(),speedPriority:Rr().min(0).max(1).optional(),intelligencePriority:Rr().min(0).max(1).optional()}),Njt=be({mode:Ms(["auto","required","none"]).optional()}),Rjt=be({type:ze("tool_result"),toolUseId:W().describe("The unique identifier for the corresponding tool call."),content:Zt(pte).default([]),structuredContent:be({}).loose().optional(),isError:Na().optional(),_meta:vn(W(),yn()).optional()}),Fjt=Qee("type",[cte,dte,ute]),Oz=Qee("type",[cte,dte,ute,yjt,Rjt]),Ojt=be({role:rM,content:tn([Oz,Zt(Oz)]),_meta:vn(W(),yn()).optional()}),Ljt=Z0.extend({messages:Zt(Ojt),modelPreferences:Ijt.optional(),systemPrompt:W().optional(),includeContext:Ms(["none","thisServer","allServers"]).optional(),temperature:Rr().optional(),maxTokens:Rr().int(),stopSequences:Zt(W()).optional(),metadata:Za.optional(),tools:Zt(D3e).optional(),toolChoice:Njt.optional()}),zjt=Qa.extend({method:ze("sampling/createMessage"),params:Ljt}),fte=Ja.extend({model:W(),stopReason:Mn(Ms(["endTurn","stopSequence","maxTokens"]).or(W())),role:rM,content:Fjt}),hte=Ja.extend({model:W(),stopReason:Mn(Ms(["endTurn","stopSequence","maxTokens","toolUse"]).or(W())),role:rM,content:tn([Oz,Zt(Oz)])}),jjt=be({type:ze("boolean"),title:W().optional(),description:W().optional(),default:Na().optional()}),$jt=be({type:ze("string"),title:W().optional(),description:W().optional(),minLength:Rr().optional(),maxLength:Rr().optional(),format:Ms(["email","uri","date","date-time"]).optional(),default:W().optional()}),Bjt=be({type:Ms(["number","integer"]),title:W().optional(),description:W().optional(),minimum:Rr().optional(),maximum:Rr().optional(),default:Rr().optional()}),Ujt=be({type:ze("string"),title:W().optional(),description:W().optional(),enum:Zt(W()),default:W().optional()}),Hjt=be({type:ze("string"),title:W().optional(),description:W().optional(),oneOf:Zt(be({const:W(),title:W()})),default:W().optional()}),Vjt=be({type:ze("string"),title:W().optional(),description:W().optional(),enum:Zt(W()),enumNames:Zt(W()).optional(),default:W().optional()}),qjt=tn([Ujt,Hjt]),Wjt=be({type:ze("array"),title:W().optional(),description:W().optional(),minItems:Rr().optional(),maxItems:Rr().optional(),items:be({type:ze("string"),enum:Zt(W())}),default:Zt(W()).optional()}),Yjt=be({type:ze("array"),title:W().optional(),description:W().optional(),minItems:Rr().optional(),maxItems:Rr().optional(),items:be({anyOf:Zt(be({const:W(),title:W()}))}),default:Zt(W()).optional()}),Gjt=tn([Wjt,Yjt]),Kjt=tn([Vjt,qjt,Gjt]),Zjt=tn([Kjt,jjt,$jt,Bjt]),Qjt=Z0.extend({mode:ze("form").optional(),message:W(),requestedSchema:be({type:ze("object"),properties:vn(W(),Zjt),required:Zt(W()).optional()})}),Jjt=Z0.extend({mode:ze("url"),message:W(),elicitationId:W(),url:W().url()}),Xjt=tn([Qjt,Jjt]),e$t=Qa.extend({method:ze("elicitation/create"),params:Xjt}),t$t=fl.extend({elicitationId:W()}),r$t=hl.extend({method:ze("notifications/elicitation/complete"),params:t$t}),nj=Ja.extend({action:Ms(["accept","decline","cancel"]),content:Jee(r=>r===null?void 0:r,vn(W(),tn([W(),Rr(),Na(),Zt(W())])).optional())}),n$t=be({type:ze("ref/resource"),uri:W()}),a$t=be({type:ze("ref/prompt"),name:W()}),i$t=So.extend({ref:tn([a$t,n$t]),argument:be({name:W(),value:W()}),context:be({arguments:vn(W(),W()).optional()}).optional()}),aj=Qa.extend({method:ze("completion/complete"),params:i$t});s$t=Ja.extend({completion:Zi({values:Zt(W()).max(100),total:Mn(Rr().int()),hasMore:Mn(Na())})}),o$t=be({uri:W().startsWith("file://"),name:W().optional(),_meta:vn(W(),yn()).optional()}),l$t=Qa.extend({method:ze("roots/list"),params:So.optional()}),gte=Ja.extend({roots:Zt(o$t)}),c$t=hl.extend({method:ze("notifications/roots/list_changed"),params:fl.optional()}),uQr=tn([Uz,Bz,aj,mte,ej,Xz,Zz,Qz,Jz,ljt,djt,iw,tj,Vz,Wz,Yz,Kz]),pQr=tn([$z,Hz,ste,c$t,tM]),mQr=tn([jz,fte,hte,nj,gte,qz,Gz,nw]),fQr=tn([Uz,zjt,e$t,l$t,Vz,Wz,Yz,Kz]),hQr=tn([$z,Hz,Ajt,pjt,sjt,Djt,wjt,tM,r$t]),gQr=tn([jz,Kzt,s$t,Tjt,hjt,rjt,njt,ijt,rj,Cjt,qz,Gz,nw]),Oe=class r extends Error{constructor(e,t,n){super(`MCP error ${e}: ${t}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,t,n){if(e===He.UrlElicitationRequired&&n){let a=n;if(a.elicitations)return new Xee(a.elicitations,t)}return new r(e,t,n)}},Xee=class extends Oe{constructor(e,t=`URL elicitation${e.length>1?"s":""} required`){super(He.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){var e,t;return(t=(e=this.data)==null?void 0:e.elicitations)!=null?t:[]}}});function Bf(r){return r==="completed"||r==="failed"||r==="cancelled"}var A3e=y(()=>{});var I3e,_3e,N3e,ij=y(()=>{I3e=Symbol("Let zodToJsonSchema decide on which parser to use"),_3e={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},N3e=r=>typeof r=="string"?{..._3e,name:r}:{..._3e,...r}});var R3e,yte=y(()=>{ij();R3e=r=>{let e=N3e(r),t=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return{...e,flags:{hasReferencedOpenAiAnyType:!1},currentPath:t,propertyPath:void 0,seen:new Map(Object.entries(e.definitions).map(([n,a])=>[a._def,{def:a._def,path:[...e.basePath,e.definitionPath,n],jsonSchema:void 0}]))}}});function vte(r,e,t,n){n!=null&&n.errorMessages&&t&&(r.errorMessage={...r.errorMessage,[e]:t})}function Qt(r,e,t,n,a){r[e]=t,vte(r,e,n,a)}var Uf=y(()=>{});var sj,oj=y(()=>{sj=(r,e)=>{let t=0;for(;t<r.length&&t<e.length&&r[t]===e[t];t++);return[(r.length-t).toString(),...e.slice(t)].join("/")}});function kn(r){if(r.target!=="openAi")return{};let e=[...r.basePath,r.definitionPath,r.openAiAnyTypeName];return r.flags.hasReferencedOpenAiAnyType=!0,{$ref:r.$refStrategy==="relative"?sj(e,r.currentPath):e.join("/")}}var gl=y(()=>{oj()});function F3e(r,e){var n,a,i;let t={type:"array"};return(n=r.type)!=null&&n._def&&((i=(a=r.type)==null?void 0:a._def)==null?void 0:i.typeName)!==ae.ZodAny&&(t.items=nt(r.type._def,{...e,currentPath:[...e.currentPath,"items"]})),r.minLength&&Qt(t,"minItems",r.minLength.value,r.minLength.message,e),r.maxLength&&Qt(t,"maxItems",r.maxLength.value,r.maxLength.message,e),r.exactLength&&(Qt(t,"minItems",r.exactLength.value,r.exactLength.message,e),Qt(t,"maxItems",r.exactLength.value,r.exactLength.message,e)),t}var kte=y(()=>{N0();Uf();oa()});function O3e(r,e){let t={type:"integer",format:"int64"};if(!r.checks)return t;for(let n of r.checks)switch(n.kind){case"min":e.target==="jsonSchema7"?n.inclusive?Qt(t,"minimum",n.value,n.message,e):Qt(t,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(t.exclusiveMinimum=!0),Qt(t,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?Qt(t,"maximum",n.value,n.message,e):Qt(t,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(t.exclusiveMaximum=!0),Qt(t,"maximum",n.value,n.message,e));break;case"multipleOf":Qt(t,"multipleOf",n.value,n.message,e);break}return t}var bte=y(()=>{Uf()});function L3e(){return{type:"boolean"}}var Tte=y(()=>{});function lj(r,e){return nt(r.type._def,e)}var cj=y(()=>{oa()});var z3e,wte=y(()=>{oa();z3e=(r,e)=>nt(r.innerType._def,e)});function Ste(r,e,t){let n=t!=null?t:e.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((a,i)=>Ste(r,e,a))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return d$t(r,e)}}var d$t,xte=y(()=>{Uf();d$t=(r,e)=>{let t={type:"integer",format:"unix-time"};if(e.target==="openApi3")return t;for(let n of r.checks)switch(n.kind){case"min":Qt(t,"minimum",n.value,n.message,e);break;case"max":Qt(t,"maximum",n.value,n.message,e);break}return t}});function j3e(r,e){return{...nt(r.innerType._def,e),default:r.defaultValue()}}var Cte=y(()=>{oa()});function $3e(r,e){return e.effectStrategy==="input"?nt(r.schema._def,e):kn(e)}var Ete=y(()=>{oa();gl()});function B3e(r){return{type:"string",enum:Array.from(r.values)}}var Dte=y(()=>{});function U3e(r,e){let t=[nt(r.left._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),nt(r.right._def,{...e,currentPath:[...e.currentPath,"allOf","1"]})].filter(i=>!!i),n=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,a=[];return t.forEach(i=>{if(u$t(i))a.push(...i.allOf),i.unevaluatedProperties===void 0&&(n=void 0);else{let s=i;if("additionalProperties"in i&&i.additionalProperties===!1){let{additionalProperties:o,...l}=i;s=l}else n=void 0;a.push(s)}}),a.length?{allOf:a,...n}:void 0}var u$t,Pte=y(()=>{oa();u$t=r=>"type"in r&&r.type==="string"?!1:"allOf"in r});function H3e(r,e){let t=typeof r.value;return t!=="bigint"&&t!=="number"&&t!=="boolean"&&t!=="string"?{type:Array.isArray(r.value)?"array":"object"}:e.target==="openApi3"?{type:t==="bigint"?"integer":t,enum:[r.value]}:{type:t==="bigint"?"integer":t,const:r.value}}var Mte=y(()=>{});function dj(r,e){let t={type:"string"};if(r.checks)for(let n of r.checks)switch(n.kind){case"min":Qt(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,n.value):n.value,n.message,e);break;case"max":Qt(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,n.value):n.value,n.message,e);break;case"email":switch(e.emailStrategy){case"format:email":dc(t,"email",n.message,e);break;case"format:idn-email":dc(t,"idn-email",n.message,e);break;case"pattern:zod":Qi(t,cc.email,n.message,e);break}break;case"url":dc(t,"uri",n.message,e);break;case"uuid":dc(t,"uuid",n.message,e);break;case"regex":Qi(t,n.regex,n.message,e);break;case"cuid":Qi(t,cc.cuid,n.message,e);break;case"cuid2":Qi(t,cc.cuid2,n.message,e);break;case"startsWith":Qi(t,RegExp(`^${_te(n.value,e)}`),n.message,e);break;case"endsWith":Qi(t,RegExp(`${_te(n.value,e)}$`),n.message,e);break;case"datetime":dc(t,"date-time",n.message,e);break;case"date":dc(t,"date",n.message,e);break;case"time":dc(t,"time",n.message,e);break;case"duration":dc(t,"duration",n.message,e);break;case"length":Qt(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,n.value):n.value,n.message,e),Qt(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,n.value):n.value,n.message,e);break;case"includes":{Qi(t,RegExp(_te(n.value,e)),n.message,e);break}case"ip":{n.version!=="v6"&&dc(t,"ipv4",n.message,e),n.version!=="v4"&&dc(t,"ipv6",n.message,e);break}case"base64url":Qi(t,cc.base64url,n.message,e);break;case"jwt":Qi(t,cc.jwt,n.message,e);break;case"cidr":{n.version!=="v6"&&Qi(t,cc.ipv4Cidr,n.message,e),n.version!=="v4"&&Qi(t,cc.ipv6Cidr,n.message,e);break}case"emoji":Qi(t,cc.emoji(),n.message,e);break;case"ulid":{Qi(t,cc.ulid,n.message,e);break}case"base64":{switch(e.base64Strategy){case"format:binary":{dc(t,"binary",n.message,e);break}case"contentEncoding:base64":{Qt(t,"contentEncoding","base64",n.message,e);break}case"pattern:zod":{Qi(t,cc.base64,n.message,e);break}}break}case"nanoid":Qi(t,cc.nanoid,n.message,e);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return t}function _te(r,e){return e.patternStrategy==="escape"?m$t(r):r}function m$t(r){let e="";for(let t=0;t<r.length;t++)p$t.has(r[t])||(e+="\\"),e+=r[t];return e}function dc(r,e,t,n){var a;r.format||(a=r.anyOf)!=null&&a.some(i=>i.format)?(r.anyOf||(r.anyOf=[]),r.format&&(r.anyOf.push({format:r.format,...r.errorMessage&&n.errorMessages&&{errorMessage:{format:r.errorMessage.format}}}),delete r.format,r.errorMessage&&(delete r.errorMessage.format,Object.keys(r.errorMessage).length===0&&delete r.errorMessage)),r.anyOf.push({format:e,...t&&n.errorMessages&&{errorMessage:{format:t}}})):Qt(r,"format",e,t,n)}function Qi(r,e,t,n){var a;r.pattern||(a=r.allOf)!=null&&a.some(i=>i.pattern)?(r.allOf||(r.allOf=[]),r.pattern&&(r.allOf.push({pattern:r.pattern,...r.errorMessage&&n.errorMessages&&{errorMessage:{pattern:r.errorMessage.pattern}}}),delete r.pattern,r.errorMessage&&(delete r.errorMessage.pattern,Object.keys(r.errorMessage).length===0&&delete r.errorMessage)),r.allOf.push({pattern:V3e(e,n),...t&&n.errorMessages&&{errorMessage:{pattern:t}}})):Qt(r,"pattern",V3e(e,n),t,n)}function V3e(r,e){var l;if(!e.applyRegexFlags||!r.flags)return r.source;let t={i:r.flags.includes("i"),m:r.flags.includes("m"),s:r.flags.includes("s")},n=t.i?r.source.toLowerCase():r.source,a="",i=!1,s=!1,o=!1;for(let c=0;c<n.length;c++){if(i){a+=n[c],i=!1;continue}if(t.i){if(s){if(n[c].match(/[a-z]/)){o?(a+=n[c],a+=`${n[c-2]}-${n[c]}`.toUpperCase(),o=!1):n[c+1]==="-"&&((l=n[c+2])!=null&&l.match(/[a-z]/))?(a+=n[c],o=!0):a+=`${n[c]}${n[c].toUpperCase()}`;continue}}else if(n[c].match(/[a-z]/)){a+=`[${n[c]}${n[c].toUpperCase()}]`;continue}}if(t.m){if(n[c]==="^"){a+=`(^|(?<=[\r
|
||
]))`;continue}else if(n[c]==="$"){a+=`($|(?=[\r
|
||
]))`;continue}}if(t.s&&n[c]==="."){a+=s?`${n[c]}\r
|
||
`:`[${n[c]}\r
|
||
]`;continue}a+=n[c],n[c]==="\\"?i=!0:s&&n[c]==="]"?s=!1:!s&&n[c]==="["&&(s=!0)}try{new RegExp(a)}catch(c){return console.warn(`Could not convert regex pattern at ${e.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),r.source}return a}var Ate,cc,p$t,uj=y(()=>{Uf();cc={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Ate===void 0&&(Ate=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Ate),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};p$t=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});function pj(r,e){var n,a,i,s,o,l,c;if(e.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),e.target==="openApi3"&&((n=r.keyType)==null?void 0:n._def.typeName)===ae.ZodEnum)return{type:"object",required:r.keyType._def.values,properties:r.keyType._def.values.reduce((d,u)=>{var p;return{...d,[u]:(p=nt(r.valueType._def,{...e,currentPath:[...e.currentPath,"properties",u]}))!=null?p:kn(e)}},{}),additionalProperties:e.rejectedAdditionalProperties};let t={type:"object",additionalProperties:(a=nt(r.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]}))!=null?a:e.allowedAdditionalProperties};if(e.target==="openApi3")return t;if(((i=r.keyType)==null?void 0:i._def.typeName)===ae.ZodString&&((s=r.keyType._def.checks)!=null&&s.length)){let{type:d,...u}=dj(r.keyType._def,e);return{...t,propertyNames:u}}else{if(((o=r.keyType)==null?void 0:o._def.typeName)===ae.ZodEnum)return{...t,propertyNames:{enum:r.keyType._def.values}};if(((l=r.keyType)==null?void 0:l._def.typeName)===ae.ZodBranded&&r.keyType._def.type._def.typeName===ae.ZodString&&((c=r.keyType._def.type._def.checks)!=null&&c.length)){let{type:d,...u}=lj(r.keyType._def,e);return{...t,propertyNames:u}}}return t}var mj=y(()=>{N0();oa();uj();cj();gl()});function q3e(r,e){if(e.mapStrategy==="record")return pj(r,e);let t=nt(r.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||kn(e),n=nt(r.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||kn(e);return{type:"array",maxItems:125,items:{type:"array",items:[t,n],minItems:2,maxItems:2}}}var Ite=y(()=>{oa();mj();gl()});function W3e(r){let e=r.values,n=Object.keys(r.values).filter(i=>typeof e[e[i]]!="number").map(i=>e[i]),a=Array.from(new Set(n.map(i=>typeof i)));return{type:a.length===1?a[0]==="string"?"string":"number":["string","number"],enum:n}}var Nte=y(()=>{});function Y3e(r){return r.target==="openAi"?void 0:{not:kn({...r,currentPath:[...r.currentPath,"not"]})}}var Rte=y(()=>{gl()});function G3e(r){return r.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var Fte=y(()=>{});function Z3e(r,e){if(e.target==="openApi3")return K3e(r,e);let t=r.options instanceof Map?Array.from(r.options.values()):r.options;if(t.every(n=>n._def.typeName in iM&&(!n._def.checks||!n._def.checks.length))){let n=t.reduce((a,i)=>{let s=iM[i._def.typeName];return s&&!a.includes(s)?[...a,s]:a},[]);return{type:n.length>1?n:n[0]}}else if(t.every(n=>n._def.typeName==="ZodLiteral"&&!n.description)){let n=t.reduce((a,i)=>{let s=typeof i._def.value;switch(s){case"string":case"number":case"boolean":return[...a,s];case"bigint":return[...a,"integer"];case"object":if(i._def.value===null)return[...a,"null"];case"symbol":case"undefined":case"function":default:return a}},[]);if(n.length===t.length){let a=n.filter((i,s,o)=>o.indexOf(i)===s);return{type:a.length>1?a:a[0],enum:t.reduce((i,s)=>i.includes(s._def.value)?i:[...i,s._def.value],[])}}}else if(t.every(n=>n._def.typeName==="ZodEnum"))return{type:"string",enum:t.reduce((n,a)=>[...n,...a._def.values.filter(i=>!n.includes(i))],[])};return K3e(r,e)}var iM,K3e,fj=y(()=>{oa();iM={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};K3e=(r,e)=>{let t=(r.options instanceof Map?Array.from(r.options.values()):r.options).map((n,a)=>nt(n._def,{...e,currentPath:[...e.currentPath,"anyOf",`${a}`]})).filter(n=>!!n&&(!e.strictUnions||typeof n=="object"&&Object.keys(n).length>0));return t.length?{anyOf:t}:void 0}});function Q3e(r,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(r.innerType._def.typeName)&&(!r.innerType._def.checks||!r.innerType._def.checks.length))return e.target==="openApi3"?{type:iM[r.innerType._def.typeName],nullable:!0}:{type:[iM[r.innerType._def.typeName],"null"]};if(e.target==="openApi3"){let n=nt(r.innerType._def,{...e,currentPath:[...e.currentPath]});return n&&"$ref"in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let t=nt(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return t&&{anyOf:[t,{type:"null"}]}}var Ote=y(()=>{oa();fj()});function J3e(r,e){let t={type:"number"};if(!r.checks)return t;for(let n of r.checks)switch(n.kind){case"int":t.type="integer",vte(t,"type",n.message,e);break;case"min":e.target==="jsonSchema7"?n.inclusive?Qt(t,"minimum",n.value,n.message,e):Qt(t,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(t.exclusiveMinimum=!0),Qt(t,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?Qt(t,"maximum",n.value,n.message,e):Qt(t,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(t.exclusiveMaximum=!0),Qt(t,"maximum",n.value,n.message,e));break;case"multipleOf":Qt(t,"multipleOf",n.value,n.message,e);break}return t}var Lte=y(()=>{Uf()});function X3e(r,e){let t=e.target==="openAi",n={type:"object",properties:{}},a=[],i=r.shape();for(let o in i){let l=i[o];if(l===void 0||l._def===void 0)continue;let c=h$t(l);c&&t&&(l._def.typeName==="ZodOptional"&&(l=l._def.innerType),l.isNullable()||(l=l.nullable()),c=!1);let d=nt(l._def,{...e,currentPath:[...e.currentPath,"properties",o],propertyPath:[...e.currentPath,"properties",o]});d!==void 0&&(n.properties[o]=d,c||a.push(o))}a.length&&(n.required=a);let s=f$t(r,e);return s!==void 0&&(n.additionalProperties=s),n}function f$t(r,e){if(r.catchall._def.typeName!=="ZodNever")return nt(r.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]});switch(r.unknownKeys){case"passthrough":return e.allowedAdditionalProperties;case"strict":return e.rejectedAdditionalProperties;case"strip":return e.removeAdditionalStrategy==="strict"?e.allowedAdditionalProperties:e.rejectedAdditionalProperties}}function h$t(r){try{return r.isOptional()}catch(e){return!0}}var zte=y(()=>{oa()});var e6e,jte=y(()=>{oa();gl();e6e=(r,e)=>{var n;if(e.currentPath.toString()===((n=e.propertyPath)==null?void 0:n.toString()))return nt(r.innerType._def,e);let t=nt(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return t?{anyOf:[{not:kn(e)},t]}:kn(e)}});var t6e,$te=y(()=>{oa();t6e=(r,e)=>{if(e.pipeStrategy==="input")return nt(r.in._def,e);if(e.pipeStrategy==="output")return nt(r.out._def,e);let t=nt(r.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),n=nt(r.out._def,{...e,currentPath:[...e.currentPath,"allOf",t?"1":"0"]});return{allOf:[t,n].filter(a=>a!==void 0)}}});function r6e(r,e){return nt(r.type._def,e)}var Bte=y(()=>{oa()});function n6e(r,e){let n={type:"array",uniqueItems:!0,items:nt(r.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return r.minSize&&Qt(n,"minItems",r.minSize.value,r.minSize.message,e),r.maxSize&&Qt(n,"maxItems",r.maxSize.value,r.maxSize.message,e),n}var Ute=y(()=>{Uf();oa()});function a6e(r,e){return r.rest?{type:"array",minItems:r.items.length,items:r.items.map((t,n)=>nt(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[]),additionalItems:nt(r.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:r.items.length,maxItems:r.items.length,items:r.items.map((t,n)=>nt(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[])}}var Hte=y(()=>{oa()});function i6e(r){return{not:kn(r)}}var Vte=y(()=>{gl()});function s6e(r){return kn(r)}var qte=y(()=>{gl()});var o6e,Wte=y(()=>{oa();o6e=(r,e)=>nt(r.innerType._def,e)});var l6e,Yte=y(()=>{N0();gl();kte();bte();Tte();cj();wte();xte();Cte();Ete();Dte();Pte();Mte();Ite();Nte();Rte();Fte();Ote();Lte();zte();jte();$te();Bte();mj();Ute();uj();Hte();Vte();fj();qte();Wte();l6e=(r,e,t)=>{switch(e){case ae.ZodString:return dj(r,t);case ae.ZodNumber:return J3e(r,t);case ae.ZodObject:return X3e(r,t);case ae.ZodBigInt:return O3e(r,t);case ae.ZodBoolean:return L3e();case ae.ZodDate:return Ste(r,t);case ae.ZodUndefined:return i6e(t);case ae.ZodNull:return G3e(t);case ae.ZodArray:return F3e(r,t);case ae.ZodUnion:case ae.ZodDiscriminatedUnion:return Z3e(r,t);case ae.ZodIntersection:return U3e(r,t);case ae.ZodTuple:return a6e(r,t);case ae.ZodRecord:return pj(r,t);case ae.ZodLiteral:return H3e(r,t);case ae.ZodEnum:return B3e(r);case ae.ZodNativeEnum:return W3e(r);case ae.ZodNullable:return Q3e(r,t);case ae.ZodOptional:return e6e(r,t);case ae.ZodMap:return q3e(r,t);case ae.ZodSet:return n6e(r,t);case ae.ZodLazy:return()=>r.getter()._def;case ae.ZodPromise:return r6e(r,t);case ae.ZodNaN:case ae.ZodNever:return Y3e(t);case ae.ZodEffects:return $3e(r,t);case ae.ZodAny:return kn(t);case ae.ZodUnknown:return s6e(t);case ae.ZodDefault:return j3e(r,t);case ae.ZodBranded:return lj(r,t);case ae.ZodReadonly:return o6e(r,t);case ae.ZodCatch:return z3e(r,t);case ae.ZodPipeline:return t6e(r,t);case ae.ZodFunction:case ae.ZodVoid:case ae.ZodSymbol:return;default:return(n=>{})(e)}}});function nt(r,e,t=!1){var o;let n=e.seen.get(r);if(e.override){let l=(o=e.override)==null?void 0:o.call(e,r,e,n,t);if(l!==I3e)return l}if(n&&!t){let l=g$t(n,e);if(l!==void 0)return l}let a={def:r,path:e.currentPath,jsonSchema:void 0};e.seen.set(r,a);let i=l6e(r,r.typeName,e),s=typeof i=="function"?nt(i(),e):i;if(s&&y$t(r,e,s),e.postProcess){let l=e.postProcess(s,r,e);return a.jsonSchema=s,l}return a.jsonSchema=s,s}var g$t,y$t,oa=y(()=>{ij();Yte();oj();gl();g$t=(r,e)=>{switch(e.$refStrategy){case"root":return{$ref:r.path.join("/")};case"relative":return{$ref:sj(e.currentPath,r.path)};case"none":case"seen":return r.path.length<e.currentPath.length&&r.path.every((t,n)=>e.currentPath[n]===t)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),kn(e)):e.$refStrategy==="seen"?kn(e):void 0}},y$t=(r,e,t)=>(r.description&&(t.description=r.description,e.markdownDescription&&(t.markdownDescription=r.description)),t)});var c6e=y(()=>{});var Gte,Kte=y(()=>{oa();yte();gl();Gte=(r,e)=>{var l;let t=R3e(e),n=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((c,[d,u])=>{var p;return{...c,[d]:(p=nt(u._def,{...t,currentPath:[...t.basePath,t.definitionPath,d]},!0))!=null?p:kn(t)}},{}):void 0,a=typeof e=="string"?e:(e==null?void 0:e.nameStrategy)==="title"||e==null?void 0:e.name,i=(l=nt(r._def,a===void 0?t:{...t,currentPath:[...t.basePath,t.definitionPath,a]},!1))!=null?l:kn(t),s=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;s!==void 0&&(i.title=s),t.flags.hasReferencedOpenAiAnyType&&(n||(n={}),n[t.openAiAnyTypeName]||(n[t.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:t.$refStrategy==="relative"?"1":[...t.basePath,t.definitionPath,t.openAiAnyTypeName].join("/")}}));let o=a===void 0?n?{...i,[t.definitionPath]:n}:i:{$ref:[...t.$refStrategy==="relative"?[]:t.basePath,t.definitionPath,a].join("/"),[t.definitionPath]:{...n,[a]:i}};return t.target==="jsonSchema7"?o.$schema="http://json-schema.org/draft-07/schema#":(t.target==="jsonSchema2019-09"||t.target==="openAi")&&(o.$schema="https://json-schema.org/draft/2019-09/schema#"),t.target==="openAi"&&("anyOf"in o||"oneOf"in o||"allOf"in o||"type"in o&&Array.isArray(o.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),o}});var d6e=y(()=>{ij();yte();Uf();oj();oa();c6e();gl();kte();bte();Tte();cj();wte();xte();Cte();Ete();Dte();Pte();Mte();Ite();Nte();Rte();Fte();Ote();Lte();zte();jte();$te();Bte();Wte();mj();Ute();uj();Hte();Vte();fj();qte();Yte();Kte();Kte()});function v$t(r){return!r||r==="jsonSchema7"||r==="draft-7"?"draft-7":r==="jsonSchema2019-09"||r==="draft-2020-12"?"draft-2020-12":"draft-7"}function Zte(r,e){var t,n,a;return ml(r)?Fee(r,{target:v$t(e==null?void 0:e.target),io:(t=e==null?void 0:e.pipeStrategy)!=null?t:"input"}):Gte(r,{strictUnions:(n=e==null?void 0:e.strictUnions)!=null?n:!0,pipeStrategy:(a=e==null?void 0:e.pipeStrategy)!=null?a:"input"})}function Qte(r){let e=zf(r),t=e==null?void 0:e.method;if(!t)throw new Error("Schema is missing a method literal");let n=Nz(t);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Jte(r,e){let t=Lf(r,e);if(!t.success)throw t.error;return t.data}var Xte=y(()=>{zee();Y0();d6e()});function u6e(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}function p6e(r,e){let t={...r};for(let n in e){let a=n,i=e[a];if(i===void 0)continue;let s=t[a];u6e(s)&&u6e(i)?t[a]={...s,...i}:t[a]=i}return t}var k$t,hj,m6e=y(()=>{Y0();aM();A3e();Xte();k$t=6e4,hj=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler($z,t=>{this._oncancel(t)}),this.setNotificationHandler(Hz,t=>{this._onprogress(t)}),this.setRequestHandler(Uz,t=>({})),this._taskStore=e==null?void 0:e.taskStore,this._taskMessageQueue=e==null?void 0:e.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Vz,async(t,n)=>{let a=await this._taskStore.getTask(t.params.taskId,n.sessionId);if(!a)throw new Oe(He.InvalidParams,"Failed to retrieve task: Task not found");return{...a}}),this.setRequestHandler(Wz,async(t,n)=>{let a=async()=>{var o;let i=t.params.taskId;if(this._taskMessageQueue){let l;for(;l=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(l.type==="response"||l.type==="error"){let c=l.message,d=c.id,u=this._requestResolvers.get(d);if(u)if(this._requestResolvers.delete(d),l.type==="response")u(c);else{let p=c,m=new Oe(p.error.code,p.error.message,p.error.data);u(m)}else{let p=l.type==="response"?"Response":"Error";this._onerror(new Error(`${p} handler missing for request ${d}`))}continue}await((o=this._transport)==null?void 0:o.send(l.message,{relatedRequestId:n.requestId}))}}let s=await this._taskStore.getTask(i,n.sessionId);if(!s)throw new Oe(He.InvalidParams,`Task not found: ${i}`);if(!Bf(s.status))return await this._waitForTaskUpdate(i,n.signal),await a();if(Bf(s.status)){let l=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...l,_meta:{...l._meta,[jf]:{taskId:i}}}}return await a()};return await a()}),this.setRequestHandler(Yz,async(t,n)=>{var a;try{let{tasks:i,nextCursor:s}=await this._taskStore.listTasks((a=t.params)==null?void 0:a.cursor,n.sessionId);return{tasks:i,nextCursor:s,_meta:{}}}catch(i){throw new Oe(He.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(Kz,async(t,n)=>{try{let a=await this._taskStore.getTask(t.params.taskId,n.sessionId);if(!a)throw new Oe(He.InvalidParams,`Task not found: ${t.params.taskId}`);if(Bf(a.status))throw new Oe(He.InvalidParams,`Cannot cancel task in terminal status: ${a.status}`);await this._taskStore.updateTaskStatus(t.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(t.params.taskId);let i=await this._taskStore.getTask(t.params.taskId,n.sessionId);if(!i)throw new Oe(He.InvalidParams,`Task not found after cancellation: ${t.params.taskId}`);return{_meta:{},...i}}catch(a){throw a instanceof Oe?a:new Oe(He.InvalidRequest,`Failed to cancel task: ${a instanceof Error?a.message:String(a)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;let t=this._requestHandlerAbortControllers.get(e.params.requestId);t==null||t.abort(e.params.reason)}_setupTimeout(e,t,n,a,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(a,t),startTime:Date.now(),timeout:t,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:a})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let n=Date.now()-t.startTime;if(t.maxTotalTimeout&&n>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),Oe.fromError(He.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:n});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){var i,s,o;if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let t=(i=this.transport)==null?void 0:i.onclose;this._transport.onclose=()=>{t==null||t(),this._onclose()};let n=(s=this.transport)==null?void 0:s.onerror;this._transport.onerror=l=>{n==null||n(l),this._onerror(l)};let a=(o=this._transport)==null?void 0:o.onmessage;this._transport.onmessage=(l,c)=>{a==null||a(l,c),Mp(l)||rw(l)?this._onresponse(l):$f(l)?this._onrequest(l,c):b3e(l)?this._onnotification(l):this._onerror(new Error(`Unknown message type: ${JSON.stringify(l)}`))},await this._transport.start()}_onclose(){var n;let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let a of this._requestHandlerAbortControllers.values())a.abort();this._requestHandlerAbortControllers.clear();let t=Oe.fromError(He.ConnectionClosed,"Connection closed");this._transport=void 0,(n=this.onclose)==null||n.call(this);for(let a of e.values())a(t)}_onerror(e){var t;(t=this.onerror)==null||t.call(this,e)}_onnotification(e){var n;let t=(n=this._notificationHandlers.get(e.method))!=null?n:this.fallbackNotificationHandler;t!==void 0&&Promise.resolve().then(()=>t(e)).catch(a=>this._onerror(new Error(`Uncaught error in notification handler: ${a}`)))}_onrequest(e,t){var d,u,p,m,f;let n=(d=this._requestHandlers.get(e.method))!=null?d:this.fallbackRequestHandler,a=this._transport,i=(m=(p=(u=e.params)==null?void 0:u._meta)==null?void 0:p[jf])==null?void 0:m.taskId;if(n===void 0){let h={jsonrpc:"2.0",id:e.id,error:{code:He.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:h,timestamp:Date.now()},a==null?void 0:a.sessionId).catch(g=>this._onerror(new Error(`Failed to enqueue error response: ${g}`))):a==null||a.send(h).catch(g=>this._onerror(new Error(`Failed to send an error response: ${g}`)));return}let s=new AbortController;this._requestHandlerAbortControllers.set(e.id,s);let o=y3e(e.params)?e.params.task:void 0,l=this._taskStore?this.requestTaskStore(e,a==null?void 0:a.sessionId):void 0,c={signal:s.signal,sessionId:a==null?void 0:a.sessionId,_meta:(f=e.params)==null?void 0:f._meta,sendNotification:async h=>{if(s.signal.aborted)return;let g={relatedRequestId:e.id};i&&(g.relatedTask={taskId:i}),await this.notification(h,g)},sendRequest:async(h,g,v)=>{var w,S;if(s.signal.aborted)throw new Oe(He.ConnectionClosed,"Request was cancelled");let b={...v,relatedRequestId:e.id};i&&!b.relatedTask&&(b.relatedTask={taskId:i});let k=(S=(w=b.relatedTask)==null?void 0:w.taskId)!=null?S:i;return k&&l&&await l.updateTaskStatus(k,"input_required"),await this.request(h,g,b)},authInfo:t==null?void 0:t.authInfo,requestId:e.id,requestInfo:t==null?void 0:t.requestInfo,taskId:i,taskStore:l,taskRequestedTtl:o==null?void 0:o.ttl,closeSSEStream:t==null?void 0:t.closeSSEStream,closeStandaloneSSEStream:t==null?void 0:t.closeStandaloneSSEStream};Promise.resolve().then(()=>{o&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,c)).then(async h=>{if(s.signal.aborted)return;let g={result:h,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:g,timestamp:Date.now()},a==null?void 0:a.sessionId):await(a==null?void 0:a.send(g))},async h=>{var v;if(s.signal.aborted)return;let g={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(h.code)?h.code:He.InternalError,message:(v=h.message)!=null?v:"Internal error",...h.data!==void 0&&{data:h.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:g,timestamp:Date.now()},a==null?void 0:a.sessionId):await(a==null?void 0:a.send(g))}).catch(h=>this._onerror(new Error(`Failed to send response: ${h}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:t,...n}=e.params,a=Number(t),i=this._progressHandlers.get(a);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let s=this._responseHandlers.get(a),o=this._timeoutInfo.get(a);if(o&&s&&o.resetTimeoutOnProgress)try{this._resetTimeout(a)}catch(l){this._responseHandlers.delete(a),this._progressHandlers.delete(a),this._cleanupTimeout(a),s(l);return}i(n)}_onresponse(e){let t=Number(e.id),n=this._requestResolvers.get(t);if(n){if(this._requestResolvers.delete(t),Mp(e))n(e);else{let s=new Oe(e.error.code,e.error.message,e.error.data);n(s)}return}let a=this._responseHandlers.get(t);if(a===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(t),this._cleanupTimeout(t);let i=!1;if(Mp(e)&&e.result&&typeof e.result=="object"){let s=e.result;if(s.task&&typeof s.task=="object"){let o=s.task;typeof o.taskId=="string"&&(i=!0,this._taskProgressTokens.set(o.taskId,t))}}if(i||this._progressHandlers.delete(t),Mp(e))a(e);else{let s=Oe.fromError(e.error.code,e.error.message,e.error.data);a(s)}}get transport(){return this._transport}async close(){var e;await((e=this._transport)==null?void 0:e.close())}async*requestStream(e,t,n){var s,o,l,c;let{task:a}=n!=null?n:{};if(!a){try{yield{type:"result",result:await this.request(e,t,n)}}catch(d){yield{type:"error",error:d instanceof Oe?d:new Oe(He.InternalError,String(d))}}return}let i;try{let d=await this.request(e,nw,n);if(d.task)i=d.task.taskId,yield{type:"taskCreated",task:d.task};else throw new Oe(He.InternalError,"Task creation did not return a task");for(;;){let u=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:u},Bf(u.status)){u.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},t,n)}:u.status==="failed"?yield{type:"error",error:new Oe(He.InternalError,`Task ${i} failed`)}:u.status==="cancelled"&&(yield{type:"error",error:new Oe(He.InternalError,`Task ${i} was cancelled`)});return}if(u.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},t,n)};return}let p=(l=(o=u.pollInterval)!=null?o:(s=this._options)==null?void 0:s.defaultTaskPollInterval)!=null?l:1e3;await new Promise(m=>setTimeout(m,p)),(c=n==null?void 0:n.signal)==null||c.throwIfAborted()}}catch(d){yield{type:"error",error:d instanceof Oe?d:new Oe(He.InternalError,String(d))}}}request(e,t,n){let{relatedRequestId:a,resumptionToken:i,onresumptiontoken:s,task:o,relatedTask:l}=n!=null?n:{};return new Promise((c,d)=>{var b,k,w,S,C,E,D;let u=P=>{d(P)};if(!this._transport){u(new Error("Not connected"));return}if(((b=this._options)==null?void 0:b.enforceStrictCapabilities)===!0)try{this.assertCapabilityForMethod(e.method),o&&this.assertTaskCapability(e.method)}catch(P){u(P);return}(k=n==null?void 0:n.signal)==null||k.throwIfAborted();let p=this._requestMessageId++,m={...e,jsonrpc:"2.0",id:p};n!=null&&n.onprogress&&(this._progressHandlers.set(p,n.onprogress),m.params={...e.params,_meta:{...((w=e.params)==null?void 0:w._meta)||{},progressToken:p}}),o&&(m.params={...m.params,task:o}),l&&(m.params={...m.params,_meta:{...((S=m.params)==null?void 0:S._meta)||{},[jf]:l}});let f=P=>{var z;this._responseHandlers.delete(p),this._progressHandlers.delete(p),this._cleanupTimeout(p),(z=this._transport)==null||z.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:p,reason:String(P)}},{relatedRequestId:a,resumptionToken:i,onresumptiontoken:s}).catch(R=>this._onerror(new Error(`Failed to send cancellation: ${R}`)));let O=P instanceof Oe?P:new Oe(He.RequestTimeout,String(P));d(O)};this._responseHandlers.set(p,P=>{var O;if(!((O=n==null?void 0:n.signal)!=null&&O.aborted)){if(P instanceof Error)return d(P);try{let z=Lf(t,P.result);z.success?c(z.data):d(z.error)}catch(z){d(z)}}}),(C=n==null?void 0:n.signal)==null||C.addEventListener("abort",()=>{var P;f((P=n==null?void 0:n.signal)==null?void 0:P.reason)});let h=(E=n==null?void 0:n.timeout)!=null?E:k$t,g=()=>f(Oe.fromError(He.RequestTimeout,"Request timed out",{timeout:h}));this._setupTimeout(p,h,n==null?void 0:n.maxTotalTimeout,g,(D=n==null?void 0:n.resetTimeoutOnProgress)!=null?D:!1);let v=l==null?void 0:l.taskId;if(v){let P=O=>{let z=this._responseHandlers.get(p);z?z(O):this._onerror(new Error(`Response handler missing for side-channeled request ${p}`))};this._requestResolvers.set(p,P),this._enqueueTaskMessage(v,{type:"request",message:m,timestamp:Date.now()}).catch(O=>{this._cleanupTimeout(p),d(O)})}else this._transport.send(m,{relatedRequestId:a,resumptionToken:i,onresumptiontoken:s}).catch(P=>{this._cleanupTimeout(p),d(P)})})}async getTask(e,t){return this.request({method:"tasks/get",params:e},qz,t)}async getTaskResult(e,t,n){return this.request({method:"tasks/result",params:e},t,n)}async listTasks(e,t){return this.request({method:"tasks/list",params:e},Gz,t)}async cancelTask(e,t){return this.request({method:"tasks/cancel",params:e},w3e,t)}async notification(e,t){var o,l,c,d,u;if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=(o=t==null?void 0:t.relatedTask)==null?void 0:o.taskId;if(n){let p={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...((l=e.params)==null?void 0:l._meta)||{},[jf]:t.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:p,timestamp:Date.now()});return}if(((d=(c=this._options)==null?void 0:c.debouncedNotificationMethods)!=null?d:[]).includes(e.method)&&!e.params&&!(t!=null&&t.relatedRequestId)&&!(t!=null&&t.relatedTask)){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{var m,f;if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let p={...e,jsonrpc:"2.0"};t!=null&&t.relatedTask&&(p={...p,params:{...p.params,_meta:{...((m=p.params)==null?void 0:m._meta)||{},[jf]:t.relatedTask}}}),(f=this._transport)==null||f.send(p,t).catch(h=>this._onerror(h))});return}let s={...e,jsonrpc:"2.0"};t!=null&&t.relatedTask&&(s={...s,params:{...s.params,_meta:{...((u=s.params)==null?void 0:u._meta)||{},[jf]:t.relatedTask}}}),await this._transport.send(s,t)}setRequestHandler(e,t){let n=Qte(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(a,i)=>{let s=Jte(e,a);return Promise.resolve(t(s,i))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t){let n=Qte(e);this._notificationHandlers.set(n,a=>{let i=Jte(e,a);return Promise.resolve(t(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let t=this._taskProgressTokens.get(e);t!==void 0&&(this._progressHandlers.delete(t),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,t,n){var i;if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let a=(i=this._options)==null?void 0:i.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,t,n,a)}async _clearTaskQueue(e,t){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,t);for(let a of n)if(a.type==="request"&&$f(a.message)){let i=a.message.id,s=this._requestResolvers.get(i);s?(s(new Oe(He.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,t){var a,i,s;let n=(i=(a=this._options)==null?void 0:a.defaultTaskPollInterval)!=null?i:1e3;try{let o=await((s=this._taskStore)==null?void 0:s.getTask(e));o!=null&&o.pollInterval&&(n=o.pollInterval)}catch(o){}return new Promise((o,l)=>{if(t.aborted){l(new Oe(He.InvalidRequest,"Request cancelled"));return}let c=setTimeout(o,n);t.addEventListener("abort",()=>{clearTimeout(c),l(new Oe(He.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,t){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async a=>{if(!e)throw new Error("No request provided");return await n.createTask(a,e.id,{method:e.method,params:e.params},t)},getTask:async a=>{let i=await n.getTask(a,t);if(!i)throw new Oe(He.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(a,i,s)=>{await n.storeTaskResult(a,i,s,t);let o=await n.getTask(a,t);if(o){let l=tM.parse({method:"notifications/tasks/status",params:o});await this.notification(l),Bf(o.status)&&this._cleanupTaskProgressHandler(a)}},getTaskResult:a=>n.getTaskResult(a,t),updateTaskStatus:async(a,i,s)=>{let o=await n.getTask(a,t);if(!o)throw new Oe(He.InvalidParams,`Task "${a}" not found - it may have been cleaned up`);if(Bf(o.status))throw new Oe(He.InvalidParams,`Cannot update task "${a}" from terminal status "${o.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(a,i,s,t);let l=await n.getTask(a,t);if(l){let c=tM.parse({method:"notifications/tasks/status",params:l});await this.notification(c),Bf(l.status)&&this._cleanupTaskProgressHandler(a)}},listTasks:a=>n.listTasks(a,t)}}}});var lM=x(ur=>{"use strict";Object.defineProperty(ur,"__esModule",{value:!0});ur.regexpCode=ur.getEsmExportName=ur.getProperty=ur.safeStringify=ur.stringify=ur.strConcat=ur.addCodeArg=ur.str=ur._=ur.nil=ur._Code=ur.Name=ur.IDENTIFIER=ur._CodeOrName=void 0;var sM=class{};ur._CodeOrName=sM;ur.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var By=class extends sM{constructor(e){if(super(),!ur.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};ur.Name=By;var yl=class extends sM{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((t,n)=>`${t}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((t,n)=>(n instanceof By&&(t[n.str]=(t[n.str]||0)+1),t),{})}};ur._Code=yl;ur.nil=new yl("");function f6e(r,...e){let t=[r[0]],n=0;for(;n<e.length;)tre(t,e[n]),t.push(r[++n]);return new yl(t)}ur._=f6e;var ere=new yl("+");function h6e(r,...e){let t=[oM(r[0])],n=0;for(;n<e.length;)t.push(ere),tre(t,e[n]),t.push(ere,oM(r[++n]));return b$t(t),new yl(t)}ur.str=h6e;function tre(r,e){e instanceof yl?r.push(...e._items):e instanceof By?r.push(e):r.push(S$t(e))}ur.addCodeArg=tre;function b$t(r){let e=1;for(;e<r.length-1;){if(r[e]===ere){let t=T$t(r[e-1],r[e+1]);if(t!==void 0){r.splice(e-1,3,t);continue}r[e++]="+"}e++}}function T$t(r,e){if(e==='""')return r;if(r==='""')return e;if(typeof r=="string")return e instanceof By||r[r.length-1]!=='"'?void 0:typeof e!="string"?`${r.slice(0,-1)}${e}"`:e[0]==='"'?r.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(r instanceof By))return`"${r}${e.slice(1)}`}function w$t(r,e){return e.emptyStr()?r:r.emptyStr()?e:h6e`${r}${e}`}ur.strConcat=w$t;function S$t(r){return typeof r=="number"||typeof r=="boolean"||r===null?r:oM(Array.isArray(r)?r.join(","):r)}function x$t(r){return new yl(oM(r))}ur.stringify=x$t;function oM(r){return JSON.stringify(r).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}ur.safeStringify=oM;function C$t(r){return typeof r=="string"&&ur.IDENTIFIER.test(r)?new yl(`.${r}`):f6e`[${r}]`}ur.getProperty=C$t;function E$t(r){if(typeof r=="string"&&ur.IDENTIFIER.test(r))return new yl(`${r}`);throw new Error(`CodeGen: invalid export name: ${r}, use explicit $id name mapping`)}ur.getEsmExportName=E$t;function D$t(r){return new yl(r.toString())}ur.regexpCode=D$t});var are=x(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});_s.ValueScope=_s.ValueScopeName=_s.Scope=_s.varKinds=_s.UsedValueState=void 0;var As=lM(),rre=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},gj;(function(r){r[r.Started=0]="Started",r[r.Completed=1]="Completed"})(gj||(_s.UsedValueState=gj={}));_s.varKinds={const:new As.Name("const"),let:new As.Name("let"),var:new As.Name("var")};var yj=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof As.Name?e:this.name(e)}name(e){return new As.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){var t,n;if(!((n=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};_s.Scope=yj;var vj=class extends As.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:t,itemIndex:n}){this.value=e,this.scopePath=(0,As._)`.${new As.Name(t)}[${n}]`}};_s.ValueScopeName=vj;var P$t=(0,As._)`\n`,nre=class extends yj{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?P$t:As.nil}}get(){return this._scope}name(e){return new vj(e,this._newName(e))}value(e,t){var n;if(t.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let a=this.toName(e),{prefix:i}=a,s=(n=t.key)!==null&&n!==void 0?n:t.ref,o=this._values[i];if(o){let d=o.get(s);if(d)return d}else o=this._values[i]=new Map;o.set(s,a);let l=this._scope[i]||(this._scope[i]=[]),c=l.length;return l[c]=t.ref,a.setValue(t,{property:i,itemIndex:c}),a}getValue(e,t){let n=this._values[e];if(n)return n.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,As._)`${e}${n.scopePath}`})}scopeCode(e=this._values,t,n){return this._reduceValues(e,a=>{if(a.value===void 0)throw new Error(`CodeGen: name "${a}" has no value`);return a.value.code},t,n)}_reduceValues(e,t,n={},a){let i=As.nil;for(let s in e){let o=e[s];if(!o)continue;let l=n[s]=n[s]||new Map;o.forEach(c=>{if(l.has(c))return;l.set(c,gj.Started);let d=t(c);if(d){let u=this.opts.es5?_s.varKinds.var:_s.varKinds.const;i=(0,As._)`${i}${u} ${c} = ${d};${this.opts._n}`}else if(d=a==null?void 0:a(c))i=(0,As._)`${i}${d}${this.opts._n}`;else throw new rre(c);l.set(c,gj.Completed)})}return i}};_s.ValueScope=nre});var It=x(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.or=Mt.and=Mt.not=Mt.CodeGen=Mt.operators=Mt.varKinds=Mt.ValueScopeName=Mt.ValueScope=Mt.Scope=Mt.Name=Mt.regexpCode=Mt.stringify=Mt.getProperty=Mt.nil=Mt.strConcat=Mt.str=Mt._=void 0;var Jt=lM(),uc=are(),Hf=lM();Object.defineProperty(Mt,"_",{enumerable:!0,get:function(){return Hf._}});Object.defineProperty(Mt,"str",{enumerable:!0,get:function(){return Hf.str}});Object.defineProperty(Mt,"strConcat",{enumerable:!0,get:function(){return Hf.strConcat}});Object.defineProperty(Mt,"nil",{enumerable:!0,get:function(){return Hf.nil}});Object.defineProperty(Mt,"getProperty",{enumerable:!0,get:function(){return Hf.getProperty}});Object.defineProperty(Mt,"stringify",{enumerable:!0,get:function(){return Hf.stringify}});Object.defineProperty(Mt,"regexpCode",{enumerable:!0,get:function(){return Hf.regexpCode}});Object.defineProperty(Mt,"Name",{enumerable:!0,get:function(){return Hf.Name}});var wj=are();Object.defineProperty(Mt,"Scope",{enumerable:!0,get:function(){return wj.Scope}});Object.defineProperty(Mt,"ValueScope",{enumerable:!0,get:function(){return wj.ValueScope}});Object.defineProperty(Mt,"ValueScopeName",{enumerable:!0,get:function(){return wj.ValueScopeName}});Object.defineProperty(Mt,"varKinds",{enumerable:!0,get:function(){return wj.varKinds}});Mt.operators={GT:new Jt._Code(">"),GTE:new Jt._Code(">="),LT:new Jt._Code("<"),LTE:new Jt._Code("<="),EQ:new Jt._Code("==="),NEQ:new Jt._Code("!=="),NOT:new Jt._Code("!"),OR:new Jt._Code("||"),AND:new Jt._Code("&&"),ADD:new Jt._Code("+")};var Ap=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},ire=class extends Ap{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){let n=e?uc.varKinds.var:this.varKind,a=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${a};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=ow(this.rhs,e,t)),this}get names(){return this.rhs instanceof Jt._CodeOrName?this.rhs.names:{}}},kj=class extends Ap{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(!(this.lhs instanceof Jt.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=ow(this.rhs,e,t),this}get names(){let e=this.lhs instanceof Jt.Name?{}:{...this.lhs.names};return Tj(e,this.rhs)}},sre=class extends kj{constructor(e,t,n,a){super(e,n,a),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},ore=class extends Ap{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},lre=class extends Ap{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},cre=class extends Ap{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},dre=class extends Ap{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=ow(this.code,e,t),this}get names(){return this.code instanceof Jt._CodeOrName?this.code.names:{}}},cM=class extends Ap{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((t,n)=>t+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:n}=this,a=n.length;for(;a--;){let i=n[a];i.optimizeNames(e,t)||(M$t(e,i.names),n.splice(a,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>Vy(e,t.names),{})}},_p=class extends cM{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},ure=class extends cM{},sw=class extends _p{};sw.kind="else";var Uy=class r extends _p{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+="else "+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let t=this.else;if(t){let n=t.optimizeNodes();t=this.else=Array.isArray(n)?new sw(n):n}if(t)return e===!1?t instanceof r?t:t.nodes:this.nodes.length?this:new r(g6e(e),t instanceof r?[t]:t.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,t){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,t),!!(super.optimizeNames(e,t)||this.else))return this.condition=ow(this.condition,e,t),this}get names(){let e=super.names;return Tj(e,this.condition),this.else&&Vy(e,this.else.names),e}};Uy.kind="if";var Hy=class extends _p{};Hy.kind="for";var pre=class extends Hy{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=ow(this.iteration,e,t),this}get names(){return Vy(super.names,this.iteration.names)}},mre=class extends Hy{constructor(e,t,n,a){super(),this.varKind=e,this.name=t,this.from=n,this.to=a}render(e){let t=e.es5?uc.varKinds.var:this.varKind,{name:n,from:a,to:i}=this;return`for(${t} ${n}=${a}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=Tj(super.names,this.from);return Tj(e,this.to)}},bj=class extends Hy{constructor(e,t,n,a){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=a}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=ow(this.iterable,e,t),this}get names(){return Vy(super.names,this.iterable.names)}},dM=class extends _p{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};dM.kind="func";var uM=class extends cM{render(e){return"return "+super.render(e)}};uM.kind="return";var fre=class extends _p{render(e){let t="try"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(t=this.finally)===null||t===void 0||t.optimizeNodes(),this}optimizeNames(e,t){var n,a;return super.optimizeNames(e,t),(n=this.catch)===null||n===void 0||n.optimizeNames(e,t),(a=this.finally)===null||a===void 0||a.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&Vy(e,this.catch.names),this.finally&&Vy(e,this.finally.names),e}},pM=class extends _p{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};pM.kind="catch";var mM=class extends _p{render(e){return"finally"+super.render(e)}};mM.kind="finally";var hre=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
|
||
`:""},this._extScope=e,this._scope=new uc.Scope({parent:e}),this._nodes=[new ure]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let n=this._extScope.value(e,t);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,n,a){let i=this._scope.toName(t);return n!==void 0&&a&&(this._constants[i.str]=n),this._leafNode(new ire(e,i,n)),i}const(e,t,n){return this._def(uc.varKinds.const,e,t,n)}let(e,t,n){return this._def(uc.varKinds.let,e,t,n)}var(e,t,n){return this._def(uc.varKinds.var,e,t,n)}assign(e,t,n){return this._leafNode(new kj(e,t,n))}add(e,t){return this._leafNode(new sre(e,Mt.operators.ADD,t))}code(e){return typeof e=="function"?e():e!==Jt.nil&&this._leafNode(new dre(e)),this}object(...e){let t=["{"];for(let[n,a]of e)t.length>1&&t.push(","),t.push(n),(n!==a||this.opts.es5)&&(t.push(":"),(0,Jt.addCodeArg)(t,a));return t.push("}"),new Jt._Code(t)}if(e,t,n){if(this._blockNode(new Uy(e)),t&&n)this.code(t).else().code(n).endIf();else if(t)this.code(t).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new Uy(e))}else(){return this._elseNode(new sw)}endIf(){return this._endBlockNode(Uy,sw)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new pre(e),t)}forRange(e,t,n,a,i=this.opts.es5?uc.varKinds.var:uc.varKinds.let){let s=this._scope.toName(e);return this._for(new mre(i,s,t,n),()=>a(s))}forOf(e,t,n,a=uc.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let s=t instanceof Jt.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0,Jt._)`${s}.length`,o=>{this.var(i,(0,Jt._)`${s}[${o}]`),n(i)})}return this._for(new bj("of",a,i,t),()=>n(i))}forIn(e,t,n,a=this.opts.es5?uc.varKinds.var:uc.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,Jt._)`Object.keys(${t})`,n);let i=this._scope.toName(e);return this._for(new bj("in",a,i,t),()=>n(i))}endFor(){return this._endBlockNode(Hy)}label(e){return this._leafNode(new ore(e))}break(e){return this._leafNode(new lre(e))}return(e){let t=new uM;if(this._blockNode(t),this.code(e),t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(uM)}try(e,t,n){if(!t&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let a=new fre;if(this._blockNode(a),this.code(e),t){let i=this.name("e");this._currNode=a.catch=new pM(i),t(i)}return n&&(this._currNode=a.finally=new mM,this.code(n)),this._endBlockNode(pM,mM)}throw(e){return this._leafNode(new cre(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(t===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-t;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=t,this}func(e,t=Jt.nil,n,a){return this._blockNode(new dM(e,t,n)),a&&this.code(a).endFunc(),this}endFunc(){return this._endBlockNode(dM)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,t){let n=this._currNode;if(n instanceof e||t&&n instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof Uy))throw new Error('CodeGen: "else" without "if"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e}};Mt.CodeGen=hre;function Vy(r,e){for(let t in e)r[t]=(r[t]||0)+(e[t]||0);return r}function Tj(r,e){return e instanceof Jt._CodeOrName?Vy(r,e.names):r}function ow(r,e,t){if(r instanceof Jt.Name)return n(r);if(!a(r))return r;return new Jt._Code(r._items.reduce((i,s)=>(s instanceof Jt.Name&&(s=n(s)),s instanceof Jt._Code?i.push(...s._items):i.push(s),i),[]));function n(i){let s=t[i.str];return s===void 0||e[i.str]!==1?i:(delete e[i.str],s)}function a(i){return i instanceof Jt._Code&&i._items.some(s=>s instanceof Jt.Name&&e[s.str]===1&&t[s.str]!==void 0)}}function M$t(r,e){for(let t in e)r[t]=(r[t]||0)-(e[t]||0)}function g6e(r){return typeof r=="boolean"||typeof r=="number"||r===null?!r:(0,Jt._)`!${gre(r)}`}Mt.not=g6e;var A$t=y6e(Mt.operators.AND);function _$t(...r){return r.reduce(A$t)}Mt.and=_$t;var I$t=y6e(Mt.operators.OR);function N$t(...r){return r.reduce(I$t)}Mt.or=N$t;function y6e(r){return(e,t)=>e===Jt.nil?t:t===Jt.nil?e:(0,Jt._)`${gre(e)} ${r} ${gre(t)}`}function gre(r){return r instanceof Jt.Name?r:(0,Jt._)`(${r})`}});var ar=x(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.checkStrictMode=Nt.getErrorPath=Nt.Type=Nt.useFunc=Nt.setEvaluated=Nt.evaluatedPropsToName=Nt.mergeEvaluated=Nt.eachItem=Nt.unescapeJsonPointer=Nt.escapeJsonPointer=Nt.escapeFragment=Nt.unescapeFragment=Nt.schemaRefOrVal=Nt.schemaHasRulesButRef=Nt.schemaHasRules=Nt.checkUnknownRules=Nt.alwaysValidSchema=Nt.toHash=void 0;var Vr=It(),R$t=lM();function F$t(r){let e={};for(let t of r)e[t]=!0;return e}Nt.toHash=F$t;function O$t(r,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(b6e(r,e),!T6e(e,r.self.RULES.all))}Nt.alwaysValidSchema=O$t;function b6e(r,e=r.schema){let{opts:t,self:n}=r;if(!t.strictSchema||typeof e=="boolean")return;let a=n.RULES.keywords;for(let i in e)a[i]||x6e(r,`unknown keyword: "${i}"`)}Nt.checkUnknownRules=b6e;function T6e(r,e){if(typeof r=="boolean")return!r;for(let t in r)if(e[t])return!0;return!1}Nt.schemaHasRules=T6e;function L$t(r,e){if(typeof r=="boolean")return!r;for(let t in r)if(t!=="$ref"&&e.all[t])return!0;return!1}Nt.schemaHasRulesButRef=L$t;function z$t({topSchemaRef:r,schemaPath:e},t,n,a){if(!a){if(typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="string")return(0,Vr._)`${t}`}return(0,Vr._)`${r}${e}${(0,Vr.getProperty)(n)}`}Nt.schemaRefOrVal=z$t;function j$t(r){return w6e(decodeURIComponent(r))}Nt.unescapeFragment=j$t;function $$t(r){return encodeURIComponent(vre(r))}Nt.escapeFragment=$$t;function vre(r){return typeof r=="number"?`${r}`:r.replace(/~/g,"~0").replace(/\//g,"~1")}Nt.escapeJsonPointer=vre;function w6e(r){return r.replace(/~1/g,"/").replace(/~0/g,"~")}Nt.unescapeJsonPointer=w6e;function B$t(r,e){if(Array.isArray(r))for(let t of r)e(t);else e(r)}Nt.eachItem=B$t;function v6e({mergeNames:r,mergeToName:e,mergeValues:t,resultToName:n}){return(a,i,s,o)=>{let l=s===void 0?i:s instanceof Vr.Name?(i instanceof Vr.Name?r(a,i,s):e(a,i,s),s):i instanceof Vr.Name?(e(a,s,i),i):t(i,s);return o===Vr.Name&&!(l instanceof Vr.Name)?n(a,l):l}}Nt.mergeEvaluated={props:v6e({mergeNames:(r,e,t)=>r.if((0,Vr._)`${t} !== true && ${e} !== undefined`,()=>{r.if((0,Vr._)`${e} === true`,()=>r.assign(t,!0),()=>r.assign(t,(0,Vr._)`${t} || {}`).code((0,Vr._)`Object.assign(${t}, ${e})`))}),mergeToName:(r,e,t)=>r.if((0,Vr._)`${t} !== true`,()=>{e===!0?r.assign(t,!0):(r.assign(t,(0,Vr._)`${t} || {}`),kre(r,t,e))}),mergeValues:(r,e)=>r===!0?!0:{...r,...e},resultToName:S6e}),items:v6e({mergeNames:(r,e,t)=>r.if((0,Vr._)`${t} !== true && ${e} !== undefined`,()=>r.assign(t,(0,Vr._)`${e} === true ? true : ${t} > ${e} ? ${t} : ${e}`)),mergeToName:(r,e,t)=>r.if((0,Vr._)`${t} !== true`,()=>r.assign(t,e===!0?!0:(0,Vr._)`${t} > ${e} ? ${t} : ${e}`)),mergeValues:(r,e)=>r===!0?!0:Math.max(r,e),resultToName:(r,e)=>r.var("items",e)})};function S6e(r,e){if(e===!0)return r.var("props",!0);let t=r.var("props",(0,Vr._)`{}`);return e!==void 0&&kre(r,t,e),t}Nt.evaluatedPropsToName=S6e;function kre(r,e,t){Object.keys(t).forEach(n=>r.assign((0,Vr._)`${e}${(0,Vr.getProperty)(n)}`,!0))}Nt.setEvaluated=kre;var k6e={};function U$t(r,e){return r.scopeValue("func",{ref:e,code:k6e[e.code]||(k6e[e.code]=new R$t._Code(e.code))})}Nt.useFunc=U$t;var yre;(function(r){r[r.Num=0]="Num",r[r.Str=1]="Str"})(yre||(Nt.Type=yre={}));function H$t(r,e,t){if(r instanceof Vr.Name){let n=e===yre.Num;return t?n?(0,Vr._)`"[" + ${r} + "]"`:(0,Vr._)`"['" + ${r} + "']"`:n?(0,Vr._)`"/" + ${r}`:(0,Vr._)`"/" + ${r}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return t?(0,Vr.getProperty)(r).toString():"/"+vre(r)}Nt.getErrorPath=H$t;function x6e(r,e,t=r.opts.strictSchema){if(t){if(e=`strict mode: ${e}`,t===!0)throw new Error(e);r.self.logger.warn(e)}}Nt.checkStrictMode=x6e});var Ip=x(bre=>{"use strict";Object.defineProperty(bre,"__esModule",{value:!0});var Ei=It(),V$t={data:new Ei.Name("data"),valCxt:new Ei.Name("valCxt"),instancePath:new Ei.Name("instancePath"),parentData:new Ei.Name("parentData"),parentDataProperty:new Ei.Name("parentDataProperty"),rootData:new Ei.Name("rootData"),dynamicAnchors:new Ei.Name("dynamicAnchors"),vErrors:new Ei.Name("vErrors"),errors:new Ei.Name("errors"),this:new Ei.Name("this"),self:new Ei.Name("self"),scope:new Ei.Name("scope"),json:new Ei.Name("json"),jsonPos:new Ei.Name("jsonPos"),jsonLen:new Ei.Name("jsonLen"),jsonPart:new Ei.Name("jsonPart")};bre.default=V$t});var fM=x(Di=>{"use strict";Object.defineProperty(Di,"__esModule",{value:!0});Di.extendErrors=Di.resetErrorsCount=Di.reportExtraError=Di.reportError=Di.keyword$DataError=Di.keywordError=void 0;var ir=It(),Sj=ar(),Ji=Ip();Di.keywordError={message:({keyword:r})=>(0,ir.str)`must pass "${r}" keyword validation`};Di.keyword$DataError={message:({keyword:r,schemaType:e})=>e?(0,ir.str)`"${r}" keyword must be ${e} ($data)`:(0,ir.str)`"${r}" keyword is invalid ($data)`};function q$t(r,e=Di.keywordError,t,n){let{it:a}=r,{gen:i,compositeRule:s,allErrors:o}=a,l=D6e(r,e,t);(n!=null?n:s||o)?C6e(i,l):E6e(a,(0,ir._)`[${l}]`)}Di.reportError=q$t;function W$t(r,e=Di.keywordError,t){let{it:n}=r,{gen:a,compositeRule:i,allErrors:s}=n,o=D6e(r,e,t);C6e(a,o),i||s||E6e(n,Ji.default.vErrors)}Di.reportExtraError=W$t;function Y$t(r,e){r.assign(Ji.default.errors,e),r.if((0,ir._)`${Ji.default.vErrors} !== null`,()=>r.if(e,()=>r.assign((0,ir._)`${Ji.default.vErrors}.length`,e),()=>r.assign(Ji.default.vErrors,null)))}Di.resetErrorsCount=Y$t;function G$t({gen:r,keyword:e,schemaValue:t,data:n,errsCount:a,it:i}){if(a===void 0)throw new Error("ajv implementation error");let s=r.name("err");r.forRange("i",a,Ji.default.errors,o=>{r.const(s,(0,ir._)`${Ji.default.vErrors}[${o}]`),r.if((0,ir._)`${s}.instancePath === undefined`,()=>r.assign((0,ir._)`${s}.instancePath`,(0,ir.strConcat)(Ji.default.instancePath,i.errorPath))),r.assign((0,ir._)`${s}.schemaPath`,(0,ir.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(r.assign((0,ir._)`${s}.schema`,t),r.assign((0,ir._)`${s}.data`,n))})}Di.extendErrors=G$t;function C6e(r,e){let t=r.const("err",e);r.if((0,ir._)`${Ji.default.vErrors} === null`,()=>r.assign(Ji.default.vErrors,(0,ir._)`[${t}]`),(0,ir._)`${Ji.default.vErrors}.push(${t})`),r.code((0,ir._)`${Ji.default.errors}++`)}function E6e(r,e){let{gen:t,validateName:n,schemaEnv:a}=r;a.$async?t.throw((0,ir._)`new ${r.ValidationError}(${e})`):(t.assign((0,ir._)`${n}.errors`,e),t.return(!1))}var qy={keyword:new ir.Name("keyword"),schemaPath:new ir.Name("schemaPath"),params:new ir.Name("params"),propertyName:new ir.Name("propertyName"),message:new ir.Name("message"),schema:new ir.Name("schema"),parentSchema:new ir.Name("parentSchema")};function D6e(r,e,t){let{createErrors:n}=r.it;return n===!1?(0,ir._)`{}`:K$t(r,e,t)}function K$t(r,e,t={}){let{gen:n,it:a}=r,i=[Z$t(a,t),Q$t(r,t)];return J$t(r,e,i),n.object(...i)}function Z$t({errorPath:r},{instancePath:e}){let t=e?(0,ir.str)`${r}${(0,Sj.getErrorPath)(e,Sj.Type.Str)}`:r;return[Ji.default.instancePath,(0,ir.strConcat)(Ji.default.instancePath,t)]}function Q$t({keyword:r,it:{errSchemaPath:e}},{schemaPath:t,parentSchema:n}){let a=n?e:(0,ir.str)`${e}/${r}`;return t&&(a=(0,ir.str)`${a}${(0,Sj.getErrorPath)(t,Sj.Type.Str)}`),[qy.schemaPath,a]}function J$t(r,{params:e,message:t},n){let{keyword:a,data:i,schemaValue:s,it:o}=r,{opts:l,propertyName:c,topSchemaRef:d,schemaPath:u}=o;n.push([qy.keyword,a],[qy.params,typeof e=="function"?e(r):e||(0,ir._)`{}`]),l.messages&&n.push([qy.message,typeof t=="function"?t(r):t]),l.verbose&&n.push([qy.schema,s],[qy.parentSchema,(0,ir._)`${d}${u}`],[Ji.default.data,i]),c&&n.push([qy.propertyName,c])}});var M6e=x(lw=>{"use strict";Object.defineProperty(lw,"__esModule",{value:!0});lw.boolOrEmptySchema=lw.topBoolOrEmptySchema=void 0;var X$t=fM(),eBt=It(),tBt=Ip(),rBt={message:"boolean schema is false"};function nBt(r){let{gen:e,schema:t,validateName:n}=r;t===!1?P6e(r,!1):typeof t=="object"&&t.$async===!0?e.return(tBt.default.data):(e.assign((0,eBt._)`${n}.errors`,null),e.return(!0))}lw.topBoolOrEmptySchema=nBt;function aBt(r,e){let{gen:t,schema:n}=r;n===!1?(t.var(e,!1),P6e(r)):t.var(e,!0)}lw.boolOrEmptySchema=aBt;function P6e(r,e){let{gen:t,data:n}=r,a={gen:t,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:r};(0,X$t.reportError)(a,rBt,void 0,e)}});var Tre=x(cw=>{"use strict";Object.defineProperty(cw,"__esModule",{value:!0});cw.getRules=cw.isJSONType=void 0;var iBt=["string","number","integer","boolean","null","object","array"],sBt=new Set(iBt);function oBt(r){return typeof r=="string"&&sBt.has(r)}cw.isJSONType=oBt;function lBt(){let r={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...r,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},r.number,r.string,r.array,r.object],post:{rules:[]},all:{},keywords:{}}}cw.getRules=lBt});var wre=x(Vf=>{"use strict";Object.defineProperty(Vf,"__esModule",{value:!0});Vf.shouldUseRule=Vf.shouldUseGroup=Vf.schemaHasRulesForType=void 0;function cBt({schema:r,self:e},t){let n=e.RULES.types[t];return n&&n!==!0&&A6e(r,n)}Vf.schemaHasRulesForType=cBt;function A6e(r,e){return e.rules.some(t=>_6e(r,t))}Vf.shouldUseGroup=A6e;function _6e(r,e){var t;return r[e.keyword]!==void 0||((t=e.definition.implements)===null||t===void 0?void 0:t.some(n=>r[n]!==void 0))}Vf.shouldUseRule=_6e});var hM=x(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.reportTypeError=Pi.checkDataTypes=Pi.checkDataType=Pi.coerceAndCheckDataType=Pi.getJSONTypes=Pi.getSchemaTypes=Pi.DataType=void 0;var dBt=Tre(),uBt=wre(),pBt=fM(),yt=It(),I6e=ar(),dw;(function(r){r[r.Correct=0]="Correct",r[r.Wrong=1]="Wrong"})(dw||(Pi.DataType=dw={}));function mBt(r){let e=N6e(r.type);if(e.includes("null")){if(r.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&r.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');r.nullable===!0&&e.push("null")}return e}Pi.getSchemaTypes=mBt;function N6e(r){let e=Array.isArray(r)?r:r?[r]:[];if(e.every(dBt.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Pi.getJSONTypes=N6e;function fBt(r,e){let{gen:t,data:n,opts:a}=r,i=hBt(e,a.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,uBt.schemaHasRulesForType)(r,e[0]));if(s){let o=xre(e,n,a.strictNumbers,dw.Wrong);t.if(o,()=>{i.length?gBt(r,e,i):Cre(r)})}return s}Pi.coerceAndCheckDataType=fBt;var R6e=new Set(["string","number","integer","boolean","null"]);function hBt(r,e){return e?r.filter(t=>R6e.has(t)||e==="array"&&t==="array"):[]}function gBt(r,e,t){let{gen:n,data:a,opts:i}=r,s=n.let("dataType",(0,yt._)`typeof ${a}`),o=n.let("coerced",(0,yt._)`undefined`);i.coerceTypes==="array"&&n.if((0,yt._)`${s} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>n.assign(a,(0,yt._)`${a}[0]`).assign(s,(0,yt._)`typeof ${a}`).if(xre(e,a,i.strictNumbers),()=>n.assign(o,a))),n.if((0,yt._)`${o} !== undefined`);for(let c of t)(R6e.has(c)||c==="array"&&i.coerceTypes==="array")&&l(c);n.else(),Cre(r),n.endIf(),n.if((0,yt._)`${o} !== undefined`,()=>{n.assign(a,o),yBt(r,o)});function l(c){switch(c){case"string":n.elseIf((0,yt._)`${s} == "number" || ${s} == "boolean"`).assign(o,(0,yt._)`"" + ${a}`).elseIf((0,yt._)`${a} === null`).assign(o,(0,yt._)`""`);return;case"number":n.elseIf((0,yt._)`${s} == "boolean" || ${a} === null
|
||
|| (${s} == "string" && ${a} && ${a} == +${a})`).assign(o,(0,yt._)`+${a}`);return;case"integer":n.elseIf((0,yt._)`${s} === "boolean" || ${a} === null
|
||
|| (${s} === "string" && ${a} && ${a} == +${a} && !(${a} % 1))`).assign(o,(0,yt._)`+${a}`);return;case"boolean":n.elseIf((0,yt._)`${a} === "false" || ${a} === 0 || ${a} === null`).assign(o,!1).elseIf((0,yt._)`${a} === "true" || ${a} === 1`).assign(o,!0);return;case"null":n.elseIf((0,yt._)`${a} === "" || ${a} === 0 || ${a} === false`),n.assign(o,null);return;case"array":n.elseIf((0,yt._)`${s} === "string" || ${s} === "number"
|
||
|| ${s} === "boolean" || ${a} === null`).assign(o,(0,yt._)`[${a}]`)}}}function yBt({gen:r,parentData:e,parentDataProperty:t},n){r.if((0,yt._)`${e} !== undefined`,()=>r.assign((0,yt._)`${e}[${t}]`,n))}function Sre(r,e,t,n=dw.Correct){let a=n===dw.Correct?yt.operators.EQ:yt.operators.NEQ,i;switch(r){case"null":return(0,yt._)`${e} ${a} null`;case"array":i=(0,yt._)`Array.isArray(${e})`;break;case"object":i=(0,yt._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=s((0,yt._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=s();break;default:return(0,yt._)`typeof ${e} ${a} ${r}`}return n===dw.Correct?i:(0,yt.not)(i);function s(o=yt.nil){return(0,yt.and)((0,yt._)`typeof ${e} == "number"`,o,t?(0,yt._)`isFinite(${e})`:yt.nil)}}Pi.checkDataType=Sre;function xre(r,e,t,n){if(r.length===1)return Sre(r[0],e,t,n);let a,i=(0,I6e.toHash)(r);if(i.array&&i.object){let s=(0,yt._)`typeof ${e} != "object"`;a=i.null?s:(0,yt._)`!${e} || ${s}`,delete i.null,delete i.array,delete i.object}else a=yt.nil;i.number&&delete i.integer;for(let s in i)a=(0,yt.and)(a,Sre(s,e,t,n));return a}Pi.checkDataTypes=xre;var vBt={message:({schema:r})=>`must be ${r}`,params:({schema:r,schemaValue:e})=>typeof r=="string"?(0,yt._)`{type: ${r}}`:(0,yt._)`{type: ${e}}`};function Cre(r){let e=kBt(r);(0,pBt.reportError)(e,vBt)}Pi.reportTypeError=Cre;function kBt(r){let{gen:e,data:t,schema:n}=r,a=(0,I6e.schemaRefOrVal)(r,n,"type");return{gen:e,keyword:"type",data:t,schema:n.type,schemaCode:a,schemaValue:a,parentSchema:n,params:{},it:r}}});var O6e=x(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});xj.assignDefaults=void 0;var uw=It(),bBt=ar();function TBt(r,e){let{properties:t,items:n}=r.schema;if(e==="object"&&t)for(let a in t)F6e(r,a,t[a].default);else e==="array"&&Array.isArray(n)&&n.forEach((a,i)=>F6e(r,i,a.default))}xj.assignDefaults=TBt;function F6e(r,e,t){let{gen:n,compositeRule:a,data:i,opts:s}=r;if(t===void 0)return;let o=(0,uw._)`${i}${(0,uw.getProperty)(e)}`;if(a){(0,bBt.checkStrictMode)(r,`default is ignored for: ${o}`);return}let l=(0,uw._)`${o} === undefined`;s.useDefaults==="empty"&&(l=(0,uw._)`${l} || ${o} === null || ${o} === ""`),n.if(l,(0,uw._)`${o} = ${(0,uw.stringify)(t)}`)}});var vl=x(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.validateUnion=jr.validateArray=jr.usePattern=jr.callValidateCode=jr.schemaProperties=jr.allSchemaProperties=jr.noPropertyInData=jr.propertyInData=jr.isOwnProperty=jr.hasPropFunc=jr.reportMissingProp=jr.checkMissingProp=jr.checkReportMissingProp=void 0;var cn=It(),Ere=ar(),qf=Ip(),wBt=ar();function SBt(r,e){let{gen:t,data:n,it:a}=r;t.if(Pre(t,n,e,a.opts.ownProperties),()=>{r.setParams({missingProperty:(0,cn._)`${e}`},!0),r.error()})}jr.checkReportMissingProp=SBt;function xBt({gen:r,data:e,it:{opts:t}},n,a){return(0,cn.or)(...n.map(i=>(0,cn.and)(Pre(r,e,i,t.ownProperties),(0,cn._)`${a} = ${i}`)))}jr.checkMissingProp=xBt;function CBt(r,e){r.setParams({missingProperty:e},!0),r.error()}jr.reportMissingProp=CBt;function L6e(r){return r.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,cn._)`Object.prototype.hasOwnProperty`})}jr.hasPropFunc=L6e;function Dre(r,e,t){return(0,cn._)`${L6e(r)}.call(${e}, ${t})`}jr.isOwnProperty=Dre;function EBt(r,e,t,n){let a=(0,cn._)`${e}${(0,cn.getProperty)(t)} !== undefined`;return n?(0,cn._)`${a} && ${Dre(r,e,t)}`:a}jr.propertyInData=EBt;function Pre(r,e,t,n){let a=(0,cn._)`${e}${(0,cn.getProperty)(t)} === undefined`;return n?(0,cn.or)(a,(0,cn.not)(Dre(r,e,t))):a}jr.noPropertyInData=Pre;function z6e(r){return r?Object.keys(r).filter(e=>e!=="__proto__"):[]}jr.allSchemaProperties=z6e;function DBt(r,e){return z6e(e).filter(t=>!(0,Ere.alwaysValidSchema)(r,e[t]))}jr.schemaProperties=DBt;function PBt({schemaCode:r,data:e,it:{gen:t,topSchemaRef:n,schemaPath:a,errorPath:i},it:s},o,l,c){let d=c?(0,cn._)`${r}, ${e}, ${n}${a}`:e,u=[[qf.default.instancePath,(0,cn.strConcat)(qf.default.instancePath,i)],[qf.default.parentData,s.parentData],[qf.default.parentDataProperty,s.parentDataProperty],[qf.default.rootData,qf.default.rootData]];s.opts.dynamicRef&&u.push([qf.default.dynamicAnchors,qf.default.dynamicAnchors]);let p=(0,cn._)`${d}, ${t.object(...u)}`;return l!==cn.nil?(0,cn._)`${o}.call(${l}, ${p})`:(0,cn._)`${o}(${p})`}jr.callValidateCode=PBt;var MBt=(0,cn._)`new RegExp`;function ABt({gen:r,it:{opts:e}},t){let n=e.unicodeRegExp?"u":"",{regExp:a}=e.code,i=a(t,n);return r.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,cn._)`${a.code==="new RegExp"?MBt:(0,wBt.useFunc)(r,a)}(${t}, ${n})`})}jr.usePattern=ABt;function _Bt(r){let{gen:e,data:t,keyword:n,it:a}=r,i=e.name("valid");if(a.allErrors){let o=e.let("valid",!0);return s(()=>e.assign(o,!1)),o}return e.var(i,!0),s(()=>e.break()),i;function s(o){let l=e.const("len",(0,cn._)`${t}.length`);e.forRange("i",0,l,c=>{r.subschema({keyword:n,dataProp:c,dataPropType:Ere.Type.Num},i),e.if((0,cn.not)(i),o)})}}jr.validateArray=_Bt;function IBt(r){let{gen:e,schema:t,keyword:n,it:a}=r;if(!Array.isArray(t))throw new Error("ajv implementation error");if(t.some(l=>(0,Ere.alwaysValidSchema)(a,l))&&!a.opts.unevaluated)return;let s=e.let("valid",!1),o=e.name("_valid");e.block(()=>t.forEach((l,c)=>{let d=r.subschema({keyword:n,schemaProp:c,compositeRule:!0},o);e.assign(s,(0,cn._)`${s} || ${o}`),r.mergeValidEvaluated(d,o)||e.if((0,cn.not)(s))})),r.result(s,()=>r.reset(),()=>r.error(!0))}jr.validateUnion=IBt});var B6e=x(qd=>{"use strict";Object.defineProperty(qd,"__esModule",{value:!0});qd.validateKeywordUsage=qd.validSchemaType=qd.funcKeywordCode=qd.macroKeywordCode=void 0;var Xi=It(),Wy=Ip(),NBt=vl(),RBt=fM();function FBt(r,e){let{gen:t,keyword:n,schema:a,parentSchema:i,it:s}=r,o=e.macro.call(s.self,a,i,s),l=$6e(t,n,o);s.opts.validateSchema!==!1&&s.self.validateSchema(o,!0);let c=t.name("valid");r.subschema({schema:o,schemaPath:Xi.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:l,compositeRule:!0},c),r.pass(c,()=>r.error(!0))}qd.macroKeywordCode=FBt;function OBt(r,e){var t;let{gen:n,keyword:a,schema:i,parentSchema:s,$data:o,it:l}=r;zBt(l,e);let c=!o&&e.compile?e.compile.call(l.self,i,s,l):e.validate,d=$6e(n,a,c),u=n.let("valid");r.block$data(u,p),r.ok((t=e.valid)!==null&&t!==void 0?t:u);function p(){if(e.errors===!1)h(),e.modifying&&j6e(r),g(()=>r.error());else{let v=e.async?m():f();e.modifying&&j6e(r),g(()=>LBt(r,v))}}function m(){let v=n.let("ruleErrs",null);return n.try(()=>h((0,Xi._)`await `),b=>n.assign(u,!1).if((0,Xi._)`${b} instanceof ${l.ValidationError}`,()=>n.assign(v,(0,Xi._)`${b}.errors`),()=>n.throw(b))),v}function f(){let v=(0,Xi._)`${d}.errors`;return n.assign(v,null),h(Xi.nil),v}function h(v=e.async?(0,Xi._)`await `:Xi.nil){let b=l.opts.passContext?Wy.default.this:Wy.default.self,k=!("compile"in e&&!o||e.schema===!1);n.assign(u,(0,Xi._)`${v}${(0,NBt.callValidateCode)(r,d,b,k)}`,e.modifying)}function g(v){var b;n.if((0,Xi.not)((b=e.valid)!==null&&b!==void 0?b:u),v)}}qd.funcKeywordCode=OBt;function j6e(r){let{gen:e,data:t,it:n}=r;e.if(n.parentData,()=>e.assign(t,(0,Xi._)`${n.parentData}[${n.parentDataProperty}]`))}function LBt(r,e){let{gen:t}=r;t.if((0,Xi._)`Array.isArray(${e})`,()=>{t.assign(Wy.default.vErrors,(0,Xi._)`${Wy.default.vErrors} === null ? ${e} : ${Wy.default.vErrors}.concat(${e})`).assign(Wy.default.errors,(0,Xi._)`${Wy.default.vErrors}.length`),(0,RBt.extendErrors)(r)},()=>r.error())}function zBt({schemaEnv:r},e){if(e.async&&!r.$async)throw new Error("async keyword in sync schema")}function $6e(r,e,t){if(t===void 0)throw new Error(`keyword "${e}" failed to compile`);return r.scopeValue("keyword",typeof t=="function"?{ref:t}:{ref:t,code:(0,Xi.stringify)(t)})}function jBt(r,e,t=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(r):n==="object"?r&&typeof r=="object"&&!Array.isArray(r):typeof r==n||t&&typeof r=="undefined")}qd.validSchemaType=jBt;function $Bt({schema:r,opts:e,self:t,errSchemaPath:n},a,i){if(Array.isArray(a.keyword)?!a.keyword.includes(i):a.keyword!==i)throw new Error("ajv implementation error");let s=a.dependencies;if(s!=null&&s.some(o=>!Object.prototype.hasOwnProperty.call(r,o)))throw new Error(`parent schema must have dependencies of ${i}: ${s.join(",")}`);if(a.validateSchema&&!a.validateSchema(r[i])){let l=`keyword "${i}" value is invalid at path "${n}": `+t.errorsText(a.validateSchema.errors);if(e.validateSchema==="log")t.logger.error(l);else throw new Error(l)}}qd.validateKeywordUsage=$Bt});var H6e=x(Wf=>{"use strict";Object.defineProperty(Wf,"__esModule",{value:!0});Wf.extendSubschemaMode=Wf.extendSubschemaData=Wf.getSubschema=void 0;var Wd=It(),U6e=ar();function BBt(r,{keyword:e,schemaProp:t,schema:n,schemaPath:a,errSchemaPath:i,topSchemaRef:s}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let o=r.schema[e];return t===void 0?{schema:o,schemaPath:(0,Wd._)`${r.schemaPath}${(0,Wd.getProperty)(e)}`,errSchemaPath:`${r.errSchemaPath}/${e}`}:{schema:o[t],schemaPath:(0,Wd._)`${r.schemaPath}${(0,Wd.getProperty)(e)}${(0,Wd.getProperty)(t)}`,errSchemaPath:`${r.errSchemaPath}/${e}/${(0,U6e.escapeFragment)(t)}`}}if(n!==void 0){if(a===void 0||i===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:a,topSchemaRef:s,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Wf.getSubschema=BBt;function UBt(r,e,{dataProp:t,dataPropType:n,data:a,dataTypes:i,propertyName:s}){if(a!==void 0&&t!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=e;if(t!==void 0){let{errorPath:c,dataPathArr:d,opts:u}=e,p=o.let("data",(0,Wd._)`${e.data}${(0,Wd.getProperty)(t)}`,!0);l(p),r.errorPath=(0,Wd.str)`${c}${(0,U6e.getErrorPath)(t,n,u.jsPropertySyntax)}`,r.parentDataProperty=(0,Wd._)`${t}`,r.dataPathArr=[...d,r.parentDataProperty]}if(a!==void 0){let c=a instanceof Wd.Name?a:o.let("data",a,!0);l(c),s!==void 0&&(r.propertyName=s)}i&&(r.dataTypes=i);function l(c){r.data=c,r.dataLevel=e.dataLevel+1,r.dataTypes=[],e.definedProperties=new Set,r.parentData=e.data,r.dataNames=[...e.dataNames,c]}}Wf.extendSubschemaData=UBt;function HBt(r,{jtdDiscriminator:e,jtdMetadata:t,compositeRule:n,createErrors:a,allErrors:i}){n!==void 0&&(r.compositeRule=n),a!==void 0&&(r.createErrors=a),i!==void 0&&(r.allErrors=i),r.jtdDiscriminator=e,r.jtdMetadata=t}Wf.extendSubschemaMode=HBt});var gM=x((Ien,V6e)=>{"use strict";V6e.exports=function r(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,a,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(a=n;a--!==0;)if(!r(e[a],t[a]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(a=n;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[a]))return!1;for(a=n;a--!==0;){var s=i[a];if(!r(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}});var W6e=x((Nen,q6e)=>{"use strict";var Yf=q6e.exports=function(r,e,t){typeof e=="function"&&(t=e,e={}),t=e.cb||t;var n=typeof t=="function"?t:t.pre||function(){},a=t.post||function(){};Cj(e,n,a,r,"",r)};Yf.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Yf.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Yf.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Yf.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Cj(r,e,t,n,a,i,s,o,l,c){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,a,i,s,o,l,c);for(var d in n){var u=n[d];if(Array.isArray(u)){if(d in Yf.arrayKeywords)for(var p=0;p<u.length;p++)Cj(r,e,t,u[p],a+"/"+d+"/"+p,i,a,d,n,p)}else if(d in Yf.propsKeywords){if(u&&typeof u=="object")for(var m in u)Cj(r,e,t,u[m],a+"/"+d+"/"+VBt(m),i,a,d,n,m)}else(d in Yf.keywords||r.allKeys&&!(d in Yf.skipKeywords))&&Cj(r,e,t,u,a+"/"+d,i,a,d,n)}t(n,a,i,s,o,l,c)}}function VBt(r){return r.replace(/~/g,"~0").replace(/\//g,"~1")}});var yM=x(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});Is.getSchemaRefs=Is.resolveUrl=Is.normalizeId=Is._getFullPath=Is.getFullPath=Is.inlineRef=void 0;var qBt=ar(),WBt=gM(),YBt=W6e(),GBt=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function KBt(r,e=!0){return typeof r=="boolean"?!0:e===!0?!Mre(r):e?Y6e(r)<=e:!1}Is.inlineRef=KBt;var ZBt=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Mre(r){for(let e in r){if(ZBt.has(e))return!0;let t=r[e];if(Array.isArray(t)&&t.some(Mre)||typeof t=="object"&&Mre(t))return!0}return!1}function Y6e(r){let e=0;for(let t in r){if(t==="$ref")return 1/0;if(e++,!GBt.has(t)&&(typeof r[t]=="object"&&(0,qBt.eachItem)(r[t],n=>e+=Y6e(n)),e===1/0))return 1/0}return e}function G6e(r,e="",t){t!==!1&&(e=pw(e));let n=r.parse(e);return K6e(r,n)}Is.getFullPath=G6e;function K6e(r,e){return r.serialize(e).split("#")[0]+"#"}Is._getFullPath=K6e;var QBt=/#\/?$/;function pw(r){return r?r.replace(QBt,""):""}Is.normalizeId=pw;function JBt(r,e,t){return t=pw(t),r.resolve(e,t)}Is.resolveUrl=JBt;var XBt=/^[a-z_][-a-z0-9._]*$/i;function e2t(r,e){if(typeof r=="boolean")return{};let{schemaId:t,uriResolver:n}=this.opts,a=pw(r[t]||e),i={"":a},s=G6e(n,a,!1),o={},l=new Set;return YBt(r,{allKeys:!0},(u,p,m,f)=>{if(f===void 0)return;let h=s+p,g=i[f];typeof u[t]=="string"&&(g=v.call(this,u[t])),b.call(this,u.$anchor),b.call(this,u.$dynamicAnchor),i[p]=g;function v(k){let w=this.opts.uriResolver.resolve;if(k=pw(g?w(g,k):k),l.has(k))throw d(k);l.add(k);let S=this.refs[k];return typeof S=="string"&&(S=this.refs[S]),typeof S=="object"?c(u,S.schema,k):k!==pw(h)&&(k[0]==="#"?(c(u,o[k],k),o[k]=u):this.refs[k]=h),k}function b(k){if(typeof k=="string"){if(!XBt.test(k))throw new Error(`invalid anchor "${k}"`);v.call(this,`#${k}`)}}}),o;function c(u,p,m){if(p!==void 0&&!WBt(u,p))throw d(m)}function d(u){return new Error(`reference "${u}" resolves to more than one schema`)}}Is.getSchemaRefs=e2t});var bM=x(Gf=>{"use strict";Object.defineProperty(Gf,"__esModule",{value:!0});Gf.getData=Gf.KeywordCxt=Gf.validateFunctionCode=void 0;var e9e=M6e(),Z6e=hM(),_re=wre(),Ej=hM(),t2t=O6e(),kM=B6e(),Are=H6e(),je=It(),lt=Ip(),r2t=yM(),Np=ar(),vM=fM();function n2t(r){if(n9e(r)&&(a9e(r),r9e(r))){s2t(r);return}t9e(r,()=>(0,e9e.topBoolOrEmptySchema)(r))}Gf.validateFunctionCode=n2t;function t9e({gen:r,validateName:e,schema:t,schemaEnv:n,opts:a},i){a.code.es5?r.func(e,(0,je._)`${lt.default.data}, ${lt.default.valCxt}`,n.$async,()=>{r.code((0,je._)`"use strict"; ${Q6e(t,a)}`),i2t(r,a),r.code(i)}):r.func(e,(0,je._)`${lt.default.data}, ${a2t(a)}`,n.$async,()=>r.code(Q6e(t,a)).code(i))}function a2t(r){return(0,je._)`{${lt.default.instancePath}="", ${lt.default.parentData}, ${lt.default.parentDataProperty}, ${lt.default.rootData}=${lt.default.data}${r.dynamicRef?(0,je._)`, ${lt.default.dynamicAnchors}={}`:je.nil}}={}`}function i2t(r,e){r.if(lt.default.valCxt,()=>{r.var(lt.default.instancePath,(0,je._)`${lt.default.valCxt}.${lt.default.instancePath}`),r.var(lt.default.parentData,(0,je._)`${lt.default.valCxt}.${lt.default.parentData}`),r.var(lt.default.parentDataProperty,(0,je._)`${lt.default.valCxt}.${lt.default.parentDataProperty}`),r.var(lt.default.rootData,(0,je._)`${lt.default.valCxt}.${lt.default.rootData}`),e.dynamicRef&&r.var(lt.default.dynamicAnchors,(0,je._)`${lt.default.valCxt}.${lt.default.dynamicAnchors}`)},()=>{r.var(lt.default.instancePath,(0,je._)`""`),r.var(lt.default.parentData,(0,je._)`undefined`),r.var(lt.default.parentDataProperty,(0,je._)`undefined`),r.var(lt.default.rootData,lt.default.data),e.dynamicRef&&r.var(lt.default.dynamicAnchors,(0,je._)`{}`)})}function s2t(r){let{schema:e,opts:t,gen:n}=r;t9e(r,()=>{t.$comment&&e.$comment&&s9e(r),u2t(r),n.let(lt.default.vErrors,null),n.let(lt.default.errors,0),t.unevaluated&&o2t(r),i9e(r),f2t(r)})}function o2t(r){let{gen:e,validateName:t}=r;r.evaluated=e.const("evaluated",(0,je._)`${t}.evaluated`),e.if((0,je._)`${r.evaluated}.dynamicProps`,()=>e.assign((0,je._)`${r.evaluated}.props`,(0,je._)`undefined`)),e.if((0,je._)`${r.evaluated}.dynamicItems`,()=>e.assign((0,je._)`${r.evaluated}.items`,(0,je._)`undefined`))}function Q6e(r,e){let t=typeof r=="object"&&r[e.schemaId];return t&&(e.code.source||e.code.process)?(0,je._)`/*# sourceURL=${t} */`:je.nil}function l2t(r,e){if(n9e(r)&&(a9e(r),r9e(r))){c2t(r,e);return}(0,e9e.boolOrEmptySchema)(r,e)}function r9e({schema:r,self:e}){if(typeof r=="boolean")return!r;for(let t in r)if(e.RULES.all[t])return!0;return!1}function n9e(r){return typeof r.schema!="boolean"}function c2t(r,e){let{schema:t,gen:n,opts:a}=r;a.$comment&&t.$comment&&s9e(r),p2t(r),m2t(r);let i=n.const("_errs",lt.default.errors);i9e(r,i),n.var(e,(0,je._)`${i} === ${lt.default.errors}`)}function a9e(r){(0,Np.checkUnknownRules)(r),d2t(r)}function i9e(r,e){if(r.opts.jtd)return J6e(r,[],!1,e);let t=(0,Z6e.getSchemaTypes)(r.schema),n=(0,Z6e.coerceAndCheckDataType)(r,t);J6e(r,t,!n,e)}function d2t(r){let{schema:e,errSchemaPath:t,opts:n,self:a}=r;e.$ref&&n.ignoreKeywordsWithRef&&(0,Np.schemaHasRulesButRef)(e,a.RULES)&&a.logger.warn(`$ref: keywords ignored in schema at path "${t}"`)}function u2t(r){let{schema:e,opts:t}=r;e.default!==void 0&&t.useDefaults&&t.strictSchema&&(0,Np.checkStrictMode)(r,"default is ignored in the schema root")}function p2t(r){let e=r.schema[r.opts.schemaId];e&&(r.baseId=(0,r2t.resolveUrl)(r.opts.uriResolver,r.baseId,e))}function m2t(r){if(r.schema.$async&&!r.schemaEnv.$async)throw new Error("async schema in sync schema")}function s9e({gen:r,schemaEnv:e,schema:t,errSchemaPath:n,opts:a}){let i=t.$comment;if(a.$comment===!0)r.code((0,je._)`${lt.default.self}.logger.log(${i})`);else if(typeof a.$comment=="function"){let s=(0,je.str)`${n}/$comment`,o=r.scopeValue("root",{ref:e.root});r.code((0,je._)`${lt.default.self}.opts.$comment(${i}, ${s}, ${o}.schema)`)}}function f2t(r){let{gen:e,schemaEnv:t,validateName:n,ValidationError:a,opts:i}=r;t.$async?e.if((0,je._)`${lt.default.errors} === 0`,()=>e.return(lt.default.data),()=>e.throw((0,je._)`new ${a}(${lt.default.vErrors})`)):(e.assign((0,je._)`${n}.errors`,lt.default.vErrors),i.unevaluated&&h2t(r),e.return((0,je._)`${lt.default.errors} === 0`))}function h2t({gen:r,evaluated:e,props:t,items:n}){t instanceof je.Name&&r.assign((0,je._)`${e}.props`,t),n instanceof je.Name&&r.assign((0,je._)`${e}.items`,n)}function J6e(r,e,t,n){let{gen:a,schema:i,data:s,allErrors:o,opts:l,self:c}=r,{RULES:d}=c;if(i.$ref&&(l.ignoreKeywordsWithRef||!(0,Np.schemaHasRulesButRef)(i,d))){a.block(()=>l9e(r,"$ref",d.all.$ref.definition));return}l.jtd||g2t(r,e),a.block(()=>{for(let p of d.rules)u(p);u(d.post)});function u(p){(0,_re.shouldUseGroup)(i,p)&&(p.type?(a.if((0,Ej.checkDataType)(p.type,s,l.strictNumbers)),X6e(r,p),e.length===1&&e[0]===p.type&&t&&(a.else(),(0,Ej.reportTypeError)(r)),a.endIf()):X6e(r,p),o||a.if((0,je._)`${lt.default.errors} === ${n||0}`))}}function X6e(r,e){let{gen:t,schema:n,opts:{useDefaults:a}}=r;a&&(0,t2t.assignDefaults)(r,e.type),t.block(()=>{for(let i of e.rules)(0,_re.shouldUseRule)(n,i)&&l9e(r,i.keyword,i.definition,e.type)})}function g2t(r,e){r.schemaEnv.meta||!r.opts.strictTypes||(y2t(r,e),r.opts.allowUnionTypes||v2t(r,e),k2t(r,r.dataTypes))}function y2t(r,e){if(e.length){if(!r.dataTypes.length){r.dataTypes=e;return}e.forEach(t=>{o9e(r.dataTypes,t)||Ire(r,`type "${t}" not allowed by context "${r.dataTypes.join(",")}"`)}),T2t(r,e)}}function v2t(r,e){e.length>1&&!(e.length===2&&e.includes("null"))&&Ire(r,"use allowUnionTypes to allow union type keyword")}function k2t(r,e){let t=r.self.RULES.all;for(let n in t){let a=t[n];if(typeof a=="object"&&(0,_re.shouldUseRule)(r.schema,a)){let{type:i}=a.definition;i.length&&!i.some(s=>b2t(e,s))&&Ire(r,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function b2t(r,e){return r.includes(e)||e==="number"&&r.includes("integer")}function o9e(r,e){return r.includes(e)||e==="integer"&&r.includes("number")}function T2t(r,e){let t=[];for(let n of r.dataTypes)o9e(e,n)?t.push(n):e.includes("integer")&&n==="number"&&t.push("integer");r.dataTypes=t}function Ire(r,e){let t=r.schemaEnv.baseId+r.errSchemaPath;e+=` at "${t}" (strictTypes)`,(0,Np.checkStrictMode)(r,e,r.opts.strictTypes)}var Dj=class{constructor(e,t,n){if((0,kM.validateKeywordUsage)(e,t,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Np.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",c9e(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,kM.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:t.errors!==!1)&&(this.errsCount=e.gen.const("_errs",lt.default.errors))}result(e,t,n){this.failResult((0,je.not)(e),t,n)}failResult(e,t,n){this.gen.if(e),n?n():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,t){this.failResult((0,je.not)(e),void 0,t)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:t}=this;this.fail((0,je._)`${t} !== undefined && (${(0,je.or)(this.invalid$data(),e)})`)}error(e,t,n){if(t){this.setParams(t),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,t){(e?vM.reportExtraError:vM.reportError)(this,this.def.error,t)}$dataError(){(0,vM.reportError)(this,this.def.$dataError||vM.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,vM.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,t){t?Object.assign(this.params,e):this.params=e}block$data(e,t,n=je.nil){this.gen.block(()=>{this.check$data(e,n),t()})}check$data(e=je.nil,t=je.nil){if(!this.$data)return;let{gen:n,schemaCode:a,schemaType:i,def:s}=this;n.if((0,je.or)((0,je._)`${a} === undefined`,t)),e!==je.nil&&n.assign(e,!0),(i.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==je.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:t,schemaType:n,def:a,it:i}=this;return(0,je.or)(s(),o());function s(){if(n.length){if(!(t instanceof je.Name))throw new Error("ajv implementation error");let l=Array.isArray(n)?n:[n];return(0,je._)`${(0,Ej.checkDataTypes)(l,t,i.opts.strictNumbers,Ej.DataType.Wrong)}`}return je.nil}function o(){if(a.validateSchema){let l=e.scopeValue("validate$data",{ref:a.validateSchema});return(0,je._)`!${l}(${t})`}return je.nil}}subschema(e,t){let n=(0,Are.getSubschema)(this.it,e);(0,Are.extendSubschemaData)(n,this.it,e),(0,Are.extendSubschemaMode)(n,e);let a={...this.it,...n,items:void 0,props:void 0};return l2t(a,t),a}mergeEvaluated(e,t){let{it:n,gen:a}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=Np.mergeEvaluated.props(a,e.props,n.props,t)),n.items!==!0&&e.items!==void 0&&(n.items=Np.mergeEvaluated.items(a,e.items,n.items,t)))}mergeValidEvaluated(e,t){let{it:n,gen:a}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return a.if(t,()=>this.mergeEvaluated(e,je.Name)),!0}};Gf.KeywordCxt=Dj;function l9e(r,e,t,n){let a=new Dj(r,t,e);"code"in t?t.code(a,n):a.$data&&t.validate?(0,kM.funcKeywordCode)(a,t):"macro"in t?(0,kM.macroKeywordCode)(a,t):(t.compile||t.validate)&&(0,kM.funcKeywordCode)(a,t)}var w2t=/^\/(?:[^~]|~0|~1)*$/,S2t=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function c9e(r,{dataLevel:e,dataNames:t,dataPathArr:n}){let a,i;if(r==="")return lt.default.rootData;if(r[0]==="/"){if(!w2t.test(r))throw new Error(`Invalid JSON-pointer: ${r}`);a=r,i=lt.default.rootData}else{let c=S2t.exec(r);if(!c)throw new Error(`Invalid JSON-pointer: ${r}`);let d=+c[1];if(a=c[2],a==="#"){if(d>=e)throw new Error(l("property/index",d));return n[e-d]}if(d>e)throw new Error(l("data",d));if(i=t[e-d],!a)return i}let s=i,o=a.split("/");for(let c of o)c&&(i=(0,je._)`${i}${(0,je.getProperty)((0,Np.unescapeJsonPointer)(c))}`,s=(0,je._)`${s} && ${i}`);return s;function l(c,d){return`Cannot access ${c} ${d} levels up, current level is ${e}`}}Gf.getData=c9e});var Pj=x(Rre=>{"use strict";Object.defineProperty(Rre,"__esModule",{value:!0});var Nre=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};Rre.default=Nre});var TM=x(Lre=>{"use strict";Object.defineProperty(Lre,"__esModule",{value:!0});var Fre=yM(),Ore=class extends Error{constructor(e,t,n,a){super(a||`can't resolve reference ${n} from id ${t}`),this.missingRef=(0,Fre.resolveUrl)(e,t,n),this.missingSchema=(0,Fre.normalizeId)((0,Fre.getFullPath)(e,this.missingRef))}};Lre.default=Ore});var Aj=x(kl=>{"use strict";Object.defineProperty(kl,"__esModule",{value:!0});kl.resolveSchema=kl.getCompilingSchema=kl.resolveRef=kl.compileSchema=kl.SchemaEnv=void 0;var pc=It(),x2t=Pj(),Yy=Ip(),mc=yM(),d9e=ar(),C2t=bM(),mw=class{constructor(e){var t;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0,mc.normalizeId)(n==null?void 0:n[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n==null?void 0:n.$async,this.refs={}}};kl.SchemaEnv=mw;function jre(r){let e=u9e.call(this,r);if(e)return e;let t=(0,mc.getFullPath)(this.opts.uriResolver,r.root.baseId),{es5:n,lines:a}=this.opts.code,{ownProperties:i}=this.opts,s=new pc.CodeGen(this.scope,{es5:n,lines:a,ownProperties:i}),o;r.$async&&(o=s.scopeValue("Error",{ref:x2t.default,code:(0,pc._)`require("ajv/dist/runtime/validation_error").default`}));let l=s.scopeName("validate");r.validateName=l;let c={gen:s,allErrors:this.opts.allErrors,data:Yy.default.data,parentData:Yy.default.parentData,parentDataProperty:Yy.default.parentDataProperty,dataNames:[Yy.default.data],dataPathArr:[pc.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===!0?{ref:r.schema,code:(0,pc.stringify)(r.schema)}:{ref:r.schema}),validateName:l,ValidationError:o,schema:r.schema,schemaEnv:r,rootId:t,baseId:r.baseId||t,schemaPath:pc.nil,errSchemaPath:r.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,pc._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(r),(0,C2t.validateFunctionCode)(c),s.optimize(this.opts.code.optimize);let u=s.toString();d=`${s.scopeRefs(Yy.default.scope)}return ${u}`,this.opts.code.process&&(d=this.opts.code.process(d,r));let m=new Function(`${Yy.default.self}`,`${Yy.default.scope}`,d)(this,this.scope.get());if(this.scope.value(l,{ref:m}),m.errors=null,m.schema=r.schema,m.schemaEnv=r,r.$async&&(m.$async=!0),this.opts.code.source===!0&&(m.source={validateName:l,validateCode:u,scopeValues:s._values}),this.opts.unevaluated){let{props:f,items:h}=c;m.evaluated={props:f instanceof pc.Name?void 0:f,items:h instanceof pc.Name?void 0:h,dynamicProps:f instanceof pc.Name,dynamicItems:h instanceof pc.Name},m.source&&(m.source.evaluated=(0,pc.stringify)(m.evaluated))}return r.validate=m,r}catch(u){throw delete r.validate,delete r.validateName,d&&this.logger.error("Error compiling schema, function code:",d),u}finally{this._compilations.delete(r)}}kl.compileSchema=jre;function E2t(r,e,t){var n;t=(0,mc.resolveUrl)(this.opts.uriResolver,e,t);let a=r.refs[t];if(a)return a;let i=M2t.call(this,r,t);if(i===void 0){let s=(n=r.localRefs)===null||n===void 0?void 0:n[t],{schemaId:o}=this.opts;s&&(i=new mw({schema:s,schemaId:o,root:r,baseId:e}))}if(i!==void 0)return r.refs[t]=D2t.call(this,i)}kl.resolveRef=E2t;function D2t(r){return(0,mc.inlineRef)(r.schema,this.opts.inlineRefs)?r.schema:r.validate?r:jre.call(this,r)}function u9e(r){for(let e of this._compilations)if(P2t(e,r))return e}kl.getCompilingSchema=u9e;function P2t(r,e){return r.schema===e.schema&&r.root===e.root&&r.baseId===e.baseId}function M2t(r,e){let t;for(;typeof(t=this.refs[e])=="string";)e=t;return t||this.schemas[e]||Mj.call(this,r,e)}function Mj(r,e){let t=this.opts.uriResolver.parse(e),n=(0,mc._getFullPath)(this.opts.uriResolver,t),a=(0,mc.getFullPath)(this.opts.uriResolver,r.baseId,void 0);if(Object.keys(r.schema).length>0&&n===a)return zre.call(this,t,r);let i=(0,mc.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let o=Mj.call(this,r,s);return typeof(o==null?void 0:o.schema)!="object"?void 0:zre.call(this,t,o)}if(typeof(s==null?void 0:s.schema)=="object"){if(s.validate||jre.call(this,s),i===(0,mc.normalizeId)(e)){let{schema:o}=s,{schemaId:l}=this.opts,c=o[l];return c&&(a=(0,mc.resolveUrl)(this.opts.uriResolver,a,c)),new mw({schema:o,schemaId:l,root:r,baseId:a})}return zre.call(this,t,s)}}kl.resolveSchema=Mj;var A2t=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function zre(r,{baseId:e,schema:t,root:n}){var a;if(((a=r.fragment)===null||a===void 0?void 0:a[0])!=="/")return;for(let o of r.fragment.slice(1).split("/")){if(typeof t=="boolean")return;let l=t[(0,d9e.unescapeFragment)(o)];if(l===void 0)return;t=l;let c=typeof t=="object"&&t[this.opts.schemaId];!A2t.has(o)&&c&&(e=(0,mc.resolveUrl)(this.opts.uriResolver,e,c))}let i;if(typeof t!="boolean"&&t.$ref&&!(0,d9e.schemaHasRulesButRef)(t,this.RULES)){let o=(0,mc.resolveUrl)(this.opts.uriResolver,e,t.$ref);i=Mj.call(this,n,o)}let{schemaId:s}=this.opts;if(i=i||new mw({schema:t,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var p9e=x((jen,_2t)=>{_2t.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var Ure=x(($en,v9e)=>{"use strict";var I2t=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),f9e=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),$re=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),h9e=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),N2t=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function Bre(r){let e="",t=0,n=0;for(n=0;n<r.length;n++)if(t=r[n].charCodeAt(0),t!==48){if(!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return"";e+=r[n];break}for(n+=1;n<r.length;n++){if(t=r[n].charCodeAt(0),!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return"";e+=r[n]}return e}var R2t=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function m9e(r){return r.length=0,!0}function F2t(r,e,t){if(r.length){let n=Bre(r);if(n!=="")e.push(n);else return t.error=!0,!1;r.length=0}return!0}function O2t(r){let e=0,t={error:!1,address:"",zone:""},n=[],a=[],i=!1,s=!1,o=F2t;for(let l=0;l<r.length;l++){let c=r[l];if(!(c==="["||c==="]"))if(c===":"){if(i===!0&&(s=!0),!o(a,n,t))break;if(++e>7){t.error=!0;break}l>0&&r[l-1]===":"&&(i=!0),n.push(":");continue}else if(c==="%"){if(!o(a,n,t))break;o=m9e}else{a.push(c);continue}}return a.length&&(o===m9e?t.zone=a.join(""):s?n.push(a.join("")):n.push(Bre(a))),t.address=n.join(""),t}function g9e(r){if(L2t(r,":")<2)return{host:r,isIPV6:!1};let e=O2t(r);if(e.error)return{host:r,isIPV6:!1};{let t=e.address,n=e.address;return e.zone&&(t+="%"+e.zone,n+="%25"+e.zone),{host:t,isIPV6:!0,escapedHost:n}}}function L2t(r,e){let t=0;for(let n=0;n<r.length;n++)r[n]===e&&t++;return t}function z2t(r){let e=r,t=[],n=-1,a=0;for(;a=e.length;){if(a===1){if(e===".")break;if(e==="/"){t.push("/");break}else{t.push(e);break}}else if(a===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){t.push("/");break}}else if(a===3&&e==="/.."){t.length!==0&&t.pop(),t.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),t.length!==0&&t.pop();continue}}if((n=e.indexOf("/",1))===-1){t.push(e);break}else t.push(e.slice(0,n)),e=e.slice(n)}return t.join("")}var j2t={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},$2t=/[@/?#:]/g,B2t=/[@/?#]/g;function y9e(r,e){let t=e?B2t:$2t;return t.lastIndex=0,r.replace(t,n=>j2t[n])}function U2t(r,e=!1){if(r.indexOf("%")===-1)return r;let t="";for(let n=0;n<r.length;n++){if(r[n]==="%"&&n+2<r.length){let a=r.slice(n+1,n+3);if($re(a)){let i=a.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&h9e(s)?t+=s:t+="%"+i,n+=2;continue}}t+=r[n]}return t}function H2t(r){let e="";for(let t=0;t<r.length;t++){if(r[t]==="%"&&t+2<r.length){let n=r.slice(t+1,t+3);if($re(n)){let a=n.toUpperCase(),i=String.fromCharCode(parseInt(a,16));i!=="."&&h9e(i)?e+=i:e+="%"+a,t+=2;continue}}N2t(r[t])?e+=r[t]:e+=escape(r[t])}return e}function V2t(r){let e="";for(let t=0;t<r.length;t++){if(r[t]==="%"&&t+2<r.length){let n=r.slice(t+1,t+3);if($re(n)){e+="%"+n.toUpperCase(),t+=2;continue}}e+=escape(r[t])}return e}function q2t(r){let e=[];if(r.userinfo!==void 0&&(e.push(r.userinfo),e.push("@")),r.host!==void 0){let t=unescape(r.host);if(!f9e(t)){let n=g9e(t);n.isIPV6===!0?t=`[${n.escapedHost}]`:t=y9e(t,!1)}e.push(t)}return(typeof r.port=="number"||typeof r.port=="string")&&(e.push(":"),e.push(String(r.port))),e.length?e.join(""):void 0}v9e.exports={nonSimpleDomain:R2t,recomposeAuthority:q2t,reescapeHostDelimiters:y9e,normalizePercentEncoding:U2t,normalizePathEncoding:H2t,escapePreservingEscapes:V2t,removeDotSegments:z2t,isIPv4:f9e,isUUID:I2t,normalizeIPv6:g9e,stringArrayToHexStripped:Bre}});var S9e=x((Ben,w9e)=>{"use strict";var{isUUID:W2t}=Ure(),Y2t=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,G2t=["http","https","ws","wss","urn","urn:uuid"];function K2t(r){return G2t.indexOf(r)!==-1}function Hre(r){return r.secure===!0?!0:r.secure===!1?!1:r.scheme?r.scheme.length===3&&(r.scheme[0]==="w"||r.scheme[0]==="W")&&(r.scheme[1]==="s"||r.scheme[1]==="S")&&(r.scheme[2]==="s"||r.scheme[2]==="S"):!1}function k9e(r){return r.host||(r.error=r.error||"HTTP URIs must have a host."),r}function b9e(r){let e=String(r.scheme).toLowerCase()==="https";return(r.port===(e?443:80)||r.port==="")&&(r.port=void 0),r.path||(r.path="/"),r}function Z2t(r){return r.secure=Hre(r),r.resourceName=(r.path||"/")+(r.query?"?"+r.query:""),r.path=void 0,r.query=void 0,r}function Q2t(r){if((r.port===(Hre(r)?443:80)||r.port==="")&&(r.port=void 0),typeof r.secure=="boolean"&&(r.scheme=r.secure?"wss":"ws",r.secure=void 0),r.resourceName){let[e,t]=r.resourceName.split("?");r.path=e&&e!=="/"?e:void 0,r.query=t,r.resourceName=void 0}return r.fragment=void 0,r}function J2t(r,e){if(!r.path)return r.error="URN can not be parsed",r;let t=r.path.match(Y2t);if(t){let n=e.scheme||r.scheme||"urn";r.nid=t[1].toLowerCase(),r.nss=t[2];let a=`${n}:${e.nid||r.nid}`,i=Vre(a);r.path=void 0,i&&(r=i.parse(r,e))}else r.error=r.error||"URN can not be parsed.";return r}function X2t(r,e){if(r.nid===void 0)throw new Error("URN without nid cannot be serialized");let t=e.scheme||r.scheme||"urn",n=r.nid.toLowerCase(),a=`${t}:${e.nid||n}`,i=Vre(a);i&&(r=i.serialize(r,e));let s=r,o=r.nss;return s.path=`${n||e.nid}:${o}`,e.skipEscape=!0,s}function eUt(r,e){let t=r;return t.uuid=t.nss,t.nss=void 0,!e.tolerant&&(!t.uuid||!W2t(t.uuid))&&(t.error=t.error||"UUID is not valid."),t}function tUt(r){let e=r;return e.nss=(r.uuid||"").toLowerCase(),e}var T9e={scheme:"http",domainHost:!0,parse:k9e,serialize:b9e},rUt={scheme:"https",domainHost:T9e.domainHost,parse:k9e,serialize:b9e},_j={scheme:"ws",domainHost:!0,parse:Z2t,serialize:Q2t},nUt={scheme:"wss",domainHost:_j.domainHost,parse:_j.parse,serialize:_j.serialize},aUt={scheme:"urn",parse:J2t,serialize:X2t,skipNormalize:!0},iUt={scheme:"urn:uuid",parse:eUt,serialize:tUt,skipNormalize:!0},Ij={http:T9e,https:rUt,ws:_j,wss:nUt,urn:aUt,"urn:uuid":iUt};Object.setPrototypeOf(Ij,null);function Vre(r){return r&&(Ij[r]||Ij[r.toLowerCase()])||void 0}w9e.exports={wsIsSecure:Hre,SCHEMES:Ij,isValidSchemeName:K2t,getSchemeHandler:Vre}});var Wre=x((Uen,Fj)=>{"use strict";var{normalizeIPv6:sUt,removeDotSegments:wM,recomposeAuthority:oUt,normalizePercentEncoding:lUt,normalizePathEncoding:cUt,escapePreservingEscapes:dUt,reescapeHostDelimiters:uUt,isIPv4:pUt,nonSimpleDomain:mUt}=Ure(),{SCHEMES:fUt,getSchemeHandler:C9e}=S9e();function hUt(r,e){return typeof r=="string"?r=wUt(r,e):typeof r=="object"&&(r=Rj(Gy(r,e),e)),r}function gUt(r,e,t){let n=t?Object.assign({scheme:"null"},t):{scheme:"null"},{parsed:a,malformedAuthorityOrPort:i}=Nj(r,n),{parsed:s,malformedAuthorityOrPort:o}=Nj(e,n);if(i||o)throw new Error(a.error||s.error||"URI is malformed.");let l=E9e(a,s,n,!0);return n.skipEscape=!0,Gy(l,n)}function E9e(r,e,t,n){let a={};return n||(r=Rj(Gy(r,t),t),e=Rj(Gy(e,t),t)),t=t||{},!t.tolerant&&e.scheme?(a.scheme=e.scheme,a.userinfo=e.userinfo,a.host=e.host,a.port=e.port,a.path=wM(e.path||""),a.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(a.userinfo=e.userinfo,a.host=e.host,a.port=e.port,a.path=wM(e.path||""),a.query=e.query):(e.path?(e.path[0]==="/"?a.path=wM(e.path):((r.userinfo!==void 0||r.host!==void 0||r.port!==void 0)&&!r.path?a.path="/"+e.path:r.path?a.path=r.path.slice(0,r.path.lastIndexOf("/")+1)+e.path:a.path=e.path,a.path=wM(a.path)),a.query=e.query):(a.path=r.path,e.query!==void 0?a.query=e.query:a.query=r.query),a.userinfo=r.userinfo,a.host=r.host,a.port=r.port),a.scheme=r.scheme),a.fragment=e.fragment,a}function yUt(r,e,t){let n=x9e(r,t),a=x9e(e,t);return n!==void 0&&a!==void 0&&n.toLowerCase()===a.toLowerCase()}function Gy(r,e){let t={host:r.host,scheme:r.scheme,userinfo:r.userinfo,port:r.port,path:r.path,query:r.query,nid:r.nid,nss:r.nss,uuid:r.uuid,fragment:r.fragment,reference:r.reference,resourceName:r.resourceName,secure:r.secure,error:""},n=Object.assign({},e),a=[],i=C9e(n.scheme||t.scheme);i&&i.serialize&&i.serialize(t,n),t.path!==void 0&&(n.skipEscape?t.path=lUt(t.path):(t.path=dUt(t.path),t.scheme!==void 0&&(t.path=t.path.split("%3A").join(":")))),n.reference!=="suffix"&&t.scheme&&a.push(t.scheme,":");let s=oUt(t);if(s!==void 0&&(n.reference!=="suffix"&&a.push("//"),a.push(s),t.path&&t.path[0]!=="/"&&a.push("/")),t.path!==void 0){let o=t.path;!n.absolutePath&&(!i||!i.absolutePath)&&(o=wM(o)),s===void 0&&o[0]==="/"&&o[1]==="/"&&(o="/%2F"+o.slice(2)),a.push(o)}return t.query!==void 0&&a.push("?",t.query),t.fragment!==void 0&&a.push("#",t.fragment),a.join("")}var vUt=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,kUt=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,bUt=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function TUt(r,e){if(e[2]!==void 0&&r.path&&r.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof r.port=="number"&&(r.port<0||r.port>65535))return"URI port is malformed."}function Nj(r,e){let t=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},a=!1,i=!1;t.reference==="suffix"&&(t.scheme?r=t.scheme+":"+r:r="//"+r);let s=r.match(kUt);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",a=!0);let o=r.match(bUt);if(o!==null){let c=o[1],d=c.replace(/[\t\n\r]/g,"");d.length>=2&&(d.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",a=!0):c.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",a=!0))}let l=r.match(vUt);if(l){n.scheme=l[1],n.userinfo=l[3],n.host=l[4],n.port=parseInt(l[5],10),n.path=l[6]||"",n.query=l[7],n.fragment=l[8],isNaN(n.port)&&(n.port=l[5]);let c=TUt(n,l);if(c!==void 0&&(n.error=n.error||c,a=!0),n.host)if(pUt(n.host)===!1){let p=sUt(n.host);n.host=p.host.toLowerCase(),i=p.isIPV6}else i=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",t.reference&&t.reference!=="suffix"&&t.reference!==n.reference&&(n.error=n.error||"URI is not a "+t.reference+" reference.");let d=C9e(t.scheme||n.scheme);if(!t.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(t.domainHost||d&&d.domainHost)&&i===!1&&mUt(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(u){n.error=n.error||"Host's domain name can not be converted to ASCII: "+u}if((!d||d&&!d.skipNormalize)&&(r.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=uUt(unescape(n.host),i))),n.path&&(n.path=cUt(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch(u){n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,t)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:a}}function Rj(r,e){return Nj(r,e).parsed}function wUt(r,e){return D9e(r,e).normalized}function D9e(r,e){let{parsed:t,malformedAuthorityOrPort:n}=Nj(r,e);return{normalized:n?r:Gy(t,e),malformedAuthorityOrPort:n}}function x9e(r,e){if(typeof r=="string"){let{normalized:t,malformedAuthorityOrPort:n}=D9e(r,e);return n?void 0:t}if(typeof r=="object")return Gy(r,e)}var qre={SCHEMES:fUt,normalize:hUt,resolve:gUt,resolveComponent:E9e,equal:yUt,serialize:Gy,parse:Rj};Fj.exports=qre;Fj.exports.default=qre;Fj.exports.fastUri=qre});var M9e=x(Yre=>{"use strict";Object.defineProperty(Yre,"__esModule",{value:!0});var P9e=Wre();P9e.code='require("ajv/dist/runtime/uri").default';Yre.default=P9e});var L9e=x(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.CodeGen=Xa.Name=Xa.nil=Xa.stringify=Xa.str=Xa._=Xa.KeywordCxt=void 0;var SUt=bM();Object.defineProperty(Xa,"KeywordCxt",{enumerable:!0,get:function(){return SUt.KeywordCxt}});var fw=It();Object.defineProperty(Xa,"_",{enumerable:!0,get:function(){return fw._}});Object.defineProperty(Xa,"str",{enumerable:!0,get:function(){return fw.str}});Object.defineProperty(Xa,"stringify",{enumerable:!0,get:function(){return fw.stringify}});Object.defineProperty(Xa,"nil",{enumerable:!0,get:function(){return fw.nil}});Object.defineProperty(Xa,"Name",{enumerable:!0,get:function(){return fw.Name}});Object.defineProperty(Xa,"CodeGen",{enumerable:!0,get:function(){return fw.CodeGen}});var xUt=Pj(),R9e=TM(),CUt=Tre(),SM=Aj(),EUt=It(),xM=yM(),Oj=hM(),Kre=ar(),A9e=p9e(),DUt=M9e(),F9e=(r,e)=>new RegExp(r,e);F9e.code="new RegExp";var PUt=["removeAdditional","useDefaults","coerceTypes"],MUt=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),AUt={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},_Ut={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},_9e=200;function IUt(r){var e,t,n,a,i,s,o,l,c,d,u,p,m,f,h,g,v,b,k,w,S,C,E,D,P;let O=r.strict,z=(e=r.code)===null||e===void 0?void 0:e.optimize,R=z===!0||z===void 0?1:z||0,A=(n=(t=r.code)===null||t===void 0?void 0:t.regExp)!==null&&n!==void 0?n:F9e,F=(a=r.uriResolver)!==null&&a!==void 0?a:DUt.default;return{strictSchema:(s=(i=r.strictSchema)!==null&&i!==void 0?i:O)!==null&&s!==void 0?s:!0,strictNumbers:(l=(o=r.strictNumbers)!==null&&o!==void 0?o:O)!==null&&l!==void 0?l:!0,strictTypes:(d=(c=r.strictTypes)!==null&&c!==void 0?c:O)!==null&&d!==void 0?d:"log",strictTuples:(p=(u=r.strictTuples)!==null&&u!==void 0?u:O)!==null&&p!==void 0?p:"log",strictRequired:(f=(m=r.strictRequired)!==null&&m!==void 0?m:O)!==null&&f!==void 0?f:!1,code:r.code?{...r.code,optimize:R,regExp:A}:{optimize:R,regExp:A},loopRequired:(h=r.loopRequired)!==null&&h!==void 0?h:_9e,loopEnum:(g=r.loopEnum)!==null&&g!==void 0?g:_9e,meta:(v=r.meta)!==null&&v!==void 0?v:!0,messages:(b=r.messages)!==null&&b!==void 0?b:!0,inlineRefs:(k=r.inlineRefs)!==null&&k!==void 0?k:!0,schemaId:(w=r.schemaId)!==null&&w!==void 0?w:"$id",addUsedSchema:(S=r.addUsedSchema)!==null&&S!==void 0?S:!0,validateSchema:(C=r.validateSchema)!==null&&C!==void 0?C:!0,validateFormats:(E=r.validateFormats)!==null&&E!==void 0?E:!0,unicodeRegExp:(D=r.unicodeRegExp)!==null&&D!==void 0?D:!0,int32range:(P=r.int32range)!==null&&P!==void 0?P:!0,uriResolver:F}}var CM=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...IUt(e)};let{es5:t,lines:n}=this.opts.code;this.scope=new EUt.ValueScope({scope:{},prefixes:MUt,es5:t,lines:n}),this.logger=zUt(e.logger);let a=e.validateFormats;e.validateFormats=!1,this.RULES=(0,CUt.getRules)(),I9e.call(this,AUt,e,"NOT SUPPORTED"),I9e.call(this,_Ut,e,"DEPRECATED","warn"),this._metaOpts=OUt.call(this),e.formats&&RUt.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&FUt.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),NUt.call(this),e.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:t,schemaId:n}=this.opts,a=A9e;n==="id"&&(a={...A9e},a.id=a.$id,delete a.$id),t&&e&&this.addMetaSchema(a,a[n],!1)}defaultMeta(){let{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[t]||e:void 0}validate(e,t){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let a=n(t);return"$async"in n||(this.errors=n.errors),a}compile(e,t){let n=this._addSchema(e,t);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,t){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return a.call(this,e,t);async function a(d,u){await i.call(this,d.$schema);let p=this._addSchema(d,u);return p.validate||s.call(this,p)}async function i(d){d&&!this.getSchema(d)&&await a.call(this,{$ref:d},!0)}async function s(d){try{return this._compileSchemaEnv(d)}catch(u){if(!(u instanceof R9e.default))throw u;return o.call(this,u),await l.call(this,u.missingSchema),s.call(this,d)}}function o({missingSchema:d,missingRef:u}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${u} cannot be resolved`)}async function l(d){let u=await c.call(this,d);this.refs[d]||await i.call(this,u.$schema),this.refs[d]||this.addSchema(u,d,t)}async function c(d){let u=this._loading[d];if(u)return u;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(e,t,n,a=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,n,a);return this}let i;if(typeof e=="object"){let{schemaId:s}=this.opts;if(i=e[s],i!==void 0&&typeof i!="string")throw new Error(`schema ${s} must be string`)}return t=(0,xM.normalizeId)(t||i),this._checkUnique(t),this.schemas[t]=this._addSchema(e,n,t,a,!0),this}addMetaSchema(e,t,n=this.opts.validateSchema){return this.addSchema(e,t,!0,n),this}validateSchema(e,t){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let a=this.validate(n,e);if(!a&&t){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return a}getSchema(e){let t;for(;typeof(t=N9e.call(this,e))=="string";)e=t;if(t===void 0){let{schemaId:n}=this.opts,a=new SM.SchemaEnv({schema:{},schemaId:n});if(t=SM.resolveSchema.call(this,a,e),!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let t=N9e.call(this,e);return typeof t=="object"&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let t=e;this._cache.delete(t);let n=e[this.opts.schemaId];return n&&(n=(0,xM.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let t of e)this.addKeyword(t);return this}addKeyword(e,t){let n;if(typeof e=="string")n=e,typeof t=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=n);else if(typeof e=="object"&&t===void 0){if(t=e,n=t.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if($Ut.call(this,n,t),!t)return(0,Kre.eachItem)(n,i=>Gre.call(this,i)),this;UUt.call(this,t);let a={...t,type:(0,Oj.getJSONTypes)(t.type),schemaType:(0,Oj.getJSONTypes)(t.schemaType)};return(0,Kre.eachItem)(n,a.type.length===0?i=>Gre.call(this,i,a):i=>a.type.forEach(s=>Gre.call(this,i,a,s))),this}getKeyword(e){let t=this.RULES.all[e];return typeof t=="object"?t.definition:!!t}removeKeyword(e){let{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(let n of t.rules){let a=n.rules.findIndex(i=>i.keyword===e);a>=0&&n.rules.splice(a,1)}return this}addFormat(e,t){return typeof t=="string"&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(a=>`${n}${a.instancePath} ${a.message}`).reduce((a,i)=>a+t+i)}$dataMetaSchema(e,t){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let a of t){let i=a.split("/").slice(1),s=e;for(let o of i)s=s[o];for(let o in n){let l=n[o];if(typeof l!="object")continue;let{$data:c}=l.definition,d=s[o];c&&d&&(s[o]=O9e(d))}}return e}_removeAllSchemas(e,t){for(let n in e){let a=e[n];(!t||t.test(n))&&(typeof a=="string"?delete e[n]:a&&!a.meta&&(this._cache.delete(a.schema),delete e[n]))}}_addSchema(e,t,n,a=this.opts.validateSchema,i=this.opts.addUsedSchema){let s,{schemaId:o}=this.opts;if(typeof e=="object")s=e[o];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let l=this._cache.get(e);if(l!==void 0)return l;n=(0,xM.normalizeId)(s||n);let c=xM.getSchemaRefs.call(this,e,n);return l=new SM.SchemaEnv({schema:e,schemaId:o,meta:t,baseId:n,localRefs:c}),this._cache.set(l.schema,l),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=l),a&&this.validateSchema(e,!0),l}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):SM.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let t=this.opts;this.opts=this._metaOpts;try{SM.compileSchema.call(this,e)}finally{this.opts=t}}};CM.ValidationError=xUt.default;CM.MissingRefError=R9e.default;Xa.default=CM;function I9e(r,e,t,n="error"){for(let a in r){let i=a;i in e&&this.logger[n](`${t}: option ${a}. ${r[i]}`)}}function N9e(r){return r=(0,xM.normalizeId)(r),this.schemas[r]||this.refs[r]}function NUt(){let r=this.opts.schemas;if(r)if(Array.isArray(r))this.addSchema(r);else for(let e in r)this.addSchema(r[e],e)}function RUt(){for(let r in this.opts.formats){let e=this.opts.formats[r];e&&this.addFormat(r,e)}}function FUt(r){if(Array.isArray(r)){this.addVocabulary(r);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in r){let t=r[e];t.keyword||(t.keyword=e),this.addKeyword(t)}}function OUt(){let r={...this.opts};for(let e of PUt)delete r[e];return r}var LUt={log(){},warn(){},error(){}};function zUt(r){if(r===!1)return LUt;if(r===void 0)return console;if(r.log&&r.warn&&r.error)return r;throw new Error("logger must implement log, warn and error methods")}var jUt=/^[a-z_$][a-z0-9_$:-]*$/i;function $Ut(r,e){let{RULES:t}=this;if((0,Kre.eachItem)(r,n=>{if(t.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!jUt.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function Gre(r,e,t){var n;let a=e==null?void 0:e.post;if(t&&a)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,s=a?i.post:i.rules.find(({type:l})=>l===t);if(s||(s={type:t,rules:[]},i.rules.push(s)),i.keywords[r]=!0,!e)return;let o={keyword:r,definition:{...e,type:(0,Oj.getJSONTypes)(e.type),schemaType:(0,Oj.getJSONTypes)(e.schemaType)}};e.before?BUt.call(this,s,o,e.before):s.rules.push(o),i.all[r]=o,(n=e.implements)===null||n===void 0||n.forEach(l=>this.addKeyword(l))}function BUt(r,e,t){let n=r.rules.findIndex(a=>a.keyword===t);n>=0?r.rules.splice(n,0,e):(r.rules.push(e),this.logger.warn(`rule ${t} is not defined`))}function UUt(r){let{metaSchema:e}=r;e!==void 0&&(r.$data&&this.opts.$data&&(e=O9e(e)),r.validateSchema=this.compile(e,!0))}var HUt={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function O9e(r){return{anyOf:[r,HUt]}}});var z9e=x(Zre=>{"use strict";Object.defineProperty(Zre,"__esModule",{value:!0});var VUt={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Zre.default=VUt});var U9e=x(Ky=>{"use strict";Object.defineProperty(Ky,"__esModule",{value:!0});Ky.callRef=Ky.getValidate=void 0;var qUt=TM(),j9e=vl(),Ns=It(),hw=Ip(),$9e=Aj(),Lj=ar(),WUt={keyword:"$ref",schemaType:"string",code(r){let{gen:e,schema:t,it:n}=r,{baseId:a,schemaEnv:i,validateName:s,opts:o,self:l}=n,{root:c}=i;if((t==="#"||t==="#/")&&a===c.baseId)return u();let d=$9e.resolveRef.call(l,c,a,t);if(d===void 0)throw new qUt.default(n.opts.uriResolver,a,t);if(d instanceof $9e.SchemaEnv)return p(d);return m(d);function u(){if(i===c)return zj(r,s,i,i.$async);let f=e.scopeValue("root",{ref:c});return zj(r,(0,Ns._)`${f}.validate`,c,c.$async)}function p(f){let h=B9e(r,f);zj(r,h,f,f.$async)}function m(f){let h=e.scopeValue("schema",o.code.source===!0?{ref:f,code:(0,Ns.stringify)(f)}:{ref:f}),g=e.name("valid"),v=r.subschema({schema:f,dataTypes:[],schemaPath:Ns.nil,topSchemaRef:h,errSchemaPath:t},g);r.mergeEvaluated(v),r.ok(g)}}};function B9e(r,e){let{gen:t}=r;return e.validate?t.scopeValue("validate",{ref:e.validate}):(0,Ns._)`${t.scopeValue("wrapper",{ref:e})}.validate`}Ky.getValidate=B9e;function zj(r,e,t,n){let{gen:a,it:i}=r,{allErrors:s,schemaEnv:o,opts:l}=i,c=l.passContext?hw.default.this:Ns.nil;n?d():u();function d(){if(!o.$async)throw new Error("async schema referenced by sync schema");let f=a.let("valid");a.try(()=>{a.code((0,Ns._)`await ${(0,j9e.callValidateCode)(r,e,c)}`),m(e),s||a.assign(f,!0)},h=>{a.if((0,Ns._)`!(${h} instanceof ${i.ValidationError})`,()=>a.throw(h)),p(h),s||a.assign(f,!1)}),r.ok(f)}function u(){r.result((0,j9e.callValidateCode)(r,e,c),()=>m(e),()=>p(e))}function p(f){let h=(0,Ns._)`${f}.errors`;a.assign(hw.default.vErrors,(0,Ns._)`${hw.default.vErrors} === null ? ${h} : ${hw.default.vErrors}.concat(${h})`),a.assign(hw.default.errors,(0,Ns._)`${hw.default.vErrors}.length`)}function m(f){var h;if(!i.opts.unevaluated)return;let g=(h=t==null?void 0:t.validate)===null||h===void 0?void 0:h.evaluated;if(i.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(i.props=Lj.mergeEvaluated.props(a,g.props,i.props));else{let v=a.var("props",(0,Ns._)`${f}.evaluated.props`);i.props=Lj.mergeEvaluated.props(a,v,i.props,Ns.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=Lj.mergeEvaluated.items(a,g.items,i.items));else{let v=a.var("items",(0,Ns._)`${f}.evaluated.items`);i.items=Lj.mergeEvaluated.items(a,v,i.items,Ns.Name)}}}Ky.callRef=zj;Ky.default=WUt});var H9e=x(Qre=>{"use strict";Object.defineProperty(Qre,"__esModule",{value:!0});var YUt=z9e(),GUt=U9e(),KUt=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",YUt.default,GUt.default];Qre.default=KUt});var V9e=x(Jre=>{"use strict";Object.defineProperty(Jre,"__esModule",{value:!0});var jj=It(),Kf=jj.operators,$j={maximum:{okStr:"<=",ok:Kf.LTE,fail:Kf.GT},minimum:{okStr:">=",ok:Kf.GTE,fail:Kf.LT},exclusiveMaximum:{okStr:"<",ok:Kf.LT,fail:Kf.GTE},exclusiveMinimum:{okStr:">",ok:Kf.GT,fail:Kf.LTE}},ZUt={message:({keyword:r,schemaCode:e})=>(0,jj.str)`must be ${$j[r].okStr} ${e}`,params:({keyword:r,schemaCode:e})=>(0,jj._)`{comparison: ${$j[r].okStr}, limit: ${e}}`},QUt={keyword:Object.keys($j),type:"number",schemaType:"number",$data:!0,error:ZUt,code(r){let{keyword:e,data:t,schemaCode:n}=r;r.fail$data((0,jj._)`${t} ${$j[e].fail} ${n} || isNaN(${t})`)}};Jre.default=QUt});var q9e=x(Xre=>{"use strict";Object.defineProperty(Xre,"__esModule",{value:!0});var EM=It(),JUt={message:({schemaCode:r})=>(0,EM.str)`must be multiple of ${r}`,params:({schemaCode:r})=>(0,EM._)`{multipleOf: ${r}}`},XUt={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:JUt,code(r){let{gen:e,data:t,schemaCode:n,it:a}=r,i=a.opts.multipleOfPrecision,s=e.let("res"),o=i?(0,EM._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,EM._)`${s} !== parseInt(${s})`;r.fail$data((0,EM._)`(${n} === 0 || (${s} = ${t}/${n}, ${o}))`)}};Xre.default=XUt});var Y9e=x(ene=>{"use strict";Object.defineProperty(ene,"__esModule",{value:!0});function W9e(r){let e=r.length,t=0,n=0,a;for(;n<e;)t++,a=r.charCodeAt(n++),a>=55296&&a<=56319&&n<e&&(a=r.charCodeAt(n),(a&64512)===56320&&n++);return t}ene.default=W9e;W9e.code='require("ajv/dist/runtime/ucs2length").default'});var G9e=x(tne=>{"use strict";Object.defineProperty(tne,"__esModule",{value:!0});var Zy=It(),eHt=ar(),tHt=Y9e(),rHt={message({keyword:r,schemaCode:e}){let t=r==="maxLength"?"more":"fewer";return(0,Zy.str)`must NOT have ${t} than ${e} characters`},params:({schemaCode:r})=>(0,Zy._)`{limit: ${r}}`},nHt={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:rHt,code(r){let{keyword:e,data:t,schemaCode:n,it:a}=r,i=e==="maxLength"?Zy.operators.GT:Zy.operators.LT,s=a.opts.unicode===!1?(0,Zy._)`${t}.length`:(0,Zy._)`${(0,eHt.useFunc)(r.gen,tHt.default)}(${t})`;r.fail$data((0,Zy._)`${s} ${i} ${n}`)}};tne.default=nHt});var K9e=x(rne=>{"use strict";Object.defineProperty(rne,"__esModule",{value:!0});var aHt=vl(),iHt=ar(),gw=It(),sHt={message:({schemaCode:r})=>(0,gw.str)`must match pattern "${r}"`,params:({schemaCode:r})=>(0,gw._)`{pattern: ${r}}`},oHt={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:sHt,code(r){let{gen:e,data:t,$data:n,schema:a,schemaCode:i,it:s}=r,o=s.opts.unicodeRegExp?"u":"";if(n){let{regExp:l}=s.opts.code,c=l.code==="new RegExp"?(0,gw._)`new RegExp`:(0,iHt.useFunc)(e,l),d=e.let("valid");e.try(()=>e.assign(d,(0,gw._)`${c}(${i}, ${o}).test(${t})`),()=>e.assign(d,!1)),r.fail$data((0,gw._)`!${d}`)}else{let l=(0,aHt.usePattern)(r,a);r.fail$data((0,gw._)`!${l}.test(${t})`)}}};rne.default=oHt});var Z9e=x(nne=>{"use strict";Object.defineProperty(nne,"__esModule",{value:!0});var DM=It(),lHt={message({keyword:r,schemaCode:e}){let t=r==="maxProperties"?"more":"fewer";return(0,DM.str)`must NOT have ${t} than ${e} properties`},params:({schemaCode:r})=>(0,DM._)`{limit: ${r}}`},cHt={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:lHt,code(r){let{keyword:e,data:t,schemaCode:n}=r,a=e==="maxProperties"?DM.operators.GT:DM.operators.LT;r.fail$data((0,DM._)`Object.keys(${t}).length ${a} ${n}`)}};nne.default=cHt});var Q9e=x(ane=>{"use strict";Object.defineProperty(ane,"__esModule",{value:!0});var PM=vl(),MM=It(),dHt=ar(),uHt={message:({params:{missingProperty:r}})=>(0,MM.str)`must have required property '${r}'`,params:({params:{missingProperty:r}})=>(0,MM._)`{missingProperty: ${r}}`},pHt={keyword:"required",type:"object",schemaType:"array",$data:!0,error:uHt,code(r){let{gen:e,schema:t,schemaCode:n,data:a,$data:i,it:s}=r,{opts:o}=s;if(!i&&t.length===0)return;let l=t.length>=o.loopRequired;if(s.allErrors?c():d(),o.strictRequired){let m=r.parentSchema.properties,{definedProperties:f}=r.it;for(let h of t)if((m==null?void 0:m[h])===void 0&&!f.has(h)){let g=s.schemaEnv.baseId+s.errSchemaPath,v=`required property "${h}" is not defined at "${g}" (strictRequired)`;(0,dHt.checkStrictMode)(s,v,s.opts.strictRequired)}}function c(){if(l||i)r.block$data(MM.nil,u);else for(let m of t)(0,PM.checkReportMissingProp)(r,m)}function d(){let m=e.let("missing");if(l||i){let f=e.let("valid",!0);r.block$data(f,()=>p(m,f)),r.ok(f)}else e.if((0,PM.checkMissingProp)(r,t,m)),(0,PM.reportMissingProp)(r,m),e.else()}function u(){e.forOf("prop",n,m=>{r.setParams({missingProperty:m}),e.if((0,PM.noPropertyInData)(e,a,m,o.ownProperties),()=>r.error())})}function p(m,f){r.setParams({missingProperty:m}),e.forOf(m,n,()=>{e.assign(f,(0,PM.propertyInData)(e,a,m,o.ownProperties)),e.if((0,MM.not)(f),()=>{r.error(),e.break()})},MM.nil)}}};ane.default=pHt});var J9e=x(ine=>{"use strict";Object.defineProperty(ine,"__esModule",{value:!0});var AM=It(),mHt={message({keyword:r,schemaCode:e}){let t=r==="maxItems"?"more":"fewer";return(0,AM.str)`must NOT have ${t} than ${e} items`},params:({schemaCode:r})=>(0,AM._)`{limit: ${r}}`},fHt={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:mHt,code(r){let{keyword:e,data:t,schemaCode:n}=r,a=e==="maxItems"?AM.operators.GT:AM.operators.LT;r.fail$data((0,AM._)`${t}.length ${a} ${n}`)}};ine.default=fHt});var Bj=x(sne=>{"use strict";Object.defineProperty(sne,"__esModule",{value:!0});var X9e=gM();X9e.code='require("ajv/dist/runtime/equal").default';sne.default=X9e});var eYe=x(lne=>{"use strict";Object.defineProperty(lne,"__esModule",{value:!0});var one=hM(),ei=It(),hHt=ar(),gHt=Bj(),yHt={message:({params:{i:r,j:e}})=>(0,ei.str)`must NOT have duplicate items (items ## ${e} and ${r} are identical)`,params:({params:{i:r,j:e}})=>(0,ei._)`{i: ${r}, j: ${e}}`},vHt={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:yHt,code(r){let{gen:e,data:t,$data:n,schema:a,parentSchema:i,schemaCode:s,it:o}=r;if(!n&&!a)return;let l=e.let("valid"),c=i.items?(0,one.getSchemaTypes)(i.items):[];r.block$data(l,d,(0,ei._)`${s} === false`),r.ok(l);function d(){let f=e.let("i",(0,ei._)`${t}.length`),h=e.let("j");r.setParams({i:f,j:h}),e.assign(l,!0),e.if((0,ei._)`${f} > 1`,()=>(u()?p:m)(f,h))}function u(){return c.length>0&&!c.some(f=>f==="object"||f==="array")}function p(f,h){let g=e.name("item"),v=(0,one.checkDataTypes)(c,g,o.opts.strictNumbers,one.DataType.Wrong),b=e.const("indices",(0,ei._)`{}`);e.for((0,ei._)`;${f}--;`,()=>{e.let(g,(0,ei._)`${t}[${f}]`),e.if(v,(0,ei._)`continue`),c.length>1&&e.if((0,ei._)`typeof ${g} == "string"`,(0,ei._)`${g} += "_"`),e.if((0,ei._)`typeof ${b}[${g}] == "number"`,()=>{e.assign(h,(0,ei._)`${b}[${g}]`),r.error(),e.assign(l,!1).break()}).code((0,ei._)`${b}[${g}] = ${f}`)})}function m(f,h){let g=(0,hHt.useFunc)(e,gHt.default),v=e.name("outer");e.label(v).for((0,ei._)`;${f}--;`,()=>e.for((0,ei._)`${h} = ${f}; ${h}--;`,()=>e.if((0,ei._)`${g}(${t}[${f}], ${t}[${h}])`,()=>{r.error(),e.assign(l,!1).break(v)})))}}};lne.default=vHt});var tYe=x(dne=>{"use strict";Object.defineProperty(dne,"__esModule",{value:!0});var cne=It(),kHt=ar(),bHt=Bj(),THt={message:"must be equal to constant",params:({schemaCode:r})=>(0,cne._)`{allowedValue: ${r}}`},wHt={keyword:"const",$data:!0,error:THt,code(r){let{gen:e,data:t,$data:n,schemaCode:a,schema:i}=r;n||i&&typeof i=="object"?r.fail$data((0,cne._)`!${(0,kHt.useFunc)(e,bHt.default)}(${t}, ${a})`):r.fail((0,cne._)`${i} !== ${t}`)}};dne.default=wHt});var rYe=x(une=>{"use strict";Object.defineProperty(une,"__esModule",{value:!0});var _M=It(),SHt=ar(),xHt=Bj(),CHt={message:"must be equal to one of the allowed values",params:({schemaCode:r})=>(0,_M._)`{allowedValues: ${r}}`},EHt={keyword:"enum",schemaType:"array",$data:!0,error:CHt,code(r){let{gen:e,data:t,$data:n,schema:a,schemaCode:i,it:s}=r;if(!n&&a.length===0)throw new Error("enum must have non-empty array");let o=a.length>=s.opts.loopEnum,l,c=()=>l!=null?l:l=(0,SHt.useFunc)(e,xHt.default),d;if(o||n)d=e.let("valid"),r.block$data(d,u);else{if(!Array.isArray(a))throw new Error("ajv implementation error");let m=e.const("vSchema",i);d=(0,_M.or)(...a.map((f,h)=>p(m,h)))}r.pass(d);function u(){e.assign(d,!1),e.forOf("v",i,m=>e.if((0,_M._)`${c()}(${t}, ${m})`,()=>e.assign(d,!0).break()))}function p(m,f){let h=a[f];return typeof h=="object"&&h!==null?(0,_M._)`${c()}(${t}, ${m}[${f}])`:(0,_M._)`${t} === ${h}`}}};une.default=EHt});var nYe=x(pne=>{"use strict";Object.defineProperty(pne,"__esModule",{value:!0});var DHt=V9e(),PHt=q9e(),MHt=G9e(),AHt=K9e(),_Ht=Z9e(),IHt=Q9e(),NHt=J9e(),RHt=eYe(),FHt=tYe(),OHt=rYe(),LHt=[DHt.default,PHt.default,MHt.default,AHt.default,_Ht.default,IHt.default,NHt.default,RHt.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},FHt.default,OHt.default];pne.default=LHt});var fne=x(IM=>{"use strict";Object.defineProperty(IM,"__esModule",{value:!0});IM.validateAdditionalItems=void 0;var Qy=It(),mne=ar(),zHt={message:({params:{len:r}})=>(0,Qy.str)`must NOT have more than ${r} items`,params:({params:{len:r}})=>(0,Qy._)`{limit: ${r}}`},jHt={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:zHt,code(r){let{parentSchema:e,it:t}=r,{items:n}=e;if(!Array.isArray(n)){(0,mne.checkStrictMode)(t,'"additionalItems" is ignored when "items" is not an array of schemas');return}aYe(r,n)}};function aYe(r,e){let{gen:t,schema:n,data:a,keyword:i,it:s}=r;s.items=!0;let o=t.const("len",(0,Qy._)`${a}.length`);if(n===!1)r.setParams({len:e.length}),r.pass((0,Qy._)`${o} <= ${e.length}`);else if(typeof n=="object"&&!(0,mne.alwaysValidSchema)(s,n)){let c=t.var("valid",(0,Qy._)`${o} <= ${e.length}`);t.if((0,Qy.not)(c),()=>l(c)),r.ok(c)}function l(c){t.forRange("i",e.length,o,d=>{r.subschema({keyword:i,dataProp:d,dataPropType:mne.Type.Num},c),s.allErrors||t.if((0,Qy.not)(c),()=>t.break())})}}IM.validateAdditionalItems=aYe;IM.default=jHt});var hne=x(NM=>{"use strict";Object.defineProperty(NM,"__esModule",{value:!0});NM.validateTuple=void 0;var iYe=It(),Uj=ar(),$Ht=vl(),BHt={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(r){let{schema:e,it:t}=r;if(Array.isArray(e))return sYe(r,"additionalItems",e);t.items=!0,!(0,Uj.alwaysValidSchema)(t,e)&&r.ok((0,$Ht.validateArray)(r))}};function sYe(r,e,t=r.schema){let{gen:n,parentSchema:a,data:i,keyword:s,it:o}=r;d(a),o.opts.unevaluated&&t.length&&o.items!==!0&&(o.items=Uj.mergeEvaluated.items(n,t.length,o.items));let l=n.name("valid"),c=n.const("len",(0,iYe._)`${i}.length`);t.forEach((u,p)=>{(0,Uj.alwaysValidSchema)(o,u)||(n.if((0,iYe._)`${c} > ${p}`,()=>r.subschema({keyword:s,schemaProp:p,dataProp:p},l)),r.ok(l))});function d(u){let{opts:p,errSchemaPath:m}=o,f=t.length,h=f===u.minItems&&(f===u.maxItems||u[e]===!1);if(p.strictTuples&&!h){let g=`"${s}" is ${f}-tuple, but minItems or maxItems/${e} are not specified or different at path "${m}"`;(0,Uj.checkStrictMode)(o,g,p.strictTuples)}}}NM.validateTuple=sYe;NM.default=BHt});var oYe=x(gne=>{"use strict";Object.defineProperty(gne,"__esModule",{value:!0});var UHt=hne(),HHt={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,UHt.validateTuple)(r,"items")};gne.default=HHt});var cYe=x(yne=>{"use strict";Object.defineProperty(yne,"__esModule",{value:!0});var lYe=It(),VHt=ar(),qHt=vl(),WHt=fne(),YHt={message:({params:{len:r}})=>(0,lYe.str)`must NOT have more than ${r} items`,params:({params:{len:r}})=>(0,lYe._)`{limit: ${r}}`},GHt={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:YHt,code(r){let{schema:e,parentSchema:t,it:n}=r,{prefixItems:a}=t;n.items=!0,!(0,VHt.alwaysValidSchema)(n,e)&&(a?(0,WHt.validateAdditionalItems)(r,a):r.ok((0,qHt.validateArray)(r)))}};yne.default=GHt});var dYe=x(vne=>{"use strict";Object.defineProperty(vne,"__esModule",{value:!0});var bl=It(),Hj=ar(),KHt={message:({params:{min:r,max:e}})=>e===void 0?(0,bl.str)`must contain at least ${r} valid item(s)`:(0,bl.str)`must contain at least ${r} and no more than ${e} valid item(s)`,params:({params:{min:r,max:e}})=>e===void 0?(0,bl._)`{minContains: ${r}}`:(0,bl._)`{minContains: ${r}, maxContains: ${e}}`},ZHt={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:KHt,code(r){let{gen:e,schema:t,parentSchema:n,data:a,it:i}=r,s,o,{minContains:l,maxContains:c}=n;i.opts.next?(s=l===void 0?1:l,o=c):s=1;let d=e.const("len",(0,bl._)`${a}.length`);if(r.setParams({min:s,max:o}),o===void 0&&s===0){(0,Hj.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&s>o){(0,Hj.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),r.fail();return}if((0,Hj.alwaysValidSchema)(i,t)){let h=(0,bl._)`${d} >= ${s}`;o!==void 0&&(h=(0,bl._)`${h} && ${d} <= ${o}`),r.pass(h);return}i.items=!0;let u=e.name("valid");o===void 0&&s===1?m(u,()=>e.if(u,()=>e.break())):s===0?(e.let(u,!0),o!==void 0&&e.if((0,bl._)`${a}.length > 0`,p)):(e.let(u,!1),p()),r.result(u,()=>r.reset());function p(){let h=e.name("_valid"),g=e.let("count",0);m(h,()=>e.if(h,()=>f(g)))}function m(h,g){e.forRange("i",0,d,v=>{r.subschema({keyword:"contains",dataProp:v,dataPropType:Hj.Type.Num,compositeRule:!0},h),g()})}function f(h){e.code((0,bl._)`${h}++`),o===void 0?e.if((0,bl._)`${h} >= ${s}`,()=>e.assign(u,!0).break()):(e.if((0,bl._)`${h} > ${o}`,()=>e.assign(u,!1).break()),s===1?e.assign(u,!0):e.if((0,bl._)`${h} >= ${s}`,()=>e.assign(u,!0)))}}};vne.default=ZHt});var mYe=x(Yd=>{"use strict";Object.defineProperty(Yd,"__esModule",{value:!0});Yd.validateSchemaDeps=Yd.validatePropertyDeps=Yd.error=void 0;var kne=It(),QHt=ar(),RM=vl();Yd.error={message:({params:{property:r,depsCount:e,deps:t}})=>{let n=e===1?"property":"properties";return(0,kne.str)`must have ${n} ${t} when property ${r} is present`},params:({params:{property:r,depsCount:e,deps:t,missingProperty:n}})=>(0,kne._)`{property: ${r},
|
||
missingProperty: ${n},
|
||
depsCount: ${e},
|
||
deps: ${t}}`};var JHt={keyword:"dependencies",type:"object",schemaType:"object",error:Yd.error,code(r){let[e,t]=XHt(r);uYe(r,e),pYe(r,t)}};function XHt({schema:r}){let e={},t={};for(let n in r){if(n==="__proto__")continue;let a=Array.isArray(r[n])?e:t;a[n]=r[n]}return[e,t]}function uYe(r,e=r.schema){let{gen:t,data:n,it:a}=r;if(Object.keys(e).length===0)return;let i=t.let("missing");for(let s in e){let o=e[s];if(o.length===0)continue;let l=(0,RM.propertyInData)(t,n,s,a.opts.ownProperties);r.setParams({property:s,depsCount:o.length,deps:o.join(", ")}),a.allErrors?t.if(l,()=>{for(let c of o)(0,RM.checkReportMissingProp)(r,c)}):(t.if((0,kne._)`${l} && (${(0,RM.checkMissingProp)(r,o,i)})`),(0,RM.reportMissingProp)(r,i),t.else())}}Yd.validatePropertyDeps=uYe;function pYe(r,e=r.schema){let{gen:t,data:n,keyword:a,it:i}=r,s=t.name("valid");for(let o in e)(0,QHt.alwaysValidSchema)(i,e[o])||(t.if((0,RM.propertyInData)(t,n,o,i.opts.ownProperties),()=>{let l=r.subschema({keyword:a,schemaProp:o},s);r.mergeValidEvaluated(l,s)},()=>t.var(s,!0)),r.ok(s))}Yd.validateSchemaDeps=pYe;Yd.default=JHt});var hYe=x(bne=>{"use strict";Object.defineProperty(bne,"__esModule",{value:!0});var fYe=It(),eVt=ar(),tVt={message:"property name must be valid",params:({params:r})=>(0,fYe._)`{propertyName: ${r.propertyName}}`},rVt={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:tVt,code(r){let{gen:e,schema:t,data:n,it:a}=r;if((0,eVt.alwaysValidSchema)(a,t))return;let i=e.name("valid");e.forIn("key",n,s=>{r.setParams({propertyName:s}),r.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:!0},i),e.if((0,fYe.not)(i),()=>{r.error(!0),a.allErrors||e.break()})}),r.ok(i)}};bne.default=rVt});var wne=x(Tne=>{"use strict";Object.defineProperty(Tne,"__esModule",{value:!0});var Vj=vl(),fc=It(),nVt=Ip(),qj=ar(),aVt={message:"must NOT have additional properties",params:({params:r})=>(0,fc._)`{additionalProperty: ${r.additionalProperty}}`},iVt={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:aVt,code(r){let{gen:e,schema:t,parentSchema:n,data:a,errsCount:i,it:s}=r;if(!i)throw new Error("ajv implementation error");let{allErrors:o,opts:l}=s;if(s.props=!0,l.removeAdditional!=="all"&&(0,qj.alwaysValidSchema)(s,t))return;let c=(0,Vj.allSchemaProperties)(n.properties),d=(0,Vj.allSchemaProperties)(n.patternProperties);u(),r.ok((0,fc._)`${i} === ${nVt.default.errors}`);function u(){e.forIn("key",a,g=>{!c.length&&!d.length?f(g):e.if(p(g),()=>f(g))})}function p(g){let v;if(c.length>8){let b=(0,qj.schemaRefOrVal)(s,n.properties,"properties");v=(0,Vj.isOwnProperty)(e,b,g)}else c.length?v=(0,fc.or)(...c.map(b=>(0,fc._)`${g} === ${b}`)):v=fc.nil;return d.length&&(v=(0,fc.or)(v,...d.map(b=>(0,fc._)`${(0,Vj.usePattern)(r,b)}.test(${g})`))),(0,fc.not)(v)}function m(g){e.code((0,fc._)`delete ${a}[${g}]`)}function f(g){if(l.removeAdditional==="all"||l.removeAdditional&&t===!1){m(g);return}if(t===!1){r.setParams({additionalProperty:g}),r.error(),o||e.break();return}if(typeof t=="object"&&!(0,qj.alwaysValidSchema)(s,t)){let v=e.name("valid");l.removeAdditional==="failing"?(h(g,v,!1),e.if((0,fc.not)(v),()=>{r.reset(),m(g)})):(h(g,v),o||e.if((0,fc.not)(v),()=>e.break()))}}function h(g,v,b){let k={keyword:"additionalProperties",dataProp:g,dataPropType:qj.Type.Str};b===!1&&Object.assign(k,{compositeRule:!0,createErrors:!1,allErrors:!1}),r.subschema(k,v)}}};Tne.default=iVt});var vYe=x(xne=>{"use strict";Object.defineProperty(xne,"__esModule",{value:!0});var sVt=bM(),gYe=vl(),Sne=ar(),yYe=wne(),oVt={keyword:"properties",type:"object",schemaType:"object",code(r){let{gen:e,schema:t,parentSchema:n,data:a,it:i}=r;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&yYe.default.code(new sVt.KeywordCxt(i,yYe.default,"additionalProperties"));let s=(0,gYe.allSchemaProperties)(t);for(let u of s)i.definedProperties.add(u);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Sne.mergeEvaluated.props(e,(0,Sne.toHash)(s),i.props));let o=s.filter(u=>!(0,Sne.alwaysValidSchema)(i,t[u]));if(o.length===0)return;let l=e.name("valid");for(let u of o)c(u)?d(u):(e.if((0,gYe.propertyInData)(e,a,u,i.opts.ownProperties)),d(u),i.allErrors||e.else().var(l,!0),e.endIf()),r.it.definedProperties.add(u),r.ok(l);function c(u){return i.opts.useDefaults&&!i.compositeRule&&t[u].default!==void 0}function d(u){r.subschema({keyword:"properties",schemaProp:u,dataProp:u},l)}}};xne.default=oVt});var wYe=x(Cne=>{"use strict";Object.defineProperty(Cne,"__esModule",{value:!0});var kYe=vl(),Wj=It(),bYe=ar(),TYe=ar(),lVt={keyword:"patternProperties",type:"object",schemaType:"object",code(r){let{gen:e,schema:t,data:n,parentSchema:a,it:i}=r,{opts:s}=i,o=(0,kYe.allSchemaProperties)(t),l=o.filter(h=>(0,bYe.alwaysValidSchema)(i,t[h]));if(o.length===0||l.length===o.length&&(!i.opts.unevaluated||i.props===!0))return;let c=s.strictSchema&&!s.allowMatchingProperties&&a.properties,d=e.name("valid");i.props!==!0&&!(i.props instanceof Wj.Name)&&(i.props=(0,TYe.evaluatedPropsToName)(e,i.props));let{props:u}=i;p();function p(){for(let h of o)c&&m(h),i.allErrors?f(h):(e.var(d,!0),f(h),e.if(d))}function m(h){for(let g in c)new RegExp(h).test(g)&&(0,bYe.checkStrictMode)(i,`property ${g} matches pattern ${h} (use allowMatchingProperties)`)}function f(h){e.forIn("key",n,g=>{e.if((0,Wj._)`${(0,kYe.usePattern)(r,h)}.test(${g})`,()=>{let v=l.includes(h);v||r.subschema({keyword:"patternProperties",schemaProp:h,dataProp:g,dataPropType:TYe.Type.Str},d),i.opts.unevaluated&&u!==!0?e.assign((0,Wj._)`${u}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Wj.not)(d),()=>e.break())})})}}};Cne.default=lVt});var SYe=x(Ene=>{"use strict";Object.defineProperty(Ene,"__esModule",{value:!0});var cVt=ar(),dVt={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(r){let{gen:e,schema:t,it:n}=r;if((0,cVt.alwaysValidSchema)(n,t)){r.fail();return}let a=e.name("valid");r.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),r.failResult(a,()=>r.reset(),()=>r.error())},error:{message:"must NOT be valid"}};Ene.default=dVt});var xYe=x(Dne=>{"use strict";Object.defineProperty(Dne,"__esModule",{value:!0});var uVt=vl(),pVt={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:uVt.validateUnion,error:{message:"must match a schema in anyOf"}};Dne.default=pVt});var CYe=x(Pne=>{"use strict";Object.defineProperty(Pne,"__esModule",{value:!0});var Yj=It(),mVt=ar(),fVt={message:"must match exactly one schema in oneOf",params:({params:r})=>(0,Yj._)`{passingSchemas: ${r.passing}}`},hVt={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:fVt,code(r){let{gen:e,schema:t,parentSchema:n,it:a}=r;if(!Array.isArray(t))throw new Error("ajv implementation error");if(a.opts.discriminator&&n.discriminator)return;let i=t,s=e.let("valid",!1),o=e.let("passing",null),l=e.name("_valid");r.setParams({passing:o}),e.block(c),r.result(s,()=>r.reset(),()=>r.error(!0));function c(){i.forEach((d,u)=>{let p;(0,mVt.alwaysValidSchema)(a,d)?e.var(l,!0):p=r.subschema({keyword:"oneOf",schemaProp:u,compositeRule:!0},l),u>0&&e.if((0,Yj._)`${l} && ${s}`).assign(s,!1).assign(o,(0,Yj._)`[${o}, ${u}]`).else(),e.if(l,()=>{e.assign(s,!0),e.assign(o,u),p&&r.mergeEvaluated(p,Yj.Name)})})}}};Pne.default=hVt});var EYe=x(Mne=>{"use strict";Object.defineProperty(Mne,"__esModule",{value:!0});var gVt=ar(),yVt={keyword:"allOf",schemaType:"array",code(r){let{gen:e,schema:t,it:n}=r;if(!Array.isArray(t))throw new Error("ajv implementation error");let a=e.name("valid");t.forEach((i,s)=>{if((0,gVt.alwaysValidSchema)(n,i))return;let o=r.subschema({keyword:"allOf",schemaProp:s},a);r.ok(a),r.mergeEvaluated(o)})}};Mne.default=yVt});var MYe=x(Ane=>{"use strict";Object.defineProperty(Ane,"__esModule",{value:!0});var Gj=It(),PYe=ar(),vVt={message:({params:r})=>(0,Gj.str)`must match "${r.ifClause}" schema`,params:({params:r})=>(0,Gj._)`{failingKeyword: ${r.ifClause}}`},kVt={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:vVt,code(r){let{gen:e,parentSchema:t,it:n}=r;t.then===void 0&&t.else===void 0&&(0,PYe.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let a=DYe(n,"then"),i=DYe(n,"else");if(!a&&!i)return;let s=e.let("valid",!0),o=e.name("_valid");if(l(),r.reset(),a&&i){let d=e.let("ifClause");r.setParams({ifClause:d}),e.if(o,c("then",d),c("else",d))}else a?e.if(o,c("then")):e.if((0,Gj.not)(o),c("else"));r.pass(s,()=>r.error(!0));function l(){let d=r.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},o);r.mergeEvaluated(d)}function c(d,u){return()=>{let p=r.subschema({keyword:d},o);e.assign(s,o),r.mergeValidEvaluated(p,s),u?e.assign(u,(0,Gj._)`${d}`):r.setParams({ifClause:d})}}}};function DYe(r,e){let t=r.schema[e];return t!==void 0&&!(0,PYe.alwaysValidSchema)(r,t)}Ane.default=kVt});var AYe=x(_ne=>{"use strict";Object.defineProperty(_ne,"__esModule",{value:!0});var bVt=ar(),TVt={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:r,parentSchema:e,it:t}){e.if===void 0&&(0,bVt.checkStrictMode)(t,`"${r}" without "if" is ignored`)}};_ne.default=TVt});var _Ye=x(Ine=>{"use strict";Object.defineProperty(Ine,"__esModule",{value:!0});var wVt=fne(),SVt=oYe(),xVt=hne(),CVt=cYe(),EVt=dYe(),DVt=mYe(),PVt=hYe(),MVt=wne(),AVt=vYe(),_Vt=wYe(),IVt=SYe(),NVt=xYe(),RVt=CYe(),FVt=EYe(),OVt=MYe(),LVt=AYe();function zVt(r=!1){let e=[IVt.default,NVt.default,RVt.default,FVt.default,OVt.default,LVt.default,PVt.default,MVt.default,DVt.default,AVt.default,_Vt.default];return r?e.push(SVt.default,CVt.default):e.push(wVt.default,xVt.default),e.push(EVt.default),e}Ine.default=zVt});var IYe=x(Nne=>{"use strict";Object.defineProperty(Nne,"__esModule",{value:!0});var Qn=It(),jVt={message:({schemaCode:r})=>(0,Qn.str)`must match format "${r}"`,params:({schemaCode:r})=>(0,Qn._)`{format: ${r}}`},$Vt={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:jVt,code(r,e){let{gen:t,data:n,$data:a,schema:i,schemaCode:s,it:o}=r,{opts:l,errSchemaPath:c,schemaEnv:d,self:u}=o;if(!l.validateFormats)return;a?p():m();function p(){let f=t.scopeValue("formats",{ref:u.formats,code:l.code.formats}),h=t.const("fDef",(0,Qn._)`${f}[${s}]`),g=t.let("fType"),v=t.let("format");t.if((0,Qn._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>t.assign(g,(0,Qn._)`${h}.type || "string"`).assign(v,(0,Qn._)`${h}.validate`),()=>t.assign(g,(0,Qn._)`"string"`).assign(v,h)),r.fail$data((0,Qn.or)(b(),k()));function b(){return l.strictSchema===!1?Qn.nil:(0,Qn._)`${s} && !${v}`}function k(){let w=d.$async?(0,Qn._)`(${h}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,Qn._)`${v}(${n})`,S=(0,Qn._)`(typeof ${v} == "function" ? ${w} : ${v}.test(${n}))`;return(0,Qn._)`${v} && ${v} !== true && ${g} === ${e} && !${S}`}}function m(){let f=u.formats[i];if(!f){b();return}if(f===!0)return;let[h,g,v]=k(f);h===e&&r.pass(w());function b(){if(l.strictSchema===!1){u.logger.warn(S());return}throw new Error(S());function S(){return`unknown format "${i}" ignored in schema at path "${c}"`}}function k(S){let C=S instanceof RegExp?(0,Qn.regexpCode)(S):l.code.formats?(0,Qn._)`${l.code.formats}${(0,Qn.getProperty)(i)}`:void 0,E=t.scopeValue("formats",{key:i,ref:S,code:C});return typeof S=="object"&&!(S instanceof RegExp)?[S.type||"string",S.validate,(0,Qn._)`${E}.validate`]:["string",S,E]}function w(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!d.$async)throw new Error("async format in sync schema");return(0,Qn._)`await ${v}(${n})`}return typeof g=="function"?(0,Qn._)`${v}(${n})`:(0,Qn._)`${v}.test(${n})`}}}};Nne.default=$Vt});var NYe=x(Rne=>{"use strict";Object.defineProperty(Rne,"__esModule",{value:!0});var BVt=IYe(),UVt=[BVt.default];Rne.default=UVt});var RYe=x(yw=>{"use strict";Object.defineProperty(yw,"__esModule",{value:!0});yw.contentVocabulary=yw.metadataVocabulary=void 0;yw.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];yw.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var OYe=x(Fne=>{"use strict";Object.defineProperty(Fne,"__esModule",{value:!0});var HVt=H9e(),VVt=nYe(),qVt=_Ye(),WVt=NYe(),FYe=RYe(),YVt=[HVt.default,VVt.default,(0,qVt.default)(),WVt.default,FYe.metadataVocabulary,FYe.contentVocabulary];Fne.default=YVt});var zYe=x(Kj=>{"use strict";Object.defineProperty(Kj,"__esModule",{value:!0});Kj.DiscrError=void 0;var LYe;(function(r){r.Tag="tag",r.Mapping="mapping"})(LYe||(Kj.DiscrError=LYe={}))});var $Ye=x(Lne=>{"use strict";Object.defineProperty(Lne,"__esModule",{value:!0});var vw=It(),One=zYe(),jYe=Aj(),GVt=TM(),KVt=ar(),ZVt={message:({params:{discrError:r,tagName:e}})=>r===One.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:r,tag:e,tagName:t}})=>(0,vw._)`{error: ${r}, tag: ${t}, tagValue: ${e}}`},QVt={keyword:"discriminator",type:"object",schemaType:"object",error:ZVt,code(r){let{gen:e,data:t,schema:n,parentSchema:a,it:i}=r,{oneOf:s}=a;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=n.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let l=e.let("valid",!1),c=e.const("tag",(0,vw._)`${t}${(0,vw.getProperty)(o)}`);e.if((0,vw._)`typeof ${c} == "string"`,()=>d(),()=>r.error(!1,{discrError:One.DiscrError.Tag,tag:c,tagName:o})),r.ok(l);function d(){let m=p();e.if(!1);for(let f in m)e.elseIf((0,vw._)`${c} === ${f}`),e.assign(l,u(m[f]));e.else(),r.error(!1,{discrError:One.DiscrError.Mapping,tag:c,tagName:o}),e.endIf()}function u(m){let f=e.name("valid"),h=r.subschema({keyword:"oneOf",schemaProp:m},f);return r.mergeEvaluated(h,vw.Name),f}function p(){var m;let f={},h=v(a),g=!0;for(let w=0;w<s.length;w++){let S=s[w];if(S!=null&&S.$ref&&!(0,KVt.schemaHasRulesButRef)(S,i.self.RULES)){let E=S.$ref;if(S=jYe.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,E),S instanceof jYe.SchemaEnv&&(S=S.schema),S===void 0)throw new GVt.default(i.opts.uriResolver,i.baseId,E)}let C=(m=S==null?void 0:S.properties)===null||m===void 0?void 0:m[o];if(typeof C!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${o}"`);g=g&&(h||v(S)),b(C,w)}if(!g)throw new Error(`discriminator: "${o}" must be required`);return f;function v({required:w}){return Array.isArray(w)&&w.includes(o)}function b(w,S){if(w.const)k(w.const,S);else if(w.enum)for(let C of w.enum)k(C,S);else throw new Error(`discriminator: "properties/${o}" must have "const" or "enum"`)}function k(w,S){if(typeof w!="string"||w in f)throw new Error(`discriminator: "${o}" values must be unique strings`);f[w]=S}}}};Lne.default=QVt});var BYe=x((Atn,JVt)=>{JVt.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var HYe=x((dn,zne)=>{"use strict";Object.defineProperty(dn,"__esModule",{value:!0});dn.MissingRefError=dn.ValidationError=dn.CodeGen=dn.Name=dn.nil=dn.stringify=dn.str=dn._=dn.KeywordCxt=dn.Ajv=void 0;var XVt=L9e(),eqt=OYe(),tqt=$Ye(),UYe=BYe(),rqt=["/properties"],Zj="http://json-schema.org/draft-07/schema",kw=class extends XVt.default{_addVocabularies(){super._addVocabularies(),eqt.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(tqt.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(UYe,rqt):UYe;this.addMetaSchema(e,Zj,!1),this.refs["http://json-schema.org/schema"]=Zj}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Zj)?Zj:void 0)}};dn.Ajv=kw;zne.exports=dn=kw;zne.exports.Ajv=kw;Object.defineProperty(dn,"__esModule",{value:!0});dn.default=kw;var nqt=bM();Object.defineProperty(dn,"KeywordCxt",{enumerable:!0,get:function(){return nqt.KeywordCxt}});var bw=It();Object.defineProperty(dn,"_",{enumerable:!0,get:function(){return bw._}});Object.defineProperty(dn,"str",{enumerable:!0,get:function(){return bw.str}});Object.defineProperty(dn,"stringify",{enumerable:!0,get:function(){return bw.stringify}});Object.defineProperty(dn,"nil",{enumerable:!0,get:function(){return bw.nil}});Object.defineProperty(dn,"Name",{enumerable:!0,get:function(){return bw.Name}});Object.defineProperty(dn,"CodeGen",{enumerable:!0,get:function(){return bw.CodeGen}});var aqt=Pj();Object.defineProperty(dn,"ValidationError",{enumerable:!0,get:function(){return aqt.default}});var iqt=TM();Object.defineProperty(dn,"MissingRefError",{enumerable:!0,get:function(){return iqt.default}})});var QYe=x(Kd=>{"use strict";Object.defineProperty(Kd,"__esModule",{value:!0});Kd.formatNames=Kd.fastFormats=Kd.fullFormats=void 0;function Gd(r,e){return{validate:r,compare:e}}Kd.fullFormats={date:Gd(YYe,Une),time:Gd($ne(!0),Hne),"date-time":Gd(VYe(!0),KYe),"iso-time":Gd($ne(),GYe),"iso-date-time":Gd(VYe(),ZYe),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:uqt,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:vqt,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:pqt,int32:{type:"number",validate:hqt},int64:{type:"number",validate:gqt},float:{type:"number",validate:WYe},double:{type:"number",validate:WYe},password:!0,binary:!0};Kd.fastFormats={...Kd.fullFormats,date:Gd(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Une),time:Gd(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Hne),"date-time":Gd(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,KYe),"iso-time":Gd(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,GYe),"iso-date-time":Gd(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,ZYe),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Kd.formatNames=Object.keys(Kd.fullFormats);function sqt(r){return r%4===0&&(r%100!==0||r%400===0)}var oqt=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,lqt=[0,31,28,31,30,31,30,31,31,30,31,30,31];function YYe(r){let e=oqt.exec(r);if(!e)return!1;let t=+e[1],n=+e[2],a=+e[3];return n>=1&&n<=12&&a>=1&&a<=(n===2&&sqt(t)?29:lqt[n])}function Une(r,e){if(r&&e)return r>e?1:r<e?-1:0}var jne=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function $ne(r){return function(t){let n=jne.exec(t);if(!n)return!1;let a=+n[1],i=+n[2],s=+n[3],o=n[4],l=n[5]==="-"?-1:1,c=+(n[6]||0),d=+(n[7]||0);if(c>23||d>59||r&&!o)return!1;if(a<=23&&i<=59&&s<60)return!0;let u=i-d*l,p=a-c*l-(u<0?1:0);return(p===23||p===-1)&&(u===59||u===-1)&&s<61}}function Hne(r,e){if(!(r&&e))return;let t=new Date("2020-01-01T"+r).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(t&&n)return t-n}function GYe(r,e){if(!(r&&e))return;let t=jne.exec(r),n=jne.exec(e);if(t&&n)return r=t[1]+t[2]+t[3],e=n[1]+n[2]+n[3],r>e?1:r<e?-1:0}var Bne=/t|\s/i;function VYe(r){let e=$ne(r);return function(n){let a=n.split(Bne);return a.length===2&&YYe(a[0])&&e(a[1])}}function KYe(r,e){if(!(r&&e))return;let t=new Date(r).valueOf(),n=new Date(e).valueOf();if(t&&n)return t-n}function ZYe(r,e){if(!(r&&e))return;let[t,n]=r.split(Bne),[a,i]=e.split(Bne),s=Une(t,a);if(s!==void 0)return s||Hne(n,i)}var cqt=/\/|:/,dqt=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function uqt(r){return cqt.test(r)&&dqt.test(r)}var qYe=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function pqt(r){return qYe.lastIndex=0,qYe.test(r)}var mqt=-(2**31),fqt=2**31-1;function hqt(r){return Number.isInteger(r)&&r<=fqt&&r>=mqt}function gqt(r){return Number.isInteger(r)}function WYe(){return!0}var yqt=/[^\\]\\Z/;function vqt(r){if(yqt.test(r))return!1;try{return new RegExp(r),!0}catch(e){return!1}}});var LM=x(pr=>{"use strict";Object.defineProperty(pr,"__esModule",{value:!0});pr.regexpCode=pr.getEsmExportName=pr.getProperty=pr.safeStringify=pr.stringify=pr.strConcat=pr.addCodeArg=pr.str=pr._=pr.nil=pr._Code=pr.Name=pr.IDENTIFIER=pr._CodeOrName=void 0;var FM=class{};pr._CodeOrName=FM;pr.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Jy=class extends FM{constructor(e){if(super(),!pr.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};pr.Name=Jy;var Tl=class extends FM{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((t,n)=>`${t}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((t,n)=>(n instanceof Jy&&(t[n.str]=(t[n.str]||0)+1),t),{})}};pr._Code=Tl;pr.nil=new Tl("");function JYe(r,...e){let t=[r[0]],n=0;for(;n<e.length;)qne(t,e[n]),t.push(r[++n]);return new Tl(t)}pr._=JYe;var Vne=new Tl("+");function XYe(r,...e){let t=[OM(r[0])],n=0;for(;n<e.length;)t.push(Vne),qne(t,e[n]),t.push(Vne,OM(r[++n]));return kqt(t),new Tl(t)}pr.str=XYe;function qne(r,e){e instanceof Tl?r.push(...e._items):e instanceof Jy?r.push(e):r.push(wqt(e))}pr.addCodeArg=qne;function kqt(r){let e=1;for(;e<r.length-1;){if(r[e]===Vne){let t=bqt(r[e-1],r[e+1]);if(t!==void 0){r.splice(e-1,3,t);continue}r[e++]="+"}e++}}function bqt(r,e){if(e==='""')return r;if(r==='""')return e;if(typeof r=="string")return e instanceof Jy||r[r.length-1]!=='"'?void 0:typeof e!="string"?`${r.slice(0,-1)}${e}"`:e[0]==='"'?r.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(r instanceof Jy))return`"${r}${e.slice(1)}`}function Tqt(r,e){return e.emptyStr()?r:r.emptyStr()?e:XYe`${r}${e}`}pr.strConcat=Tqt;function wqt(r){return typeof r=="number"||typeof r=="boolean"||r===null?r:OM(Array.isArray(r)?r.join(","):r)}function Sqt(r){return new Tl(OM(r))}pr.stringify=Sqt;function OM(r){return JSON.stringify(r).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}pr.safeStringify=OM;function xqt(r){return typeof r=="string"&&pr.IDENTIFIER.test(r)?new Tl(`.${r}`):JYe`[${r}]`}pr.getProperty=xqt;function Cqt(r){if(typeof r=="string"&&pr.IDENTIFIER.test(r))return new Tl(`${r}`);throw new Error(`CodeGen: invalid export name: ${r}, use explicit $id name mapping`)}pr.getEsmExportName=Cqt;function Eqt(r){return new Tl(r.toString())}pr.regexpCode=Eqt});var Gne=x(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});Fs.ValueScope=Fs.ValueScopeName=Fs.Scope=Fs.varKinds=Fs.UsedValueState=void 0;var Rs=LM(),Wne=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},Qj;(function(r){r[r.Started=0]="Started",r[r.Completed=1]="Completed"})(Qj||(Fs.UsedValueState=Qj={}));Fs.varKinds={const:new Rs.Name("const"),let:new Rs.Name("let"),var:new Rs.Name("var")};var Jj=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof Rs.Name?e:this.name(e)}name(e){return new Rs.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){var t,n;if(!((n=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Fs.Scope=Jj;var Xj=class extends Rs.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:t,itemIndex:n}){this.value=e,this.scopePath=(0,Rs._)`.${new Rs.Name(t)}[${n}]`}};Fs.ValueScopeName=Xj;var Dqt=(0,Rs._)`\n`,Yne=class extends Jj{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?Dqt:Rs.nil}}get(){return this._scope}name(e){return new Xj(e,this._newName(e))}value(e,t){var n;if(t.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let a=this.toName(e),{prefix:i}=a,s=(n=t.key)!==null&&n!==void 0?n:t.ref,o=this._values[i];if(o){let d=o.get(s);if(d)return d}else o=this._values[i]=new Map;o.set(s,a);let l=this._scope[i]||(this._scope[i]=[]),c=l.length;return l[c]=t.ref,a.setValue(t,{property:i,itemIndex:c}),a}getValue(e,t){let n=this._values[e];if(n)return n.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Rs._)`${e}${n.scopePath}`})}scopeCode(e=this._values,t,n){return this._reduceValues(e,a=>{if(a.value===void 0)throw new Error(`CodeGen: name "${a}" has no value`);return a.value.code},t,n)}_reduceValues(e,t,n={},a){let i=Rs.nil;for(let s in e){let o=e[s];if(!o)continue;let l=n[s]=n[s]||new Map;o.forEach(c=>{if(l.has(c))return;l.set(c,Qj.Started);let d=t(c);if(d){let u=this.opts.es5?Fs.varKinds.var:Fs.varKinds.const;i=(0,Rs._)`${i}${u} ${c} = ${d};${this.opts._n}`}else if(d=a==null?void 0:a(c))i=(0,Rs._)`${i}${d}${this.opts._n}`;else throw new Wne(c);l.set(c,Qj.Completed)})}return i}};Fs.ValueScope=Yne});var wt=x(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.or=At.and=At.not=At.CodeGen=At.operators=At.varKinds=At.ValueScopeName=At.ValueScope=At.Scope=At.Name=At.regexpCode=At.stringify=At.getProperty=At.nil=At.strConcat=At.str=At._=void 0;var Xt=LM(),hc=Gne(),Zf=LM();Object.defineProperty(At,"_",{enumerable:!0,get:function(){return Zf._}});Object.defineProperty(At,"str",{enumerable:!0,get:function(){return Zf.str}});Object.defineProperty(At,"strConcat",{enumerable:!0,get:function(){return Zf.strConcat}});Object.defineProperty(At,"nil",{enumerable:!0,get:function(){return Zf.nil}});Object.defineProperty(At,"getProperty",{enumerable:!0,get:function(){return Zf.getProperty}});Object.defineProperty(At,"stringify",{enumerable:!0,get:function(){return Zf.stringify}});Object.defineProperty(At,"regexpCode",{enumerable:!0,get:function(){return Zf.regexpCode}});Object.defineProperty(At,"Name",{enumerable:!0,get:function(){return Zf.Name}});var n$=Gne();Object.defineProperty(At,"Scope",{enumerable:!0,get:function(){return n$.Scope}});Object.defineProperty(At,"ValueScope",{enumerable:!0,get:function(){return n$.ValueScope}});Object.defineProperty(At,"ValueScopeName",{enumerable:!0,get:function(){return n$.ValueScopeName}});Object.defineProperty(At,"varKinds",{enumerable:!0,get:function(){return n$.varKinds}});At.operators={GT:new Xt._Code(">"),GTE:new Xt._Code(">="),LT:new Xt._Code("<"),LTE:new Xt._Code("<="),EQ:new Xt._Code("==="),NEQ:new Xt._Code("!=="),NOT:new Xt._Code("!"),OR:new Xt._Code("||"),AND:new Xt._Code("&&"),ADD:new Xt._Code("+")};var Rp=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},Kne=class extends Rp{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){let n=e?hc.varKinds.var:this.varKind,a=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${a};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=ww(this.rhs,e,t)),this}get names(){return this.rhs instanceof Xt._CodeOrName?this.rhs.names:{}}},e$=class extends Rp{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(!(this.lhs instanceof Xt.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=ww(this.rhs,e,t),this}get names(){let e=this.lhs instanceof Xt.Name?{}:{...this.lhs.names};return r$(e,this.rhs)}},Zne=class extends e${constructor(e,t,n,a){super(e,n,a),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Qne=class extends Rp{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Jne=class extends Rp{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Xne=class extends Rp{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},eae=class extends Rp{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=ww(this.code,e,t),this}get names(){return this.code instanceof Xt._CodeOrName?this.code.names:{}}},zM=class extends Rp{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((t,n)=>t+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:n}=this,a=n.length;for(;a--;){let i=n[a];i.optimizeNames(e,t)||(Pqt(e,i.names),n.splice(a,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>tv(e,t.names),{})}},Fp=class extends zM{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},tae=class extends zM{},Tw=class extends Fp{};Tw.kind="else";var Xy=class r extends Fp{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+="else "+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let t=this.else;if(t){let n=t.optimizeNodes();t=this.else=Array.isArray(n)?new Tw(n):n}if(t)return e===!1?t instanceof r?t:t.nodes:this.nodes.length?this:new r(e5e(e),t instanceof r?[t]:t.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,t){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,t),!!(super.optimizeNames(e,t)||this.else))return this.condition=ww(this.condition,e,t),this}get names(){let e=super.names;return r$(e,this.condition),this.else&&tv(e,this.else.names),e}};Xy.kind="if";var ev=class extends Fp{};ev.kind="for";var rae=class extends ev{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=ww(this.iteration,e,t),this}get names(){return tv(super.names,this.iteration.names)}},nae=class extends ev{constructor(e,t,n,a){super(),this.varKind=e,this.name=t,this.from=n,this.to=a}render(e){let t=e.es5?hc.varKinds.var:this.varKind,{name:n,from:a,to:i}=this;return`for(${t} ${n}=${a}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=r$(super.names,this.from);return r$(e,this.to)}},t$=class extends ev{constructor(e,t,n,a){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=a}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=ww(this.iterable,e,t),this}get names(){return tv(super.names,this.iterable.names)}},jM=class extends Fp{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};jM.kind="func";var $M=class extends zM{render(e){return"return "+super.render(e)}};$M.kind="return";var aae=class extends Fp{render(e){let t="try"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(t=this.finally)===null||t===void 0||t.optimizeNodes(),this}optimizeNames(e,t){var n,a;return super.optimizeNames(e,t),(n=this.catch)===null||n===void 0||n.optimizeNames(e,t),(a=this.finally)===null||a===void 0||a.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&tv(e,this.catch.names),this.finally&&tv(e,this.finally.names),e}},BM=class extends Fp{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};BM.kind="catch";var UM=class extends Fp{render(e){return"finally"+super.render(e)}};UM.kind="finally";var iae=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
|
||
`:""},this._extScope=e,this._scope=new hc.Scope({parent:e}),this._nodes=[new tae]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let n=this._extScope.value(e,t);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,n,a){let i=this._scope.toName(t);return n!==void 0&&a&&(this._constants[i.str]=n),this._leafNode(new Kne(e,i,n)),i}const(e,t,n){return this._def(hc.varKinds.const,e,t,n)}let(e,t,n){return this._def(hc.varKinds.let,e,t,n)}var(e,t,n){return this._def(hc.varKinds.var,e,t,n)}assign(e,t,n){return this._leafNode(new e$(e,t,n))}add(e,t){return this._leafNode(new Zne(e,At.operators.ADD,t))}code(e){return typeof e=="function"?e():e!==Xt.nil&&this._leafNode(new eae(e)),this}object(...e){let t=["{"];for(let[n,a]of e)t.length>1&&t.push(","),t.push(n),(n!==a||this.opts.es5)&&(t.push(":"),(0,Xt.addCodeArg)(t,a));return t.push("}"),new Xt._Code(t)}if(e,t,n){if(this._blockNode(new Xy(e)),t&&n)this.code(t).else().code(n).endIf();else if(t)this.code(t).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new Xy(e))}else(){return this._elseNode(new Tw)}endIf(){return this._endBlockNode(Xy,Tw)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new rae(e),t)}forRange(e,t,n,a,i=this.opts.es5?hc.varKinds.var:hc.varKinds.let){let s=this._scope.toName(e);return this._for(new nae(i,s,t,n),()=>a(s))}forOf(e,t,n,a=hc.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let s=t instanceof Xt.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0,Xt._)`${s}.length`,o=>{this.var(i,(0,Xt._)`${s}[${o}]`),n(i)})}return this._for(new t$("of",a,i,t),()=>n(i))}forIn(e,t,n,a=this.opts.es5?hc.varKinds.var:hc.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,Xt._)`Object.keys(${t})`,n);let i=this._scope.toName(e);return this._for(new t$("in",a,i,t),()=>n(i))}endFor(){return this._endBlockNode(ev)}label(e){return this._leafNode(new Qne(e))}break(e){return this._leafNode(new Jne(e))}return(e){let t=new $M;if(this._blockNode(t),this.code(e),t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode($M)}try(e,t,n){if(!t&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let a=new aae;if(this._blockNode(a),this.code(e),t){let i=this.name("e");this._currNode=a.catch=new BM(i),t(i)}return n&&(this._currNode=a.finally=new UM,this.code(n)),this._endBlockNode(BM,UM)}throw(e){return this._leafNode(new Xne(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(t===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-t;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=t,this}func(e,t=Xt.nil,n,a){return this._blockNode(new jM(e,t,n)),a&&this.code(a).endFunc(),this}endFunc(){return this._endBlockNode(jM)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,t){let n=this._currNode;if(n instanceof e||t&&n instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof Xy))throw new Error('CodeGen: "else" without "if"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e}};At.CodeGen=iae;function tv(r,e){for(let t in e)r[t]=(r[t]||0)+(e[t]||0);return r}function r$(r,e){return e instanceof Xt._CodeOrName?tv(r,e.names):r}function ww(r,e,t){if(r instanceof Xt.Name)return n(r);if(!a(r))return r;return new Xt._Code(r._items.reduce((i,s)=>(s instanceof Xt.Name&&(s=n(s)),s instanceof Xt._Code?i.push(...s._items):i.push(s),i),[]));function n(i){let s=t[i.str];return s===void 0||e[i.str]!==1?i:(delete e[i.str],s)}function a(i){return i instanceof Xt._Code&&i._items.some(s=>s instanceof Xt.Name&&e[s.str]===1&&t[s.str]!==void 0)}}function Pqt(r,e){for(let t in e)r[t]=(r[t]||0)-(e[t]||0)}function e5e(r){return typeof r=="boolean"||typeof r=="number"||r===null?!r:(0,Xt._)`!${sae(r)}`}At.not=e5e;var Mqt=t5e(At.operators.AND);function Aqt(...r){return r.reduce(Mqt)}At.and=Aqt;var _qt=t5e(At.operators.OR);function Iqt(...r){return r.reduce(_qt)}At.or=Iqt;function t5e(r){return(e,t)=>e===Xt.nil?t:t===Xt.nil?e:(0,Xt._)`${sae(e)} ${r} ${sae(t)}`}function sae(r){return r instanceof Xt.Name?r:(0,Xt._)`(${r})`}});var sr=x(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.checkStrictMode=Rt.getErrorPath=Rt.Type=Rt.useFunc=Rt.setEvaluated=Rt.evaluatedPropsToName=Rt.mergeEvaluated=Rt.eachItem=Rt.unescapeJsonPointer=Rt.escapeJsonPointer=Rt.escapeFragment=Rt.unescapeFragment=Rt.schemaRefOrVal=Rt.schemaHasRulesButRef=Rt.schemaHasRules=Rt.checkUnknownRules=Rt.alwaysValidSchema=Rt.toHash=void 0;var qr=wt(),Nqt=LM();function Rqt(r){let e={};for(let t of r)e[t]=!0;return e}Rt.toHash=Rqt;function Fqt(r,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(a5e(r,e),!i5e(e,r.self.RULES.all))}Rt.alwaysValidSchema=Fqt;function a5e(r,e=r.schema){let{opts:t,self:n}=r;if(!t.strictSchema||typeof e=="boolean")return;let a=n.RULES.keywords;for(let i in e)a[i]||l5e(r,`unknown keyword: "${i}"`)}Rt.checkUnknownRules=a5e;function i5e(r,e){if(typeof r=="boolean")return!r;for(let t in r)if(e[t])return!0;return!1}Rt.schemaHasRules=i5e;function Oqt(r,e){if(typeof r=="boolean")return!r;for(let t in r)if(t!=="$ref"&&e.all[t])return!0;return!1}Rt.schemaHasRulesButRef=Oqt;function Lqt({topSchemaRef:r,schemaPath:e},t,n,a){if(!a){if(typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="string")return(0,qr._)`${t}`}return(0,qr._)`${r}${e}${(0,qr.getProperty)(n)}`}Rt.schemaRefOrVal=Lqt;function zqt(r){return s5e(decodeURIComponent(r))}Rt.unescapeFragment=zqt;function jqt(r){return encodeURIComponent(lae(r))}Rt.escapeFragment=jqt;function lae(r){return typeof r=="number"?`${r}`:r.replace(/~/g,"~0").replace(/\//g,"~1")}Rt.escapeJsonPointer=lae;function s5e(r){return r.replace(/~1/g,"/").replace(/~0/g,"~")}Rt.unescapeJsonPointer=s5e;function $qt(r,e){if(Array.isArray(r))for(let t of r)e(t);else e(r)}Rt.eachItem=$qt;function r5e({mergeNames:r,mergeToName:e,mergeValues:t,resultToName:n}){return(a,i,s,o)=>{let l=s===void 0?i:s instanceof qr.Name?(i instanceof qr.Name?r(a,i,s):e(a,i,s),s):i instanceof qr.Name?(e(a,s,i),i):t(i,s);return o===qr.Name&&!(l instanceof qr.Name)?n(a,l):l}}Rt.mergeEvaluated={props:r5e({mergeNames:(r,e,t)=>r.if((0,qr._)`${t} !== true && ${e} !== undefined`,()=>{r.if((0,qr._)`${e} === true`,()=>r.assign(t,!0),()=>r.assign(t,(0,qr._)`${t} || {}`).code((0,qr._)`Object.assign(${t}, ${e})`))}),mergeToName:(r,e,t)=>r.if((0,qr._)`${t} !== true`,()=>{e===!0?r.assign(t,!0):(r.assign(t,(0,qr._)`${t} || {}`),cae(r,t,e))}),mergeValues:(r,e)=>r===!0?!0:{...r,...e},resultToName:o5e}),items:r5e({mergeNames:(r,e,t)=>r.if((0,qr._)`${t} !== true && ${e} !== undefined`,()=>r.assign(t,(0,qr._)`${e} === true ? true : ${t} > ${e} ? ${t} : ${e}`)),mergeToName:(r,e,t)=>r.if((0,qr._)`${t} !== true`,()=>r.assign(t,e===!0?!0:(0,qr._)`${t} > ${e} ? ${t} : ${e}`)),mergeValues:(r,e)=>r===!0?!0:Math.max(r,e),resultToName:(r,e)=>r.var("items",e)})};function o5e(r,e){if(e===!0)return r.var("props",!0);let t=r.var("props",(0,qr._)`{}`);return e!==void 0&&cae(r,t,e),t}Rt.evaluatedPropsToName=o5e;function cae(r,e,t){Object.keys(t).forEach(n=>r.assign((0,qr._)`${e}${(0,qr.getProperty)(n)}`,!0))}Rt.setEvaluated=cae;var n5e={};function Bqt(r,e){return r.scopeValue("func",{ref:e,code:n5e[e.code]||(n5e[e.code]=new Nqt._Code(e.code))})}Rt.useFunc=Bqt;var oae;(function(r){r[r.Num=0]="Num",r[r.Str=1]="Str"})(oae||(Rt.Type=oae={}));function Uqt(r,e,t){if(r instanceof qr.Name){let n=e===oae.Num;return t?n?(0,qr._)`"[" + ${r} + "]"`:(0,qr._)`"['" + ${r} + "']"`:n?(0,qr._)`"/" + ${r}`:(0,qr._)`"/" + ${r}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return t?(0,qr.getProperty)(r).toString():"/"+lae(r)}Rt.getErrorPath=Uqt;function l5e(r,e,t=r.opts.strictSchema){if(t){if(e=`strict mode: ${e}`,t===!0)throw new Error(e);r.self.logger.warn(e)}}Rt.checkStrictMode=l5e});var Op=x(dae=>{"use strict";Object.defineProperty(dae,"__esModule",{value:!0});var Mi=wt(),Hqt={data:new Mi.Name("data"),valCxt:new Mi.Name("valCxt"),instancePath:new Mi.Name("instancePath"),parentData:new Mi.Name("parentData"),parentDataProperty:new Mi.Name("parentDataProperty"),rootData:new Mi.Name("rootData"),dynamicAnchors:new Mi.Name("dynamicAnchors"),vErrors:new Mi.Name("vErrors"),errors:new Mi.Name("errors"),this:new Mi.Name("this"),self:new Mi.Name("self"),scope:new Mi.Name("scope"),json:new Mi.Name("json"),jsonPos:new Mi.Name("jsonPos"),jsonLen:new Mi.Name("jsonLen"),jsonPart:new Mi.Name("jsonPart")};dae.default=Hqt});var HM=x(Ai=>{"use strict";Object.defineProperty(Ai,"__esModule",{value:!0});Ai.extendErrors=Ai.resetErrorsCount=Ai.reportExtraError=Ai.reportError=Ai.keyword$DataError=Ai.keywordError=void 0;var or=wt(),a$=sr(),es=Op();Ai.keywordError={message:({keyword:r})=>(0,or.str)`must pass "${r}" keyword validation`};Ai.keyword$DataError={message:({keyword:r,schemaType:e})=>e?(0,or.str)`"${r}" keyword must be ${e} ($data)`:(0,or.str)`"${r}" keyword is invalid ($data)`};function Vqt(r,e=Ai.keywordError,t,n){let{it:a}=r,{gen:i,compositeRule:s,allErrors:o}=a,l=u5e(r,e,t);(n!=null?n:s||o)?c5e(i,l):d5e(a,(0,or._)`[${l}]`)}Ai.reportError=Vqt;function qqt(r,e=Ai.keywordError,t){let{it:n}=r,{gen:a,compositeRule:i,allErrors:s}=n,o=u5e(r,e,t);c5e(a,o),i||s||d5e(n,es.default.vErrors)}Ai.reportExtraError=qqt;function Wqt(r,e){r.assign(es.default.errors,e),r.if((0,or._)`${es.default.vErrors} !== null`,()=>r.if(e,()=>r.assign((0,or._)`${es.default.vErrors}.length`,e),()=>r.assign(es.default.vErrors,null)))}Ai.resetErrorsCount=Wqt;function Yqt({gen:r,keyword:e,schemaValue:t,data:n,errsCount:a,it:i}){if(a===void 0)throw new Error("ajv implementation error");let s=r.name("err");r.forRange("i",a,es.default.errors,o=>{r.const(s,(0,or._)`${es.default.vErrors}[${o}]`),r.if((0,or._)`${s}.instancePath === undefined`,()=>r.assign((0,or._)`${s}.instancePath`,(0,or.strConcat)(es.default.instancePath,i.errorPath))),r.assign((0,or._)`${s}.schemaPath`,(0,or.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(r.assign((0,or._)`${s}.schema`,t),r.assign((0,or._)`${s}.data`,n))})}Ai.extendErrors=Yqt;function c5e(r,e){let t=r.const("err",e);r.if((0,or._)`${es.default.vErrors} === null`,()=>r.assign(es.default.vErrors,(0,or._)`[${t}]`),(0,or._)`${es.default.vErrors}.push(${t})`),r.code((0,or._)`${es.default.errors}++`)}function d5e(r,e){let{gen:t,validateName:n,schemaEnv:a}=r;a.$async?t.throw((0,or._)`new ${r.ValidationError}(${e})`):(t.assign((0,or._)`${n}.errors`,e),t.return(!1))}var rv={keyword:new or.Name("keyword"),schemaPath:new or.Name("schemaPath"),params:new or.Name("params"),propertyName:new or.Name("propertyName"),message:new or.Name("message"),schema:new or.Name("schema"),parentSchema:new or.Name("parentSchema")};function u5e(r,e,t){let{createErrors:n}=r.it;return n===!1?(0,or._)`{}`:Gqt(r,e,t)}function Gqt(r,e,t={}){let{gen:n,it:a}=r,i=[Kqt(a,t),Zqt(r,t)];return Qqt(r,e,i),n.object(...i)}function Kqt({errorPath:r},{instancePath:e}){let t=e?(0,or.str)`${r}${(0,a$.getErrorPath)(e,a$.Type.Str)}`:r;return[es.default.instancePath,(0,or.strConcat)(es.default.instancePath,t)]}function Zqt({keyword:r,it:{errSchemaPath:e}},{schemaPath:t,parentSchema:n}){let a=n?e:(0,or.str)`${e}/${r}`;return t&&(a=(0,or.str)`${a}${(0,a$.getErrorPath)(t,a$.Type.Str)}`),[rv.schemaPath,a]}function Qqt(r,{params:e,message:t},n){let{keyword:a,data:i,schemaValue:s,it:o}=r,{opts:l,propertyName:c,topSchemaRef:d,schemaPath:u}=o;n.push([rv.keyword,a],[rv.params,typeof e=="function"?e(r):e||(0,or._)`{}`]),l.messages&&n.push([rv.message,typeof t=="function"?t(r):t]),l.verbose&&n.push([rv.schema,s],[rv.parentSchema,(0,or._)`${d}${u}`],[es.default.data,i]),c&&n.push([rv.propertyName,c])}});var m5e=x(Sw=>{"use strict";Object.defineProperty(Sw,"__esModule",{value:!0});Sw.boolOrEmptySchema=Sw.topBoolOrEmptySchema=void 0;var Jqt=HM(),Xqt=wt(),eWt=Op(),tWt={message:"boolean schema is false"};function rWt(r){let{gen:e,schema:t,validateName:n}=r;t===!1?p5e(r,!1):typeof t=="object"&&t.$async===!0?e.return(eWt.default.data):(e.assign((0,Xqt._)`${n}.errors`,null),e.return(!0))}Sw.topBoolOrEmptySchema=rWt;function nWt(r,e){let{gen:t,schema:n}=r;n===!1?(t.var(e,!1),p5e(r)):t.var(e,!0)}Sw.boolOrEmptySchema=nWt;function p5e(r,e){let{gen:t,data:n}=r,a={gen:t,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:r};(0,Jqt.reportError)(a,tWt,void 0,e)}});var uae=x(xw=>{"use strict";Object.defineProperty(xw,"__esModule",{value:!0});xw.getRules=xw.isJSONType=void 0;var aWt=["string","number","integer","boolean","null","object","array"],iWt=new Set(aWt);function sWt(r){return typeof r=="string"&&iWt.has(r)}xw.isJSONType=sWt;function oWt(){let r={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...r,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},r.number,r.string,r.array,r.object],post:{rules:[]},all:{},keywords:{}}}xw.getRules=oWt});var pae=x(Qf=>{"use strict";Object.defineProperty(Qf,"__esModule",{value:!0});Qf.shouldUseRule=Qf.shouldUseGroup=Qf.schemaHasRulesForType=void 0;function lWt({schema:r,self:e},t){let n=e.RULES.types[t];return n&&n!==!0&&f5e(r,n)}Qf.schemaHasRulesForType=lWt;function f5e(r,e){return e.rules.some(t=>h5e(r,t))}Qf.shouldUseGroup=f5e;function h5e(r,e){var t;return r[e.keyword]!==void 0||((t=e.definition.implements)===null||t===void 0?void 0:t.some(n=>r[n]!==void 0))}Qf.shouldUseRule=h5e});var VM=x(_i=>{"use strict";Object.defineProperty(_i,"__esModule",{value:!0});_i.reportTypeError=_i.checkDataTypes=_i.checkDataType=_i.coerceAndCheckDataType=_i.getJSONTypes=_i.getSchemaTypes=_i.DataType=void 0;var cWt=uae(),dWt=pae(),uWt=HM(),vt=wt(),g5e=sr(),Cw;(function(r){r[r.Correct=0]="Correct",r[r.Wrong=1]="Wrong"})(Cw||(_i.DataType=Cw={}));function pWt(r){let e=y5e(r.type);if(e.includes("null")){if(r.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&r.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');r.nullable===!0&&e.push("null")}return e}_i.getSchemaTypes=pWt;function y5e(r){let e=Array.isArray(r)?r:r?[r]:[];if(e.every(cWt.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}_i.getJSONTypes=y5e;function mWt(r,e){let{gen:t,data:n,opts:a}=r,i=fWt(e,a.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,dWt.schemaHasRulesForType)(r,e[0]));if(s){let o=fae(e,n,a.strictNumbers,Cw.Wrong);t.if(o,()=>{i.length?hWt(r,e,i):hae(r)})}return s}_i.coerceAndCheckDataType=mWt;var v5e=new Set(["string","number","integer","boolean","null"]);function fWt(r,e){return e?r.filter(t=>v5e.has(t)||e==="array"&&t==="array"):[]}function hWt(r,e,t){let{gen:n,data:a,opts:i}=r,s=n.let("dataType",(0,vt._)`typeof ${a}`),o=n.let("coerced",(0,vt._)`undefined`);i.coerceTypes==="array"&&n.if((0,vt._)`${s} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>n.assign(a,(0,vt._)`${a}[0]`).assign(s,(0,vt._)`typeof ${a}`).if(fae(e,a,i.strictNumbers),()=>n.assign(o,a))),n.if((0,vt._)`${o} !== undefined`);for(let c of t)(v5e.has(c)||c==="array"&&i.coerceTypes==="array")&&l(c);n.else(),hae(r),n.endIf(),n.if((0,vt._)`${o} !== undefined`,()=>{n.assign(a,o),gWt(r,o)});function l(c){switch(c){case"string":n.elseIf((0,vt._)`${s} == "number" || ${s} == "boolean"`).assign(o,(0,vt._)`"" + ${a}`).elseIf((0,vt._)`${a} === null`).assign(o,(0,vt._)`""`);return;case"number":n.elseIf((0,vt._)`${s} == "boolean" || ${a} === null
|
||
|| (${s} == "string" && ${a} && ${a} == +${a})`).assign(o,(0,vt._)`+${a}`);return;case"integer":n.elseIf((0,vt._)`${s} === "boolean" || ${a} === null
|
||
|| (${s} === "string" && ${a} && ${a} == +${a} && !(${a} % 1))`).assign(o,(0,vt._)`+${a}`);return;case"boolean":n.elseIf((0,vt._)`${a} === "false" || ${a} === 0 || ${a} === null`).assign(o,!1).elseIf((0,vt._)`${a} === "true" || ${a} === 1`).assign(o,!0);return;case"null":n.elseIf((0,vt._)`${a} === "" || ${a} === 0 || ${a} === false`),n.assign(o,null);return;case"array":n.elseIf((0,vt._)`${s} === "string" || ${s} === "number"
|
||
|| ${s} === "boolean" || ${a} === null`).assign(o,(0,vt._)`[${a}]`)}}}function gWt({gen:r,parentData:e,parentDataProperty:t},n){r.if((0,vt._)`${e} !== undefined`,()=>r.assign((0,vt._)`${e}[${t}]`,n))}function mae(r,e,t,n=Cw.Correct){let a=n===Cw.Correct?vt.operators.EQ:vt.operators.NEQ,i;switch(r){case"null":return(0,vt._)`${e} ${a} null`;case"array":i=(0,vt._)`Array.isArray(${e})`;break;case"object":i=(0,vt._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=s((0,vt._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=s();break;default:return(0,vt._)`typeof ${e} ${a} ${r}`}return n===Cw.Correct?i:(0,vt.not)(i);function s(o=vt.nil){return(0,vt.and)((0,vt._)`typeof ${e} == "number"`,o,t?(0,vt._)`isFinite(${e})`:vt.nil)}}_i.checkDataType=mae;function fae(r,e,t,n){if(r.length===1)return mae(r[0],e,t,n);let a,i=(0,g5e.toHash)(r);if(i.array&&i.object){let s=(0,vt._)`typeof ${e} != "object"`;a=i.null?s:(0,vt._)`!${e} || ${s}`,delete i.null,delete i.array,delete i.object}else a=vt.nil;i.number&&delete i.integer;for(let s in i)a=(0,vt.and)(a,mae(s,e,t,n));return a}_i.checkDataTypes=fae;var yWt={message:({schema:r})=>`must be ${r}`,params:({schema:r,schemaValue:e})=>typeof r=="string"?(0,vt._)`{type: ${r}}`:(0,vt._)`{type: ${e}}`};function hae(r){let e=vWt(r);(0,uWt.reportError)(e,yWt)}_i.reportTypeError=hae;function vWt(r){let{gen:e,data:t,schema:n}=r,a=(0,g5e.schemaRefOrVal)(r,n,"type");return{gen:e,keyword:"type",data:t,schema:n.type,schemaCode:a,schemaValue:a,parentSchema:n,params:{},it:r}}});var b5e=x(i$=>{"use strict";Object.defineProperty(i$,"__esModule",{value:!0});i$.assignDefaults=void 0;var Ew=wt(),kWt=sr();function bWt(r,e){let{properties:t,items:n}=r.schema;if(e==="object"&&t)for(let a in t)k5e(r,a,t[a].default);else e==="array"&&Array.isArray(n)&&n.forEach((a,i)=>k5e(r,i,a.default))}i$.assignDefaults=bWt;function k5e(r,e,t){let{gen:n,compositeRule:a,data:i,opts:s}=r;if(t===void 0)return;let o=(0,Ew._)`${i}${(0,Ew.getProperty)(e)}`;if(a){(0,kWt.checkStrictMode)(r,`default is ignored for: ${o}`);return}let l=(0,Ew._)`${o} === undefined`;s.useDefaults==="empty"&&(l=(0,Ew._)`${l} || ${o} === null || ${o} === ""`),n.if(l,(0,Ew._)`${o} = ${(0,Ew.stringify)(t)}`)}});var wl=x($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.validateUnion=$r.validateArray=$r.usePattern=$r.callValidateCode=$r.schemaProperties=$r.allSchemaProperties=$r.noPropertyInData=$r.propertyInData=$r.isOwnProperty=$r.hasPropFunc=$r.reportMissingProp=$r.checkMissingProp=$r.checkReportMissingProp=void 0;var un=wt(),gae=sr(),Jf=Op(),TWt=sr();function wWt(r,e){let{gen:t,data:n,it:a}=r;t.if(vae(t,n,e,a.opts.ownProperties),()=>{r.setParams({missingProperty:(0,un._)`${e}`},!0),r.error()})}$r.checkReportMissingProp=wWt;function SWt({gen:r,data:e,it:{opts:t}},n,a){return(0,un.or)(...n.map(i=>(0,un.and)(vae(r,e,i,t.ownProperties),(0,un._)`${a} = ${i}`)))}$r.checkMissingProp=SWt;function xWt(r,e){r.setParams({missingProperty:e},!0),r.error()}$r.reportMissingProp=xWt;function T5e(r){return r.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,un._)`Object.prototype.hasOwnProperty`})}$r.hasPropFunc=T5e;function yae(r,e,t){return(0,un._)`${T5e(r)}.call(${e}, ${t})`}$r.isOwnProperty=yae;function CWt(r,e,t,n){let a=(0,un._)`${e}${(0,un.getProperty)(t)} !== undefined`;return n?(0,un._)`${a} && ${yae(r,e,t)}`:a}$r.propertyInData=CWt;function vae(r,e,t,n){let a=(0,un._)`${e}${(0,un.getProperty)(t)} === undefined`;return n?(0,un.or)(a,(0,un.not)(yae(r,e,t))):a}$r.noPropertyInData=vae;function w5e(r){return r?Object.keys(r).filter(e=>e!=="__proto__"):[]}$r.allSchemaProperties=w5e;function EWt(r,e){return w5e(e).filter(t=>!(0,gae.alwaysValidSchema)(r,e[t]))}$r.schemaProperties=EWt;function DWt({schemaCode:r,data:e,it:{gen:t,topSchemaRef:n,schemaPath:a,errorPath:i},it:s},o,l,c){let d=c?(0,un._)`${r}, ${e}, ${n}${a}`:e,u=[[Jf.default.instancePath,(0,un.strConcat)(Jf.default.instancePath,i)],[Jf.default.parentData,s.parentData],[Jf.default.parentDataProperty,s.parentDataProperty],[Jf.default.rootData,Jf.default.rootData]];s.opts.dynamicRef&&u.push([Jf.default.dynamicAnchors,Jf.default.dynamicAnchors]);let p=(0,un._)`${d}, ${t.object(...u)}`;return l!==un.nil?(0,un._)`${o}.call(${l}, ${p})`:(0,un._)`${o}(${p})`}$r.callValidateCode=DWt;var PWt=(0,un._)`new RegExp`;function MWt({gen:r,it:{opts:e}},t){let n=e.unicodeRegExp?"u":"",{regExp:a}=e.code,i=a(t,n);return r.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,un._)`${a.code==="new RegExp"?PWt:(0,TWt.useFunc)(r,a)}(${t}, ${n})`})}$r.usePattern=MWt;function AWt(r){let{gen:e,data:t,keyword:n,it:a}=r,i=e.name("valid");if(a.allErrors){let o=e.let("valid",!0);return s(()=>e.assign(o,!1)),o}return e.var(i,!0),s(()=>e.break()),i;function s(o){let l=e.const("len",(0,un._)`${t}.length`);e.forRange("i",0,l,c=>{r.subschema({keyword:n,dataProp:c,dataPropType:gae.Type.Num},i),e.if((0,un.not)(i),o)})}}$r.validateArray=AWt;function _Wt(r){let{gen:e,schema:t,keyword:n,it:a}=r;if(!Array.isArray(t))throw new Error("ajv implementation error");if(t.some(l=>(0,gae.alwaysValidSchema)(a,l))&&!a.opts.unevaluated)return;let s=e.let("valid",!1),o=e.name("_valid");e.block(()=>t.forEach((l,c)=>{let d=r.subschema({keyword:n,schemaProp:c,compositeRule:!0},o);e.assign(s,(0,un._)`${s} || ${o}`),r.mergeValidEvaluated(d,o)||e.if((0,un.not)(s))})),r.result(s,()=>r.reset(),()=>r.error(!0))}$r.validateUnion=_Wt});var C5e=x(Zd=>{"use strict";Object.defineProperty(Zd,"__esModule",{value:!0});Zd.validateKeywordUsage=Zd.validSchemaType=Zd.funcKeywordCode=Zd.macroKeywordCode=void 0;var ts=wt(),nv=Op(),IWt=wl(),NWt=HM();function RWt(r,e){let{gen:t,keyword:n,schema:a,parentSchema:i,it:s}=r,o=e.macro.call(s.self,a,i,s),l=x5e(t,n,o);s.opts.validateSchema!==!1&&s.self.validateSchema(o,!0);let c=t.name("valid");r.subschema({schema:o,schemaPath:ts.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:l,compositeRule:!0},c),r.pass(c,()=>r.error(!0))}Zd.macroKeywordCode=RWt;function FWt(r,e){var t;let{gen:n,keyword:a,schema:i,parentSchema:s,$data:o,it:l}=r;LWt(l,e);let c=!o&&e.compile?e.compile.call(l.self,i,s,l):e.validate,d=x5e(n,a,c),u=n.let("valid");r.block$data(u,p),r.ok((t=e.valid)!==null&&t!==void 0?t:u);function p(){if(e.errors===!1)h(),e.modifying&&S5e(r),g(()=>r.error());else{let v=e.async?m():f();e.modifying&&S5e(r),g(()=>OWt(r,v))}}function m(){let v=n.let("ruleErrs",null);return n.try(()=>h((0,ts._)`await `),b=>n.assign(u,!1).if((0,ts._)`${b} instanceof ${l.ValidationError}`,()=>n.assign(v,(0,ts._)`${b}.errors`),()=>n.throw(b))),v}function f(){let v=(0,ts._)`${d}.errors`;return n.assign(v,null),h(ts.nil),v}function h(v=e.async?(0,ts._)`await `:ts.nil){let b=l.opts.passContext?nv.default.this:nv.default.self,k=!("compile"in e&&!o||e.schema===!1);n.assign(u,(0,ts._)`${v}${(0,IWt.callValidateCode)(r,d,b,k)}`,e.modifying)}function g(v){var b;n.if((0,ts.not)((b=e.valid)!==null&&b!==void 0?b:u),v)}}Zd.funcKeywordCode=FWt;function S5e(r){let{gen:e,data:t,it:n}=r;e.if(n.parentData,()=>e.assign(t,(0,ts._)`${n.parentData}[${n.parentDataProperty}]`))}function OWt(r,e){let{gen:t}=r;t.if((0,ts._)`Array.isArray(${e})`,()=>{t.assign(nv.default.vErrors,(0,ts._)`${nv.default.vErrors} === null ? ${e} : ${nv.default.vErrors}.concat(${e})`).assign(nv.default.errors,(0,ts._)`${nv.default.vErrors}.length`),(0,NWt.extendErrors)(r)},()=>r.error())}function LWt({schemaEnv:r},e){if(e.async&&!r.$async)throw new Error("async keyword in sync schema")}function x5e(r,e,t){if(t===void 0)throw new Error(`keyword "${e}" failed to compile`);return r.scopeValue("keyword",typeof t=="function"?{ref:t}:{ref:t,code:(0,ts.stringify)(t)})}function zWt(r,e,t=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(r):n==="object"?r&&typeof r=="object"&&!Array.isArray(r):typeof r==n||t&&typeof r=="undefined")}Zd.validSchemaType=zWt;function jWt({schema:r,opts:e,self:t,errSchemaPath:n},a,i){if(Array.isArray(a.keyword)?!a.keyword.includes(i):a.keyword!==i)throw new Error("ajv implementation error");let s=a.dependencies;if(s!=null&&s.some(o=>!Object.prototype.hasOwnProperty.call(r,o)))throw new Error(`parent schema must have dependencies of ${i}: ${s.join(",")}`);if(a.validateSchema&&!a.validateSchema(r[i])){let l=`keyword "${i}" value is invalid at path "${n}": `+t.errorsText(a.validateSchema.errors);if(e.validateSchema==="log")t.logger.error(l);else throw new Error(l)}}Zd.validateKeywordUsage=jWt});var D5e=x(Xf=>{"use strict";Object.defineProperty(Xf,"__esModule",{value:!0});Xf.extendSubschemaMode=Xf.extendSubschemaData=Xf.getSubschema=void 0;var Qd=wt(),E5e=sr();function $Wt(r,{keyword:e,schemaProp:t,schema:n,schemaPath:a,errSchemaPath:i,topSchemaRef:s}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let o=r.schema[e];return t===void 0?{schema:o,schemaPath:(0,Qd._)`${r.schemaPath}${(0,Qd.getProperty)(e)}`,errSchemaPath:`${r.errSchemaPath}/${e}`}:{schema:o[t],schemaPath:(0,Qd._)`${r.schemaPath}${(0,Qd.getProperty)(e)}${(0,Qd.getProperty)(t)}`,errSchemaPath:`${r.errSchemaPath}/${e}/${(0,E5e.escapeFragment)(t)}`}}if(n!==void 0){if(a===void 0||i===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:a,topSchemaRef:s,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Xf.getSubschema=$Wt;function BWt(r,e,{dataProp:t,dataPropType:n,data:a,dataTypes:i,propertyName:s}){if(a!==void 0&&t!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=e;if(t!==void 0){let{errorPath:c,dataPathArr:d,opts:u}=e,p=o.let("data",(0,Qd._)`${e.data}${(0,Qd.getProperty)(t)}`,!0);l(p),r.errorPath=(0,Qd.str)`${c}${(0,E5e.getErrorPath)(t,n,u.jsPropertySyntax)}`,r.parentDataProperty=(0,Qd._)`${t}`,r.dataPathArr=[...d,r.parentDataProperty]}if(a!==void 0){let c=a instanceof Qd.Name?a:o.let("data",a,!0);l(c),s!==void 0&&(r.propertyName=s)}i&&(r.dataTypes=i);function l(c){r.data=c,r.dataLevel=e.dataLevel+1,r.dataTypes=[],e.definedProperties=new Set,r.parentData=e.data,r.dataNames=[...e.dataNames,c]}}Xf.extendSubschemaData=BWt;function UWt(r,{jtdDiscriminator:e,jtdMetadata:t,compositeRule:n,createErrors:a,allErrors:i}){n!==void 0&&(r.compositeRule=n),a!==void 0&&(r.createErrors=a),i!==void 0&&(r.allErrors=i),r.jtdDiscriminator=e,r.jtdMetadata=t}Xf.extendSubschemaMode=UWt});var M5e=x((Wtn,P5e)=>{"use strict";var eh=P5e.exports=function(r,e,t){typeof e=="function"&&(t=e,e={}),t=e.cb||t;var n=typeof t=="function"?t:t.pre||function(){},a=t.post||function(){};s$(e,n,a,r,"",r)};eh.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};eh.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};eh.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};eh.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function s$(r,e,t,n,a,i,s,o,l,c){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,a,i,s,o,l,c);for(var d in n){var u=n[d];if(Array.isArray(u)){if(d in eh.arrayKeywords)for(var p=0;p<u.length;p++)s$(r,e,t,u[p],a+"/"+d+"/"+p,i,a,d,n,p)}else if(d in eh.propsKeywords){if(u&&typeof u=="object")for(var m in u)s$(r,e,t,u[m],a+"/"+d+"/"+HWt(m),i,a,d,n,m)}else(d in eh.keywords||r.allKeys&&!(d in eh.skipKeywords))&&s$(r,e,t,u,a+"/"+d,i,a,d,n)}t(n,a,i,s,o,l,c)}}function HWt(r){return r.replace(/~/g,"~0").replace(/\//g,"~1")}});var qM=x(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});Os.getSchemaRefs=Os.resolveUrl=Os.normalizeId=Os._getFullPath=Os.getFullPath=Os.inlineRef=void 0;var VWt=sr(),qWt=gM(),WWt=M5e(),YWt=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function GWt(r,e=!0){return typeof r=="boolean"?!0:e===!0?!kae(r):e?A5e(r)<=e:!1}Os.inlineRef=GWt;var KWt=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function kae(r){for(let e in r){if(KWt.has(e))return!0;let t=r[e];if(Array.isArray(t)&&t.some(kae)||typeof t=="object"&&kae(t))return!0}return!1}function A5e(r){let e=0;for(let t in r){if(t==="$ref")return 1/0;if(e++,!YWt.has(t)&&(typeof r[t]=="object"&&(0,VWt.eachItem)(r[t],n=>e+=A5e(n)),e===1/0))return 1/0}return e}function _5e(r,e="",t){t!==!1&&(e=Dw(e));let n=r.parse(e);return I5e(r,n)}Os.getFullPath=_5e;function I5e(r,e){return r.serialize(e).split("#")[0]+"#"}Os._getFullPath=I5e;var ZWt=/#\/?$/;function Dw(r){return r?r.replace(ZWt,""):""}Os.normalizeId=Dw;function QWt(r,e,t){return t=Dw(t),r.resolve(e,t)}Os.resolveUrl=QWt;var JWt=/^[a-z_][-a-z0-9._]*$/i;function XWt(r,e){if(typeof r=="boolean")return{};let{schemaId:t,uriResolver:n}=this.opts,a=Dw(r[t]||e),i={"":a},s=_5e(n,a,!1),o={},l=new Set;return WWt(r,{allKeys:!0},(u,p,m,f)=>{if(f===void 0)return;let h=s+p,g=i[f];typeof u[t]=="string"&&(g=v.call(this,u[t])),b.call(this,u.$anchor),b.call(this,u.$dynamicAnchor),i[p]=g;function v(k){let w=this.opts.uriResolver.resolve;if(k=Dw(g?w(g,k):k),l.has(k))throw d(k);l.add(k);let S=this.refs[k];return typeof S=="string"&&(S=this.refs[S]),typeof S=="object"?c(u,S.schema,k):k!==Dw(h)&&(k[0]==="#"?(c(u,o[k],k),o[k]=u):this.refs[k]=h),k}function b(k){if(typeof k=="string"){if(!JWt.test(k))throw new Error(`invalid anchor "${k}"`);v.call(this,`#${k}`)}}}),o;function c(u,p,m){if(p!==void 0&&!qWt(u,p))throw d(m)}function d(u){return new Error(`reference "${u}" resolves to more than one schema`)}}Os.getSchemaRefs=XWt});var GM=x(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});th.getData=th.KeywordCxt=th.validateFunctionCode=void 0;var L5e=m5e(),N5e=VM(),Tae=pae(),o$=VM(),e4t=b5e(),YM=C5e(),bae=D5e(),$e=wt(),ct=Op(),t4t=qM(),Lp=sr(),WM=HM();function r4t(r){if($5e(r)&&(B5e(r),j5e(r))){i4t(r);return}z5e(r,()=>(0,L5e.topBoolOrEmptySchema)(r))}th.validateFunctionCode=r4t;function z5e({gen:r,validateName:e,schema:t,schemaEnv:n,opts:a},i){a.code.es5?r.func(e,(0,$e._)`${ct.default.data}, ${ct.default.valCxt}`,n.$async,()=>{r.code((0,$e._)`"use strict"; ${R5e(t,a)}`),a4t(r,a),r.code(i)}):r.func(e,(0,$e._)`${ct.default.data}, ${n4t(a)}`,n.$async,()=>r.code(R5e(t,a)).code(i))}function n4t(r){return(0,$e._)`{${ct.default.instancePath}="", ${ct.default.parentData}, ${ct.default.parentDataProperty}, ${ct.default.rootData}=${ct.default.data}${r.dynamicRef?(0,$e._)`, ${ct.default.dynamicAnchors}={}`:$e.nil}}={}`}function a4t(r,e){r.if(ct.default.valCxt,()=>{r.var(ct.default.instancePath,(0,$e._)`${ct.default.valCxt}.${ct.default.instancePath}`),r.var(ct.default.parentData,(0,$e._)`${ct.default.valCxt}.${ct.default.parentData}`),r.var(ct.default.parentDataProperty,(0,$e._)`${ct.default.valCxt}.${ct.default.parentDataProperty}`),r.var(ct.default.rootData,(0,$e._)`${ct.default.valCxt}.${ct.default.rootData}`),e.dynamicRef&&r.var(ct.default.dynamicAnchors,(0,$e._)`${ct.default.valCxt}.${ct.default.dynamicAnchors}`)},()=>{r.var(ct.default.instancePath,(0,$e._)`""`),r.var(ct.default.parentData,(0,$e._)`undefined`),r.var(ct.default.parentDataProperty,(0,$e._)`undefined`),r.var(ct.default.rootData,ct.default.data),e.dynamicRef&&r.var(ct.default.dynamicAnchors,(0,$e._)`{}`)})}function i4t(r){let{schema:e,opts:t,gen:n}=r;z5e(r,()=>{t.$comment&&e.$comment&&H5e(r),d4t(r),n.let(ct.default.vErrors,null),n.let(ct.default.errors,0),t.unevaluated&&s4t(r),U5e(r),m4t(r)})}function s4t(r){let{gen:e,validateName:t}=r;r.evaluated=e.const("evaluated",(0,$e._)`${t}.evaluated`),e.if((0,$e._)`${r.evaluated}.dynamicProps`,()=>e.assign((0,$e._)`${r.evaluated}.props`,(0,$e._)`undefined`)),e.if((0,$e._)`${r.evaluated}.dynamicItems`,()=>e.assign((0,$e._)`${r.evaluated}.items`,(0,$e._)`undefined`))}function R5e(r,e){let t=typeof r=="object"&&r[e.schemaId];return t&&(e.code.source||e.code.process)?(0,$e._)`/*# sourceURL=${t} */`:$e.nil}function o4t(r,e){if($5e(r)&&(B5e(r),j5e(r))){l4t(r,e);return}(0,L5e.boolOrEmptySchema)(r,e)}function j5e({schema:r,self:e}){if(typeof r=="boolean")return!r;for(let t in r)if(e.RULES.all[t])return!0;return!1}function $5e(r){return typeof r.schema!="boolean"}function l4t(r,e){let{schema:t,gen:n,opts:a}=r;a.$comment&&t.$comment&&H5e(r),u4t(r),p4t(r);let i=n.const("_errs",ct.default.errors);U5e(r,i),n.var(e,(0,$e._)`${i} === ${ct.default.errors}`)}function B5e(r){(0,Lp.checkUnknownRules)(r),c4t(r)}function U5e(r,e){if(r.opts.jtd)return F5e(r,[],!1,e);let t=(0,N5e.getSchemaTypes)(r.schema),n=(0,N5e.coerceAndCheckDataType)(r,t);F5e(r,t,!n,e)}function c4t(r){let{schema:e,errSchemaPath:t,opts:n,self:a}=r;e.$ref&&n.ignoreKeywordsWithRef&&(0,Lp.schemaHasRulesButRef)(e,a.RULES)&&a.logger.warn(`$ref: keywords ignored in schema at path "${t}"`)}function d4t(r){let{schema:e,opts:t}=r;e.default!==void 0&&t.useDefaults&&t.strictSchema&&(0,Lp.checkStrictMode)(r,"default is ignored in the schema root")}function u4t(r){let e=r.schema[r.opts.schemaId];e&&(r.baseId=(0,t4t.resolveUrl)(r.opts.uriResolver,r.baseId,e))}function p4t(r){if(r.schema.$async&&!r.schemaEnv.$async)throw new Error("async schema in sync schema")}function H5e({gen:r,schemaEnv:e,schema:t,errSchemaPath:n,opts:a}){let i=t.$comment;if(a.$comment===!0)r.code((0,$e._)`${ct.default.self}.logger.log(${i})`);else if(typeof a.$comment=="function"){let s=(0,$e.str)`${n}/$comment`,o=r.scopeValue("root",{ref:e.root});r.code((0,$e._)`${ct.default.self}.opts.$comment(${i}, ${s}, ${o}.schema)`)}}function m4t(r){let{gen:e,schemaEnv:t,validateName:n,ValidationError:a,opts:i}=r;t.$async?e.if((0,$e._)`${ct.default.errors} === 0`,()=>e.return(ct.default.data),()=>e.throw((0,$e._)`new ${a}(${ct.default.vErrors})`)):(e.assign((0,$e._)`${n}.errors`,ct.default.vErrors),i.unevaluated&&f4t(r),e.return((0,$e._)`${ct.default.errors} === 0`))}function f4t({gen:r,evaluated:e,props:t,items:n}){t instanceof $e.Name&&r.assign((0,$e._)`${e}.props`,t),n instanceof $e.Name&&r.assign((0,$e._)`${e}.items`,n)}function F5e(r,e,t,n){let{gen:a,schema:i,data:s,allErrors:o,opts:l,self:c}=r,{RULES:d}=c;if(i.$ref&&(l.ignoreKeywordsWithRef||!(0,Lp.schemaHasRulesButRef)(i,d))){a.block(()=>q5e(r,"$ref",d.all.$ref.definition));return}l.jtd||h4t(r,e),a.block(()=>{for(let p of d.rules)u(p);u(d.post)});function u(p){(0,Tae.shouldUseGroup)(i,p)&&(p.type?(a.if((0,o$.checkDataType)(p.type,s,l.strictNumbers)),O5e(r,p),e.length===1&&e[0]===p.type&&t&&(a.else(),(0,o$.reportTypeError)(r)),a.endIf()):O5e(r,p),o||a.if((0,$e._)`${ct.default.errors} === ${n||0}`))}}function O5e(r,e){let{gen:t,schema:n,opts:{useDefaults:a}}=r;a&&(0,e4t.assignDefaults)(r,e.type),t.block(()=>{for(let i of e.rules)(0,Tae.shouldUseRule)(n,i)&&q5e(r,i.keyword,i.definition,e.type)})}function h4t(r,e){r.schemaEnv.meta||!r.opts.strictTypes||(g4t(r,e),r.opts.allowUnionTypes||y4t(r,e),v4t(r,r.dataTypes))}function g4t(r,e){if(e.length){if(!r.dataTypes.length){r.dataTypes=e;return}e.forEach(t=>{V5e(r.dataTypes,t)||wae(r,`type "${t}" not allowed by context "${r.dataTypes.join(",")}"`)}),b4t(r,e)}}function y4t(r,e){e.length>1&&!(e.length===2&&e.includes("null"))&&wae(r,"use allowUnionTypes to allow union type keyword")}function v4t(r,e){let t=r.self.RULES.all;for(let n in t){let a=t[n];if(typeof a=="object"&&(0,Tae.shouldUseRule)(r.schema,a)){let{type:i}=a.definition;i.length&&!i.some(s=>k4t(e,s))&&wae(r,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function k4t(r,e){return r.includes(e)||e==="number"&&r.includes("integer")}function V5e(r,e){return r.includes(e)||e==="integer"&&r.includes("number")}function b4t(r,e){let t=[];for(let n of r.dataTypes)V5e(e,n)?t.push(n):e.includes("integer")&&n==="number"&&t.push("integer");r.dataTypes=t}function wae(r,e){let t=r.schemaEnv.baseId+r.errSchemaPath;e+=` at "${t}" (strictTypes)`,(0,Lp.checkStrictMode)(r,e,r.opts.strictTypes)}var l$=class{constructor(e,t,n){if((0,YM.validateKeywordUsage)(e,t,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Lp.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",W5e(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,YM.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:t.errors!==!1)&&(this.errsCount=e.gen.const("_errs",ct.default.errors))}result(e,t,n){this.failResult((0,$e.not)(e),t,n)}failResult(e,t,n){this.gen.if(e),n?n():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,t){this.failResult((0,$e.not)(e),void 0,t)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:t}=this;this.fail((0,$e._)`${t} !== undefined && (${(0,$e.or)(this.invalid$data(),e)})`)}error(e,t,n){if(t){this.setParams(t),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,t){(e?WM.reportExtraError:WM.reportError)(this,this.def.error,t)}$dataError(){(0,WM.reportError)(this,this.def.$dataError||WM.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,WM.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,t){t?Object.assign(this.params,e):this.params=e}block$data(e,t,n=$e.nil){this.gen.block(()=>{this.check$data(e,n),t()})}check$data(e=$e.nil,t=$e.nil){if(!this.$data)return;let{gen:n,schemaCode:a,schemaType:i,def:s}=this;n.if((0,$e.or)((0,$e._)`${a} === undefined`,t)),e!==$e.nil&&n.assign(e,!0),(i.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==$e.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:t,schemaType:n,def:a,it:i}=this;return(0,$e.or)(s(),o());function s(){if(n.length){if(!(t instanceof $e.Name))throw new Error("ajv implementation error");let l=Array.isArray(n)?n:[n];return(0,$e._)`${(0,o$.checkDataTypes)(l,t,i.opts.strictNumbers,o$.DataType.Wrong)}`}return $e.nil}function o(){if(a.validateSchema){let l=e.scopeValue("validate$data",{ref:a.validateSchema});return(0,$e._)`!${l}(${t})`}return $e.nil}}subschema(e,t){let n=(0,bae.getSubschema)(this.it,e);(0,bae.extendSubschemaData)(n,this.it,e),(0,bae.extendSubschemaMode)(n,e);let a={...this.it,...n,items:void 0,props:void 0};return o4t(a,t),a}mergeEvaluated(e,t){let{it:n,gen:a}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=Lp.mergeEvaluated.props(a,e.props,n.props,t)),n.items!==!0&&e.items!==void 0&&(n.items=Lp.mergeEvaluated.items(a,e.items,n.items,t)))}mergeValidEvaluated(e,t){let{it:n,gen:a}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return a.if(t,()=>this.mergeEvaluated(e,$e.Name)),!0}};th.KeywordCxt=l$;function q5e(r,e,t,n){let a=new l$(r,t,e);"code"in t?t.code(a,n):a.$data&&t.validate?(0,YM.funcKeywordCode)(a,t):"macro"in t?(0,YM.macroKeywordCode)(a,t):(t.compile||t.validate)&&(0,YM.funcKeywordCode)(a,t)}var T4t=/^\/(?:[^~]|~0|~1)*$/,w4t=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function W5e(r,{dataLevel:e,dataNames:t,dataPathArr:n}){let a,i;if(r==="")return ct.default.rootData;if(r[0]==="/"){if(!T4t.test(r))throw new Error(`Invalid JSON-pointer: ${r}`);a=r,i=ct.default.rootData}else{let c=w4t.exec(r);if(!c)throw new Error(`Invalid JSON-pointer: ${r}`);let d=+c[1];if(a=c[2],a==="#"){if(d>=e)throw new Error(l("property/index",d));return n[e-d]}if(d>e)throw new Error(l("data",d));if(i=t[e-d],!a)return i}let s=i,o=a.split("/");for(let c of o)c&&(i=(0,$e._)`${i}${(0,$e.getProperty)((0,Lp.unescapeJsonPointer)(c))}`,s=(0,$e._)`${s} && ${i}`);return s;function l(c,d){return`Cannot access ${c} ${d} levels up, current level is ${e}`}}th.getData=W5e});var c$=x(xae=>{"use strict";Object.defineProperty(xae,"__esModule",{value:!0});var Sae=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};xae.default=Sae});var KM=x(Dae=>{"use strict";Object.defineProperty(Dae,"__esModule",{value:!0});var Cae=qM(),Eae=class extends Error{constructor(e,t,n,a){super(a||`can't resolve reference ${n} from id ${t}`),this.missingRef=(0,Cae.resolveUrl)(e,t,n),this.missingSchema=(0,Cae.normalizeId)((0,Cae.getFullPath)(e,this.missingRef))}};Dae.default=Eae});var u$=x(Sl=>{"use strict";Object.defineProperty(Sl,"__esModule",{value:!0});Sl.resolveSchema=Sl.getCompilingSchema=Sl.resolveRef=Sl.compileSchema=Sl.SchemaEnv=void 0;var gc=wt(),S4t=c$(),av=Op(),yc=qM(),Y5e=sr(),x4t=GM(),Pw=class{constructor(e){var t;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0,yc.normalizeId)(n==null?void 0:n[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n==null?void 0:n.$async,this.refs={}}};Sl.SchemaEnv=Pw;function Mae(r){let e=G5e.call(this,r);if(e)return e;let t=(0,yc.getFullPath)(this.opts.uriResolver,r.root.baseId),{es5:n,lines:a}=this.opts.code,{ownProperties:i}=this.opts,s=new gc.CodeGen(this.scope,{es5:n,lines:a,ownProperties:i}),o;r.$async&&(o=s.scopeValue("Error",{ref:S4t.default,code:(0,gc._)`require("ajv/dist/runtime/validation_error").default`}));let l=s.scopeName("validate");r.validateName=l;let c={gen:s,allErrors:this.opts.allErrors,data:av.default.data,parentData:av.default.parentData,parentDataProperty:av.default.parentDataProperty,dataNames:[av.default.data],dataPathArr:[gc.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===!0?{ref:r.schema,code:(0,gc.stringify)(r.schema)}:{ref:r.schema}),validateName:l,ValidationError:o,schema:r.schema,schemaEnv:r,rootId:t,baseId:r.baseId||t,schemaPath:gc.nil,errSchemaPath:r.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,gc._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(r),(0,x4t.validateFunctionCode)(c),s.optimize(this.opts.code.optimize);let u=s.toString();d=`${s.scopeRefs(av.default.scope)}return ${u}`,this.opts.code.process&&(d=this.opts.code.process(d,r));let m=new Function(`${av.default.self}`,`${av.default.scope}`,d)(this,this.scope.get());if(this.scope.value(l,{ref:m}),m.errors=null,m.schema=r.schema,m.schemaEnv=r,r.$async&&(m.$async=!0),this.opts.code.source===!0&&(m.source={validateName:l,validateCode:u,scopeValues:s._values}),this.opts.unevaluated){let{props:f,items:h}=c;m.evaluated={props:f instanceof gc.Name?void 0:f,items:h instanceof gc.Name?void 0:h,dynamicProps:f instanceof gc.Name,dynamicItems:h instanceof gc.Name},m.source&&(m.source.evaluated=(0,gc.stringify)(m.evaluated))}return r.validate=m,r}catch(u){throw delete r.validate,delete r.validateName,d&&this.logger.error("Error compiling schema, function code:",d),u}finally{this._compilations.delete(r)}}Sl.compileSchema=Mae;function C4t(r,e,t){var n;t=(0,yc.resolveUrl)(this.opts.uriResolver,e,t);let a=r.refs[t];if(a)return a;let i=P4t.call(this,r,t);if(i===void 0){let s=(n=r.localRefs)===null||n===void 0?void 0:n[t],{schemaId:o}=this.opts;s&&(i=new Pw({schema:s,schemaId:o,root:r,baseId:e}))}if(i!==void 0)return r.refs[t]=E4t.call(this,i)}Sl.resolveRef=C4t;function E4t(r){return(0,yc.inlineRef)(r.schema,this.opts.inlineRefs)?r.schema:r.validate?r:Mae.call(this,r)}function G5e(r){for(let e of this._compilations)if(D4t(e,r))return e}Sl.getCompilingSchema=G5e;function D4t(r,e){return r.schema===e.schema&&r.root===e.root&&r.baseId===e.baseId}function P4t(r,e){let t;for(;typeof(t=this.refs[e])=="string";)e=t;return t||this.schemas[e]||d$.call(this,r,e)}function d$(r,e){let t=this.opts.uriResolver.parse(e),n=(0,yc._getFullPath)(this.opts.uriResolver,t),a=(0,yc.getFullPath)(this.opts.uriResolver,r.baseId,void 0);if(Object.keys(r.schema).length>0&&n===a)return Pae.call(this,t,r);let i=(0,yc.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let o=d$.call(this,r,s);return typeof(o==null?void 0:o.schema)!="object"?void 0:Pae.call(this,t,o)}if(typeof(s==null?void 0:s.schema)=="object"){if(s.validate||Mae.call(this,s),i===(0,yc.normalizeId)(e)){let{schema:o}=s,{schemaId:l}=this.opts,c=o[l];return c&&(a=(0,yc.resolveUrl)(this.opts.uriResolver,a,c)),new Pw({schema:o,schemaId:l,root:r,baseId:a})}return Pae.call(this,t,s)}}Sl.resolveSchema=d$;var M4t=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Pae(r,{baseId:e,schema:t,root:n}){var a;if(((a=r.fragment)===null||a===void 0?void 0:a[0])!=="/")return;for(let o of r.fragment.slice(1).split("/")){if(typeof t=="boolean")return;let l=t[(0,Y5e.unescapeFragment)(o)];if(l===void 0)return;t=l;let c=typeof t=="object"&&t[this.opts.schemaId];!M4t.has(o)&&c&&(e=(0,yc.resolveUrl)(this.opts.uriResolver,e,c))}let i;if(typeof t!="boolean"&&t.$ref&&!(0,Y5e.schemaHasRulesButRef)(t,this.RULES)){let o=(0,yc.resolveUrl)(this.opts.uriResolver,e,t.$ref);i=d$.call(this,n,o)}let{schemaId:s}=this.opts;if(i=i||new Pw({schema:t,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var K5e=x((Jtn,A4t)=>{A4t.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var Q5e=x(Aae=>{"use strict";Object.defineProperty(Aae,"__esModule",{value:!0});var Z5e=Wre();Z5e.code='require("ajv/dist/runtime/uri").default';Aae.default=Z5e});var iGe=x(ti=>{"use strict";Object.defineProperty(ti,"__esModule",{value:!0});ti.CodeGen=ti.Name=ti.nil=ti.stringify=ti.str=ti._=ti.KeywordCxt=void 0;var _4t=GM();Object.defineProperty(ti,"KeywordCxt",{enumerable:!0,get:function(){return _4t.KeywordCxt}});var Mw=wt();Object.defineProperty(ti,"_",{enumerable:!0,get:function(){return Mw._}});Object.defineProperty(ti,"str",{enumerable:!0,get:function(){return Mw.str}});Object.defineProperty(ti,"stringify",{enumerable:!0,get:function(){return Mw.stringify}});Object.defineProperty(ti,"nil",{enumerable:!0,get:function(){return Mw.nil}});Object.defineProperty(ti,"Name",{enumerable:!0,get:function(){return Mw.Name}});Object.defineProperty(ti,"CodeGen",{enumerable:!0,get:function(){return Mw.CodeGen}});var I4t=c$(),rGe=KM(),N4t=uae(),ZM=u$(),R4t=wt(),QM=qM(),p$=VM(),Iae=sr(),J5e=K5e(),F4t=Q5e(),nGe=(r,e)=>new RegExp(r,e);nGe.code="new RegExp";var O4t=["removeAdditional","useDefaults","coerceTypes"],L4t=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),z4t={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},j4t={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},X5e=200;function $4t(r){var e,t,n,a,i,s,o,l,c,d,u,p,m,f,h,g,v,b,k,w,S,C,E,D,P;let O=r.strict,z=(e=r.code)===null||e===void 0?void 0:e.optimize,R=z===!0||z===void 0?1:z||0,A=(n=(t=r.code)===null||t===void 0?void 0:t.regExp)!==null&&n!==void 0?n:nGe,F=(a=r.uriResolver)!==null&&a!==void 0?a:F4t.default;return{strictSchema:(s=(i=r.strictSchema)!==null&&i!==void 0?i:O)!==null&&s!==void 0?s:!0,strictNumbers:(l=(o=r.strictNumbers)!==null&&o!==void 0?o:O)!==null&&l!==void 0?l:!0,strictTypes:(d=(c=r.strictTypes)!==null&&c!==void 0?c:O)!==null&&d!==void 0?d:"log",strictTuples:(p=(u=r.strictTuples)!==null&&u!==void 0?u:O)!==null&&p!==void 0?p:"log",strictRequired:(f=(m=r.strictRequired)!==null&&m!==void 0?m:O)!==null&&f!==void 0?f:!1,code:r.code?{...r.code,optimize:R,regExp:A}:{optimize:R,regExp:A},loopRequired:(h=r.loopRequired)!==null&&h!==void 0?h:X5e,loopEnum:(g=r.loopEnum)!==null&&g!==void 0?g:X5e,meta:(v=r.meta)!==null&&v!==void 0?v:!0,messages:(b=r.messages)!==null&&b!==void 0?b:!0,inlineRefs:(k=r.inlineRefs)!==null&&k!==void 0?k:!0,schemaId:(w=r.schemaId)!==null&&w!==void 0?w:"$id",addUsedSchema:(S=r.addUsedSchema)!==null&&S!==void 0?S:!0,validateSchema:(C=r.validateSchema)!==null&&C!==void 0?C:!0,validateFormats:(E=r.validateFormats)!==null&&E!==void 0?E:!0,unicodeRegExp:(D=r.unicodeRegExp)!==null&&D!==void 0?D:!0,int32range:(P=r.int32range)!==null&&P!==void 0?P:!0,uriResolver:F}}var JM=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...$4t(e)};let{es5:t,lines:n}=this.opts.code;this.scope=new R4t.ValueScope({scope:{},prefixes:L4t,es5:t,lines:n}),this.logger=W4t(e.logger);let a=e.validateFormats;e.validateFormats=!1,this.RULES=(0,N4t.getRules)(),eGe.call(this,z4t,e,"NOT SUPPORTED"),eGe.call(this,j4t,e,"DEPRECATED","warn"),this._metaOpts=V4t.call(this),e.formats&&U4t.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&H4t.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),B4t.call(this),e.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:t,schemaId:n}=this.opts,a=J5e;n==="id"&&(a={...J5e},a.id=a.$id,delete a.$id),t&&e&&this.addMetaSchema(a,a[n],!1)}defaultMeta(){let{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[t]||e:void 0}validate(e,t){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let a=n(t);return"$async"in n||(this.errors=n.errors),a}compile(e,t){let n=this._addSchema(e,t);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,t){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return a.call(this,e,t);async function a(d,u){await i.call(this,d.$schema);let p=this._addSchema(d,u);return p.validate||s.call(this,p)}async function i(d){d&&!this.getSchema(d)&&await a.call(this,{$ref:d},!0)}async function s(d){try{return this._compileSchemaEnv(d)}catch(u){if(!(u instanceof rGe.default))throw u;return o.call(this,u),await l.call(this,u.missingSchema),s.call(this,d)}}function o({missingSchema:d,missingRef:u}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${u} cannot be resolved`)}async function l(d){let u=await c.call(this,d);this.refs[d]||await i.call(this,u.$schema),this.refs[d]||this.addSchema(u,d,t)}async function c(d){let u=this._loading[d];if(u)return u;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(e,t,n,a=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,n,a);return this}let i;if(typeof e=="object"){let{schemaId:s}=this.opts;if(i=e[s],i!==void 0&&typeof i!="string")throw new Error(`schema ${s} must be string`)}return t=(0,QM.normalizeId)(t||i),this._checkUnique(t),this.schemas[t]=this._addSchema(e,n,t,a,!0),this}addMetaSchema(e,t,n=this.opts.validateSchema){return this.addSchema(e,t,!0,n),this}validateSchema(e,t){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let a=this.validate(n,e);if(!a&&t){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return a}getSchema(e){let t;for(;typeof(t=tGe.call(this,e))=="string";)e=t;if(t===void 0){let{schemaId:n}=this.opts,a=new ZM.SchemaEnv({schema:{},schemaId:n});if(t=ZM.resolveSchema.call(this,a,e),!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let t=tGe.call(this,e);return typeof t=="object"&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let t=e;this._cache.delete(t);let n=e[this.opts.schemaId];return n&&(n=(0,QM.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let t of e)this.addKeyword(t);return this}addKeyword(e,t){let n;if(typeof e=="string")n=e,typeof t=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=n);else if(typeof e=="object"&&t===void 0){if(t=e,n=t.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(G4t.call(this,n,t),!t)return(0,Iae.eachItem)(n,i=>_ae.call(this,i)),this;Z4t.call(this,t);let a={...t,type:(0,p$.getJSONTypes)(t.type),schemaType:(0,p$.getJSONTypes)(t.schemaType)};return(0,Iae.eachItem)(n,a.type.length===0?i=>_ae.call(this,i,a):i=>a.type.forEach(s=>_ae.call(this,i,a,s))),this}getKeyword(e){let t=this.RULES.all[e];return typeof t=="object"?t.definition:!!t}removeKeyword(e){let{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(let n of t.rules){let a=n.rules.findIndex(i=>i.keyword===e);a>=0&&n.rules.splice(a,1)}return this}addFormat(e,t){return typeof t=="string"&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(a=>`${n}${a.instancePath} ${a.message}`).reduce((a,i)=>a+t+i)}$dataMetaSchema(e,t){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let a of t){let i=a.split("/").slice(1),s=e;for(let o of i)s=s[o];for(let o in n){let l=n[o];if(typeof l!="object")continue;let{$data:c}=l.definition,d=s[o];c&&d&&(s[o]=aGe(d))}}return e}_removeAllSchemas(e,t){for(let n in e){let a=e[n];(!t||t.test(n))&&(typeof a=="string"?delete e[n]:a&&!a.meta&&(this._cache.delete(a.schema),delete e[n]))}}_addSchema(e,t,n,a=this.opts.validateSchema,i=this.opts.addUsedSchema){let s,{schemaId:o}=this.opts;if(typeof e=="object")s=e[o];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let l=this._cache.get(e);if(l!==void 0)return l;n=(0,QM.normalizeId)(s||n);let c=QM.getSchemaRefs.call(this,e,n);return l=new ZM.SchemaEnv({schema:e,schemaId:o,meta:t,baseId:n,localRefs:c}),this._cache.set(l.schema,l),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=l),a&&this.validateSchema(e,!0),l}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):ZM.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let t=this.opts;this.opts=this._metaOpts;try{ZM.compileSchema.call(this,e)}finally{this.opts=t}}};JM.ValidationError=I4t.default;JM.MissingRefError=rGe.default;ti.default=JM;function eGe(r,e,t,n="error"){for(let a in r){let i=a;i in e&&this.logger[n](`${t}: option ${a}. ${r[i]}`)}}function tGe(r){return r=(0,QM.normalizeId)(r),this.schemas[r]||this.refs[r]}function B4t(){let r=this.opts.schemas;if(r)if(Array.isArray(r))this.addSchema(r);else for(let e in r)this.addSchema(r[e],e)}function U4t(){for(let r in this.opts.formats){let e=this.opts.formats[r];e&&this.addFormat(r,e)}}function H4t(r){if(Array.isArray(r)){this.addVocabulary(r);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in r){let t=r[e];t.keyword||(t.keyword=e),this.addKeyword(t)}}function V4t(){let r={...this.opts};for(let e of O4t)delete r[e];return r}var q4t={log(){},warn(){},error(){}};function W4t(r){if(r===!1)return q4t;if(r===void 0)return console;if(r.log&&r.warn&&r.error)return r;throw new Error("logger must implement log, warn and error methods")}var Y4t=/^[a-z_$][a-z0-9_$:-]*$/i;function G4t(r,e){let{RULES:t}=this;if((0,Iae.eachItem)(r,n=>{if(t.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Y4t.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function _ae(r,e,t){var n;let a=e==null?void 0:e.post;if(t&&a)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,s=a?i.post:i.rules.find(({type:l})=>l===t);if(s||(s={type:t,rules:[]},i.rules.push(s)),i.keywords[r]=!0,!e)return;let o={keyword:r,definition:{...e,type:(0,p$.getJSONTypes)(e.type),schemaType:(0,p$.getJSONTypes)(e.schemaType)}};e.before?K4t.call(this,s,o,e.before):s.rules.push(o),i.all[r]=o,(n=e.implements)===null||n===void 0||n.forEach(l=>this.addKeyword(l))}function K4t(r,e,t){let n=r.rules.findIndex(a=>a.keyword===t);n>=0?r.rules.splice(n,0,e):(r.rules.push(e),this.logger.warn(`rule ${t} is not defined`))}function Z4t(r){let{metaSchema:e}=r;e!==void 0&&(r.$data&&this.opts.$data&&(e=aGe(e)),r.validateSchema=this.compile(e,!0))}var Q4t={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function aGe(r){return{anyOf:[r,Q4t]}}});var sGe=x(Nae=>{"use strict";Object.defineProperty(Nae,"__esModule",{value:!0});var J4t={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Nae.default=J4t});var dGe=x(iv=>{"use strict";Object.defineProperty(iv,"__esModule",{value:!0});iv.callRef=iv.getValidate=void 0;var X4t=KM(),oGe=wl(),Ls=wt(),Aw=Op(),lGe=u$(),m$=sr(),e3t={keyword:"$ref",schemaType:"string",code(r){let{gen:e,schema:t,it:n}=r,{baseId:a,schemaEnv:i,validateName:s,opts:o,self:l}=n,{root:c}=i;if((t==="#"||t==="#/")&&a===c.baseId)return u();let d=lGe.resolveRef.call(l,c,a,t);if(d===void 0)throw new X4t.default(n.opts.uriResolver,a,t);if(d instanceof lGe.SchemaEnv)return p(d);return m(d);function u(){if(i===c)return f$(r,s,i,i.$async);let f=e.scopeValue("root",{ref:c});return f$(r,(0,Ls._)`${f}.validate`,c,c.$async)}function p(f){let h=cGe(r,f);f$(r,h,f,f.$async)}function m(f){let h=e.scopeValue("schema",o.code.source===!0?{ref:f,code:(0,Ls.stringify)(f)}:{ref:f}),g=e.name("valid"),v=r.subschema({schema:f,dataTypes:[],schemaPath:Ls.nil,topSchemaRef:h,errSchemaPath:t},g);r.mergeEvaluated(v),r.ok(g)}}};function cGe(r,e){let{gen:t}=r;return e.validate?t.scopeValue("validate",{ref:e.validate}):(0,Ls._)`${t.scopeValue("wrapper",{ref:e})}.validate`}iv.getValidate=cGe;function f$(r,e,t,n){let{gen:a,it:i}=r,{allErrors:s,schemaEnv:o,opts:l}=i,c=l.passContext?Aw.default.this:Ls.nil;n?d():u();function d(){if(!o.$async)throw new Error("async schema referenced by sync schema");let f=a.let("valid");a.try(()=>{a.code((0,Ls._)`await ${(0,oGe.callValidateCode)(r,e,c)}`),m(e),s||a.assign(f,!0)},h=>{a.if((0,Ls._)`!(${h} instanceof ${i.ValidationError})`,()=>a.throw(h)),p(h),s||a.assign(f,!1)}),r.ok(f)}function u(){r.result((0,oGe.callValidateCode)(r,e,c),()=>m(e),()=>p(e))}function p(f){let h=(0,Ls._)`${f}.errors`;a.assign(Aw.default.vErrors,(0,Ls._)`${Aw.default.vErrors} === null ? ${h} : ${Aw.default.vErrors}.concat(${h})`),a.assign(Aw.default.errors,(0,Ls._)`${Aw.default.vErrors}.length`)}function m(f){var h;if(!i.opts.unevaluated)return;let g=(h=t==null?void 0:t.validate)===null||h===void 0?void 0:h.evaluated;if(i.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(i.props=m$.mergeEvaluated.props(a,g.props,i.props));else{let v=a.var("props",(0,Ls._)`${f}.evaluated.props`);i.props=m$.mergeEvaluated.props(a,v,i.props,Ls.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=m$.mergeEvaluated.items(a,g.items,i.items));else{let v=a.var("items",(0,Ls._)`${f}.evaluated.items`);i.items=m$.mergeEvaluated.items(a,v,i.items,Ls.Name)}}}iv.callRef=f$;iv.default=e3t});var uGe=x(Rae=>{"use strict";Object.defineProperty(Rae,"__esModule",{value:!0});var t3t=sGe(),r3t=dGe(),n3t=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t3t.default,r3t.default];Rae.default=n3t});var pGe=x(Fae=>{"use strict";Object.defineProperty(Fae,"__esModule",{value:!0});var h$=wt(),rh=h$.operators,g$={maximum:{okStr:"<=",ok:rh.LTE,fail:rh.GT},minimum:{okStr:">=",ok:rh.GTE,fail:rh.LT},exclusiveMaximum:{okStr:"<",ok:rh.LT,fail:rh.GTE},exclusiveMinimum:{okStr:">",ok:rh.GT,fail:rh.LTE}},a3t={message:({keyword:r,schemaCode:e})=>(0,h$.str)`must be ${g$[r].okStr} ${e}`,params:({keyword:r,schemaCode:e})=>(0,h$._)`{comparison: ${g$[r].okStr}, limit: ${e}}`},i3t={keyword:Object.keys(g$),type:"number",schemaType:"number",$data:!0,error:a3t,code(r){let{keyword:e,data:t,schemaCode:n}=r;r.fail$data((0,h$._)`${t} ${g$[e].fail} ${n} || isNaN(${t})`)}};Fae.default=i3t});var mGe=x(Oae=>{"use strict";Object.defineProperty(Oae,"__esModule",{value:!0});var XM=wt(),s3t={message:({schemaCode:r})=>(0,XM.str)`must be multiple of ${r}`,params:({schemaCode:r})=>(0,XM._)`{multipleOf: ${r}}`},o3t={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:s3t,code(r){let{gen:e,data:t,schemaCode:n,it:a}=r,i=a.opts.multipleOfPrecision,s=e.let("res"),o=i?(0,XM._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,XM._)`${s} !== parseInt(${s})`;r.fail$data((0,XM._)`(${n} === 0 || (${s} = ${t}/${n}, ${o}))`)}};Oae.default=o3t});var hGe=x(Lae=>{"use strict";Object.defineProperty(Lae,"__esModule",{value:!0});function fGe(r){let e=r.length,t=0,n=0,a;for(;n<e;)t++,a=r.charCodeAt(n++),a>=55296&&a<=56319&&n<e&&(a=r.charCodeAt(n),(a&64512)===56320&&n++);return t}Lae.default=fGe;fGe.code='require("ajv/dist/runtime/ucs2length").default'});var gGe=x(zae=>{"use strict";Object.defineProperty(zae,"__esModule",{value:!0});var sv=wt(),l3t=sr(),c3t=hGe(),d3t={message({keyword:r,schemaCode:e}){let t=r==="maxLength"?"more":"fewer";return(0,sv.str)`must NOT have ${t} than ${e} characters`},params:({schemaCode:r})=>(0,sv._)`{limit: ${r}}`},u3t={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:d3t,code(r){let{keyword:e,data:t,schemaCode:n,it:a}=r,i=e==="maxLength"?sv.operators.GT:sv.operators.LT,s=a.opts.unicode===!1?(0,sv._)`${t}.length`:(0,sv._)`${(0,l3t.useFunc)(r.gen,c3t.default)}(${t})`;r.fail$data((0,sv._)`${s} ${i} ${n}`)}};zae.default=u3t});var yGe=x(jae=>{"use strict";Object.defineProperty(jae,"__esModule",{value:!0});var p3t=wl(),m3t=sr(),_w=wt(),f3t={message:({schemaCode:r})=>(0,_w.str)`must match pattern "${r}"`,params:({schemaCode:r})=>(0,_w._)`{pattern: ${r}}`},h3t={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:f3t,code(r){let{gen:e,data:t,$data:n,schema:a,schemaCode:i,it:s}=r,o=s.opts.unicodeRegExp?"u":"";if(n){let{regExp:l}=s.opts.code,c=l.code==="new RegExp"?(0,_w._)`new RegExp`:(0,m3t.useFunc)(e,l),d=e.let("valid");e.try(()=>e.assign(d,(0,_w._)`${c}(${i}, ${o}).test(${t})`),()=>e.assign(d,!1)),r.fail$data((0,_w._)`!${d}`)}else{let l=(0,p3t.usePattern)(r,a);r.fail$data((0,_w._)`!${l}.test(${t})`)}}};jae.default=h3t});var vGe=x($ae=>{"use strict";Object.defineProperty($ae,"__esModule",{value:!0});var eA=wt(),g3t={message({keyword:r,schemaCode:e}){let t=r==="maxProperties"?"more":"fewer";return(0,eA.str)`must NOT have ${t} than ${e} properties`},params:({schemaCode:r})=>(0,eA._)`{limit: ${r}}`},y3t={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:g3t,code(r){let{keyword:e,data:t,schemaCode:n}=r,a=e==="maxProperties"?eA.operators.GT:eA.operators.LT;r.fail$data((0,eA._)`Object.keys(${t}).length ${a} ${n}`)}};$ae.default=y3t});var kGe=x(Bae=>{"use strict";Object.defineProperty(Bae,"__esModule",{value:!0});var tA=wl(),rA=wt(),v3t=sr(),k3t={message:({params:{missingProperty:r}})=>(0,rA.str)`must have required property '${r}'`,params:({params:{missingProperty:r}})=>(0,rA._)`{missingProperty: ${r}}`},b3t={keyword:"required",type:"object",schemaType:"array",$data:!0,error:k3t,code(r){let{gen:e,schema:t,schemaCode:n,data:a,$data:i,it:s}=r,{opts:o}=s;if(!i&&t.length===0)return;let l=t.length>=o.loopRequired;if(s.allErrors?c():d(),o.strictRequired){let m=r.parentSchema.properties,{definedProperties:f}=r.it;for(let h of t)if((m==null?void 0:m[h])===void 0&&!f.has(h)){let g=s.schemaEnv.baseId+s.errSchemaPath,v=`required property "${h}" is not defined at "${g}" (strictRequired)`;(0,v3t.checkStrictMode)(s,v,s.opts.strictRequired)}}function c(){if(l||i)r.block$data(rA.nil,u);else for(let m of t)(0,tA.checkReportMissingProp)(r,m)}function d(){let m=e.let("missing");if(l||i){let f=e.let("valid",!0);r.block$data(f,()=>p(m,f)),r.ok(f)}else e.if((0,tA.checkMissingProp)(r,t,m)),(0,tA.reportMissingProp)(r,m),e.else()}function u(){e.forOf("prop",n,m=>{r.setParams({missingProperty:m}),e.if((0,tA.noPropertyInData)(e,a,m,o.ownProperties),()=>r.error())})}function p(m,f){r.setParams({missingProperty:m}),e.forOf(m,n,()=>{e.assign(f,(0,tA.propertyInData)(e,a,m,o.ownProperties)),e.if((0,rA.not)(f),()=>{r.error(),e.break()})},rA.nil)}}};Bae.default=b3t});var bGe=x(Uae=>{"use strict";Object.defineProperty(Uae,"__esModule",{value:!0});var nA=wt(),T3t={message({keyword:r,schemaCode:e}){let t=r==="maxItems"?"more":"fewer";return(0,nA.str)`must NOT have ${t} than ${e} items`},params:({schemaCode:r})=>(0,nA._)`{limit: ${r}}`},w3t={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:T3t,code(r){let{keyword:e,data:t,schemaCode:n}=r,a=e==="maxItems"?nA.operators.GT:nA.operators.LT;r.fail$data((0,nA._)`${t}.length ${a} ${n}`)}};Uae.default=w3t});var y$=x(Hae=>{"use strict";Object.defineProperty(Hae,"__esModule",{value:!0});var TGe=gM();TGe.code='require("ajv/dist/runtime/equal").default';Hae.default=TGe});var wGe=x(qae=>{"use strict";Object.defineProperty(qae,"__esModule",{value:!0});var Vae=VM(),ri=wt(),S3t=sr(),x3t=y$(),C3t={message:({params:{i:r,j:e}})=>(0,ri.str)`must NOT have duplicate items (items ## ${e} and ${r} are identical)`,params:({params:{i:r,j:e}})=>(0,ri._)`{i: ${r}, j: ${e}}`},E3t={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:C3t,code(r){let{gen:e,data:t,$data:n,schema:a,parentSchema:i,schemaCode:s,it:o}=r;if(!n&&!a)return;let l=e.let("valid"),c=i.items?(0,Vae.getSchemaTypes)(i.items):[];r.block$data(l,d,(0,ri._)`${s} === false`),r.ok(l);function d(){let f=e.let("i",(0,ri._)`${t}.length`),h=e.let("j");r.setParams({i:f,j:h}),e.assign(l,!0),e.if((0,ri._)`${f} > 1`,()=>(u()?p:m)(f,h))}function u(){return c.length>0&&!c.some(f=>f==="object"||f==="array")}function p(f,h){let g=e.name("item"),v=(0,Vae.checkDataTypes)(c,g,o.opts.strictNumbers,Vae.DataType.Wrong),b=e.const("indices",(0,ri._)`{}`);e.for((0,ri._)`;${f}--;`,()=>{e.let(g,(0,ri._)`${t}[${f}]`),e.if(v,(0,ri._)`continue`),c.length>1&&e.if((0,ri._)`typeof ${g} == "string"`,(0,ri._)`${g} += "_"`),e.if((0,ri._)`typeof ${b}[${g}] == "number"`,()=>{e.assign(h,(0,ri._)`${b}[${g}]`),r.error(),e.assign(l,!1).break()}).code((0,ri._)`${b}[${g}] = ${f}`)})}function m(f,h){let g=(0,S3t.useFunc)(e,x3t.default),v=e.name("outer");e.label(v).for((0,ri._)`;${f}--;`,()=>e.for((0,ri._)`${h} = ${f}; ${h}--;`,()=>e.if((0,ri._)`${g}(${t}[${f}], ${t}[${h}])`,()=>{r.error(),e.assign(l,!1).break(v)})))}}};qae.default=E3t});var SGe=x(Yae=>{"use strict";Object.defineProperty(Yae,"__esModule",{value:!0});var Wae=wt(),D3t=sr(),P3t=y$(),M3t={message:"must be equal to constant",params:({schemaCode:r})=>(0,Wae._)`{allowedValue: ${r}}`},A3t={keyword:"const",$data:!0,error:M3t,code(r){let{gen:e,data:t,$data:n,schemaCode:a,schema:i}=r;n||i&&typeof i=="object"?r.fail$data((0,Wae._)`!${(0,D3t.useFunc)(e,P3t.default)}(${t}, ${a})`):r.fail((0,Wae._)`${i} !== ${t}`)}};Yae.default=A3t});var xGe=x(Gae=>{"use strict";Object.defineProperty(Gae,"__esModule",{value:!0});var aA=wt(),_3t=sr(),I3t=y$(),N3t={message:"must be equal to one of the allowed values",params:({schemaCode:r})=>(0,aA._)`{allowedValues: ${r}}`},R3t={keyword:"enum",schemaType:"array",$data:!0,error:N3t,code(r){let{gen:e,data:t,$data:n,schema:a,schemaCode:i,it:s}=r;if(!n&&a.length===0)throw new Error("enum must have non-empty array");let o=a.length>=s.opts.loopEnum,l,c=()=>l!=null?l:l=(0,_3t.useFunc)(e,I3t.default),d;if(o||n)d=e.let("valid"),r.block$data(d,u);else{if(!Array.isArray(a))throw new Error("ajv implementation error");let m=e.const("vSchema",i);d=(0,aA.or)(...a.map((f,h)=>p(m,h)))}r.pass(d);function u(){e.assign(d,!1),e.forOf("v",i,m=>e.if((0,aA._)`${c()}(${t}, ${m})`,()=>e.assign(d,!0).break()))}function p(m,f){let h=a[f];return typeof h=="object"&&h!==null?(0,aA._)`${c()}(${t}, ${m}[${f}])`:(0,aA._)`${t} === ${h}`}}};Gae.default=R3t});var CGe=x(Kae=>{"use strict";Object.defineProperty(Kae,"__esModule",{value:!0});var F3t=pGe(),O3t=mGe(),L3t=gGe(),z3t=yGe(),j3t=vGe(),$3t=kGe(),B3t=bGe(),U3t=wGe(),H3t=SGe(),V3t=xGe(),q3t=[F3t.default,O3t.default,L3t.default,z3t.default,j3t.default,$3t.default,B3t.default,U3t.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},H3t.default,V3t.default];Kae.default=q3t});var Qae=x(iA=>{"use strict";Object.defineProperty(iA,"__esModule",{value:!0});iA.validateAdditionalItems=void 0;var ov=wt(),Zae=sr(),W3t={message:({params:{len:r}})=>(0,ov.str)`must NOT have more than ${r} items`,params:({params:{len:r}})=>(0,ov._)`{limit: ${r}}`},Y3t={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:W3t,code(r){let{parentSchema:e,it:t}=r,{items:n}=e;if(!Array.isArray(n)){(0,Zae.checkStrictMode)(t,'"additionalItems" is ignored when "items" is not an array of schemas');return}EGe(r,n)}};function EGe(r,e){let{gen:t,schema:n,data:a,keyword:i,it:s}=r;s.items=!0;let o=t.const("len",(0,ov._)`${a}.length`);if(n===!1)r.setParams({len:e.length}),r.pass((0,ov._)`${o} <= ${e.length}`);else if(typeof n=="object"&&!(0,Zae.alwaysValidSchema)(s,n)){let c=t.var("valid",(0,ov._)`${o} <= ${e.length}`);t.if((0,ov.not)(c),()=>l(c)),r.ok(c)}function l(c){t.forRange("i",e.length,o,d=>{r.subschema({keyword:i,dataProp:d,dataPropType:Zae.Type.Num},c),s.allErrors||t.if((0,ov.not)(c),()=>t.break())})}}iA.validateAdditionalItems=EGe;iA.default=Y3t});var Jae=x(sA=>{"use strict";Object.defineProperty(sA,"__esModule",{value:!0});sA.validateTuple=void 0;var DGe=wt(),v$=sr(),G3t=wl(),K3t={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(r){let{schema:e,it:t}=r;if(Array.isArray(e))return PGe(r,"additionalItems",e);t.items=!0,!(0,v$.alwaysValidSchema)(t,e)&&r.ok((0,G3t.validateArray)(r))}};function PGe(r,e,t=r.schema){let{gen:n,parentSchema:a,data:i,keyword:s,it:o}=r;d(a),o.opts.unevaluated&&t.length&&o.items!==!0&&(o.items=v$.mergeEvaluated.items(n,t.length,o.items));let l=n.name("valid"),c=n.const("len",(0,DGe._)`${i}.length`);t.forEach((u,p)=>{(0,v$.alwaysValidSchema)(o,u)||(n.if((0,DGe._)`${c} > ${p}`,()=>r.subschema({keyword:s,schemaProp:p,dataProp:p},l)),r.ok(l))});function d(u){let{opts:p,errSchemaPath:m}=o,f=t.length,h=f===u.minItems&&(f===u.maxItems||u[e]===!1);if(p.strictTuples&&!h){let g=`"${s}" is ${f}-tuple, but minItems or maxItems/${e} are not specified or different at path "${m}"`;(0,v$.checkStrictMode)(o,g,p.strictTuples)}}}sA.validateTuple=PGe;sA.default=K3t});var MGe=x(Xae=>{"use strict";Object.defineProperty(Xae,"__esModule",{value:!0});var Z3t=Jae(),Q3t={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,Z3t.validateTuple)(r,"items")};Xae.default=Q3t});var _Ge=x(eie=>{"use strict";Object.defineProperty(eie,"__esModule",{value:!0});var AGe=wt(),J3t=sr(),X3t=wl(),e6t=Qae(),t6t={message:({params:{len:r}})=>(0,AGe.str)`must NOT have more than ${r} items`,params:({params:{len:r}})=>(0,AGe._)`{limit: ${r}}`},r6t={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:t6t,code(r){let{schema:e,parentSchema:t,it:n}=r,{prefixItems:a}=t;n.items=!0,!(0,J3t.alwaysValidSchema)(n,e)&&(a?(0,e6t.validateAdditionalItems)(r,a):r.ok((0,X3t.validateArray)(r)))}};eie.default=r6t});var IGe=x(tie=>{"use strict";Object.defineProperty(tie,"__esModule",{value:!0});var xl=wt(),k$=sr(),n6t={message:({params:{min:r,max:e}})=>e===void 0?(0,xl.str)`must contain at least ${r} valid item(s)`:(0,xl.str)`must contain at least ${r} and no more than ${e} valid item(s)`,params:({params:{min:r,max:e}})=>e===void 0?(0,xl._)`{minContains: ${r}}`:(0,xl._)`{minContains: ${r}, maxContains: ${e}}`},a6t={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n6t,code(r){let{gen:e,schema:t,parentSchema:n,data:a,it:i}=r,s,o,{minContains:l,maxContains:c}=n;i.opts.next?(s=l===void 0?1:l,o=c):s=1;let d=e.const("len",(0,xl._)`${a}.length`);if(r.setParams({min:s,max:o}),o===void 0&&s===0){(0,k$.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&s>o){(0,k$.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),r.fail();return}if((0,k$.alwaysValidSchema)(i,t)){let h=(0,xl._)`${d} >= ${s}`;o!==void 0&&(h=(0,xl._)`${h} && ${d} <= ${o}`),r.pass(h);return}i.items=!0;let u=e.name("valid");o===void 0&&s===1?m(u,()=>e.if(u,()=>e.break())):s===0?(e.let(u,!0),o!==void 0&&e.if((0,xl._)`${a}.length > 0`,p)):(e.let(u,!1),p()),r.result(u,()=>r.reset());function p(){let h=e.name("_valid"),g=e.let("count",0);m(h,()=>e.if(h,()=>f(g)))}function m(h,g){e.forRange("i",0,d,v=>{r.subschema({keyword:"contains",dataProp:v,dataPropType:k$.Type.Num,compositeRule:!0},h),g()})}function f(h){e.code((0,xl._)`${h}++`),o===void 0?e.if((0,xl._)`${h} >= ${s}`,()=>e.assign(u,!0).break()):(e.if((0,xl._)`${h} > ${o}`,()=>e.assign(u,!1).break()),s===1?e.assign(u,!0):e.if((0,xl._)`${h} >= ${s}`,()=>e.assign(u,!0)))}}};tie.default=a6t});var FGe=x(Jd=>{"use strict";Object.defineProperty(Jd,"__esModule",{value:!0});Jd.validateSchemaDeps=Jd.validatePropertyDeps=Jd.error=void 0;var rie=wt(),i6t=sr(),oA=wl();Jd.error={message:({params:{property:r,depsCount:e,deps:t}})=>{let n=e===1?"property":"properties";return(0,rie.str)`must have ${n} ${t} when property ${r} is present`},params:({params:{property:r,depsCount:e,deps:t,missingProperty:n}})=>(0,rie._)`{property: ${r},
|
||
missingProperty: ${n},
|
||
depsCount: ${e},
|
||
deps: ${t}}`};var s6t={keyword:"dependencies",type:"object",schemaType:"object",error:Jd.error,code(r){let[e,t]=o6t(r);NGe(r,e),RGe(r,t)}};function o6t({schema:r}){let e={},t={};for(let n in r){if(n==="__proto__")continue;let a=Array.isArray(r[n])?e:t;a[n]=r[n]}return[e,t]}function NGe(r,e=r.schema){let{gen:t,data:n,it:a}=r;if(Object.keys(e).length===0)return;let i=t.let("missing");for(let s in e){let o=e[s];if(o.length===0)continue;let l=(0,oA.propertyInData)(t,n,s,a.opts.ownProperties);r.setParams({property:s,depsCount:o.length,deps:o.join(", ")}),a.allErrors?t.if(l,()=>{for(let c of o)(0,oA.checkReportMissingProp)(r,c)}):(t.if((0,rie._)`${l} && (${(0,oA.checkMissingProp)(r,o,i)})`),(0,oA.reportMissingProp)(r,i),t.else())}}Jd.validatePropertyDeps=NGe;function RGe(r,e=r.schema){let{gen:t,data:n,keyword:a,it:i}=r,s=t.name("valid");for(let o in e)(0,i6t.alwaysValidSchema)(i,e[o])||(t.if((0,oA.propertyInData)(t,n,o,i.opts.ownProperties),()=>{let l=r.subschema({keyword:a,schemaProp:o},s);r.mergeValidEvaluated(l,s)},()=>t.var(s,!0)),r.ok(s))}Jd.validateSchemaDeps=RGe;Jd.default=s6t});var LGe=x(nie=>{"use strict";Object.defineProperty(nie,"__esModule",{value:!0});var OGe=wt(),l6t=sr(),c6t={message:"property name must be valid",params:({params:r})=>(0,OGe._)`{propertyName: ${r.propertyName}}`},d6t={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:c6t,code(r){let{gen:e,schema:t,data:n,it:a}=r;if((0,l6t.alwaysValidSchema)(a,t))return;let i=e.name("valid");e.forIn("key",n,s=>{r.setParams({propertyName:s}),r.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:!0},i),e.if((0,OGe.not)(i),()=>{r.error(!0),a.allErrors||e.break()})}),r.ok(i)}};nie.default=d6t});var iie=x(aie=>{"use strict";Object.defineProperty(aie,"__esModule",{value:!0});var b$=wl(),vc=wt(),u6t=Op(),T$=sr(),p6t={message:"must NOT have additional properties",params:({params:r})=>(0,vc._)`{additionalProperty: ${r.additionalProperty}}`},m6t={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:p6t,code(r){let{gen:e,schema:t,parentSchema:n,data:a,errsCount:i,it:s}=r;if(!i)throw new Error("ajv implementation error");let{allErrors:o,opts:l}=s;if(s.props=!0,l.removeAdditional!=="all"&&(0,T$.alwaysValidSchema)(s,t))return;let c=(0,b$.allSchemaProperties)(n.properties),d=(0,b$.allSchemaProperties)(n.patternProperties);u(),r.ok((0,vc._)`${i} === ${u6t.default.errors}`);function u(){e.forIn("key",a,g=>{!c.length&&!d.length?f(g):e.if(p(g),()=>f(g))})}function p(g){let v;if(c.length>8){let b=(0,T$.schemaRefOrVal)(s,n.properties,"properties");v=(0,b$.isOwnProperty)(e,b,g)}else c.length?v=(0,vc.or)(...c.map(b=>(0,vc._)`${g} === ${b}`)):v=vc.nil;return d.length&&(v=(0,vc.or)(v,...d.map(b=>(0,vc._)`${(0,b$.usePattern)(r,b)}.test(${g})`))),(0,vc.not)(v)}function m(g){e.code((0,vc._)`delete ${a}[${g}]`)}function f(g){if(l.removeAdditional==="all"||l.removeAdditional&&t===!1){m(g);return}if(t===!1){r.setParams({additionalProperty:g}),r.error(),o||e.break();return}if(typeof t=="object"&&!(0,T$.alwaysValidSchema)(s,t)){let v=e.name("valid");l.removeAdditional==="failing"?(h(g,v,!1),e.if((0,vc.not)(v),()=>{r.reset(),m(g)})):(h(g,v),o||e.if((0,vc.not)(v),()=>e.break()))}}function h(g,v,b){let k={keyword:"additionalProperties",dataProp:g,dataPropType:T$.Type.Str};b===!1&&Object.assign(k,{compositeRule:!0,createErrors:!1,allErrors:!1}),r.subschema(k,v)}}};aie.default=m6t});var $Ge=x(oie=>{"use strict";Object.defineProperty(oie,"__esModule",{value:!0});var f6t=GM(),zGe=wl(),sie=sr(),jGe=iie(),h6t={keyword:"properties",type:"object",schemaType:"object",code(r){let{gen:e,schema:t,parentSchema:n,data:a,it:i}=r;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&jGe.default.code(new f6t.KeywordCxt(i,jGe.default,"additionalProperties"));let s=(0,zGe.allSchemaProperties)(t);for(let u of s)i.definedProperties.add(u);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=sie.mergeEvaluated.props(e,(0,sie.toHash)(s),i.props));let o=s.filter(u=>!(0,sie.alwaysValidSchema)(i,t[u]));if(o.length===0)return;let l=e.name("valid");for(let u of o)c(u)?d(u):(e.if((0,zGe.propertyInData)(e,a,u,i.opts.ownProperties)),d(u),i.allErrors||e.else().var(l,!0),e.endIf()),r.it.definedProperties.add(u),r.ok(l);function c(u){return i.opts.useDefaults&&!i.compositeRule&&t[u].default!==void 0}function d(u){r.subschema({keyword:"properties",schemaProp:u,dataProp:u},l)}}};oie.default=h6t});var VGe=x(lie=>{"use strict";Object.defineProperty(lie,"__esModule",{value:!0});var BGe=wl(),w$=wt(),UGe=sr(),HGe=sr(),g6t={keyword:"patternProperties",type:"object",schemaType:"object",code(r){let{gen:e,schema:t,data:n,parentSchema:a,it:i}=r,{opts:s}=i,o=(0,BGe.allSchemaProperties)(t),l=o.filter(h=>(0,UGe.alwaysValidSchema)(i,t[h]));if(o.length===0||l.length===o.length&&(!i.opts.unevaluated||i.props===!0))return;let c=s.strictSchema&&!s.allowMatchingProperties&&a.properties,d=e.name("valid");i.props!==!0&&!(i.props instanceof w$.Name)&&(i.props=(0,HGe.evaluatedPropsToName)(e,i.props));let{props:u}=i;p();function p(){for(let h of o)c&&m(h),i.allErrors?f(h):(e.var(d,!0),f(h),e.if(d))}function m(h){for(let g in c)new RegExp(h).test(g)&&(0,UGe.checkStrictMode)(i,`property ${g} matches pattern ${h} (use allowMatchingProperties)`)}function f(h){e.forIn("key",n,g=>{e.if((0,w$._)`${(0,BGe.usePattern)(r,h)}.test(${g})`,()=>{let v=l.includes(h);v||r.subschema({keyword:"patternProperties",schemaProp:h,dataProp:g,dataPropType:HGe.Type.Str},d),i.opts.unevaluated&&u!==!0?e.assign((0,w$._)`${u}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,w$.not)(d),()=>e.break())})})}}};lie.default=g6t});var qGe=x(cie=>{"use strict";Object.defineProperty(cie,"__esModule",{value:!0});var y6t=sr(),v6t={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(r){let{gen:e,schema:t,it:n}=r;if((0,y6t.alwaysValidSchema)(n,t)){r.fail();return}let a=e.name("valid");r.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),r.failResult(a,()=>r.reset(),()=>r.error())},error:{message:"must NOT be valid"}};cie.default=v6t});var WGe=x(die=>{"use strict";Object.defineProperty(die,"__esModule",{value:!0});var k6t=wl(),b6t={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:k6t.validateUnion,error:{message:"must match a schema in anyOf"}};die.default=b6t});var YGe=x(uie=>{"use strict";Object.defineProperty(uie,"__esModule",{value:!0});var S$=wt(),T6t=sr(),w6t={message:"must match exactly one schema in oneOf",params:({params:r})=>(0,S$._)`{passingSchemas: ${r.passing}}`},S6t={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:w6t,code(r){let{gen:e,schema:t,parentSchema:n,it:a}=r;if(!Array.isArray(t))throw new Error("ajv implementation error");if(a.opts.discriminator&&n.discriminator)return;let i=t,s=e.let("valid",!1),o=e.let("passing",null),l=e.name("_valid");r.setParams({passing:o}),e.block(c),r.result(s,()=>r.reset(),()=>r.error(!0));function c(){i.forEach((d,u)=>{let p;(0,T6t.alwaysValidSchema)(a,d)?e.var(l,!0):p=r.subschema({keyword:"oneOf",schemaProp:u,compositeRule:!0},l),u>0&&e.if((0,S$._)`${l} && ${s}`).assign(s,!1).assign(o,(0,S$._)`[${o}, ${u}]`).else(),e.if(l,()=>{e.assign(s,!0),e.assign(o,u),p&&r.mergeEvaluated(p,S$.Name)})})}}};uie.default=S6t});var GGe=x(pie=>{"use strict";Object.defineProperty(pie,"__esModule",{value:!0});var x6t=sr(),C6t={keyword:"allOf",schemaType:"array",code(r){let{gen:e,schema:t,it:n}=r;if(!Array.isArray(t))throw new Error("ajv implementation error");let a=e.name("valid");t.forEach((i,s)=>{if((0,x6t.alwaysValidSchema)(n,i))return;let o=r.subschema({keyword:"allOf",schemaProp:s},a);r.ok(a),r.mergeEvaluated(o)})}};pie.default=C6t});var QGe=x(mie=>{"use strict";Object.defineProperty(mie,"__esModule",{value:!0});var x$=wt(),ZGe=sr(),E6t={message:({params:r})=>(0,x$.str)`must match "${r.ifClause}" schema`,params:({params:r})=>(0,x$._)`{failingKeyword: ${r.ifClause}}`},D6t={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:E6t,code(r){let{gen:e,parentSchema:t,it:n}=r;t.then===void 0&&t.else===void 0&&(0,ZGe.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let a=KGe(n,"then"),i=KGe(n,"else");if(!a&&!i)return;let s=e.let("valid",!0),o=e.name("_valid");if(l(),r.reset(),a&&i){let d=e.let("ifClause");r.setParams({ifClause:d}),e.if(o,c("then",d),c("else",d))}else a?e.if(o,c("then")):e.if((0,x$.not)(o),c("else"));r.pass(s,()=>r.error(!0));function l(){let d=r.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},o);r.mergeEvaluated(d)}function c(d,u){return()=>{let p=r.subschema({keyword:d},o);e.assign(s,o),r.mergeValidEvaluated(p,s),u?e.assign(u,(0,x$._)`${d}`):r.setParams({ifClause:d})}}}};function KGe(r,e){let t=r.schema[e];return t!==void 0&&!(0,ZGe.alwaysValidSchema)(r,t)}mie.default=D6t});var JGe=x(fie=>{"use strict";Object.defineProperty(fie,"__esModule",{value:!0});var P6t=sr(),M6t={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:r,parentSchema:e,it:t}){e.if===void 0&&(0,P6t.checkStrictMode)(t,`"${r}" without "if" is ignored`)}};fie.default=M6t});var XGe=x(hie=>{"use strict";Object.defineProperty(hie,"__esModule",{value:!0});var A6t=Qae(),_6t=MGe(),I6t=Jae(),N6t=_Ge(),R6t=IGe(),F6t=FGe(),O6t=LGe(),L6t=iie(),z6t=$Ge(),j6t=VGe(),$6t=qGe(),B6t=WGe(),U6t=YGe(),H6t=GGe(),V6t=QGe(),q6t=JGe();function W6t(r=!1){let e=[$6t.default,B6t.default,U6t.default,H6t.default,V6t.default,q6t.default,O6t.default,L6t.default,F6t.default,z6t.default,j6t.default];return r?e.push(_6t.default,N6t.default):e.push(A6t.default,I6t.default),e.push(R6t.default),e}hie.default=W6t});var eKe=x(gie=>{"use strict";Object.defineProperty(gie,"__esModule",{value:!0});var Jn=wt(),Y6t={message:({schemaCode:r})=>(0,Jn.str)`must match format "${r}"`,params:({schemaCode:r})=>(0,Jn._)`{format: ${r}}`},G6t={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Y6t,code(r,e){let{gen:t,data:n,$data:a,schema:i,schemaCode:s,it:o}=r,{opts:l,errSchemaPath:c,schemaEnv:d,self:u}=o;if(!l.validateFormats)return;a?p():m();function p(){let f=t.scopeValue("formats",{ref:u.formats,code:l.code.formats}),h=t.const("fDef",(0,Jn._)`${f}[${s}]`),g=t.let("fType"),v=t.let("format");t.if((0,Jn._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>t.assign(g,(0,Jn._)`${h}.type || "string"`).assign(v,(0,Jn._)`${h}.validate`),()=>t.assign(g,(0,Jn._)`"string"`).assign(v,h)),r.fail$data((0,Jn.or)(b(),k()));function b(){return l.strictSchema===!1?Jn.nil:(0,Jn._)`${s} && !${v}`}function k(){let w=d.$async?(0,Jn._)`(${h}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,Jn._)`${v}(${n})`,S=(0,Jn._)`(typeof ${v} == "function" ? ${w} : ${v}.test(${n}))`;return(0,Jn._)`${v} && ${v} !== true && ${g} === ${e} && !${S}`}}function m(){let f=u.formats[i];if(!f){b();return}if(f===!0)return;let[h,g,v]=k(f);h===e&&r.pass(w());function b(){if(l.strictSchema===!1){u.logger.warn(S());return}throw new Error(S());function S(){return`unknown format "${i}" ignored in schema at path "${c}"`}}function k(S){let C=S instanceof RegExp?(0,Jn.regexpCode)(S):l.code.formats?(0,Jn._)`${l.code.formats}${(0,Jn.getProperty)(i)}`:void 0,E=t.scopeValue("formats",{key:i,ref:S,code:C});return typeof S=="object"&&!(S instanceof RegExp)?[S.type||"string",S.validate,(0,Jn._)`${E}.validate`]:["string",S,E]}function w(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!d.$async)throw new Error("async format in sync schema");return(0,Jn._)`await ${v}(${n})`}return typeof g=="function"?(0,Jn._)`${v}(${n})`:(0,Jn._)`${v}.test(${n})`}}}};gie.default=G6t});var tKe=x(yie=>{"use strict";Object.defineProperty(yie,"__esModule",{value:!0});var K6t=eKe(),Z6t=[K6t.default];yie.default=Z6t});var rKe=x(Iw=>{"use strict";Object.defineProperty(Iw,"__esModule",{value:!0});Iw.contentVocabulary=Iw.metadataVocabulary=void 0;Iw.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Iw.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var aKe=x(vie=>{"use strict";Object.defineProperty(vie,"__esModule",{value:!0});var Q6t=uGe(),J6t=CGe(),X6t=XGe(),e9t=tKe(),nKe=rKe(),t9t=[Q6t.default,J6t.default,(0,X6t.default)(),e9t.default,nKe.metadataVocabulary,nKe.contentVocabulary];vie.default=t9t});var sKe=x(C$=>{"use strict";Object.defineProperty(C$,"__esModule",{value:!0});C$.DiscrError=void 0;var iKe;(function(r){r.Tag="tag",r.Mapping="mapping"})(iKe||(C$.DiscrError=iKe={}))});var lKe=x(bie=>{"use strict";Object.defineProperty(bie,"__esModule",{value:!0});var Nw=wt(),kie=sKe(),oKe=u$(),r9t=KM(),n9t=sr(),a9t={message:({params:{discrError:r,tagName:e}})=>r===kie.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:r,tag:e,tagName:t}})=>(0,Nw._)`{error: ${r}, tag: ${t}, tagValue: ${e}}`},i9t={keyword:"discriminator",type:"object",schemaType:"object",error:a9t,code(r){let{gen:e,data:t,schema:n,parentSchema:a,it:i}=r,{oneOf:s}=a;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=n.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let l=e.let("valid",!1),c=e.const("tag",(0,Nw._)`${t}${(0,Nw.getProperty)(o)}`);e.if((0,Nw._)`typeof ${c} == "string"`,()=>d(),()=>r.error(!1,{discrError:kie.DiscrError.Tag,tag:c,tagName:o})),r.ok(l);function d(){let m=p();e.if(!1);for(let f in m)e.elseIf((0,Nw._)`${c} === ${f}`),e.assign(l,u(m[f]));e.else(),r.error(!1,{discrError:kie.DiscrError.Mapping,tag:c,tagName:o}),e.endIf()}function u(m){let f=e.name("valid"),h=r.subschema({keyword:"oneOf",schemaProp:m},f);return r.mergeEvaluated(h,Nw.Name),f}function p(){var m;let f={},h=v(a),g=!0;for(let w=0;w<s.length;w++){let S=s[w];if(S!=null&&S.$ref&&!(0,n9t.schemaHasRulesButRef)(S,i.self.RULES)){let E=S.$ref;if(S=oKe.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,E),S instanceof oKe.SchemaEnv&&(S=S.schema),S===void 0)throw new r9t.default(i.opts.uriResolver,i.baseId,E)}let C=(m=S==null?void 0:S.properties)===null||m===void 0?void 0:m[o];if(typeof C!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${o}"`);g=g&&(h||v(S)),b(C,w)}if(!g)throw new Error(`discriminator: "${o}" must be required`);return f;function v({required:w}){return Array.isArray(w)&&w.includes(o)}function b(w,S){if(w.const)k(w.const,S);else if(w.enum)for(let C of w.enum)k(C,S);else throw new Error(`discriminator: "properties/${o}" must have "const" or "enum"`)}function k(w,S){if(typeof w!="string"||w in f)throw new Error(`discriminator: "${o}" values must be unique strings`);f[w]=S}}}};bie.default=i9t});var cKe=x(($rn,s9t)=>{s9t.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var uKe=x((pn,Tie)=>{"use strict";Object.defineProperty(pn,"__esModule",{value:!0});pn.MissingRefError=pn.ValidationError=pn.CodeGen=pn.Name=pn.nil=pn.stringify=pn.str=pn._=pn.KeywordCxt=pn.Ajv=void 0;var o9t=iGe(),l9t=aKe(),c9t=lKe(),dKe=cKe(),d9t=["/properties"],E$="http://json-schema.org/draft-07/schema",Rw=class extends o9t.default{_addVocabularies(){super._addVocabularies(),l9t.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(c9t.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(dKe,d9t):dKe;this.addMetaSchema(e,E$,!1),this.refs["http://json-schema.org/schema"]=E$}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(E$)?E$:void 0)}};pn.Ajv=Rw;Tie.exports=pn=Rw;Tie.exports.Ajv=Rw;Object.defineProperty(pn,"__esModule",{value:!0});pn.default=Rw;var u9t=GM();Object.defineProperty(pn,"KeywordCxt",{enumerable:!0,get:function(){return u9t.KeywordCxt}});var Fw=wt();Object.defineProperty(pn,"_",{enumerable:!0,get:function(){return Fw._}});Object.defineProperty(pn,"str",{enumerable:!0,get:function(){return Fw.str}});Object.defineProperty(pn,"stringify",{enumerable:!0,get:function(){return Fw.stringify}});Object.defineProperty(pn,"nil",{enumerable:!0,get:function(){return Fw.nil}});Object.defineProperty(pn,"Name",{enumerable:!0,get:function(){return Fw.Name}});Object.defineProperty(pn,"CodeGen",{enumerable:!0,get:function(){return Fw.CodeGen}});var p9t=c$();Object.defineProperty(pn,"ValidationError",{enumerable:!0,get:function(){return p9t.default}});var m9t=KM();Object.defineProperty(pn,"MissingRefError",{enumerable:!0,get:function(){return m9t.default}})});var pKe=x(Ow=>{"use strict";Object.defineProperty(Ow,"__esModule",{value:!0});Ow.formatLimitDefinition=void 0;var f9t=uKe(),kc=wt(),nh=kc.operators,D$={formatMaximum:{okStr:"<=",ok:nh.LTE,fail:nh.GT},formatMinimum:{okStr:">=",ok:nh.GTE,fail:nh.LT},formatExclusiveMaximum:{okStr:"<",ok:nh.LT,fail:nh.GTE},formatExclusiveMinimum:{okStr:">",ok:nh.GT,fail:nh.LTE}},h9t={message:({keyword:r,schemaCode:e})=>(0,kc.str)`should be ${D$[r].okStr} ${e}`,params:({keyword:r,schemaCode:e})=>(0,kc._)`{comparison: ${D$[r].okStr}, limit: ${e}}`};Ow.formatLimitDefinition={keyword:Object.keys(D$),type:"string",schemaType:"string",$data:!0,error:h9t,code(r){let{gen:e,data:t,schemaCode:n,keyword:a,it:i}=r,{opts:s,self:o}=i;if(!s.validateFormats)return;let l=new f9t.KeywordCxt(i,o.RULES.all.format.definition,"format");l.$data?c():d();function c(){let p=e.scopeValue("formats",{ref:o.formats,code:s.code.formats}),m=e.const("fmt",(0,kc._)`${p}[${l.schemaCode}]`);r.fail$data((0,kc.or)((0,kc._)`typeof ${m} != "object"`,(0,kc._)`${m} instanceof RegExp`,(0,kc._)`typeof ${m}.compare != "function"`,u(m)))}function d(){let p=l.schema,m=o.formats[p];if(!m||m===!0)return;if(typeof m!="object"||m instanceof RegExp||typeof m.compare!="function")throw new Error(`"${a}": format "${p}" does not define "compare" function`);let f=e.scopeValue("formats",{key:p,ref:m,code:s.code.formats?(0,kc._)`${s.code.formats}${(0,kc.getProperty)(p)}`:void 0});r.fail$data(u(f))}function u(p){return(0,kc._)`${p}.compare(${t}, ${n}) ${D$[a].fail} 0`}},dependencies:["format"]};var g9t=r=>(r.addKeyword(Ow.formatLimitDefinition),r);Ow.default=g9t});var gKe=x((lA,hKe)=>{"use strict";Object.defineProperty(lA,"__esModule",{value:!0});var Lw=QYe(),y9t=pKe(),wie=wt(),mKe=new wie.Name("fullFormats"),v9t=new wie.Name("fastFormats"),Sie=(r,e={keywords:!0})=>{if(Array.isArray(e))return fKe(r,e,Lw.fullFormats,mKe),r;let[t,n]=e.mode==="fast"?[Lw.fastFormats,v9t]:[Lw.fullFormats,mKe],a=e.formats||Lw.formatNames;return fKe(r,a,t,n),e.keywords&&(0,y9t.default)(r),r};Sie.get=(r,e="full")=>{let n=(e==="fast"?Lw.fastFormats:Lw.fullFormats)[r];if(!n)throw new Error(`Unknown format "${r}"`);return n};function fKe(r,e,t,n){var a,i;(a=(i=r.opts.code).formats)!==null&&a!==void 0||(i.formats=(0,wie._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)r.addFormat(s,t[s])}hKe.exports=lA=Sie;Object.defineProperty(lA,"__esModule",{value:!0});lA.default=Sie});function k9t(){let r=new yKe.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,vKe.default)(r),r}var yKe,vKe,P$,kKe=y(()=>{yKe=st(HYe(),1),vKe=st(gKe(),1);P$=class{constructor(e){this._ajv=e!=null?e:k9t()}getValidator(e){var n;let t="$id"in e&&typeof e.$id=="string"?(n=this._ajv.getSchema(e.$id))!=null?n:this._ajv.compile(e):this._ajv.compile(e);return a=>t(a)?{valid:!0,data:a,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(t.errors)}}}});var M$,bKe=y(()=>{M$=class{constructor(e){this._server=e}requestStream(e,t,n){return this._server.requestStream(e,t,n)}async getTask(e,t){return this._server.getTask({taskId:e},t)}async getTaskResult(e,t,n){return this._server.getTaskResult({taskId:e},t,n)}async listTasks(e,t){return this._server.listTasks(e?{cursor:e}:void 0,t)}async cancelTask(e,t){return this._server.cancelTask({taskId:e},t)}}});function TKe(r,e,t){var n;if(!r)throw new Error(`${t} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!((n=r.tools)!=null&&n.call))throw new Error(`${t} does not support task creation for tools/call (required for ${e})`);break;default:break}}function wKe(r,e,t){var n,a;if(!r)throw new Error(`${t} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!((n=r.sampling)!=null&&n.createMessage))throw new Error(`${t} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!((a=r.elicitation)!=null&&a.create))throw new Error(`${t} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}var SKe=y(()=>{});var A$,xKe=y(()=>{m6e();aM();kKe();Y0();bKe();SKe();A$=class extends hj{constructor(e,t){var n,a;super(t),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(nM.options.map((i,s)=>[i,s])),this.isMessageIgnored=(i,s)=>{let o=this._loggingLevels.get(s);return o?this.LOG_LEVEL_SEVERITY.get(i)<this.LOG_LEVEL_SEVERITY.get(o):!1},this._capabilities=(n=t==null?void 0:t.capabilities)!=null?n:{},this._instructions=t==null?void 0:t.instructions,this._jsonSchemaValidator=(a=t==null?void 0:t.jsonSchemaValidator)!=null?a:new P$,this.setRequestHandler(Bz,i=>this._oninitialize(i)),this.setNotificationHandler(ste,()=>{var i;return(i=this.oninitialized)==null?void 0:i.call(this)}),this._capabilities.logging&&this.setRequestHandler(mte,async(i,s)=>{var d;let o=s.sessionId||((d=s.requestInfo)==null?void 0:d.headers["mcp-session-id"])||void 0,{level:l}=i.params,c=nM.safeParse(l);return c.success&&this._loggingLevels.set(o,c.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new M$(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=p6e(this._capabilities,e)}setRequestHandler(e,t){var o,l,c;let n=zf(e),a=n==null?void 0:n.method;if(!a)throw new Error("Schema is missing a method literal");let i;if(ml(a)){let d=a,u=(o=d._zod)==null?void 0:o.def;i=(l=u==null?void 0:u.value)!=null?l:d.value}else{let d=a,u=d._def;i=(c=u==null?void 0:u.value)!=null?c:d.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");if(i==="tools/call"){let d=async(u,p)=>{let m=Lf(iw,u);if(!m.success){let v=m.error instanceof Error?m.error.message:String(m.error);throw new Oe(He.InvalidParams,`Invalid tools/call request: ${v}`)}let{params:f}=m.data,h=await Promise.resolve(t(u,p));if(f.task){let v=Lf(nw,h);if(!v.success){let b=v.error instanceof Error?v.error.message:String(v.error);throw new Oe(He.InvalidParams,`Invalid task creation result: ${b}`)}return v.data}let g=Lf(rj,h);if(!g.success){let v=g.error instanceof Error?g.error.message:String(g.error);throw new Oe(He.InvalidParams,`Invalid tools/call result: ${v}`)}return g.data};return super.setRequestHandler(e,d)}return super.setRequestHandler(e,t)}assertCapabilityForMethod(e){var t,n,a;switch(e){case"sampling/createMessage":if(!((t=this._clientCapabilities)!=null&&t.sampling))throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!((n=this._clientCapabilities)!=null&&n.elicitation))throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!((a=this._clientCapabilities)!=null&&a.roots))throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){var t,n;switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/elicitation/complete":if(!((n=(t=this._clientCapabilities)==null?void 0:t.elicitation)!=null&&n.url))throw new Error(`Client does not support URL elicitation (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${e})`);break;case"ping":case"initialize":break}}assertTaskCapability(e){var t,n;wKe((n=(t=this._clientCapabilities)==null?void 0:t.tasks)==null?void 0:n.requests,e,"Client")}assertTaskHandlerCapability(e){var t;this._capabilities&&TKe((t=this._capabilities.tasks)==null?void 0:t.requests,e,"Server")}async _oninitialize(e){let t=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:K0.includes(t)?t:ete,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},jz)}async createMessage(e,t){var n,a;if((e.tools||e.toolChoice)&&!((a=(n=this._clientCapabilities)==null?void 0:n.sampling)!=null&&a.tools))throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let i=e.messages[e.messages.length-1],s=Array.isArray(i.content)?i.content:[i.content],o=s.some(u=>u.type==="tool_result"),l=e.messages.length>1?e.messages[e.messages.length-2]:void 0,c=l?Array.isArray(l.content)?l.content:[l.content]:[],d=c.some(u=>u.type==="tool_use");if(o){if(s.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!d)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(d){let u=new Set(c.filter(m=>m.type==="tool_use").map(m=>m.id)),p=new Set(s.filter(m=>m.type==="tool_result").map(m=>m.toolUseId));if(u.size!==p.size||![...u].every(m=>p.has(m)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return e.tools?this.request({method:"sampling/createMessage",params:e},hte,t):this.request({method:"sampling/createMessage",params:e},fte,t)}async elicitInput(e,t){var a,i,s,o,l;switch((a=e.mode)!=null?a:"form"){case"url":{if(!((s=(i=this._clientCapabilities)==null?void 0:i.elicitation)!=null&&s.url))throw new Error("Client does not support url elicitation.");let c=e;return this.request({method:"elicitation/create",params:c},nj,t)}case"form":{if(!((l=(o=this._clientCapabilities)==null?void 0:o.elicitation)!=null&&l.form))throw new Error("Client does not support form elicitation.");let c=e.mode==="form"?e:{...e,mode:"form"},d=await this.request({method:"elicitation/create",params:c},nj,t);if(d.action==="accept"&&d.content&&c.requestedSchema)try{let p=this._jsonSchemaValidator.getValidator(c.requestedSchema)(d.content);if(!p.valid)throw new Oe(He.InvalidParams,`Elicitation response content does not match requested schema: ${p.errorMessage}`)}catch(u){throw u instanceof Oe?u:new Oe(He.InternalError,`Error validating elicitation response: ${u instanceof Error?u.message:String(u)}`)}return d}}}createElicitationCompletionNotifier(e,t){var n,a;if(!((a=(n=this._clientCapabilities)==null?void 0:n.elicitation)!=null&&a.url))throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:e}},t)}async listRoots(e,t){return this.request({method:"roots/list",params:e},gte,t)}async sendLoggingMessage(e,t){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,t))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}});function xie(r){return!!r&&typeof r=="object"&&EKe in r}function DKe(r){let e=r[EKe];return e==null?void 0:e.complete}var EKe,CKe,PKe=y(()=>{EKe=Symbol.for("mcp.completable");(function(r){r.Completable="McpCompletable"})(CKe||(CKe={}))});var MKe=y(()=>{});function T9t(r){let e=[];if(r.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(r.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${r.length})`]};if(r.includes(" ")&&e.push("Tool name contains spaces, which may cause parsing issues"),r.includes(",")&&e.push("Tool name contains commas, which may cause parsing issues"),(r.startsWith("-")||r.endsWith("-"))&&e.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(r.startsWith(".")||r.endsWith("."))&&e.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!b9t.test(r)){let t=r.split("").filter(n=>!/[A-Za-z0-9._-]/.test(n)).filter((n,a,i)=>i.indexOf(n)===a);return e.push(`Tool name contains invalid characters: ${t.map(n=>`"${n}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:e}}return{isValid:!0,warnings:e}}function w9t(r,e){if(e.length>0){console.warn(`Tool name validation warning for "${r}":`);for(let t of e)console.warn(` - ${t}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function Cie(r){let e=T9t(r);return w9t(r,e.warnings),e.isValid}var b9t,AKe=y(()=>{b9t=/^[A-Za-z0-9._-]{1,128}$/});var _$,_Ke=y(()=>{_$=class{constructor(e){this._mcpServer=e}registerToolTask(e,t,n){let a={taskSupport:"required",...t.execution};if(a.taskSupport==="forbidden")throw new Error(`Cannot register task-based tool '${e}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(e,t.title,t.description,t.inputSchema,t.outputSchema,t.annotations,a,t._meta,n)}}});function RKe(r){return r!==null&&typeof r=="object"&&"parse"in r&&typeof r.parse=="function"&&"safeParse"in r&&typeof r.safeParse=="function"}function x9t(r){return"_def"in r||"_zod"in r||RKe(r)}function Eie(r){return typeof r!="object"||r===null||x9t(r)?!1:Object.keys(r).length===0?!0:Object.values(r).some(RKe)}function IKe(r){if(r)return Eie(r)?$y(r):r}function C9t(r){let e=zf(r);return e?Object.entries(e).map(([t,n])=>{let a=B4e(n),i=U4e(n);return{name:t,description:a,required:!i}}):[]}function ah(r){let e=zf(r),t=e==null?void 0:e.method;if(!t)throw new Error("Schema is missing a method literal");let n=Nz(t);if(typeof n=="string")return n;throw new Error("Schema method literal must be a string")}function NKe(r){return{completion:{values:r.slice(0,100),total:r.length,hasMore:r.length>100}}}var I$,S9t,cA,FKe=y(()=>{xKe();Y0();Xte();aM();PKe();MKe();AKe();_Ke();BL();I$=class{constructor(e,t){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new A$(e,t)}get experimental(){return this._experimental||(this._experimental={tasks:new _$(this)}),this._experimental}async connect(e){return await this.server.connect(e)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(ah(tj)),this.server.assertCanSetRequestHandler(ah(iw)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(tj,()=>({tools:Object.entries(this._registeredTools).filter(([,e])=>e.enabled).map(([e,t])=>{let n={name:e,title:t.title,description:t.description,inputSchema:(()=>{let a=XT(t.inputSchema);return a?Zte(a,{strictUnions:!0,pipeStrategy:"input"}):S9t})(),annotations:t.annotations,execution:t.execution,_meta:t._meta};if(t.outputSchema){let a=XT(t.outputSchema);a&&(n.outputSchema=Zte(a,{strictUnions:!0,pipeStrategy:"output"}))}return n})})),this.server.setRequestHandler(iw,async(e,t)=>{var n;try{let a=this._registeredTools[e.params.name];if(!a)throw new Oe(He.InvalidParams,`Tool ${e.params.name} not found`);if(!a.enabled)throw new Oe(He.InvalidParams,`Tool ${e.params.name} disabled`);let i=!!e.params.task,s=(n=a.execution)==null?void 0:n.taskSupport,o="createTask"in a.handler;if((s==="required"||s==="optional")&&!o)throw new Oe(He.InternalError,`Tool ${e.params.name} has taskSupport '${s}' but was not registered with registerToolTask`);if(s==="required"&&!i)throw new Oe(He.MethodNotFound,`Tool ${e.params.name} requires task augmentation (taskSupport: 'required')`);if(s==="optional"&&!i&&o)return await this.handleAutomaticTaskPolling(a,e,t);let l=await this.validateToolInput(a,e.params.arguments,e.params.name),c=await this.executeToolHandler(a,l,t);return i||await this.validateToolOutput(a,c,e.params.name),c}catch(a){if(a instanceof Oe&&a.code===He.UrlElicitationRequired)throw a;return this.createToolError(a instanceof Error?a.message:String(a))}}),this._toolHandlersInitialized=!0)}createToolError(e){return{content:[{type:"text",text:e}],isError:!0}}async validateToolInput(e,t,n){if(!e.inputSchema)return;let a=XT(e.inputSchema),i=a!=null?a:e.inputSchema,s=await _z(i,t);if(!s.success){let o="error"in s?s.error:"Unknown error",l=Iz(o);throw new Oe(He.InvalidParams,`Input validation error: Invalid arguments for tool ${n}: ${l}`)}return s.data}async validateToolOutput(e,t,n){if(!e.outputSchema||!("content"in t)||t.isError)return;if(!t.structuredContent)throw new Oe(He.InvalidParams,`Output validation error: Tool ${n} has an output schema but no structured content was provided`);let a=XT(e.outputSchema),i=await _z(a,t.structuredContent);if(!i.success){let s="error"in i?i.error:"Unknown error",o=Iz(s);throw new Oe(He.InvalidParams,`Output validation error: Invalid structured content for tool ${n}: ${o}`)}}async executeToolHandler(e,t,n){let a=e.handler;if("createTask"in a){if(!n.taskStore)throw new Error("No task store provided.");let s={...n,taskStore:n.taskStore};if(e.inputSchema){let o=a;return await Promise.resolve(o.createTask(t,s))}else{let o=a;return await Promise.resolve(o.createTask(s))}}if(e.inputSchema){let s=a;return await Promise.resolve(s(t,n))}else{let s=a;return await Promise.resolve(s(n))}}async handleAutomaticTaskPolling(e,t,n){var u;if(!n.taskStore)throw new Error("No task store provided for task-capable tool.");let a=await this.validateToolInput(e,t.params.arguments,t.params.name),i=e.handler,s={...n,taskStore:n.taskStore},o=a?await Promise.resolve(i.createTask(a,s)):await Promise.resolve(i.createTask(s)),l=o.task.taskId,c=o.task,d=(u=c.pollInterval)!=null?u:5e3;for(;c.status!=="completed"&&c.status!=="failed"&&c.status!=="cancelled";){await new Promise(m=>setTimeout(m,d));let p=await n.taskStore.getTask(l);if(!p)throw new Oe(He.InternalError,`Task ${l} not found during polling`);c=p}return await n.taskStore.getTaskResult(l)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler(ah(aj)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(aj,async e=>{switch(e.params.ref.type){case"ref/prompt":return P3e(e),this.handlePromptCompletion(e,e.params.ref);case"ref/resource":return M3e(e),this.handleResourceCompletion(e,e.params.ref);default:throw new Oe(He.InvalidParams,`Invalid completion reference: ${e.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(e,t){let n=this._registeredPrompts[t.name];if(!n)throw new Oe(He.InvalidParams,`Prompt ${t.name} not found`);if(!n.enabled)throw new Oe(He.InvalidParams,`Prompt ${t.name} disabled`);if(!n.argsSchema)return cA;let a=zf(n.argsSchema),i=a==null?void 0:a[e.params.argument.name];if(!xie(i))return cA;let s=DKe(i);if(!s)return cA;let o=await s(e.params.argument.value,e.params.context);return NKe(o)}async handleResourceCompletion(e,t){let n=Object.values(this._registeredResourceTemplates).find(s=>s.resourceTemplate.uriTemplate.toString()===t.uri);if(!n){if(this._registeredResources[t.uri])return cA;throw new Oe(He.InvalidParams,`Resource template ${e.params.ref.uri} not found`)}let a=n.resourceTemplate.completeCallback(e.params.argument.name);if(!a)return cA;let i=await a(e.params.argument.value,e.params.context);return NKe(i)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(ah(Zz)),this.server.assertCanSetRequestHandler(ah(Qz)),this.server.assertCanSetRequestHandler(ah(Jz)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(Zz,async(e,t)=>{let n=Object.entries(this._registeredResources).filter(([i,s])=>s.enabled).map(([i,s])=>({uri:i,name:s.name,...s.metadata})),a=[];for(let i of Object.values(this._registeredResourceTemplates)){if(!i.resourceTemplate.listCallback)continue;let s=await i.resourceTemplate.listCallback(t);for(let o of s.resources)a.push({...i.metadata,...o})}return{resources:[...n,...a]}}),this.server.setRequestHandler(Qz,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([t,n])=>({name:t,uriTemplate:n.resourceTemplate.uriTemplate.toString(),...n.metadata}))})),this.server.setRequestHandler(Jz,async(e,t)=>{let n=new URL(e.params.uri),a=this._registeredResources[n.toString()];if(a){if(!a.enabled)throw new Oe(He.InvalidParams,`Resource ${n} disabled`);return a.readCallback(n,t)}for(let i of Object.values(this._registeredResourceTemplates)){let s=i.resourceTemplate.uriTemplate.match(n.toString());if(s)return i.readCallback(n,s,t)}throw new Oe(He.InvalidParams,`Resource ${n} not found`)}),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler(ah(Xz)),this.server.assertCanSetRequestHandler(ah(ej)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(Xz,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,e])=>e.enabled).map(([e,t])=>({name:e,title:t.title,description:t.description,arguments:t.argsSchema?C9t(t.argsSchema):void 0}))})),this.server.setRequestHandler(ej,async(e,t)=>{let n=this._registeredPrompts[e.params.name];if(!n)throw new Oe(He.InvalidParams,`Prompt ${e.params.name} not found`);if(!n.enabled)throw new Oe(He.InvalidParams,`Prompt ${e.params.name} disabled`);if(n.argsSchema){let a=XT(n.argsSchema),i=await _z(a,e.params.arguments);if(!i.success){let l="error"in i?i.error:"Unknown error",c=Iz(l);throw new Oe(He.InvalidParams,`Invalid arguments for prompt ${e.params.name}: ${c}`)}let s=i.data,o=n.callback;return await Promise.resolve(o(s,t))}else{let a=n.callback;return await Promise.resolve(a(t))}}),this._promptHandlersInitialized=!0)}resource(e,t,...n){let a;typeof n[0]=="object"&&(a=n.shift());let i=n[0];if(typeof t=="string"){if(this._registeredResources[t])throw new Error(`Resource ${t} is already registered`);let s=this._createRegisteredResource(e,void 0,t,a,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}else{if(this._registeredResourceTemplates[e])throw new Error(`Resource template ${e} is already registered`);let s=this._createRegisteredResourceTemplate(e,void 0,t,a,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}}registerResource(e,t,n,a){if(typeof t=="string"){if(this._registeredResources[t])throw new Error(`Resource ${t} is already registered`);let i=this._createRegisteredResource(e,n.title,t,n,a);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}else{if(this._registeredResourceTemplates[e])throw new Error(`Resource template ${e} is already registered`);let i=this._createRegisteredResourceTemplate(e,n.title,t,n,a);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}}_createRegisteredResource(e,t,n,a,i){let s={name:e,title:t,metadata:a,readCallback:i,enabled:!0,disable:()=>s.update({enabled:!1}),enable:()=>s.update({enabled:!0}),remove:()=>s.update({uri:null}),update:o=>{typeof o.uri!="undefined"&&o.uri!==n&&(delete this._registeredResources[n],o.uri&&(this._registeredResources[o.uri]=s)),typeof o.name!="undefined"&&(s.name=o.name),typeof o.title!="undefined"&&(s.title=o.title),typeof o.metadata!="undefined"&&(s.metadata=o.metadata),typeof o.callback!="undefined"&&(s.readCallback=o.callback),typeof o.enabled!="undefined"&&(s.enabled=o.enabled),this.sendResourceListChanged()}};return this._registeredResources[n]=s,s}_createRegisteredResourceTemplate(e,t,n,a,i){let s={resourceTemplate:n,title:t,metadata:a,readCallback:i,enabled:!0,disable:()=>s.update({enabled:!1}),enable:()=>s.update({enabled:!0}),remove:()=>s.update({name:null}),update:c=>{typeof c.name!="undefined"&&c.name!==e&&(delete this._registeredResourceTemplates[e],c.name&&(this._registeredResourceTemplates[c.name]=s)),typeof c.title!="undefined"&&(s.title=c.title),typeof c.template!="undefined"&&(s.resourceTemplate=c.template),typeof c.metadata!="undefined"&&(s.metadata=c.metadata),typeof c.callback!="undefined"&&(s.readCallback=c.callback),typeof c.enabled!="undefined"&&(s.enabled=c.enabled),this.sendResourceListChanged()}};this._registeredResourceTemplates[e]=s;let o=n.uriTemplate.variableNames;return Array.isArray(o)&&o.some(c=>!!n.completeCallback(c))&&this.setCompletionRequestHandler(),s}_createRegisteredPrompt(e,t,n,a,i){let s={title:t,description:n,argsSchema:a===void 0?void 0:$y(a),callback:i,enabled:!0,disable:()=>s.update({enabled:!1}),enable:()=>s.update({enabled:!0}),remove:()=>s.update({name:null}),update:o=>{typeof o.name!="undefined"&&o.name!==e&&(delete this._registeredPrompts[e],o.name&&(this._registeredPrompts[o.name]=s)),typeof o.title!="undefined"&&(s.title=o.title),typeof o.description!="undefined"&&(s.description=o.description),typeof o.argsSchema!="undefined"&&(s.argsSchema=$y(o.argsSchema)),typeof o.callback!="undefined"&&(s.callback=o.callback),typeof o.enabled!="undefined"&&(s.enabled=o.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[e]=s,a&&Object.values(a).some(l=>{var d;let c=l instanceof Es?(d=l._def)==null?void 0:d.innerType:l;return xie(c)})&&this.setCompletionRequestHandler(),s}_createRegisteredTool(e,t,n,a,i,s,o,l,c){Cie(e);let d={title:t,description:n,inputSchema:IKe(a),outputSchema:IKe(i),annotations:s,execution:o,_meta:l,handler:c,enabled:!0,disable:()=>d.update({enabled:!1}),enable:()=>d.update({enabled:!0}),remove:()=>d.update({name:null}),update:u=>{typeof u.name!="undefined"&&u.name!==e&&(typeof u.name=="string"&&Cie(u.name),delete this._registeredTools[e],u.name&&(this._registeredTools[u.name]=d)),typeof u.title!="undefined"&&(d.title=u.title),typeof u.description!="undefined"&&(d.description=u.description),typeof u.paramsSchema!="undefined"&&(d.inputSchema=$y(u.paramsSchema)),typeof u.outputSchema!="undefined"&&(d.outputSchema=$y(u.outputSchema)),typeof u.callback!="undefined"&&(d.handler=u.callback),typeof u.annotations!="undefined"&&(d.annotations=u.annotations),typeof u._meta!="undefined"&&(d._meta=u._meta),typeof u.enabled!="undefined"&&(d.enabled=u.enabled),this.sendToolListChanged()}};return this._registeredTools[e]=d,this.setToolRequestHandlers(),this.sendToolListChanged(),d}tool(e,...t){if(this._registeredTools[e])throw new Error(`Tool ${e} is already registered`);let n,a,i,s;if(typeof t[0]=="string"&&(n=t.shift()),t.length>1){let l=t[0];Eie(l)?(a=t.shift(),t.length>1&&typeof t[0]=="object"&&t[0]!==null&&!Eie(t[0])&&(s=t.shift())):typeof l=="object"&&l!==null&&(s=t.shift())}let o=t[0];return this._createRegisteredTool(e,void 0,n,a,i,s,{taskSupport:"forbidden"},void 0,o)}registerTool(e,t,n){if(this._registeredTools[e])throw new Error(`Tool ${e} is already registered`);let{title:a,description:i,inputSchema:s,outputSchema:o,annotations:l,_meta:c}=t;return this._createRegisteredTool(e,a,i,s,o,l,{taskSupport:"forbidden"},c,n)}prompt(e,...t){if(this._registeredPrompts[e])throw new Error(`Prompt ${e} is already registered`);let n;typeof t[0]=="string"&&(n=t.shift());let a;t.length>1&&(a=t.shift());let i=t[0],s=this._createRegisteredPrompt(e,void 0,n,a,i);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),s}registerPrompt(e,t,n){if(this._registeredPrompts[e])throw new Error(`Prompt ${e} is already registered`);let{title:a,description:i,argsSchema:s}=t,o=this._createRegisteredPrompt(e,a,i,s,n);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),o}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(e,t){return this.server.sendLoggingMessage(e,t)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}},S9t={type:"object",properties:{}};cA={completion:{values:[],hasMore:!1}}});var OKe,LKe=y(()=>{OKe="x-hono-already-sent"});var zKe,jKe=y(()=>{zKe=r=>((...e)=>{if(typeof e[0]=="function"){let[t,n]=e;return async function(i,s){let o=await t(i),l=await r(i,o,n);if(l)return l;await s()}}else{let[t,n,a]=e;return(async()=>{let i=await r(t,n,a);if(!i)throw new Error("Failed to upgrade WebSocket");return i})()}})});async function G9t(r){return Promise.race([r,Promise.resolve().then(()=>Promise.resolve(void 0))])}function t8e(r,e,t){let n=o=>{r.cancel(o).catch(()=>{})};return e.on("close",n),e.on("error",n),(t!=null?t:r.read()).then(s,a),r.closed.finally(()=>{e.off("close",n),e.off("error",n)});function a(o){o&&e.destroy(o)}function i(){r.read().then(s,a)}function s({done:o,value:l}){try{if(o)e.end();else if(!e.write(l))e.once("drain",i);else return r.read().then(s,a)}catch(c){a(c)}}}function VKe(r,e){if(r.locked)throw new TypeError("ReadableStream is locked.");return e.destroyed?void 0:t8e(r.getReader(),e)}var ZKe,Bp,Pie,eu,E9t,D9t,P9t,M9t,A9t,_9t,Bw,QKe,JKe,I9t,N9t,Die,pA,XKe,Nie,$Ke,R$,BKe,R9t,oh,zp,Uw,mA,e8e,jw,lv,Mie,Aie,sh,N$,Up,UKe,dA,F$,hA,F9t,O9t,L9t,z9t,j9t,$9t,B9t,Rie,U9t,HKe,H9t,ru,V9t,ih,uA,zw,$p,O$,fA,Xd,$w,tu,q9t,W9t,Y9t,_ie,L$,qKe,K9t,Z9t,r8e,Q9t,J9t,X9t,n8e,z$,Iie,a8e,i8e,eYt,Fie,cv,WKe,YKe,tYt,jp,GKe,KKe,rYt,nYt,aYt,iYt,vnn,s8e=y(()=>{LKe();ZKe=require("node:http"),Bp=require("node:http2"),Pie=require("node:stream");jKe();eu=class extends Error{constructor(r,e){super(r,e),this.name="RequestError"}},E9t=/^\/[!#$&-;=?-\[\]_a-z~]*$/,D9t=/\/\.\.?(?:[/?#]|$)/,P9t=/^[a-z0-9._-]+(?::(?:[1-5]\d{3,4}|[6-9]\d{3}))?$/,M9t=(r,e,t)=>{let n=`${r}://${e}${t}`;if(P9t.test(e)){if(t.length===0)return n+"/";if(t.charCodeAt(0)!==47)throw new eu("Invalid URL");return!E9t.test(t)||D9t.test(t)?new URL(n).href:n}else{let a=new URL(n);if(a.hostname.length!==e.length&&a.hostname!==(e.includes(":")?e.replace(/:\d+$/,""):e).toLowerCase())throw new eu("Invalid host header");return a.href}},A9t=r=>r instanceof eu?r:new eu(r.message,{cause:r}),_9t=global.Request,Bw=class extends _9t{constructor(r,e){var t,n;if(typeof r=="object"&&oh in r){let a=e!==void 0&&"body"in e&&e.body!=null;if(r[Up]&&!a)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");r=r[oh]()}typeof((t=e==null?void 0:e.body)==null?void 0:t.getReader)!="undefined"&&((n=e.duplex)!=null||(e.duplex="half")),super(r,e)}},QKe=r=>{let e=[],t=r.rawHeaders;for(let n=0,a=t.length;n<a;n+=2){let i=t[n];i.charCodeAt(0)!==58&&e.push([i,t[n+1]])}return new Headers(e)},JKe=Symbol("wrapBodyStream"),I9t=new Set(["latin1","binary","hex","base64","base64url"]),N9t=r=>r===null||I9t.has(r),Die=Symbol("bodyBufferedBeforeDisconnect"),pA=Symbol("bodyBufferedLengthBeforeDisconnect"),XKe=(r,e)=>Buffer.isBuffer(r)?r:Buffer.from(r,e!=null?e:"utf8"),Nie=r=>!(r instanceof Bp.Http2ServerRequest)&&!!r.complete&&!!r.readableAborted&&typeof r.read=="function"&&N9t(r.readableEncoding),$Ke=r=>{var t;if(r.readableDidRead||!Nie(r))return;let e=r;(t=e[pA])!=null||(e[pA]=r.readableLength)},R$=(r,e)=>{if(r.readableDidRead&&!e||!Nie(r))return;let t=r;if(t[Die]!==void 0)return t[Die];let n,a=r.errored;if(a&&a.code!=="ECONNRESET")n=a;else if(t[pA]!==void 0&&r.readableLength!==t[pA])n=F$();else{let i=e!=null?e:[],s=r.read();s!==null&&i.push(XKe(s,r.readableEncoding));let o=i.length===1?i[0]:Buffer.concat(i);n=o;let l=r.headers["content-length"];if(typeof l=="string"&&/^\d+$/.test(l)){let c=Number(l);Number.isSafeInteger(c)&&o.length!==c&&(n=F$())}}return t[Die]=n,n},BKe=(r,e)=>{if(e instanceof Error){r.error(e);return}e.length>0&&r.enqueue(e),r.close()},R9t=(r,e,t,n,a)=>{let i={method:r,headers:t,signal:a.signal};if(r==="TRACE"){i.method="GET";let s=new Bw(e,i);return Object.defineProperty(s,"method",{get(){return"TRACE"}}),s}if(!(r==="GET"||r==="HEAD"))if("rawBody"in n&&n.rawBody instanceof Buffer)i.body=new ReadableStream({start(s){s.enqueue(n.rawBody),s.close()}});else if(n[JKe]){let s;i.body=new ReadableStream({async pull(o){try{if(!s){let d=R$(n);if(d!==void 0){BKe(o,d);return}}s||(s=Pie.Readable.toWeb(n).getReader());let{done:l,value:c}=await s.read();l?o.close():o.enqueue(c)}catch(l){o.error(l)}}})}else{let s=R$(n);s!==void 0?i.body=new ReadableStream({start(o){BKe(o,s)}}):i.body=Pie.Readable.toWeb(n)}return new Bw(e,i)},oh=Symbol("getRequestCache"),zp=Symbol("requestCache"),Uw=Symbol("incomingKey"),mA=Symbol("urlKey"),e8e=Symbol("methodKey"),jw=Symbol("headersKey"),lv=Symbol("abortControllerKey"),Mie=Symbol("getAbortController"),Aie=Symbol("abortRequest"),sh=Symbol("bodyBuffer"),N$=Symbol("bodyReadPromise"),Up=Symbol("bodyConsumedDirectly"),UKe=Symbol("bodyLockReader"),dA=Symbol("abortReason"),F$=()=>new TypeError("Body is unusable"),hA=()=>Promise.reject(F$()),F9t=new TextDecoder,O9t=r=>{if(r[Up])return hA();r[Up]=!0},L9t=r=>r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength),z9t=r=>(r[jw]||(r[jw]=QKe(r[Uw]))).get("content-type")||"",j9t=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,$9t=r=>{if(typeof r!="string"||r.length===0)return"GET";switch(r){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"PATCH":case"POST":case"PUT":case"QUERY":return r}let e=r.toUpperCase();switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"POST":case"PUT":return e;default:return r}},B9t=r=>{if(!j9t.test(r))return new TypeError(`'${r}' is not a valid HTTP method.`);let e=r.toUpperCase();if(e==="CONNECT"||e==="TRACK"||e==="TRACE"&&r!=="TRACE")return new TypeError(`'${r}' HTTP method is unsupported.`)},Rie=(r,e,t)=>{if(r[Up])return hA();let n=r.method;if(n==="GET"||n==="HEAD")return r[oh]()[e]();let a=B9t(n);if(a)return Promise.reject(a);if(r[zp]&&n!=="TRACE")return r[zp][e]();let i=O9t(r);if(i)return i;let s=U9t(r);if(s){let o=Promise.resolve(t(s,r));return r[sh]=void 0,o}return H9t(r).then(o=>{let l=t(o,r);return r[sh]=void 0,l})},U9t=r=>{let e=r[Uw];if("rawBody"in e&&e.rawBody instanceof Buffer)return e.rawBody},HKe=(r,e)=>{if(e.errored)return e.errored;let t=r[dA];return t!==void 0?t instanceof Error?t:new Error(String(t)):new Error("Client connection prematurely closed.")},H9t=r=>{if(r[sh])return Promise.resolve(r[sh]);if(r[N$])return r[N$];let e=r[Uw];if(e.readableDidRead)return hA();let t=R$(e);if(t!==void 0)return t instanceof Error?Promise.reject(t):(r[sh]=t,Promise.resolve(t));let n=new Promise((a,i)=>{let s=[],o=!1,l=h=>{o||(o=!0,f(),h())},c=h=>{var v;let g=(v=e.errored)!=null?v:h;return!Nie(e)||g&&g.code!=="ECONNRESET"?!1:(l(()=>{let b=R$(e,s);b instanceof Error?i(b):b===void 0?i(h!=null?h:HKe(r,e)):(r[sh]=b,a(b))}),!0)},d=h=>{s.push(XKe(h,e.readableEncoding))},u=()=>{l(()=>{let h=s.length===1?s[0]:Buffer.concat(s);r[sh]=h,a(h)})},p=h=>{c(h)||l(()=>{i(h)})},m=()=>{if(e.readableEnded){u();return}c()||l(()=>{i(HKe(r,e))})},f=()=>{e.off("data",d),e.off("end",u),e.off("error",p),e.off("close",m),r[N$]=void 0};e.on("data",d),e.on("end",u),e.on("error",p),e.on("close",m),queueMicrotask(()=>{o||(e.readableEnded?u():e.errored?p(e.errored):e.destroyed&&m())})});return r[N$]=n,n},ru={get method(){return this[e8e]},get url(){return this[mA]},get headers(){return this[jw]||(this[jw]=QKe(this[Uw]))},[Aie](r){this[dA]===void 0&&(this[dA]=r);let e=this[lv];e&&!e.signal.aborted&&e.abort(r)},[Mie](){return this[lv]||(this[lv]=new AbortController),this[dA]!==void 0&&!this[lv].signal.aborted&&this[lv].abort(this[dA]),this[lv]},[oh](){let r=this[Mie]();if(this[zp])return this[zp];let e=this.method;if(this[Up]&&!(e==="GET"||e==="HEAD")){this[sh]=void 0;let t={method:e==="TRACE"?"GET":e,headers:this.headers,signal:r.signal};e!=="TRACE"&&(t.body=new ReadableStream({start(a){a.close()}}),t.duplex="half");let n=new Bw(this[mA],t);return e==="TRACE"&&Object.defineProperty(n,"method",{get(){return"TRACE"}}),this[zp]=n}return this[zp]=R9t(this.method,this[mA],this.headers,this[Uw],r)},get body(){if(!this[Up])return this[oh]().body;let r=this[oh]();return!this[UKe]&&r.body&&(this[UKe]=r.body.getReader()),r.body},get bodyUsed(){return this[Up]?!0:this[zp]?this[zp].bodyUsed:!1}};Object.defineProperty(ru,"signal",{get(){return this[Mie]().signal}});["cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","keepalive"].forEach(r=>{Object.defineProperty(ru,r,{get(){return this[oh]()[r]}})});["clone","formData"].forEach(r=>{Object.defineProperty(ru,r,{value:function(){if(this[Up]){if(r==="clone")throw F$();return hA()}return this[oh]()[r]()}})});Object.defineProperty(ru,"text",{value:function(){return Rie(this,"text",r=>F9t.decode(r))}});Object.defineProperty(ru,"arrayBuffer",{value:function(){return Rie(this,"arrayBuffer",r=>L9t(r))}});Object.defineProperty(ru,"blob",{value:function(){return Rie(this,"blob",(r,e)=>{let t=z9t(e),n=t?{headers:{"content-type":t}}:void 0;return new Response(r,n).blob()})}});Object.defineProperty(ru,"json",{value:function(){return this[Up]?hA():this.text().then(JSON.parse)}});Object.defineProperty(ru,Symbol.for("nodejs.util.inspect.custom"),{value:function(r,e,t){return`Request (lightweight) ${t({method:this.method,url:this.url,headers:this.headers,nativeRequest:this[zp]},{...e,depth:r==null?null:r-1})}`}});Object.setPrototypeOf(ru,Bw.prototype);V9t=(r,e)=>{let t=Object.create(ru);t[Uw]=r,t[e8e]=$9t(r.method);let n=r.url||"";if(n[0]!=="/"&&(n.startsWith("http://")||n.startsWith("https://"))){if(r instanceof Bp.Http2ServerRequest)throw new eu("Absolute URL for :path is not allowed in HTTP/2");try{t[mA]=new URL(n).href}catch(s){throw new eu("Invalid absolute URL",{cause:s})}return t}let a=(r instanceof Bp.Http2ServerRequest?r.authority:r.headers.host)||e;if(!a)throw new eu("Missing host header");let i;if(r instanceof Bp.Http2ServerRequest){if(i=r.scheme,!(i==="http"||i==="https"))throw new eu("Unsupported scheme")}else i=r.socket&&r.socket.encrypted?"https":"http";try{t[mA]=M9t(i,a,n)}catch(s){throw s instanceof eu?s:new eu("Invalid URL",{cause:s})}return t},ih="text/plain; charset=UTF-8",uA=Symbol("responseCache"),zw=Symbol("getResponseCache"),$p=Symbol("cache"),O$=global.Response,tu=($w=class{constructor(e,t){Tc(this,fA);Tc(this,Xd);let n;if(xo(this,fA,e),t instanceof O$){let a=t[uA];if(a){xo(this,Xd,a),this[zw]();return}xo(this,Xd,t instanceof $w?In(t,Xd):t),n=new Headers(t.headers)}else xo(this,Xd,t);(e==null||typeof e=="string"||typeof(e==null?void 0:e.getReader)!="undefined"||e instanceof Blob||e instanceof Uint8Array)&&(this[$p]=[(t==null?void 0:t.status)||200,e!=null?e:null,n||(t==null?void 0:t.headers)])}[zw](){var n,a;let e=this[$p],t=e&&e[2]instanceof Headers?e[2]:void 0;return delete this[$p],this[uA]||(this[uA]=new O$(In(this,fA),t?{status:(n=In(this,Xd))==null?void 0:n.status,statusText:(a=In(this,Xd))==null?void 0:a.statusText,headers:t}:In(this,Xd)))}get headers(){let e=this[$p];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2]||(e[1]===null?void 0:{"content-type":ih}))),e[2]):this[zw]().headers}get status(){var e,t;return(t=(e=this[$p])==null?void 0:e[0])!=null?t:this[zw]().status}get ok(){let e=this.status;return e>=200&&e<300}},fA=new WeakMap,Xd=new WeakMap,$w);["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(r=>{Object.defineProperty(tu.prototype,r,{get(){return this[zw]()[r]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(r=>{Object.defineProperty(tu.prototype,r,{value:function(){return this[zw]()[r]()}})});Object.defineProperty(tu.prototype,Symbol.for("nodejs.util.inspect.custom"),{value:function(r,e,t){return`Response (lightweight) ${t({status:this.status,headers:this.headers,ok:this.ok,nativeResponse:this[uA]},{...e,depth:r==null?null:r-1})}`}});Object.setPrototypeOf(tu,O$);Object.setPrototypeOf(tu.prototype,O$.prototype);q9t=/^https?:\/\/[!#-;=?-[\]_a-z~A-Z]+$/,W9t=r=>r instanceof URL?r.href:q9t.test(r)?r:new URL(r).href,Y9t=new Set([301,302,303,307,308]);Object.defineProperty(tu,"redirect",{value:function(e,t=302){if(!Y9t.has(t))throw new RangeError("Invalid status code");return new tu(null,{status:t,headers:{location:W9t(e)}})},writable:!0,configurable:!0});Object.defineProperty(tu,"json",{value:function(e,t){var s;let n=JSON.stringify(e);if(n===void 0)throw new TypeError("The data is not JSON serializable");let a=t==null?void 0:t.headers,i;return a?(i=new Headers(a),i.has("content-type")||i.set("content-type","application/json")):i={"content-type":"application/json"},new tu(n,{status:(s=t==null?void 0:t.status)!=null?s:200,statusText:t==null?void 0:t.statusText,headers:i})},writable:!0,configurable:!0});_ie=(r,e)=>{var n;let t={};if(r instanceof Headers||(r=new Headers(r!=null?r:void 0)),r.has("set-cookie")){let a=[];for(let[i,s]of r)i==="set-cookie"?a.push(s):t[i]=s;a.length>0&&(t["set-cookie"]=a)}else for(let[a,i]of r)t[a]=i;return e&&((n=t["content-type"])!=null||(t["content-type"]=e)),t},L$=Symbol("outgoingEnded"),qKe=Symbol("incomingDraining"),K9t=500,Z9t=64*1024*1024,r8e=r=>{var o,l,c;let e=r;if(r.destroyed||e[qKe])return;if(e[qKe]=!0,r instanceof Bp.Http2ServerRequest){try{(l=(o=r.stream)==null?void 0:o.close)==null||l.call(o,Bp.constants.NGHTTP2_NO_ERROR)}catch(d){}return}let t=0,n=()=>{clearTimeout(i),r.off("data",s),r.off("end",n),r.off("error",n)},a=()=>{n();let d=r.socket;d&&!d.destroyed&&(typeof d.destroySoon=="function"?d.destroySoon():typeof d.destroy=="function"&&d.destroy())},i=setTimeout(a,K9t);(c=i.unref)==null||c.call(i);let s=d=>{t+=d.length,t>Z9t&&a()};r.on("data",s),r.on("end",n),r.on("error",n),r.resume()},Q9t=(r,e,t,n)=>()=>{e.errored?($Ke(e),r[Aie](e.errored.toString())):t.writableFinished||($Ke(e),r[Aie]("Client connection prematurely closed.")),n&&!e.readableEnded&&setTimeout(()=>{e.readableEnded||setTimeout(()=>{r8e(e)})})},J9t=r=>{if(!($p in r))return!1;let e=r[$p][1];return e===null||typeof e=="string"||e instanceof Uint8Array},X9t=()=>new Response(null,{status:400}),n8e=r=>new Response(null,{status:r instanceof Error&&(r.name==="TimeoutError"||r.constructor.name==="TimeoutError")?504:500}),z$=(r,e)=>{let t=r instanceof Error?r:new Error("unknown error",{cause:r});t.code==="ERR_STREAM_PREMATURE_CLOSE"?console.info("The user aborted a request."):(console.error(r),e.headersSent||e.writeHead(500,{"Content-Type":"text/plain"}),e.end(`Error: ${t.message}`),e.destroy(t))},Iie=r=>{"flushHeaders"in r&&r.writable&&r.flushHeaders()},a8e=async(r,e)=>{var s,o,l,c;let[t,n,a]=r[$p];if(!a){n===null?(e.writeHead(t),e.end()):typeof n=="string"?(e.writeHead(t,{"Content-Type":ih,"Content-Length":Buffer.byteLength(n)}),e.end(n)):n instanceof Uint8Array?(e.writeHead(t,{"Content-Type":ih,"Content-Length":n.byteLength}),e.end(n)):n instanceof Blob?(e.writeHead(t,{"Content-Type":ih,"Content-Length":n.size}),e.end(new Uint8Array(await n.arrayBuffer()))):(e.writeHead(t,{"Content-Type":ih}),Iie(e),await((s=VKe(n,e))==null?void 0:s.catch(d=>z$(d,e)))),(o=e[L$])==null||o.call(e);return}let i=!1;if(a instanceof Headers)i=a.has("content-length"),a=_ie(a,n===null?void 0:ih);else if(Array.isArray(a)){let d=new Headers(a);i=d.has("content-length"),a=_ie(d,n===null?void 0:ih)}else for(let d in a)if(d.length===14&&d.toLowerCase()==="content-length"){i=!0;break}i||(typeof n=="string"?a["Content-Length"]=Buffer.byteLength(n):n instanceof Uint8Array?a["Content-Length"]=n.byteLength:n instanceof Blob&&(a["Content-Length"]=n.size)),e.writeHead(t,a),n==null?e.end():typeof n=="string"||n instanceof Uint8Array?e.end(n):n instanceof Blob?e.end(new Uint8Array(await n.arrayBuffer())):(Iie(e),await((l=VKe(n,e))==null?void 0:l.catch(d=>z$(d,e)))),(c=e[L$])==null||c.call(e)},i8e=r=>typeof r.then=="function",eYt=async(r,e,t={})=>{var a;if(i8e(r))if(t.errorHandler)try{r=await r}catch(i){let s=await t.errorHandler(i);if(!s)return;r=s}else r=await r.catch(n8e);if($p in r)return a8e(r,e);let n=_ie(r.headers,r.body===null?void 0:ih);if(r.body){let i=r.body.getReader(),s=[],o=!1,l;if(n["transfer-encoding"]!=="chunked"){let c=2;for(let d=0;d<c;d++){l||(l=i.read());let u=await G9t(l).catch(p=>{console.error(p),o=!0});if(!u){if(d===1){await new Promise(p=>setTimeout(p)),c=3;continue}break}if(l=void 0,u.value&&s.push(u.value),u.done){o=!0;break}}o&&!("content-length"in n)&&(n["content-length"]=s.reduce((d,u)=>d+u.length,0))}e.writeHead(r.status,n),s.forEach(c=>{e.write(c)}),o?e.end():(s.length===0&&Iie(e),await t8e(i,e,l))}else n[OKe]||(e.writeHead(r.status,n),e.end());(a=e[L$])==null||a.call(e)},Fie=(r,e={})=>{var n;let t=(n=e.autoCleanupIncoming)!=null?n:!0;return e.overrideGlobalObjects!==!1&&global.Request!==Bw&&(Object.defineProperty(global,"Request",{value:Bw}),Object.defineProperty(global,"Response",{value:tu})),async(a,i)=>{let s,o,l=!1,c=!1,d=()=>{!o||c||(c=!0,i.on("close",Q9t(o,a,i,l)))};try{if(o=V9t(a,e.hostname),l=t&&!(a.method==="GET"||a.method==="HEAD"),l&&(a[JKe]=!0,a instanceof Bp.Http2ServerRequest&&(i[L$]=()=>{a.readableEnded||setTimeout(()=>{a.readableEnded||setTimeout(()=>{a.destroy(),i.destroy()})})})),s=r(o,{incoming:a,outgoing:i}),!i8e(s)&&J9t(s))return l&&!a.readableEnded&&i.once("finish",()=>{a.readableEnded||r8e(a)}),a8e(s,i);d()}catch(u){if(s)return z$(u,i);if(e.errorHandler){if(d(),s=await e.errorHandler(o?u:A9t(u)),!s)return}else o?s=n8e(u):s=X9t()}try{return await eYt(s,i,e)}catch(u){return z$(u,i)}}},tYt=(YKe=globalThis.CloseEvent)!=null?YKe:(WKe=class extends Event{constructor(e,t={}){super(e,t);Tc(this,cv);xo(this,cv,t)}get wasClean(){var e;return(e=In(this,cv).wasClean)!=null?e:!1}get code(){var e;return(e=In(this,cv).code)!=null?e:0}get reason(){var e;return(e=In(this,cv).reason)!=null?e:""}},cv=new WeakMap,WKe),rYt=(KKe=globalThis.ErrorEvent)!=null?KKe:(GKe=class extends Event{constructor(e,t={}){super(e,t);Tc(this,jp);xo(this,jp,t)}get message(){var e;return(e=In(this,jp).message)!=null?e:""}get filename(){var e;return(e=In(this,jp).filename)!=null?e:""}get lineno(){var e;return(e=In(this,jp).lineno)!=null?e:0}get colno(){var e;return(e=In(this,jp).colno)!=null?e:0}get error(){var e;return(e=In(this,jp).error)!=null?e:null}},jp=new WeakMap,GKe),nYt=()=>Symbol("connection"),aYt=Symbol("CONNECTION_SYMBOL_KEY"),iYt=Symbol("WAIT_FOR_WEBSOCKET_SYMBOL"),vnn=zKe(async(r,e,t)=>{var s;if(((s=r.req.header("upgrade"))==null?void 0:s.toLowerCase())!=="websocket")return;let n=r.env,a=n[iYt];if(!a||!n.incoming)return new Response(null,{status:500});let i=nYt();return n[aYt]=i,(async()=>{var p,m;let o;try{o=await a(n.incoming,i)}catch(f){return}let l=[],c=(f,h)=>{l.push([f,h])};o.on("message",c);let d={binaryType:"arraybuffer",close(f,h){o.close(f,h)},protocol:o.protocol,raw:o,get readyState(){return o.readyState},send(f,h){o.send(f,{compress:h==null?void 0:h.compress})},url:new URL(r.req.url)};try{(p=e==null?void 0:e.onOpen)==null||p.call(e,new Event("open"),d)}catch(f){((m=t==null?void 0:t.onError)!=null?m:console.error)(f)}let u=(f,h)=>{var v,b;let g=Array.isArray(f)?f:[f];for(let k of g)try{(v=e==null?void 0:e.onMessage)==null||v.call(e,new MessageEvent("message",{data:h?k instanceof ArrayBuffer?k:k.buffer.slice(k.byteOffset,k.byteOffset+k.byteLength):typeof k=="string"?k:Buffer.from(k).toString("utf-8")}),d)}catch(w){((b=t==null?void 0:t.onError)!=null?b:console.error)(w)}};o.off("message",c);for(let f of l)u(...f);o.on("message",(f,h)=>{u(f,h)}),o.on("close",(f,h)=>{var g,v;try{(g=e==null?void 0:e.onClose)==null||g.call(e,new tYt("close",{code:f,reason:h.toString()}),d)}catch(b){((v=t==null?void 0:t.onError)!=null?v:console.error)(b)}}),o.on("error",f=>{var h,g;try{(h=e==null?void 0:e.onError)==null||h.call(e,new rYt("error",{error:f}),d)}catch(v){((g=t==null?void 0:t.onError)!=null?g:console.error)(v)}})})(),new Response})});var j$,o8e=y(()=>{aM();j$=class{constructor(e={}){var t,n;this._started=!1,this._hasHandledRequest=!1,this._streamMapping=new Map,this._requestToStreamMapping=new Map,this._requestResponseMap=new Map,this._initialized=!1,this._enableJsonResponse=!1,this._standaloneSseStreamId="_GET_stream",this.sessionIdGenerator=e.sessionIdGenerator,this._enableJsonResponse=(t=e.enableJsonResponse)!=null?t:!1,this._eventStore=e.eventStore,this._onsessioninitialized=e.onsessioninitialized,this._onsessionclosed=e.onsessionclosed,this._allowedHosts=e.allowedHosts,this._allowedOrigins=e.allowedOrigins,this._enableDnsRebindingProtection=(n=e.enableDnsRebindingProtection)!=null?n:!1,this._retryInterval=e.retryInterval}async start(){if(this._started)throw new Error("Transport already started");this._started=!0}createJsonErrorResponse(e,t,n,a){let i={code:t,message:n};return(a==null?void 0:a.data)!==void 0&&(i.data=a.data),new Response(JSON.stringify({jsonrpc:"2.0",error:i,id:null}),{status:e,headers:{"Content-Type":"application/json",...a==null?void 0:a.headers}})}validateRequestHeaders(e){var t,n;if(this._enableDnsRebindingProtection){if(this._allowedHosts&&this._allowedHosts.length>0){let a=e.headers.get("host");if(!a||!this._allowedHosts.includes(a)){let i=`Invalid Host header: ${a}`;return(t=this.onerror)==null||t.call(this,new Error(i)),this.createJsonErrorResponse(403,-32e3,i)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let a=e.headers.get("origin");if(a&&!this._allowedOrigins.includes(a)){let i=`Invalid Origin header: ${a}`;return(n=this.onerror)==null||n.call(this,new Error(i)),this.createJsonErrorResponse(403,-32e3,i)}}}}async handleRequest(e,t){if(!this.sessionIdGenerator&&this._hasHandledRequest)throw new Error("Stateless transport cannot be reused across requests. Create a new transport per request.");this._hasHandledRequest=!0;let n=this.validateRequestHeaders(e);if(n)return n;switch(e.method){case"POST":return this.handlePostRequest(e,t);case"GET":return this.handleGetRequest(e);case"DELETE":return this.handleDeleteRequest(e);default:return this.handleUnsupportedRequest()}}async writePrimingEvent(e,t,n,a){if(!this._eventStore||a<"2025-11-25")return;let i=await this._eventStore.storeEvent(n,{}),s=`id: ${i}
|
||
data:
|
||
|
||
`;this._retryInterval!==void 0&&(s=`id: ${i}
|
||
retry: ${this._retryInterval}
|
||
data:
|
||
|
||
`),e.enqueue(t.encode(s))}async handleGetRequest(e){let t=e.headers.get("accept");if(!(t!=null&&t.includes("text/event-stream")))return this.createJsonErrorResponse(406,-32e3,"Not Acceptable: Client must accept text/event-stream");let n=this.validateSession(e);if(n)return n;let a=this.validateProtocolVersion(e);if(a)return a;if(this._eventStore){let c=e.headers.get("last-event-id");if(c)return this.replayEvents(c)}if(this._streamMapping.get(this._standaloneSseStreamId)!==void 0)return this.createJsonErrorResponse(409,-32e3,"Conflict: Only one SSE stream is allowed per session");let i=new TextEncoder,s,o=new ReadableStream({start:c=>{s=c},cancel:()=>{this._streamMapping.delete(this._standaloneSseStreamId)}}),l={"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive"};return this.sessionId!==void 0&&(l["mcp-session-id"]=this.sessionId),this._streamMapping.set(this._standaloneSseStreamId,{controller:s,encoder:i,cleanup:()=>{this._streamMapping.delete(this._standaloneSseStreamId);try{s.close()}catch(c){}}}),new Response(o,{headers:l})}async replayEvents(e){var t;if(!this._eventStore)return this.createJsonErrorResponse(400,-32e3,"Event store not configured");try{let n;if(this._eventStore.getStreamIdForEventId){if(n=await this._eventStore.getStreamIdForEventId(e),!n)return this.createJsonErrorResponse(400,-32e3,"Invalid event ID format");if(this._streamMapping.get(n)!==void 0)return this.createJsonErrorResponse(409,-32e3,"Conflict: Stream already has an active connection")}let a={"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive"};this.sessionId!==void 0&&(a["mcp-session-id"]=this.sessionId);let i=new TextEncoder,s,o=new ReadableStream({start:c=>{s=c},cancel:()=>{}}),l=await this._eventStore.replayEventsAfter(e,{send:async(c,d)=>{var p;if(!this.writeSSEEvent(s,i,d,c)){(p=this.onerror)==null||p.call(this,new Error("Failed replay events"));try{s.close()}catch(m){}}}});return this._streamMapping.set(l,{controller:s,encoder:i,cleanup:()=>{this._streamMapping.delete(l);try{s.close()}catch(c){}}}),new Response(o,{headers:a})}catch(n){return(t=this.onerror)==null||t.call(this,n),this.createJsonErrorResponse(500,-32e3,"Error replaying events")}}writeSSEEvent(e,t,n,a){try{let i=`event: message
|
||
`;return a&&(i+=`id: ${a}
|
||
`),i+=`data: ${JSON.stringify(n)}
|
||
|
||
`,e.enqueue(t.encode(i)),!0}catch(i){return!1}}handleUnsupportedRequest(){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(e,t){var n,a,i,s,o;try{let l=e.headers.get("accept");if(!(l!=null&&l.includes("application/json"))||!l.includes("text/event-stream"))return this.createJsonErrorResponse(406,-32e3,"Not Acceptable: Client must accept both application/json and text/event-stream");let c=e.headers.get("content-type");if(!c||!c.includes("application/json"))return this.createJsonErrorResponse(415,-32e3,"Unsupported Media Type: Content-Type must be application/json");let d={headers:Object.fromEntries(e.headers.entries())},u;if((t==null?void 0:t.parsedBody)!==void 0)u=t.parsedBody;else try{u=await e.json()}catch(C){return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}let p;try{Array.isArray(u)?p=u.map(C=>ate.parse(C)):p=[ate.parse(u)]}catch(C){return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let m=p.some(ite);if(m){if(this._initialized&&this.sessionId!==void 0)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(p.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");this.sessionId=(n=this.sessionIdGenerator)==null?void 0:n.call(this),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!m){let C=this.validateSession(e);if(C)return C;let E=this.validateProtocolVersion(e);if(E)return E}if(!p.some($f)){for(let C of p)(a=this.onmessage)==null||a.call(this,C,{authInfo:t==null?void 0:t.authInfo,requestInfo:d});return new Response(null,{status:202})}let h=crypto.randomUUID(),g=p.find(C=>ite(C)),v=g?g.params.protocolVersion:(i=e.headers.get("mcp-protocol-version"))!=null?i:f3e;if(this._enableJsonResponse)return new Promise(C=>{var E;this._streamMapping.set(h,{resolveJson:C,cleanup:()=>{this._streamMapping.delete(h)}});for(let D of p)$f(D)&&this._requestToStreamMapping.set(D.id,h);for(let D of p)(E=this.onmessage)==null||E.call(this,D,{authInfo:t==null?void 0:t.authInfo,requestInfo:d})});let b=new TextEncoder,k,w=new ReadableStream({start:C=>{k=C},cancel:()=>{this._streamMapping.delete(h)}}),S={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};this.sessionId!==void 0&&(S["mcp-session-id"]=this.sessionId);for(let C of p)$f(C)&&(this._streamMapping.set(h,{controller:k,encoder:b,cleanup:()=>{this._streamMapping.delete(h);try{k.close()}catch(E){}}}),this._requestToStreamMapping.set(C.id,h));await this.writePrimingEvent(k,b,h,v);for(let C of p){let E,D;$f(C)&&this._eventStore&&v>="2025-11-25"&&(E=()=>{this.closeSSEStream(C.id)},D=()=>{this.closeStandaloneSSEStream()}),(s=this.onmessage)==null||s.call(this,C,{authInfo:t==null?void 0:t.authInfo,requestInfo:d,closeSSEStream:E,closeStandaloneSSEStream:D})}return new Response(w,{status:200,headers:S})}catch(l){return(o=this.onerror)==null||o.call(this,l),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(l)})}}async handleDeleteRequest(e){var a;let t=this.validateSession(e);if(t)return t;let n=this.validateProtocolVersion(e);return n||(await Promise.resolve((a=this._onsessionclosed)==null?void 0:a.call(this,this.sessionId)),await this.close(),new Response(null,{status:200}))}validateSession(e){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.createJsonErrorResponse(400,-32e3,"Bad Request: Server not initialized");let t=e.headers.get("mcp-session-id");if(!t)return this.createJsonErrorResponse(400,-32e3,"Bad Request: Mcp-Session-Id header is required");if(t!==this.sessionId)return this.createJsonErrorResponse(404,-32001,"Session not found")}validateProtocolVersion(e){let t=e.headers.get("mcp-protocol-version");if(t!==null&&!K0.includes(t))return this.createJsonErrorResponse(400,-32e3,`Bad Request: Unsupported protocol version: ${t} (supported versions: ${K0.join(", ")})`)}async close(){var e;this._streamMapping.forEach(({cleanup:t})=>{t()}),this._streamMapping.clear(),this._requestResponseMap.clear(),(e=this.onclose)==null||e.call(this)}closeSSEStream(e){let t=this._requestToStreamMapping.get(e);if(!t)return;let n=this._streamMapping.get(t);n&&n.cleanup()}closeStandaloneSSEStream(){let e=this._streamMapping.get(this._standaloneSseStreamId);e&&e.cleanup()}async send(e,t){let n=t==null?void 0:t.relatedRequestId;if((Mp(e)||rw(e))&&(n=e.id),n===void 0){if(Mp(e)||rw(e))throw new Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let s;this._eventStore&&(s=await this._eventStore.storeEvent(this._standaloneSseStreamId,e));let o=this._streamMapping.get(this._standaloneSseStreamId);if(o===void 0)return;o.controller&&o.encoder&&this.writeSSEEvent(o.controller,o.encoder,e,s);return}let a=this._requestToStreamMapping.get(n);if(!a)throw new Error(`No connection established for request ID: ${String(n)}`);let i=this._streamMapping.get(a);if(!this._enableJsonResponse&&(i!=null&&i.controller)&&(i!=null&&i.encoder)){let s;this._eventStore&&(s=await this._eventStore.storeEvent(a,e)),this.writeSSEEvent(i.controller,i.encoder,e,s)}if(Mp(e)||rw(e)){this._requestResponseMap.set(n,e);let s=Array.from(this._requestToStreamMapping.entries()).filter(([l,c])=>c===a).map(([l])=>l);if(s.every(l=>this._requestResponseMap.has(l))){if(!i)throw new Error(`No connection established for request ID: ${String(n)}`);if(this._enableJsonResponse&&i.resolveJson){let l={"Content-Type":"application/json"};this.sessionId!==void 0&&(l["mcp-session-id"]=this.sessionId);let c=s.map(d=>this._requestResponseMap.get(d));c.length===1?i.resolveJson(new Response(JSON.stringify(c[0]),{status:200,headers:l})):i.resolveJson(new Response(JSON.stringify(c),{status:200,headers:l}))}else i.cleanup();for(let l of s)this._requestResponseMap.delete(l),this._requestToStreamMapping.delete(l)}}}}});var $$,l8e=y(()=>{s8e();o8e();$$=class{constructor(e={}){this._requestContext=new WeakMap,this._webStandardTransport=new j$(e),this._requestListener=Fie(async t=>{let n=this._requestContext.get(t);return this._webStandardTransport.handleRequest(t,{authInfo:n==null?void 0:n.authInfo,parsedBody:n==null?void 0:n.parsedBody})},{overrideGlobalObjects:!1})}get sessionId(){return this._webStandardTransport.sessionId}set onclose(e){this._webStandardTransport.onclose=e}get onclose(){return this._webStandardTransport.onclose}set onerror(e){this._webStandardTransport.onerror=e}get onerror(){return this._webStandardTransport.onerror}set onmessage(e){this._webStandardTransport.onmessage=e}get onmessage(){return this._webStandardTransport.onmessage}async start(){return this._webStandardTransport.start()}async close(){return this._webStandardTransport.close()}async send(e,t){return this._webStandardTransport.send(e,t)}async handleRequest(e,t,n){let a=e.auth;await Fie(async s=>this._webStandardTransport.handleRequest(s,{authInfo:a,parsedBody:n}),{overrideGlobalObjects:!1})(e,t)}closeSSEStream(e){this._webStandardTransport.closeSSEStream(e)}closeStandaloneSSEStream(){this._webStandardTransport.closeStandaloneSSEStream()}}});function d8e(r){let e=Array.isArray(r)?r:[r];for(let t of e){let n=t.params;t.method!=="initialize"||!n||typeof n.protocolVersion!="string"||sYt.has(n.protocolVersion)||(n.protocolVersion=c8e)}return r}var c8e,sYt,u8e=y(()=>{c8e="2025-06-18",sYt=new Set([c8e,"2025-03-26","2024-11-05","2024-10-07"])});function cYt(){let r=[];return function(t,n){if(t!=="basesData"){if(typeof n=="bigint")return n.toString();if(!(typeof n=="function"||typeof n=="symbol")){if(n===null||typeof n!="object")return n;if(!Array.isArray(n)){let a=Object.getPrototypeOf(n);if(a!==Object.prototype&&a!==null)return}for(;r.length>0&&r[r.length-1]!==this;)r.pop();if(!r.includes(n))return r.push(n),n}}}}function f8e(r){return JSON.stringify(r,cYt())}var oYt,h8e,lYt,p8e,m8e,B$,g8e=y(()=>{FKe();l8e();BL();Yr();HP();IJ();fE();AJ();u8e();K();oYt=N({tag:"Services/MCPService"}),h8e=lpe.map(r=>r.id),lYt=["Filter operator. Valid operators:",h8e.join(", ")].join(" "),p8e=L.object({id:L.string().describe("Unique reminder ID"),type:L.enum(["absolute","relative"]).describe("Reminder type"),relatedTo:L.enum(["scheduled","due"]).optional().describe("Anchor date for relative reminders"),offset:L.string().optional().describe("ISO 8601 duration offset for relative reminders, e.g. -PT1H"),absoluteTime:L.string().optional().describe("Absolute reminder time as an ISO 8601 timestamp"),description:L.string().optional().describe("Optional reminder description")}),m8e=L.record(L.string(),L.unknown()).optional().describe("Configured TaskNotes custom user-field values keyed by frontmatter property key");B$=class{constructor(e,t,n,a,i,s,o){this.plugin=e;this.taskService=t;this.filterService=n;this.cacheManager=a;this.statusManager=i;this.nlParser=s;this.taskStatsService=o}async handleRequest(e,t,n){if(e.method!=="POST"){t.writeHead(405,{Allow:"POST"}),t.end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed"},id:null}));return}try{d8e(n);let a=new $$({sessionIdGenerator:void 0}),i=new I$({name:"tasknotes",version:this.plugin.manifest.version});this.registerTools(i),await i.connect(a),await a.handleRequest(e,t,n),await a.close(),await i.close()}catch(a){oYt.error("MCP request error:",{category:"provider",operation:"mcp-request",error:a}),t.headersSent||(t.writeHead(500,{"Content-Type":"application/json"}),t.end(JSON.stringify({jsonrpc:"2.0",error:{code:-32603,message:"Internal error"},id:null})))}}registerTools(e){this.registerTaskTools(e),this.registerFilterTools(e),this.registerTimeTrackingTools(e),this.registerPomodoroTools(e),this.registerCalendarTools(e),this.registerSystemTools(e)}getErrorMessage(e){return e instanceof Error?e.message:String(e)}getToolRegistrar(e){return e.registerTool.bind(e)}registerTaskTools(e){let t=this.getToolRegistrar(e);t("tasknotes_list_tasks",{description:"List all tasks with optional pagination",inputSchema:{limit:L.number().optional().describe("Max tasks to return"),offset:L.number().optional().describe("Number of tasks to skip")}},async({limit:n,offset:a})=>{try{let i=await this.cacheManager.getAllTasks(),s=a!=null?a:0,o=n?s+n:void 0,l=i.slice(s,o);return this.jsonResult({tasks:l,total:i.length,offset:s,returned:l.length})}catch(i){return this.errorResult(this.getErrorMessage(i))}}),t("tasknotes_get_task",{description:"Get a single task by its file path ID",inputSchema:{id:L.string().describe("Task file path (e.g. 'tasks/My Task.md')")}},async({id:n})=>{try{let a=await this.cacheManager.getTaskInfo(n);if(!a)return this.errorResult("Task not found");let i=await dz(this.plugin.app,a);return this.jsonResult(i)}catch(a){return this.errorResult(this.getErrorMessage(a))}}),t("tasknotes_create_task",{description:"Create a new task",inputSchema:{title:L.string().describe("Task title"),status:L.string().optional().describe("Task status (e.g. 'open', 'in-progress', 'done')"),priority:L.string().optional().describe("Task priority (e.g. 'low', 'normal', 'high', 'urgent')"),due:L.string().optional().describe("Due date (YYYY-MM-DD)"),scheduled:L.string().optional().describe("Scheduled date (YYYY-MM-DD)"),tags:L.array(L.string()).optional().describe("Tags"),contexts:L.array(L.string()).optional().describe("Contexts"),projects:L.array(L.string()).optional().describe("Projects"),recurrence:L.string().optional().describe("RFC 5545 recurrence rule"),timeEstimate:L.number().optional().describe("Time estimate in minutes"),reminders:L.array(p8e).optional().describe("Task reminders"),details:L.string().optional().describe("Task body/description"),customProperties:m8e}},async n=>{try{let a={title:n.title,path:"",archived:!1,status:n.status||this.plugin.settings.defaultTaskStatus,priority:n.priority||this.plugin.settings.defaultTaskPriority,due:n.due,scheduled:n.scheduled,tags:n.tags,contexts:n.contexts,projects:n.projects,recurrence:n.recurrence,timeEstimate:n.timeEstimate,reminders:n.reminders,details:n.details,customProperties:n.customProperties,creationContext:"api"},i=await this.taskService.createTask(a);return this.jsonResult(i.taskInfo)}catch(a){return this.errorResult(this.getErrorMessage(a))}}),t("tasknotes_update_task",{description:"Update an existing task's properties",inputSchema:{id:L.string().describe("Task file path"),title:L.string().optional().describe("New title"),status:L.string().optional().describe("New status"),priority:L.string().optional().describe("New priority"),due:L.string().nullable().optional().describe("New due date (YYYY-MM-DD) or null to clear"),scheduled:L.string().nullable().optional().describe("New scheduled date (YYYY-MM-DD) or null to clear"),tags:L.array(L.string()).optional().describe("New tags"),contexts:L.array(L.string()).optional().describe("New contexts"),projects:L.array(L.string()).optional().describe("New projects"),recurrence:L.string().nullable().optional().describe("New recurrence rule or null to clear"),timeEstimate:L.number().nullable().optional().describe("New time estimate in minutes or null to clear"),reminders:L.array(p8e).nullable().optional().describe("New reminders array or null to clear"),details:L.string().optional().describe("New body/description"),customProperties:m8e}},async({id:n,...a})=>{try{let i=await this.cacheManager.getTaskInfo(n);if(!i)return this.errorResult("Task not found");let s={};for(let[l,c]of Object.entries(a)){if(l==="reminders"&&c===null){s.reminders=void 0;continue}c!==void 0&&(s[l]=c)}let o=await this.taskService.updateTask(i,s);return this.jsonResult(o)}catch(i){return this.errorResult(this.getErrorMessage(i))}}),t("tasknotes_delete_task",{description:"Permanently delete a task file",inputSchema:{id:L.string().describe("Task file path")}},async({id:n})=>{try{let a=await this.cacheManager.getTaskInfo(n);return a?(await this.taskService.deleteTask(a),this.jsonResult({deleted:!0,id:n})):this.errorResult("Task not found")}catch(a){return this.errorResult(this.getErrorMessage(a))}}),t("tasknotes_toggle_status",{description:"Toggle a task's status through the status cycle",inputSchema:{id:L.string().describe("Task file path")}},async({id:n})=>{try{let a=await this.cacheManager.getTaskInfo(n);if(!a)return this.errorResult("Task not found");let i=await this.taskService.toggleStatus(a);return this.jsonResult(i)}catch(a){return this.errorResult(this.getErrorMessage(a))}}),t("tasknotes_toggle_archive",{description:"Toggle a task's archived state",inputSchema:{id:L.string().describe("Task file path")}},async({id:n})=>{try{let a=await this.cacheManager.getTaskInfo(n);if(!a)return this.errorResult("Task not found");let i=await this.taskService.toggleArchive(a);return this.jsonResult(i)}catch(a){return this.errorResult(this.getErrorMessage(a))}}),t("tasknotes_complete_recurring_instance",{description:"Mark a recurring task as completed for a specific date",inputSchema:{id:L.string().describe("Task file path"),date:L.string().optional().describe("Date to mark complete (YYYY-MM-DD), defaults to today")}},async({id:n,date:a})=>{try{let i=await this.cacheManager.getTaskInfo(n);if(!i)return this.errorResult("Task not found");let s=a?new Date(a):void 0,o=await this.taskService.toggleRecurringTaskCompleteWithOccurrenceNotes(i,s);return this.jsonResult(o)}catch(i){return this.errorResult(this.getErrorMessage(i))}}),t("tasknotes_materialize_occurrence",{description:"Create or return a materialized occurrence note for a recurring task",inputSchema:{id:L.string().describe("Parent recurring task file path"),date:L.string().describe("Occurrence date to materialize (YYYY-MM-DD)")}},async({id:n,date:a})=>{try{let i=await this.cacheManager.getTaskInfo(n);if(!i)return this.errorResult("Task not found");let s=await this.taskService.materializeOccurrence(i,a);return this.jsonResult(s)}catch(i){return this.errorResult(this.getErrorMessage(i))}}),t("tasknotes_create_task_from_text",{description:"Create a task by parsing natural language text (e.g. 'Buy groceries tomorrow #shopping @home')",inputSchema:{text:L.string().describe("Natural language task description")}},async({text:n})=>{try{let a=this.nlParser.parseInput(n),i=Bu(this.plugin,a,{creationContext:"api"}),s=await this.taskService.createTask(i);return this.jsonResult({parsed:a,task:s.taskInfo})}catch(a){return this.errorResult(this.getErrorMessage(a))}})}registerFilterTools(e){let t=this.getToolRegistrar(e),n=L.union([L.string(),L.array(L.string()),L.number(),L.boolean(),L.null()]),a=L.enum(h8e).describe(lYt),i=L.object({type:L.literal("condition"),id:L.string(),property:L.string().describe("Filter property (e.g. 'status', 'priority', 'due', 'tags', 'projects', 'contexts')"),operator:a,value:n}),s=L.lazy(()=>L.object({type:L.literal("group"),id:L.string(),conjunction:L.enum(["and","or"]),children:L.array(L.union([i,s]))}));t("tasknotes_query_tasks",{description:"Query tasks using advanced filters with AND/OR logic, sorting, and grouping",inputSchema:{conjunction:L.enum(["and","or"]).describe("How to combine filter conditions"),children:L.array(L.union([i,s])).describe("Filter conditions or nested groups"),sortKey:L.string().optional().describe("Sort by field (e.g. 'due', 'priority', 'title', 'status')"),sortDirection:L.enum(["asc","desc"]).optional().describe("Sort direction"),groupKey:L.string().optional().describe("Group by field (e.g. 'priority', 'status', 'projects')")}},async o=>{try{let l={type:"group",id:"mcp-root",conjunction:o.conjunction,children:o.children,sortKey:o.sortKey,sortDirection:o.sortDirection,groupKey:o.groupKey},c=await this.filterService.getGroupedTasks(l),d={};for(let[u,p]of c)d[u]=p;return this.jsonResult(d)}catch(l){return this.errorResult(this.getErrorMessage(l))}}),t("tasknotes_get_filter_options",{description:"Get available filter options (statuses, priorities, tags, contexts, projects)",inputSchema:{}},async()=>{try{let o=await this.filterService.getFilterOptions();return this.jsonResult(o)}catch(o){return this.errorResult(this.getErrorMessage(o))}}),t("tasknotes_get_stats",{description:"Get task statistics (counts by status, priority, overdue, etc.)",inputSchema:{}},async()=>{try{let o=await this.cacheManager.getAllTasks(),l=this.taskStatsService.getStats(o);return this.jsonResult(l)}catch(o){return this.errorResult(this.getErrorMessage(o))}})}registerTimeTrackingTools(e){let t=this.getToolRegistrar(e);t("tasknotes_start_time_tracking",{description:"Start a time tracking session on a task",inputSchema:{id:L.string().describe("Task file path"),description:L.string().optional().describe("Description for the time session")}},async({id:n,description:a})=>{try{let i=await this.cacheManager.getTaskInfo(n);if(!i)return this.errorResult("Task not found");let s=await this.taskService.startTimeTracking(i);if(a&&s.timeEntries&&s.timeEntries.length>0){let o=s.timeEntries[s.timeEntries.length-1];o&&!o.endTime&&(o.description=a,s=await this.taskService.updateTask(s,{timeEntries:s.timeEntries}))}return this.jsonResult(s)}catch(i){return this.errorResult(this.getErrorMessage(i))}}),t("tasknotes_stop_time_tracking",{description:"Stop the active time tracking session on a task",inputSchema:{id:L.string().describe("Task file path")}},async({id:n})=>{try{let a=await this.cacheManager.getTaskInfo(n);if(!a)return this.errorResult("Task not found");let i=await this.taskService.stopTimeTracking(a);return this.jsonResult(i)}catch(a){return this.errorResult(this.getErrorMessage(a))}}),t("tasknotes_get_active_time_sessions",{description:"Get all tasks with currently running time tracking sessions",inputSchema:{}},async()=>{try{let n=await this.cacheManager.getAllTasks(),a=RT(n,i=>this.plugin.getActiveTimeSession(i));return this.jsonResult(a)}catch(n){return this.errorResult(this.getErrorMessage(n))}}),t("tasknotes_get_time_summary",{description:"Get time tracking summary for a period",inputSchema:{period:L.enum(["today","week","month","all","custom"]).optional().describe("Time period (default: today)"),from:L.string().optional().describe("Start date (ISO string) for custom range"),to:L.string().optional().describe("End date (ISO string) for custom range")}},async({period:n,from:a,to:i})=>{try{let s=await this.cacheManager.getAllTasks(),o=n||"today",l=a?new Date(a):null,c=i?new Date(i):null,d=FT(s,{period:o,fromDate:l,toDate:c,includeTags:!1},u=>this.statusManager.isCompletedStatus(u));return this.jsonResult(d)}catch(s){return this.errorResult(this.getErrorMessage(s))}}),t("tasknotes_get_task_time_data",{description:"Get detailed time tracking data for a specific task",inputSchema:{id:L.string().describe("Task file path")}},async({id:n})=>{try{let a=await this.cacheManager.getTaskInfo(n);if(!a)return this.errorResult("Task not found");let i=Cf(a,s=>this.plugin.getActiveTimeSession(s));return this.jsonResult(i)}catch(a){return this.errorResult(this.getErrorMessage(a))}})}registerPomodoroTools(e){let t=this.getToolRegistrar(e);t("tasknotes_start_pomodoro",{description:"Start a pomodoro timer, optionally linked to a task",inputSchema:{taskId:L.string().optional().describe("Task file path to associate with this pomodoro"),duration:L.number().optional().describe("Duration in minutes (default: work duration from settings)")}},async({taskId:n,duration:a})=>{try{let i;if(n&&(i=await this.cacheManager.getTaskInfo(n),!i))return this.errorResult("Task not found");if(this.plugin.pomodoroService.getState().isRunning)return this.errorResult("Pomodoro session is already running. Stop or pause the current session first.");await this.plugin.pomodoroService.startPomodoro(i,a);let o=this.plugin.pomodoroService.getState();return this.jsonResult({session:o.currentSession,task:i||null,message:"Pomodoro session started"})}catch(i){return this.errorResult(this.getErrorMessage(i))}}),t("tasknotes_stop_pomodoro",{description:"Stop and reset the current pomodoro session",inputSchema:{}},async()=>{try{return this.plugin.pomodoroService.getState().currentSession?(await this.plugin.pomodoroService.stopPomodoro(),this.jsonResult({message:"Pomodoro session stopped and reset"})):this.errorResult("No active pomodoro session to stop")}catch(n){return this.errorResult(this.getErrorMessage(n))}}),t("tasknotes_pause_pomodoro",{description:"Pause the running pomodoro timer",inputSchema:{}},async()=>{try{let n=this.plugin.pomodoroService.getState();if(!n.isRunning||!n.currentSession)return this.errorResult("No running pomodoro session to pause");await this.plugin.pomodoroService.pausePomodoro();let a=this.plugin.pomodoroService.getState();return this.jsonResult({timeRemaining:a.timeRemaining,message:"Pomodoro session paused"})}catch(n){return this.errorResult(this.getErrorMessage(n))}}),t("tasknotes_resume_pomodoro",{description:"Resume a paused pomodoro timer",inputSchema:{}},async()=>{try{let n=this.plugin.pomodoroService.getState();if(n.isRunning)return this.errorResult("Pomodoro session is already running");if(!n.currentSession)return this.errorResult("No paused session to resume");await this.plugin.pomodoroService.resumePomodoro();let a=this.plugin.pomodoroService.getState();return this.jsonResult({timeRemaining:a.timeRemaining,message:"Pomodoro session resumed"})}catch(n){return this.errorResult(this.getErrorMessage(n))}}),t("tasknotes_get_pomodoro_status",{description:"Get the current pomodoro timer status including stats",inputSchema:{}},async()=>{try{let a={...this.plugin.pomodoroService.getState(),totalPomodoros:await this.plugin.pomodoroService.getPomodorosCompleted(),currentStreak:await this.plugin.pomodoroService.getCurrentStreak(),totalMinutesToday:await this.plugin.pomodoroService.getTotalMinutesToday()};return this.jsonResult(a)}catch(n){return this.errorResult(this.getErrorMessage(n))}})}registerCalendarTools(e){this.getToolRegistrar(e)("tasknotes_get_calendar_events",{description:"Get calendar events from all connected providers (Google, Microsoft, ICS subscriptions)",inputSchema:{start:L.string().optional().describe("Start date filter (ISO string)"),end:L.string().optional().describe("End date filter (ISO string)")}},async({start:n,end:a})=>{var i;try{let s=n?new Date(n):null,o=a?new Date(a):null,l=pz(this.plugin.calendarProviderRegistry,(i=this.plugin.icsSubscriptionService)!=null?i:null,{start:s,end:o});return this.jsonResult({events:l.events,total:l.total})}catch(s){return this.errorResult(this.getErrorMessage(s))}})}registerSystemTools(e){this.getToolRegistrar(e)("tasknotes_health_check",{description:"Check if the TaskNotes MCP server is running and return vault info",inputSchema:{}},async()=>{try{let n=this.plugin.app.vault.getName(),a=this.plugin.app.vault.adapter.basePath||"unknown";return this.jsonResult({status:"ok",vault:n,vaultPath:a,version:this.plugin.manifest.version,timestamp:new Date().toISOString()})}catch(n){return this.errorResult(this.getErrorMessage(n))}})}jsonResult(e){return{content:[{type:"text",text:f8e(e)}]}}errorResult(e){return{content:[{type:"text",text:f8e({error:e})}],isError:!0}}}});var y8e={};at(y8e,{API_BIND_HOST:()=>Lie,HTTPAPIService:()=>yA});var gA,Oie,Lie,yA,v8e=y(()=>{Lc();aW();E4();Bd();nWe();sWe();oWe();lWe();dWe();pWe();fWe();hWe();g8e();MJ();Ry();K();gA=require("obsidian"),Oie=N({tag:"Services/HTTPAPIService"}),Lie="127.0.0.1",yA=class{constructor(e,t,n,a){this.plugin=e;let i=ra.fromPlugin(e),s=new eb(e.settings.customStatuses,e.settings.defaultTaskStatus),o=new _b(a,s);this.webhookController=new Rf(e),this.tasksController=new Ci(e,t,n,a,o),this.timeTrackingController=new Ud(e,t,a,s),this.pomodoroController=new oc(e,a),this.systemController=new Ep(e,t,i,this),this.calendarsController=new Dp(e,e.oauthService,e.icsSubscriptionService,e.calendarProviderRegistry),this.basesController=new I0(e),e.settings.enableMCP&&(this.mcpService=new B$(e,t,n,a,s,i,o)),this.router=new sz,this.setupRoutes()}setupRoutes(){this.router.registerController(this.tasksController),this.router.registerController(this.timeTrackingController),this.router.registerController(this.pomodoroController),this.router.registerController(this.systemController),this.router.registerController(this.webhookController),this.router.registerController(this.calendarsController),this.router.registerController(this.basesController)}generateOpenAPISpec(){let e=_0(this.systemController),t=[this.tasksController,this.timeTrackingController,this.pomodoroController,this.systemController,this.webhookController,this.calendarsController,this.basesController];e.paths={};for(let n of t){let a=_0(n);a.paths&&(e.paths={...e.paths,...a.paths})}return e.servers=[{url:`http://localhost:${this.plugin.settings.apiPort}`,description:"TaskNotes API Server"}],e}async handleCORSPreflight(e,t){t.statusCode=200,oz(t),t.end()}getFallbackCORSOrigin(){return`http://${Lie}:${this.plugin.settings.apiPort}`}getRequestOrigin(e){let t=e.headers.origin;return Array.isArray(t)?t[0]:t}applyCORSPolicy(e,t){let n=this.getRequestOrigin(e),a=aWe(n,this.getFallbackCORSOrigin());return a?(oz(t,{allowOrigin:a}),!0):!1}authenticate(e){let t=this.plugin.settings.apiAuthToken;if(!t)return!0;let n=e.headers.authorization,a=Array.isArray(n)?n[0]:n;return!a||!a.startsWith("Bearer ")?!1:a.substring(7)===t}sendResponse(e,t,n){lz(e,t,n)}successResponse(e,t){return{success:!0,data:e,message:t}}errorResponse(e){return{success:!1,error:e}}async handleRequest(e,t){try{if(!this.applyCORSPolicy(e,t)){t.statusCode=403,t.setHeader("Content-Type","application/json"),t.end(JSON.stringify(this.errorResponse("CORS origin is not allowed")));return}if(e.method==="OPTIONS"){await this.handleCORSPreflight(e,t);return}let n=ko(e).pathname;if(n==="/mcp"){if(!this.mcpService){this.sendResponse(t,404,this.errorResponse("MCP server is not enabled"));return}if(!this.authenticate(e)){this.sendResponse(t,401,this.errorResponse("Authentication required"));return}let i=await this.parseBody(e);await this.mcpService.handleRequest(e,t,i);return}if(n.startsWith("/api/")&&!this.authenticate(e)){this.sendResponse(t,401,this.errorResponse("Authentication required"));return}await this.router.route(e,t)||this.sendResponse(t,404,this.errorResponse("Not found"))}catch(n){Oie.error("API Error:",{category:"provider",operation:"api",error:n}),this.sendResponse(t,500,this.errorResponse("Internal server error"))}}async triggerWebhook(e,t){await this.webhookController.triggerWebhook(e,t)}syncWebhookSettings(){this.webhookController.syncFromSettings()}parseBody(e){return cz(e)}async start(){return new Promise((e,t)=>{if(!gA.Platform.isDesktop||!gA.Platform.isDesktopApp){t(new Error("The HTTP API is only available in the desktop app."));return}try{if(gA.Platform.isDesktop&&gA.Platform.isDesktopApp){let n=require("http");this.server=n.createServer((a,i)=>{this.handleRequest(a,i).catch(s=>{Oie.error("Request handling error:",{category:"provider",operation:"request-handling",error:s}),this.sendResponse(i,500,this.errorResponse("Internal server error"))})}),this.server.listen(this.plugin.settings.apiPort,Lie,()=>{e()}),this.server.on("error",a=>{Oie.error("API server error:",{category:"provider",operation:"api-server",error:a}),t(a)})}}catch(n){t(n instanceof Error?n:new Error(String(n)))}})}async stop(){return new Promise(e=>{this.server?this.server.close(()=>{e()}):e()})}isRunning(){var e;return((e=this.server)==null?void 0:e.listening)===!0}getPort(){return this.plugin.settings.apiPort}};yA=tt([tWe],yA)});function zie(r,e){if(!r)return null;let t=r.match(/DTSTART:(\d{8})(T(\d{6})Z?)?;?/);if(!t)return null;let n=t[1],a=t[3],i=!!a,s=`${n.slice(0,4)}-${n.slice(4,6)}-${n.slice(6,8)}`,o=a?`${a.slice(0,2)}:${a.slice(2,4)}:${a.slice(4,6)}`:void 0,l=r.replace(/DTSTART:\d{8}(T\d{6}Z?)?;?/,"").trim();if(!l||!l.includes("FREQ="))return null;let c=[`RRULE:${l}`],d=dYt([...(e==null?void 0:e.completedInstances)||[],...(e==null?void 0:e.skippedInstances)||[],...(e==null?void 0:e.additionalExcludedDates)||[]]);return c.push(...d),{recurrence:c,dtstart:s,hasTime:i,time:o}}function dYt(r){return!r||r.length===0?[]:r.filter(e=>e&&/^\d{4}-\d{2}-\d{2}$/.test(e)).map(e=>`EXDATE;VALUE=DATE:${e.replace(/-/g,"")}`)}var k8e=y(()=>{});var C8e={};at(C8e,{TaskCalendarSyncService:()=>$ie});function kA(r){if(r===null||typeof r!="object")return;let{status:e,statusCode:t}=r;if(typeof e=="number")return e;if(typeof t=="number")return t}function vA(r){if(r instanceof Error)return r.message;if(r!==null&&typeof r=="object"){let e=r.message;if(e!==void 0)return J(e)}return J(r)}function x8e(r){let e=kA(r);return e===404||e===410}var Hw,Br,uYt,pYt,mYt,jie,b8e,T8e,w8e,fYt,S8e,nu,dt,$ie,E8e=y(()=>{Hw=require("obsidian");Wr();k8e();kr();Me();hT();mT();K();fs();Ba();Br=N({tag:"Services/TaskCalendarSyncService"}),uYt=500,pYt=5,mYt=100,jie="googleCalendarDeletionQueue",b8e="googleCalendarEventIndex",T8e="googleCalendarSyncQueue",w8e="googleCalendarTaskFingerprints",fYt=6e4,S8e=900*1e3;nu=class extends Error{constructor(){super("Google Calendar connection changed while synchronization was in progress"),this.name="GoogleCalendarConnectionChangedError"}},dt=class dt{constructor(e,t){this.rateLimitChain=Promise.resolve();this.lastApiCallAt=0;this.recoveryQueueProcessorStarted=!1;this.recoveryQueueProcessorTimeout=null;this.lastEventIndexRecoveryAt=0;this.pendingSyncs=new Map;this.inFlightSyncs=new Map;this.previousTaskState=new Map;this.pendingTasks=new Map;this.calendarFingerprints=null;this.destroyed=!1;this.plugin=e,this.googleCalendarService=t}static getTaskCalendarCacheKey(e,t){return t?`${t}::${e}`:e}static deleteTaskPathEntries(e,t){e.delete(dt.getTaskCalendarCacheKey(t));for(let n of Array.from(e.keys()))n.endsWith(`::${t}`)&&e.delete(n)}static clearTaskEventIdCache(e,t){if(t){dt.taskEventIdCache.delete(dt.getTaskCalendarCacheKey(e,t));return}dt.deleteTaskPathEntries(dt.taskEventIdCache,e)}static clearTaskExceptionEventIdCache(e,t){if(t){dt.taskExceptionEventIdCache.delete(dt.getTaskCalendarCacheKey(e,t));return}dt.deleteTaskPathEntries(dt.taskExceptionEventIdCache,e)}static clearSharedGoogleCalendarSyncStateForTests(){dt.pendingEventCreates.clear(),dt.pendingExceptionEventCreates.clear(),dt.taskEventIdCache.clear(),dt.taskExceptionEventIdCache.clear(),dt.googleCalendarFrontmatterWrites.clear(),dt.googleCalendarDeletionQueueWrite=Promise.resolve()}getTaskEventIdCacheKey(e,t){return dt.getTaskCalendarCacheKey(e,t||this.plugin.settings.googleCalendarExport.targetCalendarId)}profileAsync(e,t,n){var a,i;return(i=(a=this.plugin.performanceProfiler)==null?void 0:a.measureAsync(`calendarSync.${e}`,t,n))!=null?i:t()}profileIncrement(e,t=1,n){var a;(a=this.plugin.performanceProfiler)==null||a.increment(`calendarSync.${e}`,t,n)}profileGauge(e,t,n){var a;(a=this.plugin.performanceProfiler)==null||a.recordGauge(`calendarSync.${e}`,t,n)}destroy(){this.destroyed=!0;for(let e of this.pendingSyncs.values())window.clearTimeout(e);this.recoveryQueueProcessorStarted=!1,this.recoveryQueueProcessorTimeout&&(window.clearTimeout(this.recoveryQueueProcessorTimeout),this.recoveryQueueProcessorTimeout=null),this.pendingSyncs.clear(),this.previousTaskState.clear(),this.pendingTasks.clear(),this.calendarFingerprints=null}async processInParallel(e,t){let n=[];for(let a of e){let i=t(a).then(()=>{n.splice(n.indexOf(i),1)});n.push(i),n.length>=pYt&&await Promise.race(n)}await Promise.all(n)}withGoogleRateLimit(e){let t=async()=>{let a=Date.now(),i=Math.max(0,mYt-(a-this.lastApiCallAt));i>0&&await new Promise(s=>window.setTimeout(s,i));try{return await e()}finally{this.lastApiCallAt=Date.now()}},n=this.rateLimitChain.then(t,t);return this.rateLimitChain=n.catch(()=>{}),n}isEnabled(){let e=this.plugin.settings.googleCalendarExport,t=e.enabled,n=!!e.targetCalendarId,a=this.googleCalendarService.getAvailableCalendars().length>0;return t&&n&&a}getConnectionGeneration(){var e,t,n;return(n=(t=(e=this.googleCalendarService).getConnectionGeneration)==null?void 0:t.call(e))!=null?n:0}async assertConnectionGenerationCurrent(e){var n,a,i;if(this.destroyed)throw new nu;if(e===void 0)return;if(!((i=await((a=(n=this.googleCalendarService).isConnectionGenerationCurrent)==null?void 0:a.call(n,e)))!=null?i:!0))throw new nu}startRecoveryQueueProcessor(){this.recoveryQueueProcessorStarted||(this.recoveryQueueProcessorStarted=!0,this.runRecoveryQueueProcessor(!0))}runRecoveryQueueProcessor(e){(e?this.processStartupRecovery():this.processRecoveryQueues()).catch(n=>{Br.error("[TaskCalendarSync] Failed to process recovery queues:",{category:"provider",operation:"process-recovery-queues",error:n})}).finally(()=>{this.scheduleRecoveryQueueProcessor()})}scheduleRecoveryQueueProcessor(){!this.recoveryQueueProcessorStarted||this.recoveryQueueProcessorTimeout||(this.recoveryQueueProcessorTimeout=window.setTimeout(()=>{this.recoveryQueueProcessorTimeout=null,this.runRecoveryQueueProcessor(!1)},fYt))}isDeletionQueueReady(){let e=this.plugin.settings.googleCalendarExport,t=this.googleCalendarService.getAvailableCalendars().length>0;return!!(e!=null&&e.enabled)&&t}isSyncQueueReady(){let e=this.plugin.settings.googleCalendarExport,t=this.googleCalendarService.getAvailableCalendars().length>0;return!!(e!=null&&e.enabled)&&!!(e!=null&&e.targetCalendarId)&&t}getDeletionQueueKey(e){return`${e.calendarId}::${e.eventId}`}getEventIndexTaskCalendarKey(e){return`${e.calendarId}::${e.taskPath}`}isTaskCalendarEligible(e){if(e.archived)return!1;switch(this.plugin.settings.googleCalendarExport.syncTrigger){case"scheduled":return!!e.scheduled;case"due":return!!e.due;case"both":return!!e.scheduled||!!e.due;default:return!1}}async getDeletionQueue(){let e=await this.plugin.loadData();return(e==null?void 0:e[jie])||[]}async mutateDeletionQueue(e){let n=dt.googleCalendarDeletionQueueWrite.catch(()=>{}).then(async()=>{let a=await this.plugin.loadPluginDataForSafeWrite("save-google-calendar-deletion-queue");if(!a)return;let i=a[jie]||[],s=e(i);s!==null&&(a[jie]=s,await this.plugin.saveData(a))});dt.googleCalendarDeletionQueueWrite=n,await n}async getEventIndex(){let e=await this.plugin.loadData();return(e==null?void 0:e[b8e])||[]}async saveEventIndex(e){let t=await this.plugin.loadPluginDataForSafeWrite("save-google-calendar-event-index");t&&(t[b8e]=e,await this.plugin.saveData(t))}async getSyncQueue(){let e=await this.plugin.loadData();return(e==null?void 0:e[T8e])||[]}async saveSyncQueue(e){let t=await this.plugin.loadPluginDataForSafeWrite("save-google-calendar-sync-queue");t&&(t[T8e]=e,await this.plugin.saveData(t))}async getCalendarFingerprints(){if(this.calendarFingerprints)return this.calendarFingerprints;let e=await this.plugin.loadData(),t=e==null?void 0:e[w8e],n=new Map;if(t&&typeof t=="object")for(let[a,i]of Object.entries(t))typeof a=="string"&&typeof i=="string"&&n.set(a,i);return this.calendarFingerprints=n,n}async saveCalendarFingerprints(e){let t=e||await this.getCalendarFingerprints(),n=await this.plugin.loadPluginDataForSafeWrite("save-google-calendar-fingerprints");n&&(n[w8e]=Object.fromEntries(t.entries()),await this.plugin.saveData(n))}getCalendarRelevantFingerprint(e){var t;return JSON.stringify({title:e.title||"",status:e.status||"",priority:e.priority||"",archived:!!e.archived,scheduled:e.scheduled||null,due:e.due||null,timeEstimate:(t=e.timeEstimate)!=null?t:null,recurrence:e.recurrence||null,recurrence_anchor:e.recurrence_anchor||null,complete_instances:e.complete_instances||[],skipped_instances:e.skipped_instances||[],reminders:e.reminders||[],tags:e.tags||[],contexts:e.contexts||[],projects:e.projects||[]})}parseCalendarRelevantFingerprint(e){if(!e)return null;try{let t=JSON.parse(e);return t&&typeof t=="object"&&!Array.isArray(t)?t:null}catch(t){return null}}getTaskStateFromFingerprint(e,t){let n=this.parseCalendarRelevantFingerprint(t);if(!n)return;let a=o=>{let l=n[o];return typeof l=="string"?l:void 0},i=o=>{let l=n[o];return Array.isArray(l)?l.filter(c=>typeof c=="string"):void 0},s=n.recurrence_anchor;return{...e,title:a("title")||e.title,status:a("status")||e.status,priority:a("priority")||e.priority,archived:typeof n.archived=="boolean"?n.archived:e.archived,scheduled:a("scheduled"),due:a("due"),timeEstimate:typeof n.timeEstimate=="number"?n.timeEstimate:void 0,recurrence:a("recurrence"),recurrence_anchor:s==="scheduled"||s==="completion"?s:void 0,complete_instances:i("complete_instances"),skipped_instances:i("skipped_instances"),tags:i("tags"),contexts:i("contexts"),projects:i("projects")}}hasTaskCalendarLink(e){return!!this.getTaskEventId(e)}normalizeStatusValue(e){return typeof e=="boolean"?e?"true":"false":String(e)}async reconcileExternalAutoArchive(e,t){if(!t||!this.plugin.autoArchiveService)return;let n=this.normalizeStatusValue(t.status),a=this.normalizeStatusValue(e.status);if(n!==a)try{let i=this.plugin.statusManager.getStatusConfig(a);if(!i)return;i.autoArchive?await this.plugin.autoArchiveService.scheduleAutoArchive(e,i):await this.plugin.autoArchiveService.cancelAutoArchive(e.path)}catch(i){Br.warn("Failed to reconcile auto-archive for external task update:",{category:"persistence",operation:"reconcile-external-auto-archive",error:i})}}async recordCalendarSyncFingerprint(e){let t=await this.getCalendarFingerprints(),n=this.getCalendarRelevantFingerprint(e);t.get(e.path)!==n&&(t.set(e.path,n),await this.saveCalendarFingerprints(t))}async removeCalendarSyncFingerprint(e){let t=await this.getCalendarFingerprints();t.delete(e)&&await this.saveCalendarFingerprints(t)}async upsertEventIndex(e,t,n){let a=await this.getEventIndex(),i=this.getDeletionQueueKey({calendarId:t,eventId:n}),s=a.filter(c=>this.getDeletionQueueKey(c)===i&&c.taskPath===e&&c.calendarId===t&&c.eventId===n),o=a.filter(c=>c.taskPath===e&&c.calendarId===t&&c.eventId!==n),l=a.filter(c=>this.getDeletionQueueKey(c)!==i&&!(c.taskPath===e&&c.calendarId===t));if(!(s.length===1&&o.length===0&&l.length===a.length-1)){l.push({taskPath:e,calendarId:t,eventId:n,updatedAt:Date.now()}),await this.saveEventIndex(l);for(let c of o)await this.deleteOrQueueCalendarEvent(c.taskPath,c.calendarId,c.eventId)||Br.warn(`[TaskCalendarSync] Replaced event cleanup queued for ${c.taskPath}`,{category:"provider",operation:"replaced-event-cleanup-queued"})}}async removeEventIndexForTask(e){let t=await this.getEventIndex(),n=t.filter(a=>a.taskPath!==e);n.length!==t.length&&await this.saveEventIndex(n)}async removeEventIndexForEvent(e,t){let n=await this.getEventIndex(),a=this.getDeletionQueueKey({calendarId:e,eventId:t}),i=n.filter(s=>this.getDeletionQueueKey(s)!==a);i.length!==n.length&&await this.saveEventIndex(i)}async queueTaskSync(e,t,n=!1){let a=Date.now(),i=await this.getSyncQueue(),s=i.find(l=>l.taskPath===e),o=t?vA(t):void 0;s?(s.requestedAt=a,n&&(s.attempts+=1,s.lastAttemptAt=a),o&&(s.lastError=o)):i.push({taskPath:e,requestedAt:a,attempts:n?1:0,lastAttemptAt:n?a:void 0,lastError:o}),await this.saveSyncQueue(i)}async removeFromDeletionQueue(e,t){let n=this.getDeletionQueueKey({calendarId:e,eventId:t});await this.mutateDeletionQueue(a=>{let i=a.filter(s=>this.getDeletionQueueKey(s)!==n);return i.length===a.length?null:i})}async queueCalendarDeletion(e,t,n,a,i=!1){let s=Date.now(),o=this.getDeletionQueueKey({calendarId:t,eventId:n}),l=a?vA(a):void 0;await this.mutateDeletionQueue(c=>{let d=c.find(u=>this.getDeletionQueueKey(u)===o);return d?(d.taskPath=e,i&&(d.attempts+=1,d.lastAttemptAt=s),l&&(d.lastError=l),c):[...c,{taskPath:e,calendarId:t,eventId:n,createdAt:s,attempts:i?1:0,lastAttemptAt:i?s:void 0,lastError:l}]})}async deleteOrQueueCalendarEvent(e,t,n,a){if(!this.plugin.settings.googleCalendarExport.syncOnTaskDelete)return!0;if(!this.isDeletionQueueReady())return await this.queueCalendarDeletion(e,t,n,new Error("Google Calendar sync is not ready")),!1;let i=a!=null?a:this.getConnectionGeneration();try{return await this.withGoogleRateLimit(async()=>(await this.assertConnectionGenerationCurrent(i),this.googleCalendarService.deleteEvent(t,n,i))),await this.removeFromDeletionQueue(t,n),!0}catch(s){return x8e(s)?(await this.removeFromDeletionQueue(t,n),!0):(Br.error("[TaskCalendarSync] Failed to delete event:",{category:"provider",operation:"delete-event",details:{value:e},error:s}),await this.queueCalendarDeletion(e,t,n,s,!0),!1)}}async clearTaskEventIdIfMatching(e,t){let n=await this.plugin.cacheManager.getTaskInfo(e.taskPath);if((n==null?void 0:n.googleCalendarEventId)===e.eventId){await this.removeTaskEventId(e.taskPath,t);return}n&&this.getTaskExceptionEventId(n)===e.eventId&&await this.saveTaskExceptionMetadata(e.taskPath,{googleCalendarExceptionEventId:void 0,googleCalendarExceptionOriginalScheduled:void 0},e.calendarId,t)}async isQueuedDeletionStillNeeded(e){let t=await this.plugin.cacheManager.getTaskInfo(e.taskPath);return!t||this.getTaskEventId(t)!==e.eventId?!0:!this.isTaskCalendarEligible(t)}async processStartupRecovery(){await this.profileAsync("processStartupRecovery",async()=>{await this.recoverDeletedTaskEventsFromIndex(),await this.processDeletionQueue(),await this.processPendingSyncQueue()})}async processRecoveryQueues(){await this.profileAsync("processRecoveryQueues",async()=>{await this.recoverDeletedTaskEventsFromIndexIfDue(),await this.processDeletionQueue(),await this.processPendingSyncQueue()})}async recoverDeletedTaskEventsFromIndexIfDue(){let e=Date.now()-this.lastEventIndexRecoveryAt;if(this.lastEventIndexRecoveryAt>0&&e<S8e){this.profileIncrement("recoverDeletedTaskEventsFromIndex.skipped",1,{reason:"interval",nextDueInMs:S8e-e});return}await this.recoverDeletedTaskEventsFromIndex()}async initializeExternalFileReconciliation(){await this.profileAsync("initializeExternalFileReconciliation",async()=>{let e=this.plugin.settings.googleCalendarExport;if(this.profileGauge("initializeExternalFileReconciliation.enabled",e.enabled?1:0),!e.enabled)return;let t=await this.getCalendarFingerprints(),n=await this.plugin.cacheManager.getAllTasks(),a=new Set,i=!1,s=0,o=0,l=0,c=0,d=t.size===0;for(let p of n){a.add(p.path);let m=this.getCalendarRelevantFingerprint(p),f=t.get(p.path);if(f===void 0){if(!d&&e.syncOnTaskCreate&&!this.hasTaskCalendarLink(p)&&this.isTaskCalendarEligible(p)){c++,await this.syncTaskToCalendar(p);continue}t.set(p.path,m),i=!0,l++;continue}let h=this.getTaskStateFromFingerprint(p,f),g=this.hasTaskCalendarLink(p);if(g&&o++,f!==m&&(s++,await this.reconcileExternalAutoArchive(p,h)),g&&f!==m){e.syncOnTaskUpdate?await this.executeTaskUpdate(p,h):(t.set(p.path,m),i=!0);continue}f!==m&&(t.set(p.path,m),i=!0)}let u=0;for(let p of Array.from(t.keys()))a.has(p)||(t.delete(p),i=!0,u++);this.profileGauge("initializeExternalFileReconciliation.tasks",n.length),this.profileGauge("initializeExternalFileReconciliation.linkedTasks",o),this.profileGauge("initializeExternalFileReconciliation.changedTasks",s),this.profileGauge("initializeExternalFileReconciliation.baselineTasks",l),this.profileGauge("initializeExternalFileReconciliation.createdTasks",c),this.profileGauge("initializeExternalFileReconciliation.removedFingerprints",u),i&&await this.saveCalendarFingerprints(t)})}async handleExternalTaskFileUpdated(e,t){await this.profileAsync("handleExternalTaskFileUpdated",async()=>{let n=this.plugin.settings.googleCalendarExport;if(!n.enabled)return;let a=t||await this.plugin.cacheManager.getTaskInfo(e);if(!a){this.profileIncrement("handleExternalTaskFileUpdated.removedTask"),await this.removeCalendarSyncFingerprint(e);return}let i=await this.getCalendarFingerprints(),s=this.getCalendarRelevantFingerprint(a),o=i.get(a.path);if(o===s){this.profileIncrement("handleExternalTaskFileUpdated.unchanged");return}let l=this.getTaskStateFromFingerprint(a,o);if(await this.reconcileExternalAutoArchive(a,l),this.hasTaskCalendarLink(a)){this.profileIncrement("handleExternalTaskFileUpdated.changedLinkedTask"),n.syncOnTaskUpdate?await this.executeTaskUpdate(a,l):await this.recordCalendarSyncFingerprint(a);return}if(this.isTaskCalendarEligible(a)){this.profileIncrement("handleExternalTaskFileUpdated.changedEligibleTask"),n.syncOnTaskCreate?await this.syncTaskToCalendar(a):await this.recordCalendarSyncFingerprint(a);return}this.profileIncrement("handleExternalTaskFileUpdated.changedIneligibleTask"),await this.recordCalendarSyncFingerprint(a)},{hadUpdatedTask:t!==void 0})}async recoverDeletedTaskEventsFromIndex(){await this.profileAsync("recoverDeletedTaskEventsFromIndex",async()=>{if(!this.plugin.settings.googleCalendarExport.syncOnTaskDelete){this.profileGauge("recoverDeletedTaskEventsFromIndex.enabled",0);return}this.profileGauge("recoverDeletedTaskEventsFromIndex.enabled",1);let e=this.plugin.settings.googleCalendarExport.targetCalendarId;if(!e){this.profileGauge("recoverDeletedTaskEventsFromIndex.hasTargetCalendar",0);return}this.profileGauge("recoverDeletedTaskEventsFromIndex.hasTargetCalendar",1);let t=await this.plugin.cacheManager.getAllTasks(),n=await this.getEventIndex(),a=new Map,i=new Map,s=new Map,o=[],l=0,c=!1;for(let u of n){let p=this.getDeletionQueueKey(u),m=this.getEventIndexTaskCalendarKey(u);if(i.has(p)||s.has(m)){c=!0;continue}i.set(p,u),s.set(m,u)}for(let u of t){let p=this.getTaskEventId(u);if(!p)continue;l++;let m=this.getDeletionQueueKey({calendarId:e,eventId:p}),f=this.getEventIndexTaskCalendarKey({taskPath:u.path,calendarId:e});a.set(m,u);let h=s.get(f);if((h==null?void 0:h.taskPath)===u.path&&h.calendarId===e&&h.eventId===p)continue;let g=i.get(m);h&&h.eventId!==p&&o.push(h),g&&g.taskPath!==u.path&&s.delete(this.getEventIndexTaskCalendarKey(g));let v={taskPath:u.path,calendarId:e,eventId:p,updatedAt:(g==null?void 0:g.updatedAt)||(h==null?void 0:h.updatedAt)||Date.now()};s.set(f,v),i.set(m,v),c=!0}c&&await this.saveEventIndex(Array.from(s.values()));let d=0;for(let u of s.values()){let p=a.get(this.getDeletionQueueKey(u));p&&this.isTaskCalendarEligible(p)||(d++,await this.queueCalendarDeletion((p==null?void 0:p.path)||u.taskPath,u.calendarId,u.eventId,p?new Error("Indexed task no longer meets calendar sync criteria"):new Error("Indexed task file no longer exists")))}for(let u of o)await this.deleteOrQueueCalendarEvent(u.taskPath,u.calendarId,u.eventId)||Br.warn(`[TaskCalendarSync] Replaced event cleanup queued for ${u.taskPath}`,{category:"provider",operation:"replaced-event-cleanup-queued"});this.lastEventIndexRecoveryAt=Date.now(),this.profileGauge("recoverDeletedTaskEventsFromIndex.tasks",t.length),this.profileGauge("recoverDeletedTaskEventsFromIndex.linkedTasks",l),this.profileGauge("recoverDeletedTaskEventsFromIndex.indexEntries",s.size),this.profileGauge("recoverDeletedTaskEventsFromIndex.queuedDeletions",d)})}async processPendingSyncQueue(){return this.profileAsync("processPendingSyncQueue",async()=>{let e={synced:0,failed:0,deleted:0,dropped:0,remaining:0},t=await this.getSyncQueue();if(this.profileGauge("processPendingSyncQueue.queueLength",t.length),t.length===0)return e;if(!this.isSyncQueueReady())return e.remaining=t.length,this.profileGauge("processPendingSyncQueue.remaining",e.remaining),e;let n=new Map;for(let i of t)n.set(i.taskPath,i);let a=[];for(let i of n.values()){let s=await this.plugin.cacheManager.getTaskInfo(i.taskPath);if(!s){e.dropped++;continue}if(!this.isTaskCalendarEligible(s)){this.getTaskEventId(s)?(await this.deleteTaskFromCalendar(s)||Br.warn(`[TaskCalendarSync] Calendar deletion queued while replaying sync for ${i.taskPath}`,{category:"provider",operation:"calendar-deletion-queued-replaying-sync"}),e.deleted++):e.dropped++;continue}if(await this.syncTaskToCalendar(s,void 0,{queueOnFailure:!1})){e.synced++;continue}e.failed++,a.push({...i,attempts:i.attempts+1,lastAttemptAt:Date.now(),lastError:"Failed to replay queued Google Calendar sync"})}return e.remaining=a.length,await this.saveSyncQueue(a),this.profileGauge("processPendingSyncQueue.synced",e.synced),this.profileGauge("processPendingSyncQueue.failed",e.failed),this.profileGauge("processPendingSyncQueue.deleted",e.deleted),this.profileGauge("processPendingSyncQueue.dropped",e.dropped),this.profileGauge("processPendingSyncQueue.remaining",e.remaining),e})}async processDeletionQueue(){return this.profileAsync("processDeletionQueue",async()=>{let e={deleted:0,failed:0,remaining:0},t=await this.getDeletionQueue();if(this.profileGauge("processDeletionQueue.queueLength",t.length),t.length===0)return e;if(!this.isDeletionQueueReady())return e.remaining=t.length,this.profileGauge("processDeletionQueue.remaining",e.remaining),e;let n=new Map;for(let o of t)n.set(this.getDeletionQueueKey(o),o);let a=new Map(Array.from(n,([o,l])=>[o,JSON.stringify(l)])),i=[];for(let o of n.values()){let l=this.getConnectionGeneration();try{if(!await this.isQueuedDeletionStillNeeded(o))continue;await this.withGoogleRateLimit(async()=>(await this.assertConnectionGenerationCurrent(l),this.googleCalendarService.deleteEvent(o.calendarId,o.eventId,l))),await this.clearTaskEventIdIfMatching(o,l),await this.removeEventIndexForEvent(o.calendarId,o.eventId),e.deleted++}catch(c){if(x8e(c)){await this.clearTaskEventIdIfMatching(o,l),await this.removeEventIndexForEvent(o.calendarId,o.eventId),e.deleted++;continue}e.failed++,i.push({...o,attempts:o.attempts+1,lastAttemptAt:Date.now(),lastError:vA(c)}),Br.error("[TaskCalendarSync] Failed to retry queued event deletion:",{category:"provider",operation:"retry-queued-event-deletion",details:{value:o},error:c})}}let s=new Set(n.keys());return await this.mutateDeletionQueue(o=>{let l=o.filter(c=>{let d=this.getDeletionQueueKey(c);return s.has(d)?a.get(d)!==JSON.stringify(c):!0});for(let c of i){let d=this.getDeletionQueueKey(c);l.some(u=>this.getDeletionQueueKey(u)===d)||l.push(c)}return e.remaining=l.length,l}),this.profileGauge("processDeletionQueue.deleted",e.deleted),this.profileGauge("processDeletionQueue.failed",e.failed),this.profileGauge("processDeletionQueue.remaining",e.remaining),e})}shouldSyncTask(e){if(!this.isEnabled())return!1;let t=this.plugin.settings.googleCalendarExport;if(e.archived)return!1;switch(t.syncTrigger){case"scheduled":return!!e.scheduled;case"due":return!!e.due;case"both":return!!e.scheduled||!!e.due;default:return!1}}getTaskEventId(e){return e.googleCalendarEventId||dt.taskEventIdCache.get(this.getTaskEventIdCacheKey(e.path))}getTaskExceptionEventId(e){return e.googleCalendarExceptionEventId||dt.taskExceptionEventIdCache.get(this.getTaskEventIdCacheKey(e.path))}shouldSyncAsRecurring(e){return e.recurrence?(e.recurrence_anchor||"scheduled")==="scheduled":!1}hasStoredRecurringExceptionMetadata(e){return!!(this.getTaskExceptionEventId(e)||e.googleCalendarExceptionOriginalScheduled||e.googleCalendarMovedOriginalDates&&e.googleCalendarMovedOriginalDates.length>0)}getAdditionalRecurringExdates(e){let t=new Set;for(let a of e.googleCalendarMovedOriginalDates||[]){let i=de(a);i&&t.add(i)}let n=de(e.googleCalendarExceptionOriginalScheduled||"");return n&&t.add(n),Array.from(t).sort()}isDuplicateYamlKeyError(e){return e&&typeof e=="object"&&e.code==="DUPLICATE_KEY"?!0:vA(e).includes("Map keys must be unique")}async withGoogleCalendarFrontmatterWriteLock(e,t){var i;let a=((i=dt.googleCalendarFrontmatterWrites.get(e))!=null?i:Promise.resolve()).catch(()=>{}).then(t);dt.googleCalendarFrontmatterWrites.set(e,a);try{return await a}finally{dt.googleCalendarFrontmatterWrites.get(e)===a&&dt.googleCalendarFrontmatterWrites.delete(e)}}async writeGoogleCalendarFrontmatterFields(e,t,n,a){await this.withGoogleCalendarFrontmatterWriteLock(e,()=>jv(t,async()=>{await this.assertConnectionGenerationCurrent(a);let i=new Map;try{await IS(this.plugin.app,t,s=>{for(let[o,l]of Object.entries(n))i.set(o,s[o]),this.writeOptionalFrontmatterField(s,o,l,!0)}),await this.assertConnectionGenerationCurrent(a)}catch(s){if(s instanceof nu)throw await this.restoreGoogleCalendarFrontmatterFields(t,i),s;if(!this.isDuplicateYamlKeyError(s))throw s;await this.assertConnectionGenerationCurrent(a);let o=await this.rewriteGoogleCalendarFrontmatterFields(t,n);try{await this.assertConnectionGenerationCurrent(a)}catch(l){throw await RS(this.plugin.app,t,()=>o),l}}}))}async rewriteGoogleCalendarFrontmatterFields(e,t){let n=this.getGoogleCalendarFrontmatterFields(),a="";return await RS(this.plugin.app,e,i=>(a=i,this.replaceFrontmatterFields(i,t,n))),a}async restoreGoogleCalendarFrontmatterFields(e,t){t.size!==0&&await IS(this.plugin.app,e,n=>{for(let[a,i]of t)this.writeOptionalFrontmatterField(n,a,i,!0)})}getGoogleCalendarFrontmatterFields(){return new Set([this.plugin.fieldMapper.toUserField("googleCalendarEventId"),this.plugin.fieldMapper.toUserField("googleCalendarExceptionEventId"),this.plugin.fieldMapper.toUserField("googleCalendarExceptionOriginalScheduled"),this.plugin.fieldMapper.toUserField("googleCalendarMovedOriginalDates")])}replaceFrontmatterFields(e,t,n){let a=e.match(/^(---\r?\n)([\s\S]*?)(\r?\n---)([\s\S]*)$/);if(!a)throw new Error("Cannot repair Google Calendar metadata: missing frontmatter block");let[,i,s,o,l]=a,c=i.includes(`\r
|
||
`)?`\r
|
||
`:`
|
||
`,d=this.deduplicateGoogleCalendarFrontmatterFields(s.split(/\r?\n/),n,new Set(Object.keys(t))),u=Object.entries(t).filter(([,m])=>this.shouldWriteFrontmatterValue(m)).map(([m,f])=>(0,Hw.stringifyYaml)({[m]:f}).trimEnd()),p=[...d,...u].filter((m,f,h)=>m.length>0||f<h.length-1).join(c);return`${i}${p}${o}${l}`}deduplicateGoogleCalendarFrontmatterFields(e,t,n){let a=new Map;for(let o=0;o<e.length;o++){let l=this.getTopLevelFrontmatterFieldName(e[o]);l&&t.has(l)&&a.set(l,o)}let i=[],s=0;for(;s<e.length;){let o=this.getTopLevelFrontmatterFieldName(e[s]);if(!o||!t.has(o)){i.push(e[s]),s++;continue}let l=!n.has(o)&&a.get(o)===s;for(l&&i.push(e[s]),s++;s<e.length&&/^[\t ]/.test(e[s]);)l&&i.push(e[s]),s++}for(;i.length>0&&i[i.length-1].trim()==="";)i.pop();return i}getTopLevelFrontmatterFieldName(e){if(/^\s/.test(e))return null;let t=e.indexOf(":");return t<=0?null:e.slice(0,t).trim()}shouldWriteFrontmatterValue(e){return e!=null&&(!Array.isArray(e)||e.length>0)}async saveTaskEventId(e,t,n,a){let i=this.plugin.app.vault.getAbstractFileByPath(e);if(!(i instanceof Hw.TFile)){let l=new Error(`Cannot save event ID: file not found at ${e}`);if(Br.warn(l.message,{category:"provider",operation:"save-event-id-file-not-found"}),a!==void 0)throw l;return}let s=this.plugin.fieldMapper.toUserField("googleCalendarEventId");await this.writeGoogleCalendarFrontmatterFields(e,i,{[s]:t},a),dt.taskEventIdCache.set(this.getTaskEventIdCacheKey(e,n),t);let o=n||this.plugin.settings.googleCalendarExport.targetCalendarId;o&&await this.upsertEventIndex(e,o,t)}async removeTaskEventId(e,t){let n=this.plugin.app.vault.getAbstractFileByPath(e);if(!(n instanceof Hw.TFile)){Br.warn(`Cannot remove event ID: file not found at ${e}`,{category:"provider",operation:"remove-event-id-file-not-found"}),dt.clearTaskEventIdCache(e),await this.removeEventIndexForTask(e);return}let a=this.plugin.fieldMapper.toUserField("googleCalendarEventId");await this.writeGoogleCalendarFrontmatterFields(e,n,{[a]:void 0},t),dt.clearTaskEventIdCache(e),await this.removeEventIndexForTask(e)}async saveTaskExceptionMetadata(e,t,n,a){let i=this.plugin.app.vault.getAbstractFileByPath(e);if(!(i instanceof Hw.TFile)){let d=new Error(`Cannot save recurring exception metadata: file not found at ${e}`);if(Br.warn(d.message,{category:"provider",operation:"save-exception-metadata-file-not-found"}),a!==void 0)throw d;return}let s=this.plugin.fieldMapper.toUserField("googleCalendarExceptionEventId"),o=this.plugin.fieldMapper.toUserField("googleCalendarExceptionOriginalScheduled"),l=this.plugin.fieldMapper.toUserField("googleCalendarMovedOriginalDates"),c={};"googleCalendarExceptionEventId"in t&&(c[s]=t.googleCalendarExceptionEventId),"googleCalendarExceptionOriginalScheduled"in t&&(c[o]=t.googleCalendarExceptionOriginalScheduled),"googleCalendarMovedOriginalDates"in t&&(c[l]=t.googleCalendarMovedOriginalDates),Object.keys(c).length>0&&await this.writeGoogleCalendarFrontmatterFields(e,i,c,a),"googleCalendarExceptionEventId"in t&&(t.googleCalendarExceptionEventId?dt.taskExceptionEventIdCache.set(this.getTaskEventIdCacheKey(e,n),t.googleCalendarExceptionEventId):dt.clearTaskExceptionEventIdCache(e,n))}writeOptionalFrontmatterField(e,t,n,a){if(a){if(n==null||Array.isArray(n)&&n.length===0){delete e[t];return}e[t]=n}}async clearTaskGoogleCalendarMetadata(e,t){await this.removeTaskEventId(e,t),await this.saveTaskExceptionMetadata(e,{googleCalendarExceptionEventId:void 0,googleCalendarExceptionOriginalScheduled:void 0,googleCalendarMovedOriginalDates:void 0},void 0,t)}applyTitleTemplate(e){let t=this.plugin.settings.googleCalendarExport.eventTitleTemplate,n=e.status?this.plugin.statusManager.getStatusConfig(e.status):null,a=e.priority?this.plugin.priorityManager.getPriorityConfig(e.priority):null,i=this.plugin.i18n.translate("settings.integrations.googleCalendarExport.eventDescription.untitledTask");return t.replace(/\{\{title\}\}/g,e.title||i).replace(/\{\{status\}\}/g,(n==null?void 0:n.label)||e.status||"").replace(/\{\{priority\}\}/g,(a==null?void 0:a.label)||e.priority||"").replace(/\{\{due\}\}/g,e.due||"").replace(/\{\{scheduled\}\}/g,e.scheduled||"").trim()}getCalendarEventTitle(e){let t=this.applyTitleTemplate(e);return this.plugin.statusManager.isCompletedStatus(e.status)?`\u2713 ${t}`:t}buildEventDescription(e){let t=this.plugin.settings.googleCalendarExport,n=(i,s)=>this.plugin.i18n.translate(`settings.integrations.googleCalendarExport.eventDescription.${i}`,s),a=[];if(e.priority&&e.priority!=="none"){let i=this.plugin.priorityManager.getPriorityConfig(e.priority);a.push(n("priority",{value:(i==null?void 0:i.label)||e.priority}))}if(e.status){let i=this.plugin.statusManager.getStatusConfig(e.status);a.push(n("status",{value:(i==null?void 0:i.label)||e.status}))}if(e.due&&a.push(n("due",{value:e.due})),e.scheduled&&a.push(n("scheduled",{value:e.scheduled})),e.timeEstimate){let i=Math.floor(e.timeEstimate/60),s=e.timeEstimate%60,o=i>0?`${i}h ${s}m`:`${s}m`;a.push(n("timeEstimate",{value:o}))}if(e.tags&&e.tags.length>0&&a.push(n("tags",{value:e.tags.map(i=>`#${i}`).join(", ")})),e.contexts&&e.contexts.length>0&&a.push(n("contexts",{value:e.contexts.map(i=>`@${this.toCalendarDescriptionLabel(i)}`).join(", ")})),e.projects&&e.projects.length>0&&a.push(n("projects",{value:e.projects.map(i=>this.toCalendarDescriptionLabel(i)).join(", ")})),a.length>0&&t.includeObsidianLink&&(a.push(""),a.push("---")),t.includeObsidianLink){let i=this.plugin.app.vault.getName(),s=encodeURIComponent(e.path),o=`obsidian://open?vault=${encodeURIComponent(i)}&file=${s}`,l=n("openInObsidian");a.push(`${l}: ${o}`)}return a.join(`
|
||
`)}toCalendarDescriptionLabel(e){return e.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g,"$2").replace(/\[\[([^\]]+)\]\]/g,(t,n)=>this.basenameForDisplay(n)).replace(/\[([^\]]+)\]\(([^)]+)\)/g,"$1").trim()}basenameForDisplay(e){let n=e.split("#")[0].replace(/\.md$/i,"");return n.split("/").pop()||n||e}getEventDate(e){switch(this.plugin.settings.googleCalendarExport.syncTrigger){case"scheduled":return e.scheduled;case"due":return e.due;case"both":return e.scheduled||e.due;default:return}}parseDateForEvent(e){if(e.includes("T")){let t=new Date(e);return{dateTime:M(t,"yyyy-MM-dd'T'HH:mm:ssxxx"),timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,isAllDay:!1}}else return{date:e,isAllDay:!0}}getEventEnd(e,t){let n=this.plugin.settings.googleCalendarExport;if(e.isAllDay||n.createAsAllDay){if(e.date){let s=new Date(e.date+"T00:00:00"),o=new Date(s);return o.setDate(o.getDate()+1),{date:M(o,"yyyy-MM-dd")}}if(!e.dateTime)return{};let a=new Date(e.dateTime),i=new Date(a);return i.setDate(i.getDate()+1),{date:M(i,"yyyy-MM-dd")}}else{let a=t.timeEstimate||n.defaultEventDuration;if(!e.dateTime)return{};let i=new Date(e.dateTime),s=new Date(i.getTime()+a*60*1e3);return{dateTime:M(s,"yyyy-MM-dd'T'HH:mm:ssxxx"),timeZone:e.timeZone}}}parseISO8601Duration(e){let t=e.match(/^(-?)P(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)W)?(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?)?$/);if(!t)return null;let[,n,a,i,s,o,l,c,d]=t,u=0;return a&&(u+=parseInt(a)*365*24*60*60*1e3),i&&(u+=parseInt(i)*30*24*60*60*1e3),s&&(u+=parseInt(s)*7*24*60*60*1e3),o&&(u+=parseInt(o)*24*60*60*1e3),l&&(u+=parseInt(l)*60*60*1e3),c&&(u+=parseInt(c)*60*1e3),d&&(u+=parseInt(d)*1e3),n==="-"?-u:u}convertTaskRemindersToGoogleFormat(e,t,n){if(!e.reminders||!Array.isArray(e.reminders)||e.reminders.length===0)return null;let a=[],i;try{if(t.includes("T")?i=new Date(t).getTime():i=new Date(t+"T00:00:00").getTime(),isNaN(i))return Br.warn("[TaskCalendarSync] Invalid event start time:",{category:"provider",operation:"invalid-event-start-time",details:{value:t}}),null}catch(s){return Br.warn("[TaskCalendarSync] Error parsing event start time:",{category:"provider",operation:"parsing-event-start-time",error:s}),null}for(let s of e.reminders)if(s.type){if(s.type==="relative"){if(s.relatedTo!==n||!s.offset)continue;let o=this.parseISO8601Duration(s.offset);if(o===null){Br.warn("[TaskCalendarSync] Invalid duration format:",{category:"provider",operation:"invalid-duration-format",details:{value:s.offset}});continue}let l=Math.abs(Math.round(o/(60*1e3)));if(o>0){Br.warn("[TaskCalendarSync] Skipping reminder after event:",{category:"provider",operation:"skipping-reminder-event",details:{value:s}});continue}let c=Math.min(l,go.MAX_REMINDER_MINUTES);c>=0&&a.push({method:"popup",minutes:c})}else if(s.type==="absolute"){if(!s.absoluteTime)continue;try{let o=new Date(s.absoluteTime).getTime();if(isNaN(o)){Br.warn("[TaskCalendarSync] Invalid absolute time:",{category:"provider",operation:"invalid-absolute-time",details:{value:s.absoluteTime}});continue}let l=i-o,c=Math.round(l/(60*1e3));if(c<0){Br.warn("[TaskCalendarSync] Skipping absolute reminder after event:",{category:"provider",operation:"skipping-absolute-reminder-event",details:{value:s}});continue}let d=Math.min(c,go.MAX_REMINDER_MINUTES);a.push({method:"popup",minutes:d})}catch(o){Br.warn("[TaskCalendarSync] Error parsing absolute reminder time:",{category:"provider",operation:"parsing-absolute-reminder-time",error:o});continue}}}return a.length>0?a:null}getDefaultReminderOverrides(){let e=this.plugin.settings.googleCalendarExport.defaultReminderMinutes,t=Array.isArray(e)?e:e===null?[]:[e],n=new Set,a=[];for(let i of t){let s=Math.trunc(Number(i));if(!Number.isFinite(s)||s<=0)continue;let o=Math.min(s,go.MAX_REMINDER_MINUTES);n.has(o)||(n.add(o),a.push({method:"popup",minutes:o}))}return a}taskToCalendarEvent(e,t){let n=this.getEventDate(e);if(!n)return null;let a=this.plugin.settings.googleCalendarExport,i=this.parseDateForEvent(n),s;if(a.createAsAllDay&&!i.isAllDay){let m=new Date(n);s={date:M(m,"yyyy-MM-dd")}}else i.isAllDay?s={date:i.date}:s={dateTime:i.dateTime,timeZone:i.timeZone};let o={...i,isAllDay:a.createAsAllDay||i.isAllDay,date:s.date,dateTime:s.dateTime},l=this.getEventEnd(o,e),c={summary:this.getCalendarEventTitle(e),start:s,end:l};a.includeDescription&&(c.description=this.buildEventDescription(e)),a.eventColorId&&(c.colorId=a.eventColorId);let d;a.syncTrigger==="scheduled"||a.syncTrigger==="both"&&e.scheduled?d="scheduled":d="due";let u=this.convertTaskRemindersToGoogleFormat(e,n,d),p=this.getDefaultReminderOverrides();if(u&&u.length>0?c.reminders={useDefault:!1,overrides:u}:p.length>0&&(a.createAsAllDay||i.isAllDay?c.reminders={useDefault:!0}:c.reminders={useDefault:!1,overrides:p}),this.shouldSyncAsRecurring(e)&&e.recurrence){let m=zie(e.recurrence,{completedInstances:e.complete_instances,skippedInstances:e.skipped_instances,additionalExcludedDates:this.getAdditionalRecurringExdates(e)});if(m&&(c.recurrence=m.recurrence,m.dtstart)){if(a.createAsAllDay||!m.hasTime){c.start={date:m.dtstart};let f=new Date(m.dtstart+"T00:00:00");f.setDate(f.getDate()+1),c.end={date:M(f,"yyyy-MM-dd")}}else if(m.time){let f=`${m.dtstart}T${m.time}`,h=new Date(f);c.start={dateTime:M(h,"yyyy-MM-dd'T'HH:mm:ssxxx"),timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone};let g=e.timeEstimate||a.defaultEventDuration,v=new Date(h.getTime()+g*60*1e3);c.end={dateTime:M(v,"yyyy-MM-dd'T'HH:mm:ssxxx"),timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone}}}}else t&&(c.recurrence=[]);return c}async createCalendarEventForTask(e,t,n,a){let i=await this.withGoogleRateLimit(async()=>(await this.assertConnectionGenerationCurrent(a),this.googleCalendarService.createEvent(n,{...t,isAllDay:!!t.start.date},a))),s=`google-${n}-`,o=i.id.startsWith(s)?i.id.slice(s.length):i.id;try{await this.saveTaskEventId(e.path,o,n,a)}catch(l){throw await this.queueCalendarDeletion(e.path,n,o,l),l}return o}shouldCreateDetachedRecurringException(e){if(!this.shouldSyncAsRecurring(e))return!1;let t=de(e.scheduled||""),n=de(e.googleCalendarExceptionOriginalScheduled||"");return!!(t&&n&&t!==n)}buildRecurringExceptionEvent(e){if(!e.scheduled)return null;let t=this.plugin.settings.googleCalendarExport,n=this.parseDateForEvent(e.scheduled),a;if(t.createAsAllDay&&!n.isAllDay){let c=new Date(e.scheduled);a={date:M(c,"yyyy-MM-dd")}}else n.isAllDay?a={date:n.date}:a={dateTime:n.dateTime,timeZone:n.timeZone};let i={...n,isAllDay:t.createAsAllDay||n.isAllDay,date:a.date,dateTime:a.dateTime},s=this.getEventEnd(i,e),o={summary:this.getCalendarEventTitle(e),start:a,end:s};t.includeDescription&&(o.description=this.buildEventDescription(e)),t.eventColorId&&(o.colorId=t.eventColorId);let l=this.convertTaskRemindersToGoogleFormat(e,e.scheduled,"scheduled");return l&&l.length>0&&(o.reminders={useDefault:!1,overrides:l}),o}async syncRecurringExceptionEvent(e,t,n){let a=this.shouldCreateDetachedRecurringException(e),i=this.getTaskExceptionEventId(e);if(!a){if(i&&!await this.deleteOrQueueCalendarEvent(e.path,t,i,n))throw new Error(`Failed to delete detached recurring exception event: ${e.path}`);await this.saveTaskExceptionMetadata(e.path,{googleCalendarExceptionEventId:void 0,googleCalendarExceptionOriginalScheduled:void 0},t,n);return}let s=this.buildRecurringExceptionEvent(e);if(!s)return;if(i)try{await this.withGoogleRateLimit(async()=>(await this.assertConnectionGenerationCurrent(n),this.googleCalendarService.updateEvent(t,i,s,n)));return}catch(d){if(kA(d)!==404)throw d;await this.saveTaskExceptionMetadata(e.path,{googleCalendarExceptionEventId:void 0},t,n)}let o=this.getTaskEventIdCacheKey(e.path,t),l=dt.pendingExceptionEventCreates.get(o);if(l){let d=await l;await this.withGoogleRateLimit(async()=>(await this.assertConnectionGenerationCurrent(n),this.googleCalendarService.updateEvent(t,d,s,n)));return}let c=this.withGoogleRateLimit(async()=>(await this.assertConnectionGenerationCurrent(n),this.googleCalendarService.createEvent(t,{...s,isAllDay:!!s.start.date},n))).then(async d=>{let u=`google-${t}-`,p=d.id.startsWith(u)?d.id.slice(u.length):d.id;try{await this.saveTaskExceptionMetadata(e.path,{googleCalendarExceptionEventId:p,googleCalendarExceptionOriginalScheduled:de(e.googleCalendarExceptionOriginalScheduled||"")},t,n)}catch(m){throw await this.queueCalendarDeletion(e.path,t,p,m),m}return p});dt.pendingExceptionEventCreates.set(o,c);try{await c}finally{dt.pendingExceptionEventCreates.get(o)===c&&dt.pendingExceptionEventCreates.delete(o)}}async syncTaskToCalendar(e,t,n={}){var c,d;let a=(c=n.queueOnFailure)!=null?c:!0,i=(d=n.connectionGeneration)!=null?d:this.getConnectionGeneration();if(!this.isTaskCalendarEligible(e))return!0;let s=this.plugin.settings.googleCalendarExport,o=this.getTaskEventId(e),l=s.targetCalendarId;try{if(!this.isEnabled())return a&&s.enabled&&await this.queueTaskSync(e.path,new Error("Google Calendar sync is not ready")),!1;let u=!!(t!=null&&t.recurrence&&!e.recurrence),p=this.taskToCalendarEvent(e,u);if(!p)return Br.warn("[TaskCalendarSync] Could not convert task to event:",{category:"provider",operation:"convert-task-event",details:{value:e.path}}),!1;if(!l)return Br.warn("[TaskCalendarSync] Cannot sync task without target calendar:",{category:"provider",operation:"sync-task-without-target-calendar",details:{value:e.path}}),a&&await this.queueTaskSync(e.path,new Error("Google Calendar target calendar is not configured")),!1;if(o)await this.withGoogleRateLimit(async()=>(await this.assertConnectionGenerationCurrent(i),this.googleCalendarService.updateEvent(l,o,p,i)));else{let m=this.getTaskEventIdCacheKey(e.path,l),f=dt.pendingEventCreates.get(m);if(f){let h=await f;await this.withGoogleRateLimit(async()=>(await this.assertConnectionGenerationCurrent(i),this.googleCalendarService.updateEvent(l,h,p,i)))}else{let h=this.createCalendarEventForTask(e,p,l,i);dt.pendingEventCreates.set(m,h);try{await h}finally{dt.pendingEventCreates.get(m)===h&&dt.pendingEventCreates.delete(m)}}}return(this.shouldSyncAsRecurring(e)||this.hasStoredRecurringExceptionMetadata(e))&&await this.syncRecurringExceptionEvent(e,l,i),await this.assertConnectionGenerationCurrent(i),await this.recordCalendarSyncFingerprint(e),!0}catch(u){if(u instanceof nu)return a&&s.enabled&&await this.queueTaskSync(e.path,u),!1;if(kA(u)===404&&o){await this.removeTaskEventId(e.path,i);let p=await this.plugin.cacheManager.getTaskInfo(e.path);if(p)return this.syncTaskToCalendar(p,t,{...n,connectionGeneration:i})}return Br.error("[TaskCalendarSync] Failed to sync task:",{category:"provider",operation:"sync-task",details:{value:e.path},error:u}),a&&await this.queueTaskSync(e.path,u,!0),u instanceof ry?Te(this.plugin.emitter,this.plugin.i18n.translate("settings.integrations.googleCalendarExport.notices.connectionExpired")):Te(this.plugin.emitter,this.plugin.i18n.translate("settings.integrations.googleCalendarExport.notices.syncFailed",{message:vA(u)})),!1}}async updateTaskInCalendar(e,t){if(!this.plugin.settings.googleCalendarExport.syncOnTaskUpdate)return;let n=e.path;t&&this.previousTaskState.set(n,t);let a=this.pendingSyncs.get(n);return a&&window.clearTimeout(a),this.pendingTasks.set(n,e),new Promise((i,s)=>{let o=window.setTimeout(()=>{(async()=>{this.pendingSyncs.delete(n);let l=this.inFlightSyncs.get(n);l&&await l.catch(()=>{});let c=this.pendingTasks.get(n);this.pendingTasks.delete(n);let d=c||await this.plugin.cacheManager.getTaskInfo(n);if(!d){i();return}let u=this.executeTaskUpdate(d);this.inFlightSyncs.set(n,u);try{await u,i()}catch(p){s(p instanceof Error?p:new Error(String(p)))}finally{this.inFlightSyncs.delete(n)}})()},uYt);this.pendingSyncs.set(n,o)})}cancelPendingTaskUpdate(e){let t=this.pendingSyncs.get(e);t&&(window.clearTimeout(t),this.pendingSyncs.delete(e),this.pendingTasks.delete(e))}async waitForInFlightTaskSync(e){let t=this.inFlightSyncs.get(e);t&&await t.catch(()=>{})}async executeTaskUpdate(e,t){let n=this.getTaskEventId(e);if(!this.isTaskCalendarEligible(e)){(n||this.hasStoredRecurringExceptionMetadata(e))&&(await this.deleteTaskFromCalendar(e)?await this.removeCalendarSyncFingerprint(e.path):Br.warn(`Google Calendar deletion queued for ${e.path}`,{category:"provider",operation:"google-calendar-deletion-queued"})),this.previousTaskState.delete(e.path);return}let a=t||this.previousTaskState.get(e.path);await this.syncTaskToCalendar(e,a)&&this.previousTaskState.set(e.path,e)}async completeTaskInCalendar(e){if(!this.plugin.settings.googleCalendarExport.syncOnTaskComplete)return;let t=this.getConnectionGeneration();this.cancelPendingTaskUpdate(e.path),await this.waitForInFlightTaskSync(e.path);let n=this.executeTaskCompletion(e,t);this.inFlightSyncs.set(e.path,n);try{await n&&(await this.assertConnectionGenerationCurrent(t),await this.recordCalendarSyncFingerprint(e))}finally{this.inFlightSyncs.get(e.path)===n&&this.inFlightSyncs.delete(e.path)}}async executeTaskCompletion(e,t){let n=this.plugin.settings.googleCalendarExport,a=this.getTaskEventId(e);if(!a&&(!await this.syncTaskToCalendar(e,void 0,{connectionGeneration:t})||(a=this.getTaskEventId(e),!a)))return!1;if(this.shouldSyncAsRecurring(e))return await this.updateRecurringEventExdates(e,t),!0;try{let i=n.includeDescription?this.buildEventDescription(e):void 0;return await this.withGoogleRateLimit(async()=>(await this.assertConnectionGenerationCurrent(t),this.googleCalendarService.updateEvent(n.targetCalendarId,a,{summary:this.getCalendarEventTitle(e),description:i},t))),await this.assertConnectionGenerationCurrent(t),!0}catch(i){return i instanceof nu?(await this.queueTaskSync(e.path,i),!1):kA(i)===404?(await this.removeTaskEventId(e.path,t),!1):(Br.error("[TaskCalendarSync] Failed to update completed task:",{category:"provider",operation:"update-completed-task",details:{value:e.path},error:i}),!1)}}async updateRecurringEventExdates(e,t){if(!this.shouldSyncAsRecurring(e)||!e.recurrence)return;let n=this.plugin.settings.googleCalendarExport,a=this.getTaskEventId(e);if(a)try{let i=zie(e.recurrence,{completedInstances:e.complete_instances,skippedInstances:e.skipped_instances,additionalExcludedDates:this.getAdditionalRecurringExdates(e)});if(i){let s=n.includeDescription?this.buildEventDescription(e):void 0;await this.withGoogleRateLimit(async()=>(await this.assertConnectionGenerationCurrent(t),this.googleCalendarService.updateEvent(n.targetCalendarId,a,{summary:this.getCalendarEventTitle(e),description:s,recurrence:i.recurrence},t))),await this.syncRecurringExceptionEvent(e,n.targetCalendarId,t)}}catch(i){if(i instanceof nu){await this.queueTaskSync(e.path,i);return}if(kA(i)===404){await this.removeTaskEventId(e.path,t);return}Br.error("[TaskCalendarSync] Failed to update recurring event EXDATEs:",{category:"provider",operation:"update-recurring-event-exdates",details:{value:e.path},error:i}),await this.syncTaskToCalendar(e,void 0,{connectionGeneration:t})}}async deleteTaskFromCalendar(e){if(!this.plugin.settings.googleCalendarExport.syncOnTaskDelete)return!0;let t=this.getConnectionGeneration(),n=this.plugin.settings.googleCalendarExport,a=this.getTaskEventId(e),i=this.getTaskExceptionEventId(e);if(!a&&!this.hasStoredRecurringExceptionMetadata(e))return!0;let s=n.targetCalendarId;if(!s)return Br.warn("[TaskCalendarSync] Cannot delete task event without target calendar:",{category:"provider",operation:"delete-task-event-without-target-calendar",details:{value:e.path}}),!1;for(let o of[a,i]){if(!o)continue;if(!await this.deleteOrQueueCalendarEvent(e.path,s,o,t))return!1}try{return await this.clearTaskGoogleCalendarMetadata(e.path,t),await this.assertConnectionGenerationCurrent(t),await this.removeCalendarSyncFingerprint(e.path),!0}catch(o){if(o instanceof nu)return!1;throw o}}async deleteTaskFromCalendarByPath(e,t,...n){if(!this.plugin.settings.googleCalendarExport.syncOnTaskDelete)return!0;let a=this.getConnectionGeneration(),i=this.plugin.settings.googleCalendarExport,s=[t,...n].filter(c=>typeof c=="string"&&c.length>0);if(s.length===0)return!0;let o=i.targetCalendarId;if(!o)return Br.warn("[TaskCalendarSync] Cannot delete task events without target calendar:",{category:"provider",operation:"delete-task-events-without-target-calendar",details:{value:e}}),!1;let l=[];for(let c of s){let d=await this.deleteOrQueueCalendarEvent(e,o,c,a);d&&await this.removeEventIndexForEvent(o,c),l.push(d)}return await this.removeCalendarSyncFingerprint(e),l.every(Boolean)}async syncAllTasks(){let e={synced:0,failed:0,skipped:0};if(!this.isEnabled())return Te(this.plugin.emitter,this.plugin.i18n.translate("settings.integrations.googleCalendarExport.notices.notEnabledOrConfigured")),e;let t=await this.plugin.cacheManager.getAllTasks(),n=t.filter(i=>this.shouldSyncTask(i)?!0:(e.skipped++,!1)),a=t.length;return Te(this.plugin.emitter,this.plugin.i18n.translate("settings.integrations.googleCalendarExport.notices.syncingTasks",{total:a})),await this.processInParallel(n,async i=>{try{await this.syncTaskToCalendar(i)?e.synced++:e.failed++}catch(s){e.failed++,Br.error(`[TaskCalendarSync] Failed to sync task ${i.path}:`,{category:"provider",operation:"sync-task",error:s})}}),Te(this.plugin.emitter,this.plugin.i18n.translate("settings.integrations.googleCalendarExport.notices.syncComplete",{synced:e.synced,failed:e.failed,skipped:e.skipped})),e}async unlinkAllTasks(e=!1){let t=this.plugin.settings.googleCalendarExport,n=await this.plugin.cacheManager.getAllTasks(),a=0;for(let i of n){let s=e?this.getConnectionGeneration():void 0;if(!(!i.googleCalendarEventId&&!this.hasStoredRecurringExceptionMetadata(i))){if(e){let o=t.targetCalendarId;if(!o){Br.warn(`[TaskCalendarSync] Cannot delete event without target calendar for ${i.path}`,{category:"provider",operation:"delete-event-without-target-calendar"});continue}let l=!0;for(let c of[i.googleCalendarEventId,this.getTaskExceptionEventId(i)]){if(!c)continue;await this.deleteOrQueueCalendarEvent(i.path,o,c,s)||(l=!1)}if(!l){Br.warn(`[TaskCalendarSync] Event deletion queued; keeping links for ${i.path}`,{category:"provider",operation:"event-deletion-queued-keeping-link"});continue}}try{await this.clearTaskGoogleCalendarMetadata(i.path,s),await this.removeCalendarSyncFingerprint(i.path),a++}catch(o){if(o instanceof nu){await this.queueTaskSync(i.path,o);continue}throw o}}}Te(this.plugin.emitter,e?this.plugin.i18n.translate("settings.integrations.googleCalendarExport.notices.eventsDeletedAndUnlinked",{count:a}):this.plugin.i18n.translate("settings.integrations.googleCalendarExport.notices.tasksUnlinked",{count:a}))}};dt.pendingEventCreates=new Map,dt.pendingExceptionEventCreates=new Map,dt.taskEventIdCache=new Map,dt.taskExceptionEventIdCache=new Map,dt.googleCalendarFrontmatterWrites=new Map,dt.googleCalendarDeletionQueueWrite=Promise.resolve();$ie=dt});var U$,D8e,hYt,xa,Bie=y(()=>{Ov();Me();K();U$=N({tag:"Utils/TasksPluginParser"}),D8e={monday:"MO",tuesday:"TU",wednesday:"WE",thursday:"TH",friday:"FR",saturday:"SA",sunday:"SU"},hYt={"\u{1F53A}":"highest","\u23EB":"high","\u{1F53C}":"medium","\u{1F53D}":"low","\u23EC":"lowest",highest:"highest",high:"high",medium:"medium",normal:"normal",none:"none",low:"low",lowest:"lowest"},xa=class{static stripBlockquoteMarkers(e){let t=e.trim();for(;/^>\s*/.test(t);)t=t.replace(/^>\s*/,"");return t}static parseTaskLine(e){if(typeof e!="string")return{isTaskLine:!1,originalText:"",error:"Invalid input: line must be a string"};if(e.length>2e3)return{isTaskLine:!1,originalText:e,error:"Line too long to process safely"};let n=this.stripBlockquoteMarkers(e).match(this.CHECKBOX_PATTERN);if(!n)return{isTaskLine:!1,originalText:e};try{let[,,a,,i]=n;if(typeof a!="string"||typeof i!="string")return{isTaskLine:!0,originalText:e,error:"Invalid checkbox format"};let s=a.toLowerCase()==="x",o=this.parseTaskContent(i,s);return!o||!o.title||o.title.trim().length===0?{isTaskLine:!0,originalText:e,error:"Task must have a title"}:{isTaskLine:!0,originalText:e,parsedData:o}}catch(a){return{isTaskLine:!0,originalText:e,error:`Failed to parse task: ${a instanceof Error?a.message:"Unknown error"}`}}}static parseTaskContent(e,t){if(typeof e!="string")throw new Error("Content must be a string");if(e.length>1e3)throw new Error("Content too long to process safely");try{let n={line:e.trim(),parsed:{}},a=this.consumeBlockLink(n);a&&(n.parsed.blockLink=a),this.consumeTrailingFields(n);let i=this.extractTags(e),s=this.extractContexts(e),o=this.extractCleanTitle(n.line),l;if(t||n.parsed.doneDate)l="done";else if(n.parsed.startDate)try{l=!z2(n.parsed.startDate)&&!_S(n.parsed.startDate)?"scheduled":"open"}catch(c){}return{title:o.trim()||"Untitled Task",status:l,priority:n.parsed.priority,dueDate:n.parsed.dueDate,scheduledDate:n.parsed.scheduledDate,startDate:n.parsed.startDate,createdDate:n.parsed.createdDate,doneDate:n.parsed.doneDate,recurrence:n.parsed.recurrence,recurrenceAnchor:n.parsed.recurrenceAnchor,recurrenceData:n.parsed.recurrenceData,tags:i.length>0?i:void 0,contexts:s.length>0?s:void 0,projects:void 0,isCompleted:t,userFields:n.parsed.userFields,customFrontmatter:n.parsed.customFrontmatter,details:n.parsed.details,blockLink:n.parsed.blockLink,taskPluginId:n.parsed.taskPluginId,dependsOn:n.parsed.dependsOn,onCompletion:n.parsed.onCompletion}}catch(n){throw new Error(`Failed to parse task content: ${n instanceof Error?n.message:"Unknown error"}`)}}static consumeTrailingFields(e){let t=0,n=!1;do n=this.consumeDataviewField(e)||this.consumeEmojiField(e)||this.consumeTrailingTagOrContext(e),t++;while(n&&t<=50)}static consumeBlockLink(e){let t=e.line.match(this.BLOCK_LINK_PATTERN);if(t!=null&&t[1])return e.line=e.line.replace(this.BLOCK_LINK_PATTERN,"").trim(),t[1]}static consumeTrailingTagOrContext(e){return this.TRAILING_TAG_OR_CONTEXT_PATTERN.test(e.line)?(e.line=e.line.replace(this.TRAILING_TAG_OR_CONTEXT_PATTERN,"").trim(),!0):!1}static consumeEmojiField(e){return[()=>this.consumeEmojiDateField(e,/(?:📅|📆|🗓)\uFE0F?\s*(\d{4}-\d{2}-\d{2})\s*$/u,"dueDate"),()=>this.consumeEmojiDateField(e,/(?:⏳|⌛)\uFE0F?\s*(\d{4}-\d{2}-\d{2})\s*$/u,"scheduledDate"),()=>this.consumeEmojiDateField(e,/🛫\uFE0F?\s*(\d{4}-\d{2}-\d{2})\s*$/u,"startDate"),()=>this.consumeEmojiDateField(e,/➕\uFE0F?\s*(\d{4}-\d{2}-\d{2})\s*$/u,"createdDate"),()=>this.consumeEmojiDateField(e,/✅\uFE0F?\s*(\d{4}-\d{2}-\d{2})\s*$/u,"doneDate"),()=>this.consumePriorityField(e,/(🔺|⏫|🔼|🔽|⏬)\uFE0F?\s*$/u),()=>this.consumeRecurrenceField(e,/🔁\uFE0F?\s*([a-zA-Z0-9, !]+?)\s*$/u),()=>this.consumeOnCompletionField(e,/🏁\uFE0F?\s*([a-zA-Z]+)\s*$/u),()=>this.consumeTaskPluginIdField(e,/🆔\uFE0F?\s*([A-Za-z0-9_-]+)\s*$/u),()=>this.consumeDependsOnField(e,/⛔\uFE0F?\s*([A-Za-z0-9_ -]+(?:\s*,\s*[A-Za-z0-9_-]+)*)\s*$/u)].some(n=>n())}static consumeEmojiDateField(e,t,n){return this.consumeField(e,t,a=>{let i=this.normalizeDate(a[1]);i&&(e.parsed[n]=i)})}static consumePriorityField(e,t){return this.consumeField(e,t,n=>{e.parsed.priority=this.normalizePriority(n[1])})}static consumeRecurrenceField(e,t){return this.consumeField(e,t,n=>{Object.assign(e.parsed,this.parseRecurrence(n[1]))})}static consumeOnCompletionField(e,t){return this.consumeField(e,t,n=>{var i;let a=(i=n[1])==null?void 0:i.trim().toLowerCase();(a==="keep"||a==="delete")&&(e.parsed.onCompletion=a)})}static consumeTaskPluginIdField(e,t){return this.consumeField(e,t,n=>{var a;e.parsed.taskPluginId=(a=n[1])==null?void 0:a.trim()})}static consumeDependsOnField(e,t){return this.consumeField(e,t,n=>{let a=this.parseTaskIdList(n[1]);a.length>0&&(e.parsed.dependsOn=a)})}static consumeDataviewField(e){let t=e.line.match(this.DATAVIEW_FIELD_AT_END_PATTERN);if(!t)return!1;let[,n,a,i,s]=t;return n==="["&&s!=="]"||n==="("&&s!==")"?!1:(this.applyDataviewField(e,a,i.trim()),e.line=e.line.replace(this.DATAVIEW_FIELD_AT_END_PATTERN,"").trim(),!0)}static applyDataviewField(e,t,n){switch(t.trim().toLowerCase()){case"priority":e.parsed.priority=this.normalizePriority(n);return;case"start":this.assignDateField(e,"startDate",n);return;case"created":this.assignDateField(e,"createdDate",n);return;case"scheduled":this.assignDateField(e,"scheduledDate",n);return;case"due":this.assignDateField(e,"dueDate",n);return;case"completion":case"done":this.assignDateField(e,"doneDate",n);return;case"repeat":Object.assign(e.parsed,this.parseRecurrence(n));return;case"oncompletion":(n.toLowerCase()==="keep"||n.toLowerCase()==="delete")&&(e.parsed.onCompletion=n.toLowerCase());return;case"id":e.parsed.taskPluginId=n;return;case"dependson":{let i=this.parseTaskIdList(n);i.length>0&&(e.parsed.dependsOn=i);return}case"summary":case"description":case"details":this.appendDetails(e,n);return;default:this.assignCustomFrontmatter(e,t,n)}}static assignDateField(e,t,n){let a=this.normalizeDate(n);a&&(e.parsed[t]=a)}static consumeField(e,t,n){let a=e.line.match(t);return a?(n(a),e.line=e.line.replace(t,"").trim(),!0):!1}static parseTaskIdList(e){return e.split(",").map(t=>t.trim()).filter(t=>/^[A-Za-z0-9_-]+$/.test(t))}static assignCustomFrontmatter(e,t,n){if(!t.trim())return;let a=e.parsed.customFrontmatter||{},i=a[t];i===void 0?a[t]=n:Array.isArray(i)?a[t]=[...i,n]:a[t]=[i,n],e.parsed.customFrontmatter=a}static appendDetails(e,t){t.trim()&&(e.parsed.details=e.parsed.details?`${e.parsed.details}
|
||
|
||
${t.trim()}`:t.trim())}static normalizeDate(e){if(!e)return;let t=e.trim();if(/^\d{4}-\d{2}-\d{2}$/.test(t))try{let n=kt(t);if(isNaN(n.getTime()))return;let a=n.getUTCFullYear();return a<1900||a>2100?void 0:ce(n)}catch(n){return}}static normalizePriority(e){if(!e)return;let t=e.trim().toLowerCase();return hYt[t]||t||void 0}static parseRecurrence(e){let t=e==null?void 0:e.trim();if(!t)return{};let a=t.match(/\s+when\s+done$/iu)?"completion":void 0,i=t.replace(/\s+when\s+done$/iu,"").trim(),o=this.normalizeExistingRRule(i)||this.parseTextToRRule(i)||this.parseSimpleRecurrence(i);return o?{recurrence:o,recurrenceAnchor:a,recurrenceData:this.buildRecurrenceData(o,t)}:{recurrenceData:{frequency:"custom",raw:t}}}static normalizeExistingRRule(e){let t=e.trim().replace(/^RRULE:/iu,"");if(/^(DTSTART:[^;]+;)?FREQ=/iu.test(t))return t.toUpperCase()}static parseTextToRRule(e){try{let t=ke.parseText(e);return t?new ke(t).toString().replace(/^RRULE:/u,""):void 0}catch(t){return}}static parseSimpleRecurrence(e){let t=e.trim().toLowerCase(),n=t.match(/^every\s+(\d+)\s+(day|week|month|year)s?$/u);if(n)return`FREQ=${this.frequencyFromText(n[2])};INTERVAL=${n[1]}`;let a=t.match(/^every\s+((?:monday|tuesday|wednesday|thursday|friday|saturday|sunday)(?:\s*(?:,|and)\s*(?:monday|tuesday|wednesday|thursday|friday|saturday|sunday))*)$/u);if(a){let s=a[1].split(/\s*(?:,|and)\s*/u).map(o=>D8e[o]).filter(Boolean);if(s.length>0)return`FREQ=WEEKLY;BYDAY=${s.join(",")}`}let i=t.match(/^every\s+week\s+on\s+((?:monday|tuesday|wednesday|thursday|friday|saturday|sunday)(?:\s*(?:,|and)\s*(?:monday|tuesday|wednesday|thursday|friday|saturday|sunday))*)$/u);if(i){let s=i[1].split(/\s*(?:,|and)\s*/u).map(o=>D8e[o]).filter(Boolean);if(s.length>0)return`FREQ=WEEKLY;BYDAY=${s.join(",")}`}switch(t){case"daily":case"every day":return"FREQ=DAILY";case"weekly":case"every week":return"FREQ=WEEKLY";case"monthly":case"every month":return"FREQ=MONTHLY";case"yearly":case"annually":case"every year":return"FREQ=YEARLY";default:return}}static frequencyFromText(e){switch(e){case"day":return"DAILY";case"week":return"WEEKLY";case"month":return"MONTHLY";case"year":return"YEARLY";default:return"DAILY"}}static buildRecurrenceData(e,t){var o,l;let n=e.match(/(?:^|;)FREQ=([^;]+)/u),a=e.match(/(?:^|;)BYDAY=([^;]+)/u),i=e.match(/(?:^|;)BYMONTHDAY=(\d+)/u),s=e.match(/(?:^|;)BYMONTH=(\d+)/u);return{frequency:((o=n==null?void 0:n[1])==null?void 0:o.toLowerCase())||"custom",days_of_week:(l=a==null?void 0:a[1])==null?void 0:l.split(","),day_of_month:i?Number(i[1]):void 0,month_of_year:s?Number(s[1]):void 0,raw:t}}static extractTags(e){if(typeof e!="string")return[];try{let t=new RegExp(this.TAG_PATTERN.source,this.TAG_PATTERN.flags),n=[],a;for(;(a=t.exec(e))!==null;)if(a[0]){let i=a[0].substring(1);i&&!n.includes(i)&&n.push(i)}return n}catch(t){return U$.debug("Error extracting tags:",{category:"validation",operation:"extracting-tags",error:t}),[]}}static extractContexts(e){if(typeof e!="string")return[];try{let t=new RegExp(this.CONTEXT_PATTERN.source,this.CONTEXT_PATTERN.flags),n=[],a;for(;(a=t.exec(e))!==null;)if(a[0]){let i=a[0].substring(1);i&&!n.includes(i)&&n.push(i)}return n}catch(t){return U$.debug("Error extracting contexts:",{category:"validation",operation:"extracting-contexts",error:t}),[]}}static extractCleanTitle(e){if(typeof e!="string")return"";try{let t=e;t=t.replace(this.TAG_PATTERN,""),t=t.replace(this.CONTEXT_PATTERN,""),t=t.replace(this.DATAVIEW_FIELD_ANY_PATTERN,"");let n=t.replace(/\s+/g," ").trim();return n.length===0?"Untitled Task":n}catch(t){return U$.debug("Error extracting clean title:",{category:"validation",operation:"extracting-clean-title",error:t}),"Untitled Task"}}static isTasksPluginFormat(e){if(typeof e!="string"||e.length>1e3)return!1;try{let n=this.stripBlockquoteMarkers(e).match(this.CHECKBOX_PATTERN);if(!n)return!1;let a=n[4]||"";return this.hasTasksPluginMetadata(a)}catch(t){return U$.debug("Error validating Tasks plugin format:",{category:"validation",operation:"validating-tasks-plugin-format",error:t}),!1}}static hasTasksPluginMetadata(e){return/(?:📅|📆|🗓|⏳|⌛|🛫|➕|✅|🔺|⏫|🔼|🔽|⏬|🔁|🏁|🆔|⛔)/u.test(e)||this.DATAVIEW_FIELD_ANY_PATTERN.test(e)}static getSummary(e){let t=[];return t.push(`Title: "${e.title}"`),t.push(`Status: ${e.status}`),t.push(`Priority: ${e.priority}`),e.dueDate&&t.push(`Due: ${e.dueDate}`),e.startDate&&t.push(`Start: ${e.startDate}`),e.scheduledDate&&t.push(`Scheduled: ${e.scheduledDate}`),e.createdDate&&t.push(`Created: ${e.createdDate}`),e.doneDate&&t.push(`Done: ${e.doneDate}`),e.recurrence&&t.push(`Recurrence: ${e.recurrence}`),e.tags&&e.tags.length>0&&t.push(`Tags: ${e.tags.map(n=>"#"+n).join(", ")}`),e.projects&&e.projects.length>0&&t.push(`Projects: ${e.projects.map(n=>n.includes(" ")?`+[[${n}]]`:`+${n}`).join(", ")}`),t.join(" | ")}};xa.CHECKBOX_PATTERN=/^(\s*(?:[-*+]|\d+\.)\s+\[)([ xX])(\]\s+)(.*)/u,xa.TAG_PATTERN=/#[\p{L}\p{N}\p{M}_/-]+/gu,xa.CONTEXT_PATTERN=/@[\p{L}\p{N}\p{M}_/-]+/gu,xa.BLOCK_LINK_PATTERN=/\s(\^[a-zA-Z0-9-]+)\s*$/u,xa.TRAILING_TAG_OR_CONTEXT_PATTERN=/(?:^|\s)(#[\p{L}\p{N}\p{M}_/-]+|@[\p{L}\p{N}\p{M}_/-]+)\s*$/u,xa.DATAVIEW_FIELD_AT_END_PATTERN=/(?:^|\s)(\[|\()\s*([A-Za-z][A-Za-z0-9_-]*)::\s*([^\])]*?)\s*(\]|\))\s*,?\s*$/u,xa.DATAVIEW_FIELD_ANY_PATTERN=/(\[|\()\s*[A-Za-z][A-Za-z0-9_-]*::\s*[^\])]*?\s*(\]|\))/u});function gYt(r){var t;let e=r.includes("|")&&r.split("|").pop()||r;return((t=e.split("/").pop())==null?void 0:t.replace(/\.md$/i,""))||e}function Vw(r){let e=r;for(let t=0;t<4;t++){let n=e;if(e=e.replace(/\[\[([^[\]]+)\]\]/g,(a,i)=>gYt(String(i)).trim()),e=e.replace(/\[([^\]]+)\]\((<[^>]+>|[^)]+)\)/g,(a,i)=>String(i).trim()),e===n)break}return e.replace(/\s+/g," ").trim()}function Uie(r){if(r.startsWith("[[")&&r.endsWith("]]")){let e=r.slice(2,-2),t=e.indexOf("|");if(t===-1)return r;let n=e.slice(0,t),a=e.slice(t+1),i=Vw(a);return i?`[[${n}|${i}]]`:`[[${n}]]`}if(r.startsWith("[")&&r.endsWith(")")){let e=r.lastIndexOf("](");if(e<=0)return r;let t=r.slice(1,e),n=r.slice(e+2,-1),a=Vw(t);return a?`[${a}](${n})`:r}return r}var Hie=y(()=>{});var A8e={};at(A8e,{InstantTaskConvertService:()=>Vie,extractProjectFromHeadingText:()=>M8e,findClosestHeadingAboveLine:()=>P8e});function P8e(r,e){if(!r||!Number.isInteger(e)||e<0)return null;let t=null;for(let n of r)n.position.start.line>=e||(!t||n.position.start.line>t.position.start.line)&&(t=n);return t}function M8e(r){let e=r.trim();if(!e)return null;let t=e.match(/\[\[([^[\]]+)\]\]/);if(t)return`[[${t[1].trim()}]]`;let n=e.match(/\[[^\]]+\]\(([^)]+)\)/);return n?n[0].trim():/^\d{4}(?:-\d{2}){0,2}$/.test(e)?null:e}function yYt(r){var a;let e=((a=r.match(/^(\s*)/))==null?void 0:a[1])||"",t=r.slice(e.length),n="";for(;/^>\s*/.test(t);){let i=t.match(/^(>\s*)/);if(!i)break;n+=i[1],t=t.slice(i[1].length)}return{leadingWhitespace:e,blockquotePrefix:n,content:t}}var Ii,Vie,_8e=y(()=>{Bie();Lc();Me();Ct();TO();am();Kk();K();Hie();fs();Ba();Ii=N({tag:"Services/InstantTaskConvertService"});Vie=class{translate(e,t){return this.plugin.i18n.translate(e,t)}constructor(e,t,n){this.plugin=e,this.statusManager=t,this.priorityManager=n,this.nlParser=ra.fromPlugin(e)}async batchConvertAllTasks(e){try{let t=this.findAllCheckboxTasks(e);if(t.length===0){Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.noCheckboxTasks"));return}let n=t.length===1?"":"s";Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.convertingTasks",{count:t.length,plural:n}));let a=await this.batchConvertTasksOptimized(e,t);if(a.failures.length===0){let i=a.successCount===1?"":"s";Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.conversionSuccess",{count:a.successCount,plural:i}))}else{let i=a.successCount===1?"":"s";Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.partialConversion",{successCount:a.successCount,successPlural:i,failureCount:a.failures.length})),Ii.warn("Batch conversion failures:",{category:"configuration",operation:"batch-conversion-failures",details:{value:a.failures}})}}catch(t){Ii.error("Error during batch task conversion:",{category:"configuration",operation:"batch-task-conversion",error:t}),Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.batchConversionFailed"))}}async batchConvertTasksOptimized(e,t){let n=[],a=[],i=t.map(async o=>{try{let l=await this.parseTaskForBatch(o.line);if(!l)throw new Error("Failed to parse task");let c=await this.createTaskFile(l,"",o.lineNumber),d=this.generateLinkText(o.line,c);return{lineNumber:o.lineNumber,line:o.line,file:c,linkText:d}}catch(l){return n.push({lineNumber:o.lineNumber+1,error:l instanceof Error?l.message:String(l)}),null}}),s=await Promise.all(i);for(let o of s)o&&a.push(o);return a.length>0&&this.replaceAllTaskLines(e,a),{successCount:a.length,failures:n}}async instantConvertTask(e,t){var n,a,i,s;try{if(!this.validateInputParameters(e,t).isValid){Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.invalidParameters"));return}let l=this.extractSelectionInfo(e,t),c=l.taskLine,d=l.details,u,p=xa.parseTaskLine(c);if(p.isTaskLine){if(p.error||!p.parsedData){Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.parseError",{error:p.error||"No data extracted"}));return}if(this.plugin.settings.enableNaturalLanguageInput){let g=p.parsedData.title,v=d!=null&&d.trim()?`${g}
|
||
${d}`:g,b=this.nlParser.parseInput(v),k={title:((n=b.title)==null?void 0:n.trim())||g,isCompleted:b.isCompleted||!1,status:b.status,priority:b.priority,dueDate:b.dueDate,scheduledDate:b.scheduledDate,dueTime:b.dueTime,scheduledTime:b.scheduledTime,recurrence:b.recurrence,timeEstimate:b.estimate,tags:((a=b.tags)==null?void 0:a.length)>0?b.tags:void 0,projects:((i=b.projects)==null?void 0:i.length)>0?b.projects:void 0,contexts:((s=b.contexts)==null?void 0:s.length)>0?b.contexts:void 0,userFields:b.userFields};u=this.mergeParseResults(p.parsedData,k)}else u=p.parsedData}else{let g=this.extractLineContentAsTitle(c);if(!g.trim()){Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.emptyLine"));return}if(this.plugin.settings.enableNaturalLanguageInput){let v=this.tryNLPFallback(g,d||"");v?u=v:u={title:g,isCompleted:!1}}else u={title:g,isCompleted:!1}}if(!this.validateTaskData(u).isValid){Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.invalidTaskData"));return}let f=await this.createTaskFile(u,d,l.startLine);if(!(await this.replaceOriginalTaskLines(e,l,f,u.title)).success){Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.replaceLineFailed"));try{await this.plugin.app.fileManager.trashFile(f)}catch(g){Ii.warn("Failed to clean up created file after replacement failure:",{category:"validation",operation:"clean-up-created-file-replacement",error:g})}return}await this.persistSourceNoteAfterReplacement(e),NN(this.plugin.settings,u.title,f.basename)?Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.conversionCompleteShortened",{title:u.title})):Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.conversionComplete",{title:u.title})),await this.refreshTaskLinkOverlays(e,f)}catch(o){Ii.error("Error during instant task conversion:",{category:"configuration",operation:"instant-task-conversion",error:o}),o.message.includes("file already exists")?Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.fileExists")):Te(this.plugin.emitter,this.translate("services.instantTaskConvert.notices.conversionFailed"))}}extractSelectionInfo(e,t){let n=e.getSelection();if(n&&n.trim()){let i=e.listSelections()[0],s=Math.min(i.anchor.line,i.head.line),o=Math.max(i.anchor.line,i.head.line);if(t>=s&&t<=o){let l=[];for(let p=s;p<=o;p++)l.push(e.getLine(p));let c=l[0],u=l.slice(1).join(`
|
||
`).trimEnd();return{taskLine:c,details:u,startLine:s,endLine:o,originalContent:l}}}let a=e.getLine(t);return{taskLine:a,details:"",startLine:t,endLine:t,originalContent:[a]}}validateInputParameters(e,t){if(!e)return{isValid:!1,error:"Editor is not available."};let n=e.lineCount();if(t<0||t>=n)return{isValid:!1,error:`Line number ${t} is out of bounds (0-${n-1}).`};let a=e.getLine(t);return a==null?{isValid:!1,error:`Cannot read line ${t}.`}:{isValid:!0}}validateTaskData(e){if(!e.title||e.title.trim().length===0)return{isValid:!1,error:"Task title cannot be empty."};let t=["dueDate","scheduledDate","startDate","createdDate","doneDate"];for(let n of t){let a=e[n];if(a&&!this.isValidDateFormat(a))return{isValid:!1,error:`Invalid date format in ${n}: ${a}`}}return{isValid:!0}}isValidDateFormat(e){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))return!1;try{let n=kt(e);return ce(n)===e}catch(n){return!1}}async createTaskFile(e,t="",n){var Q,G,ie,Ee,ee;let a=((Q=e.title)==null?void 0:Q.trim())||"",i=this.extractTitleLinks(a),s=i.cleanTitle||a,o=this.sanitizeTitle(s)||"Untitled Task",c=[(G=e.details)==null?void 0:G.trim(),t].filter(Boolean).join(`
|
||
|
||
`),d=this.appendPreservedTitleLinks(c,i.links);if(s.length>200){let re=this.extractOverflowText(s,200);re&&(d=re+(d?`
|
||
|
||
`+d:""))}let u=this.plugin.app.workspace.getActiveFile(),p=u?this.plugin.app.fileManager.generateMarkdownLink(u,u.path):"",m=this.sanitizeDate(e.dueDate),f=this.sanitizeDate(e.scheduledDate),h=((ie=e.dueTime)==null?void 0:ie.trim())||void 0,g=((Ee=e.scheduledTime)==null?void 0:Ee.trim())||void 0,v,b,k,w,S=[],C=this.plugin.settings.taskIdentificationMethod==="tag"?[this.plugin.settings.taskTag]:[],E,D,P=e.tags||[],O=e.contexts||[],z=e.projects||[];if(this.plugin.settings.useDefaultsOnInstantConvert){let re=this.plugin.settings.taskCreationDefaults;if(v=(e.priority?this.sanitizePriority(e.priority):"")||this.plugin.settings.defaultTaskPriority,b=(e.status?this.sanitizeStatus(e.status):"")||this.plugin.settings.defaultTaskStatus,m?k=h?La(m,h):m:re.defaultDueDate!=="none"&&(k=Ac(re.defaultDueDate,re.defaultDueTime)),f?w=g?La(f,g):f:re.defaultScheduledDate!=="none"&&(w=Ac(re.defaultScheduledDate,re.defaultScheduledTime)),S=[],O.length>0&&S.push(...O),re.defaultContexts){let et=re.defaultContexts.split(",").map(fe=>fe.trim()).filter(fe=>fe);S.push(...et)}if(S=[...new Set(S)],C=this.plugin.settings.taskIdentificationMethod==="tag"?[this.plugin.settings.taskTag]:[],P.length>0&&C.push(...P),re.defaultTags){let et=re.defaultTags.split(",").map(fe=>fe.trim()).filter(fe=>fe);C.push(...et)}C=[...new Set(C)],e.timeEstimate!==void 0&&e.timeEstimate>0?E=e.timeEstimate:re.defaultTimeEstimate&&re.defaultTimeEstimate>0&&(E=re.defaultTimeEstimate),e.recurrence?D=e.recurrence:re.defaultRecurrence&&re.defaultRecurrence!=="none"&&(D={daily:"FREQ=DAILY",weekly:"FREQ=WEEKLY",monthly:"FREQ=MONTHLY",yearly:"FREQ=YEARLY"}[re.defaultRecurrence]||void 0)}else v=(e.priority?this.sanitizePriority(e.priority):"")||"none",b=(e.status?this.sanitizeStatus(e.status):"")||"none",k=m?h?La(m,h):m:void 0,w=f?g?La(f,g):f:void 0,S=[],O.length>0&&S.push(...O),C=this.plugin.settings.taskIdentificationMethod==="tag"?[this.plugin.settings.taskTag]:[],P.length>0&&C.push(...P),C=[...new Set(C)],E=e.timeEstimate,e.recurrence&&(D=e.recurrence);let R=[];if(this.plugin.settings.useDefaultsOnInstantConvert){let re=this.plugin.settings.taskCreationDefaults;if(re.defaultProjects){let et=qs(re.defaultProjects);R.push(...et)}if(re.useParentNoteAsProject&&u&&R.push(p),re.useParentHeaderAsProject&&u){let et=this.getParentHeaderProject(u,n);et&&R.push(et)}}z.length>0&&R.push(...z);let A=[...new Set(R)],F;if(this.plugin.settings.useDefaultsOnInstantConvert){let re=this.plugin.settings.taskCreationDefaults;if(re.defaultReminders&&re.defaultReminders.length>0){let{convertDefaultRemindersToReminders:et}=await Promise.resolve().then(()=>(IN(),_Se));F=et(re.defaultReminders)}}let $={...e.customFrontmatter||{}};if(e.userFields)for(let[re,et]of Object.entries(e.userFields)){let fe=(ee=this.plugin.settings.userFields)==null?void 0:ee.find(ut=>ut.id===re);fe?Array.isArray(et)?$[fe.key]=et.join(", "):$[fe.key]=et:Ii.warn(`[InstantTaskConvert] No user field definition found for field ID: ${re}`,{category:"validation",operation:"no-user-field-definition-found-field-id"})}let B={title:o,status:b,priority:v,due:k,scheduled:w,contexts:S.length>0?S:void 0,projects:A.length>0?A:void 0,tags:C,timeEstimate:E,recurrence:D,recurrence_anchor:e.recurrenceAnchor,reminders:F,details:d,parentNote:p,creationContext:"inline-conversion",dateCreated:Ge(),dateModified:Ge(),customFrontmatter:Object.keys($).length>0?$:void 0},{file:ue}=await this.plugin.taskService.createTask(B);return ue}getParentHeaderProject(e,t){var s,o;if(t===void 0)return null;let n=(s=this.plugin.app.metadataCache.getFileCache(e))==null?void 0:s.headings,a=P8e(n,t);if(!a)return null;let i=M8e(a.heading);return i?(o=this.resolveProjectLinks([i])[0])!=null?o:i:null}extractTitleLinks(e){if(!e)return{cleanTitle:"",links:[]};let t=[],n=e.replace(/\[([^\]]+)\]\((<[^>]+>|[^)]+)\)/g,(i,s)=>(t.push(i),String(s).trim()));n=n.replace(/\[\[([^[\]]+)\]\]/g,i=>(t.push(i),Vw(i)));let a=[...new Set(t)];return{cleanTitle:n.replace(/\s+/g," ").trim(),links:a}}appendPreservedTitleLinks(e,t){let n=t.filter(i=>!e.includes(i));if(n.length===0)return e;let a=["Source links:",...n.map(i=>`- ${i}`)].join(`
|
||
`);return e.trimEnd()?`${e.trimEnd()}
|
||
|
||
${a}`:a}sanitizeTitle(e){return e?e.trim().substring(0,200):""}extractOverflowText(e,t){if(!e||e.length<=t)return"";let n=e.lastIndexOf(" ",t);return n>0&&n>t-50?e.substring(n).trim():e.substring(t).trim()}sanitizePriority(e){let t=this.priorityManager.getAllPriorities().map(i=>i.value).filter(i=>i!=null);if(t.includes(e))return e;let a={highest:"high",medium:"normal",lowest:"low"}[e];return a&&t.includes(a)?a:""}sanitizeStatus(e){return this.statusManager.getAllStatuses().map(n=>n.value).filter(n=>n!=null).includes(e)?e:""}sanitizeDate(e){return!e||!this.isValidDateFormat(e)?"":e}async replaceOriginalTaskLines(e,t,n,a){try{if(!e||!n)return{success:!1,error:"Invalid editor or file reference."};let{startLine:i,endLine:s,originalContent:o}=t,l=e.lineCount();if(i<0||s>=l)return{success:!1,error:`Line range ${i}-${s} is no longer valid (current line count: ${l}).`};for(let b=0;b<o.length;b++)if(e.getLine(i+b)!==o[b])return{success:!1,error:"Content has changed since parsing. Please try again."};let c=xa.parseTaskLine(o[0]),d=c.isTaskLine;if(d&&!c.isTaskLine)return{success:!1,error:"First line is no longer a valid task."};if(!d&&!this.extractLineContentAsTitle(o[0]).trim())return{success:!1,error:"First line no longer contains valid content."};let u=this.plugin.app.workspace.getActiveFile(),p=(u==null?void 0:u.path)||"",m=Uie(this.plugin.app.fileManager.generateMarkdownLink(n,p)),h=`${this.getReplacementPrefix(o[0],d)}${m}`;if(h.length>500)return{success:!1,error:"Generated link text is too long."};let g={line:i,ch:0},v={line:s,ch:e.getLine(s).length};return e.replaceRange(h,g,v),{success:!0}}catch(i){return Ii.error("Error replacing task lines:",{category:"validation",operation:"replacing-task-lines",error:i}),{success:!1,error:`Failed to replace lines: ${i.message}`}}}getCheckboxReplacementPrefix(e){if(this.plugin.settings.preserveCheckboxOnConvert){let n=e.match(/^(\s*(?:[-*+]|\d+\.)\s+\[[^\]]\]\s*)/);return(n==null?void 0:n[1])||"- [ ] "}let t=e.match(/^(\s*(?:[-*+]|\d+\.)\s+)\[/);return(t==null?void 0:t[1])||"- "}getNonCheckboxReplacementPrefix(e){let t=e.match(/^(\s*[-*+]\s+)/),n=e.match(/^(\s*\d+\.\s+)/);return t?t[1]:n?n[1]:"- "}getReplacementPrefix(e,t){let{leadingWhitespace:n,blockquotePrefix:a,content:i}=yYt(e),s=t?this.getCheckboxReplacementPrefix(i):this.getNonCheckboxReplacementPrefix(i);return`${n}${a}${s}`}async refreshTaskLinkOverlays(e,t){try{await this.forceMetadataCacheUpdate(t),window.setTimeout(()=>{try{let n=e.cm;if(n){let a=e.getCursor();sf(n,t.path),window.setTimeout(()=>{try{e.setCursor(a)}catch(i){Ii.debug("Error restoring cursor position:",{category:"validation",operation:"restoring-cursor-position",error:i})}},10)}}catch(n){Ii.debug("Error dispatching task update for overlays:",{category:"validation",operation:"dispatching-task-update-overlays",error:n})}},100)}catch(n){Ii.debug("Error refreshing task link overlays:",{category:"stale-data",operation:"refreshing-task-link-overlays",error:n})}}async persistSourceNoteAfterReplacement(e){var i,s;let t=this.plugin.app.workspace,n=t.activeEditor,a=(n==null?void 0:n.editor)===e?n.file:(s=(i=t.getActiveFile)==null?void 0:i.call(t))!=null?s:null;if(!a)return null;try{await Mo(this.plugin.app,a,e.getValue()),this.plugin.notifyDataChanged(a.path,!1,!1)}catch(o){Ii.debug("Error saving source note after instant task conversion:",{category:"configuration",operation:"saving-source-note-instant-task-conversion",error:o})}return a}async forceMetadataCacheUpdate(e){try{await this.plugin.app.vault.cachedRead(e),this.plugin.app.metadataCache.getFileCache(e)===null&&window.setTimeout(()=>{(async()=>{try{await this.plugin.app.vault.cachedRead(e)}catch(t){Ii.debug("Error in delayed cache update:",{category:"stale-data",operation:"delayed-cache-update",error:t})}})()},10)}catch(t){Ii.debug("Error forcing metadata cache update:",{category:"stale-data",operation:"forcing-metadata-cache-update",error:t})}}mergeParseResults(e,t){var s;if(!t)return e;let n=(o,l)=>{let c=[...o||[],...l||[]],d=[...new Set(c)];return d.length>0?d:void 0},a=(o,l)=>{if(!o&&!l)return;let c={...l||{},...o||{}};return Object.keys(c).length>0?c:void 0},i={...t.customFrontmatter||{},...e.customFrontmatter||{}};return{title:((s=t.title)==null?void 0:s.trim())||e.title,dueDate:e.dueDate||t.dueDate,scheduledDate:e.scheduledDate||t.scheduledDate,dueTime:e.dueTime||t.dueTime,scheduledTime:e.scheduledTime||t.scheduledTime,startDate:e.startDate,createdDate:e.createdDate,doneDate:e.doneDate,priority:e.priority||t.priority,status:e.status||t.status,recurrence:e.recurrence||t.recurrence,recurrenceAnchor:e.recurrenceAnchor,recurrenceData:e.recurrenceData,timeEstimate:e.timeEstimate||t.timeEstimate,tags:n(e.tags,t.tags),contexts:n(e.contexts,t.contexts),projects:n(e.projects,t.projects?this.resolveProjectLinks(t.projects):void 0),userFields:a(e.userFields,t.userFields),customFrontmatter:Object.keys(i).length>0?i:void 0,details:e.details||t.details,blockLink:e.blockLink,taskPluginId:e.taskPluginId,dependsOn:e.dependsOn,onCompletion:e.onCompletion,isCompleted:e.isCompleted}}tryNLPFallback(e,t){var n;try{let a=this.extractTaskContent(e);if(!a.trim())return null;let i=t.trim().length>0?`${a}
|
||
${t}`:a,s=this.nlParser.parseInput(i);return(n=s.title)!=null&&n.trim()?{title:s.title.trim(),isCompleted:s.isCompleted||!1,status:s.status,priority:s.priority,dueDate:s.dueDate,scheduledDate:s.scheduledDate,dueTime:s.dueTime,scheduledTime:s.scheduledTime,recurrence:s.recurrence,timeEstimate:s.estimate,tags:s.tags&&s.tags.length>0?s.tags:void 0,projects:s.projects&&s.projects.length>0?this.resolveProjectLinks(s.projects):void 0,contexts:s.contexts&&s.contexts.length>0?s.contexts:void 0,userFields:s.userFields,startDate:void 0,createdDate:void 0,doneDate:void 0,recurrenceData:void 0,recurrenceAnchor:void 0,customFrontmatter:void 0,details:void 0,blockLink:void 0,taskPluginId:void 0,dependsOn:void 0,onCompletion:void 0}:null}catch(a){return Ii.debug("NLP fallback parsing failed:",{category:"validation",operation:"nlp-fallback-parsing",error:a}),null}}resolveProjectLinks(e){var t,n,a;try{if(!((n=(t=this.plugin.app)==null?void 0:t.workspace)!=null&&n.getActiveFile)||!((a=this.plugin.app)!=null&&a.metadataCache))return e;let i=this.plugin.app.workspace.getActiveFile(),s=(i==null?void 0:i.path)||"";return e.map(o=>{let l=o.match(/^\[\[([^\]]+)\]\]$/);if(l){let c=l[1],d=c;c.includes("|")&&(d=c.split("|")[0]);try{let u=this.plugin.app.metadataCache.getFirstLinkpathDest(d,s);if(u)return`[[${this.plugin.app.metadataCache.fileToLinktext(u,s,!0)}]]`}catch(u){Ii.debug("Error resolving project link:",{category:"validation",operation:"resolving-project-link",error:u})}return o}return o})}catch(i){return Ii.debug("Error in resolveProjectLinks:",{category:"validation",operation:"resolveprojectlinks",error:i}),e}}extractTaskContent(e){return e.replace(/^\s*(?:[-*+]|\d+\.)\s*\[[ xX]\]\s*/,"").trim()}extractLineContentAsTitle(e){let t=e.trim();for(;t.match(/^\s*>\s*/);)t=t.replace(/^\s*>\s*/,"");return t=t.replace(/^\s*[-*+]\s+/,""),t=t.replace(/^\s*\d+\.\s+/,""),t=t.replace(/^\s*\[[ xX]\]\s+/,""),t=t.replace(/^\s*#+\s+/,""),t.match(/^\s*(-{3,}|={3,})\s*$/)?"":t.trim()}findAllCheckboxTasks(e){let t=[],n=e.lineCount();for(let a=0;a<n;a++){let i=e.getLine(a);if(xa.parseTaskLine(i).isTaskLine){t.push({lineNumber:a,line:i});continue}if(i.trim().includes("[ ]")||i.trim().includes("[x]")||i.trim().includes("[X]")){let o=i.trim();for(;o.match(/^\s*>\s*/);)o=o.replace(/^\s*>\s*/,"");xa.parseTaskLine(o).isTaskLine&&t.push({lineNumber:a,line:i})}}return t}async parseTaskForBatch(e){var t,n,a,i;try{let s=xa.parseTaskLine(e);if(s.isTaskLine){if(s.error||!s.parsedData)return null;if(this.plugin.settings.enableNaturalLanguageInput){let o=s.parsedData.title,l=this.nlParser.parseInput(o),c={title:((t=l.title)==null?void 0:t.trim())||o,isCompleted:l.isCompleted||!1,status:l.status,priority:l.priority,dueDate:l.dueDate,scheduledDate:l.scheduledDate,dueTime:l.dueTime,scheduledTime:l.scheduledTime,recurrence:l.recurrence,timeEstimate:l.estimate,tags:((n=l.tags)==null?void 0:n.length)>0?l.tags:void 0,projects:((a=l.projects)==null?void 0:a.length)>0?l.projects:void 0,contexts:((i=l.contexts)==null?void 0:i.length)>0?l.contexts:void 0,userFields:l.userFields};return this.mergeParseResults(s.parsedData,c)}return s.parsedData}else{let o=this.extractLineContentAsTitle(e);if(!o.trim())return null;if(this.plugin.settings.enableNaturalLanguageInput){let l=this.tryNLPFallback(o,"");if(l)return l}return{title:o,isCompleted:!1}}}catch(s){return Ii.warn("Error parsing task for batch:",{category:"validation",operation:"parsing-task-batch",error:s}),null}}generateLinkText(e,t){let a=xa.parseTaskLine(e).isTaskLine,i=this.plugin.app.workspace.getActiveFile(),s=(i==null?void 0:i.path)||"",o=Uie(this.plugin.app.fileManager.generateMarkdownLink(t,s));return`${this.getReplacementPrefix(e,a)}${o}`}replaceAllTaskLines(e,t){let n=t.sort((a,i)=>i.lineNumber-a.lineNumber);for(let a of n){let i=e.getLine(a.lineNumber).length;e.replaceRange(a.linkText,{line:a.lineNumber,ch:0},{line:a.lineNumber,ch:i})}}}});var R8e={};at(R8e,{buildConvertButtonDecorations:()=>Wie,createInstantConvertButtons:()=>bYt,createInstantConvertField:()=>N8e});function N8e(r){return lh.ViewPlugin.fromClass(class{constructor(e){var t;this.enabled=!!((t=r==null?void 0:r.settings)!=null&&t.enableInstantTaskConvert),this.decorations=this.enabled?Wie(e,r):lh.Decoration.none}update(e){var n;if(!!!((n=r==null?void 0:r.settings)!=null&&n.enableInstantTaskConvert)){this.enabled=!1,this.decorations=lh.Decoration.none;return}(!this.enabled||e.docChanged||e.viewportChanged)&&(this.enabled=!0,this.decorations=Wie(e.view,r))}},{decorations:e=>e.decorations})}function vYt(r){let e=r.state;return!(r.dom instanceof HTMLElement)||typeof e.field!="function"?!1:iT(r)}function Wie(r,e){var s;let t=new I8e.RangeSetBuilder;if(vYt(r))return t.finish();let n=(s=r.state)==null?void 0:s.doc;if(!n||!e)return zs.warn("Invalid state or plugin for building convert button decorations",{category:"validation",operation:"invalid-state-or-plugin-building-convert-button-decorations"}),t.finish();if(typeof n.lines!="number"||n.lines<0)return zs.warn("Invalid document lines count:",{category:"validation",operation:"invalid-document-lines-count",details:{value:n.lines}}),t.finish();let a=new Set,i=r.visibleRanges.length>0?r.visibleRanges:[{from:0,to:n.length}];for(let o of i)try{let l=n.lineAt(Math.max(0,Math.min(o.from,n.length)));for(;l&&l.from<=o.to&&(a.has(l.number)||(a.add(l.number),kYt(t,e,l)),!(l.number>=n.lines||l.to>=n.length));)l=n.line(l.number+1)}catch(l){zs.debug("Error processing visible range",{category:"validation",operation:"processing-visible-range",details:{values:[o,":"]},error:l})}return t.finish()}function kYt(r,e,t){try{if(!t||typeof t.text!="string")return;let n=t.text;if(n.length>1e3)return;let a=xa.parseTaskLine(n);if(a.isTaskLine&&a.parsedData){if(!a.parsedData.title||a.parsedData.title.trim().length===0||typeof t.to!="number"||t.to<0)return;let i=new qie(e,t.number-1),s=lh.Decoration.widget({widget:i,side:1});r.add(t.to,t.to,s)}}catch(n){zs.debug("Error processing line",{category:"validation",operation:"processing-line",details:{values:[t.number,":"]},error:n})}}function bYt(r){return N8e(r)}var I8e,lh,qw,zs,qie,F8e=y(()=>{I8e=require("@codemirror/state"),lh=require("@codemirror/view"),qw=require("obsidian");Bie();K();tP();zs=N({tag:"Editor/InstantConvertButtons"}),qie=class r extends lh.WidgetType{constructor(e,t){super(),this.plugin=e,this.lineNumber=t}toDOM(e){let t=activeWindow.createSpan();t.className="tasknotes-plugin";let n=t.createEl("button",{cls:"instant-convert-button",attr:{"aria-label":"Convert to tasknote"}});(0,qw.setTooltip)(n,"Convert to TaskNote",{placement:"top"});let a=n.createSpan({cls:"instant-convert-button__icon"});(0,qw.setIcon)(a,"file-plus");let i=o=>{o.preventDefault(),o.stopPropagation(),(async()=>{try{if(!this.validateButtonClick())return;let l=this.plugin.app.workspace.getActiveViewOfType(qw.MarkdownView);if(!l){zs.warn("No active markdown view available for task conversion",{category:"configuration",operation:"no-active-markdown-view-task-conversion"});return}let c=l.editor;if(!this.validateEditorState(c))return;this.plugin.instantTaskConvertService&&c&&await this.plugin.instantTaskConvertService.instantConvertTask(c,this.lineNumber)}catch(l){zs.error("Error in convert button click handler:",{category:"validation",operation:"convert-button-click-handler",error:l})}})()},s=typeof window!="undefined"&&"PointerEvent"in window?"pointerdown":"mousedown";return n.addEventListener(s,i),t}eq(e){return e instanceof r&&e.plugin===this.plugin&&e.lineNumber===this.lineNumber}get estimatedHeight(){return-1}ignoreEvent(){return!1}validateButtonClick(){return this.plugin?this.plugin.settings.enableInstantTaskConvert?typeof this.lineNumber!="number"||this.lineNumber<0?(zs.warn("Invalid line number for task conversion:",{category:"configuration",operation:"invalid-line-number-task-conversion",details:{value:this.lineNumber}}),!1):!0:(zs.warn("Instant task conversion is disabled",{category:"configuration",operation:"instant-task-conversion-disabled"}),!1):(zs.warn("Plugin not available for task conversion",{category:"configuration",operation:"plugin-not-task-conversion"}),!1)}validateEditorState(e){if(!e)return zs.warn("Editor not available for task conversion",{category:"configuration",operation:"editor-not-task-conversion"}),!1;let t=e.lineCount();if(this.lineNumber>=t)return zs.warn(`Line number ${this.lineNumber} is out of bounds (total lines: ${t})`,{category:"validation",operation:"line-number"}),!1;try{let n=e.getLine(this.lineNumber);return n?xa.parseTaskLine(n).isTaskLine?!0:(zs.warn(`Line ${this.lineNumber} is no longer a task`,{category:"validation",operation:"line"}),!1):(zs.warn(`Cannot read line ${this.lineNumber}`,{category:"validation",operation:"read-line"}),!1)}catch(n){return zs.warn("Error validating line content:",{category:"validation",operation:"validating-line-content",error:n}),!1}}}});var j8e={};at(j8e,{initializeAfterLayoutReady:()=>Xie,initializeCalendarProviders:()=>Jie,initializeCoreServices:()=>Zie,initializeHTTPAPI:()=>L8e,initializeServicesLazily:()=>z8e,registerBasesIntegration:()=>TA,registerRibbonIcons:()=>Qie,registerTaskNotesIcon:()=>Kie});function Yie(r){var e;if(!(!r||typeof r!="object"))return(e=r.cm)!=null?e:null}function Kie(){(0,Yw.addIcon)("tasknotes-simple",`<g>
|
||
<defs>
|
||
<mask id="tasknotes-mask">
|
||
<rect width="100" height="100" fill="white"/>
|
||
<path fill="black" d="m 5.9,52.4 -0.09,4.51 c 4.71,0.09 7.61,1.48 9.95,3.57 2.35,2.09 4.11,5.01 5.90,8.14 1.80,3.13 3.62,6.46 6.45,9.12 2.23,2.09 5.14,3.67 8.83,4.21 0.46,-1.51 1.05,-2.95 1.77,-4.33 -3.44,-0.21 -5.62,-1.39 -7.53,-3.17 -2.14,-2.01 -3.82,-4.92 -5.63,-8.08 -1.81,-3.16 -3.77,-6.56 -6.82,-9.27 -3.05,-2.71 -7.07,-4.59 -11.83,-4.70 z"/>
|
||
<path fill="black" d="M 73.6,18.3 69.9,20.9 c 4.06,5.75 4.40,11.33 2.77,16.78 -1.63,5.45 -5.41,10.67 -9.65,14.78 -8.49,8.20 -16.59,14.11 -21.83,21.18 -5.24,7.07 -7.22,15.59 -3.13,27.21 l 4.25,-1.50 c -3.74,-10.62 -2.11,-16.80 2.50,-23.01 4.61,-6.21 12.63,-12.19 21.34,-20.64 4.65,-4.50 8.89,-10.23 10.84,-16.72 1.95,-6.49 1.42,-13.86 -3.40,-20.68 z"/>
|
||
</mask>
|
||
</defs>
|
||
<path fill="currentColor" mask="url(#tasknotes-mask)" d="m 98.5,0.6 c -0.38,0 -0.83,0.09 -1.33,0.23 -2,0.59 -4.66,2.18 -5.78,3.22 -1.25,1.16 -4.16,4.93 -6.08,7.19 -2.67,3.12 -5.65,6.58 -9.32,11.13 2.58,5.61 2.61,11.38 1.05,16.60 -1.95,6.49 -6.19,12.22 -10.84,16.72 -8.71,8.43 -16.73,14.41 -21.34,20.64 -4.47,6.03 -6.13,12.03 -2.81,22.08 0.19,-0.23 0.37,-0.49 0.54,-0.80 10.57,-19.70 17.89,-27.30 41.9,-47.08 v 0 c 2.40,-1.97 3.71,-4.33 4.52,-7.14 0.81,-2.82 1.11,-6.10 1.52,-9.92 0.81,-7.64 2.02,-17.43 8.43,-29.95 0.37,-0.73 0.57,-1.30 0.62,-1.72 0.05,-0.43 -0.04,-0.71 -0.22,-0.90 -0.19,-0.18 -0.48,-0.27 -0.86,-0.26 z M 72.7,26.3 c -0.75,0.92 -1.51,1.84 -2.27,2.78 -9.09,11.05 -19.45,22.93 -28.54,29.97 -1.48,1.14 -2.98,1.54 -4.46,1.38 -1.49,-0.16 -2.97,-0.89 -4.43,-1.96 -2.91,-2.16 -5.74,-5.74 -8.35,-9.19 -2.62,-3.45 -5.04,-6.77 -7.12,-8.39 -1.04,-0.81 -1.99,-1.19 -2.83,-0.97 -0.84,0.22 -1.60,1.05 -2.26,2.70 -1.03,2.61 -1.60,6.22 -3.42,10.05 4.08,0.62 7.27,2.27 9.73,4.45 3.05,2.71 5.01,6.11 6.82,9.27 1.81,3.16 3.49,6.07 5.63,8.08 1.90,1.78 4.08,2.96 7.53,3.17 0.71,-1.37 1.55,-2.69 2.49,-3.95 5.24,-7.07 13.34,-12.98 21.83,-21.18 4.24,-4.11 8.02,-9.33 9.65,-14.78 1.12,-3.73 1.31,-7.53 0.01,-11.42 z M 10.3,49.1 c -0.09,0.29 -0.18,0.56 -0.28,0.85 0.10,-0.29 0.19,-0.56 0.28,-0.85 z m -4.02,7.84 c -0.01,0.01 -0.02,0.02 -0.03,0.03 0.01,-0.01 0.02,-0.02 0.03,-0.03 0,0 0,0 0,0 z m 0.12,0 c -1.08,1.40 -2.40,2.79 -4.05,4.12 -1.20,1.0 -1.85,1.86 -2.03,2.71 -0.18,0.85 0.10,1.67 0.76,2.53 1.32,1.71 4.16,3.54 7.81,5.91 7.28,4.73 17.75,11.63 25.63,24.16 0.64,1.02 1.74,2.04 2.95,2.65 -0.91,-5.36 -0.91,-8.78 -0.54,-11.88 -3.33,-0.55 -6.07,-2.12 -8.39,-4.72 -2.83,-3.17 -4.69,-6.59 -6.54,-9.85 -1.85,-3.26 -3.69,-6.37 -6.08,-8.47 -2.06,-1.81 -4.61,-3.0 -8.49,-3.17 z"/>
|
||
</g>`)}async function Zie(r){var a;r.api=new VL(r),r.fieldMapper=new bh(r.settings.fieldMapping,(a=r.settings.userFields)!=null?a:[],r.settings.customStatuses,r.settings.customPriorities),r.statusManager=new eb(r.settings.customStatuses,r.settings.defaultTaskStatus),r.priorityManager=new HN(r.settings.customPriorities),r.requestDeduplicator=new Jk,r.predictivePrefetcher=new BN(r.requestDeduplicator),r.domReconciler=new Xk,r.uiStateManager=new UN,r.cacheManager=new VN(r.app,r.settings,r.fieldMapper),r.emitter=r.cacheManager,r.registerEvent(r.emitter.on(iq,i=>{Xe(i.message,i.timeout)})),r.dependencyCache=new WN(r.app,r.settings,r.fieldMapper,r.statusManager,i=>r.cacheManager.isTaskFile(i)),r.cacheManager.setDependencyCache(r.dependencyCache),r.taskService=new eF(r),r.filterService=new sF(r.cacheManager,r.statusManager,r.priorityManager,r),r.taskStatsService=new _b(r.cacheManager,r.statusManager),r.viewStateManager=new oF(r.app,r),r.projectSubtasksService=new lF(r),r.expandedProjectsService=new cF(r),r.autoArchiveService=new dF(r);let{TaskSelectionService:e}=await Promise.resolve().then(()=>(GBe(),YBe));r.taskSelectionService=new e(r),r.dragDropManager=new iO(r),r.statusBarService=new cO(r),r.notificationService=new dO(r),r.viewPerformanceService=new uO(r);let{BasesFilterConverter:t}=await Promise.resolve().then(()=>(ZBe(),KBe));r.basesFilterConverter=new t(r);let{MdbaseSpecService:n}=await Promise.resolve().then(()=>(XBe(),JBe));r.mdbaseSpecService=new n(r),r.icsSubscriptionService=new $O(r),r.icsNoteService=new UO(r),r.taskService.setAutoArchiveService(r.autoArchiveService)}function Qie(r){r.addRibbonIcon("calendar-days",r.i18n.translate("commands.openCalendarView"),async()=>{await r.activateCalendarView()}),r.addRibbonIcon("calendar",r.i18n.translate("commands.openAdvancedCalendarView"),async()=>{await r.openBasesFileForCommand("open-advanced-calendar-view")}),r.addRibbonIcon("check-square",r.i18n.translate("commands.openTasksView"),async()=>{await r.openBasesFileForCommand("open-tasks-view")}),r.addRibbonIcon("list",r.i18n.translate("commands.openAgendaView"),async()=>{await r.openBasesFileForCommand("open-agenda-view")}),r.addRibbonIcon("columns-3",r.i18n.translate("commands.openKanbanView"),async()=>{await r.openBasesFileForCommand("open-kanban-view")}),r.addRibbonIcon("timer",r.i18n.translate("commands.openPomodoroView"),async()=>{await r.activatePomodoroView()}),r.addRibbonIcon("bar-chart-3",r.i18n.translate("commands.openPomodoroStats"),async()=>{await r.activatePomodoroStatsView()}),r.addRibbonIcon("tasknotes-simple",r.i18n.translate("commands.createNewTask"),()=>{r.openTaskCreationModal()})}function Jie(r){r.oauthService=new qO(r,r.oauthSecretStore),r.googleCalendarService=new ZO(r,r.oauthService),r.microsoftCalendarService=new EL(r,r.oauthService),r.calendarProviderRegistry=new GO,r.calendarProviderRegistry.register(r.googleCalendarService),r.calendarProviderRegistry.register(r.microsoftCalendarService)}async function TA(r){var e;if(!((e=r.settings)!=null&&e.enableBases)){bA(r);return}if(r.basesRegistered&&Gie(r)){bA(r);return}r.basesRegistered=!1;try{let{registerBasesTaskList:t}=await Promise.resolve().then(()=>(DJ(),Qqe)),n=await t(r);if(r.basesRegistered=n,n){bA(r);return}}catch(t){Ww.debug("[TaskNotes][Bases] Registration failed:",{category:"internal",operation:"registration",error:t})}wYt(r)}function O8e(r){var e,t,n;return(n=(t=(e=r.app.internalPlugins)==null?void 0:e.getEnabledPluginById)==null?void 0:t.call(e,"bases"))!=null?n:null}function Gie(r){var t;let e=(t=O8e(r))==null?void 0:t.registrations;return!!e&&TYt.every(n=>!!e[n])}function bA(r){r.basesRegistrationRetryIntervalId!==null&&(window.clearInterval(r.basesRegistrationRetryIntervalId),r.basesRegistrationRetryIntervalId=null)}function wYt(r){var e;!((e=r.settings)!=null&&e.enableBases)||r.basesRegistrationRetryIntervalId!==null||Gie(r)||(r.basesRegistrationRetryIntervalId=window.setInterval(()=>{if(r.basesRegistered&&Gie(r)){bA(r);return}O8e(r)&&TA(r)},5e3),r.register(()=>bA(r)))}async function L8e(r){if(!(Yw.Platform.isMobile||!r.settings.enableAPI))try{let{HTTPAPIService:e}=await Promise.resolve().then(()=>(v8e(),y8e));r.apiService=new e(r,r.taskService,r.filterService,r.cacheManager),r.taskService.setWebhookNotifier(r.apiService),r.pomodoroService.setWebhookNotifier(r.apiService),await r.apiService.start(),Xe(`TaskNotes API started on port ${r.apiService.getPort()}`)}catch(e){Ww.error("Failed to initialize HTTP API:",{category:"provider",operation:"initialize-http-api",error:e}),Xe("Failed to start tasknotes API server. Check console for details.")}}async function Xie(r){if(!r.initializationComplete){r.initializationComplete=!0;try{r.settings.autoCreateDefaultBasesFiles&&await r.ensureBasesViewFiles(),await r.ensureStarterNote(),r.injectCustomStyles(),SYt(r),xYt(r),r.cacheManager.initialize(),r.dependencyCache.initialize(),r.filterService.initialize(),r.statusBarService.initialize(),await r.notificationService.initialize(),await r.warmupProjectIndexes(),await r.autoArchiveService.start(),r.setupDateChangeDetection(),z8e(r),await TA(r),r.emitter.trigger(_d["layout.ready"],{timestamp:new Date().toISOString()})}catch(e){Ww.error("Error during post-layout initialization:",{category:"internal",operation:"post-layout-initialization",error:e})}}}function SYt(r){r.registerView(su,e=>new pO(e,r)),r.registerView(Pv,e=>new fO(e,r)),r.registerView(Mv,e=>new hO(e,r)),r.registerView(QD,e=>new gO(e,r,JAe,QAe))}function xYt(r){r.registerEditorExtension(n_e(r)),r.registerEditorExtension(x_e(r)),r.taskCardReadingModeCleanup=E_e(r),r.registerEditorExtension(v_e(r)),r.relationshipsReadingModeCleanup=k_e(r),r.registerMarkdownPostProcessor(M_e(r))}function z8e(r){window.setTimeout(()=>{(async()=>{try{r.pomodoroService||(r.pomodoroService=new zP(r),await r.pomodoroService.initialize()),r.autoExportService=new AL(r),r.autoExportService.start(),YL(r.settings)||(await r.icsSubscriptionService.initialize(),r.googleCalendarService.on("data-changed",()=>{r.notifyDataChanged(void 0,!1,!0)}),await r.googleCalendarService.initialize(),r.taskCalendarSyncService=new(await Promise.resolve().then(()=>(E8e(),C8e))).TaskCalendarSyncService(r,r.googleCalendarService),await r.taskCalendarSyncService.initializeExternalFileReconciliation(),r.taskCalendarSyncService.startRecoveryQueueProcessor(),r.registerEvent(r.emitter.on("file-updated",a=>{!r.taskCalendarSyncService||!(a!=null&&a.path)||r.taskCalendarSyncService.handleExternalTaskFileUpdated(a.path,a.updatedTask).catch(i=>{Ww.warn("Failed to reconcile externally updated task with Google Calendar:",{category:"provider",operation:"reconcile-external-task-file-update",error:i})})})),r.registerEvent(r.emitter.on("file-deleted",a=>{var d,u;if(!r.taskCalendarSyncService)return;let i=r.fieldMapper.toUserField("googleCalendarEventId"),s=r.fieldMapper.toUserField("googleCalendarExceptionEventId"),o=a.prevCache,l=(d=o==null?void 0:o.frontmatter)==null?void 0:d[i],c=(u=o==null?void 0:o.frontmatter)==null?void 0:u[s];(typeof l=="string"&&l.length>0||typeof c=="string"&&c.length>0)&&r.taskCalendarSyncService.deleteTaskFromCalendarByPath(a.path,typeof l=="string"?l:void 0,typeof c=="string"?c:void 0).catch(p=>{Ww.warn("Failed to delete task from Google Calendar on file deletion:",{category:"provider",operation:"delete-task-google-calendar-on-file-deletion",error:p})})})),r.microsoftCalendarService.on("data-changed",()=>{r.notifyDataChanged(void 0,!1,!0)}),await r.microsoftCalendarService.initialize()),r.taskFileLifecycleReconciliationService=new IL(r),await r.taskFileLifecycleReconciliationService.initialize(),await L8e(r);let{TaskLinkDetectionService:e}=await Promise.resolve().then(()=>(bO(),E6));r.taskLinkDetectionService=new e(r);let{InstantTaskConvertService:t}=await Promise.resolve().then(()=>(_8e(),A8e));r.instantTaskConvertService=new t(r,r.statusManager,r.priorityManager);let{createInstantConvertButtons:n}=await Promise.resolve().then(()=>(F8e(),R8e));r.registerEditorExtension(n(r)),r.taskUpdateListenerForEditor=r.emitter.on(ot,a=>{r.app.workspace.iterateRootLeaves(i=>{var s;if(i.view&&i.view.getViewType()==="markdown"){let o=i.view.editor,l=Yie(o);if(l){let c=(a==null?void 0:a.path)||((s=a==null?void 0:a.updatedTask)==null?void 0:s.path);sf(l,c)}}})}),r.registerEvent(r.app.workspace.on("active-leaf-change",a=>{window.setTimeout(()=>{if(a&&a.view&&a.view.getViewType()==="markdown"){let i=a.view.editor,s=Yie(i);s&&sf(s)}},50)})),r.registerEvent(r.app.workspace.on("layout-change",()=>{window.setTimeout(()=>{let a=r.app.workspace.getActiveViewOfType(Yw.MarkdownView);if(a){let i=a.editor,s=Yie(i);s&&sf(s)}},100)})),r.setupStatusBarEventListeners(),r.setupTimeTrackingEventListeners(),await r.checkForVersionUpdate(),r.checkForNewReleaseOnStartup()}catch(e){Ww.error("Error during lazy service initialization:",{category:"internal",operation:"lazy-service-initialization",error:e})}})()},10)}var Yw,Ww,TYt,H$=y(()=>{Yw=require("obsidian");Yr();nW();yxe();vxe();aW();kxe();Cxe();iW();tDe();RDe();E4();FDe();LDe();zDe();jDe();Z0e();nMe();iMe();sMe();lMe();pMe();hMe();w6();XAe();TO();b_e();D_e();A_e();Q_e();J_e();eIe();sIe();W$e();KO();mZ();X$e();rBe();VBe();PZ();K();VP();Uu();fs();Ww=N({tag:"Bootstrap/PluginBootstrap"}),TYt=["tasknotesTaskList","tasknotesKanban","tasknotesCalendar","tasknotesMiniCalendar"]});var aZe={};at(aZe,{TaskActionPaletteModal:()=>Dse});function q5t(){return(0,Ur.moment)()}var Ur,nZe,Dse,iZe=y(()=>{Ur=require("obsidian");Me();mN();K();qv();rN();nZe=N({tag:"Modals/TaskActionPaletteModal"});Dse=class extends Ur.FuzzySuggestModal{constructor(e,t,n,a){super(e),this.task=t,this.plugin=n,this.targetDate=a,this.actions=this.buildActionsList(),this.setPlaceholder("Type to search for an action..."),this.setInstructions([{command:"\u2191\u2193",purpose:"to navigate"},{command:"\u21B5",purpose:"to execute"},{command:"esc",purpose:"to dismiss"}]),this.titleEl.setText(`Quick actions: ${t.title}`),this.titleEl.setAttribute("id","task-action-palette-title"),this.containerEl.setAttribute("aria-labelledby","task-action-palette-title"),this.containerEl.setAttribute("role","dialog"),this.containerEl.setAttribute("aria-modal","true"),this.containerEl.addClass("task-action-palette-modal")}buildActionsList(){let e=[];(this.task.recurrence?this.plugin.statusManager.getNonCompletionStatuses():this.plugin.statusManager.getAllStatuses()).forEach(a=>{let i=this.task.status===a.value;e.push({id:`status-${a.value}`,title:`Change status to "${a.label}"`,description:`Set task status to ${a.label}`,icon:i?"check":"circle",category:"status",keywords:["status",a.value,a.label,"change","set"],isApplicable:()=>!i,execute:async s=>{await this.plugin.updateTaskProperty(s,"status",a.value),new Ur.Notice(`Status changed to ${a.label}`)}})}),this.plugin.priorityManager.getAllPriorities().forEach(a=>{let i=this.task.priority===a.value;e.push({id:`priority-${a.value}`,title:`Set priority to "${a.label}"`,description:`Change task priority to ${a.label}`,icon:i?"check":"flag",category:"priority",keywords:["priority",a.value,a.label,"change","set"],isApplicable:()=>!i,execute:async s=>{await this.plugin.updateTaskProperty(s,"priority",a.value),new Ur.Notice(`Priority changed to ${a.label}`)}})}),e.push({id:"set-due-date",title:"Set due date",description:"Set or change the task due date",icon:"calendar",category:"dates",keywords:["due","date","deadline","set","change"],isApplicable:()=>!0,execute:async a=>{this.plugin.openDueDateModal(a)}},{id:"set-scheduled-date",title:"Set scheduled date",description:"Set or change when the task is scheduled",icon:"calendar-clock",category:"dates",keywords:["scheduled","date","schedule","set","change"],isApplicable:()=>!0,execute:async a=>{this.plugin.openScheduledDateModal(a)}},{id:"clear-due-date",title:"Clear due date",description:"Remove the due date from this task",icon:"calendar-x",category:"dates",keywords:["clear","remove","due","date"],isApplicable:a=>!!a.due,execute:async a=>{await this.plugin.updateTaskProperty(a,"due",void 0),new Ur.Notice("Due date cleared")}},{id:"clear-scheduled-date",title:"Clear scheduled date",description:"Remove the scheduled date from this task",icon:"calendar-x",category:"dates",keywords:["clear","remove","scheduled","date"],isApplicable:a=>!!a.scheduled,execute:async a=>{await this.plugin.updateTaskProperty(a,"scheduled",void 0),new Ur.Notice("Scheduled date cleared")}}),this.addQuickDatePresetActions(e,"scheduled"),this.addQuickDatePresetActions(e,"due");let n=this.plugin.getActiveTimeSession(this.task);return e.push({id:"toggle-time-tracking",title:n?"Stop time tracking":"Start time tracking",description:n?"Stop tracking time for this task":"Start tracking time for this task",icon:n?"pause":"play",category:"tracking",keywords:["time","tracking","timer",n?"stop":"start"],isApplicable:()=>!0,execute:async a=>{this.plugin.getActiveTimeSession(a)?(await this.plugin.stopTimeTracking(a),new Ur.Notice("Time tracking stopped")):(await this.plugin.startTimeTracking(a),new Ur.Notice("Time tracking started"))}}),this.task.timeEntries&&this.task.timeEntries.length>0&&e.push({id:"edit-time-entries",title:"Edit time entries",description:"View, edit, or add time entries for this task",icon:"clock",category:"tracking",keywords:["time","entries","edit","tracking","history"],isApplicable:()=>!0,execute:async a=>{this.plugin.openTimeEntryEditor(a),this.close()}}),e.push({id:"add-project",title:"Add project",description:"Select a project note and add it to this task",icon:"folder-plus",category:"organization",keywords:["project","organization","add","link"],isApplicable:()=>!0,execute:async a=>{this.openProjectSelector(a)}},{id:"toggle-archive",title:this.task.archived?"Unarchive task":"Archive task",description:this.task.archived?"Move task back to active tasks":"Archive this task",icon:this.task.archived?"archive-restore":"archive",category:"organization",keywords:["archive",this.task.archived?"unarchive":"archive","organize"],isApplicable:()=>!0,execute:async a=>{await this.plugin.toggleTaskArchive(a),new Ur.Notice(a.archived?"Task unarchived":"Task archived")}}),this.task.recurrence&&(e.push({id:"complete-recurring-instance",title:"Complete this occurrence",description:"Mark this specific instance of the recurring task as complete",icon:"check-circle",category:"dates",keywords:["complete","done","finish","recurring","instance","occurrence"],isApplicable:(a,i,s)=>!i.statusManager.isCompletedStatus(a.status),execute:async(a,i,s)=>{await i.toggleRecurringTaskComplete(a,s),new Ur.Notice("Recurring task instance completed")}}),e.push({id:"open-or-create-occurrence-note",title:"Open or create occurrence note",description:"Open the note for this occurrence, creating it if needed",icon:"file-plus",category:"dates",keywords:["open","create","materialize","note","recurring","instance","occurrence"],isApplicable:()=>!0,execute:async(a,i,s)=>{await Hk({plugin:i,parentTask:a,targetDate:this.getOccurrenceNoteTargetDate(a,s),openInNewLeaf:!0})}})),this.task.recurrence_parent&&this.task.occurrence_date&&e.push({id:"open-recurring-parent",title:"Open recurring parent",description:"Open the recurring task that generated this occurrence",icon:"refresh-ccw",category:"other",keywords:["open","parent","recurring","materialized","occurrence"],isApplicable:()=>!0,execute:async(a,i)=>{await pN({plugin:i,occurrenceTask:a,openInNewLeaf:!0})}}),e.push({id:"edit-task",title:"Edit task details",description:"Open the full task editor",icon:"edit",category:"other",keywords:["edit","modify","details","properties"],isApplicable:()=>!0,execute:async a=>{await this.plugin.openTaskEditModal(a)}},{id:"open-task-file",title:"Open task file",description:"Open the task file in the editor",icon:"file-text",category:"other",keywords:["open","file","editor","edit"],isApplicable:()=>!0,execute:async a=>{let i=this.plugin.app.vault.getAbstractFileByPath(a.path);i instanceof Ur.TFile&&await this.plugin.app.workspace.getLeaf(!0).openFile(i)}},{id:"copy-task-title",title:"Copy task title",description:"Copy the task title to clipboard",icon:"copy",category:"other",keywords:["copy","clipboard","title"],isApplicable:()=>!0,execute:async a=>{try{await navigator.clipboard.writeText(a.title),new Ur.Notice("Task title copied to clipboard")}catch(i){new Ur.Notice("Failed to copy to clipboard")}}},{id:"copy-task-link",title:"Copy task link",description:"Copy a wikilink to this task",icon:"link",category:"other",keywords:["copy","link","wikilink","reference"],isApplicable:()=>!0,execute:async a=>{try{let i=this.plugin.app.vault.getAbstractFileByPath(a.path);if(i instanceof Ur.TFile){let s=this.plugin.app.metadataCache.fileToLinktext(i,"");await navigator.clipboard.writeText(`[[${s}]]`),new Ur.Notice("Task link copied to clipboard")}}catch(i){new Ur.Notice("Failed to copy to clipboard")}}},{id:"delete-task",title:"Delete task",description:"Permanently delete this task",icon:"trash",category:"other",keywords:["delete","remove","trash"],isApplicable:()=>!0,execute:async a=>{this.close();let{showDeleteConfirmationModal:i}=await Promise.resolve().then(()=>(mi(),qk));await i(a,this.plugin)}}),e}getOccurrenceNoteTargetDate(e,t){try{let n=de(e.scheduled||"");return n?kt(n):t}catch(n){return t}}getQuickDatePresets(){let e=q5t(),t=e.clone().day(6);return(t.isBefore(e)||t.isSame(e,"day"))&&t.add(1,"week"),[{id:"today",label:"today",value:e.format("YYYY-MM-DD"),icon:"calendar-check",keywords:["today"]},{id:"tomorrow",label:"tomorrow",value:e.clone().add(1,"day").format("YYYY-MM-DD"),icon:"calendar-plus",keywords:["tomorrow"]},{id:"this-weekend",label:"this weekend",value:t.format("YYYY-MM-DD"),icon:"calendar-days",keywords:["weekend","saturday"]},{id:"next-week",label:"next week",value:e.clone().day(1).add(1,"week").format("YYYY-MM-DD"),icon:"calendar-plus",keywords:["next","week","monday"]},{id:"next-month",label:"next month",value:e.clone().add(1,"month").startOf("month").format("YYYY-MM-DD"),icon:"calendar-range",keywords:["next","month"]}]}addQuickDatePresetActions(e,t){let n=t==="scheduled"?"scheduled date":"due date",a=t==="scheduled"?"Scheduled date":"Due date",i=t==="scheduled"?"Schedule":"Set due";this.getQuickDatePresets().forEach(s=>{e.push({id:`set-${t}-${s.id}`,title:`${i} for ${s.label}`,description:`Set the task ${n} to ${s.label}`,icon:s.icon,category:"dates",keywords:[t,"date","set","change",...s.keywords],isApplicable:o=>(o[t]?de(o[t]):void 0)!==s.value,execute:async o=>{await this.plugin.updateTaskProperty(o,t,s.value),new Ur.Notice(`${a} set`)}})})}openProjectSelector(e){let t=new Ao(this.plugin.app,this.plugin,n=>{this.addSelectedProjectToTask(e,n)});this.close(),t.open()}async addSelectedProjectToTask(e,t){try{if(!(t instanceof Ur.TFile)){new Ur.Notice(this.plugin.i18n.translate("contextMenus.task.organization.notices.projectSelectFailed"));return}await Nk(this.plugin,e,t)}catch(n){nZe.error("Failed to add task to project:",{category:"persistence",operation:"add-task-project",details:{taskPath:e.path},error:n instanceof Error?n.message:String(n)}),new Ur.Notice(this.plugin.i18n.translate("contextMenus.task.organization.notices.addToProjectFailed"))}}getItems(){return this.actions.filter(e=>e.isApplicable(this.task,this.plugin,this.targetDate)).sort((e,t)=>{var s,o;let n={status:0,priority:1,dates:2,tracking:3,organization:4,other:5},a=(s=n[e.category])!=null?s:999,i=(o=n[t.category])!=null?o:999;return a!==i?a-i:e.title.localeCompare(t.title)})}getItemText(e){return[e.title,e.description,e.category,...e.keywords].join(" ")}renderSuggestion(e,t){let n=e.item,a=t.createDiv({cls:"task-action-palette__suggestion"}),i=a.createDiv({cls:"task-action-palette__icon"});(0,Ur.setIcon)(i,n.icon);let s=a.createDiv({cls:"task-action-palette__content"});s.createDiv({cls:"task-action-palette__title",text:n.title}),s.createDiv({cls:"task-action-palette__description",text:n.description}),a.createDiv({cls:"task-action-palette__badge"}).createSpan({cls:`task-action-palette__category task-action-palette__category--${n.category}`,text:n.category})}onChooseItem(e,t){this.executeAction(e,t)}async executeAction(e,t){try{let n=await this.plugin.cacheManager.getTaskInfo(this.task.path);if(!n){new Ur.Notice("Task not found");return}await e.execute(n,this.plugin,this.targetDate)}catch(n){let a=n instanceof Error?n.message:String(n);nZe.error("Error executing action:",{category:"persistence",operation:"executing-action",details:{actionId:e.id,taskPath:this.task.path},error:a}),new Ur.Notice(`Failed to execute action: ${a}`)}}}});var G5t={};at(G5t,{default:()=>Y5t});module.exports=NA(G5t);var Se=require("obsidian");Wr();var hh=st(iu());mS();Dv();function yS(r){return r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function HB(r){return`note["${yS(r)}"]`}function epe(r){return`file(if(${r}.isType("object"), ${r}.uid, ${r}))`}function Xue(r){return`${epe(r)}.asLink()`}function BB(r){return`file(${r}.replace(/^\\[[^\\]]+\\]\\((.*)\\)$/, "$1").replace(/%20/g, " ")).asLink()`}function WQe(r){if(r.taskIdentificationMethod==="tag")return`file.hasTag("${r.taskTag||"task"}")`;{let e=r.taskPropertyName,t=r.taskPropertyValue;if(!e)return`file.hasTag("${r.taskTag||"task"}")`;if(t){if($B(e))return`file.hasTag("${yS(t)}")`;let n=HB(e),a=t.toLowerCase();return a==="true"||a==="false"?`list(${n}).contains(${a})`:`list(${n}).contains("${yS(t)}")`}else{let n=HB(e);return`${n} && ${n} != "" && ${n} != null`}}}function tpe(r){return Sc(r.excludedFolders).map(e=>`file.inFolder("${yS(e)}") != true`)}function YQe(r){return[WQe(r),...tpe(r)]}function hS(r){return`filters:
|
||
and:
|
||
${(Array.isArray(r)?r:[r]).map(n=>` - ${n}`).join(`
|
||
`)}`}function as(r){return r.replace(/^(note\.|file\.|task\.|formula\.)/,"")}function gS(r){return`date(${r}).format("YYYY-MM-DD")`}function rpe(){return'today().format("YYYY-MM-DD")'}function npe(){return'(today() + "7 days").format("YYYY-MM-DD")'}function er(r,e){var a;let t=e.fieldMapper;if(r.startsWith("user:")){let i=r.substring(5),s=(a=e.settings.userFields)==null?void 0:a.find(o=>o.id===i);return s?s.key:r}switch(r){case"tags":return"file.tags";case"dateCreated":return"file.ctime";case"dateModified":return"file.mtime";case"title":return"file.name";case"blocked":case"blocking":return t.toUserField("blockedBy");case"complete_instances":return t.toUserField("completeInstances");case"totalTrackedTime":return t.toUserField("timeEntries");case"checklistProgress":return"file.tasks"}let n=t.getMapping();return r in n?t.toUserField(r):r}function GQe(r){let n=(r.settings.defaultVisibleProperties||["status","priority","due","scheduled","projects","contexts","tags"]).map(o=>er(o,r)).filter(o=>!!o),a=["file.name",er("recurrence",r),er("complete_instances",r),er("checklistProgress",r)].filter(o=>!!o),i=[],s=new Set;for(let o of n)o&&!s.has(o)&&(i.push(o),s.add(o));for(let o of a)o&&!s.has(o)&&(i.push(o),s.add(o));return i}function UB(r){return r.map(e=>` - ${e}`).join(`
|
||
`)}function KQe(r,e,t){if(!e)return r;let n=r.filter(i=>i!==e),a=n.indexOf(t);return a===-1?n.push(e):n.splice(a+1,0,e),n}function ZQe(r){let e=r.settings,t=as(er("priority",r)),n=[...e.customPriorities].sort((i,s)=>i.weight-s.weight);if(n.length===0)return"999";let a="999";for(let i=n.length-1;i>=0;i--){let s=n[i];a=`if(${t}=="${s.value}",${i},${a})`}return a}function QQe(r){let e=as(er("priority",r)),t=r.settings.customPriorities;if(t.length===0)return'"No priority"';let n='"No priority"';for(let a=t.length-1;a>=0;a--){let i=t[a];n=`if(${e}=="${i.value}","${i.label}",${n})`}return n}function JQe(r){let e=as(er("due",r)),t=as(er("status",r)),n=as(er("timeEstimate",r)),a=as(er("timeEntries",r)),i=as(er("projects",r)),s=as(er("contexts",r)),l=r.settings.customStatuses.filter(D=>D.isCompleted).map(D=>D.value).map(D=>`${t} != "${D}"`).join(" && "),c=as(er("scheduled",r)),d=as(er("recurrence",r)),u=`${e}.isEmpty()`,p=`${c}.isEmpty()`,m=`(${u} == false)`,f=`(${p} == false)`,h="if(formula.daysUntilNext, formula.daysUntilNext, 0)",g=rpe(),v=npe(),b='(today() + "1 day").format("YYYY-MM-DD")',k='(today() - "1 day").format("YYYY-MM-DD")',w=gS(e),S=gS(c),C=gS("value.startTime");return{priorityWeight:ZQe(r),daysUntilDue:`if(${m}, ((number(date(${e})) - number(today())) / 86400000).floor(), null)`,dueIn:`if(${u}, "", if(formula.daysUntilDue == 0, "Today", if(formula.daysUntilDue == 1, "1 day", if(formula.daysUntilDue > 1, formula.daysUntilDue + " days", if(formula.daysUntilDue == -1, "1 day overdue", formula.daysUntilDue * -1 + " days overdue")))))`,daysUntilScheduled:`if(${f}, ((number(date(${c})) - number(today())) / 86400000).floor(), null)`,daysSinceCreated:"((number(now()) - number(file.ctime)) / 86400000).floor()",daysSinceModified:"((number(now()) - number(file.mtime)) / 86400000).floor()",isOverdue:`${m} && date(${e}) < today() && ${l}`,isDueToday:`${m} && ${w} == ${g}`,isDueThisWeek:`${m} && ${w} >= ${g} && ${w} <= ${v}`,isScheduledToday:`${f} && ${S} == ${g}`,isRecurring:`${d} && !${d}.isEmpty()`,hasTimeEstimate:`${n} && ${n} > 0`,timeRemaining:`if(${n} && ${n} > 0, ${n} - if(${a}, list(${a}).filter(value.endTime).map((number(date(value.endTime)) - number(date(value.startTime))) / 60000).reduce(acc + value, 0), 0), null)`,efficiencyRatio:`if(${n} && ${n} > 0 && ${a}, (list(${a}).filter(value.endTime).map((number(date(value.endTime)) - number(date(value.startTime))) / 60000).reduce(acc + value, 0) / ${n} * 100).round(), null)`,timeTrackedThisWeek:`if(${a}, list(${a}).filter(value.endTime && date(value.startTime) >= today() - "7d").map((number(date(value.endTime)) - number(date(value.startTime))) / 60000).reduce(acc + value, 0).round(), 0)`,timeTrackedToday:`if(${a}, list(${a}).filter(value.endTime && ${C} == ${g}).map((number(date(value.endTime)) - number(date(value.startTime))) / 60000).reduce(acc + value, 0).round(), 0)`,dueMonth:`if(${m}, date(${e}).format("YYYY-MM"), "No due date")`,dueWeek:`if(${m}, date(${e}).format("YYYY-[W]WW"), "No due date")`,scheduledMonth:`if(${f}, date(${c}).format("YYYY-MM"), "Not scheduled")`,scheduledWeek:`if(${f}, date(${c}).format("YYYY-[W]WW"), "Not scheduled")`,dueDateCategory:`if(${u}, "No due date", if(date(${e}) < today(), "Overdue", if(${w} == ${g}, "Today", if(${w} == ${b}, "Tomorrow", if(${w} <= ${v}, "This week", "Later")))))`,timeEstimateCategory:`if(!${n} || ${n} == 0 || ${n} == null, "No estimate", if(${n} < 30, "Quick (<30m)", if(${n} <= 120, "Medium (30m-2h)", "Long (>2h)")))`,ageCategory:'if(((number(now()) - number(file.ctime)) / 86400000) < 1, "Today", if(((number(now()) - number(file.ctime)) / 86400000) < 7, "This week", if(((number(now()) - number(file.ctime)) / 86400000) < 30, "This month", "Older")))',createdMonth:'file.ctime.format("YYYY-MM")',modifiedMonth:'file.mtime.format("YYYY-MM")',priorityCategory:QQe(r),projectCount:`if(!${i} || list(${i}).length == 0, "No projects", if(list(${i}).length == 1, "Single project", "Multiple projects"))`,contextCount:`if(!${s} || list(${s}).length == 0, "No contexts", if(list(${s}).length == 1, "Single context", "Multiple contexts"))`,trackingStatus:`if(!${n} || ${n} == 0 || ${n} == null, "No estimate", if(!${a} || list(${a}).length == 0, "Not started", if(formula.efficiencyRatio < 100, "Under estimate", "Over estimate")))`,nextDate:`if(${m} && ${f}, if(date(${e}) < date(${c}), ${e}, ${c}), if(${m}, ${e}, ${c}))`,daysUntilNext:`if(${m} && ${f}, min(formula.daysUntilDue, formula.daysUntilScheduled), if(${m}, formula.daysUntilDue, formula.daysUntilScheduled))`,hasDate:`${m} || ${f}`,isToday:`(${m} && ${w} == ${g}) || (${f} && ${S} == ${g})`,isThisWeek:`(${m} && ${w} >= ${g} && ${w} <= ${v}) || (${f} && ${S} >= ${g} && ${S} <= ${v})`,nextDateCategory:`if(${u} && ${p}, "No date", if((${m} && date(${e}) < today()) || (${f} && date(${c}) < today()), "Overdue/Past", if((${m} && ${w} == ${g}) || (${f} && ${S} == ${g}), "Today", if((${m} && ${w} == ${b}) || (${f} && ${S} == ${b}), "Tomorrow", if((${m} && ${w} <= ${v}) || (${f} && ${S} <= ${v}), "This week", "Later")))))`,nextDateMonth:`if(${m} && ${f}, if(date(${e}) < date(${c}), date(${e}).format("YYYY-MM"), date(${c}).format("YYYY-MM")), if(${m}, date(${e}).format("YYYY-MM"), if(${f}, date(${c}).format("YYYY-MM"), "No date")))`,nextDateWeek:`if(${m} && ${f}, if(date(${e}) < date(${c}), date(${e}).format("YYYY-[W]WW"), date(${c}).format("YYYY-[W]WW")), if(${m}, date(${e}).format("YYYY-[W]WW"), if(${f}, date(${c}).format("YYYY-[W]WW"), "No date")))`,urgencyScore:`if(${u} && ${p}, formula.priorityWeight, formula.priorityWeight + max(0, 10 - ${h}) + (1 - ((number(date(formula.nextDate)) - number(date(date(formula.nextDate).format("YYYY-MM-DD")))) / 86400000)))`,timeTrackedFormatted:`if(${a}, if(list(${a}).filter(value.endTime).map((number(date(value.endTime)) - number(date(value.startTime))) / 60000).reduce(acc + value, 0) >= 60, (list(${a}).filter(value.endTime).map((number(date(value.endTime)) - number(date(value.startTime))) / 60000).reduce(acc + value, 0) / 60).floor() + "h " + (list(${a}).filter(value.endTime).map((number(date(value.endTime)) - number(date(value.startTime))) / 60000).reduce(acc + value, 0) % 60).round() + "m", list(${a}).filter(value.endTime).map((number(date(value.endTime)) - number(date(value.startTime))) / 60000).reduce(acc + value, 0).round() + "m"), "0m")`,dueDateDisplay:`if(${u}, "", if(${w} == ${g}, "Today", if(${w} == ${b}, "Tomorrow", if(${w} == ${k}, "Yesterday", if(date(${e}) < today(), formula.daysUntilDue * -1 + "d ago", if(${w} <= ${v}, date(${e}).format("ddd"), date(${e}).format("MMM D")))))))`}}function XQe(r){let e=JQe(r);return`formulas:
|
||
${Object.entries(e).map(([n,a])=>` ${n}: '${a}'`).join(`
|
||
`)}`}function eJe(r,e,t){if(r.includes(t)||!e||!r.includes(e))return r;let n=[],a=!1;for(let i of r)n.push(i),!a&&e&&i===e&&(n.push(t),a=!0);return n}function tJe(r){let e=er("pomodoros",r),t=HB(e),n=`list(${t}).filter(value.type == "work")`,a=`list(${t}).filter(value.type == "work" && value.completed == true)`,i=`${a}.map(if(value.plannedDuration && value.plannedDuration > 0, value.plannedDuration, if(value.startTime && value.endTime, ((number(date(value.endTime)) - number(date(value.startTime))) / 60000).round(), 0)))`;return`# Pomodoro statistics
|
||
# Generated with your TaskNotes settings
|
||
# Requires Pomodoro data storage to be set to Daily notes.
|
||
|
||
filters:
|
||
and:
|
||
- file.hasProperty("${yS(e)}")
|
||
- list(${t}).filter(value.startTime).isEmpty() == false
|
||
|
||
formulas:
|
||
pomodoroDate: 'if(${t}, list(${t}).filter(value.startTime).map(date(value.startTime).format("YYYY-MM-DD")).unique().join(", "), file.basename)'
|
||
pomodoroMonth: 'if(${t}, list(${t}).filter(value.startTime).map(date(value.startTime).format("YYYY-MM")).unique().join(", "), "")'
|
||
completedPomos: 'if(${t}, ${a}.length, 0)'
|
||
attemptedPomos: 'if(${t}, ${n}.length, 0)'
|
||
interruptedPomos: 'if(${t}, list(${t}).filter(value.type == "work" && value.completed == false).length, 0)'
|
||
focusMinutes: 'if(${t}, ${i}.reduce(acc + value, 0).round(), 0)'
|
||
focusTime: 'if(formula.focusMinutes >= 60, (formula.focusMinutes / 60).floor() + "h " + (formula.focusMinutes % 60).round() + "m", formula.focusMinutes + "m")'
|
||
completionRate: 'if(formula.attemptedPomos > 0, (formula.completedPomos / formula.attemptedPomos * 100).round() + "%", "0%")'
|
||
shortBreaks: 'if(${t}, list(${t}).filter(value.type == "short-break").length, 0)'
|
||
longBreaks: 'if(${t}, list(${t}).filter(value.type == "long-break").length, 0)'
|
||
|
||
properties:
|
||
formula.pomodoroDate:
|
||
displayName: Date
|
||
formula.pomodoroMonth:
|
||
displayName: Month
|
||
formula.completedPomos:
|
||
displayName: Completed
|
||
formula.attemptedPomos:
|
||
displayName: Attempted
|
||
formula.interruptedPomos:
|
||
displayName: Interrupted
|
||
formula.focusMinutes:
|
||
displayName: Focus minutes
|
||
formula.focusTime:
|
||
displayName: Focus time
|
||
formula.completionRate:
|
||
displayName: Completion
|
||
formula.shortBreaks:
|
||
displayName: Short breaks
|
||
formula.longBreaks:
|
||
displayName: Long breaks
|
||
|
||
views:
|
||
- type: table
|
||
name: "Daily"
|
||
order:
|
||
- formula.pomodoroDate
|
||
- formula.completedPomos
|
||
- formula.focusTime
|
||
- formula.attemptedPomos
|
||
- formula.completionRate
|
||
- formula.interruptedPomos
|
||
- formula.shortBreaks
|
||
- formula.longBreaks
|
||
- file.name
|
||
sort:
|
||
- column: formula.pomodoroDate
|
||
direction: DESC
|
||
- type: table
|
||
name: "Monthly"
|
||
groupBy:
|
||
property: formula.pomodoroMonth
|
||
direction: DESC
|
||
order:
|
||
- formula.pomodoroDate
|
||
- formula.completedPomos
|
||
- formula.focusMinutes
|
||
- formula.focusTime
|
||
- formula.attemptedPomos
|
||
- formula.completionRate
|
||
- formula.interruptedPomos
|
||
- formula.shortBreaks
|
||
- formula.longBreaks
|
||
- file.name
|
||
summaries:
|
||
formula.completedPomos: Sum
|
||
formula.focusMinutes: Sum
|
||
formula.attemptedPomos: Sum
|
||
formula.interruptedPomos: Sum
|
||
formula.shortBreaks: Sum
|
||
formula.longBreaks: Sum
|
||
sort:
|
||
- column: formula.pomodoroDate
|
||
direction: DESC
|
||
`}function ape(r,e){let t=e.settings,n=YQe(t),a=tpe(t),i=GQe(e),s=UB(i),o=XQe(e);switch(r){case"open-calendar-view":{let l=er("due",e),c=er("scheduled",e);return`# Mini Calendar
|
||
# Generated with your TaskNotes settings
|
||
|
||
${hS(n)}
|
||
|
||
${o}
|
||
|
||
views:
|
||
- type: tasknotesMiniCalendar
|
||
name: "Due"
|
||
order:
|
||
${s}
|
||
sort:
|
||
- property: ${l}
|
||
direction: ASC
|
||
dateProperty: ${l}
|
||
- type: tasknotesMiniCalendar
|
||
name: "Scheduled"
|
||
order: []
|
||
dateProperty: ${c}
|
||
- type: tasknotesMiniCalendar
|
||
name: "Created"
|
||
dateProperty: file.ctime
|
||
- type: tasknotesMiniCalendar
|
||
name: "Modified"
|
||
dateProperty: file.mtime
|
||
`}case"open-kanban-view":{let l=er("status",e),c=er("sortOrder",e);return`# Kanban Board
|
||
|
||
${hS(n)}
|
||
|
||
${o}
|
||
|
||
views:
|
||
- type: tasknotesKanban
|
||
name: "Kanban Board"
|
||
order:
|
||
${s}
|
||
sort:
|
||
- column: ${c}
|
||
direction: DESC
|
||
groupBy:
|
||
property: ${l}
|
||
direction: ASC
|
||
config:
|
||
columnWidth: 280
|
||
hideEmptyColumns: false
|
||
`}case"open-tasks-view":{let l=er("status",e),c=er("due",e),d=er("scheduled",e),u=er("recurrence",e),p=er("completeInstances",e),m=er("blockedBy",e),f=er("sortOrder",e),h=`${c}.isEmpty() == false`,g=`${d}.isEmpty() == false`,v=rpe(),b=npe(),k=gS(c),w=gS(d),S=t.customStatuses.filter(P=>P.isCompleted).map(P=>P.value),C=S.map(P=>`${l} != "${P}"`).join(`
|
||
- `),E=`${p}.map(date(value).format("YYYY-MM-DD")).contains(${v}) != true`,D=S.map(P=>`${epe("value")}.properties.${as(l)} != "${P}"`).join(" && ");return`# All Tasks
|
||
|
||
${hS(n)}
|
||
|
||
${o}
|
||
|
||
views:
|
||
- type: tasknotesTaskList
|
||
name: "Manual Order"
|
||
order:
|
||
${s}
|
||
sort:
|
||
- column: ${f}
|
||
direction: DESC
|
||
groupBy:
|
||
property: ${l}
|
||
direction: ASC
|
||
- type: tasknotesTaskList
|
||
name: "All Tasks"
|
||
order:
|
||
${s}
|
||
sort:
|
||
- column: due
|
||
direction: ASC
|
||
- type: tasknotesTaskList
|
||
name: "Not Blocked"
|
||
filters:
|
||
and:
|
||
# Incomplete tasks
|
||
- or:
|
||
# Non-recurring task that's not in any completed status
|
||
- and:
|
||
- ${u}.isEmpty()
|
||
- ${C}
|
||
# Recurring task where today is not in complete_instances
|
||
- and:
|
||
- ${u}.isEmpty() == false
|
||
- ${E}
|
||
# Not blocked by any incomplete tasks
|
||
- or:
|
||
# No blocking dependencies at all
|
||
- ${m}.isEmpty()
|
||
# All blocking tasks are completed (filter returns only incomplete, then check if empty)
|
||
- 'list(${m}).filter(${D}).isEmpty()'
|
||
order:
|
||
${s}
|
||
sort:
|
||
- column: formula.urgencyScore
|
||
direction: DESC
|
||
- type: tasknotesTaskList
|
||
name: "Today"
|
||
filters:
|
||
and:
|
||
# Incomplete tasks (handles both recurring and non-recurring)
|
||
- or:
|
||
# Non-recurring task that's not in any completed status
|
||
- and:
|
||
- ${u}.isEmpty()
|
||
- ${C}
|
||
# Recurring task where today is not in complete_instances
|
||
- and:
|
||
- ${u}.isEmpty() == false
|
||
- ${E}
|
||
# Due or scheduled today
|
||
- or:
|
||
- and:
|
||
- ${h}
|
||
- ${k} == ${v}
|
||
- and:
|
||
- ${g}
|
||
- ${w} == ${v}
|
||
order:
|
||
${s}
|
||
sort:
|
||
- column: formula.urgencyScore
|
||
direction: DESC
|
||
- type: tasknotesTaskList
|
||
name: "Overdue"
|
||
filters:
|
||
and:
|
||
# Incomplete tasks
|
||
- or:
|
||
# Non-recurring task that's not in any completed status
|
||
- and:
|
||
- ${u}.isEmpty()
|
||
- ${C}
|
||
# Recurring task where today is not in complete_instances
|
||
- and:
|
||
- ${u}.isEmpty() == false
|
||
- ${E}
|
||
# Due or scheduled in the past
|
||
- or:
|
||
- and:
|
||
- ${h}
|
||
- date(${c}) < today()
|
||
- and:
|
||
- ${g}
|
||
- date(${d}) < today()
|
||
order:
|
||
${s}
|
||
sort:
|
||
- column: formula.urgencyScore
|
||
direction: DESC
|
||
- type: tasknotesTaskList
|
||
name: "This Week"
|
||
filters:
|
||
and:
|
||
# Incomplete tasks
|
||
- or:
|
||
# Non-recurring task that's not in any completed status
|
||
- and:
|
||
- ${u}.isEmpty()
|
||
- ${C}
|
||
# Recurring task where today is not in complete_instances
|
||
- and:
|
||
- ${u}.isEmpty() == false
|
||
- ${E}
|
||
# Due or scheduled this week
|
||
- or:
|
||
- and:
|
||
- ${h}
|
||
- ${k} >= ${v}
|
||
- ${k} <= ${b}
|
||
- and:
|
||
- ${g}
|
||
- ${w} >= ${v}
|
||
- ${w} <= ${b}
|
||
order:
|
||
${s}
|
||
sort:
|
||
- column: formula.urgencyScore
|
||
direction: DESC
|
||
- type: tasknotesTaskList
|
||
name: "Unscheduled"
|
||
filters:
|
||
and:
|
||
# Incomplete tasks
|
||
- or:
|
||
# Non-recurring task that's not in any completed status
|
||
- and:
|
||
- ${u}.isEmpty()
|
||
- ${C}
|
||
# Recurring task where today is not in complete_instances
|
||
- and:
|
||
- ${u}.isEmpty() == false
|
||
- ${E}
|
||
# No due date and no scheduled date
|
||
- date(${c}).isEmpty()
|
||
- date(${d}).isEmpty()
|
||
order:
|
||
${s}
|
||
sort:
|
||
- column: ${l}
|
||
direction: ASC
|
||
`}case"open-advanced-calendar-view":return`# Calendar
|
||
|
||
${hS(n)}
|
||
|
||
${o}
|
||
|
||
views:
|
||
- type: tasknotesCalendar
|
||
name: "Calendar"
|
||
order:
|
||
${s}
|
||
options:
|
||
showScheduled: true
|
||
showDue: true
|
||
showRecurring: true
|
||
showTimeEntries: true
|
||
showTimeblocks: true
|
||
showPropertyBasedEvents: true
|
||
createDailyNotesFromDateLinks: true
|
||
calendarView: "timeGridWeek"
|
||
customDayCount: 3
|
||
firstDay: ${e.settings.calendarViewSettings.firstDay}
|
||
`;case"open-agenda-view":{let l=er("due",e),c=eJe(i,l,"formula.dueIn"),d=UB(c),u=c.includes("formula.dueIn")?`
|
||
properties:
|
||
formula.dueIn:
|
||
displayName: Due in
|
||
`:"";return`# Agenda
|
||
|
||
${hS(n)}
|
||
|
||
${o}
|
||
${u}
|
||
|
||
views:
|
||
- type: tasknotesCalendar
|
||
name: "Agenda"
|
||
order:
|
||
${d}
|
||
options:
|
||
showPropertyBasedEvents: false
|
||
showOverdueOnToday: true
|
||
createDailyNotesFromDateLinks: true
|
||
calendarView: "listWeek"
|
||
startDateProperty: file.ctime
|
||
listDayCount: 7
|
||
titleProperty: file.basename
|
||
`}case"pomodoro-stats-base":return tJe(e);case"relationships":{let l=as(er("projects",e)),c=as(er("blockedBy",e)),d=as(er("recurrenceParent",e)),u=er("occurrenceDate",e),p=er("scheduled",e),m=er("status",e),f=er("sortOrder",e),h=UB(KQe(i,u,p)),g=n.map(k=>` - ${k}`).join(`
|
||
`),v=a.map(k=>` - ${k}`).join(`
|
||
`),b=v?`${v}
|
||
`:"";return`# Relationships
|
||
# This view shows all relationships for the current file
|
||
# Dynamically shows/hides tabs based on available data
|
||
|
||
${o}
|
||
|
||
views:
|
||
- type: tasknotesKanban
|
||
name: "Subtasks"
|
||
filters:
|
||
and:
|
||
${g}
|
||
- file.hasLink(this.file) && list(note.${l}).map(${BB("value")}).contains(this.file.asLink())
|
||
order:
|
||
${s}
|
||
sort:
|
||
- column: ${f}
|
||
direction: DESC
|
||
groupBy:
|
||
property: ${m}
|
||
direction: ASC
|
||
- type: tasknotesTaskList
|
||
name: "Occurrences"
|
||
filters:
|
||
and:
|
||
${g}
|
||
- file.hasLink(this.file) && note.${d} && ${BB(`note.${d}`)} == this.file.asLink()
|
||
order:
|
||
${h}
|
||
sort:
|
||
- column: ${u}
|
||
direction: ASC
|
||
- type: tasknotesTaskList
|
||
name: "Projects"
|
||
filters:
|
||
and:
|
||
${b} - list(this.${l}).map(${BB("value")}).contains(file.asLink())
|
||
order:
|
||
${s}
|
||
- type: tasknotesTaskList
|
||
name: "Blocked By"
|
||
filters:
|
||
and:
|
||
${g}
|
||
- list(this.note.${c}).map(${Xue("value")}).contains(file.asLink())
|
||
order:
|
||
${s}
|
||
sort:
|
||
- column: ${f}
|
||
direction: DESC
|
||
- type: tasknotesKanban
|
||
name: "Blocking"
|
||
filters:
|
||
and:
|
||
${g}
|
||
- list(note.${c}).map(${Xue("value")}).contains(this.file.asLink())
|
||
order:
|
||
${s}
|
||
sort:
|
||
- column: ${f}
|
||
direction: DESC
|
||
groupBy:
|
||
property: ${m}
|
||
direction: ASC
|
||
`}default:return""}}Yr();FN();var ha=require("obsidian");Hq();Me();Ct();kr();ro();var DE=require("obsidian");Me();Ct();mN();function GSe(r,e){if(!e.task.recurrence)return;let t=r.createDiv("completions-calendar-container"),n=t.createDiv("detail-label");n.textContent=e.translate("modals.taskEdit.sections.completions");let a=t.createDiv("completions-calendar-content");vot(a,e)}function vot(r,e){let t=r.createDiv("recurring-calendar"),a=Er();if(e.task.complete_instances&&e.task.complete_instances.length>0){let i=e.task.complete_instances.filter(s=>s&&typeof s=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(s.trim())).map(s=>Ph(s).getTime()).filter(s=>!isNaN(s));i.length>0&&(a=new Date(Math.max(...i)))}Zk(t,a,e)}function Zk(r,e,t){r.empty();let n=r.createDiv("recurring-calendar__header"),a=n.createEl("button",{cls:"recurring-calendar__nav",attr:{type:"button","aria-label":"Previous month"}});(0,DE.setIcon)(a,"chevron-left");let i=n.createSpan("recurring-calendar__month"),s=t.plugin.i18n.getCurrentLocale()||"en",o=new Intl.DateTimeFormat(s,{month:"short",year:"numeric"});i.textContent=o.format(e);let l=n.createEl("button",{cls:"recurring-calendar__nav",attr:{type:"button","aria-label":"Next month"}});(0,DE.setIcon)(l,"chevron-right");let c=r.createDiv("recurring-calendar__grid"),d=T_(e),u=w_(e),p=t.plugin.settings.calendarViewSettings.firstDay||0,m=b_(d,p),f=B2(u,p),h=$2(m,f),g=T_(e);g.setUTCMonth(g.getUTCMonth()-1);let v=w_(e);v.setUTCMonth(v.getUTCMonth()+1);let b=Bv(t.task,g,v),k=new Set(b.map(C=>ce(C))),w=Kq(t),S=Zq(t);h.forEach(C=>{let E=ce(C),D=C.getUTCMonth()===e.getUTCMonth(),P=k.has(E),O=new Date(C),z=c.createDiv("recurring-calendar__day");z.textContent=String(C.getUTCDate()),z.addClass("recurring-calendar__day--clickable"),z.setAttribute("data-occurrence-date",E),D||z.addClass("recurring-calendar__day--faded"),P&&(z.addClass("recurring-calendar__day--recurring"),z.addClass("recurring-calendar__day--contextable"),z.setAttribute("aria-label",`Occurrence ${E}`)),w.has(E)&&z.addClass("recurring-calendar__day--completed"),S.has(E)&&z.addClass("recurring-calendar__day--skipped"),z.addEventListener("click",()=>{Gq(t,E,"complete"),Zk(r,e,t)}),P&&z.addEventListener("contextmenu",R=>{kot(R,r,e,O,t)})}),a.addEventListener("click",()=>{let C=new Date(e);C.setUTCMonth(C.getUTCMonth()-1),Zk(r,C,t)}),l.addEventListener("click",()=>{let C=new Date(e);C.setUTCMonth(C.getUTCMonth()+1),Zk(r,C,t)})}function kot(r,e,t,n,a){r.preventDefault(),r.stopPropagation();let i=ce(n),o=Kq(a).has(i),l=new DE.Menu;l.addItem(u=>{u.setTitle("Open or create occurrence note"),u.setIcon("file-plus"),u.onClick(async()=>{await Hk({plugin:a.plugin,parentTask:a.task,targetDate:n,openInNewLeaf:!0})})}),l.addSeparator(),l.addItem(u=>{u.setTitle(o?"Mark incomplete for this date":"Mark complete for this date"),u.setIcon(o?"x":"check"),u.onClick(()=>{Gq(a,i,"complete"),Zk(e,t,a)})});let d=Zq(a).has(i);l.addItem(u=>{u.setTitle(d?"Unskip instance":"Skip instance"),u.setIcon(d?"undo":"x-circle"),u.onClick(()=>{Gq(a,i,"skip"),Zk(e,t,a)})}),l.showAtMouseEvent(r)}function Kq(r){let e=new Set(r.task.complete_instances||[]);for(let t of r.completedInstancesChanges)e.has(t)?e.delete(t):e.add(t);return e}function Zq(r){let e=new Set(r.task.skipped_instances||[]);for(let t of r.skippedInstancesChanges)e.has(t)?e.delete(t):e.add(t);return e}function Gq(r,e,t){let n=Kq(r),a=Zq(r);t==="complete"?n.has(e)?(n.delete(e),a.delete(e)):(n.add(e),a.delete(e)):a.has(e)?a.delete(e):(a.add(e),n.delete(e)),YSe(r.completedInstancesChanges,r.task.complete_instances||[],n),YSe(r.skippedInstancesChanges,r.task.skipped_instances||[],a)}function YSe(r,e,t){r.splice(0,r.length);let n=new Set(e),a=new Set([...n,...t]);for(let i of a)n.has(i)!==t.has(i)&&r.push(i)}zq();$q();var JSe=require("obsidian");Me();Ct();qn();am();fm();vN();function bot(r,e){if(r.length!==e.length)return!1;let t=i=>[...i].sort((s,o)=>s.uid.localeCompare(o.uid)),n=t(r),a=t(e);for(let i=0;i<n.length;i++){let s=n[i],o=a[i];if(s.uid!==o.uid||s.reltype!==o.reltype||(s.gap||"")!==(o.gap||""))return!1}return!0}function QSe(r){let e={};r.title.trim()!==r.task.title&&(e.title=r.title.trim()),r.dueDate!==(r.task.due||"")&&(e.due=r.dueDate||void 0),r.scheduledDate!==(r.task.scheduled||"")&&(e.scheduled=r.scheduledDate||void 0),r.priority!==r.task.priority&&(e.priority=r.priority),r.status!==r.task.status&&(e.status=r.status);let t=r.contexts.split(",").map(C=>C.trim()).filter(C=>C.length>0),n=Qq(r.task.contexts);JSON.stringify(t.sort())!==JSON.stringify(n.sort())&&(e.contexts=t.length>0?t:void 0);let a=qs(r.projects),i=Qq(r.task.projects),s=KSe(a).sort(),o=KSe(i).sort();JSON.stringify(s)!==JSON.stringify(o)&&(e.projects=a.length>0?a:[]);let l=za(r.tags)===za(r.initialTags),c=r.tags.split(",").map(C=>C.trim()).filter(C=>C.length>0),d=Qq(r.task.tags);r.taskIdentificationMethod==="tag"&&r.taskTag&&(c=Cbe(c,d,r.taskTag,r.hideIdentifyingTagsMode)),!l&&JSON.stringify(c.sort())!==JSON.stringify(d.sort())&&(e.tags=c.length>0?c:void 0);let u=r.timeEstimate>0?r.timeEstimate:void 0;u!==r.task.timeEstimate&&(e.timeEstimate=u);let p=typeof r.task.recurrence=="string"?r.task.recurrence:"";r.recurrenceRule!==p&&(e.recurrence=r.recurrenceRule||void 0);let m=r.task.recurrence_anchor||"scheduled";r.recurrenceAnchor!==m&&(e.recurrence_anchor=r.recurrenceAnchor);let f=r.task.reminders||[],h=r.reminders||[];JSON.stringify(h)!==JSON.stringify(f)&&(e.reminders=h.length>0?h:void 0);let g=r.blockedByItems.map(C=>({...C.dependency}));bot(g,r.initialBlockedBy)||(e.blockedBy=g.length>0?g:void 0);let{blockingUpdates:v,unresolvedBlockingEntries:b}=Tot(r),k=r.normalizeDetails(r.details),w=r.normalizeDetails(r.originalDetails);k!==w&&(e.details=k.trimEnd()),wot(r,e);let S=xwe(r.userFields,r.frontmatter,r.userFieldConfigs);return Object.keys(S).length>0&&(e.customFrontmatter=S),Object.keys(e).length>0&&(e.dateModified=Ge()),{changes:e,blockingUpdates:v,unresolvedBlockingEntries:b}}function KSe(r){return r.map(e=>{if(!e||typeof e!="string")return"";let t=e.trim();return t?Et(t).trim():""}).filter(e=>e.length>0)}function Qq(r){return Array.isArray(r)?r.filter(e=>typeof e=="string"):typeof r=="string"?r?[r]:[]:[]}function Tot(r){let e=new Map,t=[];r.blockingItems.forEach(c=>{c.path?e.set(c.path,{...c.dependency}):t.push(c.dependency.uid)});let n=Array.from(e.keys()),a=new Set(r.initialBlockingPaths),i=new Set(n),s=n.filter(c=>!a.has(c)),o=r.initialBlockingPaths.filter(c=>!i.has(c)),l={};for(let c of s){let d=e.get(c);d&&(l[c]={...d})}return{blockingUpdates:{added:s,removed:o,raw:l},unresolvedBlockingEntries:t}}function wot(r,e){if(r.completedInstancesChanges.length===0&&r.skippedInstancesChanges.length===0)return;let t=new Set(r.task.complete_instances||[]),n=new Set(r.task.skipped_instances||[]),a=new Set(t),i=new Set(n);for(let d of r.completedInstancesChanges)a.has(d)?a.delete(d):a.add(d);for(let d of r.skippedInstancesChanges)i.has(d)?i.delete(d):(i.add(d),a.delete(d));for(let d of a)i.delete(d);for(let d of i)a.delete(d);let s=null;for(let d of r.completedInstancesChanges)!t.has(d)&&a.has(d)&&(!s||d>s)&&(s=d);if(ZSe(t,a)||(e.complete_instances=Array.from(a)),ZSe(n,i)||(e.skipped_instances=Array.from(i)),!r.task.recurrence||typeof r.task.recurrence!="string")return;if((r.task.recurrence_anchor||"scheduled")==="completion"&&s){let d=bfe(r.task.recurrence,s);d&&(e.recurrence=d)}let l={...r.task,...e,recurrence:e.recurrence||r.task.recurrence},c=gfe(l,r.maintainDueDateOffsetInRecurring);c.scheduled&&(e.scheduled=c.scheduled),c.due&&(e.due=c.due)}function ZSe(r,e){if(r.size!==e.size)return!1;for(let t of r)if(!e.has(t))return!1;return!0}K();var Sot=N({tag:"TaskEditModal/Changes"});function XSe(r){let e=Jq({app:r.app,taskPath:r.task.path,logger:r.logger});return QSe({task:r.task,title:r.title,dueDate:r.dueDate,scheduledDate:r.scheduledDate,priority:r.priority,status:r.status,contexts:r.contexts,projects:r.projects,tags:r.tags,initialTags:r.initialTags,timeEstimate:r.timeEstimate,recurrenceRule:r.recurrenceRule,recurrenceAnchor:r.recurrenceAnchor,reminders:r.reminders,blockedByItems:r.blockedByItems,initialBlockedBy:r.initialBlockedBy,blockingItems:r.blockingItems,initialBlockingPaths:r.initialBlockingPaths,details:r.details,originalDetails:r.originalDetails,completedInstancesChanges:r.completedInstancesChanges,skippedInstancesChanges:r.skippedInstancesChanges,userFields:r.userFields,frontmatter:e,userFieldConfigs:r.settings.userFields||[],taskIdentificationMethod:r.settings.taskIdentificationMethod||"",taskTag:r.settings.taskTag||"",hideIdentifyingTagsMode:r.settings.hideIdentifyingTagsMode,maintainDueDateOffsetInRecurring:r.settings.maintainDueDateOffsetInRecurring===!0,normalizeDetails:r.normalizeDetails})}function Jq(r){var e,t;try{let n=r.app.vault.getAbstractFileByPath(r.taskPath);if(n instanceof JSe.TFile)return((e=r.app.metadataCache.getFileCache(n))==null?void 0:e.frontmatter)||{}}catch(n){((t=r.logger)!=null?t:Sot).warn("Error reading user field frontmatter",{category:"stale-data",operation:"task-edit-frontmatter-read",details:{path:r.taskPath},error:n})}return{}}Ct();fm();function exe(r){let e=Jq({app:r.app,taskPath:r.task.path,logger:r.logger});return xot({task:r.task,details:r.details,frontmatter:e,settings:r.settings,normalizeDetails:r.normalizeDetails})}function xot(r){let e=Xq(r.task.tags),t=hV({taskIdentificationMethod:r.settings.taskIdentificationMethod||"",taskTag:r.settings.taskTag||"",hideIdentifyingTagsInCards:r.settings.hideIdentifyingTagsInCards,hideIdentifyingTagsMode:r.settings.hideIdentifyingTagsMode})?Lu(e,r.settings.taskTag||"",r.settings.hideIdentifyingTagsMode):e,n=t.length>0?za(t.join(", ")):"",a=r.normalizeDetails(r.details),i=Xq(r.task.projects),s=Xq(r.task.contexts);return{title:r.task.title,dueDate:r.task.due||"",scheduledDate:r.task.scheduled||"",priority:r.task.priority,status:r.task.status,contexts:s.join(", "),projectValues:i,hasValidProjects:i.some(o=>typeof o=="string"&&o.trim()!==""),tags:n,initialTags:n,timeEstimate:r.task.timeEstimate||0,recurrenceRule:typeof r.task.recurrence=="string"?r.task.recurrence:"",recurrenceAnchor:r.task.recurrence_anchor||"scheduled",reminders:r.task.reminders?[...r.task.reminders]:[],details:a,originalDetails:a,userFields:Cot(r.frontmatter,r.settings.userFields||[])}}function Xq(r){return Array.isArray(r)?r.filter(e=>typeof e=="string"):typeof r=="string"?r?[r]:[]:[]}function Cot(r,e){let t={};for(let n of e){if(!(n!=null&&n.key))continue;let a=r[n.key];a!==void 0&&(t[n.key]=a)}return t}Wq();function txe(r,e){let t=e.map(a=>a.path).sort(),n=r.map(a=>a.path).sort();return t.length!==n.length||t.some((a,i)=>a!==n[i])}function Eot(r,e){let t=new Set(e.map(a=>a.path)),n=new Set(r.map(a=>a.path));return{toRemove:r.filter(a=>!t.has(a.path)),toAdd:e.filter(a=>!n.has(a.path))}}async function rxe(r){var n,a;let e=Eot(r.initialSubtaskFiles,r.selectedSubtaskFiles),t={nextInitialSubtaskFiles:[...r.selectedSubtaskFiles],added:0,removed:0,skippedMissing:0,skippedExisting:0,errors:0};for(let i of e.toRemove)try{await Mot(r,i)?t.removed+=1:t.skippedMissing+=1}catch(s){t.errors+=1,(n=r.onRemoveError)==null||n.call(r,s,i)}for(let i of e.toAdd)try{await Pot(r,i)?t.added+=1:t.skippedExisting+=1}catch(s){t.errors+=1,(a=r.onAddError)==null||a.call(r,s,i)}return t}function Dot(r,e,t){return(Array.isArray(r)?r:[]).filter(a=>typeof a=="string"&&a!==e&&a!==t)}async function Pot(r,e){let t=await r.getTaskInfo(e.path);if(!t)return!1;let n=r.buildProjectReference(r.parentTaskFile,e.path),a=`[[${r.parentTaskFile.basename}]]`,i=qq(t.projects,n,a);return i?(await r.updateTaskProjects(t,i),!0):!1}async function Mot(r,e){let t=await r.getTaskInfo(e.path);if(!t)return!1;let n=r.buildProjectReference(r.parentTaskFile,e.path),a=`[[${r.parentTaskFile.basename}]]`,i=Dot(t.projects,n,a);return await r.updateTaskProjects(t,i),!0}K();var Qc=N({tag:"Modals/TaskEditModal"}),PE=class extends Yk{constructor(t,n,a){super(t,n);this.editModalKeyboardHandler=null;this.completedInstancesChanges=[];this.skippedInstancesChanges=[];this.initialBlockedBy=[];this.initialBlockingPaths=[];this.pendingBlockingUpdates={added:[],removed:[],raw:{}};this.unresolvedBlockingEntries=[];this.initialTags="";this.isShowingConfirmation=!1;this.pendingClose=!1;this.isConvertingNoteToTask=!1;this.isExpanded=!0;this.task=a.task,this.options=a}getCurrentTaskPath(){return this.task.path}getModalTitle(){return this.t("modals.taskEdit.title")}isEditMode(){return!0}focusTitleInput(){this.isMobileLikeEnvironment()||super.focusTitleInput()}async initializeFormData(){var n,a,i;let t=exe({app:this.app,task:this.task,details:this.details,settings:{taskIdentificationMethod:this.plugin.settings.taskIdentificationMethod,taskTag:this.plugin.settings.taskTag,hideIdentifyingTagsInCards:this.plugin.settings.hideIdentifyingTagsInCards,hideIdentifyingTagsMode:this.plugin.settings.hideIdentifyingTagsMode,userFields:(n=this.plugin.settings)==null?void 0:n.userFields},normalizeDetails:s=>this.normalizeDetails(s)});this.title=t.title,this.dueDate=t.dueDate,this.scheduledDate=t.scheduledDate,this.priority=t.priority,this.status=t.status,this.contexts=t.contexts,t.hasValidProjects?this.initializeProjectsFromStrings(t.projectValues):(this.projects="",this.selectedProjectItems=[]),this.tags=t.tags,this.initialTags=t.initialTags,this.timeEstimate=t.timeEstimate,this.recurrenceRule=t.recurrenceRule,this.recurrenceAnchor=t.recurrenceAnchor,this.reminders=t.reminders,this.details=t.details,this.originalDetails=t.originalDetails,this.userFields=t.userFields,await this.initializeSubtasks(),this.blockedByItems=((a=this.task.blockedBy)!=null?a:[]).map(s=>this.createDependencyItemFromDependency(s,this.task.path)),this.initialBlockedBy=this.blockedByItems.map(s=>({...s.dependency})),this.blockingItems=((i=this.task.blocking)!=null?i:[]).map(s=>this.createDependencyItemFromPath(s)),this.initialBlockingPaths=this.blockingItems.filter(s=>s.path).map(s=>s.path),this.pendingBlockingUpdates={added:[],removed:[],raw:{}},this.unresolvedBlockingEntries=[]}showReminderContextMenu(t){SN(this.getActionMenuContext(),t,this.task)}onOpen(){this.openEditModal()}async openEditModal(){this.completedInstancesChanges=[],this.skippedInstancesChanges=[],await this.refreshTaskData(),this.containerEl.addClass("tasknotes-plugin","minimalist-task-modal","expanded"),this.plugin.settings.enableModalSplitLayout&&this.containerEl.addClass("split-layout-enabled"),this.modalEl.addClass("mod-tasknotes"),this.titleEl.setText(this.getModalTitle()),this.editModalKeyboardHandler=t=>{t.key==="Enter"&&(t.ctrlKey||t.metaKey)&&(t.preventDefault(),(async()=>(await this.handleSave(),this.forceClose()))())},this.containerEl.addEventListener("keydown",this.editModalKeyboardHandler),this.initializeFormData().then(()=>{this.createModalContent(),this.renderProjectsList(),this.updateIconStates(),this.focusTitleInput()})}async refreshTaskData(){try{let t=this.app.vault.getAbstractFileByPath(this.task.path);if(!t||!(t instanceof ha.TFile)){Qc.warn("Could not find file for task:",{category:"stale-data",operation:"find-file-task",details:{value:this.task.path}});return}let n=await this.app.vault.read(t);this.details=this.extractDetailsFromContent(n),this.originalDetails=this.details;let a=this.app.metadataCache.getFileCache(t);if(!((a==null?void 0:a.frontmatter)&&this.plugin.cacheManager.isTaskFile(a.frontmatter))){this.isConvertingNoteToTask=!0,this.task.details=this.details;return}this.isConvertingNoteToTask=!1;let s=await this.plugin.cacheManager.getTaskInfo(this.task.path);if(s)s.details=this.details,this.task=s,this.options.task=s;else{let o=mfe(this.app,n,this.task.path,t,this.plugin.fieldMapper,this.plugin.settings.storeTitleInFilename,this.plugin.settings.defaultTaskStatus);o&&(o.details=this.details,this.task=o,this.options.task=o)}}catch(t){Qc.warn("Could not refresh task data:",{category:"stale-data",operation:"refresh-task-data",error:t})}}createPrimaryInput(t){}createAdditionalSections(t){GSe(t,{task:this.task,plugin:this.plugin,completedInstancesChanges:this.completedInstancesChanges,skippedInstancesChanges:this.skippedInstancesChanges,translate:(n,a)=>this.t(n,a)}),this.createMetadataSection(t)}forceClose(){this.pendingClose=!0,super.close()}close(){if(this.pendingClose){this.pendingClose=!1,super.close();return}if(this.isShowingConfirmation)return;let t=this.getChanges();if(!(Object.keys(t).length>0)){super.close();return}this.showUnsavedChangesConfirmation()}async showUnsavedChangesConfirmation(){this.isShowingConfirmation=!0;try{let t=await this.showThreeButtonConfirmation();if(t==="save")try{await this.handleSave(),this.forceClose()}catch(n){Qc.error("Save failed during close confirmation:",{category:"persistence",operation:"save-close-confirmation",error:n})}else t==="discard"&&this.forceClose()}finally{this.isShowingConfirmation=!1}}showThreeButtonConfirmation(){return new Promise(t=>{new XC(this.app,{title:this.t("modals.task.unsavedChanges.title"),message:this.t("modals.task.unsavedChanges.message"),confirmText:this.t("modals.task.unsavedChanges.save"),cancelText:this.t("modals.task.unsavedChanges.discard"),thirdButtonText:this.t("modals.task.unsavedChanges.cancel"),defaultToConfirm:!0,onThirdButton:()=>t("cancel")}).show().then(a=>{t(a?"save":"discard")})})}onClose(){this.editModalKeyboardHandler&&(this.containerEl.removeEventListener("keydown",this.editModalKeyboardHandler),this.editModalKeyboardHandler=null),super.onClose()}createMetadataSection(t){var o,l;this.metadataContainer=t.createDiv("metadata-container");let n=this.metadataContainer.createDiv("detail-label");n.textContent=this.t("modals.taskEdit.sections.taskInfo");let a=this.metadataContainer.createDiv("metadata-content"),i=(l=(o=this.plugin.settings.calendarViewSettings)==null?void 0:o.timeFormat)!=null?l:"24",s=Li(this.task.timeEntries||[]);s>0&&this.createMetadataItem(a,this.t("modals.taskEdit.metadata.totalTrackedTime"),M_(s)),this.task.due&&this.createMetadataItem(a,this.t("modals.taskEdit.metadata.due"),Vn(this.task.due,{userTimeFormat:i})),this.task.scheduled&&this.createMetadataItem(a,this.t("modals.taskEdit.metadata.scheduled"),Vn(this.task.scheduled,{userTimeFormat:i})),this.task.dateCreated&&this.createMetadataItem(a,this.t("modals.taskEdit.metadata.created"),v_(this.task.dateCreated)),this.task.dateModified&&this.createMetadataItem(a,this.t("modals.taskEdit.metadata.modified"),v_(this.task.dateModified)),this.task.path&&this.createMetadataItem(a,this.t("modals.taskEdit.metadata.file"),this.task.path)}createMetadataItem(t,n,a){let i=t.createDiv("metadata-item");i.createSpan("metadata-key").textContent=`${n} `,i.createSpan("metadata-value").textContent=a}async handleSave(){if(!this.validateForm()){new ha.Notice(this.t("modals.taskEdit.notices.titleRequired"));return}try{let t=this.getChanges({includeConversionWrite:!0}),n=this.pendingBlockingUpdates.added.length>0||this.pendingBlockingUpdates.removed.length>0,a=Object.keys(t).length>0,i=this.hasSubtaskChanges();if(this.unresolvedBlockingEntries.length>0&&!n&&(new ha.Notice(this.t("modals.taskEdit.notices.blockingUnresolved",{entries:this.unresolvedBlockingEntries.join(", ")})),this.unresolvedBlockingEntries=[]),!a&&!n&&!i){new ha.Notice(this.t("modals.taskEdit.notices.noChanges")),this.close();return}let s=this.task;if(a&&(s=await this.plugin.taskService.updateTask(this.task,t),this.task=s,Object.prototype.hasOwnProperty.call(t,"details"))){let o=J(t.details);this.details=o,this.originalDetails=o}if(n){await this.plugin.taskService.updateBlockingRelationships(s,this.pendingBlockingUpdates.added,this.pendingBlockingUpdates.removed,this.pendingBlockingUpdates.raw);let o=await this.plugin.cacheManager.getTaskInfo(s.path);o&&(s=o,this.task=o)}i&&await this.applySubtaskChanges(s),this.unresolvedBlockingEntries.length>0&&new ha.Notice(this.t("modals.taskEdit.notices.blockingUnresolved",{entries:this.unresolvedBlockingEntries.join(", ")})),this.options.onTaskUpdated&&this.options.onTaskUpdated(s),a?new ha.Notice(this.t("modals.taskEdit.notices.updateSuccess",{title:s.title})):n&&new ha.Notice(this.t("modals.taskEdit.notices.dependenciesUpdateSuccess")),this.pendingBlockingUpdates={added:[],removed:[],raw:{}},this.unresolvedBlockingEntries=[]}catch(t){Qc.error("Failed to update task:",{category:"validation",operation:"update-task",error:t});let n=t instanceof Error&&t.message?t.message:String(t);new ha.Notice(this.t("modals.taskEdit.notices.updateFailure",{message:n}))}}getChanges(t={}){var a;let n=XSe({app:this.app,task:this.task,title:this.title,dueDate:this.dueDate,scheduledDate:this.scheduledDate,priority:this.priority,status:this.status,contexts:this.contexts,projects:this.projects,tags:this.tags,initialTags:this.initialTags,timeEstimate:this.timeEstimate,recurrenceRule:this.recurrenceRule,recurrenceAnchor:this.recurrenceAnchor,reminders:this.reminders,blockedByItems:this.blockedByItems,initialBlockedBy:this.initialBlockedBy,blockingItems:this.blockingItems,initialBlockingPaths:this.initialBlockingPaths,details:this.details,originalDetails:this.originalDetails,completedInstancesChanges:this.completedInstancesChanges,skippedInstancesChanges:this.skippedInstancesChanges,userFields:this.userFields,settings:{userFields:(a=this.plugin.settings)==null?void 0:a.userFields,taskIdentificationMethod:this.plugin.settings.taskIdentificationMethod,taskTag:this.plugin.settings.taskTag,hideIdentifyingTagsMode:this.plugin.settings.hideIdentifyingTagsMode,maintainDueDateOffsetInRecurring:this.plugin.settings.maintainDueDateOffsetInRecurring},normalizeDetails:i=>this.normalizeDetails(i)});return this.pendingBlockingUpdates=n.blockingUpdates,this.unresolvedBlockingEntries=n.unresolvedBlockingEntries,t.includeConversionWrite&&this.isConvertingNoteToTask&&Object.keys(n.changes).length===0&&(n.changes.dateModified=Ge()),n.changes}async openTaskNote(){try{let t=this.app.vault.getAbstractFileByPath(this.task.path);if(!(t instanceof ha.TFile)){new ha.Notice(this.t("modals.taskEdit.notices.fileMissing",{path:this.task.path}));return}await this.app.workspace.getLeaf(!0).openFile(t),this.close()}catch(t){Qc.error("Failed to open task note:",{category:"persistence",operation:"open-task-note",error:t}),new ha.Notice(this.t("modals.taskEdit.notices.openNoteFailure"))}}async archiveTask(){try{let t=await this.plugin.taskService.toggleArchive(this.task);this.task=t,this.options.onTaskUpdated&&this.options.onTaskUpdated(t);let n=t.archived?"modals.taskEdit.archiveAction.archived":"modals.taskEdit.archiveAction.unarchived",a=this.t(n);new ha.Notice(this.t("modals.taskEdit.notices.archiveSuccess",{action:a})),this.close()}catch(t){Qc.error("Failed to archive task:",{category:"persistence",operation:"archive-task",error:t}),new ha.Notice(this.t("modals.taskEdit.notices.archiveFailure"))}}async deleteTask(){if(await Ir(this.app,{title:this.t("modals.taskEdit.deleteConfirmation.title"),message:this.t("modals.taskEdit.deleteConfirmation.message",{title:this.task.title}),confirmText:this.t("modals.taskEdit.deleteConfirmation.confirm"),cancelText:this.t("common.cancel"),isDestructive:!0}))try{await this.plugin.taskService.deleteTask(this.task),new ha.Notice(this.t("modals.taskEdit.notices.deleteSuccess",{title:this.task.title})),this.forceClose()}catch(n){let a=n instanceof Error?n.message:String(n);Qc.error("Failed to delete task:",{category:"persistence",operation:"delete-task",error:n}),new ha.Notice(this.t("modals.taskEdit.notices.deleteFailure",{message:a}))}}createActionButtons(t){kN(this.getActionButtonContext(),{container:t,leadingButtons:[{className:"tn-task-modal__open-note-button",text:this.t("modals.task.buttons.openNote"),onClick:()=>{this.openTaskNote()}},{className:"mod-warning tn-task-modal__archive-button",text:this.task.archived?this.t("modals.taskEdit.buttons.unarchive"):this.t("modals.taskEdit.buttons.archive"),onClick:()=>{this.archiveTask()}},{className:"mod-warning tn-task-modal__delete-button",text:this.t("contextMenus.task.delete"),onClick:()=>{this.deleteTask()}}],onSave:()=>this.handleSave(),onSaved:()=>{this.forceClose()},onCancel:()=>{this.close()}})}async initializeSubtasks(){try{let t=this.app.vault.getAbstractFileByPath(this.task.path);if(!(t instanceof ha.TFile))return;let n=await this.plugin.projectSubtasksService.getTasksLinkedToProject(t),a=this.plugin.projectSubtasksService.sortTasks([...n]);this.selectedSubtaskFiles=[],this.initialSubtaskFiles=[];for(let i of a){let s=this.app.vault.getAbstractFileByPath(i.path);s&&(this.selectedSubtaskFiles.push(s),this.initialSubtaskFiles.push(s))}}catch(t){Qc.error("Error initializing subtasks:",{category:"persistence",operation:"initializing-subtasks",error:t})}}hasSubtaskChanges(){return txe(this.initialSubtaskFiles,this.selectedSubtaskFiles)}async applySubtaskChanges(t){let n=this.app.vault.getAbstractFileByPath(t.path);if(!(n instanceof ha.TFile))return;let a=await rxe({parentTaskFile:n,selectedSubtaskFiles:this.selectedSubtaskFiles,initialSubtaskFiles:this.initialSubtaskFiles,getTaskInfo:i=>this.plugin.cacheManager.getTaskInfo(i),buildProjectReference:(i,s)=>this.buildProjectReference(i,s),updateTaskProjects:(i,s)=>this.plugin.updateTaskProperty(i,"projects",s),onAddError:i=>{Qc.error("Failed to add subtask relation:",{category:"persistence",operation:"add-subtask-relation",error:i})},onRemoveError:i=>{Qc.error("Failed to remove subtask relation:",{category:"persistence",operation:"remove-subtask-relation",error:i})}});this.initialSubtaskFiles=a.nextInitialSubtaskFiles}};Vo();qv();Ct();Me();Me();var nxe=require("obsidian"),Aot="en";function axe(r,e=""){let t={};return Object.entries(r).forEach(([n,a])=>{let i=e?`${e}.${n}`:n;typeof a=="string"?t[i]=a:a&&typeof a=="object"&&Object.assign(t,axe(a,i))}),t}function _ot(r,e){return e?r.replace(/\{(\w+)\}/g,(t,n)=>Object.prototype.hasOwnProperty.call(e,n)?String(e[n]):`{${n}}`):r}function ON(r){return r.toLowerCase().split("-")[0]}var LN=class extends nxe.Events{constructor(t){var a,i;super();this.cache={};this.resources=t.resources,this.defaultLocale=t.defaultLocale,this.fallbackLocale=(a=t.fallbackLocale)!=null?a:Aot,this.getSystemLocaleFn=t.getSystemLocale;let n=(i=t.initialLocale)!=null?i:this.defaultLocale;this.currentLocale=this.resolveLocale(n)}getAvailableLocales(){return Object.keys(this.resources)}getNativeLanguageName(t){return{en:"English",fr:"Fran\xE7ais",de:"Deutsch",es:"Espa\xF1ol",pt:"Portugu\xEAs",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",zh:"\u4E2D\u6587",ja:"\u65E5\u672C\u8A9E"}[t]||t}getCurrentLocale(){return this.currentLocale}setLocale(t){let n=this.resolveLocale(t);if(n===this.currentLocale)return;let a=this.currentLocale;this.currentLocale=n;let i={previous:a,current:n};this.trigger("locale-changed",i)}translate(t,n){var i;let a=(i=this.resolveKey(t))!=null?i:t;return _ot(a,n)}translatePlural(t,n,a){let i=this.getPluralKey(t,n),s={...a,count:n};return this.translate(i,s)}resolveKey(t){let n=[this.currentLocale,this.fallbackLocale,this.defaultLocale];for(let a of n){let i=this.getLocaleMap(a);if(i&&Object.prototype.hasOwnProperty.call(i,t))return i[t]}}getSystemLocale(){if(this.getSystemLocaleFn){let t=this.getSystemLocaleFn();if(t)return ON(t)}return typeof navigator!="undefined"&&navigator.language?ON(navigator.language):this.defaultLocale}getLocaleMap(t){let n=ON(t);if(!this.cache[n]){let a=this.resources[n];if(!a)return{};this.cache[n]=axe(a)}return this.cache[n]}resolveLocale(t){let n=ON(t);if(this.resources[n])return n;if(t==="system"){let i=this.getSystemLocale();if(this.resources[i])return i}if(this.resources[this.defaultLocale])return this.defaultLocale;let a=this.getAvailableLocales()[0];return a!=null?a:this.fallbackLocale}getPluralKey(t,n){let a;switch(n){case 0:a="zero";break;case 1:a="one";break;default:a="other";break}let i=`${t}.${a}`,s=[this.currentLocale,this.fallbackLocale,this.defaultLocale];for(let o of s)if(this.getLocaleMap(o)[i])return i;return t}};var ixe={common:{appName:"TaskNotes",new:"New",cancel:"Cancel",confirm:"Confirm",close:"Close",save:"Save",reorder:{confirmLargeTitle:"Confirm large reorder",confirmButton:"Reorder notes",confirmLargeMessage:'Reordering here will update "{field}" in {count} notes to create a persistent manual order for {scope}. Hidden or filtered notes in the same scope may also be updated. Continue?'},language:"Language",systemDefault:"System default",loading:"Loading...",languages:{en:"English",fr:"French",ru:"Russian",zh:"Chinese",de:"German",es:"Spanish",ja:"Japanese",pt:"Portuguese (Brazil)",ko:"Korean"},weekdays:{sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday"},months:{january:"January",february:"February",march:"March",april:"April",may:"May",june:"June",july:"July",august:"August",september:"September",october:"October",november:"November",december:"December"}},views:{agenda:{title:"Agenda",today:"Today",overdue:"Overdue",refreshCalendars:"Refresh calendars",actions:{previousPeriod:"Previous period",nextPeriod:"Next period",goToToday:"Go to today",refreshCalendars:"Refresh calendar subscriptions"},loading:"Loading agenda...",dayToggle:"Toggle day",overdueToggle:"Toggle overdue section",expandAllDays:"Expand all days",collapseAllDays:"Collapse all days",notices:{calendarNotReady:"Calendar service not ready yet",calendarRefreshed:"Calendar subscriptions refreshed",refreshFailed:"Failed to refresh"},empty:{noItemsScheduled:"No items scheduled",noItemsFound:"No items found",helpText:"Create tasks with due or scheduled dates, or add notes to see them here."},contextMenu:{showOverdueSection:"Show overdue section",showNotes:"Show notes",calendarSubscriptions:"Calendar subscriptions"},periods:{thisWeek:"This week"},tipPrefix:"Tip: "},taskList:{title:"Tasks",expandAllGroups:"Expand all groups",collapseAllGroups:"Collapse all groups",noTasksFound:"No tasks found for the selected filters.",reorder:{scope:{ungrouped:"this ungrouped list",group:'group "{group}"'}},errors:{formulaGroupingReadOnly:"Cannot reorder tasks in formula-based groups. Formula values are computed and cannot be directly modified."}},notes:{title:"Notes",refreshButton:"Refresh",refreshingButton:"Refreshing...",notices:{indexingDisabled:"Note indexing disabled"},empty:{noNotesFound:"No notes found",helpText:"No notes found for the selected date. Try selecting a different date in the mini calendar view or create some notes."},loading:"Loading notes...",refreshButtonAriaLabel:"Refresh notes list"},miniCalendar:{title:"Mini calendar",contextMenu:{openDailyNote:"Open daily note",openWeeklyNote:"Open weekly note"}},advancedCalendar:{title:"Calendar",filters:{showFilters:"Show filters",hideFilters:"Hide filters"},viewOptions:{calendarSubscriptions:"Calendar subscriptions",timeEntries:"Time entries",timeblocks:"Timeblocks",scheduledDates:"Scheduled dates",dueDates:"Due dates",allDaySlot:"All-day slot",scheduledTasks:"Scheduled tasks",recurringTasks:"Recurring tasks"},buttons:{refresh:"Refresh",refreshHint:"Refresh calendar subscriptions"},notices:{icsServiceNotAvailable:"ICS subscription service not available",calendarRefreshedAll:"All calendar subscriptions refreshed successfully",refreshFailed:"Failed to refresh some calendar subscriptions",timeblockSpecificTime:"Timeblocks must have specific times. Please select a time range in week or day view.",timeblockMoved:'Moved timeblock "{title}" to {date}',timeblockUpdated:'Updated timeblock "{title}" time',timeblockMoveFailed:"Failed to move timeblock: {message}",timeblockResized:'Updated timeblock "{title}" duration',timeblockResizeFailed:"Failed to resize timeblock: {message}",taskScheduled:'Task "{title}" scheduled for {date}',scheduleTaskFailed:"Failed to schedule task",endTimeAfterStart:"End time must be after start time",timeEntryNotFound:"Time entry not found",timeEntryDeleted:"Time entry deleted",deleteTimeEntryFailed:"Failed to delete time entry"},timeEntry:{estimatedSuffix:"estimated",trackedSuffix:"tracked",recurringPrefix:"Recurring: ",completedPrefix:"Completed: ",createdPrefix:"Created: ",modifiedPrefix:"Modified: ",duePrefix:"Due: ",scheduledPrefix:"Scheduled: "},contextMenus:{openTask:"Open task",deleteTimeEntry:"Delete time entry",deleteTimeEntryTitle:"Delete time entry",deleteTimeEntryConfirm:"Are you sure you want to delete this time entry{duration}? This action cannot be undone.",deleteButton:"Delete",cancelButton:"Cancel"}},basesCalendar:{title:"Bases calendar",today:"Today",buttonText:{month:"M",week:"W",day:"D",year:"Y",list:"L",customDays:"{count}D",listDays:"{count}d List",refresh:"Refresh"},hints:{refresh:"Refresh calendar subscriptions",today:"Go to today",prev:"Previous",next:"Next",month:"Month view",week:"Week view",day:"Day view",year:"Year view",list:"List view",customDays:"{count}-day view"},settings:{groups:{dateNavigation:"Date navigation",events:"Events",layout:"Layout",view:"View",display:"Display",timeGrid:"Time grid",eventLayout:"Event layout",propertyBasedEvents:"Property-based events",calendarSubscriptions:"Calendar subscriptions",googleCalendars:"Google calendars",microsoftCalendars:"Microsoft calendars"},dateNavigation:{navigateToDate:"Navigate to date",navigateToDatePlaceholder:"YYYY-MM-DD (e.g., 2025-01-15) - leave empty to use property",navigateToDateFromProperty:"Navigate to date from property",navigateToDateFromPropertyPlaceholder:"Select a date property (optional)",propertyNavigationStrategy:"Property navigation strategy",createDailyNotesFromDateLinks:"Create daily notes from date links",strategies:{first:"First result",earliest:"Earliest date",latest:"Latest date"}},events:{showScheduledTasks:"Show scheduled tasks",showDueTasks:"Show due tasks",showOverdueOnToday:"Show overdue tasks on today",showRecurringTasks:"Show recurring tasks",showCompletedRecurringInstances:"Show completed recurring instances",showSkippedRecurringInstances:"Show skipped recurring instances",showTimeEntries:"Show time entries",showTimeblocks:"Show timeblocks",showPropertyBasedEvents:"Show property-based events"},layout:{calendarView:"Calendar view",heightMode:"Height mode",heightModeFill:"Fill container",heightModeAuto:"Auto height",customDayCount:"Custom day count",listDayCount:"List day count",dayStartTime:"Day start time",dayStartTimePlaceholder:"HH:mm:ss (e.g., 08:00:00)",dayEndTime:"Day end time",dayEndTimePlaceholder:"HH:mm:ss (e.g., 20:00:00)",timeSlotDuration:"Time slot duration",timeSlotDurationPlaceholder:"HH:mm:ss (e.g., 00:30:00)",dragDropResolution:"Drag/drop resolution",dragDropResolutionPlaceholder:"HH:mm:ss (e.g., 00:05:00)",weekStartsOn:"Week starts on",showWeekNumbers:"Show week numbers",showNowIndicator:"Show now indicator",showWeekends:"Show weekends",showAllDaySlot:"Show all-day slot",showTimeGrid:"Show hourly breakdown",showTodayHighlight:"Show today highlight",todayColumnWidthMultiplier:"Today column width multiplier",showSelectionPreview:"Show selection preview",timeFormat:"Time format",timeFormat12:"12-hour (AM/PM)",timeFormat24:"24-hour",initialScrollTime:"Initial scroll time",initialScrollTimePlaceholder:"HH:mm:ss (e.g., 08:00:00)",minimumEventHeight:"Minimum event height (px)",slotEventOverlap:"Allow events to overlap",enableSearch:"Enable search box",eventMaxStack:"Max stacked events (week/day view, 0 = unlimited)",dayMaxEvents:"Max events per day (month view, 0 = auto)",dayMaxEventRows:"Max event rows per day (month view, 0 = unlimited)",spanScheduledToDue:"Span tasks between scheduled and due dates"},propertyBasedEvents:{startDateProperty:"Start date property",startDatePropertyPlaceholder:"Select property for start date/time",endDateProperty:"End date property (optional)",endDatePropertyPlaceholder:"Select property for end date/time",titleProperty:"Title property (optional)",titlePropertyPlaceholder:"Select property for event title"}},notices:{noDailyNoteForDate:"No daily note exists for this date."},errors:{failedToInitialize:"Failed to initialize calendar"}},kanban:{title:"Kanban",newTask:"New task",addCard:"+ Add a card",noTasks:"No tasks",uncategorized:"Uncategorized",noProject:"No project",reorder:{scope:{column:'column "{group}"',columnInSwimlane:'column "{group}" in swimlane "{swimlane}"'}},notices:{loadFailed:"Failed to load Kanban board",movedTask:'Task moved to "{0}"'},errors:{loadingBoard:"Error loading board.",noGroupBy:"Kanban view requires a 'group by' property to be configured. Click the 'sort' button and select a property under 'group by'.",formulaGroupingReadOnly:"Cannot move tasks between formula-based columns. Formula values are computed and cannot be directly modified.",formulaSwimlaneReadOnly:"Cannot move tasks between formula-based swimlanes. Formula values are computed and cannot be directly modified."},columnTitle:"Untitled"},pomodoro:{title:"Pomodoro",status:{focus:"Focus",ready:"Ready to start",paused:"Paused",working:"Working",shortBreak:"Short break",longBreak:"Long break",breakPrompt:"Great work! Time for a {length} break",breakLength:{short:"short",long:"long"},breakComplete:"Break complete! Ready for the next Pomodoro?"},meta:{ready:"{time} planned \xB7 {count} completed today",running:"{time} left \xB7 Ends at {endTime}",paused:"{type} paused \xB7 {time} left",breakReady:"{type} ready \xB7 {time} planned"},timer:{editLabel:"Edit timer duration",inputLabel:"Timer duration"},buttons:{start:"Start",startFocus:"Start focus",pause:"Pause",stop:"Stop",resume:"Resume",startShortBreak:"Start short break",startLongBreak:"Start long break",skipBreak:"Skip break",chooseTask:"Choose task...",changeTask:"Change task...",clearTask:"Clear task",selectDifferentTask:"Select a different task",addMinute:"Add one minute",subtractMinute:"Subtract one minute"},notices:{noTasks:"No unarchived tasks found. Create some tasks first.",loadFailed:"Failed to load tasks",invalidDuration:"Enter a duration like 10, 10:30, or 1:30:00."},statsLabel:"completed today"},pomodoroStats:{title:"Pomodoro stats",heading:"Pomodoro statistics",refresh:"Refresh",basesMigration:{title:"Want a base view?",description:"Pomodoro base views use daily notes frontmatter; to see this history in the generated Pomodoro statistics base, migrate Pomodoro data in settings, then set storage to daily notes."},sections:{overview:"Overview",today:"Today",week:"This week",allTime:"All time",recent:"Recent sessions"},overviewCards:{todayPomos:{label:"Today's pomos",change:{more:"{count} more than yesterday",less:"{count} fewer than yesterday"}},totalPomos:{label:"Total pomos"},todayFocus:{label:"Today's focus",change:{more:"{duration} more than yesterday",less:"{duration} less than yesterday"}},totalFocus:{label:"Total focus duration"}},stats:{pomodoros:"Pomodoros",streak:"Streak",minutes:"Minutes",average:"Avg length",completion:"Completion"},recents:{empty:"No sessions recorded yet",duration:"{minutes} min",delete:"Delete session",deleteAria:"Delete Pomodoro session",deleteConfirmTitle:"Delete Pomodoro session?",deleteConfirmMessage:"This removes the session from Pomodoro history. Existing task time entries are not changed.",deleteConfirmButton:"Delete",deleteSuccess:"Pomodoro session deleted",deleteNotFound:"Pomodoro session was not found",status:{completed:"Completed",interrupted:"Interrupted"}}},stats:{title:"Statistics",taskProjectStats:"Task & project statistics",sections:{filters:"Filters",overview:"Overview",today:"Today",thisWeek:"This week",thisMonth:"This month",projectBreakdown:"Project breakdown",dateRange:"Date range"},filters:{minTime:"Min time (minutes)",allTasks:"All tasks",activeOnly:"Active only",completedOnly:"Completed only"},refreshButton:"Refresh",timeRanges:{allTime:"All time",last7Days:"Last 7 days",last30Days:"Last 30 days",last90Days:"Last 90 days",customRange:"Custom range"},resetFiltersButton:"Reset filters",dateRangeFrom:"From",dateRangeTo:"To",noProject:"No project",cards:{timeTrackedEstimated:"Time tracked / estimated",totalTasks:"Total tasks",completionRate:"Completion rate",activeProjects:"Active projects",avgTimePerTask:"Avg time per task"},labels:{tasks:"Tasks",completed:"Completed",projects:"Projects"},noProjectData:"No project data available",notAvailable:"N/A",noTasks:"No tasks found",loading:"Loading..."},releaseNotes:{title:"What's new in TaskNotes {version}",header:"What's new in TaskNotes {version}",viewAllLink:"View all release notes on GitHub \u2192",starMessage:"We really appreciate all feedback. If something does not feel right, please let us know on GitHub. If you find TaskNotes useful, please consider giving it a star.",baseFilesNotice:"> [!info] About default `.base` files\n> Updates to default generated `.base` templates do not overwrite your existing `.base` files, so your customizations stay safe.\n> If you want the newest template improvements, regenerate base files in **Settings \u2192 TaskNotes \u2192 General \u2192 Views & base files \u2192 Update files**."}},settings:{header:{documentation:"Documentation",documentationUrl:"https://tasknotes.dev"},tabs:{general:"General",taskProperties:"Task properties",modalFields:"Modal fields",defaults:"Defaults & templates",appearance:"Appearance & UI",features:"Features",integrations:"Integrations"},features:{inlineTasks:{header:"Inline tasks",description:"Settings for task links and checkbox-to-task conversion in notes."},taskCreation:{header:"Task creation",description:"Configure what happens after tasks are created.",openAfterCreate:{name:"Open task after creation",description:"Choose whether the task creation modal opens the new task note after saving.",options:{none:"Do not open",sameTab:"Open in the same tab",newTab:"Open in a new tab"}}},overlays:{taskLinkToggle:{name:"Task link overlay",description:"Show interactive overlays when hovering over task links"},aliasExclusion:{name:"Disable overlay for aliased links",description:"Do not show the task widget if the link contains an alias (e.g. [[Task|Alias]])."}},instantConvert:{toggle:{name:"Show convert button next to checkboxes",description:"Display an inline button next to Markdown checkboxes that converts them to TaskNotes"},preserveCheckbox:{name:"Keep checkbox when converting",description:"Leave the original Markdown checkbox marker in place when converting a checkbox to a TaskNote link"},folder:{name:"Folder for inline-created tasks",description:"Folder where tasks created from inline commands or checkbox conversion will be created. Leave empty to use the default tasks folder. Use {{currentNotePath}} for the current note's folder, or {{currentNoteTitle}} for a subfolder named after the current note."}},nlp:{header:"Natural language processing",description:"Parse dates, priorities, and other properties from text input.",enable:{name:"Enable natural language task input",description:"Parse due dates, priorities, and contexts from natural language when creating tasks"},defaultToScheduled:{name:"Default to scheduled",description:"When NLP detects a date without context, treat it as scheduled rather than due"},language:{name:"NLP language",description:"Language for natural language processing patterns and date parsing"},statusTrigger:{name:"Status suggestion trigger",description:"Text to trigger status suggestions (leave empty to disable)"}},pomodoro:{header:"Pomodoro timer",description:"Configure work/break intervals for the Pomodoro timer.",workDuration:{name:"Work duration",description:"Duration of work intervals in minutes"},shortBreak:{name:"Short break duration",description:"Duration of short breaks in minutes"},longBreak:{name:"Long break duration",description:"Duration of long breaks in minutes"},longBreakInterval:{name:"Long break interval",description:"Number of work sessions before a long break"},autoStartBreaks:{name:"Auto-start breaks",description:"Automatically start break timers after work sessions"},autoStartWork:{name:"Auto-start work",description:"Automatically start work sessions after breaks"},notifications:{name:"Pomodoro notifications",description:"Show notifications when Pomodoro sessions end"},statusBar:{name:"Show Pomodoro in status bar",description:"Display the active Pomodoro countdown in Obsidian's status bar"},mobileSidebar:{name:"Mobile sidebar",description:"Where to open the Pomodoro timer on mobile devices",tab:"Note panel",left:"Left sidebar",right:"Right sidebar"}},uiLanguage:{header:"Interface language",description:"Change the language of TaskNotes menus, notices, and views.",dropdown:{name:"UI language",description:"Select the language used for TaskNotes interface text"}},pomodoroSound:{enabledName:"Sound enabled",enabledDesc:"Play sound when Pomodoro sessions end",volumeName:"Sound volume",volumeDesc:"Volume for Pomodoro sounds (0-100)"},dataStorage:{name:"Pomodoro data storage",description:"Configure where Pomodoro session data is stored and how it's managed.",dailyNotes:"Daily notes",pluginData:"Plugin data",notices:{locationChanged:"Pomodoro storage location changed to {location}"}},notifications:{header:"Notifications",description:"Configure task reminder notifications and alerts.",enableName:"Enable notifications",enableDesc:"Enable task reminder notifications",typeName:"Notification type",typeDesc:"Type of notifications to show",systemLabel:"System notifications",inAppLabel:"In-app notifications",soundEnabledName:"Notification sound",soundEnabledDesc:"Play a sound when task reminders trigger",soundVolumeName:"Sound volume",soundVolumeDesc:"Volume for task reminder sounds (0-100)",soundPreviewName:"Preview notification sound",soundPreviewDesc:"Play the configured task reminder sound",soundPreviewButton:"Preview",testReminderName:"Send test reminder",testReminderDesc:"Send a test reminder using the current notification type and sound settings.",testReminderButton:"Send test"},overdue:{hideCompletedName:"Hide completed tasks from overdue",hideCompletedDesc:"Exclude completed tasks from overdue task calculations"},indexing:{disableName:"Disable note indexing",disableDesc:"Disable automatic indexing of note content for better performance"},suggestions:{debounceName:"Suggestion debounce",debounceDesc:"Delay in milliseconds before showing suggestions"},timeTracking:{autoStopName:"Auto-stop time tracking",autoStopDesc:"Automatically stop time tracking when a task is marked complete",stopNotificationName:"Time tracking stop notification",stopNotificationDesc:"Show notification when time tracking is automatically stopped"},recurring:{maintainOffsetName:"Maintain due date offset in recurring tasks",maintainOffsetDesc:"Keep the offset between due date and scheduled date when recurring tasks are completed",resetCheckboxesName:"Reset checkboxes on recurrence",resetCheckboxesDesc:"Reset all Markdown checkboxes in the task body when a recurring task is completed and rescheduled"},timeblocking:{header:"Timeblocking",description:"Configure timeblock functionality for lightweight scheduling in daily notes. Drag on calendar views to create events - select 'Timeblock' from the context menu.",enableName:"Enable timeblocking",enableDesc:"Enable timeblocking feature for lightweight scheduling in daily notes. When enabled, 'Timeblock' option appears in the calendar drag context menu.",showBlocksName:"Show timeblocks",showBlocksDesc:"Display timeblocks from daily notes by default",defaultColorName:"Default timeblock color",defaultColorDesc:"The default color used when creating new timeblocks",usage:"Usage: Drag on the calendar to create events. Select 'Timeblock' from the context menu (only visible when timeblocking is enabled). Drag to move existing timeblocks. Resize edges to adjust duration."},performance:{header:"Performance & behavior",description:"Configure plugin performance and behavioral options."},timeTrackingSection:{header:"Time tracking",description:"Configure automatic time tracking behaviors."},recurringSection:{header:"Recurring tasks",description:"Configure behavior for recurring task management."},debugLogging:{header:"Debug logging",description:"Configure debug log output for troubleshooting.",enableName:"Enable debug logging",enableDesc:"Log detailed drag-and-drop and view diagnostics to the developer console. Useful for troubleshooting."}},defaults:{header:{basicDefaults:"Basic defaults",dateDefaults:"Date defaults",defaultReminders:"Default reminders",bodyTemplate:"Body template",instantTaskConversion:"Instant task conversion"},description:{basicDefaults:"Set default values for new tasks to speed up task creation.",dateDefaults:"Set default due and scheduled dates for new tasks.",defaultReminders:"Configure default reminders that will be added to new tasks.",bodyTemplate:"Configure a template file to use for new task content.",instantTaskConversion:"Configure behavior when converting text to tasks instantly."},basicDefaults:{defaultStatus:{name:"Default status",description:"Default status for new tasks"},defaultPriority:{name:"Default priority",description:"Default priority for new tasks"},defaultContexts:{name:"Default contexts",description:"Comma-separated list of default contexts (e.g., @home, @work)",placeholder:"@home, @work"},defaultTags:{name:"Default tags",description:"Comma-separated list of default tags (without #)",placeholder:"important, urgent"},defaultProjects:{name:"Default projects",description:"Default project links for new tasks",selectButton:"Select projects",selectTooltip:"Choose project notes to link by default",removeTooltip:"Remove {name} from default projects"},useParentNoteForTaskCreation:{name:"Use active note as project for new tasks",description:"Automatically link the active note as a project when opening task creation from the command palette or ribbon"},useParentNoteAsProject:{name:"Use parent note as project for inline and instant conversion",description:"Automatically link the source note as a project when using inline task creation or instant task conversion"},useParentHeaderAsProject:{name:"Use parent heading as project during instant conversion",description:"Automatically link the closest heading above the converted line as a project when using instant task conversion"},defaultTimeEstimate:{name:"Default time estimate",description:"Default time estimate in minutes (0 = no default)",placeholder:"60"},defaultRecurrence:{name:"Default recurrence",description:"Default recurrence pattern for new tasks"}},dateDefaults:{defaultDueDate:{name:"Default due date",description:"Default due date for new tasks"},defaultScheduledDate:{name:"Default scheduled date",description:"Default scheduled date for new tasks"}},reminders:{addReminder:{name:"Add default reminder",description:"Create a new default reminder that will be added to all new tasks",buttonText:"Add reminder"},emptyState:"No default reminders configured. Add a reminder to automatically notify you about new tasks.",emptyStateButton:"Add reminder",reminderDescription:"Reminder description",unnamedReminder:"Unnamed reminder",deleteTooltip:"Delete reminder",fields:{description:"Description:",type:"Type:",offset:"Offset:",unit:"Unit:",direction:"Direction:",relatedTo:"Related to:",date:"Date:",time:"Time:"},types:{relative:"Relative (before/after task dates)",absolute:"Absolute (specific date/time)"},units:{minutes:"minutes",hours:"hours",days:"days"},directions:{before:"before",after:"after"},relatedTo:{due:"due date",scheduled:"scheduled date"}},bodyTemplate:{useBodyTemplate:{name:"Use body template",description:"Use a template file for task body content"},bodyTemplateFile:{name:"Body template file",description:"Path to template file for task body content. Supports template variables like {{title}}, {{date}}, {{time}}, {{priority}}, {{status}}, etc.",placeholder:"Templates/Task Template.md",ariaLabel:"Path to body template file"},useOccurrenceBodyTemplate:{name:"Use occurrence note template",description:"Use a separate fallback template for materialized occurrence notes when the recurring task has no occurrence_template"},occurrenceBodyTemplateFile:{name:"Occurrence note template file",description:"Path to template file for materialized occurrence notes. A recurring task's occurrence_template field takes priority over this fallback.",placeholder:"Templates/Occurrence Template.md",ariaLabel:"Path to occurrence note template file"},variablesHeader:"Template variables:",variables:{title:"{{title}} - Task title",details:"{{details}} - User-provided details from modal",date:"{{date}} - Current date (YYYY-MM-DD)",time:"{{time}} - Current time (HH:MM)",priority:"{{priority}} - Task priority",status:"{{status}} - Task status",contexts:"{{contexts}} - Task contexts",tags:"{{tags}} - Task tags",projects:"{{projects}} - Task projects"}},instantConversion:{useDefaultsOnInstantConvert:{name:"Use task defaults on instant convert",description:"Apply default task settings when converting text to tasks instantly"}},options:{noDefault:"No default",none:"None",today:"Today",tomorrow:"Tomorrow",nextWeek:"Next week",daily:"Daily",weekly:"Weekly",monthly:"Monthly",yearly:"Yearly"}},general:{taskStorage:{header:"Task storage",description:"Configure where tasks are stored and how they are identified.",defaultFolder:{name:"Default tasks folder",description:"Default location for new tasks. Supports folder template variables like {{currentNotePath}}, {{currentNoteTitle}}, and {{projectFilePath}}, plus Daily Notes-style date tokens like YYYY/MM/DD."},moveArchived:{name:"Move archived tasks to folder",description:"Automatically move archived tasks to an archive folder"},archiveFolder:{name:"Archive folder",description:"Folder to move tasks to when archived. Supports template variables like {{year}}, {{month}}, {{priority}}, etc."}},taskIdentification:{header:"Task identification",description:"Choose how TaskNotes identifies notes as tasks.",identifyBy:{name:"Identify tasks by",description:"Choose whether to identify tasks by tag or by a frontmatter property",options:{tag:"Tag",property:"Property"}},taskTag:{name:"Task tag",description:"Tag that identifies notes as tasks (without #). Existing .base view filters keep their old tag when this changes; update default Base files or edit those filters."},hideIdentifyingTags:{name:"Hide identification tags in task cards",description:"When enabled, tags matching the task identification tag (including hierarchical matches like 'task/project') will be hidden from task card displays"},hideIdentifyingTagsMode:{name:"Hidden tag scope",description:"Choose whether hiding identification tags also hides nested tags.",options:{all:"Task tag and nested tags",exactOnly:"Exact task tag only"}},taskProperty:{name:"Task property name",description:'The frontmatter property name (e.g., "category")'},taskPropertyValue:{name:"Task property value",description:'The value that identifies a note as a task (e.g., "task")'}},folderManagement:{header:"Folder management",excludedFolders:{name:"Excluded folders",description:"Comma-separated list of folders to exclude from task indexing and project suggestions"}},frontmatter:{header:"Frontmatter",description:"Configure how links are formatted in frontmatter properties.",useMarkdownLinks:{name:"Use Markdown links in frontmatter",description:`Generate markdown links ([text](path)) instead of wikilinks ([[link]]) in frontmatter properties.
|
||
|
||
\u26A0\uFE0F Requires the 'obsidian-frontmatter-markdown-links' plugin to work correctly.`}},taskInteraction:{header:"Task interaction",description:"Configure how clicking on tasks behaves.",singleClick:{name:"Single-click action",description:"Action performed when single-clicking a task card"},doubleClick:{name:"Double-click action",description:"Action performed when double-clicking a task card"},actions:{edit:"Edit task",openNote:"Open note",none:"No action"}},releaseNotes:{header:"Release notes",description:"Current version: {version}",showOnUpdate:{name:"Show release notes after update",description:"Automatically open release notes when TaskNotes is updated to a new version"},checkForUpdates:{name:"Check for new releases on startup",description:"Check GitHub once when TaskNotes starts and show a notice when a newer compatible release is available"},viewButton:{name:"View release notes",description:"See what's new in the latest version of TaskNotes",buttonText:"View release notes"}}},taskProperties:{sections:{coreProperties:"Core properties",corePropertiesDesc:"Status and priority are the core properties that define a task's state and importance.",dateProperties:"Date properties",datePropertiesDesc:"Configure when tasks are due and scheduled.",organizationProperties:"Organization properties",organizationPropertiesDesc:"Organize tasks with contexts, projects, and tags.",taskDetails:"Task details",taskDetailsDesc:"Additional details like time estimates, recurrence, and reminders.",metadataProperties:"Metadata properties",metadataPropertiesDesc:"System-managed properties for tracking task history.",featureProperties:"Feature properties",featurePropertiesDesc:"Properties used by specific TaskNotes features like Pomodoro timer and calendar sync."},propertyCard:{propertyKey:"Property key:",default:"Default:",nlpTrigger:"NLP trigger:",triggerChar:"Trigger character:",triggerEmpty:"Trigger cannot be empty",triggerTooLong:"Trigger is too long (max 10 characters)"},properties:{status:{name:"Status",description:"Tracks the current state of a task (e.g., todo, in-progress, done). Status determines whether a task appears as completed and can trigger auto-archiving."},priority:{name:"Priority",description:"Indicates task importance. Used for sorting and filtering. Values are sorted alphabetically in Bases views, so use prefixes like 1-, 2- to control order."},due:{name:"Due date",description:"The deadline by which a task must be completed. Tasks past their due date appear as overdue. Stored as a date in frontmatter."},scheduled:{name:"Scheduled date",description:"When you plan to work on a task. Unlike due date, this represents your intended start time. Tasks appear on the calendar at their scheduled date/time."},contexts:{name:"Contexts",description:"Locations or conditions where a task can be done (e.g., @home, @office, @phone). Useful for filtering tasks by your current situation. Stored as a list."},projects:{name:"Projects",description:"Links to project notes this task belongs to. Stored as wikilinks (e.g., [[Project Name]]). Tasks can belong to multiple projects."},tags:{name:"Tags",description:"Native Obsidian tags for categorizing tasks. These are stored in the tags frontmatter property and work with Obsidian's tag features."},timeEstimate:{name:"Time estimate",description:"Estimated minutes to complete the task. Used for time-blocking and workload planning. Displayed on task cards and calendar events."},recurrence:{name:"Recurrence",description:"Pattern for repeating tasks (daily, weekly, monthly, yearly, or custom RRULE). When a recurring task is completed, its scheduled date is automatically updated to the next occurrence."},recurrenceAnchor:{name:"Recurrence anchor",description:"Controls how the next occurrence is calculated: 'scheduled' uses the scheduled date, 'completion' uses the actual completion date."},reminders:{name:"Reminders",description:"Notifications triggered before due or scheduled dates. Stored as a list of reminder objects with timing and optional description."},title:{name:"Title",description:"The task name. Can be stored in frontmatter or in the filename (when 'store title in filename' is enabled)."},dateCreated:{name:"Date created",description:"Timestamp when the task was first created. Automatically set and used for sorting by creation order."},dateModified:{name:"Date modified",description:"Timestamp of the last change to the task. Automatically updated when any task property changes."},completedDate:{name:"Completed date",description:"Timestamp when the task was marked complete. Set automatically when status changes to a completed state."},archiveTag:{name:"Archive tag",description:"Tag added to tasks when archived. Used to identify archived tasks and can trigger file movement to archive folder."},timeEntries:{name:"Time entries",description:"Records of time tracking sessions for this task. Each entry stores start and end timestamps. Used to calculate total time spent."},completeInstances:{name:"Complete instances",description:"Completion history for recurring tasks. Stores dates when each instance was completed to prevent duplicate completions."},skippedInstances:{name:"Skipped instances",description:"Skipped occurrences for recurring tasks. Stores dates of instances that were skipped rather than completed."},blockedBy:{name:"Blocked by",description:"Links to tasks that must be completed before this one. Stored as wikilinks. Blocked tasks display a visual indicator."},sortOrder:{name:"Manual order",description:"Frontmatter property used for drag-to-reorder manual ordering. A view must be sorted by this property for drag-and-drop reordering to work."},pomodoros:{name:"Pomodoros",description:"Count of completed Pomodoro sessions. When data storage is set to 'daily notes', this is written to daily notes instead of task files."},icsEventId:{name:"ICS event ID",description:"Unique identifier linking a note to an ICS calendar event. Added automatically when creating notes from calendar events."},icsEventTag:{name:"ICS event tag",description:"Tag identifying notes created from ICS calendar events. Used to distinguish calendar-generated notes from regular tasks."}},statusCard:{valuesHeader:"Status values"},priorityCard:{valuesHeader:"Priority values"},projectsCard:{defaultProjects:"Default projects:",useParentNoteForTaskCreation:"Use active note for new tasks:",useParentNoteForInlineTasks:"Use parent note for inline/instant conversion:",useParentHeader:"Use parent heading as project:",inheritParentTaskProperties:"Inherit parent task properties for subtasks:",noDefaultProjects:"No default projects selected",autosuggestFilters:"Autosuggest filters",customizeDisplay:"Customize display",filtersOn:"Filters on"},titleCard:{storeTitleInFilename:"Store title in filename:",storedInFilename:"Stored in filename",filenameUpdatesWithTitle:"Filename will automatically update when the task title changes.",filenameFormat:"Filename format:",customTemplate:"Custom template:",legacySyntaxWarning:"Single-brace syntax like {title} is deprecated. Please use double-brace syntax {{title}} instead for consistency with body templates.",occurrenceFilenameTemplate:"Occurrence filename template",occurrenceFilenameTemplateHelp:"Filename template for materialized occurrences of recurring tasks. Leave empty to keep the existing name (parent title plus a numeric suffix). Choose the filename granularity explicitly with {{occurrenceDate}}, {{occurrenceWeek}}, {{occurrenceMonth}}, {{occurrenceYear}}, or {{occurrenceMonthName}}. All regular filename variables also work. A parent task can override this template via the frontmatter property configured below.",occurrenceFilenameProperty:"Occurrence template override property",occurrenceFilenamePropertyHelp:"Name of the frontmatter property on a recurring (parent) task that overrides the occurrence filename template for that task's occurrences."},tagsCard:{nativeObsidianTags:"Uses native Obsidian tags"},remindersCard:{defaultReminders:"Default reminders"},taskStatuses:{header:"Task statuses",description:"Customize the status options available for your tasks. These statuses control the task lifecycle and determine when tasks are considered complete.",howTheyWork:{title:"How statuses work:",value:'Value: The internal identifier stored in your task files (e.g., "in-progress")',label:'Label: The display name shown in the interface (e.g., "In Progress")',color:"Color: Visual indicator color for the status dot and badges",icon:'Icon: Optional Lucide icon name to display instead of colored dot (e.g., "check", "circle", "clock"). Browse icons at lucide.dev',completed:"Completed: When checked, tasks with this status are considered finished and may be filtered differently",autoArchive:"Auto-archive: When enabled, tasks will be automatically archived after the specified delay (1-1440 minutes)",orderNote:"The order below determines the sequence when cycling through statuses by clicking on task status badges."},addNew:{name:"Add new status",description:"Create a new status option for your tasks",buttonText:"Add status"},validationNote:'Note: You must have at least 2 statuses, and at least one status must be marked as "completed".',emptyState:"No custom statuses configured. Add a status to get started.",emptyStateButton:"Add status",fields:{value:"Value:",label:"Label:",color:"Color:",icon:"Icon:",completed:"Completed:",excludeFromCycle:"Skip when cycling:",nextStatus:"Next status:",autoArchive:"Auto-archive:",delayMinutes:"Delay (minutes):"},placeholders:{value:"in-progress",label:"In progress",icon:"check, circle, clock",nextStatusDefault:"Use status order"},badges:{completed:"Completed"},deleteConfirm:'Are you sure you want to delete the status "{label}"?'},taskPriorities:{header:"Task priorities",description:"Customize the priority levels available for your tasks. In v4.0+, priorities are sorted alphabetically by their value in Bases views.",howTheyWork:{title:"How priorities work:",value:'Value: The internal identifier stored in your task files. Use prefixes like "1-urgent", "2-high" to control sort order in Bases views.',label:'Display Label: The display name shown in the interface (e.g., "High Priority")',color:"Color: Visual indicator color for the priority dot and badges",icon:"Icon: optional icon to show on task cards instead of the priority dot"},addNew:{name:"Add new priority",description:"Create a new priority level for your tasks",buttonText:"Add priority"},validationNote:"Note: You must have at least 1 priority. Priorities are sorted alphabetically by value in Bases views.",emptyState:"No custom priorities configured. Add a priority to get started.",emptyStateButton:"Add priority",fields:{value:"Value:",label:"Label:",color:"Color:",icon:"Icon:"},placeholders:{value:"high",label:"High priority",icon:"alert-circle"},deleteConfirm:"You must have at least one priority",deleteTooltip:"Delete priority"},fieldMapping:{header:"Field mapping",warning:"\u26A0\uFE0F Warning: TaskNotes will read AND write using these property names. Changing these after creating tasks may cause inconsistencies.",description:"Configure which frontmatter properties TaskNotes should use for each field.",resetButton:{name:"Reset field mappings",description:"Reset all field mappings to default values",buttonText:"Reset to defaults"},notices:{resetSuccess:"Field mappings reset to defaults",resetFailure:"Failed to reset field mappings",updateFailure:"Failed to update field mapping for {label}. Please try again."},table:{fieldHeader:"TaskNotes field",propertyHeader:"Your property name"},fields:{title:"Title",status:"Status",priority:"Priority",due:"Due date",scheduled:"Scheduled date",contexts:"Contexts",projects:"Projects",timeEstimate:"Time estimate",recurrence:"Recurrence",dateCreated:"Created date",completedDate:"Completed date",dateModified:"Modified date",archiveTag:"Archive tag",timeEntries:"Time entries",completeInstances:"Complete instances",blockedBy:"Blocked by",sortOrder:"Manual order",pomodoros:"Pomodoros",icsEventId:"ICS event ID",icsEventTag:"ICS event tag",reminders:"Reminders"}},customUserFields:{header:"Custom user fields",description:"Define custom frontmatter properties to appear as type-aware filter options across views. Each row: Display name, property name, type.",addNew:{name:"Add new user field",description:"Create a new custom field that will appear in filters and views",buttonText:"Add user field"},emptyState:"No custom user fields configured. Add a field to create custom properties for your tasks.",emptyStateButton:"Add user field",fields:{displayName:"Display name:",propertyKey:"Property key:",type:"Type:",defaultValue:"Default value:"},placeholders:{displayName:"Display name",propertyKey:"property-name",defaultValue:"Default value",defaultValueList:"Default values (comma-separated)"},types:{text:"Text",number:"Number",boolean:"Boolean",date:"Date",list:"List"},defaultNames:{unnamedField:"Unnamed field",noKey:"no-key"},deleteTooltip:"Delete field",autosuggestFilters:{header:"Autosuggestion filters (advanced)",description:"Filter which files appear in autocomplete suggestions for this field"}}},appearance:{taskCards:{header:"Task cards",description:"Configure how task cards are displayed across all views.",defaultVisibleProperties:{name:"Default visible properties",description:"Choose which properties appear on task cards by default."},propertyGroups:{coreProperties:"Core properties",organization:"ORGANIZATION",customProperties:"Custom properties"},properties:{status:"Status dot",priority:"Priority dot",due:"Due date",scheduled:"Scheduled date",timeEstimate:"Time estimate",totalTrackedTime:"Total tracked time",checklistProgress:"Checklist progress",recurrence:"Recurrence",completedDate:"Completed date",createdDate:"Created date",modifiedDate:"Modified date",projects:"Projects",contexts:"Contexts",tags:"Tags",blocked:"Blocked",blocking:"Blocking"}},taskFilenames:{header:"Task filenames",description:"Configure how task files are named when created.",storeTitleInFilename:{name:"Store title in filename",description:"Use the task title as the filename. Filename will update when the task title is changed (recommended)."},filenameFormat:{name:"Filename format",description:"How task filenames should be generated",options:{title:"Task title (non-updating)",zettel:"Zettelkasten format (YYMMDD + base36 seconds since midnight)",timestamp:"Full timestamp (YYYY-MM-DD-HHMMSS)",uuid:"UUID v4",custom:"Custom template"}},customTemplate:{name:"Custom filename template",description:"Template for custom filenames. Available variables: {{title}}, {{titleLower}}, {{titleUpper}}, {{titleSnake}}, {{titleKebab}}, {{titleCamel}}, {{titlePascal}}, {{date}}, {{shortDate}}, {{time}}, {{time12}}, {{time24}}, {{timestamp}}, {{dateTime}}, {{year}}, {{month}}, {{monthName}}, {{monthNameShort}}, {{day}}, {{dayName}}, {{dayNameShort}}, {{hour}}, {{hour12}}, {{minute}}, {{second}}, {{milliseconds}}, {{ms}}, {{ampm}}, {{week}}, {{quarter}}, {{unix}}, {{unixMs}}, {{timezone}}, {{timezoneShort}}, {{utcOffset}}, {{utcOffsetShort}}, {{utcZ}}, {{zettel}}, {{uuid}}, {{nano}}, {{priority}}, {{priorityShort}}, {{status}}, {{statusShort}}, {{dueDate}}, {{scheduledDate}}",placeholder:"{{date}}-{{title}}-{{dueDate}}",helpText:"Note: {{dueDate}} and {{scheduledDate}} are in YYYY-MM-DD format and will be empty if not set."}},displayFormatting:{header:"Display formatting",description:"Configure how dates, times, and other data are displayed across the plugin.",timeFormat:{name:"Time format",description:"Display time in 12-hour or 24-hour format throughout the plugin",options:{twelveHour:"12-hour (AM/PM)",twentyFourHour:"24-hour"}}},calendarView:{header:"Calendar view",description:"Customize the appearance and behavior of the calendar view.",defaultView:{name:"Default view",description:"The calendar view shown when opening the calendar tab",options:{monthGrid:"Month grid",weekTimeline:"Week timeline",dayTimeline:"Day timeline",yearView:"Year view",customMultiDay:"Custom multi-day"}},customDayCount:{name:"Custom view day count",description:"Number of days to show in custom multi-day view",placeholder:"3"},firstDayOfWeek:{name:"First day of week",description:"Which day should be the first column in week views"},showWeekends:{name:"Show weekends",description:"Display weekends in calendar views"},showWeekNumbers:{name:"Show week numbers",description:"Display week numbers in calendar views"},showTodayHighlight:{name:"Show today highlight",description:"Highlight the current day in calendar views"},showCurrentTimeIndicator:{name:"Show current time indicator",description:"Display a line showing the current time in timeline views"},selectionMirror:{name:"Selection mirror",description:"Show a visual preview while dragging to select time ranges"},calendarLocale:{name:"Calendar locale",description:'Calendar locale for date formatting and calendar system (e.g., "en", "fa" for Farsi/Persian, "de" for German). Leave empty to auto-detect from browser.',placeholder:"Auto-detect",invalidLocale:"Invalid locale. Please enter a valid language tag (e.g., 'en', 'de', 'fr-FR')."}},defaultEventVisibility:{header:"Default event visibility",description:"Configure which event types are visible by default when opening the calendar. Users can still toggle these on/off in the calendar view.",showScheduledTasks:{name:"Show scheduled tasks",description:"Display tasks with scheduled dates by default"},showDueDates:{name:"Show due dates",description:"Display task due dates by default"},showDueWhenScheduled:{name:"Show due dates when scheduled",description:"Display due dates even for tasks that already have scheduled dates"},showTimeEntries:{name:"Show time entries",description:"Display completed time tracking entries by default"},showRecurringTasks:{name:"Show recurring tasks",description:"Display recurring task instances by default"},showICSEvents:{name:"Show ICS events",description:"Display events from ICS subscriptions by default"}},timeSettings:{header:"Time settings",description:"Configure time-related display settings for timeline views.",timeSlotDuration:{name:"Time slot duration",description:"Duration of each time slot in timeline views",options:{fifteenMinutes:"15 minutes",thirtyMinutes:"30 minutes",sixtyMinutes:"60 minutes"}},startTime:{name:"Start time",description:"Earliest time shown in timeline views (HH:MM format)",placeholder:"06:00"},endTime:{name:"End time",description:"Latest time shown in timeline views (HH:MM format). Use values above 24:00 to show early next-day hours, such as 26:00 for 2 AM.",placeholder:"26:00"},initialScrollTime:{name:"Initial scroll time",description:"Time to scroll to when opening timeline views (HH:MM format)",placeholder:"09:00"},eventMinHeight:{name:"Event minimum height",description:"Minimum height for events in timeline views (pixels)",placeholder:"15"}},uiElements:{header:"UI elements",description:"Configure the display of various UI elements.",showTrackedTasksInStatusBar:{name:"Show tracked tasks in status bar",description:"Display currently tracked tasks in Obsidian's status bar"},showRelationshipsWidget:{name:"Show relationships widget",description:"Display a widget showing all relationships for the current note (subtasks, projects, dependencies)"},relationshipsPosition:{name:"Relationships position",description:"Where to position the relationships widget",options:{top:"Top of note",bottom:"Bottom of note"}},showTaskCardInNote:{name:"Show task card in note",description:"Display a task card widget at the top of task notes showing the task details and actions"},showCompletedTaskStrikethrough:{name:"Strike through completed task titles",description:"Draw a line through completed task card titles. Turn off to keep completed tasks easier to read"},showExpandableSubtasks:{name:"Show expandable subtasks",description:"Allow expanding/collapsing subtask sections in task cards"},expandSubtasksByDefault:{name:"Expand subtasks by default",description:"Show project subtasks expanded when task cards are rendered"},subtaskChevronPosition:{name:"Subtask chevron position",description:"Position of expand/collapse chevrons in task cards",options:{left:"Left side",right:"Right side"}},viewsButtonAlignment:{name:"Views button alignment",description:"Alignment of the views/filters button in the task interface",options:{left:"Left side",right:"Right side"}}},projectAutosuggest:{header:"Project autosuggest",description:"Customize how project suggestions display during task creation.",requiredTags:{name:"Required tags",description:"Show only notes with any of these tags (comma-separated). Leave empty to show all notes.",placeholder:"project, active, important"},includeFolders:{name:"Include folders",description:"Show only notes in these folders (comma-separated paths). Leave empty to show all folders.",placeholder:"Projects/, Work/Active, Personal"},requiredPropertyKey:{name:"Required property key",description:"Show only notes where this frontmatter property matches the value below. Leave empty to ignore.",placeholder:"type"},requiredPropertyValue:{name:"Required property value",description:"Only notes where the property equals this value are suggested. Leave empty to require the property to exist.",placeholder:"project"},customizeDisplay:{name:"Customize suggestion display",description:"Show advanced options to configure how project suggestions appear and what information they display."},enableFuzzyMatching:{name:"Enable fuzzy matching",description:"Allow typos and partial matches in project search. May be slower in large vaults."},displayRowsHelp:"Configure up to 3 lines of information to show for each project suggestion.",displayRows:{row1:{name:"Row 1",description:"Format: {property|flags}. Properties: title, aliases, file.path, file.parent. Flags: n(Label) shows label, s makes searchable. Example: {title|n(Title)|s}",placeholder:"{title|n(Title)}"},row2:{name:"Row 2 (optional)",description:"Common patterns: {aliases|n(Aliases)}, {file.parent|n(Folder)}, literal:Custom Text",placeholder:"{aliases|n(Aliases)}"},row3:{name:"Row 3 (optional)",description:"Additional info like {file.path|n(Path)} or custom frontmatter fields",placeholder:"{file.path|n(Path)}"}},quickReference:{header:"Quick reference",properties:"Available properties: title, aliases, file.path, file.parent, or any frontmatter field",labels:'Add labels: {title|n(Title)} \u2192 "Title: My Project"',searchable:"Make searchable: {description|s} includes description in + search",staticText:"Static text: literal:My Custom Label",alwaysSearchable:"Filename, title, and aliases are always searchable by default."}},dataStorage:{name:"Storage location",description:"Where to store Pomodoro session history",pluginData:"Plugin data (recommended)",dailyNotes:"Daily notes",notices:{locationChanged:"Pomodoro storage location changed to {location}"}},notifications:{description:"Configure task reminder notifications and alerts."},performance:{description:"Configure plugin performance and behavioral options."},timeTrackingSection:{description:"Configure automatic time tracking behaviors."},recurringSection:{description:"Configure behavior for recurring task management."}},integrations:{mobileCalendar:{disable:{name:"Disable calendar integrations on mobile",description:"Skip Google, Microsoft, and ICS calendar loading on Obsidian mobile. Desktop calendar integrations are unchanged."},status:{name:"Calendar integrations are disabled on this mobile device",description:"Turn this setting off and reload Obsidian mobile to resume calendar loading."}},basesIntegration:{header:"Bases integration",description:"Configure integration with the Obsidian Bases plugin. This is an experimental feature, and currently relies on undocumented Obsidian APIs. Behaviour may change or break.",enable:{name:"Enable Bases integration",description:"Enable TaskNotes views to be used within Obsidian Bases plugin. Bases plugin must be enabled for this to work."},viewCommands:{header:"Views & base files",description:"TaskNotes uses Obsidian Bases files (.base) to power its views. These files are generated automatically on startup if they don't exist, configured with your current settings (task identification, field mappings, statuses, etc.).",descriptionRegen:'Base files are not automatically updated when you change settings. To apply new settings, use "Update files" below, delete the existing .base files and restart Obsidian, or edit them manually.',pomodoroDailyNotesHint:"The generated Pomodoro statistics base reads Pomodoro history from daily notes; if your history is still stored in plugin data, migrate it in settings before using that base file.",docsLink:"View documentation for available formulas and customization options",docsLinkUrl:"https://tasknotes.dev/views/default-base-templates",commands:{miniCalendar:"Open mini calendar view",kanban:"Open Kanban view",tasks:"Open tasks view",advancedCalendar:"Open advanced calendar view",agenda:"Open agenda view",pomodoroStats:"Pomodoro statistics base",relationships:"Relationships widget"},fileLabel:"File: {path}",resetButton:"Reset",resetTooltip:"Reset to default path"},autoCreateDefaultFiles:{name:"Auto-create default files",description:"Automatically create missing default base view files on startup. Disable to prevent deleted sample files from being recreated."},createDefaultFiles:{name:"Create default files",description:"Create the default .base files in TaskNotes/Views/ directory. Existing files will not be overwritten.",buttonText:"Create files"},updateDefaultFiles:{name:"Update default files",description:"Overwrite the configured default .base files with templates generated from your current TaskNotes settings.",buttonText:"Update files",confirmTitle:"Update default base files",confirmMessage:"This will overwrite the configured default .base files with freshly generated templates. Any manual edits in those files will be replaced.",confirmText:"Update files"},exportV3Views:{name:"Export v3 saved views to Bases",description:"Convert all your saved views from TaskNotes v3 into a single .base file with multiple views. This helps migrate your v3 filter configurations to the new Bases system.",buttonText:"Export v3 views",noViews:"No saved views to export",fileExists:"File already exists",confirmOverwrite:'A file named "{fileName}" already exists. Overwrite it?',success:"Exported {count} saved views to {filePath}",error:"Failed to export views: {message}"},notices:{enabled:"Bases integration enabled. Please restart Obsidian to complete the setup.",disabled:"Bases integration disabled. Please restart Obsidian to complete the removal."}},calendarSubscriptions:{header:"Calendar subscriptions",description:"Subscribe to external calendars via ICS/iCal URLs to view events alongside your tasks.",defaultNoteTemplate:{name:"Default note template",description:"Path to template file for notes created from ICS events",placeholder:"Templates/Event Template.md"},defaultNoteFolder:{name:"Default note folder",description:"Folder for notes created from ICS events",placeholder:"Calendar/Events"},filenameFormat:{name:"ICS note filename format",description:"How filenames are generated for notes created from ICS events",options:{title:"Event title",zettel:"Zettelkasten format",timestamp:"Timestamp",custom:"Custom template"}},customTemplate:{name:"Custom ICS filename template",description:"Template for custom ICS event filenames",placeholder:"{date}-{title}"},useICSEndAsDue:{name:"Use ICS event end time as task due date",description:"When enabled, tasks created from calendar events will have their due date set to the event's end time. For all-day events, the due date will be set to the event date. For timed events, the due date will include the end time."},recurringEventRelatedNotesMode:{name:"Recurring event related notes",description:"Choose whether notes linked to one recurrence of an external calendar event appear across the loaded series or only on the selected instance.",options:{series:"Series-wide",instance:"Selected instance only"}}},subscriptionsList:{header:"Calendar subscriptions list",addSubscription:{name:"Add calendar subscription",description:"Add a new calendar subscription from ICS/iCal URL or local file",buttonText:"Add subscription"},refreshAll:{name:"Refresh all subscriptions",description:"Manually refresh all enabled calendar subscriptions",buttonText:"Refresh all"},newCalendarName:"New calendar",emptyState:"No calendar subscriptions configured. Add a subscription to sync external calendars.",notices:{addSuccess:"New calendar subscription added - please configure the details",addFailure:"Failed to add subscription",serviceUnavailable:"ICS subscription service not available",refreshSuccess:"All calendar subscriptions refreshed successfully",refreshFailure:"Failed to refresh some calendar subscriptions",updateFailure:"Failed to update subscription",deleteSuccess:'Deleted subscription "{name}"',deleteFailure:"Failed to delete subscription",enableFirst:"Enable the subscription first",refreshSubscriptionSuccess:'Refreshed "{name}"',refreshSubscriptionFailure:"Failed to refresh subscription"},labels:{enabled:"Enabled:",name:"Name:",type:"Type:",url:"URL:",filePath:"File path:",color:"Color:",refreshMinutes:"Refresh (min):"},typeOptions:{remote:"Remote URL",local:"Local file"},placeholders:{calendarName:"Calendar name",url:"ICS/iCal URL",filePath:"Local file path (e.g., Calendar.ics)",localFile:"Calendar.ics"},statusLabels:{enabled:"Enabled",disabled:"Disabled",remote:"Remote",localFile:"Local file",remoteCalendar:"Remote calendar",localFileCalendar:"Local file",synced:"Synced {timeAgo}",error:"Error"},actions:{refreshNow:"Refresh now",deleteSubscription:"Delete subscription"},refreshNow:"Refresh now",confirmDelete:{title:"Delete subscription",message:'Are you sure you want to delete the subscription "{name}"? This action cannot be undone.',confirmText:"Delete"}},autoExport:{header:"Automatic ICS export",description:"Automatically export all your tasks to an ICS file.",enable:{name:"Enable automatic export",description:"Automatically keep an ICS file updated with all your tasks"},filePath:{name:"Export file path",description:"Path where the ICS file will be saved (relative to vault root)",placeholder:"tasknotes-calendar.ics"},interval:{name:"Update interval (between 5 and 1440 minutes)",description:"How often to update the export file",placeholder:"60"},useDuration:{name:"Use task duration for event length",description:"When enabled, uses the task's time estimate (duration) instead of due date for the calendar event end time. This is useful for GTD workflows where scheduled + duration represents work planning, while due date represents deadlines."},excludeCompleted:{name:"Exclude completed tasks",description:"When enabled, completed tasks are omitted from ICS exports. Completed statuses are taken from your task statuses settings."},excludeArchived:{name:"Exclude archived tasks",description:"When enabled, archived tasks are omitted from ICS exports."},requireDueDate:{name:"Require due date",description:"When enabled, only tasks with a due date are included in ICS exports."},requireScheduledDate:{name:"Require scheduled date",description:"When enabled, only tasks with a scheduled date are included in ICS exports."},exportNow:{name:"Export now",description:"Manually trigger an immediate export",buttonText:"Export now"},status:{title:"Export status:",lastExport:"Last export: {time}",nextExport:"Next export: {time}",noExports:"No exports yet",notScheduled:"Not scheduled",notInitialized:"Auto export service not initialized - please restart Obsidian",serviceNotInitialized:"Service not initialized - please restart Obsidian"},notices:{reloadRequired:"Please reload Obsidian for the automatic export changes to take effect.",exportSuccess:"Tasks exported successfully",exportFailure:"Export failed - check console for details",serviceUnavailable:"Auto export service not available"}},googleCalendarExport:{header:"Export tasks to Google Calendar",description:"Automatically sync your tasks to Google Calendar as events. Requires Google Calendar to be connected above.",enable:{name:"Enable task export",description:"When enabled, tasks with dates will be automatically synced to Google Calendar as events."},targetCalendar:{name:"Target calendar",description:"Select which calendar to create task events in.",placeholder:"Select a calendar...",connectFirst:"Connect Google Calendar first",primarySuffix:" (Primary)"},syncTrigger:{name:"Sync trigger",description:"Which task date should trigger calendar event creation.",options:{scheduled:"Scheduled date",due:"Due date",both:"Both (prefer scheduled)"}},allDayEvents:{name:"Create as all-day events",description:"When enabled, tasks are created as all-day events. When disabled, uses time estimate for duration."},defaultDuration:{name:"Default event duration",description:"Duration in minutes for timed events (used when task has no time estimate)."},eventTitleTemplate:{name:"Event title template",description:"Template for event titles. Available variables: {{title}}, {{status}}, {{priority}}",placeholder:"{{title}}"},includeDescription:{name:"Include task details in description",description:"Add task metadata (priority, status, tags, etc.) to the event description."},includeObsidianLink:{name:"Include Obsidian link",description:"Add a link back to the task in Obsidian in the event description."},defaultReminder:{name:"Default reminder",description:"Add popup reminders to timed Google Calendar events. Enter minutes before the event, separated by commas. Leave empty to use calendar defaults. Common values: 15, 30, 60, 1440."},automaticSyncBehavior:{header:"Automatic sync behavior"},syncOnCreate:{name:"Sync on task create",description:"Automatically create calendar event when a new task is created."},syncOnUpdate:{name:"Sync on task update",description:"Automatically update calendar event when a task is modified."},syncOnComplete:{name:"Sync on task complete",description:"Update calendar event when a task is completed (adds checkmark to title)."},syncOnDelete:{name:"Delete event on task delete",description:"Remove calendar event when the corresponding task is deleted."},manualSyncActions:{header:"Manual sync actions"},syncAllTasks:{name:"Sync all tasks",description:"Sync all existing tasks to Google Calendar. This will create events for tasks that haven't been synced yet.",buttonText:"Sync all"},unlinkAllTasks:{name:"Unlink all tasks",description:"Remove all task-event links without deleting calendar events.",buttonText:"Unlink all",confirmTitle:"Unlink all tasks",confirmMessage:"This will remove all links between tasks and calendar events. The calendar events will remain but will no longer be updated when tasks change. Are you sure?",confirmButtonText:"Unlink all"},notices:{notEnabled:"Google Calendar export is not enabled. Configure it in Settings > Integrations.",notEnabledOrConfigured:"Google Calendar export is not enabled or configured",serviceNotAvailable:"Task calendar sync service not available",syncResults:"Synced: {synced}, Failed: {failed}, Skipped: {skipped}",taskSynced:"Task synced to Google Calendar",noActiveFile:"No file is currently active",notATask:"Current file is not a task",noDateToSync:"Task has no scheduled or due date to sync",syncFailed:"Failed to sync task to Google Calendar: {message}",connectionExpired:"Google Calendar connection expired. Please reconnect in Settings > Integrations.",syncingTasks:"Syncing {total} tasks to Google Calendar...",syncComplete:"Sync complete: {synced} synced, {failed} failed, {skipped} skipped",eventsDeletedAndUnlinked:"All events deleted and unlinked",tasksUnlinked:"All task links removed"},eventDescription:{untitledTask:"Untitled task",priority:"Priority: {value}",status:"Status: {value}",due:"Due: {value}",scheduled:"Scheduled: {value}",timeEstimate:"Time Estimate: {value}",tags:"Tags: {value}",contexts:"Contexts: {value}",projects:"Projects: {value}",openInObsidian:"Open in Obsidian"}},httpApi:{header:"HTTP API",description:"Enable HTTP API for external integrations and automations.",enable:{name:"Enable HTTP API",description:"Start local HTTP server for API access"},port:{name:"API port",description:"Port number for the HTTP API server",placeholder:"3000"},authToken:{name:"API authentication token",description:"Token required for API authentication (leave empty for no auth)",placeholder:"your-secret-token"},mcp:{enable:{name:"Enable MCP server",description:"Expose TaskNotes tools via Model Context Protocol at /mcp endpoint. Requires HTTP API to be enabled."}},endpoints:{header:"Available API endpoints",expandIcon:"\u25B6",collapseIcon:"\u25BC"}},webhooks:{header:"Webhooks",description:{overview:"Webhooks send real-time notifications to external services when TaskNotes events occur.",usage:"Configure webhooks to integrate with automation tools, sync services, or custom applications."},addWebhook:{name:"Add webhook",description:"Register a new webhook endpoint",buttonText:"Add webhook"},emptyState:{message:"No webhooks configured. Add a webhook to receive real-time notifications.",buttonText:"Add webhook"},labels:{active:"Active:",url:"URL:",events:"Events:",transform:"Transform:"},placeholders:{url:"Webhook URL",noEventsSelected:"No events selected",rawPayload:"Raw payload (no transform)"},statusLabels:{active:"Active",inactive:"Inactive",created:"Created {timeAgo}"},actions:{editEvents:"Edit events",delete:"Delete"},editEvents:"Edit events",notices:{urlUpdated:"Webhook URL updated",enabled:"Webhook enabled",disabled:"Webhook disabled",created:"Webhook created successfully",deleted:"Webhook deleted",updated:"Webhook updated"},confirmDelete:{title:"Delete webhook",message:`Are you sure you want to delete this webhook?
|
||
|
||
URL: {url}
|
||
|
||
This action cannot be undone.`,confirmText:"Delete"},cardHeader:"Webhook",cardFields:{active:"Active:",url:"URL:",events:"Events:",transform:"Transform:"},eventsDisplay:{noEvents:"No events selected"},transformDisplay:{noTransform:"Raw payload (no transform)"},secretModal:{title:"Webhook secret generated",description:"Your webhook secret has been generated. Save this secret as you won't be able to view it again:",usage:"Use this secret to verify webhook payloads in your receiving application.",gotIt:"Got it"},editModal:{title:"Edit webhook",eventsHeader:"Events to subscribe to"},events:{taskCreated:{label:"Task created",description:"When new tasks are created"},taskUpdated:{label:"Task updated",description:"When tasks are modified"},taskCompleted:{label:"Task completed",description:"When tasks are marked complete"},taskDeleted:{label:"Task deleted",description:"When tasks are deleted"},taskArchived:{label:"Task archived",description:"When tasks are archived"},taskUnarchived:{label:"Task unarchived",description:"When tasks are unarchived"},timeStarted:{label:"Time started",description:"When time tracking starts"},timeStopped:{label:"Time stopped",description:"When time tracking stops"},pomodoroStarted:{label:"Pomodoro started",description:"When Pomodoro sessions begin"},pomodoroCompleted:{label:"Pomodoro completed",description:"When Pomodoro sessions finish"},pomodoroInterrupted:{label:"Pomodoro interrupted",description:"When Pomodoro sessions are stopped"},recurringCompleted:{label:"Recurring instance completed",description:"When recurring task instances complete"},reminderTriggered:{label:"Reminder triggered",description:"When task reminders activate"}},modals:{secretGenerated:{title:"Webhook secret generated",description:"Your webhook secret has been generated. Save this secret as you won't be able to view it again:",usage:"Use this secret to verify webhook payloads in your receiving application.",buttonText:"Got it"},edit:{title:"Edit webhook",eventsSection:"Events to subscribe to",transformSection:"Transform configuration (optional)",headersSection:"Headers configuration",transformFile:{name:"Transform file",description:"Path to a .json template file in your vault that transforms webhook payloads",placeholder:"simple-template.json"},customHeaders:{name:"Include custom headers",description:"Include TaskNotes headers (event type, signature, delivery ID). Turn off for Discord, Slack, and other services with strict CORS policies."},buttons:{cancel:"Cancel",save:"Save changes"},notices:{selectAtLeastOneEvent:"Please select at least one event"}},add:{title:"Add webhook",eventsSection:"Events to subscribe to",transformSection:"Transform configuration (optional)",headersSection:"Headers configuration",url:{name:"Webhook URL",description:"The endpoint where webhook payloads will be sent",placeholder:"https://your-service.com/webhook"},transformFile:{name:"Transform file",description:"Path to a .json template file in your vault that transforms webhook payloads",placeholder:"simple-template.json"},customHeaders:{name:"Include custom headers",description:"Include TaskNotes headers (event type, signature, delivery ID). Turn off for Discord, Slack, and other services with strict CORS policies."},transformHelp:{title:"JSON transform templates customize webhook payloads:",jsFiles:"",jsDescription:"",jsonFiles:".json files:",jsonDescription:" Templates with ",jsonVariable:"${data.task.title}",leaveEmpty:"Leave empty:",leaveEmptyDescription:" Send raw data",example:"Example:",exampleFile:"simple-template.json"},buttons:{cancel:"Cancel",add:"Add webhook"},notices:{urlRequired:"Webhook URL is required",selectAtLeastOneEvent:"Please select at least one event"}}}},otherIntegrations:{header:"Other plugin integrations",description:"Configure integrations with other Obsidian plugins."},mdbaseSpec:{header:"mdbase type definitions",learnMore:"Learn more about mdbase-spec",enable:{name:"Generate mdbase type definitions",description:"Generate and maintain mdbase type files (mdbase.yaml and _types/task.md) at the vault root as your settings change."}},timeFormats:{justNow:"Just now",minutesAgo:"{minutes} minute{plural} ago",hoursAgo:"{hours} hour{plural} ago",daysAgo:"{days} day{plural} ago"}}},notices:{languageChanged:"Language changed to {language}.",releaseAvailable:{message:"TaskNotes {version} is available.",action:"Open in community plugins"},exportTasksFailed:"Failed to export tasks as ICS file",icsNoteCreatedSuccess:"Note created successfully",icsCreationModalOpenFailed:"Failed to open creation modal",icsNoteLinkSuccess:'Linked note "{fileName}" to ICS event',icsTaskCreatedSuccess:"Task created: {title}",icsRelatedItemsRefreshed:"Related notes refreshed",icsFileNotFound:"File not found or invalid",icsFileOpenFailed:"Failed to open file",timeblockAttachmentExists:'"{fileName}" is already attached',timeblockAttachmentAdded:'Added "{fileName}" as attachment',timeblockAttachmentRemoved:'Removed "{fileName}" from attachments',timeblockFileTypeNotSupported:'Cannot open "{fileName}" - file type not supported',timeblockTitleRequired:"Please enter a title for the timeblock",timeblockUpdatedSuccess:'Timeblock "{title}" updated successfully',timeblockUpdateFailed:"Failed to update timeblock. Check console for details.",timeblockDeletedSuccess:'Timeblock "{title}" deleted successfully',timeblockDeleteFailed:"Failed to delete timeblock. Check console for details.",timeblockRequiredFieldsMissing:"Please fill in all required fields",agendaLoadingFailed:"Error loading agenda. Please try refreshing.",statsLoadingFailed:"Error loading project details."},commands:{openCalendarView:"Open mini calendar view",openAdvancedCalendarView:"Open calendar view",openTasksView:"Open tasks view",openNotesView:"Open notes view",openAgendaView:"Open agenda view",openPomodoroView:"Open Pomodoro timer",openKanbanView:"Open Kanban board",updateDefaultBaseFiles:"Update default base files",openPomodoroStats:"Open Pomodoro statistics",openStatisticsView:"Open task & project statistics",createNewTask:"Create new task",convertCurrentNoteToTask:{name:"Convert current note to task",noActiveFile:"No active file to convert",alreadyTask:"This note is already a task",success:"Converted '{title}' to a task"},convertToTaskNote:"Convert checkbox task to TaskNote",convertAllTasksInNote:"Convert all tasks in note",insertTaskNoteLink:"Insert tasknote link",createInlineTask:"Create new inline task",quickActionsCurrentTask:"Quick actions for current task",quickActionsTaskUnderCursor:"Quick actions for task under cursor",editCurrentTask:"Edit current task",cycleCurrentTaskStatus:"Cycle current task status",cycleCurrentTaskPriority:"Cycle current task priority",addProjectToCurrentTask:"Add project to current task",addSubtaskToCurrentNote:"Add subtask to current note",goToTodayNote:"Go to today's note",startPomodoro:"Start Pomodoro timer",stopPomodoro:"Stop Pomodoro timer",pauseResumePomodoro:"Pause/resume Pomodoro timer",refreshCache:"Refresh cache",exportAllTasksIcs:"Export all tasks as ICS file",syncAllTasksGoogleCalendar:"Sync all tasks to Google Calendar",syncCurrentTaskGoogleCalendar:"Sync current task to Google Calendar",viewReleaseNotes:"View release notes",startTimeTrackingWithSelector:"Start time tracking (select task)",editTimeEntries:"Edit time entries (select task)",createOrOpenTask:"Create or open task",createOrOpenTaskWithTracking:"Create or open task and start time tracking",rolloverOverdueScheduledTasks:"Postpone overdue scheduled tasks to today"},modals:{deviceCode:{title:"Google Calendar authorization",instructions:{intro:"To connect your Google Calendar, please follow these steps:"},steps:{open:"Open",inBrowser:"in your browser",enterCode:"Enter this code when prompted:",signIn:"Sign in with your Google account and grant access",returnToObsidian:"Return to Obsidian (this window will close automatically)"},codeLabel:"Your code:",copyCodeAriaLabel:"Copy code",waitingForAuthorization:"Waiting for authorization...",openBrowserButton:"Open browser",cancelButton:"Cancel",expiresMinutesSeconds:"Code expires in {minutes}m {seconds}s",expiresSeconds:"Code expires in {seconds}s"},icsEventInfo:{calendarEventHeading:"Calendar event",titleLabel:"Title",calendarLabel:"Calendar",dateTimeLabel:"Date & time",locationLabel:"Location",descriptionLabel:"Description",urlLabel:"URL",relatedNotesHeading:"Related notes & tasks",noRelatedItems:"No related notes or tasks found for this event.",typeTask:"Task",typeNote:"Note",actionsHeading:"Actions",createFromEventLabel:"Create from event",createFromEventDesc:"Create a new note or task from this calendar event",linkExistingLabel:"Link existing",linkExistingDesc:"Link an existing note to this calendar event"},timeblockInfo:{editHeading:"Edit timeblock",dateTimeLabel:"Date & time: ",titleLabel:"Title",titleDesc:"Title for your timeblock",titlePlaceholder:"e.g., Deep work session",descriptionLabel:"Description",descriptionDesc:"Optional description for the timeblock",descriptionPlaceholder:"Focus on new features, no interruptions",colorLabel:"Color",colorDesc:"Optional color for the timeblock",colorPlaceholder:"#3b82f6",attachmentsLabel:"Attachments",attachmentsDesc:"Files or notes linked to this timeblock",addAttachmentButton:"Add attachment",addAttachmentTooltip:"Select a file or note using fuzzy search",deleteButton:"Delete timeblock",saveButton:"Save changes",deleteConfirmationTitle:"Delete timeblock"},timeblockCreation:{heading:"Create timeblock",dateLabel:"Date: ",titleLabel:"Title",titleDesc:"Title for your timeblock",titlePlaceholder:"e.g., Deep work session",startTimeLabel:"Start time",startTimeDesc:"When the timeblock starts",startTimePlaceholder:"09:00",endTimeLabel:"End time",endTimeDesc:"When the timeblock ends",endTimePlaceholder:"11:00",descriptionLabel:"Description",descriptionDesc:"Optional description for the timeblock",descriptionPlaceholder:"Focus on new features, no interruptions",colorLabel:"Color",colorDesc:"Optional color for the timeblock",colorPlaceholder:"#3b82f6",attachmentsLabel:"Attachments",attachmentsDesc:"Files or notes to link to this timeblock",addAttachmentButton:"Add attachment",addAttachmentTooltip:"Select a file or note using fuzzy search",createButton:"Create timeblock"},calendarEventCreation:{heading:"Create calendar event",dateTimeLabel:"Date & time: ",titleLabel:"Title",titleDesc:"Title for the calendar event",titlePlaceholder:"e.g., Team meeting",calendarLabel:"Calendar",calendarDesc:"Which calendar to create the event on",descriptionLabel:"Description",descriptionDesc:"Optional description for the event",descriptionPlaceholder:"Add details about this event...",locationLabel:"Location",locationDesc:"Optional location for the event",locationPlaceholder:"e.g., Conference Room A",createButton:"Create event",titleRequired:"Event title is required",noCalendarSelected:"No calendar selected",success:'Calendar event "{title}" created',error:"Failed to create calendar event: {message}"},icsNoteCreation:{heading:"Create from ICS event",titleLabel:"Title",titleDesc:"Title for the new content",folderLabel:"Folder",folderDesc:"Destination folder (leave empty for vault root)",folderPlaceholder:"folder/subfolder",createButton:"Create",startLabel:"Start: ",endLabel:"End: ",locationLabel:"Location: ",calendarLabel:"Calendar: ",useTemplateLabel:"Use template",useTemplateDesc:"Apply a template when creating the content",templatePathLabel:"Template path",templatePathDesc:"Path to the template file",templatePathPlaceholder:"templates/ics-note-template.md"},unscheduledTasksSelector:{title:"Unscheduled tasks",placeholder:"Type to search for unscheduled tasks...",instructions:{navigate:"to navigate",schedule:"to schedule",dismiss:"to dismiss"}},migration:{title:"Migrate to new recurrence system",description:"TaskNotes now uses industry-standard RRULE patterns for recurrence, which enables more complex schedules and better compatibility with other apps.",tasksFound:"{count} task(s) with old recurrence patterns detected",noMigrationNeeded:"No tasks require migration",warnings:{title:"Before you proceed:",backup:"Back up your vault before migrating",conversion:"Old recurrence patterns will be converted to new format",normalUsage:"You can continue using TaskNotes normally during migration",permanent:"This change is permanent and cannot be automatically undone"},benefits:{title:"Benefits of the new system:",powerfulPatterns:"Complex recurrence patterns (e.g., 'every 2nd Tuesday')",performance:"Better performance with recurring tasks",compatibility:"Standard recurrence format compatible with other apps",nlp:"Enhanced natural language processing support"},progress:{title:"Migration progress",preparing:"Preparing migration...",completed:"Migration completed successfully",failed:"Migration failed"},buttons:{migrate:"Start migration",completed:"Close"},errors:{title:"Errors during migration:"},notices:{completedWithErrors:"Migration completed with some errors. Check the error list above.",success:"All tasks migrated successfully!",failed:"Migration failed. Please check the console for details."},prompt:{message:"TaskNotes detected tasks using the old recurrence format. Would you like to migrate them to the new system now?",migrateNow:"Migrate now",remindLater:"Remind me later"}},task:{titlePlaceholder:"What needs to be done?",titleLabel:"Title",titleDetailedPlaceholder:"Task title...",detailsLabel:"Details",detailsPlaceholder:"Add more details...",projectsLabel:"Projects",projectsAdd:"Add project",projectsTooltip:"Select a project note using fuzzy search",projectsRemoveTooltip:"Remove project",contextsLabel:"Contexts",contextsPlaceholder:"context1, context2",tagsLabel:"Tags",tagsPlaceholder:"tag1, tag2",timeEstimateLabel:"Time estimate (minutes)",timeEstimatePlaceholder:"30",unsavedChanges:{title:"Unsaved changes",message:"You have unsaved changes. Do you want to save them?",save:"Save changes",discard:"Discard changes",cancel:"Keep editing"},dependencies:{blockedBy:"Blocked by",blocking:"Blocking",placeholder:"[[Task Note]]",addTaskButton:"Add task",selectTaskTooltip:"Select a task note using fuzzy search",removeTaskTooltip:"Remove task"},organization:{projects:"Projects",subtasks:"Subtasks",addToProject:"Add to project",addToProjectButton:"Add to project",addSubtasks:"Add subtasks",addSubtasksButton:"Add subtask",addSubtasksTooltip:"Select tasks to make them subtasks of this task",removeSubtaskTooltip:"Remove subtask",notices:{noEligibleSubtasks:"No eligible tasks available to assign as subtasks",subtaskSelectFailed:"Failed to open subtask selector"}},customFieldsLabel:"Custom fields",actions:{due:"Set due date",scheduled:"Set scheduled date",status:"Set status",priority:"Set priority",recurrence:"Set recurrence",reminders:"Set reminders"},buttons:{openNote:"Open note",save:"Save"},tooltips:{dueValue:"Due: {value}",scheduledValue:"Scheduled: {value}",statusValue:"Status: {value}",priorityValue:"Priority: {value}",recurrenceValue:"Recurrence: {value}",remindersSingle:"1 reminder set",remindersPlural:"{count} reminders set"},dateMenu:{dueTitle:"Set due date",scheduledTitle:"Set scheduled date"},userFields:{textPlaceholder:"Enter {field}...",numberPlaceholder:"0",datePlaceholder:"YYYY-MM-DD",listPlaceholder:"item1, item2, item3",pickDate:"Pick {field} date"},recurrence:{daily:"Daily",weekly:"Weekly",everyTwoWeeks:"Every 2 weeks",weekdays:"Weekdays",weeklyOn:"Weekly on {days}",monthly:"Monthly",everyThreeMonths:"Every 3 months",monthlyOnOrdinal:"Monthly on the {ordinal}",monthlyByWeekday:"Monthly (by weekday)",yearly:"Yearly",yearlyOn:"Yearly on {month} {day}",custom:"Custom",countSuffix:"{count} times",untilSuffix:"until {date}",ordinal:"{number}{suffix}"}},taskSelector:{title:"Select task",placeholder:"Type to search for tasks...",instructions:{navigate:"to navigate",select:"to select",dismiss:"to cancel"},notices:{noteNotFound:'Could not find note "{name}"'},dueDate:{overdue:"Due: {date} (overdue)",today:"Due: Today"}},taskSelectorWithCreate:{title:"Create or open task",placeholder:"Search tasks or type to create new...",instructions:{create:"to create new task"},footer:{createLabel:" to create: "},notices:{emptyQuery:"Please enter a task description",invalidTitle:"Could not parse a valid task title"}},taskCreation:{title:"Create task",actions:{fillFromNaturalLanguage:"Fill form from natural language",hideDetailedOptions:"Hide detailed options",showDetailedOptions:"Show detailed options"},nlPlaceholder:"Buy groceries tomorrow at 3pm @home #errands",notices:{titleRequired:"Please enter a task title",success:'Task "{title}" created successfully',successShortened:'Task "{title}" created successfully (filename shortened due to length)',failure:"Failed to create task: {message}",blockingUnresolved:"Could not resolve: {entries}",openCreatedTaskFailure:"Task created, but the task note could not be opened."}},taskEdit:{title:"Edit task",sections:{completions:"Completions",taskInfo:"Task information"},metadata:{totalTrackedTime:"Total tracked time:",due:"Due:",scheduled:"Scheduled:",created:"Created:",modified:"Modified:",file:"File:"},buttons:{archive:"Archive",unarchive:"Unarchive"},notices:{titleRequired:"Please enter a task title",noChanges:"No changes to save",updateSuccess:'Task "{title}" updated successfully',updateFailure:"Failed to update task: {message}",dependenciesUpdateSuccess:"Dependencies updated",blockingUnresolved:"Could not resolve: {entries}",fileMissing:"Could not find task file: {path}",openNoteFailure:"Failed to open task note",archiveSuccess:"Task {action} successfully",archiveFailure:"Failed to archive task",deleteSuccess:'Task "{title}" deleted successfully',deleteFailure:"Failed to delete task: {message}"},deleteConfirmation:{title:"Delete task",message:'Are you sure you want to delete "{title}"? This moves the task note to Obsidian trash.',confirm:"Delete task"},archiveAction:{archived:"archived",unarchived:"unarchived"}},storageLocation:{title:{migrate:"Migrate Pomodoro data?",switch:"Switch to daily notes storage?"},message:{migrate:"This will migrate your existing Pomodoro session data to daily notes frontmatter. The data will be grouped by date and stored in each daily note.",switch:"Pomodoro session data will be stored in daily notes frontmatter instead of the plugin data file."},whatThisMeans:"What this means:",bullets:{dailyNotesRequired:"Daily notes must be enabled in the core daily notes plugin or periodic notes",storedInNotes:"Data will be stored in your daily notes frontmatter",migrateData:"Existing plugin data will be migrated and then cleared",futureSessions:"Future sessions will be saved to daily notes",dataLongevity:"This provides better data longevity with your notes"},finalNote:{migrate:"\u26A0\uFE0F Make sure you have backups if needed. This change cannot be automatically undone.",switch:"You can switch back to plugin storage at any time in the future."},buttons:{migrate:"Migrate data",switch:"Switch storage"}},dueDate:{title:"Set due date",taskLabel:"Task: {title}",sections:{dateTime:"Due date & time",quickOptions:"Quick options"},descriptions:{dateTime:"Set when this task should be completed"},inputs:{date:{ariaLabel:"Due date for task",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"Due time for task (optional)",placeholder:"HH:MM"}},quickOptions:{today:"Today",todayAriaLabel:"Set due date to today",tomorrow:"Tomorrow",tomorrowAriaLabel:"Set due date to tomorrow",nextWeek:"Next week",nextWeekAriaLabel:"Set due date to next week",now:"Now",nowAriaLabel:"Set due date and time to now",clear:"Clear",clearAriaLabel:"Clear due date"},errors:{invalidDateTime:"Please enter a valid date and time format",updateFailed:"Failed to update due date. Please try again."}},scheduledDate:{title:"Set scheduled date",taskLabel:"Task: {title}",sections:{dateTime:"Scheduled date & time",quickOptions:"Quick options"},descriptions:{dateTime:"Set when you plan to work on this task"},inputs:{date:{ariaLabel:"Scheduled date for task",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"Scheduled time for task (optional)",placeholder:"HH:MM"}},quickOptions:{today:"Today",todayAriaLabel:"Set scheduled date to today",tomorrow:"Tomorrow",tomorrowAriaLabel:"Set scheduled date to tomorrow",nextWeek:"Next week",nextWeekAriaLabel:"Set scheduled date to next week",now:"Now",nowAriaLabel:"Set scheduled date and time to now",clear:"Clear",clearAriaLabel:"Clear scheduled date"},errors:{invalidDateTime:"Please enter a valid date and time format",updateFailed:"Failed to update scheduled date. Please try again."}},timeEntryEditor:{title:"Time Entries - {taskTitle}",addEntry:"Add time entry",noEntries:"No time entries yet",deleteEntry:"Delete entry",startTime:"Start time",endTime:"End time (leave empty if still running)",duration:"Duration (minutes)",durationDesc:"Override calculated duration",durationPlaceholder:"Enter duration in minutes",description:"Description",descriptionPlaceholder:"What did you work on?",calculatedDuration:"Calculated: {minutes} minutes",totalTime:"{hours}h {minutes}m total",totalMinutes:"{minutes}m total",saved:"Time entries saved",saveFailed:"Failed to save time entries",openFailed:"Failed to open time entry editor",noTasksWithEntries:"No tasks have time entries to edit",validation:{missingStartTime:"Start time is required",endBeforeStart:"End time must be after start time"}},timeTracking:{noTasksAvailable:"No tasks available to track time for",started:"Started tracking time for: {taskTitle}",startFailed:"Failed to start time tracking"},timeEntry:{mustHaveSpecificTime:"Time entries must have specific times. Please select a time range in week or day view.",noTasksAvailable:"No tasks available to create time entries for",created:"Time entry created for {taskTitle} ({duration} minutes)",createFailed:"Failed to create time entry"}},contextMenus:{task:{status:"Status",statusSelected:"\u2713 {label}",priority:"Priority",prioritySelected:"\u2713 {label}",tags:"Tags",addTag:"Add tag\u2026",removeTag:"Remove {tag}",removeTagInput:"Remove tag\u2026",tagPlaceholder:"Tag or #tag",clearTags:"Clear tags",dueDate:"Due date",scheduledDate:"Scheduled date",customDates:"Custom dates",reminders:"Reminders",remindBeforeDue:"Remind before due\u2026",remindBeforeScheduled:"Remind before scheduled\u2026",manageReminders:"Manage all reminders\u2026",clearReminders:"Clear all reminders",startTimeTracking:"Start time tracking",stopTimeTracking:"Stop time tracking",editTimeEntries:"Edit time entries",archive:"Archive",unarchive:"Unarchive",openNote:"Open note",openNoteInNewTab:"Open note in new tab",copyTitle:"Copy task title",quickActions:"Quick actions",noteActions:"Note actions",rename:"Rename",renameTitle:"Rename file",renamePlaceholder:"Enter new name",delete:"Delete",deleteTitle:"Delete file",deleteMessage:'Are you sure you want to delete "{name}"?',deleteConfirm:"Delete",copyPath:"Copy path",copyUrl:"Copy Obsidian URL",showInExplorer:"Show in file explorer",addToCalendar:"Add to calendar",calendar:{google:"Google Calendar",outlook:"Outlook Calendar",yahoo:"Yahoo Calendar",downloadIcs:"Download .ics file",syncToGoogle:"Sync to Google Calendar",syncToGoogleNotConfigured:"Google Calendar sync not configured",syncToGoogleSuccess:"Task synced to Google Calendar",syncToGoogleFailed:"Failed to sync task to Google Calendar"},recurrence:"Recurrence",clearRecurrence:"Clear recurrence",customRecurrence:"Custom recurrence...",createSubtask:"Create subtask",dependencies:{title:"Dependencies",addBlockedBy:"Add \u201Cblocked by\u201D\u2026",addBlockedByTitle:"Add tasks this depends on",addBlocking:"Add \u201Cblocking\u201D\u2026",addBlockingTitle:"Add tasks this blocks",removeBlockedBy:"Remove blocked-by\u2026",removeBlocking:"Remove blocking\u2026",unknownDependency:"Unknown",inputPlaceholder:"[[Task Note]]",notices:{noEntries:"Please enter at least one task",blockedByAdded:"{count} dependency added",blockedByRemoved:"Dependency removed",blockingAdded:"{count} dependent task added",blockingRemoved:"Dependent task removed",unresolved:"Could not resolve: {entries}",noEligibleTasks:"No matching tasks available",updateFailed:"Failed to update dependencies"}},organization:{title:"Organization",contexts:"Contexts",addContext:"Add context\u2026",contextPlaceholder:"context",contextSelected:"\u2713 {context}",clearContexts:"Clear contexts",projects:"Projects",addToProject:"Add to project\u2026",subtasks:"Subtasks",addSubtasks:"Add subtasks\u2026",notices:{alreadyInProject:"Task is already in this project",alreadySubtask:"Task is already a subtask of this task",addedToProject:"Added to project: {project}",addedAsSubtask:"Added {subtask} as subtask of {parent}",addToProjectFailed:"Failed to add task to project",addAsSubtaskFailed:"Failed to add task as subtask",updateContextsFailed:"Failed to update contexts",projectSelectFailed:"Failed to open project selector",subtaskSelectFailed:"Failed to open subtask selector",noEligibleSubtasks:"No eligible tasks available to assign as subtasks",currentTaskNotFound:"Current task file not found"}},subtasks:{loading:"Loading subtasks...",noSubtasks:"No subtasks found",loadFailed:"Failed to load subtasks"},markComplete:"Mark complete for this date",markIncomplete:"Mark incomplete for this date",skipInstance:"Skip instance",unskipInstance:"Unskip instance",quickReminders:{atTime:"At time of event",fiveMinutes:"5 minutes before",fifteenMinutes:"15 minutes before",oneHour:"1 hour before",oneDay:"1 day before"},notices:{toggleCompletionFailure:"Failed to toggle recurring task completion: {message}",toggleSkipFailure:"Failed to toggle recurring task skip: {message}",updateDueDateFailure:"Failed to update task due date: {message}",updateScheduledFailure:"Failed to update task scheduled date: {message}",updateCustomDateFailure:"Failed to update {field}: {message}",updateRemindersFailure:"Failed to update reminders",clearRemindersFailure:"Failed to clear reminders",addReminderFailure:"Failed to add reminder",archiveFailure:"Failed to toggle task archive: {message}",copyTitleSuccess:"Task title copied to clipboard",copyFailure:"Failed to copy to clipboard",renameSuccess:'Renamed to "{name}"',renameFailure:"Failed to rename file",copyPathSuccess:"File path copied to clipboard",copyUrlSuccess:"Obsidian URL copied to clipboard",updateRecurrenceFailure:"Failed to update task recurrence: {message}",updateTagsFailed:"Failed to update tags"}},priority:{clearPriority:"Clear priority"},ics:{showDetails:"Show details",createTask:"Create task from event",createNote:"Create note from event",linkNote:"Link existing note",copyTitle:"Copy title",copyLocation:"Copy location",copyUrl:"Copy URL",copyMarkdown:"Copy as Markdown",subscriptionUnknown:"Unknown calendar",notices:{copyTitleSuccess:"Event title copied to clipboard",copyLocationSuccess:"Location copied to clipboard",copyUrlSuccess:"Event URL copied to clipboard",copyMarkdownSuccess:"Event details copied as Markdown",copyFailure:"Failed to copy to clipboard",taskCreated:"Task created: {title}",taskCreateFailure:"Failed to create task from event",noteCreated:"Note created successfully",creationFailure:"Failed to open creation modal",linkSuccess:'Linked note "{name}" to event',linkFailure:"Failed to link note",linkSelectionFailure:"Failed to open note selection"},markdown:{titleFallback:"Untitled event",calendar:"**Calendar:** {value}",date:"**Date & Time:** {value}",location:"**Location:** {value}",descriptionHeading:"### Description",url:"**URL:** {value}",at:" at {time}"}},date:{increment:{plusOneDay:"+1 day",minusOneDay:"-1 day",plusOneWeek:"+1 week",minusOneWeek:"-1 week"},basic:{today:"Today",tomorrow:"Tomorrow",thisWeekend:"This weekend",nextWeek:"Next week",nextMonth:"Next month"},weekdaysLabel:"Weekdays",selected:"\u2713 {label}",pickDateTime:"Pick date & time\u2026",clearDate:"Clear date",modal:{title:"Set date & time",dateLabel:"Date",timeLabel:"Time (optional)",select:"Select"}}},services:{pomodoro:{notices:{alreadyRunning:"A Pomodoro is already running",resumeCurrentSession:"Resume the current session instead of starting a new one",timerAlreadyRunning:"A timer is already running",resumeSessionInstead:"Resume the current session instead of starting a new one",shortBreakStarted:"Short break started",longBreakStarted:"Long break started",paused:"Pomodoro paused",resumed:"Pomodoro resumed",stoppedAndReset:"Pomodoro stopped and reset",migrationSuccess:"Successfully migrated {count} pomodoro sessions to daily notes.",migrationFailure:"Failed to migrate Pomodoro data. Please try again or check the console for details."}},icsSubscription:{notices:{calendarNotFound:'Calendar "{name}" not found (404). Please check the ICS URL is correct and the calendar is publicly accessible.',calendarAccessDenied:'Calendar "{name}" access denied (500). This may be due to Microsoft Outlook server restrictions. Try regenerating the ICS URL from your calendar settings.',fetchRemoteFailed:'Failed to fetch remote calendar "{name}": {error}',readLocalFailed:'Failed to read local calendar "{name}": {error}'}},calendarExport:{notices:{generateLinkFailed:"Failed to generate calendar link",noTasksToExport:"No tasks found to export",downloadSuccess:"Downloaded {filename} with {count} task{plural}",downloadFailed:"Failed to download calendar file",singleDownloadSuccess:"Downloaded {filename}"}},filter:{groupLabels:{noProject:"No project",noTags:"No tags",invalidDate:"Invalid date",due:{overdue:"Overdue",today:"Today",tomorrow:"Tomorrow",nextSevenDays:"Next seven days",later:"Later",none:"No due date"},scheduled:{past:"Past scheduled",today:"Today",tomorrow:"Tomorrow",nextSevenDays:"Next seven days",later:"Later",none:"No scheduled date"}},errors:{noDatesProvided:"No dates provided"},folders:{root:"(Root)"}},instantTaskConvert:{notices:{noCheckboxTasks:"No checkbox tasks found in the current note.",convertingTasks:"Converting {count} task{plural}...",conversionSuccess:"\u2705 Successfully converted {count} task{plural} to TaskNotes!",partialConversion:"Converted {successCount} task{successPlural}. {failureCount} failed.",batchConversionFailed:"Failed to perform batch conversion. Please try again.",invalidParameters:"Invalid input parameters.",emptyLine:"Current line is empty or contains no valid content.",parseError:"Error parsing task: {error}",invalidTaskData:"Invalid task data.",replaceLineFailed:"Failed to replace task line.",conversionComplete:"Task converted: {title}",conversionCompleteShortened:'Task converted: "{title}" (filename shortened due to length)',fileExists:"A file with this name already exists. Please try again or rename the task.",conversionFailed:"Failed to convert task. Please try again."}},icsNote:{notices:{templateNotFound:"Template not found: {path}",templateProcessError:"Error processing template: {template}",linkedToEvent:"Linked note to ICS event: {title}"}},task:{notices:{templateNotFound:"Task body template not found: {path}",templateReadError:"Error reading task body template: {template}",occurrenceTemplateNotFound:"Occurrence note template not found: {path}",occurrenceTemplateReadError:"Error reading occurrence note template: {template}",moveTaskFailed:"Failed to move {operation} task: {error}"}},autoExport:{notices:{exportFailed:"TaskNotes auto export failed: {error}"}},notification:{notices:{}}},ui:{icsCard:{untitledEvent:"Untitled event",allDay:"All day",calendarEvent:"Calendar event",calendarFallback:"Calendar"},noteCard:{createdLabel:"Created:",dailyBadge:"Daily",dailyTooltip:"Daily note"},taskCard:{labels:{due:"Due",scheduled:"Scheduled",recurrence:"Recurring",completed:"Completed",created:"Created",modified:"Modified",blocked:"Blocked",blocking:"Blocking"},blockedBadge:"Blocked",blockedBadgeTooltip:"This task is waiting on another task",blockingBadge:"Blocking",blockingBadgeTooltip:"This task is blocking another task",blockingToggle:"Blocking {count} tasks",priorityAriaLabel:"Priority: {label}",taskOptions:"Task options",recurrenceTooltip:"{label}: {value}",reminderTooltipOne:"1 reminder set (click to manage)",reminderTooltipMany:"{count} reminders set (click to manage)",detailsTooltip:"Task has details",projectTooltip:"This task is used as a project (click to show/hide subtasks)",projectIndicatorTooltip:"This task is used as a project",expandSubtasks:"Expand subtasks",collapseSubtasks:"Collapse subtasks",dueToday:"{label}: Today",dueTodayAt:"{label}: Today at {time}",dueOverdue:"{label}: {display} (overdue)",dueLabel:"{label}: {display}",scheduledToday:"{label}: Today",scheduledTodayAt:"{label}: Today at {time}",scheduledPast:"{label}: {display} (past)",scheduledLabel:"{label}: {display}",loadingDependencies:"Loading dependencies...",blockingEmpty:"No dependent tasks",blockingLoadError:"Failed to load dependencies",googleCalendarSyncTooltip:"Synced to Google Calendar"},propertyEventCard:{unknownFile:"Unknown file"},filterHeading:{allViewName:"All"},filterBar:{saveView:"Save view",saveViewNamePlaceholder:"Enter view name...",saveButton:"Save",views:"Views",savedFilterViews:"Saved filter views",filters:"Filters",properties:"Properties",sort:"Sort",newTask:"New",expandAllGroups:"Expand all groups",collapseAllGroups:"Collapse all groups",searchTasksPlaceholder:"Search tasks...",searchTasksTooltip:"Search task titles",filterUnavailable:"Filter bar temporarily unavailable",toggleFilter:"Toggle filter",activeFiltersTooltip:"Active filters \u2013 click to modify, right-click to clear",configureVisibleProperties:"Configure visible properties",sortAndGroupOptions:"Sort and group options",sortMenuHeader:"Sort",orderMenuHeader:"Order",groupMenuHeader:"Group",createNewTask:"Create new task",filter:"Filter",displayOrganization:"Display & organization",viewOptions:"View options",addFilter:"Add filter",addFilterGroup:"Add filter group",addFilterTooltip:"Add a new filter condition",addFilterGroupTooltip:"Add a nested filter group",clearAllFilters:"Clear all filters and groups",saveCurrentFilter:"Save current filter as view",closeFilterModal:"Close filter modal",deleteFilterGroup:"Delete filter group",deleteCondition:"Delete condition",all:"All",any:"Any",followingAreTrue:"of the following are true:",where:"where",selectProperty:"Select...",chooseProperty:"Choose which task property to filter by",chooseOperator:"Choose how to compare the property value",enterValue:"Enter the value to filter by",selectValue:"Select a {property} to filter by",sortBy:"Sort by:",toggleSortDirection:"Toggle sort direction",chooseSortMethod:"Choose how to sort tasks",groupBy:"Group by:",chooseGroupMethod:"Group tasks by a common property",toggleViewOption:"Toggle {option}",expandCollapseFilters:"Click to expand/collapse filter conditions",expandCollapseSort:"Click to expand/collapse sorting and grouping options",expandCollapseViewOptions:"Click to expand/collapse view-specific options",naturalLanguageDates:"Natural language dates",naturalLanguageExamples:"Show natural language date examples",enterNumericValue:"Enter a numeric value to filter by",enterDateValue:"Enter a date using natural language or ISO format",pickDateTime:"Pick date & time",noSavedViews:"No saved views",savedViews:"Saved views",yourSavedFilters:"Your saved filter configurations",dragToReorder:"Drag to reorder views",loadSavedView:"Load saved view: {name}",deleteView:"Delete view",deleteViewTitle:"Delete view",deleteViewMessage:'Are you sure you want to delete the view "{name}"?',manageAllReminders:"Manage all reminders...",clearAllReminders:"Clear all reminders",customRecurrence:"Custom recurrence...",clearRecurrence:"Clear recurrence",sortOptions:{dueDate:"Due date",scheduledDate:"Scheduled date",priority:"Priority",status:"Status",title:"Title",createdDate:"Created date",tags:"Tags",ascending:"Ascending",descending:"Descending"},group:{none:"None",status:"Status",priority:"Priority",context:"Context",project:"Project",dueDate:"Due date",scheduledDate:"Scheduled date",tags:"Tags",completedDate:"Completed date"},subgroupLabel:"SUBGROUP",notices:{propertiesMenuFailed:"Failed to show properties menu"}}},components:{dateContextMenu:{weekdays:"Weekdays",clearDate:"Clear date",today:"Today",tomorrow:"Tomorrow",thisWeekend:"This weekend",nextWeek:"Next week",nextMonth:"Next month",setDateTime:"Set date & time",dateLabel:"Date",timeLabel:"Time (optional)"},subgroupMenuBuilder:{none:"None",status:"Status",priority:"Priority",context:"Context",project:"Project",dueDate:"Due date",scheduledDate:"Scheduled date",tags:"Tags",completedDate:"Completed date",subgroup:"SUBGROUP"},propertyVisibilityDropdown:{coreProperties:"Core properties",organization:"ORGANIZATION",customProperties:"Custom properties",failed:"Failed to show properties menu",properties:{statusDot:"Status dot",priorityDot:"Priority dot",dueDate:"Due date",scheduledDate:"Scheduled date",timeEstimate:"Time estimate",totalTrackedTime:"Total tracked time",checklistProgress:"Checklist progress",recurrence:"Recurrence",completedDate:"Completed date",createdDate:"Created date",modifiedDate:"Modified date",projects:"Projects",contexts:"Contexts",tags:"Tags",blocked:"Blocked",blocking:"Blocking"}},reminderContextMenu:{remindBeforeDue:"Remind before due...",remindBeforeScheduled:"Remind before scheduled...",manageAllReminders:"Manage all reminders...",clearAllReminders:"Clear all reminders",quickReminders:{atTime:"At time of event",fiveMinutesBefore:"5 minutes before",fifteenMinutesBefore:"15 minutes before",oneHourBefore:"1 hour before",oneDayBefore:"1 day before"}},recurrenceContextMenu:{daily:"Daily",weeklyOn:"Weekly on {day}",everyTwoWeeksOn:"Every 2 weeks on {day}",monthlyOnThe:"Monthly on the {ordinal}",everyThreeMonthsOnThe:"Every 3 months on the {ordinal}",yearlyOn:"Yearly on {month} {ordinal}",weekdaysOnly:"Weekdays only",dailyAfterCompletion:"Daily (after completion)",every3DaysAfterCompletion:"Every 3 days (after completion)",weeklyAfterCompletion:"Weekly (after completion)",monthlyAfterCompletion:"Monthly (after completion)",customRecurrence:"Custom recurrence...",clearRecurrence:"Clear recurrence",customRecurrenceModal:{title:"Custom recurrence",startDate:"Start date",startDateDesc:"The date when the recurrence pattern begins",startTime:"Start time",startTimeDesc:"The time when recurring instances should appear (optional)",recurFrom:"Recur from",recurFromDesc:"When should the next occurrence be calculated?",scheduledDate:"Scheduled date",completionDate:"Completion date",frequency:"Frequency",interval:"Interval",intervalDesc:"Every x days/weeks/months/years",daysOfWeek:"Days of week",daysOfWeekDesc:"Select specific days (for weekly recurrence)",monthlyRecurrence:"Monthly recurrence",monthlyRecurrenceDesc:"Choose how to repeat monthly",yearlyRecurrence:"Yearly recurrence",yearlyRecurrenceDesc:"Choose how to repeat yearly",endCondition:"End condition",endConditionDesc:"Choose when the recurrence should end",neverEnds:"Never ends",endAfterOccurrences:"End after {count} occurrences",endOnDate:"End on {date}",onDayOfMonth:"On day {day} of each month",onTheWeekOfMonth:"On the {week} {day} of each month",onDateOfYear:"On {month} {day} each year",onTheWeekOfYear:"On the {week} {day} of {month} each year",frequencies:{daily:"Daily",weekly:"Weekly",monthly:"Monthly",yearly:"Yearly"},weekPositions:{first:"first",second:"second",third:"third",fourth:"fourth",last:"last"},weekdays:{monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",sunday:"Sunday"},weekdaysShort:{mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat",sun:"Sun"},cancel:"Cancel",save:"Save"}}}};var sxe={common:{appName:"Notes de t\xE2ches",new:"Nouveau",cancel:"Annuler",confirm:"Confirmer",close:"Fermer",save:"Enregistrer",reorder:{confirmLargeTitle:"Confirmer la r\xE9organisation importante",confirmButton:"R\xE9organiser les notes",confirmLargeMessage:'La r\xE9organisation ici mettra \xE0 jour "{field}" dans {count} notes afin de cr\xE9er un ordre manuel persistant pour {scope}. Les notes masqu\xE9es ou filtr\xE9es dans le m\xEAme p\xE9rim\xE8tre peuvent aussi \xEAtre mises \xE0 jour. Continuer ?'},language:"Langue",systemDefault:"Langue du syst\xE8me",loading:"Chargement...",languages:{en:"Anglais",fr:"Fran\xE7ais",ru:"Russe",zh:"Chinois",de:"Allemand",es:"Espagnol",ja:"Japonais",pt:"Portugais (Br\xE9sil)",ko:"Cor\xE9en"},weekdays:{sunday:"Dimanche",monday:"Lundi",tuesday:"Mardi",wednesday:"Mercredi",thursday:"Jeudi",friday:"Vendredi",saturday:"Samedi"},months:{january:"Janvier",february:"F\xE9vrier",march:"Mars",april:"Avril",may:"Mai",june:"Juin",july:"Juillet",august:"Ao\xFBt",september:"Septembre",october:"Octobre",november:"Novembre",december:"D\xE9cembre"}},views:{agenda:{title:"Agenda quotidien",today:"Aujourd'hui",overdue:"En retard",refreshCalendars:"Actualiser les calendriers",actions:{previousPeriod:"P\xE9riode pr\xE9c\xE9dente",nextPeriod:"P\xE9riode suivante",goToToday:"Aller \xE0 aujourd'hui",refreshCalendars:"Actualiser les abonnements calendrier"},loading:"Chargement de l'agenda...",dayToggle:"Basculer l'affichage du jour",overdueToggle:"Basculer la section en retard",expandAllDays:"D\xE9plier tous les jours",collapseAllDays:"Replier tous les jours",notices:{calendarNotReady:"Service de calendrier pas encore pr\xEAt",calendarRefreshed:"Abonnements calendrier actualis\xE9s",refreshFailed:"\xC9chec de l'actualisation"},empty:{noItemsScheduled:"Aucun \xE9l\xE9ment planifi\xE9",noItemsFound:"Aucun \xE9l\xE9ment trouv\xE9",helpText:"Cr\xE9ez des t\xE2ches avec des dates d'\xE9ch\xE9ance ou planifi\xE9es, ou ajoutez des notes pour les voir ici."},contextMenu:{showOverdueSection:"Afficher la section en retard",showNotes:"Afficher les notes",calendarSubscriptions:"Abonnements au calendrier"},periods:{thisWeek:"Cette semaine"},tipPrefix:"Astuce : "},taskList:{title:"T\xE2ches",expandAllGroups:"D\xE9plier tous les groupes",collapseAllGroups:"Replier tous les groupes",noTasksFound:"Aucune t\xE2che trouv\xE9e pour les filtres s\xE9lectionn\xE9s.",reorder:{scope:{ungrouped:"cette liste non group\xE9e",group:'groupe "{group}"'}},errors:{formulaGroupingReadOnly:"Impossible de r\xE9organiser les t\xE2ches dans des groupes bas\xE9s sur des formules. Les valeurs calcul\xE9es ne peuvent pas \xEAtre modifi\xE9es directement."}},notes:{title:"Bloc-notes",refreshButton:"Actualiser",refreshingButton:"Actualisation...",notices:{indexingDisabled:"Indexation des notes d\xE9sactiv\xE9e"},empty:{noNotesFound:"Aucune note trouv\xE9e",helpText:"Aucune note trouv\xE9e pour la date s\xE9lectionn\xE9e. Essayez de s\xE9lectionner une date diff\xE9rente dans la vue Mini Calendrier ou cr\xE9ez quelques notes."},loading:"Chargement des notes...",refreshButtonAriaLabel:"Actualiser la liste des notes"},miniCalendar:{title:"Mini calendrier",contextMenu:{openDailyNote:"Ouvrir la note quotidienne",openWeeklyNote:"Ouvrir la note hebdomadaire"}},advancedCalendar:{title:"Calendrier",filters:{showFilters:"Afficher les filtres",hideFilters:"Masquer les filtres"},viewOptions:{calendarSubscriptions:"Abonnements aux calendriers",timeEntries:"Entr\xE9es de temps",timeblocks:"Blocs de temps",scheduledDates:"Dates planifi\xE9es",dueDates:"Dates d'\xE9ch\xE9ance",allDaySlot:"Cr\xE9neau toute la journ\xE9e",scheduledTasks:"T\xE2ches planifi\xE9es",recurringTasks:"T\xE2ches r\xE9currentes"},buttons:{refresh:"Actualiser",refreshHint:"Actualiser les abonnements aux calendriers"},notices:{icsServiceNotAvailable:"Service d'abonnement ICS non disponible",calendarRefreshedAll:"Tous les abonnements aux calendriers ont \xE9t\xE9 actualis\xE9s avec succ\xE8s",refreshFailed:"\xC9chec de l'actualisation de certains abonnements aux calendriers",timeblockSpecificTime:"Les blocs de temps doivent avoir des heures sp\xE9cifiques. Veuillez s\xE9lectionner une plage horaire dans la vue semaine ou jour.",timeblockMoved:'Bloc de temps "{title}" d\xE9plac\xE9 vers {date}',timeblockUpdated:'Horaire du bloc de temps "{title}" mis \xE0 jour',timeblockMoveFailed:"\xC9chec du d\xE9placement du bloc de temps : {message}",timeblockResized:'Dur\xE9e du bloc de temps "{title}" mise \xE0 jour',timeblockResizeFailed:"\xC9chec du redimensionnement du bloc de temps : {message}",taskScheduled:'T\xE2che "{title}" planifi\xE9e pour {date}',scheduleTaskFailed:"\xC9chec de la planification de la t\xE2che",endTimeAfterStart:"L'heure de fin doit \xEAtre apr\xE8s l'heure de d\xE9but",timeEntryNotFound:"Entr\xE9e de temps introuvable",timeEntryDeleted:"Entr\xE9e de temps supprim\xE9e",deleteTimeEntryFailed:"\xC9chec de la suppression de l'entr\xE9e de temps"},timeEntry:{estimatedSuffix:"estim\xE9",trackedSuffix:"suivi",recurringPrefix:"R\xE9current : ",completedPrefix:"Termin\xE9 : ",createdPrefix:"Cr\xE9\xE9 : ",modifiedPrefix:"Modifi\xE9 : ",duePrefix:"\xC9ch\xE9ance : ",scheduledPrefix:"Planifi\xE9 : "},contextMenus:{openTask:"Ouvrir la t\xE2che",deleteTimeEntry:"Supprimer l'entr\xE9e de temps",deleteTimeEntryTitle:"Supprimer l'entr\xE9e de temps",deleteTimeEntryConfirm:"\xCAtes-vous s\xFBr de vouloir supprimer cette entr\xE9e de temps{duration} ? Cette action ne peut pas \xEAtre annul\xE9e.",deleteButton:"Supprimer",cancelButton:"Annuler"}},basesCalendar:{title:"Calendrier Bases",today:"Aujourd'hui",buttonText:{month:"M",week:"S",day:"J",year:"A",list:"L",customDays:"{count}J",listDays:"{count}j Liste",refresh:"Actualiser"},hints:{refresh:"Actualiser les abonnements calendrier",today:"Aller \xE0 aujourd'hui",prev:"Pr\xE9c\xE9dent",next:"Suivant",month:"Vue mensuelle",week:"Vue hebdomadaire",day:"Vue journali\xE8re",year:"Vue annuelle",list:"Vue liste",customDays:"Vue {count} jours"},settings:{groups:{dateNavigation:"Navigation par date",events:"\xC9v\xE9nements",layout:"Mise en page",view:"Vue",display:"Affichage",timeGrid:"Grille horaire",eventLayout:"Disposition des \xE9v\xE9nements",propertyBasedEvents:"\xC9v\xE9nements bas\xE9s sur les propri\xE9t\xE9s",calendarSubscriptions:"Abonnements au calendrier",googleCalendars:"Agendas Google",microsoftCalendars:"Calendriers Microsoft"},dateNavigation:{navigateToDate:"Naviguer vers la date",navigateToDatePlaceholder:"AAAA-MM-JJ (ex. 2025-01-15) - laisser vide pour utiliser la propri\xE9t\xE9",navigateToDateFromProperty:"Naviguer vers la date depuis la propri\xE9t\xE9",navigateToDateFromPropertyPlaceholder:"S\xE9lectionner une propri\xE9t\xE9 de date (facultatif)",propertyNavigationStrategy:"Strat\xE9gie de navigation par propri\xE9t\xE9",createDailyNotesFromDateLinks:"Cr\xE9er des notes quotidiennes depuis les liens de date",strategies:{first:"Premier r\xE9sultat",earliest:"Date la plus ancienne",latest:"Date la plus r\xE9cente"}},events:{showScheduledTasks:"Afficher les t\xE2ches planifi\xE9es",showDueTasks:"Afficher les t\xE2ches \xE9chues",showOverdueOnToday:"Afficher les t\xE2ches en retard aujourd'hui",showRecurringTasks:"Afficher les t\xE2ches r\xE9currentes",showTimeEntries:"Afficher les entr\xE9es de temps",showTimeblocks:"Afficher les blocs de temps",showPropertyBasedEvents:"Afficher les \xE9v\xE9nements bas\xE9s sur les propri\xE9t\xE9s",showCompletedRecurringInstances:"Afficher les instances r\xE9currentes termin\xE9es",showSkippedRecurringInstances:"Afficher les instances r\xE9currentes ignor\xE9es"},layout:{calendarView:"Vue du calendrier",customDayCount:"Nombre de jours personnalis\xE9",listDayCount:"Nombre de jours de liste",dayStartTime:"Heure de d\xE9but de journ\xE9e",dayStartTimePlaceholder:"HH:mm:ss (ex. 08:00:00)",dayEndTime:"Heure de fin de journ\xE9e",dayEndTimePlaceholder:"HH:mm:ss (ex. 20:00:00)",timeSlotDuration:"Dur\xE9e de la plage horaire",timeSlotDurationPlaceholder:"HH:mm:ss (ex. 00:30:00)",dragDropResolution:"R\xE9solution du glisser-d\xE9poser",dragDropResolutionPlaceholder:"HH:mm:ss (ex. 00:05:00)",weekStartsOn:"La semaine commence le",showWeekNumbers:"Afficher les num\xE9ros de semaine",showNowIndicator:"Afficher l'indicateur actuel",showWeekends:"Afficher les week-ends",showAllDaySlot:"Afficher la plage toute la journ\xE9e",showTimeGrid:"Afficher le d\xE9tail horaire",showTodayHighlight:"Mettre en surbrillance aujourd'hui",todayColumnWidthMultiplier:"Multiplicateur de largeur de la colonne du jour",showSelectionPreview:"Afficher l'aper\xE7u de s\xE9lection",timeFormat:"Format de l'heure",timeFormat12:"12 heures (AM/PM)",timeFormat24:"24 heures",initialScrollTime:"Heure de d\xE9filement initial",initialScrollTimePlaceholder:"HH:mm:ss (ex. 08:00:00)",minimumEventHeight:"Hauteur minimale de l'\xE9v\xE9nement (px)",slotEventOverlap:"Autoriser le chevauchement des \xE9v\xE9nements",enableSearch:"Activer la zone de recherche",eventMaxStack:"Max. \xE9v\xE9nements empil\xE9s (vue semaine/jour, 0 = illimit\xE9)",dayMaxEvents:"Max. \xE9v\xE9nements par jour (vue mois, 0 = automatique)",dayMaxEventRows:"Max. lignes d'\xE9v\xE9nements par jour (vue mois, 0 = illimit\xE9)",spanScheduledToDue:"\xC9tendre les t\xE2ches entre la date planifi\xE9e et la date d'\xE9ch\xE9ance",heightMode:"Mode de hauteur",heightModeFill:"Remplir le conteneur",heightModeAuto:"Hauteur automatique"},propertyBasedEvents:{startDateProperty:"Propri\xE9t\xE9 de date de d\xE9but",startDatePropertyPlaceholder:"S\xE9lectionner une propri\xE9t\xE9 pour la date/heure de d\xE9but",endDateProperty:"Propri\xE9t\xE9 de date de fin (facultatif)",endDatePropertyPlaceholder:"S\xE9lectionner une propri\xE9t\xE9 pour la date/heure de fin",titleProperty:"Propri\xE9t\xE9 de titre (facultatif)",titlePropertyPlaceholder:"S\xE9lectionner une propri\xE9t\xE9 pour le titre de l'\xE9v\xE9nement"}},notices:{noDailyNoteForDate:"Aucune note quotidienne n'existe pour cette date."},errors:{failedToInitialize:"\xC9chec de l'initialisation du calendrier"}},kanban:{title:"Tableau Kanban",newTask:"Nouvelle t\xE2che",addCard:"+ Ajouter une carte",noTasks:"Aucune t\xE2che",uncategorized:"Non cat\xE9goris\xE9",noProject:"Aucun projet",reorder:{scope:{column:'colonne "{group}"',columnInSwimlane:'colonne "{group}" dans la swimlane "{swimlane}"'}},notices:{loadFailed:"\xC9chec du chargement du tableau Kanban",movedTask:'T\xE2che d\xE9plac\xE9e vers "{0}"'},errors:{loadingBoard:"Erreur lors du chargement du tableau.",noGroupBy:"La vue Kanban n\xE9cessite qu'une propri\xE9t\xE9 'Grouper par' soit configur\xE9e. Cliquez sur le bouton 'Trier' et s\xE9lectionnez une propri\xE9t\xE9 sous 'Grouper par'.",formulaGroupingReadOnly:"Impossible de d\xE9placer les t\xE2ches entre les colonnes bas\xE9es sur des formules. Les valeurs de formule sont calcul\xE9es et ne peuvent pas \xEAtre modifi\xE9es directement.",formulaSwimlaneReadOnly:"Impossible de d\xE9placer les t\xE2ches entre les couloirs bas\xE9s sur des formules. Les valeurs de formule sont calcul\xE9es et ne peuvent pas \xEAtre modifi\xE9es directement."},columnTitle:"Sans titre"},pomodoro:{title:"Sessions Pomodoro",status:{focus:"Concentration",ready:"Pr\xEAt \xE0 d\xE9marrer",paused:"En pause",working:"En travail",shortBreak:"Pause courte",longBreak:"Pause longue",breakPrompt:"Bravo ! C'est l'heure d'une pause {length}",breakLength:{short:"courte",long:"longue"},breakComplete:"Pause termin\xE9e ! Pr\xEAt pour le prochain pomodoro ?"},buttons:{start:"D\xE9marrer",pause:"Mettre en pause",stop:"Arr\xEAter",resume:"Reprendre",startShortBreak:"Commencer la pause courte",startLongBreak:"Commencer la pause longue",skipBreak:"Passer la pause",chooseTask:"Choisir une t\xE2che...",changeTask:"Changer de t\xE2che...",clearTask:"Effacer la t\xE2che",selectDifferentTask:"S\xE9lectionner une autre t\xE2che",startFocus:"D\xE9marrer la concentration",addMinute:"Ajouter une minute",subtractMinute:"Retirer une minute"},notices:{noTasks:"Aucune t\xE2che non archiv\xE9e retrouv\xE9e. Cr\xE9ez d'abord quelques t\xE2ches.",loadFailed:"Impossible de charger les t\xE2ches",invalidDuration:"Saisissez une dur\xE9e comme 10, 10:30 ou 1:30:00."},statsLabel:"termin\xE9es aujourd'hui",meta:{ready:"{time} pr\xE9vu \xB7 {count} termin\xE9s aujourd\u2019hui",running:"{time} restant \xB7 Se termine \xE0 {endTime}",paused:"{type} en pause \xB7 {time} restant",breakReady:"{type} pr\xEAt \xB7 {time} pr\xE9vu"},timer:{editLabel:"Modifier la dur\xE9e du minuteur",inputLabel:"Dur\xE9e du minuteur"}},pomodoroStats:{title:"Statistiques Pomodoro",heading:"Statistiques Pomodoro",refresh:"Actualiser",sections:{overview:"Aper\xE7u",today:"Aujourd'hui",week:"Cette semaine",allTime:"Historique",recent:"Sessions r\xE9centes"},overviewCards:{todayPomos:{label:"Pomodoros du jour",change:{more:"{count} de plus qu'hier",less:"{count} de moins qu'hier"}},totalPomos:{label:"Total des pomodoros"},todayFocus:{label:"Temps de focus du jour",change:{more:"{duration} de plus qu'hier",less:"{duration} de moins qu'hier"}},totalFocus:{label:"Dur\xE9e de focus cumul\xE9e"}},stats:{pomodoros:"Sessions",streak:"S\xE9rie",minutes:"Minutes totales",average:"Dur\xE9e moy.",completion:"Taux d'ach\xE8vement"},recents:{empty:"Aucune session enregistr\xE9e pour le moment",duration:"Dur\xE9e : {minutes} min",status:{completed:"Termin\xE9e",interrupted:"Interrompue"},delete:"Supprimer la session",deleteAria:"Supprimer la session Pomodoro",deleteConfirmTitle:"Supprimer la session Pomodoro ?",deleteConfirmMessage:"Cela supprime la session de l\u2019historique Pomodoro. Les entr\xE9es de temps de t\xE2che existantes ne sont pas modifi\xE9es.",deleteConfirmButton:"Supprimer",deleteSuccess:"Session Pomodoro supprim\xE9e",deleteNotFound:"Session Pomodoro introuvable"},basesMigration:{title:"Vous voulez une vue Base ?",description:"Les vues Base Pomodoro utilisent le frontmatter des notes quotidiennes. Pour voir cet historique dans la Base de statistiques Pomodoro g\xE9n\xE9r\xE9e, migrez les donn\xE9es Pomodoro dans les param\xE8tres, puis d\xE9finissez le stockage sur les notes quotidiennes."}},stats:{title:"Statistiques",taskProjectStats:"Statistiques des t\xE2ches et projets",sections:{filters:"Filtres",overview:"Aper\xE7u",today:"Aujourd'hui",thisWeek:"Cette semaine",thisMonth:"Ce mois",projectBreakdown:"R\xE9partition par projet",dateRange:"Plage de dates"},filters:{minTime:"Temps min (minutes)",allTasks:"Toutes les t\xE2ches",activeOnly:"Actives uniquement",completedOnly:"Termin\xE9es uniquement"},refreshButton:"Actualiser",timeRanges:{allTime:"Tout le temps",last7Days:"7 derniers jours",last30Days:"30 derniers jours",last90Days:"90 derniers jours",customRange:"Plage personnalis\xE9e"},resetFiltersButton:"R\xE9initialiser les filtres",dateRangeFrom:"De",dateRangeTo:"\xC0",noProject:"Aucun projet",cards:{timeTrackedEstimated:"Temps suivi / estim\xE9",totalTasks:"Total des t\xE2ches",completionRate:"Taux de compl\xE9tion",activeProjects:"Projets actifs",avgTimePerTask:"Temps moyen par t\xE2che"},labels:{tasks:"T\xE2ches",completed:"Termin\xE9es",projects:"Projets"},noProjectData:"Aucune donn\xE9e de projet disponible",notAvailable:"N/D",noTasks:"Aucune t\xE2che trouv\xE9e",loading:"Chargement..."},releaseNotes:{title:"Nouveaut\xE9s de TaskNotes {version}",header:"Nouveaut\xE9s de TaskNotes {version}",viewAllLink:"Voir toutes les notes de version sur GitHub \u2192",starMessage:"Nous appr\xE9cions vraiment tous les retours. Si quelque chose ne vous semble pas correct, dites-le-nous sur GitHub. Si TaskNotes vous est utile, pensez \xE0 lui donner une \xE9toile.",baseFilesNotice:"> [!info] \xC0 propos des fichiers `.base` par d\xE9faut\n> Les modifications des mod\xE8les `.base` g\xE9n\xE9r\xE9s par d\xE9faut n'\xE9crasent pas vos fichiers `.base` existants, afin de pr\xE9server vos personnalisations.\n> Si vous souhaitez profiter des derni\xE8res am\xE9liorations de mod\xE8les, r\xE9g\xE9n\xE9rez les fichiers base via **Param\xE8tres \u2192 TaskNotes \u2192 G\xE9n\xE9ral \u2192 Vues et fichiers base \u2192 Mettre \xE0 jour les fichiers**."}},settings:{header:{documentation:"Documentation",documentationUrl:"https://tasknotes.dev"},tabs:{general:"G\xE9n\xE9ral",taskProperties:"Propri\xE9t\xE9s des t\xE2ches",modalFields:"Champs du modal",defaults:"D\xE9fauts et mod\xE8les",appearance:"Apparence et interface",features:"Fonctionnalit\xE9s",integrations:"Int\xE9grations"},features:{inlineTasks:{header:"T\xE2ches dans les notes",description:"Param\xE8tres des liens de t\xE2ches et conversion des cases \xE0 cocher en t\xE2ches dans les notes."},taskCreation:{header:"Cr\xE9ation de t\xE2ches",description:"Configurer ce qui se passe apr\xE8s la cr\xE9ation des t\xE2ches.",openAfterCreate:{name:"Ouvrir la t\xE2che apr\xE8s cr\xE9ation",description:"Choisir si la fen\xEAtre normale Cr\xE9er une t\xE2che ouvre la nouvelle note de t\xE2che apr\xE8s l'enregistrement.",options:{none:"Ne pas ouvrir",sameTab:"Ouvrir dans le m\xEAme onglet",newTab:"Ouvrir dans un nouvel onglet"}}},overlays:{taskLinkToggle:{name:"Survol des liens de t\xE2ches",description:"Afficher des superpositions interactives lorsque la souris passe sur les liens de t\xE2ches"},aliasExclusion:{name:"D\xE9sactiver la superposition pour les liens avec alias",description:"Ne pas afficher le widget de t\xE2che si le lien contient un alias (ex. [[T\xE2che|Alias]])."}},instantConvert:{toggle:{name:"Afficher le bouton de conversion \xE0 c\xF4t\xE9 des cases \xE0 cocher",description:"Afficher un bouton en ligne \xE0 c\xF4t\xE9 des cases \xE0 cocher Markdown qui les convertit en TaskNotes"},preserveCheckbox:{name:"Conserver la case \xE0 cocher lors de la conversion",description:"Laisser le marqueur de case \xE0 cocher Markdown d'origine en place lors de la conversion d'une case \xE0 cocher en lien TaskNote"},folder:{name:"Dossier des t\xE2ches cr\xE9\xE9es en ligne",description:"Dossier o\xF9 seront cr\xE9\xE9es les t\xE2ches issues de commandes en ligne ou de la conversion de cases \xE0 cocher. Laissez vide pour utiliser le dossier de t\xE2ches par d\xE9faut. Utilisez {{currentNotePath}} pour le dossier de la note actuelle, ou {{currentNoteTitle}} pour un sous-dossier nomm\xE9 d\u2019apr\xE8s la note actuelle."}},nlp:{header:"Traitement du langage naturel",description:"Analyse les dates, priorit\xE9s et autres propri\xE9t\xE9s depuis le texte saisi.",enable:{name:"Activer la saisie en langage naturel",description:"Analyser les dates, priorit\xE9s et contextes lors de la cr\xE9ation de t\xE2ches"},defaultToScheduled:{name:"Planifi\xE9 par d\xE9faut",description:"Si une date est d\xE9tect\xE9e sans contexte, la consid\xE9rer comme planifi\xE9e plut\xF4t qu'\xE9ch\xE9ance"},language:{name:"Langue du NLP",description:"Langue utilis\xE9e pour les mod\xE8les de traitement du langage naturel et l'analyse des dates"},statusTrigger:{name:"D\xE9clencheur des statuts sugg\xE9r\xE9s",description:"Texte qui d\xE9clenche les suggestions de statut (laisser vide pour d\xE9sactiver)"}},pomodoro:{header:"Minuteur Pomodoro",description:"Configure les intervalles travail/pause du minuteur Pomodoro.",workDuration:{name:"Dur\xE9e de travail",description:"Dur\xE9e des sessions de travail en minutes"},shortBreak:{name:"Dur\xE9e de la pause courte",description:"Dur\xE9e des pauses courtes en minutes"},longBreak:{name:"Dur\xE9e de la pause longue",description:"Dur\xE9e des pauses longues en minutes"},longBreakInterval:{name:"Intervalle des pauses longues",description:"Nombre de sessions de travail avant une pause longue"},autoStartBreaks:{name:"Lancer automatiquement les pauses",description:"D\xE9marrer automatiquement les pauses apr\xE8s chaque session de travail"},autoStartWork:{name:"Reprise automatique du travail",description:"D\xE9marrer automatiquement une session de travail apr\xE8s les pauses"},notifications:{name:"Notifications Pomodoro",description:"Afficher une notification lorsque les sessions Pomodoro se terminent"},mobileSidebar:{name:"Barre lat\xE9rale mobile",description:"O\xF9 ouvrir le minuteur Pomodoro sur les appareils mobiles",tab:"Panneau de notes",left:"Barre lat\xE9rale gauche",right:"Barre lat\xE9rale droite"},statusBar:{name:"Afficher Pomodoro dans la barre d\u2019\xE9tat",description:"Afficher le compte \xE0 rebours Pomodoro actif dans la barre d\u2019\xE9tat d\u2019Obsidian"}},uiLanguage:{header:"Langue de l'interface",description:"Modifiez la langue des menus, notifications et vues de TaskNotes.",dropdown:{name:"Langue de l'interface",description:"S\xE9lectionnez la langue utilis\xE9e pour le texte de l'interface TaskNotes"}},pomodoroSound:{enabledName:"Son activ\xE9",enabledDesc:"Jouer un son \xE0 la fin des sessions Pomodoro",volumeName:"Volume du son",volumeDesc:"Volume des sons Pomodoro (0-100)"},dataStorage:{name:"Stockage des donn\xE9es Pomodoro",description:"Configurez o\xF9 les donn\xE9es de session pomodoro sont stock\xE9es et comment elles sont g\xE9r\xE9es.",dailyNotes:"Notes quotidiennes",pluginData:"Donn\xE9es du plugin",notices:{locationChanged:"Emplacement de stockage Pomodoro chang\xE9 vers {location}"}},notifications:{header:"Notifications",description:"Configurez les notifications de rappel de t\xE2ches et les alertes.",enableName:"Activer les notifications",enableDesc:"Activer les notifications de rappel de t\xE2ches",typeName:"Type de notification",typeDesc:"Type de notifications \xE0 afficher",systemLabel:"Notifications syst\xE8me",inAppLabel:"Notifications dans l'application",soundEnabledName:"Son de notification",soundEnabledDesc:"Jouer un son lorsque les rappels de t\xE2che se d\xE9clenchent",soundVolumeName:"Volume du son",soundVolumeDesc:"Volume des sons de rappel de t\xE2che (0-100)",soundPreviewName:"Pr\xE9\xE9couter le son de notification",soundPreviewDesc:"Jouer le son de rappel de t\xE2che configur\xE9",soundPreviewButton:"Pr\xE9\xE9couter",testReminderName:"Envoyer un rappel de test",testReminderDesc:"Envoyer un rappel de test avec le type de notification et les param\xE8tres sonores actuels.",testReminderButton:"Envoyer le test"},overdue:{hideCompletedName:"Masquer les t\xE2ches termin\xE9es des retards",hideCompletedDesc:"Exclure les t\xE2ches termin\xE9es du calcul des t\xE2ches en retard"},indexing:{disableName:"D\xE9sactiver l'indexation des notes",disableDesc:"D\xE9sactiver l'indexation automatique du contenu des notes pour de meilleures performances"},suggestions:{debounceName:"D\xE9lai des suggestions",debounceDesc:"D\xE9lai en millisecondes avant d'afficher les suggestions"},timeTracking:{autoStopName:"Arr\xEAt automatique du suivi du temps",autoStopDesc:"Arr\xEAter automatiquement le suivi du temps lorsqu'une t\xE2che est marqu\xE9e comme termin\xE9e",stopNotificationName:"Notification d'arr\xEAt du suivi du temps",stopNotificationDesc:"Afficher une notification lorsque le suivi du temps est automatiquement arr\xEAt\xE9"},recurring:{maintainOffsetName:"Maintenir le d\xE9calage de date d'\xE9ch\xE9ance dans les t\xE2ches r\xE9currentes",maintainOffsetDesc:"Conserver le d\xE9calage entre la date d'\xE9ch\xE9ance et la date planifi\xE9e lors de l'ach\xE8vement des t\xE2ches r\xE9currentes",resetCheckboxesName:"R\xE9initialiser les cases \xE0 cocher lors de la r\xE9currence",resetCheckboxesDesc:"R\xE9initialiser toutes les cases \xE0 cocher markdown dans le corps de la t\xE2che lorsqu'une t\xE2che r\xE9currente est termin\xE9e et reprogramm\xE9e"},timeblocking:{header:"Planification par blocs",description:"Configurez la fonctionnalit\xE9 de planification par blocs pour une programmation l\xE9g\xE8re dans les notes quotidiennes. Glissez sur les vues calendrier pour cr\xE9er des \xE9v\xE9nements - s\xE9lectionnez 'Timeblock' dans le menu contextuel.",enableName:"Activer la planification par blocs",enableDesc:"Activer la fonctionnalit\xE9 de planification par blocs pour une programmation l\xE9g\xE8re dans les notes quotidiennes. Lorsqu'activ\xE9, l'option 'Timeblock' appara\xEEt dans le menu contextuel de glissement du calendrier.",showBlocksName:"Afficher les blocs de temps",showBlocksDesc:"Afficher les blocs de temps des notes quotidiennes par d\xE9faut",defaultColorName:"Couleur par d\xE9faut des blocs de temps",defaultColorDesc:"La couleur par d\xE9faut utilis\xE9e lors de la cr\xE9ation de nouveaux blocs de temps",usage:"Utilisation : Glissez sur le calendrier pour cr\xE9er des \xE9v\xE9nements. S\xE9lectionnez 'Timeblock' dans le menu contextuel (uniquement visible lorsque la planification par blocs est activ\xE9e). Glissez pour d\xE9placer les blocs de temps existants. Ajustez les bords pour modifier la dur\xE9e."},performance:{header:"Performance et comportement",description:"Configurez les options de performance et de comportement du plugin."},timeTrackingSection:{header:"Suivi du temps",description:"Configurez les comportements de suivi automatique du temps."},recurringSection:{header:"T\xE2ches r\xE9currentes",description:"Configurez le comportement pour la gestion des t\xE2ches r\xE9currentes."},debugLogging:{header:"Journalisation du d\xE9bogage",description:"Configure la sortie des journaux de d\xE9bogage pour la r\xE9solution des probl\xE8mes.",enableName:"Activer la journalisation de d\xE9bogage",enableDesc:"Consigner les diagnostics d\xE9taill\xE9s de glisser-d\xE9poser et de vue dans la console d\xE9veloppeur. Utile pour le d\xE9pannage."}},defaults:{header:{basicDefaults:"Param\xE8tres par d\xE9faut",dateDefaults:"Dates par d\xE9faut",defaultReminders:"Rappels par d\xE9faut",bodyTemplate:"Mod\xE8le de contenu",instantTaskConversion:"Conversion instantan\xE9e en t\xE2che"},description:{basicDefaults:"D\xE9finir les valeurs par d\xE9faut pour les nouvelles t\xE2ches afin d'acc\xE9l\xE9rer la cr\xE9ation.",dateDefaults:"D\xE9finir les dates d'\xE9ch\xE9ance et de planification par d\xE9faut pour les nouvelles t\xE2ches.",defaultReminders:"Configurer les rappels par d\xE9faut qui seront ajout\xE9s aux nouvelles t\xE2ches.",bodyTemplate:"Configurer un fichier mod\xE8le \xE0 utiliser pour le contenu des nouvelles t\xE2ches.",instantTaskConversion:"Configurer le comportement lors de la conversion instantan\xE9e de texte en t\xE2ches."},basicDefaults:{defaultStatus:{name:"Statut par d\xE9faut",description:"Statut par d\xE9faut pour les nouvelles t\xE2ches"},defaultPriority:{name:"Priorit\xE9 par d\xE9faut",description:"Priorit\xE9 par d\xE9faut pour les nouvelles t\xE2ches"},defaultContexts:{name:"Contextes par d\xE9faut",description:"Liste de contextes par d\xE9faut s\xE9par\xE9s par des virgules (ex. @maison, @travail)",placeholder:"@maison, @travail"},defaultTags:{name:"Tags par d\xE9faut",description:"Liste de tags par d\xE9faut s\xE9par\xE9s par des virgules (sans #)",placeholder:"important, urgent"},defaultProjects:{name:"Projets par d\xE9faut",description:"Liens de projets par d\xE9faut pour les nouvelles t\xE2ches",selectButton:"S\xE9lectionner des projets",selectTooltip:"Choisir les notes de projet \xE0 lier par d\xE9faut",removeTooltip:"Retirer {name} des projets par d\xE9faut"},useParentNoteForTaskCreation:{name:"Utiliser la note active comme projet pour les nouvelles t\xE2ches",description:"Associe automatiquement la note active comme projet lors de l'ouverture de la cr\xE9ation de t\xE2che depuis la palette de commandes ou le ruban"},useParentNoteAsProject:{name:"Utiliser la note parent comme projet pour la cr\xE9ation en ligne et la conversion instantan\xE9e",description:"Associe automatiquement la note source comme projet lors de l'utilisation de la cr\xE9ation de t\xE2ches en ligne ou de la conversion instantan\xE9e"},useParentHeaderAsProject:{name:"Utiliser le titre parent comme projet lors de la conversion instantan\xE9e",description:"Lier automatiquement le titre le plus proche au-dessus de la ligne convertie comme projet lors de la conversion instantan\xE9e de t\xE2che"},defaultTimeEstimate:{name:"Estimation de temps par d\xE9faut",description:"Estimation de temps par d\xE9faut en minutes (0 = aucune par d\xE9faut)",placeholder:"60"},defaultRecurrence:{name:"R\xE9currence par d\xE9faut",description:"Mod\xE8le de r\xE9currence par d\xE9faut pour les nouvelles t\xE2ches"}},dateDefaults:{defaultDueDate:{name:"Date d'\xE9ch\xE9ance par d\xE9faut",description:"Date d'\xE9ch\xE9ance par d\xE9faut pour les nouvelles t\xE2ches"},defaultScheduledDate:{name:"Date planifi\xE9e par d\xE9faut",description:"Date planifi\xE9e par d\xE9faut pour les nouvelles t\xE2ches"}},reminders:{addReminder:{name:"Ajouter un rappel par d\xE9faut",description:"Cr\xE9er un nouveau rappel par d\xE9faut qui sera ajout\xE9 \xE0 toutes les nouvelles t\xE2ches",buttonText:"Ajouter un rappel"},emptyState:"Aucun rappel par d\xE9faut configur\xE9. Ajoutez un rappel pour \xEAtre automatiquement notifi\xE9 des nouvelles t\xE2ches.",emptyStateButton:"Ajouter un rappel",reminderDescription:"Description du rappel",unnamedReminder:"Rappel sans nom",deleteTooltip:"Supprimer le rappel",fields:{description:"Description :",type:"Type :",offset:"D\xE9calage :",unit:"Unit\xE9 :",direction:"Direction :",relatedTo:"Relatif \xE0 :",date:"Date :",time:"Heure :"},types:{relative:"Relatif (avant/apr\xE8s les dates de la t\xE2che)",absolute:"Absolu (date/heure sp\xE9cifique)"},units:{minutes:"minutes",hours:"heures",days:"jours"},directions:{before:"avant",after:"apr\xE8s"},relatedTo:{due:"date d'\xE9ch\xE9ance",scheduled:"date planifi\xE9e"}},bodyTemplate:{useBodyTemplate:{name:"Utiliser un mod\xE8le de contenu",description:"Utiliser un fichier mod\xE8le pour le contenu du corps de la t\xE2che"},bodyTemplateFile:{name:"Fichier mod\xE8le de contenu",description:"Chemin vers le fichier mod\xE8le pour le contenu du corps de la t\xE2che. Prend en charge les variables comme {{title}}, {{date}}, {{time}}, {{priority}}, {{status}}, etc.",placeholder:"Templates/Mod\xE8le de t\xE2che.md",ariaLabel:"Chemin vers le fichier mod\xE8le de contenu"},useOccurrenceBodyTemplate:{name:"Utiliser un mod\xE8le de note d'occurrence",description:"Utiliser un mod\xE8le de secours s\xE9par\xE9 pour les notes d'occurrence mat\xE9rialis\xE9es lorsque la t\xE2che r\xE9currente n'a pas de occurrence_template"},occurrenceBodyTemplateFile:{name:"Fichier mod\xE8le de note d'occurrence",description:"Chemin vers le fichier mod\xE8le pour les notes d'occurrence mat\xE9rialis\xE9es. Le champ occurrence_template d'une t\xE2che r\xE9currente est prioritaire sur ce secours.",placeholder:"Templates/Mod\xE8le occurrence.md",ariaLabel:"Chemin vers le fichier mod\xE8le de note d'occurrence"},variablesHeader:"Variables du mod\xE8le :",variables:{title:"{{title}} - Titre de la t\xE2che",details:"{{details}} - D\xE9tails fournis par l'utilisateur depuis la fen\xEAtre",date:"{{date}} - Date actuelle (AAAA-MM-JJ)",time:"{{time}} - Heure actuelle (HH:MM)",priority:"{{priority}} - Priorit\xE9 de la t\xE2che",status:"{{status}} - Statut de la t\xE2che",contexts:"{{contexts}} - Contextes de la t\xE2che",tags:"{{tags}} - Tags de la t\xE2che",projects:"{{projects}} - Projets de la t\xE2che"}},instantConversion:{useDefaultsOnInstantConvert:{name:"Utiliser les param\xE8tres par d\xE9faut lors de la conversion instantan\xE9e",description:"Appliquer les param\xE8tres de t\xE2che par d\xE9faut lors de la conversion instantan\xE9e de texte en t\xE2ches"}},options:{noDefault:"Aucune par d\xE9faut",none:"Aucune",today:"Aujourd'hui",tomorrow:"Demain",nextWeek:"La semaine prochaine",daily:"Quotidien",weekly:"Hebdomadaire",monthly:"Mensuel",yearly:"Annuel"}},general:{taskStorage:{header:"Stockage des t\xE2ches",description:"Configurez o\xF9 les t\xE2ches sont stock\xE9es et comment elles sont identifi\xE9es.",defaultFolder:{name:"Dossier par d\xE9faut des t\xE2ches",description:"Emplacement par d\xE9faut des nouvelles t\xE2ches. Prend en charge les variables de mod\xE8le de dossier comme {{currentNotePath}}, {{currentNoteTitle}} et {{projectFilePath}}, ainsi que les jetons de date de style Daily Notes comme YYYY/MM/DD."},moveArchived:{name:"D\xE9placer les t\xE2ches archiv\xE9es vers un dossier",description:"D\xE9placer automatiquement les t\xE2ches archiv\xE9es vers un dossier d'archive"},archiveFolder:{name:"Dossier d'archive",description:"Dossier vers lequel d\xE9placer les t\xE2ches lorsqu'elles sont archiv\xE9es. Supporte les variables de mod\xE8le comme {{year}}, {{month}}, {{priority}}, etc."}},taskIdentification:{header:"Identification des t\xE2ches",description:"Choisissez comment TaskNotes identifie les notes comme des t\xE2ches.",identifyBy:{name:"Identifier les t\xE2ches par",description:"Choisissez d'identifier les t\xE2ches par tag ou par une propri\xE9t\xE9 frontmatter",options:{tag:"\xC9tiquette",property:"Propri\xE9t\xE9"}},taskTag:{name:"Tag de t\xE2che",description:"Tag qui identifie les notes comme des t\xE2ches (sans #). Les filtres des vues .base existantes conservent l'ancien tag apr\xE8s ce changement ; mettez \xE0 jour les fichiers Base par d\xE9faut ou modifiez ces filtres."},hideIdentifyingTags:{name:"Masquer les tags d'identification dans les cartes de t\xE2ches",description:"Lorsque activ\xE9, les tags correspondant au tag d'identification de t\xE2che (y compris les correspondances hi\xE9rarchiques comme 'task/project') seront masqu\xE9s dans l'affichage des cartes de t\xE2ches"},hideIdentifyingTagsMode:{name:"Port\xE9e des tags masqu\xE9s",description:"Choisissez si le masquage des tags d'identification masque aussi les tags imbriqu\xE9s.",options:{all:"Tag de t\xE2che et tags imbriqu\xE9s",exactOnly:"Tag de t\xE2che exact seulement"}},taskProperty:{name:"Nom de la propri\xE9t\xE9 de t\xE2che",description:'Le nom de la propri\xE9t\xE9 frontmatter (ex. "category")'},taskPropertyValue:{name:"Valeur de la propri\xE9t\xE9 de t\xE2che",description:'La valeur qui identifie une note comme une t\xE2che (ex. "task")'}},folderManagement:{header:"Gestion des dossiers",excludedFolders:{name:"Dossiers exclus",description:"Liste s\xE9par\xE9e par des virgules des dossiers \xE0 exclure de l'indexation des t\xE2ches et des suggestions de projets"}},frontmatter:{header:"Frontmatter",description:"Configurez la fa\xE7on dont les liens sont format\xE9s dans les propri\xE9t\xE9s frontmatter.",useMarkdownLinks:{name:"Utiliser des liens markdown dans le frontmatter",description:`G\xE9n\xE9rer des liens markdown ([text](path)) au lieu de wikilinks ([[link]]) dans les propri\xE9t\xE9s frontmatter.
|
||
|
||
\u26A0\uFE0F N\xE9cessite le plugin 'obsidian-frontmatter-markdown-links' pour fonctionner correctement.`}},taskInteraction:{header:"Interaction avec les t\xE2ches",description:"Configurez le comportement des clics sur les t\xE2ches.",singleClick:{name:"Action du clic simple",description:"Action effectu\xE9e lors d'un clic simple sur une carte de t\xE2che"},doubleClick:{name:"Action du double-clic",description:"Action effectu\xE9e lors d'un double-clic sur une carte de t\xE2che"},actions:{edit:"Modifier la t\xE2che",openNote:"Ouvrir la note",none:"Aucune action"}},releaseNotes:{header:"Notes de version",description:"Version actuelle : {version}",showOnUpdate:{name:"Afficher les notes de version apr\xE8s la mise \xE0 jour",description:"Ouvrir automatiquement les notes de version lorsque TaskNotes est mis \xE0 jour vers une nouvelle version"},checkForUpdates:{name:"V\xE9rifier les nouvelles versions au d\xE9marrage",description:"V\xE9rifie GitHub une fois au d\xE9marrage de TaskNotes et affiche une notification lorsqu'une nouvelle version compatible est disponible"},viewButton:{name:"Voir les notes de version",description:"D\xE9couvrez les nouveaut\xE9s de la derni\xE8re version de TaskNotes",buttonText:"Voir les notes de version"}}},taskProperties:{sections:{coreProperties:"Propri\xE9t\xE9s principales",corePropertiesDesc:"Le statut et la priorit\xE9 sont les propri\xE9t\xE9s principales qui d\xE9finissent l'\xE9tat et l'importance d'une t\xE2che.",dateProperties:"Propri\xE9t\xE9s de date",datePropertiesDesc:"Configurez les dates d'\xE9ch\xE9ance et de planification des t\xE2ches.",organizationProperties:"Propri\xE9t\xE9s d'organisation",organizationPropertiesDesc:"Organisez les t\xE2ches avec des contextes, projets et \xE9tiquettes.",taskDetails:"D\xE9tails de la t\xE2che",taskDetailsDesc:"D\xE9tails suppl\xE9mentaires comme les estimations de temps, la r\xE9currence et les rappels.",metadataProperties:"Propri\xE9t\xE9s de m\xE9tadonn\xE9es",metadataPropertiesDesc:"Propri\xE9t\xE9s g\xE9r\xE9es par le syst\xE8me pour suivre l'historique des t\xE2ches.",featureProperties:"Propri\xE9t\xE9s de fonctionnalit\xE9s",featurePropertiesDesc:"Propri\xE9t\xE9s utilis\xE9es par des fonctionnalit\xE9s TaskNotes sp\xE9cifiques comme le minuteur Pomodoro et la synchronisation du calendrier."},propertyCard:{propertyKey:"Cl\xE9 de propri\xE9t\xE9 :",default:"Par d\xE9faut :",nlpTrigger:"D\xE9clencheur NLP :",triggerChar:"Caract\xE8re d\xE9clencheur :",triggerEmpty:"Le d\xE9clencheur ne peut pas \xEAtre vide",triggerTooLong:"Le d\xE9clencheur est trop long (max 10 caract\xE8res)"},properties:{status:{name:"Statut",description:"Suit l'\xE9tat actuel d'une t\xE2che (ex. \xE0 faire, en cours, termin\xE9). Le statut d\xE9termine si une t\xE2che appara\xEEt comme termin\xE9e et peut d\xE9clencher l'archivage automatique."},priority:{name:"Priorit\xE9",description:"Indique l'importance de la t\xE2che. Utilis\xE9 pour le tri et le filtrage. Les valeurs sont tri\xE9es alphab\xE9tiquement dans les vues Bases, utilisez donc des pr\xE9fixes comme 1-, 2- pour contr\xF4ler l'ordre."},due:{name:"Date d'\xE9ch\xE9ance",description:"La date limite \xE0 laquelle une t\xE2che doit \xEAtre termin\xE9e. Les t\xE2ches d\xE9passant leur date d'\xE9ch\xE9ance apparaissent en retard. Stock\xE9 comme date dans le frontmatter."},scheduled:{name:"Date planifi\xE9e",description:"Quand vous pr\xE9voyez de travailler sur une t\xE2che. Contrairement \xE0 la date d'\xE9ch\xE9ance, cela repr\xE9sente votre heure de d\xE9but pr\xE9vue. Les t\xE2ches apparaissent dans le calendrier \xE0 leur date/heure planifi\xE9e."},contexts:{name:"Contextes",description:"Lieux ou conditions o\xF9 une t\xE2che peut \xEAtre effectu\xE9e (ex. @maison, @bureau, @t\xE9l\xE9phone). Utile pour filtrer les t\xE2ches selon votre situation actuelle. Stock\xE9 comme liste."},projects:{name:"Projets",description:"Liens vers les notes de projet auxquelles cette t\xE2che appartient. Stock\xE9 comme wikilinks (ex. [[Nom du projet]]). Les t\xE2ches peuvent appartenir \xE0 plusieurs projets."},tags:{name:"\xC9tiquettes",description:"\xC9tiquettes Obsidian natives pour cat\xE9goriser les t\xE2ches. Stock\xE9es dans la propri\xE9t\xE9 tags du frontmatter et fonctionnent avec les fonctionnalit\xE9s d'\xE9tiquettes d'Obsidian."},timeEstimate:{name:"Estimation de temps",description:"Minutes estim\xE9es pour terminer la t\xE2che. Utilis\xE9 pour la planification du temps et la gestion de la charge de travail. Affich\xE9 sur les cartes de t\xE2ches et les \xE9v\xE9nements du calendrier."},recurrence:{name:"R\xE9currence",description:"Mod\xE8le pour les t\xE2ches r\xE9p\xE9titives (quotidien, hebdomadaire, mensuel, annuel ou RRULE personnalis\xE9e). Quand une t\xE2che r\xE9currente est termin\xE9e, sa date planifi\xE9e est automatiquement mise \xE0 jour \xE0 la prochaine occurrence."},recurrenceAnchor:{name:"Ancre de r\xE9currence",description:"Contr\xF4le le calcul de la prochaine occurrence : 'scheduled' utilise la date planifi\xE9e, 'completion' utilise la date de compl\xE9tion r\xE9elle."},reminders:{name:"Rappels",description:"Notifications d\xE9clench\xE9es avant les dates d'\xE9ch\xE9ance ou planifi\xE9es. Stock\xE9 comme liste d'objets de rappel avec le timing et une description optionnelle."},title:{name:"Titre",description:"Le nom de la t\xE2che. Peut \xEAtre stock\xE9 dans le frontmatter ou dans le nom du fichier (quand 'Stocker le titre dans le nom du fichier' est activ\xE9)."},dateCreated:{name:"Date de cr\xE9ation",description:"Horodatage de la cr\xE9ation de la t\xE2che. D\xE9fini automatiquement et utilis\xE9 pour le tri par ordre de cr\xE9ation."},dateModified:{name:"Date de modification",description:"Horodatage de la derni\xE8re modification de la t\xE2che. Mis \xE0 jour automatiquement quand une propri\xE9t\xE9 de t\xE2che change."},completedDate:{name:"Date de compl\xE9tion",description:"Horodatage quand la t\xE2che a \xE9t\xE9 marqu\xE9e comme termin\xE9e. D\xE9fini automatiquement quand le statut passe \xE0 un \xE9tat termin\xE9."},archiveTag:{name:"\xC9tiquette d'archive",description:"\xC9tiquette ajout\xE9e aux t\xE2ches lors de l'archivage. Utilis\xE9e pour identifier les t\xE2ches archiv\xE9es et peut d\xE9clencher le d\xE9placement des fichiers vers le dossier d'archive."},timeEntries:{name:"Entr\xE9es de temps",description:"Enregistrements des sessions de suivi du temps pour cette t\xE2che. Chaque entr\xE9e stocke les horodatages de d\xE9but et de fin. Utilis\xE9 pour calculer le temps total pass\xE9."},completeInstances:{name:"Instances termin\xE9es",description:"Historique de compl\xE9tion pour les t\xE2ches r\xE9currentes. Stocke les dates auxquelles chaque instance a \xE9t\xE9 termin\xE9e pour \xE9viter les doublons."},skippedInstances:{name:"Instances ignor\xE9es",description:"Occurrences ignor\xE9es pour les t\xE2ches r\xE9currentes. Stocke les dates des instances qui ont \xE9t\xE9 ignor\xE9es plut\xF4t que termin\xE9es."},blockedBy:{name:"Bloqu\xE9e par",description:"Liens vers les t\xE2ches qui doivent \xEAtre termin\xE9es avant celle-ci. Stock\xE9 comme wikilinks. Les t\xE2ches bloqu\xE9es affichent un indicateur visuel."},sortOrder:{name:"Ordre manuel",description:"Propri\xE9t\xE9 de frontmatter utilis\xE9e pour le classement manuel par glisser-d\xE9poser. Une vue doit \xEAtre tri\xE9e par cette propri\xE9t\xE9 pour que le glisser-d\xE9poser fonctionne."},pomodoros:{name:"Pomodoros",description:"Nombre de sessions Pomodoro termin\xE9es. Quand le stockage de donn\xE9es est configur\xE9 sur 'Notes quotidiennes', ceci est \xE9crit dans les notes quotidiennes au lieu des fichiers de t\xE2ches."},icsEventId:{name:"ID d'\xE9v\xE9nement ICS",description:"Identifiant unique liant une note \xE0 un \xE9v\xE9nement de calendrier ICS. Ajout\xE9 automatiquement lors de la cr\xE9ation de notes \xE0 partir d'\xE9v\xE9nements de calendrier."},icsEventTag:{name:"\xC9tiquette d'\xE9v\xE9nement ICS",description:"\xC9tiquette identifiant les notes cr\xE9\xE9es \xE0 partir d'\xE9v\xE9nements de calendrier ICS. Utilis\xE9e pour distinguer les notes g\xE9n\xE9r\xE9es par le calendrier des t\xE2ches normales."}},statusCard:{valuesHeader:"Valeurs de statut"},priorityCard:{valuesHeader:"Valeurs de priorit\xE9"},projectsCard:{defaultProjects:"Projets par d\xE9faut :",useParentNoteForTaskCreation:"Utiliser la note active pour les nouvelles t\xE2ches :",useParentNoteForInlineTasks:"Utiliser la note parente pour la cr\xE9ation en ligne/conversion instantan\xE9e :",useParentHeader:"Utiliser le titre parent comme projet :",inheritParentTaskProperties:"H\xE9riter des propri\xE9t\xE9s de la t\xE2che parente pour les sous-t\xE2ches :",noDefaultProjects:"Aucun projet par d\xE9faut s\xE9lectionn\xE9",autosuggestFilters:"Filtres d'auto-suggestion",customizeDisplay:"Personnaliser l'affichage",filtersOn:"Filtres actifs"},titleCard:{storeTitleInFilename:"Stocker le titre dans le nom du fichier :",storedInFilename:"Stock\xE9 dans le nom du fichier",filenameUpdatesWithTitle:"Le nom du fichier sera automatiquement mis \xE0 jour quand le titre de la t\xE2che change.",filenameFormat:"Format du nom de fichier :",customTemplate:"Mod\xE8le personnalis\xE9 :",legacySyntaxWarning:"La syntaxe \xE0 accolades simples comme {title} est obsol\xE8te. Veuillez utiliser la syntaxe \xE0 accolades doubles {{title}} pour la coh\xE9rence avec les mod\xE8les de corps.",occurrenceFilenameTemplate:"Mod\xE8le de nom de fichier des occurrences",occurrenceFilenameTemplateHelp:"Mod\xE8le de nom de fichier pour les occurrences mat\xE9rialis\xE9es des t\xE2ches r\xE9currentes. Laissez-le vide pour conserver le nom existant (titre de la t\xE2che parente suivi d\u2019un suffixe num\xE9rique). Choisissez explicitement la granularit\xE9 avec {{occurrenceDate}}, {{occurrenceWeek}}, {{occurrenceMonth}}, {{occurrenceYear}} ou {{occurrenceMonthName}}. Toutes les variables de nom de fichier habituelles fonctionnent \xE9galement. Une t\xE2che parente peut remplacer ce mod\xE8le via la propri\xE9t\xE9 de frontmatter configur\xE9e ci-dessous.",occurrenceFilenameProperty:"Propri\xE9t\xE9 de remplacement du mod\xE8le d\u2019occurrence",occurrenceFilenamePropertyHelp:"Nom de la propri\xE9t\xE9 de frontmatter d\u2019une t\xE2che r\xE9currente parente qui remplace le mod\xE8le de nom de fichier de ses occurrences."},tagsCard:{nativeObsidianTags:"Utilise les \xE9tiquettes Obsidian natives"},remindersCard:{defaultReminders:"Rappels par d\xE9faut"},taskStatuses:{header:"Statuts des t\xE2ches",description:"Personnalisez les options de statut disponibles pour vos t\xE2ches. Ces statuts contr\xF4lent le cycle de vie des t\xE2ches et d\xE9terminent quand les t\xE2ches sont consid\xE9r\xE9es comme termin\xE9es.",howTheyWork:{title:"Comment fonctionnent les statuts :",value:`Valeur : L'identifiant interne stock\xE9 dans vos fichiers de t\xE2ches (ex. "in-progress")`,label:`Label : Le nom affich\xE9 dans l'interface (ex. "En cours")`,color:"Couleur : Couleur d'indicateur visuel pour les points et badges de statut",icon:`Ic\xF4ne : Nom d'ic\xF4ne Lucide optionnel \xE0 afficher \xE0 la place du point color\xE9 (ex. "check", "circle", "clock"). Parcourir les ic\xF4nes sur lucide.dev`,completed:"Termin\xE9 : Quand coch\xE9, les t\xE2ches avec ce statut sont consid\xE9r\xE9es comme finies et peuvent \xEAtre filtr\xE9es diff\xE9remment",autoArchive:"Archivage auto : Quand activ\xE9, les t\xE2ches seront automatiquement archiv\xE9es apr\xE8s le d\xE9lai sp\xE9cifi\xE9 (1-1440 minutes)",orderNote:"L'ordre ci-dessous d\xE9termine la s\xE9quence lors du passage d'un statut \xE0 l'autre en cliquant sur les badges de statut des t\xE2ches."},addNew:{name:"Ajouter un nouveau statut",description:"Cr\xE9er une nouvelle option de statut pour vos t\xE2ches",buttonText:"Ajouter un statut"},validationNote:'Note : Vous devez avoir au moins 2 statuts, et au moins un statut doit \xEAtre marqu\xE9 comme "Termin\xE9".',emptyState:"Aucun statut personnalis\xE9 configur\xE9. Ajoutez un statut pour commencer.",emptyStateButton:"Ajouter un statut",fields:{value:"Valeur :",label:"Label :",color:"Couleur :",icon:"Ic\xF4ne :",completed:"Termin\xE9 :",excludeFromCycle:"Ignorer au cycle :",nextStatus:"Statut suivant :",autoArchive:"Archivage auto :",delayMinutes:"D\xE9lai (minutes) :"},placeholders:{value:"en-cours",label:"En cours",icon:"check, circle, clock",nextStatusDefault:"Utiliser l'ordre des statuts"},badges:{completed:"Termin\xE9"},deleteConfirm:'Voulez-vous vraiment supprimer le statut "{label}" ?'},taskPriorities:{header:"Priorit\xE9s des t\xE2ches",description:"Personnalisez les niveaux de priorit\xE9 disponibles pour vos t\xE2ches. Dans v4.0+, les priorit\xE9s sont tri\xE9es alphab\xE9tiquement par leur valeur dans les vues Bases.",howTheyWork:{title:"Comment fonctionnent les priorit\xE9s :",value:`Valeur : L'identifiant interne stock\xE9 dans vos fichiers de t\xE2ches. Utilisez des pr\xE9fixes comme "1-urgent", "2-high" pour contr\xF4ler l'ordre de tri dans les vues Bases.`,label:`Label d'affichage : Le nom affich\xE9 dans l'interface (ex. "Priorit\xE9 \xE9lev\xE9e")`,color:"Couleur : Couleur d'indicateur visuel pour les points et badges de priorit\xE9",icon:"Ic\xF4ne : Ic\xF4ne Lucide facultative \xE0 afficher sur les cartes de t\xE2ches \xE0 la place du point de priorit\xE9",weight:"Poids : Valeur num\xE9rique pour le tri (les poids plus \xE9lev\xE9s apparaissent en premier dans les listes)",weightNote:"Les t\xE2ches sont automatiquement tri\xE9es par poids de priorit\xE9 en ordre d\xE9croissant (le poids le plus \xE9lev\xE9 en premier). Les poids peuvent \xEAtre n'importe quel nombre positif."},addNew:{name:"Ajouter une nouvelle priorit\xE9",description:"Cr\xE9er un nouveau niveau de priorit\xE9 pour vos t\xE2ches",buttonText:"Ajouter une priorit\xE9"},validationNote:"Note : Vous devez avoir au moins 1 priorit\xE9. Les priorit\xE9s sont tri\xE9es alphab\xE9tiquement par valeur dans les vues Bases.",emptyState:"Aucune priorit\xE9 personnalis\xE9e configur\xE9e. Ajoutez une priorit\xE9 pour commencer.",emptyStateButton:"Ajouter une priorit\xE9",fields:{value:"Valeur :",label:"Label :",color:"Couleur :",icon:"Ic\xF4ne :",weight:"Poids :"},placeholders:{value:"elevee",label:"Priorit\xE9 \xE9lev\xE9e",icon:"alert-circle"},weightLabel:"Poids : {weight}",deleteConfirm:"Vous devez avoir au moins une priorit\xE9",deleteTooltip:"Supprimer la priorit\xE9"},fieldMapping:{header:"Mappage des champs",warning:"\u26A0\uFE0F Attention : TaskNotes lira ET \xE9crira en utilisant ces noms de propri\xE9t\xE9s. Les changer apr\xE8s avoir cr\xE9\xE9 des t\xE2ches peut causer des incoh\xE9rences.",description:"Configurez quelles propri\xE9t\xE9s frontmatter TaskNotes doit utiliser pour chaque champ.",resetButton:{name:"R\xE9initialiser les mappages de champs",description:"R\xE9initialiser tous les mappages de champs aux valeurs par d\xE9faut",buttonText:"R\xE9initialiser aux d\xE9fauts"},notices:{resetSuccess:"Mappages de champs r\xE9initialis\xE9s aux d\xE9fauts",resetFailure:"\xC9chec de la r\xE9initialisation des mappages de champs",updateFailure:"\xC9chec de la mise \xE0 jour du mappage de champ pour {label}. Veuillez r\xE9essayer."},table:{fieldHeader:"Champ TaskNotes",propertyHeader:"Nom de votre propri\xE9t\xE9"},fields:{title:"Titre",status:"Statut",priority:"Priorit\xE9",due:"Date d'\xE9ch\xE9ance",scheduled:"Date planifi\xE9e",contexts:"Contextes",projects:"Projets",timeEstimate:"Estimation de temps",recurrence:"R\xE9currence",dateCreated:"Date de cr\xE9ation",completedDate:"Date d'ach\xE8vement",dateModified:"Date de modification",archiveTag:"Tag d'archive",timeEntries:"Entr\xE9es de temps",completeInstances:"Instances compl\xE8tes",blockedBy:"Bloqu\xE9 par",sortOrder:"Ordre manuel",pomodoros:"Sessions Pomodoro",icsEventId:"ID d'\xE9v\xE9nement ICS",icsEventTag:"Tag d'\xE9v\xE9nement ICS",reminders:"Rappels"}},customUserFields:{header:"Champs utilisateur personnalis\xE9s",description:"D\xE9finissez des propri\xE9t\xE9s frontmatter personnalis\xE9es pour qu'elles apparaissent comme options de filtrage conscientes du type dans toutes les vues. Chaque ligne : Nom d'affichage, Nom de propri\xE9t\xE9, Type.",addNew:{name:"Ajouter un nouveau champ utilisateur",description:"Cr\xE9er un nouveau champ personnalis\xE9 qui appara\xEEtra dans les filtres et vues",buttonText:"Ajouter un champ utilisateur"},emptyState:"Aucun champ utilisateur personnalis\xE9 configur\xE9. Ajoutez un champ pour cr\xE9er des propri\xE9t\xE9s personnalis\xE9es pour vos t\xE2ches.",emptyStateButton:"Ajouter un champ utilisateur",fields:{displayName:"Nom d'affichage :",propertyKey:"Cl\xE9 de propri\xE9t\xE9 :",type:"Type :",defaultValue:"Valeur par d\xE9faut :"},placeholders:{displayName:"Nom d'affichage",propertyKey:"nom-propriete",defaultValue:"Valeur par d\xE9faut",defaultValueList:"Valeurs par d\xE9faut (s\xE9par\xE9es par des virgules)"},types:{text:"Texte",number:"Nombre",boolean:"Bool\xE9en",date:"Date (AAAA-MM-JJ)",list:"Liste"},defaultNames:{unnamedField:"Champ sans nom",noKey:"aucune-cle"},deleteTooltip:"Supprimer le champ",autosuggestFilters:{header:"Filtres d'auto-suggestion (Avanc\xE9)",description:"Filtrer quels fichiers apparaissent dans les suggestions d'auto-compl\xE9tion pour ce champ"}}},appearance:{taskCards:{header:"Cartes de t\xE2ches",description:"Configurez l'affichage des cartes de t\xE2ches dans toutes les vues.",defaultVisibleProperties:{name:"Propri\xE9t\xE9s visibles par d\xE9faut",description:"Choisissez quelles propri\xE9t\xE9s apparaissent sur les cartes de t\xE2ches par d\xE9faut."},propertyGroups:{coreProperties:"PROPRI\xC9T\xC9S PRINCIPALES",organization:"ORGANISATION",customProperties:"PROPRI\xC9T\xC9S PERSONNALIS\xC9ES"},properties:{status:"Point de statut",priority:"Point de priorit\xE9",due:"Date d'\xE9ch\xE9ance",scheduled:"Date planifi\xE9e",timeEstimate:"Estimation de temps",totalTrackedTime:"Temps suivi total",checklistProgress:"Progression de la liste de contr\xF4le",recurrence:"R\xE9currence",completedDate:"Date d'ach\xE8vement",createdDate:"Date de cr\xE9ation",modifiedDate:"Date de modification",projects:"Projets",contexts:"Contextes",tags:"\xC9tiquettes",blocked:"Bloqu\xE9",blocking:"Bloquant"}},taskFilenames:{header:"Noms de fichiers des t\xE2ches",description:"Configurez comment les fichiers de t\xE2ches sont nomm\xE9s lors de leur cr\xE9ation.",storeTitleInFilename:{name:"Stocker le titre dans le nom de fichier",description:"Utiliser le titre de la t\xE2che comme nom de fichier. Le nom de fichier sera mis \xE0 jour quand le titre de la t\xE2che changera (Recommand\xE9)."},filenameFormat:{name:"Format du nom de fichier",description:"Comment les noms de fichiers de t\xE2ches doivent \xEAtre g\xE9n\xE9r\xE9s",options:{title:"Titre de la t\xE2che (Non-mis \xE0 jour)",zettel:"Format Zettelkasten (AAMMJJ + secondes base36 depuis minuit)",timestamp:"Horodatage complet (AAAA-MM-JJ-HHMMSS)",custom:"Mod\xE8le personnalis\xE9",uuid:"UUID v4"}},customTemplate:{name:"Mod\xE8le de nom de fichier personnalis\xE9",description:"Mod\xE8le pour les noms de fichiers personnalis\xE9s. Variables disponibles : {{title}}, {{titleLower}}, {{titleUpper}}, {{titleSnake}}, {{titleKebab}}, {{titleCamel}}, {{titlePascal}}, {{date}}, {{shortDate}}, {{time}}, {{time12}}, {{time24}}, {{timestamp}}, {{dateTime}}, {{year}}, {{month}}, {{monthName}}, {{monthNameShort}}, {{day}}, {{dayName}}, {{dayNameShort}}, {{hour}}, {{hour12}}, {{minute}}, {{second}}, {{milliseconds}}, {{ms}}, {{ampm}}, {{week}}, {{quarter}}, {{unix}}, {{unixMs}}, {{timezone}}, {{timezoneShort}}, {{utcOffset}}, {{utcOffsetShort}}, {{utcZ}}, {{zettel}}, {{uuid}}, {{nano}}, {{priority}}, {{priorityShort}}, {{status}}, {{statusShort}}, {{dueDate}}, {{scheduledDate}}",placeholder:"{{date}}-{{title}}-{{dueDate}}",helpText:"Note : {{dueDate}} et {{scheduledDate}} sont au format AAAA-MM-JJ et seront vides s'ils ne sont pas d\xE9finis."}},displayFormatting:{header:"Formatage d'affichage",description:"Configurez comment les dates, heures et autres donn\xE9es sont affich\xE9es dans le plugin.",timeFormat:{name:"Format d'heure",description:"Afficher l'heure au format 12 heures ou 24 heures dans tout le plugin",options:{twelveHour:"12 heures (AM/PM)",twentyFourHour:"24 heures"}}},calendarView:{header:"Vue calendrier",description:"Personnalisez l'apparence et le comportement de la vue calendrier.",defaultView:{name:"Vue par d\xE9faut",description:"La vue calendrier affich\xE9e \xE0 l'ouverture de l'onglet calendrier",options:{monthGrid:"Grille mensuelle",weekTimeline:"Chronologie hebdomadaire",dayTimeline:"Chronologie quotidienne",yearView:"Vue annuelle",customMultiDay:"Multi-jours personnalis\xE9"}},customDayCount:{name:"Nombre de jours de la vue personnalis\xE9e",description:"Nombre de jours \xE0 afficher dans la vue multi-jours personnalis\xE9e",placeholder:"3"},firstDayOfWeek:{name:"Premier jour de la semaine",description:"Quel jour doit \xEAtre la premi\xE8re colonne dans les vues hebdomadaires"},showWeekends:{name:"Afficher les week-ends",description:"Afficher les week-ends dans les vues calendrier"},showWeekNumbers:{name:"Afficher les num\xE9ros de semaine",description:"Afficher les num\xE9ros de semaine dans les vues calendrier"},showTodayHighlight:{name:"Surligner aujourd'hui",description:"Surligner le jour actuel dans les vues calendrier"},showCurrentTimeIndicator:{name:"Afficher l'indicateur de l'heure actuelle",description:"Afficher une ligne montrant l'heure actuelle dans les vues chronologiques"},selectionMirror:{name:"Miroir de s\xE9lection",description:"Afficher un aper\xE7u visuel lors du glissement pour s\xE9lectionner des plages horaires"},calendarLocale:{name:"Locale du calendrier",description:`Locale du calendrier pour le formatage des dates et le syst\xE8me calendaire (ex. "en", "fa" pour le Farsi/Persan, "de" pour l'Allemand). Laisser vide pour d\xE9tecter automatiquement depuis le navigateur.`,placeholder:"D\xE9tection automatique",invalidLocale:"Locale invalide. Veuillez entrer un code de langue valide (ex. 'fr', 'en', 'de-DE')."}},defaultEventVisibility:{header:"Visibilit\xE9 des \xE9v\xE9nements par d\xE9faut",description:"Configurez quels types d'\xE9v\xE9nements sont visibles par d\xE9faut \xE0 l'ouverture du Calendrier. Les utilisateurs peuvent toujours activer/d\xE9sactiver ces options dans la vue calendrier.",showScheduledTasks:{name:"Afficher les t\xE2ches planifi\xE9es",description:"Afficher les t\xE2ches avec dates planifi\xE9es par d\xE9faut"},showDueDates:{name:"Afficher les dates d'\xE9ch\xE9ance",description:"Afficher les dates d'\xE9ch\xE9ance des t\xE2ches par d\xE9faut"},showDueWhenScheduled:{name:"Afficher les \xE9ch\xE9ances quand planifi\xE9es",description:"Afficher les dates d'\xE9ch\xE9ance m\xEAme pour les t\xE2ches qui ont d\xE9j\xE0 des dates planifi\xE9es"},showTimeEntries:{name:"Afficher les entr\xE9es de temps",description:"Afficher les entr\xE9es de suivi du temps termin\xE9es par d\xE9faut"},showRecurringTasks:{name:"Afficher les t\xE2ches r\xE9currentes",description:"Afficher les instances de t\xE2ches r\xE9currentes par d\xE9faut"},showICSEvents:{name:"Afficher les \xE9v\xE9nements ICS",description:"Afficher les \xE9v\xE9nements des abonnements ICS par d\xE9faut"}},timeSettings:{header:"Param\xE8tres de temps",description:"Configurez les param\xE8tres d'affichage li\xE9s au temps pour les vues chronologiques.",timeSlotDuration:{name:"Dur\xE9e des cr\xE9neaux horaires",description:"Dur\xE9e de chaque cr\xE9neau horaire dans les vues chronologiques",options:{fifteenMinutes:"15 minutes",thirtyMinutes:"30 minutes",sixtyMinutes:"60 minutes"}},startTime:{name:"Heure de d\xE9but",description:"Heure la plus t\xF4t affich\xE9e dans les vues chronologiques (format HH:MM)",placeholder:"06:00"},endTime:{name:"Heure de fin",description:"Heure la plus tardive affich\xE9e dans les vues chronologiques (format HH:MM). Utilisez des valeurs sup\xE9rieures \xE0 24:00 pour afficher les premi\xE8res heures du jour suivant, par exemple 26:00 pour 2 h.",placeholder:"26:00"},initialScrollTime:{name:"Heure de d\xE9filement initial",description:"Heure vers laquelle d\xE9filer \xE0 l'ouverture des vues chronologiques (format HH:MM)",placeholder:"09:00"},eventMinHeight:{name:"Hauteur minimale d'\xE9v\xE9nement",description:"Hauteur minimale pour les \xE9v\xE9nements dans les vues chronologiques (pixels)",placeholder:"15"}},uiElements:{header:"\xC9l\xE9ments d'interface",description:"Configurez l'affichage de divers \xE9l\xE9ments d'interface.",showTrackedTasksInStatusBar:{name:"Afficher les t\xE2ches suivies dans la barre de statut",description:"Afficher les t\xE2ches actuellement suivies dans la barre de statut d'Obsidian"},showProjectSubtasksWidget:{name:"Afficher le widget des sous-t\xE2ches de projet",description:"Afficher un widget montrant les sous-t\xE2ches pour la note de projet actuelle"},projectSubtasksPosition:{name:"Position des sous-t\xE2ches de projet",description:"O\xF9 positionner le widget des sous-t\xE2ches de projet",options:{top:"Haut de la note",bottom:"Bas de la note"}},showRelationshipsWidget:{name:"Afficher le widget de relations",description:"Afficher un widget montrant toutes les relations de la note actuelle (sous-t\xE2ches, projets, d\xE9pendances)"},relationshipsPosition:{name:"Position des relations",description:"O\xF9 positionner le widget de relations",options:{top:"Haut de la note",bottom:"Bas de la note"}},showTaskCardInNote:{name:"Afficher la carte de t\xE2che dans la note",description:"Afficher un widget de carte de t\xE2che en haut des notes de t\xE2che montrant les d\xE9tails et actions de la t\xE2che"},showCompletedTaskStrikethrough:{name:"Barrer les titres des t\xE2ches termin\xE9es",description:"Trace une ligne sur les titres des cartes de t\xE2ches termin\xE9es. D\xE9sactivez cette option pour rendre les t\xE2ches termin\xE9es plus lisibles"},showExpandableSubtasks:{name:"Afficher les sous-t\xE2ches extensibles",description:"Permettre d'\xE9tendre/r\xE9duire les sections de sous-t\xE2ches dans les cartes de t\xE2ches"},expandSubtasksByDefault:{name:"D\xE9velopper les sous-t\xE2ches par d\xE9faut",description:"Afficher les sous-t\xE2ches de projet d\xE9velopp\xE9es lorsque les cartes de t\xE2ches sont rendues"},subtaskChevronPosition:{name:"Position du chevron des sous-t\xE2ches",description:"Position des chevrons d'extension/r\xE9duction dans les cartes de t\xE2ches",options:{left:"C\xF4t\xE9 gauche",right:"C\xF4t\xE9 droit"}},viewsButtonAlignment:{name:"Alignement du bouton des vues",description:"Alignement du bouton vues/filtres dans l'interface des t\xE2ches",options:{left:"C\xF4t\xE9 gauche",right:"C\xF4t\xE9 droit"}}},projectAutosuggest:{header:"Autosuggestion de projets",description:"Personnalisez l'affichage des suggestions de projets lors de la cr\xE9ation de t\xE2ches.",requiredTags:{name:"Tags requis",description:"Afficher seulement les notes avec l'un de ces tags (s\xE9par\xE9s par des virgules). Laisser vide pour afficher toutes les notes.",placeholder:"projet, actif, important"},includeFolders:{name:"Inclure les dossiers",description:"Afficher seulement les notes dans ces dossiers (chemins s\xE9par\xE9s par des virgules). Laisser vide pour afficher tous les dossiers.",placeholder:"Projets/, Travail/Actif, Personnel"},requiredPropertyKey:{name:"Cl\xE9 de propri\xE9t\xE9 requise",description:"Afficher seulement les notes o\xF9 cette propri\xE9t\xE9 frontmatter correspond \xE0 la valeur ci-dessous. Laisser vide pour ignorer.",placeholder:"type-projet"},requiredPropertyValue:{name:"Valeur de propri\xE9t\xE9 requise",description:"Seules les notes o\xF9 la propri\xE9t\xE9 \xE9gale cette valeur sont sugg\xE9r\xE9es. Laisser vide pour exiger que la propri\xE9t\xE9 existe.",placeholder:"projet"},customizeDisplay:{name:"Personnaliser l'affichage des suggestions",description:"Afficher les options avanc\xE9es pour configurer comment les suggestions de projets apparaissent et quelles informations elles affichent."},enableFuzzyMatching:{name:"Activer la correspondance floue",description:"Permettre les fautes de frappe et correspondances partielles dans la recherche de projet. Peut \xEAtre plus lent dans les gros coffres."},displayRowsHelp:"Configurez jusqu'\xE0 3 lignes d'informations \xE0 afficher pour chaque suggestion de projet.",displayRows:{row1:{name:"Ligne 1",description:"Format : {propri\xE9t\xE9|drapeaux}. Propri\xE9t\xE9s : title, aliases, file.path, file.parent. Drapeaux : n(Label) affiche le label, s rend cherchable. Exemple : {title|n(Titre)|s}",placeholder:"{title|n(Titre)}"},row2:{name:"Ligne 2 (optionnel)",description:"Mod\xE8les courants : {aliases|n(Alias)}, {file.parent|n(Dossier)}, literal:Texte personnalis\xE9",placeholder:"{aliases|n(Alias)}"},row3:{name:"Ligne 3 (optionnel)",description:"Infos suppl\xE9mentaires comme {file.path|n(Chemin)} ou champs frontmatter personnalis\xE9s",placeholder:"{file.path|n(Chemin)}"}},quickReference:{header:"R\xE9f\xE9rence rapide",properties:"Propri\xE9t\xE9s disponibles : title, aliases, file.path, file.parent, ou tout champ frontmatter",labels:'Ajouter des labels : {title|n(Titre)} \u2192 "Titre : Mon Projet"',searchable:"Rendre cherchable : {description|s} inclut la description dans la recherche +",staticText:"Texte statique : literal:Mon Label Personnalis\xE9",alwaysSearchable:"Le nom de fichier, titre et alias sont toujours cherchables par d\xE9faut."}},dataStorage:{name:"Emplacement de stockage",description:"O\xF9 stocker l'historique des sessions Pomodoro",pluginData:"Donn\xE9es du plugin (recommand\xE9)",dailyNotes:"Notes quotidiennes",notices:{locationChanged:"Emplacement de stockage Pomodoro chang\xE9 vers {location}"}},notifications:{description:"Configurez les notifications de rappel de t\xE2ches et les alertes."},performance:{description:"Configurez les options de performance et de comportement du plugin."},timeTrackingSection:{description:"Configurez les comportements de suivi automatique du temps."},recurringSection:{description:"Configurez le comportement pour la gestion des t\xE2ches r\xE9currentes."}},integrations:{mobileCalendar:{disable:{name:"D\xE9sactiver les int\xE9grations de calendrier sur mobile",description:"Ne pas charger les calendriers Google, Microsoft et ICS dans Obsidian Mobile. Les int\xE9grations de calendrier sur ordinateur restent inchang\xE9es."},status:{name:"Les int\xE9grations de calendrier sont d\xE9sactiv\xE9es sur cet appareil mobile",description:"D\xE9sactivez ce r\xE9glage puis rechargez Obsidian Mobile pour reprendre le chargement des calendriers."}},basesIntegration:{header:"Int\xE9gration Bases",description:"Configurez l'int\xE9gration avec le plugin Obsidian Bases. Il s'agit d'une fonctionnalit\xE9 exp\xE9rimentale qui repose actuellement sur des API Obsidian non document\xE9es. Le comportement peut changer ou se briser.",enable:{name:"Activer l'int\xE9gration Bases",description:"Permettre l'utilisation des vues TaskNotes dans le plugin Obsidian Bases. Le plugin Bases doit \xEAtre activ\xE9 pour que cela fonctionne."},viewCommands:{header:"Vues et fichiers base",description:"TaskNotes utilise les fichiers Obsidian Bases (.base) pour ses vues. Ces fichiers sont g\xE9n\xE9r\xE9s automatiquement au d\xE9marrage s'ils n'existent pas, configur\xE9s avec vos param\xE8tres actuels (identification des t\xE2ches, correspondance des champs, statuts, etc.).",descriptionRegen:"Les fichiers Base ne sont pas mis \xE0 jour automatiquement lorsque vous modifiez les param\xE8tres. Pour appliquer les nouveaux param\xE8tres, utilisez \xAB Mettre \xE0 jour les fichiers \xBB ci-dessous, supprimez les fichiers .base existants et red\xE9marrez Obsidian, ou modifiez-les manuellement.",docsLink:"Voir la documentation pour les formules disponibles et les options de personnalisation",docsLinkUrl:"https://tasknotes.dev/views/default-base-templates",commands:{miniCalendar:"Ouvrir la vue mini calendrier",kanban:"Ouvrir la vue kanban",tasks:"Ouvrir la vue t\xE2ches",advancedCalendar:"Ouvrir la vue calendrier avanc\xE9",agenda:"Ouvrir la vue agenda",relationships:"Widget de relations",pomodoroStats:"Base de statistiques Pomodoro"},fileLabel:"Fichier : {path}",resetButton:"R\xE9initialiser",resetTooltip:"R\xE9initialiser au chemin par d\xE9faut",pomodoroDailyNotesHint:"La Base de statistiques Pomodoro g\xE9n\xE9r\xE9e lit l\u2019historique Pomodoro depuis les notes quotidiennes. Si votre historique est encore stock\xE9 dans les donn\xE9es du plugin, migrez-le dans les param\xE8tres avant d\u2019utiliser ce fichier Base."},autoCreateDefaultFiles:{name:"Cr\xE9er automatiquement les fichiers par d\xE9faut",description:"Cr\xE9er automatiquement les fichiers Base par d\xE9faut manquants au d\xE9marrage. D\xE9sactivez pour emp\xEAcher la recr\xE9ation des fichiers d'exemple supprim\xE9s."},createDefaultFiles:{name:"Cr\xE9er les fichiers par d\xE9faut",description:"Cr\xE9ez les fichiers .base par d\xE9faut dans le r\xE9pertoire TaskNotes/Views/. Les fichiers existants ne seront pas \xE9cras\xE9s.",buttonText:"Cr\xE9er les fichiers"},exportV3Views:{name:"Exporter les vues enregistr\xE9es V3 vers Bases",description:"Convertissez toutes vos vues enregistr\xE9es de TaskNotes v3 en un seul fichier .base avec plusieurs vues. Cela aide \xE0 migrer vos configurations de filtres v3 vers le nouveau syst\xE8me Bases.",buttonText:"Exporter les vues V3",noViews:"Aucune vue enregistr\xE9e \xE0 exporter",fileExists:"Le fichier existe d\xE9j\xE0",confirmOverwrite:`Un fichier nomm\xE9 "{fileName}" existe d\xE9j\xE0. L'\xE9craser ?`,success:"{count} vues enregistr\xE9es export\xE9es vers {filePath}",error:"\xC9chec de l'exportation des vues : {message}"},notices:{enabled:"Int\xE9gration Bases activ\xE9e. Veuillez red\xE9marrer Obsidian pour terminer la configuration.",disabled:"Int\xE9gration Bases d\xE9sactiv\xE9e. Veuillez red\xE9marrer Obsidian pour terminer la suppression."},updateDefaultFiles:{name:"Mettre \xE0 jour les fichiers par d\xE9faut",description:"Remplacer les fichiers .base par d\xE9faut configur\xE9s par des mod\xE8les g\xE9n\xE9r\xE9s \xE0 partir de vos param\xE8tres TaskNotes actuels.",buttonText:"Mettre \xE0 jour les fichiers",confirmTitle:"Mettre \xE0 jour les fichiers Base par d\xE9faut",confirmMessage:"Cela remplacera les fichiers .base par d\xE9faut configur\xE9s par des mod\xE8les fra\xEEchement g\xE9n\xE9r\xE9s. Toute modification manuelle de ces fichiers sera remplac\xE9e.",confirmText:"Mettre \xE0 jour les fichiers"}},calendarSubscriptions:{header:"Abonnements calendrier",description:"Abonnez-vous \xE0 des calendriers externes via des URL ICS/iCal pour voir les \xE9v\xE9nements \xE0 c\xF4t\xE9 de vos t\xE2ches.",defaultNoteTemplate:{name:"Mod\xE8le de note par d\xE9faut",description:"Chemin vers le fichier mod\xE8le pour les notes cr\xE9\xE9es \xE0 partir d'\xE9v\xE9nements ICS",placeholder:"Templates/Mod\xE8le \xC9v\xE9nement.md"},defaultNoteFolder:{name:"Dossier de note par d\xE9faut",description:"Dossier pour les notes cr\xE9\xE9es \xE0 partir d'\xE9v\xE9nements ICS",placeholder:"Calendrier/\xC9v\xE9nements"},filenameFormat:{name:"Format du nom de fichier des notes ICS",description:"Comment les noms de fichiers sont g\xE9n\xE9r\xE9s pour les notes cr\xE9\xE9es \xE0 partir d'\xE9v\xE9nements ICS",options:{title:"Titre de l'\xE9v\xE9nement",zettel:"Format Zettelkasten",timestamp:"Horodatage",custom:"Mod\xE8le personnalis\xE9"}},customTemplate:{name:"Mod\xE8le de nom de fichier ICS personnalis\xE9",description:"Mod\xE8le pour les noms de fichiers d'\xE9v\xE9nements ICS personnalis\xE9s",placeholder:"{date}-{title}"},useICSEndAsDue:{name:"Utiliser l'heure de fin de l'\xE9v\xE9nement ICS comme date d'\xE9ch\xE9ance",description:"Lorsqu'activ\xE9, les t\xE2ches cr\xE9\xE9es \xE0 partir d'\xE9v\xE9nements de calendrier auront leur date d'\xE9ch\xE9ance d\xE9finie sur l'heure de fin de l'\xE9v\xE9nement. Pour les \xE9v\xE9nements sur toute la journ\xE9e, la date d'\xE9ch\xE9ance sera la date de l'\xE9v\xE9nement. Pour les \xE9v\xE9nements avec horaire, la date d'\xE9ch\xE9ance inclura l'heure de fin."},recurringEventRelatedNotesMode:{name:"Notes li\xE9es aux \xE9v\xE9nements r\xE9currents",description:"Choisissez si les notes li\xE9es \xE0 une occurrence d'un \xE9v\xE9nement de calendrier externe apparaissent sur toute la s\xE9rie charg\xE9e ou seulement sur l'instance s\xE9lectionn\xE9e.",options:{series:"Toute la s\xE9rie",instance:"Instance s\xE9lectionn\xE9e uniquement"}}},subscriptionsList:{header:"Liste des abonnements calendrier",addSubscription:{name:"Ajouter un abonnement calendrier",description:"Ajouter un nouvel abonnement calendrier depuis une URL ICS/iCal ou un fichier local",buttonText:"Ajouter un abonnement"},refreshAll:{name:"Actualiser tous les abonnements",description:"Actualiser manuellement tous les abonnements calendrier activ\xE9s",buttonText:"Tout actualiser"},newCalendarName:"Nouveau calendrier",emptyState:"Aucun abonnement calendrier configur\xE9. Ajoutez un abonnement pour synchroniser des calendriers externes.",notices:{addSuccess:"Nouvel abonnement calendrier ajout\xE9 - veuillez configurer les d\xE9tails",addFailure:"\xC9chec de l'ajout de l'abonnement",serviceUnavailable:"Service d'abonnement ICS non disponible",refreshSuccess:"Tous les abonnements calendrier actualis\xE9s avec succ\xE8s",refreshFailure:"\xC9chec de l'actualisation de certains abonnements calendrier",updateFailure:"\xC9chec de la mise \xE0 jour de l'abonnement",deleteSuccess:'Abonnement "{name}" supprim\xE9',deleteFailure:"\xC9chec de la suppression de l'abonnement",enableFirst:"Activez d'abord l'abonnement",refreshSubscriptionSuccess:'"{name}" actualis\xE9',refreshSubscriptionFailure:"\xC9chec de l'actualisation de l'abonnement"},labels:{enabled:"Activ\xE9 :",name:"Nom :",type:"Type :",url:"URL :",filePath:"Chemin du fichier :",color:"Couleur :",refreshMinutes:"Actualisation (min) :"},typeOptions:{remote:"URL distante",local:"Fichier local"},placeholders:{calendarName:"Nom du calendrier",url:"URL ICS/iCal",filePath:"Chemin du fichier local (ex. Calendrier.ics)",localFile:"Calendrier.ics"},statusLabels:{enabled:"Activ\xE9",disabled:"D\xE9sactiv\xE9",remote:"Distant",localFile:"Fichier local",remoteCalendar:"Calendrier distant",localFileCalendar:"Fichier local",synced:"Synchronis\xE9 {timeAgo}",error:"Erreur"},actions:{refreshNow:"Actualiser maintenant",deleteSubscription:"Supprimer l'abonnement"},refreshNow:"Actualiser maintenant",confirmDelete:{title:"Supprimer l'abonnement",message:`Voulez-vous vraiment supprimer l'abonnement "{name}" ? Cette action ne peut pas \xEAtre annul\xE9e.`,confirmText:"Supprimer"}},autoExport:{header:"Export ICS automatique",description:"Exportez automatiquement toutes vos t\xE2ches vers un fichier ICS.",enable:{name:"Activer l'export automatique",description:"Maintenir automatiquement un fichier ICS \xE0 jour avec toutes vos t\xE2ches"},filePath:{name:"Chemin du fichier d'export",description:"Chemin o\xF9 le fichier ICS sera sauvegard\xE9 (relatif \xE0 la racine du coffre)",placeholder:"tasknotes-calendrier.ics"},interval:{name:"Intervalle de mise \xE0 jour (entre 5 et 1440 minutes)",description:"Fr\xE9quence de mise \xE0 jour du fichier d'export",placeholder:"60"},useDuration:{name:"Utiliser la dur\xE9e de la t\xE2che pour la longueur de l'\xE9v\xE9nement",description:"Lorsque activ\xE9, utilise l'estimation de temps (dur\xE9e) de la t\xE2che au lieu de la date d'\xE9ch\xE9ance pour l'heure de fin de l'\xE9v\xE9nement du calendrier. Ceci est utile pour les flux de travail GTD o\xF9 planifi\xE9 + dur\xE9e repr\xE9sente la planification du travail, tandis que la date d'\xE9ch\xE9ance repr\xE9sente les d\xE9lais."},exportNow:{name:"Exporter maintenant",description:"D\xE9clencher manuellement un export imm\xE9diat",buttonText:"Exporter maintenant"},status:{title:"Statut de l'export :",lastExport:"Dernier export : {time}",nextExport:"Prochain export : {time}",noExports:"Aucun export encore",notScheduled:"Non programm\xE9",notInitialized:"Service d'export automatique non initialis\xE9 - veuillez red\xE9marrer Obsidian",serviceNotInitialized:"Service non initialis\xE9 - veuillez red\xE9marrer Obsidian"},notices:{reloadRequired:"Veuillez recharger Obsidian pour que les changements d'export automatique prennent effet.",exportSuccess:"T\xE2ches export\xE9es avec succ\xE8s",exportFailure:"\xC9chec de l'export - v\xE9rifiez la console pour les d\xE9tails",serviceUnavailable:"Service d'export automatique non disponible"},excludeCompleted:{name:"Exclure les t\xE2ches termin\xE9es",description:"Lorsque cette option est activ\xE9e, les t\xE2ches termin\xE9es sont omises des exports ICS. Les statuts termin\xE9s proviennent de vos param\xE8tres de statut de t\xE2che."},excludeArchived:{name:"Exclure les t\xE2ches archiv\xE9es",description:"Lorsque cette option est activ\xE9e, les t\xE2ches archiv\xE9es sont omises des exports ICS."},requireDueDate:{name:"Exiger une date d\u2019\xE9ch\xE9ance",description:"Lorsque cette option est activ\xE9e, seules les t\xE2ches avec une date d\u2019\xE9ch\xE9ance sont incluses dans les exports ICS."},requireScheduledDate:{name:"Exiger une date planifi\xE9e",description:"Lorsque cette option est activ\xE9e, seules les t\xE2ches avec une date planifi\xE9e sont incluses dans les exports ICS."}},googleCalendarExport:{header:"Exporter les t\xE2ches vers Google Agenda",description:"Synchronisez automatiquement vos t\xE2ches vers Google Agenda en tant qu'\xE9v\xE9nements. N\xE9cessite que Google Agenda soit connect\xE9 ci-dessus.",enable:{name:"Activer l'export des t\xE2ches",description:"Lorsqu'activ\xE9, les t\xE2ches avec des dates seront automatiquement synchronis\xE9es vers Google Agenda en tant qu'\xE9v\xE9nements."},targetCalendar:{name:"Calendrier cible",description:"S\xE9lectionnez dans quel calendrier cr\xE9er les \xE9v\xE9nements de t\xE2ches.",placeholder:"S\xE9lectionner un calendrier...",connectFirst:"Connectez d'abord Google Agenda",primarySuffix:" (Principal)"},syncTrigger:{name:"D\xE9clencheur de synchronisation",description:"Quelle date de t\xE2che doit d\xE9clencher la cr\xE9ation d'\xE9v\xE9nement.",options:{scheduled:"Date planifi\xE9e",due:"Date d'\xE9ch\xE9ance",both:"Les deux (pr\xE9f\xE9rer planifi\xE9e)"}},allDayEvents:{name:"Cr\xE9er en tant qu'\xE9v\xE9nements journ\xE9e enti\xE8re",description:"Lorsqu'activ\xE9, les t\xE2ches sont cr\xE9\xE9es en tant qu'\xE9v\xE9nements journ\xE9e enti\xE8re. Lorsque d\xE9sactiv\xE9, utilise l'estimation de temps pour la dur\xE9e."},defaultDuration:{name:"Dur\xE9e par d\xE9faut de l'\xE9v\xE9nement",description:"Dur\xE9e en minutes pour les \xE9v\xE9nements horodat\xE9s (utilis\xE9e lorsque la t\xE2che n'a pas d'estimation de temps)."},eventTitleTemplate:{name:"Mod\xE8le de titre d'\xE9v\xE9nement",description:"Mod\xE8le pour les titres d'\xE9v\xE9nements. Variables disponibles : {{title}}, {{status}}, {{priority}}",placeholder:"{{title}}"},includeDescription:{name:"Inclure les d\xE9tails de la t\xE2che dans la description",description:"Ajouter les m\xE9tadonn\xE9es de la t\xE2che (priorit\xE9, statut, tags, etc.) \xE0 la description de l'\xE9v\xE9nement."},includeObsidianLink:{name:"Inclure le lien Obsidian",description:"Ajouter un lien vers la t\xE2che dans Obsidian dans la description de l'\xE9v\xE9nement."},defaultReminder:{name:"Rappel par d\xE9faut",description:"Ajoutez des rappels contextuels aux \xE9v\xE9nements Google Calendar minut\xE9s. Saisissez les minutes avant l\u2019\xE9v\xE9nement, s\xE9par\xE9es par des virgules. Laissez vide pour utiliser les valeurs par d\xE9faut du calendrier. Valeurs courantes : 15, 30, 60, 1440."},automaticSyncBehavior:{header:"Comportement de synchronisation automatique"},syncOnCreate:{name:"Synchroniser \xE0 la cr\xE9ation de t\xE2che",description:"Cr\xE9er automatiquement un \xE9v\xE9nement de calendrier lorsqu'une nouvelle t\xE2che est cr\xE9\xE9e."},syncOnUpdate:{name:"Synchroniser \xE0 la mise \xE0 jour de t\xE2che",description:"Mettre \xE0 jour automatiquement l'\xE9v\xE9nement de calendrier lorsqu'une t\xE2che est modifi\xE9e."},syncOnComplete:{name:"Synchroniser \xE0 l'ach\xE8vement de t\xE2che",description:"Mettre \xE0 jour l'\xE9v\xE9nement de calendrier lorsqu'une t\xE2che est compl\xE9t\xE9e (ajoute une coche au titre)."},syncOnDelete:{name:"Supprimer l'\xE9v\xE9nement \xE0 la suppression de t\xE2che",description:"Supprimer l'\xE9v\xE9nement de calendrier lorsque la t\xE2che correspondante est supprim\xE9e."},manualSyncActions:{header:"Actions de synchronisation manuelle"},syncAllTasks:{name:"Synchroniser toutes les t\xE2ches",description:"Synchroniser toutes les t\xE2ches existantes vers Google Agenda. Cela cr\xE9era des \xE9v\xE9nements pour les t\xE2ches qui n'ont pas encore \xE9t\xE9 synchronis\xE9es.",buttonText:"Tout synchroniser"},unlinkAllTasks:{name:"Dissocier toutes les t\xE2ches",description:"Supprimer tous les liens t\xE2che-\xE9v\xE9nement sans supprimer les \xE9v\xE9nements du calendrier.",buttonText:"Tout dissocier",confirmTitle:"Dissocier toutes les t\xE2ches",confirmMessage:"Cela supprimera tous les liens entre les t\xE2ches et les \xE9v\xE9nements de calendrier. Les \xE9v\xE9nements du calendrier resteront mais ne seront plus mis \xE0 jour lorsque les t\xE2ches changent. \xCAtes-vous s\xFBr ?",confirmButtonText:"Tout dissocier"},notices:{notEnabled:"L'export Google Agenda n'est pas activ\xE9. Configurez-le dans Param\xE8tres > Int\xE9grations.",notEnabledOrConfigured:"L'export Google Agenda n'est pas activ\xE9 ou configur\xE9",serviceNotAvailable:"Service de synchronisation calendrier non disponible",syncResults:"Synchronis\xE9s : {synced}, \xC9chou\xE9s : {failed}, Ignor\xE9s : {skipped}",taskSynced:"T\xE2che synchronis\xE9e vers Google Agenda",noActiveFile:"Aucun fichier n'est actuellement actif",notATask:"Le fichier actuel n'est pas une t\xE2che",noDateToSync:"La t\xE2che n'a pas de date planifi\xE9e ou d'\xE9ch\xE9ance \xE0 synchroniser",syncFailed:"\xC9chec de la synchronisation de la t\xE2che vers Google Agenda : {message}",connectionExpired:"La connexion \xE0 Google Agenda a expir\xE9. Veuillez vous reconnecter dans Param\xE8tres > Int\xE9grations.",syncingTasks:"Synchronisation de {total} t\xE2ches vers Google Agenda...",syncComplete:"Synchronisation termin\xE9e : {synced} synchronis\xE9es, {failed} \xE9chou\xE9es, {skipped} ignor\xE9es",eventsDeletedAndUnlinked:"Tous les \xE9v\xE9nements supprim\xE9s et dissoci\xE9s",tasksUnlinked:"Tous les liens de t\xE2ches supprim\xE9s"},eventDescription:{untitledTask:"T\xE2che sans titre",priority:"Priorit\xE9 : {value}",status:"Statut : {value}",due:"\xC9ch\xE9ance : {value}",scheduled:"Planifi\xE9 : {value}",timeEstimate:"Estimation de temps : {value}",tags:"Tags : {value}",contexts:"Contextes : {value}",projects:"Projets : {value}",openInObsidian:"Ouvrir dans Obsidian"}},httpApi:{header:"API HTTP",description:"Activez l'API HTTP pour les int\xE9grations externes et les automations.",enable:{name:"Activer l'API HTTP",description:"D\xE9marrer le serveur HTTP local pour l'acc\xE8s API"},port:{name:"Port API",description:"Num\xE9ro de port pour le serveur API HTTP",placeholder:"3000"},authToken:{name:"Jeton d'authentification API",description:"Jeton requis pour l'authentification API (laisser vide pour pas d'authentification)",placeholder:"votre-jeton-secret"},mcp:{enable:{name:"Activer le serveur MCP",description:"Expose les outils TaskNotes via le Model Context Protocol sur le point de terminaison /mcp. N\xE9cessite l'activation de l'API HTTP."}},endpoints:{header:"Points de terminaison API disponibles",expandIcon:"\u25B6",collapseIcon:"\u25BC"}},webhooks:{header:"Webhooks",description:{overview:"Les webhooks envoient des notifications en temps r\xE9el aux services externes lorsque des \xE9v\xE9nements TaskNotes se produisent.",usage:"Configurez des webhooks pour int\xE9grer avec des outils d'automatisation, des services de synchronisation ou des applications personnalis\xE9es."},addWebhook:{name:"Ajouter un webhook",description:"Enregistrer un nouveau point de terminaison webhook",buttonText:"Ajouter un webhook"},emptyState:{message:"Aucun webhook configur\xE9. Ajoutez un webhook pour recevoir des notifications en temps r\xE9el.",buttonText:"Ajouter un webhook"},labels:{active:"Actif :",url:"URL :",events:"\xC9v\xE9nements :",transform:"Transformation :"},placeholders:{url:"URL du webhook",noEventsSelected:"Aucun \xE9v\xE9nement s\xE9lectionn\xE9",rawPayload:"Donn\xE9es brutes (aucune transformation)"},statusLabels:{active:"Actif",inactive:"Inactif",created:"Cr\xE9\xE9 {timeAgo}"},actions:{editEvents:"Modifier les \xE9v\xE9nements",delete:"Supprimer"},editEvents:"Modifier les \xE9v\xE9nements",notices:{urlUpdated:"URL du webhook mise \xE0 jour",enabled:"Webhook activ\xE9",disabled:"Webhook d\xE9sactiv\xE9",created:"Webhook cr\xE9\xE9 avec succ\xE8s",deleted:"Webhook supprim\xE9",updated:"Webhook mis \xE0 jour"},confirmDelete:{title:"Supprimer le webhook",message:`Voulez-vous vraiment supprimer ce webhook ?
|
||
|
||
URL : {url}
|
||
|
||
Cette action ne peut pas \xEAtre annul\xE9e.`,confirmText:"Supprimer"},cardHeader:"Webhook",cardFields:{active:"Actif :",url:"URL :",events:"\xC9v\xE9nements :",transform:"Transformation :"},eventsDisplay:{noEvents:"Aucun \xE9v\xE9nement s\xE9lectionn\xE9"},transformDisplay:{noTransform:"Donn\xE9es brutes (aucune transformation)"},secretModal:{title:"Secret webhook g\xE9n\xE9r\xE9",description:"Votre secret webhook a \xE9t\xE9 g\xE9n\xE9r\xE9. Sauvegardez ce secret car vous ne pourrez plus le voir :",usage:"Utilisez ce secret pour v\xE9rifier les donn\xE9es webhook dans votre application r\xE9ceptrice.",gotIt:"Compris"},editModal:{title:"Modifier le webhook",eventsHeader:"\xC9v\xE9nements auxquels s'abonner"},events:{taskCreated:{label:"T\xE2che cr\xE9\xE9e",description:"Quand de nouvelles t\xE2ches sont cr\xE9\xE9es"},taskUpdated:{label:"T\xE2che modifi\xE9e",description:"Quand les t\xE2ches sont modifi\xE9es"},taskCompleted:{label:"T\xE2che termin\xE9e",description:"Quand les t\xE2ches sont marqu\xE9es comme termin\xE9es"},taskDeleted:{label:"T\xE2che supprim\xE9e",description:"Quand les t\xE2ches sont supprim\xE9es"},taskArchived:{label:"T\xE2che archiv\xE9e",description:"Quand les t\xE2ches sont archiv\xE9es"},taskUnarchived:{label:"T\xE2che d\xE9sarchiv\xE9e",description:"Quand les t\xE2ches sont d\xE9sarchiv\xE9es"},timeStarted:{label:"Temps d\xE9marr\xE9",description:"Quand le suivi du temps d\xE9marre"},timeStopped:{label:"Temps arr\xEAt\xE9",description:"Quand le suivi du temps s'arr\xEAte"},pomodoroStarted:{label:"Pomodoro d\xE9marr\xE9",description:"Quand les sessions pomodoro commencent"},pomodoroCompleted:{label:"Pomodoro termin\xE9",description:"Quand les sessions pomodoro se terminent"},pomodoroInterrupted:{label:"Pomodoro interrompu",description:"Quand les sessions pomodoro sont arr\xEAt\xE9es"},recurringCompleted:{label:"Instance r\xE9currente termin\xE9e",description:"Quand les instances de t\xE2ches r\xE9currentes se terminent"},reminderTriggered:{label:"Rappel d\xE9clench\xE9",description:"Quand les rappels de t\xE2ches s'activent"}},modals:{secretGenerated:{title:"Secret du webhook g\xE9n\xE9r\xE9",description:"Le secret de votre webhook a \xE9t\xE9 g\xE9n\xE9r\xE9. Sauvegardez ce secret car vous ne pourrez plus le voir :",usage:"Utilisez ce secret pour v\xE9rifier les donn\xE9es du webhook dans votre application r\xE9ceptrice.",buttonText:"Compris"},edit:{title:"Modifier le webhook",eventsSection:"\xC9v\xE9nements auxquels s'abonner",transformSection:"Configuration de transformation (optionnel)",headersSection:"Configuration des en-t\xEAtes",transformFile:{name:"Fichier de transformation",description:"Chemin vers un fichier mod\xE8le .json dans votre coffre qui transforme les donn\xE9es du webhook",placeholder:"simple-template.json"},customHeaders:{name:"Inclure les en-t\xEAtes personnalis\xE9s",description:"Inclure les en-t\xEAtes TaskNotes (type d'\xE9v\xE9nement, signature, ID de livraison). D\xE9sactivez pour Discord, Slack et autres services avec des politiques CORS strictes."},buttons:{cancel:"Annuler",save:"Sauvegarder les modifications"},notices:{selectAtLeastOneEvent:"Veuillez s\xE9lectionner au moins un \xE9v\xE9nement"}},add:{title:"Ajouter un webhook",eventsSection:"\xC9v\xE9nements auxquels s'abonner",transformSection:"Configuration de transformation (optionnel)",headersSection:"Configuration des en-t\xEAtes",url:{name:"URL du webhook",description:"Le point de terminaison o\xF9 les donn\xE9es du webhook seront envoy\xE9es",placeholder:"https://votre-service.com/webhook"},transformFile:{name:"Fichier de transformation",description:"Chemin vers un fichier mod\xE8le .json dans votre coffre qui transforme les donn\xE9es du webhook",placeholder:"simple-template.json"},customHeaders:{name:"Inclure les en-t\xEAtes personnalis\xE9s",description:"Inclure les en-t\xEAtes TaskNotes (type d'\xE9v\xE9nement, signature, ID de livraison). D\xE9sactivez pour Discord, Slack et autres services avec des politiques CORS strictes."},transformHelp:{title:"Les mod\xE8les de transformation JSON permettent de personnaliser les donn\xE9es du webhook :",jsFiles:"",jsDescription:"",jsonFiles:"Fichiers .json :",jsonDescription:" Mod\xE8les avec ",jsonVariable:"${data.task.title}",leaveEmpty:"Laisser vide :",leaveEmptyDescription:" Envoyer les donn\xE9es brutes",example:"Exemple :",exampleFile:"simple-template.json"},buttons:{cancel:"Annuler",add:"Ajouter le webhook"},notices:{urlRequired:"L'URL du webhook est requise",selectAtLeastOneEvent:"Veuillez s\xE9lectionner au moins un \xE9v\xE9nement"}}}},otherIntegrations:{header:"Autres int\xE9grations de plugins",description:"Configurez les int\xE9grations avec d'autres plugins Obsidian."},mdbaseSpec:{header:"D\xE9finitions de types mdbase",learnMore:"En savoir plus sur mdbase-spec",enable:{name:"G\xE9n\xE9rer les d\xE9finitions de types mdbase",description:"G\xE9n\xE8re et maintient les fichiers de types mdbase (mdbase.yaml et _types/task.md) \xE0 la racine du coffre lorsque vos param\xE8tres changent."}},timeFormats:{justNow:"\xC0 l'instant",minutesAgo:"il y a {minutes} minute{plural}",hoursAgo:"il y a {hours} heure{plural}",daysAgo:"il y a {days} jour{plural}"}}},notices:{languageChanged:"Langue chang\xE9e pour {language}.",releaseAvailable:{message:"TaskNotes {version} est disponible.",action:"Ouvrir dans les plugins communautaires"},exportTasksFailed:"\xC9chec de l'export des t\xE2ches au format ICS",icsNoteCreatedSuccess:"Note cr\xE9\xE9e avec succ\xE8s",icsCreationModalOpenFailed:"\xC9chec de l'ouverture de la modale de cr\xE9ation",icsNoteLinkSuccess:`Note "{fileName}" li\xE9e \xE0 l'\xE9v\xE9nement ICS`,icsTaskCreatedSuccess:"T\xE2che cr\xE9\xE9e : {title}",icsRelatedItemsRefreshed:"Notes associ\xE9es actualis\xE9es",icsFileNotFound:"Fichier introuvable ou invalide",icsFileOpenFailed:"\xC9chec de l'ouverture du fichier",timeblockAttachmentExists:'"{fileName}" est d\xE9j\xE0 attach\xE9',timeblockAttachmentAdded:'"{fileName}" ajout\xE9 comme pi\xE8ce jointe',timeblockAttachmentRemoved:'"{fileName}" retir\xE9 des pi\xE8ces jointes',timeblockFileTypeNotSupported:`Impossible d'ouvrir "{fileName}" - type de fichier non pris en charge`,timeblockTitleRequired:"Veuillez saisir un titre pour le bloc de temps",timeblockUpdatedSuccess:'Bloc de temps "{title}" mis \xE0 jour avec succ\xE8s',timeblockUpdateFailed:"\xC9chec de la mise \xE0 jour du bloc de temps. Consultez la console pour plus de d\xE9tails.",timeblockDeletedSuccess:'Bloc de temps "{title}" supprim\xE9 avec succ\xE8s',timeblockDeleteFailed:"\xC9chec de la suppression du bloc de temps. Consultez la console pour plus de d\xE9tails.",timeblockRequiredFieldsMissing:"Veuillez remplir tous les champs requis",agendaLoadingFailed:"Erreur lors du chargement de l'agenda. Veuillez essayer d'actualiser.",statsLoadingFailed:"Erreur lors du chargement des d\xE9tails du projet."},commands:{openCalendarView:"Ouvrir la vue mini calendrier",openAdvancedCalendarView:"Ouvrir la vue calendrier",openTasksView:"Ouvrir la vue t\xE2ches",openNotesView:"Ouvrir la vue notes",openAgendaView:"Ouvrir la vue agenda",openPomodoroView:"Ouvrir le minuteur Pomodoro",openKanbanView:"Ouvrir le tableau Kanban",updateDefaultBaseFiles:"Mettre \xE0 jour les fichiers Base par d\xE9faut",openPomodoroStats:"Ouvrir les statistiques Pomodoro",openStatisticsView:"Ouvrir les statistiques t\xE2ches & projets",createNewTask:"Cr\xE9er une nouvelle t\xE2che",convertCurrentNoteToTask:{name:"Convertir la note actuelle en t\xE2che",noActiveFile:"Aucun fichier actif \xE0 convertir",alreadyTask:"Cette note est d\xE9j\xE0 une t\xE2che",success:"'{title}' converti en t\xE2che"},convertToTaskNote:"Convertir la case \xE0 cocher en TaskNote",convertAllTasksInNote:"Convertir toutes les t\xE2ches de la note",insertTaskNoteLink:"Ins\xE9rer un lien TaskNote",createInlineTask:"Cr\xE9er une nouvelle t\xE2che int\xE9gr\xE9e",quickActionsCurrentTask:"Actions rapides pour la t\xE2che courante",goToTodayNote:"Aller \xE0 la note du jour",startPomodoro:"D\xE9marrer le minuteur Pomodoro",stopPomodoro:"Arr\xEAter le minuteur Pomodoro",pauseResumePomodoro:"Mettre en pause/reprendre le minuteur Pomodoro",refreshCache:"Actualiser le cache",exportAllTasksIcs:"Exporter toutes les t\xE2ches en fichier ICS",viewReleaseNotes:"Voir les notes de version",startTimeTrackingWithSelector:"D\xE9marrer le suivi du temps (s\xE9lectionner une t\xE2che)",editTimeEntries:"Modifier les entr\xE9es de temps (s\xE9lectionner une t\xE2che)",createOrOpenTask:"Cr\xE9er ou ouvrir une t\xE2che",createOrOpenTaskWithTracking:"Cr\xE9er ou ouvrir une t\xE2che et d\xE9marrer le suivi du temps",rolloverOverdueScheduledTasks:"Reporter \xE0 aujourd'hui les t\xE2ches planifi\xE9es en retard",syncAllTasksGoogleCalendar:"Synchroniser toutes les t\xE2ches vers Google Agenda",syncCurrentTaskGoogleCalendar:"Synchroniser la t\xE2che actuelle vers Google Agenda",quickActionsTaskUnderCursor:"Actions rapides pour la t\xE2che sous le curseur",editCurrentTask:"Modifier la t\xE2che actuelle",cycleCurrentTaskStatus:"Faire d\xE9filer le statut de la t\xE2che actuelle",cycleCurrentTaskPriority:"Faire d\xE9filer la priorit\xE9 de la t\xE2che actuelle",addProjectToCurrentTask:"Ajouter un projet \xE0 la t\xE2che actuelle",addSubtaskToCurrentNote:"Ajouter une sous-t\xE2che \xE0 la note actuelle"},modals:{deviceCode:{title:"Autorisation Google Agenda",instructions:{intro:"Pour connecter votre Google Agenda, veuillez suivre ces \xE9tapes :"},steps:{open:"Ouvrir",inBrowser:"dans votre navigateur",enterCode:"Entrez ce code lorsque demand\xE9 :",signIn:"Connectez-vous avec votre compte Google et accordez l'acc\xE8s",returnToObsidian:"Retournez \xE0 Obsidian (cette fen\xEAtre se fermera automatiquement)"},codeLabel:"Votre code :",copyCodeAriaLabel:"Copier le code",waitingForAuthorization:"En attente d'autorisation...",openBrowserButton:"Ouvrir le navigateur",cancelButton:"Annuler",expiresMinutesSeconds:"Le code expire dans {minutes}m {seconds}s",expiresSeconds:"Le code expire dans {seconds}s"},icsEventInfo:{calendarEventHeading:"\xC9v\xE9nement de calendrier",titleLabel:"Titre",calendarLabel:"Calendrier",dateTimeLabel:"Date et heure",locationLabel:"Lieu",descriptionLabel:"Description",urlLabel:"URL",relatedNotesHeading:"Notes et t\xE2ches associ\xE9es",noRelatedItems:"Aucune note ou t\xE2che associ\xE9e trouv\xE9e pour cet \xE9v\xE9nement.",typeTask:"T\xE2che",typeNote:"Note",actionsHeading:"Actions",createFromEventLabel:"Cr\xE9er \xE0 partir de l'\xE9v\xE9nement",createFromEventDesc:"Cr\xE9er une nouvelle note ou t\xE2che \xE0 partir de cet \xE9v\xE9nement de calendrier",linkExistingLabel:"Lier existant",linkExistingDesc:"Lier une note existante \xE0 cet \xE9v\xE9nement de calendrier"},timeblockInfo:{editHeading:"Modifier le bloc de temps",dateTimeLabel:"Date et heure : ",titleLabel:"Titre",titleDesc:"Titre de votre bloc de temps",titlePlaceholder:"ex., Session de travail approfondi",descriptionLabel:"Description",descriptionDesc:"Description optionnelle du bloc de temps",descriptionPlaceholder:"Concentrez-vous sur les nouvelles fonctionnalit\xE9s, sans interruptions",colorLabel:"Couleur",colorDesc:"Couleur optionnelle pour le bloc de temps",colorPlaceholder:"#3b82f6",attachmentsLabel:"Pi\xE8ces jointes",attachmentsDesc:"Fichiers ou notes li\xE9s \xE0 ce bloc de temps",addAttachmentButton:"Ajouter une pi\xE8ce jointe",addAttachmentTooltip:"S\xE9lectionnez un fichier ou une note en utilisant la recherche floue",deleteButton:"Supprimer le bloc de temps",saveButton:"Enregistrer les modifications",deleteConfirmationTitle:"Supprimer le bloc de temps"},timeblockCreation:{heading:"Cr\xE9er un bloc de temps",dateLabel:"Date : ",titleLabel:"Titre",titleDesc:"Titre de votre bloc de temps",titlePlaceholder:"ex., Session de travail approfondi",startTimeLabel:"Heure de d\xE9but",startTimeDesc:"Quand le bloc de temps commence",startTimePlaceholder:"09:00",endTimeLabel:"Heure de fin",endTimeDesc:"Quand le bloc de temps se termine",endTimePlaceholder:"11:00",descriptionLabel:"Description",descriptionDesc:"Description optionnelle du bloc de temps",descriptionPlaceholder:"Concentrez-vous sur les nouvelles fonctionnalit\xE9s, sans interruptions",colorLabel:"Couleur",colorDesc:"Couleur optionnelle pour le bloc de temps",colorPlaceholder:"#3b82f6",attachmentsLabel:"Pi\xE8ces jointes",attachmentsDesc:"Fichiers ou notes \xE0 lier \xE0 ce bloc de temps",addAttachmentButton:"Ajouter une pi\xE8ce jointe",addAttachmentTooltip:"S\xE9lectionnez un fichier ou une note en utilisant la recherche floue",createButton:"Cr\xE9er un bloc de temps"},calendarEventCreation:{heading:"Cr\xE9er un \xE9v\xE9nement",dateTimeLabel:"Date et heure : ",titleLabel:"Titre",titleDesc:"Titre de l'\xE9v\xE9nement",titlePlaceholder:"ex., R\xE9union d'\xE9quipe",calendarLabel:"Calendrier",calendarDesc:"Dans quel calendrier cr\xE9er l'\xE9v\xE9nement",descriptionLabel:"Description",descriptionDesc:"Description facultative de l'\xE9v\xE9nement",descriptionPlaceholder:"Ajouter des d\xE9tails sur cet \xE9v\xE9nement...",locationLabel:"Lieu",locationDesc:"Lieu facultatif de l'\xE9v\xE9nement",locationPlaceholder:"ex., Salle de r\xE9union A",createButton:"Cr\xE9er l'\xE9v\xE9nement",titleRequired:"Le titre de l'\xE9v\xE9nement est requis",noCalendarSelected:"Aucun calendrier s\xE9lectionn\xE9",success:'\xC9v\xE9nement "{title}" cr\xE9\xE9',error:"Impossible de cr\xE9er l'\xE9v\xE9nement : {message}"},icsNoteCreation:{heading:"Cr\xE9er \xE0 partir d'un \xE9v\xE9nement ICS",titleLabel:"Titre",titleDesc:"Titre du nouveau contenu",folderLabel:"Dossier",folderDesc:"Dossier de destination (laisser vide pour la racine du coffre)",folderPlaceholder:"dossier/sous-dossier",createButton:"Cr\xE9er",startLabel:"D\xE9but : ",endLabel:"Fin : ",locationLabel:"Lieu : ",calendarLabel:"Calendrier : ",useTemplateLabel:"Utiliser un mod\xE8le",useTemplateDesc:"Appliquer un mod\xE8le lors de la cr\xE9ation du contenu",templatePathLabel:"Chemin du mod\xE8le",templatePathDesc:"Chemin vers le fichier de mod\xE8le",templatePathPlaceholder:"modeles/modele-note-ics.md"},unscheduledTasksSelector:{title:"T\xE2ches non planifi\xE9es",placeholder:"Tapez pour rechercher des t\xE2ches non planifi\xE9es...",instructions:{navigate:"pour naviguer",schedule:"pour planifier",dismiss:"pour ignorer"}},migration:{title:"Migrer vers le nouveau syst\xE8me de r\xE9currence",description:"TaskNotes utilise maintenant les mod\xE8les RRULE standard pour la r\xE9currence, permettant des planifications plus complexes et une meilleure compatibilit\xE9 avec d'autres applications.",tasksFound:"{count} t\xE2che(s) avec d'anciens mod\xE8les de r\xE9currence d\xE9tect\xE9e(s)",noMigrationNeeded:"Aucune t\xE2che ne n\xE9cessite de migration",warnings:{title:"Avant de continuer :",backup:"Sauvegardez votre coffre avant la migration",conversion:"Les anciens mod\xE8les de r\xE9currence seront convertis au nouveau format",normalUsage:"Vous pouvez continuer \xE0 utiliser TaskNotes normalement pendant la migration",permanent:"Ce changement est permanent et ne peut pas \xEAtre annul\xE9 automatiquement"},benefits:{title:"Avantages du nouveau syst\xE8me :",powerfulPatterns:"Mod\xE8les de r\xE9currence complexes (ex. 'tous les 2e mardi')",performance:"Meilleures performances avec les t\xE2ches r\xE9currentes",compatibility:"Format de r\xE9currence standard compatible avec d'autres applications",nlp:"Support am\xE9lior\xE9 du traitement du langage naturel"},progress:{title:"Progression de la migration",preparing:"Pr\xE9paration de la migration...",completed:"Migration termin\xE9e avec succ\xE8s",failed:"\xC9chec de la migration"},buttons:{migrate:"D\xE9marrer la migration",completed:"Fermer"},errors:{title:"Erreurs pendant la migration :"},notices:{completedWithErrors:"Migration termin\xE9e avec quelques erreurs. Consultez la liste des erreurs ci-dessus.",success:"Toutes les t\xE2ches ont \xE9t\xE9 migr\xE9es avec succ\xE8s !",failed:"\xC9chec de la migration. Veuillez consulter la console pour plus de d\xE9tails."},prompt:{message:"TaskNotes a d\xE9tect\xE9 des t\xE2ches utilisant l'ancien format de r\xE9currence. Souhaitez-vous les migrer vers le nouveau syst\xE8me maintenant ?",migrateNow:"Migrer maintenant",remindLater:"Me rappeler plus tard"}},task:{titlePlaceholder:"Quel est votre prochain objectif ?",titleLabel:"Titre",titleDetailedPlaceholder:"Titre de la t\xE2che...",detailsLabel:"D\xE9tails",detailsPlaceholder:"Ajoutez davantage de d\xE9tails...",projectsLabel:"Projets",projectsAdd:"Ajouter un projet",projectsTooltip:"S\xE9lectionnez une note de projet via la recherche floue",projectsRemoveTooltip:"Retirer le projet",contextsLabel:"Contextes",contextsPlaceholder:"contexte1, contexte2",tagsLabel:"\xC9tiquettes",tagsPlaceholder:"etiquette1, etiquette2",timeEstimateLabel:"Estimation (minutes)",timeEstimatePlaceholder:"30",unsavedChanges:{title:"Modifications non enregistr\xE9es",message:"Vous avez des modifications non enregistr\xE9es. Voulez-vous les enregistrer ?",save:"Enregistrer les modifications",discard:"Ignorer les modifications",cancel:"Continuer l'\xE9dition"},dependencies:{blockedBy:"Bloqu\xE9 par",blocking:"Bloquant",placeholder:"[[Note de t\xE2che]]",addTaskButton:"Ajouter une t\xE2che",selectTaskTooltip:"S\xE9lectionnez une note de t\xE2che via la recherche floue",removeTaskTooltip:"Retirer la t\xE2che"},organization:{projects:"Projets",subtasks:"Sous-t\xE2ches",addToProject:"Ajouter au projet",addToProjectButton:"Ajouter au projet",addSubtasks:"Ajouter des sous-t\xE2ches",addSubtasksButton:"Ajouter une sous-t\xE2che",addSubtasksTooltip:"S\xE9lectionner des t\xE2ches pour en faire des sous-t\xE2ches de cette t\xE2che",removeSubtaskTooltip:"Retirer la sous-t\xE2che",notices:{noEligibleSubtasks:"Aucune t\xE2che \xE9ligible disponible pour \xEAtre assign\xE9e comme sous-t\xE2che",subtaskSelectFailed:"\xC9chec de l'ouverture du s\xE9lecteur de sous-t\xE2ches"}},customFieldsLabel:"Champs personnalis\xE9s",actions:{due:"D\xE9finir l'\xE9ch\xE9ance",scheduled:"D\xE9finir la date planifi\xE9e",status:"D\xE9finir le statut",priority:"D\xE9finir la priorit\xE9",recurrence:"D\xE9finir la r\xE9currence",reminders:"D\xE9finir les rappels"},buttons:{openNote:"Ouvrir la note",save:"Enregistrer"},tooltips:{dueValue:"\xC9ch\xE9ance\xA0: {value}",scheduledValue:"Planifi\xE9e\xA0: {value}",statusValue:"Statut\xA0: {value}",priorityValue:"Priorit\xE9\xA0: {value}",recurrenceValue:"R\xE9currence\xA0: {value}",remindersSingle:"1 rappel d\xE9fini",remindersPlural:"{count} rappels d\xE9finis"},dateMenu:{dueTitle:"D\xE9finir l'\xE9ch\xE9ance",scheduledTitle:"D\xE9finir la date planifi\xE9e"},userFields:{textPlaceholder:"Saisir {field}...",numberPlaceholder:"0",datePlaceholder:"AAAA-MM-JJ",listPlaceholder:"\xE9l\xE9ment1, \xE9l\xE9ment2, \xE9l\xE9ment3",pickDate:"Choisir la date {field}"},recurrence:{daily:"Quotidien",weekly:"Hebdomadaire",everyTwoWeeks:"Toutes les 2 semaines",weekdays:"Jours ouvr\xE9s",weeklyOn:"Chaque semaine le {days}",monthly:"Mensuel",everyThreeMonths:"Tous les 3 mois",monthlyOnOrdinal:"Chaque mois le {ordinal}",monthlyByWeekday:"Mensuel (par jour de semaine)",yearly:"Annuel",yearlyOn:"Chaque ann\xE9e le {month} {day}",custom:"Personnalis\xE9",countSuffix:"{count} occurrences",untilSuffix:"jusqu'au {date}",ordinal:"{number}e"}},taskSelector:{title:"S\xE9lectionner une t\xE2che",placeholder:"Tapez pour rechercher des t\xE2ches...",instructions:{navigate:"pour naviguer",select:"pour s\xE9lectionner",dismiss:"pour annuler"},notices:{noteNotFound:'Impossible de trouver la note "{name}"'},dueDate:{overdue:"\xC9ch\xE9ance : {date} (en retard)",today:"\xC9ch\xE9ance : Aujourd'hui"}},taskSelectorWithCreate:{title:"Cr\xE9er ou ouvrir une t\xE2che",placeholder:"Rechercher des t\xE2ches ou taper pour cr\xE9er...",instructions:{create:"pour cr\xE9er une nouvelle t\xE2che"},footer:{createLabel:" pour cr\xE9er : "},notices:{emptyQuery:"Veuillez entrer une description de t\xE2che",invalidTitle:"Impossible de reconna\xEEtre un titre de t\xE2che valide"}},taskCreation:{title:"Cr\xE9er une t\xE2che",actions:{fillFromNaturalLanguage:"Remplir le formulaire avec le langage naturel",hideDetailedOptions:"Masquer les options d\xE9taill\xE9es",showDetailedOptions:"Afficher les options d\xE9taill\xE9es"},nlPlaceholder:"Acheter des courses demain \xE0 15h @maison #courses",notices:{titleRequired:"Veuillez saisir un titre de t\xE2che",success:'T\xE2che "{title}" cr\xE9\xE9e avec succ\xE8s',successShortened:'T\xE2che "{title}" cr\xE9\xE9e avec succ\xE8s (nom de fichier raccourci)',failure:"\xC9chec de la cr\xE9ation de la t\xE2che\xA0: {message}",blockingUnresolved:"Impossible de r\xE9soudre\xA0: {entries}",openCreatedTaskFailure:"T\xE2che cr\xE9\xE9e, mais la note de t\xE2che n'a pas pu \xEAtre ouverte."}},taskEdit:{title:"Modifier la t\xE2che",sections:{completions:"Ach\xE8vements",taskInfo:"Informations sur la t\xE2che"},metadata:{totalTrackedTime:"Temps suivi total\xA0:",due:"\xC9ch\xE9ance\xA0:",scheduled:"Planifi\xE9e\xA0:",created:"Cr\xE9\xE9e\xA0:",modified:"Modifi\xE9e\xA0:",file:"Fichier\xA0:"},buttons:{archive:"Archiver",unarchive:"D\xE9sarchiver"},notices:{titleRequired:"Veuillez saisir un titre de t\xE2che",noChanges:"Aucune modification \xE0 enregistrer",updateSuccess:'T\xE2che "{title}" mise \xE0 jour avec succ\xE8s',updateFailure:"\xC9chec de la mise \xE0 jour de la t\xE2che\xA0: {message}",dependenciesUpdateSuccess:"D\xE9pendances mises \xE0 jour",blockingUnresolved:"Impossible de r\xE9soudre\xA0: {entries}",fileMissing:"Impossible de trouver le fichier de la t\xE2che\xA0: {path}",openNoteFailure:"Impossible d'ouvrir la note de la t\xE2che",archiveSuccess:"T\xE2che {action} avec succ\xE8s",archiveFailure:"\xC9chec de l'archivage de la t\xE2che",deleteSuccess:"T\xE2che \xAB {title} \xBB supprim\xE9e avec succ\xE8s",deleteFailure:"\xC9chec de la suppression de la t\xE2che : {message}"},archiveAction:{archived:"archiv\xE9e",unarchived:"d\xE9sarchiv\xE9e"},deleteConfirmation:{title:"Supprimer la t\xE2che",message:"Voulez-vous vraiment supprimer \xAB {title} \xBB ? Cela d\xE9place la note de t\xE2che vers la corbeille d\u2019Obsidian.",confirm:"Supprimer la t\xE2che"}},storageLocation:{title:{migrate:"Migrer les donn\xE9es Pomodoro\xA0?",switch:"Basculer vers le stockage dans les notes quotidiennes\xA0?"},message:{migrate:"Cette action migre vos sessions Pomodoro existantes vers le frontmatter des notes quotidiennes. Les donn\xE9es seront regroup\xE9es par date et stock\xE9es dans chaque note.",switch:"Les sessions Pomodoro seront d\xE9sormais enregistr\xE9es dans le frontmatter de vos notes quotidiennes au lieu du fichier de donn\xE9es du plugin."},whatThisMeans:"Ce que cela implique\xA0:",bullets:{dailyNotesRequired:"Les notes quotidiennes doivent \xEAtre activ\xE9es dans le plugin noyau des notes quotidiennes ou dans Periodic Notes",storedInNotes:"Les donn\xE9es seront stock\xE9es dans le frontmatter de vos notes quotidiennes",migrateData:"Les donn\xE9es du plugin seront migr\xE9es puis vid\xE9es",futureSessions:"Les futures sessions seront enregistr\xE9es dans les notes quotidiennes",dataLongevity:"Cela garantit une meilleure p\xE9rennit\xE9 des donn\xE9es avec vos notes"},finalNote:{migrate:"\u26A0\uFE0F Assurez-vous d\u2019avoir des sauvegardes si n\xE9cessaire. Ce changement ne peut pas \xEAtre annul\xE9 automatiquement.",switch:"Vous pourrez revenir au stockage du plugin \xE0 tout moment par la suite."},buttons:{migrate:"Migrer les donn\xE9es",switch:"Changer de stockage"}},dueDate:{title:"D\xE9finir la date d'\xE9ch\xE9ance",taskLabel:"T\xE2che : {title}",sections:{dateTime:"Date et heure d'\xE9ch\xE9ance",quickOptions:"Options rapides"},descriptions:{dateTime:"D\xE9finir quand cette t\xE2che doit \xEAtre termin\xE9e"},inputs:{date:{ariaLabel:"Date d'\xE9ch\xE9ance de la t\xE2che",placeholder:"AAAA-MM-JJ"},time:{ariaLabel:"Heure d'\xE9ch\xE9ance de la t\xE2che (optionnel)",placeholder:"HH:MM"}},quickOptions:{today:"Aujourd'hui",todayAriaLabel:"D\xE9finir la date d'\xE9ch\xE9ance \xE0 aujourd'hui",tomorrow:"Demain",tomorrowAriaLabel:"D\xE9finir la date d'\xE9ch\xE9ance \xE0 demain",nextWeek:"La semaine prochaine",nextWeekAriaLabel:"D\xE9finir la date d'\xE9ch\xE9ance \xE0 la semaine prochaine",now:"Maintenant",nowAriaLabel:"D\xE9finir la date et l'heure d'\xE9ch\xE9ance \xE0 maintenant",clear:"Effacer",clearAriaLabel:"Effacer la date d'\xE9ch\xE9ance"},errors:{invalidDateTime:"Veuillez saisir un format de date et d'heure valide",updateFailed:"\xC9chec de la mise \xE0 jour de la date d'\xE9ch\xE9ance. Veuillez r\xE9essayer."}},scheduledDate:{title:"D\xE9finir la date planifi\xE9e",taskLabel:"T\xE2che : {title}",sections:{dateTime:"Date et heure planifi\xE9es",quickOptions:"Options rapides"},descriptions:{dateTime:"D\xE9finir quand vous pr\xE9voyez de travailler sur cette t\xE2che"},inputs:{date:{ariaLabel:"Date planifi\xE9e de la t\xE2che",placeholder:"AAAA-MM-JJ"},time:{ariaLabel:"Heure planifi\xE9e de la t\xE2che (optionnel)",placeholder:"HH:MM"}},quickOptions:{today:"Aujourd'hui",todayAriaLabel:"D\xE9finir la date planifi\xE9e \xE0 aujourd'hui",tomorrow:"Demain",tomorrowAriaLabel:"D\xE9finir la date planifi\xE9e \xE0 demain",nextWeek:"La semaine prochaine",nextWeekAriaLabel:"D\xE9finir la date planifi\xE9e \xE0 la semaine prochaine",now:"Maintenant",nowAriaLabel:"D\xE9finir la date et l'heure planifi\xE9es \xE0 maintenant",clear:"Effacer",clearAriaLabel:"Effacer la date planifi\xE9e"},errors:{invalidDateTime:"Veuillez saisir un format de date et d'heure valide",updateFailed:"\xC9chec de la mise \xE0 jour de la date planifi\xE9e. Veuillez r\xE9essayer."}},timeEntryEditor:{title:"Entr\xE9es de temps - {taskTitle}",addEntry:"Ajouter une entr\xE9e de temps",noEntries:"Aucune entr\xE9e de temps pour le moment",deleteEntry:"Supprimer l'entr\xE9e",startTime:"Heure de d\xE9but",endTime:"Heure de fin (laisser vide si toujours en cours)",duration:"Dur\xE9e (minutes)",durationDesc:"Remplacer la dur\xE9e calcul\xE9e",durationPlaceholder:"Entrer la dur\xE9e en minutes",description:"Description",descriptionPlaceholder:"Sur quoi avez-vous travaill\xE9 ?",calculatedDuration:"Calcul\xE9 : {minutes} minutes",totalTime:"{hours}h {minutes}m au total",totalMinutes:"{minutes}m au total",saved:"Entr\xE9es de temps enregistr\xE9es",saveFailed:"\xC9chec de l'enregistrement des entr\xE9es de temps",openFailed:"\xC9chec de l'ouverture de l'\xE9diteur d'entr\xE9es de temps",noTasksWithEntries:"Aucune t\xE2che n'a d'entr\xE9es de temps \xE0 modifier",validation:{missingStartTime:"L'heure de d\xE9but est requise",endBeforeStart:"L'heure de fin doit \xEAtre apr\xE8s l'heure de d\xE9but"}},timeTracking:{noTasksAvailable:"Aucune t\xE2che disponible pour le suivi du temps",started:"Suivi du temps d\xE9marr\xE9 pour : {taskTitle}",startFailed:"\xC9chec du d\xE9marrage du suivi du temps"},timeEntry:{mustHaveSpecificTime:"Les entr\xE9es de temps doivent avoir des heures sp\xE9cifiques. Veuillez s\xE9lectionner une plage horaire dans la vue semaine ou jour.",noTasksAvailable:"Aucune t\xE2che disponible pour cr\xE9er des entr\xE9es de temps",created:"Entr\xE9e de temps cr\xE9\xE9e pour {taskTitle} ({duration} minutes)",createFailed:"\xC9chec de la cr\xE9ation de l'entr\xE9e de temps"}},contextMenus:{task:{status:"Statut",statusSelected:"Statut s\xE9lectionn\xE9 : {label}",priority:"Priorit\xE9",prioritySelected:"Priorit\xE9 s\xE9lectionn\xE9e : {label}",dueDate:"\xC9ch\xE9ance",scheduledDate:"Date planifi\xE9e",customDates:"Dates personnalis\xE9es",reminders:"Rappels",remindBeforeDue:"Rappeler avant l'\xE9ch\xE9ance\u2026",remindBeforeScheduled:"Rappeler avant la date planifi\xE9e\u2026",manageReminders:"G\xE9rer tous les rappels\u2026",clearReminders:"Supprimer tous les rappels",startTimeTracking:"Commencer le suivi du temps",stopTimeTracking:"Arr\xEAter le suivi du temps",editTimeEntries:"Modifier les entr\xE9es de temps",archive:"Archiver",unarchive:"D\xE9sarchiver",openNote:"Ouvrir la note",openNoteInNewTab:"Ouvrir la note dans un nouvel onglet",copyTitle:"Copier le titre de la t\xE2che",quickActions:"Actions rapides",noteActions:"Actions sur la note",rename:"Renommer",renameTitle:"Renommer le fichier",renamePlaceholder:"Saisir un nouveau nom",delete:"Supprimer",deleteTitle:"Supprimer le fichier",deleteMessage:'Voulez-vous vraiment supprimer "{name}"\xA0?',deleteConfirm:"Supprimer",copyPath:"Copier le chemin",copyUrl:"Copier l'URL Obsidian",showInExplorer:"Afficher dans l'explorateur de fichiers",addToCalendar:"Ajouter au calendrier",calendar:{google:"Google Agenda",outlook:"Calendrier Outlook",yahoo:"Calendrier Yahoo",downloadIcs:"T\xE9l\xE9charger le fichier .ics",syncToGoogle:"Synchroniser avec Google Agenda",syncToGoogleNotConfigured:"Synchronisation Google Agenda non configur\xE9e",syncToGoogleSuccess:"T\xE2che synchronis\xE9e avec Google Agenda",syncToGoogleFailed:"\xC9chec de la synchronisation avec Google Agenda"},recurrence:"R\xE9currence",clearRecurrence:"Effacer la r\xE9currence",customRecurrence:"R\xE9currence personnalis\xE9e...",createSubtask:"Cr\xE9er une sous-t\xE2che",dependencies:{title:"D\xE9pendances",addBlockedBy:"Ajouter \xAB\xA0bloqu\xE9 par\xA0\xBB\u2026",addBlockedByTitle:"Ajouter des t\xE2ches dont d\xE9pend celle-ci",addBlocking:"Ajouter \xAB\xA0bloquant\xA0\xBB\u2026",addBlockingTitle:"Ajouter des t\xE2ches bloqu\xE9es par celle-ci",removeBlockedBy:"Retirer \xAB\xA0bloqu\xE9 par\xA0\xBB\u2026",removeBlocking:"Retirer \xAB\xA0bloquant\xA0\xBB\u2026",unknownDependency:"Inconnu",inputPlaceholder:"[[Note de t\xE2che]]",notices:{noEntries:"Veuillez saisir au moins une t\xE2che",blockedByAdded:"{count} d\xE9pendance ajout\xE9e",blockedByRemoved:"D\xE9pendance retir\xE9e",blockingAdded:"{count} t\xE2che d\xE9pendante ajout\xE9e",blockingRemoved:"T\xE2che d\xE9pendante retir\xE9e",unresolved:"Impossible de r\xE9soudre\xA0: {entries}",noEligibleTasks:"Aucune t\xE2che correspondante disponible",updateFailed:"Impossible de mettre \xE0 jour les d\xE9pendances"}},organization:{title:"Organisation",projects:"Projets",addToProject:"Ajouter au projet\u2026",subtasks:"Sous-t\xE2ches",addSubtasks:"Ajouter des sous-t\xE2ches\u2026",notices:{alreadyInProject:"La t\xE2che est d\xE9j\xE0 dans ce projet",alreadySubtask:"La t\xE2che est d\xE9j\xE0 une sous-t\xE2che de cette t\xE2che",addedToProject:"Ajout\xE9e au projet : {project}",addedAsSubtask:"{subtask} ajout\xE9e comme sous-t\xE2che de {parent}",addToProjectFailed:"\xC9chec de l'ajout de la t\xE2che au projet",addAsSubtaskFailed:"\xC9chec de l'ajout de la t\xE2che comme sous-t\xE2che",projectSelectFailed:"\xC9chec de l'ouverture du s\xE9lecteur de projet",subtaskSelectFailed:"\xC9chec de l'ouverture du s\xE9lecteur de sous-t\xE2ches",noEligibleSubtasks:"Aucune t\xE2che \xE9ligible disponible pour \xEAtre assign\xE9e comme sous-t\xE2che",currentTaskNotFound:"Fichier de t\xE2che actuel introuvable",updateContextsFailed:"\xC9chec de la mise \xE0 jour des contextes"},contexts:"Contextes",addContext:"Ajouter un contexte\u2026",contextPlaceholder:"contexte",contextSelected:"\u2713 {context}",clearContexts:"Effacer les contextes"},subtasks:{loading:"Chargement des sous-t\xE2ches...",noSubtasks:"Aucune sous-t\xE2che trouv\xE9e",loadFailed:"\xC9chec du chargement des sous-t\xE2ches"},markComplete:"Marquer comme termin\xE9e pour cette date",markIncomplete:"Marquer comme incompl\xE8te pour cette date",skipInstance:"Ignorer l'instance",unskipInstance:"Ne plus ignorer l'instance",quickReminders:{atTime:"\xC0 l'heure de l'\xE9v\xE9nement",fiveMinutes:"5 minutes avant",fifteenMinutes:"15 minutes avant",oneHour:"1 heure avant",oneDay:"1 jour avant"},notices:{toggleCompletionFailure:"Impossible de modifier l'ach\xE8vement r\xE9current\xA0: {message}",toggleSkipFailure:"Impossible de modifier l'omission de t\xE2che r\xE9currente : {message}",updateDueDateFailure:"Impossible de mettre \xE0 jour l'\xE9ch\xE9ance\xA0: {message}",updateScheduledFailure:"Impossible de mettre \xE0 jour la date planifi\xE9e\xA0: {message}",updateCustomDateFailure:"\xC9chec de la mise \xE0 jour de {field} : {message}",updateRemindersFailure:"Impossible de mettre \xE0 jour les rappels",clearRemindersFailure:"Impossible de supprimer les rappels",addReminderFailure:"Impossible d'ajouter un rappel",archiveFailure:"Impossible de modifier l'archivage de la t\xE2che\xA0: {message}",copyTitleSuccess:"Titre de la t\xE2che copi\xE9 dans le presse-papiers",copyFailure:"Impossible de copier dans le presse-papiers",renameSuccess:'Renomm\xE9 en "{name}"',renameFailure:"Impossible de renommer le fichier",copyPathSuccess:"Chemin du fichier copi\xE9 dans le presse-papiers",copyUrlSuccess:"URL Obsidian copi\xE9e dans le presse-papiers",updateRecurrenceFailure:"Impossible de mettre \xE0 jour la r\xE9currence\xA0: {message}",updateTagsFailed:"\xC9chec de la mise \xE0 jour des \xE9tiquettes"},tags:"\xC9tiquettes",addTag:"Ajouter une \xE9tiquette\u2026",removeTag:"Supprimer {tag}",removeTagInput:"Supprimer une \xE9tiquette\u2026",tagPlaceholder:"\xC9tiquette ou #\xE9tiquette",clearTags:"Effacer les \xE9tiquettes"},priority:{clearPriority:"Supprimer la priorit\xE9"},ics:{showDetails:"Afficher les d\xE9tails",createTask:"Cr\xE9er une t\xE2che depuis l'\xE9v\xE9nement",createNote:"Cr\xE9er une note depuis l'\xE9v\xE9nement",linkNote:"Lier une note existante",copyTitle:"Copier le titre",copyLocation:"Copier le lieu",copyUrl:"Copier l'URL",copyMarkdown:"Copier en markdown",subscriptionUnknown:"Calendrier inconnu",notices:{copyTitleSuccess:"Titre de l'\xE9v\xE9nement copi\xE9 dans le presse-papiers",copyLocationSuccess:"Lieu copi\xE9 dans le presse-papiers",copyUrlSuccess:"URL de l'\xE9v\xE9nement copi\xE9e dans le presse-papiers",copyMarkdownSuccess:"D\xE9tails de l'\xE9v\xE9nement copi\xE9s en markdown",copyFailure:"Impossible de copier dans le presse-papiers",taskCreated:"T\xE2che cr\xE9\xE9e\xA0: {title}",taskCreateFailure:"Impossible de cr\xE9er une t\xE2che depuis l'\xE9v\xE9nement",noteCreated:"Note cr\xE9\xE9e avec succ\xE8s",creationFailure:"Impossible d'ouvrir la fen\xEAtre de cr\xE9ation",linkSuccess:`Note "{name}" li\xE9e \xE0 l'\xE9v\xE9nement`,linkFailure:"Impossible de lier la note",linkSelectionFailure:"Impossible d'ouvrir la s\xE9lection de note"},markdown:{titleFallback:"\xC9v\xE9nement sans titre",calendar:"**Calendrier\xA0:** {value}",date:"**Date et heure\xA0:** {value}",location:"**Lieu\xA0:** {value}",descriptionHeading:"### D\xE9tails",url:"**URL\xA0:** {value}",at:" \xE0 {time}"}},date:{increment:{plusOneDay:"+1 jour",minusOneDay:"-1 jour",plusOneWeek:"+1 semaine",minusOneWeek:"-1 semaine"},basic:{today:"Aujourd'hui",tomorrow:"Demain",thisWeekend:"Ce week-end",nextWeek:"La semaine prochaine",nextMonth:"Le mois prochain"},weekdaysLabel:"Jours de la semaine",selected:"Date s\xE9lectionn\xE9e : {label}",pickDateTime:"Choisir date et heure\u2026",clearDate:"Effacer la date",modal:{title:"D\xE9finir date et heure",dateLabel:"Date (AAAA-MM-JJ)",timeLabel:"Heure (optionnel)",select:"S\xE9lectionner"}}},services:{pomodoro:{notices:{alreadyRunning:"Un pomodoro est d\xE9j\xE0 en cours",resumeCurrentSession:"Reprendre la session actuelle au lieu d'en d\xE9marrer une nouvelle",timerAlreadyRunning:"Un minuteur est d\xE9j\xE0 en cours",resumeSessionInstead:"Reprendre la session actuelle au lieu d'en d\xE9marrer une nouvelle",shortBreakStarted:"Pause courte d\xE9marr\xE9e",longBreakStarted:"Pause longue d\xE9marr\xE9e",paused:"Pomodoro mis en pause",resumed:"Pomodoro repris",stoppedAndReset:"Pomodoro arr\xEAt\xE9 et remis \xE0 z\xE9ro",migrationSuccess:"{count} sessions pomodoro migr\xE9es avec succ\xE8s vers les notes quotidiennes.",migrationFailure:"\xC9chec de la migration des donn\xE9es pomodoro. Veuillez r\xE9essayer ou v\xE9rifier la console pour plus de d\xE9tails."}},icsSubscription:{notices:{calendarNotFound:`Calendrier "{name}" introuvable (404). Veuillez v\xE9rifier que l'URL ICS est correcte et que le calendrier est accessible publiquement.`,calendarAccessDenied:`Acc\xE8s refus\xE9 au calendrier "{name}" (500). Cela peut \xEAtre d\xFB aux restrictions du serveur Microsoft Outlook. Essayez de r\xE9g\xE9n\xE9rer l'URL ICS depuis les param\xE8tres de votre calendrier.`,fetchRemoteFailed:'\xC9chec de la r\xE9cup\xE9ration du calendrier distant "{name}" : {error}',readLocalFailed:'\xC9chec de la lecture du calendrier local "{name}" : {error}'}},calendarExport:{notices:{generateLinkFailed:"\xC9chec de la g\xE9n\xE9ration du lien calendrier",noTasksToExport:"Aucune t\xE2che trouv\xE9e \xE0 exporter",downloadSuccess:"T\xE9l\xE9charg\xE9 {filename} avec {count} t\xE2che{plural}",downloadFailed:"\xC9chec du t\xE9l\xE9chargement du fichier calendrier",singleDownloadSuccess:"T\xE9l\xE9charg\xE9 {filename}"}},filter:{groupLabels:{noProject:"Aucun projet",noTags:"Aucune \xE9tiquette",invalidDate:"Date invalide",due:{overdue:"En retard",today:"Aujourd'hui",tomorrow:"Demain",nextSevenDays:"Prochains sept jours",later:"Plus tard",none:"Aucune date d'\xE9ch\xE9ance"},scheduled:{past:"Planification pass\xE9e",today:"Aujourd'hui",tomorrow:"Demain",nextSevenDays:"Prochains sept jours",later:"Plus tard",none:"Aucune date planifi\xE9e"}},errors:{noDatesProvided:"Aucune date fournie"},folders:{root:"(Racine)"}},instantTaskConvert:{notices:{noCheckboxTasks:"Aucune t\xE2che \xE0 cocher trouv\xE9e dans la note actuelle.",convertingTasks:"Conversion de {count} t\xE2che{plural}...",conversionSuccess:"\u2705 {count} t\xE2che{plural} converties avec succ\xE8s en TaskNotes !",partialConversion:"{successCount} t\xE2che{successPlural} convertie{successPlural}. {failureCount} ont \xE9chou\xE9.",batchConversionFailed:"\xC9chec de la conversion par lot. Veuillez r\xE9essayer.",invalidParameters:"Param\xE8tres d'entr\xE9e invalides.",emptyLine:"La ligne actuelle est vide ou ne contient aucun contenu valide.",parseError:"Erreur d'analyse de la t\xE2che : {error}",invalidTaskData:"Donn\xE9es de t\xE2che invalides.",replaceLineFailed:"\xC9chec du remplacement de la ligne de t\xE2che.",conversionComplete:"T\xE2che convertie : {title}",conversionCompleteShortened:'T\xE2che convertie : "{title}" (nom de fichier raccourci en raison de la longueur)',fileExists:"Un fichier avec ce nom existe d\xE9j\xE0. Veuillez r\xE9essayer ou renommer la t\xE2che.",conversionFailed:"\xC9chec de la conversion de la t\xE2che. Veuillez r\xE9essayer."}},icsNote:{notices:{templateNotFound:"Mod\xE8le introuvable : {path}",templateProcessError:"Erreur de traitement du mod\xE8le : {template}",linkedToEvent:"Note li\xE9e \xE0 l'\xE9v\xE9nement ICS : {title}"}},task:{notices:{templateNotFound:"Mod\xE8le de corps de t\xE2che introuvable : {path}",templateReadError:"Erreur de lecture du mod\xE8le de corps de t\xE2che : {template}",occurrenceTemplateNotFound:"Mod\xE8le de note d'occurrence introuvable : {path}",occurrenceTemplateReadError:"Erreur de lecture du mod\xE8le de note d'occurrence : {template}",moveTaskFailed:"\xC9chec du d\xE9placement de la t\xE2che {operation} : {error}"}},autoExport:{notices:{exportFailed:"\xC9chec de l'export automatique TaskNotes : {error}"}}},ui:{icsCard:{untitledEvent:"\xC9v\xE9nement sans titre",allDay:"Toute la journ\xE9e",calendarEvent:"\xC9v\xE9nement de calendrier",calendarFallback:"Calendrier"},noteCard:{createdLabel:"Cr\xE9\xE9e :",dailyBadge:"Quotidien",dailyTooltip:"Note quotidienne"},taskCard:{labels:{due:"\xC9ch\xE9ance",scheduled:"Planifi\xE9",recurrence:"R\xE9current",completed:"Termin\xE9",created:"Cr\xE9\xE9",modified:"Modifi\xE9",blocked:"Bloqu\xE9",blocking:"Bloquant"},blockedBadge:"Bloqu\xE9",blockedBadgeTooltip:"Cette t\xE2che attend une autre t\xE2che",blockingBadge:"Bloquant",blockingBadgeTooltip:"Cette t\xE2che bloque une autre t\xE2che",blockingToggle:"Bloque {count} t\xE2ches",priorityAriaLabel:"Priorit\xE9 : {label}",taskOptions:"Options de t\xE2che",recurrenceTooltip:"{label}: {value}",reminderTooltipOne:"1 rappel d\xE9fini (cliquer pour g\xE9rer)",reminderTooltipMany:"{count} rappels d\xE9finis (cliquer pour g\xE9rer)",projectTooltip:"Cette t\xE2che est utilis\xE9e comme projet (cliquer pour afficher/masquer les sous-t\xE2ches)",projectIndicatorTooltip:"Cette t\xE2che est utilis\xE9e comme projet",expandSubtasks:"D\xE9plier les sous-t\xE2ches",collapseSubtasks:"Replier les sous-t\xE2ches",dueToday:"{label}: Aujourd'hui",dueTodayAt:"{label}: Aujourd'hui \xE0 {time}",dueOverdue:"{label}: {display} (en retard)",dueLabel:"{label}: {display}",scheduledToday:"{label}: Aujourd'hui",scheduledTodayAt:"{label}: Aujourd'hui \xE0 {time}",scheduledPast:"{label}: {display} (pass\xE9)",scheduledLabel:"{label}: {display}",loadingDependencies:"Chargement des d\xE9pendances\u2026",blockingEmpty:"Aucune t\xE2che d\xE9pendante",blockingLoadError:"\xC9chec du chargement des d\xE9pendances",googleCalendarSyncTooltip:"Synchronis\xE9 avec Google Agenda",detailsTooltip:"La t\xE2che a des d\xE9tails"},propertyEventCard:{unknownFile:"Fichier inconnu"},filterHeading:{allViewName:"Toutes"},filterBar:{saveView:"Enregistrer la vue",saveViewNamePlaceholder:"Entrez le nom de la vue...",saveButton:"Enregistrer",views:"Vues",savedFilterViews:"Vues de filtre enregistr\xE9es",filters:"Filtres",properties:"Propri\xE9t\xE9s",sort:"Trier",newTask:"Nouveau",expandAllGroups:"D\xE9plier tous les groupes",collapseAllGroups:"Replier tous les groupes",searchTasksPlaceholder:"Rechercher des t\xE2ches...",searchTasksTooltip:"Rechercher dans les titres de t\xE2ches",filterUnavailable:"Barre de filtrage temporairement indisponible",toggleFilter:"Activer/d\xE9sactiver le filtre",activeFiltersTooltip:"Filtres actifs \u2013 Cliquez pour modifier, clic droit pour effacer",configureVisibleProperties:"Configurer les propri\xE9t\xE9s visibles",sortAndGroupOptions:"Options de tri et de regroupement",sortMenuHeader:"Trier",orderMenuHeader:"Ordre",groupMenuHeader:"Grouper",createNewTask:"Cr\xE9er une nouvelle t\xE2che",filter:"Filtrer",displayOrganization:"Affichage et organisation",viewOptions:"Options de vue",addFilter:"Ajouter un filtre",addFilterGroup:"Ajouter un groupe de filtres",addFilterTooltip:"Ajouter une nouvelle condition de filtre",addFilterGroupTooltip:"Ajouter un groupe de filtres imbriqu\xE9",clearAllFilters:"Effacer tous les filtres et groupes",saveCurrentFilter:"Enregistrer le filtre actuel comme vue",closeFilterModal:"Fermer la fen\xEAtre de filtre",deleteFilterGroup:"Supprimer le groupe de filtres",deleteCondition:"Supprimer la condition",all:"Tous",any:"N'importe lequel",followingAreTrue:"des suivants sont vrais :",where:"o\xF9",selectProperty:"S\xE9lectionner...",chooseProperty:"Choisissez quelle propri\xE9t\xE9 de t\xE2che filtrer",chooseOperator:"Choisissez comment comparer la valeur de propri\xE9t\xE9",enterValue:"Entrez la valeur \xE0 filtrer",selectValue:"S\xE9lectionnez un {property} \xE0 filtrer",sortBy:"Trier par :",toggleSortDirection:"Inverser le sens de tri",chooseSortMethod:"Choisissez comment trier les t\xE2ches",groupBy:"Grouper par :",chooseGroupMethod:"Grouper les t\xE2ches par une propri\xE9t\xE9 commune",toggleViewOption:"Activer/d\xE9sactiver {option}",expandCollapseFilters:"Cliquez pour d\xE9plier/replier les conditions de filtre",expandCollapseSort:"Cliquez pour d\xE9plier/replier les options de tri et de regroupement",expandCollapseViewOptions:"Cliquez pour d\xE9plier/replier les options sp\xE9cifiques \xE0 la vue",naturalLanguageDates:"Dates en langage naturel",naturalLanguageExamples:"Afficher des exemples de dates en langage naturel",enterNumericValue:"Entrez une valeur num\xE9rique \xE0 filtrer",enterDateValue:"Entrez une date en langage naturel ou au format ISO",pickDateTime:"Choisir date et heure",noSavedViews:"Aucune vue enregistr\xE9e",savedViews:"Vues enregistr\xE9es",yourSavedFilters:"Vos configurations de filtre enregistr\xE9es",dragToReorder:"Glissez pour r\xE9organiser les vues",loadSavedView:"Charger la vue enregistr\xE9e : {name}",deleteView:"Supprimer la vue",deleteViewTitle:"Supprimer la vue",deleteViewMessage:'\xCAtes-vous s\xFBr de vouloir supprimer la vue "{name}" ?',manageAllReminders:"G\xE9rer tous les rappels...",clearAllReminders:"Effacer tous les rappels",customRecurrence:"R\xE9currence personnalis\xE9e...",clearRecurrence:"Effacer la r\xE9currence",sortOptions:{dueDate:"Date d'\xE9ch\xE9ance",scheduledDate:"Date planifi\xE9e",priority:"Priorit\xE9",status:"Statut",title:"Titre",createdDate:"Date de cr\xE9ation",tags:"\xC9tiquettes",ascending:"Croissant",descending:"D\xE9croissant"},group:{none:"Aucun",status:"Statut",priority:"Priorit\xE9",context:"Contexte",project:"Projet",dueDate:"Date d'\xE9ch\xE9ance",scheduledDate:"Date planifi\xE9e",tags:"\xC9tiquettes",completedDate:"Date d'ach\xE8vement"},subgroupLabel:"SOUS-GROUPE",notices:{propertiesMenuFailed:"\xC9chec de l'affichage du menu des propri\xE9t\xE9s"}}},components:{dateContextMenu:{weekdays:"Jours de semaine",clearDate:"Effacer la date",today:"Aujourd'hui",tomorrow:"Demain",thisWeekend:"Ce week-end",nextWeek:"La semaine prochaine",nextMonth:"Le mois prochain",setDateTime:"D\xE9finir la date et l'heure",dateLabel:"Date",timeLabel:"Heure (optionnelle)"},subgroupMenuBuilder:{none:"Aucun",status:"Statut",priority:"Priorit\xE9",context:"Contexte",project:"Projet",dueDate:"Date d'\xE9ch\xE9ance",scheduledDate:"Date programm\xE9e",tags:"\xC9tiquettes",completedDate:"Date de finalisation",subgroup:"SOUS-GROUPE"},propertyVisibilityDropdown:{coreProperties:"PROPRI\xC9T\xC9S PRINCIPALES",organization:"ORGANISATION",customProperties:"PROPRI\xC9T\xC9S PERSONNALIS\xC9ES",failed:"Impossible d'afficher le menu des propri\xE9t\xE9s",properties:{statusDot:"Point de statut",priorityDot:"Point de priorit\xE9",dueDate:"Date d'\xE9ch\xE9ance",scheduledDate:"Date planifi\xE9e",timeEstimate:"Estimation de temps",totalTrackedTime:"Temps suivi total",checklistProgress:"Progression de la liste de contr\xF4le",recurrence:"R\xE9currence",completedDate:"Date d'ach\xE8vement",createdDate:"Date de cr\xE9ation",modifiedDate:"Date de modification",projects:"Projets",contexts:"Contextes",tags:"\xC9tiquettes",blocked:"Bloqu\xE9",blocking:"Bloquant"}},reminderContextMenu:{remindBeforeDue:"Rappeler avant l'\xE9ch\xE9ance...",remindBeforeScheduled:"Rappeler avant la date planifi\xE9e...",manageAllReminders:"G\xE9rer tous les rappels...",clearAllReminders:"Effacer tous les rappels",quickReminders:{atTime:"\xC0 l'heure de l'\xE9v\xE9nement",fiveMinutesBefore:"5 minutes avant",fifteenMinutesBefore:"15 minutes avant",oneHourBefore:"1 heure avant",oneDayBefore:"1 jour avant"}},recurrenceContextMenu:{daily:"Quotidien",weeklyOn:"Hebdomadaire le {day}",everyTwoWeeksOn:"Toutes les 2 semaines le {day}",monthlyOnThe:"Mensuel le {ordinal}",everyThreeMonthsOnThe:"Tous les 3 mois le {ordinal}",yearlyOn:"Annuel le {month} {ordinal}",weekdaysOnly:"Jours ouvr\xE9s seulement",dailyAfterCompletion:"Quotidien (apr\xE8s ach\xE8vement)",every3DaysAfterCompletion:"Tous les 3 jours (apr\xE8s ach\xE8vement)",weeklyAfterCompletion:"Hebdomadaire (apr\xE8s ach\xE8vement)",monthlyAfterCompletion:"Mensuel (apr\xE8s ach\xE8vement)",customRecurrence:"R\xE9currence personnalis\xE9e...",clearRecurrence:"Effacer la r\xE9currence",customRecurrenceModal:{title:"R\xE9currence personnalis\xE9e",startDate:"Date de d\xE9but",startDateDesc:"La date \xE0 laquelle le mod\xE8le de r\xE9currence commence",startTime:"Heure de d\xE9but",startTimeDesc:"L'heure \xE0 laquelle les instances r\xE9currentes doivent appara\xEEtre (optionnel)",recurFrom:"R\xE9currence \xE0 partir de",recurFromDesc:"Quand la prochaine occurrence doit-elle \xEAtre calcul\xE9e?",scheduledDate:"Date pr\xE9vue",completionDate:"Date d'ach\xE8vement",frequency:"Fr\xE9quence",interval:"Intervalle",intervalDesc:"Tous les X jours/semaines/mois/ann\xE9es",daysOfWeek:"Jours de la semaine",daysOfWeekDesc:"S\xE9lectionnez des jours sp\xE9cifiques (pour la r\xE9currence hebdomadaire)",monthlyRecurrence:"R\xE9currence mensuelle",monthlyRecurrenceDesc:"Choisissez comment r\xE9p\xE9ter mensuellement",yearlyRecurrence:"R\xE9currence annuelle",yearlyRecurrenceDesc:"Choisissez comment r\xE9p\xE9ter annuellement",endCondition:"Condition de fin",endConditionDesc:"Choisissez quand la r\xE9currence doit se terminer",neverEnds:"Ne se termine jamais",endAfterOccurrences:"Se termine apr\xE8s {count} occurrences",endOnDate:"Se termine le {date}",onDayOfMonth:"Le jour {day} de chaque mois",onTheWeekOfMonth:"Le {week} {day} de chaque mois",onDateOfYear:"Le {month} {day} de chaque ann\xE9e",onTheWeekOfYear:"Le {week} {day} de {month} chaque ann\xE9e",frequencies:{daily:"Quotidien",weekly:"Hebdomadaire",monthly:"Mensuel",yearly:"Annuel"},weekPositions:{first:"premier",second:"deuxi\xE8me",third:"troisi\xE8me",fourth:"quatri\xE8me",last:"dernier"},weekdays:{monday:"Lundi",tuesday:"Mardi",wednesday:"Mercredi",thursday:"Jeudi",friday:"Vendredi",saturday:"Samedi",sunday:"Dimanche"},weekdaysShort:{mon:"Lun",tue:"Mar",wed:"Mer",thu:"Jeu",fri:"Ven",sat:"Sam",sun:"Dim"},cancel:"Annuler",save:"Enregistrer"}}}};var oxe={common:{appName:"TaskNotes",new:"\u041D\u043E\u0432\u044B\u0439",cancel:"\u041E\u0442\u043C\u0435\u043D\u0430",confirm:"\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C",close:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",save:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",reorder:{confirmLargeTitle:"\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u043F\u0435\u0440\u0435\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0438\u0432\u0430\u043D\u0438\u0435",confirmButton:"\u041F\u0435\u0440\u0435\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0438\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0438",confirmLargeMessage:'\u041F\u0440\u0438 \u043F\u0435\u0440\u0435\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0438\u0432\u0430\u043D\u0438\u0438 \u0437\u0434\u0435\u0441\u044C \u043F\u043E\u043B\u0435 "{field}" \u0431\u0443\u0434\u0435\u0442 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0432 {count} \u0437\u0430\u043C\u0435\u0442\u043A\u0430\u0445, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u043F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u044B\u0439 \u0440\u0443\u0447\u043D\u043E\u0439 \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u0434\u043B\u044F {scope}. \u0421\u043A\u0440\u044B\u0442\u044B\u0435 \u0438\u043B\u0438 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u0432 \u0442\u043E\u0439 \u0436\u0435 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u0442\u043E\u0436\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B. \u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C?'},language:"\u042F\u0437\u044B\u043A",systemDefault:"\u0421\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0439 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",loading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...",languages:{en:"\u0410\u043D\u0433\u043B\u0438\u0439\u0441\u043A\u0438\u0439",fr:"\u0424\u0440\u0430\u043D\u0446\u0443\u0437\u0441\u043A\u0438\u0439",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",zh:"\u041A\u0438\u0442\u0430\u0439\u0441\u043A\u0438\u0439",de:"\u041D\u0435\u043C\u0435\u0446\u043A\u0438\u0439",es:"\u0418\u0441\u043F\u0430\u043D\u0441\u043A\u0438\u0439",ja:"\u042F\u043F\u043E\u043D\u0441\u043A\u0438\u0439",pt:"\u041F\u043E\u0440\u0442\u0443\u0433\u0430\u043B\u044C\u0441\u043A\u0438\u0439 (\u0411\u0440\u0430\u0437\u0438\u043B\u0438\u044F)",ko:"\u041A\u043E\u0440\u0435\u0439\u0441\u043A\u0438\u0439"},weekdays:{sunday:"\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435",monday:"\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A",tuesday:"\u0412\u0442\u043E\u0440\u043D\u0438\u043A",wednesday:"\u0421\u0440\u0435\u0434\u0430",thursday:"\u0427\u0435\u0442\u0432\u0435\u0440\u0433",friday:"\u041F\u044F\u0442\u043D\u0438\u0446\u0430",saturday:"\u0421\u0443\u0431\u0431\u043E\u0442\u0430"},months:{january:"\u042F\u043D\u0432\u0430\u0440\u044C",february:"\u0424\u0435\u0432\u0440\u0430\u043B\u044C",march:"\u041C\u0430\u0440\u0442",april:"\u0410\u043F\u0440\u0435\u043B\u044C",may:"\u041C\u0430\u0439",june:"\u0418\u044E\u043D\u044C",july:"\u0418\u044E\u043B\u044C",august:"\u0410\u0432\u0433\u0443\u0441\u0442",september:"\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C",october:"\u041E\u043A\u0442\u044F\u0431\u0440\u044C",november:"\u041D\u043E\u044F\u0431\u0440\u044C",december:"\u0414\u0435\u043A\u0430\u0431\u0440\u044C"}},views:{agenda:{title:"\u041F\u043B\u0430\u043D\u044B",today:"\u0421\u0435\u0433\u043E\u0434\u043D\u044F",overdue:"\u041F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043E",refreshCalendars:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438",actions:{previousPeriod:"\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439 \u043F\u0435\u0440\u0438\u043E\u0434",nextPeriod:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043F\u0435\u0440\u0438\u043E\u0434",goToToday:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0435\u0433\u043E\u0434\u043D\u044F",refreshCalendars:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438"},loading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043B\u0430\u043D\u043E\u0432...",dayToggle:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0434\u0435\u043D\u044C",overdueToggle:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0440\u0430\u0437\u0434\u0435\u043B \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043D\u044B\u0445",expandAllDays:"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u0434\u043D\u0438",collapseAllDays:"\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u0434\u043D\u0438",notices:{calendarNotReady:"\u0421\u0435\u0440\u0432\u0438\u0441 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u0435\u0449\u0435 \u043D\u0435 \u0433\u043E\u0442\u043E\u0432",calendarRefreshed:"\u041F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B",refreshFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C"},empty:{noItemsScheduled:"\u041D\u0435\u0442 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432",noItemsFound:"\u042D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B",helpText:"\u0421\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0434\u0430\u0442\u0430\u043C\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0438\u043B\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438\u043B\u0438 \u0434\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0438\u0445 \u0437\u0434\u0435\u0441\u044C."},contextMenu:{showOverdueSection:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0440\u0430\u0437\u0434\u0435\u043B \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043D\u044B\u0445",showNotes:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0438",calendarSubscriptions:"\u041F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438"},periods:{thisWeek:"\u041D\u0430 \u044D\u0442\u043E\u0439 \u043D\u0435\u0434\u0435\u043B\u0435"},tipPrefix:"\u0421\u043E\u0432\u0435\u0442: "},taskList:{title:"\u0417\u0430\u0434\u0430\u0447\u0438",expandAllGroups:"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u0433\u0440\u0443\u043F\u043F\u044B",collapseAllGroups:"\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u0433\u0440\u0443\u043F\u043F\u044B",noTasksFound:"\u0417\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0445 \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432.",reorder:{scope:{ungrouped:"\u044D\u0442\u043E\u0442 \u043D\u0435\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A",group:'\u0433\u0440\u0443\u043F\u043F\u0430 "{group}"'}},errors:{formulaGroupingReadOnly:"\u041D\u0435\u043B\u044C\u0437\u044F \u043F\u0435\u0440\u0435\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0438\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0433\u0440\u0443\u043F\u043F\u0430\u0445 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0444\u043E\u0440\u043C\u0443\u043B. \u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0444\u043E\u0440\u043C\u0443\u043B \u0432\u044B\u0447\u0438\u0441\u043B\u044F\u044E\u0442\u0441\u044F \u0438 \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E."}},notes:{title:"\u0417\u0430\u043C\u0435\u0442\u043A\u0438",refreshButton:"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435...",refreshingButton:"\u041E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u0442\u0441\u044F...",notices:{indexingDisabled:"\u0418\u043D\u0434\u0435\u043A\u0441\u0430\u0446\u0438\u044F \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0430"},empty:{noNotesFound:"\u0417\u0430\u043C\u0435\u0442\u043A\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B",helpText:"\u0417\u0430\u043C\u0435\u0442\u043A\u0438 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0434\u0440\u0443\u0433\u0443\u044E \u0434\u0430\u0442\u0443 \u0432 \u043C\u0438\u043D\u0438-\u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0435 \u0438\u043B\u0438 \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438."},loading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0437\u0430\u043C\u0435\u0442\u043E\u043A...",refreshButtonAriaLabel:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u043F\u0438\u0441\u043E\u043A \u0437\u0430\u043C\u0435\u0442\u043E\u043A"},miniCalendar:{title:"\u041C\u0438\u043D\u0438-\u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",contextMenu:{openDailyNote:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443",openWeeklyNote:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0435\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443"}},advancedCalendar:{title:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",filters:{showFilters:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440\u044B",hideFilters:"\u0421\u043A\u0440\u044B\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440\u044B"},viewOptions:{calendarSubscriptions:"\u041F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438",timeEntries:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438",timeblocks:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0431\u043B\u043E\u043A\u0438",scheduledDates:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0434\u0430\u0442\u044B",dueDates:"\u0421\u0440\u043E\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",allDaySlot:"\u0421\u043B\u043E\u0442 \u043D\u0430 \u0432\u0435\u0441\u044C \u0434\u0435\u043D\u044C",scheduledTasks:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",recurringTasks:"\u041F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438"},buttons:{refresh:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C",refreshHint:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438"},notices:{icsServiceNotAvailable:"\u0421\u0435\u0440\u0432\u0438\u0441 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 ICS \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D",calendarRefreshedAll:"\u0412\u0441\u0435 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B",refreshFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438",timeblockSpecificTime:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0431\u043B\u043E\u043A\u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0438\u043C\u0435\u0442\u044C \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F. \u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u0432 \u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E\u043C \u0438\u043B\u0438 \u0434\u043D\u0435\u0432\u043D\u043E\u043C \u0432\u0438\u0434\u0435.",timeblockMoved:'\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0431\u043B\u043E\u043A "{title}" \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D \u043D\u0430 {date}',timeblockUpdated:'\u0412\u0440\u0435\u043C\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430 "{title}" \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043E',timeblockMoveFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0431\u043B\u043E\u043A: {message}",timeblockResized:'\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430 "{title}" \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430',timeblockResizeFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0440 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430: {message}",taskScheduled:'\u0417\u0430\u0434\u0430\u0447\u0430 "{title}" \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0430 \u043D\u0430 {date}',scheduleTaskFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",endTimeAfterStart:"\u0412\u0440\u0435\u043C\u044F \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043F\u043E\u0441\u043B\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043D\u0430\u0447\u0430\u043B\u0430",timeEntryNotFound:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0437\u0430\u043F\u0438\u0441\u044C \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430",timeEntryDeleted:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0437\u0430\u043F\u0438\u0441\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0430",deleteTimeEntryFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0443\u044E \u0437\u0430\u043F\u0438\u0441\u044C"},timeEntry:{estimatedSuffix:"\u043E\u0446\u0435\u043D\u043A\u0430",trackedSuffix:"\u043E\u0442\u0441\u043B\u0435\u0436\u0435\u043D\u043E",recurringPrefix:"\u041F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0430\u044F\u0441\u044F: ",completedPrefix:"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E: ",createdPrefix:"\u0421\u043E\u0437\u0434\u0430\u043D\u043E: ",modifiedPrefix:"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u043E: ",duePrefix:"\u0421\u0440\u043E\u043A: ",scheduledPrefix:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E: "},contextMenus:{openTask:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",deleteTimeEntry:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0443\u044E \u0437\u0430\u043F\u0438\u0441\u044C",deleteTimeEntryTitle:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0443\u044E \u0437\u0430\u043F\u0438\u0441\u044C",deleteTimeEntryConfirm:"\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u0443 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0443\u044E \u0437\u0430\u043F\u0438\u0441\u044C{duration}? \u042D\u0442\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043D\u0435\u043B\u044C\u0437\u044F \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C.",deleteButton:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",cancelButton:"\u041E\u0442\u043C\u0435\u043D\u0430"}},basesCalendar:{title:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C Bases",today:"\u0421\u0435\u0433\u043E\u0434\u043D\u044F",buttonText:{month:"\u041C",week:"\u041D",day:"\u0414",year:"\u0413",list:"\u0421",customDays:"{count}\u0414",listDays:"{count}\u0434 \u0421\u043F\u0438\u0441\u043E\u043A",refresh:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C"},hints:{refresh:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",today:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u0435\u0433\u043E\u0434\u043D\u044F",prev:"\u041D\u0430\u0437\u0430\u0434",next:"\u0412\u043F\u0435\u0440\u0451\u0434",month:"\u0412\u0438\u0434 \u043F\u043E \u043C\u0435\u0441\u044F\u0446\u0430\u043C",week:"\u0412\u0438\u0434 \u043F\u043E \u043D\u0435\u0434\u0435\u043B\u044F\u043C",day:"\u0412\u0438\u0434 \u043F\u043E \u0434\u043D\u044F\u043C",year:"\u0412\u0438\u0434 \u043F\u043E \u0433\u043E\u0434\u0430\u043C",list:"\u0412\u0438\u0434 \u0441\u043F\u0438\u0441\u043A\u043E\u043C",customDays:"\u0412\u0438\u0434 \u043D\u0430 {count} \u0434\u043D\u0435\u0439"},settings:{groups:{dateNavigation:"\u041D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044F \u043F\u043E \u0434\u0430\u0442\u0430\u043C",events:"\u0421\u043E\u0431\u044B\u0442\u0438\u044F",layout:"\u041C\u0430\u043A\u0435\u0442",view:"\u0412\u0438\u0434",display:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435",timeGrid:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0441\u0435\u0442\u043A\u0430",eventLayout:"\u0420\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u0439",propertyBasedEvents:"\u0421\u043E\u0431\u044B\u0442\u0438\u044F \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432",calendarSubscriptions:"\u041F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",googleCalendars:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438 Google",microsoftCalendars:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438 Microsoft"},dateNavigation:{navigateToDate:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0434\u0430\u0442\u0435",navigateToDatePlaceholder:"\u0413\u0413\u0413\u0413-\u041C\u041C-\u0414\u0414 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, 2025-01-15) - \u043E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430",navigateToDateFromProperty:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0434\u0430\u0442\u0435 \u0438\u0437 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430",navigateToDateFromPropertyPlaceholder:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u0434\u0430\u0442\u044B (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E)",propertyNavigationStrategy:"\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044F \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u043F\u043E \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0443",createDailyNotesFromDateLinks:"\u0421\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u0438\u0437 \u0441\u0441\u044B\u043B\u043E\u043A \u0434\u0430\u0442",strategies:{first:"\u041F\u0435\u0440\u0432\u044B\u0439 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442",earliest:"\u0421\u0430\u043C\u0430\u044F \u0440\u0430\u043D\u043D\u044F\u044F \u0434\u0430\u0442\u0430",latest:"\u0421\u0430\u043C\u0430\u044F \u043F\u043E\u0437\u0434\u043D\u044F\u044F \u0434\u0430\u0442\u0430"}},events:{showScheduledTasks:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",showDueTasks:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u043A\u0440\u0430\u0439\u043D\u0438\u043C \u0441\u0440\u043E\u043A\u043E\u043C",showOverdueOnToday:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0435\u0433\u043E\u0434\u043D\u044F",showRecurringTasks:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438",showTimeEntries:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0437\u0430\u043F\u0438\u0441\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",showTimeblocks:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0431\u043B\u043E\u043A\u0438",showPropertyBasedEvents:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432",showCompletedRecurringInstances:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u044B",showSkippedRecurringInstances:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043D\u044B\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u044B"},layout:{calendarView:"\u0412\u0438\u0434 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",customDayCount:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u043D\u0435\u0439",listDayCount:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u043D\u0435\u0439 \u0441\u043F\u0438\u0441\u043A\u0430",dayStartTime:"\u0412\u0440\u0435\u043C\u044F \u043D\u0430\u0447\u0430\u043B\u0430 \u0434\u043D\u044F",dayStartTimePlaceholder:"\u0427\u0427:\u043C\u043C:\u0441\u0441 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, 08:00:00)",dayEndTime:"\u0412\u0440\u0435\u043C\u044F \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F \u0434\u043D\u044F",dayEndTimePlaceholder:"\u0427\u0427:\u043C\u043C:\u0441\u0441 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, 20:00:00)",timeSlotDuration:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0441\u043B\u043E\u0442\u0430",timeSlotDurationPlaceholder:"\u0427\u0427:\u043C\u043C:\u0441\u0441 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, 00:30:00)",dragDropResolution:"\u0428\u0430\u0433 \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F",dragDropResolutionPlaceholder:"\u0427\u0427:\u043C\u043C:\u0441\u0441 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, 00:05:00)",weekStartsOn:"\u041D\u0435\u0434\u0435\u043B\u044F \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u0441",showWeekNumbers:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u043E\u043C\u0435\u0440\u0430 \u043D\u0435\u0434\u0435\u043B\u044C",showNowIndicator:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438",showWeekends:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u044B\u0445\u043E\u0434\u043D\u044B\u0435",showAllDaySlot:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u043B\u043E\u0442 \u043D\u0430 \u0432\u0435\u0441\u044C \u0434\u0435\u043D\u044C",showTimeGrid:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0447\u0430\u0441\u043E\u0432\u0443\u044E \u0441\u0435\u0442\u043A\u0443",showTodayHighlight:"\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u0441\u0435\u0433\u043E\u0434\u043D\u044F",todayColumnWidthMultiplier:"\u041C\u043D\u043E\u0436\u0438\u0442\u0435\u043B\u044C \u0448\u0438\u0440\u0438\u043D\u044B \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u0435\u0433\u043E\u0434\u043D\u044F\u0448\u043D\u0435\u0433\u043E \u0434\u043D\u044F",showSelectionPreview:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0432\u044B\u0431\u043E\u0440\u0430",timeFormat:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",timeFormat12:"12-\u0447\u0430\u0441\u043E\u0432\u043E\u0439 (AM/PM)",timeFormat24:"24-\u0447\u0430\u0441\u043E\u0432\u043E\u0439",initialScrollTime:"\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438",initialScrollTimePlaceholder:"\u0427\u0427:\u043C\u043C:\u0441\u0441 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, 08:00:00)",minimumEventHeight:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0441\u043E\u0431\u044B\u0442\u0438\u044F (px)",slotEventOverlap:"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u043D\u0430\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u0439",enableSearch:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u043B\u0435 \u043F\u043E\u0438\u0441\u043A\u0430",eventMaxStack:"\u041C\u0430\u043A\u0441. \u043D\u0430\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 (\u043D\u0435\u0434\u0435\u043B\u044F/\u0434\u0435\u043D\u044C, 0 = \u0431\u0435\u0437 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0439)",dayMaxEvents:"\u041C\u0430\u043A\u0441. \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u0432 \u0434\u0435\u043D\u044C (\u043C\u0435\u0441\u044F\u0446, 0 = \u0430\u0432\u0442\u043E)",dayMaxEventRows:"\u041C\u0430\u043A\u0441. \u0441\u0442\u0440\u043E\u043A \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u0432 \u0434\u0435\u043D\u044C (\u043C\u0435\u0441\u044F\u0446, 0 = \u0431\u0435\u0437 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0439)",spanScheduledToDue:"\u0420\u0430\u0441\u0442\u044F\u0433\u0438\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043C\u0435\u0436\u0434\u0443 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u0438 \u0441\u0440\u043E\u0447\u043D\u043E\u0439 \u0434\u0430\u0442\u0430\u043C\u0438",heightMode:"\u0420\u0435\u0436\u0438\u043C \u0432\u044B\u0441\u043E\u0442\u044B",heightModeFill:"\u0417\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440",heightModeAuto:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430"},propertyBasedEvents:{startDateProperty:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u0434\u0430\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u0430",startDatePropertyPlaceholder:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u0434\u043B\u044F \u0434\u0430\u0442\u044B/\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043D\u0430\u0447\u0430\u043B\u0430",endDateProperty:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u0434\u0430\u0442\u044B \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E)",endDatePropertyPlaceholder:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u0434\u043B\u044F \u0434\u0430\u0442\u044B/\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F",titleProperty:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E)",titlePropertyPlaceholder:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u0434\u043B\u044F \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u0441\u043E\u0431\u044B\u0442\u0438\u044F"}},notices:{noDailyNoteForDate:"\u0414\u043B\u044F \u044D\u0442\u043E\u0439 \u0434\u0430\u0442\u044B \u043D\u0435\u0442 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E\u0439 \u0437\u0430\u043C\u0435\u0442\u043A\u0438."},errors:{failedToInitialize:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C"}},kanban:{title:"\u041A\u0430\u043D\u0431\u0430\u043D",newTask:"\u041D\u043E\u0432\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430",addCard:"+ \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0443",noTasks:"\u041D\u0435\u0442 \u0437\u0430\u0434\u0430\u0447",uncategorized:"\u0411\u0435\u0437 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438",noProject:"\u0411\u0435\u0437 \u043F\u0440\u043E\u0435\u043A\u0442\u0430",reorder:{scope:{column:'\u043A\u043E\u043B\u043E\u043D\u043A\u0430 "{group}"',columnInSwimlane:'\u043A\u043E\u043B\u043E\u043D\u043A\u0430 "{group}" \u0432 swimlane "{swimlane}"'}},notices:{loadFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0434\u043E\u0441\u043A\u0443 \u041A\u0430\u043D\u0431\u0430\u043D",movedTask:'\u0417\u0430\u0434\u0430\u0447\u0430 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0430 \u0432 "{0}"'},errors:{loadingBoard:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0434\u043E\u0441\u043A\u0438.",noGroupBy:"\u0414\u043B\u044F \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u041A\u0430\u043D\u0431\u0430\u043D \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E '\u0413\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E'. \u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u043A\u043D\u043E\u043F\u043A\u0443 '\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430' \u0438 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0435 '\u0413\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E'.",formulaGroupingReadOnly:"\u041D\u0435\u043B\u044C\u0437\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043C\u0435\u0436\u0434\u0443 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\u043C\u0438 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0444\u043E\u0440\u043C\u0443\u043B. \u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0444\u043E\u0440\u043C\u0443\u043B \u0432\u044B\u0447\u0438\u0441\u043B\u044F\u044E\u0442\u0441\u044F \u0438 \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E.",formulaSwimlaneReadOnly:"\u041D\u0435\u043B\u044C\u0437\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043C\u0435\u0436\u0434\u0443 \u0434\u043E\u0440\u043E\u0436\u043A\u0430\u043C\u0438 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0444\u043E\u0440\u043C\u0443\u043B. \u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0444\u043E\u0440\u043C\u0443\u043B \u0432\u044B\u0447\u0438\u0441\u043B\u044F\u044E\u0442\u0441\u044F \u0438 \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E."},columnTitle:"\u0411\u0435\u0437 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F"},pomodoro:{title:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",status:{focus:"\u0424\u043E\u043A\u0443\u0441",ready:"\u0413\u043E\u0442\u043E\u0432\u043E \u043A \u043D\u0430\u0447\u0430\u043B\u0443",paused:"\u041F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E",working:"\u0420\u0430\u0431\u043E\u0442\u0430",shortBreak:"\u041A\u043E\u0440\u043E\u0442\u043A\u0438\u0439 \u043F\u0435\u0440\u0435\u0440\u044B\u0432",longBreak:"\u0414\u043B\u0438\u043D\u043D\u044B\u0439 \u043F\u0435\u0440\u0435\u0440\u044B\u0432",breakPrompt:"\u041E\u0442\u043B\u0438\u0447\u043D\u0430\u044F \u0440\u0430\u0431\u043E\u0442\u0430! \u0412\u0440\u0435\u043C\u044F \u0434\u043B\u044F {length} \u043F\u0435\u0440\u0435\u0440\u044B\u0432\u0430",breakLength:{short:"\u043A\u043E\u0440\u043E\u0442\u043A\u043E\u0433\u043E",long:"\u0434\u043B\u0438\u043D\u043D\u043E\u0433\u043E"},breakComplete:"\u041F\u0435\u0440\u0435\u0440\u044B\u0432 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D! \u0413\u043E\u0442\u043E\u0432\u044B \u043A \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C\u0443 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E?"},buttons:{start:"\u0421\u0442\u0430\u0440\u0442",pause:"\u041F\u0430\u0443\u0437\u0430",stop:"\u0421\u0442\u043E\u043F",resume:"\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C",startShortBreak:"\u041D\u0430\u0447\u0430\u0442\u044C \u043A\u043E\u0440\u043E\u0442\u043A\u0438\u0439 \u043F\u0435\u0440\u0435\u0440\u044B\u0432",startLongBreak:"\u041D\u0430\u0447\u0430\u0442\u044C \u0434\u043B\u0438\u043D\u043D\u044B\u0439 \u043F\u0435\u0440\u0435\u0440\u044B\u0432",skipBreak:"\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043F\u0435\u0440\u0435\u0440\u044B\u0432",chooseTask:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443...",changeTask:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443...",clearTask:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",selectDifferentTask:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0434\u0440\u0443\u0433\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443",startFocus:"\u041D\u0430\u0447\u0430\u0442\u044C \u0444\u043E\u043A\u0443\u0441",addMinute:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0434\u043D\u0443 \u043C\u0438\u043D\u0443\u0442\u0443",subtractMinute:"\u0412\u044B\u0447\u0435\u0441\u0442\u044C \u043E\u0434\u043D\u0443 \u043C\u0438\u043D\u0443\u0442\u0443"},notices:{noTasks:"\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043D\u0435\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447. \u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u0434\u0430\u0447.",loadFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438",invalidDuration:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 10, 10:30 \u0438\u043B\u0438 1:30:00."},statsLabel:"\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E \u0441\u0435\u0433\u043E\u0434\u043D\u044F",meta:{ready:"{time} \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E \xB7 {count} \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E \u0441\u0435\u0433\u043E\u0434\u043D\u044F",running:"\u041E\u0441\u0442\u0430\u043B\u043E\u0441\u044C {time} \xB7 \u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044F \u0432 {endTime}",paused:"{type} \u043D\u0430 \u043F\u0430\u0443\u0437\u0435 \xB7 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C {time}",breakReady:"{type} \u0433\u043E\u0442\u043E\u0432\u043E \xB7 {time} \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E"},timer:{editLabel:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0442\u0430\u0439\u043C\u0435\u0440\u0430",inputLabel:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0442\u0430\u0439\u043C\u0435\u0440\u0430"}},pomodoroStats:{title:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",heading:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",refresh:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C",sections:{overview:"\u041E\u0431\u0437\u043E\u0440",today:"\u0421\u0435\u0433\u043E\u0434\u043D\u044F",week:"\u042D\u0442\u0430 \u043D\u0435\u0434\u0435\u043B\u044F",allTime:"\u0417\u0430 \u0432\u0441\u0435 \u0432\u0440\u0435\u043C\u044F",recent:"\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0441\u0435\u0441\u0441\u0438\u0438"},overviewCards:{todayPomos:{label:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u0441\u0435\u0433\u043E\u0434\u043D\u044F",change:{more:"\u043D\u0430 {count} \u0431\u043E\u043B\u044C\u0448\u0435 \u0447\u0435\u043C \u0432\u0447\u0435\u0440\u0430",less:"\u043D\u0430 {count} \u043C\u0435\u043D\u044C\u0448\u0435 \u0447\u0435\u043C \u0432\u0447\u0435\u0440\u0430"}},totalPomos:{label:"\u0412\u0441\u0435\u0433\u043E \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E"},todayFocus:{label:"\u0424\u043E\u043A\u0443\u0441 \u0441\u0435\u0433\u043E\u0434\u043D\u044F",change:{more:"\u043D\u0430 {duration} \u0431\u043E\u043B\u044C\u0448\u0435 \u0447\u0435\u043C \u0432\u0447\u0435\u0440\u0430",less:"\u043D\u0430 {duration} \u043C\u0435\u043D\u044C\u0448\u0435 \u0447\u0435\u043C \u0432\u0447\u0435\u0440\u0430"}},totalFocus:{label:"\u041E\u0431\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F \u0444\u043E\u043A\u0443\u0441\u0430"}},stats:{pomodoros:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",streak:"\u0421\u0435\u0440\u0438\u044F",minutes:"\u041C\u0438\u043D\u0443\u0442\u044B",average:"\u0421\u0440\u0435\u0434\u043D\u044F\u044F \u0434\u043B\u0438\u043D\u0430",completion:"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0435"},recents:{empty:"\u0421\u0435\u0441\u0441\u0438\u0438 \u0435\u0449\u0435 \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u044B",duration:"{minutes} \u043C\u0438\u043D",status:{completed:"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E",interrupted:"\u041F\u0440\u0435\u0440\u0432\u0430\u043D\u043E"},delete:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E",deleteAria:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E Pomodoro",deleteConfirmTitle:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E Pomodoro?",deleteConfirmMessage:"\u042D\u0442\u043E \u0443\u0434\u0430\u043B\u0438\u0442 \u0441\u0435\u0441\u0441\u0438\u044E \u0438\u0437 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 Pomodoro. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0437\u0430\u0434\u0430\u0447 \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u0442\u0441\u044F.",deleteConfirmButton:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",deleteSuccess:"\u0421\u0435\u0441\u0441\u0438\u044F Pomodoro \u0443\u0434\u0430\u043B\u0435\u043D\u0430",deleteNotFound:"\u0421\u0435\u0441\u0441\u0438\u044F Pomodoro \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430"},basesMigration:{title:"\u041D\u0443\u0436\u043D\u043E \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 Base?",description:"\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F Base Pomodoro \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442 frontmatter \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043E\u043A. \u0427\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u044D\u0442\u0443 \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0432 \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 Base \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438 Pomodoro, \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0438\u0442\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 Pomodoro \u0432 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445, \u0437\u0430\u0442\u0435\u043C \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u0432 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043A\u0430\u0445."}},stats:{title:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430",taskProjectStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0437\u0430\u0434\u0430\u0447 \u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432",sections:{filters:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B",overview:"\u041E\u0431\u0437\u043E\u0440",today:"\u0421\u0435\u0433\u043E\u0434\u043D\u044F",thisWeek:"\u042D\u0442\u0430 \u043D\u0435\u0434\u0435\u043B\u044F",thisMonth:"\u042D\u0442\u043E\u0442 \u043C\u0435\u0441\u044F\u0446",projectBreakdown:"\u0420\u0430\u0437\u0431\u0438\u0432\u043A\u0430 \u043F\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0430\u043C",dateRange:"\u0414\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u0434\u0430\u0442"},filters:{minTime:"\u041C\u0438\u043D. \u0432\u0440\u0435\u043C\u044F (\u043C\u0438\u043D\u0443\u0442\u044B)",allTasks:"\u0412\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",activeOnly:"\u0422\u043E\u043B\u044C\u043A\u043E \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435",completedOnly:"\u0422\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044B\u0435"},refreshButton:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C",timeRanges:{allTime:"\u0412\u0441\u0435 \u0432\u0440\u0435\u043C\u044F",last7Days:"\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 7 \u0434\u043D\u0435\u0439",last30Days:"\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 30 \u0434\u043D\u0435\u0439",last90Days:"\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 90 \u0434\u043D\u0435\u0439",customRange:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D"},resetFiltersButton:"\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440\u044B",dateRangeFrom:"\u0421",dateRangeTo:"\u0414\u043E",noProject:"\u0411\u0435\u0437 \u043F\u0440\u043E\u0435\u043A\u0442\u0430",cards:{timeTrackedEstimated:"\u041E\u0442\u0441\u043B\u0435\u0436\u0435\u043D\u043E / \u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438",totalTasks:"\u0414\u043Etal Tasks",completionRate:"\u041F\u0440\u043E\u0446\u0435\u043D\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F",activeProjects:"\u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u044B",avgTimePerTask:"\u0421\u0440\u0435\u0434\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F \u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0443"},labels:{tasks:"\u0417\u0430\u0434\u0430\u0447\u0438",completed:"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E",projects:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B"},noProjectData:"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445 \u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0430\u0445",notAvailable:"\u041D/\u0414",noTasks:"\u0417\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B",loading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430..."},releaseNotes:{title:"\u0427\u0442\u043E \u043D\u043E\u0432\u043E\u0433\u043E \u0432 TaskNotes {version}",header:"\u0427\u0442\u043E \u043D\u043E\u0432\u043E\u0433\u043E \u0432 TaskNotes {version}",viewAllLink:"\u041F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0432\u0441\u0435 \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u044F \u043A \u0432\u044B\u043F\u0443\u0441\u043A\u0443 \u043D\u0430 GitHub \u2192",starMessage:"\u041C\u044B \u043E\u0447\u0435\u043D\u044C \u0446\u0435\u043D\u0438\u043C \u043B\u044E\u0431\u044B\u0435 \u043E\u0442\u0437\u044B\u0432\u044B. \u0415\u0441\u043B\u0438 \u0447\u0442\u043E-\u0442\u043E \u043A\u0430\u0436\u0435\u0442\u0441\u044F \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u043C, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0441\u043E\u043E\u0431\u0449\u0438\u0442\u0435 \u043D\u0430\u043C \u043D\u0430 GitHub. \u0415\u0441\u043B\u0438 TaskNotes \u043F\u043E\u043B\u0435\u0437\u0435\u043D \u0434\u043B\u044F \u0432\u0430\u0441, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0437\u0432\u0435\u0437\u0434\u0443.",baseFilesNotice:"> [!info] \u041E \u0444\u0430\u0439\u043B\u0430\u0445 `.base` \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E\n> \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432 \u0448\u0430\u0431\u043B\u043E\u043D\u0430\u0445 `.base`, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0433\u0435\u043D\u0435\u0440\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E, \u043D\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442 \u0432\u0430\u0448\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0444\u0430\u0439\u043B\u044B `.base`, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0432\u0430\u0448\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u044E\u0442\u0441\u044F.\n> \u0427\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0443\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u044F \u043D\u043E\u0432\u044B\u0445 \u0448\u0430\u0431\u043B\u043E\u043D\u043E\u0432, \u043F\u0435\u0440\u0435\u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0431\u0430\u0437\u043E\u0432\u044B\u0435 \u0444\u0430\u0439\u043B\u044B \u0432 **\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u2192 TaskNotes \u2192 \u041E\u0431\u0449\u0438\u0435 \u2192 \u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0438 \u0444\u0430\u0439\u043B\u044B base \u2192 \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u044B**."}},settings:{header:{documentation:"\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F",documentationUrl:"https://tasknotes.dev"},tabs:{general:"\u041E\u0431\u0449\u0438\u0435",taskProperties:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0437\u0430\u0434\u0430\u0447",modalFields:"\u041F\u043E\u043B\u044F \u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u043E\u043A\u043D\u0430",defaults:"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u044B",appearance:"\u0412\u043D\u0435\u0448\u043D\u0438\u0439 \u0432\u0438\u0434 \u0438 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441",features:"\u0424\u0443\u043D\u043A\u0446\u0438\u0438",integrations:"\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438"},features:{inlineTasks:{header:"\u0412\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u0441\u044B\u043B\u043E\u043A \u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0444\u043B\u0430\u0436\u043A\u043E\u0432 \u0432 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0437\u0430\u043C\u0435\u0442\u043A\u0430\u0445."},taskCreation:{header:"\u0421\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435, \u0447\u0442\u043E \u043F\u0440\u043E\u0438\u0441\u0445\u043E\u0434\u0438\u0442 \u043F\u043E\u0441\u043B\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447.",openAfterCreate:{name:"\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043F\u043E\u0441\u043B\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F",description:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u0431\u0443\u0434\u0435\u0442 \u043B\u0438 \u043E\u0431\u044B\u0447\u043D\u043E\u0435 \u043E\u043A\u043D\u043E \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u043D\u043E\u0432\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u0441\u043B\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F.",options:{none:"\u041D\u0435 \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C",sameTab:"\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0432 \u0442\u043E\u0439 \u0436\u0435 \u0432\u043A\u043B\u0430\u0434\u043A\u0435",newTab:"\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0432 \u043D\u043E\u0432\u043E\u0439 \u0432\u043A\u043B\u0430\u0434\u043A\u0435"}}},overlays:{taskLinkToggle:{name:"\u041D\u0430\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0441\u0441\u044B\u043B\u043E\u043A \u0437\u0430\u0434\u0430\u0447",description:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435 \u043D\u0430\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043D\u0430 \u0441\u0441\u044B\u043B\u043A\u0438 \u0437\u0430\u0434\u0430\u0447"},aliasExclusion:{name:"\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u0441\u0441\u044B\u043B\u043E\u043A \u0441 \u043F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C\u0430\u043C\u0438",description:"\u041D\u0435 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0432\u0438\u0434\u0436\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0438, \u0435\u0441\u043B\u0438 \u0441\u0441\u044B\u043B\u043A\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, [[\u0417\u0430\u0434\u0430\u0447\u0430|\u041F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C]])."}},instantConvert:{toggle:{name:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043A\u043D\u043E\u043F\u043A\u0443 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0440\u044F\u0434\u043E\u043C \u0441 \u0444\u043B\u0430\u0436\u043A\u0430\u043C\u0438",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0443\u044E \u043A\u043D\u043E\u043F\u043A\u0443 \u0440\u044F\u0434\u043E\u043C \u0441 \u0444\u043B\u0430\u0436\u043A\u0430\u043C\u0438 Markdown, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0438\u0445 \u0432 TaskNotes"},preserveCheckbox:{name:"\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u0444\u043B\u0430\u0436\u043E\u043A \u043F\u0440\u0438 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0438",description:"\u041E\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043C\u0430\u0440\u043A\u0435\u0440 \u0444\u043B\u0430\u0436\u043A\u0430 Markdown \u043F\u0440\u0438 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0438 \u0444\u043B\u0430\u0436\u043A\u0430 \u0432 \u0441\u0441\u044B\u043B\u043A\u0443 TaskNote"},folder:{name:"\u041F\u0430\u043F\u043A\u0430 \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0445 inline",description:"\u041F\u0430\u043F\u043A\u0430, \u0433\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437 inline-\u043A\u043E\u043C\u0430\u043D\u0434 \u0438\u043B\u0438 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0447\u0435\u043A\u0431\u043E\u043A\u0441\u043E\u0432. \u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043F\u0430\u043F\u043A\u0443 \u0437\u0430\u0434\u0430\u0447 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {{currentNotePath}} \u0434\u043B\u044F \u043F\u0430\u043F\u043A\u0438 \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u0438\u043B\u0438 {{currentNoteTitle}} \u0434\u043B\u044F \u043F\u043E\u0434\u043F\u0430\u043F\u043A\u0438 \u0441 \u0438\u043C\u0435\u043D\u0435\u043C \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0437\u0430\u043C\u0435\u0442\u043A\u0438."}},nlp:{header:"\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u044F\u0437\u044B\u043A\u0430",description:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0434\u0430\u0442, \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u043E\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0432\u043E\u0439\u0441\u0442\u0432 \u0438\u0437 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E \u0432\u0432\u043E\u0434\u0430.",enable:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u0432\u043E\u0434 \u0437\u0430\u0434\u0430\u0447 \u043D\u0430 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C \u044F\u0437\u044B\u043A\u0435",description:"\u0410\u043D\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0440\u043E\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F, \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u044B \u0438 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B \u0438\u0437 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u044F\u0437\u044B\u043A\u0430 \u043F\u0440\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447"},defaultToScheduled:{name:"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435",description:"\u041A\u043E\u0433\u0434\u0430 NLP \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0430\u0442\u0443 \u0431\u0435\u0437 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430, \u0442\u0440\u0430\u043A\u0442\u043E\u0432\u0430\u0442\u044C \u0435\u0435 \u043A\u0430\u043A \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E, \u0430 \u043D\u0435 \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F"},language:{name:"\u042F\u0437\u044B\u043A NLP",description:"\u042F\u0437\u044B\u043A \u0434\u043B\u044F \u0448\u0430\u0431\u043B\u043E\u043D\u043E\u0432 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u044F\u0437\u044B\u043A\u0430 \u0438 \u0430\u043D\u0430\u043B\u0438\u0437\u0430 \u0434\u0430\u0442"},statusTrigger:{name:"\u0422\u0440\u0438\u0433\u0433\u0435\u0440 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0430",description:"\u0422\u0435\u043A\u0441\u0442 \u0434\u043B\u044F \u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 (\u043E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C \u0434\u043B\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F)"}},pomodoro:{header:"\u0422\u0430\u0439\u043C\u0435\u0440 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u043E\u0432 \u0440\u0430\u0431\u043E\u0442\u044B/\u043E\u0442\u0434\u044B\u0445\u0430 \u0434\u043B\u044F \u0442\u0430\u0439\u043C\u0435\u0440\u0430 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E.",workDuration:{name:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0440\u0430\u0431\u043E\u0442\u044B",description:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u043E\u0432 \u0432 \u043C\u0438\u043D\u0443\u0442\u0430\u0445"},shortBreak:{name:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u043A\u043E\u0440\u043E\u0442\u043A\u043E\u0433\u043E \u043F\u0435\u0440\u0435\u0440\u044B\u0432\u0430",description:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u043A\u043E\u0440\u043E\u0442\u043A\u0438\u0445 \u043F\u0435\u0440\u0435\u0440\u044B\u0432\u043E\u0432 \u0432 \u043C\u0438\u043D\u0443\u0442\u0430\u0445"},longBreak:{name:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0434\u043B\u0438\u043D\u043D\u043E\u0433\u043E \u043F\u0435\u0440\u0435\u0440\u044B\u0432\u0430",description:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0434\u043B\u0438\u043D\u043D\u044B\u0445 \u043F\u0435\u0440\u0435\u0440\u044B\u0432\u043E\u0432 \u0432 \u043C\u0438\u043D\u0443\u0442\u0430\u0445"},longBreakInterval:{name:"\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0434\u043B\u0438\u043D\u043D\u043E\u0433\u043E \u043F\u0435\u0440\u0435\u0440\u044B\u0432\u0430",description:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0441\u0435\u0441\u0441\u0438\u0439 \u043F\u0435\u0440\u0435\u0434 \u0434\u043B\u0438\u043D\u043D\u044B\u043C \u043F\u0435\u0440\u0435\u0440\u044B\u0432\u043E\u043C"},autoStartBreaks:{name:"\u0410\u0432\u0442\u043E\u0437\u0430\u043F\u0443\u0441\u043A \u043F\u0435\u0440\u0435\u0440\u044B\u0432\u043E\u0432",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0442\u044C \u0442\u0430\u0439\u043C\u0435\u0440\u044B \u043F\u0435\u0440\u0435\u0440\u044B\u0432\u043E\u0432 \u043F\u043E\u0441\u043B\u0435 \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0441\u0435\u0441\u0441\u0438\u0439"},autoStartWork:{name:"\u0410\u0432\u0442\u043E\u0437\u0430\u043F\u0443\u0441\u043A \u0440\u0430\u0431\u043E\u0442\u044B",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0442\u044C \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E\u0441\u043B\u0435 \u043F\u0435\u0440\u0435\u0440\u044B\u0432\u043E\u0432"},notifications:{name:"\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",description:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u0441\u0435\u0441\u0441\u0438\u0439 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E"},mobileSidebar:{name:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u0430\u044F \u0431\u043E\u043A\u043E\u0432\u0430\u044F \u043F\u0430\u043D\u0435\u043B\u044C",description:"\u0413\u0434\u0435 \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0442\u0430\u0439\u043C\u0435\u0440 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u043D\u0430 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0445 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430\u0445",tab:"\u041F\u0430\u043D\u0435\u043B\u044C \u0437\u0430\u043C\u0435\u0442\u043E\u043A",left:"\u041B\u0435\u0432\u0430\u044F \u0431\u043E\u043A\u043E\u0432\u0430\u044F \u043F\u0430\u043D\u0435\u043B\u044C",right:"\u041F\u0440\u0430\u0432\u0430\u044F \u0431\u043E\u043A\u043E\u0432\u0430\u044F \u043F\u0430\u043D\u0435\u043B\u044C"},statusBar:{name:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C Pomodoro \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F",description:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u043E\u0431\u0440\u0430\u0442\u043D\u044B\u0439 \u043E\u0442\u0441\u0447\u0451\u0442 Pomodoro \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F Obsidian"}},uiLanguage:{header:"\u042F\u0437\u044B\u043A \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430",description:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u044F\u0437\u044B\u043A \u043C\u0435\u043D\u044E, \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439 TaskNotes.",dropdown:{name:"\u042F\u0437\u044B\u043A \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430",description:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044F\u0437\u044B\u043A, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 TaskNotes"}},pomodoroSound:{enabledName:"\u0417\u0432\u0443\u043A \u0432\u043A\u043B\u044E\u0447\u0435\u043D",enabledDesc:"\u0412\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u044C \u0437\u0432\u0443\u043A \u043F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u0441\u0435\u0441\u0441\u0438\u0439 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",volumeName:"\u0413\u0440\u043E\u043C\u043A\u043E\u0441\u0442\u044C \u0437\u0432\u0443\u043A\u0430",volumeDesc:"\u0413\u0440\u043E\u043C\u043A\u043E\u0441\u0442\u044C \u0437\u0432\u0443\u043A\u043E\u0432 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E (0-100)"},dataStorage:{name:"\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043C\u0435\u0441\u0442\u0430 \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0435\u0430\u043D\u0441\u043E\u0432 Pomodoro \u0438 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0438\u043C\u0438.",dailyNotes:"\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438",pluginData:"\u0414\u0430\u043D\u043D\u044B\u0435 \u043F\u043B\u0430\u0433\u0438\u043D\u0430",notices:{locationChanged:"\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 Pomodoro \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E \u043D\u0430 {location}"}},notifications:{header:"\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043E \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F\u0445 \u0437\u0430\u0434\u0430\u0447 \u0438 \u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u0439.",enableName:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F",enableDesc:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F\u0445 \u0437\u0430\u0434\u0430\u0447",typeName:"\u0422\u0438\u043F \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439",typeDesc:"\u0422\u0438\u043F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0445 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439",systemLabel:"\u0421\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F",inAppLabel:"\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u0432 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438",soundEnabledName:"\u0417\u0432\u0443\u043A \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F",soundEnabledDesc:"\u0412\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u044C \u0437\u0432\u0443\u043A \u043F\u0440\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u043D\u0438\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0439 \u0437\u0430\u0434\u0430\u0447",soundVolumeName:"\u0413\u0440\u043E\u043C\u043A\u043E\u0441\u0442\u044C \u0437\u0432\u0443\u043A\u0430",soundVolumeDesc:"\u0413\u0440\u043E\u043C\u043A\u043E\u0441\u0442\u044C \u0437\u0432\u0443\u043A\u043E\u0432 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0439 \u0437\u0430\u0434\u0430\u0447 (0-100)",soundPreviewName:"\u041F\u0440\u043E\u0441\u043B\u0443\u0448\u0430\u0442\u044C \u0437\u0432\u0443\u043A \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F",soundPreviewDesc:"\u0412\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0439 \u0437\u0432\u0443\u043A \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438",soundPreviewButton:"\u041F\u0440\u043E\u0441\u043B\u0443\u0448\u0430\u0442\u044C",testReminderName:"\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0441\u0442\u043E\u0432\u043E\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435",testReminderDesc:"\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0441\u0442\u043E\u0432\u043E\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0441 \u0442\u0435\u043A\u0443\u0449\u0438\u043C \u0442\u0438\u043F\u043E\u043C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u043C\u0438 \u0437\u0432\u0443\u043A\u0430.",testReminderButton:"\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0441\u0442"},overdue:{hideCompletedName:"\u0421\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043D\u044B\u0445",hideCompletedDesc:"\u0418\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437 \u0440\u0430\u0441\u0447\u0435\u0442\u043E\u0432 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447"},indexing:{disableName:"\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u043D\u0434\u0435\u043A\u0441\u0430\u0446\u0438\u044E \u0437\u0430\u043C\u0435\u0442\u043E\u043A",disableDesc:"\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u0438\u043D\u0434\u0435\u043A\u0441\u0430\u0446\u0438\u044E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u0434\u043B\u044F \u043B\u0443\u0447\u0448\u0435\u0439 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438"},suggestions:{debounceName:"\u0417\u0430\u0434\u0435\u0440\u0436\u043A\u0430 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439",debounceDesc:"\u0417\u0430\u0434\u0435\u0440\u0436\u043A\u0430 \u0432 \u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u0430\u0445 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u043A\u0430\u0437\u043E\u043C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439"},timeTracking:{autoStopName:"\u0410\u0432\u0442\u043E\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0430 \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u0438",autoStopDesc:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0442\u044C \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u0440\u0438 \u043E\u0442\u043C\u0435\u0442\u043A\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043A\u0430\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u043E\u0439",stopNotificationName:"\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u043E\u0431 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0435 \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u0438",stopNotificationDesc:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0435 \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u0438"},recurring:{maintainOffsetName:"\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435 \u0441\u0440\u043E\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0432 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0430\u0445",maintainOffsetDesc:"\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435 \u043C\u0435\u0436\u0434\u0443 \u0441\u0440\u043E\u043A\u043E\u043C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u043E\u0439 \u043F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0437\u0430\u0434\u0430\u0447",resetCheckboxesName:"\u0421\u0431\u0440\u0430\u0441\u044B\u0432\u0430\u0442\u044C \u0444\u043B\u0430\u0436\u043A\u0438 \u043F\u0440\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0438",resetCheckboxesDesc:"\u0421\u0431\u0440\u0430\u0441\u044B\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0444\u043B\u0430\u0436\u043A\u0438 markdown \u0432 \u0442\u0435\u043B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0433\u0434\u0430 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0430\u044F\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430 \u0438 \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0435\u043D\u0430"},timeblocking:{header:"\u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0431\u043B\u043E\u043A\u043E\u0432 \u0434\u043B\u044F \u043B\u0435\u0433\u043A\u043E\u0433\u043E \u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0432 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043A\u0430\u0445. \u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u0434\u043B\u044F \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u0439 - \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 'Timeblock' \u0438\u0437 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u043D\u043E\u0433\u043E \u043C\u0435\u043D\u044E.",enableName:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0443 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",enableDesc:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0431\u043B\u043E\u043A\u043E\u0432 \u0434\u043B\u044F \u043B\u0435\u0433\u043A\u043E\u0433\u043E \u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0432 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043A\u0430\u0445. \u041A\u043E\u0433\u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u043E\u043F\u0446\u0438\u044F 'Timeblock' \u043F\u043E\u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0432 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u043D\u043E\u043C \u043C\u0435\u043D\u044E \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F.",showBlocksName:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0431\u043B\u043E\u043A\u0438",showBlocksDesc:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0431\u043B\u043E\u043A\u0438 \u0438\u0437 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",defaultColorName:"\u0426\u0432\u0435\u0442 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0431\u043B\u043E\u043A\u043E\u0432 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",defaultColorDesc:"\u0426\u0432\u0435\u0442 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u043F\u0440\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0438 \u043D\u043E\u0432\u044B\u0445 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0431\u043B\u043E\u043A\u043E\u0432",usage:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435: \u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0432 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0435 \u0434\u043B\u044F \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u0439. \u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 'Timeblock' \u0438\u0437 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u043D\u043E\u0433\u043E \u043C\u0435\u043D\u044E (\u0432\u0438\u0434\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u043A\u043E\u0433\u0434\u0430 \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430). \u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0431\u043B\u043E\u043A\u043E\u0432. \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u0435 \u0440\u0430\u0437\u043C\u0435\u0440 \u043A\u0440\u0430\u0435\u0432 \u0434\u043B\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438."},performance:{header:"\u041F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0438 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u043F\u043B\u0430\u0433\u0438\u043D\u0430 \u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F."},timeTrackingSection:{header:"\u041E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u0438."},recurringSection:{header:"\u041F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u043C\u0438\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438."},debugLogging:{header:"\u041E\u0442\u043B\u0430\u0434\u043E\u0447\u043D\u043E\u0435 \u0436\u0443\u0440\u043D\u0430\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0432\u044B\u0432\u043E\u0434 \u043E\u0442\u043B\u0430\u0434\u043E\u0447\u043D\u043E\u0433\u043E \u043B\u043E\u0433\u0430 \u0434\u043B\u044F \u0443\u0441\u0442\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u043D\u0435\u043F\u043E\u043B\u0430\u0434\u043E\u043A.",enableName:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043E\u0442\u043B\u0430\u0434\u043E\u0447\u043D\u043E\u0435 \u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0436\u0443\u0440\u043D\u0430\u043B\u0430",enableDesc:"\u0417\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u0443\u044E \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0443 \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0432 \u043A\u043E\u043D\u0441\u043E\u043B\u044C \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0430. \u041F\u043E\u043B\u0435\u0437\u043D\u043E \u0434\u043B\u044F \u0443\u0441\u0442\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u043D\u0435\u043F\u043E\u043B\u0430\u0434\u043E\u043A."}},defaults:{header:{basicDefaults:"\u041E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",dateDefaults:"\u0414\u0430\u0442\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",defaultReminders:"\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",bodyTemplate:"\u0428\u0430\u0431\u043B\u043E\u043D \u0442\u0435\u043B\u0430",instantTaskConversion:"\u041C\u0433\u043D\u043E\u0432\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447"},description:{basicDefaults:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447, \u0447\u0442\u043E\u0431\u044B \u0443\u0441\u043A\u043E\u0440\u0438\u0442\u044C \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447.",dateDefaults:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u0441\u0440\u043E\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0434\u0430\u0442\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447.",defaultReminders:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u043A \u043D\u043E\u0432\u044B\u043C \u0437\u0430\u0434\u0430\u0447\u0430\u043C.",bodyTemplate:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0444\u0430\u0439\u043B \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0432 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u043C \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447.",instantTaskConversion:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u043C\u0433\u043D\u043E\u0432\u0435\u043D\u043D\u043E\u043C \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0438 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u0437\u0430\u0434\u0430\u0447\u0438."},basicDefaults:{defaultStatus:{name:"\u0421\u0442\u0430\u0442\u0443\u0441 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0421\u0442\u0430\u0442\u0443\u0441 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447"},defaultPriority:{name:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447"},defaultContexts:{name:"\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0421\u043F\u0438\u0441\u043E\u043A \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u043E\u0432 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, @\u0434\u043E\u043C, @\u0440\u0430\u0431\u043E\u0442\u0430)",placeholder:"@\u0434\u043E\u043C, @\u0440\u0430\u0431\u043E\u0442\u0430"},defaultTags:{name:"\u0422\u0435\u0433\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0421\u043F\u0438\u0441\u043E\u043A \u0442\u0435\u0433\u043E\u0432 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E (\u0431\u0435\u0437 #)",placeholder:"\u0432\u0430\u0436\u043D\u044B\u0439, \u0441\u0440\u043E\u0447\u043D\u044B\u0439"},defaultProjects:{name:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0421\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447",selectButton:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442\u044B",selectTooltip:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432 \u0434\u043B\u044F \u0441\u0432\u044F\u0437\u044B\u0432\u0430\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",removeTooltip:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C {name} \u0438\u0437 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E"},useParentNoteForTaskCreation:{name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0430\u043A\u0442\u0438\u0432\u043D\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u043A\u0430\u043A \u043F\u0440\u043E\u0435\u043A\u0442 \u0434\u043B\u044F \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u0432\u044F\u0437\u044B\u0432\u0430\u0442\u044C \u0430\u043A\u0442\u0438\u0432\u043D\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u043A\u0430\u043A \u043F\u0440\u043E\u0435\u043A\u0442 \u043F\u0440\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437 \u043F\u0430\u043B\u0438\u0442\u0440\u044B \u043A\u043E\u043C\u0430\u043D\u0434 \u0438\u043B\u0438 \u043B\u0435\u043D\u0442\u044B"},useParentNoteAsProject:{name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u043A\u0430\u043A \u043F\u0440\u043E\u0435\u043A\u0442 \u0434\u043B\u044F \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0438 \u043C\u0433\u043D\u043E\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u0432\u044F\u0437\u044B\u0432\u0430\u0442\u044C \u0438\u0441\u0445\u043E\u0434\u043D\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u043A\u0430\u043A \u043F\u0440\u043E\u0435\u043A\u0442 \u043F\u0440\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0438 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447 \u0438\u043B\u0438 \u043C\u0433\u043D\u043E\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F"},useParentHeaderAsProject:{name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u043A\u0430\u043A \u043F\u0440\u043E\u0435\u043A\u0442 \u043F\u0440\u0438 \u043C\u0433\u043D\u043E\u0432\u0435\u043D\u043D\u043E\u043C \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0438",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u0432\u044F\u0437\u044B\u0432\u0430\u0442\u044C \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0438\u0439 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u043D\u0430\u0434 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0435\u043C\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439 \u043A\u0430\u043A \u043F\u0440\u043E\u0435\u043A\u0442 \u043F\u0440\u0438 \u043C\u0433\u043D\u043E\u0432\u0435\u043D\u043D\u043E\u043C \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438"},defaultTimeEstimate:{name:"\u041E\u0446\u0435\u043D\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u041E\u0446\u0435\u043D\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432 \u043C\u0438\u043D\u0443\u0442\u0430\u0445 (0 = \u0431\u0435\u0437 \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044F)",placeholder:"60"},defaultRecurrence:{name:"\u041F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0428\u0430\u0431\u043B\u043E\u043D \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447"}},dateDefaults:{defaultDueDate:{name:"\u0421\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0421\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447"},defaultScheduledDate:{name:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447"}},reminders:{addReminder:{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u043E\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u043A\u043E \u0432\u0441\u0435\u043C \u043D\u043E\u0432\u044B\u043C \u0437\u0430\u0434\u0430\u0447\u0430\u043C",buttonText:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435"},emptyState:"\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u044B. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445.",emptyStateButton:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435",reminderDescription:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F",unnamedReminder:"\u0411\u0435\u0437\u044B\u043C\u044F\u043D\u043D\u043E\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435",deleteTooltip:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435",fields:{description:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435:",type:"\u0422\u0438\u043F:",offset:"\u0421\u043C\u0435\u0449\u0435\u043D\u0438\u0435:",unit:"\u0415\u0434\u0438\u043D\u0438\u0446\u0430:",direction:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435:",relatedTo:"\u041E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E:",date:"\u0414\u0430\u0442\u0430:",time:"\u0412\u0440\u0435\u043C\u044F:"},types:{relative:"\u041E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 (\u0434\u043E/\u043F\u043E\u0441\u043B\u0435 \u0434\u0430\u0442 \u0437\u0430\u0434\u0430\u0447)",absolute:"\u0410\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u043E\u0435 (\u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u0430\u044F \u0434\u0430\u0442\u0430/\u0432\u0440\u0435\u043C\u044F)"},units:{minutes:"\u043C\u0438\u043D\u0443\u0442\u044B",hours:"\u0447\u0430\u0441\u044B",days:"\u0434\u043D\u0438"},directions:{before:"\u0434\u043E",after:"\u043F\u043E\u0441\u043B\u0435"},relatedTo:{due:"\u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",scheduled:"\u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430"}},bodyTemplate:{useBodyTemplate:{name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D \u0442\u0435\u043B\u0430",description:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0444\u0430\u0439\u043B \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0434\u043B\u044F \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0442\u0435\u043B\u0430 \u0437\u0430\u0434\u0430\u0447\u0438"},bodyTemplateFile:{name:"\u0424\u0430\u0439\u043B \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0442\u0435\u043B\u0430",description:"\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0434\u043B\u044F \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0442\u0435\u043B\u0430 \u0437\u0430\u0434\u0430\u0447\u0438. \u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0448\u0430\u0431\u043B\u043E\u043D\u0430, \u0442\u0430\u043A\u0438\u0435 \u043A\u0430\u043A {{title}}, {{date}}, {{time}}, {{priority}}, {{status}} \u0438 \u0442.\u0434.",placeholder:"\u0428\u0430\u0431\u043B\u043E\u043D\u044B/\u0428\u0430\u0431\u043B\u043E\u043D \u0437\u0430\u0434\u0430\u0447\u0438.md",ariaLabel:"\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0442\u0435\u043B\u0430"},useOccurrenceBodyTemplate:{name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0430",description:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043D\u044B\u0439 \u0448\u0430\u0431\u043B\u043E\u043D \u0434\u043B\u044F \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u043E\u0432, \u043A\u043E\u0433\u0434\u0430 \u0443 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0435\u0439\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435\u0442 occurrence_template"},occurrenceBodyTemplateFile:{name:"\u0424\u0430\u0439\u043B \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0430",description:"\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0434\u043B\u044F \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u043E\u0432. \u041F\u043E\u043B\u0435 occurrence_template \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0435\u0439\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043C\u0435\u0435\u0442 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u043D\u0430\u0434 \u044D\u0442\u0438\u043C \u0440\u0435\u0437\u0435\u0440\u0432\u043D\u044B\u043C \u0448\u0430\u0431\u043B\u043E\u043D\u043E\u043C.",placeholder:"\u0428\u0430\u0431\u043B\u043E\u043D\u044B/\u0428\u0430\u0431\u043B\u043E\u043D \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0430.md",ariaLabel:"\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0430"},variablesHeader:"\u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0448\u0430\u0431\u043B\u043E\u043D\u0430:",variables:{title:"{{title}} - \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",details:"{{details}} - \u0414\u0435\u0442\u0430\u043B\u0438, \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u0438\u0437 \u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u043E\u043A\u043D\u0430",date:"{{date}} - \u0422\u0435\u043A\u0443\u0449\u0430\u044F \u0434\u0430\u0442\u0430 (\u0413\u0413\u0413\u0413-\u041C\u041C-\u0414\u0414)",time:"{{time}} - \u0422\u0435\u043A\u0443\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F (\u0427\u0427:\u041C\u041C)",priority:"{{priority}} - \u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0438",status:"{{status}} - \u0421\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u0434\u0430\u0447\u0438",contexts:"{{contexts}} - \u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B \u0437\u0430\u0434\u0430\u0447\u0438",tags:"{{tags}} - \u0422\u0435\u0433\u0438 \u0437\u0430\u0434\u0430\u0447\u0438",projects:"{{projects}} - \u041F\u0440\u043E\u0435\u043A\u0442\u044B \u0437\u0430\u0434\u0430\u0447\u0438"}},instantConversion:{useDefaultsOnInstantConvert:{name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043F\u0440\u0438 \u043C\u0433\u043D\u043E\u0432\u0435\u043D\u043D\u043E\u043C \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0438",description:"\u041F\u0440\u0438\u043C\u0435\u043D\u044F\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430\u0434\u0430\u0447 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043F\u0440\u0438 \u043C\u0433\u043D\u043E\u0432\u0435\u043D\u043D\u043E\u043C \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0438 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u0437\u0430\u0434\u0430\u0447\u0438"}},options:{noDefault:"\u0411\u0435\u0437 \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044F",none:"\u041D\u0435\u0442",today:"\u0421\u0435\u0433\u043E\u0434\u043D\u044F",tomorrow:"\u0417\u0430\u0432\u0442\u0440\u0430",nextWeek:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u043D\u0435\u0434\u0435\u043B\u044F",daily:"\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E",weekly:"\u0415\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E",monthly:"\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E",yearly:"\u0415\u0436\u0435\u0433\u043E\u0434\u043D\u043E"}},general:{taskStorage:{header:"\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u0437\u0430\u0434\u0430\u0447",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435, \u0433\u0434\u0435 \u0445\u0440\u0430\u043D\u044F\u0442\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u043A\u0430\u043A \u043E\u043D\u0438 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044E\u0442\u0441\u044F.",defaultFolder:{name:"\u041F\u0430\u043F\u043A\u0430 \u0437\u0430\u0434\u0430\u0447 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0420\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447. \u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0448\u0430\u0431\u043B\u043E\u043D\u043E\u0432 \u043F\u0430\u043F\u043E\u043A, \u0442\u0430\u043A\u0438\u0435 \u043A\u0430\u043A {{currentNotePath}}, {{currentNoteTitle}} \u0438 {{projectFilePath}}, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0442\u043E\u043A\u0435\u043D\u044B \u0434\u0430\u0442 \u0432 \u0441\u0442\u0438\u043B\u0435 Daily Notes, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 YYYY/MM/DD."},moveArchived:{name:"\u041F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u0442\u044C \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043F\u0430\u043F\u043A\u0443",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u0442\u044C \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043F\u0430\u043F\u043A\u0443 \u0430\u0440\u0445\u0438\u0432\u0430"},archiveFolder:{name:"\u041F\u0430\u043F\u043A\u0430 \u0430\u0440\u0445\u0438\u0432\u0430",description:"\u041F\u0430\u043F\u043A\u0430 \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u0438 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438"}},taskIdentification:{header:"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F \u0437\u0430\u0434\u0430\u0447",description:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u043A\u0430\u043A TaskNotes \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043A\u0430\u043A \u0437\u0430\u0434\u0430\u0447\u0438.",identifyBy:{name:"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E",description:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u0442\u0435\u0433\u0443 \u0438\u043B\u0438 \u043F\u043E \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0443 frontmatter",options:{tag:"\u0422\u0435\u0433",property:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u043E"}},taskTag:{name:"\u0422\u0435\u0433 \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u0422\u0435\u0433, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043A\u0430\u043A \u0437\u0430\u0434\u0430\u0447\u0438 (\u0431\u0435\u0437 #). \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439 .base \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u044E\u0442 \u0441\u0442\u0430\u0440\u044B\u0439 \u0442\u0435\u0433 \u043F\u043E\u0441\u043B\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F; \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u044B Base \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438\u043B\u0438 \u043E\u0442\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u044D\u0442\u0438 \u0444\u0438\u043B\u044C\u0442\u0440\u044B."},hideIdentifyingTags:{name:"\u0421\u043A\u0440\u044B\u0442\u044C \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0435 \u0442\u0435\u0433\u0438 \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430\u0445 \u0437\u0430\u0434\u0430\u0447",description:"\u041F\u0440\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438 \u0442\u0435\u0433\u0438, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0442\u0435\u0433\u0443 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0432\u043A\u043B\u044E\u0447\u0430\u044F \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u044F, \u0442\u0430\u043A\u0438\u0435 \u043A\u0430\u043A 'task/project'), \u0431\u0443\u0434\u0443\u0442 \u0441\u043A\u0440\u044B\u0442\u044B \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430\u0445 \u0437\u0430\u0434\u0430\u0447"},hideIdentifyingTagsMode:{name:"\u041E\u0431\u043B\u0430\u0441\u0442\u044C \u0441\u043A\u0440\u044B\u0442\u0438\u044F \u0442\u0435\u0433\u043E\u0432",description:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u0441\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043B\u0438 \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u043C\u0438 \u0442\u0435\u0433\u0430\u043C\u0438 \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0442\u0435\u0433\u0438.",options:{all:"\u0422\u0435\u0433 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0442\u0435\u0433\u0438",exactOnly:"\u0422\u043E\u043B\u044C\u043A\u043E \u0442\u043E\u0447\u043D\u044B\u0439 \u0442\u0435\u0433 \u0437\u0430\u0434\u0430\u0447\u0438"}},taskProperty:{name:"\u0418\u043C\u044F \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0437\u0430\u0434\u0430\u0447\u0438",description:'\u0418\u043C\u044F \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 frontmatter (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F")'},taskPropertyValue:{name:"\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0437\u0430\u0434\u0430\u0447\u0438",description:'\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u043A\u0430\u043A \u0437\u0430\u0434\u0430\u0447\u0443 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "\u0437\u0430\u0434\u0430\u0447\u0430")'}},folderManagement:{header:"\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0430\u043F\u043A\u0430\u043C\u0438",excludedFolders:{name:"\u0418\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0435 \u043F\u0430\u043F\u043A\u0438",description:"\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u0430\u043F\u043E\u043A \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E \u0434\u043B\u044F \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F \u0438\u0437 \u0438\u043D\u0434\u0435\u043A\u0441\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447 \u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432"}},frontmatter:{header:"Frontmatter",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0441\u0441\u044B\u043B\u043E\u043A \u0432 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430\u0445 frontmatter.",useMarkdownLinks:{name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0438 markdown \u0432\u043E frontmatter",description:"\u0413\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0438 markdown ([\u0442\u0435\u043A\u0441\u0442](\u043F\u0443\u0442\u044C)) \u0432\u043C\u0435\u0441\u0442\u043E \u0432\u0438\u043A\u0438\u0441\u0441\u044B\u043B\u043E\u043A ([[\u0441\u0441\u044B\u043B\u043A\u0430]]) \u0432 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430\u0445 frontmatter.\\n\\n\u26A0\uFE0F \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u043F\u043B\u0430\u0433\u0438\u043D 'obsidian-frontmatter-markdown-links' \u0434\u043B\u044F \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u043E\u0439 \u0440\u0430\u0431\u043E\u0442\u044B."}},taskInteraction:{header:"\u0412\u0437\u0430\u0438\u043C\u043E\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0438.",singleClick:{name:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043E\u0434\u0438\u043D\u043E\u0447\u043D\u043E\u0433\u043E \u043D\u0430\u0436\u0430\u0442\u0438\u044F",description:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u043C\u043E\u0435 \u043F\u0440\u0438 \u043E\u0434\u0438\u043D\u043E\u0447\u043D\u043E\u043C \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043D\u0430 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0443 \u0437\u0430\u0434\u0430\u0447\u0438"},doubleClick:{name:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0434\u0432\u043E\u0439\u043D\u043E\u0433\u043E \u043D\u0430\u0436\u0430\u0442\u0438\u044F",description:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u043C\u043E\u0435 \u043F\u0440\u0438 \u0434\u0432\u043E\u0439\u043D\u043E\u043C \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043D\u0430 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0443 \u0437\u0430\u0434\u0430\u0447\u0438"},actions:{edit:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",openNote:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0443",none:"\u041D\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F"}},releaseNotes:{header:"\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u044F \u043A \u0432\u044B\u043F\u0443\u0441\u043A\u0443",description:"\u0422\u0435\u043A\u0443\u0449\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F: {version}",showOnUpdate:{name:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u044F \u043A \u0432\u044B\u043F\u0443\u0441\u043A\u0443 \u043F\u043E\u0441\u043B\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u044F \u043A \u0432\u044B\u043F\u0443\u0441\u043A\u0443 \u043F\u0440\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0438 TaskNotes \u0434\u043E \u043D\u043E\u0432\u043E\u0439 \u0432\u0435\u0440\u0441\u0438\u0438"},checkForUpdates:{name:"\u041F\u0440\u043E\u0432\u0435\u0440\u044F\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u0432\u044B\u043F\u0443\u0441\u043A\u0438 \u043F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435",description:"\u041F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u0442 GitHub \u043E\u0434\u0438\u043D \u0440\u0430\u0437 \u043F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435 TaskNotes \u0438 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435, \u0435\u0441\u043B\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0431\u043E\u043B\u0435\u0435 \u043D\u043E\u0432\u044B\u0439 \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u044B\u0439 \u0432\u044B\u043F\u0443\u0441\u043A"},viewButton:{name:"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u044F \u043A \u0432\u044B\u043F\u0443\u0441\u043A\u0443",description:"\u0423\u0437\u043D\u0430\u0439\u0442\u0435, \u0447\u0442\u043E \u043D\u043E\u0432\u043E\u0433\u043E \u0432 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 TaskNotes",buttonText:"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u044F \u043A \u0432\u044B\u043F\u0443\u0441\u043A\u0443"}}},taskProperties:{sections:{coreProperties:"\u041E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430",corePropertiesDesc:"\u0421\u0442\u0430\u0442\u0443\u0441 \u0438 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u2014 \u044D\u0442\u043E \u043E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430, \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u044E\u0449\u0438\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0438 \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438.",dateProperties:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0434\u0430\u0442",datePropertiesDesc:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0441\u0440\u043E\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0434\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447.",organizationProperties:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438",organizationPropertiesDesc:"\u041E\u0440\u0433\u0430\u043D\u0438\u0437\u0443\u0439\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u043E\u0432, \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432 \u0438 \u0442\u0435\u0433\u043E\u0432.",taskDetails:"\u0414\u0435\u0442\u0430\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0438",taskDetailsDesc:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0434\u0435\u0442\u0430\u043B\u0438: \u043E\u0446\u0435\u043D\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438, \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u044F \u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F.",metadataProperties:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445",metadataPropertiesDesc:"\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0435 \u0441\u0438\u0441\u0442\u0435\u043C\u043E\u0439 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0434\u043B\u044F \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447.",featureProperties:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u0439",featurePropertiesDesc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0435 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u043C\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u044F\u043C\u0438 TaskNotes, \u0442\u0430\u043A\u0438\u043C\u0438 \u043A\u0430\u043A \u0442\u0430\u0439\u043C\u0435\u0440 \u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u0438 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F."},propertyCard:{propertyKey:"\u041A\u043B\u044E\u0447 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430:",default:"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E:",nlpTrigger:"NLP-\u0442\u0440\u0438\u0433\u0433\u0435\u0440:",triggerChar:"\u0421\u0438\u043C\u0432\u043E\u043B-\u0442\u0440\u0438\u0433\u0433\u0435\u0440:",triggerEmpty:"\u0422\u0440\u0438\u0433\u0433\u0435\u0440 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u0443\u0441\u0442\u044B\u043C",triggerTooLong:"\u0422\u0440\u0438\u0433\u0433\u0435\u0440 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0434\u043B\u0438\u043D\u043D\u044B\u0439 (\u043C\u0430\u043A\u0441. 10 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432)"},properties:{status:{name:"\u0421\u0442\u0430\u0442\u0443\u0441",description:"\u041E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, todo, \u0432 \u0440\u0430\u0431\u043E\u0442\u0435, \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E). \u0421\u0442\u0430\u0442\u0443\u0441 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u043A\u0430\u043A \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u0430\u044F, \u0438 \u043C\u043E\u0436\u0435\u0442 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0442\u044C \u0430\u0432\u0442\u043E\u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044E."},priority:{name:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442",description:"\u0423\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u0438 \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u0438. \u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u043F\u043E \u0430\u043B\u0444\u0430\u0432\u0438\u0442\u0443 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 Bases, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043F\u0440\u0435\u0444\u0438\u043A\u0441\u044B 1-, 2- \u0434\u043B\u044F \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u0440\u044F\u0434\u043A\u043E\u043C."},due:{name:"\u0421\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",description:"\u041A\u0440\u0430\u0439\u043D\u0438\u0439 \u0441\u0440\u043E\u043A, \u043A \u043A\u043E\u0442\u043E\u0440\u043E\u043C\u0443 \u0437\u0430\u0434\u0430\u0447\u0430 \u0434\u043E\u043B\u0436\u043D\u0430 \u0431\u044B\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0430. \u0417\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u0441\u043B\u0435 \u0441\u0440\u043E\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u043A\u0430\u043A \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043D\u044B\u0435. \u0425\u0440\u0430\u043D\u0438\u0442\u0441\u044F \u043A\u0430\u043A \u0434\u0430\u0442\u0430 \u0432 frontmatter."},scheduled:{name:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430",description:"\u041A\u043E\u0433\u0434\u0430 \u0432\u044B \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u0442\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u043D\u0430\u0434 \u0437\u0430\u0434\u0430\u0447\u0435\u0439. \u0412 \u043E\u0442\u043B\u0438\u0447\u0438\u0435 \u043E\u0442 \u0441\u0440\u043E\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F, \u044D\u0442\u043E \u0432\u0440\u0435\u043C\u044F \u043D\u0430\u0447\u0430\u043B\u0430 \u0440\u0430\u0431\u043E\u0442\u044B. \u0417\u0430\u0434\u0430\u0447\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442\u0441\u044F \u0432 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0435 \u0432 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443/\u0432\u0440\u0435\u043C\u044F."},contexts:{name:"\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B",description:"\u041C\u0435\u0441\u0442\u0430 \u0438\u043B\u0438 \u0443\u0441\u043B\u043E\u0432\u0438\u044F, \u0433\u0434\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0430 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, @\u0434\u043E\u043C, @\u043E\u0444\u0438\u0441, @\u0442\u0435\u043B\u0435\u0444\u043E\u043D). \u041F\u043E\u043B\u0435\u0437\u043D\u043E \u0434\u043B\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447 \u043F\u043E \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438. \u0425\u0440\u0430\u043D\u0438\u0442\u0441\u044F \u043A\u0430\u043A \u0441\u043F\u0438\u0441\u043E\u043A."},projects:{name:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B",description:"\u0421\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432, \u043A \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u043F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\u0436\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0430. \u0425\u0440\u0430\u043D\u0438\u0442\u0441\u044F \u043A\u0430\u043A \u0432\u0438\u043A\u0438\u0441\u0441\u044B\u043B\u043A\u0438 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, [[\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u0430]]). \u0417\u0430\u0434\u0430\u0447\u0438 \u043C\u043E\u0433\u0443\u0442 \u043F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\u0436\u0430\u0442\u044C \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u043C \u043F\u0440\u043E\u0435\u043A\u0442\u0430\u043C."},tags:{name:"\u0422\u0435\u0433\u0438",description:"\u041D\u0430\u0442\u0438\u0432\u043D\u044B\u0435 \u0442\u0435\u0433\u0438 Obsidian \u0434\u043B\u044F \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447. \u0425\u0440\u0430\u043D\u044F\u0442\u0441\u044F \u0432 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0435 tags frontmatter \u0438 \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442 \u0441 \u0444\u0443\u043D\u043A\u0446\u0438\u044F\u043C\u0438 \u0442\u0435\u0433\u043E\u0432 Obsidian."},timeEstimate:{name:"\u041E\u0446\u0435\u043D\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",description:"\u041F\u0440\u0435\u0434\u043F\u043E\u043B\u0430\u0433\u0430\u0435\u043C\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043C\u0438\u043D\u0443\u0442 \u0434\u043B\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0438 \u043D\u0430\u0433\u0440\u0443\u0437\u043A\u0438. \u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043D\u0430 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430\u0445 \u0437\u0430\u0434\u0430\u0447 \u0438 \u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0445 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F."},recurrence:{name:"\u041F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",description:"\u0428\u0430\u0431\u043B\u043E\u043D \u0434\u043B\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0437\u0430\u0434\u0430\u0447 (\u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E, \u0435\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E, \u0435\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E, \u0435\u0436\u0435\u0433\u043E\u0434\u043D\u043E \u0438\u043B\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 RRULE). \u041F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0435\u0439\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435."},recurrenceAnchor:{name:"\u042F\u043A\u043E\u0440\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u044F",description:"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0441\u043F\u043E\u0441\u043E\u0431 \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F: 'scheduled' \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443, 'completion' \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u0434\u0430\u0442\u0443 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F."},reminders:{name:"\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F",description:"\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F, \u0441\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0449\u0438\u0435 \u043F\u0435\u0440\u0435\u0434 \u0441\u0440\u043E\u043A\u0430\u043C\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0438\u043B\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0434\u0430\u0442\u0430\u043C\u0438. \u0425\u0440\u0430\u043D\u0438\u0442\u0441\u044F \u043A\u0430\u043A \u0441\u043F\u0438\u0441\u043E\u043A \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0439 \u0441 \u0432\u0440\u0435\u043C\u0435\u043D\u0435\u043C \u0438 \u043E\u043F\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u043C \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u043C."},title:{name:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A",description:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u041C\u043E\u0436\u0435\u0442 \u0445\u0440\u0430\u043D\u0438\u0442\u044C\u0441\u044F \u0432 frontmatter \u0438\u043B\u0438 \u0432 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430 (\u043A\u043E\u0433\u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \xAB\u0425\u0440\u0430\u043D\u0438\u0442\u044C \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0432 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430\xBB)."},dateCreated:{name:"\u0414\u0430\u0442\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F",description:"\u041C\u0435\u0442\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438. \u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u043F\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0443 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F."},dateModified:{name:"\u0414\u0430\u0442\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",description:"\u041C\u0435\u0442\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438. \u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u043B\u044E\u0431\u043E\u0433\u043E \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0437\u0430\u0434\u0430\u0447\u0438."},completedDate:{name:"\u0414\u0430\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F",description:"\u041C\u0435\u0442\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438, \u043A\u043E\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u044B\u043B\u0430 \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u0430 \u043A\u0430\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u0430\u044F. \u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u043D\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435."},archiveTag:{name:"\u0422\u0435\u0433 \u0430\u0440\u0445\u0438\u0432\u0430",description:"\u0422\u0435\u0433, \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0439 \u043A \u0437\u0430\u0434\u0430\u0447\u0430\u043C \u043F\u0440\u0438 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u0438 \u043C\u043E\u0436\u0435\u0442 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0442\u044C \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 \u043F\u0430\u043F\u043A\u0443 \u0430\u0440\u0445\u0438\u0432\u0430."},timeEntries:{name:"\u0417\u0430\u043F\u0438\u0441\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",description:"\u0417\u0430\u043F\u0438\u0441\u0438 \u0441\u0435\u0430\u043D\u0441\u043E\u0432 \u0443\u0447\u0451\u0442\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0434\u043B\u044F \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u041A\u0430\u0436\u0434\u0430\u044F \u0437\u0430\u043F\u0438\u0441\u044C \u0445\u0440\u0430\u043D\u0438\u0442 \u043C\u0435\u0442\u043A\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043D\u0430\u0447\u0430\u043B\u0430 \u0438 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u043E\u0431\u0449\u0435\u0433\u043E \u0437\u0430\u0442\u0440\u0430\u0447\u0435\u043D\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438."},completeInstances:{name:"\u0417\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u044B",description:"\u0418\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0437\u0430\u0434\u0430\u0447. \u0425\u0440\u0430\u043D\u0438\u0442 \u0434\u0430\u0442\u044B \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0430 \u0434\u043B\u044F \u043F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0449\u0435\u043D\u0438\u044F \u0434\u0443\u0431\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F."},skippedInstances:{name:"\u041F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043D\u044B\u0435 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u044B",description:"\u041F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043D\u044B\u0435 \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0437\u0430\u0434\u0430\u0447. \u0425\u0440\u0430\u043D\u0438\u0442 \u0434\u0430\u0442\u044B \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u044B\u043B\u0438 \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u044B, \u0430 \u043D\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u044B."},blockedBy:{name:"\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0430",description:"\u0421\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u044B \u0434\u043E \u044D\u0442\u043E\u0439. \u0425\u0440\u0430\u043D\u0438\u0442\u0441\u044F \u043A\u0430\u043A \u0432\u0438\u043A\u0438\u0441\u0441\u044B\u043B\u043A\u0438. \u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442 \u0432\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440."},sortOrder:{name:"\u0420\u0443\u0447\u043D\u043E\u0439 \u043F\u043E\u0440\u044F\u0434\u043E\u043A",description:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u043E frontmatter, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0435 \u0434\u043B\u044F \u0440\u0443\u0447\u043D\u043E\u0439 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u0435\u043C. \u0414\u043B\u044F \u0440\u0430\u0431\u043E\u0442\u044B \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043E\u0442\u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u043F\u043E \u044D\u0442\u043E\u043C\u0443 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0443."},pomodoros:{name:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",description:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0445 \u0441\u0435\u0430\u043D\u0441\u043E\u0432 \u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E. \u041A\u043E\u0433\u0434\u0430 \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u043D\u0430 \xAB\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438\xBB, \u044D\u0442\u043E \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0432 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u0432\u043C\u0435\u0441\u0442\u043E \u0444\u0430\u0439\u043B\u043E\u0432 \u0437\u0430\u0434\u0430\u0447."},icsEventId:{name:"ID \u0441\u043E\u0431\u044B\u0442\u0438\u044F ICS",description:"\u0423\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440, \u0441\u0432\u044F\u0437\u044B\u0432\u0430\u044E\u0449\u0438\u0439 \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0441 \u0441\u043E\u0431\u044B\u0442\u0438\u0435\u043C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F ICS. \u0414\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0440\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0438 \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u0438\u0437 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F."},icsEventTag:{name:"\u0422\u0435\u0433 \u0441\u043E\u0431\u044B\u0442\u0438\u044F ICS",description:"\u0422\u0435\u0433, \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044E\u0449\u0438\u0439 \u0437\u0430\u043C\u0435\u0442\u043A\u0438, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0435 \u0438\u0437 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F ICS. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u043E\u0442\u043B\u0438\u0447\u0438\u044F \u0437\u0430\u043C\u0435\u0442\u043E\u043A, \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C, \u043E\u0442 \u043E\u0431\u044B\u0447\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447."}},statusCard:{valuesHeader:"\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0441\u0442\u0430\u0442\u0443\u0441\u0430"},priorityCard:{valuesHeader:"\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u0430"},projectsCard:{defaultProjects:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E:",useParentNoteForTaskCreation:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0430\u043A\u0442\u0438\u0432\u043D\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0434\u043B\u044F \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447:",useParentNoteForInlineTasks:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0434\u043B\u044F \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E/\u043C\u0433\u043D\u043E\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F:",useParentHeader:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u043A\u0430\u043A \u043F\u0440\u043E\u0435\u043A\u0442:",inheritParentTaskProperties:"\u041D\u0430\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u044C \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043B\u044F \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447:",noDefaultProjects:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u044B",autosuggestFilters:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A",customizeDisplay:"\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435",filtersOn:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B"},titleCard:{storeTitleInFilename:"\u0425\u0440\u0430\u043D\u0438\u0442\u044C \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0432 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430:",storedInFilename:"\u0425\u0440\u0430\u043D\u0438\u0442\u0441\u044F \u0432 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430",filenameUpdatesWithTitle:"\u0418\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438.",filenameFormat:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430:",customTemplate:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0448\u0430\u0431\u043B\u043E\u043D:",legacySyntaxWarning:"\u0421\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441 \u0441 \u043E\u0434\u0438\u043D\u0430\u0440\u043D\u044B\u043C\u0438 \u0444\u0438\u0433\u0443\u0440\u043D\u044B\u043C\u0438 \u0441\u043A\u043E\u0431\u043A\u0430\u043C\u0438, \u0442\u0430\u043A\u043E\u0439 \u043A\u0430\u043A {title}, \u0443\u0441\u0442\u0430\u0440\u0435\u043B. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441 \u0441 \u0434\u0432\u043E\u0439\u043D\u044B\u043C\u0438 \u0444\u0438\u0433\u0443\u0440\u043D\u044B\u043C\u0438 \u0441\u043A\u043E\u0431\u043A\u0430\u043C\u0438 {{title}} \u0434\u043B\u044F \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u043D\u043E\u0441\u0442\u0438 \u0441 \u0448\u0430\u0431\u043B\u043E\u043D\u0430\u043C\u0438 \u0442\u0435\u043B\u0430.",occurrenceFilenameTemplate:"\u0428\u0430\u0431\u043B\u043E\u043D \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0430",occurrenceFilenameTemplateHelp:"\u0428\u0430\u0431\u043B\u043E\u043D \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430 \u0434\u043B\u044F \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u043E\u0432 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0437\u0430\u0434\u0430\u0447. \u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u043E\u043B\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0435 \u0438\u043C\u044F (\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0447\u0438\u0441\u043B\u043E\u0432\u044B\u043C \u0441\u0443\u0444\u0444\u0438\u043A\u0441\u043E\u043C). \u042F\u0432\u043D\u043E \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0435\u0442\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044E \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E {{occurrenceDate}}, {{occurrenceWeek}}, {{occurrenceMonth}}, {{occurrenceYear}} \u0438\u043B\u0438 {{occurrenceMonthName}}. \u0422\u0430\u043A\u0436\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0432\u0441\u0435 \u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430. \u0420\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D \u0447\u0435\u0440\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0435 \u043D\u0438\u0436\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E frontmatter.",occurrenceFilenameProperty:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0430",occurrenceFilenamePropertyHelp:"\u0418\u043C\u044F \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 frontmatter \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0439 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0435\u0439\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0448\u0430\u0431\u043B\u043E\u043D \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430 \u0435\u0451 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u043E\u0432."},tagsCard:{nativeObsidianTags:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0435 \u0442\u0435\u0433\u0438 Obsidian"},remindersCard:{defaultReminders:"\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E"},taskStatuses:{header:"\u0421\u0442\u0430\u0442\u0443\u0441\u044B \u0437\u0430\u0434\u0430\u0447",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432, \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0434\u043B\u044F \u0432\u0430\u0448\u0438\u0445 \u0437\u0430\u0434\u0430\u0447. \u042D\u0442\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u0438\u0440\u0443\u044E\u0442 \u0436\u0438\u0437\u043D\u0435\u043D\u043D\u044B\u0439 \u0446\u0438\u043A\u043B \u0437\u0430\u0434\u0430\u0447 \u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u044E\u0442, \u043A\u043E\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044B\u043C\u0438.",howTheyWork:{title:"\u041A\u0430\u043A \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u044B:",value:'\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0439 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440, \u0445\u0440\u0430\u043D\u044F\u0449\u0438\u0439\u0441\u044F \u0432 \u0444\u0430\u0439\u043B\u0430\u0445 \u0437\u0430\u0434\u0430\u0447 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "\u0432-\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435")',label:'\u041C\u0435\u0442\u043A\u0430: \u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u043E\u0435 \u0438\u043C\u044F \u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "\u0412 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435")',color:"\u0426\u0432\u0435\u0442: \u0426\u0432\u0435\u0442 \u0432\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u0434\u043B\u044F \u0442\u043E\u0447\u043A\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0438 \u0437\u043D\u0430\u0447\u043A\u043E\u0432",icon:'\u0418\u043A\u043E\u043D\u043A\u0430: \u041E\u043F\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u043E\u0435 \u0438\u043C\u044F Lucide-\u0438\u043A\u043E\u043D\u043A\u0438 \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0432\u043C\u0435\u0441\u0442\u043E \u0446\u0432\u0435\u0442\u043D\u043E\u0439 \u0442\u043E\u0447\u043A\u0438 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "check", "circle", "clock"). \u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0438\u043A\u043E\u043D\u043A\u0438 \u043D\u0430 lucide.dev',completed:"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E: \u041F\u0440\u0438 \u043E\u0442\u043C\u0435\u0442\u043A\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u044D\u0442\u0438\u043C \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u043C \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044B\u043C\u0438 \u0438 \u043C\u043E\u0433\u0443\u0442 \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u043F\u043E-\u0440\u0430\u0437\u043D\u043E\u043C\u0443",autoArchive:"\u0410\u0432\u0442\u043E\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435: \u041F\u0440\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043A\u0438 (1-1440 \u043C\u0438\u043D\u0443\u0442)",orderNote:"\u041F\u043E\u0440\u044F\u0434\u043E\u043A \u043D\u0438\u0436\u0435 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u043F\u0440\u0438 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438 \u043C\u0435\u0436\u0434\u0443 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043C\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0435\u043C \u043D\u0430 \u0437\u043D\u0430\u0447\u043A\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u0434\u0430\u0447."},addNew:{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0441\u0442\u0430\u0442\u0443\u0441",description:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0434\u043B\u044F \u0432\u0430\u0448\u0438\u0445 \u0437\u0430\u0434\u0430\u0447",buttonText:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441"},validationNote:'\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0423 \u0432\u0430\u0441 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043C\u0438\u043D\u0438\u043C\u0443\u043C 2 \u0441\u0442\u0430\u0442\u0443\u0441\u0430, \u0438 \u043C\u0438\u043D\u0438\u043C\u0443\u043C \u043E\u0434\u0438\u043D \u0441\u0442\u0430\u0442\u0443\u0441 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043E\u0442\u043C\u0435\u0447\u0435\u043D \u043A\u0430\u043A "\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044B\u0439".',emptyState:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u044B. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 \u0434\u043B\u044F \u043D\u0430\u0447\u0430\u043B\u0430.",emptyStateButton:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441",fields:{value:"\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435:",label:"\u041C\u0435\u0442\u043A\u0430:",color:"\u0426\u0432\u0435\u0442:",icon:"\u0418\u043A\u043E\u043D\u043A\u0430:",completed:"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E:",excludeFromCycle:"\u041F\u0440\u043E\u043F\u0443\u0441\u043A\u0430\u0442\u044C \u043F\u0440\u0438 \u0446\u0438\u043A\u043B\u0435:",nextStatus:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0441\u0442\u0430\u0442\u0443\u0441:",autoArchive:"\u0410\u0432\u0442\u043E\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435:",delayMinutes:"\u0417\u0430\u0434\u0435\u0440\u0436\u043A\u0430 (\u043C\u0438\u043D\u0443\u0442\u044B):"},placeholders:{value:"\u0432-\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435",label:"\u0412 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435",icon:"check, circle, clock",nextStatusDefault:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432"},badges:{completed:"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E"},deleteConfirm:'\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441 "{label}"?'},taskPriorities:{header:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u044B \u0437\u0430\u0434\u0430\u0447",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0443\u0440\u043E\u0432\u043D\u0438 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u0430, \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0434\u043B\u044F \u0432\u0430\u0448\u0438\u0445 \u0437\u0430\u0434\u0430\u0447. \u0412 v4.0+ \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u044B \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u0432 \u0430\u043B\u0444\u0430\u0432\u0438\u0442\u043D\u043E\u043C \u043F\u043E\u0440\u044F\u0434\u043A\u0435 \u043F\u043E \u0438\u0445 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044E \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 Bases.",howTheyWork:{title:"\u041A\u0430\u043A \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u044B:",value:'\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0439 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440, \u0445\u0440\u0430\u043D\u044F\u0449\u0438\u0439\u0441\u044F \u0432 \u0444\u0430\u0439\u043B\u0430\u0445 \u0437\u0430\u0434\u0430\u0447. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043F\u0440\u0435\u0444\u0438\u043A\u0441\u044B \u0432\u0440\u043E\u0434\u0435 "1-\u0441\u0440\u043E\u0447\u043D\u044B\u0439", "2-\u0432\u044B\u0441\u043E\u043A\u0438\u0439" \u0434\u043B\u044F \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u0440\u044F\u0434\u043A\u043E\u043C \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 Bases.',label:'\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u0430\u044F \u043C\u0435\u0442\u043A\u0430: \u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u043E\u0435 \u0438\u043C\u044F \u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "\u0412\u044B\u0441\u043E\u043A\u0438\u0439 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442")',color:"\u0426\u0432\u0435\u0442: \u0426\u0432\u0435\u0442 \u0432\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u0434\u043B\u044F \u0442\u043E\u0447\u043A\u0438 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u0430 \u0438 \u0437\u043D\u0430\u0447\u043A\u043E\u0432",icon:"\u0418\u043A\u043E\u043D\u043A\u0430: \u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0438\u043A\u043E\u043D\u043A\u0430 Lucide \u0434\u043B\u044F \u043A\u0430\u0440\u0442\u043E\u0447\u0435\u043A \u0437\u0430\u0434\u0430\u0447 \u0432\u043C\u0435\u0441\u0442\u043E \u0442\u043E\u0447\u043A\u0438 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u0430",weight:"\u0412\u0435\u0441: \u0427\u0438\u0441\u043B\u043E\u0432\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 (\u0431\u043E\u043B\u0435\u0435 \u0432\u044B\u0441\u043E\u043A\u0438\u0435 \u0432\u0435\u0441\u0430 \u043F\u043E\u044F\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u043F\u0435\u0440\u0432\u044B\u043C\u0438 \u0432 \u0441\u043F\u0438\u0441\u043A\u0430\u0445)",weightNote:"\u0417\u0430\u0434\u0430\u0447\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u043F\u043E \u0432\u0435\u0441\u0443 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u0430 \u0432 \u0443\u0431\u044B\u0432\u0430\u044E\u0449\u0435\u043C \u043F\u043E\u0440\u044F\u0434\u043A\u0435 (\u043D\u0430\u0438\u0432\u044B\u0441\u0448\u0438\u0439 \u0432\u0435\u0441 \u043F\u0435\u0440\u0432\u044B\u043C). \u0412\u0435\u0441\u0430 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u043B\u044E\u0431\u044B\u043C\u0438 \u043F\u043E\u043B\u043E\u0436\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u0447\u0438\u0441\u043B\u0430\u043C\u0438."},addNew:{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442",description:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u0430 \u0434\u043B\u044F \u0432\u0430\u0448\u0438\u0445 \u0437\u0430\u0434\u0430\u0447",buttonText:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442"},validationNote:"\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0423 \u0432\u0430\u0441 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043C\u0438\u043D\u0438\u043C\u0443\u043C 1 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442. \u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u044B \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u0432 \u0430\u043B\u0444\u0430\u0432\u0438\u0442\u043D\u043E\u043C \u043F\u043E\u0440\u044F\u0434\u043A\u0435 \u043F\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044E \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 Bases.",emptyState:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u044B \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u044B. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u0434\u043B\u044F \u043D\u0430\u0447\u0430\u043B\u0430.",emptyStateButton:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442",fields:{value:"\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435:",label:"\u041C\u0435\u0442\u043A\u0430:",color:"\u0426\u0432\u0435\u0442:",icon:"\u0418\u043A\u043E\u043D\u043A\u0430:",weight:"\u0412\u0435\u0441:"},placeholders:{value:"\u0432\u044B\u0441\u043E\u043A\u0438\u0439",label:"\u0412\u044B\u0441\u043E\u043A\u0438\u0439 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442",icon:"alert-circle"},weightLabel:"\u0412\u0435\u0441: {weight}",deleteConfirm:"\u0423 \u0432\u0430\u0441 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043C\u0438\u043D\u0438\u043C\u0443\u043C \u043E\u0434\u0438\u043D \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442",deleteTooltip:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442"},fieldMapping:{header:"\u0421\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u0435\u0439",warning:"\u26A0\uFE0F \u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435: TaskNotes \u0431\u0443\u0434\u0435\u0442 \u0427\u0418\u0422\u0410\u0422\u042C \u0418 \u0417\u0410\u041F\u0418\u0421\u042B\u0412\u0410\u0422\u042C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u044D\u0442\u0438 \u0438\u043C\u0435\u043D\u0430 \u0441\u0432\u043E\u0439\u0441\u0442\u0432. \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0438\u0445 \u043F\u043E\u0441\u043B\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447 \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C \u043D\u0435\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044F.",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435, \u043A\u0430\u043A\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 frontmatter TaskNotes \u0434\u043E\u043B\u0436\u043D\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043F\u043E\u043B\u044F.",resetButton:{name:"\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0435\u0439",description:"\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435 \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0435\u0439 \u043A \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043C \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",buttonText:"\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u043A \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044F\u043C"},notices:{resetSuccess:"\u0421\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0435\u0439 \u0441\u0431\u0440\u043E\u0448\u0435\u043D\u044B \u043A \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044F\u043C",resetFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0435\u0439",updateFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u044F \u0434\u043B\u044F {label}. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430."},table:{fieldHeader:"\u041F\u043E\u043B\u0435 TaskNotes",propertyHeader:"\u0412\u0430\u0448\u0435 \u0438\u043C\u044F \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430"},fields:{title:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",status:"\u0421\u0442\u0430\u0442\u0443\u0441",priority:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442",due:"\u0421\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",scheduled:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430",contexts:"\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B",projects:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B",timeEstimate:"\u041E\u0446\u0435\u043D\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",recurrence:"\u041F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",dateCreated:"\u0414\u0430\u0442\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F",completedDate:"\u0414\u0430\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F",dateModified:"\u0414\u0430\u0442\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",archiveTag:"\u0422\u0435\u0433 \u0430\u0440\u0445\u0438\u0432\u0430",timeEntries:"\u0417\u0430\u043F\u0438\u0441\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",completeInstances:"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044B\u0435 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u044B",blockedBy:"\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u043E",sortOrder:"\u0420\u0443\u0447\u043D\u043E\u0439 \u043F\u043E\u0440\u044F\u0434\u043E\u043A",pomodoros:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",icsEventId:"ID \u0441\u043E\u0431\u044B\u0442\u0438\u044F ICS",icsEventTag:"\u0422\u0435\u0433 \u0441\u043E\u0431\u044B\u0442\u0438\u044F ICS",reminders:"\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F"}},customUserFields:{header:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u043F\u043E\u043B\u044F",description:"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 frontmatter \u0434\u043B\u044F \u043F\u043E\u044F\u0432\u043B\u0435\u043D\u0438\u044F \u043A\u0430\u043A \u0442\u0438\u043F\u043E-\u043E\u0441\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u043D\u044B\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0444\u0438\u043B\u044C\u0442\u0440\u0430 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445. \u041A\u0430\u0436\u0434\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u043E\u0435 \u0438\u043C\u044F, \u0418\u043C\u044F \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430, \u0422\u0438\u043F.",addNew:{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 \u043F\u043E\u043B\u0435",description:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u043E\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 \u043F\u043E\u043B\u0435, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u044F\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u0432 \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0445 \u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445",buttonText:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 \u043F\u043E\u043B\u0435"},emptyState:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u043F\u043E\u043B\u044F \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u044B. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u043F\u043E\u043B\u0435 \u0434\u043B\u044F \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u0441\u0432\u043E\u0439\u0441\u0442\u0432 \u0434\u043B\u044F \u0432\u0430\u0448\u0438\u0445 \u0437\u0430\u0434\u0430\u0447.",emptyStateButton:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 \u043F\u043E\u043B\u0435",fields:{displayName:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u043E\u0435 \u0438\u043C\u044F:",propertyKey:"\u041A\u043B\u044E\u0447 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430:",type:"\u0422\u0438\u043F:",defaultValue:"\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E:"},placeholders:{displayName:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u043E\u0435 \u0438\u043C\u044F",propertyKey:"\u0438\u043C\u044F-\u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430",defaultValue:"\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",defaultValueList:"\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E (\u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E)"},types:{text:"\u0422\u0435\u043A\u0441\u0442",number:"\u0427\u0438\u0441\u043B\u043E",boolean:"\u041B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0438\u0439",date:"\u0414\u0430\u0442\u0430",list:"\u0421\u043F\u0438\u0441\u043E\u043A"},defaultNames:{unnamedField:"\u0411\u0435\u0437\u044B\u043C\u044F\u043D\u043D\u043E\u0435 \u043F\u043E\u043B\u0435",noKey:"\u0431\u0435\u0437-\u043A\u043B\u044E\u0447\u0430"},deleteTooltip:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u043E\u043B\u0435",autosuggestFilters:{header:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A (\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0435)",description:"\u0424\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0444\u0430\u0439\u043B\u043E\u0432, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0445 \u0432 \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430\u0445 \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u043F\u043E\u043B\u044F"}}},appearance:{taskCards:{header:"\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0438 \u0437\u0430\u0434\u0430\u0447",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043A\u0430\u0440\u0442\u043E\u0447\u0435\u043A \u0437\u0430\u0434\u0430\u0447 \u0432\u043E \u0432\u0441\u0435\u0445 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445.",defaultVisibleProperties:{name:"\u0412\u0438\u0434\u0438\u043C\u044B\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u043A\u0430\u043A\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043F\u043E\u044F\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u043D\u0430 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430\u0445 \u0437\u0430\u0434\u0430\u0447 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E."},propertyGroups:{coreProperties:"\u041E\u0421\u041D\u041E\u0412\u041D\u042B\u0415 \u0421\u0412\u041E\u0419\u0421\u0422\u0412\u0410",organization:"\u041E\u0420\u0413\u0410\u041D\u0418\u0417\u0410\u0426\u0418\u042F",customProperties:"\u041F\u041E\u041B\u042C\u0417\u041E\u0412\u0410\u0422\u0415\u041B\u042C\u0421\u041A\u0418\u0415 \u0421\u0412\u041E\u0419\u0421\u0422\u0412\u0410"},properties:{status:"\u0422\u043E\u0447\u043A\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430",priority:"\u0422\u043E\u0447\u043A\u0430 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u0430",due:"\u0421\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",scheduled:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430",timeEstimate:"\u041E\u0446\u0435\u043D\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",totalTrackedTime:"\u041E\u0431\u0449\u0435\u0435 \u043E\u0442\u0441\u043B\u0435\u0436\u0435\u043D\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F",checklistProgress:"\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430",recurrence:"\u041F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",completedDate:"\u0414\u0430\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F",createdDate:"\u0414\u0430\u0442\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F",modifiedDate:"\u0414\u0430\u0442\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",projects:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B",contexts:"\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B",tags:"\u0422\u0435\u0433\u0438",blocked:"\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0430",blocking:"\u0411\u043B\u043E\u043A\u0438\u0440\u0443\u0435\u0442"}},taskFilenames:{header:"\u0418\u043C\u0435\u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432 \u0437\u0430\u0434\u0430\u0447",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u043E\u0432 \u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0438.",storeTitleInFilename:{name:"\u0425\u0440\u0430\u043D\u0438\u0442\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0432 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430",description:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043A\u0430\u043A \u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430. \u0418\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u0431\u0443\u0434\u0435\u0442 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 (\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u0442\u0441\u044F)."},filenameFormat:{name:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430",description:"\u041A\u0430\u043A \u0434\u043E\u043B\u0436\u043D\u044B \u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0438\u043C\u0435\u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432 \u0437\u0430\u0434\u0430\u0447",options:{title:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (\u041D\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u043C\u043E\u0435)",zettel:"\u0424\u043E\u0440\u043C\u0430\u0442 Zettelkasten (\u0413\u0413\u041C\u041C\u0414\u0414 + base36 \u0441\u0435\u043A\u0443\u043D\u0434\u044B \u0441 \u043F\u043E\u043B\u0443\u043D\u043E\u0447\u0438)",timestamp:"\u041F\u043E\u043B\u043D\u0430\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u043C\u0435\u0442\u043A\u0430 (\u0413\u0413\u0413\u0413-\u041C\u041C-\u0414\u0414-\u0427\u0427\u041C\u041C\u0421\u0421)",custom:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0448\u0430\u0431\u043B\u043E\u043D",uuid:"UUID v4"}},customTemplate:{name:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0448\u0430\u0431\u043B\u043E\u043D \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430",description:"\u0428\u0430\u0431\u043B\u043E\u043D \u0434\u043B\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u0438\u043C\u0451\u043D \u0444\u0430\u0439\u043B\u043E\u0432. \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435: {{title}}, {{titleLower}}, {{titleUpper}}, {{titleSnake}}, {{titleKebab}}, {{titleCamel}}, {{titlePascal}}, {{date}}, {{shortDate}}, {{time}}, {{time12}}, {{time24}}, {{timestamp}}, {{dateTime}}, {{year}}, {{month}}, {{monthName}}, {{monthNameShort}}, {{day}}, {{dayName}}, {{dayNameShort}}, {{hour}}, {{hour12}}, {{minute}}, {{second}}, {{milliseconds}}, {{ms}}, {{ampm}}, {{week}}, {{quarter}}, {{unix}}, {{unixMs}}, {{timezone}}, {{timezoneShort}}, {{utcOffset}}, {{utcOffsetShort}}, {{utcZ}}, {{zettel}}, {{uuid}}, {{nano}}, {{priority}}, {{priorityShort}}, {{status}}, {{statusShort}}, {{dueDate}}, {{scheduledDate}}",placeholder:"{{date}}-{{title}}-{{dueDate}}",helpText:"\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: {{dueDate}} \u0438 {{scheduledDate}} \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 \u0413\u0413\u0413\u0413-\u041C\u041C-\u0414\u0414 \u0438 \u0431\u0443\u0434\u0443\u0442 \u043F\u0443\u0441\u0442\u044B\u043C\u0438, \u0435\u0441\u043B\u0438 \u043D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u044B."}},displayFormatting:{header:"\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0434\u0430\u0442, \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0432 \u043F\u043B\u0430\u0433\u0438\u043D\u0435.",timeFormat:{name:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0440\u0435\u043C\u044F \u0432 12-\u0447\u0430\u0441\u043E\u0432\u043E\u043C \u0438\u043B\u0438 24-\u0447\u0430\u0441\u043E\u0432\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 \u0432 \u043F\u043B\u0430\u0433\u0438\u043D\u0435",options:{twelveHour:"12-\u0447\u0430\u0441\u043E\u0432\u043E\u0439 (AM/PM)",twentyFourHour:"24-\u0447\u0430\u0441\u043E\u0432\u043E\u0439"}}},calendarView:{header:"\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0432\u043D\u0435\u0448\u043D\u0438\u0439 \u0432\u0438\u0434 \u0438 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F.",defaultView:{name:"\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F, \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u043C\u043E\u0435 \u043F\u0440\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0438 \u0432\u043A\u043B\u0430\u0434\u043A\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",options:{monthGrid:"\u0421\u0435\u0442\u043A\u0430 \u043C\u0435\u0441\u044F\u0446\u0430",weekTimeline:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u043B\u0438\u043D\u0438\u044F \u043D\u0435\u0434\u0435\u043B\u0438",dayTimeline:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u043B\u0438\u043D\u0438\u044F \u0434\u043D\u044F",yearView:"\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0433\u043E\u0434\u0430",customMultiDay:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u043C\u043D\u043E\u0433\u043E\u0434\u043D\u0435\u0432\u043D\u044B\u0439"}},customDayCount:{name:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u043D\u0435\u0439 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0433\u043E \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F",description:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u043D\u0435\u0439 \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0432 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u043C \u043C\u043D\u043E\u0433\u043E\u0434\u043D\u0435\u0432\u043D\u043E\u043C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0438",placeholder:"3"},firstDayOfWeek:{name:"\u041F\u0435\u0440\u0432\u044B\u0439 \u0434\u0435\u043D\u044C \u043D\u0435\u0434\u0435\u043B\u0438",description:"\u041A\u0430\u043A\u043E\u0439 \u0434\u0435\u043D\u044C \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043F\u0435\u0440\u0432\u043E\u0439 \u043A\u043E\u043B\u043E\u043D\u043A\u043E\u0439 \u0432 \u043D\u0435\u0434\u0435\u043B\u044C\u043D\u044B\u0445 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445"},showWeekends:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u044B\u0445\u043E\u0434\u043D\u044B\u0435",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u044B\u0445\u043E\u0434\u043D\u044B\u0435 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F"},showWeekNumbers:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u043E\u043C\u0435\u0440\u0430 \u043D\u0435\u0434\u0435\u043B\u044C",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043D\u043E\u043C\u0435\u0440\u0430 \u043D\u0435\u0434\u0435\u043B\u044C \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F"},showTodayHighlight:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0441\u0435\u0433\u043E\u0434\u043D\u044F",description:"\u0412\u044B\u0434\u0435\u043B\u044F\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u0434\u0435\u043D\u044C \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F"},showCurrentTimeIndicator:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u043B\u0438\u043D\u0438\u044E, \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0449\u0443\u044E \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u043B\u0438\u043D\u0438\u0438"},selectionMirror:{name:"\u0417\u0435\u0440\u043A\u0430\u043B\u043E \u0432\u044B\u0431\u043E\u0440\u0430",description:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0432\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u043F\u0440\u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u0438 \u0434\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u043E\u0432"},calendarLocale:{name:"\u041B\u043E\u043A\u0430\u043B\u044C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",description:'\u041B\u043E\u043A\u0430\u043B\u044C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u0434\u043B\u044F \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0434\u0430\u0442 \u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u043E\u0439 \u0441\u0438\u0441\u0442\u0435\u043C\u044B (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, "en", "fa" \u0434\u043B\u044F \u0444\u0430\u0440\u0441\u0438/\u043F\u0435\u0440\u0441\u0438\u0434\u0441\u043A\u043E\u0433\u043E, "de" \u0434\u043B\u044F \u043D\u0435\u043C\u0435\u0446\u043A\u043E\u0433\u043E). \u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0438\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430.',placeholder:"\u0410\u0432\u0442\u043E\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435",invalidLocale:"\u041D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u0430\u044F \u043B\u043E\u043A\u0430\u043B\u044C. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u044F\u0437\u044B\u043A\u043E\u0432\u043E\u0439 \u0442\u0435\u0433 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, 'ru', 'en', 'fr-FR')."}},defaultEventVisibility:{header:"\u0412\u0438\u0434\u0438\u043C\u043E\u0441\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435, \u043A\u0430\u043A\u0438\u0435 \u0442\u0438\u043F\u044B \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u0432\u0438\u0434\u0438\u043C\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043F\u0440\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F. \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043C\u043E\u0433\u0443\u0442 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0438\u0445 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F.",showScheduledTasks:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0434\u0430\u0442\u0430\u043C\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E"},showDueDates:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u0440\u043E\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0441\u0440\u043E\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E"},showDueWhenScheduled:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u0440\u043E\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0441\u0440\u043E\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0434\u0430\u0436\u0435 \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0443\u0436\u0435 \u0438\u043C\u0435\u044E\u0442 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0434\u0430\u0442\u044B"},showTimeEntries:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0437\u0430\u043F\u0438\u0441\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E"},showRecurringTasks:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u044B \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0437\u0430\u0434\u0430\u0447 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E"},showICSEvents:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u044F ICS",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u0438\u0437 \u043F\u043E\u0434\u043F\u0438\u0441\u043E\u043A ICS \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E"}},timeSettings:{header:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0441\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0435\u043C \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u043B\u0438\u043D\u0438\u0438.",timeSlotDuration:{name:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0441\u043B\u043E\u0442\u0430",description:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0441\u043B\u043E\u0442\u0430 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u043B\u0438\u043D\u0438\u0438",options:{fifteenMinutes:"15 \u043C\u0438\u043D\u0443\u0442",thirtyMinutes:"30 \u043C\u0438\u043D\u0443\u0442",sixtyMinutes:"60 \u043C\u0438\u043D\u0443\u0442"}},startTime:{name:"\u0412\u0440\u0435\u043C\u044F \u043D\u0430\u0447\u0430\u043B\u0430",description:"\u0421\u0430\u043C\u043E\u0435 \u0440\u0430\u043D\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F, \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u043C\u043E\u0435 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u043B\u0438\u043D\u0438\u0438 (\u0444\u043E\u0440\u043C\u0430\u0442 \u0427\u0427:\u041C\u041C)",placeholder:"06:00"},endTime:{name:"\u0412\u0440\u0435\u043C\u044F \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F",description:"\u0421\u0430\u043C\u043E\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u043E\u0435 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0448\u043A\u0430\u043B\u044B (\u0444\u043E\u0440\u043C\u0430\u0442 HH:MM). \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432\u044B\u0448\u0435 24:00, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0440\u0430\u043D\u043D\u0438\u0435 \u0447\u0430\u0441\u044B \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u0434\u043D\u044F, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 26:00 \u0434\u043B\u044F 2:00.",placeholder:"26:00"},initialScrollTime:{name:"\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438",description:"\u0412\u0440\u0435\u043C\u044F \u0434\u043B\u044F \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u043F\u0440\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u043B\u0438\u043D\u0438\u0438 (\u0444\u043E\u0440\u043C\u0430\u0442 \u0427\u0427:\u041C\u041C)",placeholder:"09:00"},eventMinHeight:{name:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0441\u043E\u0431\u044B\u0442\u0438\u044F",description:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u0432 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0445 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0448\u043A\u0430\u043B\u044B (\u0432 \u043F\u0438\u043A\u0441\u0435\u043B\u044F\u0445)",placeholder:"15"}},uiElements:{header:"\u042D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u043B\u0438\u0447\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.",showTrackedTasksInStatusBar:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0438\u0435 \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F Obsidian"},showProjectSubtasksWidget:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0438\u0434\u0436\u0435\u0442 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u043E\u0435\u043A\u0442\u0430",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0438\u0434\u0436\u0435\u0442, \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0449\u0438\u0439 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043B\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430"},projectSubtasksPosition:{name:"\u041F\u043E\u0437\u0438\u0446\u0438\u044F \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u043E\u0435\u043A\u0442\u0430",description:"\u0413\u0434\u0435 \u0440\u0430\u0437\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u0438\u0434\u0436\u0435\u0442 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u043E\u0435\u043A\u0442\u0430",options:{top:"\u0412\u0435\u0440\u0445 \u0437\u0430\u043C\u0435\u0442\u043A\u0438",bottom:"\u041D\u0438\u0437 \u0437\u0430\u043C\u0435\u0442\u043A\u0438"}},showRelationshipsWidget:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0438\u0434\u0436\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0438\u0434\u0436\u0435\u0442, \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0449\u0438\u0439 \u0432\u0441\u0435 \u0441\u0432\u044F\u0437\u0438 \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 (\u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438, \u043F\u0440\u043E\u0435\u043A\u0442\u044B, \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438)"},relationshipsPosition:{name:"\u041F\u043E\u0437\u0438\u0446\u0438\u044F \u0441\u0432\u044F\u0437\u0435\u0439",description:"\u0413\u0434\u0435 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C \u0432\u0438\u0434\u0436\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439",options:{top:"\u0412\u0432\u0435\u0440\u0445\u0443 \u0437\u0430\u043C\u0435\u0442\u043A\u0438",bottom:"\u0412\u043D\u0438\u0437\u0443 \u0437\u0430\u043C\u0435\u0442\u043A\u0438"}},showTaskCardInNote:{name:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0437\u0430\u043C\u0435\u0442\u043A\u0435",description:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u0438\u0434\u0436\u0435\u0442 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0432\u0435\u0440\u0445\u043D\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u0437\u0430\u0434\u0430\u0447 \u0441 \u0434\u0435\u0442\u0430\u043B\u044F\u043C\u0438 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F\u043C\u0438 \u0437\u0430\u0434\u0430\u0447\u0438"},showCompletedTaskStrikethrough:{name:"\u0417\u0430\u0447\u0435\u0440\u043A\u0438\u0432\u0430\u0442\u044C \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447",description:"\u0417\u0430\u0447\u0435\u0440\u043A\u0438\u0432\u0430\u0435\u0442 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438 \u043A\u0430\u0440\u0442\u043E\u0447\u0435\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447. \u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u044B\u043B\u043E \u043B\u0435\u0433\u0447\u0435 \u0447\u0438\u0442\u0430\u0442\u044C"},showExpandableSubtasks:{name:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u0435\u043C\u044B\u0435 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438",description:"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u0440\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435/\u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u043E\u0432 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447 \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430\u0445 \u0437\u0430\u0434\u0430\u0447"},expandSubtasksByDefault:{name:"\u0420\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0440\u0430\u0441\u043A\u0440\u044B\u0442\u044B\u043C\u0438 \u043F\u0440\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0438 \u043A\u0430\u0440\u0442\u043E\u0447\u0435\u043A \u0437\u0430\u0434\u0430\u0447"},subtaskChevronPosition:{name:"\u041F\u043E\u0437\u0438\u0446\u0438\u044F \u0448\u0435\u0432\u0440\u043E\u043D\u0430 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447",description:"\u041F\u043E\u0437\u0438\u0446\u0438\u044F \u0448\u0435\u0432\u0440\u043E\u043D\u043E\u0432 \u0440\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u044F/\u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430\u0445 \u0437\u0430\u0434\u0430\u0447",options:{left:"\u041B\u0435\u0432\u0430\u044F \u0441\u0442\u043E\u0440\u043E\u043D\u0430",right:"\u041F\u0440\u0430\u0432\u0430\u044F \u0441\u0442\u043E\u0440\u043E\u043D\u0430"}},viewsButtonAlignment:{name:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439",description:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439/\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432 \u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0437\u0430\u0434\u0430\u0447",options:{left:"\u041B\u0435\u0432\u0430\u044F \u0441\u0442\u043E\u0440\u043E\u043D\u0430",right:"\u041F\u0440\u0430\u0432\u0430\u044F \u0441\u0442\u043E\u0440\u043E\u043D\u0430"}}},projectAutosuggest:{header:"\u0410\u0432\u0442\u043E\u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432 \u043F\u0440\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447.",requiredTags:{name:"\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0442\u0435\u0433\u0438",description:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u0441 \u043B\u044E\u0431\u044B\u043C \u0438\u0437 \u044D\u0442\u0438\u0445 \u0442\u0435\u0433\u043E\u0432 (\u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E). \u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C \u0434\u043B\u044F \u043F\u043E\u043A\u0430\u0437\u0430 \u0432\u0441\u0435\u0445 \u0437\u0430\u043C\u0435\u0442\u043E\u043A.",placeholder:"\u043F\u0440\u043E\u0435\u043A\u0442, \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439, \u0432\u0430\u0436\u043D\u044B\u0439"},includeFolders:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0430\u043F\u043A\u0438",description:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u0432 \u044D\u0442\u0438\u0445 \u043F\u0430\u043F\u043A\u0430\u0445 (\u043F\u0443\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E). \u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C \u0434\u043B\u044F \u043F\u043E\u043A\u0430\u0437\u0430 \u0432\u0441\u0435\u0445 \u043F\u0430\u043F\u043E\u043A.",placeholder:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B/, \u0420\u0430\u0431\u043E\u0442\u0430/\u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0435, \u041B\u0438\u0447\u043D\u043E\u0435"},requiredPropertyKey:{name:"\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430",description:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u043C\u0435\u0442\u043A\u0438, \u0433\u0434\u0435 \u044D\u0442\u043E \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E frontmatter \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044E \u043D\u0438\u0436\u0435. \u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C \u0434\u043B\u044F \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F.",placeholder:"\u0442\u0438\u043F"},requiredPropertyValue:{name:"\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430",description:"\u0422\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u043C\u0435\u0442\u043A\u0438, \u0433\u0434\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u0440\u0430\u0432\u043D\u043E \u044D\u0442\u043E\u043C\u0443 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044E, \u043F\u0440\u0435\u0434\u043B\u0430\u0433\u0430\u044E\u0442\u0441\u044F. \u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C \u0434\u043B\u044F \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043E\u0432\u0430\u043D\u0438\u044F \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430.",placeholder:"\u043F\u0440\u043E\u0435\u043A\u0442"},customizeDisplay:{name:"\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439",description:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043E\u043F\u0446\u0438\u0438 \u0434\u043B\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432 \u0438 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u043E\u043D\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\u0442."},enableFuzzyMatching:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0435\u0447\u0435\u0442\u043A\u043E\u0435 \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435",description:"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u043E\u043F\u0435\u0447\u0430\u0442\u043A\u0438 \u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043D\u044B\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u044F \u0432 \u043F\u043E\u0438\u0441\u043A\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432. \u041C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043C\u0435\u0434\u043B\u0435\u043D\u043D\u0435\u0435 \u0432 \u0431\u043E\u043B\u044C\u0448\u0438\u0445 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430\u0445."},displayRowsHelp:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0434\u043E 3 \u0441\u0442\u0440\u043E\u043A \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0435\u043A\u0442\u0430.",displayRows:{row1:{name:"\u0421\u0442\u0440\u043E\u043A\u0430 1",description:"\u0424\u043E\u0440\u043C\u0430\u0442: {\u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E|\u0444\u043B\u0430\u0433\u0438}. \u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430: title, aliases, file.path, file.parent. \u0424\u043B\u0430\u0433\u0438: n(\u041C\u0435\u0442\u043A\u0430) \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u043C\u0435\u0442\u043A\u0443, s \u0434\u0435\u043B\u0430\u0435\u0442 \u043F\u043E\u0438\u0441\u043A\u043E\u0432\u044B\u043C. \u041F\u0440\u0438\u043C\u0435\u0440: {title|n(\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435)|s}",placeholder:"{title|n(\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435)}"},row2:{name:"\u0421\u0442\u0440\u043E\u043A\u0430 2 (\u043E\u043F\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u043E)",description:"\u041E\u0431\u0449\u0438\u0435 \u0448\u0430\u0431\u043B\u043E\u043D\u044B: {aliases|n(\u041F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C\u044B)}, {file.parent|n(\u041F\u0430\u043F\u043A\u0430)}, literal:\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0442\u0435\u043A\u0441\u0442",placeholder:"{aliases|n(\u041F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C\u044B)}"},row3:{name:"\u0421\u0442\u0440\u043E\u043A\u0430 3 (\u043E\u043F\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u043E)",description:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F, \u0442\u0430\u043A\u0430\u044F \u043A\u0430\u043A {file.path|n(\u041F\u0443\u0442\u044C)} \u0438\u043B\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u043F\u043E\u043B\u044F frontmatter",placeholder:"{file.path|n(\u041F\u0443\u0442\u044C)}"}},quickReference:{header:"\u0411\u044B\u0441\u0442\u0440\u0430\u044F \u0441\u043F\u0440\u0430\u0432\u043A\u0430",properties:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430: title, aliases, file.path, file.parent \u0438\u043B\u0438 \u043B\u044E\u0431\u043E\u0435 \u043F\u043E\u043B\u0435 frontmatter",labels:'\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043C\u0435\u0442\u043A\u0438: {title|n(\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435)} \u2192 "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435: \u041C\u043E\u0439 \u043F\u0440\u043E\u0435\u043A\u0442"',searchable:"\u0421\u0434\u0435\u043B\u0430\u0442\u044C \u043F\u043E\u0438\u0441\u043A\u043E\u0432\u044B\u043C: {description|s} \u0432\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0432 + \u043F\u043E\u0438\u0441\u043A",staticText:"\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0442\u0435\u043A\u0441\u0442: literal:\u041C\u043E\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0430\u044F \u043C\u0435\u0442\u043A\u0430",alwaysSearchable:"\u0418\u043C\u044F \u0444\u0430\u0439\u043B\u0430, \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0438 \u043F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C\u044B \u0432\u0441\u0435\u0433\u0434\u0430 \u043F\u043E\u0438\u0441\u043A\u043E\u0432\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E."}},dataStorage:{name:"\u041C\u0435\u0441\u0442\u043E \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F",description:"\u0413\u0434\u0435 \u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0441\u0435\u0441\u0441\u0438\u0439 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",pluginData:"\u0414\u0430\u043D\u043D\u044B\u0435 \u043F\u043B\u0430\u0433\u0438\u043D\u0430 (\u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u0442\u0441\u044F)",dailyNotes:"\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438",notices:{locationChanged:"\u041C\u0435\u0441\u0442\u043E \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E \u043D\u0430 {location}"}},notifications:{description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F\u0445 \u0437\u0430\u0434\u0430\u0447 \u0438 \u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F."},performance:{description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u043F\u043B\u0430\u0433\u0438\u043D\u0430 \u0438 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0447\u0435\u0441\u043A\u0438\u0435 \u043E\u043F\u0446\u0438\u0438."},timeTrackingSection:{description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u0438."},recurringSection:{description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u043C\u0438\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438."}},integrations:{mobileCalendar:{disable:{name:"\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u043D\u0430 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0445 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430\u0445",description:"\u041D\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438 Google, Microsoft \u0438 ICS \u0432 Obsidian Mobile. \u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u043D\u0430 \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0435 \u043D\u0435 \u043C\u0435\u043D\u044F\u044E\u0442\u0441\u044F."},status:{name:"\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u043D\u0430 \u044D\u0442\u043E\u043C \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u043C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0435",description:"\u0412\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u044D\u0442\u0443 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0443 \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 Obsidian Mobile, \u0447\u0442\u043E\u0431\u044B \u0441\u043D\u043E\u0432\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438."}},basesIntegration:{header:"\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044F \u0441 Bases",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044E \u0441 \u043F\u043B\u0430\u0433\u0438\u043D\u043E\u043C Obsidian Bases. \u042D\u0442\u043E \u044D\u043A\u0441\u043F\u0435\u0440\u0438\u043C\u0435\u043D\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0432 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F \u043E\u043F\u0438\u0440\u0430\u0435\u0442\u0441\u044F \u043D\u0430 \u043D\u0435\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 API Obsidian. \u041F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043C\u043E\u0436\u0435\u0442 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0441\u044F \u0438\u043B\u0438 \u0441\u043B\u043E\u043C\u0430\u0442\u044C\u0441\u044F.",enable:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044E \u0441 Bases",description:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439 TaskNotes \u0432 \u043F\u043B\u0430\u0433\u0438\u043D\u0435 Obsidian Bases. \u041F\u043B\u0430\u0433\u0438\u043D Bases \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u0432\u043A\u043B\u044E\u0447\u0435\u043D \u0434\u043B\u044F \u0440\u0430\u0431\u043E\u0442\u044B."},viewCommands:{header:"\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0438 \u0444\u0430\u0439\u043B\u044B Base",description:"TaskNotes \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0444\u0430\u0439\u043B\u044B Obsidian Bases (.base) \u0434\u043B\u044F \u0441\u0432\u043E\u0438\u0445 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439. \u042D\u0442\u0438 \u0444\u0430\u0439\u043B\u044B \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435, \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0442, \u0438 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u0441 \u0443\u0447\u0451\u0442\u043E\u043C \u0432\u0430\u0448\u0438\u0445 \u0442\u0435\u043A\u0443\u0449\u0438\u0445 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 (\u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F \u0437\u0430\u0434\u0430\u0447, \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u0435\u0439, \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0438 \u0442.\u0434.).",descriptionRegen:"Base-\u0444\u0430\u0439\u043B\u044B \u043D\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A. \u0427\u0442\u043E\u0431\u044B \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \xAB\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u044B\xBB \u043D\u0438\u0436\u0435, \u0443\u0434\u0430\u043B\u0438\u0442\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 .base-\u0444\u0430\u0439\u043B\u044B \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 Obsidian \u0438\u043B\u0438 \u043E\u0442\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0438\u0445 \u0432\u0440\u0443\u0447\u043D\u0443\u044E.",docsLink:"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044E \u043F\u043E \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u043C \u0444\u043E\u0440\u043C\u0443\u043B\u0430\u043C \u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438",docsLinkUrl:"https://tasknotes.dev/views/default-base-templates",commands:{miniCalendar:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u0438\u043D\u0438-\u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",kanban:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 kanban",tasks:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447",advancedCalendar:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",agenda:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u043E\u0432\u0435\u0441\u0442\u043A\u0443 \u0434\u043D\u044F",relationships:"\u0412\u0438\u0434\u0436\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439",pomodoroStats:"Base \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438 Pomodoro"},fileLabel:"\u0424\u0430\u0439\u043B: {path}",resetButton:"\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C",resetTooltip:"\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u043A \u043F\u0443\u0442\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",pomodoroDailyNotesHint:"\u0421\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F Base \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438 Pomodoro \u0447\u0438\u0442\u0430\u0435\u0442 \u0438\u0441\u0442\u043E\u0440\u0438\u044E Pomodoro \u0438\u0437 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043E\u043A. \u0415\u0441\u043B\u0438 \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0432\u0441\u0451 \u0435\u0449\u0451 \u0445\u0440\u0430\u043D\u0438\u0442\u0441\u044F \u0432 \u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043B\u0430\u0433\u0438\u043D\u0430, \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0438\u0442\u0435 \u0435\u0451 \u0432 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u043F\u0435\u0440\u0435\u0434 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u044D\u0442\u043E\u0433\u043E Base-\u0444\u0430\u0439\u043B\u0430."},autoCreateDefaultFiles:{name:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0435 Base \u0444\u0430\u0439\u043B\u044B \u043F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435. \u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0443\u0434\u0430\u043B\u0451\u043D\u043D\u044B\u0445 \u043F\u0440\u0438\u043C\u0435\u0440\u043E\u0432 \u0444\u0430\u0439\u043B\u043E\u0432."},createDefaultFiles:{name:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0421\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0435 .base \u0444\u0430\u0439\u043B\u044B \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438 TaskNotes/Views/. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0444\u0430\u0439\u043B\u044B \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u043D\u044B.",buttonText:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B"},exportV3Views:{name:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F V3 \u0432 Bases",description:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0439\u0442\u0435 \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0438\u0437 TaskNotes v3 \u0432 \u043E\u0434\u0438\u043D .base \u0444\u0430\u0439\u043B \u0441 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u043C\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043C\u0438. \u042D\u0442\u043E \u043F\u043E\u043C\u043E\u0433\u0430\u0435\u0442 \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0432\u0430\u0448\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432 v3 \u0432 \u043D\u043E\u0432\u0443\u044E \u0441\u0438\u0441\u0442\u0435\u043C\u0443 Bases.",buttonText:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F V3",noViews:"\u041D\u0435\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0445 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430",fileExists:"\u0424\u0430\u0439\u043B \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442",confirmOverwrite:'\u0424\u0430\u0439\u043B \u0441 \u0438\u043C\u0435\u043D\u0435\u043C "{fileName}" \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C?',success:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043E {count} \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0445 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0432 {filePath}",error:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F: {message}"},notices:{enabled:"\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044F \u0441 Bases \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 Obsidian \u0434\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438.",disabled:"\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044F \u0441 Bases \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0430. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 Obsidian \u0434\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F."},updateDefaultFiles:{name:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B .base \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0448\u0430\u0431\u043B\u043E\u043D\u0430\u043C\u0438, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u043C\u0438 \u0438\u0437 \u0442\u0435\u043A\u0443\u0449\u0438\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A TaskNotes.",buttonText:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u044B",confirmTitle:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C Base-\u0444\u0430\u0439\u043B\u044B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",confirmMessage:"\u042D\u0442\u043E \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0448\u0435\u0442 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B .base \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0437\u0430\u043D\u043E\u0432\u043E \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u043C\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0430\u043C\u0438. \u041B\u044E\u0431\u044B\u0435 \u0440\u0443\u0447\u043D\u044B\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432 \u044D\u0442\u0438\u0445 \u0444\u0430\u0439\u043B\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043C\u0435\u043D\u0435\u043D\u044B.",confirmText:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u044B"}},calendarSubscriptions:{header:"\u041F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438",description:"\u041F\u043E\u0434\u043F\u0438\u0448\u0438\u0442\u0435\u0441\u044C \u043D\u0430 \u0432\u043D\u0435\u0448\u043D\u0438\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438 \u0447\u0435\u0440\u0435\u0437 URL ICS/iCal \u0434\u043B\u044F \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438.",defaultNoteTemplate:{name:"\u0428\u0430\u0431\u043B\u043E\u043D \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0434\u043B\u044F \u0437\u0430\u043C\u0435\u0442\u043E\u043A, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0437 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 ICS",placeholder:"\u0428\u0430\u0431\u043B\u043E\u043D\u044B/\u0428\u0430\u0431\u043B\u043E\u043D \u0441\u043E\u0431\u044B\u0442\u0438\u044F.md"},defaultNoteFolder:{name:"\u041F\u0430\u043F\u043A\u0430 \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u041F\u0430\u043F\u043A\u0430 \u0434\u043B\u044F \u0437\u0430\u043C\u0435\u0442\u043E\u043A, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0437 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 ICS",placeholder:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C/\u0421\u043E\u0431\u044B\u0442\u0438\u044F"},filenameFormat:{name:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 ICS",description:"\u041A\u0430\u043A \u0433\u0435\u043D\u0435\u0440\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u0438\u043C\u0435\u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432 \u0434\u043B\u044F \u0437\u0430\u043C\u0435\u0442\u043E\u043A, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0437 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 ICS",options:{title:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u044F",zettel:"\u0424\u043E\u0440\u043C\u0430\u0442 Zettelkasten",timestamp:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u043C\u0435\u0442\u043A\u0430",custom:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0448\u0430\u0431\u043B\u043E\u043D"}},customTemplate:{name:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0448\u0430\u0431\u043B\u043E\u043D \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430 ICS",description:"\u0428\u0430\u0431\u043B\u043E\u043D \u0434\u043B\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u0438\u043C\u0435\u043D \u0444\u0430\u0439\u043B\u043E\u0432 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 ICS",placeholder:"{date}-{title}"},useICSEndAsDue:{name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0432\u0440\u0435\u043C\u044F \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u044F ICS \u043A\u0430\u043A \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",description:"\u041F\u0440\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0435 \u0438\u0437 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F, \u0431\u0443\u0434\u0443\u0442 \u0438\u043C\u0435\u0442\u044C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F, \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u043D\u0430 \u0432\u0440\u0435\u043C\u044F \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u044F. \u0414\u043B\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u043D\u0430 \u0432\u0435\u0441\u044C \u0434\u0435\u043D\u044C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D \u043D\u0430 \u0434\u0430\u0442\u0443 \u0441\u043E\u0431\u044B\u0442\u0438\u044F. \u0414\u043B\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u0441 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u043C \u0432\u0440\u0435\u043C\u0435\u043D\u0435\u043C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0431\u0443\u0434\u0435\u0442 \u0432\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0432\u0440\u0435\u043C\u044F \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F."},recurringEventRelatedNotesMode:{name:"\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u0439",description:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u0431\u0443\u0434\u0443\u0442 \u043B\u0438 \u0437\u0430\u043C\u0435\u0442\u043A\u0438, \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0441 \u043E\u0434\u043D\u0438\u043C \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435\u043C \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u0432\u043D\u0435\u0448\u043D\u0435\u0433\u043E \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F, \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C\u0441\u044F \u0434\u043B\u044F \u0432\u0441\u0435\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043D\u043E\u0439 \u0441\u0435\u0440\u0438\u0438 \u0438\u043B\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0430.",options:{series:"\u0412\u0441\u044F \u0441\u0435\u0440\u0438\u044F",instance:"\u0422\u043E\u043B\u044C\u043A\u043E \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440"}}},subscriptionsList:{header:"\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u043E\u0434\u043F\u0438\u0441\u043E\u043A \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438",addSubscription:{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",description:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u0438\u0437 URL ICS/iCal \u0438\u043B\u0438 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430",buttonText:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443"},refreshAll:{name:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438",description:"\u0412\u0440\u0443\u0447\u043D\u0443\u044E \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0435 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438",buttonText:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435"},newCalendarName:"\u041D\u043E\u0432\u044B\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",emptyState:"\u041F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u044B. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443 \u0434\u043B\u044F \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u043D\u0435\u0448\u043D\u0438\u0445 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0435\u0439.",notices:{addSuccess:"\u041D\u043E\u0432\u0430\u044F \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0430 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 - \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0434\u0435\u0442\u0430\u043B\u0438",addFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443",serviceUnavailable:"\u0421\u0435\u0440\u0432\u0438\u0441 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 ICS \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D",refreshSuccess:"\u0412\u0441\u0435 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B",refreshFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438 \u043D\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0438",updateFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443",deleteSuccess:'\u0423\u0434\u0430\u043B\u0435\u043D\u0430 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0430 "{name}"',deleteFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443",enableFirst:"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443",refreshSubscriptionSuccess:'\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043E "{name}"',refreshSubscriptionFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443"},labels:{enabled:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u043E:",name:"\u0418\u043C\u044F:",type:"\u0422\u0438\u043F:",url:"URL:",filePath:"\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443:",color:"\u0426\u0432\u0435\u0442:",refreshMinutes:"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 (\u043C\u0438\u043D):"},typeOptions:{remote:"\u0423\u0434\u0430\u043B\u0435\u043D\u043D\u044B\u0439 URL",local:"\u041B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B"},placeholders:{calendarName:"\u0418\u043C\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",url:"URL ICS/iCal",filePath:"\u041F\u0443\u0442\u044C \u043A \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u043C\u0443 \u0444\u0430\u0439\u043B\u0443 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C.ics)",localFile:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C.ics"},statusLabels:{enabled:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u043E",disabled:"\u041E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043E",remote:"\u0423\u0434\u0430\u043B\u0435\u043D\u043D\u044B\u0439",localFile:"\u041B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B",remoteCalendar:"\u0423\u0434\u0430\u043B\u0435\u043D\u043D\u044B\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",localFileCalendar:"\u041B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B",synced:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043E {timeAgo}",error:"\u041E\u0448\u0438\u0431\u043A\u0430"},actions:{refreshNow:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0435\u0439\u0447\u0430\u0441",deleteSubscription:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443"},refreshNow:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C Now",confirmDelete:{title:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443",message:'\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443 "{name}"? \u042D\u0442\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043D\u0435\u043B\u044C\u0437\u044F \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C.',confirmText:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C"}},autoExport:{header:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u044D\u043A\u0441\u043F\u043E\u0440\u0442 ICS",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0444\u0430\u0439\u043B ICS.",enable:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u044D\u043A\u0441\u043F\u043E\u0440\u0442",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044C \u0444\u0430\u0439\u043B ICS \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u043C \u0441\u043E \u0432\u0441\u0435\u043C\u0438 \u0432\u0430\u0448\u0438\u043C\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438"},filePath:{name:"\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430",description:"\u041F\u0443\u0442\u044C, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D \u0444\u0430\u0439\u043B ICS (\u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043A\u043E\u0440\u043D\u044F \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430)",placeholder:"tasknotes-kalendar.ics"},interval:{name:"\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F (\u043C\u0435\u0436\u0434\u0443 5 \u0438 1440 \u043C\u0438\u043D\u0443\u0442)",description:"\u041A\u0430\u043A \u0447\u0430\u0441\u0442\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0442\u044C \u0444\u0430\u0439\u043B \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430",placeholder:"60"},useDuration:{name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043B\u044F \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u0441\u043E\u0431\u044B\u0442\u0438\u044F",description:"\u041A\u043E\u0433\u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u043E\u0446\u0435\u043D\u043A\u0443 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 (\u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C) \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u043C\u0435\u0441\u0442\u043E \u0441\u0440\u043E\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F. \u042D\u0442\u043E \u043F\u043E\u043B\u0435\u0437\u043D\u043E \u0434\u043B\u044F \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0432 GTD, \u0433\u0434\u0435 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E + \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0440\u0430\u0431\u043E\u0442\u044B, \u0430 \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0434\u0435\u0434\u043B\u0430\u0439\u043D\u044B."},exportNow:{name:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u0439\u0447\u0430\u0441",description:"\u0412\u0440\u0443\u0447\u043D\u0443\u044E \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043D\u0435\u043C\u0435\u0434\u043B\u0435\u043D\u043D\u044B\u0439 \u044D\u043A\u0441\u043F\u043E\u0440\u0442",buttonText:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u0439\u0447\u0430\u0441"},status:{title:"\u0421\u0442\u0430\u0442\u0443\u0441 \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430:",lastExport:"\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 \u044D\u043A\u0441\u043F\u043E\u0440\u0442: {time}",nextExport:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u044D\u043A\u0441\u043F\u043E\u0440\u0442: {time}",noExports:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u043E\u0432 \u0435\u0449\u0435 \u043D\u0435\u0442",notScheduled:"\u041D\u0435 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E",notInitialized:"\u0421\u0435\u0440\u0432\u0438\u0441 \u0430\u0432\u0442\u043E\u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430 \u043D\u0435 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D - \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 Obsidian",serviceNotInitialized:"\u0421\u043B\u0443\u0436\u0431\u0430 \u043D\u0435 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0430 - \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 Obsidian"},notices:{reloadRequired:"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 Obsidian \u0434\u043B\u044F \u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430.",exportSuccess:"\u0417\u0430\u0434\u0430\u0447\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u044B",exportFailure:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u043D\u0435 \u0443\u0434\u0430\u043B\u0441\u044F - \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043A\u043E\u043D\u0441\u043E\u043B\u044C \u0434\u043B\u044F \u0434\u0435\u0442\u0430\u043B\u0435\u0439",serviceUnavailable:"\u0421\u0435\u0440\u0432\u0438\u0441 \u0430\u0432\u0442\u043E\u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D"},excludeCompleted:{name:"\u0418\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u0415\u0441\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0441\u043A\u043B\u044E\u0447\u0430\u044E\u0442\u0441\u044F \u0438\u0437 ICS-\u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430. \u0417\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B \u0431\u0435\u0440\u0443\u0442\u0441\u044F \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u0432 \u0437\u0430\u0434\u0430\u0447."},excludeArchived:{name:"\u0418\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u0415\u0441\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0441\u043A\u043B\u044E\u0447\u0430\u044E\u0442\u0441\u044F \u0438\u0437 ICS-\u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430."},requireDueDate:{name:"\u0422\u0440\u0435\u0431\u043E\u0432\u0430\u0442\u044C \u0434\u0430\u0442\u0443 \u0441\u0440\u043E\u043A\u0430",description:"\u0415\u0441\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u0432 ICS-\u044D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0434\u0430\u0442\u043E\u0439 \u0441\u0440\u043E\u043A\u0430."},requireScheduledDate:{name:"\u0422\u0440\u0435\u0431\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443",description:"\u0415\u0441\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u0432 ICS-\u044D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u043E\u0439."}},googleCalendarExport:{header:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0437\u0430\u0434\u0430\u0447 \u0432 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0432\u0430\u0448\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C \u043A\u0430\u043A \u0441\u043E\u0431\u044B\u0442\u0438\u044F. \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u0432\u044B\u0448\u0435.",enable:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u044D\u043A\u0441\u043F\u043E\u0440\u0442 \u0437\u0430\u0434\u0430\u0447",description:"\u041F\u0440\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0434\u0430\u0442\u0430\u043C\u0438 \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C \u043A\u0430\u043A \u0441\u043E\u0431\u044B\u0442\u0438\u044F."},targetCalendar:{name:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",description:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u0432 \u043A\u0430\u043A\u043E\u043C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0435 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u0437\u0430\u0434\u0430\u0447.",placeholder:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C...",connectFirst:"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0435 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",primarySuffix:" (\u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439)"},syncTrigger:{name:"\u0422\u0440\u0438\u0433\u0433\u0435\u0440 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u0438",description:"\u041A\u0430\u043A\u0430\u044F \u0434\u0430\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043E\u043B\u0436\u043D\u0430 \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u044F.",options:{scheduled:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430",due:"\u0421\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",both:"\u041E\u0431\u0430 (\u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439)"}},allDayEvents:{name:"\u0421\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C \u043A\u0430\u043A \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u043D\u0430 \u0432\u0435\u0441\u044C \u0434\u0435\u043D\u044C",description:"\u041F\u0440\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043E\u0437\u0434\u0430\u044E\u0442\u0441\u044F \u043A\u0430\u043A \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u043D\u0430 \u0432\u0435\u0441\u044C \u0434\u0435\u043D\u044C. \u041F\u0440\u0438 \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043E\u0446\u0435\u043D\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0434\u043B\u044F \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438."},defaultDuration:{name:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0432 \u043C\u0438\u043D\u0443\u0442\u0430\u0445 \u0434\u043B\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u0441 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u043C \u0432\u0440\u0435\u043C\u0435\u043D\u0435\u043C (\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F, \u043A\u043E\u0433\u0434\u0430 \u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435\u0442 \u043E\u0446\u0435\u043D\u043A\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438)."},eventTitleTemplate:{name:"\u0428\u0430\u0431\u043B\u043E\u043D \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u0441\u043E\u0431\u044B\u0442\u0438\u044F",description:"\u0428\u0430\u0431\u043B\u043E\u043D \u0434\u043B\u044F \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432 \u0441\u043E\u0431\u044B\u0442\u0438\u0439. \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435: {{title}}, {{status}}, {{priority}}",placeholder:"{{title}}"},includeDescription:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",description:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (\u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442, \u0441\u0442\u0430\u0442\u0443\u0441, \u0442\u0435\u0433\u0438 \u0438 \u0442.\u0434.) \u0432 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u044F."},includeObsidianLink:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430 Obsidian",description:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 Obsidian \u0432 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u044F."},defaultReminder:{name:"\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0438\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043A \u0441\u043E\u0431\u044B\u0442\u0438\u044F\u043C Google Calendar \u0441 \u0437\u0430\u0434\u0430\u043D\u043D\u044B\u043C \u0432\u0440\u0435\u043C\u0435\u043D\u0435\u043C. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043C\u0438\u043D\u0443\u0442\u044B \u0434\u043E \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E. \u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E. \u0427\u0430\u0441\u0442\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F: 15, 30, 60, 1440."},automaticSyncBehavior:{header:"\u041F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u0438"},syncOnCreate:{name:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u043F\u0440\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0438 \u043D\u043E\u0432\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438."},syncOnUpdate:{name:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438."},syncOnComplete:{name:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u041E\u0431\u043D\u043E\u0432\u043B\u044F\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u043F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0433\u0430\u043B\u043E\u0447\u043A\u0443 \u043A \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0443)."},syncOnDelete:{name:"\u0423\u0434\u0430\u043B\u044F\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u0435 \u043F\u0440\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u0423\u0434\u0430\u043B\u044F\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u043F\u0440\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438."},manualSyncActions:{header:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0440\u0443\u0447\u043D\u043E\u0439 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u0438"},syncAllTasks:{name:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C. \u0411\u0443\u0434\u0443\u0442 \u0441\u043E\u0437\u0434\u0430\u043D\u044B \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0435\u0449\u0451 \u043D\u0435 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u044B.",buttonText:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435"},unlinkAllTasks:{name:"\u041E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",description:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0435 \u0441\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447\u0430-\u0441\u043E\u0431\u044B\u0442\u0438\u0435 \u0431\u0435\u0437 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F.",buttonText:"\u041E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u0432\u0441\u0435",confirmTitle:"\u041E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",confirmMessage:"\u042D\u0442\u043E \u0443\u0434\u0430\u043B\u0438\u0442 \u0432\u0441\u0435 \u0441\u0432\u044F\u0437\u0438 \u043C\u0435\u0436\u0434\u0443 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438 \u0438 \u0441\u043E\u0431\u044B\u0442\u0438\u044F\u043C\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F. \u0421\u043E\u0431\u044B\u0442\u0438\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u043E\u0441\u0442\u0430\u043D\u0443\u0442\u0441\u044F, \u043D\u043E \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447. \u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B?",confirmButtonText:"\u041E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u0432\u0441\u0435"},notices:{notEnabled:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u043D\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D. \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0435\u0433\u043E \u0432 \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 > \u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438.",notEnabledOrConfigured:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u043D\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D \u0438\u043B\u0438 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D",serviceNotAvailable:"\u0421\u0435\u0440\u0432\u0438\u0441 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D",syncResults:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043E: {synced}, \u041E\u0448\u0438\u0431\u043E\u043A: {failed}, \u041F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043E: {skipped}",taskSynced:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0430 \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C",noActiveFile:"\u041D\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430",notATask:"\u0422\u0435\u043A\u0443\u0449\u0438\u0439 \u0444\u0430\u0439\u043B \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0435\u0439",noDateToSync:"\u0423 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435\u0442 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u0438\u043B\u0438 \u0441\u0440\u043E\u043A\u0430 \u0434\u043B\u044F \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u0438",syncFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C: {message}",connectionExpired:"\u0421\u0440\u043E\u043A \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F \u043A Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044E \u0438\u0441\u0442\u0451\u043A. \u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u0441\u044C \u0437\u0430\u043D\u043E\u0432\u043E \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0435 \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 > \u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438.",syncingTasks:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u044F {total} \u0437\u0430\u0434\u0430\u0447 \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C...",syncComplete:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430: {synced} \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043E, {failed} \u043E\u0448\u0438\u0431\u043E\u043A, {skipped} \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043E",eventsDeletedAndUnlinked:"\u0412\u0441\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u044B \u0438 \u043E\u0442\u0432\u044F\u0437\u0430\u043D\u044B",tasksUnlinked:"\u0412\u0441\u0435 \u0441\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447 \u0443\u0434\u0430\u043B\u0435\u043D\u044B"},eventDescription:{untitledTask:"\u0411\u0435\u0437\u044B\u043C\u044F\u043D\u043D\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430",priority:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442: {value}",status:"\u0421\u0442\u0430\u0442\u0443\u0441: {value}",due:"\u0421\u0440\u043E\u043A: {value}",scheduled:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E: {value}",timeEstimate:"\u041E\u0446\u0435\u043D\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438: {value}",tags:"\u0422\u0435\u0433\u0438: {value}",contexts:"\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B: {value}",projects:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B: {value}",openInObsidian:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 Obsidian"}},httpApi:{header:"HTTP API",description:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C HTTP API \u0434\u043B\u044F \u0432\u043D\u0435\u0448\u043D\u0438\u0445 \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439 \u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.",enable:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C HTTP API",description:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 HTTP \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043B\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A API"},port:{name:"\u041F\u043E\u0440\u0442 API",description:"\u041D\u043E\u043C\u0435\u0440 \u043F\u043E\u0440\u0442\u0430 \u0434\u043B\u044F \u0441\u0435\u0440\u0432\u0435\u0440\u0430 HTTP API",placeholder:"3000"},authToken:{name:"\u0422\u043E\u043A\u0435\u043D \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 API",description:"\u0422\u043E\u043A\u0435\u043D, \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0439 \u0434\u043B\u044F \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 API (\u043E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C \u0434\u043B\u044F \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044F \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438)",placeholder:"\u0432\u0430\u0448-\u0441\u0435\u043A\u0440\u0435\u0442\u043D\u044B\u0439-\u0442\u043E\u043A\u0435\u043D"},mcp:{enable:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0435\u0440\u0432\u0435\u0440 MCP",description:"\u041F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B TaskNotes \u0447\u0435\u0440\u0435\u0437 Model Context Protocol \u043D\u0430 \u043A\u043E\u043D\u0435\u0447\u043D\u043E\u0439 \u0442\u043E\u0447\u043A\u0435 /mcp. \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u044B\u0439 HTTP API."}},endpoints:{header:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0435 \u0442\u043E\u0447\u043A\u0438 API",expandIcon:"\u25B6",collapseIcon:"\u25BC"}},webhooks:{header:"\u0412\u0435\u0431-\u0445\u0443\u043A\u0438",description:{overview:"\u0412\u0435\u0431-\u0445\u0443\u043A\u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u0432 \u0440\u0435\u0430\u043B\u044C\u043D\u043E\u043C \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0432\u043D\u0435\u0448\u043D\u0438\u043C \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043C \u043F\u0440\u0438 \u0432\u043E\u0437\u043D\u0438\u043A\u043D\u043E\u0432\u0435\u043D\u0438\u0438 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 TaskNotes.",usage:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0432\u0435\u0431-\u0445\u0443\u043A\u0438 \u0434\u043B\u044F \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430\u043C\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043C\u0438 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u043C\u0438 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u043C\u0438."},addWebhook:{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u0435\u0431-\u0445\u0443\u043A",description:"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u043A\u043E\u043D\u0435\u0447\u043D\u0443\u044E \u0442\u043E\u0447\u043A\u0443 \u0432\u0435\u0431-\u0445\u0443\u043A\u0430",buttonText:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u0435\u0431-\u0445\u0443\u043A"},emptyState:{message:"\u0412\u0435\u0431-\u0445\u0443\u043A\u0438 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u044B. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0432\u0435\u0431-\u0445\u0443\u043A \u0434\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u0432 \u0440\u0435\u0430\u043B\u044C\u043D\u043E\u043C \u0432\u0440\u0435\u043C\u0435\u043D\u0438.",buttonText:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u0435\u0431-\u0445\u0443\u043A"},labels:{active:"\u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0439:",url:"URL:",events:"\u0421\u043E\u0431\u044B\u0442\u0438\u044F:",transform:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435:"},placeholders:{url:"URL \u0432\u0435\u0431-\u0445\u0443\u043A\u0430",noEventsSelected:"\u0421\u043E\u0431\u044B\u0442\u0438\u044F \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u044B",rawPayload:"\u0421\u044B\u0440\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 (\u0431\u0435\u0437 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F)"},statusLabels:{active:"\u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0439",inactive:"\u041D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439",created:"\u0421\u043E\u0437\u0434\u0430\u043D {timeAgo}"},actions:{editEvents:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u044F",delete:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C"},editEvents:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u044F",notices:{urlUpdated:"URL \u0432\u0435\u0431-\u0445\u0443\u043A\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D",enabled:"\u0412\u0435\u0431-\u0445\u0443\u043A \u0432\u043A\u043B\u044E\u0447\u0435\u043D",disabled:"\u0412\u0435\u0431-\u0445\u0443\u043A \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D",created:"\u0412\u0435\u0431-\u0445\u0443\u043A \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0437\u0434\u0430\u043D",deleted:"\u0412\u0435\u0431-\u0445\u0443\u043A \u0443\u0434\u0430\u043B\u0435\u043D",updated:"\u0412\u0435\u0431-\u0445\u0443\u043A \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D"},confirmDelete:{title:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0435\u0431-\u0445\u0443\u043A",message:`\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0432\u0435\u0431-\u0445\u0443\u043A?
|
||
|
||
URL: {url}
|
||
|
||
\u042D\u0442\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043D\u0435\u043B\u044C\u0437\u044F \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C.`,confirmText:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C"},cardHeader:"\u0412\u0435\u0431-\u0445\u0443\u043A",cardFields:{active:"\u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0439:",url:"URL:",events:"\u0421\u043E\u0431\u044B\u0442\u0438\u044F:",transform:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435:"},eventsDisplay:{noEvents:"\u0421\u043E\u0431\u044B\u0442\u0438\u044F \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u044B"},transformDisplay:{noTransform:"\u0421\u044B\u0440\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 (\u0431\u0435\u0437 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F)"},secretModal:{title:"\u0421\u0435\u043A\u0440\u0435\u0442 \u0432\u0435\u0431-\u0445\u0443\u043A\u0430 \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u043D",description:"\u0412\u0430\u0448 \u0441\u0435\u043A\u0440\u0435\u0442 \u0432\u0435\u0431-\u0445\u0443\u043A\u0430 \u0431\u044B\u043B \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u043D. \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u0435 \u044D\u0442\u043E\u0442 \u0441\u0435\u043A\u0440\u0435\u0442, \u0442\u0430\u043A \u043A\u0430\u043A \u0432\u044B \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u0441\u043C\u043E\u0436\u0435\u0442\u0435 \u0435\u0433\u043E \u0443\u0432\u0438\u0434\u0435\u0442\u044C:",usage:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u044D\u0442\u043E\u0442 \u0441\u0435\u043A\u0440\u0435\u0442 \u0434\u043B\u044F \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u0435\u0431-\u0445\u0443\u043A\u0430 \u0432 \u0432\u0430\u0448\u0435\u043C \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0449\u0435\u043C \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438.",gotIt:"\u041F\u043E\u043D\u044F\u0442\u043D\u043E"},editModal:{title:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0435\u0431-\u0445\u0443\u043A",eventsHeader:"\u0421\u043E\u0431\u044B\u0442\u0438\u044F \u0434\u043B\u044F \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438"},events:{taskCreated:{label:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0430",description:"\u041F\u0440\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0438 \u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447"},taskUpdated:{label:"\u0417\u0430\u0434\u0430\u0447\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430",description:"\u041F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447"},taskCompleted:{label:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430",description:"\u041F\u0440\u0438 \u043E\u0442\u043C\u0435\u0442\u043A\u0435 \u0437\u0430\u0434\u0430\u0447 \u043A\u0430\u043A \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044B\u0445"},taskDeleted:{label:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0443\u0434\u0430\u043B\u0435\u043D\u0430",description:"\u041F\u0440\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447"},taskArchived:{label:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0430",description:"\u041F\u0440\u0438 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447"},taskUnarchived:{label:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0430",description:"\u041F\u0440\u0438 \u0440\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447"},timeStarted:{label:"\u0412\u0440\u0435\u043C\u044F \u043D\u0430\u0447\u0430\u0442\u043E",description:"\u041F\u0440\u0438 \u043D\u0430\u0447\u0430\u043B\u0435 \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u0438"},timeStopped:{label:"\u0412\u0440\u0435\u043C\u044F \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E",description:"\u041F\u0440\u0438 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0435 \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u0438"},pomodoroStarted:{label:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u043D\u0430\u0447\u0430\u0442\u043E",description:"\u041F\u0440\u0438 \u043D\u0430\u0447\u0430\u043B\u0435 \u0441\u0435\u0441\u0441\u0438\u0439 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E"},pomodoroCompleted:{label:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E",description:"\u041F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u0441\u0435\u0441\u0441\u0438\u0439 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E"},pomodoroInterrupted:{label:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u043F\u0440\u0435\u0440\u0432\u0430\u043D\u043E",description:"\u041F\u0440\u0438 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0435 \u0441\u0435\u0441\u0441\u0438\u0439 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E"},recurringCompleted:{label:"\u042D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D",description:"\u041F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u043E\u0432 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0437\u0430\u0434\u0430\u0447"},reminderTriggered:{label:"\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0441\u0440\u0430\u0431\u043E\u0442\u0430\u043B\u043E",description:"\u041F\u0440\u0438 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0439 \u0437\u0430\u0434\u0430\u0447"}},modals:{secretGenerated:{title:"\u0421\u0435\u043A\u0440\u0435\u0442 \u0432\u0435\u0431-\u0445\u0443\u043A\u0430 \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u043D",description:"\u0412\u0430\u0448 \u0441\u0435\u043A\u0440\u0435\u0442 \u0432\u0435\u0431-\u0445\u0443\u043A\u0430 \u0431\u044B\u043B \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u043D. \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u0435 \u044D\u0442\u043E\u0442 \u0441\u0435\u043A\u0440\u0435\u0442, \u0442\u0430\u043A \u043A\u0430\u043A \u0432\u044B \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u0441\u043C\u043E\u0436\u0435\u0442\u0435 \u0435\u0433\u043E \u0443\u0432\u0438\u0434\u0435\u0442\u044C:",usage:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u044D\u0442\u043E\u0442 \u0441\u0435\u043A\u0440\u0435\u0442 \u0434\u043B\u044F \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u0435\u0431-\u0445\u0443\u043A\u0430 \u0432 \u0432\u0430\u0448\u0435\u043C \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0449\u0435\u043C \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438.",buttonText:"\u041F\u043E\u043D\u044F\u0442\u043D\u043E"},edit:{title:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0435\u0431-\u0445\u0443\u043A",eventsSection:"\u0421\u043E\u0431\u044B\u0442\u0438\u044F \u0434\u043B\u044F \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438",transformSection:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F (\u043E\u043F\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u043E)",headersSection:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432",transformFile:{name:"\u0424\u0430\u0439\u043B \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F",description:"\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u0448\u0430\u0431\u043B\u043E\u043D\u0430 .json \u0432 \u0432\u0430\u0448\u0435\u043C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432\u0435\u0431-\u0445\u0443\u043A\u0430",placeholder:"simple-template.json"},customHeaders:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438",description:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438 TaskNotes (\u0442\u0438\u043F \u0441\u043E\u0431\u044B\u0442\u0438\u044F, \u043F\u043E\u0434\u043F\u0438\u0441\u044C, ID \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438). \u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u0434\u043B\u044F Discord, Slack \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0432 \u0441\u043E \u0441\u0442\u0440\u043E\u0433\u0438\u043C\u0438 \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430\u043C\u0438 CORS."},buttons:{cancel:"\u041E\u0442\u043C\u0435\u043D\u0430",save:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F"},notices:{selectAtLeastOneEvent:"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u043E \u0441\u043E\u0431\u044B\u0442\u0438\u0435"}},add:{title:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u0435\u0431-\u0445\u0443\u043A",eventsSection:"\u0421\u043E\u0431\u044B\u0442\u0438\u044F \u0434\u043B\u044F \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0438",transformSection:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F (\u043E\u043F\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u043E)",headersSection:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432",url:{name:"URL \u0432\u0435\u0431-\u0445\u0443\u043A\u0430",description:"\u041A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430, \u043A\u0443\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u0434\u0430\u043D\u043D\u044B\u0435 \u0432\u0435\u0431-\u0445\u0443\u043A\u0430",placeholder:"https://your-service.com/webhook"},transformFile:{name:"\u0424\u0430\u0439\u043B \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F",description:"\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u0448\u0430\u0431\u043B\u043E\u043D\u0430 .json \u0432 \u0432\u0430\u0448\u0435\u043C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432\u0435\u0431-\u0445\u0443\u043A\u0430",placeholder:"simple-template.json"},customHeaders:{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438",description:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438 TaskNotes (\u0442\u0438\u043F \u0441\u043E\u0431\u044B\u0442\u0438\u044F, \u043F\u043E\u0434\u043F\u0438\u0441\u044C, ID \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438). \u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u0434\u043B\u044F Discord, Slack \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0432 \u0441\u043E \u0441\u0442\u0440\u043E\u0433\u0438\u043C\u0438 \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430\u043C\u0438 CORS."},transformHelp:{title:"\u0428\u0430\u0431\u043B\u043E\u043D\u044B \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F JSON \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u044E\u0442 \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435 \u0432\u0435\u0431-\u0445\u0443\u043A\u0430:",jsFiles:"",jsDescription:"",jsonFiles:"\u0424\u0430\u0439\u043B\u044B .json:",jsonDescription:" \u0428\u0430\u0431\u043B\u043E\u043D\u044B \u0441 ",jsonVariable:"${data.task.title}",leaveEmpty:"\u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C:",leaveEmptyDescription:" \u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0441\u044B\u0440\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435",example:"\u041F\u0440\u0438\u043C\u0435\u0440:",exampleFile:"simple-template.json"},buttons:{cancel:"\u041E\u0442\u043C\u0435\u043D\u0430",add:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u0435\u0431-\u0445\u0443\u043A"},notices:{urlRequired:"URL \u0432\u0435\u0431-\u0445\u0443\u043A\u0430 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u0435\u043D",selectAtLeastOneEvent:"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u043E \u0441\u043E\u0431\u044B\u0442\u0438\u0435"}}}},otherIntegrations:{header:"\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u043F\u043B\u0430\u0433\u0438\u043D\u0430\u043C\u0438",description:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u043F\u043B\u0430\u0433\u0438\u043D\u0430\u043C\u0438 Obsidian."},mdbaseSpec:{header:"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u043E\u0432 mdbase",learnMore:"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435 \u043E mdbase-spec",enable:{name:"\u0421\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u043E\u0432 mdbase",description:"\u0421\u043E\u0437\u0434\u0430\u0451\u0442 \u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0444\u0430\u0439\u043B\u044B \u0442\u0438\u043F\u043E\u0432 mdbase (mdbase.yaml \u0438 _types/task.md) \u0432 \u043A\u043E\u0440\u043D\u0435 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A."}},timeFormats:{justNow:"\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u043E",minutesAgo:"{minutes} \u043C\u0438\u043D\u0443\u0442{plural} \u043D\u0430\u0437\u0430\u0434",hoursAgo:"{hours} \u0447\u0430\u0441{plural} \u043D\u0430\u0437\u0430\u0434",daysAgo:"{days} \u0434\u043D{plural} \u043D\u0430\u0437\u0430\u0434"}}},notices:{languageChanged:"\u042F\u0437\u044B\u043A \u0438\u0437\u043C\u0435\u043D\u0435\u043D \u043D\u0430 {language}.",releaseAvailable:{message:"\u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D TaskNotes {version}.",action:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 \u043F\u043B\u0430\u0433\u0438\u043D\u0430\u0445 \u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0430"},exportTasksFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043A\u0430\u043A \u0444\u0430\u0439\u043B ICS",icsNoteCreatedSuccess:"\u0417\u0430\u043C\u0435\u0442\u043A\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0437\u0434\u0430\u043D\u0430",icsCreationModalOpenFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0435 \u043E\u043A\u043D\u043E \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F",icsNoteLinkSuccess:'\u0417\u0430\u043C\u0435\u0442\u043A\u0430 "{fileName}" \u0441\u0432\u044F\u0437\u0430\u043D\u0430 \u0441 \u0441\u043E\u0431\u044B\u0442\u0438\u0435\u043C ICS',icsTaskCreatedSuccess:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0430: {title}",icsRelatedItemsRefreshed:"\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B",icsFileNotFound:"\u0424\u0430\u0439\u043B \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0438\u043B\u0438 \u043D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u0435\u043D",icsFileOpenFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0444\u0430\u0439\u043B",timeblockAttachmentExists:'"{fileName}" \u0443\u0436\u0435 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0435\u043D',timeblockAttachmentAdded:'"{fileName}" \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D \u043A\u0430\u043A \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435',timeblockAttachmentRemoved:'\u0423\u0434\u0430\u043B\u0438\u0442\u044Cd "{fileName}" from attachments',timeblockFileTypeNotSupported:'\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u043E\u0442\u043A\u0440\u044B\u0442\u044C "{fileName}" - \u0442\u0438\u043F \u0444\u0430\u0439\u043B\u0430 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F',timeblockTitleRequired:"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0434\u043B\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430",timeblockUpdatedSuccess:'\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0431\u043B\u043E\u043A "{title}" \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D',timeblockUpdateFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0431\u043B\u043E\u043A. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043A\u043E\u043D\u0441\u043E\u043B\u044C \u0434\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0435\u0439.",timeblockDeletedSuccess:'\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0431\u043B\u043E\u043A "{title}" \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0443\u0434\u0430\u043B\u0435\u043D',timeblockDeleteFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0431\u043B\u043E\u043A. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043A\u043E\u043D\u0441\u043E\u043B\u044C \u0434\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0435\u0439.",timeblockRequiredFieldsMissing:"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u0432\u0441\u0435 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u044F",agendaLoadingFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u043F\u043E\u0432\u0435\u0441\u0442\u043A\u0438 \u0434\u043D\u044F. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C.",statsLoadingFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u0440\u043E\u0435\u043A\u0442\u0430."},commands:{openCalendarView:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043C\u0438\u043D\u0438-\u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",openAdvancedCalendarView:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",openTasksView:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447",openNotesView:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0437\u0430\u043C\u0435\u0442\u043E\u043A",openAgendaView:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u043B\u0430\u043D\u043E\u0432",openPomodoroView:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0442\u0430\u0439\u043C\u0435\u0440 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",openKanbanView:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0434\u043E\u0441\u043A\u0443 \u043A\u0430\u043D\u0431\u0430\u043D",updateDefaultBaseFiles:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u044B Base \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",openPomodoroStats:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",openStatisticsView:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443 \u0437\u0430\u0434\u0430\u0447 \u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432",createNewTask:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443",convertCurrentNoteToTask:{name:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0432 \u0437\u0430\u0434\u0430\u0447\u0443",noActiveFile:"\u041D\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430 \u0434\u043B\u044F \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u044F",alreadyTask:"\u042D\u0442\u0430 \u0437\u0430\u043C\u0435\u0442\u043A\u0430 \u0443\u0436\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0435\u0439",success:"'{title}' \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u043E \u0432 \u0437\u0430\u0434\u0430\u0447\u0443"},convertToTaskNote:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0447\u0435\u043A\u0431\u043E\u043A\u0441-\u0437\u0430\u0434\u0430\u0447\u0443 \u0432 TaskNote",convertAllTasksInNote:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0437\u0430\u043C\u0435\u0442\u043A\u0435",insertTaskNoteLink:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0443",createInlineTask:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443",quickActionsCurrentTask:"\u0411\u044B\u0441\u0442\u0440\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0434\u043B\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438",goToTodayNote:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0437\u0430\u043C\u0435\u0442\u043A\u0435 \u0441\u0435\u0433\u043E\u0434\u043D\u044F",startPomodoro:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u0442\u0430\u0439\u043C\u0435\u0440 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",stopPomodoro:"\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0442\u0430\u0439\u043C\u0435\u0440 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",pauseResumePomodoro:"\u041F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C/\u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0442\u0430\u0439\u043C\u0435\u0440 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E",refreshCache:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u044D\u0448",exportAllTasksIcs:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043A\u0430\u043A \u0444\u0430\u0439\u043B ICS",viewReleaseNotes:"\u041F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u044F \u043A \u0432\u044B\u043F\u0443\u0441\u043A\u0443",startTimeTrackingWithSelector:"\u041D\u0430\u0447\u0430\u0442\u044C \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 (\u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443)",editTimeEntries:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 (\u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443)",createOrOpenTask:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0438\u043B\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",createOrOpenTaskWithTracking:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0438\u043B\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u043D\u0430\u0447\u0430\u0442\u044C \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",rolloverOverdueScheduledTasks:"\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0430 \u0441\u0435\u0433\u043E\u0434\u043D\u044F",syncAllTasksGoogleCalendar:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C",syncCurrentTaskGoogleCalendar:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C",quickActionsTaskUnderCursor:"\u0411\u044B\u0441\u0442\u0440\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u0434 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C",editCurrentTask:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443",cycleCurrentTaskStatus:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441 \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438",cycleCurrentTaskPriority:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438",addProjectToCurrentTask:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442 \u043A \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435",addSubtaskToCurrentNote:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0443 \u043A \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0437\u0430\u043C\u0435\u0442\u043A\u0435"},modals:{deviceCode:{title:"\u0410\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044F Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",instructions:{intro:"\u0427\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C, \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0448\u0430\u0433\u0438:"},steps:{open:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C",inBrowser:"\u0432 \u0432\u0430\u0448\u0435\u043C \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435",enterCode:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u044D\u0442\u043E\u0442 \u043A\u043E\u0434 \u043F\u0440\u0438 \u0437\u0430\u043F\u0440\u043E\u0441\u0435:",signIn:"\u0412\u043E\u0439\u0434\u0438\u0442\u0435 \u0432 \u0441\u0432\u043E\u0439 \u0430\u043A\u043A\u0430\u0443\u043D\u0442 Google \u0438 \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0434\u043E\u0441\u0442\u0443\u043F",returnToObsidian:"\u0412\u0435\u0440\u043D\u0438\u0442\u0435\u0441\u044C \u0432 Obsidian (\u044D\u0442\u043E \u043E\u043A\u043D\u043E \u0437\u0430\u043A\u0440\u043E\u0435\u0442\u0441\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438)"},codeLabel:"\u0412\u0430\u0448 \u043A\u043E\u0434:",copyCodeAriaLabel:"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u0434",waitingForAuthorization:"\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u0438...",openBrowserButton:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C Browser",cancelButton:"\u041E\u0442\u043C\u0435\u043D\u0430",expiresMinutesSeconds:"\u041A\u043E\u0434 \u0438\u0441\u0442\u0435\u043A\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 {minutes}\u043C {seconds}\u0441",expiresSeconds:"\u041A\u043E\u0434 \u0438\u0441\u0442\u0435\u043A\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 {seconds}\u0441"},icsEventInfo:{calendarEventHeading:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C Event",titleLabel:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",calendarLabel:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",dateTimeLabel:"\u0414\u0430\u0442\u0430 & Time",locationLabel:"\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435",descriptionLabel:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",urlLabel:"URL",relatedNotesHeading:"\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u0438 \u0437\u0430\u0434\u0430\u0447\u0438",noRelatedItems:"\u0414\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u0438\u043B\u0438 \u0437\u0430\u0434\u0430\u0447.",typeTask:"\u0417\u0430\u0434\u0430\u0447\u0430",typeNote:"\u0417\u0430\u043C\u0435\u0442\u043A\u0430",actionsHeading:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F",createFromEventLabel:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C from Event",createFromEventDesc:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C a new note or task from this calendar event",linkExistingLabel:"\u0421\u0432\u044F\u0437\u0430\u0442\u044C \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0443\u044E",linkExistingDesc:"\u0421\u0432\u044F\u0437\u0430\u0442\u044C \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0441 \u044D\u0442\u0438\u043C \u0441\u043E\u0431\u044B\u0442\u0438\u0435\u043C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F"},timeblockInfo:{editHeading:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0431\u043B\u043E\u043A",dateTimeLabel:"\u0414\u0430\u0442\u0430 & Time: ",titleLabel:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",titleDesc:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 for your timeblock",titlePlaceholder:"\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0421\u0435\u0441\u0441\u0438\u044F \u0433\u043B\u0443\u0431\u043E\u043A\u043E\u0439 \u0440\u0430\u0431\u043E\u0442\u044B",descriptionLabel:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",descriptionDesc:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0434\u043B\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430",descriptionPlaceholder:"\u0421\u043E\u0441\u0440\u0435\u0434\u043E\u0442\u043E\u0447\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u043D\u043E\u0432\u044B\u0445 \u0444\u0443\u043D\u043A\u0446\u0438\u044F\u0445, \u0431\u0435\u0437 \u043F\u0440\u0435\u0440\u044B\u0432\u0430\u043D\u0438\u0439",colorLabel:"\u0426\u0432\u0435\u0442",colorDesc:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u0446\u0432\u0435\u0442 \u0434\u043B\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430",colorPlaceholder:"#3b82f6",attachmentsLabel:"\u0412\u043B\u043E\u0436\u0435\u043D\u0438\u044F",attachmentsDesc:"\u0424\u0430\u0439\u043B\u044B \u0438\u043B\u0438 \u0437\u0430\u043C\u0435\u0442\u043A\u0438, \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0441 \u044D\u0442\u0438\u043C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u043C \u0431\u043B\u043E\u043A\u043E\u043C",addAttachmentButton:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435",addAttachmentTooltip:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043D\u0435\u0447\u0435\u0442\u043A\u043E\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430",deleteButton:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0431\u043B\u043E\u043A",saveButton:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",deleteConfirmationTitle:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0431\u043B\u043E\u043A"},timeblockCreation:{heading:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C timeblock",dateLabel:"\u0414\u0430\u0442\u0430: ",titleLabel:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",titleDesc:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 for your timeblock",titlePlaceholder:"\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0421\u0435\u0441\u0441\u0438\u044F \u0433\u043B\u0443\u0431\u043E\u043A\u043E\u0439 \u0440\u0430\u0431\u043E\u0442\u044B",startTimeLabel:"\u041D\u0430\u0447\u0430\u043B\u043E time",startTimeDesc:"\u041A\u043E\u0433\u0434\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0431\u043B\u043E\u043A",startTimePlaceholder:"09:00",endTimeLabel:"\u041A\u043E\u043D\u0435\u0446 time",endTimeDesc:"\u041A\u043E\u0433\u0434\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0431\u043B\u043E\u043A",endTimePlaceholder:"11:00",descriptionLabel:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",descriptionDesc:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0434\u043B\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430",descriptionPlaceholder:"\u0421\u043E\u0441\u0440\u0435\u0434\u043E\u0442\u043E\u0447\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u043D\u043E\u0432\u044B\u0445 \u0444\u0443\u043D\u043A\u0446\u0438\u044F\u0445, \u0431\u0435\u0437 \u043F\u0440\u0435\u0440\u044B\u0432\u0430\u043D\u0438\u0439",colorLabel:"\u0426\u0432\u0435\u0442",colorDesc:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u0446\u0432\u0435\u0442 \u0434\u043B\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430",colorPlaceholder:"#3b82f6",attachmentsLabel:"\u0412\u043B\u043E\u0436\u0435\u043D\u0438\u044F",attachmentsDesc:"\u0424\u0430\u0439\u043B\u044B \u0438\u043B\u0438 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u0434\u043B\u044F \u0441\u0432\u044F\u0437\u0438 \u0441 \u044D\u0442\u0438\u043C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u043C \u0431\u043B\u043E\u043A\u043E\u043C",addAttachmentButton:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435",addAttachmentTooltip:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043D\u0435\u0447\u0435\u0442\u043A\u043E\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430",createButton:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C timeblock"},calendarEventCreation:{heading:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u0435 \u0432 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0435",dateTimeLabel:"\u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F: ",titleLabel:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",titleDesc:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u0432 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0435",titlePlaceholder:"\u043D\u0430\u043F\u0440., \u0421\u043E\u0432\u0435\u0449\u0430\u043D\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B",calendarLabel:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",calendarDesc:"\u0412 \u043A\u0430\u043A\u043E\u043C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0435 \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u0435",descriptionLabel:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",descriptionDesc:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u044F",descriptionPlaceholder:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u043E \u0441\u043E\u0431\u044B\u0442\u0438\u0438...",locationLabel:"\u041C\u0435\u0441\u0442\u043E",locationDesc:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u043C\u0435\u0441\u0442\u043E \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u044F",locationPlaceholder:"\u043D\u0430\u043F\u0440., \u041F\u0435\u0440\u0435\u0433\u043E\u0432\u043E\u0440\u043D\u0430\u044F \u0410",createButton:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u0435",titleRequired:"\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u044F",noCalendarSelected:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D",success:'\u0421\u043E\u0431\u044B\u0442\u0438\u0435 "{title}" \u0441\u043E\u0437\u0434\u0430\u043D\u043E \u0432 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0435',error:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u043E\u0431\u044B\u0442\u0438\u0435 \u0432 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0435: {message}"},icsNoteCreation:{heading:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C from ICS Event",titleLabel:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",titleDesc:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 for the new content",folderLabel:"\u041F\u0430\u043F\u043A\u0430",folderDesc:"\u041F\u0430\u043F\u043A\u0430 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F (\u043E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C \u0434\u043B\u044F \u043A\u043E\u0440\u043D\u044F \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430)",folderPlaceholder:"\u043F\u0430\u043F\u043A\u0430/\u043F\u043E\u0434\u043F\u0430\u043F\u043A\u0430",createButton:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C",startLabel:"\u041D\u0430\u0447\u0430\u043B\u043E: ",endLabel:"\u041A\u043E\u043D\u0435\u0446: ",locationLabel:"\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435: ",calendarLabel:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C: ",useTemplateLabel:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D",useTemplateDesc:"\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D \u043F\u0440\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0438 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E",templatePathLabel:"\u041F\u0443\u0442\u044C \u043A \u0448\u0430\u0431\u043B\u043E\u043D\u0443",templatePathDesc:"\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u0448\u0430\u0431\u043B\u043E\u043D\u0430",templatePathPlaceholder:"\u0448\u0430\u0431\u043B\u043E\u043D\u044B/\u0448\u0430\u0431\u043B\u043E\u043D-\u0437\u0430\u043C\u0435\u0442\u043A\u0438-ics.md"},unscheduledTasksSelector:{title:"\u041D\u0435\u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",placeholder:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0434\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u043D\u0435\u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447...",instructions:{navigate:"\u0434\u043B\u044F \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438",schedule:"\u0434\u043B\u044F \u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",dismiss:"\u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B"}},migration:{title:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u043D\u043E\u0432\u0443\u044E \u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0439",description:"TaskNotes \u0442\u0435\u043F\u0435\u0440\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0435 \u0448\u0430\u0431\u043B\u043E\u043D\u044B RRULE \u0434\u043B\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0439, \u0447\u0442\u043E \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0435\u0442 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C \u0431\u043E\u043B\u0435\u0435 \u0441\u043B\u043E\u0436\u043D\u044B\u0435 \u0440\u0430\u0441\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0438 \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043B\u0443\u0447\u0448\u0443\u044E \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u044C \u0441 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u043C\u0438.",tasksFound:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043E {count} \u0437\u0430\u0434\u0430\u0447(\u0438) \u0441\u043E \u0441\u0442\u0430\u0440\u044B\u043C\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0430\u043C\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0439",noMigrationNeeded:"\u0417\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u0442\u0440\u0435\u0431\u0443\u044E\u0442 \u043C\u0438\u0433\u0440\u0430\u0446\u0438\u0438",warnings:{title:"\u041F\u0435\u0440\u0435\u0434 \u043D\u0430\u0447\u0430\u043B\u043E\u043C:",backup:"\u0421\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043D\u0443\u044E \u043A\u043E\u043F\u0438\u044E \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 \u043F\u0435\u0440\u0435\u0434 \u043C\u0438\u0433\u0440\u0430\u0446\u0438\u0435\u0439",conversion:"\u0421\u0442\u0430\u0440\u044B\u0435 \u0448\u0430\u0431\u043B\u043E\u043D\u044B \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0439 \u0431\u0443\u0434\u0443\u0442 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u044B \u0432 \u043D\u043E\u0432\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442",normalUsage:"\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C TaskNotes \u043E\u0431\u044B\u0447\u043D\u044B\u043C \u043E\u0431\u0440\u0430\u0437\u043E\u043C \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u043C\u0438\u0433\u0440\u0430\u0446\u0438\u0438",permanent:"\u042D\u0442\u043E \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u044B\u043C \u0438 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u043E"},benefits:{title:"\u041F\u0440\u0435\u0438\u043C\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043D\u043E\u0432\u043E\u0439 \u0441\u0438\u0441\u0442\u0435\u043C\u044B:",powerfulPatterns:"\u0421\u043B\u043E\u0436\u043D\u044B\u0435 \u0448\u0430\u0431\u043B\u043E\u043D\u044B \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0439 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, '\u043A\u0430\u0436\u0434\u044B\u0439 2-\u0439 \u0432\u0442\u043E\u0440\u043D\u0438\u043A')",performance:"\u041B\u0443\u0447\u0448\u0430\u044F \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0441 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u043C\u0438\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438",compatibility:"\u0421\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0439, \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u044B\u0439 \u0441 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u043C\u0438",nlp:"\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u0430\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u044F\u0437\u044B\u043A\u0430"},progress:{title:"\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441 \u043C\u0438\u0433\u0440\u0430\u0446\u0438\u0438",preparing:"\u041F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0430 \u043C\u0438\u0433\u0440\u0430\u0446\u0438\u0438...",completed:"\u041C\u0438\u0433\u0440\u0430\u0446\u0438\u044F \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430",failed:"\u041C\u0438\u0433\u0440\u0430\u0446\u0438\u044F \u043D\u0435 \u0443\u0434\u0430\u043B\u0430\u0441\u044C"},buttons:{migrate:"\u041D\u0430\u0447\u0430\u0442\u044C \u043C\u0438\u0433\u0440\u0430\u0446\u0438\u044E",completed:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C"},errors:{title:"\u041E\u0448\u0438\u0431\u043A\u0438 \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u043C\u0438\u0433\u0440\u0430\u0446\u0438\u0438:"},notices:{completedWithErrors:"\u041C\u0438\u0433\u0440\u0430\u0446\u0438\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430 \u0441 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u043C\u0438 \u043E\u0448\u0438\u0431\u043A\u0430\u043C\u0438. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0441\u043F\u0438\u0441\u043E\u043A \u043E\u0448\u0438\u0431\u043E\u043A \u0432\u044B\u0448\u0435.",success:"\u0412\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043C\u0438\u0433\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B!",failed:"\u041C\u0438\u0433\u0440\u0430\u0446\u0438\u044F \u043D\u0435 \u0443\u0434\u0430\u043B\u0430\u0441\u044C. Please check the console for details."},prompt:{message:"\u0417\u0430\u0434\u0430\u0447\u0430Notes detected tasks using the old recurrence format. Would you like to migrate them to the new system now?",migrateNow:"\u041C\u0438\u0433\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u0439\u0447\u0430\u0441",remindLater:"\u041D\u0430\u043F\u043E\u043C\u043D\u0438\u0442\u044C \u043F\u043E\u0437\u0436\u0435"}},task:{titlePlaceholder:"\u0427\u0442\u043E \u043D\u0443\u0436\u043D\u043E \u0441\u0434\u0435\u043B\u0430\u0442\u044C?",titleLabel:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",titleDetailedPlaceholder:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438...",detailsLabel:"\u0414\u0435\u0442\u0430\u043B\u0438",detailsPlaceholder:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0431\u043E\u043B\u044C\u0448\u0435 \u0434\u0435\u0442\u0430\u043B\u0435\u0439...",projectsLabel:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B",projectsAdd:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442",projectsTooltip:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u043F\u0440\u043E\u0435\u043A\u0442\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u043D\u0435\u0447\u0435\u0442\u043A\u0438\u0439 \u043F\u043E\u0438\u0441\u043A",projectsRemoveTooltip:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442",contextsLabel:"\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B",contextsPlaceholder:"\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u04421, \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u04422",tagsLabel:"\u0422\u0435\u0433\u0438",tagsPlaceholder:"\u0442\u0435\u04331, \u0442\u0435\u04332",timeEstimateLabel:"\u041E\u0446\u0435\u043D\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 (\u043C\u0438\u043D\u0443\u0442\u044B)",timeEstimatePlaceholder:"30",unsavedChanges:{title:"\u041D\u0435\u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",message:"\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044C \u043D\u0435\u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F. \u0425\u043E\u0442\u0438\u0442\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0445?",save:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",discard:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",cancel:"\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435"},dependencies:{blockedBy:"\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0430",blocking:"\u0411\u043B\u043E\u043A\u0438\u0440\u0443\u0435\u0442",placeholder:"[[\u0417\u0430\u0434\u0430\u0447\u0430]]",addTaskButton:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",selectTaskTooltip:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043D\u0435\u0447\u0435\u0442\u043A\u043E\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430",removeTaskTooltip:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443"},organization:{projects:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B",subtasks:"\u041F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438",addToProject:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u043F\u0440\u043E\u0435\u043A\u0442",addToProjectButton:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u043F\u0440\u043E\u0435\u043A\u0442",addSubtasks:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438",addSubtasksButton:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0443",addSubtasksTooltip:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0447\u0442\u043E\u0431\u044B \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0438\u0445 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438",removeSubtaskTooltip:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0443",notices:{noEligibleSubtasks:"\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u0434\u043B\u044F \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447",subtaskSelectFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0435\u043B\u0435\u043A\u0442\u043E\u0440 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447"}},customFieldsLabel:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u043F\u043E\u043B\u044F",actions:{due:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",scheduled:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443",status:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441",priority:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442",recurrence:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",reminders:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F"},buttons:{openNote:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0443",save:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C"},tooltips:{dueValue:"\u0421\u0440\u043E\u043A: {value}",scheduledValue:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E: {value}",statusValue:"\u0421\u0442\u0430\u0442\u0443\u0441: {value}",priorityValue:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442: {value}",recurrenceValue:"\u041F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435: {value}",remindersSingle:"1 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E",remindersPlural:"{count} \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E"},dateMenu:{dueTitle:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",scheduledTitle:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443"},userFields:{textPlaceholder:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 {field}...",numberPlaceholder:"0",datePlaceholder:"\u0413\u0413\u0413\u0413-\u041C\u041C-\u0414\u0414",listPlaceholder:"\u044D\u043B\u0435\u043C\u0435\u043D\u04421, \u044D\u043B\u0435\u043C\u0435\u043D\u04422, \u044D\u043B\u0435\u043C\u0435\u043D\u04423",pickDate:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0434\u0430\u0442\u0443 {field}"},recurrence:{daily:"\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E",weekly:"\u0415\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E",everyTwoWeeks:"\u041A\u0430\u0436\u0434\u044B\u0435 2 \u043D\u0435\u0434\u0435\u043B\u0438",weekdays:"\u0420\u0430\u0431\u043E\u0447\u0438\u0435 \u0434\u043D\u0438",weeklyOn:"\u0415\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E \u0432 {days}",monthly:"\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E",everyThreeMonths:"\u041A\u0430\u0436\u0434\u044B\u0435 3 \u043C\u0435\u0441\u044F\u0446\u0430",monthlyOnOrdinal:"\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E \u0432 {ordinal}",monthlyByWeekday:"\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E (\u043F\u043E \u0434\u043D\u044E \u043D\u0435\u0434\u0435\u043B\u0438)",yearly:"\u0415\u0436\u0435\u0433\u043E\u0434\u043D\u043E",yearlyOn:"\u0415\u0436\u0435\u0433\u043E\u0434\u043D\u043E {month} {day}",custom:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435",countSuffix:"{count} \u0440\u0430\u0437",untilSuffix:"\u0434\u043E {date}",ordinal:"{number}{suffix}"}},taskSelector:{title:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",placeholder:"\u041D\u0430\u0447\u043D\u0438\u0442\u0435 \u0432\u0432\u043E\u0434\u0438\u0442\u044C \u0434\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u0437\u0430\u0434\u0430\u0447...",instructions:{navigate:"\u0434\u043B\u044F \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438",select:"\u0434\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430",dismiss:"\u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B"},notices:{noteNotFound:'\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0439\u0442\u0438 \u0437\u0430\u043C\u0435\u0442\u043A\u0443 "{name}"'},dueDate:{overdue:"\u0421\u0440\u043E\u043A: {date} (\u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043E)",today:"\u0421\u0440\u043E\u043A: \u0421\u0435\u0433\u043E\u0434\u043D\u044F"}},taskSelectorWithCreate:{title:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0438\u043B\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",placeholder:"\u041F\u043E\u0438\u0441\u043A \u0437\u0430\u0434\u0430\u0447 \u0438\u043B\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0434\u043B\u044F \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u043D\u043E\u0432\u043E\u0439...",instructions:{create:"\u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443"},footer:{createLabel:" \u0434\u043B\u044F \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F: "},notices:{emptyQuery:"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",invalidTitle:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u0442\u044C \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u043E\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438"}},taskCreation:{title:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",actions:{fillFromNaturalLanguage:"\u0417\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0444\u043E\u0440\u043C\u0443 \u0438\u0437 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u044F\u0437\u044B\u043A\u0430",hideDetailedOptions:"\u0421\u043A\u0440\u044B\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u044B\u0435 \u043E\u043F\u0446\u0438\u0438",showDetailedOptions:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u044B\u0435 \u043E\u043F\u0446\u0438\u0438"},nlPlaceholder:"\u041A\u0443\u043F\u0438\u0442\u044C \u043F\u0440\u043E\u0434\u0443\u043A\u0442\u044B \u0437\u0430\u0432\u0442\u0440\u0430 \u0432 15:00 @\u0434\u043E\u043C #\u043F\u043E\u0440\u0443\u0447\u0435\u043D\u0438\u044F",notices:{titleRequired:"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",success:'\u0417\u0430\u0434\u0430\u0447\u0430 "{title}" \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0437\u0434\u0430\u043D\u0430',successShortened:'\u0417\u0430\u0434\u0430\u0447\u0430 "{title}" \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0437\u0434\u0430\u043D\u0430 (\u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u0441\u043E\u043A\u0440\u0430\u0449\u0435\u043D\u043E \u0438\u0437-\u0437\u0430 \u0434\u043B\u0438\u043D\u044B)',failure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443: {message}",blockingUnresolved:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C: {entries}",openCreatedTaskFailure:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0430, \u043D\u043E \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C."}},taskEdit:{title:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",sections:{completions:"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F",taskInfo:"\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0437\u0430\u0434\u0430\u0447\u0435"},metadata:{totalTrackedTime:"\u041E\u0431\u0449\u0435\u0435 \u043E\u0442\u0441\u043B\u0435\u0436\u0435\u043D\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F:",due:"\u0421\u0440\u043E\u043A:",scheduled:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E:",created:"\u0421\u043E\u0437\u0434\u0430\u043D\u043E:",modified:"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u043E:",file:"\u0424\u0430\u0439\u043B:"},buttons:{archive:"\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C",unarchive:"\u0420\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C"},notices:{titleRequired:"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",noChanges:"\u041D\u0435\u0442 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F",updateSuccess:'\u0417\u0430\u0434\u0430\u0447\u0430 "{title}" \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430',updateFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443: {message}",dependenciesUpdateSuccess:"\u0417\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B",blockingUnresolved:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C: {entries}",fileMissing:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0439\u0442\u0438 \u0444\u0430\u0439\u043B \u0437\u0430\u0434\u0430\u0447\u0438: {path}",openNoteFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0437\u0430\u0434\u0430\u0447\u0438",archiveSuccess:"\u0417\u0430\u0434\u0430\u0447\u0430 {action} \u0443\u0441\u043F\u0435\u0448\u043D\u043E",archiveFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",deleteSuccess:'\u0417\u0430\u0434\u0430\u0447\u0430 "{title}" \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0443\u0434\u0430\u043B\u0435\u043D\u0430',deleteFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443: {message}"},archiveAction:{archived:"\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0430",unarchived:"\u0440\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0430"},deleteConfirmation:{title:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",message:'\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C "{title}"? \u0417\u0430\u043C\u0435\u0442\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0443\u0434\u0435\u0442 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0430 \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 Obsidian.',confirm:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443"}},storageLocation:{title:{migrate:"\u041C\u0438\u0433\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E?",switch:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u0432 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043A\u0430\u0445?"},message:{migrate:"\u042D\u0442\u043E \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0435\u0442 \u0432\u0430\u0448\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0441\u0435\u0441\u0441\u0438\u0439 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u0432 frontmatter \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043E\u043A. \u0414\u0430\u043D\u043D\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u043F\u043E \u0434\u0430\u0442\u0435 \u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B \u0432 \u043A\u0430\u0436\u0434\u043E\u0439 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E\u0439 \u0437\u0430\u043C\u0435\u0442\u043A\u0435.",switch:"\u0414\u0430\u043D\u043D\u044B\u0435 \u0441\u0435\u0441\u0441\u0438\u0439 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043D\u0438\u0442\u044C\u0441\u044F \u0432 frontmatter \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u0432\u043C\u0435\u0441\u0442\u043E \u0444\u0430\u0439\u043B\u0430 \u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043B\u0430\u0433\u0438\u043D\u0430."},whatThisMeans:"\u0427\u0442\u043E \u044D\u0442\u043E \u043E\u0437\u043D\u0430\u0447\u0430\u0435\u0442:",bullets:{dailyNotesRequired:"\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C \u043F\u043B\u0430\u0433\u0438\u043D\u0435 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043E\u043A \u0438\u043B\u0438 \u0432 Periodic Notes",storedInNotes:"\u0414\u0430\u043D\u043D\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043D\u0438\u0442\u044C\u0441\u044F \u0432 frontmatter \u0432\u0430\u0448\u0438\u0445 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0445 \u0437\u0430\u043C\u0435\u0442\u043E\u043A",migrateData:"\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043B\u0430\u0433\u0438\u043D\u0430 \u0431\u0443\u0434\u0443\u0442 \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0435\u043D\u044B \u0438 \u0437\u0430\u0442\u0435\u043C \u043E\u0447\u0438\u0449\u0435\u043D\u044B",futureSessions:"\u0411\u0443\u0434\u0443\u0449\u0438\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C\u0441\u044F \u0432 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438",dataLongevity:"\u042D\u0442\u043E \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043B\u0443\u0447\u0448\u0443\u044E \u0434\u043E\u043B\u0433\u043E\u0432\u0435\u0447\u043D\u043E\u0441\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0445 \u0441 \u0432\u0430\u0448\u0438\u043C\u0438 \u0437\u0430\u043C\u0435\u0442\u043A\u0430\u043C\u0438"},finalNote:{migrate:"\u26A0\uFE0F \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044C \u0440\u0435\u0437\u0435\u0440\u0432\u043D\u044B\u0435 \u043A\u043E\u043F\u0438\u0438 \u043F\u0440\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438. \u042D\u0442\u043E \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u043D\u0435\u043B\u044C\u0437\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C.",switch:"\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043E\u0431\u0440\u0430\u0442\u043D\u043E \u043D\u0430 \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u0432 \u043F\u043B\u0430\u0433\u0438\u043D\u0435 \u0432 \u043B\u044E\u0431\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C."},buttons:{migrate:"\u041C\u0438\u0433\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435",switch:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435"}},dueDate:{title:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",taskLabel:"\u0417\u0430\u0434\u0430\u0447\u0430: {title}",sections:{dateTime:"\u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",quickOptions:"\u0411\u044B\u0441\u0442\u0440\u044B\u0435 \u043E\u043F\u0446\u0438\u0438"},descriptions:{dateTime:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u043E\u0433\u0434\u0430 \u044D\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0434\u043E\u043B\u0436\u043D\u0430 \u0431\u044B\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0430"},inputs:{date:{ariaLabel:"\u0414\u0430\u0442\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438",placeholder:"\u0413\u0413\u0413\u0413-\u041C\u041C-\u0414\u0414"},time:{ariaLabel:"\u0412\u0440\u0435\u043C\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E)",placeholder:"\u0427\u0427:\u041C\u041C"}},quickOptions:{today:"\u0421\u0435\u0433\u043E\u0434\u043D\u044F",todayAriaLabel:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043D\u0430 \u0441\u0435\u0433\u043E\u0434\u043D\u044F",tomorrow:"\u0417\u0430\u0432\u0442\u0440\u0430",tomorrowAriaLabel:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043D\u0430 \u0437\u0430\u0432\u0442\u0440\u0430",nextWeek:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u043D\u0435\u0434\u0435\u043B\u044F",nextWeekAriaLabel:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E \u043D\u0435\u0434\u0435\u043B\u044E",now:"\u0421\u0435\u0439\u0447\u0430\u0441",nowAriaLabel:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0434\u0430\u0442\u0443 \u0438 \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043D\u0430 \u0441\u0435\u0439\u0447\u0430\u0441",clear:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",clearAriaLabel:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F"},errors:{invalidDateTime:"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B \u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",updateFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430."}},scheduledDate:{title:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443",taskLabel:"\u0417\u0430\u0434\u0430\u0447\u0430: {title}",sections:{dateTime:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",quickOptions:"\u0411\u044B\u0441\u0442\u0440\u044B\u0435 \u043E\u043F\u0446\u0438\u0438"},descriptions:{dateTime:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u043E\u0433\u0434\u0430 \u0432\u044B \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u0442\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u043D\u0430\u0434 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439"},inputs:{date:{ariaLabel:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0438",placeholder:"\u0413\u0413\u0413\u0413-\u041C\u041C-\u0414\u0414"},time:{ariaLabel:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0434\u0430\u0447\u0438 (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E)",placeholder:"\u0427\u0427:\u041C\u041C"}},quickOptions:{today:"\u0421\u0435\u0433\u043E\u0434\u043D\u044F",todayAriaLabel:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443 \u043D\u0430 \u0441\u0435\u0433\u043E\u0434\u043D\u044F",tomorrow:"\u0417\u0430\u0432\u0442\u0440\u0430",tomorrowAriaLabel:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443 \u043D\u0430 \u0437\u0430\u0432\u0442\u0440\u0430",nextWeek:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u043D\u0435\u0434\u0435\u043B\u044F",nextWeekAriaLabel:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443 \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E \u043D\u0435\u0434\u0435\u043B\u044E",now:"\u0421\u0435\u0439\u0447\u0430\u0441",nowAriaLabel:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443 \u0438 \u0432\u0440\u0435\u043C\u044F \u043D\u0430 \u0441\u0435\u0439\u0447\u0430\u0441",clear:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",clearAriaLabel:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443"},errors:{invalidDateTime:"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B \u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",updateFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430."}},timeEntryEditor:{title:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 - {taskTitle}",addEntry:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0443\u044E \u0437\u0430\u043F\u0438\u0441\u044C",noEntries:"\u041F\u043E\u043A\u0430 \u043D\u0435\u0442 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0438\u0441\u0435\u0439",deleteEntry:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0437\u0430\u043F\u0438\u0441\u044C",startTime:"\u0412\u0440\u0435\u043C\u044F \u043D\u0430\u0447\u0430\u043B\u0430",endTime:"\u0412\u0440\u0435\u043C\u044F \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F (\u043E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u0435\u0441\u043B\u0438 \u0435\u0449\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F)",duration:"\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C (\u043C\u0438\u043D\u0443\u0442\u044B)",durationDesc:"\u041F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043D\u043D\u0443\u044E \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",durationPlaceholder:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0432 \u043C\u0438\u043D\u0443\u0442\u0430\u0445",description:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",descriptionPlaceholder:"\u041D\u0430\u0434 \u0447\u0435\u043C \u0432\u044B \u0440\u0430\u0431\u043E\u0442\u0430\u043B\u0438?",calculatedDuration:"\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043D\u043E: {minutes} \u043C\u0438\u043D\u0443\u0442",totalTime:"{hours}\u0447 {minutes}\u043C \u0432\u0441\u0435\u0433\u043E",totalMinutes:"{minutes}\u043C \u0432\u0441\u0435\u0433\u043E",saved:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B",saveFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438",openFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0438\u0441\u0435\u0439",noTasksWithEntries:"\u041D\u0435\u0442 \u0437\u0430\u0434\u0430\u0447 \u0441 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u043C\u0438 \u0437\u0430\u043F\u0438\u0441\u044F\u043C\u0438 \u0434\u043B\u044F \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",validation:{missingStartTime:"\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u0440\u0435\u043C\u044F \u043D\u0430\u0447\u0430\u043B\u0430",endBeforeStart:"\u0412\u0440\u0435\u043C\u044F \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043F\u043E\u0441\u043B\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043D\u0430\u0447\u0430\u043B\u0430"}},timeTracking:{noTasksAvailable:"\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u0434\u043B\u044F \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u0438",started:"\u041D\u0430\u0447\u0430\u0442\u043E \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0434\u043B\u044F: {taskTitle}",startFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0447\u0430\u0442\u044C \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438"},timeEntry:{mustHaveSpecificTime:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0438\u043C\u0435\u0442\u044C \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u0432 \u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E\u043C \u0438\u043B\u0438 \u0434\u043D\u0435\u0432\u043D\u043E\u043C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0438.",noTasksAvailable:"\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u0434\u043B\u044F \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0438\u0441\u0435\u0439",created:"\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0437\u0430\u043F\u0438\u0441\u044C \u0441\u043E\u0437\u0434\u0430\u043D\u0430 \u0434\u043B\u044F {taskTitle} ({duration} \u043C\u0438\u043D\u0443\u0442)",createFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0443\u044E \u0437\u0430\u043F\u0438\u0441\u044C"}},contextMenus:{task:{status:"\u0421\u0442\u0430\u0442\u0443\u0441",statusSelected:"\u2713 {label}",priority:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442",prioritySelected:"\u2713 {label}",dueDate:"\u0421\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",scheduledDate:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430",customDates:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u0434\u0430\u0442\u044B",reminders:"\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F",remindBeforeDue:"\u041D\u0430\u043F\u043E\u043C\u043D\u0438\u0442\u044C \u0434\u043E \u0441\u0440\u043E\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u2026",remindBeforeScheduled:"\u041D\u0430\u043F\u043E\u043C\u043D\u0438\u0442\u044C \u0434\u043E \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B\u2026",manageReminders:"\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0432\u0441\u0435\u043C\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F\u043C\u0438\u2026",clearReminders:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F",startTimeTracking:"\u041D\u0430\u0447\u0430\u0442\u044C \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",stopTimeTracking:"\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",editTimeEntries:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u043F\u0438\u0441\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",archive:"\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C",unarchive:"\u0420\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C",openNote:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0443",openNoteInNewTab:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0432 \u043D\u043E\u0432\u043E\u0439 \u0432\u043A\u043B\u0430\u0434\u043A\u0435",copyTitle:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",quickActions:"\u0411\u044B\u0441\u0442\u0440\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F",noteActions:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0441 \u0437\u0430\u043C\u0435\u0442\u043A\u043E\u0439",rename:"\u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C",renameTitle:"\u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C \u0444\u0430\u0439\u043B",renamePlaceholder:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u0432\u043E\u0435 \u0438\u043C\u044F",delete:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",deleteTitle:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0430\u0439\u043B",deleteMessage:'\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C "{name}"?',deleteConfirm:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",copyPath:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0443\u0442\u044C",copyUrl:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C URL Obsidian",showInExplorer:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432 \u043F\u0440\u043E\u0432\u043E\u0434\u043D\u0438\u043A\u0435 \u0444\u0430\u0439\u043B\u043E\u0432",addToCalendar:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",calendar:{google:"Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",outlook:"Outlook \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",yahoo:"Yahoo \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",downloadIcs:"\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B .ics",syncToGoogle:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C",syncToGoogleNotConfigured:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u044F \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u0430",syncToGoogleSuccess:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0430 \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C",syncToGoogleFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C"},recurrence:"\u041F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",clearRecurrence:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",customRecurrence:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435...",createSubtask:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0443",dependencies:{title:"\u0417\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438",addBlockedBy:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \xAB\u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0430\xBB\u2026",addBlockedByTitle:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438, \u043E\u0442 \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0442\u0435\u043A\u0443\u0449\u0430\u044F",addBlocking:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \xAB\u0431\u043B\u043E\u043A\u0438\u0440\u0443\u0435\u0442\xBB\u2026",addBlockingTitle:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u043B\u043E\u043A\u0438\u0440\u0443\u0435\u0442 \u0442\u0435\u043A\u0443\u0449\u0430\u044F",removeBlockedBy:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \xAB\u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0430\xBB\u2026",removeBlocking:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \xAB\u0431\u043B\u043E\u043A\u0438\u0440\u0443\u0435\u0442\xBB\u2026",unknownDependency:"\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u043E",inputPlaceholder:"[[\u0417\u0430\u0434\u0430\u0447\u0430]]",notices:{noEntries:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u0443 \u0437\u0430\u0434\u0430\u0447\u0443",blockedByAdded:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 {count} \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C",blockedByRemoved:"\u0417\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0430",blockingAdded:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E {count} \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u044B\u0445 \u0437\u0430\u0434\u0430\u0447",blockingRemoved:"\u0417\u0430\u0432\u0438\u0441\u0438\u043C\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u0443\u0434\u0430\u043B\u0435\u043D\u0430",unresolved:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C: {entries}",noEligibleTasks:"\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043F\u043E\u0434\u0445\u043E\u0434\u044F\u0449\u0438\u0445 \u0437\u0430\u0434\u0430\u0447",updateFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438"}},organization:{title:"\u041E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044F",projects:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B",addToProject:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u2026",subtasks:"\u041F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438",addSubtasks:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438\u2026",notices:{alreadyInProject:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0443\u0436\u0435 \u0432 \u044D\u0442\u043E\u043C \u043F\u0440\u043E\u0435\u043A\u0442\u0435",alreadySubtask:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0443\u0436\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438",addedToProject:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E \u0432 \u043F\u0440\u043E\u0435\u043A\u0442: {project}",addedAsSubtask:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 {subtask} \u043A\u0430\u043A \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0430 {parent}",addToProjectFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u043F\u0440\u043E\u0435\u043A\u0442",addAsSubtaskFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043A\u0430\u043A \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0443",projectSelectFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0435\u043B\u0435\u043A\u0442\u043E\u0440 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432",subtaskSelectFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0435\u043B\u0435\u043A\u0442\u043E\u0440 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447",noEligibleSubtasks:"\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u0434\u043B\u044F \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447",currentTaskNotFound:"\u0424\u0430\u0439\u043B \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D",updateContextsFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B"},contexts:"\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B",addContext:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u2026",contextPlaceholder:"\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442",contextSelected:"\u2713 {context}",clearContexts:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B"},subtasks:{loading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447...",noSubtasks:"\u041F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B",loadFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438"},markComplete:"\u041E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u043A\u0430\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u0443\u044E \u0434\u043B\u044F \u044D\u0442\u043E\u0439 \u0434\u0430\u0442\u044B",markIncomplete:"\u041E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u043A\u0430\u043A \u043D\u0435\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u0443\u044E \u0434\u043B\u044F \u044D\u0442\u043E\u0439 \u0434\u0430\u0442\u044B",skipInstance:"\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440",unskipInstance:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u0440\u043E\u043F\u0443\u0441\u043A \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0430",quickReminders:{atTime:"\u0412\u043E \u0432\u0440\u0435\u043C\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u044F",fiveMinutes:"\u0417\u0430 5 \u043C\u0438\u043D\u0443\u0442",fifteenMinutes:"\u0417\u0430 15 \u043C\u0438\u043D\u0443\u0442",oneHour:"\u0417\u0430 1 \u0447\u0430\u0441",oneDay:"\u0417\u0430 1 \u0434\u0435\u043D\u044C"},notices:{toggleCompletionFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0435\u0439\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438: {message}",toggleSkipFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0440\u043E\u043F\u0443\u0441\u043A \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0435\u0439\u0441\u044F \u0437\u0430\u0434\u0430\u0447\u0438: {message}",updateDueDateFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438: {message}",updateScheduledFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0438: {message}",updateCustomDateFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C {field}: {message}",updateRemindersFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F",clearRemindersFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F",addReminderFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435",archiveFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u0440\u0445\u0438\u0432 \u0437\u0430\u0434\u0430\u0447\u0438: {message}",copyTitleSuccess:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",copyFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",renameSuccess:'\u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u043E \u0432 "{name}"',renameFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C \u0444\u0430\u0439\u043B",copyPathSuccess:"\u041F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",copyUrlSuccess:"URL Obsidian \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",updateRecurrenceFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: {message}",updateTagsFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0442\u0435\u0433\u0438"},tags:"\u0422\u0435\u0433\u0438",addTag:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0433\u2026",removeTag:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C {tag}",removeTagInput:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0442\u0435\u0433\u2026",tagPlaceholder:"\u0422\u0435\u0433 \u0438\u043B\u0438 #\u0442\u0435\u0433",clearTags:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0442\u0435\u0433\u0438"},priority:{clearPriority:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442"},ics:{showDetails:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438",createTask:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0438\u0437 \u0441\u043E\u0431\u044B\u0442\u0438\u044F",createNote:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0443 \u0438\u0437 \u0441\u043E\u0431\u044B\u0442\u0438\u044F",linkNote:"\u0421\u0432\u044F\u0437\u0430\u0442\u044C \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0443\u044E \u0437\u0430\u043C\u0435\u0442\u043A\u0443",copyTitle:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",copyLocation:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435",copyUrl:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C URL",copyMarkdown:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u0430\u043A markdown",subscriptionUnknown:"\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",notices:{copyTitleSuccess:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",copyLocationSuccess:"\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",copyUrlSuccess:"URL \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",copyMarkdownSuccess:"\u0414\u0435\u0442\u0430\u043B\u0438 \u0441\u043E\u0431\u044B\u0442\u0438\u044F \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u043A\u0430\u043A markdown",copyFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",taskCreated:"\u0417\u0430\u0434\u0430\u0447\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0430: {title}",taskCreateFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0438\u0437 \u0441\u043E\u0431\u044B\u0442\u0438\u044F",noteCreated:"\u0417\u0430\u043C\u0435\u0442\u043A\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0437\u0434\u0430\u043D\u0430",creationFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0435 \u043E\u043A\u043D\u043E \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F",linkSuccess:'\u0421\u0432\u044F\u0437\u0430\u043D\u0430 \u0437\u0430\u043C\u0435\u0442\u043A\u0430 "{name}" \u0441 \u0441\u043E\u0431\u044B\u0442\u0438\u0435\u043C',linkFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u0432\u044F\u0437\u0430\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0443",linkSelectionFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0432\u044B\u0431\u043E\u0440 \u0437\u0430\u043C\u0435\u0442\u043A\u0438"},markdown:{titleFallback:"\u0421\u043E\u0431\u044B\u0442\u0438\u0435 \u0431\u0435\u0437 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F",calendar:"**\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C:** {value}",date:"**\u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F:** {value}",location:"**\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435:** {value}",descriptionHeading:"### \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",url:"**URL:** {value}",at:" \u0432 {time}"}},date:{increment:{plusOneDay:"+1 \u0434\u0435\u043D\u044C",minusOneDay:"-1 \u0434\u0435\u043D\u044C",plusOneWeek:"+1 \u043D\u0435\u0434\u0435\u043B\u044F",minusOneWeek:"-1 \u043D\u0435\u0434\u0435\u043B\u044F"},basic:{today:"\u0421\u0435\u0433\u043E\u0434\u043D\u044F",tomorrow:"\u0417\u0430\u0432\u0442\u0440\u0430",thisWeekend:"\u042D\u0442\u0438 \u0432\u044B\u0445\u043E\u0434\u043D\u044B\u0435",nextWeek:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u043D\u0435\u0434\u0435\u043B\u044F",nextMonth:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043C\u0435\u0441\u044F\u0446"},weekdaysLabel:"\u0420\u0430\u0431\u043E\u0447\u0438\u0435 \u0434\u043D\u0438",selected:"\u2713 {label}",pickDateTime:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0434\u0430\u0442\u0443 \u0438 \u0432\u0440\u0435\u043C\u044F\u2026",clearDate:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0434\u0430\u0442\u0443",modal:{title:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0434\u0430\u0442\u0443 \u0438 \u0432\u0440\u0435\u043C\u044F",dateLabel:"\u0414\u0430\u0442\u0430",timeLabel:"\u0412\u0440\u0435\u043C\u044F (\u043E\u043F\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u043E)",select:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C"}}},services:{pomodoro:{notices:{alreadyRunning:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u0443\u0436\u0435 \u0437\u0430\u043F\u0443\u0449\u0435\u043D\u043E",resumeCurrentSession:"\u0412\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0441\u0435\u0441\u0441\u0438\u044E \u0432\u043C\u0435\u0441\u0442\u043E \u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u043D\u043E\u0432\u043E\u0439",timerAlreadyRunning:"\u0422\u0430\u0439\u043C\u0435\u0440 \u0443\u0436\u0435 \u0437\u0430\u043F\u0443\u0449\u0435\u043D",resumeSessionInstead:"\u0412\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0441\u0435\u0441\u0441\u0438\u044E \u0432\u043C\u0435\u0441\u0442\u043E \u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u043D\u043E\u0432\u043E\u0439",shortBreakStarted:"\u041A\u043E\u0440\u043E\u0442\u043A\u0438\u0439 \u043F\u0435\u0440\u0435\u0440\u044B\u0432 \u043D\u0430\u0447\u0430\u0442",longBreakStarted:"\u0414\u043B\u0438\u043D\u043D\u044B\u0439 \u043F\u0435\u0440\u0435\u0440\u044B\u0432 \u043D\u0430\u0447\u0430\u0442",paused:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u043F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E",resumed:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043E",stoppedAndReset:"\u041F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0438 \u0441\u0431\u0440\u043E\u0448\u0435\u043D\u043E",migrationSuccess:"\u0423\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0435\u043D\u043E {count} \u0441\u0435\u0441\u0441\u0438\u0439 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E \u0432 \u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u0442\u043A\u0438.",migrationFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E\u043C\u043E\u0434\u043E\u0440\u043E. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430 \u0438\u043B\u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043A\u043E\u043D\u0441\u043E\u043B\u044C \u0434\u043B\u044F \u0434\u0435\u0442\u0430\u043B\u0435\u0439."}},icsSubscription:{notices:{calendarNotFound:'\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C "{name}" \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D (404). \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435, \u0447\u0442\u043E URL ICS \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0439 \u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u043E\u0431\u0449\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D.',calendarAccessDenied:'\u0414\u043E\u0441\u0442\u0443\u043F \u043A \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044E "{name}" \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D (500). \u042D\u0442\u043E \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0438\u0437-\u0437\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Microsoft Outlook. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u0435\u0440\u0435\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C URL ICS \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F.',fetchRemoteFailed:'\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u043D\u044B\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C "{name}": {error}',readLocalFailed:'\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C "{name}": {error}'}},calendarExport:{notices:{generateLinkFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",noTasksToExport:"\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u0437\u0430\u0434\u0430\u0447 \u0434\u043B\u044F \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430",downloadSuccess:"\u0421\u043A\u0430\u0447\u0430\u043D {filename} \u0441 {count} \u0437\u0430\u0434\u0430\u0447{plural}",downloadFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",singleDownloadSuccess:"\u0421\u043A\u0430\u0447\u0430\u043D {filename}"}},filter:{groupLabels:{noProject:"\u0411\u0435\u0437 \u043F\u0440\u043E\u0435\u043A\u0442\u0430",noTags:"\u0411\u0435\u0437 \u0442\u0435\u0433\u043E\u0432",invalidDate:"\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0434\u0430\u0442\u0430",due:{overdue:"\u041F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043E",today:"\u0421\u0435\u0433\u043E\u0434\u043D\u044F",tomorrow:"\u0417\u0430\u0432\u0442\u0440\u0430",nextSevenDays:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0441\u0435\u043C\u044C \u0434\u043D\u0435\u0439",later:"\u041F\u043E\u0437\u0436\u0435",none:"\u0411\u0435\u0437 \u0441\u0440\u043E\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F"},scheduled:{past:"\u041F\u0440\u043E\u0448\u043B\u044B\u0435 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435",today:"\u0421\u0435\u0433\u043E\u0434\u043D\u044F",tomorrow:"\u0417\u0430\u0432\u0442\u0440\u0430",nextSevenDays:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0441\u0435\u043C\u044C \u0434\u043D\u0435\u0439",later:"\u041F\u043E\u0437\u0436\u0435",none:"\u0411\u0435\u0437 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B"}},errors:{noDatesProvided:"\u0414\u0430\u0442\u044B \u043D\u0435 \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u044B"},folders:{root:"(\u041A\u043E\u0440\u0435\u043D\u044C)"}},instantTaskConvert:{notices:{noCheckboxTasks:"\u0412 \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0437\u0430\u043C\u0435\u0442\u043A\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u0437\u0430\u0434\u0430\u0447 \u0441 \u0447\u0435\u043A\u0431\u043E\u043A\u0441\u0430\u043C\u0438.",convertingTasks:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435 {count} \u0437\u0430\u0434\u0430\u0447{plural}...",conversionSuccess:"\u2705 \u0423\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u043E {count} \u0437\u0430\u0434\u0430\u0447{plural} \u0432 TaskNotes!",partialConversion:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u043E {successCount} \u0437\u0430\u0434\u0430\u0447{successPlural}. {failureCount} \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C.",batchConversionFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043F\u0430\u043A\u0435\u0442\u043D\u043E\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430.",invalidParameters:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B.",emptyLine:"\u0422\u0435\u043A\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u043F\u0443\u0441\u0442\u0430 \u0438\u043B\u0438 \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u043E\u0433\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E.",parseError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0430\u043D\u0430\u043B\u0438\u0437\u0430 \u0437\u0430\u0434\u0430\u0447\u0438: {error}",invalidTaskData:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438.",replaceLineFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0437\u0430\u0434\u0430\u0447\u0438.",conversionComplete:"\u0417\u0430\u0434\u0430\u0447\u0430 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0430: {title}",conversionCompleteShortened:'\u0417\u0430\u0434\u0430\u0447\u0430 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0430: "{title}" (\u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u0441\u043E\u043A\u0440\u0430\u0449\u0435\u043D\u043E \u0438\u0437-\u0437\u0430 \u0434\u043B\u0438\u043D\u044B)',fileExists:"\u0424\u0430\u0439\u043B \u0441 \u0442\u0430\u043A\u0438\u043C \u0438\u043C\u0435\u043D\u0435\u043C \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430 \u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0439\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0443.",conversionFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430."}},icsNote:{notices:{templateNotFound:"\u0428\u0430\u0431\u043B\u043E\u043D \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D: {path}",templateProcessError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0430: {template}",linkedToEvent:"\u0417\u0430\u043C\u0435\u0442\u043A\u0430 \u0441\u0432\u044F\u0437\u0430\u043D\u0430 \u0441 \u0441\u043E\u0431\u044B\u0442\u0438\u0435\u043C ICS: {title}"}},task:{notices:{templateNotFound:"\u0428\u0430\u0431\u043B\u043E\u043D \u0442\u0435\u043B\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D: {path}",templateReadError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0442\u0435\u043B\u0430 \u0437\u0430\u0434\u0430\u0447\u0438: {template}",occurrenceTemplateNotFound:"\u0428\u0430\u0431\u043B\u043E\u043D \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D: {path}",occurrenceTemplateReadError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u0448\u0430\u0431\u043B\u043E\u043D\u0430 \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0430: {template}",moveTaskFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C {operation} \u0437\u0430\u0434\u0430\u0447\u0443: {error}"}},autoExport:{notices:{exportFailed:"\u0410\u0432\u0442\u043E\u044D\u043A\u0441\u043F\u043E\u0440\u0442 TaskNotes \u043D\u0435 \u0443\u0434\u0430\u043B\u0441\u044F: {error}"}}},ui:{icsCard:{untitledEvent:"\u0421\u043E\u0431\u044B\u0442\u0438\u0435 \u0431\u0435\u0437 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F",allDay:"\u0412\u0435\u0441\u044C \u0434\u0435\u043D\u044C",calendarEvent:"\u0421\u043E\u0431\u044B\u0442\u0438\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F",calendarFallback:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C"},noteCard:{createdLabel:"\u0421\u043E\u0437\u0434\u0430\u043D\u043E:",dailyBadge:"\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E",dailyTooltip:"\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u0430\u044F \u0437\u0430\u043C\u0435\u0442\u043A\u0430"},taskCard:{labels:{due:"\u0421\u0440\u043E\u043A",scheduled:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E",recurrence:"\u041F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0435\u0435\u0441\u044F",completed:"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E",created:"\u0421\u043E\u0437\u0434\u0430\u043D\u043E",modified:"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u043E",blocked:"\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u043E",blocking:"\u0411\u043B\u043E\u043A\u0438\u0440\u0443\u0435\u0442"},blockedBadge:"\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0430",blockedBadgeTooltip:"\u042D\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043E\u0436\u0438\u0434\u0430\u0435\u0442 \u0434\u0440\u0443\u0433\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443",blockingBadge:"\u0411\u043B\u043E\u043A\u0438\u0440\u0443\u0435\u0442",blockingBadgeTooltip:"\u042D\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u043B\u043E\u043A\u0438\u0440\u0443\u0435\u0442 \u0434\u0440\u0443\u0433\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443",blockingToggle:"\u0411\u043B\u043E\u043A\u0438\u0440\u0443\u0435\u0442 {count} \u0437\u0430\u0434\u0430\u0447",priorityAriaLabel:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442: {label}",taskOptions:"\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u0437\u0430\u0434\u0430\u0447\u0438",recurrenceTooltip:"{label}: {value}",reminderTooltipOne:"1 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E (\u043D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C)",reminderTooltipMany:"{count} \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E (\u043D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C)",projectTooltip:"\u042D\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u043F\u0440\u043E\u0435\u043A\u0442 (\u043D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C/\u0441\u043A\u0440\u044B\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438)",projectIndicatorTooltip:"\u042D\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u043F\u0440\u043E\u0435\u043A\u0442",expandSubtasks:"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438",collapseSubtasks:"\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438",dueToday:"{label}: \u0421\u0435\u0433\u043E\u0434\u043D\u044F",dueTodayAt:"{label}: \u0421\u0435\u0433\u043E\u0434\u043D\u044F \u0432 {time}",dueOverdue:"{label}: {display} (\u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043E)",dueLabel:"{label}: {display}",scheduledToday:"{label}: \u0421\u0435\u0433\u043E\u0434\u043D\u044F",scheduledTodayAt:"{label}: \u0421\u0435\u0433\u043E\u0434\u043D\u044F \u0432 {time}",scheduledPast:"{label}: {display} (\u0432 \u043F\u0440\u043E\u0448\u043B\u043E\u043C)",scheduledLabel:"{label}: {display}",loadingDependencies:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0435\u0439\u2026",blockingEmpty:"\u041D\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u044B\u0445 \u0437\u0430\u0434\u0430\u0447",blockingLoadError:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438",googleCalendarSyncTooltip:"\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0441 Google \u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0451\u043C",detailsTooltip:"\u0423 \u0437\u0430\u0434\u0430\u0447\u0438 \u0435\u0441\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438"},propertyEventCard:{unknownFile:"\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0439 \u0444\u0430\u0439\u043B"},filterHeading:{allViewName:"\u0412\u0441\u0435"},filterBar:{saveView:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435",saveViewNamePlaceholder:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043C\u044F \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F...",saveButton:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",views:"\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F",savedFilterViews:"\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043D\u044B\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432",filters:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B",properties:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430",sort:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430",newTask:"\u041D\u043E\u0432\u0430\u044F",expandAllGroups:"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u0433\u0440\u0443\u043F\u043F\u044B",collapseAllGroups:"\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0432\u0441\u0435 \u0433\u0440\u0443\u043F\u043F\u044B",searchTasksPlaceholder:"\u041F\u043E\u0438\u0441\u043A \u0437\u0430\u0434\u0430\u0447...",searchTasksTooltip:"\u041F\u043E\u0438\u0441\u043A \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0439 \u0437\u0430\u0434\u0430\u0447",filterUnavailable:"\u041F\u0430\u043D\u0435\u043B\u044C \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430",toggleFilter:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440",activeFiltersTooltip:"\u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B \u2013 \u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F, \u043F\u0440\u0430\u0432\u044B\u0439 \u043A\u043B\u0438\u043A \u0434\u043B\u044F \u043E\u0447\u0438\u0441\u0442\u043A\u0438",configureVisibleProperties:"\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0432\u0438\u0434\u0438\u043C\u044B\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430",sortAndGroupOptions:"\u041E\u043F\u0446\u0438\u0438 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u0438 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438",sortMenuHeader:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430",orderMenuHeader:"\u041F\u043E\u0440\u044F\u0434\u043E\u043A",groupMenuHeader:"\u0413\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0430",createNewTask:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443",filter:"\u0424\u0438\u043B\u044C\u0442\u0440",displayOrganization:"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0438 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044F",viewOptions:"\u041E\u043F\u0446\u0438\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F",addFilter:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440",addFilterGroup:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443 \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432",addFilterTooltip:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0435 \u0443\u0441\u043B\u043E\u0432\u0438\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u0430",addFilterGroupTooltip:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u0443\u044E \u0433\u0440\u0443\u043F\u043F\u0443 \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432",clearAllFilters:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B \u0438 \u0433\u0440\u0443\u043F\u043F\u044B",saveCurrentFilter:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u0444\u0438\u043B\u044C\u0442\u0440 \u043A\u0430\u043A \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435",closeFilterModal:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0435 \u043E\u043A\u043D\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0430",deleteFilterGroup:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443 \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432",deleteCondition:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0443\u0441\u043B\u043E\u0432\u0438\u0435",all:"\u0412\u0441\u0435",any:"\u041B\u044E\u0431\u043E\u0435",followingAreTrue:"\u0438\u0437 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0445 \u0438\u0441\u0442\u0438\u043D\u043D\u043E:",where:"\u0433\u0434\u0435",selectProperty:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C...",chooseProperty:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u043A\u0430\u043A\u043E\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E \u0437\u0430\u0434\u0430\u0447\u0438 \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u0442\u044C",chooseOperator:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u043A\u0430\u043A \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430",enterValue:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u0438",selectValue:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 {property} \u0434\u043B\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u0438",sortBy:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E:",toggleSortDirection:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438",chooseSortMethod:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u043A\u0430\u043A \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438",groupBy:"\u0413\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E:",chooseGroupMethod:"\u0413\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u043E\u0431\u0449\u0435\u043C\u0443 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0443",toggleViewOption:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C {option}",expandCollapseFilters:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F/\u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F \u0443\u0441\u043B\u043E\u0432\u0438\u0439 \u0444\u0438\u043B\u044C\u0442\u0440\u0430",expandCollapseSort:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F/\u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F \u043E\u043F\u0446\u0438\u0439 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u0438 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438",expandCollapseViewOptions:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F/\u0441\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F \u043E\u043F\u0446\u0438\u0439 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F",naturalLanguageDates:"\u0414\u0430\u0442\u044B \u043D\u0430 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C \u044F\u0437\u044B\u043A\u0435",naturalLanguageExamples:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0440\u044B \u0434\u0430\u0442 \u043D\u0430 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C \u044F\u0437\u044B\u043A\u0435",enterNumericValue:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u0438",enterDateValue:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0434\u0430\u0442\u0443, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439 \u044F\u0437\u044B\u043A \u0438\u043B\u0438 \u0444\u043E\u0440\u043C\u0430\u0442 ISO",pickDateTime:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0434\u0430\u0442\u0443 \u0438 \u0432\u0440\u0435\u043C\u044F",noSavedViews:"\u041D\u0435\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043D\u044B\u0445 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439",savedViews:"\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043D\u044B\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F",yourSavedFilters:"\u0412\u0430\u0448\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043D\u044B\u0435 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432",dragToReorder:"\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0434\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043F\u043E\u0440\u044F\u0434\u043A\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439",loadSavedView:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435: {name}",deleteView:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435",deleteViewTitle:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435",deleteViewMessage:'\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 "{name}"?',manageAllReminders:"\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0432\u0441\u0435\u043C\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F\u043C\u0438...",clearAllReminders:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F",customRecurrence:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435...",clearRecurrence:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",sortOptions:{dueDate:"\u0421\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",scheduledDate:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430",priority:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442",status:"\u0421\u0442\u0430\u0442\u0443\u0441",title:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",createdDate:"\u0414\u0430\u0442\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F",tags:"\u0422\u0435\u0433\u0438",ascending:"\u041F\u043E \u0432\u043E\u0437\u0440\u0430\u0441\u0442\u0430\u043D\u0438\u044E",descending:"\u041F\u043E \u0443\u0431\u044B\u0432\u0430\u043D\u0438\u044E"},group:{none:"\u041D\u0435\u0442",status:"\u0421\u0442\u0430\u0442\u0443\u0441",priority:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442",context:"\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442",project:"\u041F\u0440\u043E\u0435\u043A\u0442",dueDate:"\u0421\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",scheduledDate:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430",tags:"\u0422\u0435\u0433\u0438",completedDate:"\u0414\u0430\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F"},subgroupLabel:"\u041F\u041E\u0414\u0413\u0420\u0423\u041F\u041F\u0410",notices:{propertiesMenuFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043C\u0435\u043D\u044E \u0441\u0432\u043E\u0439\u0441\u0442\u0432"}}},components:{dateContextMenu:{weekdays:"\u0411\u0443\u0434\u043D\u0438",clearDate:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0434\u0430\u0442\u0443",today:"\u0414\u043Eday",tomorrow:"\u0414\u043Emorrow",thisWeekend:"\u041D\u0430 \u044D\u0442\u043E\u0439 \u043D\u0435\u0434\u0435\u043B\u0435end",nextWeek:"\u041D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439 \u043D\u0435\u0434\u0435\u043B\u0435",nextMonth:"\u0412 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C \u043C\u0435\u0441\u044F\u0446\u0435",setDateTime:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0434\u0430\u0442\u0443 \u0438 \u0432\u0440\u0435\u043C\u044F",dateLabel:"\u0414\u0430\u0442\u0430",timeLabel:"\u0412\u0440\u0435\u043C\u044F (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E)"},subgroupMenuBuilder:{none:"\u041D\u0435\u0442",status:"\u0421\u0442\u0430\u0442\u0443\u0441",priority:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442",context:"\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442",project:"\u041F\u0440\u043E\u0435\u043A\u0442",dueDate:"\u0414\u0430\u0442\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",scheduledDate:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430",tags:"\u0422\u0435\u0433\u0438",completedDate:"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E Date",subgroup:"\u041F\u041E\u0414\u0413\u0420\u0423\u041F\u041F\u0410"},propertyVisibilityDropdown:{coreProperties:"\u041E\u0421\u041D\u041E\u0412\u041D\u042B\u0415 \u0421\u0412\u041E\u0419\u0421\u0422\u0412\u0410",organization:"\u041E\u0420\u0413\u0410\u041D\u0418\u0417\u0410\u0426\u0418\u042F",customProperties:"\u041F\u041E\u041B\u042C\u0417\u041E\u0412\u0410\u0422\u0415\u041B\u042C\u0421\u041A\u0418\u0415 \u0421\u0412\u041E\u0419\u0421\u0422\u0412\u0410",failed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043C\u0435\u043D\u044E \u0441\u0432\u043E\u0439\u0441\u0442\u0432",properties:{statusDot:"\u0422\u043E\u0447\u043A\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430",priorityDot:"\u0422\u043E\u0447\u043A\u0430 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u0430",dueDate:"\u0421\u0440\u043E\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F",scheduledDate:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430",timeEstimate:"\u041E\u0446\u0435\u043D\u043A\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",totalTrackedTime:"\u041E\u0431\u0449\u0435\u0435 \u043E\u0442\u0441\u043B\u0435\u0436\u0435\u043D\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F",checklistProgress:"\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430",recurrence:"\u041F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",completedDate:"\u0414\u0430\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F",createdDate:"\u0414\u0430\u0442\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F",modifiedDate:"\u0414\u0430\u0442\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",projects:"\u041F\u0440\u043E\u0435\u043A\u0442\u044B",contexts:"\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u044B",tags:"\u0422\u0435\u0433\u0438",blocked:"\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0430",blocking:"\u0411\u043B\u043E\u043A\u0438\u0440\u0443\u0435\u0442"}},reminderContextMenu:{remindBeforeDue:"\u041D\u0430\u043F\u043E\u043C\u043D\u0438\u0442\u044C \u0434\u043E \u0441\u0440\u043E\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F...",remindBeforeScheduled:"\u041D\u0430\u043F\u043E\u043C\u043D\u0438\u0442\u044C \u0434\u043E \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B...",manageAllReminders:"\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0432\u0441\u0435\u043C\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F\u043C\u0438...",clearAllReminders:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F",quickReminders:{atTime:"\u0412\u043E \u0432\u0440\u0435\u043C\u044F \u0441\u043E\u0431\u044B\u0442\u0438\u044F",fiveMinutesBefore:"\u0417\u0430 5 \u043C\u0438\u043D\u0443\u0442",fifteenMinutesBefore:"\u0417\u0430 15 \u043C\u0438\u043D\u0443\u0442",oneHourBefore:"\u0417\u0430 1 \u0447\u0430\u0441",oneDayBefore:"\u0417\u0430 1 \u0434\u0435\u043D\u044C"}},recurrenceContextMenu:{daily:"\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E",weeklyOn:"\u0415\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E \u0432 {day}",everyTwoWeeksOn:"\u041A\u0430\u0436\u0434\u044B\u0435 2 \u043D\u0435\u0434\u0435\u043B\u0438 \u0432 {day}",monthlyOnThe:"\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E \u0432 {ordinal}",everyThreeMonthsOnThe:"\u041A\u0430\u0436\u0434\u044B\u0435 3 \u043C\u0435\u0441\u044F\u0446\u0430 \u0432 {ordinal}",yearlyOn:"\u0415\u0436\u0435\u0433\u043E\u0434\u043D\u043E {month} {ordinal}",weekdaysOnly:"\u0422\u043E\u043B\u044C\u043A\u043E \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0434\u043D\u0438",dailyAfterCompletion:"\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E (\u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F)",every3DaysAfterCompletion:"\u041A\u0430\u0436\u0434\u044B\u0435 3 \u0434\u043D\u044F (\u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F)",weeklyAfterCompletion:"\u0415\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E (\u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F)",monthlyAfterCompletion:"\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E (\u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F)",customRecurrence:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435...",clearRecurrence:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",customRecurrenceModal:{title:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",startDate:"\u0414\u0430\u0442\u0430 \u043D\u0430\u0447\u0430\u043B\u0430",startDateDesc:"\u0414\u0430\u0442\u0430, \u043A\u043E\u0433\u0434\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u0448\u0430\u0431\u043B\u043E\u043D \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u044F",startTime:"\u0412\u0440\u0435\u043C\u044F \u043D\u0430\u0447\u0430\u043B\u0430",startTimeDesc:"\u0412\u0440\u0435\u043C\u044F, \u043A\u043E\u0433\u0434\u0430 \u0434\u043E\u043B\u0436\u043D\u044B \u043F\u043E\u044F\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u044B (\u043E\u043F\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u043E)",recurFrom:"\u041F\u043E\u0432\u0442\u043E\u0440\u044F\u0442\u044C \u043E\u0442",recurFromDesc:"\u041A\u043E\u0433\u0434\u0430 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044B\u0432\u0430\u0442\u044C \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435?",scheduledDate:"\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0434\u0430\u0442\u0430",completionDate:"\u0414\u0430\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F",frequency:"\u0427\u0430\u0441\u0442\u043E\u0442\u0430",interval:"\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B",intervalDesc:"\u041A\u0430\u0436\u0434\u044B\u0435 X \u0434\u043D\u0435\u0439/\u043D\u0435\u0434\u0435\u043B\u044C/\u043C\u0435\u0441\u044F\u0446\u0435\u0432/\u043B\u0435\u0442",daysOfWeek:"\u0414\u043D\u0438 \u043D\u0435\u0434\u0435\u043B\u0438",daysOfWeekDesc:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u044B\u0435 \u0434\u043D\u0438 (\u0434\u043B\u044F \u0435\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u044F)",monthlyRecurrence:"\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",monthlyRecurrenceDesc:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u043A\u0430\u043A \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0442\u044C \u0435\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E",yearlyRecurrence:"\u0415\u0436\u0435\u0433\u043E\u0434\u043D\u043E\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435",yearlyRecurrenceDesc:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u043A\u0430\u043A \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0442\u044C \u0435\u0436\u0435\u0433\u043E\u0434\u043D\u043E",endCondition:"\u0423\u0441\u043B\u043E\u0432\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F",endConditionDesc:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u043A\u043E\u0433\u0434\u0430 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u0437\u0430\u043A\u043E\u043D\u0447\u0438\u0442\u044C\u0441\u044F",neverEnds:"\u041D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F",endAfterOccurrences:"\u0417\u0430\u043A\u043E\u043D\u0447\u0438\u0442\u044C \u043F\u043E\u0441\u043B\u0435 {count} \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0439",endOnDate:"\u0417\u0430\u043A\u043E\u043D\u0447\u0438\u0442\u044C {date}",onDayOfMonth:"\u0412 \u0434\u0435\u043D\u044C {day} \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043C\u0435\u0441\u044F\u0446\u0430",onTheWeekOfMonth:"\u0412 {week} {day} \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043C\u0435\u0441\u044F\u0446\u0430",onDateOfYear:"{month} {day} \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u0433\u043E\u0434\u0430",onTheWeekOfYear:"\u0412 {week} {day} {month} \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u0433\u043E\u0434\u0430",frequencies:{daily:"\u0415\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E",weekly:"\u0415\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E",monthly:"\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E",yearly:"\u0415\u0436\u0435\u0433\u043E\u0434\u043D\u043E"},weekPositions:{first:"\u043F\u0435\u0440\u0432\u044B\u0439",second:"\u0432\u0442\u043E\u0440\u043E\u0439",third:"\u0442\u0440\u0435\u0442\u0438\u0439",fourth:"\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044B\u0439",last:"\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439"},weekdays:{monday:"\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A",tuesday:"\u0412\u0442\u043E\u0440\u043D\u0438\u043A",wednesday:"\u0421\u0440\u0435\u0434\u0430",thursday:"\u0427\u0435\u0442\u0432\u0435\u0440\u0433",friday:"\u041F\u044F\u0442\u043D\u0438\u0446\u0430",saturday:"\u0421\u0443\u0431\u0431\u043E\u0442\u0430",sunday:"\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435"},weekdaysShort:{mon:"\u041F\u043D",tue:"\u0412\u0442",wed:"\u0421\u0440",thu:"\u0427\u0442",fri:"\u041F\u0442",sat:"\u0421\u0431",sun:"\u0412\u0441"},cancel:"\u041E\u0442\u043C\u0435\u043D\u0430",save:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C"}}}};var lxe={common:{appName:"TaskNotes",new:"\u65B0\u5EFA",cancel:"\u53D6\u6D88",confirm:"\u786E\u8BA4",close:"\u5173\u95ED",save:"\u4FDD\u5B58",reorder:{confirmLargeTitle:"\u786E\u8BA4\u5927\u89C4\u6A21\u91CD\u6392",confirmButton:"\u91CD\u6392\u7B14\u8BB0",confirmLargeMessage:"\u5728\u6B64\u5904\u91CD\u6392\u4F1A\u66F4\u65B0 {count} \u6761\u7B14\u8BB0\u4E2D\u7684\u201C{field}\u201D\uFF0C\u4EE5\u4FBF\u4E3A {scope} \u5EFA\u7ACB\u6301\u4E45\u7684\u624B\u52A8\u987A\u5E8F\u3002\u540C\u4E00\u8303\u56F4\u5185\u88AB\u9690\u85CF\u6216\u88AB\u7B5B\u9009\u6389\u7684\u7B14\u8BB0\u4E5F\u53EF\u80FD\u4F1A\u4E00\u8D77\u66F4\u65B0\u3002\u662F\u5426\u7EE7\u7EED\uFF1F"},language:"\u8BED\u8A00",systemDefault:"\u7CFB\u7EDF\u9ED8\u8BA4",loading:"\u52A0\u8F7D\u4E2D...",languages:{en:"\u82F1\u8BED",fr:"\u6CD5\u8BED",ru:"\u4FC4\u8BED",zh:"\u4E2D\u6587",de:"\u5FB7\u8BED",es:"\u897F\u73ED\u7259\u8BED",ja:"\u65E5\u8BED",pt:"\u8461\u8404\u7259\u8BED\uFF08\u5DF4\u897F\uFF09",ko:"\u97E9\u8BED"},weekdays:{sunday:"\u661F\u671F\u65E5",monday:"\u661F\u671F\u4E00",tuesday:"\u661F\u671F\u4E8C",wednesday:"\u661F\u671F\u4E09",thursday:"\u661F\u671F\u56DB",friday:"\u661F\u671F\u4E94",saturday:"\u661F\u671F\u516D"},months:{january:"\u4E00\u6708",february:"\u4E8C\u6708",march:"\u4E09\u6708",april:"\u56DB\u6708",may:"\u4E94\u6708",june:"\u516D\u6708",july:"\u4E03\u6708",august:"\u516B\u6708",september:"\u4E5D\u6708",october:"\u5341\u6708",november:"\u5341\u4E00\u6708",december:"\u5341\u4E8C\u6708"}},views:{agenda:{title:"\u8BAE\u7A0B",today:"\u4ECA\u5929",overdue:"\u903E\u671F",refreshCalendars:"\u5237\u65B0\u65E5\u5386",actions:{previousPeriod:"\u4E0A\u4E00\u65F6\u6BB5",nextPeriod:"\u4E0B\u4E00\u65F6\u6BB5",goToToday:"\u8F6C\u5230\u4ECA\u5929",refreshCalendars:"\u5237\u65B0\u65E5\u5386\u8BA2\u9605"},loading:"\u6B63\u5728\u52A0\u8F7D\u8BAE\u7A0B...",dayToggle:"\u5207\u6362\u65E5\u671F",overdueToggle:"\u5207\u6362\u903E\u671F\u90E8\u5206",expandAllDays:"\u5C55\u5F00\u6240\u6709\u5929",collapseAllDays:"\u6298\u53E0\u6240\u6709\u5929",notices:{calendarNotReady:"\u65E5\u5386\u670D\u52A1\u5C1A\u672A\u51C6\u5907\u5C31\u7EEA",calendarRefreshed:"\u65E5\u5386\u8BA2\u9605\u5DF2\u5237\u65B0",refreshFailed:"\u5237\u65B0\u5931\u8D25"},empty:{noItemsScheduled:"\u6CA1\u6709\u5B89\u6392\u7684\u9879\u76EE",noItemsFound:"\u672A\u627E\u5230\u9879\u76EE",helpText:"\u521B\u5EFA\u5177\u6709\u622A\u6B62\u65E5\u671F\u6216\u8BA1\u5212\u65E5\u671F\u7684\u4EFB\u52A1\uFF0C\u6216\u6DFB\u52A0\u7B14\u8BB0\u4EE5\u5728\u6B64\u5904\u663E\u793A\u5B83\u4EEC\u3002"},contextMenu:{showOverdueSection:"\u663E\u793A\u903E\u671F\u90E8\u5206",showNotes:"\u663E\u793A\u7B14\u8BB0",calendarSubscriptions:"\u65E5\u5386\u8BA2\u9605"},periods:{thisWeek:"\u672C\u5468"},tipPrefix:"\u63D0\u793A\uFF1A"},taskList:{title:"\u4EFB\u52A1",expandAllGroups:"\u5C55\u5F00\u6240\u6709\u5206\u7EC4",collapseAllGroups:"\u6298\u53E0\u6240\u6709\u5206\u7EC4",noTasksFound:"\u672A\u627E\u5230\u7B26\u5408\u6240\u9009\u7B5B\u9009\u6761\u4EF6\u7684\u4EFB\u52A1\u3002",reorder:{scope:{ungrouped:"\u8FD9\u4E2A\u672A\u5206\u7EC4\u5217\u8868",group:"\u5206\u7EC4\u201C{group}\u201D"}},errors:{formulaGroupingReadOnly:"\u65E0\u6CD5\u5728\u57FA\u4E8E\u516C\u5F0F\u7684\u5206\u7EC4\u4E2D\u91CD\u6392\u4EFB\u52A1\u3002\u516C\u5F0F\u503C\u662F\u8BA1\u7B97\u7ED3\u679C\uFF0C\u4E0D\u80FD\u76F4\u63A5\u4FEE\u6539\u3002"}},notes:{title:"\u7B14\u8BB0",refreshButton:"\u6B63\u5728\u5237\u65B0...",refreshingButton:"\u5237\u65B0\u4E2D...",notices:{indexingDisabled:"\u7B14\u8BB0\u7D22\u5F15\u5DF2\u7981\u7528"},empty:{noNotesFound:"\u672A\u627E\u5230\u7B14\u8BB0",helpText:"\u672A\u627E\u5230\u6240\u9009\u65E5\u671F\u7684\u7B14\u8BB0\u3002\u5C1D\u8BD5\u5728\u8FF7\u4F60\u65E5\u5386\u89C6\u56FE\u4E2D\u9009\u62E9\u4E0D\u540C\u7684\u65E5\u671F\u6216\u521B\u5EFA\u4E00\u4E9B\u7B14\u8BB0\u3002"},loading:"\u52A0\u8F7D\u7B14\u8BB0\u4E2D...",refreshButtonAriaLabel:"\u5237\u65B0\u7B14\u8BB0\u5217\u8868"},miniCalendar:{title:"\u8FF7\u4F60\u65E5\u5386",contextMenu:{openDailyNote:"\u6253\u5F00\u6BCF\u65E5\u7B14\u8BB0",openWeeklyNote:"\u6253\u5F00\u6BCF\u5468\u7B14\u8BB0"}},advancedCalendar:{title:"\u65E5\u5386",filters:{showFilters:"\u663E\u793A\u7B5B\u9009\u5668",hideFilters:"\u9690\u85CF\u7B5B\u9009\u5668"},viewOptions:{calendarSubscriptions:"\u65E5\u5386\u8BA2\u9605",timeEntries:"\u65F6\u95F4\u6761\u76EE",timeblocks:"\u65F6\u95F4\u5757",scheduledDates:"\u8BA1\u5212\u65E5\u671F",dueDates:"\u622A\u6B62\u65E5\u671F",allDaySlot:"\u5168\u5929\u65F6\u6BB5",scheduledTasks:"\u8BA1\u5212\u4EFB\u52A1",recurringTasks:"\u91CD\u590D\u4EFB\u52A1"},buttons:{refresh:"\u5237\u65B0",refreshHint:"\u5237\u65B0\u65E5\u5386\u8BA2\u9605"},notices:{icsServiceNotAvailable:"ICS\u8BA2\u9605\u670D\u52A1\u4E0D\u53EF\u7528",calendarRefreshedAll:"\u6240\u6709\u65E5\u5386\u8BA2\u9605\u5DF2\u6210\u529F\u5237\u65B0",refreshFailed:"\u5237\u65B0\u90E8\u5206\u65E5\u5386\u8BA2\u9605\u5931\u8D25",timeblockSpecificTime:"\u65F6\u95F4\u5757\u5FC5\u987B\u6709\u5177\u4F53\u65F6\u95F4\u3002\u8BF7\u5728\u5468\u89C6\u56FE\u6216\u65E5\u89C6\u56FE\u4E2D\u9009\u62E9\u65F6\u95F4\u8303\u56F4\u3002",timeblockMoved:'\u65F6\u95F4\u5757"{title}"\u5DF2\u79FB\u52A8\u5230{date}',timeblockUpdated:'\u65F6\u95F4\u5757"{title}"\u7684\u65F6\u95F4\u5DF2\u66F4\u65B0',timeblockMoveFailed:"\u79FB\u52A8\u65F6\u95F4\u5757\u5931\u8D25\uFF1A{message}",timeblockResized:'\u65F6\u95F4\u5757"{title}"\u7684\u6301\u7EED\u65F6\u95F4\u5DF2\u66F4\u65B0',timeblockResizeFailed:"\u8C03\u6574\u65F6\u95F4\u5757\u5927\u5C0F\u5931\u8D25\uFF1A{message}",taskScheduled:'\u4EFB\u52A1"{title}"\u5DF2\u5B89\u6392\u5230{date}',scheduleTaskFailed:"\u5B89\u6392\u4EFB\u52A1\u5931\u8D25",endTimeAfterStart:"\u7ED3\u675F\u65F6\u95F4\u5FC5\u987B\u665A\u4E8E\u5F00\u59CB\u65F6\u95F4",timeEntryNotFound:"\u672A\u627E\u5230\u65F6\u95F4\u6761\u76EE",timeEntryDeleted:"\u65F6\u95F4\u6761\u76EE\u5DF2\u5220\u9664",deleteTimeEntryFailed:"\u5220\u9664\u65F6\u95F4\u6761\u76EE\u5931\u8D25"},timeEntry:{estimatedSuffix:"\u9884\u4F30",trackedSuffix:"\u5DF2\u8BB0\u5F55",recurringPrefix:"\u91CD\u590D\uFF1A",completedPrefix:"\u5DF2\u5B8C\u6210\uFF1A",createdPrefix:"\u521B\u5EFA\uFF1A",modifiedPrefix:"\u4FEE\u6539\uFF1A",duePrefix:"\u622A\u6B62\uFF1A",scheduledPrefix:"\u8BA1\u5212\uFF1A"},contextMenus:{openTask:"\u6253\u5F00\u4EFB\u52A1",deleteTimeEntry:"\u5220\u9664\u65F6\u95F4\u6761\u76EE",deleteTimeEntryTitle:"\u5220\u9664\u65F6\u95F4\u6761\u76EE",deleteTimeEntryConfirm:"\u786E\u5B9A\u8981\u5220\u9664\u6B64\u65F6\u95F4\u6761\u76EE{duration}\u5417\uFF1F\u6B64\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500\u3002",deleteButton:"\u5220\u9664",cancelButton:"\u53D6\u6D88"}},basesCalendar:{title:"Bases\u65E5\u5386",today:"\u4ECA\u5929",buttonText:{month:"\u6708",week:"\u5468",day:"\u65E5",year:"\u5E74",list:"\u5217\u8868",customDays:"{count}\u5929",listDays:"{count}\u5929 \u5217\u8868",refresh:"\u5237\u65B0"},hints:{refresh:"\u5237\u65B0\u65E5\u5386\u8BA2\u9605",today:"\u8F6C\u5230\u4ECA\u5929",prev:"\u4E0A\u4E00\u4E2A",next:"\u4E0B\u4E00\u4E2A",month:"\u6708\u89C6\u56FE",week:"\u5468\u89C6\u56FE",day:"\u65E5\u89C6\u56FE",year:"\u5E74\u89C6\u56FE",list:"\u5217\u8868\u89C6\u56FE",customDays:"{count}\u5929\u89C6\u56FE"},settings:{groups:{dateNavigation:"\u65E5\u671F\u5BFC\u822A",events:"\u4E8B\u4EF6",layout:"\u5E03\u5C40",view:"\u89C6\u56FE",display:"\u663E\u793A",timeGrid:"\u65F6\u95F4\u7F51\u683C",eventLayout:"\u4E8B\u4EF6\u5E03\u5C40",propertyBasedEvents:"\u57FA\u4E8E\u5C5E\u6027\u7684\u4E8B\u4EF6",calendarSubscriptions:"\u65E5\u5386\u8BA2\u9605",googleCalendars:"Google \u65E5\u5386",microsoftCalendars:"Microsoft \u65E5\u5386"},dateNavigation:{navigateToDate:"\u5BFC\u822A\u5230\u65E5\u671F",navigateToDatePlaceholder:"YYYY-MM-DD\uFF08\u4F8B\u5982\uFF1A2025-01-15\uFF09- \u7559\u7A7A\u4EE5\u4F7F\u7528\u5C5E\u6027",navigateToDateFromProperty:"\u4ECE\u5C5E\u6027\u5BFC\u822A\u5230\u65E5\u671F",navigateToDateFromPropertyPlaceholder:"\u9009\u62E9\u65E5\u671F\u5C5E\u6027\uFF08\u53EF\u9009\uFF09",propertyNavigationStrategy:"\u5C5E\u6027\u5BFC\u822A\u7B56\u7565",createDailyNotesFromDateLinks:"\u901A\u8FC7\u65E5\u671F\u94FE\u63A5\u521B\u5EFA\u6BCF\u65E5\u7B14\u8BB0",strategies:{first:"\u7B2C\u4E00\u4E2A\u7ED3\u679C",earliest:"\u6700\u65E9\u65E5\u671F",latest:"\u6700\u665A\u65E5\u671F"}},events:{showScheduledTasks:"\u663E\u793A\u8BA1\u5212\u4EFB\u52A1",showDueTasks:"\u663E\u793A\u5230\u671F\u4EFB\u52A1",showOverdueOnToday:"\u5728\u4ECA\u5929\u663E\u793A\u903E\u671F\u4EFB\u52A1",showRecurringTasks:"\u663E\u793A\u91CD\u590D\u4EFB\u52A1",showTimeEntries:"\u663E\u793A\u65F6\u95F4\u6761\u76EE",showTimeblocks:"\u663E\u793A\u65F6\u95F4\u5757",showPropertyBasedEvents:"\u663E\u793A\u57FA\u4E8E\u5C5E\u6027\u7684\u4E8B\u4EF6",showCompletedRecurringInstances:"\u663E\u793A\u5DF2\u5B8C\u6210\u7684\u91CD\u590D\u5B9E\u4F8B",showSkippedRecurringInstances:"\u663E\u793A\u5DF2\u8DF3\u8FC7\u7684\u91CD\u590D\u5B9E\u4F8B"},layout:{calendarView:"\u65E5\u5386\u89C6\u56FE",customDayCount:"\u81EA\u5B9A\u4E49\u5929\u6570",listDayCount:"\u5217\u8868\u5929\u6570",dayStartTime:"\u4E00\u5929\u5F00\u59CB\u65F6\u95F4",dayStartTimePlaceholder:"HH:mm:ss\uFF08\u4F8B\u5982\uFF1A08:00:00\uFF09",dayEndTime:"\u4E00\u5929\u7ED3\u675F\u65F6\u95F4",dayEndTimePlaceholder:"HH:mm:ss\uFF08\u4F8B\u5982\uFF1A20:00:00\uFF09",timeSlotDuration:"\u65F6\u95F4\u6BB5\u6301\u7EED\u65F6\u95F4",timeSlotDurationPlaceholder:"HH:mm:ss\uFF08\u4F8B\u5982\uFF1A00:30:00\uFF09",dragDropResolution:"\u62D6\u653E\u65F6\u95F4\u7C92\u5EA6",dragDropResolutionPlaceholder:"HH:mm:ss\uFF08\u4F8B\u5982\uFF1A00:05:00\uFF09",weekStartsOn:"\u4E00\u5468\u5F00\u59CB\u4E8E",showWeekNumbers:"\u663E\u793A\u5468\u6570",showNowIndicator:"\u663E\u793A\u5F53\u524D\u65F6\u95F4\u6307\u793A\u5668",showWeekends:"\u663E\u793A\u5468\u672B",showAllDaySlot:"\u663E\u793A\u5168\u5929\u65F6\u6BB5",showTimeGrid:"\u663E\u793A\u5C0F\u65F6\u7F51\u683C",showTodayHighlight:"\u7A81\u51FA\u663E\u793A\u4ECA\u5929",todayColumnWidthMultiplier:"\u4ECA\u5929\u5217\u5BBD\u500D\u7387",showSelectionPreview:"\u663E\u793A\u9009\u62E9\u9884\u89C8",slotEventOverlap:"\u5141\u8BB8\u4E8B\u4EF6\u91CD\u53E0",enableSearch:"\u542F\u7528\u641C\u7D22\u6846",eventMaxStack:"\u6700\u5927\u5806\u53E0\u4E8B\u4EF6\u6570\uFF08\u5468/\u65E5\u89C6\u56FE\uFF0C0 = \u65E0\u9650\u5236\uFF09",dayMaxEvents:"\u6BCF\u5929\u6700\u5927\u4E8B\u4EF6\u6570\uFF08\u6708\u89C6\u56FE\uFF0C0 = \u81EA\u52A8\uFF09",dayMaxEventRows:"\u6BCF\u5929\u6700\u5927\u4E8B\u4EF6\u884C\u6570\uFF08\u6708\u89C6\u56FE\uFF0C0 = \u65E0\u9650\u5236\uFF09",timeFormat:"\u65F6\u95F4\u683C\u5F0F",timeFormat12:"12\u5C0F\u65F6\u5236\uFF08AM/PM\uFF09",timeFormat24:"24\u5C0F\u65F6\u5236",initialScrollTime:"\u521D\u59CB\u6EDA\u52A8\u65F6\u95F4",initialScrollTimePlaceholder:"HH:mm:ss\uFF08\u4F8B\u5982\uFF1A08:00:00\uFF09",minimumEventHeight:"\u6700\u5C0F\u4E8B\u4EF6\u9AD8\u5EA6\uFF08px\uFF09",spanScheduledToDue:"\u5728\u8BA1\u5212\u65E5\u671F\u548C\u622A\u6B62\u65E5\u671F\u4E4B\u95F4\u6269\u5C55\u4EFB\u52A1",heightMode:"\u9AD8\u5EA6\u6A21\u5F0F",heightModeFill:"\u586B\u6EE1\u5BB9\u5668",heightModeAuto:"\u81EA\u52A8\u9AD8\u5EA6"},propertyBasedEvents:{startDateProperty:"\u5F00\u59CB\u65E5\u671F\u5C5E\u6027",startDatePropertyPlaceholder:"\u9009\u62E9\u5F00\u59CB\u65E5\u671F/\u65F6\u95F4\u7684\u5C5E\u6027",endDateProperty:"\u7ED3\u675F\u65E5\u671F\u5C5E\u6027\uFF08\u53EF\u9009\uFF09",endDatePropertyPlaceholder:"\u9009\u62E9\u7ED3\u675F\u65E5\u671F/\u65F6\u95F4\u7684\u5C5E\u6027",titleProperty:"\u6807\u9898\u5C5E\u6027\uFF08\u53EF\u9009\uFF09",titlePropertyPlaceholder:"\u9009\u62E9\u4E8B\u4EF6\u6807\u9898\u7684\u5C5E\u6027"}},notices:{noDailyNoteForDate:"\u6B64\u65E5\u671F\u6CA1\u6709\u6BCF\u65E5\u7B14\u8BB0\u3002"},errors:{failedToInitialize:"\u521D\u59CB\u5316\u65E5\u5386\u5931\u8D25"}},kanban:{title:"\u770B\u677F",newTask:"\u65B0\u4EFB\u52A1",addCard:"+ \u6DFB\u52A0\u5361\u7247",noTasks:"\u6CA1\u6709\u4EFB\u52A1",uncategorized:"\u672A\u5206\u7C7B",noProject:"\u65E0\u9879\u76EE",reorder:{scope:{column:'\u5217 "{group}"',columnInSwimlane:'"{swimlane}" \u6CF3\u9053\u4E2D\u7684\u5217 "{group}"'}},notices:{loadFailed:"\u770B\u677F\u52A0\u8F7D\u5931\u8D25",movedTask:'\u4EFB\u52A1\u5DF2\u79FB\u52A8\u5230"{0}"'},errors:{loadingBoard:"\u52A0\u8F7D\u770B\u677F\u65F6\u51FA\u9519\u3002",noGroupBy:"\u770B\u677F\u89C6\u56FE\u9700\u8981\u914D\u7F6E\u300C\u5206\u7EC4\u4F9D\u636E\u300D\u5C5E\u6027\u3002\u70B9\u51FB\u300C\u6392\u5E8F\u300D\u6309\u94AE\uFF0C\u7136\u540E\u5728\u300C\u5206\u7EC4\u4F9D\u636E\u300D\u4E0B\u9009\u62E9\u4E00\u4E2A\u5C5E\u6027\u3002",formulaGroupingReadOnly:"\u65E0\u6CD5\u5728\u57FA\u4E8E\u516C\u5F0F\u7684\u5217\u4E4B\u95F4\u79FB\u52A8\u4EFB\u52A1\u3002\u516C\u5F0F\u503C\u662F\u8BA1\u7B97\u5F97\u51FA\u7684\uFF0C\u4E0D\u80FD\u76F4\u63A5\u4FEE\u6539\u3002",formulaSwimlaneReadOnly:"\u65E0\u6CD5\u5728\u57FA\u4E8E\u516C\u5F0F\u7684\u6CF3\u9053\u4E4B\u95F4\u79FB\u52A8\u4EFB\u52A1\u3002\u516C\u5F0F\u503C\u662F\u8BA1\u7B97\u5F97\u51FA\u7684\uFF0C\u4E0D\u80FD\u76F4\u63A5\u4FEE\u6539\u3002"},columnTitle:"\u65E0\u6807\u9898"},pomodoro:{title:"\u756A\u8304\u949F",status:{focus:"\u4E13\u6CE8",ready:"\u51C6\u5907\u5F00\u59CB",paused:"\u5DF2\u6682\u505C",working:"\u5DE5\u4F5C\u4E2D",shortBreak:"\u77ED\u4F11\u606F",longBreak:"\u957F\u4F11\u606F",breakPrompt:"\u505A\u5F97\u5F88\u597D\uFF01\u662F\u65F6\u5019{length}\u4F11\u606F\u4E86",breakLength:{short:"\u77ED",long:"\u957F"},breakComplete:"\u4F11\u606F\u5B8C\u6210\uFF01\u51C6\u5907\u597D\u8FDB\u884C\u4E0B\u4E00\u4E2A\u756A\u8304\u949F\u4E86\u5417\uFF1F"},buttons:{start:"\u5F00\u59CB",pause:"\u6682\u505C",stop:"\u505C\u6B62",resume:"\u7EE7\u7EED",startShortBreak:"\u5F00\u59CB\u77ED\u4F11\u606F",startLongBreak:"\u5F00\u59CB\u957F\u4F11\u606F",skipBreak:"\u8DF3\u8FC7\u4F11\u606F",chooseTask:"\u9009\u62E9\u4EFB\u52A1...",changeTask:"\u66F4\u6362\u4EFB\u52A1...",clearTask:"\u6E05\u9664\u4EFB\u52A1",selectDifferentTask:"\u9009\u62E9\u5176\u4ED6\u4EFB\u52A1",startFocus:"\u5F00\u59CB\u4E13\u6CE8",addMinute:"\u589E\u52A0\u4E00\u5206\u949F",subtractMinute:"\u51CF\u5C11\u4E00\u5206\u949F"},notices:{noTasks:"\u672A\u627E\u5230\u672A\u5F52\u6863\u7684\u4EFB\u52A1\u3002\u8BF7\u5148\u521B\u5EFA\u4E00\u4E9B\u4EFB\u52A1\u3002",loadFailed:"\u52A0\u8F7D\u4EFB\u52A1\u5931\u8D25",invalidDuration:"\u8BF7\u8F93\u5165\u7C7B\u4F3C 10\u300110:30 \u6216 1:30:00 \u7684\u65F6\u957F\u3002"},statsLabel:"\u4ECA\u65E5\u5B8C\u6210",meta:{ready:"\u5DF2\u8BA1\u5212 {time} \xB7 \u4ECA\u5929\u5DF2\u5B8C\u6210 {count} \u4E2A",running:"\u5269\u4F59 {time} \xB7 \u7ED3\u675F\u4E8E {endTime}",paused:"{type} \u5DF2\u6682\u505C \xB7 \u5269\u4F59 {time}",breakReady:"{type} \u5DF2\u5C31\u7EEA \xB7 \u5DF2\u8BA1\u5212 {time}"},timer:{editLabel:"\u7F16\u8F91\u8BA1\u65F6\u5668\u65F6\u957F",inputLabel:"\u8BA1\u65F6\u5668\u65F6\u957F"}},pomodoroStats:{title:"\u756A\u8304\u949F\u7EDF\u8BA1",heading:"\u756A\u8304\u949F\u7EDF\u8BA1\u6570\u636E",refresh:"\u5237\u65B0",sections:{overview:"\u6982\u89C8",today:"\u4ECA\u5929",week:"\u672C\u5468",allTime:"\u5168\u90E8\u65F6\u95F4",recent:"\u6700\u8FD1\u7684\u4F1A\u8BDD"},overviewCards:{todayPomos:{label:"\u4ECA\u65E5\u756A\u8304\u949F",change:{more:"\u6BD4\u6628\u5929\u591A{count}\u4E2A",less:"\u6BD4\u6628\u5929\u5C11{count}\u4E2A"}},totalPomos:{label:"\u603B\u756A\u8304\u949F\u6570"},todayFocus:{label:"\u4ECA\u65E5\u4E13\u6CE8\u65F6\u95F4",change:{more:"\u6BD4\u6628\u5929\u591A{duration}",less:"\u6BD4\u6628\u5929\u5C11{duration}"}},totalFocus:{label:"\u603B\u4E13\u6CE8\u65F6\u957F"}},stats:{pomodoros:"\u756A\u8304\u949F",streak:"\u8FDE\u51FB",minutes:"\u5206\u949F",average:"\u5E73\u5747\u65F6\u957F",completion:"\u5B8C\u6210\u7387"},recents:{empty:"\u5C1A\u672A\u8BB0\u5F55\u4F1A\u8BDD",duration:"{minutes}\u5206\u949F",status:{completed:"\u5DF2\u5B8C\u6210",interrupted:"\u5DF2\u4E2D\u65AD"},delete:"\u5220\u9664\u4F1A\u8BDD",deleteAria:"\u5220\u9664 Pomodoro \u4F1A\u8BDD",deleteConfirmTitle:"\u5220\u9664 Pomodoro \u4F1A\u8BDD\uFF1F",deleteConfirmMessage:"\u8FD9\u4F1A\u4ECE Pomodoro \u5386\u53F2\u4E2D\u5220\u9664\u8BE5\u4F1A\u8BDD\u3002\u73B0\u6709\u4EFB\u52A1\u65F6\u95F4\u6761\u76EE\u4E0D\u4F1A\u66F4\u6539\u3002",deleteConfirmButton:"\u5220\u9664",deleteSuccess:"Pomodoro \u4F1A\u8BDD\u5DF2\u5220\u9664",deleteNotFound:"\u672A\u627E\u5230 Pomodoro \u4F1A\u8BDD"},basesMigration:{title:"\u60F3\u8981 Base \u89C6\u56FE\u5417\uFF1F",description:"Pomodoro Base \u89C6\u56FE\u4F7F\u7528\u6BCF\u65E5\u7B14\u8BB0 frontmatter\u3002\u8981\u5728\u751F\u6210\u7684 Pomodoro \u7EDF\u8BA1 Base \u4E2D\u67E5\u770B\u6B64\u5386\u53F2\uFF0C\u8BF7\u5148\u5728\u8BBE\u7F6E\u4E2D\u8FC1\u79FB Pomodoro \u6570\u636E\uFF0C\u7136\u540E\u5C06\u5B58\u50A8\u4F4D\u7F6E\u8BBE\u4E3A\u6BCF\u65E5\u7B14\u8BB0\u3002"}},stats:{title:"\u7EDF\u8BA1",taskProjectStats:"\u4EFB\u52A1\u548C\u9879\u76EE\u7EDF\u8BA1",sections:{filters:"\u7B5B\u9009\u5668",overview:"\u6982\u89C8",today:"\u4ECA\u5929",thisWeek:"\u672C\u5468",thisMonth:"\u672C\u6708",projectBreakdown:"\u9879\u76EE\u5206\u89E3",dateRange:"\u65E5\u671F\u8303\u56F4"},filters:{minTime:"\u6700\u5C11\u65F6\u95F4\uFF08\u5206\u949F\uFF09",allTasks:"\u6240\u6709\u4EFB\u52A1",activeOnly:"\u4EC5\u6D3B\u8DC3\u7684",completedOnly:"\u4EC5\u5DF2\u5B8C\u6210\u7684"},refreshButton:"\u5237\u65B0",timeRanges:{allTime:"\u4E00\u76F4",last7Days:"\u6700\u8FD1 7 \u5929",last30Days:"\u6700\u8FD1 30 \u5929",last90Days:"\u6700\u8FD1 90 \u5929",customRange:"\u81EA\u5B9A\u4E49\u8303\u56F4"},resetFiltersButton:"\u91CD\u7F6E\u7B5B\u9009",dateRangeFrom:"\u4ECE",dateRangeTo:"\u5230",noProject:"\u65E0\u9879\u76EE",cards:{timeTrackedEstimated:"\u8DDF\u8E2A\u65F6\u95F4/\u9884\u4F30\u65F6\u95F4",totalTasks:"\u603B\u4EFB\u52A1\u6570",completionRate:"\u5B8C\u6210\u7387",activeProjects:"\u6D3B\u8DC3\u9879\u76EE",avgTimePerTask:"\u6BCF\u4E2A\u4EFB\u52A1\u7684\u5E73\u5747\u65F6\u95F4"},labels:{tasks:"\u4EFB\u52A1",completed:"\u5DF2\u5B8C\u6210",projects:"\u9879\u76EE"},noProjectData:"\u65E0\u53EF\u7528\u7684\u9879\u76EE\u6570\u636E",notAvailable:"\u4E0D\u9002\u7528",noTasks:"\u672A\u627E\u5230\u4EFB\u52A1",loading:"\u52A0\u8F7D\u4E2D..."},releaseNotes:{title:"TaskNotes {version} \u7684\u65B0\u529F\u80FD",header:"TaskNotes {version} \u7684\u65B0\u529F\u80FD",viewAllLink:"\u5728 GitHub \u4E0A\u67E5\u770B\u6240\u6709\u7248\u672C\u8BF4\u660E \u2192",starMessage:"\u6211\u4EEC\u975E\u5E38\u611F\u8C22\u6240\u6709\u53CD\u9988\u3002\u5982\u679C\u6709\u4EC0\u4E48\u611F\u89C9\u4E0D\u5BF9\uFF0C\u8BF7\u5728 GitHub \u4E0A\u544A\u8BC9\u6211\u4EEC\u3002\u5982\u679C\u4F60\u89C9\u5F97 TaskNotes \u6709\u7528\uFF0C\u8BF7\u8003\u8651\u7ED9\u5B83\u52A0\u661F\u3002",baseFilesNotice:"> [!info] \u5173\u4E8E\u9ED8\u8BA4 `.base` \u6587\u4EF6\n> \u9ED8\u8BA4\u751F\u6210\u7684 `.base` \u6A21\u677F\u66F4\u65B0\u4E0D\u4F1A\u8986\u76D6\u4F60\u73B0\u6709\u7684 `.base` \u6587\u4EF6\uFF0C\u56E0\u6B64\u4F60\u7684\u81EA\u5B9A\u4E49\u4F1A\u88AB\u4FDD\u7559\u3002\n> \u5982\u679C\u4F60\u5E0C\u671B\u83B7\u5F97\u6700\u65B0\u6A21\u677F\u6539\u8FDB\uFF0C\u8BF7\u5728 **\u8BBE\u7F6E \u2192 TaskNotes \u2192 \u5E38\u89C4 \u2192 \u89C6\u56FE\u4E0E base \u6587\u4EF6 \u2192 \u66F4\u65B0\u6587\u4EF6** \u4E2D\u91CD\u65B0\u751F\u6210 base \u6587\u4EF6\u3002"}},settings:{header:{documentation:"\u6587\u6863",documentationUrl:"https://tasknotes.dev"},tabs:{general:"\u5E38\u89C4",taskProperties:"\u4EFB\u52A1\u5C5E\u6027",modalFields:"\u6A21\u6001\u6846\u5B57\u6BB5",defaults:"\u9ED8\u8BA4\u503C\u548C\u6A21\u677F",appearance:"\u5916\u89C2\u548C\u754C\u9762",features:"\u529F\u80FD",integrations:"\u96C6\u6210"},features:{inlineTasks:{header:"\u5185\u8054\u4EFB\u52A1",description:"\u4EFB\u52A1\u94FE\u63A5\u548C\u590D\u9009\u6846\u8F6C\u4EFB\u52A1\u529F\u80FD\u7684\u8BBE\u7F6E\u3002"},taskCreation:{header:"\u4EFB\u52A1\u521B\u5EFA",description:"\u914D\u7F6E\u4EFB\u52A1\u521B\u5EFA\u540E\u7684\u884C\u4E3A\u3002",openAfterCreate:{name:"\u521B\u5EFA\u540E\u6253\u5F00\u4EFB\u52A1",description:"\u9009\u62E9\u5E38\u89C4\u65B0\u5EFA\u4EFB\u52A1\u5F39\u7A97\u5728\u4FDD\u5B58\u540E\u662F\u5426\u6253\u5F00\u65B0\u7684\u4EFB\u52A1\u7B14\u8BB0\u3002",options:{none:"\u4E0D\u6253\u5F00",sameTab:"\u5728\u5F53\u524D\u6807\u7B7E\u9875\u6253\u5F00",newTab:"\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00"}}},overlays:{taskLinkToggle:{name:"\u4EFB\u52A1\u94FE\u63A5\u8986\u76D6",description:"\u60AC\u505C\u5728\u4EFB\u52A1\u94FE\u63A5\u4E0A\u65F6\u663E\u793A\u4EA4\u4E92\u5F0F\u8986\u76D6"},aliasExclusion:{name:"\u7981\u7528\u522B\u540D\u94FE\u63A5\u7684\u8986\u76D6",description:"\u5982\u679C\u94FE\u63A5\u5305\u542B\u522B\u540D\uFF0C\u5219\u4E0D\u663E\u793A\u4EFB\u52A1\u5C0F\u90E8\u4EF6\uFF08\u4F8B\u5982 [[\u4EFB\u52A1|\u522B\u540D]]\uFF09\u3002"}},instantConvert:{toggle:{name:"\u5728\u590D\u9009\u6846\u65C1\u8FB9\u663E\u793A\u8F6C\u6362\u6309\u94AE",description:"\u5728Markdown\u590D\u9009\u6846\u65C1\u8FB9\u663E\u793A\u5185\u8054\u6309\u94AE\uFF0C\u5C06\u5176\u8F6C\u6362\u4E3ATaskNotes"},preserveCheckbox:{name:"\u8F6C\u6362\u65F6\u4FDD\u7559\u590D\u9009\u6846",description:"\u5C06\u590D\u9009\u6846\u8F6C\u6362\u4E3A TaskNote \u94FE\u63A5\u65F6\uFF0C\u4FDD\u7559\u539F\u59CB Markdown \u590D\u9009\u6846\u6807\u8BB0\u3002"},folder:{name:"\u5185\u8054\u521B\u5EFA\u4EFB\u52A1\u7684\u6587\u4EF6\u5939",description:"\u901A\u8FC7\u5185\u8054\u547D\u4EE4\u6216\u590D\u9009\u6846\u8F6C\u6362\u521B\u5EFA\u7684\u4EFB\u52A1\u5C06\u5B58\u653E\u5728\u6B64\u6587\u4EF6\u5939\u3002\u7559\u7A7A\u5219\u4F7F\u7528\u9ED8\u8BA4\u4EFB\u52A1\u6587\u4EF6\u5939\u3002\u4F7F\u7528 {{currentNotePath}} \u8868\u793A\u5F53\u524D\u7B14\u8BB0\u7684\u6587\u4EF6\u5939\uFF0C\u6216\u4F7F\u7528 {{currentNoteTitle}} \u8868\u793A\u4EE5\u5F53\u524D\u7B14\u8BB0\u547D\u540D\u7684\u5B50\u6587\u4EF6\u5939\u3002"}},nlp:{header:"\u81EA\u7136\u8BED\u8A00\u5904\u7406",description:"\u4ECE\u6587\u672C\u8F93\u5165\u89E3\u6790\u65E5\u671F\u3001\u4F18\u5148\u7EA7\u548C\u5176\u4ED6\u5C5E\u6027\u3002",enable:{name:"\u542F\u7528\u81EA\u7136\u8BED\u8A00\u4EFB\u52A1\u8F93\u5165",description:"\u521B\u5EFA\u4EFB\u52A1\u65F6\u4ECE\u81EA\u7136\u8BED\u8A00\u89E3\u6790\u5230\u671F\u65E5\u671F\u3001\u4F18\u5148\u7EA7\u548C\u4E0A\u4E0B\u6587"},defaultToScheduled:{name:"\u9ED8\u8BA4\u4E3A\u5DF2\u5B89\u6392",description:"\u5F53NLP\u68C0\u6D4B\u5230\u65E0\u4E0A\u4E0B\u6587\u7684\u65E5\u671F\u65F6\uFF0C\u5C06\u5176\u89C6\u4E3A\u5DF2\u5B89\u6392\u800C\u4E0D\u662F\u5230\u671F"},language:{name:"NLP\u8BED\u8A00",description:"\u81EA\u7136\u8BED\u8A00\u5904\u7406\u6A21\u5F0F\u548C\u65E5\u671F\u89E3\u6790\u7684\u8BED\u8A00"},statusTrigger:{name:"\u72B6\u6001\u5EFA\u8BAE\u89E6\u53D1\u5668",description:"\u89E6\u53D1\u72B6\u6001\u5EFA\u8BAE\u7684\u6587\u672C\uFF08\u7559\u7A7A\u4EE5\u7981\u7528\uFF09"}},pomodoro:{header:"\u756A\u8304\u949F\u8BA1\u65F6\u5668",description:"\u914D\u7F6E\u756A\u8304\u949F\u8BA1\u65F6\u5668\u7684\u5DE5\u4F5C/\u4F11\u606F\u95F4\u9694\u3002",workDuration:{name:"\u5DE5\u4F5C\u65F6\u957F",description:"\u5DE5\u4F5C\u95F4\u9694\u7684\u6301\u7EED\u65F6\u95F4\uFF08\u5206\u949F\uFF09"},shortBreak:{name:"\u77ED\u4F11\u606F\u65F6\u957F",description:"\u77ED\u4F11\u606F\u7684\u6301\u7EED\u65F6\u95F4\uFF08\u5206\u949F\uFF09"},longBreak:{name:"\u957F\u4F11\u606F\u65F6\u957F",description:"\u957F\u4F11\u606F\u7684\u6301\u7EED\u65F6\u95F4\uFF08\u5206\u949F\uFF09"},longBreakInterval:{name:"\u957F\u4F11\u606F\u95F4\u9694",description:"\u957F\u4F11\u606F\u524D\u7684\u5DE5\u4F5C\u4F1A\u8BDD\u6570"},autoStartBreaks:{name:"\u81EA\u52A8\u5F00\u59CB\u4F11\u606F",description:"\u5DE5\u4F5C\u4F1A\u8BDD\u540E\u81EA\u52A8\u5F00\u59CB\u4F11\u606F\u8BA1\u65F6\u5668"},autoStartWork:{name:"\u81EA\u52A8\u5F00\u59CB\u5DE5\u4F5C",description:"\u4F11\u606F\u540E\u81EA\u52A8\u5F00\u59CB\u5DE5\u4F5C\u4F1A\u8BDD"},notifications:{name:"\u756A\u8304\u949F\u901A\u77E5",description:"\u756A\u8304\u949F\u4F1A\u8BDD\u7ED3\u675F\u65F6\u663E\u793A\u901A\u77E5"},mobileSidebar:{name:"\u79FB\u52A8\u7AEF\u4FA7\u8FB9\u680F",description:"\u5728\u79FB\u52A8\u8BBE\u5907\u4E0A\u6253\u5F00\u756A\u8304\u949F\u8BA1\u65F6\u5668\u7684\u4F4D\u7F6E",tab:"\u7B14\u8BB0\u9762\u677F",left:"\u5DE6\u4FA7\u8FB9\u680F",right:"\u53F3\u4FA7\u8FB9\u680F"},statusBar:{name:"\u5728\u72B6\u6001\u680F\u663E\u793A Pomodoro",description:"\u5728 Obsidian \u72B6\u6001\u680F\u663E\u793A\u5F53\u524D Pomodoro \u5012\u8BA1\u65F6"}},uiLanguage:{header:"\u754C\u9762\u8BED\u8A00",description:"\u66F4\u6539TaskNotes\u83DC\u5355\u3001\u901A\u77E5\u548C\u89C6\u56FE\u7684\u8BED\u8A00\u3002",dropdown:{name:"\u754C\u9762\u8BED\u8A00",description:"\u9009\u62E9TaskNotes\u754C\u9762\u6587\u672C\u4F7F\u7528\u7684\u8BED\u8A00"}},pomodoroSound:{enabledName:"\u542F\u7528\u58F0\u97F3",enabledDesc:"\u756A\u8304\u949F\u4F1A\u8BDD\u7ED3\u675F\u65F6\u64AD\u653E\u58F0\u97F3",volumeName:"\u58F0\u97F3\u97F3\u91CF",volumeDesc:"\u756A\u8304\u949F\u58F0\u97F3\u7684\u97F3\u91CF\uFF080-100\uFF09"},dataStorage:{name:"\u756A\u8304\u949F\u6570\u636E\u5B58\u50A8",description:"\u914D\u7F6E\u756A\u8304\u949F\u4F1A\u8BDD\u6570\u636E\u7684\u5B58\u50A8\u4F4D\u7F6E\u548C\u7BA1\u7406\u65B9\u5F0F\u3002",dailyNotes:"\u65E5\u8BB0",pluginData:"\u63D2\u4EF6\u6570\u636E",notices:{locationChanged:"\u756A\u8304\u949F\u5B58\u50A8\u4F4D\u7F6E\u5DF2\u66F4\u6539\u4E3A {location}"}},notifications:{header:"\u901A\u77E5",description:"\u914D\u7F6E\u4EFB\u52A1\u63D0\u9192\u901A\u77E5\u548C\u8B66\u62A5\u3002",enableName:"\u542F\u7528\u901A\u77E5",enableDesc:"\u542F\u7528\u4EFB\u52A1\u63D0\u9192\u901A\u77E5",typeName:"\u901A\u77E5\u7C7B\u578B",typeDesc:"\u8981\u663E\u793A\u7684\u901A\u77E5\u7C7B\u578B",systemLabel:"\u7CFB\u7EDF\u901A\u77E5",inAppLabel:"\u5E94\u7528\u5185\u901A\u77E5",soundEnabledName:"\u901A\u77E5\u58F0\u97F3",soundEnabledDesc:"\u4EFB\u52A1\u63D0\u9192\u89E6\u53D1\u65F6\u64AD\u653E\u58F0\u97F3",soundVolumeName:"\u58F0\u97F3\u97F3\u91CF",soundVolumeDesc:"\u4EFB\u52A1\u63D0\u9192\u58F0\u97F3\u97F3\u91CF (0-100)",soundPreviewName:"\u9884\u89C8\u901A\u77E5\u58F0\u97F3",soundPreviewDesc:"\u64AD\u653E\u5DF2\u914D\u7F6E\u7684\u4EFB\u52A1\u63D0\u9192\u58F0\u97F3",soundPreviewButton:"\u9884\u89C8",testReminderName:"\u53D1\u9001\u6D4B\u8BD5\u63D0\u9192",testReminderDesc:"\u4F7F\u7528\u5F53\u524D\u901A\u77E5\u7C7B\u578B\u548C\u58F0\u97F3\u8BBE\u7F6E\u53D1\u9001\u6D4B\u8BD5\u63D0\u9192\u3002",testReminderButton:"\u53D1\u9001\u6D4B\u8BD5"},overdue:{hideCompletedName:"\u5728\u903E\u671F\u4E2D\u9690\u85CF\u5DF2\u5B8C\u6210\u7684\u4EFB\u52A1",hideCompletedDesc:"\u4ECE\u903E\u671F\u4EFB\u52A1\u8BA1\u7B97\u4E2D\u6392\u9664\u5DF2\u5B8C\u6210\u7684\u4EFB\u52A1"},indexing:{disableName:"\u7981\u7528\u7B14\u8BB0\u7D22\u5F15",disableDesc:"\u7981\u7528\u7B14\u8BB0\u5185\u5BB9\u7684\u81EA\u52A8\u7D22\u5F15\u4EE5\u63D0\u9AD8\u6027\u80FD"},suggestions:{debounceName:"\u5EFA\u8BAE\u9632\u6296",debounceDesc:"\u663E\u793A\u5EFA\u8BAE\u524D\u7684\u5EF6\u8FDF\u6BEB\u79D2\u6570"},timeTracking:{autoStopName:"\u81EA\u52A8\u505C\u6B62\u65F6\u95F4\u8DDF\u8E2A",autoStopDesc:"\u4EFB\u52A1\u6807\u8BB0\u4E3A\u5B8C\u6210\u65F6\u81EA\u52A8\u505C\u6B62\u65F6\u95F4\u8DDF\u8E2A",stopNotificationName:"\u65F6\u95F4\u8DDF\u8E2A\u505C\u6B62\u901A\u77E5",stopNotificationDesc:"\u81EA\u52A8\u505C\u6B62\u65F6\u95F4\u8DDF\u8E2A\u65F6\u663E\u793A\u901A\u77E5"},recurring:{maintainOffsetName:"\u5728\u91CD\u590D\u4EFB\u52A1\u4E2D\u4FDD\u6301\u5230\u671F\u65E5\u671F\u504F\u79FB",maintainOffsetDesc:"\u91CD\u590D\u4EFB\u52A1\u5B8C\u6210\u65F6\u4FDD\u6301\u5230\u671F\u65E5\u671F\u548C\u5B89\u6392\u65E5\u671F\u4E4B\u95F4\u7684\u504F\u79FB",resetCheckboxesName:"\u91CD\u590D\u65F6\u91CD\u7F6E\u590D\u9009\u6846",resetCheckboxesDesc:"\u5F53\u91CD\u590D\u4EFB\u52A1\u5B8C\u6210\u5E76\u91CD\u65B0\u5B89\u6392\u65F6\uFF0C\u91CD\u7F6E\u4EFB\u52A1\u6B63\u6587\u4E2D\u7684\u6240\u6709markdown\u590D\u9009\u6846"},timeblocking:{header:"\u65F6\u95F4\u5757",description:"\u914D\u7F6E\u65F6\u95F4\u5757\u529F\u80FD\uFF0C\u5728\u65E5\u8BB0\u4E2D\u8FDB\u884C\u8F7B\u91CF\u7EA7\u8C03\u5EA6\u3002\u5728\u65E5\u5386\u89C6\u56FE\u4E0A\u62D6\u52A8\u4EE5\u521B\u5EFA\u4E8B\u4EF6 - \u4ECE\u4E0A\u4E0B\u6587\u83DC\u5355\u4E2D\u9009\u62E9'\u65F6\u95F4\u5757'\u3002",enableName:"\u542F\u7528\u65F6\u95F4\u5757",enableDesc:"\u542F\u7528\u65F6\u95F4\u5757\u529F\u80FD\uFF0C\u5728\u65E5\u8BB0\u4E2D\u8FDB\u884C\u8F7B\u91CF\u7EA7\u8C03\u5EA6\u3002\u542F\u7528\u540E\uFF0C'\u65F6\u95F4\u5757'\u9009\u9879\u4F1A\u51FA\u73B0\u5728\u65E5\u5386\u62D6\u52A8\u4E0A\u4E0B\u6587\u83DC\u5355\u4E2D\u3002",showBlocksName:"\u663E\u793A\u65F6\u95F4\u5757",showBlocksDesc:"\u9ED8\u8BA4\u663E\u793A\u65E5\u8BB0\u4E2D\u7684\u65F6\u95F4\u5757",defaultColorName:"\u9ED8\u8BA4\u65F6\u95F4\u5757\u989C\u8272",defaultColorDesc:"\u521B\u5EFA\u65B0\u65F6\u95F4\u5757\u65F6\u4F7F\u7528\u7684\u9ED8\u8BA4\u989C\u8272",usage:"\u7528\u6CD5\uFF1A\u5728\u65E5\u5386\u4E0A\u62D6\u52A8\u4EE5\u521B\u5EFA\u4E8B\u4EF6\u3002\u4ECE\u4E0A\u4E0B\u6587\u83DC\u5355\u4E2D\u9009\u62E9'\u65F6\u95F4\u5757'\uFF08\u4EC5\u5728\u542F\u7528\u65F6\u95F4\u5757\u65F6\u53EF\u89C1\uFF09\u3002\u62D6\u52A8\u4EE5\u79FB\u52A8\u73B0\u6709\u65F6\u95F4\u5757\u3002\u8C03\u6574\u8FB9\u7F18\u4EE5\u4FEE\u6539\u6301\u7EED\u65F6\u95F4\u3002"},performance:{header:"\u6027\u80FD\u548C\u884C\u4E3A",description:"\u914D\u7F6E\u63D2\u4EF6\u6027\u80FD\u548C\u884C\u4E3A\u9009\u9879\u3002"},timeTrackingSection:{header:"\u65F6\u95F4\u8DDF\u8E2A",description:"\u914D\u7F6E\u81EA\u52A8\u65F6\u95F4\u8DDF\u8E2A\u884C\u4E3A\u3002"},recurringSection:{header:"\u91CD\u590D\u4EFB\u52A1",description:"\u914D\u7F6E\u91CD\u590D\u4EFB\u52A1\u7BA1\u7406\u7684\u884C\u4E3A\u3002"},debugLogging:{header:"\u8C03\u8BD5\u65E5\u5FD7",description:"\u8BBE\u7F6E\u7528\u4E8E\u6545\u969C\u6392\u67E5\u7684\u8C03\u8BD5\u65E5\u5FD7\u8F93\u51FA\u3002",enableName:"\u542F\u7528\u8C03\u8BD5\u65E5\u5FD7",enableDesc:"\u5C06\u62D6\u653E\u548C\u89C6\u56FE\u7684\u8BE6\u7EC6\u8BCA\u65AD\u4FE1\u606F\u8BB0\u5F55\u5230\u5F00\u53D1\u8005\u63A7\u5236\u53F0\uFF0C\u6709\u52A9\u4E8E\u6545\u969C\u6392\u67E5\u3002"}},defaults:{header:{basicDefaults:"\u57FA\u672C\u9ED8\u8BA4\u503C",dateDefaults:"\u65E5\u671F\u9ED8\u8BA4\u503C",defaultReminders:"\u9ED8\u8BA4\u63D0\u9192",bodyTemplate:"\u6B63\u6587\u6A21\u677F",instantTaskConversion:"\u5373\u65F6\u4EFB\u52A1\u8F6C\u6362"},description:{basicDefaults:"\u4E3A\u65B0\u4EFB\u52A1\u8BBE\u7F6E\u9ED8\u8BA4\u503C\u4EE5\u52A0\u5FEB\u4EFB\u52A1\u521B\u5EFA\u3002",dateDefaults:"\u4E3A\u65B0\u4EFB\u52A1\u8BBE\u7F6E\u9ED8\u8BA4\u5230\u671F\u548C\u5B89\u6392\u65E5\u671F\u3002",defaultReminders:"\u914D\u7F6E\u5C06\u6DFB\u52A0\u5230\u65B0\u4EFB\u52A1\u7684\u9ED8\u8BA4\u63D0\u9192\u3002",bodyTemplate:"\u914D\u7F6E\u7528\u4E8E\u65B0\u4EFB\u52A1\u5185\u5BB9\u7684\u6A21\u677F\u6587\u4EF6\u3002",instantTaskConversion:"\u914D\u7F6E\u5373\u65F6\u8F6C\u6362\u6587\u672C\u4E3A\u4EFB\u52A1\u65F6\u7684\u884C\u4E3A\u3002"},basicDefaults:{defaultStatus:{name:"\u9ED8\u8BA4\u72B6\u6001",description:"\u65B0\u4EFB\u52A1\u7684\u9ED8\u8BA4\u72B6\u6001"},defaultPriority:{name:"\u9ED8\u8BA4\u4F18\u5148\u7EA7",description:"\u65B0\u4EFB\u52A1\u7684\u9ED8\u8BA4\u4F18\u5148\u7EA7"},defaultContexts:{name:"\u9ED8\u8BA4\u4E0A\u4E0B\u6587",description:"\u9ED8\u8BA4\u4E0A\u4E0B\u6587\u7684\u9017\u53F7\u5206\u9694\u5217\u8868\uFF08\u4F8B\u5982\uFF0C@\u5BB6\uFF0C@\u5DE5\u4F5C\uFF09",placeholder:"@\u5BB6\uFF0C@\u5DE5\u4F5C"},defaultTags:{name:"\u9ED8\u8BA4\u6807\u7B7E",description:"\u9ED8\u8BA4\u6807\u7B7E\u7684\u9017\u53F7\u5206\u9694\u5217\u8868\uFF08\u4E0D\u542B#\uFF09",placeholder:"\u91CD\u8981\uFF0C\u7D27\u6025"},defaultProjects:{name:"\u9ED8\u8BA4\u9879\u76EE",description:"\u65B0\u4EFB\u52A1\u7684\u9ED8\u8BA4\u9879\u76EE\u94FE\u63A5",selectButton:"\u9009\u62E9\u9879\u76EE",selectTooltip:"\u9009\u62E9\u9ED8\u8BA4\u94FE\u63A5\u7684\u9879\u76EE\u7B14\u8BB0",removeTooltip:"\u4ECE\u9ED8\u8BA4\u9879\u76EE\u4E2D\u79FB\u9664{name}"},useParentNoteForTaskCreation:{name:"\u65B0\u4EFB\u52A1\u4F7F\u7528\u5F53\u524D\u7B14\u8BB0\u4F5C\u4E3A\u9879\u76EE",description:"\u4ECE\u547D\u4EE4\u9762\u677F\u6216\u529F\u80FD\u533A\u6253\u5F00\u4EFB\u52A1\u521B\u5EFA\u65F6\uFF0C\u81EA\u52A8\u5C06\u5F53\u524D\u7B14\u8BB0\u94FE\u63A5\u4E3A\u9879\u76EE"},useParentNoteAsProject:{name:"\u5185\u8054\u521B\u5EFA\u548C\u5373\u65F6\u8F6C\u6362\u65F6\u4F7F\u7528\u7236\u7B14\u8BB0\u4F5C\u4E3A\u9879\u76EE",description:"\u4F7F\u7528\u5185\u8054\u4EFB\u52A1\u521B\u5EFA\u6216\u5373\u65F6\u4EFB\u52A1\u8F6C\u6362\u65F6\uFF0C\u81EA\u52A8\u5C06\u6E90\u7B14\u8BB0\u94FE\u63A5\u4E3A\u9879\u76EE"},useParentHeaderAsProject:{name:"\u5373\u65F6\u8F6C\u6362\u65F6\u4F7F\u7528\u7236\u7EA7\u6807\u9898\u4F5C\u4E3A\u9879\u76EE",description:"\u4F7F\u7528\u5373\u65F6\u4EFB\u52A1\u8F6C\u6362\u65F6\u81EA\u52A8\u5C06\u88AB\u8F6C\u6362\u884C\u4E0A\u65B9\u6700\u8FD1\u7684\u6807\u9898\u94FE\u63A5\u4E3A\u9879\u76EE"},defaultTimeEstimate:{name:"\u9ED8\u8BA4\u65F6\u95F4\u4F30\u8BA1",description:"\u9ED8\u8BA4\u65F6\u95F4\u4F30\u8BA1\uFF08\u5206\u949F\uFF09\uFF080 = \u65E0\u9ED8\u8BA4\u503C\uFF09",placeholder:"60"},defaultRecurrence:{name:"\u9ED8\u8BA4\u91CD\u590D",description:"\u65B0\u4EFB\u52A1\u7684\u9ED8\u8BA4\u91CD\u590D\u6A21\u5F0F"}},dateDefaults:{defaultDueDate:{name:"\u9ED8\u8BA4\u5230\u671F\u65E5\u671F",description:"\u65B0\u4EFB\u52A1\u7684\u9ED8\u8BA4\u5230\u671F\u65E5\u671F"},defaultScheduledDate:{name:"\u9ED8\u8BA4\u5B89\u6392\u65E5\u671F",description:"\u65B0\u4EFB\u52A1\u7684\u9ED8\u8BA4\u5B89\u6392\u65E5\u671F"}},reminders:{addReminder:{name:"\u6DFB\u52A0\u9ED8\u8BA4\u63D0\u9192",description:"\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u9ED8\u8BA4\u63D0\u9192\uFF0C\u5C06\u6DFB\u52A0\u5230\u6240\u6709\u65B0\u4EFB\u52A1",buttonText:"\u6DFB\u52A0\u63D0\u9192"},emptyState:"\u672A\u914D\u7F6E\u9ED8\u8BA4\u63D0\u9192\u3002\u6DFB\u52A0\u63D0\u9192\u4EE5\u81EA\u52A8\u901A\u77E5\u60A8\u6709\u5173\u65B0\u4EFB\u52A1\u7684\u4FE1\u606F\u3002",emptyStateButton:"\u6DFB\u52A0\u63D0\u9192",reminderDescription:"\u63D0\u9192\u63CF\u8FF0",unnamedReminder:"\u672A\u547D\u540D\u63D0\u9192",deleteTooltip:"\u5220\u9664\u63D0\u9192",fields:{description:"\u63CF\u8FF0\uFF1A",type:"\u7C7B\u578B\uFF1A",offset:"\u504F\u79FB\uFF1A",unit:"\u5355\u4F4D\uFF1A",direction:"\u65B9\u5411\uFF1A",relatedTo:"\u76F8\u5173\u4E8E\uFF1A",date:"\u65E5\u671F\uFF1A",time:"\u65F6\u95F4\uFF1A"},types:{relative:"\u76F8\u5BF9\uFF08\u4EFB\u52A1\u65E5\u671F\u524D/\u540E\uFF09",absolute:"\u7EDD\u5BF9\uFF08\u7279\u5B9A\u65E5\u671F/\u65F6\u95F4\uFF09"},units:{minutes:"\u5206\u949F",hours:"\u5C0F\u65F6",days:"\u5929"},directions:{before:"\u4E4B\u524D",after:"\u4E4B\u540E"},relatedTo:{due:"\u5230\u671F\u65E5\u671F",scheduled:"\u5B89\u6392\u65E5\u671F"}},bodyTemplate:{useBodyTemplate:{name:"\u4F7F\u7528\u6B63\u6587\u6A21\u677F",description:"\u4E3A\u4EFB\u52A1\u6B63\u6587\u5185\u5BB9\u4F7F\u7528\u6A21\u677F\u6587\u4EF6"},bodyTemplateFile:{name:"\u6B63\u6587\u6A21\u677F\u6587\u4EF6",description:"\u4EFB\u52A1\u6B63\u6587\u5185\u5BB9\u7684\u6A21\u677F\u6587\u4EF6\u8DEF\u5F84\u3002\u652F\u6301\u6A21\u677F\u53D8\u91CF\u5982{{title}}\u3001{{date}}\u3001{{time}}\u3001{{priority}}\u3001{{status}}\u7B49\u3002",placeholder:"\u6A21\u677F/\u4EFB\u52A1\u6A21\u677F.md",ariaLabel:"\u6B63\u6587\u6A21\u677F\u6587\u4EF6\u8DEF\u5F84"},useOccurrenceBodyTemplate:{name:"\u4F7F\u7528\u5B9E\u4F8B\u7B14\u8BB0\u6A21\u677F",description:"\u5F53\u91CD\u590D\u4EFB\u52A1\u672A\u8BBE\u7F6E occurrence_template \u65F6\uFF0C\u4E3A\u5DF2\u7269\u5316\u7684\u5B9E\u4F8B\u7B14\u8BB0\u4F7F\u7528\u5355\u72EC\u7684\u5907\u7528\u6A21\u677F"},occurrenceBodyTemplateFile:{name:"\u5B9E\u4F8B\u7B14\u8BB0\u6A21\u677F\u6587\u4EF6",description:"\u5DF2\u7269\u5316\u5B9E\u4F8B\u7B14\u8BB0\u7684\u6A21\u677F\u6587\u4EF6\u8DEF\u5F84\u3002\u91CD\u590D\u4EFB\u52A1\u7684 occurrence_template \u5B57\u6BB5\u4F18\u5148\u4E8E\u6B64\u5907\u7528\u6A21\u677F\u3002",placeholder:"\u6A21\u677F/\u5B9E\u4F8B\u6A21\u677F.md",ariaLabel:"\u5B9E\u4F8B\u7B14\u8BB0\u6A21\u677F\u6587\u4EF6\u8DEF\u5F84"},variablesHeader:"\u6A21\u677F\u53D8\u91CF\uFF1A",variables:{title:"{{title}} - \u4EFB\u52A1\u6807\u9898",details:"{{details}} - \u7528\u6237\u4ECE\u6A21\u6001\u6846\u63D0\u4F9B\u7684\u8BE6\u60C5",date:"{{date}} - \u5F53\u524D\u65E5\u671F\uFF08YYYY-MM-DD\uFF09",time:"{{time}} - \u5F53\u524D\u65F6\u95F4\uFF08HH:MM\uFF09",priority:"{{priority}} - \u4EFB\u52A1\u4F18\u5148\u7EA7",status:"{{status}} - \u4EFB\u52A1\u72B6\u6001",contexts:"{{contexts}} - \u4EFB\u52A1\u4E0A\u4E0B\u6587",tags:"{{tags}} - \u4EFB\u52A1\u6807\u7B7E",projects:"{{projects}} - \u4EFB\u52A1\u9879\u76EE"}},instantConversion:{useDefaultsOnInstantConvert:{name:"\u5373\u65F6\u8F6C\u6362\u65F6\u4F7F\u7528\u4EFB\u52A1\u9ED8\u8BA4\u503C",description:"\u5373\u65F6\u8F6C\u6362\u6587\u672C\u4E3A\u4EFB\u52A1\u65F6\u5E94\u7528\u9ED8\u8BA4\u4EFB\u52A1\u8BBE\u7F6E"}},options:{noDefault:"\u65E0\u9ED8\u8BA4\u503C",none:"\u65E0",today:"\u4ECA\u5929",tomorrow:"\u660E\u5929",nextWeek:"\u4E0B\u5468",daily:"\u6BCF\u65E5",weekly:"\u6BCF\u5468",monthly:"\u6BCF\u6708",yearly:"\u6BCF\u5E74"}},general:{taskStorage:{header:"\u4EFB\u52A1\u5B58\u50A8",description:"\u914D\u7F6E\u4EFB\u52A1\u5B58\u50A8\u4F4D\u7F6E\u548C\u8BC6\u522B\u65B9\u5F0F\u3002",defaultFolder:{name:"\u9ED8\u8BA4\u4EFB\u52A1\u6587\u4EF6\u5939",description:"\u65B0\u4EFB\u52A1\u7684\u9ED8\u8BA4\u4F4D\u7F6E\u3002\u652F\u6301 {{currentNotePath}}\u3001{{currentNoteTitle}} \u548C {{projectFilePath}} \u7B49\u6587\u4EF6\u5939\u6A21\u677F\u53D8\u91CF\uFF0C\u4E5F\u652F\u6301 YYYY/MM/DD \u7B49 Daily Notes \u98CE\u683C\u65E5\u671F\u6807\u8BB0\u3002"},moveArchived:{name:"\u5C06\u5F52\u6863\u4EFB\u52A1\u79FB\u52A8\u5230\u6587\u4EF6\u5939",description:"\u81EA\u52A8\u5C06\u5F52\u6863\u4EFB\u52A1\u79FB\u52A8\u5230\u5F52\u6863\u6587\u4EF6\u5939"},archiveFolder:{name:"\u5F52\u6863\u6587\u4EF6\u5939",description:"\u5F52\u6863\u65F6\u5C06\u4EFB\u52A1\u79FB\u52A8\u5230\u7684\u6587\u4EF6\u5939\u3002\u652F\u6301\u6A21\u677F\u53D8\u91CF\uFF0C\u5982 {{year}}\u3001{{month}}\u3001{{priority}} \u7B49\u3002"}},taskIdentification:{header:"\u4EFB\u52A1\u8BC6\u522B",description:"\u9009\u62E9TaskNotes\u5982\u4F55\u8BC6\u522B\u7B14\u8BB0\u4E3A\u4EFB\u52A1\u3002",identifyBy:{name:"\u8BC6\u522B\u4EFB\u52A1\u901A\u8FC7",description:"\u9009\u62E9\u662F\u901A\u8FC7\u6807\u7B7E\u8FD8\u662F\u901A\u8FC7\u524D\u7F6E\u5C5E\u6027\u8BC6\u522B\u4EFB\u52A1",options:{tag:"\u6807\u7B7E",property:"\u5C5E\u6027"}},taskTag:{name:"\u4EFB\u52A1\u6807\u7B7E",description:"\u8BC6\u522B\u7B14\u8BB0\u4E3A\u4EFB\u52A1\u7684\u6807\u7B7E\uFF08\u4E0D\u542B #\uFF09\u3002\u66F4\u6539\u6B64\u8BBE\u7F6E\u540E\uFF0C\u73B0\u6709 .base \u89C6\u56FE\u7B5B\u9009\u5668\u4F1A\u4FDD\u7559\u65E7\u6807\u7B7E\uFF1B\u8BF7\u66F4\u65B0\u9ED8\u8BA4 Base \u6587\u4EF6\u6216\u624B\u52A8\u7F16\u8F91\u8FD9\u4E9B\u7B5B\u9009\u5668\u3002"},hideIdentifyingTags:{name:"\u5728\u4EFB\u52A1\u5361\u7247\u4E2D\u9690\u85CF\u8BC6\u522B\u6807\u7B7E",description:"\u542F\u7528\u540E\uFF0C\u4E0E\u4EFB\u52A1\u8BC6\u522B\u6807\u7B7E\u5339\u914D\u7684\u6807\u7B7E\uFF08\u5305\u62EC\u5C42\u6B21\u5339\u914D\uFF0C\u5982 'task/project'\uFF09\u5C06\u5728\u4EFB\u52A1\u5361\u7247\u663E\u793A\u4E2D\u9690\u85CF"},hideIdentifyingTagsMode:{name:"\u9690\u85CF\u6807\u7B7E\u8303\u56F4",description:"\u9009\u62E9\u9690\u85CF\u8BC6\u522B\u6807\u7B7E\u65F6\u662F\u5426\u540C\u65F6\u9690\u85CF\u5D4C\u5957\u6807\u7B7E\u3002",options:{all:"\u4EFB\u52A1\u6807\u7B7E\u548C\u5D4C\u5957\u6807\u7B7E",exactOnly:"\u4EC5\u7CBE\u786E\u4EFB\u52A1\u6807\u7B7E"}},taskProperty:{name:"\u4EFB\u52A1\u5C5E\u6027\u540D\u79F0",description:'\u524D\u7F6E\u5C5E\u6027\u540D\u79F0\uFF08\u4F8B\u5982\uFF0C"category"\uFF09'},taskPropertyValue:{name:"\u4EFB\u52A1\u5C5E\u6027\u503C",description:'\u8BC6\u522B\u7B14\u8BB0\u4E3A\u4EFB\u52A1\u7684\u503C\uFF08\u4F8B\u5982\uFF0C"task"\uFF09'}},folderManagement:{header:"\u6587\u4EF6\u5939\u7BA1\u7406",excludedFolders:{name:"\u6392\u9664\u6587\u4EF6\u5939",description:"\u4ECE\u4EFB\u52A1\u7D22\u5F15\u548C\u9879\u76EE\u5EFA\u8BAE\u4E2D\u6392\u9664\u7684\u6587\u4EF6\u5939\u7684\u9017\u53F7\u5206\u9694\u5217\u8868"}},frontmatter:{header:"Frontmatter",description:"\u914D\u7F6E frontmatter \u5C5E\u6027\u4E2D\u94FE\u63A5\u7684\u683C\u5F0F\u3002",useMarkdownLinks:{name:"\u5728 frontmatter \u4E2D\u4F7F\u7528 markdown \u94FE\u63A5",description:"\u5728 frontmatter \u5C5E\u6027\u4E2D\u751F\u6210 markdown \u94FE\u63A5 ([\u6587\u672C](\u8DEF\u5F84)) \u800C\u4E0D\u662F wikilinks ([[\u94FE\u63A5]])\u3002\\n\\n\u26A0\uFE0F \u9700\u8981 'obsidian-frontmatter-markdown-links' \u63D2\u4EF6\u624D\u80FD\u6B63\u5E38\u5DE5\u4F5C\u3002"}},taskInteraction:{header:"\u4EFB\u52A1\u4EA4\u4E92",description:"\u914D\u7F6E\u70B9\u51FB\u4EFB\u52A1\u7684\u884C\u4E3A\u3002",singleClick:{name:"\u5355\u51FB\u64CD\u4F5C",description:"\u5355\u51FB\u4EFB\u52A1\u5361\u7247\u65F6\u6267\u884C\u7684\u64CD\u4F5C"},doubleClick:{name:"\u53CC\u51FB\u64CD\u4F5C",description:"\u53CC\u51FB\u4EFB\u52A1\u5361\u7247\u65F6\u6267\u884C\u7684\u64CD\u4F5C"},actions:{edit:"\u7F16\u8F91\u4EFB\u52A1",openNote:"\u6253\u5F00\u7B14\u8BB0",none:"\u65E0\u64CD\u4F5C"}},releaseNotes:{header:"\u7248\u672C\u8BF4\u660E",description:"\u5F53\u524D\u7248\u672C\uFF1A{version}",showOnUpdate:{name:"\u66F4\u65B0\u540E\u663E\u793A\u7248\u672C\u8BF4\u660E",description:"\u5F53TaskNotes\u66F4\u65B0\u5230\u65B0\u7248\u672C\u65F6\u81EA\u52A8\u6253\u5F00\u7248\u672C\u8BF4\u660E"},checkForUpdates:{name:"\u542F\u52A8\u65F6\u68C0\u67E5\u65B0\u7248\u672C",description:"TaskNotes \u542F\u52A8\u65F6\u68C0\u67E5\u4E00\u6B21 GitHub\uFF0C\u5E76\u5728\u6709\u8F83\u65B0\u7684\u517C\u5BB9\u7248\u672C\u53EF\u7528\u65F6\u663E\u793A\u901A\u77E5"},viewButton:{name:"\u67E5\u770B\u7248\u672C\u8BF4\u660E",description:"\u67E5\u770BTaskNotes\u6700\u65B0\u7248\u672C\u7684\u65B0\u529F\u80FD",buttonText:"\u67E5\u770B\u7248\u672C\u8BF4\u660E"}}},taskProperties:{sections:{coreProperties:"\u6838\u5FC3\u5C5E\u6027",corePropertiesDesc:"\u72B6\u6001\u548C\u4F18\u5148\u7EA7\u662F\u5B9A\u4E49\u4EFB\u52A1\u72B6\u6001\u548C\u91CD\u8981\u6027\u7684\u6838\u5FC3\u5C5E\u6027\u3002",dateProperties:"\u65E5\u671F\u5C5E\u6027",datePropertiesDesc:"\u914D\u7F6E\u4EFB\u52A1\u7684\u5230\u671F\u65E5\u671F\u548C\u5B89\u6392\u65E5\u671F\u3002",organizationProperties:"\u7EC4\u7EC7\u5C5E\u6027",organizationPropertiesDesc:"\u4F7F\u7528\u4E0A\u4E0B\u6587\u3001\u9879\u76EE\u548C\u6807\u7B7E\u7EC4\u7EC7\u4EFB\u52A1\u3002",taskDetails:"\u4EFB\u52A1\u8BE6\u60C5",taskDetailsDesc:"\u5176\u4ED6\u8BE6\u60C5\uFF0C\u5982\u65F6\u95F4\u4F30\u8BA1\u3001\u91CD\u590D\u548C\u63D0\u9192\u3002",metadataProperties:"\u5143\u6570\u636E\u5C5E\u6027",metadataPropertiesDesc:"\u7528\u4E8E\u8DDF\u8E2A\u4EFB\u52A1\u5386\u53F2\u7684\u7CFB\u7EDF\u7BA1\u7406\u5C5E\u6027\u3002",featureProperties:"\u529F\u80FD\u5C5E\u6027",featurePropertiesDesc:"\u7279\u5B9ATaskNotes\u529F\u80FD\u4F7F\u7528\u7684\u5C5E\u6027\uFF0C\u5982\u756A\u8304\u949F\u8BA1\u65F6\u5668\u548C\u65E5\u5386\u540C\u6B65\u3002"},propertyCard:{propertyKey:"\u5C5E\u6027\u952E\uFF1A",default:"\u9ED8\u8BA4\u503C\uFF1A",nlpTrigger:"NLP\u89E6\u53D1\u5668\uFF1A",triggerChar:"\u89E6\u53D1\u5B57\u7B26\uFF1A",triggerEmpty:"\u89E6\u53D1\u5668\u4E0D\u80FD\u4E3A\u7A7A",triggerTooLong:"\u89E6\u53D1\u5668\u8FC7\u957F\uFF08\u6700\u591A10\u4E2A\u5B57\u7B26\uFF09"},properties:{status:{name:"\u72B6\u6001",description:"\u8DDF\u8E2A\u4EFB\u52A1\u7684\u5F53\u524D\u72B6\u6001\uFF08\u4F8B\u5982\uFF0C\u5F85\u529E\u3001\u8FDB\u884C\u4E2D\u3001\u5B8C\u6210\uFF09\u3002\u72B6\u6001\u51B3\u5B9A\u4EFB\u52A1\u662F\u5426\u663E\u793A\u4E3A\u5DF2\u5B8C\u6210\uFF0C\u5E76\u53EF\u89E6\u53D1\u81EA\u52A8\u5F52\u6863\u3002"},priority:{name:"\u4F18\u5148\u7EA7",description:"\u8868\u793A\u4EFB\u52A1\u7684\u91CD\u8981\u6027\u3002\u7528\u4E8E\u6392\u5E8F\u548C\u8FC7\u6EE4\u3002\u5728Bases\u89C6\u56FE\u4E2D\u503C\u6309\u5B57\u6BCD\u987A\u5E8F\u6392\u5E8F\uFF0C\u56E0\u6B64\u4F7F\u75281-\u30012-\u7B49\u524D\u7F00\u6765\u63A7\u5236\u987A\u5E8F\u3002"},due:{name:"\u5230\u671F\u65E5\u671F",description:"\u4EFB\u52A1\u5FC5\u987B\u5B8C\u6210\u7684\u622A\u6B62\u65E5\u671F\u3002\u8D85\u8FC7\u5230\u671F\u65E5\u671F\u7684\u4EFB\u52A1\u663E\u793A\u4E3A\u903E\u671F\u3002\u4F5C\u4E3A\u65E5\u671F\u5B58\u50A8\u5728frontmatter\u4E2D\u3002"},scheduled:{name:"\u5B89\u6392\u65E5\u671F",description:"\u60A8\u8BA1\u5212\u5904\u7406\u4EFB\u52A1\u7684\u65F6\u95F4\u3002\u4E0E\u5230\u671F\u65E5\u671F\u4E0D\u540C\uFF0C\u8FD9\u8868\u793A\u60A8\u9884\u5B9A\u7684\u5F00\u59CB\u65F6\u95F4\u3002\u4EFB\u52A1\u5728\u5176\u5B89\u6392\u7684\u65E5\u671F/\u65F6\u95F4\u51FA\u73B0\u5728\u65E5\u5386\u4E0A\u3002"},contexts:{name:"\u4E0A\u4E0B\u6587",description:"\u53EF\u4EE5\u5B8C\u6210\u4EFB\u52A1\u7684\u5730\u70B9\u6216\u6761\u4EF6\uFF08\u4F8B\u5982\uFF0C@\u5BB6\u3001@\u529E\u516C\u5BA4\u3001@\u7535\u8BDD\uFF09\u3002\u7528\u4E8E\u6839\u636E\u5F53\u524D\u60C5\u51B5\u8FC7\u6EE4\u4EFB\u52A1\u3002\u4F5C\u4E3A\u5217\u8868\u5B58\u50A8\u3002"},projects:{name:"\u9879\u76EE",description:"\u6B64\u4EFB\u52A1\u6240\u5C5E\u7684\u9879\u76EE\u7B14\u8BB0\u94FE\u63A5\u3002\u5B58\u50A8\u4E3Awikilinks\uFF08\u4F8B\u5982\uFF0C[[\u9879\u76EE\u540D\u79F0]]\uFF09\u3002\u4EFB\u52A1\u53EF\u4EE5\u5C5E\u4E8E\u591A\u4E2A\u9879\u76EE\u3002"},tags:{name:"\u6807\u7B7E",description:"\u7528\u4E8E\u5206\u7C7B\u4EFB\u52A1\u7684\u539F\u751FObsidian\u6807\u7B7E\u3002\u8FD9\u4E9B\u5B58\u50A8\u5728tags frontmatter\u5C5E\u6027\u4E2D\uFF0C\u4E0EObsidian\u7684\u6807\u7B7E\u529F\u80FD\u914D\u5408\u4F7F\u7528\u3002"},timeEstimate:{name:"\u65F6\u95F4\u4F30\u8BA1",description:"\u5B8C\u6210\u4EFB\u52A1\u7684\u9884\u8BA1\u5206\u949F\u6570\u3002\u7528\u4E8E\u65F6\u95F4\u5757\u548C\u5DE5\u4F5C\u91CF\u89C4\u5212\u3002\u663E\u793A\u5728\u4EFB\u52A1\u5361\u7247\u548C\u65E5\u5386\u4E8B\u4EF6\u4E0A\u3002"},recurrence:{name:"\u91CD\u590D",description:"\u91CD\u590D\u4EFB\u52A1\u7684\u6A21\u5F0F\uFF08\u6BCF\u65E5\u3001\u6BCF\u5468\u3001\u6BCF\u6708\u3001\u6BCF\u5E74\u6216\u81EA\u5B9A\u4E49RRULE\uFF09\u3002\u5F53\u91CD\u590D\u4EFB\u52A1\u5B8C\u6210\u65F6\uFF0C\u5176\u5B89\u6392\u65E5\u671F\u4F1A\u81EA\u52A8\u66F4\u65B0\u5230\u4E0B\u4E00\u6B21\u51FA\u73B0\u3002"},recurrenceAnchor:{name:"\u91CD\u590D\u951A\u70B9",description:"\u63A7\u5236\u4E0B\u4E00\u6B21\u51FA\u73B0\u7684\u8BA1\u7B97\u65B9\u5F0F\uFF1A'scheduled'\u4F7F\u7528\u5B89\u6392\u65E5\u671F\uFF0C'completion'\u4F7F\u7528\u5B9E\u9645\u5B8C\u6210\u65E5\u671F\u3002"},reminders:{name:"\u63D0\u9192",description:"\u5728\u5230\u671F\u6216\u5B89\u6392\u65E5\u671F\u524D\u89E6\u53D1\u7684\u901A\u77E5\u3002\u5B58\u50A8\u4E3A\u5E26\u6709\u65F6\u95F4\u548C\u53EF\u9009\u63CF\u8FF0\u7684\u63D0\u9192\u5BF9\u8C61\u5217\u8868\u3002"},title:{name:"\u6807\u9898",description:"\u4EFB\u52A1\u540D\u79F0\u3002\u53EF\u4EE5\u5B58\u50A8\u5728frontmatter\u4E2D\u6216\u6587\u4EF6\u540D\u4E2D\uFF08\u542F\u7528'\u5728\u6587\u4EF6\u540D\u4E2D\u5B58\u50A8\u6807\u9898'\u65F6\uFF09\u3002"},dateCreated:{name:"\u521B\u5EFA\u65E5\u671F",description:"\u4EFB\u52A1\u9996\u6B21\u521B\u5EFA\u7684\u65F6\u95F4\u6233\u3002\u81EA\u52A8\u8BBE\u7F6E\uFF0C\u7528\u4E8E\u6309\u521B\u5EFA\u987A\u5E8F\u6392\u5E8F\u3002"},dateModified:{name:"\u4FEE\u6539\u65E5\u671F",description:"\u4EFB\u52A1\u6700\u540E\u66F4\u6539\u7684\u65F6\u95F4\u6233\u3002\u5F53\u4EFB\u4F55\u4EFB\u52A1\u5C5E\u6027\u66F4\u6539\u65F6\u81EA\u52A8\u66F4\u65B0\u3002"},completedDate:{name:"\u5B8C\u6210\u65E5\u671F",description:"\u4EFB\u52A1\u6807\u8BB0\u4E3A\u5B8C\u6210\u7684\u65F6\u95F4\u6233\u3002\u5F53\u72B6\u6001\u66F4\u6539\u4E3A\u5DF2\u5B8C\u6210\u72B6\u6001\u65F6\u81EA\u52A8\u8BBE\u7F6E\u3002"},archiveTag:{name:"\u5F52\u6863\u6807\u7B7E",description:"\u5F52\u6863\u65F6\u6DFB\u52A0\u5230\u4EFB\u52A1\u7684\u6807\u7B7E\u3002\u7528\u4E8E\u8BC6\u522B\u5DF2\u5F52\u6863\u7684\u4EFB\u52A1\uFF0C\u53EF\u89E6\u53D1\u6587\u4EF6\u79FB\u52A8\u5230\u5F52\u6863\u6587\u4EF6\u5939\u3002"},timeEntries:{name:"\u65F6\u95F4\u6761\u76EE",description:"\u6B64\u4EFB\u52A1\u7684\u65F6\u95F4\u8DDF\u8E2A\u4F1A\u8BDD\u8BB0\u5F55\u3002\u6BCF\u4E2A\u6761\u76EE\u5B58\u50A8\u5F00\u59CB\u548C\u7ED3\u675F\u65F6\u95F4\u6233\u3002\u7528\u4E8E\u8BA1\u7B97\u603B\u82B1\u8D39\u65F6\u95F4\u3002"},completeInstances:{name:"\u5B8C\u6210\u5B9E\u4F8B",description:"\u91CD\u590D\u4EFB\u52A1\u7684\u5B8C\u6210\u5386\u53F2\u3002\u5B58\u50A8\u6BCF\u4E2A\u5B9E\u4F8B\u5B8C\u6210\u7684\u65E5\u671F\uFF0C\u4EE5\u9632\u6B62\u91CD\u590D\u5B8C\u6210\u3002"},skippedInstances:{name:"\u8DF3\u8FC7\u5B9E\u4F8B",description:"\u91CD\u590D\u4EFB\u52A1\u7684\u8DF3\u8FC7\u8BB0\u5F55\u3002\u5B58\u50A8\u88AB\u8DF3\u8FC7\u800C\u975E\u5B8C\u6210\u7684\u5B9E\u4F8B\u65E5\u671F\u3002"},blockedBy:{name:"\u88AB\u963B\u6B62",description:"\u5FC5\u987B\u5728\u6B64\u4EFB\u52A1\u4E4B\u524D\u5B8C\u6210\u7684\u4EFB\u52A1\u94FE\u63A5\u3002\u5B58\u50A8\u4E3Awikilinks\u3002\u88AB\u963B\u6B62\u7684\u4EFB\u52A1\u663E\u793A\u89C6\u89C9\u6307\u793A\u5668\u3002"},sortOrder:{name:"\u624B\u52A8\u987A\u5E8F",description:"\u7528\u4E8E\u62D6\u62FD\u91CD\u6392\u7684 frontmatter \u5C5E\u6027\u3002\u89C6\u56FE\u5FC5\u987B\u6309\u6B64\u5C5E\u6027\u6392\u5E8F\uFF0C\u62D6\u62FD\u91CD\u6392\u624D\u80FD\u751F\u6548\u3002"},pomodoros:{name:"\u756A\u8304\u949F",description:"\u5DF2\u5B8C\u6210\u7684\u756A\u8304\u949F\u4F1A\u8BDD\u8BA1\u6570\u3002\u5F53\u6570\u636E\u5B58\u50A8\u8BBE\u7F6E\u4E3A'\u65E5\u8BB0'\u65F6\uFF0C\u8FD9\u5C06\u5199\u5165\u65E5\u8BB0\u800C\u4E0D\u662F\u4EFB\u52A1\u6587\u4EF6\u3002"},icsEventId:{name:"ICS\u4E8B\u4EF6ID",description:"\u5C06\u7B14\u8BB0\u94FE\u63A5\u5230ICS\u65E5\u5386\u4E8B\u4EF6\u7684\u552F\u4E00\u6807\u8BC6\u7B26\u3002\u4ECE\u65E5\u5386\u4E8B\u4EF6\u521B\u5EFA\u7B14\u8BB0\u65F6\u81EA\u52A8\u6DFB\u52A0\u3002"},icsEventTag:{name:"ICS\u4E8B\u4EF6\u6807\u7B7E",description:"\u6807\u8BC6\u4ECEICS\u65E5\u5386\u4E8B\u4EF6\u521B\u5EFA\u7684\u7B14\u8BB0\u7684\u6807\u7B7E\u3002\u7528\u4E8E\u533A\u5206\u65E5\u5386\u751F\u6210\u7684\u7B14\u8BB0\u548C\u5E38\u89C4\u4EFB\u52A1\u3002"}},statusCard:{valuesHeader:"\u72B6\u6001\u503C"},priorityCard:{valuesHeader:"\u4F18\u5148\u7EA7\u503C"},projectsCard:{defaultProjects:"\u9ED8\u8BA4\u9879\u76EE\uFF1A",useParentNoteForTaskCreation:"\u65B0\u4EFB\u52A1\u4F7F\u7528\u5F53\u524D\u7B14\u8BB0\uFF1A",useParentNoteForInlineTasks:"\u5185\u8054/\u5373\u65F6\u8F6C\u6362\u65F6\u4F7F\u7528\u7236\u7B14\u8BB0\uFF1A",useParentHeader:"\u4F7F\u7528\u7236\u7EA7\u6807\u9898\u4F5C\u4E3A\u9879\u76EE\uFF1A",inheritParentTaskProperties:"\u5B50\u4EFB\u52A1\u7EE7\u627F\u7236\u4EFB\u52A1\u5C5E\u6027\uFF1A",noDefaultProjects:"\u672A\u9009\u62E9\u9ED8\u8BA4\u9879\u76EE",autosuggestFilters:"\u81EA\u52A8\u5EFA\u8BAE\u8FC7\u6EE4\u5668",customizeDisplay:"\u81EA\u5B9A\u4E49\u663E\u793A",filtersOn:"\u8FC7\u6EE4\u5668\u5F00\u542F"},titleCard:{storeTitleInFilename:"\u5728\u6587\u4EF6\u540D\u4E2D\u5B58\u50A8\u6807\u9898\uFF1A",storedInFilename:"\u5B58\u50A8\u5728\u6587\u4EF6\u540D\u4E2D",filenameUpdatesWithTitle:"\u6587\u4EF6\u540D\u5C06\u5728\u4EFB\u52A1\u6807\u9898\u66F4\u6539\u65F6\u81EA\u52A8\u66F4\u65B0\u3002",filenameFormat:"\u6587\u4EF6\u540D\u683C\u5F0F\uFF1A",customTemplate:"\u81EA\u5B9A\u4E49\u6A21\u677F\uFF1A",legacySyntaxWarning:"\u50CF {title} \u8FD9\u6837\u7684\u5355\u82B1\u62EC\u53F7\u8BED\u6CD5\u5DF2\u5F03\u7528\u3002\u8BF7\u4F7F\u7528\u53CC\u82B1\u62EC\u53F7\u8BED\u6CD5 {{title}} \u4EE5\u4E0E\u6B63\u6587\u6A21\u677F\u4FDD\u6301\u4E00\u81F4\u3002",occurrenceFilenameTemplate:"\u5B9E\u4F8B\u6587\u4EF6\u540D\u6A21\u677F",occurrenceFilenameTemplateHelp:"\u7528\u4E8E\u5468\u671F\u6027\u4EFB\u52A1\u5B9E\u4F53\u5316\u5B9E\u4F8B\u7684\u6587\u4EF6\u540D\u6A21\u677F\u3002\u7559\u7A7A\u53EF\u4FDD\u7559\u73B0\u6709\u547D\u540D\u65B9\u5F0F\uFF08\u7236\u4EFB\u52A1\u6807\u9898\u52A0\u6570\u5B57\u540E\u7F00\uFF09\u3002\u8BF7\u4F7F\u7528 {{occurrenceDate}}\u3001{{occurrenceWeek}}\u3001{{occurrenceMonth}}\u3001{{occurrenceYear}} \u6216 {{occurrenceMonthName}} \u660E\u786E\u9009\u62E9\u6587\u4EF6\u540D\u7C92\u5EA6\u3002\u6240\u6709\u5E38\u89C4\u6587\u4EF6\u540D\u53D8\u91CF\u4E5F\u53EF\u4F7F\u7528\u3002\u7236\u4EFB\u52A1\u53EF\u4EE5\u901A\u8FC7\u4E0B\u65B9\u914D\u7F6E\u7684 frontmatter \u5C5E\u6027\u8986\u76D6\u6B64\u6A21\u677F\u3002",occurrenceFilenameProperty:"\u5B9E\u4F8B\u6A21\u677F\u8986\u76D6\u5C5E\u6027",occurrenceFilenamePropertyHelp:"\u5468\u671F\u6027\u7236\u4EFB\u52A1\u4E2D\u7528\u4E8E\u8986\u76D6\u5176\u5B9E\u4F8B\u6587\u4EF6\u540D\u6A21\u677F\u7684 frontmatter \u5C5E\u6027\u540D\u79F0\u3002"},tagsCard:{nativeObsidianTags:"\u4F7F\u7528\u539F\u751FObsidian\u6807\u7B7E"},remindersCard:{defaultReminders:"\u9ED8\u8BA4\u63D0\u9192"},taskStatuses:{header:"\u4EFB\u52A1\u72B6\u6001",description:"\u81EA\u5B9A\u4E49\u4EFB\u52A1\u53EF\u7528\u7684\u72B6\u6001\u9009\u9879\u3002\u8FD9\u4E9B\u72B6\u6001\u63A7\u5236\u4EFB\u52A1\u751F\u547D\u5468\u671F\u5E76\u786E\u5B9A\u4F55\u65F6\u4EFB\u52A1\u88AB\u89C6\u4E3A\u5B8C\u6210\u3002",howTheyWork:{title:"\u72B6\u6001\u5982\u4F55\u5DE5\u4F5C\uFF1A",value:'\u503C\uFF1A\u5B58\u50A8\u5728\u4EFB\u52A1\u6587\u4EF6\u4E2D\u7684\u5185\u90E8\u6807\u8BC6\u7B26\uFF08\u4F8B\u5982\uFF0C"\u8FDB\u884C\u4E2D"\uFF09',label:'\u6807\u7B7E\uFF1A\u5728\u754C\u9762\u4E2D\u663E\u793A\u7684\u663E\u793A\u540D\u79F0\uFF08\u4F8B\u5982\uFF0C"\u8FDB\u884C\u4E2D"\uFF09',color:"\u989C\u8272\uFF1A\u72B6\u6001\u70B9\u548C\u5FBD\u7AE0\u7684\u89C6\u89C9\u6307\u793A\u5668\u989C\u8272",icon:'\u56FE\u6807\uFF1A\u53EF\u9009\u7684 Lucide \u56FE\u6807\u540D\u79F0\uFF0C\u7528\u4E8E\u66FF\u4EE3\u5F69\u8272\u5706\u70B9\u663E\u793A\uFF08\u4F8B\u5982\uFF0C"check"\u3001"circle"\u3001"clock"\uFF09\u3002\u5728 lucide.dev \u6D4F\u89C8\u56FE\u6807',completed:"\u5DF2\u5B8C\u6210\uFF1A\u9009\u4E2D\u65F6\uFF0C\u5177\u6709\u6B64\u72B6\u6001\u7684\u4EFB\u52A1\u88AB\u89C6\u4E3A\u5DF2\u5B8C\u6210\uFF0C\u53EF\u80FD\u4EE5\u4E0D\u540C\u65B9\u5F0F\u8FC7\u6EE4",autoArchive:"\u81EA\u52A8\u5F52\u6863\uFF1A\u542F\u7528\u65F6\uFF0C\u4EFB\u52A1\u5C06\u5728\u6307\u5B9A\u5EF6\u8FDF\u540E\u81EA\u52A8\u5F52\u6863\uFF081-1440\u5206\u949F\uFF09",orderNote:"\u4E0B\u9762\u7684\u987A\u5E8F\u786E\u5B9A\u70B9\u51FB\u4EFB\u52A1\u72B6\u6001\u5FBD\u7AE0\u65F6\u5FAA\u73AF\u72B6\u6001\u7684\u987A\u5E8F\u3002"},addNew:{name:"\u6DFB\u52A0\u65B0\u72B6\u6001",description:"\u4E3A\u60A8\u7684\u4EFB\u52A1\u521B\u5EFA\u65B0\u7684\u72B6\u6001\u9009\u9879",buttonText:"\u6DFB\u52A0\u72B6\u6001"},validationNote:'\u6CE8\u610F\uFF1A\u60A8\u5FC5\u987B\u81F3\u5C11\u67092\u4E2A\u72B6\u6001\uFF0C\u5E76\u4E14\u81F3\u5C11\u4E00\u4E2A\u72B6\u6001\u5FC5\u987B\u6807\u8BB0\u4E3A"\u5DF2\u5B8C\u6210"\u3002',emptyState:"\u672A\u914D\u7F6E\u81EA\u5B9A\u4E49\u72B6\u6001\u3002\u6DFB\u52A0\u72B6\u6001\u4EE5\u5F00\u59CB\u3002",emptyStateButton:"\u6DFB\u52A0\u72B6\u6001",fields:{value:"\u503C\uFF1A",label:"\u6807\u7B7E\uFF1A",color:"\u989C\u8272\uFF1A",icon:"\u56FE\u6807\uFF1A",completed:"\u5DF2\u5B8C\u6210\uFF1A",excludeFromCycle:"\u5FAA\u73AF\u65F6\u8DF3\u8FC7\uFF1A",nextStatus:"\u4E0B\u4E00\u4E2A\u72B6\u6001\uFF1A",autoArchive:"\u81EA\u52A8\u5F52\u6863\uFF1A",delayMinutes:"\u5EF6\u8FDF\uFF08\u5206\u949F\uFF09\uFF1A"},placeholders:{value:"\u8FDB\u884C\u4E2D",label:"\u8FDB\u884C\u4E2D",icon:"check, circle, clock",nextStatusDefault:"\u4F7F\u7528\u72B6\u6001\u987A\u5E8F"},badges:{completed:"\u5DF2\u5B8C\u6210"},deleteConfirm:'\u60A8\u786E\u5B9A\u8981\u5220\u9664\u72B6\u6001"{label}"\u5417\uFF1F'},taskPriorities:{header:"\u4EFB\u52A1\u4F18\u5148\u7EA7",description:"\u81EA\u5B9A\u4E49\u4EFB\u52A1\u53EF\u7528\u7684\u4F18\u5148\u7EA7\u7EA7\u522B\u3002\u5728 v4.0+ \u4E2D\uFF0C\u4F18\u5148\u7EA7\u5728 Bases \u89C6\u56FE\u4E2D\u6309\u5176\u503C\u7684\u5B57\u6BCD\u987A\u5E8F\u6392\u5E8F\u3002",howTheyWork:{title:"\u4F18\u5148\u7EA7\u5982\u4F55\u5DE5\u4F5C\uFF1A",value:'\u503C\uFF1A\u5B58\u50A8\u5728\u4EFB\u52A1\u6587\u4EF6\u4E2D\u7684\u5185\u90E8\u6807\u8BC6\u7B26\u3002\u4F7F\u7528\u524D\u7F00\u5982 "1-urgent"\u3001"2-high" \u6765\u63A7\u5236 Bases \u89C6\u56FE\u4E2D\u7684\u6392\u5E8F\u987A\u5E8F\u3002',label:'\u663E\u793A\u6807\u7B7E\uFF1A\u5728\u754C\u9762\u4E2D\u663E\u793A\u7684\u663E\u793A\u540D\u79F0\uFF08\u4F8B\u5982\uFF0C"\u9AD8\u4F18\u5148\u7EA7"\uFF09',color:"\u989C\u8272\uFF1A\u4F18\u5148\u7EA7\u70B9\u548C\u5FBD\u7AE0\u7684\u89C6\u89C9\u6307\u793A\u5668\u989C\u8272",icon:"\u56FE\u6807\uFF1A\u5728\u4EFB\u52A1\u5361\u7247\u4E0A\u66FF\u4EE3\u4F18\u5148\u7EA7\u70B9\u663E\u793A\u7684\u53EF\u9009 Lucide \u56FE\u6807",weight:"\u6743\u91CD\uFF1A\u7528\u4E8E\u6392\u5E8F\u7684\u6570\u503C\uFF08\u6743\u91CD\u9AD8\u7684\u4F18\u5148\u51FA\u73B0\u5728\u5217\u8868\u4E2D\uFF09",weightNote:"\u4EFB\u52A1\u6309\u4F18\u5148\u7EA7\u6743\u91CD\u964D\u5E8F\u81EA\u52A8\u6392\u5E8F\uFF08\u6700\u9AD8\u6743\u91CD\u4F18\u5148\uFF09\u3002\u6743\u91CD\u53EF\u4EE5\u662F\u4EFB\u4F55\u6B63\u6570\u3002"},addNew:{name:"\u6DFB\u52A0\u65B0\u4F18\u5148\u7EA7",description:"\u4E3A\u60A8\u7684\u4EFB\u52A1\u521B\u5EFA\u65B0\u7684\u4F18\u5148\u7EA7\u7EA7\u522B",buttonText:"\u6DFB\u52A0\u4F18\u5148\u7EA7"},validationNote:"\u6CE8\u610F\uFF1A\u60A8\u5FC5\u987B\u81F3\u5C11\u67091\u4E2A\u4F18\u5148\u7EA7\u3002\u4F18\u5148\u7EA7\u5728 Bases \u89C6\u56FE\u4E2D\u6309\u503C\u7684\u5B57\u6BCD\u987A\u5E8F\u6392\u5E8F\u3002",emptyState:"\u672A\u914D\u7F6E\u81EA\u5B9A\u4E49\u4F18\u5148\u7EA7\u3002\u6DFB\u52A0\u4F18\u5148\u7EA7\u4EE5\u5F00\u59CB\u3002",emptyStateButton:"\u6DFB\u52A0\u4F18\u5148\u7EA7",fields:{value:"\u503C\uFF1A",label:"\u6807\u7B7E\uFF1A",color:"\u989C\u8272\uFF1A",icon:"\u56FE\u6807\uFF1A",weight:"\u6743\u91CD\uFF1A"},placeholders:{value:"\u9AD8",label:"\u9AD8\u4F18\u5148\u7EA7",icon:"alert-circle"},weightLabel:"\u6743\u91CD\uFF1A{weight}",deleteConfirm:"\u60A8\u5FC5\u987B\u81F3\u5C11\u6709\u4E00\u4E2A\u4F18\u5148\u7EA7",deleteTooltip:"\u5220\u9664\u4F18\u5148\u7EA7"},fieldMapping:{header:"\u5B57\u6BB5\u6620\u5C04",warning:"\u26A0\uFE0F \u8B66\u544A\uFF1ATaskNotes\u5C06\u4F7F\u7528\u8FD9\u4E9B\u5C5E\u6027\u540D\u79F0\u8FDB\u884C\u8BFB\u53D6\u548C\u5199\u5165\u3002\u5728\u521B\u5EFA\u4EFB\u52A1\u540E\u66F4\u6539\u8FD9\u4E9B\u53EF\u80FD\u5BFC\u81F4\u4E0D\u4E00\u81F4\u3002",description:"\u914D\u7F6ETaskNotes\u5E94\u4E3A\u6BCF\u4E2A\u5B57\u6BB5\u4F7F\u7528\u7684\u524D\u7F6E\u5C5E\u6027\u3002",resetButton:{name:"\u91CD\u7F6E\u5B57\u6BB5\u6620\u5C04",description:"\u5C06\u6240\u6709\u5B57\u6BB5\u6620\u5C04\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u503C",buttonText:"\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u503C"},notices:{resetSuccess:"\u5B57\u6BB5\u6620\u5C04\u5DF2\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u503C",resetFailure:"\u91CD\u7F6E\u5B57\u6BB5\u6620\u5C04\u5931\u8D25",updateFailure:"\u66F4\u65B0{label}\u7684\u5B57\u6BB5\u6620\u5C04\u5931\u8D25\u3002\u8BF7\u91CD\u8BD5\u3002"},table:{fieldHeader:"TaskNotes\u5B57\u6BB5",propertyHeader:"\u60A8\u7684\u5C5E\u6027\u540D\u79F0"},fields:{title:"\u6807\u9898",status:"\u72B6\u6001",priority:"\u4F18\u5148\u7EA7",due:"\u5230\u671F\u65E5\u671F",scheduled:"\u5B89\u6392\u65E5\u671F",contexts:"\u4E0A\u4E0B\u6587",projects:"\u9879\u76EE",timeEstimate:"\u65F6\u95F4\u4F30\u8BA1",recurrence:"\u91CD\u590D",dateCreated:"\u521B\u5EFA\u65E5\u671F",completedDate:"\u5B8C\u6210\u65E5\u671F",dateModified:"\u4FEE\u6539\u65E5\u671F",archiveTag:"\u5F52\u6863\u6807\u7B7E",timeEntries:"\u65F6\u95F4\u6761\u76EE",completeInstances:"\u5B8C\u6210\u5B9E\u4F8B",blockedBy:"\u88AB\u963B\u6B62",sortOrder:"\u624B\u52A8\u987A\u5E8F",pomodoros:"\u756A\u8304\u949F",icsEventId:"ICS\u4E8B\u4EF6ID",icsEventTag:"ICS\u4E8B\u4EF6\u6807\u7B7E",reminders:"\u63D0\u9192"}},customUserFields:{header:"\u81EA\u5B9A\u4E49\u7528\u6237\u5B57\u6BB5",description:"\u5B9A\u4E49\u81EA\u5B9A\u4E49\u524D\u7F6E\u5C5E\u6027\uFF0C\u4F5C\u4E3A\u7C7B\u578B\u611F\u77E5\u8FC7\u6EE4\u9009\u9879\u51FA\u73B0\u5728\u5404\u4E2A\u89C6\u56FE\u4E2D\u3002\u6BCF\u884C\uFF1A\u663E\u793A\u540D\u79F0\u3001\u5C5E\u6027\u540D\u79F0\u3001\u7C7B\u578B\u3002",addNew:{name:"\u6DFB\u52A0\u65B0\u7528\u6237\u5B57\u6BB5",description:"\u521B\u5EFA\u5C06\u51FA\u73B0\u5728\u8FC7\u6EE4\u5668\u548C\u89C6\u56FE\u4E2D\u7684\u65B0\u81EA\u5B9A\u4E49\u5B57\u6BB5",buttonText:"\u6DFB\u52A0\u7528\u6237\u5B57\u6BB5"},emptyState:"\u672A\u914D\u7F6E\u81EA\u5B9A\u4E49\u7528\u6237\u5B57\u6BB5\u3002\u6DFB\u52A0\u5B57\u6BB5\u4E3A\u60A8\u7684\u4EFB\u52A1\u521B\u5EFA\u81EA\u5B9A\u4E49\u5C5E\u6027\u3002",emptyStateButton:"\u6DFB\u52A0\u7528\u6237\u5B57\u6BB5",fields:{displayName:"\u663E\u793A\u540D\u79F0\uFF1A",propertyKey:"\u5C5E\u6027\u952E\uFF1A",type:"\u7C7B\u578B\uFF1A",defaultValue:"\u9ED8\u8BA4\u503C\uFF1A"},placeholders:{displayName:"\u663E\u793A\u540D\u79F0",propertyKey:"\u5C5E\u6027\u540D\u79F0",defaultValue:"\u9ED8\u8BA4\u503C",defaultValueList:"\u9ED8\u8BA4\u503C\uFF08\u9017\u53F7\u5206\u9694\uFF09"},types:{text:"\u6587\u672C",number:"\u6570\u5B57",boolean:"\u5E03\u5C14\u503C",date:"\u65E5\u671F",list:"\u5217\u8868"},defaultNames:{unnamedField:"\u672A\u547D\u540D\u5B57\u6BB5",noKey:"\u65E0\u952E"},deleteTooltip:"\u5220\u9664\u5B57\u6BB5",autosuggestFilters:{header:"\u81EA\u52A8\u5EFA\u8BAE\u8FC7\u6EE4\u5668\uFF08\u9AD8\u7EA7\uFF09",description:"\u8FC7\u6EE4\u5728\u6B64\u5B57\u6BB5\u7684\u81EA\u52A8\u5B8C\u6210\u5EFA\u8BAE\u4E2D\u663E\u793A\u7684\u6587\u4EF6"}}},appearance:{taskCards:{header:"\u4EFB\u52A1\u5361\u7247",description:"\u914D\u7F6E\u4EFB\u52A1\u5361\u7247\u5728\u6240\u6709\u89C6\u56FE\u4E2D\u7684\u663E\u793A\u65B9\u5F0F\u3002",defaultVisibleProperties:{name:"\u9ED8\u8BA4\u53EF\u89C1\u5C5E\u6027",description:"\u9009\u62E9\u9ED8\u8BA4\u5728\u4EFB\u52A1\u5361\u7247\u4E0A\u663E\u793A\u7684\u5C5E\u6027\u3002"},propertyGroups:{coreProperties:"\u6838\u5FC3\u5C5E\u6027",organization:"\u7EC4\u7EC7",customProperties:"\u81EA\u5B9A\u4E49\u5C5E\u6027"},properties:{status:"\u72B6\u6001\u70B9",priority:"\u4F18\u5148\u7EA7\u70B9",due:"\u5230\u671F\u65E5\u671F",scheduled:"\u5B89\u6392\u65E5\u671F",timeEstimate:"\u65F6\u95F4\u4F30\u8BA1",totalTrackedTime:"\u603B\u8DDF\u8E2A\u65F6\u95F4",checklistProgress:"\u6E05\u5355\u8FDB\u5EA6",recurrence:"\u91CD\u590D",completedDate:"\u5B8C\u6210\u65E5\u671F",createdDate:"\u521B\u5EFA\u65E5\u671F",modifiedDate:"\u4FEE\u6539\u65E5\u671F",projects:"\u9879\u76EE",contexts:"\u4E0A\u4E0B\u6587",tags:"\u6807\u7B7E",blocked:"\u5DF2\u963B\u585E",blocking:"\u963B\u585E\u4E2D"}},taskFilenames:{header:"\u4EFB\u52A1\u6587\u4EF6\u540D",description:"\u914D\u7F6E\u521B\u5EFA\u4EFB\u52A1\u6587\u4EF6\u65F6\u7684\u547D\u540D\u65B9\u5F0F\u3002",storeTitleInFilename:{name:"\u5728\u6587\u4EF6\u540D\u4E2D\u5B58\u50A8\u6807\u9898",description:"\u4F7F\u7528\u4EFB\u52A1\u6807\u9898\u4F5C\u4E3A\u6587\u4EF6\u540D\u3002\u4EFB\u52A1\u6807\u9898\u66F4\u6539\u65F6\u6587\u4EF6\u540D\u4F1A\u66F4\u65B0\uFF08\u63A8\u8350\uFF09\u3002"},filenameFormat:{name:"\u6587\u4EF6\u540D\u683C\u5F0F",description:"\u4EFB\u52A1\u6587\u4EF6\u540D\u7684\u751F\u6210\u65B9\u5F0F",options:{title:"\u4EFB\u52A1\u6807\u9898\uFF08\u4E0D\u66F4\u65B0\uFF09",zettel:"Zettelkasten\u683C\u5F0F\uFF08YYMMDD + base36\u81EA\u5348\u591C\u4EE5\u6765\u7684\u79D2\u6570\uFF09",timestamp:"\u5B8C\u6574\u65F6\u95F4\u6233\uFF08YYYY-MM-DD-HHMMSS\uFF09",custom:"\u81EA\u5B9A\u4E49\u6A21\u677F",uuid:"UUID v4"}},customTemplate:{name:"\u81EA\u5B9A\u4E49\u6587\u4EF6\u540D\u6A21\u677F",description:"\u81EA\u5B9A\u4E49\u6587\u4EF6\u540D\u6A21\u677F\u3002\u53EF\u7528\u53D8\u91CF\uFF1A{{title}}, {{titleLower}}, {{titleUpper}}, {{titleSnake}}, {{titleKebab}}, {{titleCamel}}, {{titlePascal}}, {{date}}, {{shortDate}}, {{time}}, {{time12}}, {{time24}}, {{timestamp}}, {{dateTime}}, {{year}}, {{month}}, {{monthName}}, {{monthNameShort}}, {{day}}, {{dayName}}, {{dayNameShort}}, {{hour}}, {{hour12}}, {{minute}}, {{second}}, {{milliseconds}}, {{ms}}, {{ampm}}, {{week}}, {{quarter}}, {{unix}}, {{unixMs}}, {{timezone}}, {{timezoneShort}}, {{utcOffset}}, {{utcOffsetShort}}, {{utcZ}}, {{zettel}}, {{uuid}}, {{nano}}, {{priority}}, {{priorityShort}}, {{status}}, {{statusShort}}, {{dueDate}}, {{scheduledDate}}",placeholder:"{{date}}-{{title}}-{{dueDate}}",helpText:"\u6CE8\u610F\uFF1A{{dueDate}}\u548C{{scheduledDate}}\u683C\u5F0F\u4E3AYYYY-MM-DD\uFF0C\u5982\u679C\u672A\u8BBE\u7F6E\u5219\u4E3A\u7A7A\u3002"}},displayFormatting:{header:"\u663E\u793A\u683C\u5F0F",description:"\u914D\u7F6E\u6574\u4E2A\u63D2\u4EF6\u4E2D\u65E5\u671F\u3001\u65F6\u95F4\u548C\u5176\u4ED6\u6570\u636E\u7684\u663E\u793A\u65B9\u5F0F\u3002",timeFormat:{name:"\u65F6\u95F4\u683C\u5F0F",description:"\u5728\u6574\u4E2A\u63D2\u4EF6\u4E2D\u4EE512\u5C0F\u65F6\u621624\u5C0F\u65F6\u683C\u5F0F\u663E\u793A\u65F6\u95F4",options:{twelveHour:"12\u5C0F\u65F6\uFF08AM/PM\uFF09",twentyFourHour:"24\u5C0F\u65F6"}}},calendarView:{header:"\u65E5\u5386\u89C6\u56FE",description:"\u81EA\u5B9A\u4E49\u65E5\u5386\u89C6\u56FE\u7684\u5916\u89C2\u548C\u884C\u4E3A\u3002",defaultView:{name:"\u9ED8\u8BA4\u89C6\u56FE",description:"\u6253\u5F00\u65E5\u5386\u9009\u9879\u5361\u65F6\u663E\u793A\u7684\u65E5\u5386\u89C6\u56FE",options:{monthGrid:"\u6708\u7F51\u683C",weekTimeline:"\u5468\u65F6\u95F4\u7EBF",dayTimeline:"\u65E5\u65F6\u95F4\u7EBF",yearView:"\u5E74\u89C6\u56FE",customMultiDay:"\u81EA\u5B9A\u4E49\u591A\u65E5"}},customDayCount:{name:"\u81EA\u5B9A\u4E49\u89C6\u56FE\u5929\u6570",description:"\u81EA\u5B9A\u4E49\u591A\u65E5\u89C6\u56FE\u4E2D\u663E\u793A\u7684\u5929\u6570",placeholder:"3"},firstDayOfWeek:{name:"\u4E00\u5468\u7684\u7B2C\u4E00\u5929",description:"\u5468\u89C6\u56FE\u4E2D\u5E94\u4F5C\u4E3A\u7B2C\u4E00\u5217\u7684\u65E5\u671F"},showWeekends:{name:"\u663E\u793A\u5468\u672B",description:"\u5728\u65E5\u5386\u89C6\u56FE\u4E2D\u663E\u793A\u5468\u672B"},showWeekNumbers:{name:"\u663E\u793A\u5468\u6570",description:"\u5728\u65E5\u5386\u89C6\u56FE\u4E2D\u663E\u793A\u5468\u6570"},showTodayHighlight:{name:"\u663E\u793A\u4ECA\u65E5\u9AD8\u4EAE",description:"\u5728\u65E5\u5386\u89C6\u56FE\u4E2D\u9AD8\u4EAE\u5F53\u524D\u65E5\u671F"},showCurrentTimeIndicator:{name:"\u663E\u793A\u5F53\u524D\u65F6\u95F4\u6307\u793A\u5668",description:"\u5728\u65F6\u95F4\u7EBF\u89C6\u56FE\u4E2D\u663E\u793A\u663E\u793A\u5F53\u524D\u65F6\u95F4\u7684\u7EBF"},selectionMirror:{name:"\u9009\u62E9\u955C\u50CF",description:"\u62D6\u62FD\u9009\u62E9\u65F6\u95F4\u8303\u56F4\u65F6\u663E\u793A\u89C6\u89C9\u9884\u89C8"},calendarLocale:{name:"\u65E5\u5386\u533A\u57DF\u8BBE\u7F6E",description:'\u65E5\u671F\u683C\u5F0F\u548C\u65E5\u5386\u7CFB\u7EDF\u7684\u65E5\u5386\u533A\u57DF\u8BBE\u7F6E\uFF08\u4F8B\u5982\uFF0C"en"\u3001"fa"\u8868\u793A\u6CE2\u65AF\u8BED/\u6CE2\u65AF\u6587\u3001"de"\u8868\u793A\u5FB7\u8BED\uFF09\u3002\u7559\u7A7A\u4EE5\u4ECE\u6D4F\u89C8\u5668\u81EA\u52A8\u68C0\u6D4B\u3002',placeholder:"\u81EA\u52A8\u68C0\u6D4B",invalidLocale:"\u65E0\u6548\u7684\u533A\u57DF\u8BBE\u7F6E\u3002\u8BF7\u8F93\u5165\u6709\u6548\u7684\u8BED\u8A00\u6807\u7B7E\uFF08\u4F8B\u5982\uFF1A'zh'\u3001'en'\u3001'fr-FR'\uFF09\u3002"}},defaultEventVisibility:{header:"\u9ED8\u8BA4\u4E8B\u4EF6\u53EF\u89C1\u6027",description:"\u914D\u7F6E\u6253\u5F00\u65E5\u5386\u65F6\u9ED8\u8BA4\u53EF\u89C1\u7684\u4E8B\u4EF6\u7C7B\u578B\u3002\u7528\u6237\u4ECD\u53EF\u5728\u65E5\u5386\u89C6\u56FE\u4E2D\u5207\u6362\u8FD9\u4E9B\u5F00/\u5173\u3002",showScheduledTasks:{name:"\u663E\u793A\u5B89\u6392\u7684\u4EFB\u52A1",description:"\u9ED8\u8BA4\u663E\u793A\u6709\u5B89\u6392\u65E5\u671F\u7684\u4EFB\u52A1"},showDueDates:{name:"\u663E\u793A\u5230\u671F\u65E5\u671F",description:"\u9ED8\u8BA4\u663E\u793A\u4EFB\u52A1\u5230\u671F\u65E5\u671F"},showDueWhenScheduled:{name:"\u5B89\u6392\u65F6\u663E\u793A\u5230\u671F\u65E5\u671F",description:"\u5373\u4F7F\u5BF9\u4E8E\u5DF2\u6709\u5B89\u6392\u65E5\u671F\u7684\u4EFB\u52A1\u4E5F\u663E\u793A\u5230\u671F\u65E5\u671F"},showTimeEntries:{name:"\u663E\u793A\u65F6\u95F4\u6761\u76EE",description:"\u9ED8\u8BA4\u663E\u793A\u5DF2\u5B8C\u6210\u7684\u65F6\u95F4\u8DDF\u8E2A\u6761\u76EE"},showRecurringTasks:{name:"\u663E\u793A\u91CD\u590D\u4EFB\u52A1",description:"\u9ED8\u8BA4\u663E\u793A\u91CD\u590D\u4EFB\u52A1\u5B9E\u4F8B"},showICSEvents:{name:"\u663E\u793AICS\u4E8B\u4EF6",description:"\u9ED8\u8BA4\u663E\u793A\u6765\u81EAICS\u8BA2\u9605\u7684\u4E8B\u4EF6"}},timeSettings:{header:"\u65F6\u95F4\u8BBE\u7F6E",description:"\u914D\u7F6E\u65F6\u95F4\u7EBF\u89C6\u56FE\u7684\u65F6\u95F4\u76F8\u5173\u663E\u793A\u8BBE\u7F6E\u3002",timeSlotDuration:{name:"\u65F6\u95F4\u6BB5\u6301\u7EED\u65F6\u95F4",description:"\u65F6\u95F4\u7EBF\u89C6\u56FE\u4E2D\u6BCF\u4E2A\u65F6\u95F4\u6BB5\u7684\u6301\u7EED\u65F6\u95F4",options:{fifteenMinutes:"15\u5206\u949F",thirtyMinutes:"30\u5206\u949F",sixtyMinutes:"60\u5206\u949F"}},startTime:{name:"\u5F00\u59CB\u65F6\u95F4",description:"\u65F6\u95F4\u7EBF\u89C6\u56FE\u4E2D\u663E\u793A\u7684\u6700\u65E9\u65F6\u95F4\uFF08HH:MM\u683C\u5F0F\uFF09",placeholder:"06:00"},endTime:{name:"\u7ED3\u675F\u65F6\u95F4",description:"\u65F6\u95F4\u7EBF\u89C6\u56FE\u4E2D\u663E\u793A\u7684\u6700\u665A\u65F6\u95F4\uFF08HH:MM \u683C\u5F0F\uFF09\u3002\u4F7F\u7528\u5927\u4E8E 24:00 \u7684\u503C\u53EF\u663E\u793A\u6B21\u65E5\u51CC\u6668\u65F6\u95F4\uFF0C\u4F8B\u5982 26:00 \u8868\u793A\u51CC\u6668 2 \u70B9\u3002",placeholder:"26:00"},initialScrollTime:{name:"\u521D\u59CB\u6EDA\u52A8\u65F6\u95F4",description:"\u6253\u5F00\u65F6\u95F4\u7EBF\u89C6\u56FE\u65F6\u6EDA\u52A8\u5230\u7684\u65F6\u95F4\uFF08HH:MM\u683C\u5F0F\uFF09",placeholder:"09:00"},eventMinHeight:{name:"\u4E8B\u4EF6\u6700\u5C0F\u9AD8\u5EA6",description:"\u65F6\u95F4\u8F74\u89C6\u56FE\u4E2D\u4E8B\u4EF6\u7684\u6700\u5C0F\u9AD8\u5EA6\uFF08\u50CF\u7D20\uFF09",placeholder:"15"}},uiElements:{header:"\u754C\u9762\u5143\u7D20",description:"\u914D\u7F6E\u5404\u79CD\u754C\u9762\u5143\u7D20\u7684\u663E\u793A\u3002",showTrackedTasksInStatusBar:{name:"\u5728\u72B6\u6001\u680F\u4E2D\u663E\u793A\u8DDF\u8E2A\u7684\u4EFB\u52A1",description:"\u5728Obsidian\u72B6\u6001\u680F\u4E2D\u663E\u793A\u5F53\u524D\u8DDF\u8E2A\u7684\u4EFB\u52A1"},showProjectSubtasksWidget:{name:"\u663E\u793A\u9879\u76EE\u5B50\u4EFB\u52A1\u5C0F\u90E8\u4EF6",description:"\u663E\u793A\u663E\u793A\u5F53\u524D\u9879\u76EE\u7B14\u8BB0\u5B50\u4EFB\u52A1\u7684\u5C0F\u90E8\u4EF6"},projectSubtasksPosition:{name:"\u9879\u76EE\u5B50\u4EFB\u52A1\u4F4D\u7F6E",description:"\u9879\u76EE\u5B50\u4EFB\u52A1\u5C0F\u90E8\u4EF6\u7684\u5B9A\u4F4D\u4F4D\u7F6E",options:{top:"\u7B14\u8BB0\u9876\u90E8",bottom:"\u7B14\u8BB0\u5E95\u90E8"}},showRelationshipsWidget:{name:"\u663E\u793A\u5173\u7CFB\u5C0F\u90E8\u4EF6",description:"\u663E\u793A\u4E00\u4E2A\u5C0F\u90E8\u4EF6\uFF0C\u5C55\u793A\u5F53\u524D\u7B14\u8BB0\u7684\u6240\u6709\u5173\u7CFB\uFF08\u5B50\u4EFB\u52A1\u3001\u9879\u76EE\u3001\u4F9D\u8D56\u9879\uFF09"},relationshipsPosition:{name:"\u5173\u7CFB\u4F4D\u7F6E",description:"\u5173\u7CFB\u5C0F\u90E8\u4EF6\u7684\u4F4D\u7F6E",options:{top:"\u7B14\u8BB0\u9876\u90E8",bottom:"\u7B14\u8BB0\u5E95\u90E8"}},showTaskCardInNote:{name:"\u5728\u7B14\u8BB0\u4E2D\u663E\u793A\u4EFB\u52A1\u5361\u7247",description:"\u5728\u4EFB\u52A1\u7B14\u8BB0\u9876\u90E8\u663E\u793A\u4EFB\u52A1\u5361\u7247\u5C0F\u90E8\u4EF6\uFF0C\u663E\u793A\u4EFB\u52A1\u8BE6\u60C5\u548C\u64CD\u4F5C"},showCompletedTaskStrikethrough:{name:"\u4E3A\u5DF2\u5B8C\u6210\u4EFB\u52A1\u6807\u9898\u6DFB\u52A0\u5220\u9664\u7EBF",description:"\u5728\u5DF2\u5B8C\u6210\u4EFB\u52A1\u5361\u7247\u6807\u9898\u4E0A\u753B\u4E00\u6761\u7EBF\u3002\u5173\u95ED\u540E\u5DF2\u5B8C\u6210\u4EFB\u52A1\u4F1A\u66F4\u6613\u9605\u8BFB"},showExpandableSubtasks:{name:"\u663E\u793A\u53EF\u5C55\u5F00\u5B50\u4EFB\u52A1",description:"\u5141\u8BB8\u5728\u4EFB\u52A1\u5361\u7247\u4E2D\u5C55\u5F00/\u6298\u53E0\u5B50\u4EFB\u52A1\u90E8\u5206"},expandSubtasksByDefault:{name:"\u9ED8\u8BA4\u5C55\u5F00\u5B50\u4EFB\u52A1",description:"\u6E32\u67D3\u4EFB\u52A1\u5361\u7247\u65F6\u5C55\u5F00\u663E\u793A\u9879\u76EE\u5B50\u4EFB\u52A1"},subtaskChevronPosition:{name:"\u5B50\u4EFB\u52A1chevron\u4F4D\u7F6E",description:"\u4EFB\u52A1\u5361\u7247\u4E2D\u5C55\u5F00/\u6298\u53E0chevron\u7684\u4F4D\u7F6E",options:{left:"\u5DE6\u4FA7",right:"\u53F3\u4FA7"}},viewsButtonAlignment:{name:"\u89C6\u56FE\u6309\u94AE\u5BF9\u9F50",description:"\u4EFB\u52A1\u754C\u9762\u4E2D\u89C6\u56FE/\u8FC7\u6EE4\u5668\u6309\u94AE\u7684\u5BF9\u9F50\u65B9\u5F0F",options:{left:"\u5DE6\u4FA7",right:"\u53F3\u4FA7"}}},projectAutosuggest:{header:"\u9879\u76EE\u81EA\u52A8\u5EFA\u8BAE",description:"\u81EA\u5B9A\u4E49\u4EFB\u52A1\u521B\u5EFA\u671F\u95F4\u9879\u76EE\u5EFA\u8BAE\u7684\u663E\u793A\u65B9\u5F0F\u3002",requiredTags:{name:"\u5FC5\u9700\u6807\u7B7E",description:"\u4EC5\u663E\u793A\u5177\u6709\u8FD9\u4E9B\u6807\u7B7E\u4E4B\u4E00\u7684\u7B14\u8BB0\uFF08\u9017\u53F7\u5206\u9694\uFF09\u3002\u7559\u7A7A\u4EE5\u663E\u793A\u6240\u6709\u7B14\u8BB0\u3002",placeholder:"\u9879\u76EE\uFF0C\u6D3B\u52A8\uFF0C\u91CD\u8981"},includeFolders:{name:"\u5305\u542B\u6587\u4EF6\u5939",description:"\u4EC5\u663E\u793A\u8FD9\u4E9B\u6587\u4EF6\u5939\u4E2D\u7684\u7B14\u8BB0\uFF08\u9017\u53F7\u5206\u9694\u8DEF\u5F84\uFF09\u3002\u7559\u7A7A\u4EE5\u663E\u793A\u6240\u6709\u6587\u4EF6\u5939\u3002",placeholder:"\u9879\u76EE/\uFF0C\u5DE5\u4F5C/\u6D3B\u52A8\uFF0C\u4E2A\u4EBA"},requiredPropertyKey:{name:"\u5FC5\u9700\u5C5E\u6027\u952E",description:"\u4EC5\u663E\u793A\u6B64\u524D\u7F6E\u5C5E\u6027\u4E0E\u4E0B\u9762\u503C\u5339\u914D\u7684\u7B14\u8BB0\u3002\u7559\u7A7A\u4EE5\u5FFD\u7565\u3002",placeholder:"\u7C7B\u578B"},requiredPropertyValue:{name:"\u5FC5\u9700\u5C5E\u6027\u503C",description:"\u4EC5\u5EFA\u8BAE\u5C5E\u6027\u7B49\u4E8E\u6B64\u503C\u7684\u7B14\u8BB0\u3002\u7559\u7A7A\u4EE5\u8981\u6C42\u5C5E\u6027\u5B58\u5728\u3002",placeholder:"\u9879\u76EE"},customizeDisplay:{name:"\u81EA\u5B9A\u4E49\u5EFA\u8BAE\u663E\u793A",description:"\u663E\u793A\u9AD8\u7EA7\u9009\u9879\u4EE5\u914D\u7F6E\u9879\u76EE\u5EFA\u8BAE\u7684\u663E\u793A\u65B9\u5F0F\u53CA\u5176\u663E\u793A\u7684\u4FE1\u606F\u3002"},enableFuzzyMatching:{name:"\u542F\u7528\u6A21\u7CCA\u5339\u914D",description:"\u5728\u9879\u76EE\u641C\u7D22\u4E2D\u5141\u8BB8\u62FC\u5199\u9519\u8BEF\u548C\u90E8\u5206\u5339\u914D\u3002\u5728\u5927\u578B\u5E93\u4E2D\u53EF\u80FD\u8F83\u6162\u3002"},displayRowsHelp:"\u914D\u7F6E\u4E3A\u6BCF\u4E2A\u9879\u76EE\u5EFA\u8BAE\u663E\u793A\u6700\u591A3\u884C\u4FE1\u606F\u3002",displayRows:{row1:{name:"\u7B2C1\u884C",description:"\u683C\u5F0F\uFF1A{property|flags}\u3002\u5C5E\u6027\uFF1Atitle\u3001aliases\u3001file.path\u3001file.parent\u3002\u6807\u5FD7\uFF1An(Label)\u663E\u793A\u6807\u7B7E\uFF0Cs\u4F7F\u5176\u53EF\u641C\u7D22\u3002\u793A\u4F8B\uFF1A{title|n(Title)|s}",placeholder:"{title|n(\u6807\u9898)}"},row2:{name:"\u7B2C2\u884C\uFF08\u53EF\u9009\uFF09",description:"\u5E38\u89C1\u6A21\u5F0F\uFF1A{aliases|n(Aliases)}\u3001{file.parent|n(Folder)}\u3001literal:\u81EA\u5B9A\u4E49\u6587\u672C",placeholder:"{aliases|n(\u522B\u540D)}"},row3:{name:"\u7B2C3\u884C\uFF08\u53EF\u9009\uFF09",description:"\u5176\u4ED6\u4FE1\u606F\u5982{file.path|n(Path)}\u6216\u81EA\u5B9A\u4E49\u524D\u7F6E\u5B57\u6BB5",placeholder:"{file.path|n(\u8DEF\u5F84)}"}},quickReference:{header:"\u5FEB\u901F\u53C2\u8003",properties:"\u53EF\u7528\u5C5E\u6027\uFF1Atitle\u3001aliases\u3001file.path\u3001file.parent\u6216\u4EFB\u4F55\u524D\u7F6E\u5B57\u6BB5",labels:'\u6DFB\u52A0\u6807\u7B7E\uFF1A{title|n(Title)} \u2192 "Title: My Project"',searchable:"\u4F7F\u5176\u53EF\u641C\u7D22\uFF1A{description|s}\u5728+\u641C\u7D22\u4E2D\u5305\u542B\u63CF\u8FF0",staticText:"\u9759\u6001\u6587\u672C\uFF1Aliteral:My Custom Label",alwaysSearchable:"\u6587\u4EF6\u540D\u3001\u6807\u9898\u548C\u522B\u540D\u9ED8\u8BA4\u59CB\u7EC8\u53EF\u641C\u7D22\u3002"}},dataStorage:{name:"\u5B58\u50A8\u4F4D\u7F6E",description:"\u756A\u8304\u949F\u4F1A\u8BDD\u5386\u53F2\u7684\u5B58\u50A8\u4F4D\u7F6E",pluginData:"\u63D2\u4EF6\u6570\u636E\uFF08\u63A8\u8350\uFF09",dailyNotes:"\u65E5\u8BB0",notices:{locationChanged:"\u756A\u8304\u949F\u5B58\u50A8\u4F4D\u7F6E\u5DF2\u66F4\u6539\u4E3A{location}"}},notifications:{description:"\u914D\u7F6E\u4EFB\u52A1\u63D0\u9192\u901A\u77E5\u548C\u8B66\u62A5\u3002"},performance:{description:"\u914D\u7F6E\u63D2\u4EF6\u6027\u80FD\u548C\u884C\u4E3A\u9009\u9879\u3002"},timeTrackingSection:{description:"\u914D\u7F6E\u81EA\u52A8\u65F6\u95F4\u8DDF\u8E2A\u884C\u4E3A\u3002"},recurringSection:{description:"\u914D\u7F6E\u91CD\u590D\u4EFB\u52A1\u7BA1\u7406\u7684\u884C\u4E3A\u3002"}},integrations:{mobileCalendar:{disable:{name:"\u5728\u79FB\u52A8\u7AEF\u7981\u7528\u65E5\u5386\u96C6\u6210",description:"\u5728 Obsidian Mobile \u4E0A\u8DF3\u8FC7 Google\u3001Microsoft \u548C ICS \u65E5\u5386\u52A0\u8F7D\u3002\u684C\u9762\u7AEF\u65E5\u5386\u96C6\u6210\u4E0D\u53D7\u5F71\u54CD\u3002"},status:{name:"\u6B64\u79FB\u52A8\u8BBE\u5907\u5DF2\u7981\u7528\u65E5\u5386\u96C6\u6210",description:"\u5173\u95ED\u6B64\u8BBE\u7F6E\u5E76\u91CD\u65B0\u52A0\u8F7D Obsidian Mobile\uFF0C\u4EE5\u6062\u590D\u65E5\u5386\u52A0\u8F7D\u3002"}},basesIntegration:{header:"Bases\u96C6\u6210",description:"\u914D\u7F6E\u4E0EObsidian Bases\u63D2\u4EF6\u7684\u96C6\u6210\u3002\u8FD9\u662F\u4E00\u4E2A\u5B9E\u9A8C\u6027\u529F\u80FD\uFF0C\u76EE\u524D\u4F9D\u8D56\u4E8E\u672A\u8BB0\u5F55\u7684Obsidian API\u3002\u884C\u4E3A\u53EF\u80FD\u4F1A\u6539\u53D8\u6216\u4E2D\u65AD\u3002",enable:{name:"\u542F\u7528Bases\u96C6\u6210",description:"\u542F\u7528TaskNotes\u89C6\u56FE\u5728Obsidian Bases\u63D2\u4EF6\u4E2D\u4F7F\u7528\u3002\u5FC5\u987B\u542F\u7528Bases\u63D2\u4EF6\u624D\u80FD\u5DE5\u4F5C\u3002"},viewCommands:{header:"\u89C6\u56FE\u4E0E Base \u6587\u4EF6",description:"TaskNotes \u4F7F\u7528 Obsidian Bases \u6587\u4EF6\uFF08.base\uFF09\u6765\u5448\u73B0\u89C6\u56FE\u3002\u8FD9\u4E9B\u6587\u4EF6\u5728\u542F\u52A8\u65F6\u81EA\u52A8\u751F\u6210\uFF08\u5982\u679C\u4E0D\u5B58\u5728\uFF09\uFF0C\u5E76\u4F7F\u7528\u60A8\u5F53\u524D\u7684\u8BBE\u7F6E\u8FDB\u884C\u914D\u7F6E\uFF08\u4EFB\u52A1\u8BC6\u522B\u3001\u5B57\u6BB5\u6620\u5C04\u3001\u72B6\u6001\u7B49\uFF09\u3002",descriptionRegen:"\u66F4\u6539\u8BBE\u7F6E\u65F6\uFF0CBase \u6587\u4EF6\u4E0D\u4F1A\u81EA\u52A8\u66F4\u65B0\u3002\u8981\u5E94\u7528\u65B0\u8BBE\u7F6E\uFF0C\u8BF7\u4F7F\u7528\u4E0B\u65B9\u7684\u201C\u66F4\u65B0\u6587\u4EF6\u201D\uFF0C\u5220\u9664\u73B0\u6709 .base \u6587\u4EF6\u5E76\u91CD\u542F Obsidian\uFF0C\u6216\u624B\u52A8\u7F16\u8F91\u5B83\u4EEC\u3002",docsLink:"\u67E5\u770B\u53EF\u7528\u516C\u5F0F\u548C\u81EA\u5B9A\u4E49\u9009\u9879\u7684\u6587\u6863",docsLinkUrl:"https://tasknotes.dev/views/default-base-templates",commands:{miniCalendar:"\u6253\u5F00\u8FF7\u4F60\u65E5\u5386\u89C6\u56FE",kanban:"\u6253\u5F00\u770B\u677F\u89C6\u56FE",tasks:"\u6253\u5F00\u4EFB\u52A1\u89C6\u56FE",advancedCalendar:"\u6253\u5F00\u9AD8\u7EA7\u65E5\u5386\u89C6\u56FE",agenda:"\u6253\u5F00\u8BAE\u7A0B\u89C6\u56FE",relationships:"\u5173\u7CFB\u5C0F\u90E8\u4EF6",pomodoroStats:"Pomodoro \u7EDF\u8BA1 Base"},fileLabel:"\u6587\u4EF6\uFF1A{path}",resetButton:"\u91CD\u7F6E",resetTooltip:"\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u8DEF\u5F84",pomodoroDailyNotesHint:"\u751F\u6210\u7684 Pomodoro \u7EDF\u8BA1 Base \u4F1A\u4ECE\u6BCF\u65E5\u7B14\u8BB0\u8BFB\u53D6 Pomodoro \u5386\u53F2\u3002\u5982\u679C\u5386\u53F2\u4ECD\u5B58\u50A8\u5728\u63D2\u4EF6\u6570\u636E\u4E2D\uFF0C\u8BF7\u5148\u5728\u8BBE\u7F6E\u4E2D\u8FC1\u79FB\u540E\u518D\u4F7F\u7528\u8BE5 Base \u6587\u4EF6\u3002"},autoCreateDefaultFiles:{name:"\u81EA\u52A8\u521B\u5EFA\u9ED8\u8BA4\u6587\u4EF6",description:"\u542F\u52A8\u65F6\u81EA\u52A8\u521B\u5EFA\u7F3A\u5931\u7684\u9ED8\u8BA4 Base \u89C6\u56FE\u6587\u4EF6\u3002\u7981\u7528\u4EE5\u9632\u6B62\u5DF2\u5220\u9664\u7684\u793A\u4F8B\u6587\u4EF6\u88AB\u91CD\u65B0\u521B\u5EFA\u3002"},createDefaultFiles:{name:"\u521B\u5EFA\u9ED8\u8BA4\u6587\u4EF6",description:"\u5728 TaskNotes/Views/ \u76EE\u5F55\u4E2D\u521B\u5EFA\u9ED8\u8BA4\u7684 .base \u6587\u4EF6\u3002\u73B0\u6709\u6587\u4EF6\u4E0D\u4F1A\u88AB\u8986\u76D6\u3002",buttonText:"\u521B\u5EFA\u6587\u4EF6"},exportV3Views:{name:"\u5C06V3\u4FDD\u5B58\u7684\u89C6\u56FE\u5BFC\u51FA\u5230Bases",description:"\u5C06\u60A8\u6240\u6709\u6765\u81EA TaskNotes v3 \u7684\u4FDD\u5B58\u89C6\u56FE\u8F6C\u6362\u4E3A\u5305\u542B\u591A\u4E2A\u89C6\u56FE\u7684\u5355\u4E2A .base \u6587\u4EF6\u3002\u8FD9\u6709\u52A9\u4E8E\u5C06\u60A8\u7684 v3 \u8FC7\u6EE4\u5668\u914D\u7F6E\u8FC1\u79FB\u5230\u65B0\u7684 Bases \u7CFB\u7EDF\u3002",buttonText:"\u5BFC\u51FAV3\u89C6\u56FE",noViews:"\u6CA1\u6709\u4FDD\u5B58\u7684\u89C6\u56FE\u53EF\u5BFC\u51FA",fileExists:"\u6587\u4EF6\u5DF2\u5B58\u5728",confirmOverwrite:'\u540D\u4E3A"{fileName}"\u7684\u6587\u4EF6\u5DF2\u5B58\u5728\u3002\u662F\u5426\u8986\u76D6\uFF1F',success:"\u5DF2\u5C06 {count} \u4E2A\u4FDD\u5B58\u7684\u89C6\u56FE\u5BFC\u51FA\u5230 {filePath}",error:"\u5BFC\u51FA\u89C6\u56FE\u5931\u8D25\uFF1A{message}"},notices:{enabled:"Bases\u96C6\u6210\u5DF2\u542F\u7528\u3002\u8BF7\u91CD\u542FObsidian\u4EE5\u5B8C\u6210\u8BBE\u7F6E\u3002",disabled:"Bases\u96C6\u6210\u5DF2\u7981\u7528\u3002\u8BF7\u91CD\u542FObsidian\u4EE5\u5B8C\u6210\u79FB\u9664\u3002"},updateDefaultFiles:{name:"\u66F4\u65B0\u9ED8\u8BA4\u6587\u4EF6",description:"\u7528\u6839\u636E\u5F53\u524D TaskNotes \u8BBE\u7F6E\u751F\u6210\u7684\u6A21\u677F\u8986\u76D6\u5DF2\u914D\u7F6E\u7684\u9ED8\u8BA4 .base \u6587\u4EF6\u3002",buttonText:"\u66F4\u65B0\u6587\u4EF6",confirmTitle:"\u66F4\u65B0\u9ED8\u8BA4 Base \u6587\u4EF6",confirmMessage:"\u8FD9\u4F1A\u7528\u65B0\u751F\u6210\u7684\u6A21\u677F\u8986\u76D6\u5DF2\u914D\u7F6E\u7684\u9ED8\u8BA4 .base \u6587\u4EF6\u3002\u8FD9\u4E9B\u6587\u4EF6\u4E2D\u7684\u4EFB\u4F55\u624B\u52A8\u7F16\u8F91\u90FD\u5C06\u88AB\u66FF\u6362\u3002",confirmText:"\u66F4\u65B0\u6587\u4EF6"}},calendarSubscriptions:{header:"\u65E5\u5386\u8BA2\u9605",description:"\u901A\u8FC7ICS/iCal URL\u8BA2\u9605\u5916\u90E8\u65E5\u5386\uFF0C\u4EE5\u67E5\u770B\u4E8B\u4EF6\u548C\u4EFB\u52A1\u3002",defaultNoteTemplate:{name:"\u9ED8\u8BA4\u7B14\u8BB0\u6A21\u677F",description:"\u4ECEICS\u4E8B\u4EF6\u521B\u5EFA\u7B14\u8BB0\u7684\u6A21\u677F\u6587\u4EF6\u8DEF\u5F84",placeholder:"\u6A21\u677F/\u4E8B\u4EF6\u6A21\u677F.md"},defaultNoteFolder:{name:"\u9ED8\u8BA4\u7B14\u8BB0\u6587\u4EF6\u5939",description:"\u4ECEICS\u4E8B\u4EF6\u521B\u5EFA\u7B14\u8BB0\u7684\u6587\u4EF6\u5939",placeholder:"\u65E5\u5386/\u4E8B\u4EF6"},filenameFormat:{name:"ICS\u7B14\u8BB0\u6587\u4EF6\u540D\u683C\u5F0F",description:"\u4ECEICS\u4E8B\u4EF6\u521B\u5EFA\u7B14\u8BB0\u7684\u6587\u4EF6\u540D\u751F\u6210\u65B9\u5F0F",options:{title:"\u4E8B\u4EF6\u6807\u9898",zettel:"Zettelkasten\u683C\u5F0F",timestamp:"\u65F6\u95F4\u6233",custom:"\u81EA\u5B9A\u4E49\u6A21\u677F"}},customTemplate:{name:"\u81EA\u5B9A\u4E49ICS\u6587\u4EF6\u540D\u6A21\u677F",description:"\u81EA\u5B9A\u4E49ICS\u4E8B\u4EF6\u6587\u4EF6\u540D\u7684\u6A21\u677F",placeholder:"{date}-{title}"},useICSEndAsDue:{name:"\u4F7F\u7528ICS\u4E8B\u4EF6\u7ED3\u675F\u65F6\u95F4\u4F5C\u4E3A\u4EFB\u52A1\u622A\u6B62\u65E5\u671F",description:"\u542F\u7528\u540E\uFF0C\u4ECE\u65E5\u5386\u4E8B\u4EF6\u521B\u5EFA\u7684\u4EFB\u52A1\u5C06\u628A\u622A\u6B62\u65E5\u671F\u8BBE\u7F6E\u4E3A\u4E8B\u4EF6\u7684\u7ED3\u675F\u65F6\u95F4\u3002\u5BF9\u4E8E\u5168\u5929\u4E8B\u4EF6\uFF0C\u622A\u6B62\u65E5\u671F\u5C06\u8BBE\u7F6E\u4E3A\u4E8B\u4EF6\u65E5\u671F\u3002\u5BF9\u4E8E\u6709\u65F6\u95F4\u7684\u4E8B\u4EF6\uFF0C\u622A\u6B62\u65E5\u671F\u5C06\u5305\u542B\u7ED3\u675F\u65F6\u95F4\u3002"},recurringEventRelatedNotesMode:{name:"\u91CD\u590D\u4E8B\u4EF6\u7684\u5173\u8054\u7B14\u8BB0",description:"\u9009\u62E9\u5173\u8054\u5230\u5916\u90E8\u65E5\u5386\u4E8B\u4EF6\u67D0\u4E00\u6B21\u91CD\u590D\u7684\u7B14\u8BB0\uFF0C\u662F\u663E\u793A\u5728\u5DF2\u52A0\u8F7D\u7684\u6574\u4E2A\u7CFB\u5217\u4E2D\uFF0C\u8FD8\u662F\u4EC5\u663E\u793A\u5728\u6240\u9009\u5B9E\u4F8B\u4E0A\u3002",options:{series:"\u6574\u4E2A\u7CFB\u5217",instance:"\u4EC5\u6240\u9009\u5B9E\u4F8B"}}},subscriptionsList:{header:"\u65E5\u5386\u8BA2\u9605\u5217\u8868",addSubscription:{name:"\u6DFB\u52A0\u65E5\u5386\u8BA2\u9605",description:"\u4ECEICS/iCal URL\u6216\u672C\u5730\u6587\u4EF6\u6DFB\u52A0\u65B0\u7684\u65E5\u5386\u8BA2\u9605",buttonText:"\u6DFB\u52A0\u8BA2\u9605"},refreshAll:{name:"\u5237\u65B0\u6240\u6709\u8BA2\u9605",description:"\u624B\u52A8\u5237\u65B0\u6240\u6709\u542F\u7528\u7684\u65E5\u5386\u8BA2\u9605",buttonText:"\u5237\u65B0\u5168\u90E8"},newCalendarName:"\u65B0\u65E5\u5386",emptyState:"\u672A\u914D\u7F6E\u65E5\u5386\u8BA2\u9605\u3002\u6DFB\u52A0\u8BA2\u9605\u4EE5\u540C\u6B65\u5916\u90E8\u65E5\u5386\u3002",notices:{addSuccess:"\u65B0\u65E5\u5386\u8BA2\u9605\u5DF2\u6DFB\u52A0 - \u8BF7\u914D\u7F6E\u8BE6\u7EC6\u4FE1\u606F",addFailure:"\u6DFB\u52A0\u8BA2\u9605\u5931\u8D25",serviceUnavailable:"ICS\u8BA2\u9605\u670D\u52A1\u4E0D\u53EF\u7528",refreshSuccess:"\u6240\u6709\u65E5\u5386\u8BA2\u9605\u5237\u65B0\u6210\u529F",refreshFailure:"\u5237\u65B0\u67D0\u4E9B\u65E5\u5386\u8BA2\u9605\u5931\u8D25",updateFailure:"\u66F4\u65B0\u8BA2\u9605\u5931\u8D25",deleteSuccess:'\u5220\u9664\u8BA2\u9605"{name}"',deleteFailure:"\u5220\u9664\u8BA2\u9605\u5931\u8D25",enableFirst:"\u8BF7\u5148\u542F\u7528\u8BA2\u9605",refreshSubscriptionSuccess:'\u5237\u65B0"{name}"',refreshSubscriptionFailure:"\u5237\u65B0\u8BA2\u9605\u5931\u8D25"},labels:{enabled:"\u5DF2\u542F\u7528\uFF1A",name:"\u540D\u79F0\uFF1A",type:"\u7C7B\u578B\uFF1A",url:"URL\uFF1A",filePath:"\u6587\u4EF6\u8DEF\u5F84\uFF1A",color:"\u989C\u8272\uFF1A",refreshMinutes:"\u5237\u65B0\uFF08\u5206\u949F\uFF09\uFF1A"},typeOptions:{remote:"\u8FDC\u7A0BURL",local:"\u672C\u5730\u6587\u4EF6"},placeholders:{calendarName:"\u65E5\u5386\u540D\u79F0",url:"ICS/iCal \u5730\u5740",filePath:"\u672C\u5730\u6587\u4EF6\u8DEF\u5F84\uFF08\u4F8B\u5982\uFF0CCalendar.ics\uFF09",localFile:"\u65E5\u5386.ics"},statusLabels:{enabled:"\u5DF2\u542F\u7528",disabled:"\u5DF2\u7981\u7528",remote:"\u8FDC\u7A0B",localFile:"\u672C\u5730\u6587\u4EF6",remoteCalendar:"\u8FDC\u7A0B\u65E5\u5386",localFileCalendar:"\u672C\u5730\u6587\u4EF6",synced:"{timeAgo}\u5DF2\u540C\u6B65",error:"\u9519\u8BEF"},actions:{refreshNow:"\u7ACB\u5373\u5237\u65B0",deleteSubscription:"\u5220\u9664\u8BA2\u9605"},refreshNow:"\u7ACB\u5373\u5237\u65B0",confirmDelete:{title:"\u5220\u9664\u8BA2\u9605",message:'\u60A8\u786E\u5B9A\u8981\u5220\u9664\u8BA2\u9605"{name}"\u5417\uFF1F\u6B64\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500\u3002',confirmText:"\u5220\u9664"}},autoExport:{header:"\u81EA\u52A8ICS\u5BFC\u51FA",description:"\u81EA\u52A8\u5C06\u6240\u6709\u4EFB\u52A1\u5BFC\u51FA\u5230ICS\u6587\u4EF6\u3002",enable:{name:"\u542F\u7528\u81EA\u52A8\u5BFC\u51FA",description:"\u81EA\u52A8\u4FDD\u6301ICS\u6587\u4EF6\u4E0E\u6240\u6709\u4EFB\u52A1\u66F4\u65B0"},filePath:{name:"\u5BFC\u51FA\u6587\u4EF6\u8DEF\u5F84",description:"ICS\u6587\u4EF6\u4FDD\u5B58\u7684\u8DEF\u5F84\uFF08\u76F8\u5BF9\u4E8E\u5E93\u6839\u76EE\u5F55\uFF09",placeholder:"tasknotes-\u65E5\u5386.ics"},interval:{name:"\u66F4\u65B0\u95F4\u9694\uFF085\u52301440\u5206\u949F\u4E4B\u95F4\uFF09",description:"\u66F4\u65B0\u5BFC\u51FA\u6587\u4EF6\u7684\u9891\u7387",placeholder:"60"},useDuration:{name:"\u4F7F\u7528\u4EFB\u52A1\u6301\u7EED\u65F6\u95F4\u4F5C\u4E3A\u4E8B\u4EF6\u957F\u5EA6",description:"\u542F\u7528\u540E\uFF0C\u4F7F\u7528\u4EFB\u52A1\u7684\u65F6\u95F4\u4F30\u8BA1\uFF08\u6301\u7EED\u65F6\u95F4\uFF09\u800C\u4E0D\u662F\u622A\u6B62\u65E5\u671F\u4F5C\u4E3A\u65E5\u5386\u4E8B\u4EF6\u7684\u7ED3\u675F\u65F6\u95F4\u3002\u8FD9\u5BF9\u4E8EGTD\u5DE5\u4F5C\u6D41\u7A0B\u5F88\u6709\u7528\uFF0C\u5176\u4E2D\u8BA1\u5212 + \u6301\u7EED\u65F6\u95F4\u4EE3\u8868\u5DE5\u4F5C\u89C4\u5212\uFF0C\u800C\u622A\u6B62\u65E5\u671F\u4EE3\u8868\u6700\u540E\u671F\u9650\u3002"},exportNow:{name:"\u7ACB\u5373\u5BFC\u51FA",description:"\u624B\u52A8\u89E6\u53D1\u7ACB\u5373\u5BFC\u51FA",buttonText:"\u7ACB\u5373\u5BFC\u51FA"},status:{title:"\u5BFC\u51FA\u72B6\u6001\uFF1A",lastExport:"\u4E0A\u6B21\u5BFC\u51FA\uFF1A{time}",nextExport:"\u4E0B\u6B21\u5BFC\u51FA\uFF1A{time}",noExports:"\u5C1A\u672A\u5BFC\u51FA",notScheduled:"\u672A\u8BA1\u5212",notInitialized:"\u81EA\u52A8\u5BFC\u51FA\u670D\u52A1\u672A\u521D\u59CB\u5316 - \u8BF7\u91CD\u542FObsidian",serviceNotInitialized:"\u670D\u52A1\u672A\u521D\u59CB\u5316 - \u8BF7\u91CD\u542F Obsidian"},notices:{reloadRequired:"\u8BF7\u91CD\u65B0\u52A0\u8F7DObsidian\u4EE5\u4F7F\u81EA\u52A8\u5BFC\u51FA\u66F4\u6539\u751F\u6548\u3002",exportSuccess:"\u4EFB\u52A1\u5BFC\u51FA\u6210\u529F",exportFailure:"\u5BFC\u51FA\u5931\u8D25 - \u68C0\u67E5\u63A7\u5236\u53F0\u83B7\u53D6\u8BE6\u7EC6\u4FE1\u606F",serviceUnavailable:"\u81EA\u52A8\u5BFC\u51FA\u670D\u52A1\u4E0D\u53EF\u7528"},excludeCompleted:{name:"\u6392\u9664\u5DF2\u5B8C\u6210\u4EFB\u52A1",description:"\u542F\u7528\u540E\uFF0C\u5DF2\u5B8C\u6210\u4EFB\u52A1\u4F1A\u4ECE ICS \u5BFC\u51FA\u4E2D\u7701\u7565\u3002\u5DF2\u5B8C\u6210\u72B6\u6001\u6765\u81EA\u4EFB\u52A1\u72B6\u6001\u8BBE\u7F6E\u3002"},excludeArchived:{name:"\u6392\u9664\u5DF2\u5F52\u6863\u4EFB\u52A1",description:"\u542F\u7528\u540E\uFF0C\u5DF2\u5F52\u6863\u4EFB\u52A1\u4F1A\u4ECE ICS \u5BFC\u51FA\u4E2D\u7701\u7565\u3002"},requireDueDate:{name:"\u8981\u6C42\u622A\u6B62\u65E5\u671F",description:"\u542F\u7528\u540E\uFF0C\u53EA\u6709\u5E26\u622A\u6B62\u65E5\u671F\u7684\u4EFB\u52A1\u4F1A\u5305\u542B\u5728 ICS \u5BFC\u51FA\u4E2D\u3002"},requireScheduledDate:{name:"\u8981\u6C42\u8BA1\u5212\u65E5\u671F",description:"\u542F\u7528\u540E\uFF0C\u53EA\u6709\u5E26\u8BA1\u5212\u65E5\u671F\u7684\u4EFB\u52A1\u4F1A\u5305\u542B\u5728 ICS \u5BFC\u51FA\u4E2D\u3002"}},googleCalendarExport:{header:"\u5C06\u4EFB\u52A1\u5BFC\u51FA\u5230Google\u65E5\u5386",description:"\u81EA\u52A8\u5C06\u60A8\u7684\u4EFB\u52A1\u540C\u6B65\u5230Google\u65E5\u5386\u4F5C\u4E3A\u4E8B\u4EF6\u3002\u9700\u8981\u5728\u4E0A\u65B9\u8FDE\u63A5Google\u65E5\u5386\u3002",enable:{name:"\u542F\u7528\u4EFB\u52A1\u5BFC\u51FA",description:"\u542F\u7528\u540E\uFF0C\u5E26\u6709\u65E5\u671F\u7684\u4EFB\u52A1\u5C06\u81EA\u52A8\u540C\u6B65\u5230Google\u65E5\u5386\u4F5C\u4E3A\u4E8B\u4EF6\u3002"},targetCalendar:{name:"\u76EE\u6807\u65E5\u5386",description:"\u9009\u62E9\u8981\u521B\u5EFA\u4EFB\u52A1\u4E8B\u4EF6\u7684\u65E5\u5386\u3002",placeholder:"\u9009\u62E9\u65E5\u5386...",connectFirst:"\u8BF7\u5148\u8FDE\u63A5Google\u65E5\u5386",primarySuffix:"\uFF08\u4E3B\u8981\uFF09"},syncTrigger:{name:"\u540C\u6B65\u89E6\u53D1\u5668",description:"\u54EA\u4E2A\u4EFB\u52A1\u65E5\u671F\u5E94\u89E6\u53D1\u65E5\u5386\u4E8B\u4EF6\u521B\u5EFA\u3002",options:{scheduled:"\u8BA1\u5212\u65E5\u671F",due:"\u622A\u6B62\u65E5\u671F",both:"\u4E24\u8005\uFF08\u4F18\u5148\u8BA1\u5212\u65E5\u671F\uFF09"}},allDayEvents:{name:"\u521B\u5EFA\u4E3A\u5168\u5929\u4E8B\u4EF6",description:"\u542F\u7528\u540E\uFF0C\u4EFB\u52A1\u5C06\u521B\u5EFA\u4E3A\u5168\u5929\u4E8B\u4EF6\u3002\u7981\u7528\u540E\uFF0C\u4F7F\u7528\u65F6\u95F4\u4F30\u8BA1\u4F5C\u4E3A\u6301\u7EED\u65F6\u95F4\u3002"},defaultDuration:{name:"\u9ED8\u8BA4\u4E8B\u4EF6\u6301\u7EED\u65F6\u95F4",description:"\u5E26\u65F6\u95F4\u7684\u4E8B\u4EF6\u6301\u7EED\u65F6\u95F4\uFF08\u5206\u949F\uFF09\uFF08\u5F53\u4EFB\u52A1\u6CA1\u6709\u65F6\u95F4\u4F30\u8BA1\u65F6\u4F7F\u7528\uFF09\u3002"},eventTitleTemplate:{name:"\u4E8B\u4EF6\u6807\u9898\u6A21\u677F",description:"\u4E8B\u4EF6\u6807\u9898\u6A21\u677F\u3002\u53EF\u7528\u53D8\u91CF\uFF1A{{title}}\u3001{{status}}\u3001{{priority}}",placeholder:"{{title}}"},includeDescription:{name:"\u5728\u63CF\u8FF0\u4E2D\u5305\u542B\u4EFB\u52A1\u8BE6\u60C5",description:"\u5C06\u4EFB\u52A1\u5143\u6570\u636E\uFF08\u4F18\u5148\u7EA7\u3001\u72B6\u6001\u3001\u6807\u7B7E\u7B49\uFF09\u6DFB\u52A0\u5230\u4E8B\u4EF6\u63CF\u8FF0\u4E2D\u3002"},includeObsidianLink:{name:"\u5305\u542BObsidian\u94FE\u63A5",description:"\u5728\u4E8B\u4EF6\u63CF\u8FF0\u4E2D\u6DFB\u52A0\u8FD4\u56DEObsidian\u4E2D\u4EFB\u52A1\u7684\u94FE\u63A5\u3002"},defaultReminder:{name:"\u9ED8\u8BA4\u63D0\u9192",description:"\u4E3A\u5E26\u65F6\u95F4\u7684 Google Calendar \u4E8B\u4EF6\u6DFB\u52A0\u5F39\u51FA\u63D0\u9192\u3002\u8BF7\u8F93\u5165\u4E8B\u4EF6\u5F00\u59CB\u524D\u7684\u5206\u949F\u6570\uFF0C\u7528\u9017\u53F7\u5206\u9694\u3002\u7559\u7A7A\u5219\u4F7F\u7528\u65E5\u5386\u9ED8\u8BA4\u503C\u3002\u5E38\u7528\u503C\uFF1A15\u300130\u300160\u30011440\u3002"},automaticSyncBehavior:{header:"\u81EA\u52A8\u540C\u6B65\u884C\u4E3A"},syncOnCreate:{name:"\u521B\u5EFA\u4EFB\u52A1\u65F6\u540C\u6B65",description:"\u521B\u5EFA\u65B0\u4EFB\u52A1\u65F6\u81EA\u52A8\u521B\u5EFA\u65E5\u5386\u4E8B\u4EF6\u3002"},syncOnUpdate:{name:"\u66F4\u65B0\u4EFB\u52A1\u65F6\u540C\u6B65",description:"\u4FEE\u6539\u4EFB\u52A1\u65F6\u81EA\u52A8\u66F4\u65B0\u65E5\u5386\u4E8B\u4EF6\u3002"},syncOnComplete:{name:"\u5B8C\u6210\u4EFB\u52A1\u65F6\u540C\u6B65",description:"\u4EFB\u52A1\u5B8C\u6210\u65F6\u66F4\u65B0\u65E5\u5386\u4E8B\u4EF6\uFF08\u5728\u6807\u9898\u4E2D\u6DFB\u52A0\u52FE\u9009\u6807\u8BB0\uFF09\u3002"},syncOnDelete:{name:"\u5220\u9664\u4EFB\u52A1\u65F6\u5220\u9664\u4E8B\u4EF6",description:"\u5220\u9664\u76F8\u5E94\u4EFB\u52A1\u65F6\u5220\u9664\u65E5\u5386\u4E8B\u4EF6\u3002"},manualSyncActions:{header:"\u624B\u52A8\u540C\u6B65\u64CD\u4F5C"},syncAllTasks:{name:"\u540C\u6B65\u6240\u6709\u4EFB\u52A1",description:"\u5C06\u6240\u6709\u73B0\u6709\u4EFB\u52A1\u540C\u6B65\u5230Google\u65E5\u5386\u3002\u8FD9\u5C06\u4E3A\u5C1A\u672A\u540C\u6B65\u7684\u4EFB\u52A1\u521B\u5EFA\u4E8B\u4EF6\u3002",buttonText:"\u5168\u90E8\u540C\u6B65"},unlinkAllTasks:{name:"\u53D6\u6D88\u5173\u8054\u6240\u6709\u4EFB\u52A1",description:"\u5220\u9664\u6240\u6709\u4EFB\u52A1-\u4E8B\u4EF6\u5173\u8054\u800C\u4E0D\u5220\u9664\u65E5\u5386\u4E8B\u4EF6\u3002",buttonText:"\u5168\u90E8\u53D6\u6D88\u5173\u8054",confirmTitle:"\u53D6\u6D88\u5173\u8054\u6240\u6709\u4EFB\u52A1",confirmMessage:"\u8FD9\u5C06\u5220\u9664\u4EFB\u52A1\u548C\u65E5\u5386\u4E8B\u4EF6\u4E4B\u95F4\u7684\u6240\u6709\u5173\u8054\u3002\u65E5\u5386\u4E8B\u4EF6\u5C06\u4FDD\u7559\uFF0C\u4F46\u4EFB\u52A1\u66F4\u6539\u65F6\u4E0D\u518D\u66F4\u65B0\u3002\u786E\u5B9A\u5417\uFF1F",confirmButtonText:"\u5168\u90E8\u53D6\u6D88\u5173\u8054"},notices:{notEnabled:"Google\u65E5\u5386\u5BFC\u51FA\u672A\u542F\u7528\u3002\u8BF7\u5728\u8BBE\u7F6E > \u96C6\u6210\u4E2D\u914D\u7F6E\u3002",notEnabledOrConfigured:"Google\u65E5\u5386\u5BFC\u51FA\u672A\u542F\u7528\u6216\u672A\u914D\u7F6E",serviceNotAvailable:"\u4EFB\u52A1\u65E5\u5386\u540C\u6B65\u670D\u52A1\u4E0D\u53EF\u7528",syncResults:"\u5DF2\u540C\u6B65\uFF1A{synced}\uFF0C\u5931\u8D25\uFF1A{failed}\uFF0C\u8DF3\u8FC7\uFF1A{skipped}",taskSynced:"\u4EFB\u52A1\u5DF2\u540C\u6B65\u5230Google\u65E5\u5386",noActiveFile:"\u5F53\u524D\u6CA1\u6709\u6D3B\u52A8\u6587\u4EF6",notATask:"\u5F53\u524D\u6587\u4EF6\u4E0D\u662F\u4EFB\u52A1",noDateToSync:"\u4EFB\u52A1\u6CA1\u6709\u53EF\u540C\u6B65\u7684\u8BA1\u5212\u65E5\u671F\u6216\u622A\u6B62\u65E5\u671F",syncFailed:"\u540C\u6B65\u4EFB\u52A1\u5230Google\u65E5\u5386\u5931\u8D25\uFF1A{message}",connectionExpired:"Google \u65E5\u5386\u8FDE\u63A5\u5DF2\u8FC7\u671F\u3002\u8BF7\u5728\u201C\u8BBE\u7F6E > \u96C6\u6210\u201D\u4E2D\u91CD\u65B0\u8FDE\u63A5\u3002",syncingTasks:"\u6B63\u5728\u540C\u6B65{total}\u4E2A\u4EFB\u52A1\u5230Google\u65E5\u5386...",syncComplete:"\u540C\u6B65\u5B8C\u6210\uFF1A{synced}\u4E2A\u5DF2\u540C\u6B65\uFF0C{failed}\u4E2A\u5931\u8D25\uFF0C{skipped}\u4E2A\u8DF3\u8FC7",eventsDeletedAndUnlinked:"\u6240\u6709\u4E8B\u4EF6\u5DF2\u5220\u9664\u5E76\u53D6\u6D88\u5173\u8054",tasksUnlinked:"\u6240\u6709\u4EFB\u52A1\u5173\u8054\u5DF2\u5220\u9664"},eventDescription:{untitledTask:"\u65E0\u6807\u9898\u4EFB\u52A1",priority:"\u4F18\u5148\u7EA7\uFF1A{value}",status:"\u72B6\u6001\uFF1A{value}",due:"\u622A\u6B62\uFF1A{value}",scheduled:"\u8BA1\u5212\uFF1A{value}",timeEstimate:"\u65F6\u95F4\u4F30\u8BA1\uFF1A{value}",tags:"\u6807\u7B7E\uFF1A{value}",contexts:"\u4E0A\u4E0B\u6587\uFF1A{value}",projects:"\u9879\u76EE\uFF1A{value}",openInObsidian:"\u5728Obsidian\u4E2D\u6253\u5F00"}},httpApi:{header:"HTTP API",description:"\u542F\u7528HTTP API\u8FDB\u884C\u5916\u90E8\u96C6\u6210\u548C\u81EA\u52A8\u5316\u3002",enable:{name:"\u542F\u7528HTTP API",description:"\u542F\u52A8\u672C\u5730HTTP\u670D\u52A1\u5668\u8FDB\u884CAPI\u8BBF\u95EE"},port:{name:"API\u7AEF\u53E3",description:"HTTP API\u670D\u52A1\u5668\u7684\u7AEF\u53E3\u53F7",placeholder:"3000"},authToken:{name:"API\u8BA4\u8BC1\u4EE4\u724C",description:"API\u8BA4\u8BC1\u6240\u9700\u7684\u4EE4\u724C\uFF08\u7559\u7A7A\u8868\u793A\u65E0\u8BA4\u8BC1\uFF09",placeholder:"\u4F60\u7684\u79D8\u5BC6\u4EE4\u724C"},mcp:{enable:{name:"\u542F\u7528 MCP \u670D\u52A1\u5668",description:"\u901A\u8FC7 /mcp \u7AEF\u70B9\u4F7F\u7528 Model Context Protocol \u66B4\u9732 TaskNotes \u5DE5\u5177\u3002\u9700\u8981\u542F\u7528 HTTP API\u3002"}},endpoints:{header:"\u53EF\u7528API\u7AEF\u70B9",expandIcon:"\u25B6",collapseIcon:"\u25BC"}},webhooks:{header:"Webhooks",description:{overview:"Webhooks\u5728TaskNotes\u4E8B\u4EF6\u53D1\u751F\u65F6\u5411\u5916\u90E8\u670D\u52A1\u53D1\u9001\u5B9E\u65F6\u901A\u77E5\u3002",usage:"\u914D\u7F6Ewebhooks\u4EE5\u4E0E\u81EA\u52A8\u5316\u5DE5\u5177\u3001\u540C\u6B65\u670D\u52A1\u6216\u81EA\u5B9A\u4E49\u5E94\u7528\u7A0B\u5E8F\u96C6\u6210\u3002"},addWebhook:{name:"\u6DFB\u52A0Webhook",description:"\u6CE8\u518C\u65B0\u7684webhook\u7AEF\u70B9",buttonText:"\u6DFB\u52A0Webhook"},emptyState:{message:"\u672A\u914D\u7F6Ewebhooks\u3002\u6DFB\u52A0webhook\u4EE5\u63A5\u6536\u5B9E\u65F6\u901A\u77E5\u3002",buttonText:"\u6DFB\u52A0Webhook"},labels:{active:"\u6D3B\u52A8\uFF1A",url:"URL\uFF1A",events:"\u4E8B\u4EF6\uFF1A",transform:"\u8F6C\u6362\uFF1A"},placeholders:{url:"Webhook \u5730\u5740",noEventsSelected:"\u672A\u9009\u62E9\u4E8B\u4EF6",rawPayload:"\u539F\u59CB\u8F7D\u8377\uFF08\u65E0\u8F6C\u6362\uFF09"},statusLabels:{active:"\u6D3B\u52A8",inactive:"\u975E\u6D3B\u52A8",created:"\u521B\u5EFA\u4E8E{timeAgo}"},actions:{editEvents:"\u7F16\u8F91\u4E8B\u4EF6",delete:"\u5220\u9664"},editEvents:"\u7F16\u8F91\u4E8B\u4EF6",notices:{urlUpdated:"Webhook URL\u5DF2\u66F4\u65B0",enabled:"Webhook\u5DF2\u542F\u7528",disabled:"Webhook\u5DF2\u7981\u7528",created:"Webhook\u521B\u5EFA\u6210\u529F",deleted:"Webhook\u5DF2\u5220\u9664",updated:"Webhook\u5DF2\u66F4\u65B0"},confirmDelete:{title:"\u5220\u9664Webhook",message:`\u60A8\u786E\u5B9A\u8981\u5220\u9664\u6B64webhook\u5417\uFF1F
|
||
|
||
URL\uFF1A{url}
|
||
|
||
\u6B64\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500\u3002`,confirmText:"\u5220\u9664"},cardHeader:"Webhook",cardFields:{active:"\u6D3B\u52A8\uFF1A",url:"URL\uFF1A",events:"\u4E8B\u4EF6\uFF1A",transform:"\u8F6C\u6362\uFF1A"},eventsDisplay:{noEvents:"\u672A\u9009\u62E9\u4E8B\u4EF6"},transformDisplay:{noTransform:"\u539F\u59CB\u8F7D\u8377\uFF08\u65E0\u8F6C\u6362\uFF09"},secretModal:{title:"Webhook\u5BC6\u94A5\u5DF2\u751F\u6210",description:"\u60A8\u7684webhook\u5BC6\u94A5\u5DF2\u751F\u6210\u3002\u4FDD\u5B58\u6B64\u5BC6\u94A5\uFF0C\u56E0\u4E3A\u60A8\u65E0\u6CD5\u518D\u6B21\u67E5\u770B\u5B83\uFF1A",usage:"\u4F7F\u7528\u6B64\u5BC6\u94A5\u5728\u60A8\u7684\u63A5\u6536\u5E94\u7528\u7A0B\u5E8F\u4E2D\u9A8C\u8BC1webhook\u8F7D\u8377\u3002",gotIt:"\u77E5\u9053\u4E86"},editModal:{title:"\u7F16\u8F91Webhook",eventsHeader:"\u8981\u8BA2\u9605\u7684\u4E8B\u4EF6"},events:{taskCreated:{label:"\u4EFB\u52A1\u5DF2\u521B\u5EFA",description:"\u521B\u5EFA\u65B0\u4EFB\u52A1\u65F6"},taskUpdated:{label:"\u4EFB\u52A1\u5DF2\u66F4\u65B0",description:"\u4FEE\u6539\u4EFB\u52A1\u65F6"},taskCompleted:{label:"\u4EFB\u52A1\u5DF2\u5B8C\u6210",description:"\u6807\u8BB0\u4EFB\u52A1\u4E3A\u5B8C\u6210\u65F6"},taskDeleted:{label:"\u4EFB\u52A1\u5DF2\u5220\u9664",description:"\u5220\u9664\u4EFB\u52A1\u65F6"},taskArchived:{label:"\u4EFB\u52A1\u5DF2\u5F52\u6863",description:"\u5F52\u6863\u4EFB\u52A1\u65F6"},taskUnarchived:{label:"\u4EFB\u52A1\u5DF2\u53D6\u6D88\u5F52\u6863",description:"\u53D6\u6D88\u5F52\u6863\u4EFB\u52A1\u65F6"},timeStarted:{label:"\u65F6\u95F4\u5DF2\u5F00\u59CB",description:"\u5F00\u59CB\u65F6\u95F4\u8DDF\u8E2A\u65F6"},timeStopped:{label:"\u65F6\u95F4\u5DF2\u505C\u6B62",description:"\u505C\u6B62\u65F6\u95F4\u8DDF\u8E2A\u65F6"},pomodoroStarted:{label:"\u756A\u8304\u949F\u5DF2\u5F00\u59CB",description:"\u756A\u8304\u949F\u4F1A\u8BDD\u5F00\u59CB\u65F6"},pomodoroCompleted:{label:"\u756A\u8304\u949F\u5DF2\u5B8C\u6210",description:"\u756A\u8304\u949F\u4F1A\u8BDD\u5B8C\u6210\u65F6"},pomodoroInterrupted:{label:"\u756A\u8304\u949F\u5DF2\u4E2D\u65AD",description:"\u756A\u8304\u949F\u4F1A\u8BDD\u505C\u6B62\u65F6"},recurringCompleted:{label:"\u91CD\u590D\u5B9E\u4F8B\u5DF2\u5B8C\u6210",description:"\u91CD\u590D\u4EFB\u52A1\u5B9E\u4F8B\u5B8C\u6210\u65F6"},reminderTriggered:{label:"\u63D0\u9192\u5DF2\u89E6\u53D1",description:"\u4EFB\u52A1\u63D0\u9192\u6FC0\u6D3B\u65F6"}},modals:{secretGenerated:{title:"Webhook\u5BC6\u94A5\u5DF2\u751F\u6210",description:"\u60A8\u7684webhook\u5BC6\u94A5\u5DF2\u751F\u6210\u3002\u4FDD\u5B58\u6B64\u5BC6\u94A5\uFF0C\u56E0\u4E3A\u60A8\u65E0\u6CD5\u518D\u6B21\u67E5\u770B\u5B83\uFF1A",usage:"\u4F7F\u7528\u6B64\u5BC6\u94A5\u5728\u60A8\u7684\u63A5\u6536\u5E94\u7528\u7A0B\u5E8F\u4E2D\u9A8C\u8BC1webhook\u8F7D\u8377\u3002",buttonText:"\u77E5\u9053\u4E86"},edit:{title:"\u7F16\u8F91Webhook",eventsSection:"\u8981\u8BA2\u9605\u7684\u4E8B\u4EF6",transformSection:"\u8F6C\u6362\u914D\u7F6E\uFF08\u53EF\u9009\uFF09",headersSection:"\u6807\u5934\u914D\u7F6E",transformFile:{name:"\u8F6C\u6362\u6587\u4EF6",description:"\u5E93\u4E2D\u8F6C\u6362webhook\u8F7D\u8377\u7684.json\u6A21\u677F\u6587\u4EF6\u8DEF\u5F84",placeholder:"simple-template.json"},customHeaders:{name:"\u5305\u542B\u81EA\u5B9A\u4E49\u6807\u5934",description:"\u5305\u542BTaskNotes\u6807\u5934\uFF08\u4E8B\u4EF6\u7C7B\u578B\u3001\u7B7E\u540D\u3001\u4EA4\u4ED8ID\uFF09\u3002\u5BF9\u4E8EDiscord\u3001Slack\u548C\u5176\u4ED6\u5177\u6709\u4E25\u683CCORS\u7B56\u7565\u7684\u670D\u52A1\uFF0C\u8BF7\u5173\u95ED\u3002"},buttons:{cancel:"\u53D6\u6D88",save:"\u4FDD\u5B58\u66F4\u6539"},notices:{selectAtLeastOneEvent:"\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u4E8B\u4EF6"}},add:{title:"\u6DFB\u52A0Webhook",eventsSection:"\u8981\u8BA2\u9605\u7684\u4E8B\u4EF6",transformSection:"\u8F6C\u6362\u914D\u7F6E\uFF08\u53EF\u9009\uFF09",headersSection:"\u6807\u5934\u914D\u7F6E",url:{name:"Webhook \u5730\u5740",description:"\u5C06\u53D1\u9001webhook\u8F7D\u8377\u7684\u7AEF\u70B9",placeholder:"https://your-service.com/webhook"},transformFile:{name:"\u8F6C\u6362\u6587\u4EF6",description:"\u5E93\u4E2D\u8F6C\u6362webhook\u8F7D\u8377\u7684.json\u6A21\u677F\u6587\u4EF6\u8DEF\u5F84",placeholder:"simple-template.json"},customHeaders:{name:"\u5305\u542B\u81EA\u5B9A\u4E49\u6807\u5934",description:"\u5305\u542BTaskNotes\u6807\u5934\uFF08\u4E8B\u4EF6\u7C7B\u578B\u3001\u7B7E\u540D\u3001\u4EA4\u4ED8ID\uFF09\u3002\u5BF9\u4E8EDiscord\u3001Slack\u548C\u5176\u4ED6\u5177\u6709\u4E25\u683CCORS\u7B56\u7565\u7684\u670D\u52A1\uFF0C\u8BF7\u5173\u95ED\u3002"},transformHelp:{title:"JSON\u8F6C\u6362\u6A21\u677F\u5141\u8BB8\u60A8\u81EA\u5B9A\u4E49webhook\u8F7D\u8377\uFF1A",jsFiles:"",jsDescription:"",jsonFiles:".json\u6587\u4EF6\uFF1A",jsonDescription:" \u4F7F\u7528\u6A21\u677F",jsonVariable:"${data.task.title}",leaveEmpty:"\u7559\u7A7A\uFF1A",leaveEmptyDescription:" \u53D1\u9001\u539F\u59CB\u6570\u636E",example:"\u793A\u4F8B\uFF1A",exampleFile:"simple-template.json"},buttons:{cancel:"\u53D6\u6D88",add:"\u6DFB\u52A0Webhook"},notices:{urlRequired:"\u9700\u8981Webhook URL",selectAtLeastOneEvent:"\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u4E8B\u4EF6"}}}},otherIntegrations:{header:"\u5176\u4ED6\u63D2\u4EF6\u96C6\u6210",description:"\u914D\u7F6E\u4E0E\u5176\u4ED6Obsidian\u63D2\u4EF6\u7684\u96C6\u6210\u3002"},mdbaseSpec:{header:"mdbase\u7C7B\u578B\u5B9A\u4E49",learnMore:"\u4E86\u89E3\u66F4\u591A\u5173\u4E8E mdbase-spec \u7684\u4FE1\u606F",enable:{name:"\u751F\u6210 mdbase \u7C7B\u578B\u5B9A\u4E49",description:"\u968F\u7740\u8BBE\u7F6E\u53D8\u5316\uFF0C\u5728\u5E93\u6839\u76EE\u5F55\u751F\u6210\u5E76\u7EF4\u62A4 mdbase \u7C7B\u578B\u6587\u4EF6\uFF08mdbase.yaml \u548C _types/task.md\uFF09\u3002"}},timeFormats:{justNow:"\u521A\u521A",minutesAgo:"{minutes}\u5206\u949F{plural}\u524D",hoursAgo:"{hours}\u5C0F\u65F6{plural}\u524D",daysAgo:"{days}\u5929{plural}\u524D"}}},notices:{languageChanged:"\u8BED\u8A00\u5DF2\u66F4\u6539\u4E3A{language}\u3002",releaseAvailable:{message:"TaskNotes {version} \u53EF\u7528\u3002",action:"\u5728\u793E\u533A\u63D2\u4EF6\u4E2D\u6253\u5F00"},exportTasksFailed:"\u5BFC\u51FA\u4EFB\u52A1\u4E3AICS\u6587\u4EF6\u5931\u8D25",icsNoteCreatedSuccess:"\u7B14\u8BB0\u6210\u529F\u521B\u5EFA",icsCreationModalOpenFailed:"\u6253\u5F00\u521B\u5EFA\u6A21\u5F0F\u5931\u8D25",icsNoteLinkSuccess:'\u5173\u8054\u7684\u7B14\u8BB0 "{fileName}" to ICS event',icsTaskCreatedSuccess:"\u4EFB\u52A1\u5DF2\u521B\u5EFA\uFF1A{title}",icsRelatedItemsRefreshed:"\u76F8\u5173\u7B14\u8BB0\u5DF2\u5237\u65B0",icsFileNotFound:"\u6587\u4EF6\u672A\u627E\u5230\u6216\u65E0\u6548",icsFileOpenFailed:"\u6253\u5F00\u6587\u4EF6\u5931\u8D25",timeblockAttachmentExists:'"{fileName}" is already attached',timeblockAttachmentAdded:'\u5DF2\u6DFB\u52A0 "{fileName}" as attachment',timeblockAttachmentRemoved:'\u5DF2\u5220\u9664 "{fileName}" from attachments',timeblockFileTypeNotSupported:'\u65E0\u6CD5\u6253\u5F00 "{fileName}" - file type not supported',timeblockTitleRequired:"\u8BF7\u4E3A\u65F6\u95F4\u5757\u8F93\u5165\u6807\u9898",timeblockUpdatedSuccess:'\u65F6\u95F4\u5757 "{title}" updated successfully',timeblockUpdateFailed:"\u66F4\u65B0\u65F6\u95F4\u5757\u5931\u8D25\u3002\u68C0\u67E5\u63A7\u5236\u53F0\u4E86\u89E3\u8BE6\u60C5\u3002",timeblockDeletedSuccess:'\u65F6\u95F4\u5757 "{title}" deleted successfully',timeblockDeleteFailed:"\u5220\u9664\u65F6\u95F4\u5757\u5931\u8D25\u3002\u68C0\u67E5\u63A7\u5236\u53F0\u4E86\u89E3\u8BE6\u60C5\u3002",timeblockRequiredFieldsMissing:"\u8BF7\u586B\u5199\u6240\u6709\u5FC5\u586B\u5B57\u6BB5",agendaLoadingFailed:"\u52A0\u8F7D\u8BAE\u7A0B\u65F6\u51FA\u9519\u3002\u8BF7\u5C1D\u8BD5\u5237\u65B0\u3002",statsLoadingFailed:"\u52A0\u8F7D\u9879\u76EE\u8BE6\u60C5\u65F6\u51FA\u9519\u3002"},commands:{openCalendarView:"\u6253\u5F00\u8FF7\u4F60\u65E5\u5386\u89C6\u56FE",openAdvancedCalendarView:"\u6253\u5F00\u65E5\u5386\u89C6\u56FE",openTasksView:"\u6253\u5F00\u4EFB\u52A1\u89C6\u56FE",openNotesView:"\u6253\u5F00\u7B14\u8BB0\u89C6\u56FE",openAgendaView:"\u6253\u5F00\u8BAE\u7A0B\u89C6\u56FE",openPomodoroView:"\u6253\u5F00\u756A\u8304\u949F\u8BA1\u65F6\u5668",openKanbanView:"\u6253\u5F00\u770B\u677F",updateDefaultBaseFiles:"\u66F4\u65B0\u9ED8\u8BA4 Base \u6587\u4EF6",openPomodoroStats:"\u6253\u5F00\u756A\u8304\u949F\u7EDF\u8BA1",openStatisticsView:"\u6253\u5F00\u4EFB\u52A1\u548C\u9879\u76EE\u7EDF\u8BA1",createNewTask:"\u521B\u5EFA\u65B0\u4EFB\u52A1",convertCurrentNoteToTask:{name:"\u5C06\u5F53\u524D\u7B14\u8BB0\u8F6C\u6362\u4E3A\u4EFB\u52A1",noActiveFile:"\u6CA1\u6709\u53EF\u8F6C\u6362\u7684\u6D3B\u52A8\u6587\u4EF6",alreadyTask:"\u6B64\u7B14\u8BB0\u5DF2\u662F\u4EFB\u52A1",success:"\u5DF2\u5C06'{title}'\u8F6C\u6362\u4E3A\u4EFB\u52A1"},convertToTaskNote:"\u5C06\u590D\u9009\u6846\u4EFB\u52A1\u8F6C\u6362\u4E3ATaskNote",convertAllTasksInNote:"\u8F6C\u6362\u7B14\u8BB0\u4E2D\u7684\u6240\u6709\u4EFB\u52A1",insertTaskNoteLink:"\u63D2\u5165\u4EFB\u52A1\u7B14\u8BB0\u94FE\u63A5",createInlineTask:"\u521B\u5EFA\u65B0\u5185\u8054\u4EFB\u52A1",quickActionsCurrentTask:"\u5F53\u524D\u4EFB\u52A1\u7684\u5FEB\u901F\u64CD\u4F5C",goToTodayNote:"\u8F6C\u5230\u4ECA\u65E5\u7B14\u8BB0",startPomodoro:"\u5F00\u59CB\u756A\u8304\u949F\u8BA1\u65F6\u5668",stopPomodoro:"\u505C\u6B62\u756A\u8304\u949F\u8BA1\u65F6\u5668",pauseResumePomodoro:"\u6682\u505C/\u6062\u590D\u756A\u8304\u949F\u8BA1\u65F6\u5668",refreshCache:"\u5237\u65B0\u7F13\u5B58",exportAllTasksIcs:"\u5BFC\u51FA\u6240\u6709\u4EFB\u52A1\u4E3AICS\u6587\u4EF6",viewReleaseNotes:"\u67E5\u770B\u7248\u672C\u8BF4\u660E",startTimeTrackingWithSelector:"\u5F00\u59CB\u65F6\u95F4\u8DDF\u8E2A\uFF08\u9009\u62E9\u4EFB\u52A1\uFF09",editTimeEntries:"\u7F16\u8F91\u65F6\u95F4\u6761\u76EE\uFF08\u9009\u62E9\u4EFB\u52A1\uFF09",createOrOpenTask:"\u521B\u5EFA\u6216\u6253\u5F00\u4EFB\u52A1",createOrOpenTaskWithTracking:"\u521B\u5EFA\u6216\u6253\u5F00\u4EFB\u52A1\u5E76\u5F00\u59CB\u65F6\u95F4\u8DDF\u8E2A",rolloverOverdueScheduledTasks:"\u5C06\u903E\u671F\u7684\u8BA1\u5212\u4EFB\u52A1\u63A8\u8FDF\u5230\u4ECA\u5929",syncAllTasksGoogleCalendar:"\u540C\u6B65\u6240\u6709\u4EFB\u52A1\u5230Google\u65E5\u5386",syncCurrentTaskGoogleCalendar:"\u540C\u6B65\u5F53\u524D\u4EFB\u52A1\u5230Google\u65E5\u5386",quickActionsTaskUnderCursor:"\u5149\u6807\u4E0B\u4EFB\u52A1\u7684\u5FEB\u901F\u64CD\u4F5C",editCurrentTask:"\u7F16\u8F91\u5F53\u524D\u4EFB\u52A1",cycleCurrentTaskStatus:"\u5FAA\u73AF\u5F53\u524D\u4EFB\u52A1\u72B6\u6001",cycleCurrentTaskPriority:"\u5FAA\u73AF\u5F53\u524D\u4EFB\u52A1\u4F18\u5148\u7EA7",addProjectToCurrentTask:"\u5411\u5F53\u524D\u4EFB\u52A1\u6DFB\u52A0\u9879\u76EE",addSubtaskToCurrentNote:"\u5411\u5F53\u524D\u7B14\u8BB0\u6DFB\u52A0\u5B50\u4EFB\u52A1"},modals:{deviceCode:{title:"\u8C37\u6B4C\u65E5\u5386\u6388\u6743",instructions:{intro:"\u8981\u8FDE\u63A5\u60A8\u7684 Google \u65E5\u5386\uFF0C\u8BF7\u6309\u7167\u4EE5\u4E0B\u6B65\u9AA4\u64CD\u4F5C\uFF1A"},steps:{open:"\u6253\u5F00",inBrowser:"\u5728\u60A8\u7684\u6D4F\u89C8\u5668\u4E2D",enterCode:"\u5728\u63D0\u793A\u65F6\u8F93\u5165\u6B64\u4EE3\u7801\uFF1A",signIn:"\u4F7F\u7528\u60A8\u7684 Google \u5E10\u6237\u767B\u5F55\u5E76\u6388\u4E88\u8BBF\u95EE\u6743\u9650",returnToObsidian:"\u8FD4\u56DE Obsidian\uFF08\u6B64\u7A97\u53E3\u5C06\u81EA\u52A8\u5173\u95ED\uFF09"},codeLabel:"\u60A8\u7684\u4EE3\u7801\uFF1A",copyCodeAriaLabel:"\u590D\u5236\u4EE3\u7801",waitingForAuthorization:"\u7B49\u5F85\u6388\u6743\u4E2D...",openBrowserButton:"\u6253\u5F00\u6D4F\u89C8\u5668",cancelButton:"\u53D6\u6D88",expiresMinutesSeconds:"\u4EE3\u7801\u5728 {minutes}m {seconds}s \u540E\u8FC7\u671F",expiresSeconds:"\u4EE3\u7801\u5728 {seconds}s \u540E\u8FC7\u671F"},icsEventInfo:{calendarEventHeading:"\u65E5\u5386\u4E8B\u4EF6",titleLabel:"\u6807\u9898",calendarLabel:"\u65E5\u5386",dateTimeLabel:"\u65E5\u671F\u548C\u65F6\u95F4",locationLabel:"\u4F4D\u7F6E",descriptionLabel:"\u63CF\u8FF0",urlLabel:"\u7F51\u5740",relatedNotesHeading:"\u76F8\u5173\u7B14\u8BB0\u548C\u4EFB\u52A1",noRelatedItems:"\u672A\u627E\u5230\u4E0E\u6B64\u4E8B\u4EF6\u76F8\u5173\u7684\u7B14\u8BB0\u6216\u4EFB\u52A1\u3002",typeTask:"\u4EFB\u52A1",typeNote:"\u7B14\u8BB0",actionsHeading:"\u64CD\u4F5C",createFromEventLabel:"\u4ECE\u4E8B\u4EF6\u521B\u5EFA",createFromEventDesc:"\u4ECE\u6B64\u65E5\u5386\u4E8B\u4EF6\u521B\u5EFA\u65B0\u7684\u7B14\u8BB0\u6216\u4EFB\u52A1",linkExistingLabel:"\u94FE\u63A5\u73B0\u6709",linkExistingDesc:"\u5C06\u73B0\u6709\u7B14\u8BB0\u94FE\u63A5\u5230\u6B64\u65E5\u5386\u4E8B\u4EF6"},timeblockInfo:{editHeading:"\u7F16\u8F91\u65F6\u95F4\u5757",dateTimeLabel:"\u65E5\u671F\u548C\u65F6\u95F4\uFF1A",titleLabel:"\u6807\u9898",titleDesc:"\u65F6\u95F4\u5757\u7684\u6807\u9898",titlePlaceholder:"\u4F8B\u5982\uFF0C\u6DF1\u5EA6\u5DE5\u4F5C\u4F1A\u8BDD",descriptionLabel:"\u63CF\u8FF0",descriptionDesc:"\u65F6\u95F4\u5757\u7684\u53EF\u9009\u63CF\u8FF0",descriptionPlaceholder:"\u4E13\u6CE8\u4E8E\u65B0\u529F\u80FD\uFF0C\u65E0\u5E72\u6270",colorLabel:"\u989C\u8272",colorDesc:"\u65F6\u95F4\u5757\u7684\u53EF\u9009\u989C\u8272",colorPlaceholder:"#3b82f6",attachmentsLabel:"\u9644\u4EF6",attachmentsDesc:"\u4E0E\u6B64\u65F6\u95F4\u5757\u5173\u8054\u7684\u6587\u4EF6\u6216\u7B14\u8BB0",addAttachmentButton:"\u6DFB\u52A0\u9644\u4EF6",addAttachmentTooltip:"\u4F7F\u7528\u6A21\u7CCA\u641C\u7D22\u9009\u62E9\u6587\u4EF6\u6216\u7B14\u8BB0",deleteButton:"\u5220\u9664\u65F6\u95F4\u5757",saveButton:"\u4FDD\u5B58\u66F4\u6539",deleteConfirmationTitle:"\u5220\u9664\u65F6\u95F4\u5757"},timeblockCreation:{heading:"\u521B\u5EFA\u65F6\u95F4\u5757",dateLabel:"\u65E5\u671F\uFF1A",titleLabel:"\u6807\u9898",titleDesc:"\u65F6\u95F4\u5757\u7684\u6807\u9898",titlePlaceholder:"\u4F8B\u5982\uFF0C\u6DF1\u5EA6\u5DE5\u4F5C\u4F1A\u8BDD",startTimeLabel:"\u5F00\u59CB\u65F6\u95F4",startTimeDesc:"\u65F6\u95F4\u5757\u4F55\u65F6\u5F00\u59CB",startTimePlaceholder:"09:00",endTimeLabel:"\u7ED3\u675F\u65F6\u95F4",endTimeDesc:"\u65F6\u95F4\u5757\u4F55\u65F6\u7ED3\u675F",endTimePlaceholder:"11:00",descriptionLabel:"\u63CF\u8FF0",descriptionDesc:"\u65F6\u95F4\u5757\u7684\u53EF\u9009\u63CF\u8FF0",descriptionPlaceholder:"\u4E13\u6CE8\u4E8E\u65B0\u529F\u80FD\uFF0C\u65E0\u5E72\u6270",colorLabel:"\u989C\u8272",colorDesc:"\u65F6\u95F4\u5757\u7684\u53EF\u9009\u989C\u8272",colorPlaceholder:"#3b82f6",attachmentsLabel:"\u9644\u4EF6",attachmentsDesc:"\u8981\u4E0E\u6B64\u65F6\u95F4\u5757\u5173\u8054\u7684\u6587\u4EF6\u6216\u7B14\u8BB0",addAttachmentButton:"\u6DFB\u52A0\u9644\u4EF6",addAttachmentTooltip:"\u4F7F\u7528\u6A21\u7CCA\u641C\u7D22\u9009\u62E9\u6587\u4EF6\u6216\u7B14\u8BB0",createButton:"\u521B\u5EFA\u65F6\u95F4\u5757"},calendarEventCreation:{heading:"\u521B\u5EFA\u65E5\u5386\u4E8B\u4EF6",dateTimeLabel:"\u65E5\u671F\u548C\u65F6\u95F4\uFF1A",titleLabel:"\u6807\u9898",titleDesc:"\u65E5\u5386\u4E8B\u4EF6\u7684\u6807\u9898",titlePlaceholder:"\u4F8B\u5982\uFF1A\u56E2\u961F\u4F1A\u8BAE",calendarLabel:"\u65E5\u5386",calendarDesc:"\u5728\u54EA\u4E2A\u65E5\u5386\u4E2D\u521B\u5EFA\u4E8B\u4EF6",descriptionLabel:"\u63CF\u8FF0",descriptionDesc:"\u4E8B\u4EF6\u7684\u53EF\u9009\u63CF\u8FF0",descriptionPlaceholder:"\u6DFB\u52A0\u6B64\u4E8B\u4EF6\u7684\u8BE6\u7EC6\u4FE1\u606F...",locationLabel:"\u5730\u70B9",locationDesc:"\u4E8B\u4EF6\u7684\u53EF\u9009\u5730\u70B9",locationPlaceholder:"\u4F8B\u5982\uFF1A\u4F1A\u8BAE\u5BA4A",createButton:"\u521B\u5EFA\u4E8B\u4EF6",titleRequired:"\u4E8B\u4EF6\u6807\u9898\u4E3A\u5FC5\u586B\u9879",noCalendarSelected:"\u672A\u9009\u62E9\u65E5\u5386",success:'\u65E5\u5386\u4E8B\u4EF6 "{title}" \u5DF2\u521B\u5EFA',error:"\u521B\u5EFA\u65E5\u5386\u4E8B\u4EF6\u5931\u8D25\uFF1A{message}"},icsNoteCreation:{heading:"\u4ECE ICS \u4E8B\u4EF6\u521B\u5EFA",titleLabel:"\u6807\u9898",titleDesc:"\u65B0\u5185\u5BB9\u7684\u6807\u9898",folderLabel:"\u6587\u4EF6\u5939",folderDesc:"\u76EE\u6807\u6587\u4EF6\u5939\uFF08\u7559\u7A7A\u4EE5\u4F7F\u7528\u5E93\u6839\u76EE\u5F55\uFF09",folderPlaceholder:"\u6587\u4EF6\u5939/\u5B50\u6587\u4EF6\u5939",createButton:"\u521B\u5EFA",startLabel:"\u5F00\u59CB\uFF1A",endLabel:"\u7ED3\u675F\uFF1A",locationLabel:"\u4F4D\u7F6E\uFF1A",calendarLabel:"\u65E5\u5386\uFF1A",useTemplateLabel:"\u4F7F\u7528\u6A21\u677F",useTemplateDesc:"\u521B\u5EFA\u5185\u5BB9\u65F6\u5E94\u7528\u6A21\u677F",templatePathLabel:"\u6A21\u677F\u8DEF\u5F84",templatePathDesc:"\u6A21\u677F\u6587\u4EF6\u7684\u8DEF\u5F84",templatePathPlaceholder:"\u6A21\u677F/ics\u7B14\u8BB0\u6A21\u677F.md"},unscheduledTasksSelector:{title:"\u672A\u8BA1\u5212\u7684\u4EFB\u52A1",placeholder:"\u8F93\u5165\u4EE5\u641C\u7D22\u672A\u8BA1\u5212\u7684\u4EFB\u52A1...",instructions:{navigate:"\u5BFC\u822A",schedule:"\u5B89\u6392",dismiss:"\u5173\u95ED"}},migration:{title:"\u8FC1\u79FB\u5230\u65B0\u7684\u5FAA\u73AF\u7CFB\u7EDF",description:"TaskNotes \u73B0\u5728\u4F7F\u7528\u884C\u4E1A\u6807\u51C6\u7684 RRULE \u6A21\u5F0F\u8FDB\u884C\u5FAA\u73AF\uFF0C\u53EF\u4EE5\u521B\u5EFA\u66F4\u590D\u6742\u7684\u8BA1\u5212\u5E76\u4E0E\u5176\u4ED6\u5E94\u7528\u66F4\u597D\u5730\u517C\u5BB9\u3002",tasksFound:"\u68C0\u6D4B\u5230 {count} \u4E2A\u5177\u6709\u65E7\u5FAA\u73AF\u6A21\u5F0F\u7684\u4EFB\u52A1",noMigrationNeeded:"\u65E0\u4EFB\u52A1\u9700\u8981\u8FC1\u79FB",warnings:{title:"\u5728\u7EE7\u7EED\u4E4B\u524D\uFF1A",backup:"\u5728\u8FC1\u79FB\u524D\u5907\u4EFD\u60A8\u7684\u5E93",conversion:"\u65E7\u7684\u5FAA\u73AF\u6A21\u5F0F\u5C06\u88AB\u8F6C\u6362\u4E3A\u65B0\u683C\u5F0F",normalUsage:"\u60A8\u53EF\u4EE5\u5728\u8FC1\u79FB\u671F\u95F4\u7EE7\u7EED\u6B63\u5E38\u4F7F\u7528 TaskNotes",permanent:"\u6B64\u66F4\u6539\u662F\u6C38\u4E45\u7684\uFF0C\u65E0\u6CD5\u81EA\u52A8\u64A4\u9500"},benefits:{title:"\u65B0\u7CFB\u7EDF\u7684\u597D\u5904\uFF1A",powerfulPatterns:"\u590D\u6742\u7684\u5FAA\u73AF\u6A21\u5F0F\uFF08\u4F8B\u5982\uFF0C'\u6BCF\u7B2C\u4E8C\u4E2A\u661F\u671F\u4E8C'\uFF09",performance:"\u66F4\u597D\u7684\u5FAA\u73AF\u4EFB\u52A1\u6027\u80FD",compatibility:"\u4E0E\u5176\u4ED6\u5E94\u7528\u517C\u5BB9\u7684\u6807\u51C6\u5FAA\u73AF\u683C\u5F0F",nlp:"\u589E\u5F3A\u7684\u81EA\u7136\u8BED\u8A00\u5904\u7406\u652F\u6301"},progress:{title:"\u8FC1\u79FB\u8FDB\u5EA6",preparing:"\u51C6\u5907\u8FC1\u79FB\u4E2D...",completed:"\u8FC1\u79FB\u6210\u529F\u5B8C\u6210",failed:"\u8FC1\u79FB\u5931\u8D25"},buttons:{migrate:"\u5F00\u59CB\u8FC1\u79FB",completed:"\u5173\u95ED"},errors:{title:"\u8FC1\u79FB\u8FC7\u7A0B\u4E2D\u51FA\u73B0\u9519\u8BEF\uFF1A"},notices:{completedWithErrors:"\u8FC1\u79FB\u5B8C\u6210\u4F46\u6709\u4E00\u4E9B\u9519\u8BEF\u3002\u68C0\u67E5\u4E0A\u9762\u7684\u9519\u8BEF\u5217\u8868\u3002",success:"\u6240\u6709\u4EFB\u52A1\u5DF2\u6210\u529F\u8FC1\u79FB\uFF01",failed:"\u8FC1\u79FB\u5931\u8D25\u3002\u8BF7\u68C0\u67E5\u63A7\u5236\u53F0\u4E86\u89E3\u8BE6\u60C5\u3002"},prompt:{message:"TaskNotes \u68C0\u6D4B\u5230\u4F7F\u7528\u65E7\u5FAA\u73AF\u683C\u5F0F\u7684\u4EFB\u52A1\u3002\u60A8\u73B0\u5728\u60F3\u5C06\u5B83\u4EEC\u8FC1\u79FB\u5230\u65B0\u7CFB\u7EDF\u5417\uFF1F",migrateNow:"\u7ACB\u5373\u8FC1\u79FB",remindLater:"\u7A0D\u540E\u63D0\u9192\u6211"}},task:{titlePlaceholder:"\u9700\u8981\u505A\u4EC0\u4E48\uFF1F",titleLabel:"\u6807\u9898",titleDetailedPlaceholder:"\u4EFB\u52A1\u6807\u9898...",detailsLabel:"\u8BE6\u60C5",detailsPlaceholder:"\u6DFB\u52A0\u66F4\u591A\u8BE6\u60C5...",projectsLabel:"\u9879\u76EE",projectsAdd:"\u6DFB\u52A0\u9879\u76EE",projectsTooltip:"\u4F7F\u7528\u6A21\u7CCA\u641C\u7D22\u9009\u62E9\u9879\u76EE\u7B14\u8BB0",projectsRemoveTooltip:"\u79FB\u9664\u9879\u76EE",contextsLabel:"\u4E0A\u4E0B\u6587",contextsPlaceholder:"\u4E0A\u4E0B\u65871\uFF0C\u4E0A\u4E0B\u65872",tagsLabel:"\u6807\u7B7E",tagsPlaceholder:"\u6807\u7B7E1\uFF0C\u6807\u7B7E2",timeEstimateLabel:"\u65F6\u95F4\u4F30\u8BA1\uFF08\u5206\u949F\uFF09",timeEstimatePlaceholder:"30",unsavedChanges:{title:"\u672A\u4FDD\u5B58\u7684\u66F4\u6539",message:"\u60A8\u6709\u672A\u4FDD\u5B58\u7684\u66F4\u6539\u3002\u662F\u5426\u8981\u4FDD\u5B58\uFF1F",save:"\u4FDD\u5B58\u66F4\u6539",discard:"\u653E\u5F03\u66F4\u6539",cancel:"\u7EE7\u7EED\u7F16\u8F91"},dependencies:{blockedBy:"\u88AB\u963B\u585E",blocking:"\u963B\u585E\u4E2D",placeholder:"[[\u4EFB\u52A1\u7B14\u8BB0]]",addTaskButton:"\u6DFB\u52A0\u4EFB\u52A1",selectTaskTooltip:"\u4F7F\u7528\u6A21\u7CCA\u641C\u7D22\u9009\u62E9\u4EFB\u52A1\u7B14\u8BB0",removeTaskTooltip:"\u5220\u9664\u4EFB\u52A1"},organization:{projects:"\u9879\u76EE",subtasks:"\u5B50\u4EFB\u52A1",addToProject:"\u6DFB\u52A0\u5230\u9879\u76EE",addToProjectButton:"\u6DFB\u52A0\u5230\u9879\u76EE",addSubtasks:"\u6DFB\u52A0\u5B50\u4EFB\u52A1",addSubtasksButton:"\u6DFB\u52A0\u5B50\u4EFB\u52A1",addSubtasksTooltip:"\u9009\u62E9\u4EFB\u52A1\u5C06\u5176\u8BBE\u4E3A\u6B64\u4EFB\u52A1\u7684\u5B50\u4EFB\u52A1",removeSubtaskTooltip:"\u5220\u9664\u5B50\u4EFB\u52A1",notices:{noEligibleSubtasks:"\u6CA1\u6709\u53EF\u7528\u7684\u4EFB\u52A1\u53EF\u6307\u5B9A\u4E3A\u5B50\u4EFB\u52A1",subtaskSelectFailed:"\u65E0\u6CD5\u6253\u5F00\u5B50\u4EFB\u52A1\u9009\u62E9\u5668"}},customFieldsLabel:"\u81EA\u5B9A\u4E49\u5B57\u6BB5",actions:{due:"\u8BBE\u7F6E\u5230\u671F\u65E5\u671F",scheduled:"\u8BBE\u7F6E\u5B89\u6392\u65E5\u671F",status:"\u8BBE\u7F6E\u72B6\u6001",priority:"\u8BBE\u7F6E\u4F18\u5148\u7EA7",recurrence:"\u8BBE\u7F6E\u91CD\u590D",reminders:"\u8BBE\u7F6E\u63D0\u9192"},buttons:{openNote:"\u6253\u5F00\u7B14\u8BB0",save:"\u4FDD\u5B58"},tooltips:{dueValue:"\u5230\u671F\uFF1A{value}",scheduledValue:"\u5B89\u6392\uFF1A{value}",statusValue:"\u72B6\u6001\uFF1A{value}",priorityValue:"\u4F18\u5148\u7EA7\uFF1A{value}",recurrenceValue:"\u91CD\u590D\uFF1A{value}",remindersSingle:"\u8BBE\u7F6E\u4E861\u4E2A\u63D0\u9192",remindersPlural:"\u8BBE\u7F6E\u4E86{count}\u4E2A\u63D0\u9192"},dateMenu:{dueTitle:"\u8BBE\u7F6E\u5230\u671F\u65E5\u671F",scheduledTitle:"\u8BBE\u7F6E\u5B89\u6392\u65E5\u671F"},userFields:{textPlaceholder:"\u8F93\u5165{field}...",numberPlaceholder:"0",datePlaceholder:"YYYY-MM-DD",listPlaceholder:"\u9879\u76EE1\uFF0C\u9879\u76EE2\uFF0C\u9879\u76EE3",pickDate:"\u9009\u62E9{field}\u65E5\u671F"},recurrence:{daily:"\u6BCF\u65E5",weekly:"\u6BCF\u5468",everyTwoWeeks:"\u6BCF2\u5468",weekdays:"\u5DE5\u4F5C\u65E5",weeklyOn:"\u6BCF\u5468{days}",monthly:"\u6BCF\u6708",everyThreeMonths:"\u6BCF3\u4E2A\u6708",monthlyOnOrdinal:"\u6BCF\u6708{ordinal}",monthlyByWeekday:"\u6BCF\u6708\uFF08\u6309\u5DE5\u4F5C\u65E5\uFF09",yearly:"\u6BCF\u5E74",yearlyOn:"\u6BCF\u5E74{month}{day}",custom:"\u81EA\u5B9A\u4E49",countSuffix:"{count}\u6B21",untilSuffix:"\u76F4\u5230{date}",ordinal:"{number}{suffix}"}},taskSelector:{title:"\u9009\u62E9\u4EFB\u52A1",placeholder:"\u8F93\u5165\u4EE5\u641C\u7D22\u4EFB\u52A1...",instructions:{navigate:"\u5BFC\u822A",select:"\u9009\u62E9",dismiss:"\u53D6\u6D88"},notices:{noteNotFound:'\u627E\u4E0D\u5230\u7B14\u8BB0 "{name}"'},dueDate:{overdue:"\u622A\u6B62\u65E5\u671F\uFF1A{date}\uFF08\u903E\u671F\uFF09",today:"\u622A\u6B62\u65E5\u671F\uFF1A\u4ECA\u5929"}},taskSelectorWithCreate:{title:"\u521B\u5EFA\u6216\u6253\u5F00\u4EFB\u52A1",placeholder:"\u641C\u7D22\u4EFB\u52A1\u6216\u8F93\u5165\u4EE5\u521B\u5EFA\u65B0\u4EFB\u52A1...",instructions:{create:"\u521B\u5EFA\u65B0\u4EFB\u52A1"},footer:{createLabel:" \u521B\u5EFA\uFF1A"},notices:{emptyQuery:"\u8BF7\u8F93\u5165\u4EFB\u52A1\u63CF\u8FF0",invalidTitle:"\u65E0\u6CD5\u8BC6\u522B\u6709\u6548\u7684\u4EFB\u52A1\u6807\u9898"}},taskCreation:{title:"\u521B\u5EFA\u4EFB\u52A1",actions:{fillFromNaturalLanguage:"\u4ECE\u81EA\u7136\u8BED\u8A00\u586B\u5199\u8868\u5355",hideDetailedOptions:"\u9690\u85CF\u8BE6\u7EC6\u9009\u9879",showDetailedOptions:"\u663E\u793A\u8BE6\u7EC6\u9009\u9879"},nlPlaceholder:`\u660E\u5929\u4E0B\u53483\u70B9@\u5BB6\u4E70\u6742\u8D27 #\u5DEE\u4E8B
|
||
|
||
\u5728\u8FD9\u91CC\u6DFB\u52A0\u8BE6\u60C5...`,notices:{titleRequired:"\u8BF7\u8F93\u5165\u4EFB\u52A1\u6807\u9898",success:'\u4EFB\u52A1"{title}"\u521B\u5EFA\u6210\u529F',successShortened:'\u4EFB\u52A1"{title}"\u521B\u5EFA\u6210\u529F\uFF08\u56E0\u957F\u5EA6\u800C\u7F29\u77ED\u6587\u4EF6\u540D\uFF09',failure:"\u521B\u5EFA\u4EFB\u52A1\u5931\u8D25\uFF1A{message}",blockingUnresolved:"\u65E0\u6CD5\u89E3\u6790\uFF1A{entries}",openCreatedTaskFailure:"\u4EFB\u52A1\u5DF2\u521B\u5EFA\uFF0C\u4F46\u65E0\u6CD5\u6253\u5F00\u4EFB\u52A1\u7B14\u8BB0\u3002"}},taskEdit:{title:"\u7F16\u8F91\u4EFB\u52A1",sections:{completions:"\u5B8C\u6210",taskInfo:"\u4EFB\u52A1\u4FE1\u606F"},metadata:{totalTrackedTime:"\u603B\u8DDF\u8E2A\u65F6\u95F4\uFF1A",due:"\u622A\u6B62\uFF1A",scheduled:"\u8BA1\u5212\uFF1A",created:"\u521B\u5EFA\uFF1A",modified:"\u4FEE\u6539\uFF1A",file:"\u6587\u4EF6\uFF1A"},buttons:{archive:"\u5F52\u6863",unarchive:"\u53D6\u6D88\u5F52\u6863"},notices:{titleRequired:"\u8BF7\u8F93\u5165\u4EFB\u52A1\u6807\u9898",noChanges:"\u6CA1\u6709\u8981\u4FDD\u5B58\u7684\u66F4\u6539",updateSuccess:'\u4EFB\u52A1"{title}"\u66F4\u65B0\u6210\u529F',updateFailure:"\u66F4\u65B0\u4EFB\u52A1\u5931\u8D25\uFF1A{message}",dependenciesUpdateSuccess:"\u4F9D\u8D56\u5173\u7CFB\u5DF2\u66F4\u65B0",blockingUnresolved:"\u65E0\u6CD5\u89E3\u6790\uFF1A{entries}",fileMissing:"\u627E\u4E0D\u5230\u4EFB\u52A1\u6587\u4EF6\uFF1A{path}",openNoteFailure:"\u6253\u5F00\u4EFB\u52A1\u7B14\u8BB0\u5931\u8D25",archiveSuccess:"\u4EFB\u52A1{action}\u6210\u529F",archiveFailure:"\u5F52\u6863\u4EFB\u52A1\u5931\u8D25",deleteSuccess:"\u4EFB\u52A1\u201C{title}\u201D\u5DF2\u6210\u529F\u5220\u9664",deleteFailure:"\u5220\u9664\u4EFB\u52A1\u5931\u8D25\uFF1A{message}"},archiveAction:{archived:"\u5DF2\u5F52\u6863",unarchived:"\u5DF2\u53D6\u6D88\u5F52\u6863"},deleteConfirmation:{title:"\u5220\u9664\u4EFB\u52A1",message:"\u786E\u5B9A\u8981\u5220\u9664\u201C{title}\u201D\u5417\uFF1F\u8FD9\u4F1A\u5C06\u4EFB\u52A1\u7B14\u8BB0\u79FB\u5230 Obsidian \u56DE\u6536\u7AD9\u3002",confirm:"\u5220\u9664\u4EFB\u52A1"}},storageLocation:{title:{migrate:"\u8FC1\u79FB\u756A\u8304\u949F\u6570\u636E\uFF1F",switch:"\u5207\u6362\u5230\u65E5\u8BB0\u5B58\u50A8\uFF1F"},message:{migrate:"\u8FD9\u5C06\u628A\u73B0\u6709\u7684\u756A\u8304\u949F\u4F1A\u8BDD\u6570\u636E\u8FC1\u79FB\u5230\u65E5\u8BB0\u524D\u7F6E\u6570\u636E\u3002\u6570\u636E\u5C06\u6309\u65E5\u671F\u5206\u7EC4\u5E76\u5B58\u50A8\u5728\u6BCF\u4E2A\u65E5\u8BB0\u4E2D\u3002",switch:"\u756A\u8304\u949F\u4F1A\u8BDD\u6570\u636E\u5C06\u5B58\u50A8\u5728\u65E5\u8BB0\u524D\u7F6E\u6570\u636E\u4E2D\uFF0C\u800C\u4E0D\u662F\u63D2\u4EF6\u6570\u636E\u6587\u4EF6\u4E2D\u3002"},whatThisMeans:"\u8FD9\u610F\u5473\u7740\uFF1A",bullets:{dailyNotesRequired:"\u5FC5\u987B\u5728\u6838\u5FC3\u65E5\u8BB0\u63D2\u4EF6\u6216 Periodic Notes \u4E2D\u542F\u7528\u65E5\u8BB0",storedInNotes:"\u6570\u636E\u5C06\u5B58\u50A8\u5728\u60A8\u7684\u65E5\u8BB0\u524D\u7F6E\u6570\u636E\u4E2D",migrateData:"\u73B0\u6709\u63D2\u4EF6\u6570\u636E\u5C06\u8FC1\u79FB\u7136\u540E\u6E05\u9664",futureSessions:"\u672A\u6765\u7684\u4F1A\u8BDD\u5C06\u4FDD\u5B58\u5230\u65E5\u8BB0",dataLongevity:"\u8FD9\u63D0\u4F9B\u4E86\u4E0E\u60A8\u7684\u7B14\u8BB0\u66F4\u597D\u7684\u6570\u636E\u6301\u4E45\u6027"},finalNote:{migrate:"\u26A0\uFE0F \u5982\u679C\u9700\u8981\uFF0C\u8BF7\u786E\u4FDD\u60A8\u6709\u5907\u4EFD\u3002\u6B64\u66F4\u6539\u65E0\u6CD5\u81EA\u52A8\u64A4\u9500\u3002",switch:"\u60A8\u53EF\u4EE5\u968F\u65F6\u5728\u5C06\u6765\u5207\u6362\u56DE\u63D2\u4EF6\u5B58\u50A8\u3002"},buttons:{migrate:"\u8FC1\u79FB\u6570\u636E",switch:"\u5207\u6362\u5B58\u50A8"}},dueDate:{title:"\u8BBE\u7F6E\u5230\u671F\u65E5\u671F",taskLabel:"\u4EFB\u52A1\uFF1A{title}",sections:{dateTime:"\u5230\u671F\u65E5\u671F\u548C\u65F6\u95F4",quickOptions:"\u5FEB\u901F\u9009\u9879"},descriptions:{dateTime:"\u8BBE\u7F6E\u6B64\u4EFB\u52A1\u5E94\u4F55\u65F6\u5B8C\u6210"},inputs:{date:{ariaLabel:"\u4EFB\u52A1\u5230\u671F\u65E5\u671F",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"\u4EFB\u52A1\u5230\u671F\u65F6\u95F4\uFF08\u53EF\u9009\uFF09",placeholder:"HH:MM"}},quickOptions:{today:"\u4ECA\u5929",todayAriaLabel:"\u5C06\u5230\u671F\u65E5\u671F\u8BBE\u4E3A\u4ECA\u5929",tomorrow:"\u660E\u5929",tomorrowAriaLabel:"\u5C06\u5230\u671F\u65E5\u671F\u8BBE\u4E3A\u660E\u5929",nextWeek:"\u4E0B\u5468",nextWeekAriaLabel:"\u5C06\u5230\u671F\u65E5\u671F\u8BBE\u4E3A\u4E0B\u5468",now:"\u73B0\u5728",nowAriaLabel:"\u5C06\u5230\u671F\u65E5\u671F\u548C\u65F6\u95F4\u8BBE\u4E3A\u73B0\u5728",clear:"\u6E05\u9664",clearAriaLabel:"\u6E05\u9664\u5230\u671F\u65E5\u671F"},errors:{invalidDateTime:"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u65E5\u671F\u548C\u65F6\u95F4\u683C\u5F0F",updateFailed:"\u66F4\u65B0\u5230\u671F\u65E5\u671F\u5931\u8D25\u3002\u8BF7\u91CD\u8BD5\u3002"}},scheduledDate:{title:"\u8BBE\u7F6E\u5B89\u6392\u65E5\u671F",taskLabel:"\u4EFB\u52A1\uFF1A{title}",sections:{dateTime:"\u5B89\u6392\u65E5\u671F\u548C\u65F6\u95F4",quickOptions:"\u5FEB\u901F\u9009\u9879"},descriptions:{dateTime:"\u8BBE\u7F6E\u60A8\u8BA1\u5212\u4F55\u65F6\u5904\u7406\u6B64\u4EFB\u52A1"},inputs:{date:{ariaLabel:"\u4EFB\u52A1\u5B89\u6392\u65E5\u671F",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"\u4EFB\u52A1\u5B89\u6392\u65F6\u95F4\uFF08\u53EF\u9009\uFF09",placeholder:"HH:MM"}},quickOptions:{today:"\u4ECA\u5929",todayAriaLabel:"\u5C06\u5B89\u6392\u65E5\u671F\u8BBE\u4E3A\u4ECA\u5929",tomorrow:"\u660E\u5929",tomorrowAriaLabel:"\u5C06\u5B89\u6392\u65E5\u671F\u8BBE\u4E3A\u660E\u5929",nextWeek:"\u4E0B\u5468",nextWeekAriaLabel:"\u5C06\u5B89\u6392\u65E5\u671F\u8BBE\u4E3A\u4E0B\u5468",now:"\u73B0\u5728",nowAriaLabel:"\u5C06\u5B89\u6392\u65E5\u671F\u548C\u65F6\u95F4\u8BBE\u4E3A\u73B0\u5728",clear:"\u6E05\u9664",clearAriaLabel:"\u6E05\u9664\u5B89\u6392\u65E5\u671F"},errors:{invalidDateTime:"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u65E5\u671F\u548C\u65F6\u95F4\u683C\u5F0F",updateFailed:"\u66F4\u65B0\u5B89\u6392\u65E5\u671F\u5931\u8D25\u3002\u8BF7\u91CD\u8BD5\u3002"}},timeEntryEditor:{title:"\u65F6\u95F4\u6761\u76EE - {taskTitle}",addEntry:"\u6DFB\u52A0\u65F6\u95F4\u6761\u76EE",noEntries:"\u6682\u65E0\u65F6\u95F4\u6761\u76EE",deleteEntry:"\u5220\u9664\u6761\u76EE",startTime:"\u5F00\u59CB\u65F6\u95F4",endTime:"\u7ED3\u675F\u65F6\u95F4\uFF08\u5982\u4ECD\u5728\u8FDB\u884C\u5219\u7559\u7A7A\uFF09",duration:"\u6301\u7EED\u65F6\u95F4\uFF08\u5206\u949F\uFF09",durationDesc:"\u8986\u76D6\u8BA1\u7B97\u7684\u6301\u7EED\u65F6\u95F4",durationPlaceholder:"\u8F93\u5165\u6301\u7EED\u65F6\u95F4\uFF08\u5206\u949F\uFF09",description:"\u63CF\u8FF0",descriptionPlaceholder:"\u4F60\u5728\u505A\u4EC0\u4E48\uFF1F",calculatedDuration:"\u8BA1\u7B97\u7ED3\u679C\uFF1A{minutes} \u5206\u949F",totalTime:"\u603B\u8BA1 {hours}\u5C0F\u65F6 {minutes}\u5206\u949F",totalMinutes:"\u603B\u8BA1 {minutes}\u5206\u949F",saved:"\u65F6\u95F4\u6761\u76EE\u5DF2\u4FDD\u5B58",saveFailed:"\u65E0\u6CD5\u4FDD\u5B58\u65F6\u95F4\u6761\u76EE",openFailed:"\u65E0\u6CD5\u6253\u5F00\u65F6\u95F4\u6761\u76EE\u7F16\u8F91\u5668",noTasksWithEntries:"\u6CA1\u6709\u4EFB\u52A1\u6709\u65F6\u95F4\u6761\u76EE\u53EF\u4F9B\u7F16\u8F91",validation:{missingStartTime:"\u9700\u8981\u5F00\u59CB\u65F6\u95F4",endBeforeStart:"\u7ED3\u675F\u65F6\u95F4\u5FC5\u987B\u5728\u5F00\u59CB\u65F6\u95F4\u4E4B\u540E"}},timeTracking:{noTasksAvailable:"\u6CA1\u6709\u53EF\u7528\u7684\u4EFB\u52A1\u8FDB\u884C\u65F6\u95F4\u8DDF\u8E2A",started:"\u5F00\u59CB\u8DDF\u8E2A\u65F6\u95F4\uFF1A{taskTitle}",startFailed:"\u65E0\u6CD5\u5F00\u59CB\u65F6\u95F4\u8DDF\u8E2A"},timeEntry:{mustHaveSpecificTime:"\u65F6\u95F4\u6761\u76EE\u5FC5\u987B\u6709\u5177\u4F53\u65F6\u95F4\u3002\u8BF7\u5728\u5468\u89C6\u56FE\u6216\u65E5\u89C6\u56FE\u4E2D\u9009\u62E9\u65F6\u95F4\u8303\u56F4\u3002",noTasksAvailable:"\u6CA1\u6709\u53EF\u7528\u7684\u4EFB\u52A1\u521B\u5EFA\u65F6\u95F4\u6761\u76EE",created:"\u5DF2\u4E3A {taskTitle} \u521B\u5EFA\u65F6\u95F4\u6761\u76EE\uFF08{duration} \u5206\u949F\uFF09",createFailed:"\u65E0\u6CD5\u521B\u5EFA\u65F6\u95F4\u6761\u76EE"}},contextMenus:{task:{status:"\u72B6\u6001",statusSelected:"\u2713 {label}",priority:"\u4F18\u5148\u7EA7",prioritySelected:"\u2713 {label}",dueDate:"\u5230\u671F\u65E5\u671F",scheduledDate:"\u5B89\u6392\u65E5\u671F",customDates:"\u81EA\u5B9A\u4E49\u65E5\u671F",reminders:"\u63D0\u9192",remindBeforeDue:"\u5230\u671F\u524D\u63D0\u9192...",remindBeforeScheduled:"\u5B89\u6392\u524D\u63D0\u9192...",manageReminders:"\u7BA1\u7406\u6240\u6709\u63D0\u9192...",clearReminders:"\u6E05\u9664\u6240\u6709\u63D0\u9192",startTimeTracking:"\u5F00\u59CB\u65F6\u95F4\u8DDF\u8E2A",stopTimeTracking:"\u505C\u6B62\u65F6\u95F4\u8DDF\u8E2A",editTimeEntries:"\u7F16\u8F91\u65F6\u95F4\u6761\u76EE",archive:"\u5F52\u6863",unarchive:"\u53D6\u6D88\u5F52\u6863",openNote:"\u6253\u5F00\u7B14\u8BB0",openNoteInNewTab:"\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00\u7B14\u8BB0",copyTitle:"\u590D\u5236\u4EFB\u52A1\u6807\u9898",quickActions:"\u5FEB\u901F\u64CD\u4F5C",noteActions:"\u7B14\u8BB0\u64CD\u4F5C",rename:"\u91CD\u547D\u540D",renameTitle:"\u91CD\u547D\u540D\u6587\u4EF6",renamePlaceholder:"\u8F93\u5165\u65B0\u540D\u79F0",delete:"\u5220\u9664",deleteTitle:"\u5220\u9664\u6587\u4EF6",deleteMessage:'\u60A8\u786E\u5B9A\u8981\u5220\u9664"{name}"\u5417\uFF1F',deleteConfirm:"\u5220\u9664",copyPath:"\u590D\u5236\u8DEF\u5F84",copyUrl:"\u590D\u5236Obsidian URL",showInExplorer:"\u5728\u6587\u4EF6\u6D4F\u89C8\u5668\u4E2D\u663E\u793A",addToCalendar:"\u6DFB\u52A0\u5230\u65E5\u5386",calendar:{google:"Google\u65E5\u5386",outlook:"Outlook\u65E5\u5386",yahoo:"Yahoo\u65E5\u5386",downloadIcs:"\u4E0B\u8F7D.ics\u6587\u4EF6",syncToGoogle:"\u540C\u6B65\u5230Google\u65E5\u5386",syncToGoogleNotConfigured:"Google\u65E5\u5386\u540C\u6B65\u672A\u914D\u7F6E",syncToGoogleSuccess:"\u4EFB\u52A1\u5DF2\u540C\u6B65\u5230Google\u65E5\u5386",syncToGoogleFailed:"\u540C\u6B65\u5230Google\u65E5\u5386\u5931\u8D25"},recurrence:"\u91CD\u590D",clearRecurrence:"\u6E05\u9664\u91CD\u590D",customRecurrence:"\u81EA\u5B9A\u4E49\u91CD\u590D...",createSubtask:"\u521B\u5EFA\u5B50\u4EFB\u52A1",dependencies:{title:"\u4F9D\u8D56\u5173\u7CFB",addBlockedBy:'\u6DFB\u52A0"\u88AB\u963B\u585E"\u2026',addBlockedByTitle:"\u6DFB\u52A0\u6B64\u4EFB\u52A1\u4F9D\u8D56\u7684\u4EFB\u52A1",addBlocking:'\u6DFB\u52A0"\u963B\u585E\u4E2D"\u2026',addBlockingTitle:"\u6DFB\u52A0\u6B64\u4EFB\u52A1\u963B\u585E\u7684\u4EFB\u52A1",removeBlockedBy:'\u5220\u9664"\u88AB\u963B\u585E"\u2026',removeBlocking:'\u5220\u9664"\u963B\u585E\u4E2D"\u2026',unknownDependency:"\u672A\u77E5",inputPlaceholder:"[[\u4EFB\u52A1\u7B14\u8BB0]]",notices:{noEntries:"\u8BF7\u81F3\u5C11\u8F93\u5165\u4E00\u4E2A\u4EFB\u52A1",blockedByAdded:"\u5DF2\u6DFB\u52A0 {count} \u4E2A\u4F9D\u8D56\u5173\u7CFB",blockedByRemoved:"\u5DF2\u5220\u9664\u4F9D\u8D56\u5173\u7CFB",blockingAdded:"\u5DF2\u6DFB\u52A0 {count} \u4E2A\u88AB\u4F9D\u8D56\u7684\u4EFB\u52A1",blockingRemoved:"\u5DF2\u5220\u9664\u88AB\u4F9D\u8D56\u7684\u4EFB\u52A1",unresolved:"\u65E0\u6CD5\u89E3\u6790\uFF1A{entries}",noEligibleTasks:"\u6CA1\u6709\u5339\u914D\u7684\u53EF\u7528\u4EFB\u52A1",updateFailed:"\u65E0\u6CD5\u66F4\u65B0\u4F9D\u8D56\u5173\u7CFB"}},organization:{title:"\u7EC4\u7EC7",projects:"\u9879\u76EE",addToProject:"\u6DFB\u52A0\u5230\u9879\u76EE\u2026",subtasks:"\u5B50\u4EFB\u52A1",addSubtasks:"\u6DFB\u52A0\u5B50\u4EFB\u52A1\u2026",notices:{alreadyInProject:"\u4EFB\u52A1\u5DF2\u5728\u6B64\u9879\u76EE\u4E2D",alreadySubtask:"\u4EFB\u52A1\u5DF2\u662F\u6B64\u4EFB\u52A1\u7684\u5B50\u4EFB\u52A1",addedToProject:"\u5DF2\u6DFB\u52A0\u5230\u9879\u76EE\uFF1A{project}",addedAsSubtask:"\u5DF2\u5C06 {subtask} \u6DFB\u52A0\u4E3A {parent} \u7684\u5B50\u4EFB\u52A1",addToProjectFailed:"\u65E0\u6CD5\u5C06\u4EFB\u52A1\u6DFB\u52A0\u5230\u9879\u76EE",addAsSubtaskFailed:"\u65E0\u6CD5\u5C06\u4EFB\u52A1\u6DFB\u52A0\u4E3A\u5B50\u4EFB\u52A1",projectSelectFailed:"\u65E0\u6CD5\u6253\u5F00\u9879\u76EE\u9009\u62E9\u5668",subtaskSelectFailed:"\u65E0\u6CD5\u6253\u5F00\u5B50\u4EFB\u52A1\u9009\u62E9\u5668",noEligibleSubtasks:"\u6CA1\u6709\u53EF\u7528\u7684\u4EFB\u52A1\u53EF\u6307\u5B9A\u4E3A\u5B50\u4EFB\u52A1",currentTaskNotFound:"\u627E\u4E0D\u5230\u5F53\u524D\u4EFB\u52A1\u6587\u4EF6",updateContextsFailed:"\u66F4\u65B0\u4E0A\u4E0B\u6587\u5931\u8D25"},contexts:"\u4E0A\u4E0B\u6587",addContext:"\u6DFB\u52A0\u4E0A\u4E0B\u6587\u2026",contextPlaceholder:"\u4E0A\u4E0B\u6587",contextSelected:"\u2713 {context}",clearContexts:"\u6E05\u9664\u4E0A\u4E0B\u6587"},subtasks:{loading:"\u6B63\u5728\u52A0\u8F7D\u5B50\u4EFB\u52A1...",noSubtasks:"\u672A\u627E\u5230\u5B50\u4EFB\u52A1",loadFailed:"\u52A0\u8F7D\u5B50\u4EFB\u52A1\u5931\u8D25"},markComplete:"\u6807\u8BB0\u6B64\u65E5\u671F\u5B8C\u6210",markIncomplete:"\u6807\u8BB0\u6B64\u65E5\u671F\u672A\u5B8C\u6210",skipInstance:"\u8DF3\u8FC7\u5B9E\u4F8B",unskipInstance:"\u53D6\u6D88\u8DF3\u8FC7\u5B9E\u4F8B",quickReminders:{atTime:"\u5728\u4E8B\u4EF6\u65F6\u95F4",fiveMinutes:"\u63D0\u524D5\u5206\u949F",fifteenMinutes:"\u63D0\u524D15\u5206\u949F",oneHour:"\u63D0\u524D1\u5C0F\u65F6",oneDay:"\u63D0\u524D1\u5929"},notices:{toggleCompletionFailure:"\u5207\u6362\u91CD\u590D\u4EFB\u52A1\u5B8C\u6210\u5931\u8D25\uFF1A{message}",toggleSkipFailure:"\u5207\u6362\u91CD\u590D\u4EFB\u52A1\u8DF3\u8FC7\u5931\u8D25\uFF1A{message}",updateDueDateFailure:"\u66F4\u65B0\u4EFB\u52A1\u5230\u671F\u65E5\u671F\u5931\u8D25\uFF1A{message}",updateScheduledFailure:"\u66F4\u65B0\u4EFB\u52A1\u5B89\u6392\u65E5\u671F\u5931\u8D25\uFF1A{message}",updateCustomDateFailure:"\u66F4\u65B0 {field} \u5931\u8D25\uFF1A{message}",updateRemindersFailure:"\u66F4\u65B0\u63D0\u9192\u5931\u8D25",clearRemindersFailure:"\u6E05\u9664\u63D0\u9192\u5931\u8D25",addReminderFailure:"\u6DFB\u52A0\u63D0\u9192\u5931\u8D25",archiveFailure:"\u5207\u6362\u4EFB\u52A1\u5F52\u6863\u5931\u8D25\uFF1A{message}",copyTitleSuccess:"\u4EFB\u52A1\u6807\u9898\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",copyFailure:"\u590D\u5236\u5230\u526A\u8D34\u677F\u5931\u8D25",renameSuccess:'\u91CD\u547D\u540D\u4E3A"{name}"',renameFailure:"\u91CD\u547D\u540D\u6587\u4EF6\u5931\u8D25",copyPathSuccess:"\u6587\u4EF6\u8DEF\u5F84\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",copyUrlSuccess:"Obsidian URL\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",updateRecurrenceFailure:"\u66F4\u65B0\u4EFB\u52A1\u91CD\u590D\u5931\u8D25\uFF1A{message}",updateTagsFailed:"\u66F4\u65B0\u6807\u7B7E\u5931\u8D25"},tags:"\u6807\u7B7E",addTag:"\u6DFB\u52A0\u6807\u7B7E\u2026",removeTag:"\u79FB\u9664 {tag}",removeTagInput:"\u79FB\u9664\u6807\u7B7E\u2026",tagPlaceholder:"\u6807\u7B7E\u6216 #\u6807\u7B7E",clearTags:"\u6E05\u9664\u6807\u7B7E"},priority:{clearPriority:"\u6E05\u9664\u4F18\u5148\u7EA7"},ics:{showDetails:"\u663E\u793A\u8BE6\u60C5",createTask:"\u4ECE\u4E8B\u4EF6\u521B\u5EFA\u4EFB\u52A1",createNote:"\u4ECE\u4E8B\u4EF6\u521B\u5EFA\u7B14\u8BB0",linkNote:"\u94FE\u63A5\u73B0\u6709\u7B14\u8BB0",copyTitle:"\u590D\u5236\u6807\u9898",copyLocation:"\u590D\u5236\u4F4D\u7F6E",copyUrl:"\u590D\u5236URL",copyMarkdown:"\u590D\u5236\u4E3Amarkdown",subscriptionUnknown:"\u672A\u77E5\u65E5\u5386",notices:{copyTitleSuccess:"\u4E8B\u4EF6\u6807\u9898\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",copyLocationSuccess:"\u4F4D\u7F6E\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",copyUrlSuccess:"\u4E8B\u4EF6URL\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",copyMarkdownSuccess:"\u4E8B\u4EF6\u8BE6\u60C5\u5DF2\u590D\u5236\u4E3Amarkdown",copyFailure:"\u590D\u5236\u5230\u526A\u8D34\u677F\u5931\u8D25",taskCreated:"\u4EFB\u52A1\u5DF2\u521B\u5EFA\uFF1A{title}",taskCreateFailure:"\u4ECE\u4E8B\u4EF6\u521B\u5EFA\u4EFB\u52A1\u5931\u8D25",noteCreated:"\u7B14\u8BB0\u521B\u5EFA\u6210\u529F",creationFailure:"\u6253\u5F00\u521B\u5EFA\u6A21\u6001\u6846\u5931\u8D25",linkSuccess:'\u5DF2\u5C06\u7B14\u8BB0"{name}"\u94FE\u63A5\u5230\u4E8B\u4EF6',linkFailure:"\u94FE\u63A5\u7B14\u8BB0\u5931\u8D25",linkSelectionFailure:"\u6253\u5F00\u7B14\u8BB0\u9009\u62E9\u5931\u8D25"},markdown:{titleFallback:"\u65E0\u6807\u9898\u4E8B\u4EF6",calendar:"**\u65E5\u5386\uFF1A** {value}",date:"**\u65E5\u671F\u548C\u65F6\u95F4\uFF1A** {value}",location:"**\u4F4D\u7F6E\uFF1A** {value}",descriptionHeading:"### \u63CF\u8FF0",url:"**URL\uFF1A** {value}",at:" \u5728{time}"}},date:{increment:{plusOneDay:"+1\u5929",minusOneDay:"-1\u5929",plusOneWeek:"+1\u5468",minusOneWeek:"-1\u5468"},basic:{today:"\u4ECA\u5929",tomorrow:"\u660E\u5929",thisWeekend:"\u672C\u5468\u672B",nextWeek:"\u4E0B\u5468",nextMonth:"\u4E0B\u4E2A\u6708"},weekdaysLabel:"\u5DE5\u4F5C\u65E5",selected:"\u2713 {label}",pickDateTime:"\u9009\u62E9\u65E5\u671F\u548C\u65F6\u95F4...",clearDate:"\u6E05\u9664\u65E5\u671F",modal:{title:"\u8BBE\u7F6E\u65E5\u671F\u548C\u65F6\u95F4",dateLabel:"\u65E5\u671F",timeLabel:"\u65F6\u95F4\uFF08\u53EF\u9009\uFF09",select:"\u9009\u62E9"}}},services:{pomodoro:{notices:{alreadyRunning:"\u756A\u8304\u949F\u5DF2\u7ECF\u5728\u8FD0\u884C",resumeCurrentSession:"\u6062\u590D\u5F53\u524D\u4F1A\u8BDD\u800C\u4E0D\u662F\u5F00\u59CB\u65B0\u7684",timerAlreadyRunning:"\u8BA1\u65F6\u5668\u5DF2\u7ECF\u5728\u8FD0\u884C",resumeSessionInstead:"\u6062\u590D\u5F53\u524D\u4F1A\u8BDD\u800C\u4E0D\u662F\u5F00\u59CB\u65B0\u7684",shortBreakStarted:"\u77ED\u4F11\u606F\u5DF2\u5F00\u59CB",longBreakStarted:"\u957F\u4F11\u606F\u5DF2\u5F00\u59CB",paused:"\u756A\u8304\u949F\u5DF2\u6682\u505C",resumed:"\u756A\u8304\u949F\u5DF2\u6062\u590D",stoppedAndReset:"\u756A\u8304\u949F\u5DF2\u505C\u6B62\u5E76\u91CD\u7F6E",migrationSuccess:"\u6210\u529F\u5C06{count}\u4E2A\u756A\u8304\u949F\u4F1A\u8BDD\u8FC1\u79FB\u5230\u65E5\u8BB0\u3002",migrationFailure:"\u8FC1\u79FB\u756A\u8304\u949F\u6570\u636E\u5931\u8D25\u3002\u8BF7\u91CD\u8BD5\u6216\u68C0\u67E5\u63A7\u5236\u53F0\u83B7\u53D6\u8BE6\u7EC6\u4FE1\u606F\u3002"}},icsSubscription:{notices:{calendarNotFound:'\u627E\u4E0D\u5230\u65E5\u5386"{name}"\uFF08404\uFF09\u3002\u8BF7\u68C0\u67E5ICS URL\u662F\u5426\u6B63\u786E\u4E14\u65E5\u5386\u53EF\u516C\u5F00\u8BBF\u95EE\u3002',calendarAccessDenied:'\u65E5\u5386"{name}"\u8BBF\u95EE\u88AB\u62D2\u7EDD\uFF08500\uFF09\u3002\u8FD9\u53EF\u80FD\u662F\u7531\u4E8EMicrosoft Outlook\u670D\u52A1\u5668\u9650\u5236\u3002\u5C1D\u8BD5\u4ECE\u65E5\u5386\u8BBE\u7F6E\u91CD\u65B0\u751F\u6210ICS URL\u3002',fetchRemoteFailed:'\u83B7\u53D6\u8FDC\u7A0B\u65E5\u5386"{name}"\u5931\u8D25\uFF1A{error}',readLocalFailed:'\u8BFB\u53D6\u672C\u5730\u65E5\u5386"{name}"\u5931\u8D25\uFF1A{error}'}},calendarExport:{notices:{generateLinkFailed:"\u751F\u6210\u65E5\u5386\u94FE\u63A5\u5931\u8D25",noTasksToExport:"\u6CA1\u6709\u627E\u5230\u8981\u5BFC\u51FA\u7684\u4EFB\u52A1",downloadSuccess:"\u4E0B\u8F7D\u4E86{filename}\uFF0C\u5305\u542B{count}\u4E2A\u4EFB\u52A1{plural}",downloadFailed:"\u4E0B\u8F7D\u65E5\u5386\u6587\u4EF6\u5931\u8D25",singleDownloadSuccess:"\u4E0B\u8F7D\u4E86{filename}"}},filter:{groupLabels:{noProject:"\u65E0\u9879\u76EE",noTags:"\u65E0\u6807\u7B7E",invalidDate:"\u65E0\u6548\u65E5\u671F",due:{overdue:"\u903E\u671F",today:"\u4ECA\u5929",tomorrow:"\u660E\u5929",nextSevenDays:"\u63A5\u4E0B\u6765\u4E03\u5929",later:"\u4EE5\u540E",none:"\u65E0\u5230\u671F\u65E5\u671F"},scheduled:{past:"\u8FC7\u53BB\u5B89\u6392",today:"\u4ECA\u5929",tomorrow:"\u660E\u5929",nextSevenDays:"\u63A5\u4E0B\u6765\u4E03\u5929",later:"\u4EE5\u540E",none:"\u65E0\u5B89\u6392\u65E5\u671F"}},errors:{noDatesProvided:"\u672A\u63D0\u4F9B\u65E5\u671F"},folders:{root:"\uFF08\u6839\u76EE\u5F55\uFF09"}},instantTaskConvert:{notices:{noCheckboxTasks:"\u5728\u5F53\u524D\u7B14\u8BB0\u4E2D\u672A\u627E\u5230\u590D\u9009\u6846\u4EFB\u52A1\u3002",convertingTasks:"\u6B63\u5728\u8F6C\u6362{count}\u4E2A\u4EFB\u52A1{plural}...",conversionSuccess:"\u2705 \u6210\u529F\u5C06{count}\u4E2A\u4EFB\u52A1{plural}\u8F6C\u6362\u4E3ATaskNotes\uFF01",partialConversion:"\u8F6C\u6362\u4E86{successCount}\u4E2A\u4EFB\u52A1{successPlural}\u3002{failureCount}\u4E2A\u5931\u8D25\u3002",batchConversionFailed:"\u6279\u91CF\u8F6C\u6362\u5931\u8D25\u3002\u8BF7\u91CD\u8BD5\u3002",invalidParameters:"\u65E0\u6548\u7684\u8F93\u5165\u53C2\u6570\u3002",emptyLine:"\u5F53\u524D\u884C\u4E3A\u7A7A\u6216\u4E0D\u5305\u542B\u6709\u6548\u5185\u5BB9\u3002",parseError:"\u89E3\u6790\u4EFB\u52A1\u9519\u8BEF\uFF1A{error}",invalidTaskData:"\u65E0\u6548\u7684\u4EFB\u52A1\u6570\u636E\u3002",replaceLineFailed:"\u66FF\u6362\u4EFB\u52A1\u884C\u5931\u8D25\u3002",conversionComplete:"\u4EFB\u52A1\u5DF2\u8F6C\u6362\uFF1A{title}",conversionCompleteShortened:'\u4EFB\u52A1\u5DF2\u8F6C\u6362\uFF1A"{title}"\uFF08\u56E0\u957F\u5EA6\u800C\u7F29\u77ED\u6587\u4EF6\u540D\uFF09',fileExists:"\u6B64\u540D\u79F0\u7684\u6587\u4EF6\u5DF2\u5B58\u5728\u3002\u8BF7\u91CD\u8BD5\u6216\u91CD\u547D\u540D\u4EFB\u52A1\u3002",conversionFailed:"\u8F6C\u6362\u4EFB\u52A1\u5931\u8D25\u3002\u8BF7\u91CD\u8BD5\u3002"}},icsNote:{notices:{templateNotFound:"\u627E\u4E0D\u5230\u6A21\u677F\uFF1A{path}",templateProcessError:"\u5904\u7406\u6A21\u677F\u9519\u8BEF\uFF1A{template}",linkedToEvent:"\u5DF2\u5C06\u7B14\u8BB0\u94FE\u63A5\u5230ICS\u4E8B\u4EF6\uFF1A{title}"}},task:{notices:{templateNotFound:"\u627E\u4E0D\u5230\u4EFB\u52A1\u6B63\u6587\u6A21\u677F\uFF1A{path}",templateReadError:"\u8BFB\u53D6\u4EFB\u52A1\u6B63\u6587\u6A21\u677F\u9519\u8BEF\uFF1A{template}",occurrenceTemplateNotFound:"\u627E\u4E0D\u5230\u5B9E\u4F8B\u7B14\u8BB0\u6A21\u677F\uFF1A{path}",occurrenceTemplateReadError:"\u8BFB\u53D6\u5B9E\u4F8B\u7B14\u8BB0\u6A21\u677F\u65F6\u51FA\u9519\uFF1A{template}",moveTaskFailed:"\u79FB\u52A8{operation}\u4EFB\u52A1\u5931\u8D25\uFF1A{error}"}},autoExport:{notices:{exportFailed:"TaskNotes\u81EA\u52A8\u5BFC\u51FA\u5931\u8D25\uFF1A{error}"}}},ui:{icsCard:{untitledEvent:"\u65E0\u6807\u9898\u4E8B\u4EF6",allDay:"\u5168\u5929",calendarEvent:"\u65E5\u5386\u4E8B\u4EF6",calendarFallback:"\u65E5\u5386"},noteCard:{createdLabel:"\u521B\u5EFA\uFF1A",dailyBadge:"\u65E5\u8BB0",dailyTooltip:"\u65E5\u8BB0"},taskCard:{labels:{due:"\u622A\u6B62\u65E5\u671F",scheduled:"\u5DF2\u8BA1\u5212",recurrence:"\u91CD\u590D",completed:"\u5DF2\u5B8C\u6210",created:"\u521B\u5EFA\u4E8E",modified:"\u4FEE\u6539\u4E8E",blocked:"\u88AB\u963B\u585E",blocking:"\u963B\u585E\u4E2D"},blockedBadge:"\u5DF2\u963B\u585E",blockedBadgeTooltip:"\u6B64\u4EFB\u52A1\u6B63\u5728\u7B49\u5F85\u5176\u4ED6\u4EFB\u52A1",blockingBadge:"\u963B\u585E\u4E2D",blockingBadgeTooltip:"\u6B64\u4EFB\u52A1\u6B63\u5728\u963B\u585E\u5176\u4ED6\u4EFB\u52A1",blockingToggle:"\u963B\u585E {count} \u4E2A\u4EFB\u52A1",priorityAriaLabel:"\u4F18\u5148\u7EA7: {label}",taskOptions:"\u4EFB\u52A1\u9009\u9879",recurrenceTooltip:"{label}: {value}",reminderTooltipOne:"\u5DF2\u8BBE\u7F6E 1 \u4E2A\u63D0\u9192\uFF08\u70B9\u51FB\u7BA1\u7406\uFF09",reminderTooltipMany:"\u5DF2\u8BBE\u7F6E {count} \u4E2A\u63D0\u9192\uFF08\u70B9\u51FB\u7BA1\u7406\uFF09",projectTooltip:"\u6B64\u4EFB\u52A1\u7528\u4F5C\u9879\u76EE\uFF08\u70B9\u51FB\u53EF\u663E\u793A/\u9690\u85CF\u5B50\u4EFB\u52A1\uFF09",projectIndicatorTooltip:"\u6B64\u4EFB\u52A1\u7528\u4F5C\u9879\u76EE",expandSubtasks:"\u5C55\u5F00\u5B50\u4EFB\u52A1",collapseSubtasks:"\u6298\u53E0\u5B50\u4EFB\u52A1",dueToday:"{label}: \u4ECA\u5929",dueTodayAt:"{label}: \u4ECA\u5929 {time}",dueOverdue:"{label}: {display}\uFF08\u903E\u671F\uFF09",dueLabel:"{label}: {display}",scheduledToday:"{label}: \u4ECA\u5929",scheduledTodayAt:"{label}: \u4ECA\u5929 {time}",scheduledPast:"{label}: {display}\uFF08\u8FC7\u671F\uFF09",scheduledLabel:"{label}: {display}",loadingDependencies:"\u6B63\u5728\u52A0\u8F7D\u4F9D\u8D56\u2026",blockingEmpty:"\u6CA1\u6709\u4F9D\u8D56\u7684\u4EFB\u52A1",blockingLoadError:"\u65E0\u6CD5\u52A0\u8F7D\u4F9D\u8D56",googleCalendarSyncTooltip:"\u5DF2\u540C\u6B65\u5230Google\u65E5\u5386",detailsTooltip:"\u4EFB\u52A1\u6709\u8BE6\u7EC6\u4FE1\u606F"},propertyEventCard:{unknownFile:"\u672A\u77E5\u6587\u4EF6"},filterHeading:{allViewName:"\u5168\u90E8"},filterBar:{saveView:"\u4FDD\u5B58\u89C6\u56FE",saveViewNamePlaceholder:"\u8F93\u5165\u89C6\u56FE\u540D\u79F0...",saveButton:"\u4FDD\u5B58",views:"\u89C6\u56FE",savedFilterViews:"\u5DF2\u4FDD\u5B58\u7684\u8FC7\u6EE4\u89C6\u56FE",filters:"\u8FC7\u6EE4\u5668",properties:"\u5C5E\u6027",sort:"\u6392\u5E8F",newTask:"\u65B0\u5EFA",expandAllGroups:"\u5C55\u5F00\u6240\u6709\u5206\u7EC4",collapseAllGroups:"\u6298\u53E0\u6240\u6709\u5206\u7EC4",searchTasksPlaceholder:"\u641C\u7D22\u4EFB\u52A1...",searchTasksTooltip:"\u641C\u7D22\u4EFB\u52A1\u6807\u9898",filterUnavailable:"\u8FC7\u6EE4\u680F\u6682\u65F6\u4E0D\u53EF\u7528",toggleFilter:"\u5207\u6362\u8FC7\u6EE4\u5668",activeFiltersTooltip:"\u6D3B\u52A8\u8FC7\u6EE4\u5668 \u2013 \u70B9\u51FB\u4FEE\u6539\uFF0C\u53F3\u952E\u6E05\u9664",configureVisibleProperties:"\u914D\u7F6E\u53EF\u89C1\u5C5E\u6027",sortAndGroupOptions:"\u6392\u5E8F\u548C\u5206\u7EC4\u9009\u9879",sortMenuHeader:"\u6392\u5E8F",orderMenuHeader:"\u987A\u5E8F",groupMenuHeader:"\u5206\u7EC4",createNewTask:"\u521B\u5EFA\u65B0\u4EFB\u52A1",filter:"\u8FC7\u6EE4\u5668",displayOrganization:"\u663E\u793A\u548C\u7EC4\u7EC7",viewOptions:"\u89C6\u56FE\u9009\u9879",addFilter:"\u6DFB\u52A0\u8FC7\u6EE4\u5668",addFilterGroup:"\u6DFB\u52A0\u8FC7\u6EE4\u7EC4",addFilterTooltip:"\u6DFB\u52A0\u65B0\u7684\u8FC7\u6EE4\u6761\u4EF6",addFilterGroupTooltip:"\u6DFB\u52A0\u5D4C\u5957\u8FC7\u6EE4\u7EC4",clearAllFilters:"\u6E05\u9664\u6240\u6709\u8FC7\u6EE4\u5668\u548C\u7EC4",saveCurrentFilter:"\u5C06\u5F53\u524D\u8FC7\u6EE4\u5668\u4FDD\u5B58\u4E3A\u89C6\u56FE",closeFilterModal:"\u5173\u95ED\u8FC7\u6EE4\u6A21\u6001\u6846",deleteFilterGroup:"\u5220\u9664\u8FC7\u6EE4\u7EC4",deleteCondition:"\u5220\u9664\u6761\u4EF6",all:"\u5168\u90E8",any:"\u4EFB\u4F55",followingAreTrue:"\u4EE5\u4E0B\u4E3A\u771F\uFF1A",where:"\u5176\u4E2D",selectProperty:"\u9009\u62E9...",chooseProperty:"\u9009\u62E9\u8981\u8FC7\u6EE4\u7684\u4EFB\u52A1\u5C5E\u6027",chooseOperator:"\u9009\u62E9\u5982\u4F55\u6BD4\u8F83\u5C5E\u6027\u503C",enterValue:"\u8F93\u5165\u8981\u8FC7\u6EE4\u7684\u503C",selectValue:"\u9009\u62E9\u8981\u8FC7\u6EE4\u7684{property}",sortBy:"\u6392\u5E8F\u4F9D\u636E\uFF1A",toggleSortDirection:"\u5207\u6362\u6392\u5E8F\u65B9\u5411",chooseSortMethod:"\u9009\u62E9\u5982\u4F55\u6392\u5E8F\u4EFB\u52A1",groupBy:"\u5206\u7EC4\u4F9D\u636E\uFF1A",chooseGroupMethod:"\u6309\u5171\u540C\u5C5E\u6027\u5206\u7EC4\u4EFB\u52A1",toggleViewOption:"\u5207\u6362{option}",expandCollapseFilters:"\u70B9\u51FB\u5C55\u5F00/\u6298\u53E0\u8FC7\u6EE4\u6761\u4EF6",expandCollapseSort:"\u70B9\u51FB\u5C55\u5F00/\u6298\u53E0\u6392\u5E8F\u548C\u5206\u7EC4\u9009\u9879",expandCollapseViewOptions:"\u70B9\u51FB\u5C55\u5F00/\u6298\u53E0\u89C6\u56FE\u7279\u5B9A\u9009\u9879",naturalLanguageDates:"\u81EA\u7136\u8BED\u8A00\u65E5\u671F",naturalLanguageExamples:"\u663E\u793A\u81EA\u7136\u8BED\u8A00\u65E5\u671F\u793A\u4F8B",enterNumericValue:"\u8F93\u5165\u8981\u8FC7\u6EE4\u7684\u6570\u503C",enterDateValue:"\u4F7F\u7528\u81EA\u7136\u8BED\u8A00\u6216ISO\u683C\u5F0F\u8F93\u5165\u65E5\u671F",pickDateTime:"\u9009\u62E9\u65E5\u671F\u548C\u65F6\u95F4",noSavedViews:"\u6CA1\u6709\u4FDD\u5B58\u7684\u89C6\u56FE",savedViews:"\u4FDD\u5B58\u7684\u89C6\u56FE",yourSavedFilters:"\u60A8\u4FDD\u5B58\u7684\u8FC7\u6EE4\u914D\u7F6E",dragToReorder:"\u62D6\u62FD\u91CD\u65B0\u6392\u5E8F\u89C6\u56FE",loadSavedView:"\u52A0\u8F7D\u4FDD\u5B58\u7684\u89C6\u56FE\uFF1A{name}",deleteView:"\u5220\u9664\u89C6\u56FE",deleteViewTitle:"\u5220\u9664\u89C6\u56FE",deleteViewMessage:'\u60A8\u786E\u5B9A\u8981\u5220\u9664\u89C6\u56FE"{name}"\u5417\uFF1F',manageAllReminders:"\u7BA1\u7406\u6240\u6709\u63D0\u9192...",clearAllReminders:"\u6E05\u9664\u6240\u6709\u63D0\u9192",customRecurrence:"\u81EA\u5B9A\u4E49\u91CD\u590D...",clearRecurrence:"\u6E05\u9664\u91CD\u590D",sortOptions:{dueDate:"\u5230\u671F\u65E5\u671F",scheduledDate:"\u5B89\u6392\u65E5\u671F",priority:"\u4F18\u5148\u7EA7",status:"\u72B6\u6001",title:"\u6807\u9898",createdDate:"\u521B\u5EFA\u65E5\u671F",tags:"\u6807\u7B7E",ascending:"\u5347\u5E8F",descending:"\u964D\u5E8F"},group:{none:"\u65E0",status:"\u72B6\u6001",priority:"\u4F18\u5148\u7EA7",context:"\u4E0A\u4E0B\u6587",project:"\u9879\u76EE",dueDate:"\u5230\u671F\u65E5\u671F",scheduledDate:"\u5B89\u6392\u65E5\u671F",tags:"\u6807\u7B7E",completedDate:"\u5B8C\u6210\u65E5\u671F"},subgroupLabel:"\u5B50\u7EC4",notices:{propertiesMenuFailed:"\u663E\u793A\u5C5E\u6027\u83DC\u5355\u5931\u8D25"}}},components:{dateContextMenu:{weekdays:"\u5DE5\u4F5C\u65E5",clearDate:"\u6E05\u9664\u65E5\u671F",today:"\u4ECA\u5929",tomorrow:"\u660E\u5929",thisWeekend:"\u8FD9\u4E2A\u5468\u672B",nextWeek:"\u4E0B\u5468",nextMonth:"\u4E0B\u4E2A\u6708",setDateTime:"\u8BBE\u7F6E\u65E5\u671F\u548C\u65F6\u95F4",dateLabel:"\u65E5\u671F",timeLabel:"\u65F6\u95F4\uFF08\u53EF\u9009\uFF09"},subgroupMenuBuilder:{none:"\u65E0",status:"\u72B6\u6001",priority:"\u4F18\u5148\u7EA7",context:"\u4E0A\u4E0B\u6587",project:"\u9879\u76EE",dueDate:"\u622A\u6B62\u65E5\u671F",scheduledDate:"\u8BA1\u5212\u65E5\u671F",tags:"\u6807\u7B7E",completedDate:"\u5B8C\u6210\u65E5\u671F",subgroup:"\u5B50\u7EC4"},propertyVisibilityDropdown:{coreProperties:"\u6838\u5FC3\u5C5E\u6027",organization:"\u7EC4\u7EC7",customProperties:"\u81EA\u5B9A\u4E49\u5C5E\u6027",failed:"\u663E\u793A\u5C5E\u6027\u83DC\u5355\u5931\u8D25",properties:{statusDot:"\u72B6\u6001\u70B9",priorityDot:"\u4F18\u5148\u7EA7\u70B9",dueDate:"\u5230\u671F\u65E5\u671F",scheduledDate:"\u5B89\u6392\u65E5\u671F",timeEstimate:"\u65F6\u95F4\u4F30\u8BA1",totalTrackedTime:"\u603B\u8DDF\u8E2A\u65F6\u95F4",checklistProgress:"\u6E05\u5355\u8FDB\u5EA6",recurrence:"\u91CD\u590D",completedDate:"\u5B8C\u6210\u65E5\u671F",createdDate:"\u521B\u5EFA\u65E5\u671F",modifiedDate:"\u4FEE\u6539\u65E5\u671F",projects:"\u9879\u76EE",contexts:"\u4E0A\u4E0B\u6587",tags:"\u6807\u7B7E",blocked:"\u5DF2\u963B\u585E",blocking:"\u963B\u585E\u4E2D"}},reminderContextMenu:{remindBeforeDue:"\u5230\u671F\u524D\u63D0\u9192...",remindBeforeScheduled:"\u5B89\u6392\u524D\u63D0\u9192...",manageAllReminders:"\u7BA1\u7406\u6240\u6709\u63D0\u9192...",clearAllReminders:"\u6E05\u9664\u6240\u6709\u63D0\u9192",quickReminders:{atTime:"\u5728\u4E8B\u4EF6\u65F6\u95F4",fiveMinutesBefore:"\u63D0\u524D5\u5206\u949F",fifteenMinutesBefore:"\u63D0\u524D15\u5206\u949F",oneHourBefore:"\u63D0\u524D1\u5C0F\u65F6",oneDayBefore:"\u63D0\u524D1\u5929"}},recurrenceContextMenu:{daily:"\u6BCF\u65E5",weeklyOn:"\u6BCF\u5468{day}",everyTwoWeeksOn:"\u6BCF2\u5468{day}",monthlyOnThe:"\u6BCF\u6708{ordinal}",everyThreeMonthsOnThe:"\u6BCF3\u4E2A\u6708{ordinal}",yearlyOn:"\u6BCF\u5E74{month}{ordinal}",weekdaysOnly:"\u4EC5\u5DE5\u4F5C\u65E5",dailyAfterCompletion:"\u6BCF\u65E5\uFF08\u5B8C\u6210\u540E\uFF09",every3DaysAfterCompletion:"\u6BCF3\u5929\uFF08\u5B8C\u6210\u540E\uFF09",weeklyAfterCompletion:"\u6BCF\u5468\uFF08\u5B8C\u6210\u540E\uFF09",monthlyAfterCompletion:"\u6BCF\u6708\uFF08\u5B8C\u6210\u540E\uFF09",customRecurrence:"\u81EA\u5B9A\u4E49\u91CD\u590D...",clearRecurrence:"\u6E05\u9664\u91CD\u590D",customRecurrenceModal:{title:"\u81EA\u5B9A\u4E49\u91CD\u590D",startDate:"\u5F00\u59CB\u65E5\u671F",startDateDesc:"\u91CD\u590D\u6A21\u5F0F\u5F00\u59CB\u7684\u65E5\u671F",startTime:"\u5F00\u59CB\u65F6\u95F4",startTimeDesc:"\u91CD\u590D\u5B9E\u4F8B\u5E94\u51FA\u73B0\u7684\u65F6\u95F4\uFF08\u53EF\u9009\uFF09",recurFrom:"\u91CD\u590D\u8D77\u70B9",recurFromDesc:"\u4E0B\u6B21\u91CD\u590D\u5E94\u4F55\u65F6\u8BA1\u7B97\uFF1F",scheduledDate:"\u8BA1\u5212\u65E5\u671F",completionDate:"\u5B8C\u6210\u65E5\u671F",frequency:"\u9891\u7387",interval:"\u95F4\u9694",intervalDesc:"\u6BCFX\u5929/\u5468/\u6708/\u5E74",daysOfWeek:"\u4E00\u5468\u4E2D\u7684\u5929",daysOfWeekDesc:"\u9009\u62E9\u7279\u5B9A\u5929\uFF08\u7528\u4E8E\u6BCF\u5468\u91CD\u590D\uFF09",monthlyRecurrence:"\u6BCF\u6708\u91CD\u590D",monthlyRecurrenceDesc:"\u9009\u62E9\u5982\u4F55\u6BCF\u6708\u91CD\u590D",yearlyRecurrence:"\u6BCF\u5E74\u91CD\u590D",yearlyRecurrenceDesc:"\u9009\u62E9\u5982\u4F55\u6BCF\u5E74\u91CD\u590D",endCondition:"\u7ED3\u675F\u6761\u4EF6",endConditionDesc:"\u9009\u62E9\u91CD\u590D\u4F55\u65F6\u7ED3\u675F",neverEnds:"\u6C38\u4E0D\u7ED3\u675F",endAfterOccurrences:"{count}\u6B21\u540E\u7ED3\u675F",endOnDate:"\u5728{date}\u7ED3\u675F",onDayOfMonth:"\u6BCF\u6708{day}\u65E5",onTheWeekOfMonth:"\u6BCF\u6708\u7B2C{week}\u4E2A{day}",onDateOfYear:"\u6BCF\u5E74{month}{day}",onTheWeekOfYear:"\u6BCF\u5E74{month}\u7B2C{week}\u4E2A{day}",frequencies:{daily:"\u6BCF\u65E5",weekly:"\u6BCF\u5468",monthly:"\u6BCF\u6708",yearly:"\u6BCF\u5E74"},weekPositions:{first:"\u7B2C\u4E00",second:"\u7B2C\u4E8C",third:"\u7B2C\u4E09",fourth:"\u7B2C\u56DB",last:"\u6700\u540E"},weekdays:{monday:"\u661F\u671F\u4E00",tuesday:"\u661F\u671F\u4E8C",wednesday:"\u661F\u671F\u4E09",thursday:"\u661F\u671F\u56DB",friday:"\u661F\u671F\u4E94",saturday:"\u661F\u671F\u516D",sunday:"\u661F\u671F\u65E5"},weekdaysShort:{mon:"\u5468\u4E00",tue:"\u5468\u4E8C",wed:"\u5468\u4E09",thu:"\u5468\u56DB",fri:"\u5468\u4E94",sat:"\u5468\u516D",sun:"\u5468\u65E5"},cancel:"\u53D6\u6D88",save:"\u4FDD\u5B58"}}}};var cxe={common:{appName:"TaskNotes",new:"Neu",cancel:"Abbrechen",confirm:"Best\xE4tigen",close:"Schlie\xDFen",save:"Speichern",reorder:{confirmLargeTitle:"Gro\xDFe Neuordnung best\xE4tigen",confirmButton:"Notizen neu anordnen",confirmLargeMessage:'Durch das Neuordnen werden in {count} Notizen die Werte von "{field}" aktualisiert, um eine dauerhafte manuelle Reihenfolge f\xFCr {scope} zu erstellen. Versteckte oder herausgefilterte Notizen im selben Bereich k\xF6nnen ebenfalls aktualisiert werden. Fortfahren?'},language:"Sprache",systemDefault:"Systemstandard",loading:"L\xE4dt...",languages:{en:"Englisch",fr:"Franz\xF6sisch",ru:"Russisch",zh:"Chinesisch",de:"Deutsch",es:"Spanisch",ja:"Japanisch",pt:"Portugiesisch (Brasilien)",ko:"Koreanisch"},weekdays:{sunday:"Sonntag",monday:"Montag",tuesday:"Dienstag",wednesday:"Mittwoch",thursday:"Donnerstag",friday:"Freitag",saturday:"Samstag"},months:{january:"Januar",february:"Februar",march:"M\xE4rz",april:"April",may:"Mai",june:"Juni",july:"Juli",august:"August",september:"September",october:"Oktober",november:"November",december:"Dezember"}},views:{agenda:{title:"Agenda",today:"Heute",overdue:"\xDCberf\xE4llig",refreshCalendars:"Kalender aktualisieren",actions:{previousPeriod:"Vorherige Periode",nextPeriod:"N\xE4chste Periode",goToToday:"Zu heute gehen",refreshCalendars:"Kalenderabonnements aktualisieren"},loading:"Agenda wird geladen...",dayToggle:"Tag umschalten",overdueToggle:"\xDCberf\xE4lligkeitsbereich umschalten",expandAllDays:"Alle Tage ausklappen",collapseAllDays:"Alle Tage einklappen",notices:{calendarNotReady:"Kalenderdienst noch nicht bereit",calendarRefreshed:"Kalenderabonnements aktualisiert",refreshFailed:"Aktualisierung fehlgeschlagen"},empty:{noItemsScheduled:"Keine Elemente geplant",noItemsFound:"Keine Elemente gefunden",helpText:"Erstellen Sie Aufgaben mit F\xE4lligkeits- oder Planungsdaten oder f\xFCgen Sie Notizen hinzu, um sie hier zu sehen."},contextMenu:{showOverdueSection:"\xDCberf\xE4lligkeitsbereich anzeigen",showNotes:"Notizen anzeigen",calendarSubscriptions:"Kalenderabonnements"},periods:{thisWeek:"Diese Woche"},tipPrefix:"Tipp: "},taskList:{title:"Aufgaben",expandAllGroups:"Alle Gruppen ausklappen",collapseAllGroups:"Alle Gruppen einklappen",noTasksFound:"Keine Aufgaben f\xFCr die gew\xE4hlten Filter gefunden.",reorder:{scope:{ungrouped:"diese ungegliederte Liste",group:'Gruppe "{group}"'}},errors:{formulaGroupingReadOnly:"Aufgaben in formelbasierten Gruppen k\xF6nnen nicht neu angeordnet werden. Formelwerte werden berechnet und k\xF6nnen nicht direkt ge\xE4ndert werden."}},notes:{title:"Notizen",refreshButton:"Aktualisieren",refreshingButton:"Wird aktualisiert...",notices:{indexingDisabled:"Notizindexierung deaktiviert"},empty:{noNotesFound:"Keine Notizen gefunden",helpText:"Keine Notizen f\xFCr das gew\xE4hlte Datum gefunden. Versuchen Sie, ein anderes Datum in der Mini-Kalenderansicht auszuw\xE4hlen oder erstellen Sie einige Notizen."},loading:"Notizen werden geladen...",refreshButtonAriaLabel:"Notizenliste aktualisieren"},miniCalendar:{title:"Mini-Kalender",contextMenu:{openDailyNote:"T\xE4gliche Notiz \xF6ffnen",openWeeklyNote:"W\xF6chentliche Notiz \xF6ffnen"}},advancedCalendar:{title:"Kalender",filters:{showFilters:"Filter anzeigen",hideFilters:"Filter ausblenden"},viewOptions:{calendarSubscriptions:"Kalenderabonnements",timeEntries:"Zeiteintr\xE4ge",timeblocks:"Zeitbl\xF6cke",scheduledDates:"Geplante Termine",dueDates:"F\xE4lligkeitstermine",allDaySlot:"Ganzt\xE4giger Slot",scheduledTasks:"Geplante Aufgaben",recurringTasks:"Wiederkehrende Aufgaben"},buttons:{refresh:"Aktualisieren",refreshHint:"Kalenderabonnements aktualisieren"},notices:{icsServiceNotAvailable:"ICS-Abonnementdienst nicht verf\xFCgbar",calendarRefreshedAll:"Alle Kalenderabonnements wurden erfolgreich aktualisiert",refreshFailed:"Einige Kalenderabonnements konnten nicht aktualisiert werden",timeblockSpecificTime:"Zeitbl\xF6cke m\xFCssen spezifische Zeiten haben. Bitte w\xE4hlen Sie einen Zeitbereich in der Wochen- oder Tagesansicht.",timeblockMoved:'Zeitblock "{title}" wurde nach {date} verschoben',timeblockUpdated:'Zeit des Zeitblocks "{title}" aktualisiert',timeblockMoveFailed:"Fehler beim Verschieben des Zeitblocks: {message}",timeblockResized:'Dauer des Zeitblocks "{title}" aktualisiert',timeblockResizeFailed:"Fehler beim \xC4ndern der Zeitblockgr\xF6\xDFe: {message}",taskScheduled:'Aufgabe "{title}" f\xFCr {date} geplant',scheduleTaskFailed:"Fehler beim Planen der Aufgabe",endTimeAfterStart:"Endzeit muss nach der Startzeit liegen",timeEntryNotFound:"Zeiteintrag nicht gefunden",timeEntryDeleted:"Zeiteintrag gel\xF6scht",deleteTimeEntryFailed:"Fehler beim L\xF6schen des Zeiteintrags"},timeEntry:{estimatedSuffix:"gesch\xE4tzt",trackedSuffix:"erfasst",recurringPrefix:"Wiederkehrend: ",completedPrefix:"Abgeschlossen: ",createdPrefix:"Erstellt: ",modifiedPrefix:"Ge\xE4ndert: ",duePrefix:"F\xE4llig: ",scheduledPrefix:"Geplant: "},contextMenus:{openTask:"Aufgabe \xF6ffnen",deleteTimeEntry:"Zeiteintrag l\xF6schen",deleteTimeEntryTitle:"Zeiteintrag l\xF6schen",deleteTimeEntryConfirm:"M\xF6chten Sie diesen Zeiteintrag{duration} wirklich l\xF6schen? Diese Aktion kann nicht r\xFCckg\xE4ngig gemacht werden.",deleteButton:"L\xF6schen",cancelButton:"Abbrechen"}},basesCalendar:{title:"Bases-Kalender",today:"Heute",buttonText:{month:"M",week:"W",day:"T",year:"J",list:"L",customDays:"{count}T",listDays:"{count}d Liste",refresh:"Aktualisieren"},hints:{refresh:"Kalenderabonnements aktualisieren",today:"Zu heute gehen",prev:"Zur\xFCck",next:"Weiter",month:"Monatsansicht",week:"Wochenansicht",day:"Tagesansicht",year:"Jahresansicht",list:"Listenansicht",customDays:"{count}-Tage-Ansicht"},settings:{groups:{dateNavigation:"Datumsnavigation",events:"Ereignisse",layout:"Layout",view:"Ansicht",display:"Anzeige",timeGrid:"Zeitgitter",eventLayout:"Ereignislayout",propertyBasedEvents:"Eigenschaftsbasierte Ereignisse",calendarSubscriptions:"Kalenderabonnements",googleCalendars:"Google-Kalender",microsoftCalendars:"Microsoft-Kalender"},dateNavigation:{navigateToDate:"Zum Datum navigieren",navigateToDatePlaceholder:"JJJJ-MM-TT (z.B. 2025-01-15) - leer lassen, um Eigenschaft zu verwenden",navigateToDateFromProperty:"Zum Datum aus Eigenschaft navigieren",navigateToDateFromPropertyPlaceholder:"Datumseigenschaft ausw\xE4hlen (optional)",propertyNavigationStrategy:"Eigenschaftsnavigationsstrategie",createDailyNotesFromDateLinks:"T\xE4gliche Notizen \xFCber Datumslinks erstellen",strategies:{first:"Erstes Ergebnis",earliest:"Fr\xFChestes Datum",latest:"Sp\xE4testes Datum"}},events:{showScheduledTasks:"Geplante Aufgaben anzeigen",showDueTasks:"F\xE4llige Aufgaben anzeigen",showOverdueOnToday:"\xDCberf\xE4llige Aufgaben heute anzeigen",showRecurringTasks:"Wiederkehrende Aufgaben anzeigen",showTimeEntries:"Zeiteintr\xE4ge anzeigen",showTimeblocks:"Zeitbl\xF6cke anzeigen",showPropertyBasedEvents:"Eigenschaftsbasierte Ereignisse anzeigen",showCompletedRecurringInstances:"Abgeschlossene wiederkehrende Instanzen anzeigen",showSkippedRecurringInstances:"\xDCbersprungene wiederkehrende Instanzen anzeigen"},layout:{calendarView:"Kalenderansicht",customDayCount:"Benutzerdefinierte Tagesanzahl",listDayCount:"Anzahl der Listentage",dayStartTime:"Tagesbeginn",dayStartTimePlaceholder:"HH:mm:ss (z.B. 08:00:00)",dayEndTime:"Tagesende",dayEndTimePlaceholder:"HH:mm:ss (z.B. 20:00:00)",timeSlotDuration:"Zeitschlitzdauer",timeSlotDurationPlaceholder:"HH:mm:ss (z.B. 00:30:00)",dragDropResolution:"Aufl\xF6sung f\xFCr Ziehen/Ablegen",dragDropResolutionPlaceholder:"HH:mm:ss (z.B. 00:05:00)",weekStartsOn:"Woche beginnt am",showWeekNumbers:"Wochennummern anzeigen",showNowIndicator:"Jetzt-Indikator anzeigen",showWeekends:"Wochenenden anzeigen",showAllDaySlot:"Ganzt\xE4gigen Slot anzeigen",showTimeGrid:"Stundenraster anzeigen",showTodayHighlight:"Heute hervorheben",todayColumnWidthMultiplier:"Multiplikator der heutigen Spaltenbreite",showSelectionPreview:"Auswahlvorschau anzeigen",timeFormat:"Zeitformat",timeFormat12:"12-Stunden (AM/PM)",timeFormat24:"24-Stunden",initialScrollTime:"Anfangsscrollzeit",initialScrollTimePlaceholder:"HH:mm:ss (z.B. 08:00:00)",minimumEventHeight:"Minimale Ereignish\xF6he (px)",slotEventOverlap:"Ereignis\xFCberlappung zulassen",enableSearch:"Suchfeld aktivieren",eventMaxStack:"Max. gestapelte Ereignisse (Wochen-/Tagesansicht, 0 = unbegrenzt)",dayMaxEvents:"Max. Ereignisse pro Tag (Monatsansicht, 0 = automatisch)",dayMaxEventRows:"Max. Ereigniszeilen pro Tag (Monatsansicht, 0 = unbegrenzt)",spanScheduledToDue:"Aufgaben zwischen geplantem und F\xE4lligkeitsdatum spannen",heightMode:"H\xF6henmodus",heightModeFill:"Container f\xFCllen",heightModeAuto:"Automatische H\xF6he"},propertyBasedEvents:{startDateProperty:"Startdatumseigenschaft",startDatePropertyPlaceholder:"Eigenschaft f\xFCr Startdatum/-zeit ausw\xE4hlen",endDateProperty:"Enddatumseigenschaft (optional)",endDatePropertyPlaceholder:"Eigenschaft f\xFCr Enddatum/-zeit ausw\xE4hlen",titleProperty:"Titeleigenschaft (optional)",titlePropertyPlaceholder:"Eigenschaft f\xFCr Ereignistitel ausw\xE4hlen"}},notices:{noDailyNoteForDate:"F\xFCr dieses Datum ist keine t\xE4gliche Notiz vorhanden."},errors:{failedToInitialize:"Fehler beim Initialisieren des Kalenders"}},kanban:{title:"Kanban",newTask:"Neue Aufgabe",addCard:"+ Karte hinzuf\xFCgen",noTasks:"Keine Aufgaben",uncategorized:"Nicht kategorisiert",noProject:"Kein Projekt",reorder:{scope:{column:'Spalte "{group}"',columnInSwimlane:'Spalte "{group}" in Swimlane "{swimlane}"'}},notices:{loadFailed:"Kanban-Board konnte nicht geladen werden",movedTask:'Aufgabe verschoben zu "{0}"'},errors:{loadingBoard:"Fehler beim Laden des Boards.",noGroupBy:"Die Kanban-Ansicht erfordert eine konfigurierte 'Gruppieren nach'-Eigenschaft. Klicken Sie auf die Schaltfl\xE4che 'Sortieren' und w\xE4hlen Sie eine Eigenschaft unter 'Gruppieren nach' aus.",formulaGroupingReadOnly:"Aufgaben k\xF6nnen nicht zwischen formelbasierten Spalten verschoben werden. Formelwerte werden berechnet und k\xF6nnen nicht direkt ge\xE4ndert werden.",formulaSwimlaneReadOnly:"Aufgaben k\xF6nnen nicht zwischen formelbasierten Swimlanes verschoben werden. Formelwerte werden berechnet und k\xF6nnen nicht direkt ge\xE4ndert werden."},columnTitle:"Ohne Titel"},pomodoro:{title:"Pomodoro",status:{focus:"Fokus",ready:"Bereit zum Starten",paused:"Pausiert",working:"Arbeitet",shortBreak:"Kurze Pause",longBreak:"Lange Pause",breakPrompt:"Gro\xDFartige Arbeit! Zeit f\xFCr eine {length} Pause",breakLength:{short:"kurze",long:"lange"},breakComplete:"Pause beendet! Bereit f\xFCr den n\xE4chsten Pomodoro?"},buttons:{start:"Starten",pause:"Pausieren",stop:"Stoppen",resume:"Fortsetzen",startShortBreak:"Kurze Pause starten",startLongBreak:"Lange Pause starten",skipBreak:"Pause \xFCberspringen",chooseTask:"Aufgabe w\xE4hlen...",changeTask:"Aufgabe wechseln...",clearTask:"Aufgabe entfernen",selectDifferentTask:"Andere Aufgabe w\xE4hlen",startFocus:"Fokus starten",addMinute:"Eine Minute hinzuf\xFCgen",subtractMinute:"Eine Minute abziehen"},notices:{noTasks:"Keine unarchivierte Aufgaben gefunden. Erstelle zuerst einige Aufgaben.",loadFailed:"Aufgaben konnten nicht geladen werden",invalidDuration:"Gib eine Dauer wie 10, 10:30 oder 1:30:00 ein."},statsLabel:"heute abgeschlossen",meta:{ready:"{time} geplant \xB7 {count} heute abgeschlossen",running:"{time} verbleibend \xB7 Endet um {endTime}",paused:"{type} pausiert \xB7 {time} verbleibend",breakReady:"{type} bereit \xB7 {time} geplant"},timer:{editLabel:"Timerdauer bearbeiten",inputLabel:"Timerdauer"}},pomodoroStats:{title:"Pomodoro-Statistiken",heading:"Pomodoro-Statistiken",refresh:"Aktualisieren",sections:{overview:"\xDCberblick",today:"Heute",week:"Diese Woche",allTime:"Gesamt",recent:"Aktuelle Sitzungen"},overviewCards:{todayPomos:{label:"Heutige Pomos",change:{more:"{count} mehr als gestern",less:"{count} weniger als gestern"}},totalPomos:{label:"Pomos insgesamt"},todayFocus:{label:"Heutiger Fokus",change:{more:"{duration} mehr als gestern",less:"{duration} weniger als gestern"}},totalFocus:{label:"Fokuszeit insgesamt"}},stats:{pomodoros:"Pomodoros",streak:"Serie",minutes:"Minuten",average:"Durchschn. L\xE4nge",completion:"Abschluss"},recents:{empty:"Noch keine Sitzungen aufgezeichnet",duration:"{minutes} Min",status:{completed:"Abgeschlossen",interrupted:"Unterbrochen"},delete:"Sitzung l\xF6schen",deleteAria:"Pomodoro-Sitzung l\xF6schen",deleteConfirmTitle:"Pomodoro-Sitzung l\xF6schen?",deleteConfirmMessage:"Dadurch wird die Sitzung aus dem Pomodoro-Verlauf entfernt. Vorhandene Zeiteintr\xE4ge von Aufgaben werden nicht ge\xE4ndert.",deleteConfirmButton:"L\xF6schen",deleteSuccess:"Pomodoro-Sitzung gel\xF6scht",deleteNotFound:"Pomodoro-Sitzung wurde nicht gefunden"},basesMigration:{title:"M\xF6chtest du eine Base-Ansicht?",description:"Pomodoro-Base-Ansichten verwenden das Frontmatter t\xE4glicher Notizen. Um diesen Verlauf in der generierten Pomodoro-Statistik-Base zu sehen, migriere die Pomodoro-Daten in den Einstellungen und setze den Speicherort anschlie\xDFend auf t\xE4gliche Notizen."}},stats:{title:"Statistiken",taskProjectStats:"Aufgaben- & Projektstatistiken",sections:{filters:"Filter",overview:"\xDCberblick",today:"Heute",thisWeek:"Diese Woche",thisMonth:"Dieser Monat",projectBreakdown:"Projektaufschl\xFCsselung",dateRange:"Datumsbereich"},filters:{minTime:"Min. Zeit (Minuten)",allTasks:"Alle Aufgaben",activeOnly:"Nur Aktive",completedOnly:"Nur Abgeschlossene"},refreshButton:"Aktualisieren",timeRanges:{allTime:"Gesamt",last7Days:"Letzte 7 Tage",last30Days:"Letzte 30 Tage",last90Days:"Letzte 90 Tage",customRange:"Benutzerdefinierter Bereich"},resetFiltersButton:"Filter zur\xFCcksetzen",dateRangeFrom:"Von",dateRangeTo:"Bis",noProject:"Kein Projekt",cards:{timeTrackedEstimated:"Zeit erfasst / gesch\xE4tzt",totalTasks:"Aufgaben gesamt",completionRate:"Abschlussrate",activeProjects:"Aktive Projekte",avgTimePerTask:"\xD8 Zeit pro Aufgabe"},labels:{tasks:"Aufgaben",completed:"Abgeschlossen",projects:"Projekte"},noProjectData:"Keine Projektdaten verf\xFCgbar",notAvailable:"N/V",noTasks:"Keine Aufgaben gefunden",loading:"L\xE4dt..."},releaseNotes:{title:"Was ist neu in TaskNotes {version}",header:"Was ist neu in TaskNotes {version}",viewAllLink:"Alle Versionshinweise auf GitHub anzeigen \u2192",starMessage:"Wir freuen uns sehr \xFCber jedes Feedback. Wenn sich etwas nicht richtig anf\xFChlt, lassen Sie es uns bitte auf GitHub wissen. Wenn Sie TaskNotes n\xFCtzlich finden, geben Sie ihm bitte einen Stern.",baseFilesNotice:"> [!info] Hinweis zu den standardm\xE4\xDFigen `.base`-Dateien\n> \xC4nderungen an standardm\xE4\xDFig generierten `.base`-Vorlagen \xFCberschreiben Ihre vorhandenen `.base`-Dateien nicht, damit Ihre Anpassungen erhalten bleiben.\n> Wenn Sie die neuesten Vorlagenverbesserungen m\xF6chten, erstellen Sie die Base-Dateien neu unter **Einstellungen \u2192 TaskNotes \u2192 Allgemein \u2192 Ansichten & Base-Dateien \u2192 Dateien aktualisieren**."}},settings:{header:{documentation:"Dokumentation",documentationUrl:"https://tasknotes.dev"},tabs:{general:"Allgemein",taskProperties:"Aufgabeneigenschaften",modalFields:"Modalfelder",defaults:"Voreinstellungen & Vorlagen",appearance:"Erscheinungsbild & UI",features:"Funktionen",integrations:"Integrationen"},features:{inlineTasks:{header:"Inline-Aufgaben",description:"Einstellungen f\xFCr Aufgabenlinks und Checkbox-zu-Aufgabe-Konvertierung in Notizen."},taskCreation:{header:"Aufgabenerstellung",description:"Konfiguriere, was nach dem Erstellen von Aufgaben passiert.",openAfterCreate:{name:"Aufgabe nach Erstellung \xF6ffnen",description:"W\xE4hle, ob der normale Dialog 'Neue Aufgabe erstellen' die neue Aufgabennotiz nach dem Speichern \xF6ffnet.",options:{none:"Nicht \xF6ffnen",sameTab:"Im selben Tab \xF6ffnen",newTab:"In einem neuen Tab \xF6ffnen"}}},overlays:{taskLinkToggle:{name:"Aufgabenlink-Overlay",description:"Zeige interaktive Overlays beim Hovern \xFCber Aufgabenlinks"},aliasExclusion:{name:"Overlay f\xFCr Alias-Links deaktivieren",description:"Das Aufgaben-Widget nicht anzeigen, wenn der Link einen Alias enth\xE4lt (z.B. [[Aufgabe|Alias]])."}},instantConvert:{toggle:{name:"Konvertierungs-Button neben Checkboxen anzeigen",description:"Zeige einen Inline-Button neben Markdown-Checkboxen an, der diese in TaskNotes konvertiert"},preserveCheckbox:{name:"Checkbox beim Konvertieren beibehalten",description:"Den urspr\xFCnglichen Markdown-Checkbox-Marker beibehalten, wenn eine Checkbox in einen TaskNote-Link konvertiert wird"},folder:{name:"Ordner f\xFCr inline erstellte Aufgaben",description:"Ordner, in dem Aufgaben aus Inline-Befehlen oder Checkbox-Konvertierungen erstellt werden. Leer lassen, um den Standard-Aufgabenordner zu verwenden. Verwende {{currentNotePath}} f\xFCr den Ordner der aktuellen Notiz oder {{currentNoteTitle}} f\xFCr einen Unterordner mit dem Namen der aktuellen Notiz."}},nlp:{header:"Nat\xFCrliche Sprachverarbeitung",description:"Analysiere Daten, Priorit\xE4ten und andere Eigenschaften aus Texteingaben.",enable:{name:"Nat\xFCrliche Spracheingabe f\xFCr Aufgaben aktivieren",description:"Parse F\xE4lligkeitsdaten, Priorit\xE4ten und Kontexte aus nat\xFCrlicher Sprache beim Erstellen von Aufgaben"},defaultToScheduled:{name:"Standardm\xE4\xDFig geplant",description:"Wenn NLP ein Datum ohne Kontext erkennt, behandle es als geplant statt f\xE4llig"},language:{name:"NLP-Sprache",description:"Sprache f\xFCr nat\xFCrliche Sprachverarbeitungsmuster und Datumsanalyse"},statusTrigger:{name:"Status-Vorschlag Trigger",description:"Text zum Ausl\xF6sen von Status-Vorschl\xE4gen (leer lassen zum Deaktivieren)"}},pomodoro:{header:"Pomodoro-Timer",description:"Konfiguriere Arbeits-/Pausenintervalle f\xFCr den Pomodoro-Timer.",workDuration:{name:"Arbeitsdauer",description:"Dauer der Arbeitsintervalle in Minuten"},shortBreak:{name:"Kurze Pause",description:"Dauer der kurzen Pausen in Minuten"},longBreak:{name:"Lange Pause",description:"Dauer der langen Pausen in Minuten"},longBreakInterval:{name:"Lange Pause Intervall",description:"Anzahl der Arbeitssitzungen vor einer langen Pause"},autoStartBreaks:{name:"Pausen automatisch starten",description:"Pausentimer nach Arbeitssitzungen automatisch starten"},autoStartWork:{name:"Arbeit automatisch starten",description:"Arbeitssitzungen nach Pausen automatisch starten"},notifications:{name:"Pomodoro-Benachrichtigungen",description:"Benachrichtigungen anzeigen, wenn Pomodoro-Sitzungen enden"},mobileSidebar:{name:"Mobile Seitenleiste",description:"Wo der Pomodoro-Timer auf mobilen Ger\xE4ten ge\xF6ffnet werden soll",tab:"Notiz-Panel",left:"Linke Seitenleiste",right:"Rechte Seitenleiste"},statusBar:{name:"Pomodoro in der Statusleiste anzeigen",description:"Aktiven Pomodoro-Countdown in der Obsidian-Statusleiste anzeigen"}},uiLanguage:{header:"Oberfl\xE4chensprache",description:"\xC4ndere die Sprache der TaskNotes-Men\xFCs, Hinweise und Ansichten.",dropdown:{name:"UI-Sprache",description:"W\xE4hle die Sprache f\xFCr TaskNotes-Oberfl\xE4chentexte"}},pomodoroSound:{enabledName:"Ton aktiviert",enabledDesc:"Ton abspielen, wenn Pomodoro-Sitzungen enden",volumeName:"Tonlautst\xE4rke",volumeDesc:"Lautst\xE4rke f\xFCr Pomodoro-T\xF6ne (0-100)"},dataStorage:{name:"Pomodoro-Datenspeicherung",description:"Konfiguriere, wo Pomodoro-Sitzungsdaten gespeichert und verwaltet werden.",dailyNotes:"T\xE4gliche Notizen",pluginData:"Plugin-Daten",notices:{locationChanged:"Pomodoro-Speicherort ge\xE4ndert zu {location}"}},notifications:{header:"Benachrichtigungen",description:"Konfiguriere Aufgabenerinnerungsbenachrichtigungen und Warnungen.",enableName:"Benachrichtigungen aktivieren",enableDesc:"Aufgabenerinnerungs-Benachrichtigungen aktivieren",typeName:"Benachrichtigungstyp",typeDesc:"Art der anzuzeigenden Benachrichtigungen",systemLabel:"System-Benachrichtigungen",inAppLabel:"In-App-Benachrichtigungen",soundEnabledName:"Benachrichtigungston",soundEnabledDesc:"Ton abspielen, wenn Aufgabenerinnerungen ausgel\xF6st werden",soundVolumeName:"Tonlautst\xE4rke",soundVolumeDesc:"Lautst\xE4rke f\xFCr Aufgabenerinnerungst\xF6ne (0-100)",soundPreviewName:"Benachrichtigungston vorh\xF6ren",soundPreviewDesc:"Konfigurierten Aufgabenerinnerungston abspielen",soundPreviewButton:"Vorschau",testReminderName:"Testerinnerung senden",testReminderDesc:"Eine Testerinnerung mit dem aktuellen Benachrichtigungstyp und den Toneinstellungen senden.",testReminderButton:"Test senden"},overdue:{hideCompletedName:"Abgeschlossene Aufgaben aus \xFCberf\xE4lligen ausblenden",hideCompletedDesc:"Abgeschlossene Aufgaben aus \xFCberf\xE4lligen Aufgabenberechnungen ausschlie\xDFen"},indexing:{disableName:"Notizindexierung deaktivieren",disableDesc:"Automatische Indexierung von Notizinhalten f\xFCr bessere Leistung deaktivieren"},suggestions:{debounceName:"Vorschlag-Verz\xF6gerung",debounceDesc:"Verz\xF6gerung in Millisekunden vor dem Anzeigen von Vorschl\xE4gen"},timeTracking:{autoStopName:"Zeiterfassung automatisch stoppen",autoStopDesc:"Zeiterfassung automatisch stoppen, wenn eine Aufgabe als abgeschlossen markiert wird",stopNotificationName:"Zeiterfassung-Stopp-Benachrichtigung",stopNotificationDesc:"Benachrichtigung anzeigen, wenn Zeiterfassung automatisch gestoppt wird"},recurring:{maintainOffsetName:"F\xE4lligkeitsdatum-Offset in wiederkehrenden Aufgaben beibehalten",maintainOffsetDesc:"Den Offset zwischen F\xE4lligkeitsdatum und geplantem Datum beibehalten, wenn wiederkehrende Aufgaben abgeschlossen werden",resetCheckboxesName:"Kontrollk\xE4stchen bei Wiederholung zur\xFCcksetzen",resetCheckboxesDesc:"Alle Markdown-Kontrollk\xE4stchen im Aufgabentext zur\xFCcksetzen, wenn eine wiederkehrende Aufgabe abgeschlossen und neu geplant wird"},timeblocking:{header:"Zeitblockierung",description:"Konfiguriere Zeitblockfunktionalit\xE4t f\xFCr leichte Planung in t\xE4glichen Notizen. Ziehe in Kalenderansichten, um Ereignisse zu erstellen - w\xE4hle 'Zeitblock' aus dem Kontextmen\xFC.",enableName:"Zeitblockierung aktivieren",enableDesc:"Zeitblockfunktionalit\xE4t f\xFCr leichte Planung in t\xE4glichen Notizen aktivieren. Wenn aktiviert, erscheint die Option 'Zeitblock' im Kalender-Ziehen-Kontextmen\xFC.",showBlocksName:"Zeitbl\xF6cke anzeigen",showBlocksDesc:"Zeitbl\xF6cke aus t\xE4glichen Notizen standardm\xE4\xDFig anzeigen",defaultColorName:"Standard-Zeitblockfarbe",defaultColorDesc:"Die Standardfarbe f\xFCr neue Zeitbl\xF6cke",usage:"Verwendung: Ziehe im Kalender, um Ereignisse zu erstellen. W\xE4hle 'Zeitblock' aus dem Kontextmen\xFC (nur sichtbar, wenn Zeitblockierung aktiviert ist). Ziehe, um bestehende Zeitbl\xF6cke zu verschieben. R\xE4nder anpassen, um Dauer zu \xE4ndern."},performance:{header:"Leistung & Verhalten",description:"Konfiguriere Plugin-Leistung und Verhaltensoptionen."},timeTrackingSection:{header:"Zeiterfassung",description:"Konfiguriere automatische Zeiterfassungsverhalten."},recurringSection:{header:"Wiederkehrende Aufgaben",description:"Konfiguriere Verhalten f\xFCr wiederkehrende Aufgabenverwaltung."},debugLogging:{header:"Debug-Protokollierung",description:"Konfiguriere Debug-Protokollausgaben f\xFCr die Fehlerbehebung.",enableName:"Debug-Protokollierung aktivieren",enableDesc:"Protokolliere detaillierte Drag-and-Drop- und Ansichtsdiagnosen in der Entwicklerkonsole. N\xFCtzlich zur Fehlerbehebung."}},defaults:{header:{basicDefaults:"Grundeinstellungen",dateDefaults:"Datumsvoreinstellungen",defaultReminders:"Standard-Erinnerungen",bodyTemplate:"K\xF6rpervorlage",instantTaskConversion:"Sofortige Aufgabenkonvertierung"},description:{basicDefaults:"Setze Standardwerte f\xFCr neue Aufgaben, um die Aufgabenerstellung zu beschleunigen.",dateDefaults:"Setze Standard-F\xE4lligkeits- und Planungsdaten f\xFCr neue Aufgaben.",defaultReminders:"Konfiguriere Standard-Erinnerungen, die neuen Aufgaben hinzugef\xFCgt werden.",bodyTemplate:"Konfiguriere eine Vorlagendatei f\xFCr neue Aufgabeninhalte.",instantTaskConversion:"Konfiguriere Verhalten bei sofortiger Textkonvertierung zu Aufgaben."},basicDefaults:{defaultStatus:{name:"Standardstatus",description:"Standardstatus f\xFCr neue Aufgaben"},defaultPriority:{name:"Standardpriorit\xE4t",description:"Standardpriorit\xE4t f\xFCr neue Aufgaben"},defaultContexts:{name:"Standardkontexte",description:"Kommagetrennte Liste von Standardkontexten (z.B. @zuhause, @arbeit)",placeholder:"@zuhause, @arbeit"},defaultTags:{name:"Standard-Tags",description:"Kommagetrennte Liste von Standard-Tags (ohne #)",placeholder:"wichtig, dringend"},defaultProjects:{name:"Standardprojekte",description:"Standard-Projektlinks f\xFCr neue Aufgaben",selectButton:"Projekte ausw\xE4hlen",selectTooltip:"W\xE4hle Projektnotizen zum standardm\xE4\xDFigen Verlinken",removeTooltip:"{name} aus Standardprojekten entfernen"},useParentNoteForTaskCreation:{name:"Aktive Notiz als Projekt f\xFCr neue Aufgaben verwenden",description:"Verlinkt die aktive Notiz automatisch als Projekt, wenn die Aufgabenerstellung \xFCber Befehlspalette oder Ribbon ge\xF6ffnet wird"},useParentNoteAsProject:{name:"\xDCbergeordnete Notiz als Projekt f\xFCr Inline- und Sofortkonvertierung verwenden",description:"Verlinkt die Quellnotiz automatisch als Projekt, wenn Inline-Aufgabenerstellung oder sofortige Aufgabenkonvertierung verwendet wird"},useParentHeaderAsProject:{name:"\xDCbergeordnete \xDCberschrift als Projekt bei sofortiger Konvertierung verwenden",description:"Die n\xE4chstgelegene \xDCberschrift \xFCber der konvertierten Zeile bei sofortiger Aufgabenkonvertierung automatisch als Projekt verlinken"},defaultTimeEstimate:{name:"Standard-Zeitsch\xE4tzung",description:"Standard-Zeitsch\xE4tzung in Minuten (0 = kein Standard)",placeholder:"60"},defaultRecurrence:{name:"Standard-Wiederholung",description:"Standard-Wiederholungsmuster f\xFCr neue Aufgaben"}},dateDefaults:{defaultDueDate:{name:"Standard-F\xE4lligkeitsdatum",description:"Standard-F\xE4lligkeitsdatum f\xFCr neue Aufgaben"},defaultScheduledDate:{name:"Standard-Planungsdatum",description:"Standard-Planungsdatum f\xFCr neue Aufgaben"}},reminders:{addReminder:{name:"Standard-Erinnerung hinzuf\xFCgen",description:"Erstelle eine neue Standard-Erinnerung, die allen neuen Aufgaben hinzugef\xFCgt wird",buttonText:"Erinnerung hinzuf\xFCgen"},emptyState:"Keine Standard-Erinnerungen konfiguriert. F\xFCge eine Erinnerung hinzu, um automatisch \xFCber neue Aufgaben benachrichtigt zu werden.",emptyStateButton:"Erinnerung hinzuf\xFCgen",reminderDescription:"Erinnerungsbeschreibung",unnamedReminder:"Unbenannte Erinnerung",deleteTooltip:"Erinnerung l\xF6schen",fields:{description:"Beschreibung:",type:"Typ:",offset:"Offset:",unit:"Einheit:",direction:"Richtung:",relatedTo:"Bezogen auf:",date:"Datum:",time:"Zeit:"},types:{relative:"Relativ (vor/nach Aufgabendaten)",absolute:"Absolut (spezifisches Datum/Zeit)"},units:{minutes:"Minuten",hours:"Stunden",days:"Tage"},directions:{before:"vor",after:"nach"},relatedTo:{due:"F\xE4lligkeitsdatum",scheduled:"Planungsdatum"}},bodyTemplate:{useBodyTemplate:{name:"K\xF6rpervorlage verwenden",description:"Verwende eine Vorlagendatei f\xFCr Aufgabenk\xF6rperinhalte"},bodyTemplateFile:{name:"K\xF6rpervorlagendatei",description:"Pfad zur Vorlagendatei f\xFCr Aufgabenk\xF6rperinhalte. Unterst\xFCtzt Vorlagenvariablen wie {{title}}, {{date}}, {{time}}, {{priority}}, {{status}}, etc.",placeholder:"Templates/Aufgaben Vorlage.md",ariaLabel:"Pfad zur K\xF6rpervorlagendatei"},useOccurrenceBodyTemplate:{name:"Vorlage f\xFCr Vorkommnisnotizen verwenden",description:"Eine separate Fallback-Vorlage f\xFCr materialisierte Vorkommnisnotizen verwenden, wenn die wiederkehrende Aufgabe kein occurrence_template festlegt"},occurrenceBodyTemplateFile:{name:"Vorlagendatei f\xFCr Vorkommnisnotizen",description:"Pfad zur Vorlagendatei f\xFCr materialisierte Vorkommnisnotizen. Das occurrence_template einer wiederkehrenden Aufgabe hat Vorrang vor diesem Fallback.",placeholder:"Templates/Vorkommnis Vorlage.md",ariaLabel:"Pfad zur Vorlagendatei f\xFCr Vorkommnisnotizen"},variablesHeader:"Vorlagenvariablen:",variables:{title:"{{title}} - Aufgabentitel",details:"{{details}} - Benutzergegebene Details aus Modal",date:"{{date}} - Aktuelles Datum (YYYY-MM-DD)",time:"{{time}} - Aktuelle Zeit (HH:MM)",priority:"{{priority}} - Aufgabenpriorit\xE4t",status:"{{status}} - Aufgabenstatus",contexts:"{{contexts}} - Aufgabenkontexte",tags:"{{tags}} - Aufgaben-Tags",projects:"{{projects}} - Aufgabenprojekte"}},instantConversion:{useDefaultsOnInstantConvert:{name:"Aufgabenstandards bei sofortiger Konvertierung verwenden",description:"Standard-Aufgabeneinstellungen anwenden bei sofortiger Textkonvertierung zu Aufgaben"}},options:{noDefault:"Kein Standard",none:"Keine",today:"Heute",tomorrow:"Morgen",nextWeek:"N\xE4chste Woche",daily:"T\xE4glich",weekly:"W\xF6chentlich",monthly:"Monatlich",yearly:"J\xE4hrlich"}},general:{taskStorage:{header:"Aufgabenspeicherung",description:"Konfiguriere, wo Aufgaben gespeichert und wie sie identifiziert werden.",defaultFolder:{name:"Standard-Aufgabenordner",description:"Standardort f\xFCr neue Aufgaben. Unterst\xFCtzt Ordnervorlagen-Variablen wie {{currentNotePath}}, {{currentNoteTitle}} und {{projectFilePath}} sowie Datums-Tokens im Daily-Notes-Stil wie YYYY/MM/DD."},moveArchived:{name:"Archivierte Aufgaben in Ordner verschieben",description:"Archivierte Aufgaben automatisch in einen Archivordner verschieben"},archiveFolder:{name:"Archivordner",description:"Ordner zum Verschieben von Aufgaben beim Archivieren. Unterst\xFCtzt Template-Variablen wie {{year}}, {{month}}, {{priority}}, etc."}},taskIdentification:{header:"Aufgabenidentifikation",description:"W\xE4hle, wie TaskNotes Notizen als Aufgaben identifiziert.",identifyBy:{name:"Aufgaben identifizieren durch",description:"W\xE4hle, ob Aufgaben durch Tag oder durch eine Frontmatter-Eigenschaft identifiziert werden",options:{tag:"Tag",property:"Eigenschaft"}},taskTag:{name:"Aufgaben-Tag",description:"Tag, das Notizen als Aufgaben identifiziert (ohne #). Bestehende .base-Ansichtsfilter behalten nach dieser \xC4nderung den alten Tag; aktualisiere die Standard-Base-Dateien oder bearbeite diese Filter."},hideIdentifyingTags:{name:"Identifikations-Tags in Aufgabenkarten ausblenden",description:"Wenn aktiviert, werden Tags, die mit dem Aufgabenidentifikations-Tag \xFCbereinstimmen (einschlie\xDFlich hierarchischer \xDCbereinstimmungen wie 'task/project'), in Aufgabenkartenanzeigen ausgeblendet"},hideIdentifyingTagsMode:{name:"Umfang der ausgeblendeten Tags",description:"W\xE4hle, ob beim Ausblenden von Identifikations-Tags auch verschachtelte Tags ausgeblendet werden.",options:{all:"Aufgaben-Tag und verschachtelte Tags",exactOnly:"Nur exakter Aufgaben-Tag"}},taskProperty:{name:"Aufgabeneigenschaftsname",description:'Der Frontmatter-Eigenschaftsname (z.B. "category")'},taskPropertyValue:{name:"Aufgabeneigenschaftswert",description:'Der Wert, der eine Notiz als Aufgabe identifiziert (z.B. "task")'}},folderManagement:{header:"Ordnerverwaltung",excludedFolders:{name:"Ausgeschlossene Ordner",description:"Kommagetrennte Liste von Ordnern, die von der Aufgabenindizierung und Projektvorschl\xE4gen ausgeschlossen werden"}},frontmatter:{header:"Frontmatter",description:"Konfigurieren Sie, wie Links in Frontmatter-Eigenschaften formatiert werden.",useMarkdownLinks:{name:"Markdown-Links in Frontmatter verwenden",description:"Markdown-Links ([text](path)) anstelle von Wikilinks ([[link]]) in Frontmatter-Eigenschaften generieren.\\n\\n\u26A0\uFE0F Erfordert das Plugin 'obsidian-frontmatter-markdown-links', um korrekt zu funktionieren."}},taskInteraction:{header:"Aufgabeninteraktion",description:"Konfiguriere, wie das Klicken auf Aufgaben funktioniert.",singleClick:{name:"Einfachklick-Aktion",description:"Aktion beim Einfachklick auf eine Aufgabenkarte"},doubleClick:{name:"Doppelklick-Aktion",description:"Aktion beim Doppelklick auf eine Aufgabenkarte"},actions:{edit:"Aufgabe bearbeiten",openNote:"Notiz \xF6ffnen",none:"Keine Aktion"}},releaseNotes:{header:"Versionshinweise",description:"Aktuelle Version: {version}",showOnUpdate:{name:"Versionshinweise nach Update anzeigen",description:"Versionshinweise automatisch \xF6ffnen, wenn TaskNotes auf eine neue Version aktualisiert wird"},checkForUpdates:{name:"Beim Start nach neuen Versionen suchen",description:"Pr\xFCft GitHub einmal beim Start von TaskNotes und zeigt einen Hinweis, wenn eine neuere kompatible Version verf\xFCgbar ist"},viewButton:{name:"Versionshinweise anzeigen",description:"Sehen Sie, was in der neuesten Version von TaskNotes neu ist",buttonText:"Versionshinweise anzeigen"}}},taskProperties:{sections:{coreProperties:"Kerneigenschaften",corePropertiesDesc:"Status und Priorit\xE4t sind die Kerneigenschaften, die den Zustand und die Wichtigkeit einer Aufgabe definieren.",dateProperties:"Datumseigenschaften",datePropertiesDesc:"Konfiguriere, wann Aufgaben f\xE4llig und geplant sind.",organizationProperties:"Organisationseigenschaften",organizationPropertiesDesc:"Organisiere Aufgaben mit Kontexten, Projekten und Tags.",taskDetails:"Aufgabendetails",taskDetailsDesc:"Zus\xE4tzliche Details wie Zeitsch\xE4tzungen, Wiederholungen und Erinnerungen.",metadataProperties:"Metadaten-Eigenschaften",metadataPropertiesDesc:"Vom System verwaltete Eigenschaften zur Verfolgung der Aufgabenhistorie.",featureProperties:"Feature-Eigenschaften",featurePropertiesDesc:"Eigenschaften, die von bestimmten TaskNotes-Funktionen wie Pomodoro-Timer und Kalender-Synchronisation verwendet werden."},propertyCard:{propertyKey:"Eigenschaftsschl\xFCssel:",default:"Standard:",nlpTrigger:"NLP-Ausl\xF6ser:",triggerChar:"Ausl\xF6serzeichen:",triggerEmpty:"Ausl\xF6ser darf nicht leer sein",triggerTooLong:"Ausl\xF6ser ist zu lang (max. 10 Zeichen)"},properties:{status:{name:"Status",description:"Verfolgt den aktuellen Zustand einer Aufgabe (z.B. todo, in-bearbeitung, erledigt). Der Status bestimmt, ob eine Aufgabe als abgeschlossen erscheint und kann die automatische Archivierung ausl\xF6sen."},priority:{name:"Priorit\xE4t",description:"Zeigt die Wichtigkeit der Aufgabe an. Wird zum Sortieren und Filtern verwendet. Werte werden in Bases-Ansichten alphabetisch sortiert, verwende daher Pr\xE4fixe wie 1-, 2- zur Steuerung der Reihenfolge."},due:{name:"F\xE4lligkeitsdatum",description:"Der Termin, bis zu dem eine Aufgabe abgeschlossen sein muss. Aufgaben nach ihrem F\xE4lligkeitsdatum erscheinen als \xFCberf\xE4llig. Wird als Datum im Frontmatter gespeichert."},scheduled:{name:"Geplantes Datum",description:"Wann du planst, an einer Aufgabe zu arbeiten. Im Gegensatz zum F\xE4lligkeitsdatum repr\xE4sentiert dies deine beabsichtigte Startzeit. Aufgaben erscheinen im Kalender zu ihrem geplanten Datum/Uhrzeit."},contexts:{name:"Kontexte",description:"Orte oder Bedingungen, unter denen eine Aufgabe erledigt werden kann (z.B. @zuhause, @b\xFCro, @telefon). N\xFCtzlich zum Filtern von Aufgaben nach deiner aktuellen Situation. Wird als Liste gespeichert."},projects:{name:"Projekte",description:"Links zu Projektnotizen, zu denen diese Aufgabe geh\xF6rt. Wird als Wikilinks gespeichert (z.B. [[Projektname]]). Aufgaben k\xF6nnen zu mehreren Projekten geh\xF6ren."},tags:{name:"Tags",description:"Native Obsidian-Tags zur Kategorisierung von Aufgaben. Diese werden in der Tags-Frontmatter-Eigenschaft gespeichert und funktionieren mit Obsidians Tag-Funktionen."},timeEstimate:{name:"Zeitsch\xE4tzung",description:"Gesch\xE4tzte Minuten zur Fertigstellung der Aufgabe. Wird f\xFCr Zeitplanung und Arbeitsbelastungsplanung verwendet. Wird auf Aufgabenkarten und Kalenderereignissen angezeigt."},recurrence:{name:"Wiederholung",description:"Muster f\xFCr wiederholende Aufgaben (t\xE4glich, w\xF6chentlich, monatlich, j\xE4hrlich oder benutzerdefinierte RRULE). Wenn eine wiederkehrende Aufgabe abgeschlossen wird, wird ihr geplantes Datum automatisch auf das n\xE4chste Vorkommen aktualisiert."},recurrenceAnchor:{name:"Wiederholungsanker",description:"Bestimmt, wie das n\xE4chste Vorkommen berechnet wird: 'scheduled' verwendet das geplante Datum, 'completion' verwendet das tats\xE4chliche Abschlussdatum."},reminders:{name:"Erinnerungen",description:"Benachrichtigungen, die vor F\xE4lligkeits- oder geplanten Terminen ausgel\xF6st werden. Wird als Liste von Erinnerungsobjekten mit Timing und optionaler Beschreibung gespeichert."},title:{name:"Titel",description:"Der Aufgabenname. Kann im Frontmatter oder im Dateinamen gespeichert werden (wenn 'Titel im Dateinamen speichern' aktiviert ist)."},dateCreated:{name:"Erstellungsdatum",description:"Zeitstempel, wann die Aufgabe erstellt wurde. Wird automatisch gesetzt und zum Sortieren nach Erstellungsreihenfolge verwendet."},dateModified:{name:"\xC4nderungsdatum",description:"Zeitstempel der letzten \xC4nderung an der Aufgabe. Wird automatisch aktualisiert, wenn sich eine Aufgabeneigenschaft \xE4ndert."},completedDate:{name:"Abschlussdatum",description:"Zeitstempel, wann die Aufgabe als erledigt markiert wurde. Wird automatisch gesetzt, wenn der Status auf einen abgeschlossenen Zustand wechselt."},archiveTag:{name:"Archiv-Tag",description:"Tag, das zu Aufgaben hinzugef\xFCgt wird, wenn sie archiviert werden. Wird verwendet, um archivierte Aufgaben zu identifizieren und kann das Verschieben von Dateien in den Archivordner ausl\xF6sen."},timeEntries:{name:"Zeiteintr\xE4ge",description:"Aufzeichnungen von Zeiterfassungssitzungen f\xFCr diese Aufgabe. Jeder Eintrag speichert Start- und Endzeitstempel. Wird zur Berechnung der Gesamtzeit verwendet."},completeInstances:{name:"Abgeschlossene Instanzen",description:"Abschlusshistorie f\xFCr wiederkehrende Aufgaben. Speichert Daten, an denen jede Instanz abgeschlossen wurde, um doppelte Abschl\xFCsse zu verhindern."},skippedInstances:{name:"\xDCbersprungene Instanzen",description:"\xDCbersprungene Vorkommen f\xFCr wiederkehrende Aufgaben. Speichert Daten von Instanzen, die \xFCbersprungen statt abgeschlossen wurden."},blockedBy:{name:"Blockiert durch",description:"Links zu Aufgaben, die vor dieser abgeschlossen werden m\xFCssen. Wird als Wikilinks gespeichert. Blockierte Aufgaben zeigen einen visuellen Indikator an."},sortOrder:{name:"Manuelle Reihenfolge",description:"Die Frontmatter-Eigenschaft f\xFCr die manuelle Sortierung per Drag-and-Drop. Die Ansicht muss nach dieser Eigenschaft sortiert sein, damit Drag-and-Drop-Reihenfolge funktioniert."},pomodoros:{name:"Pomodoros",description:"Anzahl abgeschlossener Pomodoro-Sitzungen. Wenn die Datenspeicherung auf 'Tagesnotizen' eingestellt ist, wird dies in Tagesnotizen statt in Aufgabendateien geschrieben."},icsEventId:{name:"ICS-Ereignis-ID",description:"Eindeutige Kennung, die eine Notiz mit einem ICS-Kalenderereignis verkn\xFCpft. Wird automatisch hinzugef\xFCgt, wenn Notizen aus Kalenderereignissen erstellt werden."},icsEventTag:{name:"ICS-Ereignis-Tag",description:"Tag zur Identifizierung von Notizen, die aus ICS-Kalenderereignissen erstellt wurden. Wird verwendet, um kalendergenerierte Notizen von regul\xE4ren Aufgaben zu unterscheiden."}},statusCard:{valuesHeader:"Statuswerte"},priorityCard:{valuesHeader:"Priorit\xE4tswerte"},projectsCard:{defaultProjects:"Standardprojekte:",useParentNoteForTaskCreation:"Aktive Notiz f\xFCr neue Aufgaben verwenden:",useParentNoteForInlineTasks:"\xDCbergeordnete Notiz f\xFCr Inline-/Sofortkonvertierung verwenden:",useParentHeader:"\xDCbergeordnete \xDCberschrift als Projekt verwenden:",inheritParentTaskProperties:"Eigenschaften der \xFCbergeordneten Aufgabe f\xFCr Unteraufgaben \xFCbernehmen:",noDefaultProjects:"Keine Standardprojekte ausgew\xE4hlt",autosuggestFilters:"Autovorschlag-Filter",customizeDisplay:"Anzeige anpassen",filtersOn:"Filter aktiv"},titleCard:{storeTitleInFilename:"Titel im Dateinamen speichern:",storedInFilename:"Im Dateinamen gespeichert",filenameUpdatesWithTitle:"Der Dateiname wird automatisch aktualisiert, wenn sich der Aufgabentitel \xE4ndert.",filenameFormat:"Dateinamenformat:",customTemplate:"Benutzerdefinierte Vorlage:",legacySyntaxWarning:"Die Syntax mit einfachen Klammern wie {title} ist veraltet. Bitte verwenden Sie stattdessen die Syntax mit doppelten Klammern {{title}} f\xFCr Konsistenz mit Body-Vorlagen.",occurrenceFilenameTemplate:"Dateinamenvorlage f\xFCr Vorkommen",occurrenceFilenameTemplateHelp:"Dateinamenvorlage f\xFCr materialisierte Vorkommen wiederkehrender Aufgaben. Leer lassen, um den bisherigen Namen beizubehalten (Titel der \xFCbergeordneten Aufgabe plus Zahlensuffix). W\xE4hle die Granularit\xE4t ausdr\xFCcklich mit {{occurrenceDate}}, {{occurrenceWeek}}, {{occurrenceMonth}}, {{occurrenceYear}} oder {{occurrenceMonthName}}. Alle regul\xE4ren Dateinamensvariablen funktionieren ebenfalls. Eine \xFCbergeordnete Aufgabe kann diese Vorlage \xFCber die unten konfigurierte Frontmatter-Eigenschaft \xFCberschreiben.",occurrenceFilenameProperty:"Override-Eigenschaft f\xFCr Vorkommensvorlagen",occurrenceFilenamePropertyHelp:"Name der Frontmatter-Eigenschaft einer wiederkehrenden \xFCbergeordneten Aufgabe, die die Dateinamenvorlage ihrer Vorkommen \xFCberschreibt."},tagsCard:{nativeObsidianTags:"Verwendet native Obsidian-Tags"},remindersCard:{defaultReminders:"Standarderinnerungen"},taskStatuses:{header:"Aufgabenstatus",description:"Passe die verf\xFCgbaren Statusoptionen f\xFCr deine Aufgaben an. Diese Status steuern den Aufgabenlebenszyklus und bestimmen, wann Aufgaben als abgeschlossen gelten.",howTheyWork:{title:"Wie Status funktionieren:",value:'Wert: Der interne Bezeichner, der in deinen Aufgabendateien gespeichert wird (z.B. "in-progress")',label:'Label: Der Anzeigename in der Benutzeroberfl\xE4che (z.B. "In Bearbeitung")',color:"Farbe: Visuelle Indikatorfarbe f\xFCr Statuspunkt und Abzeichen",icon:'Symbol: Optionaler Lucide-Symbolname zur Anzeige anstelle des farbigen Punktes (z.B. "check", "circle", "clock"). Symbole unter lucide.dev durchsuchen',completed:"Abgeschlossen: Wenn angehakt, werden Aufgaben mit diesem Status als fertig betrachtet und k\xF6nnen anders gefiltert werden",autoArchive:"Auto-Archivierung: Wenn aktiviert, werden Aufgaben nach der angegebenen Verz\xF6gerung automatisch archiviert (1-1440 Minuten)",orderNote:"Die Reihenfolge unten bestimmt die Sequenz beim Durchschalten der Status durch Klicken auf Aufgabenstatus-Abzeichen."},addNew:{name:"Neuen Status hinzuf\xFCgen",description:"Erstelle eine neue Statusoption f\xFCr deine Aufgaben",buttonText:"Status hinzuf\xFCgen"},validationNote:'Hinweis: Du musst mindestens 2 Status haben, und mindestens ein Status muss als "Abgeschlossen" markiert sein.',emptyState:"Keine benutzerdefinierten Status konfiguriert. F\xFCge einen Status hinzu, um zu beginnen.",emptyStateButton:"Status hinzuf\xFCgen",fields:{value:"Wert:",label:"Label:",color:"Farbe:",icon:"Symbol:",completed:"Abgeschlossen:",excludeFromCycle:"Beim Durchlaufen \xFCberspringen:",nextStatus:"N\xE4chster Status:",autoArchive:"Auto-Archivierung:",delayMinutes:"Verz\xF6gerung (Minuten):"},placeholders:{value:"in-bearbeitung",label:"In Bearbeitung",icon:"check, circle, clock",nextStatusDefault:"Statusreihenfolge verwenden"},badges:{completed:"Abgeschlossen"},deleteConfirm:'Bist du sicher, dass du den Status "{label}" l\xF6schen m\xF6chtest?'},taskPriorities:{header:"Aufgabenpriorit\xE4ten",description:"Passe die verf\xFCgbaren Priorit\xE4tsstufen f\xFCr deine Aufgaben an. Ab v4.0+ werden Priorit\xE4ten in Bases-Ansichten alphabetisch nach ihrem Wert sortiert.",howTheyWork:{title:"Wie Priorit\xE4ten funktionieren:",value:'Wert: Der interne Bezeichner, der in deinen Aufgabendateien gespeichert wird. Verwende Pr\xE4fixe wie "1-dringend", "2-hoch", um die Sortierreihenfolge in Bases-Ansichten zu steuern.',label:'Anzeigelabel: Der Anzeigename in der Benutzeroberfl\xE4che (z.B. "Hohe Priorit\xE4t")',color:"Farbe: Visuelle Indikatorfarbe f\xFCr Priorit\xE4tspunkt und Abzeichen",icon:"Symbol: Optionales Lucide-Symbol, das auf Aufgabenkarten statt des Priorit\xE4tspunkts angezeigt wird",weight:"Gewicht: Numerischer Wert f\xFCr Sortierung (h\xF6here Gewichte erscheinen zuerst in Listen)",weightNote:"Aufgaben werden automatisch nach Priorit\xE4tsgewicht in absteigender Reihenfolge sortiert (h\xF6chstes Gewicht zuerst). Gewichte k\xF6nnen beliebige positive Zahlen sein."},addNew:{name:"Neue Priorit\xE4t hinzuf\xFCgen",description:"Erstelle eine neue Priorit\xE4tsstufe f\xFCr deine Aufgaben",buttonText:"Priorit\xE4t hinzuf\xFCgen"},validationNote:"Hinweis: Du musst mindestens 1 Priorit\xE4t haben. Priorit\xE4ten werden alphabetisch nach Wert in Bases-Ansichten sortiert.",emptyState:"Keine benutzerdefinierten Priorit\xE4ten konfiguriert. F\xFCge eine Priorit\xE4t hinzu, um zu beginnen.",emptyStateButton:"Priorit\xE4t hinzuf\xFCgen",fields:{value:"Wert:",label:"Label:",color:"Farbe:",icon:"Symbol:",weight:"Gewicht:"},placeholders:{value:"hoch",label:"Hohe Priorit\xE4t",icon:"alert-circle"},weightLabel:"Gewicht: {weight}",deleteConfirm:"Du musst mindestens eine Priorit\xE4t haben",deleteTooltip:"Priorit\xE4t l\xF6schen"},fieldMapping:{header:"Feldzuordnung",warning:"\u26A0\uFE0F Warnung: TaskNotes wird diese Eigenschaftsnamen LESEN UND SCHREIBEN. Das \xC4ndern nach dem Erstellen von Aufgaben kann Inkonsistenzen verursachen.",description:"Konfiguriere, welche Frontmatter-Eigenschaften TaskNotes f\xFCr jedes Feld verwenden soll.",resetButton:{name:"Feldzuordnungen zur\xFCcksetzen",description:"Alle Feldzuordnungen auf Standardwerte zur\xFCcksetzen",buttonText:"Auf Standard zur\xFCcksetzen"},notices:{resetSuccess:"Feldzuordnungen auf Standard zur\xFCckgesetzt",resetFailure:"Feldzuordnungen konnten nicht zur\xFCckgesetzt werden",updateFailure:"Feldzuordnung f\xFCr {label} konnte nicht aktualisiert werden. Bitte versuche es erneut."},table:{fieldHeader:"TaskNotes-Feld",propertyHeader:"Dein Eigenschaftsname"},fields:{title:"Titel",status:"Status",priority:"Priorit\xE4t",due:"F\xE4lligkeitsdatum",scheduled:"Planungsdatum",contexts:"Kontexte",projects:"Projekte",timeEstimate:"Zeitsch\xE4tzung",recurrence:"Wiederholung",dateCreated:"Erstellungsdatum",completedDate:"Abschlussdatum",dateModified:"\xC4nderungsdatum",archiveTag:"Archiv-Tag",timeEntries:"Zeiteintr\xE4ge",completeInstances:"Abgeschlossene Instanzen",blockedBy:"Blockiert von",sortOrder:"Manuelle Reihenfolge",pomodoros:"Pomodoros",icsEventId:"ICS-Event-ID",icsEventTag:"ICS-Event-Tag",reminders:"Erinnerungen"}},customUserFields:{header:"Benutzerdefinierte Felder",description:"Definiere benutzerdefinierte Frontmatter-Eigenschaften, die als typisierte Filteroptionen in allen Ansichten erscheinen. Jede Zeile: Anzeigename, Eigenschaftsname, Typ.",addNew:{name:"Neues Benutzerfeld hinzuf\xFCgen",description:"Erstelle ein neues benutzerdefiniertes Feld, das in Filtern und Ansichten erscheint",buttonText:"Benutzerfeld hinzuf\xFCgen"},emptyState:"Keine benutzerdefinierten Felder konfiguriert. F\xFCge ein Feld hinzu, um benutzerdefinierte Eigenschaften f\xFCr deine Aufgaben zu erstellen.",emptyStateButton:"Benutzerfeld hinzuf\xFCgen",fields:{displayName:"Anzeigename:",propertyKey:"Eigenschaftsschl\xFCssel:",type:"Typ:",defaultValue:"Standardwert:"},placeholders:{displayName:"Anzeigename",propertyKey:"eigenschafts-name",defaultValue:"Standardwert",defaultValueList:"Standardwerte (kommagetrennt)"},types:{text:"Text",number:"Zahl",boolean:"Boolean",date:"Datum",list:"Liste"},defaultNames:{unnamedField:"Unbenanntes Feld",noKey:"kein-schl\xFCssel"},deleteTooltip:"Feld l\xF6schen",autosuggestFilters:{header:"Autovervollst\xE4ndigungsfilter (Erweitert)",description:"Filtern Sie, welche Dateien in Autovervollst\xE4ndigungsvorschl\xE4gen f\xFCr dieses Feld angezeigt werden"}}},appearance:{taskCards:{header:"Aufgabenkarten",description:"Konfiguriere, wie Aufgabenkarten in allen Ansichten angezeigt werden.",defaultVisibleProperties:{name:"Standard sichtbare Eigenschaften",description:"W\xE4hle, welche Eigenschaften standardm\xE4\xDFig auf Aufgabenkarten erscheinen."},propertyGroups:{coreProperties:"KERNEIGENSCHAFTEN",organization:"ORGANISATION",customProperties:"BENUTZERDEFINIERTE EIGENSCHAFTEN"},properties:{status:"Statuspunkt",priority:"Priorit\xE4tspunkt",due:"F\xE4lligkeitsdatum",scheduled:"Planungsdatum",timeEstimate:"Zeitsch\xE4tzung",totalTrackedTime:"Gesamte erfasste Zeit",checklistProgress:"Checklistenfortschritt",recurrence:"Wiederholung",completedDate:"Abschlussdatum",createdDate:"Erstellungsdatum",modifiedDate:"\xC4nderungsdatum",projects:"Projekte",contexts:"Kontexte",tags:"Tags",blocked:"Blockiert",blocking:"Blockierend"}},taskFilenames:{header:"Aufgabendateinamen",description:"Konfiguriere, wie Aufgabendateien beim Erstellen benannt werden.",storeTitleInFilename:{name:"Titel im Dateinamen speichern",description:"Verwende den Aufgabentitel als Dateinamen. Dateiname wird aktualisiert, wenn der Aufgabentitel ge\xE4ndert wird (Empfohlen)."},filenameFormat:{name:"Dateinamenformat",description:"Wie Aufgabendateinamen generiert werden sollen",options:{title:"Aufgabentitel (Nicht-aktualisierend)",zettel:"Zettelkasten-Format (JJMMTT + base36 Sekunden seit Mitternacht)",timestamp:"Vollst\xE4ndiger Zeitstempel (YYYY-MM-DD-HHMMSS)",custom:"Benutzerdefinierte Vorlage",uuid:"UUID v4"}},customTemplate:{name:"Benutzerdefinierte Dateinamenvorlage",description:"Vorlage f\xFCr benutzerdefinierte Dateinamen. Verf\xFCgbare Variablen: {{title}}, {{titleLower}}, {{titleUpper}}, {{titleSnake}}, {{titleKebab}}, {{titleCamel}}, {{titlePascal}}, {{date}}, {{shortDate}}, {{time}}, {{time12}}, {{time24}}, {{timestamp}}, {{dateTime}}, {{year}}, {{month}}, {{monthName}}, {{monthNameShort}}, {{day}}, {{dayName}}, {{dayNameShort}}, {{hour}}, {{hour12}}, {{minute}}, {{second}}, {{milliseconds}}, {{ms}}, {{ampm}}, {{week}}, {{quarter}}, {{unix}}, {{unixMs}}, {{timezone}}, {{timezoneShort}}, {{utcOffset}}, {{utcOffsetShort}}, {{utcZ}}, {{zettel}}, {{uuid}}, {{nano}}, {{priority}}, {{priorityShort}}, {{status}}, {{statusShort}}, {{dueDate}}, {{scheduledDate}}",placeholder:"{{date}}-{{title}}-{{dueDate}}",helpText:"Hinweis: {{dueDate}} und {{scheduledDate}} sind im Format YYYY-MM-DD und werden leer sein, wenn nicht gesetzt."}},displayFormatting:{header:"Anzeigeformatierung",description:"Konfiguriere, wie Daten, Zeiten und andere Daten im Plugin angezeigt werden.",timeFormat:{name:"Zeitformat",description:"Zeit im 12-Stunden- oder 24-Stunden-Format im gesamten Plugin anzeigen",options:{twelveHour:"12-Stunden (AM/PM)",twentyFourHour:"24-Stunden"}}},calendarView:{header:"Kalenderansicht",description:"Passe das Erscheinungsbild und Verhalten der Kalenderansicht an.",defaultView:{name:"Standardansicht",description:"Die Kalenderansicht, die beim \xD6ffnen des Kalendertabs angezeigt wird",options:{monthGrid:"Monatsraster",weekTimeline:"Wochen-Timeline",dayTimeline:"Tages-Timeline",yearView:"Jahresansicht",customMultiDay:"Benutzerdefinierte mehrt\xE4gige"}},customDayCount:{name:"Benutzerdefinierte Ansicht Tageanzahl",description:"Anzahl der Tage in der benutzerdefinierten mehrt\xE4gigen Ansicht",placeholder:"3"},firstDayOfWeek:{name:"Erster Tag der Woche",description:"Welcher Tag soll die erste Spalte in Wochenansichten sein"},showWeekends:{name:"Wochenenden anzeigen",description:"Wochenenden in Kalenderansichten anzeigen"},showWeekNumbers:{name:"Wochennummern anzeigen",description:"Wochennummern in Kalenderansichten anzeigen"},showTodayHighlight:{name:"Heute-Hervorhebung anzeigen",description:"Den aktuellen Tag in Kalenderansichten hervorheben"},showCurrentTimeIndicator:{name:"Aktuelle Zeit-Indikator anzeigen",description:"Eine Linie anzeigen, die die aktuelle Zeit in Timeline-Ansichten zeigt"},selectionMirror:{name:"Auswahlspiegel",description:"Visuelle Vorschau beim Ziehen zur Auswahl von Zeitbereichen anzeigen"},calendarLocale:{name:"Kalendersprache",description:'Kalendersprache f\xFCr Datumsformatierung und Kalendersystem (z.B. "en", "fa" f\xFCr Farsi/Persisch, "de" f\xFCr Deutsch). Leer lassen f\xFCr automatische Erkennung vom Browser.',placeholder:"Automatische Erkennung",invalidLocale:"Ung\xFCltige Gebietsschema-Einstellung. Bitte geben Sie ein g\xFCltiges Sprachk\xFCrzel ein (z.B. 'de', 'en', 'fr-FR')."}},defaultEventVisibility:{header:"Standard-Event-Sichtbarkeit",description:"Konfiguriere, welche Event-Typen standardm\xE4\xDFig beim \xD6ffnen des Kalenders sichtbar sind. Benutzer k\xF6nnen diese trotzdem in der Kalenderansicht ein-/ausschalten.",showScheduledTasks:{name:"Geplante Aufgaben anzeigen",description:"Aufgaben mit geplanten Daten standardm\xE4\xDFig anzeigen"},showDueDates:{name:"F\xE4lligkeitsdaten anzeigen",description:"Aufgaben-F\xE4lligkeitsdaten standardm\xE4\xDFig anzeigen"},showDueWhenScheduled:{name:"F\xE4lligkeitsdaten bei geplanten anzeigen",description:"F\xE4lligkeitsdaten auch f\xFCr Aufgaben anzeigen, die bereits geplante Daten haben"},showTimeEntries:{name:"Zeiteintr\xE4ge anzeigen",description:"Abgeschlossene Zeiterfassungseintr\xE4ge standardm\xE4\xDFig anzeigen"},showRecurringTasks:{name:"Wiederkehrende Aufgaben anzeigen",description:"Wiederkehrende Aufgabeninstanzen standardm\xE4\xDFig anzeigen"},showICSEvents:{name:"ICS-Events anzeigen",description:"Events aus ICS-Abonnements standardm\xE4\xDFig anzeigen"}},timeSettings:{header:"Zeiteinstellungen",description:"Konfiguriere zeitbezogene Anzeigeeinstellungen f\xFCr Timeline-Ansichten.",timeSlotDuration:{name:"Zeitslot-Dauer",description:"Dauer jedes Zeitslots in Timeline-Ansichten",options:{fifteenMinutes:"15 Minuten",thirtyMinutes:"30 Minuten",sixtyMinutes:"60 Minuten"}},startTime:{name:"Startzeit",description:"Fr\xFCheste Zeit in Timeline-Ansichten (HH:MM Format)",placeholder:"06:00"},endTime:{name:"Endzeit",description:"Sp\xE4teste Zeit, die in Timeline-Ansichten angezeigt wird (HH:MM-Format). Verwende Werte \xFCber 24:00, um fr\xFChe Stunden des n\xE4chsten Tages anzuzeigen, z. B. 26:00 f\xFCr 2 Uhr morgens.",placeholder:"26:00"},initialScrollTime:{name:"Anfangs-Scrollzeit",description:"Zeit, zu der beim \xD6ffnen von Timeline-Ansichten gescrollt wird (HH:MM Format)",placeholder:"09:00"},eventMinHeight:{name:"Event-Mindesth\xF6he",description:"Mindesth\xF6he f\xFCr Events in Timeline-Ansichten (Pixel)",placeholder:"15"}},uiElements:{header:"UI-Elemente",description:"Konfiguriere die Anzeige verschiedener UI-Elemente.",showTrackedTasksInStatusBar:{name:"Verfolgte Aufgaben in Statusleiste anzeigen",description:"Aktuell verfolgte Aufgaben in Obsidians Statusleiste anzeigen"},showProjectSubtasksWidget:{name:"Projekt-Unteraufgaben-Widget anzeigen",description:"Ein Widget anzeigen, das Unteraufgaben f\xFCr die aktuelle Projektnotiz zeigt"},projectSubtasksPosition:{name:"Projekt-Unteraufgaben-Position",description:"Wo das Projekt-Unteraufgaben-Widget positioniert werden soll",options:{top:"Oben in der Notiz",bottom:"Unten in der Notiz"}},showRelationshipsWidget:{name:"Beziehungen-Widget anzeigen",description:"Ein Widget anzeigen, das alle Beziehungen f\xFCr die aktuelle Notiz zeigt (Unteraufgaben, Projekte, Abh\xE4ngigkeiten)"},relationshipsPosition:{name:"Beziehungen-Position",description:"Wo das Beziehungen-Widget positioniert werden soll",options:{top:"Oben in der Notiz",bottom:"Unten in der Notiz"}},showTaskCardInNote:{name:"Aufgabenkarte in Notiz anzeigen",description:"Eine Aufgabenkarten-Widget oben in Aufgabennotizen anzeigen, das die Aufgabendetails und Aktionen zeigt"},showCompletedTaskStrikethrough:{name:"Titel erledigter Aufgaben durchstreichen",description:"Zeichnet eine Linie durch Titel erledigter Aufgabenkarten. Deaktivieren, damit erledigte Aufgaben leichter lesbar bleiben"},showExpandableSubtasks:{name:"Ausklappbare Unteraufgaben anzeigen",description:"Aus-/Einklappen von Unteraufgaben-Abschnitten in Aufgabenkarten erlauben"},expandSubtasksByDefault:{name:"Unteraufgaben standardm\xE4\xDFig ausklappen",description:"Projekt-Unteraufgaben beim Anzeigen von Aufgabenkarten automatisch ausgeklappt anzeigen"},subtaskChevronPosition:{name:"Unteraufgaben-Chevron-Position",description:"Position der Aus-/Einklappen-Chevrons in Aufgabenkarten",options:{left:"Linke Seite",right:"Rechte Seite"}},viewsButtonAlignment:{name:"Ansichten-Button-Ausrichtung",description:"Ausrichtung des Ansichten/Filter-Buttons in der Aufgabenoberfl\xE4che",options:{left:"Linke Seite",right:"Rechte Seite"}}},projectAutosuggest:{header:"Projekt-Autovorschlag",description:"Passe an, wie Projektvorschl\xE4ge w\xE4hrend der Aufgabenerstellung angezeigt werden.",requiredTags:{name:"Erforderliche Tags",description:"Nur Notizen mit beliebigen dieser Tags anzeigen (kommagetrennt). Leer lassen f\xFCr alle Notizen.",placeholder:"projekt, aktiv, wichtig"},includeFolders:{name:"Ordner einschlie\xDFen",description:"Nur Notizen in diesen Ordnern anzeigen (kommagetrennte Pfade). Leer lassen f\xFCr alle Ordner.",placeholder:"Projekte/, Arbeit/Aktiv, Pers\xF6nlich"},requiredPropertyKey:{name:"Erforderlicher Eigenschaftsschl\xFCssel",description:"Nur Notizen anzeigen, wo diese Frontmatter-Eigenschaft dem unten stehenden Wert entspricht. Leer lassen zum Ignorieren.",placeholder:"typ"},requiredPropertyValue:{name:"Erforderlicher Eigenschaftswert",description:"Nur Notizen, wo die Eigenschaft diesem Wert entspricht, werden vorgeschlagen. Leer lassen, um zu verlangen, dass die Eigenschaft existiert.",placeholder:"projekt"},customizeDisplay:{name:"Vorschlagsanzeige anpassen",description:"Erweiterte Optionen anzeigen, um zu konfigurieren, wie Projektvorschl\xE4ge erscheinen und welche Informationen sie anzeigen."},enableFuzzyMatching:{name:"Unscharfe Suche aktivieren",description:"Tippfehler und Teil\xFCbereinstimmungen in Projektsuche erlauben. Kann in gro\xDFen Vaults langsamer sein."},displayRowsHelp:"Konfiguriere bis zu 3 Informationszeilen f\xFCr jeden Projektvorschlag.",displayRows:{row1:{name:"Zeile 1",description:"Format: {eigenschaft|flags}. Eigenschaften: title, aliases, file.path, file.parent. Flags: n(Label) zeigt Label, s macht suchbar. Beispiel: {title|n(Titel)|s}",placeholder:"{title|n(Titel)}"},row2:{name:"Zeile 2 (optional)",description:"H\xE4ufige Muster: {aliases|n(Aliase)}, {file.parent|n(Ordner)}, literal:Benutzerdefinierter Text",placeholder:"{aliases|n(Aliase)}"},row3:{name:"Zeile 3 (optional)",description:"Zus\xE4tzliche Infos wie {file.path|n(Pfad)} oder benutzerdefinierte Frontmatter-Felder",placeholder:"{file.path|n(Pfad)}"}},quickReference:{header:"Schnellreferenz",properties:"Verf\xFCgbare Eigenschaften: title, aliases, file.path, file.parent, oder beliebige Frontmatter-Felder",labels:'Labels hinzuf\xFCgen: {title|n(Titel)} \u2192 "Titel: Mein Projekt"',searchable:"Suchbar machen: {description|s} schlie\xDFt Beschreibung in + Suche ein",staticText:"Statischer Text: literal:Mein benutzerdefiniertes Label",alwaysSearchable:"Dateiname, Titel und Aliase sind standardm\xE4\xDFig immer suchbar."}},dataStorage:{name:"Speicherort",description:"Wo Pomodoro-Sitzungshistorie gespeichert werden soll",pluginData:"Plugin-Daten (empfohlen)",dailyNotes:"T\xE4gliche Notizen",notices:{locationChanged:"Pomodoro-Speicherort ge\xE4ndert zu {location}"}},notifications:{description:"Konfiguriere Aufgabenerinnerungs-Benachrichtigungen und Alarme."},performance:{description:"Konfiguriere Plugin-Leistung und Verhaltensoptionen."},timeTrackingSection:{description:"Konfiguriere automatische Zeiterfassungsverhalten."},recurringSection:{description:"Konfiguriere Verhalten f\xFCr wiederkehrende Aufgabenverwaltung."}},integrations:{mobileCalendar:{disable:{name:"Kalenderintegrationen auf Mobilger\xE4ten deaktivieren",description:"Google-, Microsoft- und ICS-Kalender auf Obsidian Mobile nicht laden. Desktop-Kalenderintegrationen bleiben unver\xE4ndert."},status:{name:"Kalenderintegrationen sind auf diesem Mobilger\xE4t deaktiviert",description:"Deaktiviere diese Einstellung und lade Obsidian Mobile neu, um Kalender wieder zu laden."}},basesIntegration:{header:"Bases-Integration",description:"Konfiguriere Integration mit dem Obsidian Bases Plugin. Dies ist eine experimentelle Funktion und basiert derzeit auf undokumentierten Obsidian APIs. Das Verhalten kann sich \xE4ndern oder brechen.",enable:{name:"Bases-Integration aktivieren",description:"TaskNotes-Ansichten zur Verwendung im Obsidian Bases Plugin aktivieren. Bases Plugin muss aktiviert sein, damit dies funktioniert."},viewCommands:{header:"Ansichten & Base-Dateien",description:"TaskNotes verwendet Obsidian Bases-Dateien (.base) zur Darstellung seiner Ansichten. Diese Dateien werden beim Start automatisch erstellt, falls sie nicht existieren, und mit deinen aktuellen Einstellungen konfiguriert (Aufgabenidentifikation, Feldzuordnungen, Status usw.).",descriptionRegen:"Base-Dateien werden nicht automatisch aktualisiert, wenn du Einstellungen \xE4nderst. Um neue Einstellungen anzuwenden, verwende unten \u201EDateien aktualisieren\u201C, l\xF6sche die vorhandenen .base-Dateien und starte Obsidian neu oder bearbeite sie manuell.",docsLink:"Dokumentation f\xFCr verf\xFCgbare Formeln und Anpassungsoptionen anzeigen",docsLinkUrl:"https://tasknotes.dev/views/default-base-templates",commands:{miniCalendar:"Mini-Kalenderansicht \xF6ffnen",kanban:"Kanban-Ansicht \xF6ffnen",tasks:"Aufgabenansicht \xF6ffnen",advancedCalendar:"Erweiterte Kalenderansicht \xF6ffnen",agenda:"Agenda-Ansicht \xF6ffnen",relationships:"Beziehungs-Widget",pomodoroStats:"Pomodoro-Statistik-Base"},fileLabel:"Datei: {path}",resetButton:"Zur\xFCcksetzen",resetTooltip:"Auf Standardpfad zur\xFCcksetzen",pomodoroDailyNotesHint:"Die generierte Pomodoro-Statistik-Base liest den Pomodoro-Verlauf aus t\xE4glichen Notizen. Wenn dein Verlauf noch in Plugin-Daten gespeichert ist, migriere ihn in den Einstellungen, bevor du diese Base-Datei verwendest."},autoCreateDefaultFiles:{name:"Standarddateien automatisch erstellen",description:"Fehlende Standard-Base-Ansichtsdateien beim Start automatisch erstellen. Deaktivieren, um zu verhindern, dass gel\xF6schte Beispieldateien neu erstellt werden."},createDefaultFiles:{name:"Standarddateien erstellen",description:"Erstelle die Standard-.base-Dateien im TaskNotes/Views/-Verzeichnis. Vorhandene Dateien werden nicht \xFCberschrieben.",buttonText:"Dateien erstellen"},exportV3Views:{name:"V3-gespeicherte Ansichten nach Bases exportieren",description:"Konvertiere alle deine gespeicherten Ansichten aus TaskNotes v3 in eine einzige .base-Datei mit mehreren Ansichten. Dies hilft bei der Migration deiner v3-Filterkonfigurationen zum neuen Bases-System.",buttonText:"V3-Ansichten exportieren",noViews:"Keine gespeicherten Ansichten zum Exportieren",fileExists:"Datei existiert bereits",confirmOverwrite:'Eine Datei namens "{fileName}" existiert bereits. \xDCberschreiben?',success:"{count} gespeicherte Ansichten nach {filePath} exportiert",error:"Fehler beim Exportieren von Ansichten: {message}"},notices:{enabled:"Bases-Integration aktiviert. Bitte starte Obsidian neu, um die Einrichtung abzuschlie\xDFen.",disabled:"Bases-Integration deaktiviert. Bitte starte Obsidian neu, um die Entfernung abzuschlie\xDFen."},updateDefaultFiles:{name:"Standarddateien aktualisieren",description:"Die konfigurierten Standard-.base-Dateien mit Vorlagen \xFCberschreiben, die aus deinen aktuellen TaskNotes-Einstellungen erzeugt werden.",buttonText:"Dateien aktualisieren",confirmTitle:"Standard-Base-Dateien aktualisieren",confirmMessage:"Dadurch werden die konfigurierten Standard-.base-Dateien mit neu generierten Vorlagen \xFCberschrieben. Manuelle \xC4nderungen in diesen Dateien werden ersetzt.",confirmText:"Dateien aktualisieren"}},calendarSubscriptions:{header:"Kalenderabonnements",description:"Abonniere externe Kalender \xFCber ICS/iCal URLs, um Events neben deinen Aufgaben anzuzeigen.",defaultNoteTemplate:{name:"Standard-Notizvorlage",description:"Pfad zur Vorlagendatei f\xFCr Notizen, die aus ICS-Events erstellt werden",placeholder:"Templates/Event Vorlage.md"},defaultNoteFolder:{name:"Standard-Notizordner",description:"Ordner f\xFCr Notizen, die aus ICS-Events erstellt werden",placeholder:"Kalender/Events"},filenameFormat:{name:"ICS-Notiz-Dateinamenformat",description:"Wie Dateinamen f\xFCr Notizen generiert werden, die aus ICS-Events erstellt werden",options:{title:"Event-Titel",zettel:"Zettelkasten-Format",timestamp:"Zeitstempel",custom:"Benutzerdefinierte Vorlage"}},customTemplate:{name:"Benutzerdefinierte ICS-Dateinamenvorlage",description:"Vorlage f\xFCr benutzerdefinierte ICS-Event-Dateinamen",placeholder:"{date}-{title}"},useICSEndAsDue:{name:"ICS-Ereignis-Endzeit als F\xE4lligkeitsdatum verwenden",description:"Wenn aktiviert, wird das F\xE4lligkeitsdatum von Aufgaben aus Kalenderereignissen auf die Endzeit des Ereignisses gesetzt. Bei ganzt\xE4gigen Ereignissen wird das F\xE4lligkeitsdatum auf das Ereignisdatum gesetzt. Bei zeitgesteuerten Ereignissen enth\xE4lt das F\xE4lligkeitsdatum die Endzeit."},recurringEventRelatedNotesMode:{name:"Verkn\xFCpfte Notizen f\xFCr wiederkehrende Ereignisse",description:"W\xE4hle, ob Notizen, die mit einer Wiederholung eines externen Kalenderereignisses verkn\xFCpft sind, in der geladenen Serie oder nur in der ausgew\xE4hlten Instanz erscheinen.",options:{series:"Gesamte Serie",instance:"Nur ausgew\xE4hlte Instanz"}}},subscriptionsList:{header:"Kalenderabonnements-Liste",addSubscription:{name:"Kalenderabonnement hinzuf\xFCgen",description:"Neues Kalenderabonnement von ICS/iCal URL oder lokaler Datei hinzuf\xFCgen",buttonText:"Abonnement hinzuf\xFCgen"},refreshAll:{name:"Alle Abonnements aktualisieren",description:"Alle aktivierten Kalenderabonnements manuell aktualisieren",buttonText:"Alle aktualisieren"},newCalendarName:"Neuer Kalender",emptyState:"Keine Kalenderabonnements konfiguriert. F\xFCge ein Abonnement hinzu, um externe Kalender zu synchronisieren.",notices:{addSuccess:"Neues Kalenderabonnement hinzugef\xFCgt - bitte konfiguriere die Details",addFailure:"Abonnement konnte nicht hinzugef\xFCgt werden",serviceUnavailable:"ICS-Abonnementdienst nicht verf\xFCgbar",refreshSuccess:"Alle Kalenderabonnements erfolgreich aktualisiert",refreshFailure:"Einige Kalenderabonnements konnten nicht aktualisiert werden",updateFailure:"Abonnement konnte nicht aktualisiert werden",deleteSuccess:'Abonnement "{name}" gel\xF6scht',deleteFailure:"Abonnement konnte nicht gel\xF6scht werden",enableFirst:"Aktiviere zuerst das Abonnement",refreshSubscriptionSuccess:'"{name}" aktualisiert',refreshSubscriptionFailure:"Abonnement konnte nicht aktualisiert werden"},labels:{enabled:"Aktiviert:",name:"Name:",type:"Typ:",url:"URL:",filePath:"Dateipfad:",color:"Farbe:",refreshMinutes:"Aktualisierung (Min):"},typeOptions:{remote:"Remote-URL",local:"Lokale Datei"},placeholders:{calendarName:"Kalendername",url:"ICS/iCal-URL",filePath:"Lokaler Dateipfad (z.B. Kalender.ics)",localFile:"Kalender.ics"},statusLabels:{enabled:"Aktiviert",disabled:"Deaktiviert",remote:"Remote",localFile:"Lokale Datei",remoteCalendar:"Remote-Kalender",localFileCalendar:"Lokale Datei",synced:"Synchronisiert {timeAgo}",error:"Fehler"},actions:{refreshNow:"Jetzt aktualisieren",deleteSubscription:"Abonnement l\xF6schen"},refreshNow:"Jetzt aktualisieren",confirmDelete:{title:"Abonnement l\xF6schen",message:'Bist du sicher, dass du das Abonnement "{name}" l\xF6schen m\xF6chtest? Diese Aktion kann nicht r\xFCckg\xE4ngig gemacht werden.',confirmText:"L\xF6schen"}},autoExport:{header:"Automatischer ICS-Export",description:"Automatisch alle deine Aufgaben in eine ICS-Datei exportieren.",enable:{name:"Automatischen Export aktivieren",description:"Eine ICS-Datei automatisch mit allen deinen Aufgaben aktuell halten"},filePath:{name:"Export-Dateipfad",description:"Pfad, wo die ICS-Datei gespeichert wird (relativ zur Vault-Wurzel)",placeholder:"tasknotes-kalender.ics"},interval:{name:"Aktualisierungsintervall (zwischen 5 und 1440 Minuten)",description:"Wie oft die Export-Datei aktualisiert werden soll",placeholder:"60"},useDuration:{name:"Aufgabendauer f\xFCr Eventl\xE4nge verwenden",description:"Wenn aktiviert, wird die gesch\xE4tzte Dauer der Aufgabe anstelle des F\xE4lligkeitsdatums f\xFCr die Endzeit des Kalenderevents verwendet. Dies ist n\xFCtzlich f\xFCr GTD-Workflows, bei denen geplant + Dauer die Arbeitsplanung darstellt, w\xE4hrend das F\xE4lligkeitsdatum Fristen repr\xE4sentiert."},exportNow:{name:"Jetzt exportieren",description:"Sofortigen Export manuell ausl\xF6sen",buttonText:"Jetzt exportieren"},status:{title:"Export-Status:",lastExport:"Letzter Export: {time}",nextExport:"N\xE4chster Export: {time}",noExports:"Noch keine Exporte",notScheduled:"Nicht geplant",notInitialized:"Auto-Export-Dienst nicht initialisiert - bitte starte Obsidian neu",serviceNotInitialized:"Dienst nicht initialisiert - bitte starten Sie Obsidian neu"},notices:{reloadRequired:"Bitte lade Obsidian neu, damit die automatischen Export-\xC4nderungen wirksam werden.",exportSuccess:"Aufgaben erfolgreich exportiert",exportFailure:"Export fehlgeschlagen - pr\xFCfe Konsole f\xFCr Details",serviceUnavailable:"Auto-Export-Dienst nicht verf\xFCgbar"},excludeCompleted:{name:"Abgeschlossene Aufgaben ausschlie\xDFen",description:"Wenn aktiviert, werden abgeschlossene Aufgaben aus ICS-Exporten ausgelassen. Abgeschlossene Status werden aus deinen Aufgabenstatus-Einstellungen \xFCbernommen."},excludeArchived:{name:"Archivierte Aufgaben ausschlie\xDFen",description:"Wenn aktiviert, werden archivierte Aufgaben aus ICS-Exporten ausgelassen."},requireDueDate:{name:"F\xE4lligkeitsdatum erforderlich",description:"Wenn aktiviert, werden nur Aufgaben mit F\xE4lligkeitsdatum in ICS-Exporte aufgenommen."},requireScheduledDate:{name:"Geplantes Datum erforderlich",description:"Wenn aktiviert, werden nur Aufgaben mit geplantem Datum in ICS-Exporte aufgenommen."}},googleCalendarExport:{header:"Aufgaben zu Google Kalender exportieren",description:"Synchronisiere deine Aufgaben automatisch als Ereignisse mit Google Kalender. Erfordert eine vorherige Google Kalender-Verbindung.",enable:{name:"Aufgabenexport aktivieren",description:"Wenn aktiviert, werden Aufgaben mit Terminen automatisch als Ereignisse mit Google Kalender synchronisiert."},targetCalendar:{name:"Zielkalender",description:"W\xE4hle den Kalender aus, in dem Aufgabenereignisse erstellt werden sollen.",placeholder:"Kalender ausw\xE4hlen...",connectFirst:"Verbinde zuerst Google Kalender",primarySuffix:" (Prim\xE4r)"},syncTrigger:{name:"Synchronisierungsausl\xF6ser",description:"Welches Aufgabendatum soll die Kalenderereigniserstellung ausl\xF6sen.",options:{scheduled:"Geplantes Datum",due:"F\xE4lligkeitsdatum",both:"Beide (geplant bevorzugt)"}},allDayEvents:{name:"Als Ganztagesereignisse erstellen",description:"Wenn aktiviert, werden Aufgaben als Ganztagesereignisse erstellt. Wenn deaktiviert, wird die Zeitsch\xE4tzung f\xFCr die Dauer verwendet."},defaultDuration:{name:"Standard-Ereignisdauer",description:"Dauer in Minuten f\xFCr zeitgesteuerte Ereignisse (wird verwendet, wenn die Aufgabe keine Zeitsch\xE4tzung hat)."},eventTitleTemplate:{name:"Ereignistitelvorlage",description:"Vorlage f\xFCr Ereignistitel. Verf\xFCgbare Variablen: {{title}}, {{status}}, {{priority}}",placeholder:"{{title}}"},includeDescription:{name:"Aufgabendetails in Beschreibung einschlie\xDFen",description:"Aufgabenmetadaten (Priorit\xE4t, Status, Tags, etc.) zur Ereignisbeschreibung hinzuf\xFCgen."},includeObsidianLink:{name:"Obsidian-Link einschlie\xDFen",description:"Einen Link zur Aufgabe in Obsidian in der Ereignisbeschreibung hinzuf\xFCgen."},defaultReminder:{name:"Standard-Erinnerung",description:"Popup-Erinnerungen zu zeitgebundenen Google-Kalender-Ereignissen hinzuf\xFCgen. Gib Minuten vor dem Ereignis durch Kommas getrennt ein. Leer lassen, um Kalenderstandards zu verwenden. \xDCbliche Werte: 15, 30, 60, 1440."},automaticSyncBehavior:{header:"Automatisches Synchronisierungsverhalten"},syncOnCreate:{name:"Bei Aufgabenerstellung synchronisieren",description:"Automatisch ein Kalenderereignis erstellen, wenn eine neue Aufgabe erstellt wird."},syncOnUpdate:{name:"Bei Aufgabenaktualisierung synchronisieren",description:"Automatisch das Kalenderereignis aktualisieren, wenn eine Aufgabe ge\xE4ndert wird."},syncOnComplete:{name:"Bei Aufgabenabschluss synchronisieren",description:"Kalenderereignis aktualisieren, wenn eine Aufgabe abgeschlossen wird (f\xFCgt ein H\xE4kchen zum Titel hinzu)."},syncOnDelete:{name:"Ereignis bei Aufgabenl\xF6schung l\xF6schen",description:"Kalenderereignis entfernen, wenn die entsprechende Aufgabe gel\xF6scht wird."},manualSyncActions:{header:"Manuelle Synchronisierungsaktionen"},syncAllTasks:{name:"Alle Aufgaben synchronisieren",description:"Alle vorhandenen Aufgaben mit Google Kalender synchronisieren. Dies erstellt Ereignisse f\xFCr Aufgaben, die noch nicht synchronisiert wurden.",buttonText:"Alle synchronisieren"},unlinkAllTasks:{name:"Alle Aufgaben trennen",description:"Alle Verkn\xFCpfungen zwischen Aufgaben und Ereignissen entfernen, ohne Kalenderereignisse zu l\xF6schen.",buttonText:"Alle trennen",confirmTitle:"Alle Aufgaben trennen",confirmMessage:"Dies entfernt alle Verkn\xFCpfungen zwischen Aufgaben und Kalenderereignissen. Die Kalenderereignisse bleiben erhalten, werden aber nicht mehr aktualisiert, wenn sich Aufgaben \xE4ndern. Bist du sicher?",confirmButtonText:"Alle trennen"},notices:{notEnabled:"Google Kalender-Export ist nicht aktiviert. Konfiguriere es unter Einstellungen > Integrationen.",notEnabledOrConfigured:"Google Kalender-Export ist nicht aktiviert oder konfiguriert",serviceNotAvailable:"Aufgaben-Kalender-Synchronisierungsdienst nicht verf\xFCgbar",syncResults:"Synchronisiert: {synced}, Fehlgeschlagen: {failed}, \xDCbersprungen: {skipped}",taskSynced:"Aufgabe mit Google Kalender synchronisiert",noActiveFile:"Keine Datei ist derzeit aktiv",notATask:"Die aktuelle Datei ist keine Aufgabe",noDateToSync:"Aufgabe hat kein geplantes oder F\xE4lligkeitsdatum zum Synchronisieren",syncFailed:"Synchronisierung der Aufgabe mit Google Kalender fehlgeschlagen: {message}",connectionExpired:"Die Google Kalender-Verbindung ist abgelaufen. Bitte verbinde sie unter Einstellungen > Integrationen erneut.",syncingTasks:"Synchronisiere {total} Aufgaben mit Google Kalender...",syncComplete:"Synchronisierung abgeschlossen: {synced} synchronisiert, {failed} fehlgeschlagen, {skipped} \xFCbersprungen",eventsDeletedAndUnlinked:"Alle Ereignisse gel\xF6scht und getrennt",tasksUnlinked:"Alle Aufgabenverkn\xFCpfungen entfernt"},eventDescription:{untitledTask:"Unbenannte Aufgabe",priority:"Priorit\xE4t: {value}",status:"Status: {value}",due:"F\xE4llig: {value}",scheduled:"Geplant: {value}",timeEstimate:"Zeitsch\xE4tzung: {value}",tags:"Tags: {value}",contexts:"Kontexte: {value}",projects:"Projekte: {value}",openInObsidian:"In Obsidian \xF6ffnen"}},httpApi:{header:"HTTP API",description:"HTTP API f\xFCr externe Integrationen und Automatisierungen aktivieren.",enable:{name:"HTTP API aktivieren",description:"Lokalen HTTP-Server f\xFCr API-Zugriff starten"},port:{name:"API-Port",description:"Port-Nummer f\xFCr den HTTP API-Server",placeholder:"3000"},authToken:{name:"API-Authentifizierungstoken",description:"Token f\xFCr API-Authentifizierung erforderlich (leer lassen f\xFCr keine Authentifizierung)",placeholder:"dein-geheimes-token"},mcp:{enable:{name:"MCP-Server aktivieren",description:"TaskNotes-Werkzeuge \xFCber Model Context Protocol am Endpunkt /mcp bereitstellen. Erfordert, dass die HTTP API aktiviert ist."}},endpoints:{header:"Verf\xFCgbare API-Endpunkte",expandIcon:"\u25B6",collapseIcon:"\u25BC"}},webhooks:{header:"Webhooks",description:{overview:"Webhooks senden Echtzeit-Benachrichtigungen an externe Dienste, wenn TaskNotes-Events auftreten.",usage:"Konfiguriere Webhooks zur Integration mit Automatisierungstools, Sync-Diensten oder benutzerdefinierten Anwendungen."},addWebhook:{name:"Webhook hinzuf\xFCgen",description:"Neuen Webhook-Endpunkt registrieren",buttonText:"Webhook hinzuf\xFCgen"},emptyState:{message:"Keine Webhooks konfiguriert. F\xFCge einen Webhook hinzu, um Echtzeit-Benachrichtigungen zu erhalten.",buttonText:"Webhook hinzuf\xFCgen"},labels:{active:"Aktiv:",url:"URL:",events:"Events:",transform:"Transformation:"},placeholders:{url:"Webhook-URL",noEventsSelected:"Keine Events ausgew\xE4hlt",rawPayload:"Raw-Payload (keine Transformation)"},statusLabels:{active:"Aktiv",inactive:"Inaktiv",created:"Erstellt {timeAgo}"},actions:{editEvents:"Events bearbeiten",delete:"L\xF6schen"},editEvents:"Ereignisse bearbeiten",notices:{urlUpdated:"Webhook URL aktualisiert",enabled:"Webhook aktiviert",disabled:"Webhook deaktiviert",created:"Webhook erfolgreich erstellt",deleted:"Webhook gel\xF6scht",updated:"Webhook aktualisiert"},confirmDelete:{title:"Webhook l\xF6schen",message:`Bist du sicher, dass du diesen Webhook l\xF6schen m\xF6chtest?
|
||
|
||
URL: {url}
|
||
|
||
Diese Aktion kann nicht r\xFCckg\xE4ngig gemacht werden.`,confirmText:"L\xF6schen"},cardHeader:"Webhook",cardFields:{active:"Aktiv:",url:"URL:",events:"Events:",transform:"Transformation:"},eventsDisplay:{noEvents:"Keine Events ausgew\xE4hlt"},transformDisplay:{noTransform:"Raw-Payload (keine Transformation)"},secretModal:{title:"Webhook-Secret generiert",description:"Dein Webhook-Secret wurde generiert. Speichere dieses Secret, da du es nicht erneut einsehen kannst:",usage:"Verwende dieses Secret, um Webhook-Payloads in deiner empfangenden Anwendung zu verifizieren.",gotIt:"Verstanden"},editModal:{title:"Webhook bearbeiten",eventsHeader:"Events zum Abonnieren"},events:{taskCreated:{label:"Aufgabe erstellt",description:"Wenn neue Aufgaben erstellt werden"},taskUpdated:{label:"Aufgabe aktualisiert",description:"Wenn Aufgaben ge\xE4ndert werden"},taskCompleted:{label:"Aufgabe abgeschlossen",description:"Wenn Aufgaben als abgeschlossen markiert werden"},taskDeleted:{label:"Aufgabe gel\xF6scht",description:"Wenn Aufgaben gel\xF6scht werden"},taskArchived:{label:"Aufgabe archiviert",description:"Wenn Aufgaben archiviert werden"},taskUnarchived:{label:"Aufgabe entarchiviert",description:"Wenn Aufgaben entarchiviert werden"},timeStarted:{label:"Zeit gestartet",description:"Wenn Zeiterfassung beginnt"},timeStopped:{label:"Zeit gestoppt",description:"Wenn Zeiterfassung stoppt"},pomodoroStarted:{label:"Pomodoro gestartet",description:"Wenn Pomodoro-Sitzungen beginnen"},pomodoroCompleted:{label:"Pomodoro abgeschlossen",description:"Wenn Pomodoro-Sitzungen beendet werden"},pomodoroInterrupted:{label:"Pomodoro unterbrochen",description:"Wenn Pomodoro-Sitzungen gestoppt werden"},recurringCompleted:{label:"Wiederkehrende Instanz abgeschlossen",description:"Wenn wiederkehrende Aufgabeninstanzen abgeschlossen werden"},reminderTriggered:{label:"Erinnerung ausgel\xF6st",description:"Wenn Aufgabenerinnerungen aktiviert werden"}},modals:{secretGenerated:{title:"Webhook-Secret generiert",description:"Dein Webhook-Secret wurde generiert. Speichere dieses Secret, da du es nicht erneut einsehen kannst:",usage:"Verwende dieses Secret, um Webhook-Payloads in deiner empfangenden Anwendung zu verifizieren.",buttonText:"Verstanden"},edit:{title:"Webhook bearbeiten",eventsSection:"Events zum Abonnieren",transformSection:"Transformationskonfiguration (Optional)",headersSection:"Header-Konfiguration",transformFile:{name:"Transformationsdatei",description:"Pfad zu einer .json Vorlagendatei in deinem Vault, die Webhook-Payloads transformiert",placeholder:"simple-template.json"},customHeaders:{name:"Benutzerdefinierte Header einschlie\xDFen",description:"TaskNotes-Header einschlie\xDFen (Event-Typ, Signatur, Lieferungs-ID). F\xFCr Discord, Slack und andere Dienste mit strengen CORS-Richtlinien ausschalten."},buttons:{cancel:"Abbrechen",save:"\xC4nderungen speichern"},notices:{selectAtLeastOneEvent:"Bitte w\xE4hle mindestens ein Event aus"}},add:{title:"Webhook hinzuf\xFCgen",eventsSection:"Events zum Abonnieren",transformSection:"Transformationskonfiguration (Optional)",headersSection:"Header-Konfiguration",url:{name:"Webhook-URL",description:"Der Endpunkt, an den Webhook-Payloads gesendet werden",placeholder:"https://dein-service.com/webhook"},transformFile:{name:"Transformationsdatei",description:"Pfad zu einer .json Vorlagendatei in deinem Vault, die Webhook-Payloads transformiert",placeholder:"simple-template.json"},customHeaders:{name:"Benutzerdefinierte Header einschlie\xDFen",description:"TaskNotes-Header einschlie\xDFen (Event-Typ, Signatur, Lieferungs-ID). F\xFCr Discord, Slack und andere Dienste mit strengen CORS-Richtlinien ausschalten."},transformHelp:{title:"JSON-Transformationsvorlagen erm\xF6glichen es dir, Webhook-Payloads anzupassen:",jsFiles:"",jsDescription:"",jsonFiles:".json Dateien:",jsonDescription:" Vorlagen mit ",jsonVariable:"${data.task.title}",leaveEmpty:"Leer lassen:",leaveEmptyDescription:" Raw-Daten senden",example:"Beispiel:",exampleFile:"simple-template.json"},buttons:{cancel:"Abbrechen",add:"Webhook hinzuf\xFCgen"},notices:{urlRequired:"Webhook URL ist erforderlich",selectAtLeastOneEvent:"Bitte w\xE4hle mindestens ein Event aus"}}}},otherIntegrations:{header:"Andere Plugin-Integrationen",description:"Konfiguriere Integrationen mit anderen Obsidian-Plugins."},mdbaseSpec:{header:"mdbase-Typdefinitionen",learnMore:"Mehr \xFCber mdbase-spec erfahren",enable:{name:"mdbase-Typdefinitionen generieren",description:"mdbase-Typdateien (mdbase.yaml und _types/task.md) im Stammverzeichnis des Vaults generieren und pflegen, wenn sich deine Einstellungen \xE4ndern."}},timeFormats:{justNow:"Gerade eben",minutesAgo:"vor {minutes} Minute{plural}",hoursAgo:"vor {hours} Stunde{plural}",daysAgo:"vor {days} Tag{plural}"}}},notices:{languageChanged:"Sprache ge\xE4ndert zu {language}.",releaseAvailable:{message:"TaskNotes {version} ist verf\xFCgbar.",action:"In Community-Plugins \xF6ffnen"},exportTasksFailed:"Export der Aufgaben als ICS-Datei fehlgeschlagen",icsNoteCreatedSuccess:"Notiz erfolgreich erstellt",icsCreationModalOpenFailed:"Erstellungsmodal konnte nicht ge\xF6ffnet werden",icsNoteLinkSuccess:'Notiz "{fileName}" mit ICS Event verkn\xFCpft',icsTaskCreatedSuccess:"Aufgabe erstellt: {title}",icsRelatedItemsRefreshed:"Verkn\xFCpfte Notizen aktualisiert",icsFileNotFound:"Datei nicht gefunden oder ung\xFCltig",icsFileOpenFailed:"Datei konnte nicht ge\xF6ffnet werden",timeblockAttachmentExists:'"{fileName}" ist bereits angeh\xE4ngt',timeblockAttachmentAdded:'"{fileName}" als Anhang hinzugef\xFCgt',timeblockAttachmentRemoved:'"{fileName}" aus Anh\xE4ngen entfernt',timeblockFileTypeNotSupported:'"{fileName}" kann nicht ge\xF6ffnet werden - Dateityp nicht unterst\xFCtzt',timeblockTitleRequired:"Bitte geben Sie einen Titel f\xFCr den Timeblock ein",timeblockUpdatedSuccess:'Timeblock "{title}" erfolgreich aktualisiert',timeblockUpdateFailed:"Timeblock konnte nicht aktualisiert werden. Pr\xFCfen Sie die Konsole f\xFCr Details.",timeblockDeletedSuccess:'Timeblock "{title}" erfolgreich gel\xF6scht',timeblockDeleteFailed:"Timeblock konnte nicht gel\xF6scht werden. Pr\xFCfen Sie die Konsole f\xFCr Details.",timeblockRequiredFieldsMissing:"Bitte f\xFCllen Sie alle erforderlichen Felder aus",agendaLoadingFailed:"Fehler beim Laden der Agenda. Bitte versuchen Sie, zu aktualisieren.",statsLoadingFailed:"Fehler beim Laden der Projektdetails."},commands:{openCalendarView:"Mini-Kalenderansicht \xF6ffnen",openAdvancedCalendarView:"Kalenderansicht \xF6ffnen",openTasksView:"Aufgabenansicht \xF6ffnen",openNotesView:"Notizenansicht \xF6ffnen",openAgendaView:"Agenda-Ansicht \xF6ffnen",openPomodoroView:"Pomodoro-Timer \xF6ffnen",openKanbanView:"Kanban-Board \xF6ffnen",updateDefaultBaseFiles:"Standard-Base-Dateien aktualisieren",openPomodoroStats:"Pomodoro-Statistiken \xF6ffnen",openStatisticsView:"Aufgaben- & Projektstatistiken \xF6ffnen",createNewTask:"Neue Aufgabe erstellen",convertCurrentNoteToTask:{name:"Aktuelle Notiz in Aufgabe umwandeln",noActiveFile:"Keine aktive Datei zum Umwandeln",alreadyTask:"Diese Notiz ist bereits eine Aufgabe",success:"'{title}' in eine Aufgabe umgewandelt"},convertToTaskNote:"Checkbox-Aufgabe zu TaskNote konvertieren",convertAllTasksInNote:"Alle Aufgaben in Notiz konvertieren",insertTaskNoteLink:"Tasknote-Link einf\xFCgen",createInlineTask:"Neue Inline-Aufgabe erstellen",quickActionsCurrentTask:"Schnellaktionen f\xFCr aktuelle Aufgabe",goToTodayNote:"Zu heutiger Notiz gehen",startPomodoro:"Pomodoro-Timer starten",stopPomodoro:"Pomodoro-Timer stoppen",pauseResumePomodoro:"Pomodoro-Timer pausieren/fortsetzen",refreshCache:"Cache aktualisieren",exportAllTasksIcs:"Alle Aufgaben als ICS-Datei exportieren",viewReleaseNotes:"Versionshinweise anzeigen",startTimeTrackingWithSelector:"Zeiterfassung starten (Aufgabe ausw\xE4hlen)",editTimeEntries:"Zeiteintr\xE4ge bearbeiten (Aufgabe ausw\xE4hlen)",createOrOpenTask:"Aufgabe erstellen oder \xF6ffnen",createOrOpenTaskWithTracking:"Aufgabe erstellen oder \xF6ffnen und Zeiterfassung starten",rolloverOverdueScheduledTasks:"\xDCberf\xE4llige geplante Aufgaben auf heute verschieben",syncAllTasksGoogleCalendar:"Alle Aufgaben mit Google Kalender synchronisieren",syncCurrentTaskGoogleCalendar:"Aktuelle Aufgabe mit Google Kalender synchronisieren",quickActionsTaskUnderCursor:"Schnellaktionen f\xFCr Aufgabe unter dem Cursor",editCurrentTask:"Aktuelle Aufgabe bearbeiten",cycleCurrentTaskStatus:"Status der aktuellen Aufgabe wechseln",cycleCurrentTaskPriority:"Priorit\xE4t der aktuellen Aufgabe wechseln",addProjectToCurrentTask:"Projekt zur aktuellen Aufgabe hinzuf\xFCgen",addSubtaskToCurrentNote:"Unteraufgabe zur aktuellen Notiz hinzuf\xFCgen"},modals:{deviceCode:{title:"Google Kalender-Autorisierung",instructions:{intro:"Um Ihren Google Kalender zu verbinden, folgen Sie bitte diesen Schritten:"},steps:{open:"\xD6ffnen Sie",inBrowser:"in Ihrem Browser",enterCode:"Geben Sie diesen Code ein, wenn Sie dazu aufgefordert werden:",signIn:"Melden Sie sich mit Ihrem Google-Konto an und gew\xE4hren Sie Zugriff",returnToObsidian:"Kehren Sie zu Obsidian zur\xFCck (dieses Fenster schlie\xDFt sich automatisch)"},codeLabel:"Ihr Code:",copyCodeAriaLabel:"Code kopieren",waitingForAuthorization:"Warte auf Autorisierung...",openBrowserButton:"Browser \xF6ffnen",cancelButton:"Abbrechen",expiresMinutesSeconds:"Code l\xE4uft ab in {minutes}m {seconds}s",expiresSeconds:"Code l\xE4uft ab in {seconds}s"},icsEventInfo:{calendarEventHeading:"Kalenderereignis",titleLabel:"Titel",calendarLabel:"Kalender",dateTimeLabel:"Datum & Uhrzeit",locationLabel:"Ort",descriptionLabel:"Beschreibung",urlLabel:"URL",relatedNotesHeading:"Verkn\xFCpfte Notizen & Aufgaben",noRelatedItems:"Keine verkn\xFCpften Notizen oder Aufgaben f\xFCr dieses Ereignis gefunden.",typeTask:"Aufgabe",typeNote:"Notiz",actionsHeading:"Aktionen",createFromEventLabel:"Aus Ereignis erstellen",createFromEventDesc:"Eine neue Notiz oder Aufgabe aus diesem Kalenderereignis erstellen",linkExistingLabel:"Vorhandene verkn\xFCpfen",linkExistingDesc:"Eine vorhandene Notiz mit diesem Kalenderereignis verkn\xFCpfen"},timeblockInfo:{editHeading:"Timeblock bearbeiten",dateTimeLabel:"Datum & Uhrzeit: ",titleLabel:"Titel",titleDesc:"Titel f\xFCr Ihren Timeblock",titlePlaceholder:"z.B. Deep Work Session",descriptionLabel:"Beschreibung",descriptionDesc:"Optionale Beschreibung f\xFCr den Timeblock",descriptionPlaceholder:"Fokus auf neue Features, keine Unterbrechungen",colorLabel:"Farbe",colorDesc:"Optionale Farbe f\xFCr den Timeblock",colorPlaceholder:"#3b82f6",attachmentsLabel:"Anh\xE4nge",attachmentsDesc:"Dateien oder Notizen, die mit diesem Timeblock verkn\xFCpft sind",addAttachmentButton:"Anhang hinzuf\xFCgen",addAttachmentTooltip:"Datei oder Notiz mit unscharfer Suche ausw\xE4hlen",deleteButton:"Timeblock l\xF6schen",saveButton:"\xC4nderungen speichern",deleteConfirmationTitle:"Timeblock l\xF6schen"},timeblockCreation:{heading:"Timeblock erstellen",dateLabel:"Datum: ",titleLabel:"Titel",titleDesc:"Titel f\xFCr Ihren Timeblock",titlePlaceholder:"z.B. Deep Work Session",startTimeLabel:"Startzeit",startTimeDesc:"Wann der Timeblock beginnt",startTimePlaceholder:"09:00",endTimeLabel:"Endzeit",endTimeDesc:"Wann der Timeblock endet",endTimePlaceholder:"11:00",descriptionLabel:"Beschreibung",descriptionDesc:"Optionale Beschreibung f\xFCr den Timeblock",descriptionPlaceholder:"Fokus auf neue Features, keine Unterbrechungen",colorLabel:"Farbe",colorDesc:"Optionale Farbe f\xFCr den Timeblock",colorPlaceholder:"#3b82f6",attachmentsLabel:"Anh\xE4nge",attachmentsDesc:"Dateien oder Notizen, die mit diesem Timeblock verkn\xFCpft werden sollen",addAttachmentButton:"Anhang hinzuf\xFCgen",addAttachmentTooltip:"Datei oder Notiz mit unscharfer Suche ausw\xE4hlen",createButton:"Timeblock erstellen"},calendarEventCreation:{heading:"Kalenderereignis erstellen",dateTimeLabel:"Datum & Uhrzeit: ",titleLabel:"Titel",titleDesc:"Titel f\xFCr das Kalenderereignis",titlePlaceholder:"z.B. Teambesprechung",calendarLabel:"Kalender",calendarDesc:"In welchem Kalender das Ereignis erstellt werden soll",descriptionLabel:"Beschreibung",descriptionDesc:"Optionale Beschreibung f\xFCr das Ereignis",descriptionPlaceholder:"Details zu diesem Ereignis hinzuf\xFCgen...",locationLabel:"Ort",locationDesc:"Optionaler Ort f\xFCr das Ereignis",locationPlaceholder:"z.B. Konferenzraum A",createButton:"Ereignis erstellen",titleRequired:"Ereignistitel ist erforderlich",noCalendarSelected:"Kein Kalender ausgew\xE4hlt",success:'Kalenderereignis "{title}" erstellt',error:"Kalenderereignis konnte nicht erstellt werden: {message}"},icsNoteCreation:{heading:"Aus ICS Event erstellen",titleLabel:"Titel",titleDesc:"Titel f\xFCr den neuen Inhalt",folderLabel:"Ordner",folderDesc:"Zielordner (leer lassen f\xFCr Vault-Wurzel)",folderPlaceholder:"ordner/unterordner",createButton:"Erstellen",startLabel:"Start: ",endLabel:"Ende: ",locationLabel:"Ort: ",calendarLabel:"Kalender: ",useTemplateLabel:"Vorlage verwenden",useTemplateDesc:"Eine Vorlage beim Erstellen des Inhalts anwenden",templatePathLabel:"Vorlagenpfad",templatePathDesc:"Pfad zur Vorlagendatei",templatePathPlaceholder:"vorlagen/ics-notiz-vorlage.md"},unscheduledTasksSelector:{title:"Ungeplante Aufgaben",placeholder:"Tippen, um nach ungeplanten Aufgaben zu suchen...",instructions:{navigate:"zum Navigieren",schedule:"zum Planen",dismiss:"zum Verwerfen"}},migration:{title:"Zum neuen Wiederholungssystem migrieren",description:"TaskNotes verwendet jetzt branchen\xFCbliche RRULE-Muster f\xFCr Wiederholungen, die komplexere Zeitpl\xE4ne und bessere Kompatibilit\xE4t mit anderen Apps erm\xF6glichen.",tasksFound:"{count} Aufgabe(n) mit alten Wiederholungsmustern erkannt",noMigrationNeeded:"Keine Aufgaben erfordern Migration",warnings:{title:"Bevor Sie fortfahren:",backup:"Sichern Sie Ihren Vault vor der Migration",conversion:"Alte Wiederholungsmuster werden in das neue Format konvertiert",normalUsage:"Sie k\xF6nnen TaskNotes w\xE4hrend der Migration normal weiterverwenden",permanent:"Diese \xC4nderung ist dauerhaft und kann nicht automatisch r\xFCckg\xE4ngig gemacht werden"},benefits:{title:"Vorteile des neuen Systems:",powerfulPatterns:"Komplexe Wiederholungsmuster (z.B. 'jeden 2. Dienstag')",performance:"Bessere Leistung bei wiederkehrenden Aufgaben",compatibility:"Standard-Wiederholungsformat kompatibel mit anderen Apps",nlp:"Verbesserte Unterst\xFCtzung f\xFCr nat\xFCrliche Sprachverarbeitung"},progress:{title:"Migrationsfortschritt",preparing:"Migration wird vorbereitet...",completed:"Migration erfolgreich abgeschlossen",failed:"Migration fehlgeschlagen"},buttons:{migrate:"Migration starten",completed:"Schlie\xDFen"},errors:{title:"Fehler w\xE4hrend der Migration:"},notices:{completedWithErrors:"Migration mit einigen Fehlern abgeschlossen. \xDCberpr\xFCfen Sie die Fehlerliste oben.",success:"Alle Aufgaben erfolgreich migriert!",failed:"Migration fehlgeschlagen. Bitte \xFCberpr\xFCfen Sie die Konsole f\xFCr Details."},prompt:{message:"TaskNotes hat Aufgaben mit dem alten Wiederholungsformat erkannt. M\xF6chten Sie diese jetzt zum neuen System migrieren?",migrateNow:"Jetzt migrieren",remindLater:"Sp\xE4ter erinnern"}},task:{titlePlaceholder:"Was muss getan werden?",titleLabel:"Titel",titleDetailedPlaceholder:"Aufgabentitel...",detailsLabel:"Details",detailsPlaceholder:"Weitere Details hinzuf\xFCgen...",projectsLabel:"Projekte",projectsAdd:"Projekt hinzuf\xFCgen",projectsTooltip:"Projektnotiz mit unscharfer Suche ausw\xE4hlen",projectsRemoveTooltip:"Projekt entfernen",contextsLabel:"Kontexte",contextsPlaceholder:"kontext1, kontext2",tagsLabel:"Tags",tagsPlaceholder:"schlagwort1, schlagwort2",timeEstimateLabel:"Zeitsch\xE4tzung (Minuten)",timeEstimatePlaceholder:"30",unsavedChanges:{title:"Ungespeicherte \xC4nderungen",message:"Sie haben ungespeicherte \xC4nderungen. M\xF6chten Sie diese speichern?",save:"\xC4nderungen speichern",discard:"\xC4nderungen verwerfen",cancel:"Weiter bearbeiten"},dependencies:{blockedBy:"Blockiert von",blocking:"Blockierend",placeholder:"[[Aufgabennotiz]]",addTaskButton:"Aufgabe hinzuf\xFCgen",selectTaskTooltip:"Aufgabennotiz mit unscharfer Suche ausw\xE4hlen",removeTaskTooltip:"Aufgabe entfernen"},organization:{projects:"Projekte",subtasks:"Unteraufgaben",addToProject:"Zu Projekt hinzuf\xFCgen",addToProjectButton:"Zu Projekt hinzuf\xFCgen",addSubtasks:"Unteraufgaben hinzuf\xFCgen",addSubtasksButton:"Unteraufgabe hinzuf\xFCgen",addSubtasksTooltip:"Aufgaben ausw\xE4hlen, um sie zu Unteraufgaben dieser Aufgabe zu machen",removeSubtaskTooltip:"Unteraufgabe entfernen",notices:{noEligibleSubtasks:"Keine geeigneten Aufgaben verf\xFCgbar, um als Unteraufgaben zugewiesen zu werden",subtaskSelectFailed:"Unteraufgaben-Auswahl konnte nicht ge\xF6ffnet werden"}},customFieldsLabel:"Benutzerdefinierte Felder",actions:{due:"F\xE4lligkeitsdatum setzen",scheduled:"Planungsdatum setzen",status:"Status setzen",priority:"Priorit\xE4t setzen",recurrence:"Wiederholung setzen",reminders:"Erinnerungen setzen"},buttons:{openNote:"Notiz \xF6ffnen",save:"Speichern"},tooltips:{dueValue:"F\xE4llig: {value}",scheduledValue:"Geplant: {value}",statusValue:"Status: {value}",priorityValue:"Priorit\xE4t: {value}",recurrenceValue:"Wiederholung: {value}",remindersSingle:"1 Erinnerung gesetzt",remindersPlural:"{count} Erinnerungen gesetzt"},dateMenu:{dueTitle:"F\xE4lligkeitsdatum setzen",scheduledTitle:"Planungsdatum setzen"},userFields:{textPlaceholder:"{field} eingeben...",numberPlaceholder:"0",datePlaceholder:"YYYY-MM-DD",listPlaceholder:"element1, element2, element3",pickDate:"{field}-Datum w\xE4hlen"},recurrence:{daily:"T\xE4glich",weekly:"W\xF6chentlich",everyTwoWeeks:"Alle 2 Wochen",weekdays:"Wochentage",weeklyOn:"W\xF6chentlich am {days}",monthly:"Monatlich",everyThreeMonths:"Alle 3 Monate",monthlyOnOrdinal:"Monatlich am {ordinal}",monthlyByWeekday:"Monatlich (nach Wochentag)",yearly:"J\xE4hrlich",yearlyOn:"J\xE4hrlich am {month} {day}",custom:"Benutzerdefiniert",countSuffix:"{count} mal",untilSuffix:"bis {date}",ordinal:"{number}{suffix}"}},taskSelector:{title:"Aufgabe ausw\xE4hlen",placeholder:"Tippen Sie, um nach Aufgaben zu suchen...",instructions:{navigate:"zum Navigieren",select:"zum Ausw\xE4hlen",dismiss:"zum Abbrechen"},notices:{noteNotFound:'Notiz "{name}" konnte nicht gefunden werden'},dueDate:{overdue:"F\xE4llig: {date} (\xFCberf\xE4llig)",today:"F\xE4llig: Heute"}},taskSelectorWithCreate:{title:"Aufgabe erstellen oder \xF6ffnen",placeholder:"Aufgaben suchen oder eingeben zum Erstellen...",instructions:{create:"um neue Aufgabe zu erstellen"},footer:{createLabel:" zum Erstellen: "},notices:{emptyQuery:"Bitte geben Sie eine Aufgabenbeschreibung ein",invalidTitle:"Kein g\xFCltiger Aufgabentitel erkannt"}},taskCreation:{title:"Aufgabe erstellen",actions:{fillFromNaturalLanguage:"Formular aus nat\xFCrlicher Sprache ausf\xFCllen",hideDetailedOptions:"Detailoptionen ausblenden",showDetailedOptions:"Detailoptionen anzeigen"},nlPlaceholder:"Lebensmittel morgen um 15 Uhr kaufen @zuhause #besorgungen",notices:{titleRequired:"Bitte gib einen Aufgabentitel ein",success:'Aufgabe "{title}" erfolgreich erstellt',successShortened:'Aufgabe "{title}" erfolgreich erstellt (Dateiname wegen L\xE4nge gek\xFCrzt)',failure:"Aufgabe konnte nicht erstellt werden: {message}",blockingUnresolved:"Konnte nicht aufl\xF6sen: {entries}",openCreatedTaskFailure:"Aufgabe erstellt, aber die Aufgabennotiz konnte nicht ge\xF6ffnet werden."}},taskEdit:{title:"Aufgabe bearbeiten",sections:{completions:"Abschl\xFCsse",taskInfo:"Aufgabeninformationen"},metadata:{totalTrackedTime:"Gesamte erfasste Zeit:",due:"F\xE4llig:",scheduled:"Geplant:",created:"Erstellt:",modified:"Ge\xE4ndert:",file:"Datei:"},buttons:{archive:"Archivieren",unarchive:"Entarchivieren"},notices:{titleRequired:"Bitte gib einen Aufgabentitel ein",noChanges:"Keine \xC4nderungen zu speichern",updateSuccess:'Aufgabe "{title}" erfolgreich aktualisiert',updateFailure:"Aufgabe konnte nicht aktualisiert werden: {message}",dependenciesUpdateSuccess:"Abh\xE4ngigkeiten aktualisiert",blockingUnresolved:"Konnte nicht aufl\xF6sen: {entries}",fileMissing:"Aufgabendatei konnte nicht gefunden werden: {path}",openNoteFailure:"Aufgabennotiz konnte nicht ge\xF6ffnet werden",archiveSuccess:"Aufgabe erfolgreich {action}",archiveFailure:"Aufgabe konnte nicht archiviert werden",deleteSuccess:"Aufgabe \u201E{title}\u201C erfolgreich gel\xF6scht",deleteFailure:"Aufgabe konnte nicht gel\xF6scht werden: {message}"},archiveAction:{archived:"archiviert",unarchived:"entarchiviert"},deleteConfirmation:{title:"Aufgabe l\xF6schen",message:"M\xF6chtest du \u201E{title}\u201C wirklich l\xF6schen? Dadurch wird die Aufgabennotiz in den Obsidian-Papierkorb verschoben.",confirm:"Aufgabe l\xF6schen"}},storageLocation:{title:{migrate:"Pomodoro-Daten migrieren?",switch:"Zu t\xE4glichen Notizen wechseln?"},message:{migrate:"Dies wird deine bestehenden Pomodoro-Sitzungsdaten zu Frontmatter in t\xE4glichen Notizen migrieren. Die Daten werden nach Datum gruppiert und in jeder t\xE4glichen Notiz gespeichert.",switch:"Pomodoro-Sitzungsdaten werden im Frontmatter der t\xE4glichen Notizen statt in der Plugin-Datendatei gespeichert."},whatThisMeans:"Was das bedeutet:",bullets:{dailyNotesRequired:"T\xE4gliche Notizen m\xFCssen im Core-Plugin f\xFCr t\xE4gliche Notizen oder in Periodic Notes aktiviert sein",storedInNotes:"Daten werden im Frontmatter deiner t\xE4glichen Notizen gespeichert",migrateData:"Bestehende Plugin-Daten werden migriert und dann gel\xF6scht",futureSessions:"Zuk\xFCnftige Sitzungen werden in t\xE4glichen Notizen gespeichert",dataLongevity:"Dies bietet bessere Datenbest\xE4ndigkeit mit deinen Notizen"},finalNote:{migrate:"\u26A0\uFE0F Stelle sicher, dass du Backups hast, falls n\xF6tig. Diese \xC4nderung kann nicht automatisch r\xFCckg\xE4ngig gemacht werden.",switch:"Du kannst jederzeit in Zukunft zur\xFCck zur Plugin-Speicherung wechseln."},buttons:{migrate:"Daten migrieren",switch:"Speicherung wechseln"}},dueDate:{title:"F\xE4lligkeitsdatum setzen",taskLabel:"Aufgabe: {title}",sections:{dateTime:"F\xE4lligkeitsdatum & Zeit",quickOptions:"Schnelloptionen"},descriptions:{dateTime:"Setze, wann diese Aufgabe abgeschlossen werden soll"},inputs:{date:{ariaLabel:"F\xE4lligkeitsdatum f\xFCr Aufgabe",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"F\xE4lligkeitszeit f\xFCr Aufgabe (optional)",placeholder:"HH:MM"}},quickOptions:{today:"Heute",todayAriaLabel:"F\xE4lligkeitsdatum auf heute setzen",tomorrow:"Morgen",tomorrowAriaLabel:"F\xE4lligkeitsdatum auf morgen setzen",nextWeek:"N\xE4chste Woche",nextWeekAriaLabel:"F\xE4lligkeitsdatum auf n\xE4chste Woche setzen",now:"Jetzt",nowAriaLabel:"F\xE4lligkeitsdatum und -zeit auf jetzt setzen",clear:"L\xF6schen",clearAriaLabel:"F\xE4lligkeitsdatum l\xF6schen"},errors:{invalidDateTime:"Bitte gib ein g\xFCltiges Datums- und Zeitformat ein",updateFailed:"F\xE4lligkeitsdatum konnte nicht aktualisiert werden. Bitte versuche es erneut."}},scheduledDate:{title:"Planungsdatum setzen",taskLabel:"Aufgabe: {title}",sections:{dateTime:"Planungsdatum & Zeit",quickOptions:"Schnelloptionen"},descriptions:{dateTime:"Setze, wann du an dieser Aufgabe arbeiten m\xF6chtest"},inputs:{date:{ariaLabel:"Planungsdatum f\xFCr Aufgabe",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"Planungszeit f\xFCr Aufgabe (optional)",placeholder:"HH:MM"}},quickOptions:{today:"Heute",todayAriaLabel:"Planungsdatum auf heute setzen",tomorrow:"Morgen",tomorrowAriaLabel:"Planungsdatum auf morgen setzen",nextWeek:"N\xE4chste Woche",nextWeekAriaLabel:"Planungsdatum auf n\xE4chste Woche setzen",now:"Jetzt",nowAriaLabel:"Planungsdatum und -zeit auf jetzt setzen",clear:"L\xF6schen",clearAriaLabel:"Planungsdatum l\xF6schen"},errors:{invalidDateTime:"Bitte gib ein g\xFCltiges Datums- und Zeitformat ein",updateFailed:"Planungsdatum konnte nicht aktualisiert werden. Bitte versuche es erneut."}},timeEntryEditor:{title:"Zeiteintr\xE4ge - {taskTitle}",addEntry:"Zeiteintrag hinzuf\xFCgen",noEntries:"Noch keine Zeiteintr\xE4ge",deleteEntry:"Eintrag l\xF6schen",startTime:"Startzeit",endTime:"Endzeit (leer lassen, falls noch laufend)",duration:"Dauer (Minuten)",durationDesc:"Berechnete Dauer \xFCberschreiben",durationPlaceholder:"Dauer in Minuten eingeben",description:"Beschreibung",descriptionPlaceholder:"Woran haben Sie gearbeitet?",calculatedDuration:"Berechnet: {minutes} Minuten",totalTime:"{hours}h {minutes}m gesamt",totalMinutes:"{minutes}m gesamt",saved:"Zeiteintr\xE4ge gespeichert",saveFailed:"Speichern der Zeiteintr\xE4ge fehlgeschlagen",openFailed:"\xD6ffnen des Zeiteintrag-Editors fehlgeschlagen",noTasksWithEntries:"Keine Aufgaben mit Zeiteintr\xE4gen zum Bearbeiten",validation:{missingStartTime:"Startzeit ist erforderlich",endBeforeStart:"Endzeit muss nach der Startzeit liegen"}},timeTracking:{noTasksAvailable:"Keine Aufgaben zur Zeiterfassung verf\xFCgbar",started:"Zeiterfassung gestartet f\xFCr: {taskTitle}",startFailed:"Starten der Zeiterfassung fehlgeschlagen"},timeEntry:{mustHaveSpecificTime:"Zeiteintr\xE4ge m\xFCssen spezifische Zeiten haben. Bitte w\xE4hlen Sie einen Zeitbereich in der Wochen- oder Tagesansicht.",noTasksAvailable:"Keine Aufgaben zum Erstellen von Zeiteintr\xE4gen verf\xFCgbar",created:"Zeiteintrag erstellt f\xFCr {taskTitle} ({duration} Minuten)",createFailed:"Erstellen des Zeiteintrags fehlgeschlagen"}},contextMenus:{task:{status:"Status",statusSelected:"\u2713 {label}",priority:"Priorit\xE4t",prioritySelected:"\u2713 {label}",dueDate:"F\xE4lligkeitsdatum",scheduledDate:"Planungsdatum",customDates:"Benutzerdefinierte Datumsfelder",reminders:"Erinnerungen",remindBeforeDue:"Vor F\xE4lligkeit erinnern\u2026",remindBeforeScheduled:"Vor Planung erinnern\u2026",manageReminders:"Alle Erinnerungen verwalten\u2026",clearReminders:"Alle Erinnerungen l\xF6schen",startTimeTracking:"Zeiterfassung starten",stopTimeTracking:"Zeiterfassung stoppen",editTimeEntries:"Zeiteintr\xE4ge bearbeiten",archive:"Archivieren",unarchive:"Entarchivieren",openNote:"Notiz \xF6ffnen",openNoteInNewTab:"Notiz in neuem Tab \xF6ffnen",copyTitle:"Aufgabentitel kopieren",quickActions:"Schnellaktionen",noteActions:"Notizaktionen",rename:"Umbenennen",renameTitle:"Datei umbenennen",renamePlaceholder:"Neuen Namen eingeben",delete:"L\xF6schen",deleteTitle:"Datei l\xF6schen",deleteMessage:'Bist du sicher, dass du "{name}" l\xF6schen m\xF6chtest?',deleteConfirm:"L\xF6schen",copyPath:"Pfad kopieren",copyUrl:"Obsidian URL kopieren",showInExplorer:"Im Datei-Explorer anzeigen",addToCalendar:"Zum Kalender hinzuf\xFCgen",calendar:{google:"Google Kalender",outlook:"Outlook Kalender",yahoo:"Yahoo Kalender",downloadIcs:".ics Datei herunterladen",syncToGoogle:"Mit Google Kalender synchronisieren",syncToGoogleNotConfigured:"Google Kalender-Synchronisierung nicht konfiguriert",syncToGoogleSuccess:"Aufgabe mit Google Kalender synchronisiert",syncToGoogleFailed:"Synchronisierung mit Google Kalender fehlgeschlagen"},recurrence:"Wiederholung",clearRecurrence:"Wiederholung l\xF6schen",customRecurrence:"Benutzerdefinierte Wiederholung...",createSubtask:"Unteraufgabe erstellen",dependencies:{title:"Abh\xE4ngigkeiten",addBlockedBy:"Blockiert von hinzuf\xFCgen\u2026",addBlockedByTitle:"Aufgaben hinzuf\xFCgen, von denen dies abh\xE4ngt",addBlocking:"Blockierend hinzuf\xFCgen\u2026",addBlockingTitle:"Aufgaben hinzuf\xFCgen, die dies blockiert",removeBlockedBy:"Blockiert-von entfernen\u2026",removeBlocking:"Blockierend entfernen\u2026",unknownDependency:"Unbekannt",inputPlaceholder:"[[Aufgabennotiz]]",notices:{noEntries:"Bitte geben Sie mindestens eine Aufgabe ein",blockedByAdded:"{count} Abh\xE4ngigkeit hinzugef\xFCgt",blockedByRemoved:"Abh\xE4ngigkeit entfernt",blockingAdded:"{count} abh\xE4ngige Aufgabe hinzugef\xFCgt",blockingRemoved:"Abh\xE4ngige Aufgabe entfernt",unresolved:"Konnte nicht aufl\xF6sen: {entries}",noEligibleTasks:"Keine passenden Aufgaben verf\xFCgbar",updateFailed:"Abh\xE4ngigkeiten konnten nicht aktualisiert werden"}},organization:{title:"Organisation",projects:"Projekte",addToProject:"Zu Projekt hinzuf\xFCgen\u2026",subtasks:"Unteraufgaben",addSubtasks:"Unteraufgaben hinzuf\xFCgen\u2026",notices:{alreadyInProject:"Aufgabe ist bereits in diesem Projekt",alreadySubtask:"Aufgabe ist bereits eine Unteraufgabe dieser Aufgabe",addedToProject:"Zu Projekt hinzugef\xFCgt: {project}",addedAsSubtask:"{subtask} als Unteraufgabe von {parent} hinzugef\xFCgt",addToProjectFailed:"Hinzuf\xFCgen der Aufgabe zum Projekt fehlgeschlagen",addAsSubtaskFailed:"Hinzuf\xFCgen der Aufgabe als Unteraufgabe fehlgeschlagen",projectSelectFailed:"Projektauswahl konnte nicht ge\xF6ffnet werden",subtaskSelectFailed:"Unteraufgaben-Auswahl konnte nicht ge\xF6ffnet werden",noEligibleSubtasks:"Keine geeigneten Aufgaben verf\xFCgbar, um als Unteraufgaben zugewiesen zu werden",currentTaskNotFound:"Aktuelle Aufgabendatei nicht gefunden",updateContextsFailed:"Kontexte konnten nicht aktualisiert werden"},contexts:"Kontexte",addContext:"Kontext hinzuf\xFCgen\u2026",contextPlaceholder:"Kontext",contextSelected:"\u2713 {context}",clearContexts:"Kontexte l\xF6schen"},subtasks:{loading:"Unteraufgaben werden geladen...",noSubtasks:"Keine Unteraufgaben gefunden",loadFailed:"Unteraufgaben konnten nicht geladen werden"},markComplete:"Als abgeschlossen f\xFCr dieses Datum markieren",markIncomplete:"Als unvollst\xE4ndig f\xFCr dieses Datum markieren",skipInstance:"Instanz \xFCberspringen",unskipInstance:"Instanz nicht \xFCberspringen",quickReminders:{atTime:"Zur Zeit des Events",fiveMinutes:"5 Minuten vorher",fifteenMinutes:"15 Minuten vorher",oneHour:"1 Stunde vorher",oneDay:"1 Tag vorher"},notices:{toggleCompletionFailure:"Abschluss der wiederkehrenden Aufgabe konnte nicht umgeschaltet werden: {message}",toggleSkipFailure:"\xDCberspringen der wiederkehrenden Aufgabe konnte nicht umgeschaltet werden: {message}",updateDueDateFailure:"Aufgaben-F\xE4lligkeitsdatum konnte nicht aktualisiert werden: {message}",updateScheduledFailure:"Aufgaben-Planungsdatum konnte nicht aktualisiert werden: {message}",updateCustomDateFailure:"Fehler beim Aktualisieren von {field}: {message}",updateRemindersFailure:"Erinnerungen konnten nicht aktualisiert werden",clearRemindersFailure:"Erinnerungen konnten nicht gel\xF6scht werden",addReminderFailure:"Erinnerung konnte nicht hinzugef\xFCgt werden",archiveFailure:"Aufgabenarchiv konnte nicht umgeschaltet werden: {message}",copyTitleSuccess:"Aufgabentitel in Zwischenablage kopiert",copyFailure:"Kopieren in Zwischenablage fehlgeschlagen",renameSuccess:'Umbenannt zu "{name}"',renameFailure:"Datei konnte nicht umbenannt werden",copyPathSuccess:"Dateipfad in Zwischenablage kopiert",copyUrlSuccess:"Obsidian URL in Zwischenablage kopiert",updateRecurrenceFailure:"Aufgabenwiederholung konnte nicht aktualisiert werden: {message}",updateTagsFailed:"Tags konnten nicht aktualisiert werden"},tags:"Tags",addTag:"Tag hinzuf\xFCgen\u2026",removeTag:"{tag} entfernen",removeTagInput:"Tag entfernen\u2026",tagPlaceholder:"Tag oder #tag",clearTags:"Tags l\xF6schen"},priority:{clearPriority:"Priorit\xE4t l\xF6schen"},ics:{showDetails:"Details anzeigen",createTask:"Aufgabe aus Event erstellen",createNote:"Notiz aus Event erstellen",linkNote:"Bestehende Notiz verlinken",copyTitle:"Titel kopieren",copyLocation:"Ort kopieren",copyUrl:"URL kopieren",copyMarkdown:"Als Markdown kopieren",subscriptionUnknown:"Unbekannter Kalender",notices:{copyTitleSuccess:"Event-Titel in Zwischenablage kopiert",copyLocationSuccess:"Ort in Zwischenablage kopiert",copyUrlSuccess:"Event-URL in Zwischenablage kopiert",copyMarkdownSuccess:"Event-Details als Markdown kopiert",copyFailure:"Kopieren in Zwischenablage fehlgeschlagen",taskCreated:"Aufgabe erstellt: {title}",taskCreateFailure:"Aufgabe aus Event konnte nicht erstellt werden",noteCreated:"Notiz erfolgreich erstellt",creationFailure:"Erstellungsmodal konnte nicht ge\xF6ffnet werden",linkSuccess:'Notiz "{name}" mit Event verlinkt',linkFailure:"Notiz konnte nicht verlinkt werden",linkSelectionFailure:"Notizauswahl konnte nicht ge\xF6ffnet werden"},markdown:{titleFallback:"Unbenanntes Event",calendar:"**Kalender:** {value}",date:"**Datum & Zeit:** {value}",location:"**Ort:** {value}",descriptionHeading:"### Beschreibung",url:"**URL:** {value}",at:" um {time}"}},date:{increment:{plusOneDay:"+1 Tag",minusOneDay:"-1 Tag",plusOneWeek:"+1 Woche",minusOneWeek:"-1 Woche"},basic:{today:"Heute",tomorrow:"Morgen",thisWeekend:"Dieses Wochenende",nextWeek:"N\xE4chste Woche",nextMonth:"N\xE4chster Monat"},weekdaysLabel:"Wochentage",selected:"\u2713 {label}",pickDateTime:"Datum & Zeit w\xE4hlen\u2026",clearDate:"Datum l\xF6schen",modal:{title:"Datum & Zeit setzen",dateLabel:"Datum",timeLabel:"Zeit (optional)",select:"Ausw\xE4hlen"}}},services:{pomodoro:{notices:{alreadyRunning:"Ein Pomodoro l\xE4uft bereits",resumeCurrentSession:"Setze die aktuelle Sitzung fort, anstatt eine neue zu starten",timerAlreadyRunning:"Ein Timer l\xE4uft bereits",resumeSessionInstead:"Setze die aktuelle Sitzung fort, anstatt eine neue zu starten",shortBreakStarted:"Kurze Pause gestartet",longBreakStarted:"Lange Pause gestartet",paused:"Pomodoro pausiert",resumed:"Pomodoro fortgesetzt",stoppedAndReset:"Pomodoro gestoppt und zur\xFCckgesetzt",migrationSuccess:"{count} Pomodoro-Sitzungen erfolgreich zu t\xE4glichen Notizen migriert.",migrationFailure:"Migration der Pomodoro-Daten fehlgeschlagen. Bitte versuche es erneut oder pr\xFCfe die Konsole f\xFCr Details."}},icsSubscription:{notices:{calendarNotFound:'Kalender "{name}" nicht gefunden (404). Bitte pr\xFCfe, ob die ICS-URL korrekt ist und der Kalender \xF6ffentlich zug\xE4nglich ist.',calendarAccessDenied:'Kalender "{name}" Zugriff verweigert (500). Dies k\xF6nnte auf Microsoft Outlook Server-Beschr\xE4nkungen zur\xFCckzuf\xFChren sein. Versuche, die ICS-URL aus deinen Kalendereinstellungen neu zu generieren.',fetchRemoteFailed:'Remote-Kalender "{name}" konnte nicht abgerufen werden: {error}',readLocalFailed:'Lokaler Kalender "{name}" konnte nicht gelesen werden: {error}'}},calendarExport:{notices:{generateLinkFailed:"Kalenderlink konnte nicht generiert werden",noTasksToExport:"Keine Aufgaben zum Exportieren gefunden",downloadSuccess:"{filename} mit {count} Aufgabe{plural} heruntergeladen",downloadFailed:"Kalenderdatei konnte nicht heruntergeladen werden",singleDownloadSuccess:"{filename} heruntergeladen"}},filter:{groupLabels:{noProject:"Kein Projekt",noTags:"Keine Tags",invalidDate:"Ung\xFCltiges Datum",due:{overdue:"\xDCberf\xE4llig",today:"Heute",tomorrow:"Morgen",nextSevenDays:"N\xE4chste sieben Tage",later:"Sp\xE4ter",none:"Kein F\xE4lligkeitsdatum"},scheduled:{past:"Vergangene Planung",today:"Heute",tomorrow:"Morgen",nextSevenDays:"N\xE4chste sieben Tage",later:"Sp\xE4ter",none:"Kein Planungsdatum"}},errors:{noDatesProvided:"Keine Daten bereitgestellt"},folders:{root:"(Root)"}},instantTaskConvert:{notices:{noCheckboxTasks:"Keine Checkbox-Aufgaben in der aktuellen Notiz gefunden.",convertingTasks:"{count} Aufgabe{plural} wird konvertiert...",conversionSuccess:"\u2705 {count} Aufgabe{plural} erfolgreich zu TaskNotes konvertiert!",partialConversion:"{successCount} Aufgabe{successPlural} konvertiert. {failureCount} fehlgeschlagen.",batchConversionFailed:"Batch-Konvertierung fehlgeschlagen. Bitte versuche es erneut.",invalidParameters:"Ung\xFCltige Eingabeparameter.",emptyLine:"Aktuelle Zeile ist leer oder enth\xE4lt keinen g\xFCltigen Inhalt.",parseError:"Fehler beim Parsen der Aufgabe: {error}",invalidTaskData:"Ung\xFCltige Aufgabendaten.",replaceLineFailed:"Aufgabenzeile konnte nicht ersetzt werden.",conversionComplete:"Aufgabe konvertiert: {title}",conversionCompleteShortened:'Aufgabe konvertiert: "{title}" (Dateiname wegen L\xE4nge gek\xFCrzt)',fileExists:"Eine Datei mit diesem Namen existiert bereits. Bitte versuche es erneut oder benenne die Aufgabe um.",conversionFailed:"Aufgabe konnte nicht konvertiert werden. Bitte versuche es erneut."}},icsNote:{notices:{templateNotFound:"Vorlage nicht gefunden: {path}",templateProcessError:"Fehler beim Verarbeiten der Vorlage: {template}",linkedToEvent:"Notiz mit ICS-Event verlinkt: {title}"}},task:{notices:{templateNotFound:"Aufgabenk\xF6rper-Vorlage nicht gefunden: {path}",templateReadError:"Fehler beim Lesen der Aufgabenk\xF6rper-Vorlage: {template}",occurrenceTemplateNotFound:"Vorkommnisnotiz-Vorlage nicht gefunden: {path}",occurrenceTemplateReadError:"Fehler beim Lesen der Vorkommnisnotiz-Vorlage: {template}",moveTaskFailed:"{operation} Aufgabe konnte nicht verschoben werden: {error}"}},autoExport:{notices:{exportFailed:"TaskNotes Auto-Export fehlgeschlagen: {error}"}}},ui:{icsCard:{untitledEvent:"Unbenanntes Event",allDay:"Ganzt\xE4gig",calendarEvent:"Kalenderevent",calendarFallback:"Kalender"},noteCard:{createdLabel:"Erstellt:",dailyBadge:"T\xE4glich",dailyTooltip:"T\xE4gliche Notiz"},taskCard:{labels:{due:"F\xE4llig",scheduled:"Geplant",recurrence:"Wiederkehrend",completed:"Abgeschlossen",created:"Erstellt",modified:"Ge\xE4ndert",blocked:"Blockiert",blocking:"Blockierend"},blockedBadge:"Blockiert",blockedBadgeTooltip:"Diese Aufgabe wartet auf eine andere Aufgabe",blockingBadge:"Blockierend",blockingBadgeTooltip:"Diese Aufgabe blockiert eine andere Aufgabe",blockingToggle:"Blockiert {count} Aufgaben",priorityAriaLabel:"Priorit\xE4t: {label}",taskOptions:"Aufgabenoptionen",recurrenceTooltip:"{label}: {value}",reminderTooltipOne:"1 Erinnerung gesetzt (zum Verwalten klicken)",reminderTooltipMany:"{count} Erinnerungen gesetzt (zum Verwalten klicken)",projectTooltip:"Diese Aufgabe wird als Projekt verwendet (zum Ein-/Ausblenden von Unteraufgaben klicken)",projectIndicatorTooltip:"Diese Aufgabe wird als Projekt verwendet",expandSubtasks:"Unteraufgaben ausklappen",collapseSubtasks:"Unteraufgaben einklappen",dueToday:"{label}: Heute",dueTodayAt:"{label}: Heute um {time}",dueOverdue:"{label}: {display} (\xFCberf\xE4llig)",dueLabel:"{label}: {display}",scheduledToday:"{label}: Heute",scheduledTodayAt:"{label}: Heute um {time}",scheduledPast:"{label}: {display} (vergangen)",scheduledLabel:"{label}: {display}",loadingDependencies:"Abh\xE4ngigkeiten werden geladen\u2026",blockingEmpty:"Keine abh\xE4ngigen Aufgaben",blockingLoadError:"Abh\xE4ngigkeiten konnten nicht geladen werden",googleCalendarSyncTooltip:"Mit Google Kalender synchronisiert",detailsTooltip:"Aufgabe hat Details"},propertyEventCard:{unknownFile:"Unbekannte Datei"},filterHeading:{allViewName:"Alle"},filterBar:{saveView:"Ansicht speichern",saveViewNamePlaceholder:"Ansichtsname eingeben...",saveButton:"Speichern",views:"Ansichten",savedFilterViews:"Gespeicherte Filteransichten",filters:"Filter",properties:"Eigenschaften",sort:"Sortieren",newTask:"Neu",expandAllGroups:"Alle Gruppen ausklappen",collapseAllGroups:"Alle Gruppen einklappen",searchTasksPlaceholder:"Aufgaben suchen...",searchTasksTooltip:"Aufgabentitel suchen",filterUnavailable:"Filterleiste vor\xFCbergehend nicht verf\xFCgbar",toggleFilter:"Filter umschalten",activeFiltersTooltip:"Aktive Filter \u2013 Klicken zum \xC4ndern, Rechtsklick zum L\xF6schen",configureVisibleProperties:"Sichtbare Eigenschaften konfigurieren",sortAndGroupOptions:"Sortier- und Gruppenoptionen",sortMenuHeader:"Sortieren",orderMenuHeader:"Reihenfolge",groupMenuHeader:"Gruppieren",createNewTask:"Neue Aufgabe erstellen",filter:"Filter",displayOrganization:"Anzeige & Organisation",viewOptions:"Ansichtsoptionen",addFilter:"Filter hinzuf\xFCgen",addFilterGroup:"Filtergruppe hinzuf\xFCgen",addFilterTooltip:"Neue Filterbedingung hinzuf\xFCgen",addFilterGroupTooltip:"Verschachtelte Filtergruppe hinzuf\xFCgen",clearAllFilters:"Alle Filter und Gruppen l\xF6schen",saveCurrentFilter:"Aktuellen Filter als Ansicht speichern",closeFilterModal:"Filtermodal schlie\xDFen",deleteFilterGroup:"Filtergruppe l\xF6schen",deleteCondition:"Bedingung l\xF6schen",all:"Alle",any:"Beliebige",followingAreTrue:"der folgenden sind wahr:",where:"wo",selectProperty:"Ausw\xE4hlen...",chooseProperty:"W\xE4hle, nach welcher Aufgabeneigenschaft gefiltert werden soll",chooseOperator:"W\xE4hle, wie der Eigenschaftswert verglichen werden soll",enterValue:"Gib den Wert zum Filtern ein",selectValue:"W\xE4hle eine {property} zum Filtern",sortBy:"Sortieren nach:",toggleSortDirection:"Sortierrichtung umschalten",chooseSortMethod:"W\xE4hle, wie Aufgaben sortiert werden sollen",groupBy:"Gruppieren nach:",chooseGroupMethod:"Aufgaben nach gemeinsamer Eigenschaft gruppieren",toggleViewOption:"{option} umschalten",expandCollapseFilters:"Klicken zum Aus-/Einklappen der Filterbedingungen",expandCollapseSort:"Klicken zum Aus-/Einklappen der Sortier- und Gruppenoptionen",expandCollapseViewOptions:"Klicken zum Aus-/Einklappen der ansichtsspezifischen Optionen",naturalLanguageDates:"Nat\xFCrliche Sprache Daten",naturalLanguageExamples:"Beispiele f\xFCr nat\xFCrliche Sprache Daten anzeigen",enterNumericValue:"Gib einen numerischen Wert zum Filtern ein",enterDateValue:"Gib ein Datum in nat\xFCrlicher Sprache oder ISO-Format ein",pickDateTime:"Datum & Zeit w\xE4hlen",noSavedViews:"Keine gespeicherten Ansichten",savedViews:"Gespeicherte Ansichten",yourSavedFilters:"Deine gespeicherten Filterkonfigurationen",dragToReorder:"Ziehen zum Neuordnen der Ansichten",loadSavedView:"Gespeicherte Ansicht laden: {name}",deleteView:"Ansicht l\xF6schen",deleteViewTitle:"Ansicht l\xF6schen",deleteViewMessage:'Bist du sicher, dass du die Ansicht "{name}" l\xF6schen m\xF6chtest?',manageAllReminders:"Alle Erinnerungen verwalten...",clearAllReminders:"Alle Erinnerungen l\xF6schen",customRecurrence:"Benutzerdefinierte Wiederholung...",clearRecurrence:"Wiederholung l\xF6schen",sortOptions:{dueDate:"F\xE4lligkeitsdatum",scheduledDate:"Planungsdatum",priority:"Priorit\xE4t",status:"Status",title:"Titel",createdDate:"Erstellungsdatum",tags:"Tags",ascending:"Aufsteigend",descending:"Absteigend"},group:{none:"Keine",status:"Status",priority:"Priorit\xE4t",context:"Kontext",project:"Projekt",dueDate:"F\xE4lligkeitsdatum",scheduledDate:"Planungsdatum",tags:"Tags",completedDate:"Abschlussdatum"},subgroupLabel:"UNTERGRUPPE",notices:{propertiesMenuFailed:"Eigenschaftenmen\xFC konnte nicht angezeigt werden"}}},components:{dateContextMenu:{weekdays:"Wochentage",clearDate:"Datum l\xF6schen",today:"Heute",tomorrow:"Morgen",thisWeekend:"Dieses Wochenende",nextWeek:"N\xE4chste Woche",nextMonth:"N\xE4chsten Monat",setDateTime:"Datum & Zeit setzen",dateLabel:"Datum",timeLabel:"Zeit (optional)"},subgroupMenuBuilder:{none:"Keine",status:"Status",priority:"Priorit\xE4t",context:"Kontext",project:"Projekt",dueDate:"F\xE4lligkeitsdatum",scheduledDate:"Planungsdatum",tags:"Tags",completedDate:"Abschlussdatum",subgroup:"UNTERGRUPPE"},propertyVisibilityDropdown:{coreProperties:"KERNEIGENSCHAFTEN",organization:"ORGANISATION",customProperties:"BENUTZERDEFINIERTE EIGENSCHAFTEN",failed:"Eigenschaftenmen\xFC konnte nicht angezeigt werden",properties:{statusDot:"Statuspunkt",priorityDot:"Priorit\xE4tspunkt",dueDate:"F\xE4lligkeitsdatum",scheduledDate:"Planungsdatum",timeEstimate:"Zeitsch\xE4tzung",totalTrackedTime:"Gesamte erfasste Zeit",checklistProgress:"Checklistenfortschritt",recurrence:"Wiederholung",completedDate:"Abschlussdatum",createdDate:"Erstellungsdatum",modifiedDate:"\xC4nderungsdatum",projects:"Projekte",contexts:"Kontexte",tags:"Tags",blocked:"Blockiert",blocking:"Blockierend"}},reminderContextMenu:{remindBeforeDue:"Vor F\xE4lligkeit erinnern...",remindBeforeScheduled:"Vor Planung erinnern...",manageAllReminders:"Alle Erinnerungen verwalten...",clearAllReminders:"Alle Erinnerungen l\xF6schen",quickReminders:{atTime:"Zur Zeit des Events",fiveMinutesBefore:"5 Minuten vorher",fifteenMinutesBefore:"15 Minuten vorher",oneHourBefore:"1 Stunde vorher",oneDayBefore:"1 Tag vorher"}},recurrenceContextMenu:{daily:"T\xE4glich",weeklyOn:"W\xF6chentlich am {day}",everyTwoWeeksOn:"Alle 2 Wochen am {day}",monthlyOnThe:"Monatlich am {ordinal}",everyThreeMonthsOnThe:"Alle 3 Monate am {ordinal}",yearlyOn:"J\xE4hrlich am {month} {ordinal}",weekdaysOnly:"Nur Wochentage",dailyAfterCompletion:"T\xE4glich (nach Abschluss)",every3DaysAfterCompletion:"Alle 3 Tage (nach Abschluss)",weeklyAfterCompletion:"W\xF6chentlich (nach Abschluss)",monthlyAfterCompletion:"Monatlich (nach Abschluss)",customRecurrence:"Benutzerdefinierte Wiederholung...",clearRecurrence:"Wiederholung l\xF6schen",customRecurrenceModal:{title:"Benutzerdefinierte Wiederholung",startDate:"Startdatum",startDateDesc:"Das Datum, an dem das Wiederholungsmuster beginnt",startTime:"Startzeit",startTimeDesc:"Die Zeit, zu der wiederkehrende Instanzen erscheinen sollen (optional)",recurFrom:"Wiederholen ab",recurFromDesc:"Wann soll das n\xE4chste Vorkommen berechnet werden?",scheduledDate:"Geplantes Datum",completionDate:"Abschlussdatum",frequency:"H\xE4ufigkeit",interval:"Intervall",intervalDesc:"Alle X Tage/Wochen/Monate/Jahre",daysOfWeek:"Wochentage",daysOfWeekDesc:"Bestimmte Tage ausw\xE4hlen (f\xFCr w\xF6chentliche Wiederholung)",monthlyRecurrence:"Monatliche Wiederholung",monthlyRecurrenceDesc:"W\xE4hle, wie monatlich wiederholt werden soll",yearlyRecurrence:"J\xE4hrliche Wiederholung",yearlyRecurrenceDesc:"W\xE4hle, wie j\xE4hrlich wiederholt werden soll",endCondition:"Endbedingung",endConditionDesc:"W\xE4hle, wann die Wiederholung enden soll",neverEnds:"Endet nie",endAfterOccurrences:"Nach {count} Vorkommen beenden",endOnDate:"Am {date} beenden",onDayOfMonth:"Am Tag {day} jeden Monat",onTheWeekOfMonth:"Am {week} {day} jeden Monat",onDateOfYear:"Am {month} {day} jedes Jahr",onTheWeekOfYear:"Am {week} {day} von {month} jedes Jahr",frequencies:{daily:"T\xE4glich",weekly:"W\xF6chentlich",monthly:"Monatlich",yearly:"J\xE4hrlich"},weekPositions:{first:"ersten",second:"zweiten",third:"dritten",fourth:"vierten",last:"letzten"},weekdays:{monday:"Montag",tuesday:"Dienstag",wednesday:"Mittwoch",thursday:"Donnerstag",friday:"Freitag",saturday:"Samstag",sunday:"Sonntag"},weekdaysShort:{mon:"Mo",tue:"Di",wed:"Mi",thu:"Do",fri:"Fr",sat:"Sa",sun:"So"},cancel:"Abbrechen",save:"Speichern"}}}};var dxe={common:{appName:"TaskNotes",new:"Nuevo",cancel:"Cancelar",confirm:"Confirmar",close:"Cerrar",save:"Guardar",reorder:{confirmLargeTitle:"Confirmar reordenaci\xF3n grande",confirmButton:"Reordenar notas",confirmLargeMessage:'Reordenar aqu\xED actualizar\xE1 "{field}" en {count} notas para crear un orden manual persistente para {scope}. Las notas ocultas o filtradas dentro del mismo alcance tambi\xE9n pueden actualizarse. \xBFContinuar?'},language:"Idioma",systemDefault:"Predeterminado del sistema",loading:"Cargando...",languages:{en:"Ingl\xE9s",fr:"Franc\xE9s",ru:"Ruso",zh:"Chino",de:"Alem\xE1n",es:"Espa\xF1ol",ja:"Japon\xE9s",pt:"Portugu\xE9s (Brasil)",ko:"Coreano"},weekdays:{sunday:"Domingo",monday:"Lunes",tuesday:"Martes",wednesday:"Mi\xE9rcoles",thursday:"Jueves",friday:"Viernes",saturday:"S\xE1bado"},months:{january:"Enero",february:"Febrero",march:"Marzo",april:"Abril",may:"Mayo",june:"Junio",july:"Julio",august:"Agosto",september:"Septiembre",october:"Octubre",november:"Noviembre",december:"Diciembre"}},views:{agenda:{title:"Agenda",today:"Hoy",overdue:"Vencido",refreshCalendars:"Actualizar calendarios",actions:{previousPeriod:"Per\xEDodo anterior",nextPeriod:"Pr\xF3ximo per\xEDodo",goToToday:"Ir a hoy",refreshCalendars:"Actualizar suscripciones de calendario"},loading:"Cargando agenda...",dayToggle:"Cambiar d\xEDa",overdueToggle:"Alternar secci\xF3n de vencidos",expandAllDays:"Expandir todos los d\xEDas",collapseAllDays:"Contraer todos los d\xEDas",notices:{calendarNotReady:"Servicio de calendario a\xFAn no listo",calendarRefreshed:"Suscripciones de calendario actualizadas",refreshFailed:"Error al actualizar"},empty:{noItemsScheduled:"No hay elementos programados",noItemsFound:"No se encontraron elementos",helpText:"Cree tareas con fechas de vencimiento o programadas, o agregue notas para verlas aqu\xED."},contextMenu:{showOverdueSection:"Mostrar secci\xF3n de vencidos",showNotes:"Mostrar notas",calendarSubscriptions:"Suscripciones de calendario"},periods:{thisWeek:"Esta semana"},tipPrefix:"Consejo: "},taskList:{title:"Tareas",expandAllGroups:"Expandir todos los grupos",collapseAllGroups:"Contraer todos los grupos",noTasksFound:"No se encontraron tareas para los filtros seleccionados.",reorder:{scope:{ungrouped:"esta lista sin agrupar",group:'grupo "{group}"'}},errors:{formulaGroupingReadOnly:"No se pueden reordenar tareas en grupos basados en f\xF3rmulas. Los valores de f\xF3rmula se calculan y no pueden modificarse directamente."}},notes:{title:"Notas",refreshButton:"Actualizar",refreshingButton:"Actualizando...",notices:{indexingDisabled:"Indexaci\xF3n de notas deshabilitada"},empty:{noNotesFound:"No se encontraron notas",helpText:"No se encontraron notas para la fecha seleccionada. Intente seleccionar una fecha diferente en la vista de Mini Calendario o cree algunas notas."},loading:"Cargando notas...",refreshButtonAriaLabel:"Actualizar lista de notas"},miniCalendar:{title:"Mini Calendario",contextMenu:{openDailyNote:"Abrir nota diaria",openWeeklyNote:"Abrir nota semanal"}},advancedCalendar:{title:"Calendario",filters:{showFilters:"Mostrar filtros",hideFilters:"Ocultar filtros"},viewOptions:{calendarSubscriptions:"Suscripciones de calendario",timeEntries:"Entradas de tiempo",timeblocks:"Bloques de tiempo",scheduledDates:"Fechas programadas",dueDates:"Fechas de vencimiento",allDaySlot:"Espacio de d\xEDa completo",scheduledTasks:"Tareas programadas",recurringTasks:"Tareas recurrentes"},buttons:{refresh:"Actualizar",refreshHint:"Actualizar suscripciones de calendario"},notices:{icsServiceNotAvailable:"Servicio de suscripci\xF3n ICS no disponible",calendarRefreshedAll:"Todas las suscripciones de calendario se actualizaron correctamente",refreshFailed:"Error al actualizar algunas suscripciones de calendario",timeblockSpecificTime:"Los bloques de tiempo deben tener horas espec\xEDficas. Seleccione un rango de tiempo en la vista de semana o d\xEDa.",timeblockMoved:'Bloque de tiempo "{title}" movido a {date}',timeblockUpdated:'Hora del bloque de tiempo "{title}" actualizada',timeblockMoveFailed:"Error al mover el bloque de tiempo: {message}",timeblockResized:'Duraci\xF3n del bloque de tiempo "{title}" actualizada',timeblockResizeFailed:"Error al redimensionar el bloque de tiempo: {message}",taskScheduled:'Tarea "{title}" programada para {date}',scheduleTaskFailed:"Error al programar la tarea",endTimeAfterStart:"La hora de fin debe ser posterior a la hora de inicio",timeEntryNotFound:"Entrada de tiempo no encontrada",timeEntryDeleted:"Entrada de tiempo eliminada",deleteTimeEntryFailed:"Error al eliminar la entrada de tiempo"},timeEntry:{estimatedSuffix:"estimado",trackedSuffix:"registrado",recurringPrefix:"Recurrente: ",completedPrefix:"Completado: ",createdPrefix:"Creado: ",modifiedPrefix:"Modificado: ",duePrefix:"Vence: ",scheduledPrefix:"Programado: "},contextMenus:{openTask:"Abrir tarea",deleteTimeEntry:"Eliminar entrada de tiempo",deleteTimeEntryTitle:"Eliminar Entrada de Tiempo",deleteTimeEntryConfirm:"\xBFEst\xE1s seguro de que deseas eliminar esta entrada de tiempo{duration}? Esta acci\xF3n no se puede deshacer.",deleteButton:"Eliminar",cancelButton:"Cancelar"}},basesCalendar:{title:"Calendario Bases",today:"Hoy",buttonText:{month:"M",week:"S",day:"D",year:"A",list:"L",customDays:"{count}D",listDays:"{count}d Lista",refresh:"Actualizar"},hints:{refresh:"Actualizar suscripciones de calendario",today:"Ir a hoy",prev:"Anterior",next:"Siguiente",month:"Vista de mes",week:"Vista de semana",day:"Vista de d\xEDa",year:"Vista de a\xF1o",list:"Vista de lista",customDays:"Vista de {count} d\xEDas"},settings:{groups:{dateNavigation:"Navegaci\xF3n por fecha",events:"Eventos",layout:"Dise\xF1o",view:"Vista",display:"Visualizaci\xF3n",timeGrid:"Cuadr\xEDcula horaria",eventLayout:"Dise\xF1o de eventos",propertyBasedEvents:"Eventos basados en propiedades",calendarSubscriptions:"Suscripciones de calendario",googleCalendars:"Calendarios de Google",microsoftCalendars:"Calendarios de Microsoft"},dateNavigation:{navigateToDate:"Navegar a la fecha",navigateToDatePlaceholder:"AAAA-MM-DD (ej. 2025-01-15) - dejar vac\xEDo para usar la propiedad",navigateToDateFromProperty:"Navegar a la fecha desde la propiedad",navigateToDateFromPropertyPlaceholder:"Seleccionar una propiedad de fecha (opcional)",propertyNavigationStrategy:"Estrategia de navegaci\xF3n por propiedad",createDailyNotesFromDateLinks:"Crear notas diarias desde enlaces de fecha",strategies:{first:"Primer resultado",earliest:"Fecha m\xE1s antigua",latest:"Fecha m\xE1s reciente"}},events:{showScheduledTasks:"Mostrar tareas programadas",showDueTasks:"Mostrar tareas vencidas",showOverdueOnToday:"Mostrar tareas atrasadas en la fecha de hoy",showRecurringTasks:"Mostrar tareas recurrentes",showTimeEntries:"Mostrar entradas de tiempo",showTimeblocks:"Mostrar bloques de tiempo",showPropertyBasedEvents:"Mostrar eventos basados en propiedades",showCompletedRecurringInstances:"Mostrar instancias recurrentes completadas",showSkippedRecurringInstances:"Mostrar instancias recurrentes omitidas"},layout:{calendarView:"Vista del calendario",customDayCount:"N\xFAmero de d\xEDas personalizado",listDayCount:"Recuento de d\xEDas de lista",dayStartTime:"Hora de inicio del d\xEDa",dayStartTimePlaceholder:"HH:mm:ss (ej. 08:00:00)",dayEndTime:"Hora de fin del d\xEDa",dayEndTimePlaceholder:"HH:mm:ss (ej. 20:00:00)",timeSlotDuration:"Duraci\xF3n del intervalo de tiempo",timeSlotDurationPlaceholder:"HH:mm:ss (ej. 00:30:00)",dragDropResolution:"Resoluci\xF3n de arrastrar y soltar",dragDropResolutionPlaceholder:"HH:mm:ss (ej. 00:05:00)",weekStartsOn:"La semana comienza el",showWeekNumbers:"Mostrar n\xFAmeros de semana",showNowIndicator:"Mostrar indicador actual",showWeekends:"Mostrar fines de semana",showAllDaySlot:"Mostrar franja de todo el d\xEDa",showTimeGrid:"Mostrar desglose por horas",showTodayHighlight:"Resaltar hoy",todayColumnWidthMultiplier:"Multiplicador de ancho de la columna de hoy",showSelectionPreview:"Mostrar vista previa de selecci\xF3n",timeFormat:"Formato de hora",timeFormat12:"12 horas (AM/PM)",timeFormat24:"24 horas",initialScrollTime:"Hora de desplazamiento inicial",initialScrollTimePlaceholder:"HH:mm:ss (ej. 08:00:00)",minimumEventHeight:"Altura m\xEDnima del evento (px)",slotEventOverlap:"Permitir superposici\xF3n de eventos",enableSearch:"Habilitar cuadro de b\xFAsqueda",eventMaxStack:"M\xE1x. eventos apilados (vista semana/d\xEDa, 0 = ilimitado)",dayMaxEvents:"M\xE1x. eventos por d\xEDa (vista mes, 0 = autom\xE1tico)",dayMaxEventRows:"M\xE1x. filas de eventos por d\xEDa (vista mes, 0 = ilimitado)",spanScheduledToDue:"Expandir tareas entre fecha programada y fecha l\xEDmite",heightMode:"Modo de altura",heightModeFill:"Rellenar contenedor",heightModeAuto:"Altura autom\xE1tica"},propertyBasedEvents:{startDateProperty:"Propiedad de fecha de inicio",startDatePropertyPlaceholder:"Seleccionar propiedad para fecha/hora de inicio",endDateProperty:"Propiedad de fecha de fin (opcional)",endDatePropertyPlaceholder:"Seleccionar propiedad para fecha/hora de fin",titleProperty:"Propiedad de t\xEDtulo (opcional)",titlePropertyPlaceholder:"Seleccionar propiedad para t\xEDtulo del evento"}},notices:{noDailyNoteForDate:"No existe una nota diaria para esta fecha."},errors:{failedToInitialize:"Error al inicializar el calendario"}},kanban:{title:"Kanban",newTask:"Nueva tarea",addCard:"+ Agregar tarjeta",noTasks:"Sin tareas",uncategorized:"Sin categorizar",noProject:"Sin proyecto",reorder:{scope:{column:'columna "{group}"',columnInSwimlane:'columna "{group}" en swimlane "{swimlane}"'}},notices:{loadFailed:"Error al cargar el tablero Kanban",movedTask:'Tarea movida a "{0}"'},errors:{loadingBoard:"Error al cargar el tablero.",noGroupBy:"La vista Kanban requiere que se configure una propiedad 'Agrupar por'. Haga clic en el bot\xF3n 'Ordenar' y seleccione una propiedad en 'Agrupar por'.",formulaGroupingReadOnly:"No se pueden mover tareas entre columnas basadas en f\xF3rmulas. Los valores de f\xF3rmula se calculan y no se pueden modificar directamente.",formulaSwimlaneReadOnly:"No se pueden mover tareas entre carriles basados en f\xF3rmulas. Los valores de f\xF3rmula se calculan y no se pueden modificar directamente."},columnTitle:"Sin t\xEDtulo"},pomodoro:{title:"Pomodoro",status:{focus:"Enfoque",ready:"Listo para comenzar",paused:"Pausado",working:"Trabajando",shortBreak:"Descanso corto",longBreak:"Descanso largo",breakPrompt:"\xA1Excelente trabajo! Tiempo para un descanso {length}",breakLength:{short:"corto",long:"largo"},breakComplete:"\xA1Descanso completo! \xBFListo para el pr\xF3ximo pomodoro?"},buttons:{start:"Iniciar",pause:"Pausar",stop:"Detener",resume:"Reanudar",startShortBreak:"Iniciar descanso corto",startLongBreak:"Iniciar descanso largo",skipBreak:"Saltar descanso",chooseTask:"Elegir tarea...",changeTask:"Cambiar tarea...",clearTask:"Quitar tarea",selectDifferentTask:"Seleccionar una tarea diferente",startFocus:"Iniciar enfoque",addMinute:"A\xF1adir un minuto",subtractMinute:"Restar un minuto"},notices:{noTasks:"No se encontraron tareas no archivadas. Crea algunas tareas primero.",loadFailed:"Error al cargar las tareas",invalidDuration:"Introduce una duraci\xF3n como 10, 10:30 o 1:30:00."},statsLabel:"completadas hoy",meta:{ready:"{time} planificado \xB7 {count} completados hoy",running:"Quedan {time} \xB7 Termina a las {endTime}",paused:"{type} en pausa \xB7 quedan {time}",breakReady:"{type} listo \xB7 {time} planificado"},timer:{editLabel:"Editar duraci\xF3n del temporizador",inputLabel:"Duraci\xF3n del temporizador"}},pomodoroStats:{title:"Estad\xEDsticas de Pomodoro",heading:"Estad\xEDsticas de Pomodoro",refresh:"Actualizar",sections:{overview:"Resumen",today:"Hoy",week:"Esta semana",allTime:"Todo el tiempo",recent:"Sesiones recientes"},overviewCards:{todayPomos:{label:"Pomos de hoy",change:{more:"{count} m\xE1s que ayer",less:"{count} menos que ayer"}},totalPomos:{label:"Pomos totales"},todayFocus:{label:"Enfoque de hoy",change:{more:"{duration} m\xE1s que ayer",less:"{duration} menos que ayer"}},totalFocus:{label:"Duraci\xF3n total de enfoque"}},stats:{pomodoros:"Pomodoros",streak:"Racha",minutes:"Minutos",average:"Duraci\xF3n promedio",completion:"Finalizaci\xF3n"},recents:{empty:"A\xFAn no se han registrado sesiones",duration:"{minutes} min",status:{completed:"Completado",interrupted:"Interrumpido"},delete:"Eliminar sesi\xF3n",deleteAria:"Eliminar sesi\xF3n Pomodoro",deleteConfirmTitle:"\xBFEliminar sesi\xF3n Pomodoro?",deleteConfirmMessage:"Esto elimina la sesi\xF3n del historial de Pomodoro. Las entradas de tiempo de tareas existentes no se modifican.",deleteConfirmButton:"Eliminar",deleteSuccess:"Sesi\xF3n Pomodoro eliminada",deleteNotFound:"No se encontr\xF3 la sesi\xF3n Pomodoro"},basesMigration:{title:"\xBFQuieres una vista Base?",description:"Las vistas Base de Pomodoro usan el frontmatter de las notas diarias. Para ver este historial en la Base de estad\xEDsticas de Pomodoro generada, migra los datos de Pomodoro en ajustes y luego establece el almacenamiento en notas diarias."}},stats:{title:"Estad\xEDsticas",taskProjectStats:"Estad\xEDsticas de tareas y proyectos",sections:{filters:"Filtros",overview:"Resumen",today:"Hoy",thisWeek:"Esta semana",thisMonth:"Este mes",projectBreakdown:"Desglose de proyectos",dateRange:"Rango de fechas"},filters:{minTime:"Tiempo m\xEDnimo (minutos)",allTasks:"Todas las tareas",activeOnly:"Solo activas",completedOnly:"Solo completadas"},refreshButton:"Actualizar",timeRanges:{allTime:"Todo el tiempo",last7Days:"\xDAltimos 7 d\xEDas",last30Days:"\xDAltimos 30 d\xEDas",last90Days:"\xDAltimos 90 d\xEDas",customRange:"Rango personalizado"},resetFiltersButton:"Restablecer filtros",dateRangeFrom:"Desde",dateRangeTo:"Hasta",noProject:"Sin proyecto",cards:{timeTrackedEstimated:"Tiempo registrado / estimado",totalTasks:"Total de tareas",completionRate:"Tasa de completado",activeProjects:"Proyectos activos",avgTimePerTask:"Tiempo promedio por tarea"},labels:{tasks:"Tareas",completed:"Completadas",projects:"Proyectos"},noProjectData:"No hay datos de proyectos disponibles",notAvailable:"N/D",noTasks:"No se encontraron tareas",loading:"Cargando..."},releaseNotes:{title:"Novedades en TaskNotes {version}",header:"Novedades en TaskNotes {version}",viewAllLink:"Ver todas las notas de versi\xF3n en GitHub \u2192",starMessage:"Agradecemos mucho todos los comentarios. Si algo no te parece bien, cu\xE9ntanoslo en GitHub. Si TaskNotes te resulta \xFAtil, considera darle una estrella.",baseFilesNotice:"> [!info] Acerca de los archivos `.base` predeterminados\n> Los cambios en las plantillas `.base` generadas por defecto no sobrescriben tus archivos `.base` existentes, por lo que tus personalizaciones se mantienen.\n> Si quieres las mejoras m\xE1s recientes de las plantillas, regenera los archivos base en **Ajustes \u2192 TaskNotes \u2192 General \u2192 Vistas y archivos base \u2192 Actualizar archivos**."}},settings:{header:{documentation:"Documentaci\xF3n",documentationUrl:"https://tasknotes.dev"},tabs:{general:"General",taskProperties:"Propiedades de tareas",modalFields:"Campos del modal",defaults:"Predeterminados y plantillas",appearance:"Apariencia e interfaz",features:"Caracter\xEDsticas",integrations:"Integraciones"},features:{inlineTasks:{header:"Tareas en l\xEDnea",description:"Configuraci\xF3n para enlaces de tareas y conversi\xF3n de casillas a tareas en notas."},taskCreation:{header:"Creaci\xF3n de tareas",description:"Configura qu\xE9 ocurre despu\xE9s de crear tareas.",openAfterCreate:{name:"Abrir tarea despu\xE9s de crearla",description:"Elige si el modal normal Crear nueva tarea abre la nueva nota de tarea despu\xE9s de guardar.",options:{none:"No abrir",sameTab:"Abrir en la misma pesta\xF1a",newTab:"Abrir en una nueva pesta\xF1a"}}},overlays:{taskLinkToggle:{name:"Superposici\xF3n de enlace de tarea",description:"Mostrar superposiciones interactivas al pasar el cursor sobre enlaces de tareas"},aliasExclusion:{name:"Desactivar superposici\xF3n para enlaces con alias",description:"No mostrar el widget de tarea si el enlace contiene un alias (ej. [[Tarea|Alias]])."}},instantConvert:{toggle:{name:"Mostrar bot\xF3n de conversi\xF3n junto a casillas de verificaci\xF3n",description:"Mostrar un bot\xF3n en l\xEDnea junto a las casillas de verificaci\xF3n Markdown que las convierte en TaskNotes"},preserveCheckbox:{name:"Mantener la casilla al convertir",description:"Conservar el marcador original de casilla Markdown al convertir una casilla en un enlace de TaskNote"},folder:{name:"Carpeta para tareas creadas en l\xEDnea",description:"Carpeta donde se crear\xE1n las tareas desde comandos en l\xEDnea o conversi\xF3n de casillas. D\xE9jala vac\xEDa para usar la carpeta de tareas predeterminada. Usa {{currentNotePath}} para la carpeta de la nota actual, o {{currentNoteTitle}} para una subcarpeta con el nombre de la nota actual."}},nlp:{header:"Procesamiento de lenguaje natural",description:"Analiza fechas, prioridades y otras propiedades desde texto de entrada.",enable:{name:"Habilitar entrada de tareas en lenguaje natural",description:"Analizar fechas de vencimiento, prioridades y contextos desde lenguaje natural al crear tareas"},defaultToScheduled:{name:"Predeterminado a programado",description:"Cuando NLP detecta una fecha sin contexto, tratarla como programada en lugar de vencimiento"},language:{name:"Idioma NLP",description:"Idioma para patrones de procesamiento de lenguaje natural y an\xE1lisis de fechas"},statusTrigger:{name:"Activador de sugerencia de estado",description:"Texto para activar sugerencias de estado (dejar vac\xEDo para deshabilitar)"}},pomodoro:{header:"Temporizador Pomodoro",description:"Configura intervalos de trabajo/descanso para el temporizador Pomodoro.",workDuration:{name:"Duraci\xF3n del trabajo",description:"Duraci\xF3n de intervalos de trabajo en minutos"},shortBreak:{name:"Duraci\xF3n del descanso corto",description:"Duraci\xF3n de descansos cortos en minutos"},longBreak:{name:"Duraci\xF3n del descanso largo",description:"Duraci\xF3n de descansos largos en minutos"},longBreakInterval:{name:"Intervalo de descanso largo",description:"N\xFAmero de sesiones de trabajo antes de un descanso largo"},autoStartBreaks:{name:"Auto-iniciar descansos",description:"Iniciar autom\xE1ticamente temporizadores de descanso despu\xE9s de sesiones de trabajo"},autoStartWork:{name:"Auto-iniciar trabajo",description:"Iniciar autom\xE1ticamente sesiones de trabajo despu\xE9s de descansos"},notifications:{name:"Notificaciones de Pomodoro",description:"Mostrar notificaciones cuando terminen las sesiones de Pomodoro"},mobileSidebar:{name:"Barra lateral m\xF3vil",description:"D\xF3nde abrir el temporizador Pomodoro en dispositivos m\xF3viles",tab:"Panel de notas",left:"Barra lateral izquierda",right:"Barra lateral derecha"},statusBar:{name:"Mostrar Pomodoro en la barra de estado",description:"Mostrar la cuenta regresiva activa de Pomodoro en la barra de estado de Obsidian"}},uiLanguage:{header:"Idioma de la interfaz",description:"Cambiar el idioma de los men\xFAs, avisos y vistas de TaskNotes.",dropdown:{name:"Idioma de interfaz",description:"Seleccionar el idioma usado para el texto de la interfaz de TaskNotes"}},pomodoroSound:{enabledName:"Sonido habilitado",enabledDesc:"Reproducir sonido cuando terminen las sesiones de Pomodoro",volumeName:"Volumen del sonido",volumeDesc:"Volumen para sonidos de Pomodoro (0-100)"},dataStorage:{name:"Almacenamiento de datos de Pomodoro",description:"Configura d\xF3nde se almacenan y gestionan los datos de sesi\xF3n de Pomodoro.",dailyNotes:"Notas diarias",pluginData:"Datos del plugin",notices:{locationChanged:"Ubicaci\xF3n de almacenamiento de Pomodoro cambiada a {location}"}},notifications:{header:"Notificaciones",description:"Configura notificaciones de recordatorio de tareas y alertas.",enableName:"Habilitar notificaciones",enableDesc:"Habilitar notificaciones de recordatorio de tareas",typeName:"Tipo de notificaci\xF3n",typeDesc:"Tipo de notificaciones a mostrar",systemLabel:"Notificaciones del sistema",inAppLabel:"Notificaciones en la aplicaci\xF3n",soundEnabledName:"Sonido de notificaci\xF3n",soundEnabledDesc:"Reproducir un sonido cuando se activen los recordatorios de tareas",soundVolumeName:"Volumen del sonido",soundVolumeDesc:"Volumen de los sonidos de recordatorio de tareas (0-100)",soundPreviewName:"Previsualizar sonido de notificaci\xF3n",soundPreviewDesc:"Reproducir el sonido configurado de recordatorio de tareas",soundPreviewButton:"Previsualizar",testReminderName:"Enviar recordatorio de prueba",testReminderDesc:"Enviar un recordatorio de prueba usando el tipo de notificaci\xF3n y los ajustes de sonido actuales.",testReminderButton:"Enviar prueba"},overdue:{hideCompletedName:"Ocultar tareas completadas de vencidas",hideCompletedDesc:"Excluir tareas completadas de c\xE1lculos de tareas vencidas"},indexing:{disableName:"Deshabilitar indexaci\xF3n de notas",disableDesc:"Deshabilitar indexaci\xF3n autom\xE1tica de contenido de notas para mejor rendimiento"},suggestions:{debounceName:"Rebote de sugerencias",debounceDesc:"Retraso en milisegundos antes de mostrar sugerencias"},timeTracking:{autoStopName:"Auto-detener seguimiento de tiempo",autoStopDesc:"Detener autom\xE1ticamente el seguimiento de tiempo cuando una tarea se marca como completa",stopNotificationName:"Notificaci\xF3n de detenci\xF3n de seguimiento de tiempo",stopNotificationDesc:"Mostrar notificaci\xF3n cuando el seguimiento de tiempo se detiene autom\xE1ticamente"},recurring:{maintainOffsetName:"Mantener desplazamiento de fecha de vencimiento en tareas recurrentes",maintainOffsetDesc:"Mantener el desplazamiento entre fecha de vencimiento y fecha programada cuando se completan tareas recurrentes",resetCheckboxesName:"Restablecer casillas de verificaci\xF3n en recurrencia",resetCheckboxesDesc:"Restablecer todas las casillas de verificaci\xF3n markdown en el cuerpo de la tarea cuando una tarea recurrente se completa y reprograma"},timeblocking:{header:"Bloqueo de tiempo",description:"Configura la funcionalidad de bloqueo de tiempo para programaci\xF3n ligera en notas diarias. Arrastra en las vistas de calendario para crear eventos - selecciona 'Timeblock' del men\xFA contextual.",enableName:"Habilitar bloqueo de tiempo",enableDesc:"Habilitar funcionalidad de bloque de tiempo para programaci\xF3n ligera en notas diarias. Cuando est\xE1 habilitado, la opci\xF3n 'Timeblock' aparece en el men\xFA contextual de arrastrar del calendario.",showBlocksName:"Mostrar bloques de tiempo",showBlocksDesc:"Mostrar bloques de tiempo de notas diarias por defecto",defaultColorName:"Color predeterminado de bloque de tiempo",defaultColorDesc:"El color predeterminado utilizado al crear nuevos bloques de tiempo",usage:"Uso: Arrastra en el calendario para crear eventos. Selecciona 'Timeblock' del men\xFA contextual (solo visible cuando el bloqueo de tiempo est\xE1 habilitado). Arrastra para mover bloques de tiempo existentes. Ajusta los bordes para ajustar la duraci\xF3n."},performance:{header:"Rendimiento y comportamiento",description:"Configura opciones de rendimiento y comportamiento del plugin."},timeTrackingSection:{header:"Seguimiento de tiempo",description:"Configura comportamientos autom\xE1ticos de seguimiento de tiempo."},recurringSection:{header:"Tareas recurrentes",description:"Configura comportamiento para gesti\xF3n de tareas recurrentes."},debugLogging:{header:"Registro de depuraci\xF3n",description:"Configura la salida de registro de depuraci\xF3n para solucionar problemas.",enableName:"Habilitar registro de depuraci\xF3n",enableDesc:"Registra diagn\xF3sticos detallados de arrastrar y soltar y de vista en la consola de desarrollador. \xDAtil para soluci\xF3n de problemas."}},defaults:{header:{basicDefaults:"Predeterminados b\xE1sicos",dateDefaults:"Predeterminados de fecha",defaultReminders:"Recordatorios predeterminados",bodyTemplate:"Plantilla del cuerpo",instantTaskConversion:"Conversi\xF3n instant\xE1nea de tareas"},description:{basicDefaults:"Establecer valores predeterminados para nuevas tareas para acelerar la creaci\xF3n de tareas.",dateDefaults:"Establecer fechas de vencimiento y programaci\xF3n predeterminadas para nuevas tareas.",defaultReminders:"Configurar recordatorios predeterminados que se a\xF1adir\xE1n a nuevas tareas.",bodyTemplate:"Configurar un archivo de plantilla para usar en el contenido de nuevas tareas.",instantTaskConversion:"Configurar comportamiento al convertir texto a tareas instant\xE1neamente."},basicDefaults:{defaultStatus:{name:"Estado predeterminado",description:"Estado predeterminado para nuevas tareas"},defaultPriority:{name:"Prioridad predeterminada",description:"Prioridad predeterminada para nuevas tareas"},defaultContexts:{name:"Contextos predeterminados",description:"Lista separada por comas de contextos predeterminados (ej. @casa, @trabajo)",placeholder:"@casa, @trabajo"},defaultTags:{name:"Etiquetas predeterminadas",description:"Lista separada por comas de etiquetas predeterminadas (sin #)",placeholder:"importante, urgente"},defaultProjects:{name:"Proyectos predeterminados",description:"Enlaces de proyecto predeterminados para nuevas tareas",selectButton:"Seleccionar proyectos",selectTooltip:"Elegir notas de proyecto para vincular por defecto",removeTooltip:"Eliminar {name} de proyectos predeterminados"},useParentNoteForTaskCreation:{name:"Usar nota activa como proyecto para nuevas tareas",description:"Vincula autom\xE1ticamente la nota activa como proyecto al abrir la creaci\xF3n de tareas desde la paleta de comandos o la cinta"},useParentNoteAsProject:{name:"Usar nota padre como proyecto para tareas en l\xEDnea y conversi\xF3n instant\xE1nea",description:"Vincula autom\xE1ticamente la nota de origen como proyecto al usar la creaci\xF3n de tareas en l\xEDnea o la conversi\xF3n instant\xE1nea de tareas"},useParentHeaderAsProject:{name:"Usar encabezado padre como proyecto durante conversi\xF3n instant\xE1nea",description:"Vincular autom\xE1ticamente el encabezado m\xE1s cercano sobre la l\xEDnea convertida como proyecto al usar conversi\xF3n instant\xE1nea de tareas"},defaultTimeEstimate:{name:"Estimaci\xF3n de tiempo predeterminada",description:"Estimaci\xF3n de tiempo predeterminada en minutos (0 = sin predeterminado)",placeholder:"60"},defaultRecurrence:{name:"Recurrencia predeterminada",description:"Patr\xF3n de recurrencia predeterminado para nuevas tareas"}},dateDefaults:{defaultDueDate:{name:"Fecha de vencimiento predeterminada",description:"Fecha de vencimiento predeterminada para nuevas tareas"},defaultScheduledDate:{name:"Fecha programada predeterminada",description:"Fecha programada predeterminada para nuevas tareas"}},reminders:{addReminder:{name:"Agregar recordatorio predeterminado",description:"Crear un nuevo recordatorio predeterminado que se a\xF1adir\xE1 a todas las nuevas tareas",buttonText:"Agregar recordatorio"},emptyState:"No hay recordatorios predeterminados configurados. Agrega un recordatorio para ser notificado autom\xE1ticamente sobre nuevas tareas.",emptyStateButton:"Agregar recordatorio",reminderDescription:"Descripci\xF3n del recordatorio",unnamedReminder:"Recordatorio sin nombre",deleteTooltip:"Eliminar recordatorio",fields:{description:"Descripci\xF3n:",type:"Tipo:",offset:"Desplazamiento:",unit:"Unidad:",direction:"Direcci\xF3n:",relatedTo:"Relacionado con:",date:"Fecha:",time:"Hora:"},types:{relative:"Relativo (antes/despu\xE9s de fechas de tarea)",absolute:"Absoluto (fecha/hora espec\xEDfica)"},units:{minutes:"minutos",hours:"horas",days:"d\xEDas"},directions:{before:"antes",after:"despu\xE9s"},relatedTo:{due:"fecha de vencimiento",scheduled:"fecha programada"}},bodyTemplate:{useBodyTemplate:{name:"Usar plantilla del cuerpo",description:"Usar un archivo de plantilla para el contenido del cuerpo de la tarea"},bodyTemplateFile:{name:"Archivo de plantilla del cuerpo",description:"Ruta al archivo de plantilla para contenido del cuerpo de la tarea. Soporta variables de plantilla como {{title}}, {{date}}, {{time}}, {{priority}}, {{status}}, etc.",placeholder:"Plantillas/Plantilla de tarea.md",ariaLabel:"Ruta al archivo de plantilla del cuerpo"},useOccurrenceBodyTemplate:{name:"Usar plantilla de nota de ocurrencia",description:"Usar una plantilla alternativa separada para notas de ocurrencia materializadas cuando la tarea recurrente no tenga occurrence_template"},occurrenceBodyTemplateFile:{name:"Archivo de plantilla de nota de ocurrencia",description:"Ruta al archivo de plantilla para notas de ocurrencia materializadas. El campo occurrence_template de una tarea recurrente tiene prioridad sobre esta alternativa.",placeholder:"Plantillas/Plantilla de ocurrencia.md",ariaLabel:"Ruta al archivo de plantilla de nota de ocurrencia"},variablesHeader:"Variables de plantilla:",variables:{title:"{{title}} - T\xEDtulo de la tarea",details:"{{details}} - Detalles proporcionados por el usuario desde el modal",date:"{{date}} - Fecha actual (YYYY-MM-DD)",time:"{{time}} - Hora actual (HH:MM)",priority:"{{priority}} - Prioridad de la tarea",status:"{{status}} - Estado de la tarea",contexts:"{{contexts}} - Contextos de la tarea",tags:"{{tags}} - Etiquetas de la tarea",projects:"{{projects}} - Proyectos de la tarea"}},instantConversion:{useDefaultsOnInstantConvert:{name:"Usar predeterminados de tarea en conversi\xF3n instant\xE1nea",description:"Aplicar configuraciones predeterminadas de tarea al convertir texto a tareas instant\xE1neamente"}},options:{noDefault:"Sin predeterminado",none:"Ninguno",today:"Hoy",tomorrow:"Ma\xF1ana",nextWeek:"Pr\xF3xima semana",daily:"Diario",weekly:"Semanal",monthly:"Mensual",yearly:"Anual"}},general:{taskStorage:{header:"Almacenamiento de tareas",description:"Configurar d\xF3nde se almacenan las tareas y c\xF3mo se identifican.",defaultFolder:{name:"Carpeta predeterminada de tareas",description:"Ubicaci\xF3n predeterminada para nuevas tareas. Admite variables de plantilla de carpeta como {{currentNotePath}}, {{currentNoteTitle}} y {{projectFilePath}}, adem\xE1s de tokens de fecha estilo Daily Notes como YYYY/MM/DD."},moveArchived:{name:"Mover tareas archivadas a carpeta",description:"Mover autom\xE1ticamente tareas archivadas a una carpeta de archivo"},archiveFolder:{name:"Carpeta de archivo",description:"Carpeta para mover tareas cuando se archiven. Soporta variables de plantilla como {{year}}, {{month}}, {{priority}}, etc."}},taskIdentification:{header:"Identificaci\xF3n de tareas",description:"Elegir c\xF3mo TaskNotes identifica notas como tareas.",identifyBy:{name:"Identificar tareas por",description:"Elegir si identificar tareas por etiqueta o por una propiedad de frontmatter",options:{tag:"Etiqueta",property:"Propiedad"}},taskTag:{name:"Etiqueta de tarea",description:"Etiqueta que identifica notas como tareas (sin #). Los filtros de vistas .base existentes conservan la etiqueta anterior al cambiarla; actualiza los archivos Base predeterminados o edita esos filtros."},hideIdentifyingTags:{name:"Ocultar etiquetas de identificaci\xF3n en tarjetas de tarea",description:"Cuando est\xE1 habilitado, las etiquetas que coinciden con la etiqueta de identificaci\xF3n de tarea (incluidas las coincidencias jer\xE1rquicas como 'task/project') se ocultar\xE1n de las pantallas de tarjetas de tarea"},hideIdentifyingTagsMode:{name:"Alcance de etiquetas ocultas",description:"Elige si ocultar etiquetas de identificaci\xF3n tambi\xE9n oculta etiquetas anidadas.",options:{all:"Etiqueta de tarea y anidadas",exactOnly:"Solo etiqueta exacta"}},taskProperty:{name:"Nombre de propiedad de tarea",description:'El nombre de propiedad de frontmatter (ej. "categor\xEDa")'},taskPropertyValue:{name:"Valor de propiedad de tarea",description:'El valor que identifica una nota como tarea (ej. "tarea")'}},folderManagement:{header:"Gesti\xF3n de carpetas",excludedFolders:{name:"Carpetas excluidas",description:"Lista separada por comas de carpetas a excluir de la indexaci\xF3n de tareas y sugerencias de proyectos"}},frontmatter:{header:"Frontmatter",description:"Configure c\xF3mo se formatean los enlaces en las propiedades frontmatter.",useMarkdownLinks:{name:"Usar enlaces markdown en frontmatter",description:`Generar enlaces markdown ([texto](ruta)) en lugar de wikilinks ([[enlace]]) en las propiedades frontmatter.
|
||
|
||
\u26A0\uFE0F Requiere el plugin 'obsidian-frontmatter-markdown-links' para funcionar correctamente.`}},taskInteraction:{header:"Interacci\xF3n de tareas",description:"Configurar c\xF3mo se comporta hacer clic en las tareas.",singleClick:{name:"Acci\xF3n de clic simple",description:"Acci\xF3n realizada al hacer clic simple en una tarjeta de tarea"},doubleClick:{name:"Acci\xF3n de doble clic",description:"Acci\xF3n realizada al hacer doble clic en una tarjeta de tarea"},actions:{edit:"Editar tarea",openNote:"Abrir nota",none:"Sin acci\xF3n"}},releaseNotes:{header:"Notas de la versi\xF3n",description:"Versi\xF3n actual: {version}",showOnUpdate:{name:"Mostrar notas de la versi\xF3n despu\xE9s de actualizar",description:"Abrir autom\xE1ticamente las notas de la versi\xF3n cuando TaskNotes se actualiza a una nueva versi\xF3n"},checkForUpdates:{name:"Buscar nuevas versiones al iniciar",description:"Consulta GitHub una vez al iniciar TaskNotes y muestra un aviso cuando hay una versi\xF3n compatible m\xE1s reciente disponible"},viewButton:{name:"Ver notas de la versi\xF3n",description:"Vea las novedades en la \xFAltima versi\xF3n de TaskNotes",buttonText:"Ver notas de la versi\xF3n"}}},taskProperties:{sections:{coreProperties:"Propiedades principales",corePropertiesDesc:"Estado y prioridad son las propiedades principales que definen el estado e importancia de una tarea.",dateProperties:"Propiedades de fecha",datePropertiesDesc:"Configura cu\xE1ndo las tareas vencen y est\xE1n programadas.",organizationProperties:"Propiedades de organizaci\xF3n",organizationPropertiesDesc:"Organiza tareas con contextos, proyectos y etiquetas.",taskDetails:"Detalles de tarea",taskDetailsDesc:"Detalles adicionales como estimaciones de tiempo, recurrencia y recordatorios.",metadataProperties:"Propiedades de metadatos",metadataPropertiesDesc:"Propiedades gestionadas por el sistema para rastrear el historial de tareas.",featureProperties:"Propiedades de funciones",featurePropertiesDesc:"Propiedades utilizadas por funciones espec\xEDficas de TaskNotes como el temporizador Pomodoro y la sincronizaci\xF3n de calendario."},propertyCard:{propertyKey:"Clave de propiedad:",default:"Predeterminado:",nlpTrigger:"Activador NLP:",triggerChar:"Car\xE1cter activador:",triggerEmpty:"El activador no puede estar vac\xEDo",triggerTooLong:"El activador es demasiado largo (m\xE1x. 10 caracteres)"},properties:{status:{name:"Estado",description:"Rastrea el estado actual de una tarea (ej. pendiente, en-progreso, hecho). El estado determina si una tarea aparece como completada y puede activar el archivado autom\xE1tico."},priority:{name:"Prioridad",description:"Indica la importancia de la tarea. Se usa para ordenar y filtrar. Los valores se ordenan alfab\xE9ticamente en vistas Bases, as\xED que usa prefijos como 1-, 2- para controlar el orden."},due:{name:"Fecha de vencimiento",description:"La fecha l\xEDmite para completar una tarea. Las tareas pasadas de su fecha de vencimiento aparecen como atrasadas. Se almacena como fecha en frontmatter."},scheduled:{name:"Fecha programada",description:"Cu\xE1ndo planeas trabajar en una tarea. A diferencia de la fecha de vencimiento, esto representa tu hora de inicio prevista. Las tareas aparecen en el calendario en su fecha/hora programada."},contexts:{name:"Contextos",description:"Lugares o condiciones donde se puede hacer una tarea (ej. @casa, @oficina, @tel\xE9fono). \xDAtil para filtrar tareas seg\xFAn tu situaci\xF3n actual. Se almacena como lista."},projects:{name:"Proyectos",description:"Enlaces a notas de proyecto a las que pertenece esta tarea. Se almacena como wikilinks (ej. [[Nombre del proyecto]]). Las tareas pueden pertenecer a m\xFAltiples proyectos."},tags:{name:"Etiquetas",description:"Etiquetas nativas de Obsidian para categorizar tareas. Se almacenan en la propiedad tags del frontmatter y funcionan con las caracter\xEDsticas de etiquetas de Obsidian."},timeEstimate:{name:"Estimaci\xF3n de tiempo",description:"Minutos estimados para completar la tarea. Se usa para planificaci\xF3n de tiempo y carga de trabajo. Se muestra en tarjetas de tareas y eventos de calendario."},recurrence:{name:"Recurrencia",description:"Patr\xF3n para tareas repetitivas (diario, semanal, mensual, anual o RRULE personalizada). Cuando se completa una tarea recurrente, su fecha programada se actualiza autom\xE1ticamente a la siguiente ocurrencia."},recurrenceAnchor:{name:"Ancla de recurrencia",description:"Controla c\xF3mo se calcula la siguiente ocurrencia: 'scheduled' usa la fecha programada, 'completion' usa la fecha de finalizaci\xF3n real."},reminders:{name:"Recordatorios",description:"Notificaciones activadas antes de fechas de vencimiento o programadas. Se almacena como lista de objetos de recordatorio con tiempo y descripci\xF3n opcional."},title:{name:"T\xEDtulo",description:"El nombre de la tarea. Puede almacenarse en frontmatter o en el nombre del archivo (cuando 'Almacenar t\xEDtulo en nombre de archivo' est\xE1 habilitado)."},dateCreated:{name:"Fecha de creaci\xF3n",description:"Marca de tiempo de cuando se cre\xF3 la tarea. Se establece autom\xE1ticamente y se usa para ordenar por orden de creaci\xF3n."},dateModified:{name:"Fecha de modificaci\xF3n",description:"Marca de tiempo del \xFAltimo cambio en la tarea. Se actualiza autom\xE1ticamente cuando cambia cualquier propiedad de la tarea."},completedDate:{name:"Fecha de completado",description:"Marca de tiempo de cuando la tarea fue marcada como completa. Se establece autom\xE1ticamente cuando el estado cambia a un estado completado."},archiveTag:{name:"Etiqueta de archivo",description:"Etiqueta a\xF1adida a las tareas cuando se archivan. Se usa para identificar tareas archivadas y puede activar el movimiento de archivos a la carpeta de archivo."},timeEntries:{name:"Entradas de tiempo",description:"Registros de sesiones de seguimiento de tiempo para esta tarea. Cada entrada almacena marcas de tiempo de inicio y fin. Se usa para calcular el tiempo total invertido."},completeInstances:{name:"Instancias completadas",description:"Historial de completado para tareas recurrentes. Almacena fechas cuando cada instancia fue completada para prevenir completados duplicados."},skippedInstances:{name:"Instancias omitidas",description:"Ocurrencias omitidas para tareas recurrentes. Almacena fechas de instancias que fueron omitidas en lugar de completadas."},blockedBy:{name:"Bloqueada por",description:"Enlaces a tareas que deben completarse antes de esta. Se almacena como wikilinks. Las tareas bloqueadas muestran un indicador visual."},sortOrder:{name:"Orden manual",description:"Propiedad de frontmatter utilizada para el orden manual por arrastrar y soltar. La vista debe estar ordenada por esta propiedad para que funcione el reordenamiento de arrastrar y soltar."},pomodoros:{name:"Pomodoros",description:"Conteo de sesiones Pomodoro completadas. Cuando el almacenamiento de datos est\xE1 configurado en 'Notas diarias', esto se escribe en notas diarias en lugar de archivos de tarea."},icsEventId:{name:"ID de evento ICS",description:"Identificador \xFAnico que enlaza una nota con un evento de calendario ICS. Se a\xF1ade autom\xE1ticamente al crear notas desde eventos de calendario."},icsEventTag:{name:"Etiqueta de evento ICS",description:"Etiqueta que identifica notas creadas desde eventos de calendario ICS. Se usa para distinguir notas generadas por calendario de tareas regulares."}},statusCard:{valuesHeader:"Valores de estado"},priorityCard:{valuesHeader:"Valores de prioridad"},projectsCard:{defaultProjects:"Proyectos predeterminados:",useParentNoteForTaskCreation:"Usar nota activa para nuevas tareas:",useParentNoteForInlineTasks:"Usar nota padre para tareas en l\xEDnea/conversi\xF3n instant\xE1nea:",useParentHeader:"Usar encabezado padre como proyecto:",inheritParentTaskProperties:"Heredar propiedades de la tarea padre para subtareas:",noDefaultProjects:"No hay proyectos predeterminados seleccionados",autosuggestFilters:"Filtros de autosugerencia",customizeDisplay:"Personalizar visualizaci\xF3n",filtersOn:"Filtros activos"},titleCard:{storeTitleInFilename:"Almacenar t\xEDtulo en nombre de archivo:",storedInFilename:"Almacenado en nombre de archivo",filenameUpdatesWithTitle:"El nombre del archivo se actualizar\xE1 autom\xE1ticamente cuando cambie el t\xEDtulo de la tarea.",filenameFormat:"Formato de nombre de archivo:",customTemplate:"Plantilla personalizada:",legacySyntaxWarning:"La sintaxis de llaves simples como {title} est\xE1 obsoleta. Por favor, use la sintaxis de llaves dobles {{title}} para consistencia con las plantillas de cuerpo.",occurrenceFilenameTemplate:"Plantilla de nombre de archivo para ocurrencias",occurrenceFilenameTemplateHelp:"Plantilla de nombre de archivo para ocurrencias materializadas de tareas recurrentes. D\xE9jala vac\xEDa para conservar el nombre existente (t\xEDtulo de la tarea principal m\xE1s un sufijo num\xE9rico). Elige expl\xEDcitamente la granularidad con {{occurrenceDate}}, {{occurrenceWeek}}, {{occurrenceMonth}}, {{occurrenceYear}} o {{occurrenceMonthName}}. Tambi\xE9n funcionan todas las variables normales de nombres de archivo. Una tarea principal puede sobrescribir esta plantilla mediante la propiedad de frontmatter configurada abajo.",occurrenceFilenameProperty:"Propiedad para sobrescribir la plantilla de ocurrencias",occurrenceFilenamePropertyHelp:"Nombre de la propiedad de frontmatter de una tarea recurrente principal que sobrescribe la plantilla de nombre de archivo de sus ocurrencias."},tagsCard:{nativeObsidianTags:"Usa etiquetas nativas de Obsidian"},remindersCard:{defaultReminders:"Recordatorios predeterminados"},taskStatuses:{header:"Estados de tareas",description:"Personalizar las opciones de estado disponibles para tus tareas. Estos estados controlan el ciclo de vida de la tarea y determinan cu\xE1ndo las tareas se consideran completas.",howTheyWork:{title:"C\xF3mo funcionan los estados:",value:'Valor: El identificador interno almacenado en tus archivos de tarea (ej. "en-progreso")',label:'Etiqueta: El nombre mostrado en la interfaz (ej. "En progreso")',color:"Color: Color indicador visual para el punto de estado y distintivos",icon:'Icono: Nombre de icono Lucide opcional para mostrar en lugar del punto de color (ej. "check", "circle", "clock"). Explora iconos en lucide.dev',completed:"Completado: Cuando se marca, las tareas con este estado se consideran terminadas y pueden filtrarse de manera diferente",autoArchive:"Auto-archivar: Cuando est\xE1 habilitado, las tareas se archivar\xE1n autom\xE1ticamente despu\xE9s del retraso especificado (1-1440 minutos)",orderNote:"El orden de abajo determina la secuencia al alternar entre estados haciendo clic en distintivos de estado de tarea."},addNew:{name:"Agregar nuevo estado",description:"Crear una nueva opci\xF3n de estado para tus tareas",buttonText:"Agregar estado"},validationNote:'Nota: Debes tener al menos 2 estados, y al menos un estado debe estar marcado como "Completado".',emptyState:"No hay estados personalizados configurados. Agrega un estado para comenzar.",emptyStateButton:"Agregar estado",fields:{value:"Valor:",label:"Etiqueta:",color:"Color:",icon:"Icono:",completed:"Completado:",excludeFromCycle:"Omitir en el ciclo:",nextStatus:"Siguiente estado:",autoArchive:"Auto-archivar:",delayMinutes:"Retraso (minutos):"},placeholders:{value:"en-progreso",label:"En progreso",icon:"check, circle, clock",nextStatusDefault:"Usar orden de estados"},badges:{completed:"Completado"},deleteConfirm:'\xBFEst\xE1s seguro de que quieres eliminar el estado "{label}"?'},taskPriorities:{header:"Prioridades de tareas",description:"Personaliza los niveles de prioridad disponibles para tus tareas. En v4.0+, las prioridades se ordenan alfab\xE9ticamente por su valor en las vistas de Bases.",howTheyWork:{title:"C\xF3mo funcionan las prioridades:",value:'Valor: El identificador interno almacenado en tus archivos de tarea. Usa prefijos como "1-urgente", "2-alta" para controlar el orden de clasificaci\xF3n en las vistas de Bases.',label:'Etiqueta de visualizaci\xF3n: El nombre mostrado en la interfaz (ej. "Alta prioridad")',color:"Color: Color indicador visual para el punto de prioridad y distintivos",icon:"Icono: Icono Lucide opcional para mostrar en las tarjetas de tareas en lugar del punto de prioridad",weight:"Peso: Valor num\xE9rico para clasificaci\xF3n (pesos m\xE1s altos aparecen primero en listas)",weightNote:"Las tareas se clasifican autom\xE1ticamente por peso de prioridad en orden descendente (peso m\xE1s alto primero). Los pesos pueden ser cualquier n\xFAmero positivo."},addNew:{name:"Agregar nueva prioridad",description:"Crear un nuevo nivel de prioridad para tus tareas",buttonText:"Agregar prioridad"},validationNote:"Nota: Debes tener al menos 1 prioridad. Las prioridades se ordenan alfab\xE9ticamente por valor en las vistas de Bases.",emptyState:"No hay prioridades personalizadas configuradas. Agrega una prioridad para comenzar.",emptyStateButton:"Agregar prioridad",fields:{value:"Valor:",label:"Etiqueta:",color:"Color:",icon:"Icono:",weight:"Peso:"},placeholders:{value:"alta",label:"Alta prioridad",icon:"alert-circle"},weightLabel:"Peso: {weight}",deleteConfirm:"Debes tener al menos una prioridad",deleteTooltip:"Eliminar prioridad"},fieldMapping:{header:"Mapeo de campos",warning:"\u26A0\uFE0F Advertencia: TaskNotes LEER\xC1 Y ESCRIBIR\xC1 usando estos nombres de propiedad. Cambiar estos despu\xE9s de crear tareas puede causar inconsistencias.",description:"Configurar qu\xE9 propiedades de frontmatter debe usar TaskNotes para cada campo.",resetButton:{name:"Restablecer mapeos de campos",description:"Restablecer todos los mapeos de campos a valores predeterminados",buttonText:"Restablecer a predeterminados"},notices:{resetSuccess:"Mapeos de campos restablecidos a predeterminados",resetFailure:"Error al restablecer mapeos de campos",updateFailure:"Error al actualizar mapeo de campo para {label}. Por favor intenta de nuevo."},table:{fieldHeader:"Campo de TaskNotes",propertyHeader:"Tu nombre de propiedad"},fields:{title:"T\xEDtulo",status:"Estado",priority:"Prioridad",due:"Fecha de vencimiento",scheduled:"Fecha programada",contexts:"Contextos",projects:"Proyectos",timeEstimate:"Estimaci\xF3n de tiempo",recurrence:"Recurrencia",dateCreated:"Fecha de creaci\xF3n",completedDate:"Fecha de finalizaci\xF3n",dateModified:"Fecha de modificaci\xF3n",archiveTag:"Etiqueta de archivo",timeEntries:"Entradas de tiempo",completeInstances:"Instancias completas",blockedBy:"Bloqueado por",sortOrder:"Orden manual",pomodoros:"Pomodoros",icsEventId:"ID de evento ICS",icsEventTag:"Etiqueta de evento ICS",reminders:"Recordatorios"}},customUserFields:{header:"Campos personalizados de usuario",description:"Definir propiedades de frontmatter personalizadas para aparecer como opciones de filtro con reconocimiento de tipo en todas las vistas. Cada fila: Nombre de visualizaci\xF3n, Nombre de propiedad, Tipo.",addNew:{name:"Agregar nuevo campo de usuario",description:"Crear un nuevo campo personalizado que aparecer\xE1 en filtros y vistas",buttonText:"Agregar campo de usuario"},emptyState:"No hay campos personalizados de usuario configurados. Agrega un campo para crear propiedades personalizadas para tus tareas.",emptyStateButton:"Agregar campo de usuario",fields:{displayName:"Nombre de visualizaci\xF3n:",propertyKey:"Clave de propiedad:",type:"Tipo:",defaultValue:"Valor predeterminado:"},placeholders:{displayName:"Nombre de visualizaci\xF3n",propertyKey:"nombre-propiedad",defaultValue:"Valor predeterminado",defaultValueList:"Valores predeterminados (separados por coma)"},types:{text:"Texto",number:"N\xFAmero",boolean:"Booleano",date:"Fecha",list:"Lista"},defaultNames:{unnamedField:"Campo sin nombre",noKey:"sin-clave"},deleteTooltip:"Eliminar campo",autosuggestFilters:{header:"Filtros de auto-sugerencia (Avanzado)",description:"Filtrar qu\xE9 archivos aparecen en las sugerencias de autocompletar para este campo"}}},appearance:{taskCards:{header:"Tarjetas de tareas",description:"Configurar c\xF3mo se muestran las tarjetas de tareas en todas las vistas.",defaultVisibleProperties:{name:"Propiedades visibles predeterminadas",description:"Elegir qu\xE9 propiedades aparecen en las tarjetas de tareas por defecto."},propertyGroups:{coreProperties:"PROPIEDADES PRINCIPALES",organization:"ORGANIZACI\xD3N",customProperties:"PROPIEDADES PERSONALIZADAS"},properties:{status:"Punto de estado",priority:"Punto de prioridad",due:"Fecha de vencimiento",scheduled:"Fecha programada",timeEstimate:"Estimaci\xF3n de tiempo",totalTrackedTime:"Tiempo total rastreado",checklistProgress:"Progreso de la lista de verificaci\xF3n",recurrence:"Recurrencia",completedDate:"Fecha de finalizaci\xF3n",createdDate:"Fecha de creaci\xF3n",modifiedDate:"Fecha de modificaci\xF3n",projects:"Proyectos",contexts:"Contextos",tags:"Etiquetas",blocked:"Bloqueada",blocking:"Bloqueando"}},taskFilenames:{header:"Nombres de archivos de tareas",description:"Configurar c\xF3mo se nombran los archivos de tareas cuando se crean.",storeTitleInFilename:{name:"Almacenar t\xEDtulo en nombre de archivo",description:"Usar el t\xEDtulo de la tarea como nombre de archivo. El nombre de archivo se actualizar\xE1 cuando se cambie el t\xEDtulo de la tarea (Recomendado)."},filenameFormat:{name:"Formato de nombre de archivo",description:"C\xF3mo deben generarse los nombres de archivos de tareas",options:{title:"T\xEDtulo de tarea (Sin actualizaci\xF3n)",zettel:"Formato Zettelkasten (AAMMDD + segundos base36 desde medianoche)",timestamp:"Marca de tiempo completa (YYYY-MM-DD-HHMMSS)",custom:"Plantilla personalizada",uuid:"UUID v4"}},customTemplate:{name:"Plantilla de nombre de archivo personalizada",description:"Plantilla para nombres de archivo personalizados. Variables disponibles: {{title}}, {{titleLower}}, {{titleUpper}}, {{titleSnake}}, {{titleKebab}}, {{titleCamel}}, {{titlePascal}}, {{date}}, {{shortDate}}, {{time}}, {{time12}}, {{time24}}, {{timestamp}}, {{dateTime}}, {{year}}, {{month}}, {{monthName}}, {{monthNameShort}}, {{day}}, {{dayName}}, {{dayNameShort}}, {{hour}}, {{hour12}}, {{minute}}, {{second}}, {{milliseconds}}, {{ms}}, {{ampm}}, {{week}}, {{quarter}}, {{unix}}, {{unixMs}}, {{timezone}}, {{timezoneShort}}, {{utcOffset}}, {{utcOffsetShort}}, {{utcZ}}, {{zettel}}, {{uuid}}, {{nano}}, {{priority}}, {{priorityShort}}, {{status}}, {{statusShort}}, {{dueDate}}, {{scheduledDate}}",placeholder:"{{date}}-{{title}}-{{dueDate}}",helpText:"Nota: {{dueDate}} y {{scheduledDate}} est\xE1n en formato YYYY-MM-DD y estar\xE1n vac\xEDos si no est\xE1n configurados."}},displayFormatting:{header:"Formato de visualizaci\xF3n",description:"Configurar c\xF3mo se muestran fechas, horas y otros datos en todo el plugin.",timeFormat:{name:"Formato de hora",description:"Mostrar hora en formato de 12 horas o 24 horas en todo el plugin",options:{twelveHour:"12 horas (AM/PM)",twentyFourHour:"24 horas"}}},calendarView:{header:"Vista de calendario",description:"Personalizar la apariencia y comportamiento de la vista de calendario.",defaultView:{name:"Vista predeterminada",description:"La vista de calendario mostrada al abrir la pesta\xF1a de calendario",options:{monthGrid:"Cuadr\xEDcula mensual",weekTimeline:"L\xEDnea de tiempo semanal",dayTimeline:"L\xEDnea de tiempo diaria",yearView:"Vista anual",customMultiDay:"Multi-d\xEDa personalizado"}},customDayCount:{name:"Conteo de d\xEDas de vista personalizada",description:"N\xFAmero de d\xEDas a mostrar en vista multi-d\xEDa personalizada",placeholder:"3"},firstDayOfWeek:{name:"Primer d\xEDa de la semana",description:"Qu\xE9 d\xEDa debe ser la primera columna en vistas semanales"},showWeekends:{name:"Mostrar fines de semana",description:"Mostrar fines de semana en vistas de calendario"},showWeekNumbers:{name:"Mostrar n\xFAmeros de semana",description:"Mostrar n\xFAmeros de semana en vistas de calendario"},showTodayHighlight:{name:"Mostrar resaltado de hoy",description:"Resaltar el d\xEDa actual en vistas de calendario"},showCurrentTimeIndicator:{name:"Mostrar indicador de hora actual",description:"Mostrar una l\xEDnea que muestra la hora actual en vistas de l\xEDnea de tiempo"},selectionMirror:{name:"Espejo de selecci\xF3n",description:"Mostrar una vista previa visual mientras se arrastra para seleccionar rangos de tiempo"},calendarLocale:{name:"Configuraci\xF3n regional del calendario",description:'Configuraci\xF3n regional del calendario para formato de fecha y sistema de calendario (ej. "en", "fa" para Farsi/Persa, "de" para Alem\xE1n). Dejar vac\xEDo para auto-detectar desde el navegador.',placeholder:"Auto-detectar",invalidLocale:"Configuraci\xF3n regional inv\xE1lida. Por favor, introduzca un c\xF3digo de idioma v\xE1lido (ej. 'es', 'en', 'fr-FR')."}},defaultEventVisibility:{header:"Visibilidad predeterminada de eventos",description:"Configurar qu\xE9 tipos de eventos son visibles por defecto al abrir el calendario. Los usuarios a\xFAn pueden activar/desactivar estos en la vista de calendario.",showScheduledTasks:{name:"Mostrar tareas programadas",description:"Mostrar tareas con fechas programadas por defecto"},showDueDates:{name:"Mostrar fechas de vencimiento",description:"Mostrar fechas de vencimiento de tareas por defecto"},showDueWhenScheduled:{name:"Mostrar fechas de vencimiento cuando est\xE1n programadas",description:"Mostrar fechas de vencimiento incluso para tareas que ya tienen fechas programadas"},showTimeEntries:{name:"Mostrar entradas de tiempo",description:"Mostrar entradas de seguimiento de tiempo completadas por defecto"},showRecurringTasks:{name:"Mostrar tareas recurrentes",description:"Mostrar instancias de tareas recurrentes por defecto"},showICSEvents:{name:"Mostrar eventos ICS",description:"Mostrar eventos de suscripciones ICS por defecto"}},timeSettings:{header:"Configuraciones de tiempo",description:"Configurar ajustes de visualizaci\xF3n relacionados con el tiempo para vistas de l\xEDnea de tiempo.",timeSlotDuration:{name:"Duraci\xF3n de intervalo de tiempo",description:"Duraci\xF3n de cada intervalo de tiempo en vistas de l\xEDnea de tiempo",options:{fifteenMinutes:"15 minutos",thirtyMinutes:"30 minutos",sixtyMinutes:"60 minutos"}},startTime:{name:"Hora de inicio",description:"Hora m\xE1s temprana mostrada en vistas de l\xEDnea de tiempo (formato HH:MM)",placeholder:"06:00"},endTime:{name:"Hora de fin",description:"Hora m\xE1s tard\xEDa mostrada en vistas de l\xEDnea de tiempo (formato HH:MM). Usa valores superiores a 24:00 para mostrar horas tempranas del d\xEDa siguiente, como 26:00 para las 2 a. m.",placeholder:"26:00"},initialScrollTime:{name:"Hora de desplazamiento inicial",description:"Hora a la que desplazarse al abrir vistas de l\xEDnea de tiempo (formato HH:MM)",placeholder:"09:00"},eventMinHeight:{name:"Altura m\xEDnima del evento",description:"Altura m\xEDnima para eventos en vistas de l\xEDnea de tiempo (p\xEDxeles)",placeholder:"15"}},uiElements:{header:"Elementos de interfaz",description:"Configurar la visualizaci\xF3n de varios elementos de interfaz.",showTrackedTasksInStatusBar:{name:"Mostrar tareas rastreadas en barra de estado",description:"Mostrar tareas actualmente rastreadas en la barra de estado de Obsidian"},showProjectSubtasksWidget:{name:"Mostrar widget de subtareas de proyecto",description:"Mostrar un widget que muestra subtareas para la nota de proyecto actual"},projectSubtasksPosition:{name:"Posici\xF3n de subtareas de proyecto",description:"D\xF3nde posicionar el widget de subtareas de proyecto",options:{top:"Parte superior de la nota",bottom:"Parte inferior de la nota"}},showRelationshipsWidget:{name:"Mostrar widget de relaciones",description:"Mostrar un widget que muestra todas las relaciones de la nota actual (subtareas, proyectos, dependencias)"},relationshipsPosition:{name:"Posici\xF3n de relaciones",description:"D\xF3nde posicionar el widget de relaciones",options:{top:"Arriba de la nota",bottom:"Abajo de la nota"}},showTaskCardInNote:{name:"Mostrar tarjeta de tarea en nota",description:"Mostrar un widget de tarjeta de tarea en la parte superior de las notas de tareas que muestre los detalles y acciones de la tarea"},showCompletedTaskStrikethrough:{name:"Tachar t\xEDtulos de tareas completadas",description:"Dibuja una l\xEDnea sobre los t\xEDtulos de tarjetas de tareas completadas. Desact\xEDvalo para que las tareas completadas sean m\xE1s f\xE1ciles de leer"},showExpandableSubtasks:{name:"Mostrar subtareas expandibles",description:"Permitir expandir/contraer secciones de subtareas en tarjetas de tareas"},expandSubtasksByDefault:{name:"Expandir subtareas por defecto",description:"Mostrar las subtareas de proyecto expandidas cuando se renderizan las tarjetas de tareas"},subtaskChevronPosition:{name:"Posici\xF3n de chevron de subtarea",description:"Posici\xF3n de chevrons de expandir/contraer en tarjetas de tareas",options:{left:"Lado izquierdo",right:"Lado derecho"}},viewsButtonAlignment:{name:"Alineaci\xF3n del bot\xF3n de vistas",description:"Alineaci\xF3n del bot\xF3n de vistas/filtros en la interfaz de tareas",options:{left:"Lado izquierdo",right:"Lado derecho"}}},projectAutosuggest:{header:"Autosugerencia de proyectos",description:"Personalizar c\xF3mo se muestran las sugerencias de proyectos durante la creaci\xF3n de tareas.",requiredTags:{name:"Etiquetas requeridas",description:"Mostrar solo notas con cualquiera de estas etiquetas (separadas por comas). Dejar vac\xEDo para mostrar todas las notas.",placeholder:"proyecto, activo, importante"},includeFolders:{name:"Incluir carpetas",description:"Mostrar solo notas en estas carpetas (rutas separadas por comas). Dejar vac\xEDo para mostrar todas las carpetas.",placeholder:"Proyectos/, Trabajo/Activo, Personal"},requiredPropertyKey:{name:"Clave de propiedad requerida",description:"Mostrar solo notas donde esta propiedad de frontmatter coincida con el valor de abajo. Dejar vac\xEDo para ignorar.",placeholder:"tipo"},requiredPropertyValue:{name:"Valor de propiedad requerido",description:"Solo las notas donde la propiedad igual a este valor son sugeridas. Dejar vac\xEDo para requerir que la propiedad exista.",placeholder:"proyecto"},customizeDisplay:{name:"Personalizar visualizaci\xF3n de sugerencias",description:"Mostrar opciones avanzadas para configurar c\xF3mo aparecen las sugerencias de proyectos y qu\xE9 informaci\xF3n muestran."},enableFuzzyMatching:{name:"Habilitar coincidencia difusa",description:"Permitir errores tipogr\xE1ficos y coincidencias parciales en b\xFAsqueda de proyectos. Puede ser m\xE1s lento en b\xF3vedas grandes."},displayRowsHelp:"Configurar hasta 3 l\xEDneas de informaci\xF3n para mostrar para cada sugerencia de proyecto.",displayRows:{row1:{name:"Fila 1",description:"Formato: {propiedad|banderas}. Propiedades: title, aliases, file.path, file.parent. Banderas: n(Etiqueta) muestra etiqueta, s hace b\xFAsqueda. Ejemplo: {title|n(T\xEDtulo)|s}",placeholder:"{title|n(T\xEDtulo)}"},row2:{name:"Fila 2 (opcional)",description:"Patrones comunes: {aliases|n(Alias)}, {file.parent|n(Carpeta)}, literal:Texto personalizado",placeholder:"{aliases|n(Alias)}"},row3:{name:"Fila 3 (opcional)",description:"Informaci\xF3n adicional como {file.path|n(Ruta)} o campos de frontmatter personalizados",placeholder:"{file.path|n(Ruta)}"}},quickReference:{header:"Referencia r\xE1pida",properties:"Propiedades disponibles: title, aliases, file.path, file.parent, o cualquier campo de frontmatter",labels:'Agregar etiquetas: {title|n(T\xEDtulo)} \u2192 "T\xEDtulo: Mi proyecto"',searchable:"Hacer b\xFAsqueda: {description|s} incluye descripci\xF3n en b\xFAsqueda +",staticText:"Texto est\xE1tico: literal:Mi etiqueta personalizada",alwaysSearchable:"Nombre de archivo, t\xEDtulo y alias siempre son b\xFAsqueda por defecto."}},dataStorage:{name:"Ubicaci\xF3n de almacenamiento",description:"D\xF3nde almacenar el historial de sesiones de Pomodoro",pluginData:"Datos del plugin (recomendado)",dailyNotes:"Notas diarias",notices:{locationChanged:"Ubicaci\xF3n de almacenamiento de Pomodoro cambiada a {location}"}},notifications:{description:"Configurar notificaciones de recordatorio de tareas y alertas."},performance:{description:"Configurar opciones de rendimiento y comportamiento del plugin."},timeTrackingSection:{description:"Configurar comportamientos de seguimiento de tiempo autom\xE1tico."},recurringSection:{description:"Configurar comportamiento para gesti\xF3n de tareas recurrentes."}},integrations:{mobileCalendar:{disable:{name:"Desactivar integraciones de calendario en m\xF3vil",description:"No cargar calendarios de Google, Microsoft e ICS en Obsidian Mobile. Las integraciones de calendario de escritorio no cambian."},status:{name:"Las integraciones de calendario est\xE1n desactivadas en este dispositivo m\xF3vil",description:"Desactiva este ajuste y recarga Obsidian Mobile para volver a cargar calendarios."}},basesIntegration:{header:"Integraci\xF3n con Bases",description:"Configurar integraci\xF3n con el plugin Obsidian Bases. Esta es una caracter\xEDstica experimental, y actualmente depende de APIs no documentadas de Obsidian. El comportamiento puede cambiar o fallar.",enable:{name:"Habilitar integraci\xF3n con Bases",description:"Habilitar vistas de TaskNotes para usar dentro del plugin Obsidian Bases. El plugin Bases debe estar habilitado para que esto funcione."},viewCommands:{header:"Vistas y archivos base",description:"TaskNotes utiliza archivos de Obsidian Bases (.base) para sus vistas. Estos archivos se generan autom\xE1ticamente al inicio si no existen, configurados con tus ajustes actuales (identificaci\xF3n de tareas, mapeo de campos, estados, etc.).",descriptionRegen:'Los archivos Base no se actualizan autom\xE1ticamente cuando cambias la configuraci\xF3n. Para aplicar nuevos ajustes, usa "Actualizar archivos" abajo, elimina los archivos .base existentes y reinicia Obsidian, o ed\xEDtalos manualmente.',docsLink:"Ver documentaci\xF3n para f\xF3rmulas disponibles y opciones de personalizaci\xF3n",docsLinkUrl:"https://tasknotes.dev/views/default-base-templates",commands:{miniCalendar:"Abrir vista de mini calendario",kanban:"Abrir vista kanban",tasks:"Abrir vista de tareas",advancedCalendar:"Abrir vista de calendario avanzado",agenda:"Abrir vista de agenda",relationships:"Widget de relaciones",pomodoroStats:"Base de estad\xEDsticas de Pomodoro"},fileLabel:"Archivo: {path}",resetButton:"Restablecer",resetTooltip:"Restablecer a ruta predeterminada",pomodoroDailyNotesHint:"La Base de estad\xEDsticas de Pomodoro generada lee el historial de Pomodoro desde notas diarias. Si tu historial a\xFAn est\xE1 en los datos del plugin, m\xEDgralo en ajustes antes de usar ese archivo Base."},autoCreateDefaultFiles:{name:"Crear archivos predeterminados autom\xE1ticamente",description:"Crear autom\xE1ticamente los archivos Base predeterminados que falten al iniciar. Desactiva para evitar que se recreen los archivos de ejemplo eliminados."},createDefaultFiles:{name:"Crear archivos predeterminados",description:"Crea los archivos .base predeterminados en el directorio TaskNotes/Views/. Los archivos existentes no se sobrescribir\xE1n.",buttonText:"Crear archivos"},exportV3Views:{name:"Exportar vistas guardadas V3 a Bases",description:"Convierte todas tus vistas guardadas de TaskNotes v3 en un solo archivo .base con m\xFAltiples vistas. Esto ayuda a migrar tus configuraciones de filtros v3 al nuevo sistema de Bases.",buttonText:"Exportar vistas V3",noViews:"No hay vistas guardadas para exportar",fileExists:"El archivo ya existe",confirmOverwrite:'Ya existe un archivo llamado "{fileName}". \xBFSobrescribirlo?',success:"Exportadas {count} vistas guardadas a {filePath}",error:"Error al exportar vistas: {message}"},notices:{enabled:"Integraci\xF3n con Bases habilitada. Por favor reinicia Obsidian para completar la configuraci\xF3n.",disabled:"Integraci\xF3n con Bases deshabilitada. Por favor reinicia Obsidian para completar la eliminaci\xF3n."},updateDefaultFiles:{name:"Actualizar archivos predeterminados",description:"Sobrescribe los archivos .base predeterminados configurados con plantillas generadas desde tus ajustes actuales de TaskNotes.",buttonText:"Actualizar archivos",confirmTitle:"Actualizar archivos Base predeterminados",confirmMessage:"Esto sobrescribir\xE1 los archivos .base predeterminados configurados con plantillas reci\xE9n generadas. Cualquier edici\xF3n manual en esos archivos ser\xE1 reemplazada.",confirmText:"Actualizar archivos"}},calendarSubscriptions:{header:"Suscripciones de calendario",description:"Suscribirse a calendarios externos v\xEDa URLs ICS/iCal para ver eventos junto a tus tareas.",defaultNoteTemplate:{name:"Plantilla de nota predeterminada",description:"Ruta al archivo de plantilla para notas creadas desde eventos ICS",placeholder:"Plantillas/Plantilla de evento.md"},defaultNoteFolder:{name:"Carpeta de nota predeterminada",description:"Carpeta para notas creadas desde eventos ICS",placeholder:"Calendario/Eventos"},filenameFormat:{name:"Formato de nombre de archivo de nota ICS",description:"C\xF3mo se generan los nombres de archivo para notas creadas desde eventos ICS",options:{title:"T\xEDtulo del evento",zettel:"Formato Zettelkasten",timestamp:"Marca de tiempo",custom:"Plantilla personalizada"}},customTemplate:{name:"Plantilla de nombre de archivo ICS personalizada",description:"Plantilla para nombres de archivo de eventos ICS personalizados",placeholder:"{date}-{title}"},useICSEndAsDue:{name:"Usar hora de fin del evento ICS como fecha de vencimiento",description:"Cuando est\xE1 habilitado, las tareas creadas a partir de eventos de calendario tendr\xE1n su fecha de vencimiento establecida en la hora de fin del evento. Para eventos de todo el d\xEDa, la fecha de vencimiento ser\xE1 la fecha del evento. Para eventos con hora, la fecha de vencimiento incluir\xE1 la hora de fin."},recurringEventRelatedNotesMode:{name:"Notas relacionadas de eventos recurrentes",description:"Elige si las notas vinculadas a una repetici\xF3n de un evento de calendario externo aparecen en toda la serie cargada o solo en la instancia seleccionada.",options:{series:"Toda la serie",instance:"Solo la instancia seleccionada"}}},subscriptionsList:{header:"Lista de suscripciones de calendario",addSubscription:{name:"Agregar suscripci\xF3n de calendario",description:"Agregar una nueva suscripci\xF3n de calendario desde URL ICS/iCal o archivo local",buttonText:"Agregar suscripci\xF3n"},refreshAll:{name:"Actualizar todas las suscripciones",description:"Actualizar manualmente todas las suscripciones de calendario habilitadas",buttonText:"Actualizar todas"},newCalendarName:"Nuevo calendario",emptyState:"No hay suscripciones de calendario configuradas. Agrega una suscripci\xF3n para sincronizar calendarios externos.",notices:{addSuccess:"Nueva suscripci\xF3n de calendario agregada - por favor configura los detalles",addFailure:"Error al agregar suscripci\xF3n",serviceUnavailable:"Servicio de suscripci\xF3n ICS no disponible",refreshSuccess:"Todas las suscripciones de calendario actualizadas exitosamente",refreshFailure:"Error al actualizar algunas suscripciones de calendario",updateFailure:"Error al actualizar suscripci\xF3n",deleteSuccess:'Suscripci\xF3n "{name}" eliminada',deleteFailure:"Error al eliminar suscripci\xF3n",enableFirst:"Habilita la suscripci\xF3n primero",refreshSubscriptionSuccess:'"{name}" actualizado',refreshSubscriptionFailure:"Error al actualizar suscripci\xF3n"},labels:{enabled:"Habilitado:",name:"Nombre:",type:"Tipo:",url:"URL:",filePath:"Ruta de archivo:",color:"Color:",refreshMinutes:"Actualizar (min):"},typeOptions:{remote:"URL remota",local:"Archivo local"},placeholders:{calendarName:"Nombre del calendario",url:"URL ICS/iCal",filePath:"Ruta de archivo local (ej. Calendario.ics)",localFile:"Calendario.ics"},statusLabels:{enabled:"Habilitado",disabled:"Deshabilitado",remote:"Remoto",localFile:"Archivo local",remoteCalendar:"Calendario remoto",localFileCalendar:"Archivo local",synced:"Sincronizado {timeAgo}",error:"Error"},actions:{refreshNow:"Actualizar ahora",deleteSubscription:"Eliminar suscripci\xF3n"},refreshNow:"Actualizar ahora",confirmDelete:{title:"Eliminar suscripci\xF3n",message:'\xBFEst\xE1s seguro de que quieres eliminar la suscripci\xF3n "{name}"? Esta acci\xF3n no se puede deshacer.',confirmText:"Eliminar"}},autoExport:{header:"Exportaci\xF3n autom\xE1tica ICS",description:"Exportar autom\xE1ticamente todas tus tareas a un archivo ICS.",enable:{name:"Habilitar exportaci\xF3n autom\xE1tica",description:"Mantener autom\xE1ticamente un archivo ICS actualizado con todas tus tareas"},filePath:{name:"Ruta del archivo de exportaci\xF3n",description:"Ruta donde se guardar\xE1 el archivo ICS (relativo a la ra\xEDz de la b\xF3veda)",placeholder:"tasknotes-calendario.ics"},interval:{name:"Intervalo de actualizaci\xF3n (entre 5 y 1440 minutos)",description:"Con qu\xE9 frecuencia actualizar el archivo de exportaci\xF3n",placeholder:"60"},useDuration:{name:"Usar duraci\xF3n de la tarea para la longitud del evento",description:"Cuando est\xE1 habilitado, usa la estimaci\xF3n de tiempo (duraci\xF3n) de la tarea en lugar de la fecha de vencimiento para la hora de finalizaci\xF3n del evento del calendario. Esto es \xFAtil para flujos de trabajo GTD donde programado + duraci\xF3n representa la planificaci\xF3n del trabajo, mientras que la fecha de vencimiento representa plazos."},exportNow:{name:"Exportar ahora",description:"Activar manualmente una exportaci\xF3n inmediata",buttonText:"Exportar ahora"},status:{title:"Estado de exportaci\xF3n:",lastExport:"\xDAltima exportaci\xF3n: {time}",nextExport:"Pr\xF3xima exportaci\xF3n: {time}",noExports:"A\xFAn no hay exportaciones",notScheduled:"No programado",notInitialized:"Servicio de auto exportaci\xF3n no inicializado - por favor reinicia Obsidian",serviceNotInitialized:"Servicio no inicializado - por favor reinicia Obsidian"},notices:{reloadRequired:"Por favor recarga Obsidian para que los cambios de exportaci\xF3n autom\xE1tica tengan efecto.",exportSuccess:"Tareas exportadas exitosamente",exportFailure:"Exportaci\xF3n fallida - revisa la consola para detalles",serviceUnavailable:"Servicio de auto exportaci\xF3n no disponible"},excludeCompleted:{name:"Excluir tareas completadas",description:"Cuando est\xE1 activado, las tareas completadas se omiten de las exportaciones ICS. Los estados completados se toman de los ajustes de estados de tareas."},excludeArchived:{name:"Excluir tareas archivadas",description:"Cuando est\xE1 activado, las tareas archivadas se omiten de las exportaciones ICS."},requireDueDate:{name:"Requerir fecha de vencimiento",description:"Cuando est\xE1 activado, solo las tareas con fecha de vencimiento se incluyen en las exportaciones ICS."},requireScheduledDate:{name:"Requerir fecha programada",description:"Cuando est\xE1 activado, solo las tareas con fecha programada se incluyen en las exportaciones ICS."}},googleCalendarExport:{header:"Exportar tareas al Calendario de Google",description:"Sincroniza autom\xE1ticamente tus tareas al Calendario de Google como eventos. Requiere que el Calendario de Google est\xE9 conectado arriba.",enable:{name:"Habilitar exportaci\xF3n de tareas",description:"Cuando est\xE1 habilitado, las tareas con fechas se sincronizar\xE1n autom\xE1ticamente al Calendario de Google como eventos."},targetCalendar:{name:"Calendario destino",description:"Selecciona en qu\xE9 calendario crear los eventos de tareas.",placeholder:"Seleccionar un calendario...",connectFirst:"Conecta el Calendario de Google primero",primarySuffix:" (Principal)"},syncTrigger:{name:"Disparador de sincronizaci\xF3n",description:"Qu\xE9 fecha de tarea debe disparar la creaci\xF3n del evento.",options:{scheduled:"Fecha programada",due:"Fecha de vencimiento",both:"Ambas (preferir programada)"}},allDayEvents:{name:"Crear como eventos de todo el d\xEDa",description:"Cuando est\xE1 habilitado, las tareas se crean como eventos de todo el d\xEDa. Cuando est\xE1 deshabilitado, usa la estimaci\xF3n de tiempo para la duraci\xF3n."},defaultDuration:{name:"Duraci\xF3n predeterminada del evento",description:"Duraci\xF3n en minutos para eventos con hora (usada cuando la tarea no tiene estimaci\xF3n de tiempo)."},eventTitleTemplate:{name:"Plantilla de t\xEDtulo del evento",description:"Plantilla para t\xEDtulos de eventos. Variables disponibles: {{title}}, {{status}}, {{priority}}",placeholder:"{{title}}"},includeDescription:{name:"Incluir detalles de tarea en descripci\xF3n",description:"Agregar metadatos de tarea (prioridad, estado, etiquetas, etc.) a la descripci\xF3n del evento."},includeObsidianLink:{name:"Incluir enlace de Obsidian",description:"Agregar un enlace de regreso a la tarea en Obsidian en la descripci\xF3n del evento."},defaultReminder:{name:"Recordatorio predeterminado",description:"A\xF1ade recordatorios emergentes a eventos temporizados de Google Calendar. Introduce los minutos antes del evento separados por comas. D\xE9jalo vac\xEDo para usar los valores predeterminados del calendario. Valores comunes: 15, 30, 60, 1440."},automaticSyncBehavior:{header:"Comportamiento de sincronizaci\xF3n autom\xE1tica"},syncOnCreate:{name:"Sincronizar al crear tarea",description:"Crear autom\xE1ticamente un evento de calendario cuando se crea una nueva tarea."},syncOnUpdate:{name:"Sincronizar al actualizar tarea",description:"Actualizar autom\xE1ticamente el evento de calendario cuando se modifica una tarea."},syncOnComplete:{name:"Sincronizar al completar tarea",description:"Actualizar evento de calendario cuando se completa una tarea (agrega marca de verificaci\xF3n al t\xEDtulo)."},syncOnDelete:{name:"Eliminar evento al eliminar tarea",description:"Eliminar evento de calendario cuando se elimina la tarea correspondiente."},manualSyncActions:{header:"Acciones de sincronizaci\xF3n manual"},syncAllTasks:{name:"Sincronizar todas las tareas",description:"Sincronizar todas las tareas existentes al Calendario de Google. Esto crear\xE1 eventos para tareas que a\xFAn no han sido sincronizadas.",buttonText:"Sincronizar todo"},unlinkAllTasks:{name:"Desvincular todas las tareas",description:"Eliminar todos los v\xEDnculos tarea-evento sin eliminar eventos del calendario.",buttonText:"Desvincular todo",confirmTitle:"Desvincular todas las tareas",confirmMessage:"Esto eliminar\xE1 todos los v\xEDnculos entre tareas y eventos de calendario. Los eventos del calendario permanecer\xE1n pero ya no se actualizar\xE1n cuando cambien las tareas. \xBFEst\xE1s seguro?",confirmButtonText:"Desvincular todo"},notices:{notEnabled:"La exportaci\xF3n al Calendario de Google no est\xE1 habilitada. Config\xFArala en Ajustes > Integraciones.",notEnabledOrConfigured:"La exportaci\xF3n al Calendario de Google no est\xE1 habilitada o configurada",serviceNotAvailable:"Servicio de sincronizaci\xF3n de calendario no disponible",syncResults:"Sincronizados: {synced}, Fallidos: {failed}, Omitidos: {skipped}",taskSynced:"Tarea sincronizada al Calendario de Google",noActiveFile:"No hay archivo actualmente activo",notATask:"El archivo actual no es una tarea",noDateToSync:"La tarea no tiene fecha programada o de vencimiento para sincronizar",syncFailed:"Error al sincronizar tarea al Calendario de Google: {message}",connectionExpired:"La conexi\xF3n con el Calendario de Google ha caducado. Vuelve a conectarla en Configuraci\xF3n > Integraciones.",syncingTasks:"Sincronizando {total} tareas al Calendario de Google...",syncComplete:"Sincronizaci\xF3n completa: {synced} sincronizadas, {failed} fallidas, {skipped} omitidas",eventsDeletedAndUnlinked:"Todos los eventos eliminados y desvinculados",tasksUnlinked:"Todos los v\xEDnculos de tareas eliminados"},eventDescription:{untitledTask:"Tarea sin t\xEDtulo",priority:"Prioridad: {value}",status:"Estado: {value}",due:"Vencimiento: {value}",scheduled:"Programada: {value}",timeEstimate:"Tiempo estimado: {value}",tags:"Etiquetas: {value}",contexts:"Contextos: {value}",projects:"Proyectos: {value}",openInObsidian:"Abrir en Obsidian"}},httpApi:{header:"API HTTP",description:"Habilitar API HTTP para integraciones externas y automatizaciones.",enable:{name:"Habilitar API HTTP",description:"Iniciar servidor HTTP local para acceso API"},port:{name:"Puerto API",description:"N\xFAmero de puerto para el servidor API HTTP",placeholder:"3000"},authToken:{name:"Token de autenticaci\xF3n API",description:"Token requerido para autenticaci\xF3n API (dejar vac\xEDo para sin autenticaci\xF3n)",placeholder:"tu-token-secreto"},mcp:{enable:{name:"Habilitar servidor MCP",description:"Expone las herramientas de TaskNotes mediante Model Context Protocol en el endpoint /mcp. Requiere que la API HTTP est\xE9 habilitada."}},endpoints:{header:"Endpoints API disponibles",expandIcon:"\u25B6",collapseIcon:"\u25BC"}},webhooks:{header:"Webhooks",description:{overview:"Los webhooks env\xEDan notificaciones en tiempo real a servicios externos cuando ocurren eventos de TaskNotes.",usage:"Configurar webhooks para integrar con herramientas de automatizaci\xF3n, servicios de sincronizaci\xF3n o aplicaciones personalizadas."},addWebhook:{name:"Agregar webhook",description:"Registrar un nuevo endpoint de webhook",buttonText:"Agregar webhook"},emptyState:{message:"No hay webhooks configurados. Agrega un webhook para recibir notificaciones en tiempo real.",buttonText:"Agregar webhook"},labels:{active:"Activo:",url:"URL:",events:"Eventos:",transform:"Transformar:"},placeholders:{url:"URL del webhook",noEventsSelected:"No hay eventos seleccionados",rawPayload:"Carga cruda (sin transformaci\xF3n)"},statusLabels:{active:"Activo",inactive:"Inactivo",created:"Creado {timeAgo}"},actions:{editEvents:"Editar eventos",delete:"Eliminar"},editEvents:"Editar eventos",notices:{urlUpdated:"URL del webhook actualizada",enabled:"Webhook habilitado",disabled:"Webhook deshabilitado",created:"Webhook creado exitosamente",deleted:"Webhook eliminado",updated:"Webhook actualizado"},confirmDelete:{title:"Eliminar webhook",message:`\xBFEst\xE1s seguro de que quieres eliminar este webhook?
|
||
|
||
URL: {url}
|
||
|
||
Esta acci\xF3n no se puede deshacer.`,confirmText:"Eliminar"},cardHeader:"Webhook",cardFields:{active:"Activo:",url:"URL:",events:"Eventos:",transform:"Transformar:"},eventsDisplay:{noEvents:"No hay eventos seleccionados"},transformDisplay:{noTransform:"Carga cruda (sin transformaci\xF3n)"},secretModal:{title:"Secreto de webhook generado",description:"Tu secreto de webhook ha sido generado. Guarda este secreto ya que no podr\xE1s verlo de nuevo:",usage:"Usa este secreto para verificar cargas de webhook en tu aplicaci\xF3n receptora.",gotIt:"Entendido"},editModal:{title:"Editar webhook",eventsHeader:"Eventos a suscribir"},events:{taskCreated:{label:"Tarea creada",description:"Cuando se crean nuevas tareas"},taskUpdated:{label:"Tarea actualizada",description:"Cuando se modifican las tareas"},taskCompleted:{label:"Tarea completada",description:"Cuando las tareas se marcan como completas"},taskDeleted:{label:"Tarea eliminada",description:"Cuando se eliminan las tareas"},taskArchived:{label:"Tarea archivada",description:"Cuando se archivan las tareas"},taskUnarchived:{label:"Tarea desarchivada",description:"Cuando se desarchivar las tareas"},timeStarted:{label:"Tiempo iniciado",description:"Cuando inicia el seguimiento de tiempo"},timeStopped:{label:"Tiempo detenido",description:"Cuando se detiene el seguimiento de tiempo"},pomodoroStarted:{label:"Pomodoro iniciado",description:"Cuando comienzan las sesiones de pomodoro"},pomodoroCompleted:{label:"Pomodoro completado",description:"Cuando terminan las sesiones de pomodoro"},pomodoroInterrupted:{label:"Pomodoro interrumpido",description:"Cuando se detienen las sesiones de pomodoro"},recurringCompleted:{label:"Instancia recurrente completada",description:"Cuando se completan instancias de tareas recurrentes"},reminderTriggered:{label:"Recordatorio activado",description:"Cuando se activan recordatorios de tareas"}},modals:{secretGenerated:{title:"Secreto de webhook generado",description:"Tu secreto de webhook ha sido generado. Guarda este secreto ya que no podr\xE1s verlo de nuevo:",usage:"Usa este secreto para verificar cargas de webhook en tu aplicaci\xF3n receptora.",buttonText:"Entendido"},edit:{title:"Editar webhook",eventsSection:"Eventos a suscribir",transformSection:"Configuraci\xF3n de transformaci\xF3n (Opcional)",headersSection:"Configuraci\xF3n de encabezados",transformFile:{name:"Archivo de transformaci\xF3n",description:"Ruta a un archivo de plantilla .json en tu b\xF3veda que transforma cargas de webhook",placeholder:"simple-template.json"},customHeaders:{name:"Incluir encabezados personalizados",description:"Incluir encabezados de TaskNotes (tipo de evento, firma, ID de entrega). Desactivar para Discord, Slack y otros servicios con pol\xEDticas CORS estrictas."},buttons:{cancel:"Cancelar",save:"Guardar cambios"},notices:{selectAtLeastOneEvent:"Por favor selecciona al menos un evento"}},add:{title:"Agregar webhook",eventsSection:"Eventos a suscribir",transformSection:"Configuraci\xF3n de transformaci\xF3n (Opcional)",headersSection:"Configuraci\xF3n de encabezados",url:{name:"URL del webhook",description:"El endpoint donde se enviar\xE1n las cargas del webhook",placeholder:"https://tu-servicio.com/webhook"},transformFile:{name:"Archivo de transformaci\xF3n",description:"Ruta a un archivo de plantilla .json en tu b\xF3veda que transforma cargas de webhook",placeholder:"simple-template.json"},customHeaders:{name:"Incluir encabezados personalizados",description:"Incluir encabezados de TaskNotes (tipo de evento, firma, ID de entrega). Desactivar para Discord, Slack y otros servicios con pol\xEDticas CORS estrictas."},transformHelp:{title:"Las plantillas de transformaci\xF3n JSON te permiten personalizar cargas de webhook:",jsFiles:"",jsDescription:"",jsonFiles:"Archivos .json:",jsonDescription:" Plantillas con ",jsonVariable:"${data.task.title}",leaveEmpty:"Dejar vac\xEDo:",leaveEmptyDescription:" Enviar datos crudos",example:"Ejemplo:",exampleFile:"simple-template.json"},buttons:{cancel:"Cancelar",add:"Agregar webhook"},notices:{urlRequired:"URL del webhook es requerida",selectAtLeastOneEvent:"Por favor selecciona al menos un evento"}}}},otherIntegrations:{header:"Otras integraciones de plugins",description:"Configurar integraciones con otros plugins de Obsidian."},mdbaseSpec:{header:"Definiciones de tipos mdbase",learnMore:"M\xE1s informaci\xF3n sobre mdbase-spec",enable:{name:"Generar definiciones de tipos mdbase",description:"Genera y mantiene archivos de tipos mdbase (mdbase.yaml y _types/task.md) en la ra\xEDz de la b\xF3veda cuando cambien tus ajustes."}},timeFormats:{justNow:"Justo ahora",minutesAgo:"hace {minutes} minuto{plural}",hoursAgo:"hace {hours} hora{plural}",daysAgo:"hace {days} d\xEDa{plural}"}}},notices:{languageChanged:"Idioma cambiado a {language}.",releaseAvailable:{message:"TaskNotes {version} est\xE1 disponible.",action:"Abrir en plugins de la comunidad"},exportTasksFailed:"Error al exportar tareas como archivo ICS",icsNoteCreatedSuccess:"Nota creada exitosamente",icsCreationModalOpenFailed:"Error al abrir modal de creaci\xF3n",icsNoteLinkSuccess:'Nota "{fileName}" vinculada al evento ICS',icsTaskCreatedSuccess:"Tarea creada: {title}",icsRelatedItemsRefreshed:"Elementos relacionados actualizados",icsFileNotFound:"Archivo no encontrado o inv\xE1lido",icsFileOpenFailed:"Error al abrir el archivo",timeblockAttachmentExists:'"{fileName}" ya est\xE1 adjunto',timeblockAttachmentAdded:'"{fileName}" agregado como adjunto',timeblockAttachmentRemoved:'"{fileName}" eliminado de los adjuntos',timeblockFileTypeNotSupported:'No se puede abrir "{fileName}" - tipo de archivo no compatible',timeblockTitleRequired:"Por favor ingrese un t\xEDtulo para el bloque de tiempo",timeblockUpdatedSuccess:'Bloque de tiempo "{title}" actualizado exitosamente',timeblockUpdateFailed:"Error al actualizar el bloque de tiempo. Consulte la consola para m\xE1s detalles.",timeblockDeletedSuccess:'Bloque de tiempo "{title}" eliminado exitosamente',timeblockDeleteFailed:"Error al eliminar el bloque de tiempo. Consulte la consola para m\xE1s detalles.",timeblockRequiredFieldsMissing:"Por favor complete todos los campos obligatorios",agendaLoadingFailed:"Error al cargar la agenda. Por favor intente actualizar.",statsLoadingFailed:"Error al cargar los detalles del proyecto."},commands:{openCalendarView:"Abrir vista de mini calendario",openAdvancedCalendarView:"Abrir vista de calendario",openTasksView:"Abrir vista de tareas",openNotesView:"Abrir vista de notas",openAgendaView:"Abrir vista de agenda",openPomodoroView:"Abrir temporizador pomodoro",openKanbanView:"Abrir tablero kanban",updateDefaultBaseFiles:"Actualizar archivos Base predeterminados",openPomodoroStats:"Abrir estad\xEDsticas de pomodoro",openStatisticsView:"Abrir estad\xEDsticas de tareas y proyectos",createNewTask:"Crear nueva tarea",convertCurrentNoteToTask:{name:"Convertir nota actual en tarea",noActiveFile:"No hay archivo activo para convertir",alreadyTask:"Esta nota ya es una tarea",success:"'{title}' convertido en tarea"},convertToTaskNote:"Convertir tarea de casilla a TaskNote",convertAllTasksInNote:"Convertir todas las tareas en nota",insertTaskNoteLink:"Insertar enlace de tasknote",createInlineTask:"Crear nueva tarea en l\xEDnea",quickActionsCurrentTask:"Acciones r\xE1pidas para tarea actual",goToTodayNote:"Ir a la nota de hoy",startPomodoro:"Iniciar temporizador pomodoro",stopPomodoro:"Detener temporizador pomodoro",pauseResumePomodoro:"Pausar/reanudar temporizador pomodoro",refreshCache:"Actualizar cach\xE9",exportAllTasksIcs:"Exportar todas las tareas como archivo ICS",viewReleaseNotes:"Ver notas de la versi\xF3n",startTimeTrackingWithSelector:"Iniciar seguimiento de tiempo (seleccionar tarea)",editTimeEntries:"Editar entradas de tiempo (seleccionar tarea)",createOrOpenTask:"Crear o abrir tarea",createOrOpenTaskWithTracking:"Crear o abrir tarea e iniciar seguimiento de tiempo",rolloverOverdueScheduledTasks:"Posponer tareas programadas vencidas a hoy",syncAllTasksGoogleCalendar:"Sincronizar todas las tareas al Calendario de Google",syncCurrentTaskGoogleCalendar:"Sincronizar tarea actual al Calendario de Google",quickActionsTaskUnderCursor:"Acciones r\xE1pidas para la tarea bajo el cursor",editCurrentTask:"Editar tarea actual",cycleCurrentTaskStatus:"Cambiar estado de la tarea actual",cycleCurrentTaskPriority:"Cambiar prioridad de la tarea actual",addProjectToCurrentTask:"A\xF1adir proyecto a la tarea actual",addSubtaskToCurrentNote:"A\xF1adir subtarea a la nota actual"},modals:{deviceCode:{title:"Autorizaci\xF3n del Calendario de Google",instructions:{intro:"Para conectar su Calendario de Google, siga estos pasos:"},steps:{open:"Abrir",inBrowser:"en su navegador",enterCode:"Ingrese este c\xF3digo cuando se le solicite:",signIn:"Inicie sesi\xF3n con su cuenta de Google y otorgue acceso",returnToObsidian:"Vuelva a Obsidian (esta ventana se cerrar\xE1 autom\xE1ticamente)"},codeLabel:"Su c\xF3digo:",copyCodeAriaLabel:"Copiar c\xF3digo",waitingForAuthorization:"Esperando autorizaci\xF3n...",openBrowserButton:"Abrir navegador",cancelButton:"Cancelar",expiresMinutesSeconds:"El c\xF3digo expira en {minutes}m {seconds}s",expiresSeconds:"El c\xF3digo expira en {seconds}s"},icsEventInfo:{calendarEventHeading:"Evento de calendario",titleLabel:"T\xEDtulo",calendarLabel:"Calendario",dateTimeLabel:"Fecha y hora",locationLabel:"Ubicaci\xF3n",descriptionLabel:"Descripci\xF3n",urlLabel:"URL",relatedNotesHeading:"Notas y tareas relacionadas",noRelatedItems:"No se encontraron notas o tareas relacionadas para este evento.",typeTask:"Tarea",typeNote:"Nota",actionsHeading:"Acciones",createFromEventLabel:"Crear desde evento",createFromEventDesc:"Crear una nueva nota o tarea desde este evento de calendario",linkExistingLabel:"Vincular existente",linkExistingDesc:"Vincular una nota existente a este evento de calendario"},timeblockInfo:{editHeading:"Editar bloque de tiempo",dateTimeLabel:"Fecha y hora: ",titleLabel:"T\xEDtulo",titleDesc:"T\xEDtulo para su bloque de tiempo",titlePlaceholder:"ej. Sesi\xF3n de trabajo profundo",descriptionLabel:"Descripci\xF3n",descriptionDesc:"Descripci\xF3n opcional para el bloque de tiempo",descriptionPlaceholder:"Enfoque en nuevas funciones, sin interrupciones",colorLabel:"Color",colorDesc:"Color opcional para el bloque de tiempo",colorPlaceholder:"#3b82f6",attachmentsLabel:"Adjuntos",attachmentsDesc:"Archivos o notas vinculados a este bloque de tiempo",addAttachmentButton:"Agregar adjunto",addAttachmentTooltip:"Seleccionar un archivo o nota usando b\xFAsqueda difusa",deleteButton:"Eliminar bloque de tiempo",saveButton:"Guardar cambios",deleteConfirmationTitle:"Eliminar bloque de tiempo"},timeblockCreation:{heading:"Crear bloque de tiempo",dateLabel:"Fecha: ",titleLabel:"T\xEDtulo",titleDesc:"T\xEDtulo para su bloque de tiempo",titlePlaceholder:"ej. Sesi\xF3n de trabajo profundo",startTimeLabel:"Hora de inicio",startTimeDesc:"Cu\xE1ndo comienza el bloque de tiempo",startTimePlaceholder:"09:00",endTimeLabel:"Hora de fin",endTimeDesc:"Cu\xE1ndo termina el bloque de tiempo",endTimePlaceholder:"11:00",descriptionLabel:"Descripci\xF3n",descriptionDesc:"Descripci\xF3n opcional para el bloque de tiempo",descriptionPlaceholder:"Enfoque en nuevas funciones, sin interrupciones",colorLabel:"Color",colorDesc:"Color opcional para el bloque de tiempo",colorPlaceholder:"#3b82f6",attachmentsLabel:"Adjuntos",attachmentsDesc:"Archivos o notas para vincular a este bloque de tiempo",addAttachmentButton:"Agregar adjunto",addAttachmentTooltip:"Seleccionar un archivo o nota usando b\xFAsqueda difusa",createButton:"Crear bloque de tiempo"},calendarEventCreation:{heading:"Crear evento de calendario",dateTimeLabel:"Fecha y hora: ",titleLabel:"T\xEDtulo",titleDesc:"T\xEDtulo para el evento de calendario",titlePlaceholder:"ej., Reuni\xF3n de equipo",calendarLabel:"Calendario",calendarDesc:"En qu\xE9 calendario crear el evento",descriptionLabel:"Descripci\xF3n",descriptionDesc:"Descripci\xF3n opcional para el evento",descriptionPlaceholder:"Agregar detalles sobre este evento...",locationLabel:"Ubicaci\xF3n",locationDesc:"Ubicaci\xF3n opcional para el evento",locationPlaceholder:"ej., Sala de conferencias A",createButton:"Crear evento",titleRequired:"El t\xEDtulo del evento es obligatorio",noCalendarSelected:"No se seleccion\xF3 ning\xFAn calendario",success:'Evento de calendario "{title}" creado',error:"No se pudo crear el evento de calendario: {message}"},icsNoteCreation:{heading:"Crear desde evento ICS",titleLabel:"T\xEDtulo",titleDesc:"T\xEDtulo para el nuevo contenido",folderLabel:"Carpeta",folderDesc:"Carpeta de destino (dejar vac\xEDo para la ra\xEDz del vault)",folderPlaceholder:"carpeta/subcarpeta",createButton:"Crear",startLabel:"Inicio: ",endLabel:"Fin: ",locationLabel:"Ubicaci\xF3n: ",calendarLabel:"Calendario: ",useTemplateLabel:"Usar plantilla",useTemplateDesc:"Aplicar una plantilla al crear el contenido",templatePathLabel:"Ruta de plantilla",templatePathDesc:"Ruta al archivo de plantilla",templatePathPlaceholder:"plantillas/plantilla-nota-ics.md"},unscheduledTasksSelector:{title:"Tareas no programadas",placeholder:"Escribe para buscar tareas no programadas...",instructions:{navigate:"para navegar",schedule:"para programar",dismiss:"para descartar"}},migration:{title:"Migrar al nuevo sistema de recurrencia",description:"TaskNotes ahora usa patrones RRULE est\xE1ndar de la industria para recurrencia, lo que permite horarios m\xE1s complejos y mejor compatibilidad con otras aplicaciones.",tasksFound:"{count} tarea(s) con patrones de recurrencia antiguos detectados",noMigrationNeeded:"No se requiere migraci\xF3n de tareas",warnings:{title:"Antes de proceder:",backup:"Respalda tu b\xF3veda antes de migrar",conversion:"Los patrones de recurrencia antiguos se convertir\xE1n al nuevo formato",normalUsage:"Puedes continuar usando TaskNotes normalmente durante la migraci\xF3n",permanent:"Este cambio es permanente y no se puede deshacer autom\xE1ticamente"},benefits:{title:"Beneficios del nuevo sistema:",powerfulPatterns:"Patrones de recurrencia complejos (ej. 'cada segundo martes')",performance:"Mejor rendimiento con tareas recurrentes",compatibility:"Formato de recurrencia est\xE1ndar compatible con otras aplicaciones",nlp:"Soporte mejorado de procesamiento de lenguaje natural"},progress:{title:"Progreso de migraci\xF3n",preparing:"Preparando migraci\xF3n...",completed:"Migraci\xF3n completada exitosamente",failed:"Migraci\xF3n fallida"},buttons:{migrate:"Iniciar migraci\xF3n",completed:"Cerrar"},errors:{title:"Errores durante la migraci\xF3n:"},notices:{completedWithErrors:"Migraci\xF3n completada con algunos errores. Revisa la lista de errores arriba.",success:"\xA1Todas las tareas migradas exitosamente!",failed:"Migraci\xF3n fallida. Por favor revisa la consola para m\xE1s detalles."},prompt:{message:"TaskNotes detect\xF3 tareas usando el formato de recurrencia antiguo. \xBFTe gustar\xEDa migrarlas al nuevo sistema ahora?",migrateNow:"Migrar ahora",remindLater:"Recordar m\xE1s tarde"}},task:{titlePlaceholder:"\xBFQu\xE9 necesita hacerse?",titleLabel:"T\xEDtulo",titleDetailedPlaceholder:"T\xEDtulo de la tarea...",detailsLabel:"Detalles",detailsPlaceholder:"Agregar m\xE1s detalles...",projectsLabel:"Proyectos",projectsAdd:"Agregar proyecto",projectsTooltip:"Seleccionar una nota de proyecto usando b\xFAsqueda difusa",projectsRemoveTooltip:"Eliminar proyecto",contextsLabel:"Contextos",contextsPlaceholder:"contexto1, contexto2",tagsLabel:"Etiquetas",tagsPlaceholder:"etiqueta1, etiqueta2",timeEstimateLabel:"Estimaci\xF3n de tiempo (minutos)",timeEstimatePlaceholder:"30",unsavedChanges:{title:"Cambios sin guardar",message:"Tiene cambios sin guardar. \xBFDesea guardarlos?",save:"Guardar cambios",discard:"Descartar cambios",cancel:"Seguir editando"},dependencies:{blockedBy:"Bloqueado por",blocking:"Bloqueando",placeholder:"[[Nota de tarea]]",addTaskButton:"Agregar tarea",selectTaskTooltip:"Seleccionar una nota de tarea usando b\xFAsqueda difusa",removeTaskTooltip:"Eliminar tarea"},organization:{projects:"Proyectos",subtasks:"Subtareas",addToProject:"Agregar a proyecto",addToProjectButton:"Agregar a proyecto",addSubtasks:"Agregar subtareas",addSubtasksButton:"Agregar subtarea",addSubtasksTooltip:"Seleccionar tareas para convertirlas en subtareas de esta tarea",removeSubtaskTooltip:"Eliminar subtarea",notices:{noEligibleSubtasks:"No hay tareas elegibles disponibles para asignar como subtareas",subtaskSelectFailed:"Error al abrir selector de subtareas"}},customFieldsLabel:"Campos personalizados",actions:{due:"Establecer fecha de vencimiento",scheduled:"Establecer fecha programada",status:"Establecer estado",priority:"Establecer prioridad",recurrence:"Establecer recurrencia",reminders:"Establecer recordatorios"},buttons:{openNote:"Abrir nota",save:"Guardar"},tooltips:{dueValue:"Vence: {value}",scheduledValue:"Programado: {value}",statusValue:"Estado: {value}",priorityValue:"Prioridad: {value}",recurrenceValue:"Recurrencia: {value}",remindersSingle:"1 recordatorio establecido",remindersPlural:"{count} recordatorios establecidos"},dateMenu:{dueTitle:"Establecer fecha de vencimiento",scheduledTitle:"Establecer fecha programada"},userFields:{textPlaceholder:"Ingresar {field}...",numberPlaceholder:"0",datePlaceholder:"YYYY-MM-DD",listPlaceholder:"elemento1, elemento2, elemento3",pickDate:"Elegir fecha de {field}"},recurrence:{daily:"Diario",weekly:"Semanal",everyTwoWeeks:"Cada 2 semanas",weekdays:"D\xEDas de semana",weeklyOn:"Semanal en {days}",monthly:"Mensual",everyThreeMonths:"Cada 3 meses",monthlyOnOrdinal:"Mensual en el {ordinal}",monthlyByWeekday:"Mensual (por d\xEDa de semana)",yearly:"Anual",yearlyOn:"Anual en {month} {day}",custom:"Personalizado",countSuffix:"{count} veces",untilSuffix:"hasta {date}",ordinal:"{number}{suffix}"}},taskSelector:{title:"Seleccionar tarea",placeholder:"Escribe para buscar tareas...",instructions:{navigate:"para navegar",select:"para seleccionar",dismiss:"para cancelar"},notices:{noteNotFound:'No se pudo encontrar la nota "{name}"'},dueDate:{overdue:"Vencimiento: {date} (vencido)",today:"Vencimiento: Hoy"}},taskSelectorWithCreate:{title:"Crear o abrir tarea",placeholder:"Buscar tareas o escribir para crear nueva...",instructions:{create:"para crear nueva tarea"},footer:{createLabel:" para crear: "},notices:{emptyQuery:"Por favor ingrese una descripci\xF3n de tarea",invalidTitle:"No se pudo reconocer un t\xEDtulo de tarea v\xE1lido"}},taskCreation:{title:"Crear tarea",actions:{fillFromNaturalLanguage:"Llenar formulario desde lenguaje natural",hideDetailedOptions:"Ocultar opciones detalladas",showDetailedOptions:"Mostrar opciones detalladas"},nlPlaceholder:"Comprar v\xEDveres ma\xF1ana a las 3pm @casa #diligencias",notices:{titleRequired:"Por favor ingresa un t\xEDtulo de tarea",success:'Tarea "{title}" creada exitosamente',successShortened:'Tarea "{title}" creada exitosamente (nombre de archivo acortado por longitud)',failure:"Error al crear tarea: {message}",blockingUnresolved:"No se pudo resolver: {entries}",openCreatedTaskFailure:"Tarea creada, pero no se pudo abrir la nota de la tarea."}},taskEdit:{title:"Editar tarea",sections:{completions:"Finalizaciones",taskInfo:"Informaci\xF3n de la tarea"},metadata:{totalTrackedTime:"Tiempo total rastreado:",due:"Vencimiento:",scheduled:"Programada:",created:"Creado:",modified:"Modificado:",file:"Archivo:"},buttons:{archive:"Archivar",unarchive:"Desarchivar"},notices:{titleRequired:"Por favor ingresa un t\xEDtulo de tarea",noChanges:"No hay cambios para guardar",updateSuccess:'Tarea "{title}" actualizada exitosamente',updateFailure:"Error al actualizar tarea: {message}",dependenciesUpdateSuccess:"Dependencias actualizadas",blockingUnresolved:"No se pudo resolver: {entries}",fileMissing:"No se pudo encontrar el archivo de tarea: {path}",openNoteFailure:"Error al abrir nota de tarea",archiveSuccess:"Tarea {action} exitosamente",archiveFailure:"Error al archivar tarea",deleteSuccess:'Tarea "{title}" eliminada correctamente',deleteFailure:"No se pudo eliminar la tarea: {message}"},archiveAction:{archived:"archivada",unarchived:"desarchivada"},deleteConfirmation:{title:"Eliminar tarea",message:'\xBFSeguro que quieres eliminar "{title}"? Esto mueve la nota de la tarea a la papelera de Obsidian.',confirm:"Eliminar tarea"}},storageLocation:{title:{migrate:"\xBFMigrar datos de pomodoro?",switch:"\xBFCambiar a almacenamiento de notas diarias?"},message:{migrate:"Esto migrar\xE1 tus datos de sesi\xF3n de pomodoro existentes al frontmatter de notas diarias. Los datos se agrupar\xE1n por fecha y se almacenar\xE1n en cada nota diaria.",switch:"Los datos de sesi\xF3n de pomodoro se almacenar\xE1n en el frontmatter de notas diarias en lugar del archivo de datos del plugin."},whatThisMeans:"Lo que esto significa:",bullets:{dailyNotesRequired:"Las notas diarias deben estar activadas en el plugin principal de notas diarias o en Periodic Notes",storedInNotes:"Los datos se almacenar\xE1n en el frontmatter de tus notas diarias",migrateData:"Los datos del plugin existentes se migrar\xE1n y luego se borrar\xE1n",futureSessions:"Las sesiones futuras se guardar\xE1n en notas diarias",dataLongevity:"Esto proporciona mejor longevidad de datos con tus notas"},finalNote:{migrate:"\u26A0\uFE0F Aseg\xFArate de tener respaldos si es necesario. Este cambio no se puede deshacer autom\xE1ticamente.",switch:"Puedes cambiar de vuelta al almacenamiento del plugin en cualquier momento en el futuro."},buttons:{migrate:"Migrar datos",switch:"Cambiar almacenamiento"}},dueDate:{title:"Establecer fecha de vencimiento",taskLabel:"Tarea: {title}",sections:{dateTime:"Fecha y hora de vencimiento",quickOptions:"Opciones r\xE1pidas"},descriptions:{dateTime:"Establecer cu\xE1ndo debe completarse esta tarea"},inputs:{date:{ariaLabel:"Fecha de vencimiento para la tarea",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"Hora de vencimiento para la tarea (opcional)",placeholder:"HH:MM"}},quickOptions:{today:"Hoy",todayAriaLabel:"Establecer fecha de vencimiento a hoy",tomorrow:"Ma\xF1ana",tomorrowAriaLabel:"Establecer fecha de vencimiento a ma\xF1ana",nextWeek:"Pr\xF3xima semana",nextWeekAriaLabel:"Establecer fecha de vencimiento a la pr\xF3xima semana",now:"Ahora",nowAriaLabel:"Establecer fecha y hora de vencimiento a ahora",clear:"Limpiar",clearAriaLabel:"Limpiar fecha de vencimiento"},errors:{invalidDateTime:"Por favor ingresa un formato de fecha y hora v\xE1lido",updateFailed:"Error al actualizar fecha de vencimiento. Por favor intenta de nuevo."}},scheduledDate:{title:"Establecer fecha programada",taskLabel:"Tarea: {title}",sections:{dateTime:"Fecha y hora programada",quickOptions:"Opciones r\xE1pidas"},descriptions:{dateTime:"Establecer cu\xE1ndo planeas trabajar en esta tarea"},inputs:{date:{ariaLabel:"Fecha programada para la tarea",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"Hora programada para la tarea (opcional)",placeholder:"HH:MM"}},quickOptions:{today:"Hoy",todayAriaLabel:"Establecer fecha programada a hoy",tomorrow:"Ma\xF1ana",tomorrowAriaLabel:"Establecer fecha programada a ma\xF1ana",nextWeek:"Pr\xF3xima semana",nextWeekAriaLabel:"Establecer fecha programada a la pr\xF3xima semana",now:"Ahora",nowAriaLabel:"Establecer fecha y hora programada a ahora",clear:"Limpiar",clearAriaLabel:"Limpiar fecha programada"},errors:{invalidDateTime:"Por favor ingresa un formato de fecha y hora v\xE1lido",updateFailed:"Error al actualizar fecha programada. Por favor intenta de nuevo."}},timeEntryEditor:{title:"Entradas de tiempo - {taskTitle}",addEntry:"Agregar entrada de tiempo",noEntries:"A\xFAn no hay entradas de tiempo",deleteEntry:"Eliminar entrada",startTime:"Hora de inicio",endTime:"Hora de finalizaci\xF3n (dejar vac\xEDo si a\xFAn est\xE1 en ejecuci\xF3n)",duration:"Duraci\xF3n (minutos)",durationDesc:"Anular duraci\xF3n calculada",durationPlaceholder:"Ingresar duraci\xF3n en minutos",description:"Descripci\xF3n",descriptionPlaceholder:"\xBFEn qu\xE9 trabajaste?",calculatedDuration:"Calculado: {minutes} minutos",totalTime:"{hours}h {minutes}m total",totalMinutes:"{minutes}m total",saved:"Entradas de tiempo guardadas",saveFailed:"Error al guardar entradas de tiempo",openFailed:"Error al abrir el editor de entradas de tiempo",noTasksWithEntries:"No hay tareas con entradas de tiempo para editar",validation:{missingStartTime:"Se requiere hora de inicio",endBeforeStart:"La hora de finalizaci\xF3n debe ser posterior a la hora de inicio"}},timeTracking:{noTasksAvailable:"No hay tareas disponibles para rastrear tiempo",started:"Seguimiento de tiempo iniciado para: {taskTitle}",startFailed:"Error al iniciar el seguimiento de tiempo"},timeEntry:{mustHaveSpecificTime:"Las entradas de tiempo deben tener horas espec\xEDficas. Seleccione un rango de tiempo en la vista semanal o diaria.",noTasksAvailable:"No hay tareas disponibles para crear entradas de tiempo",created:"Entrada de tiempo creada para {taskTitle} ({duration} minutos)",createFailed:"Error al crear entrada de tiempo"}},contextMenus:{task:{status:"Estado",statusSelected:"\u2713 {label}",priority:"Prioridad",prioritySelected:"\u2713 {label}",dueDate:"Fecha de vencimiento",scheduledDate:"Fecha programada",customDates:"Fechas personalizadas",reminders:"Recordatorios",remindBeforeDue:"Recordar antes del vencimiento\u2026",remindBeforeScheduled:"Recordar antes de programado\u2026",manageReminders:"Gestionar todos los recordatorios\u2026",clearReminders:"Limpiar todos los recordatorios",startTimeTracking:"Iniciar seguimiento de tiempo",stopTimeTracking:"Detener seguimiento de tiempo",editTimeEntries:"Editar entradas de tiempo",archive:"Archivar",unarchive:"Desarchivar",openNote:"Abrir nota",openNoteInNewTab:"Abrir nota en una nueva pesta\xF1a",copyTitle:"Copiar t\xEDtulo de tarea",quickActions:"Acciones r\xE1pidas",noteActions:"Acciones de nota",rename:"Renombrar",renameTitle:"Renombrar archivo",renamePlaceholder:"Ingresar nuevo nombre",delete:"Eliminar",deleteTitle:"Eliminar archivo",deleteMessage:'\xBFEst\xE1s seguro de que quieres eliminar "{name}"?',deleteConfirm:"Eliminar",copyPath:"Copiar ruta",copyUrl:"Copiar URL de Obsidian",showInExplorer:"Mostrar en explorador de archivos",addToCalendar:"Agregar al calendario",calendar:{google:"Calendario de Google",outlook:"Calendario de Outlook",yahoo:"Calendario de Yahoo",downloadIcs:"Descargar archivo .ics",syncToGoogle:"Sincronizar con el Calendario de Google",syncToGoogleNotConfigured:"Sincronizaci\xF3n con el Calendario de Google no configurada",syncToGoogleSuccess:"Tarea sincronizada con el Calendario de Google",syncToGoogleFailed:"Error al sincronizar con el Calendario de Google"},recurrence:"Recurrencia",clearRecurrence:"Limpiar recurrencia",customRecurrence:"Recurrencia personalizada...",createSubtask:"Crear subtarea",dependencies:{title:"Dependencias",addBlockedBy:"Agregar bloqueado por\u2026",addBlockedByTitle:"Agregar tareas de las que esto depende",addBlocking:"Agregar bloqueando\u2026",addBlockingTitle:"Agregar tareas que esto bloquea",removeBlockedBy:"Eliminar bloqueado-por\u2026",removeBlocking:"Eliminar bloqueando\u2026",unknownDependency:"Desconocido",inputPlaceholder:"[[Nota de tarea]]",notices:{noEntries:"Por favor ingrese al menos una tarea",blockedByAdded:"{count} dependencia agregada",blockedByRemoved:"Dependencia eliminada",blockingAdded:"{count} tarea dependiente agregada",blockingRemoved:"Tarea dependiente eliminada",unresolved:"No se pudo resolver: {entries}",noEligibleTasks:"No hay tareas coincidentes disponibles",updateFailed:"Error al actualizar dependencias"}},organization:{title:"Organizaci\xF3n",projects:"Proyectos",addToProject:"Agregar a proyecto\u2026",subtasks:"Subtareas",addSubtasks:"Agregar subtareas\u2026",notices:{alreadyInProject:"La tarea ya est\xE1 en este proyecto",alreadySubtask:"La tarea ya es una subtarea de esta tarea",addedToProject:"Agregado al proyecto: {project}",addedAsSubtask:"{subtask} agregado como subtarea de {parent}",addToProjectFailed:"Error al agregar tarea al proyecto",addAsSubtaskFailed:"Error al agregar tarea como subtarea",projectSelectFailed:"Error al abrir selector de proyecto",subtaskSelectFailed:"Error al abrir selector de subtareas",noEligibleSubtasks:"No hay tareas elegibles disponibles para asignar como subtareas",currentTaskNotFound:"Archivo de tarea actual no encontrado",updateContextsFailed:"No se pudieron actualizar los contextos"},contexts:"Contextos",addContext:"A\xF1adir contexto\u2026",contextPlaceholder:"contexto",contextSelected:"\u2713 {context}",clearContexts:"Borrar contextos"},subtasks:{loading:"Cargando subtareas...",noSubtasks:"No se encontraron subtareas",loadFailed:"Error al cargar subtareas"},markComplete:"Marcar como completo para esta fecha",markIncomplete:"Marcar como incompleto para esta fecha",skipInstance:"Omitir instancia",unskipInstance:"Deshacer omisi\xF3n de instancia",quickReminders:{atTime:"A la hora del evento",fiveMinutes:"5 minutos antes",fifteenMinutes:"15 minutos antes",oneHour:"1 hora antes",oneDay:"1 d\xEDa antes"},notices:{toggleCompletionFailure:"Error al alternar finalizaci\xF3n de tarea recurrente: {message}",toggleSkipFailure:"Error al alternar omisi\xF3n de tarea recurrente: {message}",updateDueDateFailure:"Error al actualizar fecha de vencimiento de tarea: {message}",updateScheduledFailure:"Error al actualizar fecha programada de tarea: {message}",updateCustomDateFailure:"No se pudo actualizar {field}: {message}",updateRemindersFailure:"Error al actualizar recordatorios",clearRemindersFailure:"Error al limpiar recordatorios",addReminderFailure:"Error al agregar recordatorio",archiveFailure:"Error al alternar archivo de tarea: {message}",copyTitleSuccess:"T\xEDtulo de tarea copiado al portapapeles",copyFailure:"Error al copiar al portapapeles",renameSuccess:'Renombrado a "{name}"',renameFailure:"Error al renombrar archivo",copyPathSuccess:"Ruta de archivo copiada al portapapeles",copyUrlSuccess:"URL de Obsidian copiada al portapapeles",updateRecurrenceFailure:"Error al actualizar recurrencia de tarea: {message}",updateTagsFailed:"No se pudieron actualizar las etiquetas"},tags:"Etiquetas",addTag:"A\xF1adir etiqueta\u2026",removeTag:"Eliminar {tag}",removeTagInput:"Eliminar etiqueta\u2026",tagPlaceholder:"Etiqueta o #etiqueta",clearTags:"Borrar etiquetas"},priority:{clearPriority:"Quitar prioridad"},ics:{showDetails:"Mostrar detalles",createTask:"Crear tarea desde evento",createNote:"Crear nota desde evento",linkNote:"Vincular nota existente",copyTitle:"Copiar t\xEDtulo",copyLocation:"Copiar ubicaci\xF3n",copyUrl:"Copiar URL",copyMarkdown:"Copiar como markdown",subscriptionUnknown:"Calendario desconocido",notices:{copyTitleSuccess:"T\xEDtulo del evento copiado al portapapeles",copyLocationSuccess:"Ubicaci\xF3n copiada al portapapeles",copyUrlSuccess:"URL del evento copiada al portapapeles",copyMarkdownSuccess:"Detalles del evento copiados como markdown",copyFailure:"Error al copiar al portapapeles",taskCreated:"Tarea creada: {title}",taskCreateFailure:"Error al crear tarea desde evento",noteCreated:"Nota creada exitosamente",creationFailure:"Error al abrir modal de creaci\xF3n",linkSuccess:'Nota "{name}" vinculada al evento',linkFailure:"Error al vincular nota",linkSelectionFailure:"Error al abrir selecci\xF3n de nota"},markdown:{titleFallback:"Evento sin t\xEDtulo",calendar:"**Calendario:** {value}",date:"**Fecha y hora:** {value}",location:"**Ubicaci\xF3n:** {value}",descriptionHeading:"### Descripci\xF3n",url:"**URL:** {value}",at:" a las {time}"}},date:{increment:{plusOneDay:"+1 d\xEDa",minusOneDay:"-1 d\xEDa",plusOneWeek:"+1 semana",minusOneWeek:"-1 semana"},basic:{today:"Hoy",tomorrow:"Ma\xF1ana",thisWeekend:"Este fin de semana",nextWeek:"Pr\xF3xima semana",nextMonth:"Pr\xF3ximo mes"},weekdaysLabel:"D\xEDas de semana",selected:"\u2713 {label}",pickDateTime:"Elegir fecha y hora\u2026",clearDate:"Limpiar fecha",modal:{title:"Establecer fecha y hora",dateLabel:"Fecha",timeLabel:"Hora (opcional)",select:"Seleccionar"}}},services:{pomodoro:{notices:{alreadyRunning:"Un pomodoro ya est\xE1 ejecut\xE1ndose",resumeCurrentSession:"Reanudar la sesi\xF3n actual en lugar de iniciar una nueva",timerAlreadyRunning:"Un temporizador ya est\xE1 ejecut\xE1ndose",resumeSessionInstead:"Reanudar la sesi\xF3n actual en lugar de iniciar una nueva",shortBreakStarted:"Descanso corto iniciado",longBreakStarted:"Descanso largo iniciado",paused:"Pomodoro pausado",resumed:"Pomodoro reanudado",stoppedAndReset:"Pomodoro detenido y reiniciado",migrationSuccess:"{count} sesiones de pomodoro migradas exitosamente a notas diarias.",migrationFailure:"Error al migrar datos de pomodoro. Por favor intenta de nuevo o revisa la consola para detalles."}},icsSubscription:{notices:{calendarNotFound:'Calendario "{name}" no encontrado (404). Por favor verifica que la URL ICS sea correcta y el calendario sea p\xFAblicamente accesible.',calendarAccessDenied:'Acceso al calendario "{name}" denegado (500). Esto puede deberse a restricciones del servidor de Microsoft Outlook. Intenta regenerar la URL ICS desde la configuraci\xF3n de tu calendario.',fetchRemoteFailed:'Error al obtener calendario remoto "{name}": {error}',readLocalFailed:'Error al leer calendario local "{name}": {error}'}},calendarExport:{notices:{generateLinkFailed:"Error al generar enlace de calendario",noTasksToExport:"No se encontraron tareas para exportar",downloadSuccess:"Descargado {filename} con {count} tarea{plural}",downloadFailed:"Error al descargar archivo de calendario",singleDownloadSuccess:"Descargado {filename}"}},filter:{groupLabels:{noProject:"Sin proyecto",noTags:"Sin etiquetas",invalidDate:"Fecha inv\xE1lida",due:{overdue:"Vencido",today:"Hoy",tomorrow:"Ma\xF1ana",nextSevenDays:"Pr\xF3ximos siete d\xEDas",later:"M\xE1s tarde",none:"Sin fecha de vencimiento"},scheduled:{past:"Programaci\xF3n pasada",today:"Hoy",tomorrow:"Ma\xF1ana",nextSevenDays:"Pr\xF3ximos siete d\xEDas",later:"M\xE1s tarde",none:"Sin fecha programada"}},errors:{noDatesProvided:"No se proporcionaron fechas"},folders:{root:"(Ra\xEDz)"}},instantTaskConvert:{notices:{noCheckboxTasks:"No se encontraron tareas de casilla de verificaci\xF3n en la nota actual.",convertingTasks:"Convirtiendo {count} tarea{plural}...",conversionSuccess:"\u2705 \xA1{count} tarea{plural} convertida exitosamente a TaskNotes!",partialConversion:"{successCount} tarea{successPlural} convertida. {failureCount} fallaron.",batchConversionFailed:"Error al realizar conversi\xF3n por lotes. Por favor intenta de nuevo.",invalidParameters:"Par\xE1metros de entrada inv\xE1lidos.",emptyLine:"La l\xEDnea actual est\xE1 vac\xEDa o no contiene contenido v\xE1lido.",parseError:"Error al analizar tarea: {error}",invalidTaskData:"Datos de tarea inv\xE1lidos.",replaceLineFailed:"Error al reemplazar l\xEDnea de tarea.",conversionComplete:"Tarea convertida: {title}",conversionCompleteShortened:'Tarea convertida: "{title}" (nombre de archivo acortado por longitud)',fileExists:"Ya existe un archivo con este nombre. Por favor intenta de nuevo o renombra la tarea.",conversionFailed:"Error al convertir tarea. Por favor intenta de nuevo."}},icsNote:{notices:{templateNotFound:"Plantilla no encontrada: {path}",templateProcessError:"Error al procesar plantilla: {template}",linkedToEvent:"Nota vinculada al evento ICS: {title}"}},task:{notices:{templateNotFound:"Plantilla del cuerpo de tarea no encontrada: {path}",templateReadError:"Error al leer plantilla del cuerpo de tarea: {template}",occurrenceTemplateNotFound:"Plantilla de nota de ocurrencia no encontrada: {path}",occurrenceTemplateReadError:"Error al leer plantilla de nota de ocurrencia: {template}",moveTaskFailed:"Error al mover tarea {operation}: {error}"}},autoExport:{notices:{exportFailed:"Auto exportaci\xF3n de TaskNotes fall\xF3: {error}"}}},ui:{icsCard:{untitledEvent:"Evento sin t\xEDtulo",allDay:"Todo el d\xEDa",calendarEvent:"Evento de calendario",calendarFallback:"Calendario"},noteCard:{createdLabel:"Creado:",dailyBadge:"Diario",dailyTooltip:"Nota diaria"},taskCard:{labels:{due:"Vencimiento",scheduled:"Programado",recurrence:"Recurrente",completed:"Completado",created:"Creado",modified:"Modificado",blocked:"Bloqueado",blocking:"Bloqueando"},blockedBadge:"Bloqueada",blockedBadgeTooltip:"Esta tarea est\xE1 esperando otra tarea",blockingBadge:"Bloqueando",blockingBadgeTooltip:"Esta tarea bloquea otra tarea",blockingToggle:"Bloqueando {count} tareas",priorityAriaLabel:"Prioridad: {label}",taskOptions:"Opciones de tarea",recurrenceTooltip:"{label}: {value}",reminderTooltipOne:"1 recordatorio configurado (clic para gestionar)",reminderTooltipMany:"{count} recordatorios configurados (clic para gestionar)",projectTooltip:"Esta tarea se usa como proyecto (clic para mostrar/ocultar subtareas)",projectIndicatorTooltip:"Esta tarea se utiliza como proyecto",expandSubtasks:"Expandir subtareas",collapseSubtasks:"Contraer subtareas",dueToday:"{label}: Hoy",dueTodayAt:"{label}: Hoy a las {time}",dueOverdue:"{label}: {display} (atrasada)",dueLabel:"{label}: {display}",scheduledToday:"{label}: Hoy",scheduledTodayAt:"{label}: Hoy a las {time}",scheduledPast:"{label}: {display} (pasado)",scheduledLabel:"{label}: {display}",loadingDependencies:"Cargando dependencias...",blockingEmpty:"Sin tareas dependientes",blockingLoadError:"No se pudieron cargar las dependencias",googleCalendarSyncTooltip:"Sincronizado con el Calendario de Google",detailsTooltip:"La tarea tiene detalles"},propertyEventCard:{unknownFile:"Archivo desconocido"},filterHeading:{allViewName:"Todos"},filterBar:{saveView:"Guardar vista",saveViewNamePlaceholder:"Ingresar nombre de vista...",saveButton:"Guardar",views:"Vistas",savedFilterViews:"Vistas de filtro guardadas",filters:"Filtros",properties:"Propiedades",sort:"Ordenar",newTask:"Nuevo",expandAllGroups:"Expandir todos los grupos",collapseAllGroups:"Contraer todos los grupos",searchTasksPlaceholder:"Buscar tareas...",searchTasksTooltip:"Buscar t\xEDtulos de tareas",filterUnavailable:"Barra de filtros temporalmente no disponible",toggleFilter:"Alternar filtro",activeFiltersTooltip:"Filtros activos \u2013 Clic para modificar, clic derecho para limpiar",configureVisibleProperties:"Configurar propiedades visibles",sortAndGroupOptions:"Opciones de ordenamiento y agrupaci\xF3n",sortMenuHeader:"Ordenar",orderMenuHeader:"Orden",groupMenuHeader:"Agrupar",createNewTask:"Crear nueva tarea",filter:"Filtro",displayOrganization:"Visualizaci\xF3n y organizaci\xF3n",viewOptions:"Opciones de vista",addFilter:"Agregar filtro",addFilterGroup:"Agregar grupo de filtros",addFilterTooltip:"Agregar una nueva condici\xF3n de filtro",addFilterGroupTooltip:"Agregar un grupo de filtros anidado",clearAllFilters:"Limpiar todos los filtros y grupos",saveCurrentFilter:"Guardar filtro actual como vista",closeFilterModal:"Cerrar modal de filtro",deleteFilterGroup:"Eliminar grupo de filtros",deleteCondition:"Eliminar condici\xF3n",all:"Todos",any:"Cualquiera",followingAreTrue:"de los siguientes son verdaderos:",where:"donde",selectProperty:"Seleccionar...",chooseProperty:"Elegir por qu\xE9 propiedad de tarea filtrar",chooseOperator:"Elegir c\xF3mo comparar el valor de la propiedad",enterValue:"Ingresar el valor por el cual filtrar",selectValue:"Seleccionar un {property} por el cual filtrar",sortBy:"Ordenar por:",toggleSortDirection:"Alternar direcci\xF3n de ordenamiento",chooseSortMethod:"Elegir c\xF3mo ordenar tareas",groupBy:"Agrupar por:",chooseGroupMethod:"Agrupar tareas por una propiedad com\xFAn",toggleViewOption:"Alternar {option}",expandCollapseFilters:"Clic para expandir/contraer condiciones de filtro",expandCollapseSort:"Clic para expandir/contraer opciones de ordenamiento y agrupaci\xF3n",expandCollapseViewOptions:"Clic para expandir/contraer opciones espec\xEDficas de vista",naturalLanguageDates:"Fechas en lenguaje natural",naturalLanguageExamples:"Mostrar ejemplos de fechas en lenguaje natural",enterNumericValue:"Ingresar un valor num\xE9rico por el cual filtrar",enterDateValue:"Ingresar una fecha usando lenguaje natural o formato ISO",pickDateTime:"Elegir fecha y hora",noSavedViews:"No hay vistas guardadas",savedViews:"Vistas guardadas",yourSavedFilters:"Tus configuraciones de filtro guardadas",dragToReorder:"Arrastrar para reordenar vistas",loadSavedView:"Cargar vista guardada: {name}",deleteView:"Eliminar vista",deleteViewTitle:"Eliminar vista",deleteViewMessage:'\xBFEst\xE1s seguro de que quieres eliminar la vista "{name}"?',manageAllReminders:"Gestionar todos los recordatorios...",clearAllReminders:"Limpiar todos los recordatorios",customRecurrence:"Recurrencia personalizada...",clearRecurrence:"Limpiar recurrencia",sortOptions:{dueDate:"Fecha de vencimiento",scheduledDate:"Fecha programada",priority:"Prioridad",status:"Estado",title:"T\xEDtulo",createdDate:"Fecha de creaci\xF3n",tags:"Etiquetas",ascending:"Ascendente",descending:"Descendente"},group:{none:"Ninguno",status:"Estado",priority:"Prioridad",context:"Contexto",project:"Proyecto",dueDate:"Fecha de vencimiento",scheduledDate:"Fecha programada",tags:"Etiquetas",completedDate:"Fecha de finalizaci\xF3n"},subgroupLabel:"SUBGRUPO",notices:{propertiesMenuFailed:"Error al mostrar men\xFA de propiedades"}}},components:{dateContextMenu:{weekdays:"D\xEDas laborables",clearDate:"Borrar fecha",today:"Hoy",tomorrow:"Ma\xF1ana",thisWeekend:"Este fin de semana",nextWeek:"Pr\xF3xima semana",nextMonth:"Pr\xF3ximo mes",setDateTime:"Establecer fecha y hora",dateLabel:"Fecha",timeLabel:"Hora (opcional)"},subgroupMenuBuilder:{none:"Ninguno",status:"Estado",priority:"Prioridad",context:"Contexto",project:"Proyecto",dueDate:"Fecha de vencimiento",scheduledDate:"Fecha programada",tags:"Etiquetas",completedDate:"Fecha de finalizaci\xF3n",subgroup:"SUBGRUPO"},propertyVisibilityDropdown:{coreProperties:"PROPIEDADES PRINCIPALES",organization:"ORGANIZACI\xD3N",customProperties:"PROPIEDADES PERSONALIZADAS",failed:"Error al mostrar men\xFA de propiedades",properties:{statusDot:"Punto de estado",priorityDot:"Punto de prioridad",dueDate:"Fecha de vencimiento",scheduledDate:"Fecha programada",timeEstimate:"Estimaci\xF3n de tiempo",totalTrackedTime:"Tiempo total rastreado",checklistProgress:"Progreso de la lista de verificaci\xF3n",recurrence:"Recurrencia",completedDate:"Fecha de finalizaci\xF3n",createdDate:"Fecha de creaci\xF3n",modifiedDate:"Fecha de modificaci\xF3n",projects:"Proyectos",contexts:"Contextos",tags:"Etiquetas",blocked:"Bloqueada",blocking:"Bloqueando"}},reminderContextMenu:{remindBeforeDue:"Recordar antes del vencimiento...",remindBeforeScheduled:"Recordar antes de programado...",manageAllReminders:"Gestionar todos los recordatorios...",clearAllReminders:"Limpiar todos los recordatorios",quickReminders:{atTime:"A la hora del evento",fiveMinutesBefore:"5 minutos antes",fifteenMinutesBefore:"15 minutos antes",oneHourBefore:"1 hora antes",oneDayBefore:"1 d\xEDa antes"}},recurrenceContextMenu:{daily:"Diario",weeklyOn:"Semanal en {day}",everyTwoWeeksOn:"Cada 2 semanas en {day}",monthlyOnThe:"Mensual en el {ordinal}",everyThreeMonthsOnThe:"Cada 3 meses en el {ordinal}",yearlyOn:"Anual en {month} {ordinal}",weekdaysOnly:"Solo d\xEDas de semana",dailyAfterCompletion:"Diario (despu\xE9s de completar)",every3DaysAfterCompletion:"Cada 3 d\xEDas (despu\xE9s de completar)",weeklyAfterCompletion:"Semanal (despu\xE9s de completar)",monthlyAfterCompletion:"Mensual (despu\xE9s de completar)",customRecurrence:"Recurrencia personalizada...",clearRecurrence:"Limpiar recurrencia",customRecurrenceModal:{title:"Recurrencia personalizada",startDate:"Fecha de inicio",startDateDesc:"La fecha cuando comienza el patr\xF3n de recurrencia",startTime:"Hora de inicio",startTimeDesc:"La hora cuando deben aparecer las instancias recurrentes (opcional)",recurFrom:"Recurrir desde",recurFromDesc:"\xBFCu\xE1ndo debe calcularse la siguiente ocurrencia?",scheduledDate:"Fecha programada",completionDate:"Fecha de finalizaci\xF3n",frequency:"Frecuencia",interval:"Intervalo",intervalDesc:"Cada X d\xEDas/semanas/meses/a\xF1os",daysOfWeek:"D\xEDas de la semana",daysOfWeekDesc:"Seleccionar d\xEDas espec\xEDficos (para recurrencia semanal)",monthlyRecurrence:"Recurrencia mensual",monthlyRecurrenceDesc:"Elegir c\xF3mo repetir mensualmente",yearlyRecurrence:"Recurrencia anual",yearlyRecurrenceDesc:"Elegir c\xF3mo repetir anualmente",endCondition:"Condici\xF3n de fin",endConditionDesc:"Elegir cu\xE1ndo debe terminar la recurrencia",neverEnds:"Nunca termina",endAfterOccurrences:"Terminar despu\xE9s de {count} ocurrencias",endOnDate:"Terminar en {date}",onDayOfMonth:"En el d\xEDa {day} de cada mes",onTheWeekOfMonth:"En el {week} {day} de cada mes",onDateOfYear:"En {month} {day} cada a\xF1o",onTheWeekOfYear:"En el {week} {day} de {month} cada a\xF1o",frequencies:{daily:"Diario",weekly:"Semanal",monthly:"Mensual",yearly:"Anual"},weekPositions:{first:"primer",second:"segundo",third:"tercer",fourth:"cuarto",last:"\xFAltimo"},weekdays:{monday:"Lunes",tuesday:"Martes",wednesday:"Mi\xE9rcoles",thursday:"Jueves",friday:"Viernes",saturday:"S\xE1bado",sunday:"Domingo"},weekdaysShort:{mon:"Lun",tue:"Mar",wed:"Mi\xE9",thu:"Jue",fri:"Vie",sat:"S\xE1b",sun:"Dom"},cancel:"Cancelar",save:"Guardar"}}}};var uxe={common:{appName:"TaskNotes",new:"\u65B0\u898F",cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",confirm:"\u78BA\u8A8D",close:"\u9589\u3058\u308B",save:"\u4FDD\u5B58",reorder:{confirmLargeTitle:"\u5927\u898F\u6A21\u306A\u4E26\u3079\u66FF\u3048\u3092\u78BA\u8A8D",confirmButton:"\u30CE\u30FC\u30C8\u3092\u4E26\u3079\u66FF\u3048\u308B",confirmLargeMessage:'\u3053\u3053\u3067\u4E26\u3079\u66FF\u3048\u308B\u3068\u3001{scope} \u306E\u6C38\u7D9A\u7684\u306A\u624B\u52D5\u9806\u5E8F\u3092\u4F5C\u308B\u305F\u3081\u306B {count} \u4EF6\u306E\u30CE\u30FC\u30C8\u306E "{field}" \u304C\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002\u540C\u3058\u7BC4\u56F2\u5185\u306E\u975E\u8868\u793A\u307E\u305F\u306F\u7D5E\u308A\u8FBC\u307F\u6E08\u307F\u306E\u30CE\u30FC\u30C8\u3082\u66F4\u65B0\u3055\u308C\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002\u7D9A\u884C\u3057\u307E\u3059\u304B\uFF1F'},language:"\u8A00\u8A9E",systemDefault:"\u30B7\u30B9\u30C6\u30E0\u306E\u65E2\u5B9A",loading:"\u8AAD\u307F\u8FBC\u307F\u4E2D...",languages:{en:"\u82F1\u8A9E",fr:"\u30D5\u30E9\u30F3\u30B9\u8A9E",ru:"\u30ED\u30B7\u30A2\u8A9E",zh:"\u4E2D\u56FD\u8A9E",de:"\u30C9\u30A4\u30C4\u8A9E",es:"\u30B9\u30DA\u30A4\u30F3\u8A9E",ja:"\u65E5\u672C\u8A9E",pt:"\u30DD\u30EB\u30C8\u30AC\u30EB\u8A9E\uFF08\u30D6\u30E9\u30B8\u30EB\uFF09",ko:"\u97D3\u56FD\u8A9E"},weekdays:{sunday:"\u65E5\u66DC\u65E5",monday:"\u6708\u66DC\u65E5",tuesday:"\u706B\u66DC\u65E5",wednesday:"\u6C34\u66DC\u65E5",thursday:"\u6728\u66DC\u65E5",friday:"\u91D1\u66DC\u65E5",saturday:"\u571F\u66DC\u65E5"},months:{january:"1\u6708",february:"2\u6708",march:"3\u6708",april:"4\u6708",may:"5\u6708",june:"6\u6708",july:"7\u6708",august:"8\u6708",september:"9\u6708",october:"10\u6708",november:"11\u6708",december:"12\u6708"}},views:{agenda:{title:"\u30A2\u30B8\u30A7\u30F3\u30C0",today:"\u4ECA\u65E5",overdue:"\u671F\u9650\u5207\u308C",refreshCalendars:"\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u66F4\u65B0",actions:{previousPeriod:"\u524D\u306E\u671F\u9593",nextPeriod:"\u6B21\u306E\u671F\u9593",goToToday:"\u4ECA\u65E5\u306B\u79FB\u52D5",refreshCalendars:"\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u3092\u66F4\u65B0"},loading:"\u30A2\u30B8\u30A7\u30F3\u30C0\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D...",dayToggle:"\u65E5\u306E\u5207\u308A\u66FF\u3048",overdueToggle:"\u671F\u9650\u5207\u308C\u30BB\u30AF\u30B7\u30E7\u30F3\u306E\u5207\u308A\u66FF\u3048",expandAllDays:"\u3059\u3079\u3066\u306E\u65E5\u3092\u5C55\u958B",collapseAllDays:"\u3059\u3079\u3066\u306E\u65E5\u3092\u6298\u308A\u305F\u305F\u307F",notices:{calendarNotReady:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30B5\u30FC\u30D3\u30B9\u306F\u307E\u3060\u6E96\u5099\u3067\u304D\u3066\u3044\u307E\u305B\u3093",calendarRefreshed:"\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F",refreshFailed:"\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F"},empty:{noItemsScheduled:"\u4E88\u5B9A\u3055\u308C\u305F\u30A2\u30A4\u30C6\u30E0\u304C\u3042\u308A\u307E\u305B\u3093",noItemsFound:"\u30A2\u30A4\u30C6\u30E0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F",helpText:"\u671F\u9650\u65E5\u307E\u305F\u306F\u4E88\u5B9A\u65E5\u306E\u3042\u308B\u30BF\u30B9\u30AF\u3092\u4F5C\u6210\u3059\u308B\u304B\u3001\u30CE\u30FC\u30C8\u3092\u8FFD\u52A0\u3057\u3066\u3053\u3053\u306B\u8868\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},contextMenu:{showOverdueSection:"\u671F\u9650\u5207\u308C\u30BB\u30AF\u30B7\u30E7\u30F3\u3092\u8868\u793A",showNotes:"\u30CE\u30FC\u30C8\u3092\u8868\u793A",calendarSubscriptions:"\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD"},periods:{thisWeek:"\u4ECA\u9031"},tipPrefix:"\u30D2\u30F3\u30C8\uFF1A"},taskList:{title:"\u30BF\u30B9\u30AF",expandAllGroups:"\u3059\u3079\u3066\u306E\u30B0\u30EB\u30FC\u30D7\u3092\u5C55\u958B",collapseAllGroups:"\u3059\u3079\u3066\u306E\u30B0\u30EB\u30FC\u30D7\u3092\u6298\u308A\u305F\u305F\u307F",noTasksFound:"\u9078\u629E\u3055\u308C\u305F\u30D5\u30A3\u30EB\u30BF\u30FC\u306B\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002",reorder:{scope:{ungrouped:"\u3053\u306E\u672A\u30B0\u30EB\u30FC\u30D7\u5316\u30EA\u30B9\u30C8",group:'\u30B0\u30EB\u30FC\u30D7 "{group}"'}},errors:{formulaGroupingReadOnly:"\u6570\u5F0F\u30D9\u30FC\u30B9\u306E\u30B0\u30EB\u30FC\u30D7\u3067\u306F\u30BF\u30B9\u30AF\u3092\u4E26\u3079\u66FF\u3048\u3067\u304D\u307E\u305B\u3093\u3002\u6570\u5F0F\u306E\u5024\u306F\u8A08\u7B97\u7D50\u679C\u306E\u305F\u3081\u3001\u76F4\u63A5\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002"}},notes:{title:"\u30CE\u30FC\u30C8",refreshButton:"\u66F4\u65B0",refreshingButton:"\u66F4\u65B0\u4E2D...",notices:{indexingDisabled:"\u30CE\u30FC\u30C8\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u4F5C\u6210\u304C\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059"},empty:{noNotesFound:"\u30CE\u30FC\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F",helpText:"\u9078\u629E\u3055\u308C\u305F\u65E5\u4ED8\u306E\u30CE\u30FC\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u30DF\u30CB\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC\u3067\u5225\u306E\u65E5\u4ED8\u3092\u9078\u629E\u3059\u308B\u304B\u3001\u30CE\u30FC\u30C8\u3092\u4F5C\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},loading:"\u30CE\u30FC\u30C8\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D...",refreshButtonAriaLabel:"\u30CE\u30FC\u30C8\u30EA\u30B9\u30C8\u3092\u66F4\u65B0"},miniCalendar:{title:"\u30DF\u30CB\u30AB\u30EC\u30F3\u30C0\u30FC",contextMenu:{openDailyNote:"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u3092\u958B\u304F",openWeeklyNote:"\u30A6\u30A3\u30FC\u30AF\u30EA\u30FC\u30CE\u30FC\u30C8\u3092\u958B\u304F"}},advancedCalendar:{title:"\u30AB\u30EC\u30F3\u30C0\u30FC",filters:{showFilters:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u8868\u793A",hideFilters:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u975E\u8868\u793A"},viewOptions:{calendarSubscriptions:"\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD",timeEntries:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA",timeblocks:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF",scheduledDates:"\u4E88\u5B9A\u65E5",dueDates:"\u671F\u9650\u65E5",allDaySlot:"\u7D42\u65E5\u30B9\u30ED\u30C3\u30C8",scheduledTasks:"\u4E88\u5B9A\u30BF\u30B9\u30AF",recurringTasks:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF"},buttons:{refresh:"\u66F4\u65B0",refreshHint:"\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u3092\u66F4\u65B0"},notices:{icsServiceNotAvailable:"ICS\u8CFC\u8AAD\u30B5\u30FC\u30D3\u30B9\u304C\u5229\u7528\u3067\u304D\u307E\u305B\u3093",calendarRefreshedAll:"\u3059\u3079\u3066\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u304C\u6B63\u5E38\u306B\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F",refreshFailed:"\u4E00\u90E8\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F",timeblockSpecificTime:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306B\u306F\u5177\u4F53\u7684\u306A\u6642\u9593\u304C\u5FC5\u8981\u3067\u3059\u3002\u9031\u8868\u793A\u307E\u305F\u306F\u65E5\u8868\u793A\u3067\u6642\u9593\u7BC4\u56F2\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",timeblockMoved:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u300C{title}\u300D\u3092{date}\u306B\u79FB\u52D5\u3057\u307E\u3057\u305F",timeblockUpdated:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u300C{title}\u300D\u306E\u6642\u9593\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F",timeblockMoveFailed:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306E\u79FB\u52D5\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",timeblockResized:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u300C{title}\u300D\u306E\u671F\u9593\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F",timeblockResizeFailed:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306E\u30B5\u30A4\u30BA\u5909\u66F4\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",taskScheduled:"\u30BF\u30B9\u30AF\u300C{title}\u300D\u3092{date}\u306B\u4E88\u5B9A\u3057\u307E\u3057\u305F",scheduleTaskFailed:"\u30BF\u30B9\u30AF\u306E\u4E88\u5B9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F",endTimeAfterStart:"\u7D42\u4E86\u6642\u523B\u306F\u958B\u59CB\u6642\u523B\u3088\u308A\u5F8C\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",timeEntryNotFound:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",timeEntryDeleted:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u3092\u524A\u9664\u3057\u307E\u3057\u305F",deleteTimeEntryFailed:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u306E\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F"},timeEntry:{estimatedSuffix:"\u898B\u7A4D",trackedSuffix:"\u8A18\u9332",recurringPrefix:"\u7E70\u308A\u8FD4\u3057\uFF1A",completedPrefix:"\u5B8C\u4E86\uFF1A",createdPrefix:"\u4F5C\u6210\uFF1A",modifiedPrefix:"\u5909\u66F4\uFF1A",duePrefix:"\u671F\u9650\uFF1A",scheduledPrefix:"\u4E88\u5B9A\uFF1A"},contextMenus:{openTask:"\u30BF\u30B9\u30AF\u3092\u958B\u304F",deleteTimeEntry:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u3092\u524A\u9664",deleteTimeEntryTitle:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u3092\u524A\u9664",deleteTimeEntryConfirm:"\u3053\u306E\u6642\u9593\u30A8\u30F3\u30C8\u30EA{duration}\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F\u3053\u306E\u64CD\u4F5C\u306F\u5143\u306B\u623B\u305B\u307E\u305B\u3093\u3002",deleteButton:"\u524A\u9664",cancelButton:"\u30AD\u30E3\u30F3\u30BB\u30EB"}},basesCalendar:{title:"\u30D9\u30FC\u30B9\u30AB\u30EC\u30F3\u30C0\u30FC",today:"\u4ECA\u65E5",buttonText:{month:"\u6708",week:"\u9031",day:"\u65E5",year:"\u5E74",list:"\u4E00\u89A7",customDays:"{count}\u65E5",listDays:"{count}\u65E5\u4E00\u89A7",refresh:"\u66F4\u65B0"},hints:{refresh:"\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u3092\u66F4\u65B0",today:"\u4ECA\u65E5\u306B\u79FB\u52D5",prev:"\u524D\u3078",next:"\u6B21\u3078",month:"\u6708\u8868\u793A",week:"\u9031\u8868\u793A",day:"\u65E5\u8868\u793A",year:"\u5E74\u8868\u793A",list:"\u4E00\u89A7\u8868\u793A",customDays:"{count}\u65E5\u8868\u793A"},settings:{groups:{dateNavigation:"\u65E5\u4ED8\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3",events:"\u30A4\u30D9\u30F3\u30C8",layout:"\u30EC\u30A4\u30A2\u30A6\u30C8",view:"\u30D3\u30E5\u30FC",display:"\u8868\u793A",timeGrid:"\u6642\u9593\u30B0\u30EA\u30C3\u30C9",eventLayout:"\u30A4\u30D9\u30F3\u30C8\u914D\u7F6E",propertyBasedEvents:"\u30D7\u30ED\u30D1\u30C6\u30A3\u30D9\u30FC\u30B9\u306E\u30A4\u30D9\u30F3\u30C8",calendarSubscriptions:"\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD",googleCalendars:"Google \u30AB\u30EC\u30F3\u30C0\u30FC",microsoftCalendars:"Microsoft \u30AB\u30EC\u30F3\u30C0\u30FC"},dateNavigation:{navigateToDate:"\u65E5\u4ED8\u306B\u79FB\u52D5",navigateToDatePlaceholder:"YYYY-MM-DD\uFF08\u4F8B\uFF1A2025-01-15\uFF09- \u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u4F7F\u7528\u3059\u308B\u5834\u5408\u306F\u7A7A\u306E\u307E\u307E\u306B\u3059\u308B",navigateToDateFromProperty:"\u30D7\u30ED\u30D1\u30C6\u30A3\u304B\u3089\u65E5\u4ED8\u306B\u79FB\u52D5",navigateToDateFromPropertyPlaceholder:"\u65E5\u4ED8\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u9078\u629E\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09",propertyNavigationStrategy:"\u30D7\u30ED\u30D1\u30C6\u30A3\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u6226\u7565",createDailyNotesFromDateLinks:"\u65E5\u4ED8\u30EA\u30F3\u30AF\u304B\u3089\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u3092\u4F5C\u6210",strategies:{first:"\u6700\u521D\u306E\u7D50\u679C",earliest:"\u6700\u3082\u53E4\u3044\u65E5\u4ED8",latest:"\u6700\u65B0\u306E\u65E5\u4ED8"}},events:{showScheduledTasks:"\u4E88\u5B9A\u3055\u308C\u305F\u30BF\u30B9\u30AF\u3092\u8868\u793A",showDueTasks:"\u671F\u9650\u306E\u3042\u308B\u30BF\u30B9\u30AF\u3092\u8868\u793A",showOverdueOnToday:"\u671F\u9650\u5207\u308C\u30BF\u30B9\u30AF\u3092\u4ECA\u65E5\u306B\u8868\u793A",showRecurringTasks:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u3092\u8868\u793A",showTimeEntries:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u3092\u8868\u793A",showTimeblocks:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u3092\u8868\u793A",showPropertyBasedEvents:"\u30D7\u30ED\u30D1\u30C6\u30A3\u30D9\u30FC\u30B9\u306E\u30A4\u30D9\u30F3\u30C8\u3092\u8868\u793A",showCompletedRecurringInstances:"\u5B8C\u4E86\u3057\u305F\u7E70\u308A\u8FD4\u3057\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u8868\u793A",showSkippedRecurringInstances:"\u30B9\u30AD\u30C3\u30D7\u3057\u305F\u7E70\u308A\u8FD4\u3057\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u8868\u793A"},layout:{calendarView:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC",customDayCount:"\u30AB\u30B9\u30BF\u30E0\u65E5\u6570",listDayCount:"\u4E00\u89A7\u8868\u793A\u65E5\u6570",dayStartTime:"1\u65E5\u306E\u958B\u59CB\u6642\u523B",dayStartTimePlaceholder:"HH:mm:ss\uFF08\u4F8B\uFF1A08:00:00\uFF09",dayEndTime:"1\u65E5\u306E\u7D42\u4E86\u6642\u523B",dayEndTimePlaceholder:"HH:mm:ss\uFF08\u4F8B\uFF1A20:00:00\uFF09",timeSlotDuration:"\u30BF\u30A4\u30E0\u30B9\u30ED\u30C3\u30C8\u671F\u9593",timeSlotDurationPlaceholder:"HH:mm:ss\uFF08\u4F8B\uFF1A00:30:00\uFF09",dragDropResolution:"\u30C9\u30E9\u30C3\u30B0/\u30C9\u30ED\u30C3\u30D7\u9593\u9694",dragDropResolutionPlaceholder:"HH:mm:ss\uFF08\u4F8B\uFF1A00:05:00\uFF09",weekStartsOn:"\u9031\u306E\u958B\u59CB\u66DC\u65E5",showWeekNumbers:"\u9031\u756A\u53F7\u3092\u8868\u793A",showNowIndicator:"\u73FE\u5728\u306E\u6642\u523B\u30A4\u30F3\u30B8\u30B1\u30FC\u30BF\u3092\u8868\u793A",showWeekends:"\u9031\u672B\u3092\u8868\u793A",showAllDaySlot:"\u7D42\u65E5\u30B9\u30ED\u30C3\u30C8\u3092\u8868\u793A",showTimeGrid:"\u6642\u9593\u30B0\u30EA\u30C3\u30C9\u3092\u8868\u793A",showTodayHighlight:"\u4ECA\u65E5\u3092\u30CF\u30A4\u30E9\u30A4\u30C8",todayColumnWidthMultiplier:"\u4ECA\u65E5\u5217\u306E\u5E45\u500D\u7387",showSelectionPreview:"\u9078\u629E\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u8868\u793A",timeFormat:"\u6642\u523B\u5F62\u5F0F",timeFormat12:"12\u6642\u9593\u5236\uFF08AM/PM\uFF09",timeFormat24:"24\u6642\u9593\u5236",initialScrollTime:"\u521D\u671F\u30B9\u30AF\u30ED\u30FC\u30EB\u6642\u523B",initialScrollTimePlaceholder:"HH:mm:ss\uFF08\u4F8B\uFF1A08:00:00\uFF09",minimumEventHeight:"\u6700\u5C0F\u30A4\u30D9\u30F3\u30C8\u9AD8\u3055\uFF08px\uFF09",slotEventOverlap:"\u30A4\u30D9\u30F3\u30C8\u306E\u91CD\u306A\u308A\u3092\u8A31\u53EF",enableSearch:"\u691C\u7D22\u30DC\u30C3\u30AF\u30B9\u3092\u6709\u52B9\u5316",eventMaxStack:"\u6700\u5927\u30B9\u30BF\u30C3\u30AF\u30A4\u30D9\u30F3\u30C8\u6570\uFF08\u9031/\u65E5\u8868\u793A\u30010 = \u7121\u5236\u9650\uFF09",dayMaxEvents:"1\u65E5\u3042\u305F\u308A\u306E\u6700\u5927\u30A4\u30D9\u30F3\u30C8\u6570\uFF08\u6708\u8868\u793A\u30010 = \u81EA\u52D5\uFF09",dayMaxEventRows:"1\u65E5\u3042\u305F\u308A\u306E\u6700\u5927\u30A4\u30D9\u30F3\u30C8\u884C\u6570\uFF08\u6708\u8868\u793A\u30010 = \u7121\u5236\u9650\uFF09",spanScheduledToDue:"\u4E88\u5B9A\u65E5\u304B\u3089\u671F\u65E5\u307E\u3067\u30BF\u30B9\u30AF\u3092\u5EF6\u9577\u8868\u793A",heightMode:"\u9AD8\u3055\u30E2\u30FC\u30C9",heightModeFill:"\u30B3\u30F3\u30C6\u30CA\u3092\u57CB\u3081\u308B",heightModeAuto:"\u81EA\u52D5\u9AD8\u3055"},propertyBasedEvents:{startDateProperty:"\u958B\u59CB\u65E5\u30D7\u30ED\u30D1\u30C6\u30A3",startDatePropertyPlaceholder:"\u958B\u59CB\u65E5\u6642\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u9078\u629E",endDateProperty:"\u7D42\u4E86\u65E5\u30D7\u30ED\u30D1\u30C6\u30A3\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09",endDatePropertyPlaceholder:"\u7D42\u4E86\u65E5\u6642\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u9078\u629E",titleProperty:"\u30BF\u30A4\u30C8\u30EB\u30D7\u30ED\u30D1\u30C6\u30A3\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09",titlePropertyPlaceholder:"\u30A4\u30D9\u30F3\u30C8\u30BF\u30A4\u30C8\u30EB\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u9078\u629E"}},notices:{noDailyNoteForDate:"\u3053\u306E\u65E5\u4ED8\u306E\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306F\u3042\u308A\u307E\u305B\u3093\u3002"},errors:{failedToInitialize:"\u30AB\u30EC\u30F3\u30C0\u30FC\u306E\u521D\u671F\u5316\u306B\u5931\u6557\u3057\u307E\u3057\u305F"}},kanban:{title:"\u30AB\u30F3\u30D0\u30F3",newTask:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF",addCard:"+ \u30AB\u30FC\u30C9\u3092\u8FFD\u52A0",noTasks:"\u30BF\u30B9\u30AF\u306A\u3057",uncategorized:"\u672A\u5206\u985E",noProject:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306A\u3057",reorder:{scope:{column:'\u5217 "{group}"',columnInSwimlane:'\u30B9\u30A4\u30E0\u30EC\u30FC\u30F3 "{swimlane}" \u306E\u5217 "{group}"'}},notices:{loadFailed:"\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",movedTask:'\u30BF\u30B9\u30AF\u3092"{0}"\u306B\u79FB\u52D5\u3057\u307E\u3057\u305F'},errors:{loadingBoard:"\u30DC\u30FC\u30C9\u306E\u8AAD\u307F\u8FBC\u307F\u30A8\u30E9\u30FC\u3002",noGroupBy:"\u30AB\u30F3\u30D0\u30F3\u30D3\u30E5\u30FC\u306B\u306F\u300C\u30B0\u30EB\u30FC\u30D7\u5316\u300D\u30D7\u30ED\u30D1\u30C6\u30A3\u306E\u8A2D\u5B9A\u304C\u5FC5\u8981\u3067\u3059\u3002\u300C\u4E26\u3073\u66FF\u3048\u300D\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3001\u300C\u30B0\u30EB\u30FC\u30D7\u5316\u300D\u3067\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",formulaGroupingReadOnly:"\u6570\u5F0F\u30D9\u30FC\u30B9\u306E\u5217\u9593\u3067\u30BF\u30B9\u30AF\u3092\u79FB\u52D5\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\u6570\u5F0F\u306E\u5024\u306F\u8A08\u7B97\u3055\u308C\u308B\u305F\u3081\u3001\u76F4\u63A5\u5909\u66F4\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002",formulaSwimlaneReadOnly:"\u6570\u5F0F\u30D9\u30FC\u30B9\u306E\u30B9\u30A4\u30E0\u30EC\u30FC\u30F3\u9593\u3067\u30BF\u30B9\u30AF\u3092\u79FB\u52D5\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\u6570\u5F0F\u306E\u5024\u306F\u8A08\u7B97\u3055\u308C\u308B\u305F\u3081\u3001\u76F4\u63A5\u5909\u66F4\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002"},columnTitle:"\u7121\u984C"},pomodoro:{title:"\u30DD\u30E2\u30C9\u30FC\u30ED",status:{focus:"\u30D5\u30A9\u30FC\u30AB\u30B9",ready:"\u958B\u59CB\u6E96\u5099\u5B8C\u4E86",paused:"\u4E00\u6642\u505C\u6B62",working:"\u4F5C\u696D\u4E2D",shortBreak:"\u77ED\u3044\u4F11\u61A9",longBreak:"\u9577\u3044\u4F11\u61A9",breakPrompt:"\u7D20\u6674\u3089\u3057\u3044\u4ED5\u4E8B\u3067\u3059\uFF01{length}\u4F11\u61A9\u306E\u6642\u9593\u3067\u3059",breakLength:{short:"\u77ED\u3044",long:"\u9577\u3044"},breakComplete:"\u4F11\u61A9\u5B8C\u4E86\uFF01\u6B21\u306E\u30DD\u30E2\u30C9\u30FC\u30ED\u306E\u6E96\u5099\u306F\u3067\u304D\u307E\u3057\u305F\u304B\uFF1F"},buttons:{start:"\u958B\u59CB",pause:"\u4E00\u6642\u505C\u6B62",stop:"\u505C\u6B62",resume:"\u518D\u958B",startShortBreak:"\u77ED\u3044\u4F11\u61A9\u3092\u958B\u59CB",startLongBreak:"\u9577\u3044\u4F11\u61A9\u3092\u958B\u59CB",skipBreak:"\u4F11\u61A9\u3092\u30B9\u30AD\u30C3\u30D7",chooseTask:"\u30BF\u30B9\u30AF\u3092\u9078\u629E...",changeTask:"\u30BF\u30B9\u30AF\u3092\u5909\u66F4...",clearTask:"\u30BF\u30B9\u30AF\u3092\u30AF\u30EA\u30A2",selectDifferentTask:"\u5225\u306E\u30BF\u30B9\u30AF\u3092\u9078\u629E",startFocus:"\u30D5\u30A9\u30FC\u30AB\u30B9\u3092\u958B\u59CB",addMinute:"1\u5206\u8FFD\u52A0",subtractMinute:"1\u5206\u6E1B\u3089\u3059"},notices:{noTasks:"\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u3066\u3044\u306A\u3044\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u6700\u521D\u306B\u30BF\u30B9\u30AF\u3092\u4F5C\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002",loadFailed:"\u30BF\u30B9\u30AF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",invalidDuration:"10\u300110:30\u30011:30:00 \u306E\u3088\u3046\u306A\u6642\u9593\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},statsLabel:"\u4ECA\u65E5\u5B8C\u4E86",meta:{ready:"{time} \u4E88\u5B9A \xB7 \u4ECA\u65E5 {count} \u5B8C\u4E86",running:"\u6B8B\u308A {time} \xB7 {endTime} \u306B\u7D42\u4E86",paused:"{type} \u4E00\u6642\u505C\u6B62\u4E2D \xB7 \u6B8B\u308A {time}",breakReady:"{type} \u6E96\u5099\u5B8C\u4E86 \xB7 {time} \u4E88\u5B9A"},timer:{editLabel:"\u30BF\u30A4\u30DE\u30FC\u6642\u9593\u3092\u7DE8\u96C6",inputLabel:"\u30BF\u30A4\u30DE\u30FC\u6642\u9593"}},pomodoroStats:{title:"\u30DD\u30E2\u30C9\u30FC\u30ED\u7D71\u8A08",heading:"\u30DD\u30E2\u30C9\u30FC\u30ED\u7D71\u8A08",refresh:"\u66F4\u65B0",sections:{overview:"\u6982\u8981",today:"\u4ECA\u65E5",week:"\u4ECA\u9031",allTime:"\u5168\u671F\u9593",recent:"\u6700\u8FD1\u306E\u30BB\u30C3\u30B7\u30E7\u30F3"},overviewCards:{todayPomos:{label:"\u4ECA\u65E5\u306E\u30DD\u30E2",change:{more:"\u6628\u65E5\u3088\u308A{count}\u591A\u3044",less:"\u6628\u65E5\u3088\u308A{count}\u5C11\u306A\u3044"}},totalPomos:{label:"\u7DCF\u30DD\u30E2\u6570"},todayFocus:{label:"\u4ECA\u65E5\u306E\u30D5\u30A9\u30FC\u30AB\u30B9",change:{more:"\u6628\u65E5\u3088\u308A{duration}\u591A\u3044",less:"\u6628\u65E5\u3088\u308A{duration}\u5C11\u306A\u3044"}},totalFocus:{label:"\u7DCF\u30D5\u30A9\u30FC\u30AB\u30B9\u6642\u9593"}},stats:{pomodoros:"\u30DD\u30E2\u30C9\u30FC\u30ED",streak:"\u9023\u7D9A\u8A18\u9332",minutes:"\u5206",average:"\u5E73\u5747\u9577\u3055",completion:"\u5B8C\u4E86"},recents:{empty:"\u307E\u3060\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u8A18\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093",duration:"{minutes}\u5206",status:{completed:"\u5B8C\u4E86",interrupted:"\u4E2D\u65AD"},delete:"\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u524A\u9664",deleteAria:"Pomodoro\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u524A\u9664",deleteConfirmTitle:"Pomodoro\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",deleteConfirmMessage:"\u3053\u308C\u306B\u3088\u308APomodoro\u5C65\u6B74\u304B\u3089\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u524A\u9664\u3055\u308C\u307E\u3059\u3002\u65E2\u5B58\u306E\u30BF\u30B9\u30AF\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u306F\u5909\u66F4\u3055\u308C\u307E\u305B\u3093\u3002",deleteConfirmButton:"\u524A\u9664",deleteSuccess:"Pomodoro\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u524A\u9664\u3057\u307E\u3057\u305F",deleteNotFound:"Pomodoro\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F"},basesMigration:{title:"Base\u30D3\u30E5\u30FC\u304C\u5FC5\u8981\u3067\u3059\u304B\uFF1F",description:"Pomodoro Base\u30D3\u30E5\u30FC\u306F\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306Efrontmatter\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u751F\u6210\u3055\u308C\u305FPomodoro\u7D71\u8A08Base\u3067\u3053\u306E\u5C65\u6B74\u3092\u898B\u308B\u306B\u306F\u3001\u8A2D\u5B9A\u3067Pomodoro\u30C7\u30FC\u30BF\u3092\u79FB\u884C\u3057\u3001\u4FDD\u5B58\u5148\u3092\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}},stats:{title:"\u7D71\u8A08",taskProjectStats:"\u30BF\u30B9\u30AF\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7D71\u8A08",sections:{filters:"\u30D5\u30A3\u30EB\u30BF\u30FC",overview:"\u6982\u8981",today:"\u4ECA\u65E5",thisWeek:"\u4ECA\u9031",thisMonth:"\u4ECA\u6708",projectBreakdown:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5185\u8A33",dateRange:"\u65E5\u4ED8\u7BC4\u56F2"},filters:{minTime:"\u6700\u5C0F\u6642\u9593\uFF08\u5206\uFF09",allTasks:"\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF",activeOnly:"\u30A2\u30AF\u30C6\u30A3\u30D6\u306E\u307F",completedOnly:"\u5B8C\u4E86\u306E\u307F"},refreshButton:"\u66F4\u65B0",timeRanges:{allTime:"\u5168\u671F\u9593",last7Days:"\u904E\u53BB7\u65E5\u9593",last30Days:"\u904E\u53BB30\u65E5\u9593",last90Days:"\u904E\u53BB90\u65E5\u9593",customRange:"\u30AB\u30B9\u30BF\u30E0\u7BC4\u56F2"},resetFiltersButton:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u30EA\u30BB\u30C3\u30C8",dateRangeFrom:"\u958B\u59CB",dateRangeTo:"\u7D42\u4E86",noProject:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306A\u3057",cards:{timeTrackedEstimated:"\u8FFD\u8DE1\u6642\u9593 / \u898B\u7A4D\u6642\u9593",totalTasks:"\u7DCF\u30BF\u30B9\u30AF\u6570",completionRate:"\u5B8C\u4E86\u7387",activeProjects:"\u30A2\u30AF\u30C6\u30A3\u30D6\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",avgTimePerTask:"\u30BF\u30B9\u30AF\u3042\u305F\u308A\u306E\u5E73\u5747\u6642\u9593"},labels:{tasks:"\u30BF\u30B9\u30AF",completed:"\u5B8C\u4E86",projects:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8"},noProjectData:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093",notAvailable:"N/A",noTasks:"\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",loading:"\u8AAD\u307F\u8FBC\u307F\u4E2D..."},releaseNotes:{title:"TaskNotes {version} \u306E\u65B0\u6A5F\u80FD",header:"TaskNotes {version} \u306E\u65B0\u6A5F\u80FD",viewAllLink:"GitHub\u3067\u3059\u3079\u3066\u306E\u30EA\u30EA\u30FC\u30B9\u30CE\u30FC\u30C8\u3092\u8868\u793A \u2192",starMessage:"\u3069\u3093\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3082\u672C\u5F53\u306B\u3042\u308A\u304C\u305F\u3044\u3067\u3059\u3002\u4F55\u304B\u9055\u548C\u611F\u304C\u3042\u308C\u3070\u3001GitHub\u3067\u304A\u77E5\u3089\u305B\u304F\u3060\u3055\u3044\u3002TaskNotes\u304C\u5F79\u306B\u7ACB\u3063\u305F\u3089\u3001\u30B9\u30BF\u30FC\u3082\u3054\u691C\u8A0E\u304F\u3060\u3055\u3044\u3002",baseFilesNotice:"> [!info] \u30C7\u30D5\u30A9\u30EB\u30C8\u306E `.base` \u30D5\u30A1\u30A4\u30EB\u306B\u3064\u3044\u3066\n> \u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u751F\u6210\u3055\u308C\u308B `.base` \u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5909\u66F4\u3067\u3001\u65E2\u5B58\u306E `.base` \u30D5\u30A1\u30A4\u30EB\u304C\u4E0A\u66F8\u304D\u3055\u308C\u308B\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u306F\u305D\u306E\u307E\u307E\u4FDD\u6301\u3055\u308C\u307E\u3059\u3002\n> \u6700\u65B0\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u6539\u5584\u3092\u53CD\u6620\u3057\u305F\u3044\u5834\u5408\u306F\u3001**\u8A2D\u5B9A \u2192 TaskNotes \u2192 \u4E00\u822C \u2192 \u30D3\u30E5\u30FC\u3068base\u30D5\u30A1\u30A4\u30EB \u2192 \u30D5\u30A1\u30A4\u30EB\u3092\u66F4\u65B0** \u304B\u3089\u30D9\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u3092\u518D\u751F\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}},settings:{header:{documentation:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8",documentationUrl:"https://tasknotes.dev"},tabs:{general:"\u4E00\u822C",taskProperties:"\u30BF\u30B9\u30AF\u30D7\u30ED\u30D1\u30C6\u30A3",modalFields:"\u30E2\u30FC\u30C0\u30EB\u30D5\u30A3\u30FC\u30EB\u30C9",defaults:"\u30C7\u30D5\u30A9\u30EB\u30C8\u3068\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",appearance:"\u5916\u89B3\u3068UI",features:"\u6A5F\u80FD",integrations:"\u7D71\u5408"},features:{inlineTasks:{header:"\u30A4\u30F3\u30E9\u30A4\u30F3\u30BF\u30B9\u30AF",description:"\u30CE\u30FC\u30C8\u5185\u306E\u30BF\u30B9\u30AF\u30EA\u30F3\u30AF\u3068\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u304B\u3089\u30BF\u30B9\u30AF\u3078\u306E\u5909\u63DB\u306E\u8A2D\u5B9A\u3002"},taskCreation:{header:"\u30BF\u30B9\u30AF\u4F5C\u6210",description:"\u30BF\u30B9\u30AF\u4F5C\u6210\u5F8C\u306E\u52D5\u4F5C\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",openAfterCreate:{name:"\u4F5C\u6210\u5F8C\u306B\u30BF\u30B9\u30AF\u3092\u958B\u304F",description:"\u901A\u5E38\u306E\u65B0\u898F\u30BF\u30B9\u30AF\u4F5C\u6210\u30E2\u30FC\u30C0\u30EB\u3067\u4FDD\u5B58\u5F8C\u306B\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u30CE\u30FC\u30C8\u3092\u958B\u304F\u304B\u3069\u3046\u304B\u3092\u9078\u629E\u3057\u307E\u3059\u3002",options:{none:"\u958B\u304B\u306A\u3044",sameTab:"\u540C\u3058\u30BF\u30D6\u3067\u958B\u304F",newTab:"\u65B0\u3057\u3044\u30BF\u30D6\u3067\u958B\u304F"}}},overlays:{taskLinkToggle:{name:"\u30BF\u30B9\u30AF\u30EA\u30F3\u30AF\u30AA\u30FC\u30D0\u30FC\u30EC\u30A4",description:"\u30BF\u30B9\u30AF\u30EA\u30F3\u30AF\u306B\u30DB\u30D0\u30FC\u3057\u305F\u969B\u306E\u30A4\u30F3\u30BF\u30E9\u30AF\u30C6\u30A3\u30D6\u30AA\u30FC\u30D0\u30FC\u30EC\u30A4\u3092\u8868\u793A"},aliasExclusion:{name:"\u30A8\u30A4\u30EA\u30A2\u30B9\u4ED8\u304D\u30EA\u30F3\u30AF\u3067\u30AA\u30FC\u30D0\u30FC\u30EC\u30A4\u3092\u7121\u52B9\u5316",description:"\u30EA\u30F3\u30AF\u306B\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u30BF\u30B9\u30AF\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A\u3057\u306A\u3044\uFF08\u4F8B: [[\u30BF\u30B9\u30AF|\u30A8\u30A4\u30EA\u30A2\u30B9]]\uFF09\u3002"}},instantConvert:{toggle:{name:"\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u306E\u6A2A\u306B\u5909\u63DB\u30DC\u30BF\u30F3\u3092\u8868\u793A",description:"Markdown\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u3092TaskNotes\u306B\u5909\u63DB\u3059\u308B\u30A4\u30F3\u30E9\u30A4\u30F3\u30DC\u30BF\u30F3\u3092\u8868\u793A\u3059\u308B"},preserveCheckbox:{name:"\u5909\u63DB\u6642\u306B\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u3092\u6B8B\u3059",description:"\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u3092TaskNote\u30EA\u30F3\u30AF\u306B\u5909\u63DB\u3059\u308B\u3068\u304D\u3001\u5143\u306EMarkdown\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u8A18\u53F7\u3092\u6B8B\u3057\u307E\u3059"},folder:{name:"\u30A4\u30F3\u30E9\u30A4\u30F3\u4F5C\u6210\u30BF\u30B9\u30AF\u306E\u30D5\u30A9\u30EB\u30C0",description:"\u30A4\u30F3\u30E9\u30A4\u30F3\u30B3\u30DE\u30F3\u30C9\u307E\u305F\u306F\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u5909\u63DB\u304B\u3089\u4F5C\u6210\u3055\u308C\u308B\u30BF\u30B9\u30AF\u306E\u4F5C\u6210\u5148\u30D5\u30A9\u30EB\u30C0\u3067\u3059\u3002\u7A7A\u306E\u307E\u307E\u306B\u3059\u308B\u3068\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30BF\u30B9\u30AF\u30D5\u30A9\u30EB\u30C0\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u73FE\u5728\u306E\u30CE\u30FC\u30C8\u306E\u30D5\u30A9\u30EB\u30C0\u306B\u306F {{currentNotePath}}\u3001\u73FE\u5728\u306E\u30CE\u30FC\u30C8\u540D\u306E\u30B5\u30D6\u30D5\u30A9\u30EB\u30C0\u306B\u306F {{currentNoteTitle}} \u3092\u4F7F\u7528\u3057\u307E\u3059\u3002"}},nlp:{header:"\u81EA\u7136\u8A00\u8A9E\u51E6\u7406",description:"\u30C6\u30AD\u30B9\u30C8\u5165\u529B\u304B\u3089\u65E5\u4ED8\u3001\u512A\u5148\u5EA6\u3001\u305D\u306E\u4ED6\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u89E3\u6790\u3057\u307E\u3059\u3002",enable:{name:"\u81EA\u7136\u8A00\u8A9E\u30BF\u30B9\u30AF\u5165\u529B\u3092\u6709\u52B9\u306B\u3059\u308B",description:"\u30BF\u30B9\u30AF\u4F5C\u6210\u6642\u306B\u81EA\u7136\u8A00\u8A9E\u304B\u3089\u671F\u9650\u65E5\u3001\u512A\u5148\u5EA6\u3001\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u89E3\u6790"},defaultToScheduled:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u4E88\u5B9A\u306B\u8A2D\u5B9A",description:"NLP\u304C\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306A\u3057\u3067\u65E5\u4ED8\u3092\u691C\u51FA\u3057\u305F\u5834\u5408\u3001\u671F\u9650\u3067\u306F\u306A\u304F\u4E88\u5B9A\u3068\u3057\u3066\u6271\u3046"},language:{name:"NLP\u8A00\u8A9E",description:"\u81EA\u7136\u8A00\u8A9E\u51E6\u7406\u30D1\u30BF\u30FC\u30F3\u3068\u65E5\u4ED8\u89E3\u6790\u306E\u8A00\u8A9E"},statusTrigger:{name:"\u30B9\u30C6\u30FC\u30BF\u30B9\u63D0\u6848\u30C8\u30EA\u30AC\u30FC",description:"\u30B9\u30C6\u30FC\u30BF\u30B9\u63D0\u6848\u3092\u30C8\u30EA\u30AC\u30FC\u3059\u308B\u30C6\u30AD\u30B9\u30C8\uFF08\u7121\u52B9\u306B\u3059\u308B\u306B\u306F\u7A7A\u767D\u306E\u307E\u307E\u306B\u3059\u308B\uFF09"}},pomodoro:{header:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BF\u30A4\u30DE\u30FC",description:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BF\u30A4\u30DE\u30FC\u306E\u4F5C\u696D/\u4F11\u61A9\u9593\u9694\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",workDuration:{name:"\u4F5C\u696D\u6642\u9593",description:"\u4F5C\u696D\u9593\u9694\u306E\u6642\u9593\uFF08\u5206\uFF09"},shortBreak:{name:"\u77ED\u3044\u4F11\u61A9\u6642\u9593",description:"\u77ED\u3044\u4F11\u61A9\u306E\u6642\u9593\uFF08\u5206\uFF09"},longBreak:{name:"\u9577\u3044\u4F11\u61A9\u6642\u9593",description:"\u9577\u3044\u4F11\u61A9\u306E\u6642\u9593\uFF08\u5206\uFF09"},longBreakInterval:{name:"\u9577\u3044\u4F11\u61A9\u9593\u9694",description:"\u9577\u3044\u4F11\u61A9\u524D\u306E\u4F5C\u696D\u30BB\u30C3\u30B7\u30E7\u30F3\u6570"},autoStartBreaks:{name:"\u81EA\u52D5\u4F11\u61A9\u958B\u59CB",description:"\u4F5C\u696D\u30BB\u30C3\u30B7\u30E7\u30F3\u5F8C\u306B\u4F11\u61A9\u30BF\u30A4\u30DE\u30FC\u3092\u81EA\u52D5\u958B\u59CB"},autoStartWork:{name:"\u81EA\u52D5\u4F5C\u696D\u958B\u59CB",description:"\u4F11\u61A9\u5F8C\u306B\u4F5C\u696D\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u81EA\u52D5\u958B\u59CB"},notifications:{name:"\u30DD\u30E2\u30C9\u30FC\u30ED\u901A\u77E5",description:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BB\u30C3\u30B7\u30E7\u30F3\u7D42\u4E86\u6642\u306B\u901A\u77E5\u3092\u8868\u793A"},mobileSidebar:{name:"\u30E2\u30D0\u30A4\u30EB\u30B5\u30A4\u30C9\u30D0\u30FC",description:"\u30E2\u30D0\u30A4\u30EB\u30C7\u30D0\u30A4\u30B9\u3067\u30DD\u30E2\u30C9\u30FC\u30ED\u30BF\u30A4\u30DE\u30FC\u3092\u958B\u304F\u5834\u6240",tab:"\u30CE\u30FC\u30C8\u30D1\u30CD\u30EB",left:"\u5DE6\u30B5\u30A4\u30C9\u30D0\u30FC",right:"\u53F3\u30B5\u30A4\u30C9\u30D0\u30FC"},statusBar:{name:"\u30B9\u30C6\u30FC\u30BF\u30B9\u30D0\u30FC\u306BPomodoro\u3092\u8868\u793A",description:"Obsidian\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u30D0\u30FC\u306B\u30A2\u30AF\u30C6\u30A3\u30D6\u306APomodoro\u30AB\u30A6\u30F3\u30C8\u30C0\u30A6\u30F3\u3092\u8868\u793A"}},uiLanguage:{header:"\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u8A00\u8A9E",description:"TaskNotes\u306E\u30E1\u30CB\u30E5\u30FC\u3001\u901A\u77E5\u3001\u30D3\u30E5\u30FC\u306E\u8A00\u8A9E\u3092\u5909\u66F4\u3057\u307E\u3059\u3002",dropdown:{name:"UI\u8A00\u8A9E",description:"TaskNotes\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u30C6\u30AD\u30B9\u30C8\u306B\u4F7F\u7528\u3059\u308B\u8A00\u8A9E\u3092\u9078\u629E"}},pomodoroSound:{enabledName:"\u30B5\u30A6\u30F3\u30C9\u6709\u52B9",enabledDesc:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BB\u30C3\u30B7\u30E7\u30F3\u7D42\u4E86\u6642\u306B\u30B5\u30A6\u30F3\u30C9\u3092\u518D\u751F",volumeName:"\u30B5\u30A6\u30F3\u30C9\u97F3\u91CF",volumeDesc:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30B5\u30A6\u30F3\u30C9\u306E\u97F3\u91CF\uFF080-100\uFF09"},dataStorage:{name:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30C7\u30FC\u30BF\u30B9\u30C8\u30EC\u30FC\u30B8",description:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BB\u30C3\u30B7\u30E7\u30F3\u30C7\u30FC\u30BF\u306E\u4FDD\u5B58\u5834\u6240\u3068\u7BA1\u7406\u65B9\u6CD5\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",dailyNotes:"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8",pluginData:"\u30D7\u30E9\u30B0\u30A4\u30F3\u30C7\u30FC\u30BF",notices:{locationChanged:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30B9\u30C8\u30EC\u30FC\u30B8\u5834\u6240\u3092{location}\u306B\u5909\u66F4\u3057\u307E\u3057\u305F"}},notifications:{header:"\u901A\u77E5",description:"\u30BF\u30B9\u30AF\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u901A\u77E5\u3068\u30A2\u30E9\u30FC\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",enableName:"\u901A\u77E5\u3092\u6709\u52B9\u306B\u3059\u308B",enableDesc:"\u30BF\u30B9\u30AF\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u901A\u77E5\u3092\u6709\u52B9\u306B\u3059\u308B",typeName:"\u901A\u77E5\u30BF\u30A4\u30D7",typeDesc:"\u8868\u793A\u3059\u308B\u901A\u77E5\u306E\u30BF\u30A4\u30D7",systemLabel:"\u30B7\u30B9\u30C6\u30E0\u901A\u77E5",inAppLabel:"\u30A2\u30D7\u30EA\u5185\u901A\u77E5",soundEnabledName:"\u901A\u77E5\u97F3",soundEnabledDesc:"\u30BF\u30B9\u30AF\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u767A\u706B\u6642\u306B\u97F3\u3092\u518D\u751F",soundVolumeName:"\u97F3\u91CF",soundVolumeDesc:"\u30BF\u30B9\u30AF\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u97F3\u306E\u97F3\u91CF (0-100)",soundPreviewName:"\u901A\u77E5\u97F3\u3092\u30D7\u30EC\u30D3\u30E5\u30FC",soundPreviewDesc:"\u8A2D\u5B9A\u3055\u308C\u305F\u30BF\u30B9\u30AF\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u97F3\u3092\u518D\u751F",soundPreviewButton:"\u30D7\u30EC\u30D3\u30E5\u30FC",testReminderName:"\u30C6\u30B9\u30C8\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u9001\u4FE1",testReminderDesc:"\u73FE\u5728\u306E\u901A\u77E5\u30BF\u30A4\u30D7\u3068\u30B5\u30A6\u30F3\u30C9\u8A2D\u5B9A\u3067\u30C6\u30B9\u30C8\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u9001\u4FE1\u3057\u307E\u3059\u3002",testReminderButton:"\u30C6\u30B9\u30C8\u3092\u9001\u4FE1"},overdue:{hideCompletedName:"\u671F\u9650\u5207\u308C\u304B\u3089\u5B8C\u4E86\u30BF\u30B9\u30AF\u3092\u975E\u8868\u793A",hideCompletedDesc:"\u671F\u9650\u5207\u308C\u30BF\u30B9\u30AF\u8A08\u7B97\u304B\u3089\u5B8C\u4E86\u30BF\u30B9\u30AF\u3092\u9664\u5916"},indexing:{disableName:"\u30CE\u30FC\u30C8\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u4F5C\u6210\u3092\u7121\u52B9\u306B\u3059\u308B",disableDesc:"\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u5411\u4E0A\u306E\u305F\u3081\u30CE\u30FC\u30C8\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u81EA\u52D5\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u4F5C\u6210\u3092\u7121\u52B9\u306B\u3059\u308B"},suggestions:{debounceName:"\u63D0\u6848\u30C7\u30D0\u30A6\u30F3\u30B9",debounceDesc:"\u63D0\u6848\u3092\u8868\u793A\u3059\u308B\u524D\u306E\u9045\u5EF6\uFF08\u30DF\u30EA\u79D2\uFF09"},timeTracking:{autoStopName:"\u6642\u9593\u8FFD\u8DE1\u306E\u81EA\u52D5\u505C\u6B62",autoStopDesc:"\u30BF\u30B9\u30AF\u304C\u5B8C\u4E86\u3068\u30DE\u30FC\u30AF\u3055\u308C\u305F\u3068\u304D\u306B\u6642\u9593\u8FFD\u8DE1\u3092\u81EA\u52D5\u505C\u6B62",stopNotificationName:"\u6642\u9593\u8FFD\u8DE1\u505C\u6B62\u901A\u77E5",stopNotificationDesc:"\u6642\u9593\u8FFD\u8DE1\u304C\u81EA\u52D5\u505C\u6B62\u3055\u308C\u305F\u3068\u304D\u306B\u901A\u77E5\u3092\u8868\u793A"},recurring:{maintainOffsetName:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u3067\u671F\u9650\u65E5\u30AA\u30D5\u30BB\u30C3\u30C8\u3092\u7DAD\u6301",maintainOffsetDesc:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u304C\u5B8C\u4E86\u3057\u305F\u3068\u304D\u306B\u671F\u9650\u65E5\u3068\u4E88\u5B9A\u65E5\u306E\u9593\u306E\u30AA\u30D5\u30BB\u30C3\u30C8\u3092\u4FDD\u6301",resetCheckboxesName:"\u7E70\u308A\u8FD4\u3057\u6642\u306B\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u3092\u30EA\u30BB\u30C3\u30C8",resetCheckboxesDesc:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u304C\u5B8C\u4E86\u3057\u3066\u518D\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB\u3055\u308C\u305F\u3068\u304D\u306B\u3001\u30BF\u30B9\u30AF\u672C\u6587\u306E\u3059\u3079\u3066\u306Emarkdown\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u3092\u30EA\u30BB\u30C3\u30C8"},timeblocking:{header:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AD\u30F3\u30B0",description:"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u3067\u306E\u8EFD\u91CF\u30B9\u30B1\u30B8\u30E5\u30FC\u30EA\u30F3\u30B0\u306E\u305F\u3081\u306E\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u6A5F\u80FD\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC\u3067\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u30A4\u30D9\u30F3\u30C8\u3092\u4F5C\u6210 - \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30E1\u30CB\u30E5\u30FC\u304B\u3089'\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF'\u3092\u9078\u629E\u3057\u307E\u3059\u3002",enableName:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AD\u30F3\u30B0\u3092\u6709\u52B9\u306B\u3059\u308B",enableDesc:"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u3067\u306E\u8EFD\u91CF\u30B9\u30B1\u30B8\u30E5\u30FC\u30EA\u30F3\u30B0\u306E\u305F\u3081\u306E\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u6A5F\u80FD\u3092\u6709\u52B9\u306B\u3059\u308B\u3002\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u30AB\u30EC\u30F3\u30C0\u30FC\u306E\u30C9\u30E9\u30C3\u30B0\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30E1\u30CB\u30E5\u30FC\u306B'\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF'\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002",showBlocksName:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u3092\u8868\u793A",showBlocksDesc:"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u304B\u3089\u306E\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u8868\u793A",defaultColorName:"\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u8272",defaultColorDesc:"\u65B0\u3057\u3044\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u4F5C\u6210\u6642\u306B\u4F7F\u7528\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u8272",usage:"\u4F7F\u7528\u65B9\u6CD5\uFF1A\u30AB\u30EC\u30F3\u30C0\u30FC\u3067\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u30A4\u30D9\u30F3\u30C8\u3092\u4F5C\u6210\u3057\u307E\u3059\u3002\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30E1\u30CB\u30E5\u30FC\u304B\u3089'\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF'\u3092\u9078\u629E\u3057\u307E\u3059\uFF08\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AD\u30F3\u30B0\u304C\u6709\u52B9\u306A\u5834\u5408\u306E\u307F\u8868\u793A\u3055\u308C\u307E\u3059\uFF09\u3002\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u65E2\u5B58\u306E\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u3092\u79FB\u52D5\u3057\u307E\u3059\u3002\u7AEF\u3092\u8ABF\u6574\u3057\u3066\u6642\u9593\u3092\u5909\u66F4\u3057\u307E\u3059\u3002"},performance:{header:"\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u3068\u52D5\u4F5C",description:"\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u3068\u52D5\u4F5C\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002"},timeTrackingSection:{header:"\u6642\u9593\u8FFD\u8DE1",description:"\u81EA\u52D5\u6642\u9593\u8FFD\u8DE1\u306E\u52D5\u4F5C\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002"},recurringSection:{header:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF",description:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u7BA1\u7406\u306E\u52D5\u4F5C\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002"},debugLogging:{header:"\u30C7\u30D0\u30C3\u30B0\u30ED\u30B0",description:"\u30C8\u30E9\u30D6\u30EB\u30B7\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0\u306E\u305F\u3081\u306B\u30C7\u30D0\u30C3\u30B0\u30ED\u30B0\u51FA\u529B\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",enableName:"\u30C7\u30D0\u30C3\u30B0\u30ED\u30B0\u3092\u6709\u52B9\u5316",enableDesc:"\u30C9\u30E9\u30C3\u30B0\u30FB\u30A2\u30F3\u30C9\u30FB\u30C9\u30ED\u30C3\u30D7\u3084\u8868\u793A\u306E\u8A73\u7D30\u306A\u8A3A\u65AD\u60C5\u5831\u3092\u958B\u767A\u8005\u30B3\u30F3\u30BD\u30FC\u30EB\u306B\u8A18\u9332\u3057\u307E\u3059\u3002\u30C8\u30E9\u30D6\u30EB\u30B7\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0\u306B\u5F79\u7ACB\u3061\u307E\u3059\u3002"}},defaults:{header:{basicDefaults:"\u57FA\u672C\u30C7\u30D5\u30A9\u30EB\u30C8",dateDefaults:"\u65E5\u4ED8\u30C7\u30D5\u30A9\u30EB\u30C8",defaultReminders:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC",bodyTemplate:"\u30DC\u30C7\u30A3\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",instantTaskConversion:"\u30A4\u30F3\u30B9\u30BF\u30F3\u30C8\u30BF\u30B9\u30AF\u5909\u63DB"},description:{basicDefaults:"\u30BF\u30B9\u30AF\u4F5C\u6210\u3092\u9AD8\u901F\u5316\u3059\u308B\u305F\u3081\u306B\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",dateDefaults:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u671F\u9650\u65E5\u3068\u4E88\u5B9A\u65E5\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",defaultReminders:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306B\u8FFD\u52A0\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",bodyTemplate:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u4F7F\u7528\u3059\u308B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",instantTaskConversion:"\u30C6\u30AD\u30B9\u30C8\u3092\u30BF\u30B9\u30AF\u306B\u30A4\u30F3\u30B9\u30BF\u30F3\u30C8\u5909\u63DB\u3059\u308B\u969B\u306E\u52D5\u4F5C\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002"},basicDefaults:{defaultStatus:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30B9\u30C6\u30FC\u30BF\u30B9",description:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30B9\u30C6\u30FC\u30BF\u30B9"},defaultPriority:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u512A\u5148\u5EA6",description:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u512A\u5148\u5EA6"},defaultContexts:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",description:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306E\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30EA\u30B9\u30C8\uFF08\u4F8B\uFF1A@home\u3001@work\uFF09",placeholder:"@\u81EA\u5B85, @\u4ED5\u4E8B"},defaultTags:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30BF\u30B0",description:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30BF\u30B0\u306E\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30EA\u30B9\u30C8\uFF08#\u306A\u3057\uFF09",placeholder:"\u91CD\u8981, \u7DCA\u6025"},defaultProjects:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",description:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30EA\u30F3\u30AF",selectButton:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u9078\u629E",selectTooltip:"\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u30EA\u30F3\u30AF\u3059\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30CE\u30FC\u30C8\u3092\u9078\u629E",removeTooltip:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304B\u3089{name}\u3092\u524A\u9664"},useParentNoteForTaskCreation:{name:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u3067\u30A2\u30AF\u30C6\u30A3\u30D6\u30CE\u30FC\u30C8\u3092\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3068\u3057\u3066\u4F7F\u7528",description:"\u30B3\u30DE\u30F3\u30C9\u30D1\u30EC\u30C3\u30C8\u307E\u305F\u306F\u30EA\u30DC\u30F3\u304B\u3089\u30BF\u30B9\u30AF\u4F5C\u6210\u3092\u958B\u304F\u3068\u304D\u3001\u30A2\u30AF\u30C6\u30A3\u30D6\u30CE\u30FC\u30C8\u3092\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3068\u3057\u3066\u81EA\u52D5\u7684\u306B\u30EA\u30F3\u30AF\u3057\u307E\u3059"},useParentNoteAsProject:{name:"\u30A4\u30F3\u30E9\u30A4\u30F3\u4F5C\u6210\u3068\u30A4\u30F3\u30B9\u30BF\u30F3\u30C8\u5909\u63DB\u3067\u89AA\u30CE\u30FC\u30C8\u3092\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3068\u3057\u3066\u4F7F\u7528",description:"\u30A4\u30F3\u30E9\u30A4\u30F3\u30BF\u30B9\u30AF\u4F5C\u6210\u307E\u305F\u306F\u30A4\u30F3\u30B9\u30BF\u30F3\u30C8\u30BF\u30B9\u30AF\u5909\u63DB\u3092\u4F7F\u3046\u3068\u304D\u3001\u5143\u306E\u30CE\u30FC\u30C8\u3092\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3068\u3057\u3066\u81EA\u52D5\u7684\u306B\u30EA\u30F3\u30AF\u3057\u307E\u3059"},useParentHeaderAsProject:{name:"\u30A4\u30F3\u30B9\u30BF\u30F3\u30C8\u5909\u63DB\u6642\u306B\u89AA\u898B\u51FA\u3057\u3092\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3068\u3057\u3066\u4F7F\u7528",description:"\u30A4\u30F3\u30B9\u30BF\u30F3\u30C8\u30BF\u30B9\u30AF\u5909\u63DB\u6642\u306B\u5909\u63DB\u884C\u306E\u4E0A\u306B\u3042\u308B\u6700\u3082\u8FD1\u3044\u898B\u51FA\u3057\u3092\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3068\u3057\u3066\u81EA\u52D5\u7684\u306B\u30EA\u30F3\u30AF"},defaultTimeEstimate:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u6642\u9593\u898B\u7A4D\u3082\u308A",description:"\u30C7\u30D5\u30A9\u30EB\u30C8\u6642\u9593\u898B\u7A4D\u3082\u308A\uFF08\u5206\uFF09\uFF080 = \u30C7\u30D5\u30A9\u30EB\u30C8\u306A\u3057\uFF09",placeholder:"60"},defaultRecurrence:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u7E70\u308A\u8FD4\u3057",description:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u7E70\u308A\u8FD4\u3057\u30D1\u30BF\u30FC\u30F3"}},dateDefaults:{defaultDueDate:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u671F\u9650\u65E5",description:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u671F\u9650\u65E5"},defaultScheduledDate:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u4E88\u5B9A\u65E5",description:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u4E88\u5B9A\u65E5"}},reminders:{addReminder:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u8FFD\u52A0",description:"\u3059\u3079\u3066\u306E\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306B\u8FFD\u52A0\u3055\u308C\u308B\u65B0\u3057\u3044\u30C7\u30D5\u30A9\u30EB\u30C8\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u4F5C\u6210",buttonText:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u8FFD\u52A0"},emptyState:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u8FFD\u52A0\u3057\u3066\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306B\u3064\u3044\u3066\u81EA\u52D5\u7684\u306B\u901A\u77E5\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059\u3002",emptyStateButton:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u8FFD\u52A0",reminderDescription:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u306E\u8AAC\u660E",unnamedReminder:"\u540D\u524D\u306A\u3057\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC",deleteTooltip:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u524A\u9664",fields:{description:"\u8AAC\u660E\uFF1A",type:"\u30BF\u30A4\u30D7\uFF1A",offset:"\u30AA\u30D5\u30BB\u30C3\u30C8\uFF1A",unit:"\u5358\u4F4D\uFF1A",direction:"\u65B9\u5411\uFF1A",relatedTo:"\u95A2\u9023\u5148\uFF1A",date:"\u65E5\u4ED8\uFF1A",time:"\u6642\u9593\uFF1A"},types:{relative:"\u76F8\u5BFE\uFF08\u30BF\u30B9\u30AF\u65E5\u4ED8\u306E\u524D/\u5F8C\uFF09",absolute:"\u7D76\u5BFE\uFF08\u7279\u5B9A\u306E\u65E5\u4ED8/\u6642\u9593\uFF09"},units:{minutes:"\u5206",hours:"\u6642\u9593",days:"\u65E5"},directions:{before:"\u524D",after:"\u5F8C"},relatedTo:{due:"\u671F\u9650\u65E5",scheduled:"\u4E88\u5B9A\u65E5"}},bodyTemplate:{useBodyTemplate:{name:"\u30DC\u30C7\u30A3\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4F7F\u7528",description:"\u30BF\u30B9\u30AF\u30DC\u30C7\u30A3\u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u4F7F\u7528"},bodyTemplateFile:{name:"\u30DC\u30C7\u30A3\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB",description:"\u30BF\u30B9\u30AF\u30DC\u30C7\u30A3\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u30D1\u30B9\u3002{{title}}\u3001{{date}}\u3001{{time}}\u3001{{priority}}\u3001{{status}}\u306A\u3069\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5909\u6570\u3092\u30B5\u30DD\u30FC\u30C8\u3002",placeholder:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8/\u30BF\u30B9\u30AF\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8.md",ariaLabel:"\u30DC\u30C7\u30A3\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u30D1\u30B9"},useOccurrenceBodyTemplate:{name:"\u767A\u751F\u30CE\u30FC\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4F7F\u7528",description:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u306B occurrence_template \u304C\u306A\u3044\u5834\u5408\u3001\u30DE\u30C6\u30EA\u30A2\u30E9\u30A4\u30BA\u3055\u308C\u305F\u767A\u751F\u30CE\u30FC\u30C8\u7528\u306E\u5225\u306E\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4F7F\u7528\u3057\u307E\u3059"},occurrenceBodyTemplateFile:{name:"\u767A\u751F\u30CE\u30FC\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB",description:"\u30DE\u30C6\u30EA\u30A2\u30E9\u30A4\u30BA\u3055\u308C\u305F\u767A\u751F\u30CE\u30FC\u30C8\u7528\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u30D1\u30B9\u3002\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u306E occurrence_template \u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3053\u306E\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\u3088\u308A\u512A\u5148\u3055\u308C\u307E\u3059\u3002",placeholder:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8/\u767A\u751F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8.md",ariaLabel:"\u767A\u751F\u30CE\u30FC\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u30D1\u30B9"},variablesHeader:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5909\u6570\uFF1A",variables:{title:"{{title}} - \u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB",details:"{{details}} - \u30E2\u30FC\u30C0\u30EB\u304B\u3089\u30E6\u30FC\u30B6\u30FC\u63D0\u4F9B\u306E\u8A73\u7D30",date:"{{date}} - \u73FE\u5728\u306E\u65E5\u4ED8\uFF08YYYY-MM-DD\uFF09",time:"{{time}} - \u73FE\u5728\u306E\u6642\u9593\uFF08HH:MM\uFF09",priority:"{{priority}} - \u30BF\u30B9\u30AF\u512A\u5148\u5EA6",status:"{{status}} - \u30BF\u30B9\u30AF\u30B9\u30C6\u30FC\u30BF\u30B9",contexts:"{{contexts}} - \u30BF\u30B9\u30AF\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",tags:"{{tags}} - \u30BF\u30B9\u30AF\u30BF\u30B0",projects:"{{projects}} - \u30BF\u30B9\u30AF\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8"}},instantConversion:{useDefaultsOnInstantConvert:{name:"\u30A4\u30F3\u30B9\u30BF\u30F3\u30C8\u5909\u63DB\u3067\u30BF\u30B9\u30AF\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u4F7F\u7528",description:"\u30C6\u30AD\u30B9\u30C8\u3092\u30BF\u30B9\u30AF\u306B\u30A4\u30F3\u30B9\u30BF\u30F3\u30C8\u5909\u63DB\u3059\u308B\u969B\u306B\u30C7\u30D5\u30A9\u30EB\u30C8\u30BF\u30B9\u30AF\u8A2D\u5B9A\u3092\u9069\u7528"}},options:{noDefault:"\u30C7\u30D5\u30A9\u30EB\u30C8\u306A\u3057",none:"\u306A\u3057",today:"\u4ECA\u65E5",tomorrow:"\u660E\u65E5",nextWeek:"\u6765\u9031",daily:"\u6BCE\u65E5",weekly:"\u6BCE\u9031",monthly:"\u6BCE\u6708",yearly:"\u6BCE\u5E74"}},general:{taskStorage:{header:"\u30BF\u30B9\u30AF\u30B9\u30C8\u30EC\u30FC\u30B8",description:"\u30BF\u30B9\u30AF\u306E\u4FDD\u5B58\u5834\u6240\u3068\u8B58\u5225\u65B9\u6CD5\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",defaultFolder:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30BF\u30B9\u30AF\u30D5\u30A9\u30EB\u30C0\u30FC",description:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u4FDD\u5B58\u5834\u6240\u3067\u3059\u3002{{currentNotePath}}\u3001{{currentNoteTitle}}\u3001{{projectFilePath}} \u306A\u3069\u306E\u30D5\u30A9\u30EB\u30C0\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5909\u6570\u3068\u3001YYYY/MM/DD \u306A\u3069\u306EDaily Notes\u5F62\u5F0F\u306E\u65E5\u4ED8\u30C8\u30FC\u30AF\u30F3\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002"},moveArchived:{name:"\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u305F\u30BF\u30B9\u30AF\u3092\u30D5\u30A9\u30EB\u30C0\u30FC\u306B\u79FB\u52D5",description:"\u30A2\u30FC\u30AB\u30A4\u30D6\u3057\u305F\u30BF\u30B9\u30AF\u3092\u81EA\u52D5\u7684\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u30D5\u30A9\u30EB\u30C0\u30FC\u306B\u79FB\u52D5"},archiveFolder:{name:"\u30A2\u30FC\u30AB\u30A4\u30D6\u30D5\u30A9\u30EB\u30C0\u30FC",description:"\u30A2\u30FC\u30AB\u30A4\u30D6\u6642\u306B\u30BF\u30B9\u30AF\u3092\u79FB\u52D5\u3059\u308B\u30D5\u30A9\u30EB\u30C0\u30FC\u3002{{year}}\u3001{{month}}\u3001{{priority}}\u306A\u3069\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5909\u6570\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002"}},taskIdentification:{header:"\u30BF\u30B9\u30AF\u8B58\u5225",description:"TaskNotes\u304C\u30CE\u30FC\u30C8\u3092\u30BF\u30B9\u30AF\u3068\u3057\u3066\u8B58\u5225\u3059\u308B\u65B9\u6CD5\u3092\u9078\u629E\u3057\u307E\u3059\u3002",identifyBy:{name:"\u30BF\u30B9\u30AF\u306E\u8B58\u5225\u65B9\u6CD5",description:"\u30BF\u30B0\u307E\u305F\u306F\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u30D7\u30ED\u30D1\u30C6\u30A3\u3067\u30BF\u30B9\u30AF\u3092\u8B58\u5225\u3059\u308B\u304B\u3092\u9078\u629E",options:{tag:"\u30BF\u30B0",property:"\u30D7\u30ED\u30D1\u30C6\u30A3"}},taskTag:{name:"\u30BF\u30B9\u30AF\u30BF\u30B0",description:"\u30CE\u30FC\u30C8\u3092\u30BF\u30B9\u30AF\u3068\u3057\u3066\u8B58\u5225\u3059\u308B\u30BF\u30B0\uFF08#\u306A\u3057\uFF09\u3002\u3053\u308C\u3092\u5909\u66F4\u3057\u3066\u3082\u65E2\u5B58\u306E .base \u30D3\u30E5\u30FC\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u306F\u53E4\u3044\u30BF\u30B0\u306E\u307E\u307E\u3067\u3059\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306E Base \u30D5\u30A1\u30A4\u30EB\u3092\u66F4\u65B0\u3059\u308B\u304B\u3001\u305D\u308C\u3089\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u7DE8\u96C6\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},hideIdentifyingTags:{name:"\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u3067\u8B58\u5225\u30BF\u30B0\u3092\u975E\u8868\u793A",description:"\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u30BF\u30B9\u30AF\u8B58\u5225\u30BF\u30B0\u306B\u4E00\u81F4\u3059\u308B\u30BF\u30B0\uFF08'task/project'\u306E\u3088\u3046\u306A\u968E\u5C64\u7684\u4E00\u81F4\u3092\u542B\u3080\uFF09\u304C\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u8868\u793A\u304B\u3089\u975E\u8868\u793A\u306B\u306A\u308A\u307E\u3059"},hideIdentifyingTagsMode:{name:"\u975E\u8868\u793A\u306B\u3059\u308B\u30BF\u30B0\u306E\u7BC4\u56F2",description:"\u8B58\u5225\u30BF\u30B0\u3092\u975E\u8868\u793A\u306B\u3059\u308B\u3068\u304D\u3001\u30CD\u30B9\u30C8\u3057\u305F\u30BF\u30B0\u3082\u975E\u8868\u793A\u306B\u3059\u308B\u304B\u3092\u9078\u629E\u3057\u307E\u3059\u3002",options:{all:"\u30BF\u30B9\u30AF\u30BF\u30B0\u3068\u30CD\u30B9\u30C8\u3057\u305F\u30BF\u30B0",exactOnly:"\u5B8C\u5168\u4E00\u81F4\u306E\u30BF\u30B9\u30AF\u30BF\u30B0\u306E\u307F"}},taskProperty:{name:"\u30BF\u30B9\u30AF\u30D7\u30ED\u30D1\u30C6\u30A3\u540D",description:'\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u30D7\u30ED\u30D1\u30C6\u30A3\u540D\uFF08\u4F8B\uFF1A"category"\uFF09'},taskPropertyValue:{name:"\u30BF\u30B9\u30AF\u30D7\u30ED\u30D1\u30C6\u30A3\u5024",description:'\u30CE\u30FC\u30C8\u3092\u30BF\u30B9\u30AF\u3068\u3057\u3066\u8B58\u5225\u3059\u308B\u5024\uFF08\u4F8B\uFF1A"task"\uFF09'}},folderManagement:{header:"\u30D5\u30A9\u30EB\u30C0\u30FC\u7BA1\u7406",excludedFolders:{name:"\u9664\u5916\u30D5\u30A9\u30EB\u30C0\u30FC",description:"\u30BF\u30B9\u30AF\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u4F5C\u6210\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5019\u88DC\u304B\u3089\u9664\u5916\u3059\u308B\u30D5\u30A9\u30EB\u30C0\u30FC\u306E\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30EA\u30B9\u30C8"}},frontmatter:{header:"Frontmatter",description:"frontmatter\u30D7\u30ED\u30D1\u30C6\u30A3\u3067\u306E\u30EA\u30F3\u30AF\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u65B9\u6CD5\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",useMarkdownLinks:{name:"frontmatter\u3067markdown\u30EA\u30F3\u30AF\u3092\u4F7F\u7528",description:`frontmatter\u30D7\u30ED\u30D1\u30C6\u30A3\u3067wikilink\uFF08[[link]]\uFF09\u306E\u4EE3\u308F\u308A\u306Bmarkdown\u30EA\u30F3\u30AF\uFF08[text](path)\uFF09\u3092\u751F\u6210\u3057\u307E\u3059\u3002
|
||
|
||
\u26A0\uFE0F \u6B63\u3057\u304F\u6A5F\u80FD\u3059\u308B\u306B\u306F'obsidian-frontmatter-markdown-links'\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u5FC5\u8981\u3067\u3059\u3002`}},taskInteraction:{header:"\u30BF\u30B9\u30AF\u30A4\u30F3\u30BF\u30E9\u30AF\u30B7\u30E7\u30F3",description:"\u30BF\u30B9\u30AF\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u969B\u306E\u52D5\u4F5C\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",singleClick:{name:"\u30B7\u30F3\u30B0\u30EB\u30AF\u30EA\u30C3\u30AF\u30A2\u30AF\u30B7\u30E7\u30F3",description:"\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u3092\u30B7\u30F3\u30B0\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u305F\u969B\u306B\u5B9F\u884C\u3059\u308B\u30A2\u30AF\u30B7\u30E7\u30F3"},doubleClick:{name:"\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u30A2\u30AF\u30B7\u30E7\u30F3",description:"\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u3092\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u305F\u969B\u306B\u5B9F\u884C\u3059\u308B\u30A2\u30AF\u30B7\u30E7\u30F3"},actions:{edit:"\u30BF\u30B9\u30AF\u3092\u7DE8\u96C6",openNote:"\u30CE\u30FC\u30C8\u3092\u958B\u304F",none:"\u30A2\u30AF\u30B7\u30E7\u30F3\u306A\u3057"}},releaseNotes:{header:"\u30EA\u30EA\u30FC\u30B9\u30CE\u30FC\u30C8",description:"\u73FE\u5728\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A{version}",showOnUpdate:{name:"\u66F4\u65B0\u5F8C\u306B\u30EA\u30EA\u30FC\u30B9\u30CE\u30FC\u30C8\u3092\u8868\u793A",description:"TaskNotes\u304C\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u66F4\u65B0\u3055\u308C\u305F\u3068\u304D\u306B\u81EA\u52D5\u7684\u306B\u30EA\u30EA\u30FC\u30B9\u30CE\u30FC\u30C8\u3092\u958B\u304F"},checkForUpdates:{name:"\u8D77\u52D5\u6642\u306B\u65B0\u3057\u3044\u30EA\u30EA\u30FC\u30B9\u3092\u78BA\u8A8D",description:"TaskNotes \u306E\u8D77\u52D5\u6642\u306B GitHub \u3092\u4E00\u5EA6\u3060\u3051\u78BA\u8A8D\u3057\u3001\u4E92\u63DB\u6027\u306E\u3042\u308B\u65B0\u3057\u3044\u30EA\u30EA\u30FC\u30B9\u304C\u5229\u7528\u53EF\u80FD\u306A\u5834\u5408\u306B\u901A\u77E5\u3092\u8868\u793A\u3057\u307E\u3059"},viewButton:{name:"\u30EA\u30EA\u30FC\u30B9\u30CE\u30FC\u30C8\u3092\u8868\u793A",description:"TaskNotes\u306E\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u65B0\u6A5F\u80FD\u3092\u78BA\u8A8D\u3059\u308B",buttonText:"\u30EA\u30EA\u30FC\u30B9\u30CE\u30FC\u30C8\u3092\u8868\u793A"}}},taskProperties:{sections:{coreProperties:"\u30B3\u30A2\u30D7\u30ED\u30D1\u30C6\u30A3",corePropertiesDesc:"\u30B9\u30C6\u30FC\u30BF\u30B9\u3068\u512A\u5148\u5EA6\u306F\u3001\u30BF\u30B9\u30AF\u306E\u72B6\u614B\u3068\u91CD\u8981\u5EA6\u3092\u5B9A\u7FA9\u3059\u308B\u30B3\u30A2\u30D7\u30ED\u30D1\u30C6\u30A3\u3067\u3059\u3002",dateProperties:"\u65E5\u4ED8\u30D7\u30ED\u30D1\u30C6\u30A3",datePropertiesDesc:"\u30BF\u30B9\u30AF\u306E\u671F\u9650\u3068\u4E88\u5B9A\u65E5\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",organizationProperties:"\u6574\u7406\u30D7\u30ED\u30D1\u30C6\u30A3",organizationPropertiesDesc:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3001\u30BF\u30B0\u3067\u30BF\u30B9\u30AF\u3092\u6574\u7406\u3057\u307E\u3059\u3002",taskDetails:"\u30BF\u30B9\u30AF\u8A73\u7D30",taskDetailsDesc:"\u6642\u9593\u898B\u7A4D\u3082\u308A\u3001\u7E70\u308A\u8FD4\u3057\u3001\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u306A\u3069\u306E\u8FFD\u52A0\u8A73\u7D30\u3002",metadataProperties:"\u30E1\u30BF\u30C7\u30FC\u30BF\u30D7\u30ED\u30D1\u30C6\u30A3",metadataPropertiesDesc:"\u30BF\u30B9\u30AF\u5C65\u6B74\u3092\u8FFD\u8DE1\u3059\u308B\u305F\u3081\u306E\u30B7\u30B9\u30C6\u30E0\u7BA1\u7406\u30D7\u30ED\u30D1\u30C6\u30A3\u3002",featureProperties:"\u6A5F\u80FD\u30D7\u30ED\u30D1\u30C6\u30A3",featurePropertiesDesc:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BF\u30A4\u30DE\u30FC\u3084\u30AB\u30EC\u30F3\u30C0\u30FC\u540C\u671F\u306A\u3069\u3001\u7279\u5B9A\u306ETaskNotes\u6A5F\u80FD\u3067\u4F7F\u7528\u3055\u308C\u308B\u30D7\u30ED\u30D1\u30C6\u30A3\u3002"},propertyCard:{propertyKey:"\u30D7\u30ED\u30D1\u30C6\u30A3\u30AD\u30FC:",default:"\u30C7\u30D5\u30A9\u30EB\u30C8:",nlpTrigger:"NLP\u30C8\u30EA\u30AC\u30FC:",triggerChar:"\u30C8\u30EA\u30AC\u30FC\u6587\u5B57:",triggerEmpty:"\u30C8\u30EA\u30AC\u30FC\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",triggerTooLong:"\u30C8\u30EA\u30AC\u30FC\u304C\u9577\u3059\u304E\u307E\u3059\uFF08\u6700\u592710\u6587\u5B57\uFF09"},properties:{status:{name:"\u30B9\u30C6\u30FC\u30BF\u30B9",description:"\u30BF\u30B9\u30AF\u306E\u73FE\u5728\u306E\u72B6\u614B\u3092\u8FFD\u8DE1\u3057\u307E\u3059\uFF08\u4F8B\uFF1Atodo\u3001\u9032\u884C\u4E2D\u3001\u5B8C\u4E86\uFF09\u3002\u30B9\u30C6\u30FC\u30BF\u30B9\u306F\u30BF\u30B9\u30AF\u304C\u5B8C\u4E86\u3068\u3057\u3066\u8868\u793A\u3055\u308C\u308B\u304B\u3069\u3046\u304B\u3092\u6C7A\u5B9A\u3057\u3001\u81EA\u52D5\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u30C8\u30EA\u30AC\u30FC\u3067\u304D\u307E\u3059\u3002"},priority:{name:"\u512A\u5148\u5EA6",description:"\u30BF\u30B9\u30AF\u306E\u91CD\u8981\u5EA6\u3092\u793A\u3057\u307E\u3059\u3002\u30BD\u30FC\u30C8\u3068\u30D5\u30A3\u30EB\u30BF\u30EA\u30F3\u30B0\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002Bases\u30D3\u30E5\u30FC\u3067\u306F\u5024\u304C\u30A2\u30EB\u30D5\u30A1\u30D9\u30C3\u30C8\u9806\u306B\u30BD\u30FC\u30C8\u3055\u308C\u308B\u305F\u3081\u30011-\u30012-\u306E\u3088\u3046\u306A\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u3092\u4F7F\u7528\u3057\u3066\u9806\u5E8F\u3092\u5236\u5FA1\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},due:{name:"\u671F\u9650\u65E5",description:"\u30BF\u30B9\u30AF\u3092\u5B8C\u4E86\u3057\u306A\u3051\u308C\u3070\u306A\u3089\u306A\u3044\u7DE0\u3081\u5207\u308A\u3002\u671F\u9650\u3092\u904E\u304E\u305F\u30BF\u30B9\u30AF\u306F\u671F\u9650\u5207\u308C\u3068\u3057\u3066\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u306B\u65E5\u4ED8\u3068\u3057\u3066\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002"},scheduled:{name:"\u4E88\u5B9A\u65E5",description:"\u30BF\u30B9\u30AF\u306B\u53D6\u308A\u7D44\u3080\u4E88\u5B9A\u306E\u65E5\u6642\u3002\u671F\u9650\u65E5\u3068\u306F\u7570\u306A\u308A\u3001\u3053\u308C\u306F\u958B\u59CB\u4E88\u5B9A\u6642\u523B\u3092\u8868\u3057\u307E\u3059\u3002\u30BF\u30B9\u30AF\u306F\u4E88\u5B9A\u65E5\u6642\u306B\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002"},contexts:{name:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",description:"\u30BF\u30B9\u30AF\u3092\u5B9F\u884C\u3067\u304D\u308B\u5834\u6240\u3084\u6761\u4EF6\uFF08\u4F8B\uFF1A@\u81EA\u5B85\u3001@\u30AA\u30D5\u30A3\u30B9\u3001@\u96FB\u8A71\uFF09\u3002\u73FE\u5728\u306E\u72B6\u6CC1\u306B\u5FDC\u3058\u3066\u30BF\u30B9\u30AF\u3092\u30D5\u30A3\u30EB\u30BF\u30EA\u30F3\u30B0\u3059\u308B\u306E\u306B\u4FBF\u5229\u3067\u3059\u3002\u30EA\u30B9\u30C8\u3068\u3057\u3066\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002"},projects:{name:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",description:"\u3053\u306E\u30BF\u30B9\u30AF\u304C\u5C5E\u3059\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30CE\u30FC\u30C8\u3078\u306E\u30EA\u30F3\u30AF\u3002\u30A6\u30A3\u30AD\u30EA\u30F3\u30AF\u3068\u3057\u3066\u4FDD\u5B58\u3055\u308C\u307E\u3059\uFF08\u4F8B\uFF1A[[\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u540D]]\uFF09\u3002\u30BF\u30B9\u30AF\u306F\u8907\u6570\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u6240\u5C5E\u3067\u304D\u307E\u3059\u3002"},tags:{name:"\u30BF\u30B0",description:"\u30BF\u30B9\u30AF\u3092\u5206\u985E\u3059\u308B\u305F\u3081\u306E\u30CD\u30A4\u30C6\u30A3\u30D6Obsidian\u30BF\u30B0\u3002\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u306Etags\u30D7\u30ED\u30D1\u30C6\u30A3\u306B\u4FDD\u5B58\u3055\u308C\u3001Obsidian\u306E\u30BF\u30B0\u6A5F\u80FD\u3068\u9023\u643A\u3057\u307E\u3059\u3002"},timeEstimate:{name:"\u6642\u9593\u898B\u7A4D\u3082\u308A",description:"\u30BF\u30B9\u30AF\u5B8C\u4E86\u307E\u3067\u306E\u63A8\u5B9A\u5206\u6570\u3002\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AD\u30F3\u30B0\u3068\u30EF\u30FC\u30AF\u30ED\u30FC\u30C9\u8A08\u753B\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u3068\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002"},recurrence:{name:"\u7E70\u308A\u8FD4\u3057",description:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u306E\u30D1\u30BF\u30FC\u30F3\uFF08\u6BCE\u65E5\u3001\u6BCE\u9031\u3001\u6BCE\u6708\u3001\u6BCE\u5E74\u3001\u307E\u305F\u306F\u30AB\u30B9\u30BF\u30E0RRULE\uFF09\u3002\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u304C\u5B8C\u4E86\u3059\u308B\u3068\u3001\u4E88\u5B9A\u65E5\u306F\u81EA\u52D5\u7684\u306B\u6B21\u306E\u767A\u751F\u65E5\u306B\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002"},recurrenceAnchor:{name:"\u7E70\u308A\u8FD4\u3057\u30A2\u30F3\u30AB\u30FC",description:"\u6B21\u306E\u767A\u751F\u65E5\u306E\u8A08\u7B97\u65B9\u6CD5\u3092\u5236\u5FA1\u3057\u307E\u3059\uFF1A'scheduled'\u306F\u4E88\u5B9A\u65E5\u3092\u4F7F\u7528\u3001'completion'\u306F\u5B9F\u969B\u306E\u5B8C\u4E86\u65E5\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002"},reminders:{name:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC",description:"\u671F\u9650\u65E5\u307E\u305F\u306F\u4E88\u5B9A\u65E5\u306E\u524D\u306B\u30C8\u30EA\u30AC\u30FC\u3055\u308C\u308B\u901A\u77E5\u3002\u30BF\u30A4\u30DF\u30F3\u30B0\u3068\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u8AAC\u660E\u3092\u542B\u3080\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30EA\u30B9\u30C8\u3068\u3057\u3066\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002"},title:{name:"\u30BF\u30A4\u30C8\u30EB",description:"\u30BF\u30B9\u30AF\u540D\u3002\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u307E\u305F\u306F\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u4FDD\u5B58\u3067\u304D\u307E\u3059\uFF08\u300C\u30BF\u30A4\u30C8\u30EB\u3092\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u4FDD\u5B58\u300D\u304C\u6709\u52B9\u306A\u5834\u5408\uFF09\u3002"},dateCreated:{name:"\u4F5C\u6210\u65E5",description:"\u30BF\u30B9\u30AF\u304C\u6700\u521D\u306B\u4F5C\u6210\u3055\u308C\u305F\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u3002\u81EA\u52D5\u7684\u306B\u8A2D\u5B9A\u3055\u308C\u3001\u4F5C\u6210\u9806\u3067\u306E\u30BD\u30FC\u30C8\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002"},dateModified:{name:"\u66F4\u65B0\u65E5",description:"\u30BF\u30B9\u30AF\u3078\u306E\u6700\u5F8C\u306E\u5909\u66F4\u306E\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u3002\u30BF\u30B9\u30AF\u30D7\u30ED\u30D1\u30C6\u30A3\u304C\u5909\u66F4\u3055\u308C\u308B\u3068\u81EA\u52D5\u7684\u306B\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002"},completedDate:{name:"\u5B8C\u4E86\u65E5",description:"\u30BF\u30B9\u30AF\u304C\u5B8C\u4E86\u3068\u3057\u3066\u30DE\u30FC\u30AF\u3055\u308C\u305F\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u3002\u30B9\u30C6\u30FC\u30BF\u30B9\u304C\u5B8C\u4E86\u72B6\u614B\u306B\u5909\u308F\u308B\u3068\u81EA\u52D5\u7684\u306B\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002"},archiveTag:{name:"\u30A2\u30FC\u30AB\u30A4\u30D6\u30BF\u30B0",description:"\u30A2\u30FC\u30AB\u30A4\u30D6\u6642\u306B\u30BF\u30B9\u30AF\u306B\u8FFD\u52A0\u3055\u308C\u308B\u30BF\u30B0\u3002\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u30BF\u30B9\u30AF\u3092\u8B58\u5225\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u30D5\u30A9\u30EB\u30C0\u3078\u306E\u30D5\u30A1\u30A4\u30EB\u79FB\u52D5\u3092\u30C8\u30EA\u30AC\u30FC\u3067\u304D\u307E\u3059\u3002"},timeEntries:{name:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u30FC",description:"\u3053\u306E\u30BF\u30B9\u30AF\u306E\u6642\u9593\u8FFD\u8DE1\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u8A18\u9332\u3002\u5404\u30A8\u30F3\u30C8\u30EA\u306B\u306F\u958B\u59CB\u3068\u7D42\u4E86\u306E\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002\u5408\u8A08\u6642\u9593\u306E\u8A08\u7B97\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002"},completeInstances:{name:"\u5B8C\u4E86\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9",description:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u306E\u5B8C\u4E86\u5C65\u6B74\u3002\u5404\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u5B8C\u4E86\u3057\u305F\u65E5\u4ED8\u3092\u4FDD\u5B58\u3057\u3066\u3001\u91CD\u8907\u5B8C\u4E86\u3092\u9632\u304E\u307E\u3059\u3002"},skippedInstances:{name:"\u30B9\u30AD\u30C3\u30D7\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9",description:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u306E\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u305F\u767A\u751F\u3002\u5B8C\u4E86\u3067\u306F\u306A\u304F\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u305F\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u306E\u65E5\u4ED8\u3092\u4FDD\u5B58\u3057\u307E\u3059\u3002"},blockedBy:{name:"\u30D6\u30ED\u30C3\u30AF\u5143",description:"\u3053\u306E\u30BF\u30B9\u30AF\u306E\u524D\u306B\u5B8C\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u30BF\u30B9\u30AF\u3078\u306E\u30EA\u30F3\u30AF\u3002\u30A6\u30A3\u30AD\u30EA\u30F3\u30AF\u3068\u3057\u3066\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002\u30D6\u30ED\u30C3\u30AF\u3055\u308C\u305F\u30BF\u30B9\u30AF\u306F\u8996\u899A\u7684\u306A\u30A4\u30F3\u30B8\u30B1\u30FC\u30BF\u30FC\u3092\u8868\u793A\u3057\u307E\u3059\u3002"},sortOrder:{name:"\u624B\u52D5\u9806\u5E8F",description:"\u30C9\u30E9\u30C3\u30B0\uFF06\u30C9\u30ED\u30C3\u30D7\u3067\u624B\u52D5\u4E26\u3079\u66FF\u3048\u3092\u884C\u3046\u305F\u3081\u306B\u4F7F\u7528\u3059\u308B\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u3002\u30D3\u30E5\u30FC\u306F\u3053\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u3067\u30BD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"},pomodoros:{name:"\u30DD\u30E2\u30C9\u30FC\u30ED",description:"\u5B8C\u4E86\u3057\u305F\u30DD\u30E2\u30C9\u30FC\u30ED\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u30AB\u30A6\u30F3\u30C8\u3002\u30C7\u30FC\u30BF\u4FDD\u5B58\u304C\u300C\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u300D\u306B\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u3053\u308C\u306F\u30BF\u30B9\u30AF\u30D5\u30A1\u30A4\u30EB\u3067\u306F\u306A\u304F\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u66F8\u304D\u8FBC\u307E\u308C\u307E\u3059\u3002"},icsEventId:{name:"ICS\u30A4\u30D9\u30F3\u30C8ID",description:"\u30CE\u30FC\u30C8\u3092ICS\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u306B\u30EA\u30F3\u30AF\u3059\u308B\u4E00\u610F\u306E\u8B58\u5225\u5B50\u3002\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u30CE\u30FC\u30C8\u3092\u4F5C\u6210\u3059\u308B\u969B\u306B\u81EA\u52D5\u7684\u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\u3002"},icsEventTag:{name:"ICS\u30A4\u30D9\u30F3\u30C8\u30BF\u30B0",description:"ICS\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u4F5C\u6210\u3055\u308C\u305F\u30CE\u30FC\u30C8\u3092\u8B58\u5225\u3059\u308B\u30BF\u30B0\u3002\u30AB\u30EC\u30F3\u30C0\u30FC\u751F\u6210\u30CE\u30FC\u30C8\u3092\u901A\u5E38\u306E\u30BF\u30B9\u30AF\u3068\u533A\u5225\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002"}},statusCard:{valuesHeader:"\u30B9\u30C6\u30FC\u30BF\u30B9\u5024"},priorityCard:{valuesHeader:"\u512A\u5148\u5EA6\u5024"},projectsCard:{defaultProjects:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8:",useParentNoteForTaskCreation:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u3067\u30A2\u30AF\u30C6\u30A3\u30D6\u30CE\u30FC\u30C8\u3092\u4F7F\u7528:",useParentNoteForInlineTasks:"\u30A4\u30F3\u30E9\u30A4\u30F3/\u30A4\u30F3\u30B9\u30BF\u30F3\u30C8\u5909\u63DB\u3067\u89AA\u30CE\u30FC\u30C8\u3092\u4F7F\u7528:",useParentHeader:"\u89AA\u898B\u51FA\u3057\u3092\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3068\u3057\u3066\u4F7F\u7528:",inheritParentTaskProperties:"\u30B5\u30D6\u30BF\u30B9\u30AF\u306B\u89AA\u30BF\u30B9\u30AF\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u7D99\u627F:",noDefaultProjects:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093",autosuggestFilters:"\u30AA\u30FC\u30C8\u30B5\u30B8\u30A7\u30B9\u30C8\u30D5\u30A3\u30EB\u30BF\u30FC",customizeDisplay:"\u8868\u793A\u3092\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA",filtersOn:"\u30D5\u30A3\u30EB\u30BF\u30FC\u6709\u52B9"},titleCard:{storeTitleInFilename:"\u30BF\u30A4\u30C8\u30EB\u3092\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u4FDD\u5B58:",storedInFilename:"\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u4FDD\u5B58",filenameUpdatesWithTitle:"\u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB\u304C\u5909\u66F4\u3055\u308C\u308B\u3068\u3001\u30D5\u30A1\u30A4\u30EB\u540D\u306F\u81EA\u52D5\u7684\u306B\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002",filenameFormat:"\u30D5\u30A1\u30A4\u30EB\u540D\u5F62\u5F0F:",customTemplate:"\u30AB\u30B9\u30BF\u30E0\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8:",legacySyntaxWarning:"{title}\u306E\u3088\u3046\u306A\u5358\u4E00\u6CE2\u62EC\u5F27\u69CB\u6587\u306F\u975E\u63A8\u5968\u3067\u3059\u3002\u672C\u6587\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3068\u306E\u4E00\u8CAB\u6027\u306E\u305F\u3081\u306B\u3001{{title}}\u306E\u3088\u3046\u306A\u4E8C\u91CD\u6CE2\u62EC\u5F27\u69CB\u6587\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002",occurrenceFilenameTemplate:"\u30AA\u30AB\u30EC\u30F3\u30B9\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",occurrenceFilenameTemplateHelp:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u304B\u3089\u5B9F\u4F53\u5316\u3055\u308C\u305F\u30AA\u30AB\u30EC\u30F3\u30B9\u7528\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3067\u3059\u3002\u7A7A\u6B04\u306B\u3059\u308B\u3068\u3001\u65E2\u5B58\u306E\u540D\u524D\uFF08\u89AA\u30BF\u30B9\u30AF\u306E\u30BF\u30A4\u30C8\u30EB\u3068\u9023\u756A\u306E\u30B5\u30D5\u30A3\u30C3\u30AF\u30B9\uFF09\u304C\u7DAD\u6301\u3055\u308C\u307E\u3059\u3002{{occurrenceDate}}\u3001{{occurrenceWeek}}\u3001{{occurrenceMonth}}\u3001{{occurrenceYear}}\u3001{{occurrenceMonthName}}\u306E\u3044\u305A\u308C\u304B\u3092\u4F7F\u3063\u3066\u7C92\u5EA6\u3092\u660E\u793A\u7684\u306B\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u5909\u6570\u3082\u3059\u3079\u3066\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\u89AA\u30BF\u30B9\u30AF\u306F\u3001\u4E0B\u3067\u8A2D\u5B9A\u3059\u308B\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u4F7F\u3063\u3066\u3053\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4E0A\u66F8\u304D\u3067\u304D\u307E\u3059\u3002",occurrenceFilenameProperty:"\u30AA\u30AB\u30EC\u30F3\u30B9\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u4E0A\u66F8\u304D\u30D7\u30ED\u30D1\u30C6\u30A3",occurrenceFilenamePropertyHelp:"\u7E70\u308A\u8FD4\u3057\u89AA\u30BF\u30B9\u30AF\u3067\u3001\u305D\u306E\u30AA\u30AB\u30EC\u30F3\u30B9\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4E0A\u66F8\u304D\u3059\u308B\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u30D7\u30ED\u30D1\u30C6\u30A3\u306E\u540D\u524D\u3067\u3059\u3002"},tagsCard:{nativeObsidianTags:"\u30CD\u30A4\u30C6\u30A3\u30D6Obsidian\u30BF\u30B0\u3092\u4F7F\u7528"},remindersCard:{defaultReminders:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC"},taskStatuses:{header:"\u30BF\u30B9\u30AF\u30B9\u30C6\u30FC\u30BF\u30B9",description:"\u30BF\u30B9\u30AF\u3067\u5229\u7528\u53EF\u80FD\u306A\u30B9\u30C6\u30FC\u30BF\u30B9\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u3057\u307E\u3059\u3002\u3053\u308C\u3089\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u306F\u30BF\u30B9\u30AF\u30E9\u30A4\u30D5\u30B5\u30A4\u30AF\u30EB\u3092\u5236\u5FA1\u3057\u3001\u30BF\u30B9\u30AF\u304C\u3044\u3064\u5B8C\u4E86\u3068\u898B\u306A\u3055\u308C\u308B\u304B\u3092\u6C7A\u5B9A\u3057\u307E\u3059\u3002",howTheyWork:{title:"\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u52D5\u4F5C\uFF1A",value:'\u5024\uFF1A\u30BF\u30B9\u30AF\u30D5\u30A1\u30A4\u30EB\u306B\u4FDD\u5B58\u3055\u308C\u308B\u5185\u90E8\u8B58\u5225\u5B50\uFF08\u4F8B\uFF1A"in-progress"\uFF09',label:'\u30E9\u30D9\u30EB\uFF1A\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u306B\u8868\u793A\u3055\u308C\u308B\u8868\u793A\u540D\uFF08\u4F8B\uFF1A"\u9032\u884C\u4E2D"\uFF09',color:"\u8272\uFF1A\u30B9\u30C6\u30FC\u30BF\u30B9\u30C9\u30C3\u30C8\u3068\u30D0\u30C3\u30B8\u306E\u8996\u899A\u7684\u30A4\u30F3\u30B8\u30B1\u30FC\u30BF\u30FC\u8272",icon:'\u30A2\u30A4\u30B3\u30F3\uFF1A\u30AB\u30E9\u30FC\u30C9\u30C3\u30C8\u306E\u4EE3\u308F\u308A\u306B\u8868\u793A\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u306ELucide\u30A2\u30A4\u30B3\u30F3\u540D\uFF08\u4F8B\uFF1A"check"\u3001"circle"\u3001"clock"\uFF09\u3002lucide.dev\u3067\u30A2\u30A4\u30B3\u30F3\u3092\u95B2\u89A7',completed:"\u5B8C\u4E86\uFF1A\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3068\u3001\u3053\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u30BF\u30B9\u30AF\u306F\u5B8C\u4E86\u3068\u898B\u306A\u3055\u308C\u3001\u7570\u306A\u3063\u3066\u30D5\u30A3\u30EB\u30BF\u30EA\u30F3\u30B0\u3055\u308C\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059",autoArchive:"\u81EA\u52D5\u30A2\u30FC\u30AB\u30A4\u30D6\uFF1A\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u6307\u5B9A\u3055\u308C\u305F\u9045\u5EF6\u5F8C\u306B\u30BF\u30B9\u30AF\u304C\u81EA\u52D5\u7684\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u307E\u3059\uFF081-1440\u5206\uFF09",orderNote:"\u4EE5\u4E0B\u306E\u9806\u5E8F\u306F\u3001\u30BF\u30B9\u30AF\u30B9\u30C6\u30FC\u30BF\u30B9\u30D0\u30C3\u30B8\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u5207\u308A\u66FF\u3048\u308B\u969B\u306E\u30B7\u30FC\u30B1\u30F3\u30B9\u3092\u6C7A\u5B9A\u3057\u307E\u3059\u3002"},addNew:{name:"\u65B0\u3057\u3044\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u8FFD\u52A0",description:"\u30BF\u30B9\u30AF\u306E\u65B0\u3057\u3044\u30B9\u30C6\u30FC\u30BF\u30B9\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F5C\u6210",buttonText:"\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u8FFD\u52A0"},validationNote:'\u6CE8\u610F\uFF1A\u5C11\u306A\u304F\u3068\u30822\u3064\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u304C\u5FC5\u8981\u3067\u3001\u5C11\u306A\u304F\u3068\u30821\u3064\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u304C"\u5B8C\u4E86"\u3068\u3057\u3066\u30DE\u30FC\u30AF\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002',emptyState:"\u30AB\u30B9\u30BF\u30E0\u30B9\u30C6\u30FC\u30BF\u30B9\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u8FFD\u52A0\u3057\u3066\u958B\u59CB\u3057\u3066\u304F\u3060\u3055\u3044\u3002",emptyStateButton:"\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u8FFD\u52A0",fields:{value:"\u5024\uFF1A",label:"\u30E9\u30D9\u30EB\uFF1A",color:"\u8272\uFF1A",icon:"\u30A2\u30A4\u30B3\u30F3\uFF1A",completed:"\u5B8C\u4E86\uFF1A",excludeFromCycle:"\u5FAA\u74B0\u6642\u306B\u30B9\u30AD\u30C3\u30D7\uFF1A",nextStatus:"\u6B21\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\uFF1A",autoArchive:"\u81EA\u52D5\u30A2\u30FC\u30AB\u30A4\u30D6\uFF1A",delayMinutes:"\u9045\u5EF6\uFF08\u5206\uFF09\uFF1A"},placeholders:{value:"\u9032\u884C\u4E2D",label:"\u9032\u884C\u4E2D",icon:"check, circle, clock",nextStatusDefault:"\u30B9\u30C6\u30FC\u30BF\u30B9\u9806\u3092\u4F7F\u7528"},badges:{completed:"\u5B8C\u4E86"},deleteConfirm:'\u30B9\u30C6\u30FC\u30BF\u30B9"{label}"\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F'},taskPriorities:{header:"\u30BF\u30B9\u30AF\u512A\u5148\u5EA6",description:"\u30BF\u30B9\u30AF\u3067\u5229\u7528\u53EF\u80FD\u306A\u512A\u5148\u5EA6\u30EC\u30D9\u30EB\u3092\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u3057\u307E\u3059\u3002v4.0+\u3067\u306F\u3001\u512A\u5148\u5EA6\u306FBases\u30D3\u30E5\u30FC\u3067\u5024\u306E\u30A2\u30EB\u30D5\u30A1\u30D9\u30C3\u30C8\u9806\u306B\u30BD\u30FC\u30C8\u3055\u308C\u307E\u3059\u3002",howTheyWork:{title:"\u512A\u5148\u5EA6\u306E\u52D5\u4F5C\uFF1A",value:'\u5024\uFF1A\u30BF\u30B9\u30AF\u30D5\u30A1\u30A4\u30EB\u306B\u4FDD\u5B58\u3055\u308C\u308B\u5185\u90E8\u8B58\u5225\u5B50\u3002Bases\u30D3\u30E5\u30FC\u3067\u306E\u30BD\u30FC\u30C8\u9806\u3092\u5236\u5FA1\u3059\u308B\u306B\u306F\u3001"1-urgent"\u3001"2-high"\u306E\u3088\u3046\u306A\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002',label:'\u8868\u793A\u30E9\u30D9\u30EB\uFF1A\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u306B\u8868\u793A\u3055\u308C\u308B\u8868\u793A\u540D\uFF08\u4F8B\uFF1A"\u9AD8\u512A\u5148\u5EA6"\uFF09',color:"\u8272\uFF1A\u512A\u5148\u5EA6\u30C9\u30C3\u30C8\u3068\u30D0\u30C3\u30B8\u306E\u8996\u899A\u7684\u30A4\u30F3\u30B8\u30B1\u30FC\u30BF\u30FC\u8272",icon:"\u30A2\u30A4\u30B3\u30F3\uFF1A\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u3067\u512A\u5148\u5EA6\u30C9\u30C3\u30C8\u306E\u4EE3\u308F\u308A\u306B\u8868\u793A\u3059\u308B\u4EFB\u610F\u306E Lucide \u30A2\u30A4\u30B3\u30F3",weight:"\u91CD\u307F\uFF1A\u4E26\u3073\u66FF\u3048\u7528\u306E\u6570\u5024\uFF08\u91CD\u307F\u304C\u9AD8\u3044\u307B\u3069\u30EA\u30B9\u30C8\u3067\u5148\u306B\u8868\u793A\uFF09",weightNote:"\u30BF\u30B9\u30AF\u306F\u512A\u5148\u5EA6\u306E\u91CD\u307F\u3067\u81EA\u52D5\u7684\u306B\u964D\u9806\u3067\u4E26\u3073\u66FF\u3048\u3089\u308C\u307E\u3059\uFF08\u6700\u9AD8\u91CD\u307F\u304C\u6700\u521D\uFF09\u3002\u91CD\u307F\u306F\u4EFB\u610F\u306E\u6B63\u306E\u6570\u5024\u3067\u3059\u3002"},addNew:{name:"\u65B0\u3057\u3044\u512A\u5148\u5EA6\u3092\u8FFD\u52A0",description:"\u30BF\u30B9\u30AF\u306E\u65B0\u3057\u3044\u512A\u5148\u5EA6\u30EC\u30D9\u30EB\u3092\u4F5C\u6210",buttonText:"\u512A\u5148\u5EA6\u3092\u8FFD\u52A0"},validationNote:"\u6CE8\u610F\uFF1A\u5C11\u306A\u304F\u3068\u30821\u3064\u306E\u512A\u5148\u5EA6\u304C\u5FC5\u8981\u3067\u3059\u3002\u512A\u5148\u5EA6\u306FBases\u30D3\u30E5\u30FC\u3067\u5024\u306E\u30A2\u30EB\u30D5\u30A1\u30D9\u30C3\u30C8\u9806\u306B\u30BD\u30FC\u30C8\u3055\u308C\u307E\u3059\u3002",emptyState:"\u30AB\u30B9\u30BF\u30E0\u512A\u5148\u5EA6\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u512A\u5148\u5EA6\u3092\u8FFD\u52A0\u3057\u3066\u958B\u59CB\u3057\u3066\u304F\u3060\u3055\u3044\u3002",emptyStateButton:"\u512A\u5148\u5EA6\u3092\u8FFD\u52A0",fields:{value:"\u5024\uFF1A",label:"\u30E9\u30D9\u30EB\uFF1A",color:"\u8272\uFF1A",icon:"\u30A2\u30A4\u30B3\u30F3\uFF1A",weight:"\u91CD\u307F\uFF1A"},placeholders:{value:"\u9AD8",label:"\u9AD8\u512A\u5148\u5EA6",icon:"alert-circle"},weightLabel:"\u91CD\u307F\uFF1A{weight}",deleteConfirm:"\u5C11\u306A\u304F\u3068\u30821\u3064\u306E\u512A\u5148\u5EA6\u304C\u5FC5\u8981\u3067\u3059",deleteTooltip:"\u512A\u5148\u5EA6\u3092\u524A\u9664"},fieldMapping:{header:"\u30D5\u30A3\u30FC\u30EB\u30C9\u30DE\u30C3\u30D4\u30F3\u30B0",warning:"\u26A0\uFE0F \u8B66\u544A\uFF1ATaskNotes\u306F\u3053\u308C\u3089\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u540D\u3092\u8AAD\u307F\u66F8\u304D\u3057\u307E\u3059\u3002\u30BF\u30B9\u30AF\u4F5C\u6210\u5F8C\u306B\u3053\u308C\u3089\u3092\u5909\u66F4\u3059\u308B\u3068\u4E0D\u6574\u5408\u304C\u751F\u3058\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",description:"TaskNotes\u304C\u5404\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u4F7F\u7528\u3059\u308B\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",resetButton:{name:"\u30D5\u30A3\u30FC\u30EB\u30C9\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u30EA\u30BB\u30C3\u30C8",description:"\u3059\u3079\u3066\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u306B\u30EA\u30BB\u30C3\u30C8",buttonText:"\u30C7\u30D5\u30A9\u30EB\u30C8\u306B\u30EA\u30BB\u30C3\u30C8"},notices:{resetSuccess:"\u30D5\u30A3\u30FC\u30EB\u30C9\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u306B\u30EA\u30BB\u30C3\u30C8\u3057\u307E\u3057\u305F",resetFailure:"\u30D5\u30A3\u30FC\u30EB\u30C9\u30DE\u30C3\u30D4\u30F3\u30B0\u306E\u30EA\u30BB\u30C3\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F",updateFailure:"{label}\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u30DE\u30C3\u30D4\u30F3\u30B0\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},table:{fieldHeader:"TaskNotes\u30D5\u30A3\u30FC\u30EB\u30C9",propertyHeader:"\u3042\u306A\u305F\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u540D"},fields:{title:"\u30BF\u30A4\u30C8\u30EB",status:"\u30B9\u30C6\u30FC\u30BF\u30B9",priority:"\u512A\u5148\u5EA6",due:"\u671F\u9650\u65E5",scheduled:"\u4E88\u5B9A\u65E5",contexts:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",projects:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",timeEstimate:"\u6642\u9593\u898B\u7A4D\u3082\u308A",recurrence:"\u7E70\u308A\u8FD4\u3057",dateCreated:"\u4F5C\u6210\u65E5",completedDate:"\u5B8C\u4E86\u65E5",dateModified:"\u5909\u66F4\u65E5",archiveTag:"\u30A2\u30FC\u30AB\u30A4\u30D6\u30BF\u30B0",timeEntries:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA",completeInstances:"\u5B8C\u4E86\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9",blockedBy:"\u30D6\u30ED\u30C3\u30AF\u5143",sortOrder:"\u624B\u52D5\u9806\u5E8F",pomodoros:"\u30DD\u30E2\u30C9\u30FC\u30ED",icsEventId:"ICS\u30A4\u30D9\u30F3\u30C8ID",icsEventTag:"ICS\u30A4\u30D9\u30F3\u30C8\u30BF\u30B0",reminders:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC"}},customUserFields:{header:"\u30AB\u30B9\u30BF\u30E0\u30E6\u30FC\u30B6\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9",description:"\u3059\u3079\u3066\u306E\u30D3\u30E5\u30FC\u3067\u578B\u8A8D\u8B58\u30D5\u30A3\u30EB\u30BF\u30FC\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3057\u3066\u8868\u793A\u3055\u308C\u308B\u30AB\u30B9\u30BF\u30E0\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u3002\u5404\u884C\uFF1A\u8868\u793A\u540D\u3001\u30D7\u30ED\u30D1\u30C6\u30A3\u540D\u3001\u30BF\u30A4\u30D7\u3002",addNew:{name:"\u65B0\u3057\u3044\u30E6\u30FC\u30B6\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u8FFD\u52A0",description:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3068\u30D3\u30E5\u30FC\u306B\u8868\u793A\u3055\u308C\u308B\u65B0\u3057\u3044\u30AB\u30B9\u30BF\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4F5C\u6210",buttonText:"\u30E6\u30FC\u30B6\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u8FFD\u52A0"},emptyState:"\u30AB\u30B9\u30BF\u30E0\u30E6\u30FC\u30B6\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u8FFD\u52A0\u3057\u3066\u30BF\u30B9\u30AF\u306E\u30AB\u30B9\u30BF\u30E0\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u4F5C\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002",emptyStateButton:"\u30E6\u30FC\u30B6\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u8FFD\u52A0",fields:{displayName:"\u8868\u793A\u540D\uFF1A",propertyKey:"\u30D7\u30ED\u30D1\u30C6\u30A3\u30AD\u30FC\uFF1A",type:"\u30BF\u30A4\u30D7\uFF1A",defaultValue:"\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\uFF1A"},placeholders:{displayName:"\u8868\u793A\u540D",propertyKey:"\u30D7\u30ED\u30D1\u30C6\u30A3\u540D",defaultValue:"\u30C7\u30D5\u30A9\u30EB\u30C8\u5024",defaultValueList:"\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\uFF09"},types:{text:"\u30C6\u30AD\u30B9\u30C8",number:"\u6570\u5024",boolean:"\u30D6\u30FC\u30EB",date:"\u65E5\u4ED8",list:"\u30EA\u30B9\u30C8"},defaultNames:{unnamedField:"\u540D\u524D\u306A\u3057\u30D5\u30A3\u30FC\u30EB\u30C9",noKey:"\u30AD\u30FC\u306A\u3057"},deleteTooltip:"\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u524A\u9664",autosuggestFilters:{header:"\u81EA\u52D5\u63D0\u6848\u30D5\u30A3\u30EB\u30BF\u30FC",description:"\u30BF\u30B9\u30AF\u4F5C\u6210\u6642\u306B\u30AB\u30B9\u30BF\u30E0\u30E6\u30FC\u30B6\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u81EA\u52D5\u63D0\u6848\u3092\u30D5\u30A3\u30EB\u30BF\u30FC\u3057\u307E\u3059\u3002\u5404\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u3057\u3066\u3001\u63D0\u6848\u3055\u308C\u308B\u5024\u3092\u7279\u5B9A\u306E\u30BF\u30B0\u3001\u30D5\u30A9\u30EB\u30C0\u30FC\u3001\u307E\u305F\u306F\u30D7\u30ED\u30D1\u30C6\u30A3\u5024\u3092\u6301\u3064\u30CE\u30FC\u30C8\u306B\u5236\u9650\u3067\u304D\u307E\u3059\u3002"}}},appearance:{taskCards:{header:"\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9",description:"\u3059\u3079\u3066\u306E\u30D3\u30E5\u30FC\u3067\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u306E\u8868\u793A\u65B9\u6CD5\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",defaultVisibleProperties:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u8868\u793A\u30D7\u30ED\u30D1\u30C6\u30A3",description:"\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u306B\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u8868\u793A\u3059\u308B\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u9078\u629E\u3057\u307E\u3059\u3002"},propertyGroups:{coreProperties:"\u30B3\u30A2\u30D7\u30ED\u30D1\u30C6\u30A3",organization:"\u7D44\u7E54",customProperties:"\u30AB\u30B9\u30BF\u30E0\u30D7\u30ED\u30D1\u30C6\u30A3"},properties:{status:"\u30B9\u30C6\u30FC\u30BF\u30B9\u30C9\u30C3\u30C8",priority:"\u512A\u5148\u5EA6\u30C9\u30C3\u30C8",due:"\u671F\u9650\u65E5",scheduled:"\u4E88\u5B9A\u65E5",timeEstimate:"\u6642\u9593\u898B\u7A4D\u3082\u308A",totalTrackedTime:"\u7DCF\u8FFD\u8DE1\u6642\u9593",checklistProgress:"\u30C1\u30A7\u30C3\u30AF\u30EA\u30B9\u30C8\u306E\u9032\u6357",recurrence:"\u7E70\u308A\u8FD4\u3057",completedDate:"\u5B8C\u4E86\u65E5",createdDate:"\u4F5C\u6210\u65E5",modifiedDate:"\u5909\u66F4\u65E5",projects:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",contexts:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",tags:"\u30BF\u30B0",blocked:"\u30D6\u30ED\u30C3\u30AF\u4E2D",blocking:"\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u308B"}},taskFilenames:{header:"\u30BF\u30B9\u30AF\u30D5\u30A1\u30A4\u30EB\u540D",description:"\u30BF\u30B9\u30AF\u30D5\u30A1\u30A4\u30EB\u4F5C\u6210\u6642\u306E\u547D\u540D\u65B9\u6CD5\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",storeTitleInFilename:{name:"\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u30BF\u30A4\u30C8\u30EB\u3092\u4FDD\u5B58",description:"\u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB\u3092\u30D5\u30A1\u30A4\u30EB\u540D\u3068\u3057\u3066\u4F7F\u7528\u3002\u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB\u304C\u5909\u66F4\u3055\u308C\u308B\u3068\u30D5\u30A1\u30A4\u30EB\u540D\u3082\u66F4\u65B0\u3055\u308C\u307E\u3059\uFF08\u63A8\u5968\uFF09\u3002"},filenameFormat:{name:"\u30D5\u30A1\u30A4\u30EB\u540D\u5F62\u5F0F",description:"\u30BF\u30B9\u30AF\u30D5\u30A1\u30A4\u30EB\u540D\u306E\u751F\u6210\u65B9\u6CD5",options:{title:"\u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB\uFF08\u975E\u66F4\u65B0\uFF09",zettel:"Zettelkasten\u5F62\u5F0F\uFF08YYMMDD + \u5348\u524D0\u6642\u304B\u3089\u306Ebase36\u79D2\uFF09",timestamp:"\u5B8C\u5168\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\uFF08YYYY-MM-DD-HHMMSS\uFF09",custom:"\u30AB\u30B9\u30BF\u30E0\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",uuid:"UUID v4"}},customTemplate:{name:"\u30AB\u30B9\u30BF\u30E0\u30D5\u30A1\u30A4\u30EB\u540D\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",description:"\u30AB\u30B9\u30BF\u30E0\u30D5\u30A1\u30A4\u30EB\u540D\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3067\u3059\u3002\u5229\u7528\u53EF\u80FD\u306A\u5909\u6570: {{title}}, {{titleLower}}, {{titleUpper}}, {{titleSnake}}, {{titleKebab}}, {{titleCamel}}, {{titlePascal}}, {{date}}, {{shortDate}}, {{time}}, {{time12}}, {{time24}}, {{timestamp}}, {{dateTime}}, {{year}}, {{month}}, {{monthName}}, {{monthNameShort}}, {{day}}, {{dayName}}, {{dayNameShort}}, {{hour}}, {{hour12}}, {{minute}}, {{second}}, {{milliseconds}}, {{ms}}, {{ampm}}, {{week}}, {{quarter}}, {{unix}}, {{unixMs}}, {{timezone}}, {{timezoneShort}}, {{utcOffset}}, {{utcOffsetShort}}, {{utcZ}}, {{zettel}}, {{uuid}}, {{nano}}, {{priority}}, {{priorityShort}}, {{status}}, {{statusShort}}, {{dueDate}}, {{scheduledDate}}",placeholder:"{{date}}-{{title}}-{{dueDate}}",helpText:"\u6CE8\u610F\uFF1A{{dueDate}}\u3068{{scheduledDate}}\u306FYYYY-MM-DD\u5F62\u5F0F\u3067\u3001\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u306F\u7A7A\u306B\u306A\u308A\u307E\u3059\u3002"}},displayFormatting:{header:"\u8868\u793A\u5F62\u5F0F",description:"\u30D7\u30E9\u30B0\u30A4\u30F3\u5168\u4F53\u3067\u306E\u65E5\u4ED8\u3001\u6642\u9593\u3001\u305D\u306E\u4ED6\u306E\u30C7\u30FC\u30BF\u306E\u8868\u793A\u65B9\u6CD5\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",timeFormat:{name:"\u6642\u9593\u5F62\u5F0F",description:"\u30D7\u30E9\u30B0\u30A4\u30F3\u5168\u4F53\u306712\u6642\u9593\u307E\u305F\u306F24\u6642\u9593\u5F62\u5F0F\u3067\u6642\u9593\u3092\u8868\u793A",options:{twelveHour:"12\u6642\u9593\uFF08AM/PM\uFF09",twentyFourHour:"24\u6642\u9593"}}},calendarView:{header:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC",description:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC\u306E\u5916\u89B3\u3068\u52D5\u4F5C\u3092\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u3057\u307E\u3059\u3002",defaultView:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D3\u30E5\u30FC",description:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30BF\u30D6\u3092\u958B\u304F\u969B\u306B\u8868\u793A\u3055\u308C\u308B\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC",options:{monthGrid:"\u6708\u30B0\u30EA\u30C3\u30C9",weekTimeline:"\u9031\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3",dayTimeline:"\u65E5\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3",yearView:"\u5E74\u30D3\u30E5\u30FC",customMultiDay:"\u30AB\u30B9\u30BF\u30E0\u8907\u6570\u65E5"}},customDayCount:{name:"\u30AB\u30B9\u30BF\u30E0\u30D3\u30E5\u30FC\u65E5\u6570",description:"\u30AB\u30B9\u30BF\u30E0\u8907\u6570\u65E5\u30D3\u30E5\u30FC\u3067\u8868\u793A\u3059\u308B\u65E5\u6570",placeholder:"3"},firstDayOfWeek:{name:"\u9031\u306E\u6700\u521D\u306E\u65E5",description:"\u9031\u30D3\u30E5\u30FC\u3067\u6700\u521D\u306E\u5217\u306B\u3059\u308B\u66DC\u65E5"},showWeekends:{name:"\u9031\u672B\u3092\u8868\u793A",description:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC\u3067\u9031\u672B\u3092\u8868\u793A"},showWeekNumbers:{name:"\u9031\u756A\u53F7\u3092\u8868\u793A",description:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC\u3067\u9031\u756A\u53F7\u3092\u8868\u793A"},showTodayHighlight:{name:"\u4ECA\u65E5\u306E\u30CF\u30A4\u30E9\u30A4\u30C8\u3092\u8868\u793A",description:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC\u3067\u73FE\u5728\u306E\u65E5\u3092\u30CF\u30A4\u30E9\u30A4\u30C8"},showCurrentTimeIndicator:{name:"\u73FE\u5728\u6642\u523B\u30A4\u30F3\u30B8\u30B1\u30FC\u30BF\u30FC\u3092\u8868\u793A",description:"\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u30D3\u30E5\u30FC\u3067\u73FE\u5728\u6642\u523B\u3092\u793A\u3059\u30E9\u30A4\u30F3\u3092\u8868\u793A"},selectionMirror:{name:"\u9078\u629E\u30DF\u30E9\u30FC",description:"\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u6642\u9593\u7BC4\u56F2\u3092\u9078\u629E\u3059\u308B\u969B\u306B\u8996\u899A\u7684\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u8868\u793A"},calendarLocale:{name:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30ED\u30B1\u30FC\u30EB",description:'\u65E5\u4ED8\u5F62\u5F0F\u3068\u30AB\u30EC\u30F3\u30C0\u30FC\u30B7\u30B9\u30C6\u30E0\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u30ED\u30B1\u30FC\u30EB\uFF08\u4F8B\uFF1A"en"\u3001"fa"\u306FFarsi/Persian\u3001"de"\u306FGerman\uFF09\u3002\u30D6\u30E9\u30A6\u30B6\u30FC\u304B\u3089\u81EA\u52D5\u691C\u51FA\u3059\u308B\u306B\u306F\u7A7A\u767D\u306E\u307E\u307E\u306B\u3057\u307E\u3059\u3002',placeholder:"\u81EA\u52D5\u691C\u51FA",invalidLocale:"\u7121\u52B9\u306A\u30ED\u30B1\u30FC\u30EB\u3067\u3059\u3002\u6709\u52B9\u306A\u8A00\u8A9E\u30BF\u30B0\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B\uFF1A'ja'\u3001'en'\u3001'fr-FR'\uFF09\u3002"}},defaultEventVisibility:{header:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30A4\u30D9\u30F3\u30C8\u8868\u793A",description:"\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u958B\u304F\u969B\u306B\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u8868\u793A\u3055\u308C\u308B\u30A4\u30D9\u30F3\u30C8\u30BF\u30A4\u30D7\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\u30E6\u30FC\u30B6\u30FC\u306F\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC\u3067\u3053\u308C\u3089\u3092\u30AA\u30F3/\u30AA\u30D5\u3067\u304D\u307E\u3059\u3002",showScheduledTasks:{name:"\u4E88\u5B9A\u30BF\u30B9\u30AF\u3092\u8868\u793A",description:"\u4E88\u5B9A\u65E5\u306E\u3042\u308B\u30BF\u30B9\u30AF\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u8868\u793A"},showDueDates:{name:"\u671F\u9650\u65E5\u3092\u8868\u793A",description:"\u30BF\u30B9\u30AF\u306E\u671F\u9650\u65E5\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u8868\u793A"},showDueWhenScheduled:{name:"\u4E88\u5B9A\u304C\u3042\u308B\u5834\u5408\u3082\u671F\u9650\u65E5\u3092\u8868\u793A",description:"\u65E2\u306B\u4E88\u5B9A\u65E5\u304C\u3042\u308B\u30BF\u30B9\u30AF\u3067\u3082\u671F\u9650\u65E5\u3092\u8868\u793A"},showTimeEntries:{name:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u3092\u8868\u793A",description:"\u5B8C\u4E86\u3057\u305F\u6642\u9593\u8FFD\u8DE1\u30A8\u30F3\u30C8\u30EA\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u8868\u793A"},showRecurringTasks:{name:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u3092\u8868\u793A",description:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u8868\u793A"},showICSEvents:{name:"ICS\u30A4\u30D9\u30F3\u30C8\u3092\u8868\u793A",description:"ICS\u8CFC\u8AAD\u304B\u3089\u306E\u30A4\u30D9\u30F3\u30C8\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u8868\u793A"}},timeSettings:{header:"\u6642\u9593\u8A2D\u5B9A",description:"\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u30D3\u30E5\u30FC\u306E\u6642\u9593\u95A2\u9023\u8868\u793A\u8A2D\u5B9A\u3092\u69CB\u6210\u3057\u307E\u3059\u3002",timeSlotDuration:{name:"\u30BF\u30A4\u30E0\u30B9\u30ED\u30C3\u30C8\u9593\u9694",description:"\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u30D3\u30E5\u30FC\u3067\u306E\u5404\u30BF\u30A4\u30E0\u30B9\u30ED\u30C3\u30C8\u306E\u9593\u9694",options:{fifteenMinutes:"15\u5206",thirtyMinutes:"30\u5206",sixtyMinutes:"60\u5206"}},startTime:{name:"\u958B\u59CB\u6642\u523B",description:"\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u30D3\u30E5\u30FC\u3067\u8868\u793A\u3055\u308C\u308B\u6700\u65E9\u6642\u523B\uFF08HH:MM\u5F62\u5F0F\uFF09",placeholder:"06:00"},endTime:{name:"\u7D42\u4E86\u6642\u523B",description:"\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u30D3\u30E5\u30FC\u306B\u8868\u793A\u3059\u308B\u6700\u3082\u9045\u3044\u6642\u523B (HH:MM\u5F62\u5F0F)\u300226:00 \u3092\u5348\u524D2\u6642\u3068\u3057\u3066\u8868\u793A\u3059\u308B\u306A\u3069\u300124:00\u3092\u8D85\u3048\u308B\u5024\u3067\u7FCC\u65E5\u65E9\u671D\u306E\u6642\u9593\u3092\u8868\u793A\u3067\u304D\u307E\u3059\u3002",placeholder:"26:00"},initialScrollTime:{name:"\u521D\u671F\u30B9\u30AF\u30ED\u30FC\u30EB\u6642\u523B",description:"\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u30D3\u30E5\u30FC\u3092\u958B\u304F\u969B\u306B\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B\u6642\u523B\uFF08HH:MM\u5F62\u5F0F\uFF09",placeholder:"09:00"},eventMinHeight:{name:"\u30A4\u30D9\u30F3\u30C8\u6700\u5C0F\u9AD8\u3055",description:"\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u30D3\u30E5\u30FC\u3067\u306E\u30A4\u30D9\u30F3\u30C8\u306E\u6700\u5C0F\u9AD8\u3055\uFF08\u30D4\u30AF\u30BB\u30EB\uFF09",placeholder:"15"}},uiElements:{header:"UI\u8981\u7D20",description:"\u69D8\u3005\u306AUI\u8981\u7D20\u306E\u8868\u793A\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",showTrackedTasksInStatusBar:{name:"\u30B9\u30C6\u30FC\u30BF\u30B9\u30D0\u30FC\u306B\u8FFD\u8DE1\u30BF\u30B9\u30AF\u3092\u8868\u793A",description:"Obsidian\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u30D0\u30FC\u306B\u73FE\u5728\u8FFD\u8DE1\u4E2D\u306E\u30BF\u30B9\u30AF\u3092\u8868\u793A"},showProjectSubtasksWidget:{name:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B5\u30D6\u30BF\u30B9\u30AF\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A",description:"\u73FE\u5728\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30CE\u30FC\u30C8\u306E\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u8868\u793A\u3059\u308B\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A"},projectSubtasksPosition:{name:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B5\u30D6\u30BF\u30B9\u30AF\u4F4D\u7F6E",description:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B5\u30D6\u30BF\u30B9\u30AF\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u4F4D\u7F6E",options:{top:"\u30CE\u30FC\u30C8\u306E\u4E0A\u90E8",bottom:"\u30CE\u30FC\u30C8\u306E\u4E0B\u90E8"}},showRelationshipsWidget:{name:"\u95A2\u4FC2\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A",description:"\u73FE\u5728\u306E\u30CE\u30FC\u30C8\u306E\u3059\u3079\u3066\u306E\u95A2\u4FC2\uFF08\u30B5\u30D6\u30BF\u30B9\u30AF\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3001\u4F9D\u5B58\u95A2\u4FC2\uFF09\u3092\u8868\u793A\u3059\u308B\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A"},relationshipsPosition:{name:"\u95A2\u4FC2\u306E\u4F4D\u7F6E",description:"\u95A2\u4FC2\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u914D\u7F6E\u3059\u308B\u5834\u6240",options:{top:"\u30CE\u30FC\u30C8\u306E\u4E0A\u90E8",bottom:"\u30CE\u30FC\u30C8\u306E\u4E0B\u90E8"}},showTaskCardInNote:{name:"\u30CE\u30FC\u30C8\u5185\u306B\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u3092\u8868\u793A",description:"\u30BF\u30B9\u30AF\u30CE\u30FC\u30C8\u3092\u958B\u3044\u305F\u3068\u304D\u306B\u30BF\u30B9\u30AF\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8868\u793A\u3059\u308B\u30A4\u30F3\u30BF\u30E9\u30AF\u30C6\u30A3\u30D6\u30AB\u30FC\u30C9\u3092\u8868\u793A"},showCompletedTaskStrikethrough:{name:"\u5B8C\u4E86\u3057\u305F\u30BF\u30B9\u30AF\u306E\u30BF\u30A4\u30C8\u30EB\u306B\u53D6\u308A\u6D88\u3057\u7DDA\u3092\u8868\u793A",description:"\u5B8C\u4E86\u3057\u305F\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u306E\u30BF\u30A4\u30C8\u30EB\u306B\u7DDA\u3092\u5F15\u304D\u307E\u3059\u3002\u5B8C\u4E86\u30BF\u30B9\u30AF\u3092\u8AAD\u307F\u3084\u3059\u304F\u3059\u308B\u306B\u306F\u30AA\u30D5\u306B\u3057\u307E\u3059"},showExpandableSubtasks:{name:"\u5C55\u958B\u53EF\u80FD\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u8868\u793A",description:"\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u3067\u30B5\u30D6\u30BF\u30B9\u30AF\u30BB\u30AF\u30B7\u30E7\u30F3\u306E\u5C55\u958B/\u6298\u308A\u305F\u305F\u307F\u3092\u8A31\u53EF"},expandSubtasksByDefault:{name:"\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u65E2\u5B9A\u3067\u5C55\u958B",description:"\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u3092\u8868\u793A\u3059\u308B\u3068\u304D\u306B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u5C55\u958B\u3057\u3066\u8868\u793A\u3057\u307E\u3059"},subtaskChevronPosition:{name:"\u30B5\u30D6\u30BF\u30B9\u30AF\u30B7\u30A7\u30D6\u30ED\u30F3\u4F4D\u7F6E",description:"\u30BF\u30B9\u30AF\u30AB\u30FC\u30C9\u306E\u5C55\u958B/\u6298\u308A\u305F\u305F\u307F\u30B7\u30A7\u30D6\u30ED\u30F3\u306E\u4F4D\u7F6E",options:{left:"\u5DE6\u5074",right:"\u53F3\u5074"}},viewsButtonAlignment:{name:"\u30D3\u30E5\u30FC\u30DC\u30BF\u30F3\u914D\u7F6E",description:"\u30BF\u30B9\u30AF\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u306E\u30D3\u30E5\u30FC/\u30D5\u30A3\u30EB\u30BF\u30FC\u30DC\u30BF\u30F3\u306E\u914D\u7F6E",options:{left:"\u5DE6\u5074",right:"\u53F3\u5074"}}},projectAutosuggest:{header:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u81EA\u52D5\u63D0\u6848",description:"\u30BF\u30B9\u30AF\u4F5C\u6210\u6642\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u63D0\u6848\u306E\u8868\u793A\u65B9\u6CD5\u3092\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u3057\u307E\u3059\u3002",requiredTags:{name:"\u5FC5\u9808\u30BF\u30B0",description:"\u3053\u308C\u3089\u306E\u30BF\u30B0\u306E\u3044\u305A\u308C\u304B\u3092\u6301\u3064\u30CE\u30FC\u30C8\u306E\u307F\u3092\u8868\u793A\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\uFF09\u3002\u3059\u3079\u3066\u306E\u30CE\u30FC\u30C8\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u7A7A\u767D\u306E\u307E\u307E\u306B\u3057\u307E\u3059\u3002",placeholder:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8, \u30A2\u30AF\u30C6\u30A3\u30D6, \u91CD\u8981"},includeFolders:{name:"\u542B\u3081\u308B\u30D5\u30A9\u30EB\u30C0\u30FC",description:"\u3053\u308C\u3089\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u5185\u306E\u30CE\u30FC\u30C8\u306E\u307F\u3092\u8868\u793A\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30D1\u30B9\uFF09\u3002\u3059\u3079\u3066\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u7A7A\u767D\u306E\u307E\u307E\u306B\u3057\u307E\u3059\u3002",placeholder:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8/, \u4ED5\u4E8B/\u30A2\u30AF\u30C6\u30A3\u30D6, \u500B\u4EBA"},requiredPropertyKey:{name:"\u5FC5\u9808\u30D7\u30ED\u30D1\u30C6\u30A3\u30AD\u30FC",description:"\u3053\u306E\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u30D7\u30ED\u30D1\u30C6\u30A3\u304C\u4E0B\u8A18\u306E\u5024\u3068\u4E00\u81F4\u3059\u308B\u30CE\u30FC\u30C8\u306E\u307F\u3092\u8868\u793A\u3002\u7121\u8996\u3059\u308B\u306B\u306F\u7A7A\u767D\u306E\u307E\u307E\u306B\u3057\u307E\u3059\u3002",placeholder:"\u30BF\u30A4\u30D7"},requiredPropertyValue:{name:"\u5FC5\u9808\u30D7\u30ED\u30D1\u30C6\u30A3\u5024",description:"\u30D7\u30ED\u30D1\u30C6\u30A3\u304C\u3053\u306E\u5024\u3068\u7B49\u3057\u3044\u30CE\u30FC\u30C8\u306E\u307F\u304C\u63D0\u6848\u3055\u308C\u307E\u3059\u3002\u30D7\u30ED\u30D1\u30C6\u30A3\u306E\u5B58\u5728\u3092\u8981\u6C42\u3059\u308B\u306B\u306F\u7A7A\u767D\u306E\u307E\u307E\u306B\u3057\u307E\u3059\u3002",placeholder:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8"},customizeDisplay:{name:"\u63D0\u6848\u8868\u793A\u3092\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA",description:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u63D0\u6848\u306E\u8868\u793A\u65B9\u6CD5\u3068\u8868\u793A\u60C5\u5831\u3092\u8A2D\u5B9A\u3059\u308B\u9AD8\u5EA6\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8868\u793A\u3002"},enableFuzzyMatching:{name:"\u30D5\u30A1\u30B8\u30FC\u30DE\u30C3\u30C1\u30F3\u30B0\u3092\u6709\u52B9\u306B\u3059\u308B",description:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u691C\u7D22\u3067\u30BF\u30A4\u30D7\u30DF\u30B9\u3068\u90E8\u5206\u4E00\u81F4\u3092\u8A31\u53EF\u3002\u5927\u304D\u306A\u30DC\u30EB\u30C8\u3067\u306F\u9045\u304F\u306A\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},displayRowsHelp:"\u5404\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u63D0\u6848\u306B\u8868\u793A\u3059\u308B\u6700\u59273\u884C\u306E\u60C5\u5831\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002",displayRows:{row1:{name:"\u884C1",description:"\u5F62\u5F0F\uFF1A{property|flags}\u3002\u30D7\u30ED\u30D1\u30C6\u30A3\uFF1Atitle\u3001aliases\u3001file.path\u3001file.parent\u3002\u30D5\u30E9\u30B0\uFF1An(Label)\u306F\u30E9\u30D9\u30EB\u3092\u8868\u793A\u3001s\u306F\u691C\u7D22\u53EF\u80FD\u306B\u3057\u307E\u3059\u3002\u4F8B\uFF1A{title|n(Title)|s}",placeholder:"{title|n(\u30BF\u30A4\u30C8\u30EB)}"},row2:{name:"\u884C2\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09",description:"\u4E00\u822C\u7684\u306A\u30D1\u30BF\u30FC\u30F3\uFF1A{aliases|n(Aliases)}\u3001{file.parent|n(Folder)}\u3001literal:\u30AB\u30B9\u30BF\u30E0\u30C6\u30AD\u30B9\u30C8",placeholder:"{aliases|n(\u30A8\u30A4\u30EA\u30A2\u30B9)}"},row3:{name:"\u884C3\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09",description:"{file.path|n(Path)}\u3084\u30AB\u30B9\u30BF\u30E0\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u306A\u3069\u306E\u8FFD\u52A0\u60C5\u5831",placeholder:"{file.path|n(\u30D1\u30B9)}"}},quickReference:{header:"\u30AF\u30A4\u30C3\u30AF\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9",properties:"\u5229\u7528\u53EF\u80FD\u30D7\u30ED\u30D1\u30C6\u30A3\uFF1Atitle\u3001aliases\u3001file.path\u3001file.parent\u3001\u307E\u305F\u306F\u4EFB\u610F\u306E\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9",labels:'\u30E9\u30D9\u30EB\u8FFD\u52A0\uFF1A{title|n(Title)} \u2192 "Title: My Project"',searchable:"\u691C\u7D22\u53EF\u80FD\u306B\u3059\u308B\uFF1A{description|s}\u306F+\u691C\u7D22\u306B\u8AAC\u660E\u3092\u542B\u3081\u307E\u3059",staticText:"\u9759\u7684\u30C6\u30AD\u30B9\u30C8\uFF1Aliteral:My Custom Label",alwaysSearchable:"\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u30BF\u30A4\u30C8\u30EB\u3001\u30A8\u30A4\u30EA\u30A2\u30B9\u306F\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u5E38\u306B\u691C\u7D22\u53EF\u80FD\u3067\u3059\u3002"}},dataStorage:{name:"\u30B9\u30C8\u30EC\u30FC\u30B8\u5834\u6240",description:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BB\u30C3\u30B7\u30E7\u30F3\u5C65\u6B74\u3092\u4FDD\u5B58\u3059\u308B\u5834\u6240",pluginData:"\u30D7\u30E9\u30B0\u30A4\u30F3\u30C7\u30FC\u30BF\uFF08\u63A8\u5968\uFF09",dailyNotes:"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8",notices:{locationChanged:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30B9\u30C8\u30EC\u30FC\u30B8\u5834\u6240\u3092{location}\u306B\u5909\u66F4\u3057\u307E\u3057\u305F"}},notifications:{description:"\u30BF\u30B9\u30AF\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u901A\u77E5\u3068\u30A2\u30E9\u30FC\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002"},performance:{description:"\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u3068\u52D5\u4F5C\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002"},timeTrackingSection:{description:"\u81EA\u52D5\u6642\u9593\u8FFD\u8DE1\u52D5\u4F5C\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002"},recurringSection:{description:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u7BA1\u7406\u306E\u52D5\u4F5C\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002"}},integrations:{mobileCalendar:{disable:{name:"\u30E2\u30D0\u30A4\u30EB\u3067\u30AB\u30EC\u30F3\u30C0\u30FC\u9023\u643A\u3092\u7121\u52B9\u5316",description:"Obsidian Mobile \u3067 Google\u3001Microsoft\u3001ICS \u30AB\u30EC\u30F3\u30C0\u30FC\u306E\u8AAD\u307F\u8FBC\u307F\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3059\u3002\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u9023\u643A\u306F\u5909\u66F4\u3055\u308C\u307E\u305B\u3093\u3002"},status:{name:"\u3053\u306E\u30E2\u30D0\u30A4\u30EB\u7AEF\u672B\u3067\u306F\u30AB\u30EC\u30F3\u30C0\u30FC\u9023\u643A\u304C\u7121\u52B9\u3067\u3059",description:"\u30AB\u30EC\u30F3\u30C0\u30FC\u306E\u8AAD\u307F\u8FBC\u307F\u3092\u518D\u958B\u3059\u308B\u306B\u306F\u3001\u3053\u306E\u8A2D\u5B9A\u3092\u30AA\u30D5\u306B\u3057\u3066 Obsidian Mobile \u3092\u518D\u8AAD\u307F\u8FBC\u307F\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}},basesIntegration:{header:"Bases\u7D71\u5408",description:"Obsidian Bases\u30D7\u30E9\u30B0\u30A4\u30F3\u3068\u306E\u7D71\u5408\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\u3053\u308C\u306F\u5B9F\u9A13\u7684\u6A5F\u80FD\u3067\u3001\u73FE\u5728\u975E\u516C\u958B\u306EObsidian API\u306B\u4F9D\u5B58\u3057\u3066\u3044\u307E\u3059\u3002\u52D5\u4F5C\u304C\u5909\u66F4\u307E\u305F\u306F\u7834\u640D\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",enable:{name:"Bases\u7D71\u5408\u3092\u6709\u52B9\u306B\u3059\u308B",description:"TaskNotes\u30D3\u30E5\u30FC\u3092Obsidian Bases\u30D7\u30E9\u30B0\u30A4\u30F3\u5185\u3067\u4F7F\u7528\u3067\u304D\u308B\u3088\u3046\u306B\u3057\u307E\u3059\u3002\u3053\u308C\u304C\u6A5F\u80FD\u3059\u308B\u306B\u306FBases\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u6709\u52B9\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"},viewCommands:{header:"\u30D3\u30E5\u30FC\u3068Base\u30D5\u30A1\u30A4\u30EB",description:"TaskNotes\u306FObsidian Bases\u30D5\u30A1\u30A4\u30EB\uFF08.base\uFF09\u3092\u4F7F\u7528\u3057\u3066\u30D3\u30E5\u30FC\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u3053\u308C\u3089\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u8D77\u52D5\u6642\u306B\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u306B\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u3001\u73FE\u5728\u306E\u8A2D\u5B9A\uFF08\u30BF\u30B9\u30AF\u8B58\u5225\u3001\u30D5\u30A3\u30FC\u30EB\u30C9\u30DE\u30C3\u30D4\u30F3\u30B0\u3001\u30B9\u30C6\u30FC\u30BF\u30B9\u306A\u3069\uFF09\u3067\u69CB\u6210\u3055\u308C\u307E\u3059\u3002",descriptionRegen:"\u8A2D\u5B9A\u3092\u5909\u66F4\u3057\u3066\u3082Base\u30D5\u30A1\u30A4\u30EB\u306F\u81EA\u52D5\u66F4\u65B0\u3055\u308C\u307E\u305B\u3093\u3002\u65B0\u3057\u3044\u8A2D\u5B9A\u3092\u9069\u7528\u3059\u308B\u306B\u306F\u3001\u4E0B\u306E\u300C\u30D5\u30A1\u30A4\u30EB\u3092\u66F4\u65B0\u300D\u3092\u4F7F\u7528\u3059\u308B\u304B\u3001\u65E2\u5B58\u306E.base\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u3066Obsidian\u3092\u518D\u8D77\u52D5\u3059\u308B\u304B\u3001\u624B\u52D5\u3067\u7DE8\u96C6\u3057\u3066\u304F\u3060\u3055\u3044\u3002",docsLink:"\u5229\u7528\u53EF\u80FD\u306A\u6570\u5F0F\u3068\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8868\u793A",docsLinkUrl:"https://tasknotes.dev/views/default-base-templates",commands:{miniCalendar:"\u30DF\u30CB\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC\u3092\u958B\u304F",kanban:"\u30AB\u30F3\u30D0\u30F3\u30D3\u30E5\u30FC\u3092\u958B\u304F",tasks:"\u30BF\u30B9\u30AF\u30D3\u30E5\u30FC\u3092\u958B\u304F",advancedCalendar:"\u9AD8\u5EA6\u306A\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC\u3092\u958B\u304F",agenda:"\u30A2\u30B8\u30A7\u30F3\u30C0\u30D3\u30E5\u30FC\u3092\u958B\u304F",relationships:"\u95A2\u4FC2\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8",pomodoroStats:"Pomodoro\u7D71\u8A08Base"},fileLabel:"\u30D5\u30A1\u30A4\u30EB\uFF1A{path}",resetButton:"\u30EA\u30BB\u30C3\u30C8",resetTooltip:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D1\u30B9\u306B\u30EA\u30BB\u30C3\u30C8",pomodoroDailyNotesHint:"\u751F\u6210\u3055\u308C\u305FPomodoro\u7D71\u8A08Base\u306F\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u304B\u3089Pomodoro\u5C65\u6B74\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059\u3002\u5C65\u6B74\u304C\u307E\u3060\u30D7\u30E9\u30B0\u30A4\u30F3\u30C7\u30FC\u30BF\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306F\u3001\u3053\u306EBase\u30D5\u30A1\u30A4\u30EB\u3092\u4F7F\u3046\u524D\u306B\u8A2D\u5B9A\u3067\u79FB\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},autoCreateDefaultFiles:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u81EA\u52D5\u4F5C\u6210",description:"\u8D77\u52D5\u6642\u306B\u4E0D\u8DB3\u3057\u3066\u3044\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u306EBase\u30D3\u30E5\u30FC\u30D5\u30A1\u30A4\u30EB\u3092\u81EA\u52D5\u7684\u306B\u4F5C\u6210\u3057\u307E\u3059\u3002\u524A\u9664\u3057\u305F\u30B5\u30F3\u30D7\u30EB\u30D5\u30A1\u30A4\u30EB\u304C\u518D\u4F5C\u6210\u3055\u308C\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u306B\u306F\u7121\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},createDefaultFiles:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210",description:"TaskNotes/Views/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u30C7\u30D5\u30A9\u30EB\u30C8\u306E.base\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u307E\u3059\u3002\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3055\u308C\u307E\u305B\u3093\u3002",buttonText:"\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210"},exportV3Views:{name:"V3\u4FDD\u5B58\u30D3\u30E5\u30FC\u3092Bases\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",description:"TaskNotes v3\u306E\u3059\u3079\u3066\u306E\u4FDD\u5B58\u30D3\u30E5\u30FC\u3092\u3001\u8907\u6570\u306E\u30D3\u30E5\u30FC\u3092\u6301\u3064\u5358\u4E00\u306E.base\u30D5\u30A1\u30A4\u30EB\u306B\u5909\u63DB\u3057\u307E\u3059\u3002\u3053\u308C\u306F\u3001v3\u30D5\u30A3\u30EB\u30BF\u30FC\u8A2D\u5B9A\u3092\u65B0\u3057\u3044Bases\u30B7\u30B9\u30C6\u30E0\u306B\u79FB\u884C\u3059\u308B\u306E\u306B\u5F79\u7ACB\u3061\u307E\u3059\u3002",buttonText:"V3\u30D3\u30E5\u30FC\u3092\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",noViews:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B\u4FDD\u5B58\u30D3\u30E5\u30FC\u304C\u3042\u308A\u307E\u305B\u3093",fileExists:"\u30D5\u30A1\u30A4\u30EB\u304C\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059",confirmOverwrite:'"{fileName}"\u3068\u3044\u3046\u540D\u524D\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F',success:"{count}\u500B\u306E\u4FDD\u5B58\u30D3\u30E5\u30FC\u3092{filePath}\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3057\u307E\u3057\u305F",error:"\u30D3\u30E5\u30FC\u306E\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}"},notices:{enabled:"Bases\u7D71\u5408\u304C\u6709\u52B9\u306B\u306A\u308A\u307E\u3057\u305F\u3002\u8A2D\u5B9A\u3092\u5B8C\u4E86\u3059\u308B\u305F\u3081\u306BObsidian\u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002",disabled:"Bases\u7D71\u5408\u304C\u7121\u52B9\u306B\u306A\u308A\u307E\u3057\u305F\u3002\u524A\u9664\u3092\u5B8C\u4E86\u3059\u308B\u305F\u3081\u306BObsidian\u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},updateDefaultFiles:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u66F4\u65B0",description:"\u73FE\u5728\u306ETaskNotes\u8A2D\u5B9A\u304B\u3089\u751F\u6210\u3055\u308C\u305F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3067\u3001\u8A2D\u5B9A\u6E08\u307F\u306E\u30C7\u30D5\u30A9\u30EB\u30C8.base\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3059\u3002",buttonText:"\u30D5\u30A1\u30A4\u30EB\u3092\u66F4\u65B0",confirmTitle:"\u30C7\u30D5\u30A9\u30EB\u30C8Base\u30D5\u30A1\u30A4\u30EB\u3092\u66F4\u65B0",confirmMessage:"\u8A2D\u5B9A\u6E08\u307F\u306E\u30C7\u30D5\u30A9\u30EB\u30C8.base\u30D5\u30A1\u30A4\u30EB\u3092\u65B0\u3057\u304F\u751F\u6210\u3057\u305F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3067\u4E0A\u66F8\u304D\u3057\u307E\u3059\u3002\u3053\u308C\u3089\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u624B\u52D5\u7DE8\u96C6\u306F\u7F6E\u304D\u63DB\u3048\u3089\u308C\u307E\u3059\u3002",confirmText:"\u30D5\u30A1\u30A4\u30EB\u3092\u66F4\u65B0"}},calendarSubscriptions:{header:"\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD",description:"ICS/iCal URL\u3092\u4ECB\u3057\u3066\u5916\u90E8\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u8CFC\u8AAD\u3057\u3001\u30BF\u30B9\u30AF\u3068\u4E00\u7DD2\u306B\u30A4\u30D9\u30F3\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\u3002",defaultNoteTemplate:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30CE\u30FC\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",description:"ICS\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u4F5C\u6210\u3055\u308C\u308B\u30CE\u30FC\u30C8\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u30D1\u30B9",placeholder:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8/\u30A4\u30D9\u30F3\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8.md"},defaultNoteFolder:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30CE\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC",description:"ICS\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u4F5C\u6210\u3055\u308C\u308B\u30CE\u30FC\u30C8\u306E\u30D5\u30A9\u30EB\u30C0\u30FC",placeholder:"\u30AB\u30EC\u30F3\u30C0\u30FC/\u30A4\u30D9\u30F3\u30C8"},filenameFormat:{name:"ICS\u30CE\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u540D\u5F62\u5F0F",description:"ICS\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u4F5C\u6210\u3055\u308C\u308B\u30CE\u30FC\u30C8\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u751F\u6210\u65B9\u6CD5",options:{title:"\u30A4\u30D9\u30F3\u30C8\u30BF\u30A4\u30C8\u30EB",zettel:"Zettelkasten\u5F62\u5F0F",timestamp:"\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7",custom:"\u30AB\u30B9\u30BF\u30E0\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8"}},customTemplate:{name:"\u30AB\u30B9\u30BF\u30E0ICS\u30D5\u30A1\u30A4\u30EB\u540D\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",description:"\u30AB\u30B9\u30BF\u30E0ICS\u30A4\u30D9\u30F3\u30C8\u30D5\u30A1\u30A4\u30EB\u540D\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",placeholder:"{date}-{title}"},useICSEndAsDue:{name:"ICS\u30A4\u30D9\u30F3\u30C8\u7D42\u4E86\u6642\u523B\u3092\u30BF\u30B9\u30AF\u671F\u65E5\u3068\u3057\u3066\u4F7F\u7528",description:"\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u4F5C\u6210\u3055\u308C\u305F\u30BF\u30B9\u30AF\u306E\u671F\u65E5\u304C\u30A4\u30D9\u30F3\u30C8\u306E\u7D42\u4E86\u6642\u523B\u306B\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002\u7D42\u65E5\u30A4\u30D9\u30F3\u30C8\u306E\u5834\u5408\u3001\u671F\u65E5\u306F\u30A4\u30D9\u30F3\u30C8\u306E\u65E5\u4ED8\u306B\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002\u6642\u9593\u6307\u5B9A\u30A4\u30D9\u30F3\u30C8\u306E\u5834\u5408\u3001\u671F\u65E5\u306B\u7D42\u4E86\u6642\u523B\u304C\u542B\u307E\u308C\u307E\u3059\u3002"},recurringEventRelatedNotesMode:{name:"\u7E70\u308A\u8FD4\u3057\u30A4\u30D9\u30F3\u30C8\u306E\u95A2\u9023\u30CE\u30FC\u30C8",description:"\u5916\u90E8\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u306E1\u56DE\u306E\u7E70\u308A\u8FD4\u3057\u306B\u30EA\u30F3\u30AF\u3057\u305F\u30CE\u30FC\u30C8\u3092\u3001\u8AAD\u307F\u8FBC\u307E\u308C\u305F\u30B7\u30EA\u30FC\u30BA\u5168\u4F53\u306B\u8868\u793A\u3059\u308B\u304B\u3001\u9078\u629E\u3057\u305F\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u306E\u307F\u306B\u8868\u793A\u3059\u308B\u304B\u3092\u9078\u629E\u3057\u307E\u3059\u3002",options:{series:"\u30B7\u30EA\u30FC\u30BA\u5168\u4F53",instance:"\u9078\u629E\u3057\u305F\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u306E\u307F"}}},subscriptionsList:{header:"\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u30EA\u30B9\u30C8",addSubscription:{name:"\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u3092\u8FFD\u52A0",description:"ICS/iCal URL\u307E\u305F\u306F\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u65B0\u3057\u3044\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u3092\u8FFD\u52A0",buttonText:"\u8CFC\u8AAD\u3092\u8FFD\u52A0"},refreshAll:{name:"\u3059\u3079\u3066\u306E\u8CFC\u8AAD\u3092\u66F4\u65B0",description:"\u6709\u52B9\u306A\u3059\u3079\u3066\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u3092\u624B\u52D5\u3067\u66F4\u65B0",buttonText:"\u3059\u3079\u3066\u66F4\u65B0"},newCalendarName:"\u65B0\u3057\u3044\u30AB\u30EC\u30F3\u30C0\u30FC",emptyState:"\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u8CFC\u8AAD\u3092\u8FFD\u52A0\u3057\u3066\u5916\u90E8\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u540C\u671F\u3057\u3066\u304F\u3060\u3055\u3044\u3002",notices:{addSuccess:"\u65B0\u3057\u3044\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F - \u8A73\u7D30\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",addFailure:"\u8CFC\u8AAD\u306E\u8FFD\u52A0\u306B\u5931\u6557\u3057\u307E\u3057\u305F",serviceUnavailable:"ICS\u8CFC\u8AAD\u30B5\u30FC\u30D3\u30B9\u304C\u5229\u7528\u3067\u304D\u307E\u305B\u3093",refreshSuccess:"\u3059\u3079\u3066\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u304C\u6B63\u5E38\u306B\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F",refreshFailure:"\u4E00\u90E8\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u8CFC\u8AAD\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F",updateFailure:"\u8CFC\u8AAD\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F",deleteSuccess:'\u8CFC\u8AAD"{name}"\u3092\u524A\u9664\u3057\u307E\u3057\u305F',deleteFailure:"\u8CFC\u8AAD\u306E\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F",enableFirst:"\u6700\u521D\u306B\u8CFC\u8AAD\u3092\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044",refreshSubscriptionSuccess:'"{name}"\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F',refreshSubscriptionFailure:"\u8CFC\u8AAD\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F"},labels:{enabled:"\u6709\u52B9\uFF1A",name:"\u540D\u524D\uFF1A",type:"\u30BF\u30A4\u30D7\uFF1A",url:"URL\uFF1A",filePath:"\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF1A",color:"\u8272\uFF1A",refreshMinutes:"\u66F4\u65B0\uFF08\u5206\uFF09\uFF1A"},typeOptions:{remote:"\u30EA\u30E2\u30FC\u30C8URL",local:"\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB"},placeholders:{calendarName:"\u30AB\u30EC\u30F3\u30C0\u30FC\u540D",url:"ICS/iCal \u306EURL",filePath:"\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u4F8B\uFF1ACalendar.ics\uFF09",localFile:"\u30AB\u30EC\u30F3\u30C0\u30FC.ics"},statusLabels:{enabled:"\u6709\u52B9",disabled:"\u7121\u52B9",remote:"\u30EA\u30E2\u30FC\u30C8",localFile:"\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB",remoteCalendar:"\u30EA\u30E2\u30FC\u30C8\u30AB\u30EC\u30F3\u30C0\u30FC",localFileCalendar:"\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB",synced:"{timeAgo}\u306B\u540C\u671F",error:"\u30A8\u30E9\u30FC"},actions:{refreshNow:"\u4ECA\u3059\u3050\u66F4\u65B0",deleteSubscription:"\u8CFC\u8AAD\u3092\u524A\u9664"},refreshNow:"\u4ECA\u3059\u3050\u66F4\u65B0",confirmDelete:{title:"\u8CFC\u8AAD\u3092\u524A\u9664",message:'\u8CFC\u8AAD"{name}"\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F\u3053\u306E\u64CD\u4F5C\u306F\u5143\u306B\u623B\u305B\u307E\u305B\u3093\u3002',confirmText:"\u524A\u9664"}},autoExport:{header:"\u81EA\u52D5ICS\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",description:"\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF\u3092\u81EA\u52D5\u7684\u306BICS\u30D5\u30A1\u30A4\u30EB\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002",enable:{name:"\u81EA\u52D5\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3092\u6709\u52B9\u306B\u3059\u308B",description:"\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF\u3067ICS\u30D5\u30A1\u30A4\u30EB\u3092\u81EA\u52D5\u7684\u306B\u66F4\u65B0\u3057\u7D9A\u3051\u308B"},filePath:{name:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9",description:"ICS\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3059\u308B\u30D1\u30B9\uFF08\u30DC\u30EB\u30C8\u30EB\u30FC\u30C8\u304B\u3089\u306E\u76F8\u5BFE\u30D1\u30B9\uFF09",placeholder:"tasknotes-\u30AB\u30EC\u30F3\u30C0\u30FC.ics"},interval:{name:"\u66F4\u65B0\u9593\u9694\uFF085\u304B\u30891440\u5206\u306E\u9593\uFF09",description:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u66F4\u65B0\u3059\u308B\u983B\u5EA6",placeholder:"60"},useDuration:{name:"\u30BF\u30B9\u30AF\u306E\u6240\u8981\u6642\u9593\u3092\u30A4\u30D9\u30F3\u30C8\u306E\u9577\u3055\u306B\u4F7F\u7528",description:"\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u306E\u7D42\u4E86\u6642\u523B\u306B\u671F\u65E5\u3067\u306F\u306A\u304F\u30BF\u30B9\u30AF\u306E\u898B\u7A4D\u6642\u9593\uFF08\u6240\u8981\u6642\u9593\uFF09\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u3053\u308C\u306F\u3001\u4E88\u5B9A + \u6240\u8981\u6642\u9593\u304C\u4F5C\u696D\u8A08\u753B\u3092\u8868\u3057\u3001\u671F\u65E5\u304C\u7DE0\u3081\u5207\u308A\u3092\u8868\u3059GTD\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306B\u4FBF\u5229\u3067\u3059\u3002"},exportNow:{name:"\u4ECA\u3059\u3050\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",description:"\u5373\u5EA7\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3092\u624B\u52D5\u3067\u30C8\u30EA\u30AC\u30FC",buttonText:"\u4ECA\u3059\u3050\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8"},status:{title:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u30B9\u30C6\u30FC\u30BF\u30B9\uFF1A",lastExport:"\u6700\u5F8C\u306E\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\uFF1A{time}",nextExport:"\u6B21\u306E\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\uFF1A{time}",noExports:"\u307E\u3060\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093",notScheduled:"\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u305B\u3093",notInitialized:"\u81EA\u52D5\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u30B5\u30FC\u30D3\u30B9\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093 - Obsidian\u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044",serviceNotInitialized:"\u30B5\u30FC\u30D3\u30B9\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093 - Obsidian\u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044"},notices:{reloadRequired:"\u81EA\u52D5\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u306E\u5909\u66F4\u3092\u6709\u52B9\u306B\u3059\u308B\u305F\u3081\u306BObsidian\u3092\u518D\u8AAD\u307F\u8FBC\u307F\u3057\u3066\u304F\u3060\u3055\u3044\u3002",exportSuccess:"\u30BF\u30B9\u30AF\u304C\u6B63\u5E38\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u307E\u3057\u305F",exportFailure:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F - \u8A73\u7D30\u306F\u30B3\u30F3\u30BD\u30FC\u30EB\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044",serviceUnavailable:"\u81EA\u52D5\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u30B5\u30FC\u30D3\u30B9\u304C\u5229\u7528\u3067\u304D\u307E\u305B\u3093"},excludeCompleted:{name:"\u5B8C\u4E86\u3057\u305F\u30BF\u30B9\u30AF\u3092\u9664\u5916",description:"\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u5B8C\u4E86\u3057\u305F\u30BF\u30B9\u30AF\u306FICS\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u304B\u3089\u9664\u5916\u3055\u308C\u307E\u3059\u3002\u5B8C\u4E86\u30B9\u30C6\u30FC\u30BF\u30B9\u306F\u30BF\u30B9\u30AF\u30B9\u30C6\u30FC\u30BF\u30B9\u8A2D\u5B9A\u304B\u3089\u53D6\u5F97\u3055\u308C\u307E\u3059\u3002"},excludeArchived:{name:"\u30A2\u30FC\u30AB\u30A4\u30D6\u6E08\u307F\u30BF\u30B9\u30AF\u3092\u9664\u5916",description:"\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u6E08\u307F\u30BF\u30B9\u30AF\u306FICS\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u304B\u3089\u9664\u5916\u3055\u308C\u307E\u3059\u3002"},requireDueDate:{name:"\u671F\u9650\u65E5\u3092\u5FC5\u9808\u306B\u3059\u308B",description:"\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u671F\u9650\u65E5\u306E\u3042\u308B\u30BF\u30B9\u30AF\u3060\u3051\u304CICS\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u306B\u542B\u307E\u308C\u307E\u3059\u3002"},requireScheduledDate:{name:"\u4E88\u5B9A\u65E5\u3092\u5FC5\u9808\u306B\u3059\u308B",description:"\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u4E88\u5B9A\u65E5\u306E\u3042\u308B\u30BF\u30B9\u30AF\u3060\u3051\u304CICS\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u306B\u542B\u307E\u308C\u307E\u3059\u3002"}},googleCalendarExport:{header:"\u30BF\u30B9\u30AF\u3092Google\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",description:"\u30BF\u30B9\u30AF\u3092\u81EA\u52D5\u7684\u306BGoogle\u30AB\u30EC\u30F3\u30C0\u30FC\u306E\u30A4\u30D9\u30F3\u30C8\u3068\u3057\u3066\u540C\u671F\u3057\u307E\u3059\u3002\u4E0A\u8A18\u3067Google\u30AB\u30EC\u30F3\u30C0\u30FC\u304C\u63A5\u7D9A\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002",enable:{name:"\u30BF\u30B9\u30AF\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3092\u6709\u52B9\u306B\u3059\u308B",description:"\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u65E5\u4ED8\u306E\u3042\u308B\u30BF\u30B9\u30AF\u304C\u81EA\u52D5\u7684\u306BGoogle\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u30A4\u30D9\u30F3\u30C8\u3068\u3057\u3066\u540C\u671F\u3055\u308C\u307E\u3059\u3002"},targetCalendar:{name:"\u30BF\u30FC\u30B2\u30C3\u30C8\u30AB\u30EC\u30F3\u30C0\u30FC",description:"\u30BF\u30B9\u30AF\u30A4\u30D9\u30F3\u30C8\u3092\u4F5C\u6210\u3059\u308B\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u9078\u629E\u3057\u307E\u3059\u3002",placeholder:"\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u9078\u629E...",connectFirst:"\u5148\u306BGoogle\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u63A5\u7D9A\u3057\u3066\u304F\u3060\u3055\u3044",primarySuffix:"\uFF08\u30E1\u30A4\u30F3\uFF09"},syncTrigger:{name:"\u540C\u671F\u30C8\u30EA\u30AC\u30FC",description:"\u3069\u306E\u30BF\u30B9\u30AF\u65E5\u4ED8\u3067\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u3092\u4F5C\u6210\u3059\u308B\u304B\u3002",options:{scheduled:"\u4E88\u5B9A\u65E5",due:"\u671F\u9650",both:"\u4E21\u65B9\uFF08\u4E88\u5B9A\u65E5\u512A\u5148\uFF09"}},allDayEvents:{name:"\u7D42\u65E5\u30A4\u30D9\u30F3\u30C8\u3068\u3057\u3066\u4F5C\u6210",description:"\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u30BF\u30B9\u30AF\u306F\u7D42\u65E5\u30A4\u30D9\u30F3\u30C8\u3068\u3057\u3066\u4F5C\u6210\u3055\u308C\u307E\u3059\u3002\u7121\u52B9\u306B\u3059\u308B\u3068\u3001\u6642\u9593\u898B\u7A4D\u3082\u308A\u3092\u671F\u9593\u3068\u3057\u3066\u4F7F\u7528\u3057\u307E\u3059\u3002"},defaultDuration:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30A4\u30D9\u30F3\u30C8\u671F\u9593",description:"\u6642\u9593\u6307\u5B9A\u30A4\u30D9\u30F3\u30C8\u306E\u671F\u9593\uFF08\u5206\uFF09\uFF08\u30BF\u30B9\u30AF\u306B\u6642\u9593\u898B\u7A4D\u3082\u308A\u304C\u306A\u3044\u5834\u5408\u306B\u4F7F\u7528\uFF09\u3002"},eventTitleTemplate:{name:"\u30A4\u30D9\u30F3\u30C8\u30BF\u30A4\u30C8\u30EB\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",description:"\u30A4\u30D9\u30F3\u30C8\u30BF\u30A4\u30C8\u30EB\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3002\u4F7F\u7528\u53EF\u80FD\u306A\u5909\u6570\uFF1A{{title}}\u3001{{status}}\u3001{{priority}}",placeholder:"{{title}}"},includeDescription:{name:"\u8AAC\u660E\u306B\u30BF\u30B9\u30AF\u8A73\u7D30\u3092\u542B\u3081\u308B",description:"\u30A4\u30D9\u30F3\u30C8\u306E\u8AAC\u660E\u306B\u30BF\u30B9\u30AF\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\uFF08\u512A\u5148\u5EA6\u3001\u30B9\u30C6\u30FC\u30BF\u30B9\u3001\u30BF\u30B0\u306A\u3069\uFF09\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002"},includeObsidianLink:{name:"Obsidian\u30EA\u30F3\u30AF\u3092\u542B\u3081\u308B",description:"\u30A4\u30D9\u30F3\u30C8\u306E\u8AAC\u660E\u306BObsidian\u306E\u30BF\u30B9\u30AF\u3078\u306E\u30EA\u30F3\u30AF\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002"},defaultReminder:{name:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC",description:"\u6642\u523B\u4ED8\u304DGoogle Calendar\u30A4\u30D9\u30F3\u30C8\u306B\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002\u30A4\u30D9\u30F3\u30C8\u524D\u306E\u5206\u6570\u3092\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u5165\u529B\u3057\u307E\u3059\u3002\u7A7A\u6B04\u306B\u3059\u308B\u3068\u30AB\u30EC\u30F3\u30C0\u30FC\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u4E00\u822C\u7684\u306A\u5024: 15, 30, 60, 1440\u3002"},automaticSyncBehavior:{header:"\u81EA\u52D5\u540C\u671F\u52D5\u4F5C"},syncOnCreate:{name:"\u30BF\u30B9\u30AF\u4F5C\u6210\u6642\u306B\u540C\u671F",description:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u304C\u4F5C\u6210\u3055\u308C\u305F\u3068\u304D\u306B\u81EA\u52D5\u7684\u306B\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u3092\u4F5C\u6210\u3057\u307E\u3059\u3002"},syncOnUpdate:{name:"\u30BF\u30B9\u30AF\u66F4\u65B0\u6642\u306B\u540C\u671F",description:"\u30BF\u30B9\u30AF\u304C\u5909\u66F4\u3055\u308C\u305F\u3068\u304D\u306B\u81EA\u52D5\u7684\u306B\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u3092\u66F4\u65B0\u3057\u307E\u3059\u3002"},syncOnComplete:{name:"\u30BF\u30B9\u30AF\u5B8C\u4E86\u6642\u306B\u540C\u671F",description:"\u30BF\u30B9\u30AF\u304C\u5B8C\u4E86\u3057\u305F\u3068\u304D\u306B\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u3092\u66F4\u65B0\u3057\u307E\u3059\uFF08\u30BF\u30A4\u30C8\u30EB\u306B\u30C1\u30A7\u30C3\u30AF\u30DE\u30FC\u30AF\u3092\u8FFD\u52A0\uFF09\u3002"},syncOnDelete:{name:"\u30BF\u30B9\u30AF\u524A\u9664\u6642\u306B\u30A4\u30D9\u30F3\u30C8\u3092\u524A\u9664",description:"\u5BFE\u5FDC\u3059\u308B\u30BF\u30B9\u30AF\u304C\u524A\u9664\u3055\u308C\u305F\u3068\u304D\u306B\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u3002"},manualSyncActions:{header:"\u624B\u52D5\u540C\u671F\u30A2\u30AF\u30B7\u30E7\u30F3"},syncAllTasks:{name:"\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF\u3092\u540C\u671F",description:"\u3059\u3079\u3066\u306E\u65E2\u5B58\u30BF\u30B9\u30AF\u3092Google\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u540C\u671F\u3057\u307E\u3059\u3002\u307E\u3060\u540C\u671F\u3055\u308C\u3066\u3044\u306A\u3044\u30BF\u30B9\u30AF\u306E\u30A4\u30D9\u30F3\u30C8\u304C\u4F5C\u6210\u3055\u308C\u307E\u3059\u3002",buttonText:"\u3059\u3079\u3066\u540C\u671F"},unlinkAllTasks:{name:"\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF\u306E\u30EA\u30F3\u30AF\u3092\u89E3\u9664",description:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u3092\u524A\u9664\u305B\u305A\u306B\u3001\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF\u3068\u30A4\u30D9\u30F3\u30C8\u306E\u30EA\u30F3\u30AF\u3092\u89E3\u9664\u3057\u307E\u3059\u3002",buttonText:"\u3059\u3079\u3066\u30EA\u30F3\u30AF\u89E3\u9664",confirmTitle:"\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF\u306E\u30EA\u30F3\u30AF\u3092\u89E3\u9664",confirmMessage:"\u3053\u308C\u306B\u3088\u308A\u3001\u30BF\u30B9\u30AF\u3068\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u9593\u306E\u3059\u3079\u3066\u306E\u30EA\u30F3\u30AF\u304C\u524A\u9664\u3055\u308C\u307E\u3059\u3002\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u306F\u6B8B\u308A\u307E\u3059\u304C\u3001\u30BF\u30B9\u30AF\u304C\u5909\u66F4\u3055\u308C\u3066\u3082\u66F4\u65B0\u3055\u308C\u306A\u304F\u306A\u308A\u307E\u3059\u3002\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F",confirmButtonText:"\u3059\u3079\u3066\u30EA\u30F3\u30AF\u89E3\u9664"},notices:{notEnabled:"Google\u30AB\u30EC\u30F3\u30C0\u30FC\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u304C\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u305B\u3093\u3002\u8A2D\u5B9A > \u7D71\u5408\u3067\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002",notEnabledOrConfigured:"Google\u30AB\u30EC\u30F3\u30C0\u30FC\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u304C\u6709\u52B9\u307E\u305F\u306F\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093",serviceNotAvailable:"\u30BF\u30B9\u30AF\u30AB\u30EC\u30F3\u30C0\u30FC\u540C\u671F\u30B5\u30FC\u30D3\u30B9\u304C\u5229\u7528\u3067\u304D\u307E\u305B\u3093",syncResults:"\u540C\u671F\u6E08\u307F\uFF1A{synced}\u3001\u5931\u6557\uFF1A{failed}\u3001\u30B9\u30AD\u30C3\u30D7\uFF1A{skipped}",taskSynced:"\u30BF\u30B9\u30AF\u3092Google\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u540C\u671F\u3057\u307E\u3057\u305F",noActiveFile:"\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093",notATask:"\u73FE\u5728\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u30BF\u30B9\u30AF\u3067\u306F\u3042\u308A\u307E\u305B\u3093",noDateToSync:"\u30BF\u30B9\u30AF\u306B\u540C\u671F\u3059\u308B\u4E88\u5B9A\u65E5\u307E\u305F\u306F\u671F\u9650\u304C\u3042\u308A\u307E\u305B\u3093",syncFailed:"\u30BF\u30B9\u30AF\u306EGoogle\u30AB\u30EC\u30F3\u30C0\u30FC\u3078\u306E\u540C\u671F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",connectionExpired:"Google \u30AB\u30EC\u30F3\u30C0\u30FC\u306E\u63A5\u7D9A\u304C\u671F\u9650\u5207\u308C\u3067\u3059\u3002\u8A2D\u5B9A > \u7D71\u5408\u3067\u518D\u63A5\u7D9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002",syncingTasks:"{total}\u4EF6\u306E\u30BF\u30B9\u30AF\u3092Google\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u540C\u671F\u4E2D...",syncComplete:"\u540C\u671F\u5B8C\u4E86\uFF1A{synced}\u4EF6\u540C\u671F\u3001{failed}\u4EF6\u5931\u6557\u3001{skipped}\u4EF6\u30B9\u30AD\u30C3\u30D7",eventsDeletedAndUnlinked:"\u3059\u3079\u3066\u306E\u30A4\u30D9\u30F3\u30C8\u304C\u524A\u9664\u3055\u308C\u3001\u30EA\u30F3\u30AF\u89E3\u9664\u3055\u308C\u307E\u3057\u305F",tasksUnlinked:"\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF\u30EA\u30F3\u30AF\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F"},eventDescription:{untitledTask:"\u7121\u984C\u306E\u30BF\u30B9\u30AF",priority:"\u512A\u5148\u5EA6\uFF1A{value}",status:"\u30B9\u30C6\u30FC\u30BF\u30B9\uFF1A{value}",due:"\u671F\u9650\uFF1A{value}",scheduled:"\u4E88\u5B9A\uFF1A{value}",timeEstimate:"\u6642\u9593\u898B\u7A4D\u3082\u308A\uFF1A{value}",tags:"\u30BF\u30B0\uFF1A{value}",contexts:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\uFF1A{value}",projects:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF1A{value}",openInObsidian:"Obsidian\u3067\u958B\u304F"}},httpApi:{header:"HTTP API",description:"\u5916\u90E8\u7D71\u5408\u3068\u81EA\u52D5\u5316\u306E\u305F\u3081\u306EHTTP API\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002",enable:{name:"HTTP API\u3092\u6709\u52B9\u306B\u3059\u308B",description:"API\u30A2\u30AF\u30BB\u30B9\u7528\u306E\u30ED\u30FC\u30AB\u30EBHTTP\u30B5\u30FC\u30D0\u30FC\u3092\u958B\u59CB"},port:{name:"API\u30DD\u30FC\u30C8",description:"HTTP API\u30B5\u30FC\u30D0\u30FC\u306E\u30DD\u30FC\u30C8\u756A\u53F7",placeholder:"3000"},authToken:{name:"API\u8A8D\u8A3C\u30C8\u30FC\u30AF\u30F3",description:"API\u8A8D\u8A3C\u306B\u5FC5\u8981\u306A\u30C8\u30FC\u30AF\u30F3\uFF08\u8A8D\u8A3C\u306A\u3057\u306E\u5834\u5408\u306F\u7A7A\u767D\u306E\u307E\u307E\u306B\u3059\u308B\uFF09",placeholder:"\u3042\u306A\u305F\u306E\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u30C8\u30FC\u30AF\u30F3"},mcp:{enable:{name:"MCP \u30B5\u30FC\u30D0\u30FC\u3092\u6709\u52B9\u306B\u3059\u308B",description:"Model Context Protocol \u3092\u4ECB\u3057\u3066 /mcp \u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3067 TaskNotes \u30C4\u30FC\u30EB\u3092\u516C\u958B\u3057\u307E\u3059\u3002HTTP API \u3092\u6709\u52B9\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"}},endpoints:{header:"\u5229\u7528\u53EF\u80FD\u306AAPI\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8",expandIcon:"\u25B6",collapseIcon:"\u25BC"}},webhooks:{header:"Webhook",description:{overview:"Webhook\u306FTaskNotes\u30A4\u30D9\u30F3\u30C8\u304C\u767A\u751F\u3057\u305F\u3068\u304D\u306B\u5916\u90E8\u30B5\u30FC\u30D3\u30B9\u306B\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u901A\u77E5\u3092\u9001\u4FE1\u3057\u307E\u3059\u3002",usage:"\u81EA\u52D5\u5316\u30C4\u30FC\u30EB\u3001\u540C\u671F\u30B5\u30FC\u30D3\u30B9\u3001\u307E\u305F\u306F\u30AB\u30B9\u30BF\u30E0\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3068\u7D71\u5408\u3059\u308B\u305F\u3081\u306BWebhook\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002"},addWebhook:{name:"Webhook\u3092\u8FFD\u52A0",description:"\u65B0\u3057\u3044Webhook\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3092\u767B\u9332",buttonText:"Webhook\u3092\u8FFD\u52A0"},emptyState:{message:"Webhook\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002Webhook\u3092\u8FFD\u52A0\u3057\u3066\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u901A\u77E5\u3092\u53D7\u4FE1\u3057\u3066\u304F\u3060\u3055\u3044\u3002",buttonText:"Webhook\u3092\u8FFD\u52A0"},labels:{active:"\u30A2\u30AF\u30C6\u30A3\u30D6\uFF1A",url:"URL\uFF1A",events:"\u30A4\u30D9\u30F3\u30C8\uFF1A",transform:"\u5909\u63DB\uFF1A"},placeholders:{url:"Webhook \u306EURL",noEventsSelected:"\u30A4\u30D9\u30F3\u30C8\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093",rawPayload:"Raw\u30DA\u30A4\u30ED\u30FC\u30C9\uFF08\u5909\u63DB\u306A\u3057\uFF09"},statusLabels:{active:"\u30A2\u30AF\u30C6\u30A3\u30D6",inactive:"\u975E\u30A2\u30AF\u30C6\u30A3\u30D6",created:"{timeAgo}\u306B\u4F5C\u6210"},actions:{editEvents:"\u30A4\u30D9\u30F3\u30C8\u3092\u7DE8\u96C6",delete:"\u524A\u9664"},editEvents:"\u30A4\u30D9\u30F3\u30C8\u3092\u7DE8\u96C6",notices:{urlUpdated:"Webhook URL\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F",enabled:"Webhook\u304C\u6709\u52B9\u306B\u306A\u308A\u307E\u3057\u305F",disabled:"Webhook\u304C\u7121\u52B9\u306B\u306A\u308A\u307E\u3057\u305F",created:"Webhook\u304C\u6B63\u5E38\u306B\u4F5C\u6210\u3055\u308C\u307E\u3057\u305F",deleted:"Webhook\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F",updated:"Webhook\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F"},confirmDelete:{title:"Webhook\u3092\u524A\u9664",message:`\u3053\u306EWebhook\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F
|
||
|
||
URL\uFF1A{url}
|
||
|
||
\u3053\u306E\u64CD\u4F5C\u306F\u5143\u306B\u623B\u305B\u307E\u305B\u3093\u3002`,confirmText:"\u524A\u9664"},cardHeader:"Webhook",cardFields:{active:"\u30A2\u30AF\u30C6\u30A3\u30D6\uFF1A",url:"URL\uFF1A",events:"\u30A4\u30D9\u30F3\u30C8\uFF1A",transform:"\u5909\u63DB\uFF1A"},eventsDisplay:{noEvents:"\u30A4\u30D9\u30F3\u30C8\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093"},transformDisplay:{noTransform:"Raw\u30DA\u30A4\u30ED\u30FC\u30C9\uFF08\u5909\u63DB\u306A\u3057\uFF09"},secretModal:{title:"Webhook\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u304C\u751F\u6210\u3055\u308C\u307E\u3057\u305F",description:"Webhook\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u304C\u751F\u6210\u3055\u308C\u307E\u3057\u305F\u3002\u518D\u5EA6\u8868\u793A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u3053\u306E\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u3092\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A",usage:"\u53D7\u4FE1\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3067Webhook\u30DA\u30A4\u30ED\u30FC\u30C9\u3092\u691C\u8A3C\u3059\u308B\u305F\u3081\u306B\u3053\u306E\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002",gotIt:"\u4E86\u89E3"},editModal:{title:"Webhook\u3092\u7DE8\u96C6",eventsHeader:"\u8CFC\u8AAD\u3059\u308B\u30A4\u30D9\u30F3\u30C8"},events:{taskCreated:{label:"\u30BF\u30B9\u30AF\u4F5C\u6210",description:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u304C\u4F5C\u6210\u3055\u308C\u305F\u3068\u304D"},taskUpdated:{label:"\u30BF\u30B9\u30AF\u66F4\u65B0",description:"\u30BF\u30B9\u30AF\u304C\u5909\u66F4\u3055\u308C\u305F\u3068\u304D"},taskCompleted:{label:"\u30BF\u30B9\u30AF\u5B8C\u4E86",description:"\u30BF\u30B9\u30AF\u304C\u5B8C\u4E86\u3068\u30DE\u30FC\u30AF\u3055\u308C\u305F\u3068\u304D"},taskDeleted:{label:"\u30BF\u30B9\u30AF\u524A\u9664",description:"\u30BF\u30B9\u30AF\u304C\u524A\u9664\u3055\u308C\u305F\u3068\u304D"},taskArchived:{label:"\u30BF\u30B9\u30AF\u30A2\u30FC\u30AB\u30A4\u30D6",description:"\u30BF\u30B9\u30AF\u304C\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u305F\u3068\u304D"},taskUnarchived:{label:"\u30BF\u30B9\u30AF\u30A2\u30FC\u30AB\u30A4\u30D6\u89E3\u9664",description:"\u30BF\u30B9\u30AF\u306E\u30A2\u30FC\u30AB\u30A4\u30D6\u304C\u89E3\u9664\u3055\u308C\u305F\u3068\u304D"},timeStarted:{label:"\u6642\u9593\u958B\u59CB",description:"\u6642\u9593\u8FFD\u8DE1\u304C\u958B\u59CB\u3055\u308C\u305F\u3068\u304D"},timeStopped:{label:"\u6642\u9593\u505C\u6B62",description:"\u6642\u9593\u8FFD\u8DE1\u304C\u505C\u6B62\u3055\u308C\u305F\u3068\u304D"},pomodoroStarted:{label:"\u30DD\u30E2\u30C9\u30FC\u30ED\u958B\u59CB",description:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u958B\u59CB\u3055\u308C\u305F\u3068\u304D"},pomodoroCompleted:{label:"\u30DD\u30E2\u30C9\u30FC\u30ED\u5B8C\u4E86",description:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u7D42\u4E86\u3057\u305F\u3068\u304D"},pomodoroInterrupted:{label:"\u30DD\u30E2\u30C9\u30FC\u30ED\u4E2D\u65AD",description:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u505C\u6B62\u3055\u308C\u305F\u3068\u304D"},recurringCompleted:{label:"\u7E70\u308A\u8FD4\u3057\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5B8C\u4E86",description:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u5B8C\u4E86\u3057\u305F\u3068\u304D"},reminderTriggered:{label:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u8D77\u52D5",description:"\u30BF\u30B9\u30AF\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u304C\u30A2\u30AF\u30C6\u30A3\u30D6\u306B\u306A\u3063\u305F\u3068\u304D"}},modals:{secretGenerated:{title:"Webhook\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u304C\u751F\u6210\u3055\u308C\u307E\u3057\u305F",description:"Webhook\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u304C\u751F\u6210\u3055\u308C\u307E\u3057\u305F\u3002\u518D\u5EA6\u8868\u793A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u3053\u306E\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u3092\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A",usage:"\u53D7\u4FE1\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3067Webhook\u30DA\u30A4\u30ED\u30FC\u30C9\u3092\u691C\u8A3C\u3059\u308B\u305F\u3081\u306B\u3053\u306E\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002",buttonText:"\u4E86\u89E3"},edit:{title:"Webhook\u3092\u7DE8\u96C6",eventsSection:"\u8CFC\u8AAD\u3059\u308B\u30A4\u30D9\u30F3\u30C8",transformSection:"\u5909\u63DB\u8A2D\u5B9A\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09",headersSection:"\u30D8\u30C3\u30C0\u30FC\u8A2D\u5B9A",transformFile:{name:"\u5909\u63DB\u30D5\u30A1\u30A4\u30EB",description:"Webhook\u30DA\u30A4\u30ED\u30FC\u30C9\u3092\u5909\u63DB\u3059\u308B\u30DC\u30EB\u30C8\u5185\u306E.json\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u30D1\u30B9",placeholder:"simple-template.json"},customHeaders:{name:"\u30AB\u30B9\u30BF\u30E0\u30D8\u30C3\u30C0\u30FC\u3092\u542B\u3081\u308B",description:"TaskNotes\u30D8\u30C3\u30C0\u30FC\uFF08\u30A4\u30D9\u30F3\u30C8\u30BF\u30A4\u30D7\u3001\u7F72\u540D\u3001\u914D\u4FE1ID\uFF09\u3092\u542B\u3081\u308B\u3002Discord\u3001Slack\u3001\u304A\u3088\u3073\u53B3\u683C\u306ACORS\u30DD\u30EA\u30B7\u30FC\u3092\u6301\u3064\u305D\u306E\u4ED6\u306E\u30B5\u30FC\u30D3\u30B9\u3067\u306F\u30AA\u30D5\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},buttons:{cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",save:"\u5909\u66F4\u3092\u4FDD\u5B58"},notices:{selectAtLeastOneEvent:"\u5C11\u306A\u304F\u3068\u30821\u3064\u306E\u30A4\u30D9\u30F3\u30C8\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044"}},add:{title:"Webhook\u3092\u8FFD\u52A0",eventsSection:"\u8CFC\u8AAD\u3059\u308B\u30A4\u30D9\u30F3\u30C8",transformSection:"\u5909\u63DB\u8A2D\u5B9A\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09",headersSection:"\u30D8\u30C3\u30C0\u30FC\u8A2D\u5B9A",url:{name:"Webhook \u306EURL",description:"Webhook\u30DA\u30A4\u30ED\u30FC\u30C9\u304C\u9001\u4FE1\u3055\u308C\u308B\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8",placeholder:"https://your-service.com/webhook"},transformFile:{name:"\u5909\u63DB\u30D5\u30A1\u30A4\u30EB",description:"Webhook\u30DA\u30A4\u30ED\u30FC\u30C9\u3092\u5909\u63DB\u3059\u308B\u30DC\u30EB\u30C8\u5185\u306E.json\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u30D1\u30B9",placeholder:"simple-template.json"},customHeaders:{name:"\u30AB\u30B9\u30BF\u30E0\u30D8\u30C3\u30C0\u30FC\u3092\u542B\u3081\u308B",description:"TaskNotes\u30D8\u30C3\u30C0\u30FC\uFF08\u30A4\u30D9\u30F3\u30C8\u30BF\u30A4\u30D7\u3001\u7F72\u540D\u3001\u914D\u4FE1ID\uFF09\u3092\u542B\u3081\u308B\u3002Discord\u3001Slack\u3001\u304A\u3088\u3073\u53B3\u683C\u306ACORS\u30DD\u30EA\u30B7\u30FC\u3092\u6301\u3064\u305D\u306E\u4ED6\u306E\u30B5\u30FC\u30D3\u30B9\u3067\u306F\u30AA\u30D5\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},transformHelp:{title:"JSON\u5909\u63DB\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4F7F\u7528\u3057\u3066Webhook\u30DA\u30A4\u30ED\u30FC\u30C9\u3092\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u3067\u304D\u307E\u3059\uFF1A",jsFiles:"",jsDescription:"",jsonFiles:".json\u30D5\u30A1\u30A4\u30EB\uFF1A",jsonDescription:" \u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3068 ",jsonVariable:"${data.task.title}",leaveEmpty:"\u7A7A\u767D\u306E\u307E\u307E\uFF1A",leaveEmptyDescription:" Raw\u30C7\u30FC\u30BF\u3092\u9001\u4FE1",example:"\u4F8B\uFF1A",exampleFile:"simple-template.json"},buttons:{cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",add:"Webhook\u3092\u8FFD\u52A0"},notices:{urlRequired:"Webhook URL\u304C\u5FC5\u8981\u3067\u3059",selectAtLeastOneEvent:"\u5C11\u306A\u304F\u3068\u30821\u3064\u306E\u30A4\u30D9\u30F3\u30C8\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044"}}}},otherIntegrations:{header:"\u305D\u306E\u4ED6\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u7D71\u5408",description:"\u4ED6\u306EObsidian\u30D7\u30E9\u30B0\u30A4\u30F3\u3068\u306E\u7D71\u5408\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002"},mdbaseSpec:{header:"mdbase\u578B\u5B9A\u7FA9",learnMore:"mdbase-spec \u306B\u3064\u3044\u3066\u8A73\u3057\u304F\u898B\u308B",enable:{name:"mdbase \u578B\u5B9A\u7FA9\u3092\u751F\u6210",description:"\u8A2D\u5B9A\u306E\u5909\u66F4\u306B\u5408\u308F\u305B\u3066\u3001\u30DC\u30EB\u30C8\u30EB\u30FC\u30C8\u306B mdbase \u578B\u30D5\u30A1\u30A4\u30EB\uFF08mdbase.yaml \u3068 _types/task.md\uFF09\u3092\u751F\u6210\u3057\u3066\u7DAD\u6301\u3057\u307E\u3059\u3002"}},timeFormats:{justNow:"\u305F\u3063\u305F\u4ECA",minutesAgo:"{minutes}\u5206\u524D",hoursAgo:"{hours}\u6642\u9593\u524D",daysAgo:"{days}\u65E5\u524D"}}},notices:{languageChanged:"\u8A00\u8A9E\u3092{language}\u306B\u5909\u66F4\u3057\u307E\u3057\u305F\u3002",releaseAvailable:{message:"TaskNotes {version} \u304C\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002",action:"\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3\u30D7\u30E9\u30B0\u30A4\u30F3\u3067\u958B\u304F"},exportTasksFailed:"\u30BF\u30B9\u30AF\u306EICS\u30D5\u30A1\u30A4\u30EB\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F",icsNoteCreatedSuccess:"\u30CE\u30FC\u30C8\u304C\u6B63\u5E38\u306B\u4F5C\u6210\u3055\u308C\u307E\u3057\u305F",icsCreationModalOpenFailed:"\u4F5C\u6210\u30E2\u30FC\u30C0\u30EB\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F",icsNoteLinkSuccess:'\u30CE\u30FC\u30C8"{fileName}"\u3092ICS\u30A4\u30D9\u30F3\u30C8\u306B\u30EA\u30F3\u30AF\u3057\u307E\u3057\u305F',icsTaskCreatedSuccess:"\u30BF\u30B9\u30AF\u304C\u4F5C\u6210\u3055\u308C\u307E\u3057\u305F\uFF1A{title}",icsRelatedItemsRefreshed:"\u95A2\u9023\u30CE\u30FC\u30C8\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F",icsFileNotFound:"\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u3089\u306A\u3044\u304B\u7121\u52B9\u3067\u3059",icsFileOpenFailed:"\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F",timeblockAttachmentExists:'"{fileName}"\u306F\u65E2\u306B\u6DFB\u4ED8\u3055\u308C\u3066\u3044\u307E\u3059',timeblockAttachmentAdded:'"{fileName}"\u3092\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3068\u3057\u3066\u8FFD\u52A0\u3057\u307E\u3057\u305F',timeblockAttachmentRemoved:'"{fileName}"\u3092\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u524A\u9664\u3057\u307E\u3057\u305F',timeblockFileTypeNotSupported:'"{fileName}"\u3092\u958B\u3051\u307E\u305B\u3093 - \u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7\u304C\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093',timeblockTitleRequired:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306E\u30BF\u30A4\u30C8\u30EB\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",timeblockUpdatedSuccess:'\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF"{title}"\u304C\u6B63\u5E38\u306B\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F',timeblockUpdateFailed:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u8A73\u7D30\u306F\u30B3\u30F3\u30BD\u30FC\u30EB\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",timeblockDeletedSuccess:'\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF"{title}"\u304C\u6B63\u5E38\u306B\u524A\u9664\u3055\u308C\u307E\u3057\u305F',timeblockDeleteFailed:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306E\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u8A73\u7D30\u306F\u30B3\u30F3\u30BD\u30FC\u30EB\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",timeblockRequiredFieldsMissing:"\u3059\u3079\u3066\u306E\u5FC5\u9808\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",agendaLoadingFailed:"\u30A2\u30B8\u30A7\u30F3\u30C0\u306E\u8AAD\u307F\u8FBC\u307F\u30A8\u30E9\u30FC\u3002\u66F4\u65B0\u3057\u3066\u307F\u3066\u304F\u3060\u3055\u3044\u3002",statsLoadingFailed:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A73\u7D30\u306E\u8AAD\u307F\u8FBC\u307F\u30A8\u30E9\u30FC\u3002"},commands:{openCalendarView:"\u30DF\u30CB\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC\u3092\u958B\u304F",openAdvancedCalendarView:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30D3\u30E5\u30FC\u3092\u958B\u304F",openTasksView:"\u30BF\u30B9\u30AF\u30D3\u30E5\u30FC\u3092\u958B\u304F",openNotesView:"\u30CE\u30FC\u30C8\u30D3\u30E5\u30FC\u3092\u958B\u304F",openAgendaView:"\u30A2\u30B8\u30A7\u30F3\u30C0\u30D3\u30E5\u30FC\u3092\u958B\u304F",openPomodoroView:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BF\u30A4\u30DE\u30FC\u3092\u958B\u304F",openKanbanView:"\u30AB\u30F3\u30D0\u30F3\u30DC\u30FC\u30C9\u3092\u958B\u304F",updateDefaultBaseFiles:"\u65E2\u5B9A\u306E Base \u30D5\u30A1\u30A4\u30EB\u3092\u66F4\u65B0",openPomodoroStats:"\u30DD\u30E2\u30C9\u30FC\u30ED\u7D71\u8A08\u3092\u958B\u304F",openStatisticsView:"\u30BF\u30B9\u30AF\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7D71\u8A08\u3092\u958B\u304F",createNewTask:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u3092\u4F5C\u6210",convertCurrentNoteToTask:{name:"\u73FE\u5728\u306E\u30CE\u30FC\u30C8\u3092\u30BF\u30B9\u30AF\u306B\u5909\u63DB",noActiveFile:"\u5909\u63DB\u3059\u308B\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093",alreadyTask:"\u3053\u306E\u30CE\u30FC\u30C8\u306F\u3059\u3067\u306B\u30BF\u30B9\u30AF\u3067\u3059",success:"'{title}'\u3092\u30BF\u30B9\u30AF\u306B\u5909\u63DB\u3057\u307E\u3057\u305F"},convertToTaskNote:"\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u30BF\u30B9\u30AF\u3092TaskNote\u306B\u5909\u63DB",convertAllTasksInNote:"\u30CE\u30FC\u30C8\u5185\u306E\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF\u3092\u5909\u63DB",insertTaskNoteLink:"taskNote\u30EA\u30F3\u30AF\u3092\u633F\u5165",createInlineTask:"\u65B0\u3057\u3044\u30A4\u30F3\u30E9\u30A4\u30F3\u30BF\u30B9\u30AF\u3092\u4F5C\u6210",quickActionsCurrentTask:"\u73FE\u5728\u306E\u30BF\u30B9\u30AF\u306E\u30AF\u30A4\u30C3\u30AF\u30A2\u30AF\u30B7\u30E7\u30F3",goToTodayNote:"\u4ECA\u65E5\u306E\u30CE\u30FC\u30C8\u306B\u79FB\u52D5",startPomodoro:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BF\u30A4\u30DE\u30FC\u3092\u958B\u59CB",stopPomodoro:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BF\u30A4\u30DE\u30FC\u3092\u505C\u6B62",pauseResumePomodoro:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BF\u30A4\u30DE\u30FC\u3092\u4E00\u6642\u505C\u6B62/\u518D\u958B",refreshCache:"\u30AD\u30E3\u30C3\u30B7\u30E5\u3092\u66F4\u65B0",exportAllTasksIcs:"\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF\u3092ICS\u30D5\u30A1\u30A4\u30EB\u3068\u3057\u3066\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",viewReleaseNotes:"\u30EA\u30EA\u30FC\u30B9\u30CE\u30FC\u30C8\u3092\u8868\u793A",startTimeTrackingWithSelector:"\u6642\u9593\u8FFD\u8DE1\u3092\u958B\u59CB\uFF08\u30BF\u30B9\u30AF\u3092\u9078\u629E\uFF09",editTimeEntries:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u3092\u7DE8\u96C6\uFF08\u30BF\u30B9\u30AF\u3092\u9078\u629E\uFF09",createOrOpenTask:"\u30BF\u30B9\u30AF\u3092\u4F5C\u6210\u307E\u305F\u306F\u958B\u304F",createOrOpenTaskWithTracking:"\u30BF\u30B9\u30AF\u3092\u4F5C\u6210\u307E\u305F\u306F\u958B\u3044\u3066\u6642\u9593\u8FFD\u8DE1\u3092\u958B\u59CB",rolloverOverdueScheduledTasks:"\u671F\u9650\u8D85\u904E\u306E\u4E88\u5B9A\u30BF\u30B9\u30AF\u3092\u4ECA\u65E5\u306B\u5EF6\u671F",syncAllTasksGoogleCalendar:"\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF\u3092Google\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u540C\u671F",syncCurrentTaskGoogleCalendar:"\u73FE\u5728\u306E\u30BF\u30B9\u30AF\u3092Google\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u540C\u671F",quickActionsTaskUnderCursor:"\u30AB\u30FC\u30BD\u30EB\u4E0B\u306E\u30BF\u30B9\u30AF\u306E\u30AF\u30A4\u30C3\u30AF\u30A2\u30AF\u30B7\u30E7\u30F3",editCurrentTask:"\u73FE\u5728\u306E\u30BF\u30B9\u30AF\u3092\u7DE8\u96C6",cycleCurrentTaskStatus:"\u73FE\u5728\u306E\u30BF\u30B9\u30AF\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u5207\u308A\u66FF\u3048",cycleCurrentTaskPriority:"\u73FE\u5728\u306E\u30BF\u30B9\u30AF\u306E\u512A\u5148\u5EA6\u3092\u5207\u308A\u66FF\u3048",addProjectToCurrentTask:"\u73FE\u5728\u306E\u30BF\u30B9\u30AF\u306B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u8FFD\u52A0",addSubtaskToCurrentNote:"\u73FE\u5728\u306E\u30CE\u30FC\u30C8\u306B\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u8FFD\u52A0"},modals:{deviceCode:{title:"Google\u30AB\u30EC\u30F3\u30C0\u30FC\u8A8D\u8A3C",instructions:{intro:"Google\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u63A5\u7D9A\u3059\u308B\u306B\u306F\u3001\u4EE5\u4E0B\u306E\u624B\u9806\u306B\u5F93\u3063\u3066\u304F\u3060\u3055\u3044\uFF1A"},steps:{open:"\u958B\u304F",inBrowser:"\u30D6\u30E9\u30A6\u30B6\u3067",enterCode:"\u30D7\u30ED\u30F3\u30D7\u30C8\u304C\u8868\u793A\u3055\u308C\u305F\u3089\u3001\u3053\u306E\u30B3\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A",signIn:"Google\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u30B5\u30A4\u30F3\u30A4\u30F3\u3057\u3066\u30A2\u30AF\u30BB\u30B9\u3092\u8A31\u53EF",returnToObsidian:"Obsidian\u306B\u623B\u308B\uFF08\u3053\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u306F\u81EA\u52D5\u7684\u306B\u9589\u3058\u307E\u3059\uFF09"},codeLabel:"\u3042\u306A\u305F\u306E\u30B3\u30FC\u30C9\uFF1A",copyCodeAriaLabel:"\u30B3\u30FC\u30C9\u3092\u30B3\u30D4\u30FC",waitingForAuthorization:"\u8A8D\u8A3C\u3092\u5F85\u6A5F\u4E2D...",openBrowserButton:"\u30D6\u30E9\u30A6\u30B6\u3092\u958B\u304F",cancelButton:"\u30AD\u30E3\u30F3\u30BB\u30EB",expiresMinutesSeconds:"\u30B3\u30FC\u30C9\u306F{minutes}\u5206{seconds}\u79D2\u3067\u671F\u9650\u5207\u308C",expiresSeconds:"\u30B3\u30FC\u30C9\u306F{seconds}\u79D2\u3067\u671F\u9650\u5207\u308C"},icsEventInfo:{calendarEventHeading:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8",titleLabel:"\u30BF\u30A4\u30C8\u30EB",calendarLabel:"\u30AB\u30EC\u30F3\u30C0\u30FC",dateTimeLabel:"\u65E5\u6642",locationLabel:"\u5834\u6240",descriptionLabel:"\u8AAC\u660E",urlLabel:"URL",relatedNotesHeading:"\u95A2\u9023\u30CE\u30FC\u30C8\u3068\u30BF\u30B9\u30AF",noRelatedItems:"\u3053\u306E\u30A4\u30D9\u30F3\u30C8\u306B\u95A2\u9023\u3059\u308B\u30CE\u30FC\u30C8\u307E\u305F\u306F\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002",typeTask:"\u30BF\u30B9\u30AF",typeNote:"\u30CE\u30FC\u30C8",actionsHeading:"\u30A2\u30AF\u30B7\u30E7\u30F3",createFromEventLabel:"\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u4F5C\u6210",createFromEventDesc:"\u3053\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u65B0\u3057\u3044\u30CE\u30FC\u30C8\u307E\u305F\u306F\u30BF\u30B9\u30AF\u3092\u4F5C\u6210",linkExistingLabel:"\u65E2\u5B58\u3092\u30EA\u30F3\u30AF",linkExistingDesc:"\u65E2\u5B58\u306E\u30CE\u30FC\u30C8\u3092\u3053\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u306B\u30EA\u30F3\u30AF"},timeblockInfo:{editHeading:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u3092\u7DE8\u96C6",dateTimeLabel:"\u65E5\u6642\uFF1A",titleLabel:"\u30BF\u30A4\u30C8\u30EB",titleDesc:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306E\u30BF\u30A4\u30C8\u30EB",titlePlaceholder:"\u4F8B\uFF1A\u96C6\u4E2D\u4F5C\u696D\u30BB\u30C3\u30B7\u30E7\u30F3",descriptionLabel:"\u8AAC\u660E",descriptionDesc:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u8AAC\u660E",descriptionPlaceholder:"\u65B0\u6A5F\u80FD\u306B\u96C6\u4E2D\u3001\u4E2D\u65AD\u306A\u3057",colorLabel:"\u8272",colorDesc:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u8272",colorPlaceholder:"#3b82f6",attachmentsLabel:"\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB",attachmentsDesc:"\u3053\u306E\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306B\u30EA\u30F3\u30AF\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30CE\u30FC\u30C8",addAttachmentButton:"\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3092\u8FFD\u52A0",addAttachmentTooltip:"\u30D5\u30A1\u30B8\u30FC\u691C\u7D22\u3092\u4F7F\u7528\u3057\u3066\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30CE\u30FC\u30C8\u3092\u9078\u629E",deleteButton:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u3092\u524A\u9664",saveButton:"\u5909\u66F4\u3092\u4FDD\u5B58",deleteConfirmationTitle:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u3092\u524A\u9664"},timeblockCreation:{heading:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u3092\u4F5C\u6210",dateLabel:"\u65E5\u4ED8\uFF1A",titleLabel:"\u30BF\u30A4\u30C8\u30EB",titleDesc:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306E\u30BF\u30A4\u30C8\u30EB",titlePlaceholder:"\u4F8B\uFF1A\u96C6\u4E2D\u4F5C\u696D\u30BB\u30C3\u30B7\u30E7\u30F3",startTimeLabel:"\u958B\u59CB\u6642\u523B",startTimeDesc:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u304C\u958B\u59CB\u3055\u308C\u308B\u6642\u523B",startTimePlaceholder:"09:00",endTimeLabel:"\u7D42\u4E86\u6642\u523B",endTimeDesc:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u304C\u7D42\u4E86\u3059\u308B\u6642\u523B",endTimePlaceholder:"11:00",descriptionLabel:"\u8AAC\u660E",descriptionDesc:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u8AAC\u660E",descriptionPlaceholder:"\u65B0\u6A5F\u80FD\u306B\u96C6\u4E2D\u3001\u4E2D\u65AD\u306A\u3057",colorLabel:"\u8272",colorDesc:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u8272",colorPlaceholder:"#3b82f6",attachmentsLabel:"\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB",attachmentsDesc:"\u3053\u306E\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u306B\u30EA\u30F3\u30AF\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30CE\u30FC\u30C8",addAttachmentButton:"\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3092\u8FFD\u52A0",addAttachmentTooltip:"\u30D5\u30A1\u30B8\u30FC\u691C\u7D22\u3092\u4F7F\u7528\u3057\u3066\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30CE\u30FC\u30C8\u3092\u9078\u629E",createButton:"\u30BF\u30A4\u30E0\u30D6\u30ED\u30C3\u30AF\u3092\u4F5C\u6210"},calendarEventCreation:{heading:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u3092\u4F5C\u6210",dateTimeLabel:"\u65E5\u6642\uFF1A",titleLabel:"\u30BF\u30A4\u30C8\u30EB",titleDesc:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u306E\u30BF\u30A4\u30C8\u30EB",titlePlaceholder:"\u4F8B\uFF1A\u30C1\u30FC\u30E0\u30DF\u30FC\u30C6\u30A3\u30F3\u30B0",calendarLabel:"\u30AB\u30EC\u30F3\u30C0\u30FC",calendarDesc:"\u30A4\u30D9\u30F3\u30C8\u3092\u4F5C\u6210\u3059\u308B\u30AB\u30EC\u30F3\u30C0\u30FC",descriptionLabel:"\u8AAC\u660E",descriptionDesc:"\u30A4\u30D9\u30F3\u30C8\u306E\u8AAC\u660E\uFF08\u4EFB\u610F\uFF09",descriptionPlaceholder:"\u30A4\u30D9\u30F3\u30C8\u306E\u8A73\u7D30\u3092\u8FFD\u52A0...",locationLabel:"\u5834\u6240",locationDesc:"\u30A4\u30D9\u30F3\u30C8\u306E\u5834\u6240\uFF08\u4EFB\u610F\uFF09",locationPlaceholder:"\u4F8B\uFF1A\u4F1A\u8B70\u5BA4A",createButton:"\u30A4\u30D9\u30F3\u30C8\u3092\u4F5C\u6210",titleRequired:"\u30A4\u30D9\u30F3\u30C8\u306E\u30BF\u30A4\u30C8\u30EB\u306F\u5FC5\u9808\u3067\u3059",noCalendarSelected:"\u30AB\u30EC\u30F3\u30C0\u30FC\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093",success:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u300C{title}\u300D\u3092\u4F5C\u6210\u3057\u307E\u3057\u305F",error:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}"},icsNoteCreation:{heading:"ICS\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u4F5C\u6210",titleLabel:"\u30BF\u30A4\u30C8\u30EB",titleDesc:"\u65B0\u3057\u3044\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30BF\u30A4\u30C8\u30EB",folderLabel:"\u30D5\u30A9\u30EB\u30C0\u30FC",folderDesc:"\u4FDD\u5B58\u5148\u30D5\u30A9\u30EB\u30C0\u30FC\uFF08\u30DC\u30EB\u30C8\u30EB\u30FC\u30C8\u306E\u5834\u5408\u306F\u7A7A\u306E\u307E\u307E\u306B\u3059\u308B\uFF09",folderPlaceholder:"\u30D5\u30A9\u30EB\u30C0\u30FC/\u30B5\u30D6\u30D5\u30A9\u30EB\u30C0\u30FC",createButton:"\u4F5C\u6210",startLabel:"\u958B\u59CB\uFF1A",endLabel:"\u7D42\u4E86\uFF1A",locationLabel:"\u5834\u6240\uFF1A",calendarLabel:"\u30AB\u30EC\u30F3\u30C0\u30FC\uFF1A",useTemplateLabel:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4F7F\u7528",useTemplateDesc:"\u30B3\u30F3\u30C6\u30F3\u30C4\u4F5C\u6210\u6642\u306B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u9069\u7528",templatePathLabel:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30B9",templatePathDesc:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u30D1\u30B9",templatePathPlaceholder:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8/ICS\u30CE\u30FC\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8.md"},unscheduledTasksSelector:{title:"\u4E88\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u30BF\u30B9\u30AF",placeholder:"\u4E88\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u30BF\u30B9\u30AF\u3092\u691C\u7D22...",instructions:{navigate:"\u79FB\u52D5",schedule:"\u4E88\u5B9A\u3092\u8A2D\u5B9A",dismiss:"\u9589\u3058\u308B"}},migration:{title:"\u65B0\u3057\u3044\u7E70\u308A\u8FD4\u3057\u30B7\u30B9\u30C6\u30E0\u306B\u79FB\u884C",description:"TaskNotes\u306F\u7E70\u308A\u8FD4\u3057\u306B\u696D\u754C\u6A19\u6E96\u306ERRULE\u30D1\u30BF\u30FC\u30F3\u3092\u4F7F\u7528\u3059\u308B\u3088\u3046\u306B\u306A\u308A\u3001\u3088\u308A\u8907\u96D1\u306A\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB\u3068\u4ED6\u306E\u30A2\u30D7\u30EA\u3068\u306E\u4E92\u63DB\u6027\u304C\u5411\u4E0A\u3057\u307E\u3057\u305F\u3002",tasksFound:"{count}\u4EF6\u306E\u53E4\u3044\u7E70\u308A\u8FD4\u3057\u30D1\u30BF\u30FC\u30F3\u3092\u6301\u3064\u30BF\u30B9\u30AF\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F",noMigrationNeeded:"\u79FB\u884C\u304C\u5FC5\u8981\u306A\u30BF\u30B9\u30AF\u306F\u3042\u308A\u307E\u305B\u3093",warnings:{title:"\u7D9A\u884C\u3059\u308B\u524D\u306B\uFF1A",backup:"\u79FB\u884C\u524D\u306B\u30DC\u30EB\u30C8\u3092\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3057\u3066\u304F\u3060\u3055\u3044",conversion:"\u53E4\u3044\u7E70\u308A\u8FD4\u3057\u30D1\u30BF\u30FC\u30F3\u306F\u65B0\u3057\u3044\u5F62\u5F0F\u306B\u5909\u63DB\u3055\u308C\u307E\u3059",normalUsage:"\u79FB\u884C\u4E2D\u3082\u901A\u5E38\u901A\u308ATaskNotes\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059",permanent:"\u3053\u306E\u5909\u66F4\u306F\u6C38\u7D9A\u7684\u3067\u3001\u81EA\u52D5\u7684\u306B\u5143\u306B\u623B\u3059\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093"},benefits:{title:"\u65B0\u30B7\u30B9\u30C6\u30E0\u306E\u5229\u70B9\uFF1A",powerfulPatterns:"\u8907\u96D1\u306A\u7E70\u308A\u8FD4\u3057\u30D1\u30BF\u30FC\u30F3\uFF08\u4F8B\uFF1A\u300C\u6BCE\u6708\u7B2C2\u706B\u66DC\u65E5\u300D\uFF09",performance:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u306E\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u304C\u5411\u4E0A",compatibility:"\u4ED6\u306E\u30A2\u30D7\u30EA\u3068\u4E92\u63DB\u6027\u306E\u3042\u308B\u6A19\u6E96\u7E70\u308A\u8FD4\u3057\u5F62\u5F0F",nlp:"\u81EA\u7136\u8A00\u8A9E\u51E6\u7406\u306E\u30B5\u30DD\u30FC\u30C8\u5F37\u5316"},progress:{title:"\u79FB\u884C\u9032\u6357",preparing:"\u79FB\u884C\u3092\u6E96\u5099\u4E2D...",completed:"\u79FB\u884C\u304C\u6B63\u5E38\u306B\u5B8C\u4E86\u3057\u307E\u3057\u305F",failed:"\u79FB\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F"},buttons:{migrate:"\u79FB\u884C\u3092\u958B\u59CB",completed:"\u9589\u3058\u308B"},errors:{title:"\u79FB\u884C\u4E2D\u306E\u30A8\u30E9\u30FC\uFF1A"},notices:{completedWithErrors:"\u79FB\u884C\u306F\u4E00\u90E8\u30A8\u30E9\u30FC\u3067\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002\u4E0A\u8A18\u306E\u30A8\u30E9\u30FC\u30EA\u30B9\u30C8\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",success:"\u3059\u3079\u3066\u306E\u30BF\u30B9\u30AF\u304C\u6B63\u5E38\u306B\u79FB\u884C\u3055\u308C\u307E\u3057\u305F\uFF01",failed:"\u79FB\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u8A73\u7D30\u306F\u30B3\u30F3\u30BD\u30FC\u30EB\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},prompt:{message:"TaskNotes\u306F\u53E4\u3044\u7E70\u308A\u8FD4\u3057\u5F62\u5F0F\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u30BF\u30B9\u30AF\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u4ECA\u3059\u3050\u65B0\u3057\u3044\u30B7\u30B9\u30C6\u30E0\u306B\u79FB\u884C\u3057\u307E\u3059\u304B\uFF1F",migrateNow:"\u4ECA\u3059\u3050\u79FB\u884C",remindLater:"\u5F8C\u3067\u901A\u77E5"}},task:{titlePlaceholder:"\u4F55\u3092\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u304B\uFF1F",titleLabel:"\u30BF\u30A4\u30C8\u30EB",titleDetailedPlaceholder:"\u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB...",detailsLabel:"\u8A73\u7D30",detailsPlaceholder:"\u8A73\u7D30\u3092\u8FFD\u52A0...",projectsLabel:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",projectsAdd:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u8FFD\u52A0",projectsTooltip:"\u30D5\u30A1\u30B8\u30FC\u691C\u7D22\u3092\u4F7F\u7528\u3057\u3066\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30CE\u30FC\u30C8\u3092\u9078\u629E",projectsRemoveTooltip:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u524A\u9664",contextsLabel:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",contextsPlaceholder:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C81, \u30B3\u30F3\u30C6\u30AD\u30B9\u30C82",tagsLabel:"\u30BF\u30B0",tagsPlaceholder:"\u30BF\u30B01, \u30BF\u30B02",timeEstimateLabel:"\u6642\u9593\u898B\u7A4D\u3082\u308A\uFF08\u5206\uFF09",timeEstimatePlaceholder:"30",unsavedChanges:{title:"\u672A\u4FDD\u5B58\u306E\u5909\u66F4",message:"\u672A\u4FDD\u5B58\u306E\u5909\u66F4\u304C\u3042\u308A\u307E\u3059\u3002\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F",save:"\u5909\u66F4\u3092\u4FDD\u5B58",discard:"\u5909\u66F4\u3092\u7834\u68C4",cancel:"\u7DE8\u96C6\u3092\u7D9A\u3051\u308B"},dependencies:{blockedBy:"\u30D6\u30ED\u30C3\u30AF\u5143",blocking:"\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u308B",placeholder:"[[\u30BF\u30B9\u30AF\u30CE\u30FC\u30C8]]",addTaskButton:"\u30BF\u30B9\u30AF\u3092\u8FFD\u52A0",selectTaskTooltip:"\u30D5\u30A1\u30B8\u30FC\u691C\u7D22\u3092\u4F7F\u7528\u3057\u3066\u30BF\u30B9\u30AF\u30CE\u30FC\u30C8\u3092\u9078\u629E",removeTaskTooltip:"\u30BF\u30B9\u30AF\u3092\u524A\u9664"},organization:{projects:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",subtasks:"\u30B5\u30D6\u30BF\u30B9\u30AF",addToProject:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u8FFD\u52A0",addToProjectButton:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u8FFD\u52A0",addSubtasks:"\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u8FFD\u52A0",addSubtasksButton:"\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u8FFD\u52A0",addSubtasksTooltip:"\u3053\u306E\u30BF\u30B9\u30AF\u306E\u30B5\u30D6\u30BF\u30B9\u30AF\u306B\u3059\u308B\u30BF\u30B9\u30AF\u3092\u9078\u629E",removeSubtaskTooltip:"\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u524A\u9664",notices:{noEligibleSubtasks:"\u30B5\u30D6\u30BF\u30B9\u30AF\u3068\u3057\u3066\u5272\u308A\u5F53\u3066\u53EF\u80FD\u306A\u30BF\u30B9\u30AF\u304C\u3042\u308A\u307E\u305B\u3093",subtaskSelectFailed:"\u30B5\u30D6\u30BF\u30B9\u30AF\u30BB\u30EC\u30AF\u30BF\u30FC\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F"}},customFieldsLabel:"\u30AB\u30B9\u30BF\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9",actions:{due:"\u671F\u9650\u65E5\u3092\u8A2D\u5B9A",scheduled:"\u4E88\u5B9A\u65E5\u3092\u8A2D\u5B9A",status:"\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u8A2D\u5B9A",priority:"\u512A\u5148\u5EA6\u3092\u8A2D\u5B9A",recurrence:"\u7E70\u308A\u8FD4\u3057\u3092\u8A2D\u5B9A",reminders:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u8A2D\u5B9A"},buttons:{openNote:"\u30CE\u30FC\u30C8\u3092\u958B\u304F",save:"\u4FDD\u5B58"},tooltips:{dueValue:"\u671F\u9650\uFF1A{value}",scheduledValue:"\u4E88\u5B9A\uFF1A{value}",statusValue:"\u30B9\u30C6\u30FC\u30BF\u30B9\uFF1A{value}",priorityValue:"\u512A\u5148\u5EA6\uFF1A{value}",recurrenceValue:"\u7E70\u308A\u8FD4\u3057\uFF1A{value}",remindersSingle:"1\u4EF6\u306E\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u304C\u8A2D\u5B9A\u3055\u308C\u307E\u3057\u305F",remindersPlural:"{count}\u4EF6\u306E\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u304C\u8A2D\u5B9A\u3055\u308C\u307E\u3057\u305F"},dateMenu:{dueTitle:"\u671F\u9650\u65E5\u3092\u8A2D\u5B9A",scheduledTitle:"\u4E88\u5B9A\u65E5\u3092\u8A2D\u5B9A"},userFields:{textPlaceholder:"{field}\u3092\u5165\u529B...",numberPlaceholder:"0",datePlaceholder:"YYYY-MM-DD",listPlaceholder:"\u9805\u76EE1, \u9805\u76EE2, \u9805\u76EE3",pickDate:"{field}\u65E5\u4ED8\u3092\u9078\u629E"},recurrence:{daily:"\u6BCE\u65E5",weekly:"\u6BCE\u9031",everyTwoWeeks:"2\u9031\u9593\u3054\u3068",weekdays:"\u5E73\u65E5",weeklyOn:"\u6BCE\u9031{days}\u66DC\u65E5",monthly:"\u6BCE\u6708",everyThreeMonths:"3\u304B\u6708\u3054\u3068",monthlyOnOrdinal:"\u6BCE\u6708{ordinal}",monthlyByWeekday:"\u6BCE\u6708\uFF08\u66DC\u65E5\u306B\u3088\u308B\uFF09",yearly:"\u6BCE\u5E74",yearlyOn:"\u6BCE\u5E74{month}{day}",custom:"\u30AB\u30B9\u30BF\u30E0",countSuffix:"{count}\u56DE",untilSuffix:"{date}\u307E\u3067",ordinal:"{number}{suffix}"}},taskSelector:{title:"\u30BF\u30B9\u30AF\u3092\u9078\u629E",placeholder:"\u30BF\u30B9\u30AF\u3092\u691C\u7D22...",instructions:{navigate:"\u79FB\u52D5",select:"\u9078\u629E",dismiss:"\u30AD\u30E3\u30F3\u30BB\u30EB"},notices:{noteNotFound:'\u30CE\u30FC\u30C8"{name}"\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F'},dueDate:{overdue:"\u671F\u9650\uFF1A{date}\uFF08\u671F\u9650\u5207\u308C\uFF09",today:"\u671F\u9650\uFF1A\u4ECA\u65E5"}},taskSelectorWithCreate:{title:"\u30BF\u30B9\u30AF\u3092\u4F5C\u6210\u307E\u305F\u306F\u958B\u304F",placeholder:"\u30BF\u30B9\u30AF\u3092\u691C\u7D22\u307E\u305F\u306F\u5165\u529B\u3057\u3066\u65B0\u898F\u4F5C\u6210...",instructions:{create:"\u3067\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u3092\u4F5C\u6210"},footer:{createLabel:" \u3067\u4F5C\u6210: "},notices:{emptyQuery:"\u30BF\u30B9\u30AF\u306E\u8AAC\u660E\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",invalidTitle:"\u6709\u52B9\u306A\u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB\u3092\u8A8D\u8B58\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F"}},taskCreation:{title:"\u30BF\u30B9\u30AF\u3092\u4F5C\u6210",actions:{fillFromNaturalLanguage:"\u81EA\u7136\u8A00\u8A9E\u304B\u3089\u30D5\u30A9\u30FC\u30E0\u3092\u57CB\u3081\u308B",hideDetailedOptions:"\u8A73\u7D30\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u975E\u8868\u793A",showDetailedOptions:"\u8A73\u7D30\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8868\u793A"},nlPlaceholder:"\u660E\u65E5\u5348\u5F8C3\u6642\u306B\u98DF\u6599\u54C1\u3092\u8CB7\u3046 @\u5BB6 #\u7528\u4E8B",notices:{titleRequired:"\u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",success:'\u30BF\u30B9\u30AF"{title}"\u304C\u6B63\u5E38\u306B\u4F5C\u6210\u3055\u308C\u307E\u3057\u305F',successShortened:'\u30BF\u30B9\u30AF"{title}"\u304C\u6B63\u5E38\u306B\u4F5C\u6210\u3055\u308C\u307E\u3057\u305F\uFF08\u9577\u3055\u306E\u305F\u3081\u30D5\u30A1\u30A4\u30EB\u540D\u304C\u77ED\u7E2E\u3055\u308C\u307E\u3057\u305F\uFF09',failure:"\u30BF\u30B9\u30AF\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",blockingUnresolved:"\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{entries}",openCreatedTaskFailure:"\u30BF\u30B9\u30AF\u306F\u4F5C\u6210\u3055\u308C\u307E\u3057\u305F\u304C\u3001\u30BF\u30B9\u30AF\u30CE\u30FC\u30C8\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F\u3002"}},taskEdit:{title:"\u30BF\u30B9\u30AF\u3092\u7DE8\u96C6",sections:{completions:"\u5B8C\u4E86",taskInfo:"\u30BF\u30B9\u30AF\u60C5\u5831"},metadata:{totalTrackedTime:"\u7DCF\u8FFD\u8DE1\u6642\u9593\uFF1A",due:"\u671F\u9650\uFF1A",scheduled:"\u4E88\u5B9A\uFF1A",created:"\u4F5C\u6210\uFF1A",modified:"\u5909\u66F4\uFF1A",file:"\u30D5\u30A1\u30A4\u30EB\uFF1A"},buttons:{archive:"\u30A2\u30FC\u30AB\u30A4\u30D6",unarchive:"\u30A2\u30FC\u30AB\u30A4\u30D6\u89E3\u9664"},notices:{titleRequired:"\u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",noChanges:"\u4FDD\u5B58\u3059\u308B\u5909\u66F4\u304C\u3042\u308A\u307E\u305B\u3093",updateSuccess:'\u30BF\u30B9\u30AF"{title}"\u304C\u6B63\u5E38\u306B\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F',updateFailure:"\u30BF\u30B9\u30AF\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",dependenciesUpdateSuccess:"\u4F9D\u5B58\u95A2\u4FC2\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F",blockingUnresolved:"\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{entries}",fileMissing:"\u30BF\u30B9\u30AF\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{path}",openNoteFailure:"\u30BF\u30B9\u30AF\u30CE\u30FC\u30C8\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F",archiveSuccess:"\u30BF\u30B9\u30AF\u304C\u6B63\u5E38\u306B{action}\u3055\u308C\u307E\u3057\u305F",archiveFailure:"\u30BF\u30B9\u30AF\u306E\u30A2\u30FC\u30AB\u30A4\u30D6\u306B\u5931\u6557\u3057\u307E\u3057\u305F",deleteSuccess:"\u30BF\u30B9\u30AF\u300C{title}\u300D\u3092\u524A\u9664\u3057\u307E\u3057\u305F",deleteFailure:"\u30BF\u30B9\u30AF\u306E\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {message}"},archiveAction:{archived:"\u30A2\u30FC\u30AB\u30A4\u30D6",unarchived:"\u30A2\u30FC\u30AB\u30A4\u30D6\u89E3\u9664"},deleteConfirmation:{title:"\u30BF\u30B9\u30AF\u3092\u524A\u9664",message:"\u300C{title}\u300D\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F\u30BF\u30B9\u30AF\u30CE\u30FC\u30C8\u306FObsidian\u306E\u30B4\u30DF\u7BB1\u306B\u79FB\u52D5\u3055\u308C\u307E\u3059\u3002",confirm:"\u30BF\u30B9\u30AF\u3092\u524A\u9664"}},storageLocation:{title:{migrate:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30C7\u30FC\u30BF\u3092\u79FB\u884C\u3057\u307E\u3059\u304B\uFF1F",switch:"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u30B9\u30C8\u30EC\u30FC\u30B8\u306B\u5207\u308A\u66FF\u3048\u307E\u3059\u304B\uFF1F"},message:{migrate:"\u3053\u308C\u306B\u3088\u308A\u3001\u65E2\u5B58\u306E\u30DD\u30E2\u30C9\u30FC\u30ED\u30BB\u30C3\u30B7\u30E7\u30F3\u30C7\u30FC\u30BF\u304C\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306E\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u306B\u79FB\u884C\u3055\u308C\u307E\u3059\u3002\u30C7\u30FC\u30BF\u306F\u65E5\u4ED8\u3067\u30B0\u30EB\u30FC\u30D7\u5316\u3055\u308C\u3001\u5404\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002",switch:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30BB\u30C3\u30B7\u30E7\u30F3\u30C7\u30FC\u30BF\u306F\u3001\u30D7\u30E9\u30B0\u30A4\u30F3\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3067\u306F\u306A\u304F\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306E\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002"},whatThisMeans:"\u3053\u308C\u304C\u610F\u5473\u3059\u308B\u3053\u3068\uFF1A",bullets:{dailyNotesRequired:"Daily Notes\u306E\u30B3\u30A2\u30D7\u30E9\u30B0\u30A4\u30F3\u307E\u305F\u306FPeriodic Notes\u3067\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u3092\u6709\u52B9\u306B\u3057\u3066\u304A\u304F\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",storedInNotes:"\u30C7\u30FC\u30BF\u306F\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306E\u30D5\u30ED\u30F3\u30C8\u30DE\u30BF\u30FC\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3059",migrateData:"\u65E2\u5B58\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30C7\u30FC\u30BF\u306F\u79FB\u884C\u3055\u308C\u3001\u305D\u306E\u5F8C\u30AF\u30EA\u30A2\u3055\u308C\u307E\u3059",futureSessions:"\u4ECA\u5F8C\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306F\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3059",dataLongevity:"\u3053\u308C\u306B\u3088\u308A\u30CE\u30FC\u30C8\u3068\u306E\u30C7\u30FC\u30BF\u306E\u6C38\u7D9A\u6027\u304C\u5411\u4E0A\u3057\u307E\u3059"},finalNote:{migrate:"\u26A0\uFE0F \u5FC5\u8981\u306B\u5FDC\u3058\u3066\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u53D6\u3063\u3066\u304F\u3060\u3055\u3044\u3002\u3053\u306E\u5909\u66F4\u306F\u81EA\u52D5\u7684\u306B\u5143\u306B\u623B\u3059\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002",switch:"\u5C06\u6765\u3044\u3064\u3067\u3082\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30EC\u30FC\u30B8\u306B\u623B\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002"},buttons:{migrate:"\u30C7\u30FC\u30BF\u3092\u79FB\u884C",switch:"\u30B9\u30C8\u30EC\u30FC\u30B8\u3092\u5207\u308A\u66FF\u3048"}},dueDate:{title:"\u671F\u9650\u65E5\u3092\u8A2D\u5B9A",taskLabel:"\u30BF\u30B9\u30AF\uFF1A{title}",sections:{dateTime:"\u671F\u9650\u65E5\u3068\u6642\u9593",quickOptions:"\u30AF\u30A4\u30C3\u30AF\u30AA\u30D7\u30B7\u30E7\u30F3"},descriptions:{dateTime:"\u3053\u306E\u30BF\u30B9\u30AF\u3092\u3044\u3064\u5B8C\u4E86\u3059\u3079\u304D\u304B\u3092\u8A2D\u5B9A"},inputs:{date:{ariaLabel:"\u30BF\u30B9\u30AF\u306E\u671F\u9650\u65E5",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"\u30BF\u30B9\u30AF\u306E\u671F\u9650\u6642\u9593\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09",placeholder:"HH:MM"}},quickOptions:{today:"\u4ECA\u65E5",todayAriaLabel:"\u671F\u9650\u65E5\u3092\u4ECA\u65E5\u306B\u8A2D\u5B9A",tomorrow:"\u660E\u65E5",tomorrowAriaLabel:"\u671F\u9650\u65E5\u3092\u660E\u65E5\u306B\u8A2D\u5B9A",nextWeek:"\u6765\u9031",nextWeekAriaLabel:"\u671F\u9650\u65E5\u3092\u6765\u9031\u306B\u8A2D\u5B9A",now:"\u4ECA",nowAriaLabel:"\u671F\u9650\u65E5\u3068\u6642\u9593\u3092\u4ECA\u306B\u8A2D\u5B9A",clear:"\u30AF\u30EA\u30A2",clearAriaLabel:"\u671F\u9650\u65E5\u3092\u30AF\u30EA\u30A2"},errors:{invalidDateTime:"\u6709\u52B9\u306A\u65E5\u4ED8\u3068\u6642\u9593\u306E\u5F62\u5F0F\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",updateFailed:"\u671F\u9650\u65E5\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}},scheduledDate:{title:"\u4E88\u5B9A\u65E5\u3092\u8A2D\u5B9A",taskLabel:"\u30BF\u30B9\u30AF\uFF1A{title}",sections:{dateTime:"\u4E88\u5B9A\u65E5\u3068\u6642\u9593",quickOptions:"\u30AF\u30A4\u30C3\u30AF\u30AA\u30D7\u30B7\u30E7\u30F3"},descriptions:{dateTime:"\u3053\u306E\u30BF\u30B9\u30AF\u306B\u53D6\u308A\u7D44\u3080\u4E88\u5B9A\u3092\u8A2D\u5B9A"},inputs:{date:{ariaLabel:"\u30BF\u30B9\u30AF\u306E\u4E88\u5B9A\u65E5",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"\u30BF\u30B9\u30AF\u306E\u4E88\u5B9A\u6642\u9593\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09",placeholder:"HH:MM"}},quickOptions:{today:"\u4ECA\u65E5",todayAriaLabel:"\u4E88\u5B9A\u65E5\u3092\u4ECA\u65E5\u306B\u8A2D\u5B9A",tomorrow:"\u660E\u65E5",tomorrowAriaLabel:"\u4E88\u5B9A\u65E5\u3092\u660E\u65E5\u306B\u8A2D\u5B9A",nextWeek:"\u6765\u9031",nextWeekAriaLabel:"\u4E88\u5B9A\u65E5\u3092\u6765\u9031\u306B\u8A2D\u5B9A",now:"\u4ECA",nowAriaLabel:"\u4E88\u5B9A\u65E5\u3068\u6642\u9593\u3092\u4ECA\u306B\u8A2D\u5B9A",clear:"\u30AF\u30EA\u30A2",clearAriaLabel:"\u4E88\u5B9A\u65E5\u3092\u30AF\u30EA\u30A2"},errors:{invalidDateTime:"\u6709\u52B9\u306A\u65E5\u4ED8\u3068\u6642\u9593\u306E\u5F62\u5F0F\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",updateFailed:"\u4E88\u5B9A\u65E5\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}},timeEntryEditor:{title:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA - {taskTitle}",addEntry:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u3092\u8FFD\u52A0",noEntries:"\u307E\u3060\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u304C\u3042\u308A\u307E\u305B\u3093",deleteEntry:"\u30A8\u30F3\u30C8\u30EA\u3092\u524A\u9664",startTime:"\u958B\u59CB\u6642\u523B",endTime:"\u7D42\u4E86\u6642\u523B\uFF08\u5B9F\u884C\u4E2D\u306E\u5834\u5408\u306F\u7A7A\u767D\u306E\u307E\u307E\uFF09",duration:"\u6642\u9593\uFF08\u5206\uFF09",durationDesc:"\u8A08\u7B97\u3055\u308C\u305F\u6642\u9593\u3092\u4E0A\u66F8\u304D",durationPlaceholder:"\u6642\u9593\u3092\u5206\u5358\u4F4D\u3067\u5165\u529B",description:"\u8AAC\u660E",descriptionPlaceholder:"\u4F55\u306B\u53D6\u308A\u7D44\u307F\u307E\u3057\u305F\u304B\uFF1F",calculatedDuration:"\u8A08\u7B97\uFF1A{minutes}\u5206",totalTime:"\u5408\u8A08{hours}\u6642\u9593{minutes}\u5206",totalMinutes:"\u5408\u8A08{minutes}\u5206",saved:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u304C\u4FDD\u5B58\u3055\u308C\u307E\u3057\u305F",saveFailed:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u306E\u4FDD\u5B58\u306B\u5931\u6557\u3057\u307E\u3057\u305F",openFailed:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u30A8\u30C7\u30A3\u30BF\u30FC\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F",noTasksWithEntries:"\u7DE8\u96C6\u3059\u308B\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u3092\u6301\u3064\u30BF\u30B9\u30AF\u304C\u3042\u308A\u307E\u305B\u3093",validation:{missingStartTime:"\u958B\u59CB\u6642\u523B\u306F\u5FC5\u9808\u3067\u3059",endBeforeStart:"\u7D42\u4E86\u6642\u523B\u306F\u958B\u59CB\u6642\u523B\u3088\u308A\u5F8C\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"}},timeTracking:{noTasksAvailable:"\u6642\u9593\u3092\u8FFD\u8DE1\u3067\u304D\u308B\u30BF\u30B9\u30AF\u304C\u3042\u308A\u307E\u305B\u3093",started:"\u6642\u9593\u8FFD\u8DE1\u3092\u958B\u59CB\u3057\u307E\u3057\u305F\uFF1A{taskTitle}",startFailed:"\u6642\u9593\u8FFD\u8DE1\u306E\u958B\u59CB\u306B\u5931\u6557\u3057\u307E\u3057\u305F"},timeEntry:{mustHaveSpecificTime:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u306B\u306F\u5177\u4F53\u7684\u306A\u6642\u9593\u304C\u5FC5\u8981\u3067\u3059\u3002\u9031\u8868\u793A\u307E\u305F\u306F\u65E5\u8868\u793A\u3067\u6642\u9593\u7BC4\u56F2\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",noTasksAvailable:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u308B\u30BF\u30B9\u30AF\u304C\u3042\u308A\u307E\u305B\u3093",created:"{taskTitle}\u306E\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u3092\u4F5C\u6210\u3057\u307E\u3057\u305F\uFF08{duration}\u5206\uFF09",createFailed:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F"}},contextMenus:{task:{status:"\u30B9\u30C6\u30FC\u30BF\u30B9",statusSelected:"\u2713 {label}",priority:"\u512A\u5148\u5EA6",prioritySelected:"\u2713 {label}",dueDate:"\u671F\u9650\u65E5",scheduledDate:"\u4E88\u5B9A\u65E5",customDates:"\u30AB\u30B9\u30BF\u30E0\u65E5\u4ED8",reminders:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC",remindBeforeDue:"\u671F\u9650\u524D\u306B\u30EA\u30DE\u30A4\u30F3\u30C9\u2026",remindBeforeScheduled:"\u4E88\u5B9A\u524D\u306B\u30EA\u30DE\u30A4\u30F3\u30C9\u2026",manageReminders:"\u3059\u3079\u3066\u306E\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u7BA1\u7406\u2026",clearReminders:"\u3059\u3079\u3066\u306E\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u30AF\u30EA\u30A2",startTimeTracking:"\u6642\u9593\u8FFD\u8DE1\u3092\u958B\u59CB",stopTimeTracking:"\u6642\u9593\u8FFD\u8DE1\u3092\u505C\u6B62",editTimeEntries:"\u6642\u9593\u30A8\u30F3\u30C8\u30EA\u3092\u7DE8\u96C6",archive:"\u30A2\u30FC\u30AB\u30A4\u30D6",unarchive:"\u30A2\u30FC\u30AB\u30A4\u30D6\u89E3\u9664",openNote:"\u30CE\u30FC\u30C8\u3092\u958B\u304F",openNoteInNewTab:"\u30CE\u30FC\u30C8\u3092\u65B0\u3057\u3044\u30BF\u30D6\u3067\u958B\u304F",copyTitle:"\u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB\u3092\u30B3\u30D4\u30FC",quickActions:"\u30AF\u30A4\u30C3\u30AF\u30A2\u30AF\u30B7\u30E7\u30F3",noteActions:"\u30CE\u30FC\u30C8\u30A2\u30AF\u30B7\u30E7\u30F3",rename:"\u540D\u524D\u5909\u66F4",renameTitle:"\u30D5\u30A1\u30A4\u30EB\u540D\u5909\u66F4",renamePlaceholder:"\u65B0\u3057\u3044\u540D\u524D\u3092\u5165\u529B",delete:"\u524A\u9664",deleteTitle:"\u30D5\u30A1\u30A4\u30EB\u524A\u9664",deleteMessage:'"{name}"\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F',deleteConfirm:"\u524A\u9664",copyPath:"\u30D1\u30B9\u3092\u30B3\u30D4\u30FC",copyUrl:"Obsidian URL\u3092\u30B3\u30D4\u30FC",showInExplorer:"\u30D5\u30A1\u30A4\u30EB\u30A8\u30AF\u30B9\u30D7\u30ED\u30FC\u30E9\u30FC\u3067\u8868\u793A",addToCalendar:"\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u8FFD\u52A0",calendar:{google:"Google\u30AB\u30EC\u30F3\u30C0\u30FC",outlook:"Outlook\u30AB\u30EC\u30F3\u30C0\u30FC",yahoo:"Yahoo\u30AB\u30EC\u30F3\u30C0\u30FC",downloadIcs:".ics\u30D5\u30A1\u30A4\u30EB\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",syncToGoogle:"Google\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u540C\u671F",syncToGoogleNotConfigured:"Google\u30AB\u30EC\u30F3\u30C0\u30FC\u540C\u671F\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093",syncToGoogleSuccess:"\u30BF\u30B9\u30AF\u3092Google\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u540C\u671F\u3057\u307E\u3057\u305F",syncToGoogleFailed:"Google\u30AB\u30EC\u30F3\u30C0\u30FC\u3078\u306E\u540C\u671F\u306B\u5931\u6557\u3057\u307E\u3057\u305F"},recurrence:"\u7E70\u308A\u8FD4\u3057",clearRecurrence:"\u7E70\u308A\u8FD4\u3057\u3092\u30AF\u30EA\u30A2",customRecurrence:"\u30AB\u30B9\u30BF\u30E0\u7E70\u308A\u8FD4\u3057...",createSubtask:"\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u4F5C\u6210",dependencies:{title:"\u4F9D\u5B58\u95A2\u4FC2",addBlockedBy:"\u300C\u30D6\u30ED\u30C3\u30AF\u5143\u300D\u3092\u8FFD\u52A0\u2026",addBlockedByTitle:"\u3053\u306E\u30BF\u30B9\u30AF\u304C\u4F9D\u5B58\u3059\u308B\u30BF\u30B9\u30AF\u3092\u8FFD\u52A0",addBlocking:"\u300C\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u308B\u300D\u3092\u8FFD\u52A0\u2026",addBlockingTitle:"\u3053\u306E\u30BF\u30B9\u30AF\u304C\u30D6\u30ED\u30C3\u30AF\u3059\u308B\u30BF\u30B9\u30AF\u3092\u8FFD\u52A0",removeBlockedBy:"\u30D6\u30ED\u30C3\u30AF\u5143\u3092\u524A\u9664\u2026",removeBlocking:"\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u308B\u3092\u524A\u9664\u2026",unknownDependency:"\u4E0D\u660E",inputPlaceholder:"[[\u30BF\u30B9\u30AF\u30CE\u30FC\u30C8]]",notices:{noEntries:"\u5C11\u306A\u304F\u3068\u30821\u3064\u306E\u30BF\u30B9\u30AF\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",blockedByAdded:"{count}\u4EF6\u306E\u4F9D\u5B58\u95A2\u4FC2\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F",blockedByRemoved:"\u4F9D\u5B58\u95A2\u4FC2\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F",blockingAdded:"{count}\u4EF6\u306E\u4F9D\u5B58\u30BF\u30B9\u30AF\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F",blockingRemoved:"\u4F9D\u5B58\u30BF\u30B9\u30AF\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F",unresolved:"\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{entries}",noEligibleTasks:"\u4E00\u81F4\u3059\u308B\u30BF\u30B9\u30AF\u304C\u5229\u7528\u3067\u304D\u307E\u305B\u3093",updateFailed:"\u4F9D\u5B58\u95A2\u4FC2\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F"}},organization:{title:"\u7D44\u7E54",projects:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",addToProject:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u8FFD\u52A0\u2026",subtasks:"\u30B5\u30D6\u30BF\u30B9\u30AF",addSubtasks:"\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u8FFD\u52A0\u2026",notices:{alreadyInProject:"\u30BF\u30B9\u30AF\u306F\u65E2\u306B\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u3059",alreadySubtask:"\u30BF\u30B9\u30AF\u306F\u65E2\u306B\u3053\u306E\u30BF\u30B9\u30AF\u306E\u30B5\u30D6\u30BF\u30B9\u30AF\u3067\u3059",addedToProject:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F\uFF1A{project}",addedAsSubtask:"{subtask}\u3092{parent}\u306E\u30B5\u30D6\u30BF\u30B9\u30AF\u3068\u3057\u3066\u8FFD\u52A0\u3057\u307E\u3057\u305F",addToProjectFailed:"\u30BF\u30B9\u30AF\u3092\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F",addAsSubtaskFailed:"\u30BF\u30B9\u30AF\u3092\u30B5\u30D6\u30BF\u30B9\u30AF\u3068\u3057\u3066\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F",projectSelectFailed:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30BB\u30EC\u30AF\u30BF\u30FC\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F",subtaskSelectFailed:"\u30B5\u30D6\u30BF\u30B9\u30AF\u30BB\u30EC\u30AF\u30BF\u30FC\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F",noEligibleSubtasks:"\u30B5\u30D6\u30BF\u30B9\u30AF\u3068\u3057\u3066\u5272\u308A\u5F53\u3066\u53EF\u80FD\u306A\u30BF\u30B9\u30AF\u304C\u3042\u308A\u307E\u305B\u3093",currentTaskNotFound:"\u73FE\u5728\u306E\u30BF\u30B9\u30AF\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F",updateContextsFailed:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F"},contexts:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",addContext:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u8FFD\u52A0\u2026",contextPlaceholder:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",contextSelected:"\u2713 {context}",clearContexts:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u30AF\u30EA\u30A2"},subtasks:{loading:"\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D...",noSubtasks:"\u30B5\u30D6\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",loadFailed:"\u30B5\u30D6\u30BF\u30B9\u30AF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F"},markComplete:"\u3053\u306E\u65E5\u4ED8\u3067\u5B8C\u4E86\u3068\u3057\u3066\u30DE\u30FC\u30AF",markIncomplete:"\u3053\u306E\u65E5\u4ED8\u3067\u672A\u5B8C\u4E86\u3068\u3057\u3066\u30DE\u30FC\u30AF",skipInstance:"\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u30B9\u30AD\u30C3\u30D7",unskipInstance:"\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u306E\u30B9\u30AD\u30C3\u30D7\u3092\u89E3\u9664",quickReminders:{atTime:"\u30A4\u30D9\u30F3\u30C8\u6642\u523B\u306B",fiveMinutes:"5\u5206\u524D",fifteenMinutes:"15\u5206\u524D",oneHour:"1\u6642\u9593\u524D",oneDay:"1\u65E5\u524D"},notices:{toggleCompletionFailure:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u306E\u5B8C\u4E86\u5207\u308A\u66FF\u3048\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",toggleSkipFailure:"\u7E70\u308A\u8FD4\u3057\u30BF\u30B9\u30AF\u306E\u30B9\u30AD\u30C3\u30D7\u5207\u308A\u66FF\u3048\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",updateDueDateFailure:"\u30BF\u30B9\u30AF\u671F\u9650\u65E5\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",updateScheduledFailure:"\u30BF\u30B9\u30AF\u4E88\u5B9A\u65E5\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",updateCustomDateFailure:"{field}\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",updateRemindersFailure:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F",clearRemindersFailure:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u306E\u30AF\u30EA\u30A2\u306B\u5931\u6557\u3057\u307E\u3057\u305F",addReminderFailure:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u306E\u8FFD\u52A0\u306B\u5931\u6557\u3057\u307E\u3057\u305F",archiveFailure:"\u30BF\u30B9\u30AF\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u5207\u308A\u66FF\u3048\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",copyTitleSuccess:"\u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",copyFailure:"\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u3078\u306E\u30B3\u30D4\u30FC\u306B\u5931\u6557\u3057\u307E\u3057\u305F",renameSuccess:'"{name}"\u306B\u540D\u524D\u5909\u66F4\u3057\u307E\u3057\u305F',renameFailure:"\u30D5\u30A1\u30A4\u30EB\u306E\u540D\u524D\u5909\u66F4\u306B\u5931\u6557\u3057\u307E\u3057\u305F",copyPathSuccess:"\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",copyUrlSuccess:"Obsidian URL\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",updateRecurrenceFailure:"\u30BF\u30B9\u30AF\u7E70\u308A\u8FD4\u3057\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{message}",updateTagsFailed:"\u30BF\u30B0\u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F"},tags:"\u30BF\u30B0",addTag:"\u30BF\u30B0\u3092\u8FFD\u52A0\u2026",removeTag:"{tag} \u3092\u524A\u9664",removeTagInput:"\u30BF\u30B0\u3092\u524A\u9664\u2026",tagPlaceholder:"\u30BF\u30B0\u307E\u305F\u306F #tag",clearTags:"\u30BF\u30B0\u3092\u30AF\u30EA\u30A2"},priority:{clearPriority:"\u512A\u5148\u5EA6\u3092\u30AF\u30EA\u30A2"},ics:{showDetails:"\u8A73\u7D30\u3092\u8868\u793A",createTask:"\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u30BF\u30B9\u30AF\u3092\u4F5C\u6210",createNote:"\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u30CE\u30FC\u30C8\u3092\u4F5C\u6210",linkNote:"\u65E2\u5B58\u306E\u30CE\u30FC\u30C8\u3092\u30EA\u30F3\u30AF",copyTitle:"\u30BF\u30A4\u30C8\u30EB\u3092\u30B3\u30D4\u30FC",copyLocation:"\u5834\u6240\u3092\u30B3\u30D4\u30FC",copyUrl:"URL\u3092\u30B3\u30D4\u30FC",copyMarkdown:"Markdown\u3068\u3057\u3066\u30B3\u30D4\u30FC",subscriptionUnknown:"\u4E0D\u660E\u306A\u30AB\u30EC\u30F3\u30C0\u30FC",notices:{copyTitleSuccess:"\u30A4\u30D9\u30F3\u30C8\u30BF\u30A4\u30C8\u30EB\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",copyLocationSuccess:"\u5834\u6240\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",copyUrlSuccess:"\u30A4\u30D9\u30F3\u30C8URL\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",copyMarkdownSuccess:"\u30A4\u30D9\u30F3\u30C8\u8A73\u7D30\u3092Markdown\u3068\u3057\u3066\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",copyFailure:"\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u3078\u306E\u30B3\u30D4\u30FC\u306B\u5931\u6557\u3057\u307E\u3057\u305F",taskCreated:"\u30BF\u30B9\u30AF\u3092\u4F5C\u6210\u3057\u307E\u3057\u305F\uFF1A{title}",taskCreateFailure:"\u30A4\u30D9\u30F3\u30C8\u304B\u3089\u306E\u30BF\u30B9\u30AF\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F",noteCreated:"\u30CE\u30FC\u30C8\u304C\u6B63\u5E38\u306B\u4F5C\u6210\u3055\u308C\u307E\u3057\u305F",creationFailure:"\u4F5C\u6210\u30E2\u30FC\u30C0\u30EB\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F",linkSuccess:'\u30CE\u30FC\u30C8"{name}"\u3092\u30A4\u30D9\u30F3\u30C8\u306B\u30EA\u30F3\u30AF\u3057\u307E\u3057\u305F',linkFailure:"\u30CE\u30FC\u30C8\u306E\u30EA\u30F3\u30AF\u306B\u5931\u6557\u3057\u307E\u3057\u305F",linkSelectionFailure:"\u30CE\u30FC\u30C8\u9078\u629E\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F"},markdown:{titleFallback:"\u7121\u984C\u306E\u30A4\u30D9\u30F3\u30C8",calendar:"**\u30AB\u30EC\u30F3\u30C0\u30FC\uFF1A** {value}",date:"**\u65E5\u6642\uFF1A** {value}",location:"**\u5834\u6240\uFF1A** {value}",descriptionHeading:"### \u8AAC\u660E",url:"**URL\uFF1A** {value}",at:" {time}\u306B"}},date:{increment:{plusOneDay:"+1\u65E5",minusOneDay:"-1\u65E5",plusOneWeek:"+1\u9031",minusOneWeek:"-1\u9031"},basic:{today:"\u4ECA\u65E5",tomorrow:"\u660E\u65E5",thisWeekend:"\u4ECA\u9031\u672B",nextWeek:"\u6765\u9031",nextMonth:"\u6765\u6708"},weekdaysLabel:"\u5E73\u65E5",selected:"\u2713 {label}",pickDateTime:"\u65E5\u6642\u3092\u9078\u629E\u2026",clearDate:"\u65E5\u4ED8\u3092\u30AF\u30EA\u30A2",modal:{title:"\u65E5\u6642\u3092\u8A2D\u5B9A",dateLabel:"\u65E5\u4ED8",timeLabel:"\u6642\u9593\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09",select:"\u9078\u629E"}}},services:{pomodoro:{notices:{alreadyRunning:"\u30DD\u30E2\u30C9\u30FC\u30ED\u304C\u65E2\u306B\u5B9F\u884C\u4E2D\u3067\u3059",resumeCurrentSession:"\u65B0\u3057\u3044\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u958B\u59CB\u3059\u308B\u4EE3\u308F\u308A\u306B\u73FE\u5728\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u518D\u958B\u3057\u3066\u304F\u3060\u3055\u3044",timerAlreadyRunning:"\u30BF\u30A4\u30DE\u30FC\u304C\u65E2\u306B\u5B9F\u884C\u4E2D\u3067\u3059",resumeSessionInstead:"\u65B0\u3057\u3044\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u958B\u59CB\u3059\u308B\u4EE3\u308F\u308A\u306B\u73FE\u5728\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u518D\u958B\u3057\u3066\u304F\u3060\u3055\u3044",shortBreakStarted:"\u77ED\u3044\u4F11\u61A9\u3092\u958B\u59CB\u3057\u307E\u3057\u305F",longBreakStarted:"\u9577\u3044\u4F11\u61A9\u3092\u958B\u59CB\u3057\u307E\u3057\u305F",paused:"\u30DD\u30E2\u30C9\u30FC\u30ED\u304C\u4E00\u6642\u505C\u6B62\u3055\u308C\u307E\u3057\u305F",resumed:"\u30DD\u30E2\u30C9\u30FC\u30ED\u304C\u518D\u958B\u3055\u308C\u307E\u3057\u305F",stoppedAndReset:"\u30DD\u30E2\u30C9\u30FC\u30ED\u304C\u505C\u6B62\u304A\u3088\u3073\u30EA\u30BB\u30C3\u30C8\u3055\u308C\u307E\u3057\u305F",migrationSuccess:"{count}\u4EF6\u306E\u30DD\u30E2\u30C9\u30FC\u30ED\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8\u306B\u6B63\u5E38\u306B\u79FB\u884C\u3055\u308C\u307E\u3057\u305F\u3002",migrationFailure:"\u30DD\u30E2\u30C9\u30FC\u30ED\u30C7\u30FC\u30BF\u306E\u79FB\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u8A66\u884C\u3059\u308B\u304B\u3001\u8A73\u7D30\u306B\u3064\u3044\u3066\u306F\u30B3\u30F3\u30BD\u30FC\u30EB\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}},icsSubscription:{notices:{calendarNotFound:'\u30AB\u30EC\u30F3\u30C0\u30FC"{name}"\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08404\uFF09\u3002ICS URL\u304C\u6B63\u3057\u304F\u3001\u30AB\u30EC\u30F3\u30C0\u30FC\u304C\u516C\u958B\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u3067\u3042\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002',calendarAccessDenied:'\u30AB\u30EC\u30F3\u30C0\u30FC"{name}"\u306E\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F\uFF08500\uFF09\u3002\u3053\u308C\u306FMicrosoft Outlook\u30B5\u30FC\u30D0\u30FC\u306E\u5236\u9650\u306B\u3088\u308B\u3082\u306E\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002\u30AB\u30EC\u30F3\u30C0\u30FC\u8A2D\u5B9A\u304B\u3089ICS URL\u3092\u518D\u751F\u6210\u3057\u3066\u307F\u3066\u304F\u3060\u3055\u3044\u3002',fetchRemoteFailed:'\u30EA\u30E2\u30FC\u30C8\u30AB\u30EC\u30F3\u30C0\u30FC"{name}"\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{error}',readLocalFailed:'\u30ED\u30FC\u30AB\u30EB\u30AB\u30EC\u30F3\u30C0\u30FC"{name}"\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{error}'}},calendarExport:{notices:{generateLinkFailed:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30EA\u30F3\u30AF\u306E\u751F\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F",noTasksToExport:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",downloadSuccess:"{count}\u4EF6\u306E\u30BF\u30B9\u30AF\u3092\u542B\u3080{filename}\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u307E\u3057\u305F",downloadFailed:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30D5\u30A1\u30A4\u30EB\u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F",singleDownloadSuccess:"{filename}\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u307E\u3057\u305F"}},filter:{groupLabels:{noProject:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306A\u3057",noTags:"\u30BF\u30B0\u306A\u3057",invalidDate:"\u7121\u52B9\u306A\u65E5\u4ED8",due:{overdue:"\u671F\u9650\u5207\u308C",today:"\u4ECA\u65E5",tomorrow:"\u660E\u65E5",nextSevenDays:"\u6B21\u306E7\u65E5\u9593",later:"\u5F8C\u3067",none:"\u671F\u9650\u65E5\u306A\u3057"},scheduled:{past:"\u904E\u53BB\u306E\u4E88\u5B9A",today:"\u4ECA\u65E5",tomorrow:"\u660E\u65E5",nextSevenDays:"\u6B21\u306E7\u65E5\u9593",later:"\u5F8C\u3067",none:"\u4E88\u5B9A\u65E5\u306A\u3057"}},errors:{noDatesProvided:"\u65E5\u4ED8\u304C\u63D0\u4F9B\u3055\u308C\u3066\u3044\u307E\u305B\u3093"},folders:{root:"\uFF08\u30EB\u30FC\u30C8\uFF09"}},instantTaskConvert:{notices:{noCheckboxTasks:"\u73FE\u5728\u306E\u30CE\u30FC\u30C8\u306B\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002",convertingTasks:"{count}\u4EF6\u306E\u30BF\u30B9\u30AF\u3092\u5909\u63DB\u4E2D...",conversionSuccess:"\u2705 {count}\u4EF6\u306E\u30BF\u30B9\u30AF\u3092TaskNotes\u306B\u6B63\u5E38\u306B\u5909\u63DB\u3057\u307E\u3057\u305F\uFF01",partialConversion:"{successCount}\u4EF6\u306E\u30BF\u30B9\u30AF\u304C\u5909\u63DB\u3055\u308C\u307E\u3057\u305F\u3002{failureCount}\u4EF6\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002",batchConversionFailed:"\u30D0\u30C3\u30C1\u5909\u63DB\u306E\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",invalidParameters:"\u7121\u52B9\u306A\u5165\u529B\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3002",emptyLine:"\u73FE\u5728\u306E\u884C\u304C\u7A7A\u3067\u3042\u308B\u304B\u3001\u6709\u52B9\u306A\u30B3\u30F3\u30C6\u30F3\u30C4\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002",parseError:"\u30BF\u30B9\u30AF\u306E\u89E3\u6790\u30A8\u30E9\u30FC\uFF1A{error}",invalidTaskData:"\u7121\u52B9\u306A\u30BF\u30B9\u30AF\u30C7\u30FC\u30BF\u3002",replaceLineFailed:"\u30BF\u30B9\u30AF\u884C\u306E\u7F6E\u63DB\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",conversionComplete:"\u30BF\u30B9\u30AF\u304C\u5909\u63DB\u3055\u308C\u307E\u3057\u305F\uFF1A{title}",conversionCompleteShortened:'\u30BF\u30B9\u30AF\u304C\u5909\u63DB\u3055\u308C\u307E\u3057\u305F\uFF1A"{title}"\uFF08\u9577\u3055\u306E\u305F\u3081\u30D5\u30A1\u30A4\u30EB\u540D\u304C\u77ED\u7E2E\u3055\u308C\u307E\u3057\u305F\uFF09',fileExists:"\u3053\u306E\u540D\u524D\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u518D\u8A66\u884C\u3059\u308B\u304B\u30BF\u30B9\u30AF\u306E\u540D\u524D\u3092\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002",conversionFailed:"\u30BF\u30B9\u30AF\u306E\u5909\u63DB\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}},icsNote:{notices:{templateNotFound:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF1A{path}",templateProcessError:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u51E6\u7406\u30A8\u30E9\u30FC\uFF1A{template}",linkedToEvent:"\u30CE\u30FC\u30C8\u3092ICS\u30A4\u30D9\u30F3\u30C8\u306B\u30EA\u30F3\u30AF\u3057\u307E\u3057\u305F\uFF1A{title}"}},task:{notices:{templateNotFound:"\u30BF\u30B9\u30AF\u30DC\u30C7\u30A3\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF1A{path}",templateReadError:"\u30BF\u30B9\u30AF\u30DC\u30C7\u30A3\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u8AAD\u307F\u8FBC\u307F\u30A8\u30E9\u30FC\uFF1A{template}",occurrenceTemplateNotFound:"\u767A\u751F\u30CE\u30FC\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF1A{path}",occurrenceTemplateReadError:"\u767A\u751F\u30CE\u30FC\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u8AAD\u307F\u8FBC\u307F\u30A8\u30E9\u30FC\uFF1A{template}",moveTaskFailed:"{operation}\u30BF\u30B9\u30AF\u306E\u79FB\u52D5\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{error}"}},autoExport:{notices:{exportFailed:"TaskNotes\u81EA\u52D5\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{error}"}}},ui:{icsCard:{untitledEvent:"\u7121\u984C\u306E\u30A4\u30D9\u30F3\u30C8",allDay:"\u7D42\u65E5",calendarEvent:"\u30AB\u30EC\u30F3\u30C0\u30FC\u30A4\u30D9\u30F3\u30C8",calendarFallback:"\u30AB\u30EC\u30F3\u30C0\u30FC"},noteCard:{createdLabel:"\u4F5C\u6210\uFF1A",dailyBadge:"\u30C7\u30A4\u30EA\u30FC",dailyTooltip:"\u30C7\u30A4\u30EA\u30FC\u30CE\u30FC\u30C8"},taskCard:{labels:{due:"\u671F\u9650",scheduled:"\u4E88\u5B9A",recurrence:"\u7E70\u308A\u8FD4\u3057",completed:"\u5B8C\u4E86",created:"\u4F5C\u6210",modified:"\u66F4\u65B0",blocked:"\u30D6\u30ED\u30C3\u30AF",blocking:"\u30D6\u30ED\u30C3\u30AF\u4E2D"},blockedBadge:"\u30D6\u30ED\u30C3\u30AF\u4E2D",blockedBadgeTooltip:"\u3053\u306E\u30BF\u30B9\u30AF\u306F\u4ED6\u306E\u30BF\u30B9\u30AF\u3092\u5F85\u3063\u3066\u3044\u307E\u3059",blockingBadge:"\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u308B",blockingBadgeTooltip:"\u3053\u306E\u30BF\u30B9\u30AF\u306F\u4ED6\u306E\u30BF\u30B9\u30AF\u3092\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u307E\u3059",blockingToggle:"{count} \u4EF6\u306E\u30BF\u30B9\u30AF\u3092\u30D6\u30ED\u30C3\u30AF",priorityAriaLabel:"\u512A\u5148\u5EA6: {label}",taskOptions:"\u30BF\u30B9\u30AF\u30AA\u30D7\u30B7\u30E7\u30F3",recurrenceTooltip:"{label}: {value}",reminderTooltipOne:"\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u304C1\u4EF6\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059 (\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7BA1\u7406)",reminderTooltipMany:"{count}\u4EF6\u306E\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059 (\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7BA1\u7406)",projectTooltip:"\u3053\u306E\u30BF\u30B9\u30AF\u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3068\u3057\u3066\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\uFF08\u30AF\u30EA\u30C3\u30AF\u3067\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u8868\u793A/\u975E\u8868\u793A\uFF09",projectIndicatorTooltip:"\u3053\u306E\u30BF\u30B9\u30AF\u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3068\u3057\u3066\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059",expandSubtasks:"\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u5C55\u958B",collapseSubtasks:"\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u6298\u308A\u305F\u305F\u3080",dueToday:"{label}: \u4ECA\u65E5",dueTodayAt:"{label}: \u4ECA\u65E5 {time}",dueOverdue:"{label}: {display} (\u671F\u9650\u8D85\u904E)",dueLabel:"{label}: {display}",scheduledToday:"{label}: \u4ECA\u65E5",scheduledTodayAt:"{label}: \u4ECA\u65E5 {time}",scheduledPast:"{label}: {display} (\u904E\u53BB)",scheduledLabel:"{label}: {display}",loadingDependencies:"\u4F9D\u5B58\u95A2\u4FC2\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026",blockingEmpty:"\u4F9D\u5B58\u30BF\u30B9\u30AF\u306F\u3042\u308A\u307E\u305B\u3093",blockingLoadError:"\u4F9D\u5B58\u95A2\u4FC2\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",googleCalendarSyncTooltip:"Google\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u540C\u671F\u6E08\u307F",detailsTooltip:"\u30BF\u30B9\u30AF\u306B\u8A73\u7D30\u304C\u3042\u308A\u307E\u3059"},propertyEventCard:{unknownFile:"\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB"},filterHeading:{allViewName:"\u3059\u3079\u3066"},filterBar:{saveView:"\u30D3\u30E5\u30FC\u3092\u4FDD\u5B58",saveViewNamePlaceholder:"\u30D3\u30E5\u30FC\u540D\u3092\u5165\u529B...",saveButton:"\u4FDD\u5B58",views:"\u30D3\u30E5\u30FC",savedFilterViews:"\u4FDD\u5B58\u3055\u308C\u305F\u30D5\u30A3\u30EB\u30BF\u30FC\u30D3\u30E5\u30FC",filters:"\u30D5\u30A3\u30EB\u30BF\u30FC",properties:"\u30D7\u30ED\u30D1\u30C6\u30A3",sort:"\u30BD\u30FC\u30C8",newTask:"\u65B0\u898F",expandAllGroups:"\u3059\u3079\u3066\u306E\u30B0\u30EB\u30FC\u30D7\u3092\u5C55\u958B",collapseAllGroups:"\u3059\u3079\u3066\u306E\u30B0\u30EB\u30FC\u30D7\u3092\u6298\u308A\u305F\u305F\u307F",searchTasksPlaceholder:"\u30BF\u30B9\u30AF\u3092\u691C\u7D22...",searchTasksTooltip:"\u30BF\u30B9\u30AF\u30BF\u30A4\u30C8\u30EB\u3092\u691C\u7D22",filterUnavailable:"\u30D5\u30A3\u30EB\u30BF\u30FC\u30D0\u30FC\u304C\u4E00\u6642\u7684\u306B\u5229\u7528\u3067\u304D\u307E\u305B\u3093",toggleFilter:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u5207\u308A\u66FF\u3048",activeFiltersTooltip:"\u30A2\u30AF\u30C6\u30A3\u30D6\u30D5\u30A3\u30EB\u30BF\u30FC \u2013 \u30AF\u30EA\u30C3\u30AF\u3067\u5909\u66F4\u3001\u53F3\u30AF\u30EA\u30C3\u30AF\u3067\u30AF\u30EA\u30A2",configureVisibleProperties:"\u8868\u793A\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8A2D\u5B9A",sortAndGroupOptions:"\u30BD\u30FC\u30C8\u3068\u30B0\u30EB\u30FC\u30D7\u30AA\u30D7\u30B7\u30E7\u30F3",sortMenuHeader:"\u30BD\u30FC\u30C8",orderMenuHeader:"\u9806\u5E8F",groupMenuHeader:"\u30B0\u30EB\u30FC\u30D7",createNewTask:"\u65B0\u3057\u3044\u30BF\u30B9\u30AF\u3092\u4F5C\u6210",filter:"\u30D5\u30A3\u30EB\u30BF\u30FC",displayOrganization:"\u8868\u793A\u3068\u6574\u7406",viewOptions:"\u30D3\u30E5\u30FC\u30AA\u30D7\u30B7\u30E7\u30F3",addFilter:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u8FFD\u52A0",addFilterGroup:"\u30D5\u30A3\u30EB\u30BF\u30FC\u30B0\u30EB\u30FC\u30D7\u3092\u8FFD\u52A0",addFilterTooltip:"\u65B0\u3057\u3044\u30D5\u30A3\u30EB\u30BF\u30FC\u6761\u4EF6\u3092\u8FFD\u52A0",addFilterGroupTooltip:"\u30CD\u30B9\u30C8\u3057\u305F\u30D5\u30A3\u30EB\u30BF\u30FC\u30B0\u30EB\u30FC\u30D7\u3092\u8FFD\u52A0",clearAllFilters:"\u3059\u3079\u3066\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u3068\u30B0\u30EB\u30FC\u30D7\u3092\u30AF\u30EA\u30A2",saveCurrentFilter:"\u73FE\u5728\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u30D3\u30E5\u30FC\u3068\u3057\u3066\u4FDD\u5B58",closeFilterModal:"\u30D5\u30A3\u30EB\u30BF\u30FC\u30E2\u30FC\u30C0\u30EB\u3092\u9589\u3058\u308B",deleteFilterGroup:"\u30D5\u30A3\u30EB\u30BF\u30FC\u30B0\u30EB\u30FC\u30D7\u3092\u524A\u9664",deleteCondition:"\u6761\u4EF6\u3092\u524A\u9664",all:"\u3059\u3079\u3066",any:"\u3044\u305A\u308C\u304B",followingAreTrue:"\u4EE5\u4E0B\u304C\u771F\uFF1A",where:"\u3053\u3053\u3067",selectProperty:"\u9078\u629E...",chooseProperty:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3059\u308B\u30BF\u30B9\u30AF\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u9078\u629E",chooseOperator:"\u30D7\u30ED\u30D1\u30C6\u30A3\u5024\u306E\u6BD4\u8F03\u65B9\u6CD5\u3092\u9078\u629E",enterValue:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3059\u308B\u5024\u3092\u5165\u529B",selectValue:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3059\u308B{property}\u3092\u9078\u629E",sortBy:"\u30BD\u30FC\u30C8\u9806\uFF1A",toggleSortDirection:"\u30BD\u30FC\u30C8\u65B9\u5411\u3092\u5207\u308A\u66FF\u3048",chooseSortMethod:"\u30BF\u30B9\u30AF\u306E\u30BD\u30FC\u30C8\u65B9\u6CD5\u3092\u9078\u629E",groupBy:"\u30B0\u30EB\u30FC\u30D7\u5316\uFF1A",chooseGroupMethod:"\u5171\u901A\u30D7\u30ED\u30D1\u30C6\u30A3\u3067\u30BF\u30B9\u30AF\u3092\u30B0\u30EB\u30FC\u30D7\u5316",toggleViewOption:"{option}\u3092\u5207\u308A\u66FF\u3048",expandCollapseFilters:"\u30AF\u30EA\u30C3\u30AF\u3067\u30D5\u30A3\u30EB\u30BF\u30FC\u6761\u4EF6\u3092\u5C55\u958B/\u6298\u308A\u305F\u305F\u307F",expandCollapseSort:"\u30AF\u30EA\u30C3\u30AF\u3067\u30BD\u30FC\u30C8\u3068\u30B0\u30EB\u30FC\u30D7\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u5C55\u958B/\u6298\u308A\u305F\u305F\u307F",expandCollapseViewOptions:"\u30AF\u30EA\u30C3\u30AF\u3067\u30D3\u30E5\u30FC\u56FA\u6709\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u5C55\u958B/\u6298\u308A\u305F\u305F\u307F",naturalLanguageDates:"\u81EA\u7136\u8A00\u8A9E\u65E5\u4ED8",naturalLanguageExamples:"\u81EA\u7136\u8A00\u8A9E\u65E5\u4ED8\u306E\u4F8B\u3092\u8868\u793A",enterNumericValue:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3059\u308B\u6570\u5024\u3092\u5165\u529B",enterDateValue:"\u81EA\u7136\u8A00\u8A9E\u307E\u305F\u306FISO\u5F62\u5F0F\u3067\u65E5\u4ED8\u3092\u5165\u529B",pickDateTime:"\u65E5\u6642\u3092\u9078\u629E",noSavedViews:"\u4FDD\u5B58\u3055\u308C\u305F\u30D3\u30E5\u30FC\u304C\u3042\u308A\u307E\u305B\u3093",savedViews:"\u4FDD\u5B58\u3055\u308C\u305F\u30D3\u30E5\u30FC",yourSavedFilters:"\u4FDD\u5B58\u3055\u308C\u305F\u30D5\u30A3\u30EB\u30BF\u30FC\u8A2D\u5B9A",dragToReorder:"\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u30D3\u30E5\u30FC\u3092\u4E26\u3073\u66FF\u3048",loadSavedView:"\u4FDD\u5B58\u3055\u308C\u305F\u30D3\u30E5\u30FC\u3092\u8AAD\u307F\u8FBC\u307F\uFF1A{name}",deleteView:"\u30D3\u30E5\u30FC\u3092\u524A\u9664",deleteViewTitle:"\u30D3\u30E5\u30FC\u3092\u524A\u9664",deleteViewMessage:'\u30D3\u30E5\u30FC"{name}"\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F',manageAllReminders:"\u3059\u3079\u3066\u306E\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u7BA1\u7406...",clearAllReminders:"\u3059\u3079\u3066\u306E\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u30AF\u30EA\u30A2",customRecurrence:"\u30AB\u30B9\u30BF\u30E0\u7E70\u308A\u8FD4\u3057...",clearRecurrence:"\u7E70\u308A\u8FD4\u3057\u3092\u30AF\u30EA\u30A2",sortOptions:{dueDate:"\u671F\u9650\u65E5",scheduledDate:"\u4E88\u5B9A\u65E5",priority:"\u512A\u5148\u5EA6",status:"\u30B9\u30C6\u30FC\u30BF\u30B9",title:"\u30BF\u30A4\u30C8\u30EB",createdDate:"\u4F5C\u6210\u65E5",tags:"\u30BF\u30B0",ascending:"\u6607\u9806",descending:"\u964D\u9806"},group:{none:"\u306A\u3057",status:"\u30B9\u30C6\u30FC\u30BF\u30B9",priority:"\u512A\u5148\u5EA6",context:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",project:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",dueDate:"\u671F\u9650\u65E5",scheduledDate:"\u4E88\u5B9A\u65E5",tags:"\u30BF\u30B0",completedDate:"\u5B8C\u4E86\u65E5"},subgroupLabel:"\u30B5\u30D6\u30B0\u30EB\u30FC\u30D7",notices:{propertiesMenuFailed:"\u30D7\u30ED\u30D1\u30C6\u30A3\u30E1\u30CB\u30E5\u30FC\u306E\u8868\u793A\u306B\u5931\u6557\u3057\u307E\u3057\u305F"}}},components:{dateContextMenu:{weekdays:"\u5E73\u65E5",clearDate:"\u65E5\u4ED8\u3092\u30AF\u30EA\u30A2",today:"\u4ECA\u65E5",tomorrow:"\u660E\u65E5",thisWeekend:"\u4ECA\u9031\u672B",nextWeek:"\u6765\u9031",nextMonth:"\u6765\u6708",setDateTime:"\u65E5\u6642\u3092\u8A2D\u5B9A",dateLabel:"\u65E5\u4ED8",timeLabel:"\u6642\u9593\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09"},subgroupMenuBuilder:{none:"\u306A\u3057",status:"\u30B9\u30C6\u30FC\u30BF\u30B9",priority:"\u512A\u5148\u5EA6",context:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",project:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",dueDate:"\u671F\u9650\u65E5",scheduledDate:"\u4E88\u5B9A\u65E5",tags:"\u30BF\u30B0",completedDate:"\u5B8C\u4E86\u65E5",subgroup:"\u30B5\u30D6\u30B0\u30EB\u30FC\u30D7"},propertyVisibilityDropdown:{coreProperties:"\u30B3\u30A2\u30D7\u30ED\u30D1\u30C6\u30A3",organization:"\u7D44\u7E54",customProperties:"\u30AB\u30B9\u30BF\u30E0\u30D7\u30ED\u30D1\u30C6\u30A3",failed:"\u30D7\u30ED\u30D1\u30C6\u30A3\u30E1\u30CB\u30E5\u30FC\u306E\u8868\u793A\u306B\u5931\u6557\u3057\u307E\u3057\u305F",properties:{statusDot:"\u30B9\u30C6\u30FC\u30BF\u30B9\u30C9\u30C3\u30C8",priorityDot:"\u512A\u5148\u5EA6\u30C9\u30C3\u30C8",dueDate:"\u671F\u9650\u65E5",scheduledDate:"\u4E88\u5B9A\u65E5",timeEstimate:"\u6642\u9593\u898B\u7A4D\u3082\u308A",totalTrackedTime:"\u7DCF\u8FFD\u8DE1\u6642\u9593",checklistProgress:"\u30C1\u30A7\u30C3\u30AF\u30EA\u30B9\u30C8\u306E\u9032\u6357",recurrence:"\u7E70\u308A\u8FD4\u3057",completedDate:"\u5B8C\u4E86\u65E5",createdDate:"\u4F5C\u6210\u65E5",modifiedDate:"\u5909\u66F4\u65E5",projects:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",contexts:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",tags:"\u30BF\u30B0",blocked:"\u30D6\u30ED\u30C3\u30AF\u4E2D",blocking:"\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u308B"}},reminderContextMenu:{remindBeforeDue:"\u671F\u9650\u524D\u306B\u30EA\u30DE\u30A4\u30F3\u30C9...",remindBeforeScheduled:"\u4E88\u5B9A\u524D\u306B\u30EA\u30DE\u30A4\u30F3\u30C9...",manageAllReminders:"\u3059\u3079\u3066\u306E\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u7BA1\u7406...",clearAllReminders:"\u3059\u3079\u3066\u306E\u30EA\u30DE\u30A4\u30F3\u30C0\u30FC\u3092\u30AF\u30EA\u30A2",quickReminders:{atTime:"\u30A4\u30D9\u30F3\u30C8\u6642\u523B\u306B",fiveMinutesBefore:"5\u5206\u524D",fifteenMinutesBefore:"15\u5206\u524D",oneHourBefore:"1\u6642\u9593\u524D",oneDayBefore:"1\u65E5\u524D"}},recurrenceContextMenu:{daily:"\u6BCE\u65E5",weeklyOn:"\u6BCE\u9031{day}\u66DC\u65E5",everyTwoWeeksOn:"2\u9031\u9593\u3054\u3068\u306E{day}\u66DC\u65E5",monthlyOnThe:"\u6BCE\u6708{ordinal}",everyThreeMonthsOnThe:"3\u304B\u6708\u3054\u3068\u306E{ordinal}",yearlyOn:"\u6BCE\u5E74{month}{ordinal}",weekdaysOnly:"\u5E73\u65E5\u306E\u307F",dailyAfterCompletion:"\u6BCE\u65E5\uFF08\u5B8C\u4E86\u5F8C\uFF09",every3DaysAfterCompletion:"3\u65E5\u3054\u3068\uFF08\u5B8C\u4E86\u5F8C\uFF09",weeklyAfterCompletion:"\u6BCE\u9031\uFF08\u5B8C\u4E86\u5F8C\uFF09",monthlyAfterCompletion:"\u6BCE\u6708\uFF08\u5B8C\u4E86\u5F8C\uFF09",customRecurrence:"\u30AB\u30B9\u30BF\u30E0\u7E70\u308A\u8FD4\u3057...",clearRecurrence:"\u7E70\u308A\u8FD4\u3057\u3092\u30AF\u30EA\u30A2",customRecurrenceModal:{title:"\u30AB\u30B9\u30BF\u30E0\u7E70\u308A\u8FD4\u3057",startDate:"\u958B\u59CB\u65E5",startDateDesc:"\u7E70\u308A\u8FD4\u3057\u30D1\u30BF\u30FC\u30F3\u304C\u59CB\u307E\u308B\u65E5\u4ED8",startTime:"\u958B\u59CB\u6642\u523B",startTimeDesc:"\u7E70\u308A\u8FD4\u3057\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u8868\u793A\u3055\u308C\u308B\u6642\u523B\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09",recurFrom:"\u7E70\u308A\u8FD4\u3057\u306E\u57FA\u6E96",recurFromDesc:"\u6B21\u306E\u767A\u751F\u3092\u3044\u3064\u304B\u3089\u8A08\u7B97\u3057\u307E\u3059\u304B\uFF1F",scheduledDate:"\u4E88\u5B9A\u65E5",completionDate:"\u5B8C\u4E86\u65E5",frequency:"\u983B\u5EA6",interval:"\u9593\u9694",intervalDesc:"X\u65E5/\u9031/\u6708/\u5E74\u3054\u3068",daysOfWeek:"\u66DC\u65E5",daysOfWeekDesc:"\u7279\u5B9A\u306E\u66DC\u65E5\u3092\u9078\u629E\uFF08\u9031\u6B21\u7E70\u308A\u8FD4\u3057\u7528\uFF09",monthlyRecurrence:"\u6708\u6B21\u7E70\u308A\u8FD4\u3057",monthlyRecurrenceDesc:"\u6708\u6B21\u7E70\u308A\u8FD4\u3057\u65B9\u6CD5\u3092\u9078\u629E",yearlyRecurrence:"\u5E74\u6B21\u7E70\u308A\u8FD4\u3057",yearlyRecurrenceDesc:"\u5E74\u6B21\u7E70\u308A\u8FD4\u3057\u65B9\u6CD5\u3092\u9078\u629E",endCondition:"\u7D42\u4E86\u6761\u4EF6",endConditionDesc:"\u7E70\u308A\u8FD4\u3057\u306E\u7D42\u4E86\u6642\u671F\u3092\u9078\u629E",neverEnds:"\u7D42\u4E86\u3057\u306A\u3044",endAfterOccurrences:"{count}\u56DE\u5F8C\u306B\u7D42\u4E86",endOnDate:"{date}\u306B\u7D42\u4E86",onDayOfMonth:"\u6BCE\u6708{day}\u65E5",onTheWeekOfMonth:"\u6BCE\u6708{week}{day}\u66DC\u65E5",onDateOfYear:"\u6BCE\u5E74{month}{day}",onTheWeekOfYear:"\u6BCE\u5E74{month}\u306E{week}{day}\u66DC\u65E5",frequencies:{daily:"\u6BCE\u65E5",weekly:"\u6BCE\u9031",monthly:"\u6BCE\u6708",yearly:"\u6BCE\u5E74"},weekPositions:{first:"\u7B2C1",second:"\u7B2C2",third:"\u7B2C3",fourth:"\u7B2C4",last:"\u6700\u7D42"},weekdays:{monday:"\u6708\u66DC\u65E5",tuesday:"\u706B\u66DC\u65E5",wednesday:"\u6C34\u66DC\u65E5",thursday:"\u6728\u66DC\u65E5",friday:"\u91D1\u66DC\u65E5",saturday:"\u571F\u66DC\u65E5",sunday:"\u65E5\u66DC\u65E5"},weekdaysShort:{mon:"\u6708",tue:"\u706B",wed:"\u6C34",thu:"\u6728",fri:"\u91D1",sat:"\u571F",sun:"\u65E5"},cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",save:"\u4FDD\u5B58"}}}};var pxe={common:{appName:"TaskNotes",new:"Novo",cancel:"Cancelar",confirm:"Confirmar",close:"Fechar",save:"Salvar",reorder:{confirmLargeTitle:"Confirmar grande reordena\xE7\xE3o",confirmButton:"Reordenar notas",confirmLargeMessage:'Reordenar aqui atualizar\xE1 "{field}" em {count} notas para criar uma ordem manual persistente para {scope}. Notas ocultas ou filtradas no mesmo escopo tamb\xE9m podem ser atualizadas. Continuar?'},language:"Idioma",systemDefault:"Padr\xE3o do sistema",loading:"Carregando...",languages:{en:"Ingl\xEAs",fr:"Franc\xEAs",ru:"Russo",zh:"Chin\xEAs",de:"Alem\xE3o",es:"Espanhol",ja:"Japon\xEAs",pt:"Portugu\xEAs (Brasil)",ko:"Coreano"},weekdays:{sunday:"Domingo",monday:"Segunda-feira",tuesday:"Ter\xE7a-feira",wednesday:"Quarta-feira",thursday:"Quinta-feira",friday:"Sexta-feira",saturday:"S\xE1bado"},months:{january:"Janeiro",february:"Fevereiro",march:"Mar\xE7o",april:"Abril",may:"Maio",june:"Junho",july:"Julho",august:"Agosto",september:"Setembro",october:"Outubro",november:"Novembro",december:"Dezembro"}},views:{agenda:{title:"Agenda",today:"Hoje",overdue:"Atrasadas",refreshCalendars:"Atualizar calend\xE1rios",actions:{previousPeriod:"Per\xEDodo anterior",nextPeriod:"Pr\xF3ximo per\xEDodo",goToToday:"Ir para hoje",refreshCalendars:"Atualizar inscri\xE7\xF5es de calend\xE1rio"},loading:"Carregando agenda...",dayToggle:"Alternar dia",overdueToggle:"Alternar se\xE7\xE3o de atrasadas",expandAllDays:"Expandir Todos os Dias",collapseAllDays:"Recolher Todos os Dias",notices:{calendarNotReady:"Servi\xE7o de calend\xE1rio ainda n\xE3o est\xE1 pronto",calendarRefreshed:"Inscri\xE7\xF5es de calend\xE1rio atualizadas",refreshFailed:"Falha ao atualizar"},empty:{noItemsScheduled:"Nenhum item agendado",noItemsFound:"Nenhum item encontrado",helpText:"Crie tarefas com datas de vencimento ou agendadas, ou adicione notas para v\xEA-las aqui."},contextMenu:{showOverdueSection:"Mostrar se\xE7\xE3o de atrasadas",showNotes:"Mostrar notas",calendarSubscriptions:"Inscri\xE7\xF5es de calend\xE1rio"},periods:{thisWeek:"Esta semana"},tipPrefix:"Dica: "},taskList:{title:"Tarefas",expandAllGroups:"Expandir Todos os Grupos",collapseAllGroups:"Recolher Todos os Grupos",noTasksFound:"Nenhuma tarefa encontrada para os filtros selecionados.",reorder:{scope:{ungrouped:"esta lista sem grupos",group:'grupo "{group}"'}},errors:{formulaGroupingReadOnly:"N\xE3o \xE9 poss\xEDvel reordenar tarefas em grupos baseados em f\xF3rmulas. Valores de f\xF3rmula s\xE3o calculados e n\xE3o podem ser alterados diretamente."}},notes:{title:"Notas",refreshButton:"Atualizar",refreshingButton:"Atualizando...",notices:{indexingDisabled:"Indexa\xE7\xE3o de notas desativada"},empty:{noNotesFound:"Nenhuma nota encontrada",helpText:"Nenhuma nota encontrada para a data selecionada. Tente selecionar uma data diferente no Mini Calend\xE1rio ou crie algumas notas."},loading:"Carregando notas...",refreshButtonAriaLabel:"Atualizar lista de notas"},miniCalendar:{title:"Mini Calend\xE1rio",contextMenu:{openDailyNote:"Abrir nota di\xE1ria",openWeeklyNote:"Abrir nota semanal"}},advancedCalendar:{title:"Calend\xE1rio",filters:{showFilters:"Mostrar filtros",hideFilters:"Ocultar filtros"},viewOptions:{calendarSubscriptions:"Inscri\xE7\xF5es de calend\xE1rio",timeEntries:"Registros de tempo",timeblocks:"Blocos de tempo",scheduledDates:"Datas agendadas",dueDates:"Datas de vencimento",allDaySlot:"Slot de dia inteiro",scheduledTasks:"Tarefas agendadas",recurringTasks:"Tarefas recorrentes"},buttons:{refresh:"Atualizar",refreshHint:"Atualizar Inscri\xE7\xF5es de Calend\xE1rio"},notices:{icsServiceNotAvailable:"Servi\xE7o de inscri\xE7\xE3o ICS n\xE3o dispon\xEDvel",calendarRefreshedAll:"Todas as inscri\xE7\xF5es de calend\xE1rio atualizadas com sucesso",refreshFailed:"Falha ao atualizar algumas inscri\xE7\xF5es de calend\xE1rio",timeblockSpecificTime:"Blocos de tempo devem ter hor\xE1rios espec\xEDficos. Por favor, selecione um intervalo de tempo na visualiza\xE7\xE3o de semana ou dia.",timeblockMoved:'Bloco de tempo "{title}" movido para {date}',timeblockUpdated:'Tempo do bloco de tempo "{title}" atualizado',timeblockMoveFailed:"Falha ao mover bloco de tempo: {message}",timeblockResized:'Dura\xE7\xE3o do bloco de tempo "{title}" atualizada',timeblockResizeFailed:"Falha ao redimensionar bloco de tempo: {message}",taskScheduled:'Tarefa "{title}" agendada para {date}',scheduleTaskFailed:"Falha ao agendar tarefa",endTimeAfterStart:"A hora de t\xE9rmino deve ser posterior \xE0 hora de in\xEDcio",timeEntryNotFound:"Registro de tempo n\xE3o encontrado",timeEntryDeleted:"Registro de tempo exclu\xEDdo",deleteTimeEntryFailed:"Falha ao excluir registro de tempo"},timeEntry:{estimatedSuffix:"estimado",trackedSuffix:"rastreado",recurringPrefix:"Recorrente: ",completedPrefix:"Conclu\xEDdo: ",createdPrefix:"Criado: ",modifiedPrefix:"Modificado: ",duePrefix:"Vencimento: ",scheduledPrefix:"Agendado: "},contextMenus:{openTask:"Abrir tarefa",deleteTimeEntry:"Excluir registro de tempo",deleteTimeEntryTitle:"Excluir Registro de Tempo",deleteTimeEntryConfirm:"Tem certeza de que deseja excluir este registro de tempo{duration}? Esta a\xE7\xE3o n\xE3o pode ser desfeita.",deleteButton:"Excluir",cancelButton:"Cancelar"}},basesCalendar:{title:"Calend\xE1rio de Bases",today:"Hoje",buttonText:{month:"M",week:"S",day:"D",year:"A",list:"L",customDays:"{count}D",listDays:"Lista {count}d",refresh:"Atualizar"},hints:{refresh:"Atualizar inscri\xE7\xF5es de calend\xE1rio",today:"Ir para hoje",prev:"Anterior",next:"Pr\xF3ximo",month:"Visualiza\xE7\xE3o mensal",week:"Visualiza\xE7\xE3o semanal",day:"Visualiza\xE7\xE3o di\xE1ria",year:"Visualiza\xE7\xE3o anual",list:"Visualiza\xE7\xE3o em lista",customDays:"Visualiza\xE7\xE3o de {count} dias"},settings:{groups:{dateNavigation:"Navega\xE7\xE3o de Data",events:"Eventos",layout:"Layout",view:"Visualiza\xE7\xE3o",display:"Exibi\xE7\xE3o",timeGrid:"Grade de hor\xE1rio",eventLayout:"Layout de eventos",propertyBasedEvents:"Eventos baseados em propriedade",calendarSubscriptions:"Inscri\xE7\xF5es de calend\xE1rio",googleCalendars:"Calend\xE1rios do Google",microsoftCalendars:"Calend\xE1rios da Microsoft"},dateNavigation:{navigateToDate:"Navegar para data",navigateToDatePlaceholder:"AAAA-MM-DD (ex: 2025-01-15) - deixe em branco para usar propriedade",navigateToDateFromProperty:"Navegar para data da propriedade",navigateToDateFromPropertyPlaceholder:"Selecione uma propriedade de data (opcional)",propertyNavigationStrategy:"Estrat\xE9gia de navega\xE7\xE3o da propriedade",createDailyNotesFromDateLinks:"Criar notas di\xE1rias a partir de links de data",strategies:{first:"Primeiro resultado",earliest:"Data mais antiga",latest:"Data mais recente"}},events:{showScheduledTasks:"Mostrar tarefas agendadas",showDueTasks:"Mostrar tarefas com vencimento",showOverdueOnToday:"Mostrar tarefas atrasadas na data de hoje",showRecurringTasks:"Mostrar tarefas recorrentes",showTimeEntries:"Mostrar registros de tempo",showTimeblocks:"Mostrar blocos de tempo",showPropertyBasedEvents:"Mostrar eventos baseados em propriedade",showCompletedRecurringInstances:"Mostrar inst\xE2ncias recorrentes conclu\xEDdas",showSkippedRecurringInstances:"Mostrar inst\xE2ncias recorrentes ignoradas"},layout:{calendarView:"Visualiza\xE7\xE3o do calend\xE1rio",customDayCount:"Contagem de dias personalizados",listDayCount:"Contagem de dias da lista",dayStartTime:"Hora de in\xEDcio do dia",dayStartTimePlaceholder:"HH:mm:ss (ex: 08:00:00)",dayEndTime:"Hora de t\xE9rmino do dia",dayEndTimePlaceholder:"HH:mm:ss (ex: 20:00:00)",timeSlotDuration:"Dura\xE7\xE3o do slot de tempo",timeSlotDurationPlaceholder:"HH:mm:ss (ex: 00:30:00)",dragDropResolution:"Resolu\xE7\xE3o de arrastar/soltar",dragDropResolutionPlaceholder:"HH:mm:ss (ex: 00:05:00)",weekStartsOn:"A semana come\xE7a em",showWeekNumbers:"Mostrar n\xFAmeros da semana",showNowIndicator:"Mostrar indicador 'agora'",showWeekends:"Mostrar fins de semana",showAllDaySlot:"Mostrar slot de dia inteiro",showTimeGrid:"Mostrar grade hor\xE1ria",showTodayHighlight:"Mostrar destaque de hoje",todayColumnWidthMultiplier:"Multiplicador de largura da coluna de hoje",showSelectionPreview:"Mostrar pr\xE9-visualiza\xE7\xE3o da sele\xE7\xE3o",timeFormat:"Formato da hora",timeFormat12:"12 horas (AM/PM)",timeFormat24:"24 horas",initialScrollTime:"Hora inicial de rolagem",initialScrollTimePlaceholder:"HH:mm:ss (ex: 08:00:00)",minimumEventHeight:"Altura m\xEDnima do evento (px)",slotEventOverlap:"Permitir sobreposi\xE7\xE3o de eventos",enableSearch:"Habilitar caixa de pesquisa",eventMaxStack:"M\xE1x. eventos empilhados (vista semana/dia, 0 = ilimitado)",dayMaxEvents:"M\xE1x. eventos por dia (vista m\xEAs, 0 = autom\xE1tico)",dayMaxEventRows:"M\xE1x. linhas de eventos por dia (vista m\xEAs, 0 = ilimitado)",spanScheduledToDue:"Estender tarefas entre data agendada e data de vencimento",heightMode:"Modo de altura",heightModeFill:"Preencher cont\xEAiner",heightModeAuto:"Altura autom\xE1tica"},propertyBasedEvents:{startDateProperty:"Propriedade da data de in\xEDcio",startDatePropertyPlaceholder:"Selecione a propriedade para data/hora de in\xEDcio",endDateProperty:"Propriedade da data de t\xE9rmino (opcional)",endDatePropertyPlaceholder:"Selecione a propriedade para data/hora de t\xE9rmino",titleProperty:"Propriedade do t\xEDtulo (opcional)",titlePropertyPlaceholder:"Selecione a propriedade para o t\xEDtulo do evento"}},notices:{noDailyNoteForDate:"N\xE3o existe nota di\xE1ria para esta data."},errors:{failedToInitialize:"Falha ao inicializar o calend\xE1rio"}},kanban:{title:"Kanban",newTask:"Nova tarefa",addCard:"+ Adicionar um cart\xE3o",noTasks:"Sem tarefas",uncategorized:"Sem categoria",noProject:"Sem Projeto",reorder:{scope:{column:'coluna "{group}"',columnInSwimlane:'coluna "{group}" na swimlane "{swimlane}"'}},notices:{loadFailed:"Falha ao carregar o quadro Kanban",movedTask:'Tarefa movida para "{0}"'},errors:{loadingBoard:"Erro ao carregar o quadro.",noGroupBy:"A vista Kanban requer que uma propriedade 'Agrupar por' seja configurada. Clique no bot\xE3o 'Ordenar' e selecione uma propriedade em 'Agrupar por'.",formulaGroupingReadOnly:"N\xE3o \xE9 poss\xEDvel mover tarefas entre colunas baseadas em f\xF3rmulas. Os valores de f\xF3rmula s\xE3o calculados e n\xE3o podem ser modificados diretamente.",formulaSwimlaneReadOnly:"N\xE3o \xE9 poss\xEDvel mover tarefas entre raias baseadas em f\xF3rmulas. Os valores de f\xF3rmula s\xE3o calculados e n\xE3o podem ser modificados diretamente."},columnTitle:"Sem t\xEDtulo"},pomodoro:{title:"Pomodoro",status:{focus:"Foco",ready:"Pronto para come\xE7ar",paused:"Pausado",working:"Trabalhando",shortBreak:"Pausa curta",longBreak:"Pausa longa",breakPrompt:"\xD3timo trabalho! Hora de uma pausa {length}",breakLength:{short:"curta",long:"longa"},breakComplete:"Pausa conclu\xEDda! Pronto para o pr\xF3ximo pomodoro?"},buttons:{start:"Iniciar",pause:"Pausar",stop:"Parar",resume:"Retomar",startShortBreak:"Iniciar Pausa Curta",startLongBreak:"Iniciar Pausa Longa",skipBreak:"Pular pausa",chooseTask:"Escolher tarefa...",changeTask:"Alterar tarefa...",clearTask:"Limpar tarefa",selectDifferentTask:"Selecionar uma tarefa diferente",startFocus:"Iniciar foco",addMinute:"Adicionar um minuto",subtractMinute:"Subtrair um minuto"},notices:{noTasks:"Nenhuma tarefa n\xE3o arquivada encontrada. Crie algumas tarefas primeiro.",loadFailed:"Falha ao carregar tarefas",invalidDuration:"Digite uma dura\xE7\xE3o como 10, 10:30 ou 1:30:00."},statsLabel:"conclu\xEDdos hoje",meta:{ready:"{time} planejado \xB7 {count} conclu\xEDdos hoje",running:"{time} restante \xB7 Termina \xE0s {endTime}",paused:"{type} pausado \xB7 {time} restante",breakReady:"{type} pronto \xB7 {time} planejado"},timer:{editLabel:"Editar dura\xE7\xE3o do timer",inputLabel:"Dura\xE7\xE3o do timer"}},pomodoroStats:{title:"Estat\xEDsticas Pomodoro",heading:"Estat\xEDsticas Pomodoro",refresh:"Atualizar",sections:{overview:"Vis\xE3o Geral",today:"Hoje",week:"Esta semana",allTime:"Todo o per\xEDodo",recent:"Sess\xF5es recentes"},overviewCards:{todayPomos:{label:"Pomos de Hoje",change:{more:"{count} a mais que ontem",less:"{count} a menos que ontem"}},totalPomos:{label:"Total de Pomos"},todayFocus:{label:"Foco de Hoje",change:{more:"{duration} a mais que ontem",less:"{duration} a menos que ontem"}},totalFocus:{label:"Dura\xE7\xE3o Total de Foco"}},stats:{pomodoros:"Pomodoros",streak:"Sequ\xEAncia",minutes:"Minutos",average:"Dura\xE7\xE3o m\xE9dia",completion:"Conclus\xE3o"},recents:{empty:"Nenhuma sess\xE3o registrada ainda",duration:"{minutes} min",status:{completed:"Conclu\xEDdo",interrupted:"Interrompido"},delete:"Excluir sess\xE3o",deleteAria:"Excluir sess\xE3o Pomodoro",deleteConfirmTitle:"Excluir sess\xE3o Pomodoro?",deleteConfirmMessage:"Isso remove a sess\xE3o do hist\xF3rico Pomodoro. Entradas de tempo de tarefas existentes n\xE3o s\xE3o alteradas.",deleteConfirmButton:"Excluir",deleteSuccess:"Sess\xE3o Pomodoro exclu\xEDda",deleteNotFound:"Sess\xE3o Pomodoro n\xE3o encontrada"},basesMigration:{title:"Quer uma visualiza\xE7\xE3o Base?",description:"As visualiza\xE7\xF5es Base de Pomodoro usam o frontmatter das notas di\xE1rias. Para ver esse hist\xF3rico na Base de estat\xEDsticas Pomodoro gerada, migre os dados do Pomodoro nas configura\xE7\xF5es e defina o armazenamento como notas di\xE1rias."}},stats:{title:"Estat\xEDsticas",taskProjectStats:"Estat\xEDsticas de Tarefas e Projetos",sections:{filters:"Filtros",overview:"Vis\xE3o Geral",today:"Hoje",thisWeek:"Esta Semana",thisMonth:"Este M\xEAs",projectBreakdown:"Detalhamento por Projeto",dateRange:"Intervalo de Datas"},filters:{minTime:"Tempo m\xEDn. (minutos)",allTasks:"Todas as Tarefas",activeOnly:"Somente Ativas",completedOnly:"Somente Conclu\xEDdas"},refreshButton:"Atualizar",timeRanges:{allTime:"Todo o per\xEDodo",last7Days:"\xDAltimos 7 dias",last30Days:"\xDAltimos 30 dias",last90Days:"\xDAltimos 90 dias",customRange:"Intervalo Personalizado"},resetFiltersButton:"Redefinir Filtros",dateRangeFrom:"De",dateRangeTo:"At\xE9",noProject:"Sem Projeto",cards:{timeTrackedEstimated:"Tempo Rastreado / Estimado",totalTasks:"Total de Tarefas",completionRate:"Taxa de Conclus\xE3o",activeProjects:"Projetos Ativos",avgTimePerTask:"Tempo M\xE9dio por Tarefa"},labels:{tasks:"Tarefas",completed:"Conclu\xEDdas",projects:"Projetos"},noProjectData:"Nenhum dado de projeto dispon\xEDvel",notAvailable:"N/D",noTasks:"Nenhuma tarefa encontrada",loading:"Carregando..."},releaseNotes:{title:"O que h\xE1 de novo no TaskNotes {version}",header:"O que h\xE1 de novo no TaskNotes {version}",viewAllLink:"Ver todas as notas de lan\xE7amento no GitHub \u2192",starMessage:"Agradecemos muito todo feedback. Se algo n\xE3o parecer certo, conte para n\xF3s no GitHub. Se voc\xEA acha o TaskNotes \xFAtil, considere dar uma estrela.",baseFilesNotice:"> [!info] Sobre os arquivos `.base` padr\xE3o\n> Altera\xE7\xF5es nos modelos `.base` gerados por padr\xE3o n\xE3o substituem seus arquivos `.base` existentes, para manter suas personaliza\xE7\xF5es.\n> Se quiser as melhorias mais recentes dos modelos, regenere os arquivos base em **Configura\xE7\xF5es \u2192 TaskNotes \u2192 Geral \u2192 Visualiza\xE7\xF5es e arquivos base \u2192 Atualizar arquivos**."}},settings:{header:{documentation:"Documenta\xE7\xE3o",documentationUrl:"https://tasknotes.dev"},tabs:{general:"Geral",taskProperties:"Propriedades da Tarefa",modalFields:"Campos do Modal",defaults:"Padr\xF5es e Modelos",appearance:"Apar\xEAncia e UI",features:"Recursos",integrations:"Integra\xE7\xF5es"},features:{inlineTasks:{header:"Tarefas Embutidas",description:"Configura\xE7\xF5es para links de tarefas e convers\xE3o de caixas de sele\xE7\xE3o em tarefas nas notas."},taskCreation:{header:"Cria\xE7\xE3o de tarefas",description:"Configure o que acontece depois que tarefas s\xE3o criadas.",openAfterCreate:{name:"Abrir tarefa ap\xF3s cria\xE7\xE3o",description:"Escolha se o modal normal Criar nova tarefa abre a nova nota de tarefa ap\xF3s salvar.",options:{none:"N\xE3o abrir",sameTab:"Abrir na mesma aba",newTab:"Abrir em uma nova aba"}}},overlays:{taskLinkToggle:{name:"Sobreposi\xE7\xE3o de link de tarefa",description:"Mostrar sobreposi\xE7\xF5es interativas ao passar o mouse sobre links de tarefas"},aliasExclusion:{name:"Desativar sobreposi\xE7\xE3o para links com alias",description:"N\xE3o mostrar o widget de tarefa se o link contiver um alias (ex. [[Tarefa|Alias]])."}},instantConvert:{toggle:{name:"Mostrar bot\xE3o de convers\xE3o ao lado de caixas de sele\xE7\xE3o",description:"Exibir um bot\xE3o embutido ao lado de caixas de sele\xE7\xE3o Markdown que as converte para TaskNotes"},preserveCheckbox:{name:"Manter a caixa de sele\xE7\xE3o ao converter",description:"Manter o marcador original da caixa de sele\xE7\xE3o Markdown ao converter uma caixa em link TaskNote"},folder:{name:"Pasta para tarefas criadas inline",description:"Pasta onde tarefas criadas por comandos inline ou convers\xE3o de caixas de sele\xE7\xE3o ser\xE3o criadas. Deixe em branco para usar a pasta padr\xE3o de tarefas. Use {{currentNotePath}} para a pasta da nota atual, ou {{currentNoteTitle}} para uma subpasta com o nome da nota atual."}},nlp:{header:"Processamento de Linguagem Natural",description:"Analisa datas, prioridades e outras propriedades do texto inserido.",enable:{name:"Habilitar entrada de tarefa em linguagem natural",description:"Analisar datas de vencimento, prioridades e contextos da linguagem natural ao criar tarefas"},defaultToScheduled:{name:"Padr\xE3o para agendado",description:"Quando a NLP detectar uma data sem contexto, trat\xE1-la como agendada em vez de vencimento"},language:{name:"Idioma da NLP",description:"Idioma para padr\xF5es de processamento de linguagem natural e an\xE1lise de datas"},statusTrigger:{name:"Gatilho de sugest\xE3o de status",description:"Texto para acionar sugest\xF5es de status (deixe em branco para desativar)"}},pomodoro:{header:"Temporizador Pomodoro",description:"Configure intervalos de trabalho/pausa para o temporizador Pomodoro.",workDuration:{name:"Dura\xE7\xE3o do trabalho",description:"Dura\xE7\xE3o dos intervalos de trabalho em minutos"},shortBreak:{name:"Dura\xE7\xE3o da pausa curta",description:"Dura\xE7\xE3o das pausas curtas em minutos"},longBreak:{name:"Dura\xE7\xE3o da pausa longa",description:"Dura\xE7\xE3o das pausas longas em minutos"},longBreakInterval:{name:"Intervalo da pausa longa",description:"N\xFAmero de sess\xF5es de trabalho antes de uma pausa longa"},autoStartBreaks:{name:"Iniciar pausas automaticamente",description:"Iniciar automaticamente os temporizadores de pausa ap\xF3s as sess\xF5es de trabalho"},autoStartWork:{name:"Iniciar trabalho automaticamente",description:"Iniciar automaticamente as sess\xF5es de trabalho ap\xF3s as pausas"},notifications:{name:"Notifica\xE7\xF5es Pomodoro",description:"Mostrar notifica\xE7\xF5es quando as sess\xF5es Pomodoro terminarem"},mobileSidebar:{name:"Barra lateral m\xF3vel",description:"Onde abrir o temporizador Pomodoro em dispositivos m\xF3veis",tab:"Painel de notas",left:"Barra lateral esquerda",right:"Barra lateral direita"},statusBar:{name:"Mostrar Pomodoro na barra de status",description:"Mostrar a contagem regressiva ativa do Pomodoro na barra de status do Obsidian"}},uiLanguage:{header:"Idioma da Interface",description:"Altere o idioma dos menus, avisos e visualiza\xE7\xF5es do TaskNotes.",dropdown:{name:"Idioma da UI",description:"Selecione o idioma usado para o texto da interface do TaskNotes"}},pomodoroSound:{enabledName:"Som ativado",enabledDesc:"Tocar som quando as sess\xF5es Pomodoro terminarem",volumeName:"Volume do som",volumeDesc:"Volume para sons Pomodoro (0-100)"},dataStorage:{name:"Armazenamento de dados Pomodoro",description:"Configure onde os dados da sess\xE3o pomodoro s\xE3o armazenados e como s\xE3o gerenciados.",dailyNotes:"Notas di\xE1rias",pluginData:"Dados do plugin",notices:{locationChanged:"Local de armazenamento Pomodoro alterado para {location}"}},notifications:{header:"Notifica\xE7\xF5es",description:"Configure notifica\xE7\xF5es de lembrete de tarefas e alertas.",enableName:"Ativar notifica\xE7\xF5es",enableDesc:"Ativar notifica\xE7\xF5es de lembrete de tarefas",typeName:"Tipo de notifica\xE7\xE3o",typeDesc:"Tipo de notifica\xE7\xF5es a serem mostradas",systemLabel:"Notifica\xE7\xF5es do sistema",inAppLabel:"Notifica\xE7\xF5es no aplicativo",soundEnabledName:"Som de notifica\xE7\xE3o",soundEnabledDesc:"Tocar um som quando lembretes de tarefa forem acionados",soundVolumeName:"Volume do som",soundVolumeDesc:"Volume dos sons de lembrete de tarefa (0-100)",soundPreviewName:"Pr\xE9-visualizar som de notifica\xE7\xE3o",soundPreviewDesc:"Tocar o som configurado de lembrete de tarefa",soundPreviewButton:"Pr\xE9-visualizar",testReminderName:"Enviar lembrete de teste",testReminderDesc:"Enviar um lembrete de teste usando o tipo de notifica\xE7\xE3o e as configura\xE7\xF5es de som atuais.",testReminderButton:"Enviar teste"},overdue:{hideCompletedName:"Ocultar tarefas conclu\xEDdas das atrasadas",hideCompletedDesc:"Excluir tarefas conclu\xEDdas dos c\xE1lculos de tarefas atrasadas"},indexing:{disableName:"Desativar indexa\xE7\xE3o de notas",disableDesc:"Desativar indexa\xE7\xE3o autom\xE1tica do conte\xFAdo das notas para melhor desempenho"},suggestions:{debounceName:"Debounce de sugest\xE3o",debounceDesc:"Atraso em milissegundos antes de mostrar sugest\xF5es"},timeTracking:{autoStopName:"Parar registro de tempo automaticamente",autoStopDesc:"Parar automaticamente o registro de tempo quando uma tarefa \xE9 marcada como conclu\xEDda",stopNotificationName:"Notifica\xE7\xE3o de parada de registro de tempo",stopNotificationDesc:"Mostrar notifica\xE7\xE3o quando o registro de tempo \xE9 parado automaticamente"},stopNotificationName:"Notifica\xE7\xE3o de parada de registro de tempo",stopNotificationDesc:"Mostrar notifica\xE7\xE3o quando o registro de tempo \xE9 parado automaticamente",recurring:{maintainOffsetName:"Manter deslocamento da data de vencimento em tarefas recorrentes",maintainOffsetDesc:"Manter o deslocamento entre a data de vencimento e a data agendada quando tarefas recorrentes s\xE3o conclu\xEDdas",resetCheckboxesName:"Redefinir caixas de sele\xE7\xE3o na recorr\xEAncia",resetCheckboxesDesc:"Redefinir todas as caixas de sele\xE7\xE3o markdown no corpo da tarefa quando uma tarefa recorrente \xE9 conclu\xEDda e reagendada"},timeblocking:{header:"Bloco de Tempo",description:"Configure a funcionalidade de bloco de tempo para agendamento leve em notas di\xE1rias. Arraste nas visualiza\xE7\xF5es de calend\xE1rio para criar eventos - selecione 'Bloco de Tempo' no menu de contexto.",enableName:"Ativar bloco de tempo",enableDesc:"Ativar recurso de bloco de tempo para agendamento leve em notas di\xE1rias. Quando ativado, a op\xE7\xE3o 'Bloco de Tempo' aparece no menu de contexto de arrastar do calend\xE1rio.",showBlocksName:"Mostrar blocos de tempo",showBlocksDesc:"Exibir blocos de tempo de notas di\xE1rias por padr\xE3o",defaultColorName:"Cor padr\xE3o do bloco de tempo",defaultColorDesc:"A cor padr\xE3o usada ao criar novos blocos de tempo",usage:"Uso: Arraste no calend\xE1rio para criar eventos. Selecione 'Bloco de Tempo' no menu de contexto (vis\xEDvel apenas quando o bloco de tempo est\xE1 ativado). Arraste para mover blocos de tempo existentes. Redimensione as bordas para ajustar a dura\xE7\xE3o."},performance:{header:"Desempenho e Comportamento",description:"Configure op\xE7\xF5es de desempenho e comportamento do plugin."},timeTrackingSection:{header:"Registro de Tempo",description:"Configure comportamentos autom\xE1ticos de registro de tempo."},recurringSection:{header:"Tarefas Recorrentes",description:"Configure o comportamento para gerenciamento de tarefas recorrentes."},debugLogging:{header:"Registro de depura\xE7\xE3o",description:"Configurar a sa\xEDda do log de depura\xE7\xE3o para solu\xE7\xE3o de problemas.",enableName:"Habilitar log de depura\xE7\xE3o",enableDesc:"Registrar diagn\xF3sticos detalhados de arrastar e soltar e de visualiza\xE7\xE3o no console do desenvolvedor. \xDAtil para solu\xE7\xE3o de problemas."}},defaults:{header:{basicDefaults:"Padr\xF5es B\xE1sicos",dateDefaults:"Padr\xF5es de Data",defaultReminders:"Lembretes padr\xE3o",bodyTemplate:"Modelo de Corpo",instantTaskConversion:"Convers\xE3o Instant\xE2nea de Tarefa"},description:{basicDefaults:"Defina valores padr\xE3o para novas tarefas para acelerar a cria\xE7\xE3o de tarefas.",dateDefaults:"Defina datas de vencimento e agendadas padr\xE3o para novas tarefas.",defaultReminders:"Configure lembretes padr\xE3o que ser\xE3o adicionados a novas tarefas.",bodyTemplate:"Configure um arquivo de modelo para usar no conte\xFAdo de novas tarefas.",instantTaskConversion:"Configure o comportamento ao converter texto para tarefas instantaneamente."},basicDefaults:{defaultStatus:{name:"Status padr\xE3o",description:"Status padr\xE3o para novas tarefas"},defaultPriority:{name:"Prioridade padr\xE3o",description:"Prioridade padr\xE3o para novas tarefas"},defaultContexts:{name:"Contextos padr\xE3o",description:"Lista de contextos padr\xE3o separados por v\xEDrgula (ex: @casa, @trabalho)",placeholder:"@casa, @trabalho"},defaultTags:{name:"Tags padr\xE3o",description:"Lista de tags padr\xE3o separadas por v\xEDrgula (sem #)",placeholder:"importante, urgente"},defaultProjects:{name:"Projetos padr\xE3o",description:"Links de projetos padr\xE3o para novas tarefas",selectButton:"Selecionar Projetos",selectTooltip:"Escolher notas de projeto para vincular por padr\xE3o",removeTooltip:"Remover {name} dos projetos padr\xE3o"},useParentNoteForTaskCreation:{name:"Usar nota ativa como projeto para novas tarefas",description:"Vincula automaticamente a nota ativa como projeto ao abrir a cria\xE7\xE3o de tarefas pela paleta de comandos ou pela faixa"},useParentNoteAsProject:{name:"Usar nota pai como projeto para cria\xE7\xE3o em linha e convers\xE3o instant\xE2nea",description:"Vincula automaticamente a nota de origem como projeto ao usar cria\xE7\xE3o de tarefas em linha ou convers\xE3o instant\xE2nea de tarefa"},useParentHeaderAsProject:{name:"Usar cabe\xE7alho pai como projeto durante a convers\xE3o instant\xE2nea",description:"Vincular automaticamente o cabe\xE7alho mais pr\xF3ximo acima da linha convertida como projeto ao usar a convers\xE3o instant\xE2nea de tarefa"},defaultTimeEstimate:{name:"Estimativa de tempo padr\xE3o",description:"Estimativa de tempo padr\xE3o em minutos (0 = sem padr\xE3o)",placeholder:"60"},defaultRecurrence:{name:"Recorr\xEAncia padr\xE3o",description:"Padr\xE3o de recorr\xEAncia padr\xE3o para novas tarefas"}},dateDefaults:{defaultDueDate:{name:"Data de vencimento padr\xE3o",description:"Data de vencimento padr\xE3o para novas tarefas"},defaultScheduledDate:{name:"Data agendada padr\xE3o",description:"Data agendada padr\xE3o para novas tarefas"}},reminders:{addReminder:{name:"Adicionar lembrete padr\xE3o",description:"Criar um novo lembrete padr\xE3o que ser\xE1 adicionado a todas as novas tarefas",buttonText:"Adicionar lembrete"},emptyState:"Nenhum lembrete padr\xE3o configurado. Adicione um lembrete para notific\xE1-lo automaticamente sobre novas tarefas.",emptyStateButton:"Adicionar Lembrete",reminderDescription:"Descri\xE7\xE3o do lembrete",unnamedReminder:"Lembrete Sem Nome",deleteTooltip:"Excluir lembrete",fields:{description:"Descri\xE7\xE3o:",type:"Tipo:",offset:"Deslocamento:",unit:"Unidade:",direction:"Dire\xE7\xE3o:",relatedTo:"Relacionado a:",date:"Data:",time:"Hora:"},types:{relative:"Relativo (antes/depois das datas da tarefa)",absolute:"Absoluto (data/hora espec\xEDfica)"},units:{minutes:"minutos",hours:"horas",days:"dias"},directions:{before:"antes",after:"depois"},relatedTo:{due:"data de vencimento",scheduled:"data agendada"}},bodyTemplate:{useBodyTemplate:{name:"Usar modelo de corpo",description:"Usar um arquivo de modelo para o conte\xFAdo do corpo da tarefa"},bodyTemplateFile:{name:"Arquivo de modelo de corpo",description:"Caminho para o arquivo de modelo para o conte\xFAdo do corpo da tarefa. Suporta vari\xE1veis de modelo como {{title}}, {{date}}, {{time}}, {{priority}}, {{status}}, etc.",placeholder:"Modelos/Modelo de Tarefa.md",ariaLabel:"Caminho para o arquivo de modelo de corpo"},useOccurrenceBodyTemplate:{name:"Usar modelo de nota de ocorr\xEAncia",description:"Usar um modelo alternativo separado para notas de ocorr\xEAncia materializadas quando a tarefa recorrente n\xE3o tiver occurrence_template"},occurrenceBodyTemplateFile:{name:"Arquivo de modelo de nota de ocorr\xEAncia",description:"Caminho para o arquivo de modelo para notas de ocorr\xEAncia materializadas. O campo occurrence_template de uma tarefa recorrente tem prioridade sobre este fallback.",placeholder:"Modelos/Modelo de Ocorr\xEAncia.md",ariaLabel:"Caminho para o arquivo de modelo de nota de ocorr\xEAncia"},variablesHeader:"Vari\xE1veis de modelo:",variables:{title:"{{title}} - T\xEDtulo da tarefa",details:"{{details}} - Detalhes fornecidos pelo usu\xE1rio no modal",date:"{{date}} - Data atual (AAAA-MM-DD)",time:"{{time}} - Hora atual (HH:MM)",priority:"{{priority}} - Prioridade da tarefa",status:"{{status}} - Status da tarefa",contexts:"{{contexts}} - Contextos da tarefa",tags:"{{tags}} - Tags da tarefa",projects:"{{projects}} - Projetos da tarefa"}},instantConversion:{useDefaultsOnInstantConvert:{name:"Usar padr\xF5es de tarefa na convers\xE3o instant\xE2nea",description:"Aplicar configura\xE7\xF5es padr\xE3o de tarefa ao converter texto para tarefas instantaneamente"}},options:{noDefault:"Sem padr\xE3o",none:"Nenhum",today:"Hoje",tomorrow:"Amanh\xE3",nextWeek:"Pr\xF3xima semana",daily:"Diariamente",weekly:"Semanalmente",monthly:"Mensalmente",yearly:"Anualmente"}},general:{taskStorage:{header:"Armazenamento de Tarefas",description:"Configure onde as tarefas s\xE3o armazenadas e como s\xE3o identificadas.",defaultFolder:{name:"Pasta padr\xE3o de tarefas",description:"Local padr\xE3o para novas tarefas. Suporta vari\xE1veis de modelo de pasta como {{currentNotePath}}, {{currentNoteTitle}} e {{projectFilePath}}, al\xE9m de tokens de data no estilo Daily Notes como YYYY/MM/DD."},moveArchived:{name:"Mover tarefas arquivadas para pasta",description:"Mover automaticamente tarefas arquivadas para uma pasta de arquivo"},archiveFolder:{name:"Pasta de arquivo",description:"Pasta para onde mover tarefas quando arquivadas. Suporta vari\xE1veis de modelo como {{year}}, {{month}}, {{priority}}, etc."}},taskIdentification:{header:"Identifica\xE7\xE3o de Tarefa",description:"Escolha como o TaskNotes identifica notas como tarefas.",identifyBy:{name:"Identificar tarefas por",description:"Escolha se deseja identificar tarefas por tag ou por uma propriedade do frontmatter",options:{tag:"Tag",property:"Propriedade"}},taskTag:{name:"Tag da tarefa",description:"Tag que identifica notas como tarefas (sem #). Os filtros de visualiza\xE7\xE3o .base existentes mant\xEAm a tag antiga quando isso muda; atualize os arquivos Base padr\xE3o ou edite esses filtros."},hideIdentifyingTags:{name:"Ocultar tags de identifica\xE7\xE3o nos cart\xF5es de tarefa",description:"Quando ativado, tags correspondentes \xE0 tag de identifica\xE7\xE3o da tarefa (incluindo correspond\xEAncias hier\xE1rquicas como 'tarefa/projeto') ser\xE3o ocultadas das exibi\xE7\xF5es do cart\xE3o de tarefa"},hideIdentifyingTagsMode:{name:"Escopo das tags ocultas",description:"Escolha se ocultar tags de identifica\xE7\xE3o tamb\xE9m oculta tags aninhadas.",options:{all:"Tag da tarefa e tags aninhadas",exactOnly:"Somente tag exata"}},taskProperty:{name:"Nome da propriedade da tarefa",description:'O nome da propriedade do frontmatter (ex: "categoria")'},taskPropertyValue:{name:"Valor da propriedade da tarefa",description:'O valor que identifica uma nota como uma tarefa (ex: "tarefa")'}},folderManagement:{header:"Gerenciamento de Pastas",excludedFolders:{name:"Pastas exclu\xEDdas",description:"Lista de pastas separadas por v\xEDrgula para excluir da indexa\xE7\xE3o de tarefas e sugest\xF5es de projetos"}},frontmatter:{header:"Frontmatter",description:"Configure como os links s\xE3o formatados nas propriedades do frontmatter.",useMarkdownLinks:{name:"Usar links markdown no frontmatter",description:`Gerar links markdown ([texto](caminho)) em vez de wikilinks ([[link]]) nas propriedades do frontmatter.
|
||
|
||
\u26A0\uFE0F Requer o plugin 'obsidian-frontmatter-markdown-links' para funcionar corretamente.`}},taskInteraction:{header:"Intera\xE7\xE3o com Tarefas",description:"Configure o comportamento ao clicar em tarefas.",singleClick:{name:"A\xE7\xE3o de clique \xFAnico",description:"A\xE7\xE3o realizada ao clicar uma vez em um cart\xE3o de tarefa"},doubleClick:{name:"A\xE7\xE3o de clique duplo",description:"A\xE7\xE3o realizada ao clicar duas vezes em um cart\xE3o de tarefa"},actions:{edit:"Editar tarefa",openNote:"Abrir nota",none:"Nenhuma a\xE7\xE3o"}},releaseNotes:{header:"Notas de Lan\xE7amento",description:"Vers\xE3o atual: {version}",showOnUpdate:{name:"Mostrar notas de lan\xE7amento ap\xF3s atualiza\xE7\xE3o",description:"Abrir automaticamente as notas de lan\xE7amento quando o TaskNotes for atualizado para uma nova vers\xE3o"},checkForUpdates:{name:"Verificar novas vers\xF5es na inicializa\xE7\xE3o",description:"Verifica o GitHub uma vez quando o TaskNotes inicia e mostra um aviso quando uma vers\xE3o compat\xEDvel mais recente est\xE1 dispon\xEDvel"},viewButton:{name:"Ver notas de lan\xE7amento",description:"Veja o que h\xE1 de novo na vers\xE3o mais recente do TaskNotes",buttonText:"Ver notas de lan\xE7amento"}}},taskProperties:{sections:{coreProperties:"Propriedades Principais",corePropertiesDesc:"Status e prioridade s\xE3o as propriedades principais que definem o estado e import\xE2ncia de uma tarefa.",dateProperties:"Propriedades de Data",datePropertiesDesc:"Configure quando as tarefas vencem e est\xE3o agendadas.",organizationProperties:"Propriedades de Organiza\xE7\xE3o",organizationPropertiesDesc:"Organize tarefas com contextos, projetos e tags.",taskDetails:"Detalhes da Tarefa",taskDetailsDesc:"Detalhes adicionais como estimativas de tempo, recorr\xEAncia e lembretes.",metadataProperties:"Propriedades de Metadados",metadataPropertiesDesc:"Propriedades gerenciadas pelo sistema para rastrear o hist\xF3rico de tarefas.",featureProperties:"Propriedades de Recursos",featurePropertiesDesc:"Propriedades usadas por recursos espec\xEDficos do TaskNotes como temporizador Pomodoro e sincroniza\xE7\xE3o de calend\xE1rio."},propertyCard:{propertyKey:"Chave da propriedade:",default:"Padr\xE3o:",nlpTrigger:"Gatilho NLP:",triggerChar:"Caractere gatilho:",triggerEmpty:"O gatilho n\xE3o pode estar vazio",triggerTooLong:"O gatilho \xE9 muito longo (m\xE1x. 10 caracteres)"},properties:{status:{name:"Status",description:"Rastreia o estado atual de uma tarefa (ex.: a fazer, em progresso, conclu\xEDdo). O status determina se uma tarefa aparece como conclu\xEDda e pode acionar o arquivamento autom\xE1tico."},priority:{name:"Prioridade",description:"Indica a import\xE2ncia da tarefa. Usado para ordena\xE7\xE3o e filtragem. Os valores s\xE3o ordenados alfabeticamente nas visualiza\xE7\xF5es Bases, ent\xE3o use prefixos como 1-, 2- para controlar a ordem."},due:{name:"Data de Vencimento",description:"O prazo at\xE9 o qual uma tarefa deve ser conclu\xEDda. Tarefas ap\xF3s a data de vencimento aparecem como atrasadas. Armazenado como data no frontmatter."},scheduled:{name:"Data Agendada",description:"Quando voc\xEA planeja trabalhar em uma tarefa. Diferente da data de vencimento, isso representa seu hor\xE1rio de in\xEDcio pretendido. As tarefas aparecem no calend\xE1rio na data/hora agendada."},contexts:{name:"Contextos",description:"Locais ou condi\xE7\xF5es onde uma tarefa pode ser feita (ex.: @casa, @escrit\xF3rio, @telefone). \xDAtil para filtrar tarefas pela sua situa\xE7\xE3o atual. Armazenado como lista."},projects:{name:"Projetos",description:"Links para notas de projeto \xE0s quais esta tarefa pertence. Armazenado como wikilinks (ex.: [[Nome do Projeto]]). As tarefas podem pertencer a m\xFAltiplos projetos."},tags:{name:"Tags",description:"Tags nativas do Obsidian para categorizar tarefas. S\xE3o armazenadas na propriedade tags do frontmatter e funcionam com os recursos de tags do Obsidian."},timeEstimate:{name:"Estimativa de Tempo",description:"Minutos estimados para concluir a tarefa. Usado para planejamento de tempo e carga de trabalho. Exibido em cart\xF5es de tarefas e eventos do calend\xE1rio."},recurrence:{name:"Recorr\xEAncia",description:"Padr\xE3o para tarefas repetitivas (di\xE1rio, semanal, mensal, anual ou RRULE personalizado). Quando uma tarefa recorrente \xE9 conclu\xEDda, sua data agendada \xE9 automaticamente atualizada para a pr\xF3xima ocorr\xEAncia."},recurrenceAnchor:{name:"\xC2ncora de recorr\xEAncia",description:"Controla como a pr\xF3xima ocorr\xEAncia \xE9 calculada: 'scheduled' usa a data agendada, 'completion' usa a data de conclus\xE3o real."},reminders:{name:"Lembretes",description:"Notifica\xE7\xF5es acionadas antes das datas de vencimento ou agendadas. Armazenado como lista de objetos de lembrete com hor\xE1rio e descri\xE7\xE3o opcional."},title:{name:"T\xEDtulo",description:"O nome da tarefa. Pode ser armazenado no frontmatter ou no nome do arquivo (quando 'Armazenar t\xEDtulo no nome do arquivo' est\xE1 habilitado)."},dateCreated:{name:"Data de Cria\xE7\xE3o",description:"Carimbo de data/hora de quando a tarefa foi criada. Definido automaticamente e usado para ordena\xE7\xE3o por ordem de cria\xE7\xE3o."},dateModified:{name:"Data de Modifica\xE7\xE3o",description:"Carimbo de data/hora da \xFAltima altera\xE7\xE3o na tarefa. Atualizado automaticamente quando qualquer propriedade da tarefa muda."},completedDate:{name:"Data de Conclus\xE3o",description:"Carimbo de data/hora de quando a tarefa foi marcada como conclu\xEDda. Definido automaticamente quando o status muda para um estado conclu\xEDdo."},archiveTag:{name:"Tag de Arquivo",description:"Tag adicionada \xE0s tarefas quando arquivadas. Usada para identificar tarefas arquivadas e pode acionar a movimenta\xE7\xE3o de arquivos para a pasta de arquivo."},timeEntries:{name:"Entradas de Tempo",description:"Registros de sess\xF5es de rastreamento de tempo para esta tarefa. Cada entrada armazena carimbos de data/hora de in\xEDcio e fim. Usado para calcular o tempo total gasto."},completeInstances:{name:"Inst\xE2ncias Conclu\xEDdas",description:"Hist\xF3rico de conclus\xE3o para tarefas recorrentes. Armazena as datas em que cada inst\xE2ncia foi conclu\xEDda para evitar conclus\xF5es duplicadas."},skippedInstances:{name:"Inst\xE2ncias Puladas",description:"Ocorr\xEAncias puladas para tarefas recorrentes. Armazena as datas de inst\xE2ncias que foram puladas em vez de conclu\xEDdas."},blockedBy:{name:"Bloqueada Por",description:"Links para tarefas que devem ser conclu\xEDdas antes desta. Armazenado como wikilinks. Tarefas bloqueadas exibem um indicador visual."},sortOrder:{name:"Ordem manual",description:"Propriedade de frontmatter usada para a ordem manual com arrastar e soltar. A visualiza\xE7\xE3o deve estar ordenada por esta propriedade para que a reordena\xE7\xE3o por arrastar e soltar funcione."},pomodoros:{name:"Pomodoros",description:"Contagem de sess\xF5es Pomodoro conclu\xEDdas. Quando o armazenamento de dados est\xE1 configurado para 'Notas di\xE1rias', isso \xE9 escrito nas notas di\xE1rias em vez dos arquivos de tarefa."},icsEventId:{name:"ID do Evento ICS",description:"Identificador \xFAnico vinculando uma nota a um evento de calend\xE1rio ICS. Adicionado automaticamente ao criar notas a partir de eventos de calend\xE1rio."},icsEventTag:{name:"Tag de Evento ICS",description:"Tag identificando notas criadas a partir de eventos de calend\xE1rio ICS. Usada para distinguir notas geradas pelo calend\xE1rio de tarefas regulares."}},statusCard:{valuesHeader:"Valores de Status"},priorityCard:{valuesHeader:"Valores de Prioridade"},projectsCard:{defaultProjects:"Projetos padr\xE3o:",useParentNoteForTaskCreation:"Usar nota ativa em novas tarefas:",useParentNoteForInlineTasks:"Usar nota pai em linha/convers\xE3o instant\xE2nea:",useParentHeader:"Usar cabe\xE7alho pai como projeto:",inheritParentTaskProperties:"Herdar propriedades da tarefa pai para subtarefas:",noDefaultProjects:"Nenhum projeto padr\xE3o selecionado",autosuggestFilters:"Filtros de Autosugest\xE3o",customizeDisplay:"Personalizar Exibi\xE7\xE3o",filtersOn:"Filtros Ativos"},titleCard:{storeTitleInFilename:"Armazenar t\xEDtulo no nome do arquivo:",storedInFilename:"Armazenado no nome do arquivo",filenameUpdatesWithTitle:"O nome do arquivo ser\xE1 atualizado automaticamente quando o t\xEDtulo da tarefa mudar.",filenameFormat:"Formato do nome do arquivo:",customTemplate:"Modelo personalizado:",legacySyntaxWarning:"A sintaxe de chaves simples como {title} est\xE1 obsoleta. Por favor, use a sintaxe de chaves duplas {{title}} para consist\xEAncia com os modelos de corpo.",occurrenceFilenameTemplate:"Modelo de nome de arquivo das ocorr\xEAncias",occurrenceFilenameTemplateHelp:"Modelo do nome de arquivo das ocorr\xEAncias materializadas de tarefas recorrentes. Deixe vazio para manter o nome existente (t\xEDtulo da tarefa-m\xE3e com sufixo num\xE9rico). Escolha explicitamente a granularidade com {{occurrenceDate}}, {{occurrenceWeek}}, {{occurrenceMonth}}, {{occurrenceYear}} ou {{occurrenceMonthName}}. Todas as vari\xE1veis normais de nome de arquivo tamb\xE9m funcionam. Uma tarefa-m\xE3e pode sobrescrever este modelo pela propriedade de frontmatter configurada abaixo.",occurrenceFilenameProperty:"Propriedade de sobrescrita do modelo",occurrenceFilenamePropertyHelp:"Nome da propriedade de frontmatter na tarefa recorrente (m\xE3e) que sobrescreve o modelo de nome de arquivo para as ocorr\xEAncias daquela tarefa."},tagsCard:{nativeObsidianTags:"Usa tags nativas do Obsidian"},remindersCard:{defaultReminders:"Lembretes Padr\xE3o"},taskStatuses:{header:"Status da Tarefa",description:"Personalize as op\xE7\xF5es de status dispon\xEDveis para suas tarefas. Esses status controlam o ciclo de vida da tarefa e determinam quando as tarefas s\xE3o consideradas conclu\xEDdas.",howTheyWork:{title:"Como os status funcionam:",value:'Valor: O identificador interno armazenado em seus arquivos de tarefa (ex: "em-progresso")',label:'R\xF3tulo: O nome de exibi\xE7\xE3o mostrado na interface (ex: "Em Progresso")',color:"Cor: Cor do indicador visual para o ponto de status e emblemas",icon:'\xCDcone: Nome de \xEDcone Lucide opcional para exibir em vez do ponto colorido (ex: "check", "circle", "clock"). Navegue pelos \xEDcones em lucide.dev',completed:"Conclu\xEDdo: Quando marcado, tarefas com este status s\xE3o consideradas finalizadas e podem ser filtradas de forma diferente",autoArchive:"Arquivar automaticamente: Quando ativado, as tarefas ser\xE3o automaticamente arquivadas ap\xF3s o atraso especificado (1-1440 minutos)",orderNote:"A ordem abaixo determina a sequ\xEAncia ao alternar entre os status clicando nos emblemas de status da tarefa."},addNew:{name:"Adicionar novo status",description:"Criar uma nova op\xE7\xE3o de status para suas tarefas",buttonText:"Adicionar status"},validationNote:'Nota: Voc\xEA deve ter pelo menos 2 status, e pelo menos um status deve ser marcado como "Conclu\xEDdo".',emptyState:"Nenhum status personalizado configurado. Adicione um status para come\xE7ar.",emptyStateButton:"Adicionar Status",fields:{value:"Valor:",label:"R\xF3tulo:",color:"Cor:",icon:"\xCDcone:",completed:"Conclu\xEDdo:",excludeFromCycle:"Ignorar no ciclo:",nextStatus:"Pr\xF3ximo status:",autoArchive:"Arquivar auto.:",delayMinutes:"Atraso (minutos):"},placeholders:{value:"em-progresso",label:"Em Progresso",icon:"check, circle, clock",nextStatusDefault:"Usar ordem dos status"},badges:{completed:"Conclu\xEDdo"},deleteConfirm:'Tem certeza de que deseja excluir o status "{label}"?'},taskPriorities:{header:"Prioridades da Tarefa",description:"Personalize os n\xEDveis de prioridade dispon\xEDveis para suas tarefas. Na v4.0+, as prioridades s\xE3o ordenadas alfabeticamente pelo seu valor nas visualiza\xE7\xF5es de Bases.",howTheyWork:{title:"Como as prioridades funcionam:",value:'Valor: O identificador interno armazenado em seus arquivos de tarefa. Use prefixos como "1-urgente", "2-alta" para controlar a ordem de classifica\xE7\xE3o nas visualiza\xE7\xF5es de Bases.',label:'R\xF3tulo de Exibi\xE7\xE3o: O nome de exibi\xE7\xE3o mostrado na interface (ex: "Prioridade Alta")',color:"Cor: Cor do indicador visual para o ponto de prioridade e emblemas",icon:"\xCDcone: \xCDcone Lucide opcional para mostrar nos cart\xF5es de tarefa no lugar do ponto de prioridade",weight:"Peso: Valor num\xE9rico para classifica\xE7\xE3o (pesos maiores aparecem primeiro nas listas)",weightNote:"As tarefas s\xE3o automaticamente classificadas pelo peso da prioridade em ordem decrescente (maior peso primeiro). Os pesos podem ser qualquer n\xFAmero positivo."},addNew:{name:"Adicionar nova prioridade",description:"Criar um novo n\xEDvel de prioridade para suas tarefas",buttonText:"Adicionar prioridade"},validationNote:"Nota: Voc\xEA deve ter pelo menos 1 prioridade. As prioridades s\xE3o ordenadas alfabeticamente por valor nas visualiza\xE7\xF5es de Bases.",emptyState:"Nenhuma prioridade personalizada configurada. Adicione uma prioridade para come\xE7ar.",emptyStateButton:"Adicionar Prioridade",fields:{value:"Valor:",label:"R\xF3tulo:",color:"Cor:",icon:"\xCDcone:",weight:"Peso:"},placeholders:{value:"alta",label:"Prioridade Alta",icon:"alert-circle"},weightLabel:"Peso: {weight}",deleteConfirm:"Voc\xEA deve ter pelo menos uma prioridade",deleteTooltip:"Excluir prioridade"},fieldMapping:{header:"Mapeamento de Campos",warning:"\u26A0\uFE0F Aviso: O TaskNotes ler\xE1 E escrever\xE1 usando esses nomes de propriedade. Alter\xE1-los ap\xF3s criar tarefas pode causar inconsist\xEAncias.",description:"Configure quais propriedades do frontmatter o TaskNotes deve usar para cada campo.",resetButton:{name:"Redefinir mapeamentos de campos",description:"Redefinir todos os mapeamentos de campos para os valores padr\xE3o",buttonText:"Redefinir para Padr\xF5es"},notices:{resetSuccess:"Mapeamentos de campos redefinidos para os padr\xF5es",resetFailure:"Falha ao redefinir mapeamentos de campos",updateFailure:"Falha ao atualizar o mapeamento de campo para {label}. Por favor, tente novamente."},table:{fieldHeader:"Campo do TaskNotes",propertyHeader:"Seu nome de propriedade"},fields:{title:"T\xEDtulo",status:"Status",priority:"Prioridade",due:"Data de vencimento",scheduled:"Data agendada",contexts:"Contextos",projects:"Projetos",timeEstimate:"Estimativa de tempo",recurrence:"Recorr\xEAncia",dateCreated:"Data de cria\xE7\xE3o",completedDate:"Data de conclus\xE3o",dateModified:"Data de modifica\xE7\xE3o",archiveTag:"Tag de arquivamento",timeEntries:"Registros de tempo",completeInstances:"Inst\xE2ncias conclu\xEDdas",blockedBy:"Bloqueada por",sortOrder:"Ordem manual",pomodoros:"Pomodoros",icsEventId:"ID do Evento ICS",icsEventTag:"Tag do Evento ICS",reminders:"Lembretes"}},customUserFields:{header:"Campos de Usu\xE1rio Personalizados",description:"Defina propriedades de frontmatter personalizadas para aparecerem como op\xE7\xF5es de filtro com reconhecimento de tipo nas visualiza\xE7\xF5es. Cada linha: Nome de Exibi\xE7\xE3o, Nome da Propriedade, Tipo.",addNew:{name:"Adicionar novo campo de usu\xE1rio",description:"Criar um novo campo personalizado que aparecer\xE1 em filtros e visualiza\xE7\xF5es",buttonText:"Adicionar campo de usu\xE1rio"},emptyState:"Nenhum campo de usu\xE1rio personalizado configurado. Adicione um campo para criar propriedades personalizadas para suas tarefas.",emptyStateButton:"Adicionar Campo de Usu\xE1rio",fields:{displayName:"Nome de Exibi\xE7\xE3o:",propertyKey:"Chave da Propriedade:",type:"Tipo:",defaultValue:"Valor Padr\xE3o:"},placeholders:{displayName:"Nome de Exibi\xE7\xE3o",propertyKey:"nome-da-propriedade",defaultValue:"Valor padr\xE3o",defaultValueList:"Valores padr\xE3o (separados por v\xEDrgula)"},types:{text:"Texto",number:"N\xFAmero",boolean:"Booleano",date:"Data",list:"Lista"},defaultNames:{unnamedField:"Campo Sem Nome",noKey:"sem-chave"},deleteTooltip:"Excluir campo",autosuggestFilters:{header:"Filtros de autossugest\xE3o (Avan\xE7ado)",description:"Filtre quais arquivos aparecem nas sugest\xF5es de preenchimento autom\xE1tico para este campo"}}},appearance:{taskCards:{header:"Cart\xF5es de Tarefa",description:"Configure como os cart\xF5es de tarefa s\xE3o exibidos em todas as visualiza\xE7\xF5es.",defaultVisibleProperties:{name:"Propriedades vis\xEDveis padr\xE3o",description:"Escolha quais propriedades aparecem nos cart\xF5es de tarefa por padr\xE3o."},propertyGroups:{coreProperties:"PROPRIEDADES PRINCIPAIS",organization:"ORGANIZA\xC7\xC3O",customProperties:"PROPRIEDADES PERSONALIZADAS"},properties:{status:"Ponto de Status",priority:"Ponto de Prioridade",due:"Data de Vencimento",scheduled:"Data Agendada",timeEstimate:"Estimativa de Tempo",totalTrackedTime:"Tempo Total Registrado",checklistProgress:"Progresso da lista de verifica\xE7\xE3o",recurrence:"Recorr\xEAncia",completedDate:"Data de Conclus\xE3o",createdDate:"Data de Cria\xE7\xE3o",modifiedDate:"Data de Modifica\xE7\xE3o",projects:"Projetos",contexts:"Contextos",tags:"Tags",blocked:"Bloqueada",blocking:"Bloqueando"}},taskFilenames:{header:"Nomes de Arquivo de Tarefa",description:"Configure como os arquivos de tarefa s\xE3o nomeados quando criados.",storeTitleInFilename:{name:"Armazenar t\xEDtulo no nome do arquivo",description:"Usar o t\xEDtulo da tarefa como nome do arquivo. O nome do arquivo ser\xE1 atualizado quando o t\xEDtulo da tarefa for alterado (Recomendado)."},filenameFormat:{name:"Formato do nome do arquivo",description:"Como os nomes dos arquivos de tarefa devem ser gerados",options:{title:"T\xEDtulo da tarefa (N\xE3o atualiza)",zettel:"Formato Zettelkasten (AAMMDD + segundos base36 desde a meia-noite)",timestamp:"Carimbo de data/hora completo (AAAA-MM-DD-HHMMSS)",custom:"Modelo personalizado",uuid:"UUID v4"}},customTemplate:{name:"Modelo de nome de arquivo personalizado",description:"Modelo para nomes de arquivo personalizados. Vari\xE1veis dispon\xEDveis: {{title}}, {{titleLower}}, {{titleUpper}}, {{titleSnake}}, {{titleKebab}}, {{titleCamel}}, {{titlePascal}}, {{date}}, {{shortDate}}, {{time}}, {{time12}}, {{time24}}, {{timestamp}}, {{dateTime}}, {{year}}, {{month}}, {{monthName}}, {{monthNameShort}}, {{day}}, {{dayName}}, {{dayNameShort}}, {{hour}}, {{hour12}}, {{minute}}, {{second}}, {{milliseconds}}, {{ms}}, {{ampm}}, {{week}}, {{quarter}}, {{unix}}, {{unixMs}}, {{timezone}}, {{timezoneShort}}, {{utcOffset}}, {{utcOffsetShort}}, {{utcZ}}, {{zettel}}, {{uuid}}, {{nano}}, {{priority}}, {{priorityShort}}, {{status}}, {{statusShort}}, {{dueDate}}, {{scheduledDate}}",placeholder:"{{date}}-{{title}}-{{dueDate}}",helpText:"Nota: {{dueDate}} e {{scheduledDate}} est\xE3o no formato AAAA-MM-DD e estar\xE3o vazios se n\xE3o forem definidos."}},displayFormatting:{header:"Formata\xE7\xE3o de Exibi\xE7\xE3o",description:"Configure como datas, horas e outros dados s\xE3o exibidos em todo o plugin.",timeFormat:{name:"Formato da hora",description:"Exibir hora no formato de 12 horas ou 24 horas em todo o plugin",options:{twelveHour:"12 horas (AM/PM)",twentyFourHour:"24 horas"}}},calendarView:{header:"Visualiza\xE7\xE3o de Calend\xE1rio",description:"Personalize a apar\xEAncia e o comportamento da visualiza\xE7\xE3o de calend\xE1rio.",defaultView:{name:"Visualiza\xE7\xE3o padr\xE3o",description:"A visualiza\xE7\xE3o de calend\xE1rio mostrada ao abrir a aba de calend\xE1rio",options:{monthGrid:"Grade Mensal",weekTimeline:"Linha do Tempo Semanal",dayTimeline:"Linha do Tempo Di\xE1ria",yearView:"Visualiza\xE7\xE3o Anual",customMultiDay:"V\xE1rios Dias Personalizado"}},customDayCount:{name:"Contagem de dias da visualiza\xE7\xE3o personalizada",description:"N\xFAmero de dias para mostrar na visualiza\xE7\xE3o personalizada de v\xE1rios dias",placeholder:"3"},firstDayOfWeek:{name:"Primeiro dia da semana",description:"Qual dia deve ser a primeira coluna nas visualiza\xE7\xF5es de semana"},showWeekends:{name:"Mostrar fins de semana",description:"Exibir fins de semana nas visualiza\xE7\xF5es de calend\xE1rio"},showWeekNumbers:{name:"Mostrar n\xFAmeros da semana",description:"Exibir n\xFAmeros da semana nas visualiza\xE7\xF5es de calend\xE1rio"},showTodayHighlight:{name:"Mostrar destaque de hoje",description:"Destacar o dia atual nas visualiza\xE7\xF5es de calend\xE1rio"},showCurrentTimeIndicator:{name:"Mostrar indicador de hora atual",description:"Exibir uma linha mostrando a hora atual nas visualiza\xE7\xF5es de linha do tempo"},selectionMirror:{name:"Espelho de sele\xE7\xE3o",description:"Mostrar uma pr\xE9-visualiza\xE7\xE3o visual ao arrastar para selecionar intervalos de tempo"},calendarLocale:{name:"Localidade do calend\xE1rio",description:'Localidade do calend\xE1rio para formata\xE7\xE3o de data e sistema de calend\xE1rio (ex: "pt-br", "en", "fa" para Farsi/Persa, "de" para Alem\xE3o). Deixe em branco para detectar automaticamente do navegador.',placeholder:"Autodetectar",invalidLocale:"Localidade inv\xE1lida. Por favor, insira um c\xF3digo de idioma v\xE1lido (ex: 'pt-BR', 'en', 'fr-FR')."}},defaultEventVisibility:{header:"Visibilidade Padr\xE3o de Eventos",description:"Configure quais tipos de eventos s\xE3o vis\xEDveis por padr\xE3o ao abrir o Calend\xE1rio. Os usu\xE1rios ainda podem ativ\xE1-los/desativ\xE1-los na visualiza\xE7\xE3o de calend\xE1rio.",showScheduledTasks:{name:"Mostrar tarefas agendadas",description:"Exibir tarefas com datas agendadas por padr\xE3o"},showDueDates:{name:"Mostrar datas de vencimento",description:"Exibir datas de vencimento de tarefas por padr\xE3o"},showDueWhenScheduled:{name:"Mostrar datas de vencimento quando agendadas",description:"Exibir datas de vencimento mesmo para tarefas que j\xE1 t\xEAm datas agendadas"},showTimeEntries:{name:"Mostrar registros de tempo",description:"Exibir entradas de registro de tempo conclu\xEDdas por padr\xE3o"},showRecurringTasks:{name:"Mostrar tarefas recorrentes",description:"Exibir inst\xE2ncias de tarefas recorrentes por padr\xE3o"},showICSEvents:{name:"Mostrar eventos ICS",description:"Exibir eventos de inscri\xE7\xF5es ICS por padr\xE3o"}},timeSettings:{header:"Configura\xE7\xF5es de Hora",description:"Configure as configura\xE7\xF5es de exibi\xE7\xE3o relacionadas ao tempo para visualiza\xE7\xF5es de linha do tempo.",timeSlotDuration:{name:"Dura\xE7\xE3o do slot de tempo",description:"Dura\xE7\xE3o de cada slot de tempo nas visualiza\xE7\xF5es de linha do tempo",options:{fifteenMinutes:"15 minutos",thirtyMinutes:"30 minutos",sixtyMinutes:"60 minutos"}},startTime:{name:"Hora de in\xEDcio",description:"Hora mais cedo mostrada nas visualiza\xE7\xF5es de linha do tempo (formato HH:MM)",placeholder:"06:00"},endTime:{name:"Hora de t\xE9rmino",description:"Hora mais tarde exibida em visualiza\xE7\xF5es de linha do tempo (formato HH:MM). Use valores acima de 24:00 para mostrar horas iniciais do dia seguinte, como 26:00 para 2h.",placeholder:"26:00"},initialScrollTime:{name:"Hora inicial de rolagem",description:"Hora para rolar ao abrir visualiza\xE7\xF5es de linha do tempo (formato HH:MM)",placeholder:"09:00"},eventMinHeight:{name:"Altura m\xEDnima do evento",description:"Altura m\xEDnima para eventos em visualiza\xE7\xF5es de linha do tempo (pixels)",placeholder:"15"}},uiElements:{header:"Elementos da UI",description:"Configure a exibi\xE7\xE3o de v\xE1rios elementos da UI.",showTrackedTasksInStatusBar:{name:"Mostrar tarefas rastreadas na barra de status",description:"Exibir tarefas atualmente rastreadas na barra de status do Obsidian"},showProjectSubtasksWidget:{name:"Mostrar widget de subtarefas do projeto",description:"Exibir um widget mostrando subtarefas para a nota do projeto atual"},projectSubtasksPosition:{name:"Posi\xE7\xE3o das subtarefas do projeto",description:"Onde posicionar o widget de subtarefas do projeto",options:{top:"Topo da nota",bottom:"Fundo da nota"}},showRelationshipsWidget:{name:"Mostrar widget de relacionamentos",description:"Exibir um widget mostrando todos os relacionamentos da nota atual (subtarefas, projetos, depend\xEAncias)"},relationshipsPosition:{name:"Posi\xE7\xE3o dos relacionamentos",description:"Onde posicionar o widget de relacionamentos",options:{top:"Topo da nota",bottom:"Final da nota"}},showTaskCardInNote:{name:"Mostrar cart\xE3o de tarefa na nota",description:"Exibir um widget de cart\xE3o de tarefa no topo das notas de tarefa mostrando os detalhes da tarefa e a\xE7\xF5es"},showCompletedTaskStrikethrough:{name:"Riscar t\xEDtulos de tarefas conclu\xEDdas",description:"Desenha uma linha sobre os t\xEDtulos de cart\xF5es de tarefas conclu\xEDdas. Desative para manter tarefas conclu\xEDdas mais f\xE1ceis de ler"},showExpandableSubtasks:{name:"Mostrar subtarefas expans\xEDveis",description:"Permitir expandir/recolher se\xE7\xF5es de subtarefas nos cart\xF5es de tarefa"},expandSubtasksByDefault:{name:"Expandir subtarefas por padr\xE3o",description:"Mostrar subtarefas de projeto expandidas quando os cart\xF5es de tarefa forem renderizados"},subtaskChevronPosition:{name:"Posi\xE7\xE3o do chevron de subtarefa",description:"Posi\xE7\xE3o dos chevrons de expandir/recolher nos cart\xF5es de tarefa",options:{left:"Lado esquerdo",right:"Lado direito"}},viewsButtonAlignment:{name:"Alinhamento do bot\xE3o de visualiza\xE7\xF5es",description:"Alinhamento do bot\xE3o de visualiza\xE7\xF5es/filtros na interface de tarefas",options:{left:"Lado esquerdo",right:"Lado direito"}}},projectAutosuggest:{header:"Autossugest\xE3o de Projeto",description:"Personalize como as sugest\xF5es de projeto s\xE3o exibidas durante a cria\xE7\xE3o da tarefa.",requiredTags:{name:"Tags obrigat\xF3rias",description:"Mostrar apenas notas com qualquer uma destas tags (separadas por v\xEDrgula). Deixe em branco para mostrar todas as notas.",placeholder:"projeto, ativo, importante"},includeFolders:{name:"Incluir pastas",description:"Mostrar apenas notas nestas pastas (caminhos separados por v\xEDrgula). Deixe em branco para mostrar todas as pastas.",placeholder:"Projetos/, Trabalho/Ativo, Pessoal"},requiredPropertyKey:{name:"Chave de propriedade obrigat\xF3ria",description:"Mostrar apenas notas onde esta propriedade do frontmatter corresponde ao valor abaixo. Deixe em branco para ignorar.",placeholder:"tipo"},requiredPropertyValue:{name:"Valor da propriedade obrigat\xF3ria",description:"Apenas notas onde a propriedade \xE9 igual a este valor s\xE3o sugeridas. Deixe em branco para exigir que a propriedade exista.",placeholder:"projeto"},customizeDisplay:{name:"Personalizar exibi\xE7\xE3o de sugest\xE3o",description:"Mostrar op\xE7\xF5es avan\xE7adas para configurar como as sugest\xF5es de projeto aparecem e quais informa\xE7\xF5es elas exibem."},enableFuzzyMatching:{name:"Ativar correspond\xEAncia difusa (fuzzy matching)",description:"Permitir erros de digita\xE7\xE3o e correspond\xEAncias parciais na busca de projetos. Pode ser mais lento em cofres grandes."},displayRowsHelp:"Configure at\xE9 3 linhas de informa\xE7\xE3o para mostrar para cada sugest\xE3o de projeto.",displayRows:{row1:{name:"Linha 1",description:"Formato: {propriedade|flags}. Propriedades: title, aliases, file.path, file.parent. Flags: n(R\xF3tulo) mostra r\xF3tulo, s torna pesquis\xE1vel. Exemplo: {title|n(T\xEDtulo)|s}",placeholder:"{title|n(T\xEDtulo)}"},row2:{name:"Linha 2 (opcional)",description:"Padr\xF5es comuns: {aliases|n(Apelidos)}, {file.parent|n(Pasta)}, literal:Texto Personalizado",placeholder:"{aliases|n(Apelidos)}"},row3:{name:"Linha 3 (opcional)",description:"Informa\xE7\xF5es adicionais como {file.path|n(Caminho)} ou campos de frontmatter personalizados",placeholder:"{file.path|n(Caminho)}"}},quickReference:{header:"Refer\xEAncia R\xE1pida",properties:"Propriedades dispon\xEDveis: title, aliases, file.path, file.parent, ou qualquer campo do frontmatter",labels:'Adicionar r\xF3tulos: {title|n(T\xEDtulo)} \u2192 "T\xEDtulo: Meu Projeto"',searchable:"Tornar pesquis\xE1vel: {description|s} inclui descri\xE7\xE3o na busca +",staticText:"Texto est\xE1tico: literal:Meu R\xF3tulo Personalizado",alwaysSearchable:"Nome do arquivo, t\xEDtulo e apelidos s\xE3o sempre pesquis\xE1veis por padr\xE3o."}},dataStorage:{name:"Local de Armazenamento",description:"Onde armazenar o hist\xF3rico de sess\xF5es Pomodoro",pluginData:"Dados do plugin (recomendado)",dailyNotes:"Notas Di\xE1rias",notices:{locationChanged:"Local de armazenamento Pomodoro alterado para {location}"}},notifications:{description:"Configure notifica\xE7\xF5es de lembrete de tarefas e alertas."},performance:{description:"Configure op\xE7\xF5es de desempenho e comportamento do plugin."},timeTrackingSection:{description:"Configure comportamentos autom\xE1ticos de registro de tempo."},recurringSection:{description:"Configure o comportamento para gerenciamento de tarefas recorrentes."}},integrations:{mobileCalendar:{disable:{name:"Desativar integra\xE7\xF5es de calend\xE1rio no mobile",description:"Ignora o carregamento de calend\xE1rios Google, Microsoft e ICS no Obsidian Mobile. As integra\xE7\xF5es de calend\xE1rio no desktop n\xE3o mudam."},status:{name:"As integra\xE7\xF5es de calend\xE1rio est\xE3o desativadas neste dispositivo m\xF3vel",description:"Desative esta configura\xE7\xE3o e recarregue o Obsidian Mobile para voltar a carregar calend\xE1rios."}},basesIntegration:{header:"Integra\xE7\xE3o com Bases",description:"Configure a integra\xE7\xE3o com o plugin Obsidian Bases. Este \xE9 um recurso experimental e atualmente depende de APIs n\xE3o documentadas do Obsidian. O comportamento pode mudar ou quebrar.",enable:{name:"Ativar integra\xE7\xE3o com Bases",description:"Permitir que as visualiza\xE7\xF5es do TaskNotes sejam usadas dentro do plugin Obsidian Bases. O plugin Bases deve estar ativado para que isso funcione."},viewCommands:{header:"Visualiza\xE7\xF5es e arquivos base",description:"O TaskNotes usa arquivos do Obsidian Bases (.base) para suas visualiza\xE7\xF5es. Esses arquivos s\xE3o gerados automaticamente na inicializa\xE7\xE3o se n\xE3o existirem, configurados com suas defini\xE7\xF5es atuais (identifica\xE7\xE3o de tarefas, mapeamento de campos, status, etc.).",descriptionRegen:'Os arquivos Base n\xE3o s\xE3o atualizados automaticamente quando voc\xEA altera as configura\xE7\xF5es. Para aplicar novas configura\xE7\xF5es, use "Atualizar arquivos" abaixo, exclua os arquivos .base existentes e reinicie o Obsidian, ou edite-os manualmente.',docsLink:"Ver documenta\xE7\xE3o para f\xF3rmulas dispon\xEDveis e op\xE7\xF5es de personaliza\xE7\xE3o",docsLinkUrl:"https://tasknotes.dev/views/default-base-templates",commands:{miniCalendar:"Abrir visualiza\xE7\xE3o de mini calend\xE1rio",kanban:"Abrir visualiza\xE7\xE3o kanban",tasks:"Abrir visualiza\xE7\xE3o de tarefas",advancedCalendar:"Abrir visualiza\xE7\xE3o de calend\xE1rio avan\xE7ado",agenda:"Abrir visualiza\xE7\xE3o de agenda",relationships:"Widget de relacionamentos",pomodoroStats:"Base de estat\xEDsticas Pomodoro"},fileLabel:"Arquivo: {path}",resetButton:"Redefinir",resetTooltip:"Redefinir para caminho padr\xE3o",pomodoroDailyNotesHint:"A Base de estat\xEDsticas Pomodoro gerada l\xEA o hist\xF3rico do Pomodoro nas notas di\xE1rias. Se o hist\xF3rico ainda estiver nos dados do plugin, migre-o nas configura\xE7\xF5es antes de usar esse arquivo Base."},autoCreateDefaultFiles:{name:"Criar arquivos padr\xE3o automaticamente",description:"Criar automaticamente arquivos Base padr\xE3o ausentes na inicializa\xE7\xE3o. Desative para evitar que arquivos de exemplo exclu\xEDdos sejam recriados."},createDefaultFiles:{name:"Criar arquivos padr\xE3o",description:"Crie os arquivos .base padr\xE3o no diret\xF3rio TaskNotes/Views/. Os arquivos existentes n\xE3o ser\xE3o sobrescritos.",buttonText:"Criar arquivos"},exportV3Views:{name:"Exportar visualiza\xE7\xF5es salvas V3 para Bases",description:"Converta todas as suas visualiza\xE7\xF5es salvas do TaskNotes v3 em um \xFAnico arquivo .base com m\xFAltiplas visualiza\xE7\xF5es. Isso ajuda a migrar suas configura\xE7\xF5es de filtro v3 para o novo sistema de Bases.",buttonText:"Exportar visualiza\xE7\xF5es V3",noViews:"Nenhuma visualiza\xE7\xE3o salva para exportar",fileExists:"O arquivo j\xE1 existe",confirmOverwrite:'Um arquivo chamado "{fileName}" j\xE1 existe. Sobrescrever?',success:"Exportadas {count} visualiza\xE7\xF5es salvas para {filePath}",error:"Falha ao exportar visualiza\xE7\xF5es: {message}"},notices:{enabled:"Integra\xE7\xE3o com Bases ativada. Por favor, reinicie o Obsidian para completar a configura\xE7\xE3o.",disabled:"Integra\xE7\xE3o com Bases desativada. Por favor, reinicie o Obsidian para completar a remo\xE7\xE3o."},updateDefaultFiles:{name:"Atualizar arquivos padr\xE3o",description:"Sobrescreve os arquivos .base padr\xE3o configurados com modelos gerados a partir das configura\xE7\xF5es atuais do TaskNotes.",buttonText:"Atualizar arquivos",confirmTitle:"Atualizar arquivos Base padr\xE3o",confirmMessage:"Isso sobrescrever\xE1 os arquivos .base padr\xE3o configurados com modelos rec\xE9m-gerados. Qualquer edi\xE7\xE3o manual nesses arquivos ser\xE1 substitu\xEDda.",confirmText:"Atualizar arquivos"}},calendarSubscriptions:{header:"Inscri\xE7\xF5es de calend\xE1rio",description:"Inscreva-se em calend\xE1rios externos via URLs ICS/iCal para ver eventos ao lado de suas tarefas.",defaultNoteTemplate:{name:"Modelo de nota padr\xE3o",description:"Caminho para o arquivo de modelo para notas criadas a partir de eventos ICS",placeholder:"Modelos/Modelo de Evento.md"},defaultNoteFolder:{name:"Pasta de notas padr\xE3o",description:"Pasta para notas criadas a partir de eventos ICS",placeholder:"Calend\xE1rio/Eventos"},filenameFormat:{name:"Formato de nome de arquivo da nota ICS",description:"Como os nomes dos arquivos s\xE3o gerados para notas criadas a partir de eventos ICS",options:{title:"T\xEDtulo do evento",zettel:"Formato Zettelkasten",timestamp:"Carimbo de data/hora",custom:"Modelo personalizado"}},customTemplate:{name:"Modelo de nome de arquivo ICS personalizado",description:"Modelo para nomes de arquivo de eventos ICS personalizados",placeholder:"{date}-{title}"},useICSEndAsDue:{name:"Usar hora de t\xE9rmino do evento ICS como data de vencimento",description:"Quando ativado, as tarefas criadas a partir de eventos de calend\xE1rio ter\xE3o sua data de vencimento definida para a hora de t\xE9rmino do evento. Para eventos de dia inteiro, a data de vencimento ser\xE1 a data do evento. Para eventos com hor\xE1rio, a data de vencimento incluir\xE1 a hora de t\xE9rmino."},recurringEventRelatedNotesMode:{name:"Notas relacionadas de eventos recorrentes",description:"Escolha se notas vinculadas a uma ocorr\xEAncia de um evento de calend\xE1rio externo aparecem em toda a s\xE9rie carregada ou apenas na inst\xE2ncia selecionada.",options:{series:"S\xE9rie inteira",instance:"Somente inst\xE2ncia selecionada"}}},subscriptionsList:{header:"Lista de inscri\xE7\xF5es de calend\xE1rio",addSubscription:{name:"Adicionar Inscri\xE7\xE3o de Calend\xE1rio",description:"Adicionar uma nova inscri\xE7\xE3o de calend\xE1rio de URL ICS/iCal ou arquivo local",buttonText:"Adicionar Inscri\xE7\xE3o"},refreshAll:{name:"Atualizar todas as inscri\xE7\xF5es",description:"Atualizar manualmente todas as inscri\xE7\xF5es de calend\xE1rio ativadas",buttonText:"Atualizar Todas"},newCalendarName:"Novo Calend\xE1rio",emptyState:"Nenhuma inscri\xE7\xE3o de calend\xE1rio configurada. Adicione uma inscri\xE7\xE3o para sincronizar calend\xE1rios externos.",notices:{addSuccess:"Nova inscri\xE7\xE3o de calend\xE1rio adicionada - por favor, configure os detalhes",addFailure:"Falha ao adicionar inscri\xE7\xE3o",serviceUnavailable:"Servi\xE7o de inscri\xE7\xE3o ICS n\xE3o dispon\xEDvel",refreshSuccess:"Todas as inscri\xE7\xF5es de calend\xE1rio atualizadas com sucesso",refreshFailure:"Falha ao atualizar algumas inscri\xE7\xF5es de calend\xE1rio",updateFailure:"Falha ao atualizar inscri\xE7\xE3o",deleteSuccess:'Inscri\xE7\xE3o "{name}" exclu\xEDda',deleteFailure:"Falha ao excluir inscri\xE7\xE3o",enableFirst:"Ative a inscri\xE7\xE3o primeiro",refreshSubscriptionSuccess:'"{name}" atualizado',refreshSubscriptionFailure:"Falha ao atualizar inscri\xE7\xE3o"},labels:{enabled:"Ativado:",name:"Nome:",type:"Tipo:",url:"URL:",filePath:"Caminho do Arquivo:",color:"Cor:",refreshMinutes:"Atualizar (min):"},typeOptions:{remote:"URL Remota",local:"Arquivo Local"},placeholders:{calendarName:"Nome do calend\xE1rio",url:"URL ICS/iCal",filePath:"Caminho do arquivo local (ex: Calendario.ics)",localFile:"Calendario.ics"},statusLabels:{enabled:"Ativado",disabled:"Desativado",remote:"Remoto",localFile:"Arquivo Local",remoteCalendar:"Calend\xE1rio Remoto",localFileCalendar:"Arquivo Local",synced:"Sincronizado {timeAgo}",error:"Erro"},actions:{refreshNow:"Atualizar Agora",deleteSubscription:"Excluir inscri\xE7\xE3o"},refreshNow:"Atualizar Agora",confirmDelete:{title:"Excluir Inscri\xE7\xE3o",message:'Tem certeza de que deseja excluir a inscri\xE7\xE3o "{name}"? Esta a\xE7\xE3o n\xE3o pode ser desfeita.',confirmText:"Excluir"}},autoExport:{header:"Exporta\xE7\xE3o autom\xE1tica de ICS",description:"Exportar automaticamente todas as suas tarefas para um arquivo ICS.",enable:{name:"Ativar exporta\xE7\xE3o autom\xE1tica",description:"Manter automaticamente um arquivo ICS atualizado com todas as suas tarefas"},filePath:{name:"Caminho do arquivo de exporta\xE7\xE3o",description:"Caminho onde o arquivo ICS ser\xE1 salvo (relativo \xE0 raiz do cofre)",placeholder:"tasknotes-calendario.ics"},interval:{name:"Intervalo de atualiza\xE7\xE3o (entre 5 e 1440 minutos)",description:"Com que frequ\xEAncia atualizar o arquivo de exporta\xE7\xE3o",placeholder:"60"},useDuration:{name:"Usar dura\xE7\xE3o da tarefa para o comprimento do evento",description:"Quando ativado, usa a estimativa de tempo (dura\xE7\xE3o) da tarefa em vez da data de vencimento para o hor\xE1rio de t\xE9rmino do evento do calend\xE1rio. Isso \xE9 \xFAtil para fluxos de trabalho GTD onde agendado + dura\xE7\xE3o representa o planejamento do trabalho, enquanto a data de vencimento representa prazos."},exportNow:{name:"Exportar agora",description:"Acionar manualmente uma exporta\xE7\xE3o imediata",buttonText:"Exportar Agora"},status:{title:"Status da Exporta\xE7\xE3o:",lastExport:"\xDAltima exporta\xE7\xE3o: {time}",nextExport:"Pr\xF3xima exporta\xE7\xE3o: {time}",noExports:"Nenhuma exporta\xE7\xE3o ainda",notScheduled:"N\xE3o agendado",notInitialized:"Servi\xE7o de exporta\xE7\xE3o autom\xE1tica n\xE3o inicializado - por favor, reinicie o Obsidian",serviceNotInitialized:"Servi\xE7o n\xE3o inicializado - por favor, reinicie o Obsidian"},notices:{reloadRequired:"Por favor, recarregue o Obsidian para que as altera\xE7\xF5es da exporta\xE7\xE3o autom\xE1tica tenham efeito.",exportSuccess:"Tarefas exportadas com sucesso",exportFailure:"Exporta\xE7\xE3o falhou - verifique o console para detalhes",serviceUnavailable:"Servi\xE7o de exporta\xE7\xE3o autom\xE1tica n\xE3o dispon\xEDvel"},excludeCompleted:{name:"Excluir tarefas conclu\xEDdas",description:"Quando ativado, tarefas conclu\xEDdas s\xE3o omitidas das exporta\xE7\xF5es ICS. Os status conclu\xEDdos v\xEAm das configura\xE7\xF5es de status de tarefas."},excludeArchived:{name:"Excluir tarefas arquivadas",description:"Quando ativado, tarefas arquivadas s\xE3o omitidas das exporta\xE7\xF5es ICS."},requireDueDate:{name:"Exigir data de vencimento",description:"Quando ativado, apenas tarefas com data de vencimento s\xE3o inclu\xEDdas nas exporta\xE7\xF5es ICS."},requireScheduledDate:{name:"Exigir data agendada",description:"Quando ativado, apenas tarefas com data agendada s\xE3o inclu\xEDdas nas exporta\xE7\xF5es ICS."}},googleCalendarExport:{header:"Exportar tarefas para o Google Agenda",description:"Sincronize automaticamente suas tarefas para o Google Agenda como eventos. Requer que o Google Agenda esteja conectado acima.",enable:{name:"Ativar exporta\xE7\xE3o de tarefas",description:"Quando ativado, tarefas com datas ser\xE3o automaticamente sincronizadas para o Google Agenda como eventos."},targetCalendar:{name:"Calend\xE1rio de destino",description:"Selecione em qual calend\xE1rio criar eventos de tarefas.",placeholder:"Selecionar um calend\xE1rio...",connectFirst:"Conecte o Google Agenda primeiro",primarySuffix:" (Principal)"},syncTrigger:{name:"Gatilho de sincroniza\xE7\xE3o",description:"Qual data da tarefa deve acionar a cria\xE7\xE3o do evento no calend\xE1rio.",options:{scheduled:"Data agendada",due:"Data de vencimento",both:"Ambas (preferir agendada)"}},allDayEvents:{name:"Criar como eventos de dia inteiro",description:"Quando ativado, tarefas s\xE3o criadas como eventos de dia inteiro. Quando desativado, usa a estimativa de tempo para a dura\xE7\xE3o."},defaultDuration:{name:"Dura\xE7\xE3o padr\xE3o do evento",description:"Dura\xE7\xE3o em minutos para eventos com hor\xE1rio (usada quando a tarefa n\xE3o tem estimativa de tempo)."},eventTitleTemplate:{name:"Modelo de t\xEDtulo do evento",description:"Modelo para t\xEDtulos de eventos. Vari\xE1veis dispon\xEDveis: {{title}}, {{status}}, {{priority}}",placeholder:"{{title}}"},includeDescription:{name:"Incluir detalhes da tarefa na descri\xE7\xE3o",description:"Adicionar metadados da tarefa (prioridade, status, tags, etc.) \xE0 descri\xE7\xE3o do evento."},includeObsidianLink:{name:"Incluir link do Obsidian",description:"Adicionar um link de volta para a tarefa no Obsidian na descri\xE7\xE3o do evento."},defaultReminder:{name:"Lembrete padr\xE3o",description:"Adicione lembretes pop-up a eventos com hor\xE1rio do Google Calendar. Digite os minutos antes do evento, separados por v\xEDrgulas. Deixe em branco para usar os padr\xF5es do calend\xE1rio. Valores comuns: 15, 30, 60, 1440."},automaticSyncBehavior:{header:"Comportamento de sincroniza\xE7\xE3o autom\xE1tica"},syncOnCreate:{name:"Sincronizar ao criar tarefa",description:"Criar automaticamente um evento no calend\xE1rio quando uma nova tarefa \xE9 criada."},syncOnUpdate:{name:"Sincronizar ao atualizar tarefa",description:"Atualizar automaticamente o evento no calend\xE1rio quando uma tarefa \xE9 modificada."},syncOnComplete:{name:"Sincronizar ao completar tarefa",description:"Atualizar evento no calend\xE1rio quando uma tarefa \xE9 completada (adiciona marca de verifica\xE7\xE3o ao t\xEDtulo)."},syncOnDelete:{name:"Excluir evento ao excluir tarefa",description:"Remover evento do calend\xE1rio quando a tarefa correspondente \xE9 exclu\xEDda."},manualSyncActions:{header:"A\xE7\xF5es de sincroniza\xE7\xE3o manual"},syncAllTasks:{name:"Sincronizar todas as tarefas",description:"Sincronizar todas as tarefas existentes para o Google Agenda. Isso criar\xE1 eventos para tarefas que ainda n\xE3o foram sincronizadas.",buttonText:"Sincronizar tudo"},unlinkAllTasks:{name:"Desvincular todas as tarefas",description:"Remover todos os v\xEDnculos tarefa-evento sem excluir eventos do calend\xE1rio.",buttonText:"Desvincular tudo",confirmTitle:"Desvincular todas as tarefas",confirmMessage:"Isso remover\xE1 todos os v\xEDnculos entre tarefas e eventos do calend\xE1rio. Os eventos do calend\xE1rio permanecer\xE3o mas n\xE3o ser\xE3o mais atualizados quando as tarefas mudarem. Tem certeza?",confirmButtonText:"Desvincular tudo"},notices:{notEnabled:"Exporta\xE7\xE3o para o Google Agenda n\xE3o est\xE1 ativada. Configure em Configura\xE7\xF5es > Integra\xE7\xF5es.",notEnabledOrConfigured:"Exporta\xE7\xE3o para o Google Agenda n\xE3o est\xE1 ativada ou configurada",serviceNotAvailable:"Servi\xE7o de sincroniza\xE7\xE3o de calend\xE1rio n\xE3o dispon\xEDvel",syncResults:"Sincronizados: {synced}, Falharam: {failed}, Ignorados: {skipped}",taskSynced:"Tarefa sincronizada para o Google Agenda",noActiveFile:"Nenhum arquivo est\xE1 atualmente ativo",notATask:"O arquivo atual n\xE3o \xE9 uma tarefa",noDateToSync:"Tarefa n\xE3o tem data agendada ou de vencimento para sincronizar",syncFailed:"Falha ao sincronizar tarefa para o Google Agenda: {message}",connectionExpired:"A conex\xE3o com o Google Agenda expirou. Reconecte em Configura\xE7\xF5es > Integra\xE7\xF5es.",syncingTasks:"Sincronizando {total} tarefas para o Google Agenda...",syncComplete:"Sincroniza\xE7\xE3o completa: {synced} sincronizadas, {failed} falharam, {skipped} ignoradas",eventsDeletedAndUnlinked:"Todos os eventos exclu\xEDdos e desvinculados",tasksUnlinked:"Todos os v\xEDnculos de tarefas removidos"},eventDescription:{untitledTask:"Tarefa sem t\xEDtulo",priority:"Prioridade: {value}",status:"Status: {value}",due:"Vencimento: {value}",scheduled:"Agendado: {value}",timeEstimate:"Estimativa de tempo: {value}",tags:"Tags: {value}",contexts:"Contextos: {value}",projects:"Projetos: {value}",openInObsidian:"Abrir no Obsidian"}},httpApi:{header:"API HTTP",description:"Ative a API HTTP para integra\xE7\xF5es externas e automa\xE7\xF5es.",enable:{name:"Ativar API HTTP",description:"Iniciar servidor HTTP local para acesso \xE0 API"},port:{name:"Porta da API",description:"N\xFAmero da porta para o servidor da API HTTP",placeholder:"3000"},authToken:{name:"Token de autentica\xE7\xE3o da API",description:"Token necess\xE1rio para autentica\xE7\xE3o da API (deixe em branco para sem autentica\xE7\xE3o)",placeholder:"seu-token-secreto"},mcp:{enable:{name:"Ativar servidor MCP",description:"Exponha as ferramentas do TaskNotes via Model Context Protocol no endpoint /mcp. Requer que a API HTTP esteja ativada."}},endpoints:{header:"Endpoints da API Dispon\xEDveis",expandIcon:"\u25B6",collapseIcon:"\u25BC"}},webhooks:{header:"Webhooks",description:{overview:"Webhooks enviam notifica\xE7\xF5es em tempo real para servi\xE7os externos quando eventos do TaskNotes ocorrem.",usage:"Configure webhooks para integrar com ferramentas de automa\xE7\xE3o, servi\xE7os de sincroniza\xE7\xE3o ou aplicativos personalizados."},addWebhook:{name:"Adicionar Webhook",description:"Registrar um novo endpoint de webhook",buttonText:"Adicionar Webhook"},emptyState:{message:"Nenhum webhook configurado. Adicione um webhook para receber notifica\xE7\xF5es em tempo real.",buttonText:"Adicionar Webhook"},labels:{active:"Ativo:",url:"URL:",events:"Eventos:",transform:"Transformar:"},placeholders:{url:"URL do Webhook",noEventsSelected:"Nenhum evento selecionado",rawPayload:"Payload sem transforma\xE7\xE3o"},statusLabels:{active:"Ativo",inactive:"Inativo",created:"Criado {timeAgo}"},actions:{editEvents:"Editar Eventos",delete:"Excluir"},editEvents:"Editar Eventos",notices:{urlUpdated:"URL do Webhook atualizada",enabled:"Webhook ativado",disabled:"Webhook desativado",created:"Webhook criado com sucesso",deleted:"Webhook exclu\xEDdo",updated:"Webhook atualizado"},confirmDelete:{title:"Excluir Webhook",message:`Tem certeza de que deseja excluir este webhook?
|
||
|
||
URL: {url}
|
||
|
||
Esta a\xE7\xE3o n\xE3o pode ser desfeita.`,confirmText:"Excluir"},cardHeader:"Webhook",cardFields:{active:"Ativo:",url:"URL:",events:"Eventos:",transform:"Transformar:"},eventsDisplay:{noEvents:"Nenhum evento selecionado"},transformDisplay:{noTransform:"Payload sem transforma\xE7\xE3o"},secretModal:{title:"Segredo do Webhook Gerado",description:"Seu segredo do webhook foi gerado. Salve este segredo, pois voc\xEA n\xE3o poder\xE1 visualiz\xE1-lo novamente:",usage:"Use este segredo para verificar os payloads do webhook em seu aplicativo receptor.",gotIt:"Entendi"},editModal:{title:"Editar Webhook",eventsHeader:"Eventos para se inscrever"},events:{taskCreated:{label:"Tarefa Criada",description:"Quando novas tarefas s\xE3o criadas"},taskUpdated:{label:"Tarefa Atualizada",description:"Quando tarefas s\xE3o modificadas"},taskCompleted:{label:"Tarefa Conclu\xEDda",description:"Quando tarefas s\xE3o marcadas como conclu\xEDdas"},taskDeleted:{label:"Tarefa Exclu\xEDda",description:"Quando tarefas s\xE3o exclu\xEDdas"},taskArchived:{label:"Tarefa Arquivada",description:"Quando tarefas s\xE3o arquivadas"},taskUnarchived:{label:"Tarefa Desarquivada",description:"Quando tarefas s\xE3o desarquivadas"},timeStarted:{label:"Tempo Iniciado",description:"Quando o registro de tempo inicia"},timeStopped:{label:"Tempo Parado",description:"Quando o registro de tempo para"},pomodoroStarted:{label:"Pomodoro Iniciado",description:"Quando sess\xF5es pomodoro come\xE7am"},pomodoroCompleted:{label:"Pomodoro Conclu\xEDdo",description:"Quando sess\xF5es pomodoro terminam"},pomodoroInterrupted:{label:"Pomodoro Interrompido",description:"Quando sess\xF5es pomodoro s\xE3o paradas"},recurringCompleted:{label:"Inst\xE2ncia Recorrente Conclu\xEDda",description:"Quando inst\xE2ncias de tarefas recorrentes s\xE3o conclu\xEDdas"},reminderTriggered:{label:"Lembrete Acionado",description:"Quando lembretes de tarefa s\xE3o ativados"}},modals:{secretGenerated:{title:"Segredo do Webhook Gerado",description:"Seu segredo do webhook foi gerado. Salve este segredo, pois voc\xEA n\xE3o poder\xE1 visualiz\xE1-lo novamente:",usage:"Use este segredo para verificar os payloads do webhook em seu aplicativo receptor.",buttonText:"Entendi"},edit:{title:"Editar Webhook",eventsSection:"Eventos para se inscrever",transformSection:"Configura\xE7\xE3o de Transforma\xE7\xE3o (Opcional)",headersSection:"Configura\xE7\xE3o de Cabe\xE7alhos",transformFile:{name:"Arquivo de Transforma\xE7\xE3o",description:"Caminho para um arquivo de modelo .json em seu cofre que transforma payloads de webhook",placeholder:"simple-template.json"},customHeaders:{name:"Incluir cabe\xE7alhos personalizados",description:"Incluir cabe\xE7alhos do TaskNotes (tipo de evento, assinatura, ID de entrega). Desative para Discord, Slack e outros servi\xE7os com pol\xEDticas CORS r\xEDgidas."},buttons:{cancel:"Cancelar",save:"Salvar Altera\xE7\xF5es"},notices:{selectAtLeastOneEvent:"Por favor, selecione pelo menos um evento"}},add:{title:"Adicionar Webhook",eventsSection:"Eventos para se inscrever",transformSection:"Configura\xE7\xE3o de Transforma\xE7\xE3o (Opcional)",headersSection:"Configura\xE7\xE3o de Cabe\xE7alhos",url:{name:"URL do Webhook",description:"O endpoint para onde o payload do webhook ser\xE1 enviado",placeholder:"https://seu-servico.com/webhook"},transformFile:{name:"Arquivo de Transforma\xE7\xE3o",description:"Caminho para um arquivo de modelo .json em seu cofre que transforma payloads de webhook",placeholder:"simple-template.json"},customHeaders:{name:"Incluir cabe\xE7alhos personalizados",description:"Incluir cabe\xE7alhos do TaskNotes (tipo de evento, assinatura, ID de entrega). Desative para Discord, Slack e outros servi\xE7os com pol\xEDticas CORS r\xEDgidas."},transformHelp:{title:"Modelos de transforma\xE7\xE3o JSON permitem personalizar payloads de webhook:",jsFiles:"",jsDescription:"",jsonFiles:"Arquivos .json:",jsonDescription:" Modelos com ",jsonVariable:"${data.task.title}",leaveEmpty:"Deixe em branco:",leaveEmptyDescription:" Enviar dados brutos",example:"Exemplo:",exampleFile:"simple-template.json"},buttons:{cancel:"Cancelar",add:"Adicionar Webhook"},notices:{urlRequired:"A URL do Webhook \xE9 obrigat\xF3ria",selectAtLeastOneEvent:"Por favor, selecione pelo menos um evento"}}}},otherIntegrations:{header:"Outras integra\xE7\xF5es de plugins",description:"Configure integra\xE7\xF5es com outros plugins do Obsidian."},mdbaseSpec:{header:"Defini\xE7\xF5es de tipos mdbase",learnMore:"Saiba mais sobre mdbase-spec",enable:{name:"Gerar defini\xE7\xF5es de tipos mdbase",description:"Gere e mantenha arquivos de tipos mdbase (mdbase.yaml e _types/task.md) na raiz do cofre conforme suas configura\xE7\xF5es mudam."}},timeFormats:{justNow:"Agora mesmo",minutesAgo:"{minutes} minuto{plural} atr\xE1s",hoursAgo:"{hours} hora{plural} atr\xE1s",daysAgo:"{days} dia{plural} atr\xE1s"}}},notices:{languageChanged:"Idioma alterado para {language}.",releaseAvailable:{message:"TaskNotes {version} est\xE1 dispon\xEDvel.",action:"Abrir nos plugins da comunidade"},exportTasksFailed:"Falha ao exportar tarefas como arquivo ICS",icsNoteCreatedSuccess:"Nota criada com sucesso",icsCreationModalOpenFailed:"Falha ao abrir modal de cria\xE7\xE3o",icsNoteLinkSuccess:'Nota "{fileName}" vinculada ao evento ICS',icsTaskCreatedSuccess:"Tarefa criada: {title}",icsRelatedItemsRefreshed:"Notas relacionadas atualizadas",icsFileNotFound:"Arquivo n\xE3o encontrado ou inv\xE1lido",icsFileOpenFailed:"Falha ao abrir arquivo",timeblockAttachmentExists:'"{fileName}" j\xE1 est\xE1 anexado',timeblockAttachmentAdded:'"{fileName}" adicionado como anexo',timeblockAttachmentRemoved:'"{fileName}" removido dos anexos',timeblockFileTypeNotSupported:'N\xE3o \xE9 poss\xEDvel abrir "{fileName}" - tipo de arquivo n\xE3o suportado',timeblockTitleRequired:"Por favor, insira um t\xEDtulo para o bloco de tempo",timeblockUpdatedSuccess:'Bloco de tempo "{title}" atualizado com sucesso',timeblockUpdateFailed:"Falha ao atualizar bloco de tempo. Verifique o console para detalhes.",timeblockDeletedSuccess:'Bloco de tempo "{title}" exclu\xEDdo com sucesso',timeblockDeleteFailed:"Falha ao excluir bloco de tempo. Verifique o console para detalhes.",timeblockRequiredFieldsMissing:"Por favor, preencha todos os campos obrigat\xF3rios",agendaLoadingFailed:"Erro ao carregar agenda. Por favor, tente atualizar.",statsLoadingFailed:"Erro ao carregar detalhes do projeto."},commands:{openCalendarView:"Abrir visualiza\xE7\xE3o de mini calend\xE1rio",openAdvancedCalendarView:"Abrir visualiza\xE7\xE3o de calend\xE1rio",openTasksView:"Abrir visualiza\xE7\xE3o de tarefas",openNotesView:"Abrir visualiza\xE7\xE3o de notas",openAgendaView:"Abrir visualiza\xE7\xE3o de agenda",openPomodoroView:"Abrir temporizador pomodoro",openKanbanView:"Abrir quadro kanban",updateDefaultBaseFiles:"Atualizar arquivos Base padr\xE3o",openPomodoroStats:"Abrir estat\xEDsticas pomodoro",openStatisticsView:"Abrir estat\xEDsticas de tarefas e projetos",createNewTask:"Criar nova tarefa",convertCurrentNoteToTask:{name:"Converter nota atual em tarefa",noActiveFile:"Nenhum arquivo ativo para converter",alreadyTask:"Esta nota j\xE1 \xE9 uma tarefa",success:"'{title}' convertido em tarefa"},convertToTaskNote:"Converter tarefa de caixa de sele\xE7\xE3o para TaskNote",convertAllTasksInNote:"Converter todas as tarefas na nota",insertTaskNoteLink:"Inserir link de tasknote",createInlineTask:"Criar nova tarefa embutida",quickActionsCurrentTask:"A\xE7\xF5es r\xE1pidas para a tarefa atual",goToTodayNote:"Ir para a nota de hoje",startPomodoro:"Iniciar temporizador pomodoro",stopPomodoro:"Parar temporizador pomodoro",pauseResumePomodoro:"Pausar/retomar temporizador pomodoro",refreshCache:"Atualizar cache",exportAllTasksIcs:"Exportar todas as tarefas como arquivo ICS",viewReleaseNotes:"Ver notas de lan\xE7amento",startTimeTrackingWithSelector:"Iniciar registro de tempo (selecionar tarefa)",editTimeEntries:"Editar registros de tempo (selecionar tarefa)",createOrOpenTask:"Criar ou abrir tarefa",createOrOpenTaskWithTracking:"Criar ou abrir tarefa e iniciar registro de tempo",rolloverOverdueScheduledTasks:"Adiar tarefas agendadas vencidas para hoje",syncAllTasksGoogleCalendar:"Sincronizar todas as tarefas para o Google Agenda",syncCurrentTaskGoogleCalendar:"Sincronizar tarefa atual para o Google Agenda",quickActionsTaskUnderCursor:"A\xE7\xF5es r\xE1pidas para a tarefa sob o cursor",editCurrentTask:"Editar tarefa atual",cycleCurrentTaskStatus:"Alternar status da tarefa atual",cycleCurrentTaskPriority:"Alternar prioridade da tarefa atual",addProjectToCurrentTask:"Adicionar projeto \xE0 tarefa atual",addSubtaskToCurrentNote:"Adicionar subtarefa \xE0 nota atual"},modals:{deviceCode:{title:"Autoriza\xE7\xE3o do Google Agenda",instructions:{intro:"Para conectar seu Google Agenda, por favor, siga estes passos:"},steps:{open:"Abra",inBrowser:"no seu navegador",enterCode:"Insira este c\xF3digo quando solicitado:",signIn:"Fa\xE7a login com sua conta Google e conceda acesso",returnToObsidian:"Retorne ao Obsidian (esta janela fechar\xE1 automaticamente)"},codeLabel:"Seu C\xF3digo:",copyCodeAriaLabel:"Copiar c\xF3digo",waitingForAuthorization:"Aguardando autoriza\xE7\xE3o...",openBrowserButton:"Abrir Navegador",cancelButton:"Cancelar",expiresMinutesSeconds:"C\xF3digo expira em {minutes}m {seconds}s",expiresSeconds:"C\xF3digo expira em {seconds}s"},icsEventInfo:{calendarEventHeading:"Evento de Calend\xE1rio",titleLabel:"T\xEDtulo",calendarLabel:"Calend\xE1rio",dateTimeLabel:"Data e Hora",locationLabel:"Localiza\xE7\xE3o",descriptionLabel:"Descri\xE7\xE3o",urlLabel:"URL",relatedNotesHeading:"Notas e Tarefas Relacionadas",noRelatedItems:"Nenhuma nota ou tarefa relacionada encontrada para este evento.",typeTask:"Tarefa",typeNote:"Nota",actionsHeading:"A\xE7\xF5es",createFromEventLabel:"Criar a partir do Evento",createFromEventDesc:"Criar uma nova nota ou tarefa a partir deste evento de calend\xE1rio",linkExistingLabel:"Vincular Existente",linkExistingDesc:"Vincular uma nota existente a este evento de calend\xE1rio"},timeblockInfo:{editHeading:"Editar Bloco de Tempo",dateTimeLabel:"Data e Hora: ",titleLabel:"T\xEDtulo",titleDesc:"T\xEDtulo para seu bloco de tempo",titlePlaceholder:"ex: Sess\xE3o de foco profundo",descriptionLabel:"Descri\xE7\xE3o",descriptionDesc:"Descri\xE7\xE3o opcional para o bloco de tempo",descriptionPlaceholder:"Focar em novos recursos, sem interrup\xE7\xF5es",colorLabel:"Cor",colorDesc:"Cor opcional para o bloco de tempo",colorPlaceholder:"#3b82f6",attachmentsLabel:"Anexos",attachmentsDesc:"Arquivos ou notas vinculados a este bloco de tempo",addAttachmentButton:"Adicionar Anexo",addAttachmentTooltip:"Selecionar um arquivo ou nota usando busca difusa",deleteButton:"Excluir Bloco de Tempo",saveButton:"Salvar Altera\xE7\xF5es",deleteConfirmationTitle:"Excluir Bloco de Tempo"},timeblockCreation:{heading:"Criar bloco de tempo",dateLabel:"Data: ",titleLabel:"T\xEDtulo",titleDesc:"T\xEDtulo para seu bloco de tempo",titlePlaceholder:"ex: Sess\xE3o de foco profundo",startTimeLabel:"Hora de in\xEDcio",startTimeDesc:"Quando o bloco de tempo come\xE7a",startTimePlaceholder:"09:00",endTimeLabel:"Hora de t\xE9rmino",endTimeDesc:"Quando o bloco de tempo termina",endTimePlaceholder:"11:00",descriptionLabel:"Descri\xE7\xE3o",descriptionDesc:"Descri\xE7\xE3o opcional para o bloco de tempo",descriptionPlaceholder:"Focar em novos recursos, sem interrup\xE7\xF5es",colorLabel:"Cor",colorDesc:"Cor opcional para o bloco de tempo",colorPlaceholder:"#3b82f6",attachmentsLabel:"Anexos",attachmentsDesc:"Arquivos ou notas para vincular a este bloco de tempo",addAttachmentButton:"Adicionar Anexo",addAttachmentTooltip:"Selecionar um arquivo ou nota usando busca difusa",createButton:"Criar bloco de tempo"},calendarEventCreation:{heading:"Criar evento no calend\xE1rio",dateTimeLabel:"Data e hora: ",titleLabel:"T\xEDtulo",titleDesc:"T\xEDtulo do evento no calend\xE1rio",titlePlaceholder:"ex., Reuni\xE3o de equipe",calendarLabel:"Calend\xE1rio",calendarDesc:"Em qual calend\xE1rio criar o evento",descriptionLabel:"Descri\xE7\xE3o",descriptionDesc:"Descri\xE7\xE3o opcional do evento",descriptionPlaceholder:"Adicionar detalhes sobre este evento...",locationLabel:"Local",locationDesc:"Local opcional do evento",locationPlaceholder:"ex., Sala de confer\xEAncia A",createButton:"Criar evento",titleRequired:"O t\xEDtulo do evento \xE9 obrigat\xF3rio",noCalendarSelected:"Nenhum calend\xE1rio selecionado",success:'Evento "{title}" criado no calend\xE1rio',error:"Falha ao criar evento no calend\xE1rio: {message}"},icsNoteCreation:{heading:"Criar a partir de Evento ICS",titleLabel:"T\xEDtulo",titleDesc:"T\xEDtulo para o novo conte\xFAdo",folderLabel:"Pasta",folderDesc:"Pasta de destino (deixe em branco para a raiz do cofre)",folderPlaceholder:"pasta/subpasta",createButton:"Criar",startLabel:"In\xEDcio: ",endLabel:"T\xE9rmino: ",locationLabel:"Localiza\xE7\xE3o: ",calendarLabel:"Calend\xE1rio: ",useTemplateLabel:"Usar Modelo",useTemplateDesc:"Aplicar um modelo ao criar o conte\xFAdo",templatePathLabel:"Caminho do Modelo",templatePathDesc:"Caminho para o arquivo de modelo",templatePathPlaceholder:"modelos/modelo-nota-ics.md"},unscheduledTasksSelector:{title:"Tarefas N\xE3o Agendadas",placeholder:"Digite para buscar tarefas n\xE3o agendadas...",instructions:{navigate:"para navegar",schedule:"para agendar",dismiss:"para dispensar"}},migration:{title:"Migrar para Novo Sistema de Recorr\xEAncia",description:"O TaskNotes agora usa padr\xF5es RRULE padr\xE3o da ind\xFAstria para recorr\xEAncia, permitindo agendamentos mais complexos e melhor compatibilidade com outros aplicativos.",tasksFound:"{count} tarefa(s) com padr\xF5es de recorr\xEAncia antigos detectada(s)",noMigrationNeeded:"Nenhuma tarefa requer migra\xE7\xE3o",warnings:{title:"Antes de prosseguir:",backup:"Fa\xE7a backup do seu cofre antes de migrar",conversion:"Padr\xF5es de recorr\xEAncia antigos ser\xE3o convertidos para o novo formato",normalUsage:"Voc\xEA pode continuar usando o TaskNotes normalmente durante a migra\xE7\xE3o",permanent:"Esta altera\xE7\xE3o \xE9 permanente e n\xE3o pode ser desfeita automaticamente"},benefits:{title:"Benef\xEDcios do novo sistema:",powerfulPatterns:"Padr\xF5es de recorr\xEAncia complexos (ex: 'toda 2\xAA ter\xE7a-feira')",performance:"Melhor desempenho com tarefas recorrentes",compatibility:"Formato de recorr\xEAncia padr\xE3o compat\xEDvel com outros aplicativos",nlp:"Suporte aprimorado ao processamento de linguagem natural"},progress:{title:"Progresso da Migra\xE7\xE3o",preparing:"Preparando migra\xE7\xE3o...",completed:"Migra\xE7\xE3o conclu\xEDda com sucesso",failed:"Migra\xE7\xE3o falhou"},buttons:{migrate:"Iniciar Migra\xE7\xE3o",completed:"Fechar"},errors:{title:"Erros durante a migra\xE7\xE3o:"},notices:{completedWithErrors:"Migra\xE7\xE3o conclu\xEDda com alguns erros. Verifique a lista de erros acima.",success:"Todas as tarefas migradas com sucesso!",failed:"Migra\xE7\xE3o falhou. Por favor, verifique o console para detalhes."},prompt:{message:"O TaskNotes detectou tarefas usando o formato de recorr\xEAncia antigo. Voc\xEA gostaria de migr\xE1-las para o novo sistema agora?",migrateNow:"Migrar Agora",remindLater:"Lembrar Mais Tarde"}},task:{titlePlaceholder:"O que precisa ser feito?",titleLabel:"T\xEDtulo",titleDetailedPlaceholder:"T\xEDtulo da tarefa...",detailsLabel:"Detalhes",detailsPlaceholder:"Adicionar mais detalhes...",projectsLabel:"Projetos",projectsAdd:"Adicionar Projeto",projectsTooltip:"Selecionar uma nota de projeto usando busca difusa",projectsRemoveTooltip:"Remover projeto",contextsLabel:"Contextos",contextsPlaceholder:"contexto1, contexto2",tagsLabel:"Tags",tagsPlaceholder:"etiqueta1, etiqueta2",timeEstimateLabel:"Estimativa de tempo (minutos)",timeEstimatePlaceholder:"30",unsavedChanges:{title:"Altera\xE7\xF5es n\xE3o salvas",message:"Voc\xEA tem altera\xE7\xF5es n\xE3o salvas. Deseja salv\xE1-las?",save:"Salvar altera\xE7\xF5es",discard:"Descartar altera\xE7\xF5es",cancel:"Continuar editando"},dependencies:{blockedBy:"Bloqueada por",blocking:"Bloqueando",placeholder:"[[Nota da Tarefa]]",addTaskButton:"Adicionar tarefa",selectTaskTooltip:"Selecionar uma nota de tarefa usando busca difusa",removeTaskTooltip:"Remover tarefa"},organization:{projects:"Projetos",subtasks:"Subtarefas",addToProject:"Adicionar ao projeto",addToProjectButton:"Adicionar ao projeto",addSubtasks:"Adicionar subtarefas",addSubtasksButton:"Adicionar subtarefa",addSubtasksTooltip:"Selecionar tarefas para torn\xE1-las subtarefas desta tarefa",removeSubtaskTooltip:"Remover subtarefa",notices:{noEligibleSubtasks:"Nenhuma tarefa eleg\xEDvel dispon\xEDvel para atribuir como subtarefa",subtaskSelectFailed:"Falha ao abrir seletor de subtarefas"}},customFieldsLabel:"Campos Personalizados",actions:{due:"Definir data de vencimento",scheduled:"Definir data agendada",status:"Definir status",priority:"Definir prioridade",recurrence:"Definir recorr\xEAncia",reminders:"Definir lembretes"},buttons:{openNote:"Abrir nota",save:"Salvar"},tooltips:{dueValue:"Vencimento: {value}",scheduledValue:"Agendada: {value}",statusValue:"Status: {value}",priorityValue:"Prioridade: {value}",recurrenceValue:"Recorr\xEAncia: {value}",remindersSingle:"1 lembrete definido",remindersPlural:"{count} lembretes definidos"},dateMenu:{dueTitle:"Definir Data de Vencimento",scheduledTitle:"Definir Data Agendada"},userFields:{textPlaceholder:"Digite {field}...",numberPlaceholder:"0",datePlaceholder:"AAAA-MM-DD",listPlaceholder:"item 1, item 2, item 3",pickDate:"Escolher data {field}"},recurrence:{daily:"Diariamente",weekly:"Semanalmente",everyTwoWeeks:"A cada 2 semanas",weekdays:"Dias de semana",weeklyOn:"Semanalmente \xE0s {days}",monthly:"Mensalmente",everyThreeMonths:"A cada 3 meses",monthlyOnOrdinal:"Mensalmente no {ordinal}",monthlyByWeekday:"Mensalmente (por dia da semana)",yearly:"Anualmente",yearlyOn:"Anualmente em {day} de {month}",custom:"Personalizado",countSuffix:"{count} vezes",untilSuffix:"at\xE9 {date}",ordinal:"{number}{suffix}"}},taskSelector:{title:"Selecionar tarefa",placeholder:"Digite para buscar tarefas...",instructions:{navigate:"para navegar",select:"para selecionar",dismiss:"para cancelar"},notices:{noteNotFound:'N\xE3o foi poss\xEDvel encontrar a nota "{name}"'},dueDate:{overdue:"Vencimento: {date} (atrasada)",today:"Vencimento: Hoje"}},taskSelectorWithCreate:{title:"Criar ou abrir tarefa",placeholder:"Pesquisar tarefas ou digitar para criar nova...",instructions:{create:"para criar nova tarefa"},footer:{createLabel:" para criar: "},notices:{emptyQuery:"Por favor, insira uma descri\xE7\xE3o da tarefa",invalidTitle:"N\xE3o foi poss\xEDvel reconhecer um t\xEDtulo de tarefa v\xE1lido"}},taskCreation:{title:"Criar tarefa",actions:{fillFromNaturalLanguage:"Preencher formul\xE1rio a partir de linguagem natural",hideDetailedOptions:"Ocultar op\xE7\xF5es detalhadas",showDetailedOptions:"Mostrar op\xE7\xF5es detalhadas"},nlPlaceholder:"Comprar mantimentos amanh\xE3 \xE0s 15h @casa #tarefas",notices:{titleRequired:"Por favor, insira um t\xEDtulo para a tarefa",success:'Tarefa "{title}" criada com sucesso',successShortened:'Tarefa "{title}" criada com sucesso (nome do arquivo encurtado devido ao comprimento)',failure:"Falha ao criar tarefa: {message}",blockingUnresolved:"N\xE3o foi poss\xEDvel resolver: {entries}",openCreatedTaskFailure:"Tarefa criada, mas n\xE3o foi poss\xEDvel abrir a nota da tarefa."}},taskEdit:{title:"Editar tarefa",sections:{completions:"Conclus\xF5es",taskInfo:"Informa\xE7\xF5es da Tarefa"},metadata:{totalTrackedTime:"Tempo total registrado:",due:"Vencimento:",scheduled:"Agendada:",created:"Criada:",modified:"Modificada:",file:"Arquivo:"},buttons:{archive:"Arquivar",unarchive:"Desarquivar"},notices:{titleRequired:"Por favor, insira um t\xEDtulo para a tarefa",noChanges:"Nenhuma altera\xE7\xE3o para salvar",updateSuccess:'Tarefa "{title}" atualizada com sucesso',updateFailure:"Falha ao atualizar tarefa: {message}",dependenciesUpdateSuccess:"Depend\xEAncias atualizadas",blockingUnresolved:"N\xE3o foi poss\xEDvel resolver: {entries}",fileMissing:"N\xE3o foi poss\xEDvel encontrar o arquivo da tarefa: {path}",openNoteFailure:"Falha ao abrir nota da tarefa",archiveSuccess:"Tarefa {action} com sucesso",archiveFailure:"Falha ao arquivar tarefa",deleteSuccess:'Tarefa "{title}" exclu\xEDda com sucesso',deleteFailure:"Falha ao excluir tarefa: {message}"},archiveAction:{archived:"arquivada",unarchived:"desarquivada"},deleteConfirmation:{title:"Excluir tarefa",message:'Tem certeza de que deseja excluir "{title}"? Isso move a nota da tarefa para a lixeira do Obsidian.',confirm:"Excluir tarefa"}},storageLocation:{title:{migrate:"Migrar dados pomodoro?",switch:"Mudar para armazenamento em notas di\xE1rias?"},message:{migrate:"Isso migrar\xE1 seus dados de sess\xE3o pomodoro existentes para o frontmatter das notas di\xE1rias. Os dados ser\xE3o agrupados por data e armazenados em cada nota di\xE1ria.",switch:"Os dados da sess\xE3o pomodoro ser\xE3o armazenados no frontmatter das notas di\xE1rias em vez do arquivo de dados do plugin."},whatThisMeans:"O que isso significa:",bullets:{dailyNotesRequired:"As notas di\xE1rias devem estar ativadas no plugin principal de notas di\xE1rias ou no Periodic Notes",storedInNotes:"Os dados ser\xE3o armazenados no frontmatter das suas notas di\xE1rias",migrateData:"Os dados existentes do plugin ser\xE3o migrados e depois limpos",futureSessions:"Sess\xF5es futuras ser\xE3o salvas nas notas di\xE1rias",dataLongevity:"Isso proporciona melhor longevidade dos dados com suas notas"},finalNote:{migrate:"\u26A0\uFE0F Certifique-se de ter backups, se necess\xE1rio. Esta altera\xE7\xE3o n\xE3o pode ser desfeita automaticamente.",switch:"Voc\xEA pode voltar para o armazenamento do plugin a qualquer momento no futuro."},buttons:{migrate:"Migrar dados",switch:"Mudar armazenamento"}},dueDate:{title:"Definir Data de Vencimento",taskLabel:"Tarefa: {title}",sections:{dateTime:"Data e Hora de Vencimento",quickOptions:"Op\xE7\xF5es R\xE1pidas"},descriptions:{dateTime:"Defina quando esta tarefa deve ser conclu\xEDda"},inputs:{date:{ariaLabel:"Data de vencimento da tarefa",placeholder:"AAAA-MM-DD"},time:{ariaLabel:"Hora de vencimento da tarefa (opcional)",placeholder:"HH:MM"}},quickOptions:{today:"Hoje",todayAriaLabel:"Definir data de vencimento para hoje",tomorrow:"Amanh\xE3",tomorrowAriaLabel:"Definir data de vencimento para amanh\xE3",nextWeek:"Pr\xF3xima semana",nextWeekAriaLabel:"Definir data de vencimento para pr\xF3xima semana",now:"Agora",nowAriaLabel:"Definir data e hora de vencimento para agora",clear:"Limpar",clearAriaLabel:"Limpar data de vencimento"},errors:{invalidDateTime:"Por favor, insira um formato de data e hora v\xE1lido",updateFailed:"Falha ao atualizar data de vencimento. Por favor, tente novamente."}},scheduledDate:{title:"Definir Data Agendada",taskLabel:"Tarefa: {title}",sections:{dateTime:"Data e Hora Agendada",quickOptions:"Op\xE7\xF5es R\xE1pidas"},descriptions:{dateTime:"Defina quando voc\xEA planeja trabalhar nesta tarefa"},inputs:{date:{ariaLabel:"Data agendada da tarefa",placeholder:"AAAA-MM-DD"},time:{ariaLabel:"Hora agendada da tarefa (opcional)",placeholder:"HH:MM"}},quickOptions:{today:"Hoje",todayAriaLabel:"Definir data agendada para hoje",tomorrow:"Amanh\xE3",tomorrowAriaLabel:"Definir data agendada para amanh\xE3",nextWeek:"Pr\xF3xima semana",nextWeekAriaLabel:"Definir data agendada para pr\xF3xima semana",now:"Agora",nowAriaLabel:"Definir data e hora agendada para agora",clear:"Limpar",clearAriaLabel:"Limpar data agendada"},errors:{invalidDateTime:"Por favor, insira um formato de data e hora v\xE1lido",updateFailed:"Falha ao atualizar data agendada. Por favor, tente novamente."}},timeEntryEditor:{title:"Registros de Tempo - {taskTitle}",addEntry:"Adicionar registro de tempo",noEntries:"Nenhum registro de tempo ainda",deleteEntry:"Excluir registro",startTime:"Hora de in\xEDcio",endTime:"Hora de t\xE9rmino (deixe em branco se ainda estiver em execu\xE7\xE3o)",duration:"Dura\xE7\xE3o (minutos)",durationDesc:"Substituir dura\xE7\xE3o calculada",durationPlaceholder:"Digite a dura\xE7\xE3o em minutos",description:"Descri\xE7\xE3o",descriptionPlaceholder:"No que voc\xEA trabalhou?",calculatedDuration:"Calculado: {minutes} minutos",totalTime:"{hours}h {minutes}m total",totalMinutes:"{minutes}m total",saved:"Registros de tempo salvos",saveFailed:"Falha ao salvar registros de tempo",openFailed:"Falha ao abrir editor de registro de tempo",noTasksWithEntries:"Nenhuma tarefa possui registros de tempo para editar",validation:{missingStartTime:"Hora de in\xEDcio \xE9 obrigat\xF3ria",endBeforeStart:"Hora de t\xE9rmino deve ser ap\xF3s a hora de in\xEDcio"}},timeTracking:{noTasksAvailable:"Nenhuma tarefa dispon\xEDvel para registrar o tempo",started:"Iniciado registro de tempo para: {taskTitle}",startFailed:"Falha ao iniciar registro de tempo"},timeEntry:{mustHaveSpecificTime:"Registros de tempo devem ter hor\xE1rios espec\xEDficos. Por favor, selecione um intervalo de tempo na visualiza\xE7\xE3o de semana ou dia.",noTasksAvailable:"Nenhuma tarefa dispon\xEDvel para criar registros de tempo",created:"Registro de tempo criado para {taskTitle} ({duration} minutos)",createFailed:"Falha ao criar registro de tempo"}},contextMenus:{task:{status:"Status",statusSelected:"\u2713 {label}",priority:"Prioridade",prioritySelected:"\u2713 {label}",dueDate:"Data de vencimento",scheduledDate:"Data agendada",customDates:"Datas personalizadas",reminders:"Lembretes",remindBeforeDue:"Lembrar antes do vencimento\u2026",remindBeforeScheduled:"Lembrar antes da data agendada\u2026",manageReminders:"Gerenciar todos os lembretes\u2026",clearReminders:"Limpar todos os lembretes",startTimeTracking:"Iniciar registro de tempo",stopTimeTracking:"Parar registro de tempo",editTimeEntries:"Editar registros de tempo",archive:"Arquivar",unarchive:"Desarquivar",openNote:"Abrir nota",openNoteInNewTab:"Abrir nota em uma nova aba",copyTitle:"Copiar t\xEDtulo da tarefa",quickActions:"A\xE7\xF5es r\xE1pidas",noteActions:"A\xE7\xF5es da nota",rename:"Renomear",renameTitle:"Renomear Arquivo",renamePlaceholder:"Digite o novo nome",delete:"Excluir",deleteTitle:"Excluir Arquivo",deleteMessage:'Tem certeza de que deseja excluir "{name}"?',deleteConfirm:"Excluir",copyPath:"Copiar caminho",copyUrl:"Copiar URL do Obsidian",showInExplorer:"Mostrar no explorador de arquivos",addToCalendar:"Adicionar ao calend\xE1rio",calendar:{google:"Google Agenda",outlook:"Calend\xE1rio do Outlook",yahoo:"Calend\xE1rio do Yahoo",downloadIcs:"Baixar arquivo .ics",syncToGoogle:"Sincronizar com o Google Agenda",syncToGoogleNotConfigured:"Sincroniza\xE7\xE3o com Google Agenda n\xE3o configurada",syncToGoogleSuccess:"Tarefa sincronizada com o Google Agenda",syncToGoogleFailed:"Falha ao sincronizar com o Google Agenda"},recurrence:"Recorr\xEAncia",clearRecurrence:"Limpar recorr\xEAncia",customRecurrence:"Recorr\xEAncia personalizada...",createSubtask:"Criar subtarefa",dependencies:{title:"Depend\xEAncias",addBlockedBy:'Adicionar "bloqueada por"...',addBlockedByTitle:"Adicionar tarefas das quais esta depende",addBlocking:'Adicionar "bloqueando"...',addBlockingTitle:"Adicionar tarefas que esta bloqueia",removeBlockedBy:'Remover "bloqueada por"...',removeBlocking:'Remover "bloqueando"...',unknownDependency:"Desconhecido",inputPlaceholder:"[[Nota da Tarefa]]",notices:{noEntries:"Por favor, insira pelo menos uma tarefa",blockedByAdded:"{count} depend\xEAncia adicionada",blockedByRemoved:"Depend\xEAncia removida",blockingAdded:"{count} tarefa dependente adicionada",blockingRemoved:"Tarefa dependente removida",unresolved:"N\xE3o foi poss\xEDvel resolver: {entries}",noEligibleTasks:"Nenhuma tarefa correspondente dispon\xEDvel",updateFailed:"Falha ao atualizar depend\xEAncias"}},organization:{title:"Organiza\xE7\xE3o",projects:"Projetos",addToProject:"Adicionar ao projeto\u2026",subtasks:"Subtarefas",addSubtasks:"Adicionar subtarefas\u2026",notices:{alreadyInProject:"Tarefa j\xE1 est\xE1 neste projeto",alreadySubtask:"Tarefa j\xE1 \xE9 uma subtarefa desta tarefa",addedToProject:"Adicionada ao projeto: {project}",addedAsSubtask:"{subtask} adicionada como subtarefa de {parent}",addToProjectFailed:"Falha ao adicionar tarefa ao projeto",addAsSubtaskFailed:"Falha ao adicionar tarefa como subtarefa",projectSelectFailed:"Falha ao abrir seletor de projeto",subtaskSelectFailed:"Falha ao abrir seletor de subtarefa",noEligibleSubtasks:"Nenhuma tarefa eleg\xEDvel dispon\xEDvel para atribuir como subtarefa",currentTaskNotFound:"Arquivo da tarefa atual n\xE3o encontrado",updateContextsFailed:"Falha ao atualizar contextos"},contexts:"Contextos",addContext:"Adicionar contexto\u2026",contextPlaceholder:"contexto",contextSelected:"\u2713 {context}",clearContexts:"Limpar contextos"},subtasks:{loading:"Carregando subtarefas...",noSubtasks:"Nenhuma subtarefa encontrada",loadFailed:"Falha ao carregar subtarefas"},markComplete:"Marcar como conclu\xEDda para esta data",markIncomplete:"Marcar como incompleta para esta data",skipInstance:"Pular inst\xE2ncia",unskipInstance:"Desfazer pulo de inst\xE2ncia",quickReminders:{atTime:"Na hora do evento",fiveMinutes:"5 minutos antes",fifteenMinutes:"15 minutos antes",oneHour:"1 hora antes",oneDay:"1 dia antes"},notices:{toggleCompletionFailure:"Falha ao alternar conclus\xE3o de tarefa recorrente: {message}",toggleSkipFailure:"Falha ao alternar pulo de tarefa recorrente: {message}",updateDueDateFailure:"Falha ao atualizar data de vencimento da tarefa: {message}",updateScheduledFailure:"Falha ao atualizar data agendada da tarefa: {message}",updateCustomDateFailure:"Falha ao atualizar {field}: {message}",updateRemindersFailure:"Falha ao atualizar lembretes",clearRemindersFailure:"Falha ao limpar lembretes",addReminderFailure:"Falha ao adicionar lembrete",archiveFailure:"Falha ao alternar arquivamento da tarefa: {message}",copyTitleSuccess:"T\xEDtulo da tarefa copiado para a \xE1rea de transfer\xEAncia",copyFailure:"Falha ao copiar para a \xE1rea de transfer\xEAncia",renameSuccess:'Renomeado para "{name}"',renameFailure:"Falha ao renomear arquivo",copyPathSuccess:"Caminho do arquivo copiado para a \xE1rea de transfer\xEAncia",copyUrlSuccess:"URL do Obsidian copiado para a \xE1rea de transfer\xEAncia",updateRecurrenceFailure:"Falha ao atualizar recorr\xEAncia da tarefa: {message}",updateTagsFailed:"Falha ao atualizar tags"},tags:"Tags",addTag:"Adicionar tag\u2026",removeTag:"Remover {tag}",removeTagInput:"Remover tag\u2026",tagPlaceholder:"Tag ou #tag",clearTags:"Limpar tags"},priority:{clearPriority:"Limpar prioridade"},ics:{showDetails:"Mostrar detalhes",createTask:"Criar tarefa a partir do evento",createNote:"Criar nota a partir do evento",linkNote:"Vincular nota existente",copyTitle:"Copiar t\xEDtulo",copyLocation:"Copiar localiza\xE7\xE3o",copyUrl:"Copiar URL",copyMarkdown:"Copiar como markdown",subscriptionUnknown:"Calend\xE1rio desconhecido",notices:{copyTitleSuccess:"T\xEDtulo do evento copiado para a \xE1rea de transfer\xEAncia",copyLocationSuccess:"Localiza\xE7\xE3o copiada para a \xE1rea de transfer\xEAncia",copyUrlSuccess:"URL do evento copiada para a \xE1rea de transfer\xEAncia",copyMarkdownSuccess:"Detalhes do evento copiados como markdown",copyFailure:"Falha ao copiar para a \xE1rea de transfer\xEAncia",taskCreated:"Tarefa criada: {title}",taskCreateFailure:"Falha ao criar tarefa a partir do evento",noteCreated:"Nota criada com sucesso",creationFailure:"Falha ao abrir modal de cria\xE7\xE3o",linkSuccess:'Nota "{name}" vinculada ao evento',linkFailure:"Falha ao vincular nota",linkSelectionFailure:"Falha ao abrir sele\xE7\xE3o de nota"},markdown:{titleFallback:"Evento Sem T\xEDtulo",calendar:"**Calend\xE1rio:** {value}",date:"**Data e Hora:** {value}",location:"**Localiza\xE7\xE3o:** {value}",descriptionHeading:"### Descri\xE7\xE3o",url:"**URL:** {value}",at:" \xE0s {time}"}},date:{increment:{plusOneDay:"+1 dia",minusOneDay:"-1 dia",plusOneWeek:"+1 semana",minusOneWeek:"-1 semana"},basic:{today:"Hoje",tomorrow:"Amanh\xE3",thisWeekend:"Este fim de semana",nextWeek:"Pr\xF3xima semana",nextMonth:"Pr\xF3ximo m\xEAs"},weekdaysLabel:"Dias de semana",selected:"\u2713 {label}",pickDateTime:"Escolher data e hora\u2026",clearDate:"Limpar data",modal:{title:"Definir data e hora",dateLabel:"Data",timeLabel:"Hora (opcional)",select:"Selecionar"}}},services:{pomodoro:{notices:{alreadyRunning:"Um pomodoro j\xE1 est\xE1 em execu\xE7\xE3o",resumeCurrentSession:"Retome a sess\xE3o atual em vez de iniciar uma nova",timerAlreadyRunning:"Um temporizador j\xE1 est\xE1 em execu\xE7\xE3o",resumeSessionInstead:"Retome a sess\xE3o atual em vez de iniciar uma nova",shortBreakStarted:"Pausa curta iniciada",longBreakStarted:"Pausa longa iniciada",paused:"Pomodoro pausado",resumed:"Pomodoro retomado",stoppedAndReset:"Pomodoro parado e redefinido",migrationSuccess:"Migradas com sucesso {count} sess\xF5es pomodoro para notas di\xE1rias.",migrationFailure:"Falha ao migrar dados pomodoro. Por favor, tente novamente ou verifique o console para detalhes."}},icsSubscription:{notices:{calendarNotFound:'Calend\xE1rio "{name}" n\xE3o encontrado (404). Por favor, verifique se a URL ICS est\xE1 correta e se o calend\xE1rio \xE9 acess\xEDvel publicamente.',calendarAccessDenied:'Acesso ao calend\xE1rio "{name}" negado (500). Isso pode ser devido a restri\xE7\xF5es do servidor Microsoft Outlook. Tente regenerar a URL ICS das configura\xE7\xF5es do seu calend\xE1rio.',fetchRemoteFailed:'Falha ao buscar calend\xE1rio remoto "{name}": {error}',readLocalFailed:'Falha ao ler calend\xE1rio local "{name}": {error}'}},calendarExport:{notices:{generateLinkFailed:"Falha ao gerar link do calend\xE1rio",noTasksToExport:"Nenhuma tarefa encontrada para exportar",downloadSuccess:"Baixado {filename} com {count} tarefa{plural}",downloadFailed:"Falha ao baixar arquivo de calend\xE1rio",singleDownloadSuccess:"Baixado {filename}"}},filter:{groupLabels:{noProject:"Sem projeto",noTags:"Sem tags",invalidDate:"Data inv\xE1lida",due:{overdue:"Atrasadas",today:"Hoje",tomorrow:"Amanh\xE3",nextSevenDays:"Pr\xF3ximos sete dias",later:"Mais tarde",none:"Sem data de vencimento"},scheduled:{past:"Agendadas passadas",today:"Hoje",tomorrow:"Amanh\xE3",nextSevenDays:"Pr\xF3ximos sete dias",later:"Mais tarde",none:"Sem data agendada"}},errors:{noDatesProvided:"Nenhuma data fornecida"},folders:{root:"(Raiz)"}},instantTaskConvert:{notices:{noCheckboxTasks:"Nenhuma tarefa de caixa de sele\xE7\xE3o encontrada na nota atual.",convertingTasks:"Convertendo {count} tarefa{plural}...",conversionSuccess:"\u2705 Convertidas com sucesso {count} tarefa{plural} para TaskNotes!",partialConversion:"Convertidas {successCount} tarefa{successPlural}. {failureCount} falharam.",batchConversionFailed:"Falha ao realizar convers\xE3o em lote. Por favor, tente novamente.",invalidParameters:"Par\xE2metros de entrada inv\xE1lidos.",emptyLine:"Linha atual est\xE1 vazia ou n\xE3o cont\xE9m conte\xFAdo v\xE1lido.",parseError:"Erro ao analisar tarefa: {error}",invalidTaskData:"Dados da tarefa inv\xE1lidos.",replaceLineFailed:"Falha ao substituir linha da tarefa.",conversionComplete:"Tarefa convertida: {title}",conversionCompleteShortened:'Tarefa convertida: "{title}" (nome do arquivo encurtado devido ao comprimento)',fileExists:"Um arquivo com este nome j\xE1 existe. Por favor, tente novamente ou renomeie a tarefa.",conversionFailed:"Falha ao converter tarefa. Por favor, tente novamente."}},icsNote:{notices:{templateNotFound:"Modelo n\xE3o encontrado: {path}",templateProcessError:"Erro ao processar modelo: {template}",linkedToEvent:"Nota vinculada ao evento ICS: {title}"}},task:{notices:{templateNotFound:"Modelo de corpo da tarefa n\xE3o encontrado: {path}",templateReadError:"Erro ao ler modelo de corpo da tarefa: {template}",occurrenceTemplateNotFound:"Modelo de nota de ocorr\xEAncia n\xE3o encontrado: {path}",occurrenceTemplateReadError:"Erro ao ler modelo de nota de ocorr\xEAncia: {template}",moveTaskFailed:"Falha ao mover tarefa {operation}: {error}"}},autoExport:{notices:{exportFailed:"Exporta\xE7\xE3o autom\xE1tica do TaskNotes falhou: {error}"}},notification:{notices:{}}},ui:{icsCard:{untitledEvent:"Evento sem t\xEDtulo",allDay:"Dia inteiro",calendarEvent:"Evento de calend\xE1rio",calendarFallback:"Calend\xE1rio"},noteCard:{createdLabel:"Criada:",dailyBadge:"Di\xE1ria",dailyTooltip:"Nota di\xE1ria"},taskCard:{labels:{due:"Vencimento",scheduled:"Programado",recurrence:"Recorrente",completed:"Conclu\xEDdo",created:"Criado",modified:"Modificado",blocked:"Bloqueado",blocking:"Bloqueando"},blockedBadge:"Bloqueada",blockedBadgeTooltip:"Esta tarefa est\xE1 aguardando outra tarefa",blockingBadge:"Bloqueando",blockingBadgeTooltip:"Esta tarefa est\xE1 bloqueando outra tarefa",blockingToggle:"Bloqueando {count} tarefas",priorityAriaLabel:"Prioridade: {label}",taskOptions:"Op\xE7\xF5es da tarefa",recurrenceTooltip:"{label}: {value}",reminderTooltipOne:"1 lembrete definido (clique para gerenciar)",reminderTooltipMany:"{count} lembretes definidos (clique para gerenciar)",projectTooltip:"Esta tarefa \xE9 usada como projeto (clique para mostrar/ocultar subtarefas)",projectIndicatorTooltip:"Esta tarefa \xE9 usada como projeto",expandSubtasks:"Expandir subtarefas",collapseSubtasks:"Recolher subtarefas",dueToday:"{label}: Hoje",dueTodayAt:"{label}: Hoje \xE0s {time}",dueOverdue:"{label}: {display} (atrasada)",dueLabel:"{label}: {display}",scheduledToday:"{label}: Hoje",scheduledTodayAt:"{label}: Hoje \xE0s {time}",scheduledPast:"{label}: {display} (passado)",scheduledLabel:"{label}: {display}",loadingDependencies:"Carregando depend\xEAncias...",blockingEmpty:"Nenhuma tarefa dependente",blockingLoadError:"Falha ao carregar depend\xEAncias",googleCalendarSyncTooltip:"Sincronizado com o Google Agenda",detailsTooltip:"A tarefa tem detalhes"},propertyEventCard:{unknownFile:"Arquivo desconhecido"},filterHeading:{allViewName:"Todos"},filterBar:{saveView:"Salvar visualiza\xE7\xE3o",saveViewNamePlaceholder:"Digite o nome da visualiza\xE7\xE3o...",saveButton:"Salvar",views:"Visualiza\xE7\xF5es",savedFilterViews:"Visualiza\xE7\xF5es de filtro salvas",filters:"Filtros",properties:"Propriedades",sort:"Ordenar",newTask:"Nova",expandAllGroups:"Expandir Todos os Grupos",collapseAllGroups:"Recolher Todos os Grupos",searchTasksPlaceholder:"Buscar tarefas...",searchTasksTooltip:"Buscar t\xEDtulos de tarefas",filterUnavailable:"Barra de filtro temporariamente indispon\xEDvel",toggleFilter:"Alternar filtro",activeFiltersTooltip:"Filtros ativos \u2013 Clique para modificar, clique com o bot\xE3o direito para limpar",configureVisibleProperties:"Configurar propriedades vis\xEDveis",sortAndGroupOptions:"Op\xE7\xF5es de ordena\xE7\xE3o e agrupamento",sortMenuHeader:"Ordenar",orderMenuHeader:"Ordem",groupMenuHeader:"Agrupar",createNewTask:"Criar nova tarefa",filter:"Filtrar",displayOrganization:"Exibi\xE7\xE3o e Organiza\xE7\xE3o",viewOptions:"Op\xE7\xF5es de Visualiza\xE7\xE3o",addFilter:"Adicionar filtro",addFilterGroup:"Adicionar grupo de filtros",addFilterTooltip:"Adicionar uma nova condi\xE7\xE3o de filtro",addFilterGroupTooltip:"Adicionar um grupo de filtros aninhado",clearAllFilters:"Limpar todos os filtros e grupos",saveCurrentFilter:"Salvar filtro atual como visualiza\xE7\xE3o",closeFilterModal:"Fechar modal de filtro",deleteFilterGroup:"Excluir grupo de filtros",deleteCondition:"Excluir condi\xE7\xE3o",all:"Todos",any:"Qualquer um",followingAreTrue:"dos seguintes s\xE3o verdadeiros:",where:"onde",selectProperty:"Selecione...",chooseProperty:"Escolha qual propriedade da tarefa filtrar",chooseOperator:"Escolha como comparar o valor da propriedade",enterValue:"Digite o valor para filtrar",selectValue:"Selecione um(a) {property} para filtrar",sortBy:"Ordenar por:",toggleSortDirection:"Alternar dire\xE7\xE3o da ordena\xE7\xE3o",chooseSortMethod:"Escolha como ordenar tarefas",groupBy:"Agrupar por:",chooseGroupMethod:"Agrupar tarefas por uma propriedade comum",toggleViewOption:"Alternar {option}",expandCollapseFilters:"Clique para expandir/recolher condi\xE7\xF5es de filtro",expandCollapseSort:"Clique para expandir/recolher op\xE7\xF5es de ordena\xE7\xE3o e agrupamento",expandCollapseViewOptions:"Clique para expandir/recolher op\xE7\xF5es espec\xEDficas da visualiza\xE7\xE3o",naturalLanguageDates:"Datas em Linguagem Natural",naturalLanguageExamples:"Mostrar exemplos de datas em linguagem natural",enterNumericValue:"Digite um valor num\xE9rico para filtrar",enterDateValue:"Digite uma data usando linguagem natural ou formato ISO",pickDateTime:"Escolher data e hora",noSavedViews:"Nenhuma visualiza\xE7\xE3o salva",savedViews:"Visualiza\xE7\xF5es salvas",yourSavedFilters:"Suas configura\xE7\xF5es de filtro salvas",dragToReorder:"Arraste para reordenar visualiza\xE7\xF5es",loadSavedView:"Carregar visualiza\xE7\xE3o salva: {name}",deleteView:"Excluir visualiza\xE7\xE3o",deleteViewTitle:"Excluir Visualiza\xE7\xE3o",deleteViewMessage:'Tem certeza de que deseja excluir a visualiza\xE7\xE3o "{name}"?',manageAllReminders:"Gerenciar Todos os Lembretes...",clearAllReminders:"Limpar Todos os Lembretes",customRecurrence:"Recorr\xEAncia personalizada...",clearRecurrence:"Limpar recorr\xEAncia",sortOptions:{dueDate:"Data de Vencimento",scheduledDate:"Data Agendada",priority:"Prioridade",status:"Status",title:"T\xEDtulo",createdDate:"Data de Cria\xE7\xE3o",tags:"Tags",ascending:"Ascendente",descending:"Descendente"},group:{none:"Nenhum",status:"Status",priority:"Prioridade",context:"Contexto",project:"Projeto",dueDate:"Data de Vencimento",scheduledDate:"Data Agendada",tags:"Tags",completedDate:"Data de Conclus\xE3o"},subgroupLabel:"SUBGRUPO",notices:{propertiesMenuFailed:"Falha ao mostrar menu de propriedades"}}},components:{dateContextMenu:{weekdays:"Dias de semana",clearDate:"Limpar data",today:"Hoje",tomorrow:"Amanh\xE3",thisWeekend:"Este fim de semana",nextWeek:"Pr\xF3xima semana",nextMonth:"Pr\xF3ximo m\xEAs",setDateTime:"Definir data e hora",dateLabel:"Data",timeLabel:"Hora (opcional)"},subgroupMenuBuilder:{none:"Nenhum",status:"Status",priority:"Prioridade",context:"Contexto",project:"Projeto",dueDate:"Data de Vencimento",scheduledDate:"Data Agendada",tags:"Tags",completedDate:"Data de Conclus\xE3o",subgroup:"SUBGRUPO"},propertyVisibilityDropdown:{coreProperties:"PROPRIEDADES PRINCIPAIS",organization:"ORGANIZA\xC7\xC3O",customProperties:"PROPRIEDADES PERSONALIZADAS",failed:"Falha ao mostrar menu de propriedades",properties:{statusDot:"Ponto de Status",priorityDot:"Ponto de Prioridade",dueDate:"Data de Vencimento",scheduledDate:"Data Agendada",timeEstimate:"Estimativa de Tempo",totalTrackedTime:"Tempo Total Registrado",checklistProgress:"Progresso da lista de verifica\xE7\xE3o",recurrence:"Recorr\xEAncia",completedDate:"Data de Conclus\xE3o",createdDate:"Data de Cria\xE7\xE3o",modifiedDate:"Data de Modifica\xE7\xE3o",projects:"Projetos",contexts:"Contextos",tags:"Tags",blocked:"Bloqueada",blocking:"Bloqueando"}},reminderContextMenu:{remindBeforeDue:"Lembrar antes do vencimento...",remindBeforeScheduled:"Lembrar antes da data agendada...",manageAllReminders:"Gerenciar Todos os Lembretes...",clearAllReminders:"Limpar Todos os Lembretes",quickReminders:{atTime:"Na hora do evento",fiveMinutesBefore:"5 minutos antes",fifteenMinutesBefore:"15 minutos antes",oneHourBefore:"1 hora antes",oneDayBefore:"1 dia antes"}},recurrenceContextMenu:{daily:"Diariamente",weeklyOn:"Semanalmente na(o) {day}",everyTwoWeeksOn:"A cada 2 semanas na(o) {day}",monthlyOnThe:"Mensalmente no {ordinal}",everyThreeMonthsOnThe:"A cada 3 meses no {ordinal}",yearlyOn:"Anualmente em {ordinal} de {month}",weekdaysOnly:"Apenas dias de semana",dailyAfterCompletion:"Diariamente (ap\xF3s conclus\xE3o)",every3DaysAfterCompletion:"A cada 3 dias (ap\xF3s conclus\xE3o)",weeklyAfterCompletion:"Semanalmente (ap\xF3s conclus\xE3o)",monthlyAfterCompletion:"Mensalmente (ap\xF3s conclus\xE3o)",customRecurrence:"Recorr\xEAncia personalizada...",clearRecurrence:"Limpar recorr\xEAncia",customRecurrenceModal:{title:"Recorr\xEAncia Personalizada",startDate:"Data de in\xEDcio",startDateDesc:"A data em que o padr\xE3o de recorr\xEAncia come\xE7a",startTime:"Hora de in\xEDcio",startTimeDesc:"A hora em que as inst\xE2ncias recorrentes devem aparecer (opcional)",recurFrom:"Recorrer a partir de",recurFromDesc:"Quando a pr\xF3xima ocorr\xEAncia deve ser calculada?",scheduledDate:"Data agendada",completionDate:"Data de conclus\xE3o",frequency:"Frequ\xEAncia",interval:"Intervalo",intervalDesc:"A cada X dias/semanas/meses/anos",daysOfWeek:"Dias da semana",daysOfWeekDesc:"Selecione dias espec\xEDficos (para recorr\xEAncia semanal)",monthlyRecurrence:"Recorr\xEAncia mensal",monthlyRecurrenceDesc:"Escolha como repetir mensalmente",yearlyRecurrence:"Recorr\xEAncia anual",yearlyRecurrenceDesc:"Escolha como repetir anualmente",endCondition:"Condi\xE7\xE3o de t\xE9rmino",endConditionDesc:"Escolha quando a recorr\xEAncia deve terminar",neverEnds:"Nunca termina",endAfterOccurrences:"Terminar ap\xF3s {count} ocorr\xEAncias",endOnDate:"Terminar em {date}",onDayOfMonth:"No dia {day} de cada m\xEAs",onTheWeekOfMonth:"Na {week} {day} de cada m\xEAs",onDateOfYear:"Em {day} de {month} de cada ano",onTheWeekOfYear:"Na {week} {day} de {month} de cada ano",frequencies:{daily:"Diariamente",weekly:"Semanalmente",monthly:"Mensalmente",yearly:"Anualmente"},weekPositions:{first:"primeira",second:"segunda",third:"terceira",fourth:"quarta",last:"\xFAltima"},weekdays:{monday:"Segunda-feira",tuesday:"Ter\xE7a-feira",wednesday:"Quarta-feira",thursday:"Quinta-feira",friday:"Sexta-feira",saturday:"S\xE1bado",sunday:"Domingo"},weekdaysShort:{mon:"Seg",tue:"Ter",wed:"Qua",thu:"Qui",fri:"Sex",sat:"S\xE1b",sun:"Dom"},cancel:"Cancelar",save:"Salvar"}}}};var mxe={common:{appName:"TaskNotes",new:"\uC0C8\uB85C \uB9CC\uB4E4\uAE30",cancel:"\uCDE8\uC18C",confirm:"\uD655\uC778",close:"\uB2EB\uAE30",save:"\uC800\uC7A5",reorder:{confirmLargeTitle:"\uB300\uADDC\uBAA8 \uC7AC\uC815\uB82C \uD655\uC778",confirmButton:"\uB178\uD2B8 \uC7AC\uC815\uB82C",confirmLargeMessage:'\uC5EC\uAE30\uC11C \uC7AC\uC815\uB82C\uD558\uBA74 {scope}\uC5D0 \uB300\uD55C \uC9C0\uC18D\uC801\uC778 \uC218\uB3D9 \uC21C\uC11C\uB97C \uB9CC\uB4E4\uAE30 \uC704\uD574 {count}\uAC1C \uB178\uD2B8\uC758 "{field}" \uAC12\uC774 \uC5C5\uB370\uC774\uD2B8\uB429\uB2C8\uB2E4. \uAC19\uC740 \uBC94\uC704\uC758 \uC228\uACA8\uC9C4 \uB178\uD2B8\uB098 \uD544\uD130\uB9C1\uB41C \uB178\uD2B8\uB3C4 \uD568\uAED8 \uC5C5\uB370\uC774\uD2B8\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?'},language:"\uC5B8\uC5B4",systemDefault:"\uC2DC\uC2A4\uD15C \uAE30\uBCF8\uAC12",loading:"\uB85C\uB529 \uC911...",languages:{en:"\uC601\uC5B4",fr:"\uD504\uB791\uC2A4\uC5B4",ru:"\uB7EC\uC2DC\uC544\uC5B4",zh:"\uC911\uAD6D\uC5B4",de:"\uB3C5\uC77C\uC5B4",es:"\uC2A4\uD398\uC778\uC5B4",ja:"\uC77C\uBCF8\uC5B4",pt:"\uD3EC\uB974\uD22C\uAC08\uC5B4 (\uBE0C\uB77C\uC9C8)",ko:"\uD55C\uAD6D\uC5B4"},weekdays:{sunday:"\uC77C\uC694\uC77C",monday:"\uC6D4\uC694\uC77C",tuesday:"\uD654\uC694\uC77C",wednesday:"\uC218\uC694\uC77C",thursday:"\uBAA9\uC694\uC77C",friday:"\uAE08\uC694\uC77C",saturday:"\uD1A0\uC694\uC77C"},months:{january:"1\uC6D4",february:"2\uC6D4",march:"3\uC6D4",april:"4\uC6D4",may:"5\uC6D4",june:"6\uC6D4",july:"7\uC6D4",august:"8\uC6D4",september:"9\uC6D4",october:"10\uC6D4",november:"11\uC6D4",december:"12\uC6D4"}},views:{agenda:{title:"\uC77C\uC815",today:"\uC624\uB298",overdue:"\uC9C0\uC5F0\uB428",refreshCalendars:"\uCE98\uB9B0\uB354 \uC0C8\uB85C\uACE0\uCE68",actions:{previousPeriod:"\uC774\uC804 \uAE30\uAC04",nextPeriod:"\uB2E4\uC74C \uAE30\uAC04",goToToday:"\uC624\uB298\uB85C \uC774\uB3D9",refreshCalendars:"\uCE98\uB9B0\uB354 \uAD6C\uB3C5 \uC0C8\uB85C\uACE0\uCE68"},loading:"\uC77C\uC815 \uB85C\uB529 \uC911...",dayToggle:"\uB0A0\uC9DC \uD1A0\uAE00",overdueToggle:"\uC9C0\uC5F0 \uD56D\uBAA9 \uD1A0\uAE00",expandAllDays:"\uBAA8\uB4E0 \uB0A0\uC9DC \uD3BC\uCE58\uAE30",collapseAllDays:"\uBAA8\uB4E0 \uB0A0\uC9DC \uC811\uAE30",notices:{calendarNotReady:"\uCE98\uB9B0\uB354 \uC11C\uBE44\uC2A4\uAC00 \uC544\uC9C1 \uC900\uBE44\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4",calendarRefreshed:"\uCE98\uB9B0\uB354 \uAD6C\uB3C5\uC774 \uC0C8\uB85C\uACE0\uCE68\uB418\uC5C8\uC2B5\uB2C8\uB2E4",refreshFailed:"\uC0C8\uB85C\uACE0\uCE68 \uC2E4\uD328"},empty:{noItemsScheduled:"\uC608\uC815\uB41C \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",noItemsFound:"\uD56D\uBAA9\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",helpText:"\uB9C8\uAC10\uC77C\uC774\uB098 \uC608\uC815\uC77C\uC774 \uC788\uB294 \uC791\uC5C5\uC744 \uB9CC\uB4E4\uAC70\uB098, \uB178\uD2B8\uB97C \uCD94\uAC00\uD558\uC5EC \uC5EC\uAE30\uC5D0 \uD45C\uC2DC\uD558\uC138\uC694."},contextMenu:{showOverdueSection:"\uC9C0\uC5F0 \uD56D\uBAA9 \uD45C\uC2DC",showNotes:"\uB178\uD2B8 \uD45C\uC2DC",calendarSubscriptions:"\uCE98\uB9B0\uB354 \uAD6C\uB3C5"},periods:{thisWeek:"\uC774\uBC88 \uC8FC"},tipPrefix:"\uD301: "},taskList:{title:"\uC791\uC5C5",expandAllGroups:"\uBAA8\uB4E0 \uADF8\uB8F9 \uD3BC\uCE58\uAE30",collapseAllGroups:"\uBAA8\uB4E0 \uADF8\uB8F9 \uC811\uAE30",noTasksFound:"\uC120\uD0DD\uD55C \uD544\uD130\uC5D0 \uD574\uB2F9\uD558\uB294 \uC791\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",reorder:{scope:{ungrouped:"\uC774 \uADF8\uB8F9 \uC5C6\uB294 \uBAA9\uB85D",group:'"{group}" \uADF8\uB8F9'}},errors:{formulaGroupingReadOnly:"\uC218\uC2DD \uAE30\uBC18 \uADF8\uB8F9\uC5D0\uC11C\uB294 \uC791\uC5C5\uC744 \uC7AC\uC815\uB82C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC218\uC2DD \uAC12\uC740 \uACC4\uC0B0\uB41C \uAC12\uC774\uBBC0\uB85C \uC9C1\uC811 \uC218\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."}},notes:{title:"\uB178\uD2B8",refreshButton:"\uC0C8\uB85C\uACE0\uCE68",refreshingButton:"\uC0C8\uB85C\uACE0\uCE68 \uC911...",notices:{indexingDisabled:"\uB178\uD2B8 \uC778\uB371\uC2F1\uC774 \uBE44\uD65C\uC131\uD654\uB428"},empty:{noNotesFound:"\uB178\uD2B8\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",helpText:"\uC120\uD0DD\uD55C \uB0A0\uC9DC\uC5D0 \uD574\uB2F9\uD558\uB294 \uB178\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \uBBF8\uB2C8 \uCE98\uB9B0\uB354 \uBDF0\uC5D0\uC11C \uB2E4\uB978 \uB0A0\uC9DC\uB97C \uC120\uD0DD\uD558\uAC70\uB098 \uB178\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uBCF4\uC138\uC694."},loading:"\uB178\uD2B8 \uB85C\uB529 \uC911...",refreshButtonAriaLabel:"\uB178\uD2B8 \uBAA9\uB85D \uC0C8\uB85C\uACE0\uCE68"},miniCalendar:{title:"\uBBF8\uB2C8 \uCE98\uB9B0\uB354",contextMenu:{openDailyNote:"\uB370\uC77C\uB9AC \uB178\uD2B8 \uC5F4\uAE30",openWeeklyNote:"\uC8FC\uAC04 \uB178\uD2B8 \uC5F4\uAE30"}},advancedCalendar:{title:"\uCE98\uB9B0\uB354",filters:{showFilters:"\uD544\uD130 \uD45C\uC2DC",hideFilters:"\uD544\uD130 \uC228\uAE30\uAE30"},viewOptions:{calendarSubscriptions:"\uCE98\uB9B0\uB354 \uAD6C\uB3C5",timeEntries:"\uC2DC\uAC04 \uAE30\uB85D",timeblocks:"\uD0C0\uC784\uBE14\uB85D",scheduledDates:"\uC608\uC815\uC77C",dueDates:"\uB9C8\uAC10\uC77C",allDaySlot:"\uC885\uC77C \uC2AC\uB86F",scheduledTasks:"\uC608\uC815\uB41C \uC791\uC5C5",recurringTasks:"\uBC18\uBCF5 \uC791\uC5C5"},buttons:{refresh:"\uC0C8\uB85C\uACE0\uCE68",refreshHint:"\uCE98\uB9B0\uB354 \uAD6C\uB3C5 \uC0C8\uB85C\uACE0\uCE68"},notices:{icsServiceNotAvailable:"ICS \uAD6C\uB3C5 \uC11C\uBE44\uC2A4\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",calendarRefreshedAll:"\uBAA8\uB4E0 \uCE98\uB9B0\uB354 \uAD6C\uB3C5\uC774 \uC0C8\uB85C\uACE0\uCE68\uB418\uC5C8\uC2B5\uB2C8\uB2E4",refreshFailed:"\uC77C\uBD80 \uCE98\uB9B0\uB354 \uAD6C\uB3C5 \uC0C8\uB85C\uACE0\uCE68\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",timeblockSpecificTime:"\uD0C0\uC784\uBE14\uB85D\uC5D0\uB294 \uD2B9\uC815 \uC2DC\uAC04\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. \uC8FC\uAC04 \uB610\uB294 \uC77C\uAC04 \uBDF0\uC5D0\uC11C \uC2DC\uAC04 \uBC94\uC704\uB97C \uC120\uD0DD\uD558\uC138\uC694.",timeblockMoved:'\uD0C0\uC784\uBE14\uB85D "{title}"\uC744(\uB97C) {date}(\uC73C)\uB85C \uC774\uB3D9\uD588\uC2B5\uB2C8\uB2E4',timeblockUpdated:'\uD0C0\uC784\uBE14\uB85D "{title}" \uC2DC\uAC04\uC774 \uC5C5\uB370\uC774\uD2B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4',timeblockMoveFailed:"\uD0C0\uC784\uBE14\uB85D \uC774\uB3D9 \uC2E4\uD328: {message}",timeblockResized:'\uD0C0\uC784\uBE14\uB85D "{title}" \uAE30\uAC04\uC774 \uC5C5\uB370\uC774\uD2B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4',timeblockResizeFailed:"\uD0C0\uC784\uBE14\uB85D \uD06C\uAE30 \uC870\uC815 \uC2E4\uD328: {message}",taskScheduled:'\uC791\uC5C5 "{title}"\uC774(\uAC00) {date}\uC5D0 \uC608\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4',scheduleTaskFailed:"\uC791\uC5C5 \uC608\uC815 \uC2E4\uD328",endTimeAfterStart:"\uC885\uB8CC \uC2DC\uAC04\uC740 \uC2DC\uC791 \uC2DC\uAC04 \uC774\uD6C4\uC5EC\uC57C \uD569\uB2C8\uB2E4",timeEntryNotFound:"\uC2DC\uAC04 \uAE30\uB85D\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",timeEntryDeleted:"\uC2DC\uAC04 \uAE30\uB85D\uC774 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4",deleteTimeEntryFailed:"\uC2DC\uAC04 \uAE30\uB85D \uC0AD\uC81C \uC2E4\uD328"},timeEntry:{estimatedSuffix:"\uC608\uC0C1",trackedSuffix:"\uAE30\uB85D\uB428",recurringPrefix:"\uBC18\uBCF5: ",completedPrefix:"\uC644\uB8CC: ",createdPrefix:"\uC0DD\uC131: ",modifiedPrefix:"\uC218\uC815: ",duePrefix:"\uB9C8\uAC10: ",scheduledPrefix:"\uC608\uC815: "},contextMenus:{openTask:"\uC791\uC5C5 \uC5F4\uAE30",deleteTimeEntry:"\uC2DC\uAC04 \uAE30\uB85D \uC0AD\uC81C",deleteTimeEntryTitle:"\uC2DC\uAC04 \uAE30\uB85D \uC0AD\uC81C",deleteTimeEntryConfirm:"\uC774 \uC2DC\uAC04 \uAE30\uB85D{duration}\uC744(\uB97C) \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \uC774 \uC791\uC5C5\uC740 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",deleteButton:"\uC0AD\uC81C",cancelButton:"\uCDE8\uC18C"}},basesCalendar:{title:"\uBCA0\uC774\uC2A4 \uCE98\uB9B0\uB354",today:"\uC624\uB298",buttonText:{month:"\uC6D4",week:"\uC8FC",day:"\uC77C",year:"\uB144",list:"\uBAA9\uB85D",customDays:"{count}\uC77C",listDays:"{count}\uC77C \uBAA9\uB85D",refresh:"\uC0C8\uB85C\uACE0\uCE68"},hints:{refresh:"\uCE98\uB9B0\uB354 \uAD6C\uB3C5 \uC0C8\uB85C\uACE0\uCE68",today:"\uC624\uB298\uB85C \uC774\uB3D9",prev:"\uC774\uC804",next:"\uB2E4\uC74C",month:"\uC6D4\uAC04 \uBCF4\uAE30",week:"\uC8FC\uAC04 \uBCF4\uAE30",day:"\uC77C\uAC04 \uBCF4\uAE30",year:"\uC5F0\uAC04 \uBCF4\uAE30",list:"\uBAA9\uB85D \uBCF4\uAE30",customDays:"{count}\uC77C \uBCF4\uAE30"},settings:{groups:{dateNavigation:"\uB0A0\uC9DC \uD0D0\uC0C9",events:"\uC774\uBCA4\uD2B8",layout:"\uB808\uC774\uC544\uC6C3",view:"\uBCF4\uAE30",display:"\uD45C\uC2DC",timeGrid:"\uC2DC\uAC04 \uADF8\uB9AC\uB4DC",eventLayout:"\uC774\uBCA4\uD2B8 \uB808\uC774\uC544\uC6C3",propertyBasedEvents:"\uC18D\uC131 \uAE30\uBC18 \uC774\uBCA4\uD2B8",calendarSubscriptions:"\uCE98\uB9B0\uB354 \uAD6C\uB3C5",googleCalendars:"Google \uCE98\uB9B0\uB354",microsoftCalendars:"Microsoft \uCE98\uB9B0\uB354"},dateNavigation:{navigateToDate:"\uB0A0\uC9DC\uB85C \uC774\uB3D9",navigateToDatePlaceholder:"YYYY-MM-DD (\uC608: 2025-01-15) - \uC18D\uC131\uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 \uBE44\uC6CC\uB450\uC138\uC694",navigateToDateFromProperty:"\uC18D\uC131\uC5D0\uC11C \uB0A0\uC9DC\uB85C \uC774\uB3D9",navigateToDateFromPropertyPlaceholder:"\uB0A0\uC9DC \uC18D\uC131 \uC120\uD0DD (\uC120\uD0DD\uC0AC\uD56D)",propertyNavigationStrategy:"\uC18D\uC131 \uD0D0\uC0C9 \uC804\uB7B5",createDailyNotesFromDateLinks:"\uB0A0\uC9DC \uB9C1\uD06C\uC5D0\uC11C \uB370\uC77C\uB9AC \uB178\uD2B8 \uB9CC\uB4E4\uAE30",strategies:{first:"\uCCAB \uBC88\uC9F8 \uACB0\uACFC",earliest:"\uAC00\uC7A5 \uC774\uB978 \uB0A0\uC9DC",latest:"\uAC00\uC7A5 \uB2A6\uC740 \uB0A0\uC9DC"}},events:{showScheduledTasks:"\uC608\uC815\uB41C \uC791\uC5C5 \uD45C\uC2DC",showDueTasks:"\uB9C8\uAC10 \uC791\uC5C5 \uD45C\uC2DC",showOverdueOnToday:"\uAE30\uD55C\uC774 \uC9C0\uB09C \uC791\uC5C5\uC744 \uC624\uB298\uC5D0 \uD45C\uC2DC",showRecurringTasks:"\uBC18\uBCF5 \uC791\uC5C5 \uD45C\uC2DC",showTimeEntries:"\uC2DC\uAC04 \uAE30\uB85D \uD45C\uC2DC",showTimeblocks:"\uD0C0\uC784\uBE14\uB85D \uD45C\uC2DC",showPropertyBasedEvents:"\uC18D\uC131 \uAE30\uBC18 \uC774\uBCA4\uD2B8 \uD45C\uC2DC",showCompletedRecurringInstances:"\uC644\uB8CC\uB41C \uBC18\uBCF5 \uC778\uC2A4\uD134\uC2A4 \uD45C\uC2DC",showSkippedRecurringInstances:"\uAC74\uB108\uB6F4 \uBC18\uBCF5 \uC778\uC2A4\uD134\uC2A4 \uD45C\uC2DC"},layout:{calendarView:"\uCE98\uB9B0\uB354 \uBDF0",customDayCount:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uC77C\uC218",listDayCount:"\uBAA9\uB85D \uC77C\uC218",dayStartTime:"\uD558\uB8E8 \uC2DC\uC791 \uC2DC\uAC04",dayStartTimePlaceholder:"HH:mm:ss (\uC608: 08:00:00)",dayEndTime:"\uD558\uB8E8 \uC885\uB8CC \uC2DC\uAC04",dayEndTimePlaceholder:"HH:mm:ss (\uC608: 20:00:00)",timeSlotDuration:"\uC2DC\uAC04 \uC2AC\uB86F \uAC04\uACA9",timeSlotDurationPlaceholder:"HH:mm:ss (\uC608: 00:30:00)",dragDropResolution:"\uB4DC\uB798\uADF8/\uB4DC\uB86D \uAC04\uACA9",dragDropResolutionPlaceholder:"HH:mm:ss (\uC608: 00:05:00)",weekStartsOn:"\uC8FC \uC2DC\uC791 \uC694\uC77C",showWeekNumbers:"\uC8FC \uBC88\uD638 \uD45C\uC2DC",showNowIndicator:"\uD604\uC7AC \uC2DC\uAC04 \uD45C\uC2DC",showWeekends:"\uC8FC\uB9D0 \uD45C\uC2DC",showAllDaySlot:"\uC885\uC77C \uC2AC\uB86F \uD45C\uC2DC",showTimeGrid:"\uC2DC\uAC04\uB300 \uADF8\uB9AC\uB4DC \uD45C\uC2DC",showTodayHighlight:"\uC624\uB298 \uAC15\uC870 \uD45C\uC2DC",todayColumnWidthMultiplier:"\uC624\uB298 \uC5F4 \uB108\uBE44 \uBC30\uC218",showSelectionPreview:"\uC120\uD0DD \uBBF8\uB9AC\uBCF4\uAE30 \uD45C\uC2DC",timeFormat:"\uC2DC\uAC04 \uD615\uC2DD",timeFormat12:"12\uC2DC\uAC04 (\uC624\uC804/\uC624\uD6C4)",timeFormat24:"24\uC2DC\uAC04",initialScrollTime:"\uCD08\uAE30 \uC2A4\uD06C\uB864 \uC2DC\uAC04",initialScrollTimePlaceholder:"HH:mm:ss (\uC608: 08:00:00)",minimumEventHeight:"\uCD5C\uC18C \uC774\uBCA4\uD2B8 \uB192\uC774 (px)",slotEventOverlap:"\uC774\uBCA4\uD2B8 \uACB9\uCE68 \uD5C8\uC6A9",enableSearch:"\uAC80\uC0C9 \uC0C1\uC790 \uD65C\uC131\uD654",eventMaxStack:"\uCD5C\uB300 \uC774\uBCA4\uD2B8 \uC2A4\uD0DD (\uC8FC/\uC77C \uBCF4\uAE30, 0 = \uBB34\uC81C\uD55C)",dayMaxEvents:"\uC77C\uB2F9 \uCD5C\uB300 \uC774\uBCA4\uD2B8 (\uC6D4\uAC04 \uBCF4\uAE30, 0 = \uC790\uB3D9)",dayMaxEventRows:"\uC77C\uB2F9 \uCD5C\uB300 \uC774\uBCA4\uD2B8 \uD589 (\uC6D4\uAC04 \uBCF4\uAE30, 0 = \uBB34\uC81C\uD55C)",spanScheduledToDue:"\uC608\uC815\uC77C\uACFC \uB9C8\uAC10\uC77C \uC0AC\uC774 \uC791\uC5C5 \uD45C\uC2DC",heightMode:"\uB192\uC774 \uBAA8\uB4DC",heightModeFill:"\uCEE8\uD14C\uC774\uB108 \uCC44\uC6B0\uAE30",heightModeAuto:"\uC790\uB3D9 \uB192\uC774"},propertyBasedEvents:{startDateProperty:"\uC2DC\uC791\uC77C \uC18D\uC131",startDatePropertyPlaceholder:"\uC2DC\uC791 \uB0A0\uC9DC/\uC2DC\uAC04 \uC18D\uC131 \uC120\uD0DD",endDateProperty:"\uC885\uB8CC\uC77C \uC18D\uC131 (\uC120\uD0DD\uC0AC\uD56D)",endDatePropertyPlaceholder:"\uC885\uB8CC \uB0A0\uC9DC/\uC2DC\uAC04 \uC18D\uC131 \uC120\uD0DD",titleProperty:"\uC81C\uBAA9 \uC18D\uC131 (\uC120\uD0DD\uC0AC\uD56D)",titlePropertyPlaceholder:"\uC774\uBCA4\uD2B8 \uC81C\uBAA9 \uC18D\uC131 \uC120\uD0DD"}},notices:{noDailyNoteForDate:"\uC774 \uB0A0\uC9DC\uC758 \uB370\uC77C\uB9AC \uB178\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},errors:{failedToInitialize:"\uCE98\uB9B0\uB354 \uCD08\uAE30\uD654 \uC2E4\uD328"}},kanban:{title:"\uCE78\uBC18",newTask:"\uC0C8 \uC791\uC5C5",addCard:"+ \uCE74\uB4DC \uCD94\uAC00",noTasks:"\uC791\uC5C5 \uC5C6\uC74C",uncategorized:"\uBBF8\uBD84\uB958",noProject:"\uD504\uB85C\uC81D\uD2B8 \uC5C6\uC74C",reorder:{scope:{column:'"{group}" \uC5F4',columnInSwimlane:'"{swimlane}" \uC2A4\uC714\uB808\uC778\uC758 "{group}" \uC5F4'}},notices:{loadFailed:"\uCE78\uBC18 \uBCF4\uB4DC \uB85C\uB4DC \uC2E4\uD328",movedTask:'\uC791\uC5C5\uC774 "{0}"(\uC73C)\uB85C \uC774\uB3D9\uB418\uC5C8\uC2B5\uB2C8\uB2E4'},errors:{loadingBoard:"\uBCF4\uB4DC \uB85C\uB529 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.",noGroupBy:"\uCE78\uBC18 \uBDF0\uB294 '\uADF8\uB8F9\uD654 \uAE30\uC900' \uC18D\uC131\uC744 \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4. '\uC815\uB82C' \uBC84\uD2BC\uC744 \uD074\uB9AD\uD558\uACE0 '\uADF8\uB8F9\uD654 \uAE30\uC900'\uC5D0\uC11C \uC18D\uC131\uC744 \uC120\uD0DD\uD558\uC138\uC694.",formulaGroupingReadOnly:"\uC218\uC2DD \uAE30\uBC18 \uC5F4 \uAC04\uC5D0\uB294 \uC791\uC5C5\uC744 \uC774\uB3D9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC218\uC2DD \uAC12\uC740 \uACC4\uC0B0\uB418\uBA70 \uC9C1\uC811 \uC218\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",formulaSwimlaneReadOnly:"\uC218\uC2DD \uAE30\uBC18 \uC2A4\uC714\uB808\uC778 \uAC04\uC5D0\uB294 \uC791\uC5C5\uC744 \uC774\uB3D9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC218\uC2DD \uAC12\uC740 \uACC4\uC0B0\uB418\uBA70 \uC9C1\uC811 \uC218\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},columnTitle:"\uC81C\uBAA9 \uC5C6\uC74C"},pomodoro:{title:"\uBF40\uBAA8\uB3C4\uB85C",status:{focus:"\uC9D1\uC911",ready:"\uC2DC\uC791 \uC900\uBE44 \uC644\uB8CC",paused:"\uC77C\uC2DC \uC815\uC9C0\uB428",working:"\uC791\uC5C5 \uC911",shortBreak:"\uC9E7\uC740 \uD734\uC2DD",longBreak:"\uAE34 \uD734\uC2DD",breakPrompt:"\uC798\uD558\uC168\uC2B5\uB2C8\uB2E4! {length} \uD734\uC2DD \uC2DC\uAC04\uC785\uB2C8\uB2E4",breakLength:{short:"\uC9E7\uC740",long:"\uAE34"},breakComplete:"\uD734\uC2DD \uC644\uB8CC! \uB2E4\uC74C \uBF40\uBAA8\uB3C4\uB85C\uB97C \uC2DC\uC791\uD560 \uC900\uBE44\uAC00 \uB418\uC168\uB098\uC694?"},buttons:{start:"\uC2DC\uC791",pause:"\uC77C\uC2DC \uC815\uC9C0",stop:"\uC911\uC9C0",resume:"\uC7AC\uAC1C",startShortBreak:"\uC9E7\uC740 \uD734\uC2DD \uC2DC\uC791",startLongBreak:"\uAE34 \uD734\uC2DD \uC2DC\uC791",skipBreak:"\uD734\uC2DD \uAC74\uB108\uB6F0\uAE30",chooseTask:"\uC791\uC5C5 \uC120\uD0DD...",changeTask:"\uC791\uC5C5 \uBCC0\uACBD...",clearTask:"\uC791\uC5C5 \uC9C0\uC6B0\uAE30",selectDifferentTask:"\uB2E4\uB978 \uC791\uC5C5 \uC120\uD0DD",startFocus:"\uC9D1\uC911 \uC2DC\uC791",addMinute:"1\uBD84 \uCD94\uAC00",subtractMinute:"1\uBD84 \uBE7C\uAE30"},notices:{noTasks:"\uBCF4\uAD00\uB418\uC9C0 \uC54A\uC740 \uC791\uC5C5\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uBA3C\uC800 \uC791\uC5C5\uC744 \uB9CC\uB4DC\uC138\uC694.",loadFailed:"\uC791\uC5C5 \uB85C\uB4DC \uC2E4\uD328",invalidDuration:"10, 10:30 \uB610\uB294 1:30:00 \uAC19\uC740 \uC2DC\uAC04\uC744 \uC785\uB825\uD558\uC138\uC694."},statsLabel:"\uC624\uB298 \uC644\uB8CC",meta:{ready:"{time} \uC608\uC815 \xB7 \uC624\uB298 {count}\uAC1C \uC644\uB8CC",running:"{time} \uB0A8\uC74C \xB7 {endTime}\uC5D0 \uC885\uB8CC",paused:"{type} \uC77C\uC2DC \uC911\uC9C0 \xB7 {time} \uB0A8\uC74C",breakReady:"{type} \uC900\uBE44\uB428 \xB7 {time} \uC608\uC815"},timer:{editLabel:"\uD0C0\uC774\uBA38 \uC2DC\uAC04 \uD3B8\uC9D1",inputLabel:"\uD0C0\uC774\uBA38 \uC2DC\uAC04"}},pomodoroStats:{title:"\uBF40\uBAA8\uB3C4\uB85C \uD1B5\uACC4",heading:"\uBF40\uBAA8\uB3C4\uB85C \uD1B5\uACC4",refresh:"\uC0C8\uB85C\uACE0\uCE68",sections:{overview:"\uAC1C\uC694",today:"\uC624\uB298",week:"\uC774\uBC88 \uC8FC",allTime:"\uC804\uCCB4 \uAE30\uAC04",recent:"\uCD5C\uADFC \uC138\uC158"},overviewCards:{todayPomos:{label:"\uC624\uB298\uC758 \uBF40\uBAA8\uB3C4\uB85C",change:{more:"\uC5B4\uC81C\uBCF4\uB2E4 {count}\uAC1C \uB354 \uB9CE\uC74C",less:"\uC5B4\uC81C\uBCF4\uB2E4 {count}\uAC1C \uB354 \uC801\uC74C"}},totalPomos:{label:"\uCD1D \uBF40\uBAA8\uB3C4\uB85C"},todayFocus:{label:"\uC624\uB298\uC758 \uC9D1\uC911 \uC2DC\uAC04",change:{more:"\uC5B4\uC81C\uBCF4\uB2E4 {duration} \uB354 \uB9CE\uC74C",less:"\uC5B4\uC81C\uBCF4\uB2E4 {duration} \uB354 \uC801\uC74C"}},totalFocus:{label:"\uCD1D \uC9D1\uC911 \uC2DC\uAC04"}},stats:{pomodoros:"\uBF40\uBAA8\uB3C4\uB85C",streak:"\uC5F0\uC18D",minutes:"\uBD84",average:"\uD3C9\uADE0 \uAE38\uC774",completion:"\uC644\uB8CC\uC728"},recents:{empty:"\uC544\uC9C1 \uAE30\uB85D\uB41C \uC138\uC158\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",duration:"{minutes}\uBD84",status:{completed:"\uC644\uB8CC\uB428",interrupted:"\uC911\uB2E8\uB428"},delete:"\uC138\uC158 \uC0AD\uC81C",deleteAria:"Pomodoro \uC138\uC158 \uC0AD\uC81C",deleteConfirmTitle:"Pomodoro \uC138\uC158\uC744 \uC0AD\uC81C\uD560\uAE4C\uC694?",deleteConfirmMessage:"Pomodoro \uAE30\uB85D\uC5D0\uC11C \uC774 \uC138\uC158\uC744 \uC81C\uAC70\uD569\uB2C8\uB2E4. \uAE30\uC874 \uC791\uC5C5 \uC2DC\uAC04 \uD56D\uBAA9\uC740 \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",deleteConfirmButton:"\uC0AD\uC81C",deleteSuccess:"Pomodoro \uC138\uC158\uC774 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4",deleteNotFound:"Pomodoro \uC138\uC158\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4"},basesMigration:{title:"Base \uBCF4\uAE30 \uC6D0\uD558\uC2DC\uB098\uC694?",description:"Pomodoro Base \uBCF4\uAE30\uB294 \uB370\uC77C\uB9AC \uB178\uD2B8 frontmatter\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \uC0DD\uC131\uB41C Pomodoro \uD1B5\uACC4 Base\uC5D0\uC11C \uC774 \uAE30\uB85D\uC744 \uBCF4\uB824\uBA74 \uC124\uC815\uC5D0\uC11C Pomodoro \uB370\uC774\uD130\uB97C \uB9C8\uC774\uADF8\uB808\uC774\uC158\uD55C \uB2E4\uC74C \uC800\uC7A5 \uC704\uCE58\uB97C \uB370\uC77C\uB9AC \uB178\uD2B8\uB85C \uC124\uC815\uD558\uC138\uC694."}},stats:{title:"\uD1B5\uACC4",taskProjectStats:"\uC791\uC5C5 \uBC0F \uD504\uB85C\uC81D\uD2B8 \uD1B5\uACC4",sections:{filters:"\uD544\uD130",overview:"\uAC1C\uC694",today:"\uC624\uB298",thisWeek:"\uC774\uBC88 \uC8FC",thisMonth:"\uC774\uBC88 \uB2EC",projectBreakdown:"\uD504\uB85C\uC81D\uD2B8\uBCC4 \uBD84\uC11D",dateRange:"\uB0A0\uC9DC \uBC94\uC704"},filters:{minTime:"\uCD5C\uC18C \uC2DC\uAC04 (\uBD84)",allTasks:"\uBAA8\uB4E0 \uC791\uC5C5",activeOnly:"\uD65C\uC131 \uC791\uC5C5\uB9CC",completedOnly:"\uC644\uB8CC\uB41C \uC791\uC5C5\uB9CC"},refreshButton:"\uC0C8\uB85C\uACE0\uCE68",timeRanges:{allTime:"\uC804\uCCB4 \uAE30\uAC04",last7Days:"\uCD5C\uADFC 7\uC77C",last30Days:"\uCD5C\uADFC 30\uC77C",last90Days:"\uCD5C\uADFC 90\uC77C",customRange:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uBC94\uC704"},resetFiltersButton:"\uD544\uD130 \uCD08\uAE30\uD654",dateRangeFrom:"\uC2DC\uC791",dateRangeTo:"\uC885\uB8CC",noProject:"\uD504\uB85C\uC81D\uD2B8 \uC5C6\uC74C",cards:{timeTrackedEstimated:"\uAE30\uB85D \uC2DC\uAC04 / \uC608\uC0C1 \uC2DC\uAC04",totalTasks:"\uCD1D \uC791\uC5C5",completionRate:"\uC644\uB8CC\uC728",activeProjects:"\uD65C\uC131 \uD504\uB85C\uC81D\uD2B8",avgTimePerTask:"\uC791\uC5C5\uB2F9 \uD3C9\uADE0 \uC2DC\uAC04"},labels:{tasks:"\uC791\uC5C5",completed:"\uC644\uB8CC\uB428",projects:"\uD504\uB85C\uC81D\uD2B8"},noProjectData:"\uD504\uB85C\uC81D\uD2B8 \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4",notAvailable:"N/A",noTasks:"\uC791\uC5C5\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",loading:"\uB85C\uB529 \uC911..."},releaseNotes:{title:"TaskNotes {version}\uC758 \uC0C8\uB85C\uC6B4 \uAE30\uB2A5",header:"TaskNotes {version}\uC758 \uC0C8\uB85C\uC6B4 \uAE30\uB2A5",viewAllLink:"GitHub\uC5D0\uC11C \uBAA8\uB4E0 \uB9B4\uB9AC\uC2A4 \uB178\uD2B8 \uBCF4\uAE30 \u2192",starMessage:"\uBAA8\uB4E0 \uD53C\uB4DC\uBC31\uC744 \uC815\uB9D0 \uAC10\uC0AC\uD558\uAC8C \uC0DD\uAC01\uD569\uB2C8\uB2E4. \uBB54\uAC00 \uB9DE\uC9C0 \uC54A\uB294 \uB290\uB08C\uC774 \uB4E4\uBA74 GitHub\uC5D0\uC11C \uC54C\uB824 \uC8FC\uC138\uC694. TaskNotes\uAC00 \uC720\uC6A9\uD558\uB2E4\uBA74 \uBCC4\uD45C\uB3C4 \uACE0\uB824\uD574 \uC8FC\uC138\uC694.",baseFilesNotice:"> [!info] \uAE30\uBCF8 `.base` \uD30C\uC77C \uC548\uB0B4\n> \uAE30\uBCF8\uC73C\uB85C \uC0DD\uC131\uB418\uB294 `.base` \uD15C\uD50C\uB9BF\uC774 \uBCC0\uACBD\uB418\uC5B4\uB3C4 \uAE30\uC874 `.base` \uD30C\uC77C\uC740 \uB36E\uC5B4\uC4F0\uC9C0 \uC54A\uC73C\uBBC0\uB85C \uC0AC\uC6A9\uC790 \uC124\uC815\uC774 \uC720\uC9C0\uB429\uB2C8\uB2E4.\n> \uCD5C\uC2E0 \uD15C\uD50C\uB9BF \uAC1C\uC120 \uC0AC\uD56D\uC744 \uC801\uC6A9\uD558\uB824\uBA74 **\uC124\uC815 \u2192 TaskNotes \u2192 \uC77C\uBC18 \u2192 \uBCF4\uAE30 \uBC0F base \uD30C\uC77C \u2192 \uD30C\uC77C \uC5C5\uB370\uC774\uD2B8**\uC5D0\uC11C \uBCA0\uC774\uC2A4 \uD30C\uC77C\uC744 \uB2E4\uC2DC \uC0DD\uC131\uD558\uC138\uC694."}},settings:{header:{documentation:"\uBB38\uC11C",documentationUrl:"https://tasknotes.dev"},tabs:{general:"\uC77C\uBC18",taskProperties:"\uC791\uC5C5 \uC18D\uC131",modalFields:"\uBAA8\uB2EC \uD544\uB4DC",defaults:"\uAE30\uBCF8\uAC12 \uBC0F \uD15C\uD50C\uB9BF",appearance:"\uC678\uAD00 \uBC0F UI",features:"\uAE30\uB2A5",integrations:"\uD1B5\uD569"},features:{inlineTasks:{header:"\uC778\uB77C\uC778 \uC791\uC5C5",description:"\uB178\uD2B8 \uB0B4 \uC791\uC5C5 \uB9C1\uD06C \uBC0F \uCCB4\uD06C\uBC15\uC2A4-\uC791\uC5C5 \uBCC0\uD658 \uC124\uC815."},taskCreation:{header:"\uC791\uC5C5 \uC0DD\uC131",description:"\uC791\uC5C5 \uC0DD\uC131 \uD6C4 \uC218\uD589\uD560 \uB3D9\uC791\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",openAfterCreate:{name:"\uC0DD\uC131 \uD6C4 \uC791\uC5C5 \uC5F4\uAE30",description:"\uC77C\uBC18 \uC0C8 \uC791\uC5C5 \uB9CC\uB4E4\uAE30 \uBAA8\uB2EC\uC5D0\uC11C \uC800\uC7A5 \uD6C4 \uC0C8 \uC791\uC5C5 \uB178\uD2B8\uB97C \uC5F4\uC9C0 \uC120\uD0DD\uD569\uB2C8\uB2E4.",options:{none:"\uC5F4\uC9C0 \uC54A\uC74C",sameTab:"\uAC19\uC740 \uD0ED\uC5D0\uC11C \uC5F4\uAE30",newTab:"\uC0C8 \uD0ED\uC5D0\uC11C \uC5F4\uAE30"}}},overlays:{taskLinkToggle:{name:"\uC791\uC5C5 \uB9C1\uD06C \uC624\uBC84\uB808\uC774",description:"\uC791\uC5C5 \uB9C1\uD06C\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uC62C\uB9AC\uBA74 \uC778\uD130\uB799\uD2F0\uBE0C \uC624\uBC84\uB808\uC774 \uD45C\uC2DC"},aliasExclusion:{name:"\uBCC4\uCE6D \uB9C1\uD06C\uC5D0\uC11C \uC624\uBC84\uB808\uC774 \uBE44\uD65C\uC131\uD654",description:"\uB9C1\uD06C\uC5D0 \uBCC4\uCE6D\uC774 \uD3EC\uD568\uB41C \uACBD\uC6B0 \uC791\uC5C5 \uC704\uC82F\uC744 \uD45C\uC2DC\uD558\uC9C0 \uC54A\uC74C (\uC608: [[\uC791\uC5C5|\uBCC4\uCE6D]])."}},instantConvert:{toggle:{name:"\uCCB4\uD06C\uBC15\uC2A4 \uC606\uC5D0 \uBCC0\uD658 \uBC84\uD2BC \uD45C\uC2DC",description:"\uB9C8\uD06C\uB2E4\uC6B4 \uCCB4\uD06C\uBC15\uC2A4 \uC606\uC5D0 TaskNotes\uB85C \uBCC0\uD658\uD558\uB294 \uC778\uB77C\uC778 \uBC84\uD2BC \uD45C\uC2DC"},preserveCheckbox:{name:"\uBCC0\uD658 \uC2DC \uCCB4\uD06C\uBC15\uC2A4 \uC720\uC9C0",description:"\uCCB4\uD06C\uBC15\uC2A4\uB97C TaskNote \uB9C1\uD06C\uB85C \uBCC0\uD658\uD560 \uB54C \uC6D0\uB798 \uB9C8\uD06C\uB2E4\uC6B4 \uCCB4\uD06C\uBC15\uC2A4 \uD45C\uC2DC\uB97C \uB0A8\uAE41\uB2C8\uB2E4"},folder:{name:"\uC778\uB77C\uC778 \uC0DD\uC131 \uC791\uC5C5 \uD3F4\uB354",description:"\uC778\uB77C\uC778 \uBA85\uB839 \uB610\uB294 \uCCB4\uD06C\uBC15\uC2A4 \uBCC0\uD658\uC73C\uB85C \uC0DD\uC131\uB41C \uC791\uC5C5\uC774 \uB9CC\uB4E4\uC5B4\uC9C8 \uD3F4\uB354\uC785\uB2C8\uB2E4. \uBE44\uC6CC \uB450\uBA74 \uAE30\uBCF8 \uC791\uC5C5 \uD3F4\uB354\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \uD604\uC7AC \uB178\uD2B8\uC758 \uD3F4\uB354\uC5D0\uB294 {{currentNotePath}}\uB97C, \uD604\uC7AC \uB178\uD2B8 \uC774\uB984\uC758 \uD558\uC704 \uD3F4\uB354\uC5D0\uB294 {{currentNoteTitle}}\uC744 \uC0AC\uC6A9\uD558\uC138\uC694."}},nlp:{header:"\uC790\uC5F0\uC5B4 \uCC98\uB9AC",description:"\uD14D\uC2A4\uD2B8 \uC785\uB825\uC5D0\uC11C \uB0A0\uC9DC, \uC6B0\uC120\uC21C\uC704 \uBC0F \uAE30\uD0C0 \uC18D\uC131\uC744 \uD30C\uC2F1\uD569\uB2C8\uB2E4.",enable:{name:"\uC790\uC5F0\uC5B4 \uC791\uC5C5 \uC785\uB825 \uD65C\uC131\uD654",description:"\uC791\uC5C5 \uC0DD\uC131 \uC2DC \uC790\uC5F0\uC5B4\uC5D0\uC11C \uB9C8\uAC10\uC77C, \uC6B0\uC120\uC21C\uC704, \uCEE8\uD14D\uC2A4\uD2B8 \uD30C\uC2F1"},defaultToScheduled:{name:"\uC608\uC815\uC77C\uB85C \uAE30\uBCF8 \uC124\uC815",description:"NLP\uAC00 \uCEE8\uD14D\uC2A4\uD2B8 \uC5C6\uC774 \uB0A0\uC9DC\uB97C \uAC10\uC9C0\uD558\uBA74 \uB9C8\uAC10\uC77C \uB300\uC2E0 \uC608\uC815\uC77C\uB85C \uCC98\uB9AC"},language:{name:"NLP \uC5B8\uC5B4",description:"\uC790\uC5F0\uC5B4 \uCC98\uB9AC \uD328\uD134 \uBC0F \uB0A0\uC9DC \uD30C\uC2F1\uC744 \uC704\uD55C \uC5B8\uC5B4"},statusTrigger:{name:"\uC0C1\uD0DC \uC81C\uC548 \uD2B8\uB9AC\uAC70",description:"\uC0C1\uD0DC \uC81C\uC548\uC744 \uD2B8\uB9AC\uAC70\uD558\uB294 \uD14D\uC2A4\uD2B8 (\uBE44\uD65C\uC131\uD654\uD558\uB824\uBA74 \uBE44\uC6CC\uB450\uC138\uC694)"}},pomodoro:{header:"\uBF40\uBAA8\uB3C4\uB85C \uD0C0\uC774\uBA38",description:"\uBF40\uBAA8\uB3C4\uB85C \uD0C0\uC774\uBA38\uC758 \uC791\uC5C5/\uD734\uC2DD \uAC04\uACA9\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",workDuration:{name:"\uC791\uC5C5 \uC2DC\uAC04",description:"\uC791\uC5C5 \uAC04\uACA9 \uC2DC\uAC04 (\uBD84)"},shortBreak:{name:"\uC9E7\uC740 \uD734\uC2DD \uC2DC\uAC04",description:"\uC9E7\uC740 \uD734\uC2DD \uC2DC\uAC04 (\uBD84)"},longBreak:{name:"\uAE34 \uD734\uC2DD \uC2DC\uAC04",description:"\uAE34 \uD734\uC2DD \uC2DC\uAC04 (\uBD84)"},longBreakInterval:{name:"\uAE34 \uD734\uC2DD \uAC04\uACA9",description:"\uAE34 \uD734\uC2DD \uC804 \uC791\uC5C5 \uC138\uC158 \uC218"},autoStartBreaks:{name:"\uC790\uB3D9 \uD734\uC2DD \uC2DC\uC791",description:"\uC791\uC5C5 \uC138\uC158 \uD6C4 \uC790\uB3D9\uC73C\uB85C \uD734\uC2DD \uD0C0\uC774\uBA38 \uC2DC\uC791"},autoStartWork:{name:"\uC790\uB3D9 \uC791\uC5C5 \uC2DC\uC791",description:"\uD734\uC2DD \uD6C4 \uC790\uB3D9\uC73C\uB85C \uC791\uC5C5 \uC138\uC158 \uC2DC\uC791"},notifications:{name:"\uBF40\uBAA8\uB3C4\uB85C \uC54C\uB9BC",description:"\uBF40\uBAA8\uB3C4\uB85C \uC138\uC158 \uC885\uB8CC \uC2DC \uC54C\uB9BC \uD45C\uC2DC"},mobileSidebar:{name:"\uBAA8\uBC14\uC77C \uC0AC\uC774\uB4DC\uBC14",description:"\uBAA8\uBC14\uC77C \uAE30\uAE30\uC5D0\uC11C \uBF40\uBAA8\uB3C4\uB85C \uD0C0\uC774\uBA38\uB97C \uC5F4 \uC704\uCE58",tab:"\uB178\uD2B8 \uD328\uB110",left:"\uC67C\uCABD \uC0AC\uC774\uB4DC\uBC14",right:"\uC624\uB978\uCABD \uC0AC\uC774\uB4DC\uBC14"},statusBar:{name:"\uC0C1\uD0DC \uD45C\uC2DC\uC904\uC5D0 Pomodoro \uD45C\uC2DC",description:"Obsidian \uC0C1\uD0DC \uD45C\uC2DC\uC904\uC5D0 \uD65C\uC131 Pomodoro \uCE74\uC6B4\uD2B8\uB2E4\uC6B4 \uD45C\uC2DC"}},uiLanguage:{header:"\uC778\uD130\uD398\uC774\uC2A4 \uC5B8\uC5B4",description:"TaskNotes \uBA54\uB274, \uC54C\uB9BC \uBC0F \uBDF0\uC758 \uC5B8\uC5B4\uB97C \uBCC0\uACBD\uD569\uB2C8\uB2E4.",dropdown:{name:"UI \uC5B8\uC5B4",description:"TaskNotes \uC778\uD130\uD398\uC774\uC2A4 \uD14D\uC2A4\uD2B8\uC5D0 \uC0AC\uC6A9\uD560 \uC5B8\uC5B4 \uC120\uD0DD"}},pomodoroSound:{enabledName:"\uC0AC\uC6B4\uB4DC \uD65C\uC131\uD654",enabledDesc:"\uBF40\uBAA8\uB3C4\uB85C \uC138\uC158 \uC885\uB8CC \uC2DC \uC18C\uB9AC \uC7AC\uC0DD",volumeName:"\uC0AC\uC6B4\uB4DC \uBCFC\uB968",volumeDesc:"\uBF40\uBAA8\uB3C4\uB85C \uC0AC\uC6B4\uB4DC \uBCFC\uB968 (0-100)"},dataStorage:{name:"\uBF40\uBAA8\uB3C4\uB85C \uB370\uC774\uD130 \uC800\uC7A5",description:"\uBF40\uBAA8\uB3C4\uB85C \uC138\uC158 \uB370\uC774\uD130\uAC00 \uC800\uC7A5\uB418\uACE0 \uAD00\uB9AC\uB418\uB294 \uBC29\uBC95\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",dailyNotes:"\uB370\uC77C\uB9AC \uB178\uD2B8",pluginData:"\uD50C\uB7EC\uADF8\uC778 \uB370\uC774\uD130",notices:{locationChanged:"\uBF40\uBAA8\uB3C4\uB85C \uC800\uC7A5 \uC704\uCE58\uAC00 {location}(\uC73C)\uB85C \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4"}},notifications:{header:"\uC54C\uB9BC",description:"\uC791\uC5C5 \uB9AC\uB9C8\uC778\uB354 \uC54C\uB9BC \uBC0F \uACBD\uACE0\uB97C \uC124\uC815\uD569\uB2C8\uB2E4.",enableName:"\uC54C\uB9BC \uD65C\uC131\uD654",enableDesc:"\uC791\uC5C5 \uB9AC\uB9C8\uC778\uB354 \uC54C\uB9BC \uD65C\uC131\uD654",typeName:"\uC54C\uB9BC \uC720\uD615",typeDesc:"\uD45C\uC2DC\uD560 \uC54C\uB9BC \uC720\uD615",systemLabel:"\uC2DC\uC2A4\uD15C \uC54C\uB9BC",inAppLabel:"\uC571 \uB0B4 \uC54C\uB9BC",soundEnabledName:"\uC54C\uB9BC \uC18C\uB9AC",soundEnabledDesc:"\uC791\uC5C5 \uB9AC\uB9C8\uC778\uB354\uAC00 \uC2E4\uD589\uB420 \uB54C \uC18C\uB9AC \uC7AC\uC0DD",soundVolumeName:"\uC18C\uB9AC \uBCFC\uB968",soundVolumeDesc:"\uC791\uC5C5 \uB9AC\uB9C8\uC778\uB354 \uC18C\uB9AC \uBCFC\uB968 (0-100)",soundPreviewName:"\uC54C\uB9BC \uC18C\uB9AC \uBBF8\uB9AC \uB4E3\uAE30",soundPreviewDesc:"\uC124\uC815\uB41C \uC791\uC5C5 \uB9AC\uB9C8\uC778\uB354 \uC18C\uB9AC \uC7AC\uC0DD",soundPreviewButton:"\uBBF8\uB9AC \uB4E3\uAE30",testReminderName:"\uD14C\uC2A4\uD2B8 \uB9AC\uB9C8\uC778\uB354 \uBCF4\uB0B4\uAE30",testReminderDesc:"\uD604\uC7AC \uC54C\uB9BC \uC720\uD615\uACFC \uC18C\uB9AC \uC124\uC815\uC73C\uB85C \uD14C\uC2A4\uD2B8 \uB9AC\uB9C8\uC778\uB354\uB97C \uBCF4\uB0C5\uB2C8\uB2E4.",testReminderButton:"\uD14C\uC2A4\uD2B8 \uBCF4\uB0B4\uAE30"},overdue:{hideCompletedName:"\uC644\uB8CC\uB41C \uC791\uC5C5\uC744 \uC9C0\uC5F0 \uBAA9\uB85D\uC5D0\uC11C \uC228\uAE30\uAE30",hideCompletedDesc:"\uC644\uB8CC\uB41C \uC791\uC5C5\uC744 \uC9C0\uC5F0 \uC791\uC5C5 \uACC4\uC0B0\uC5D0\uC11C \uC81C\uC678"},indexing:{disableName:"\uB178\uD2B8 \uC778\uB371\uC2F1 \uBE44\uD65C\uC131\uD654",disableDesc:"\uB354 \uB098\uC740 \uC131\uB2A5\uC744 \uC704\uD574 \uB178\uD2B8 \uCF58\uD150\uCE20 \uC790\uB3D9 \uC778\uB371\uC2F1 \uBE44\uD65C\uC131\uD654"},suggestions:{debounceName:"\uC81C\uC548 \uB514\uBC14\uC6B4\uC2A4",debounceDesc:"\uC81C\uC548 \uD45C\uC2DC \uC804 \uC9C0\uC5F0 \uC2DC\uAC04 (\uBC00\uB9AC\uCD08)"},timeTracking:{autoStopName:"\uC2DC\uAC04 \uCD94\uC801 \uC790\uB3D9 \uC911\uC9C0",autoStopDesc:"\uC791\uC5C5 \uC644\uB8CC \uC2DC \uC2DC\uAC04 \uCD94\uC801 \uC790\uB3D9 \uC911\uC9C0",stopNotificationName:"\uC2DC\uAC04 \uCD94\uC801 \uC911\uC9C0 \uC54C\uB9BC",stopNotificationDesc:"\uC2DC\uAC04 \uCD94\uC801\uC774 \uC790\uB3D9 \uC911\uC9C0\uB418\uBA74 \uC54C\uB9BC \uD45C\uC2DC"},recurring:{maintainOffsetName:"\uBC18\uBCF5 \uC791\uC5C5\uC5D0\uC11C \uB9C8\uAC10\uC77C \uC624\uD504\uC14B \uC720\uC9C0",maintainOffsetDesc:"\uBC18\uBCF5 \uC791\uC5C5 \uC644\uB8CC \uC2DC \uB9C8\uAC10\uC77C\uACFC \uC608\uC815\uC77C \uAC04\uC758 \uC624\uD504\uC14B \uC720\uC9C0",resetCheckboxesName:"\uBC18\uBCF5 \uC2DC \uCCB4\uD06C\uBC15\uC2A4 \uCD08\uAE30\uD654",resetCheckboxesDesc:"\uBC18\uBCF5 \uC791\uC5C5\uC774 \uC644\uB8CC\uB418\uACE0 \uB2E4\uC2DC \uC608\uC57D\uB420 \uB54C \uC791\uC5C5 \uBCF8\uBB38\uC758 \uBAA8\uB4E0 \uB9C8\uD06C\uB2E4\uC6B4 \uCCB4\uD06C\uBC15\uC2A4\uB97C \uCD08\uAE30\uD654"},timeblocking:{header:"\uD0C0\uC784\uBE14\uB85C\uD0B9",description:"\uB370\uC77C\uB9AC \uB178\uD2B8\uC5D0\uC11C \uAC00\uBCBC\uC6B4 \uC77C\uC815 \uAD00\uB9AC\uB97C \uC704\uD55C \uD0C0\uC784\uBE14\uB85D \uAE30\uB2A5\uC744 \uC124\uC815\uD569\uB2C8\uB2E4. \uCE98\uB9B0\uB354 \uBDF0\uC5D0\uC11C \uB4DC\uB798\uADF8\uD558\uC5EC \uC774\uBCA4\uD2B8\uB97C \uB9CC\uB4E4\uACE0 \uCEE8\uD14D\uC2A4\uD2B8 \uBA54\uB274\uC5D0\uC11C '\uD0C0\uC784\uBE14\uB85D'\uC744 \uC120\uD0DD\uD558\uC138\uC694.",enableName:"\uD0C0\uC784\uBE14\uB85C\uD0B9 \uD65C\uC131\uD654",enableDesc:"\uB370\uC77C\uB9AC \uB178\uD2B8\uC5D0\uC11C \uAC00\uBCBC\uC6B4 \uC77C\uC815 \uAD00\uB9AC\uB97C \uC704\uD55C \uD0C0\uC784\uBE14\uB85C\uD0B9 \uAE30\uB2A5 \uD65C\uC131\uD654. \uD65C\uC131\uD654\uD558\uBA74 \uCE98\uB9B0\uB354 \uB4DC\uB798\uADF8 \uCEE8\uD14D\uC2A4\uD2B8 \uBA54\uB274\uC5D0 '\uD0C0\uC784\uBE14\uB85D' \uC635\uC158\uC774 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.",showBlocksName:"\uD0C0\uC784\uBE14\uB85D \uD45C\uC2DC",showBlocksDesc:"\uAE30\uBCF8\uC801\uC73C\uB85C \uB370\uC77C\uB9AC \uB178\uD2B8\uC758 \uD0C0\uC784\uBE14\uB85D \uD45C\uC2DC",defaultColorName:"\uAE30\uBCF8 \uD0C0\uC784\uBE14\uB85D \uC0C9\uC0C1",defaultColorDesc:"\uC0C8 \uD0C0\uC784\uBE14\uB85D \uC0DD\uC131 \uC2DC \uC0AC\uC6A9\uB418\uB294 \uAE30\uBCF8 \uC0C9\uC0C1",usage:"\uC0AC\uC6A9\uBC95: \uCE98\uB9B0\uB354\uC5D0\uC11C \uB4DC\uB798\uADF8\uD558\uC5EC \uC774\uBCA4\uD2B8\uB97C \uB9CC\uB4ED\uB2C8\uB2E4. \uCEE8\uD14D\uC2A4\uD2B8 \uBA54\uB274\uC5D0\uC11C '\uD0C0\uC784\uBE14\uB85D'\uC744 \uC120\uD0DD\uD558\uC138\uC694 (\uD0C0\uC784\uBE14\uB85C\uD0B9\uC774 \uD65C\uC131\uD654\uB41C \uACBD\uC6B0\uC5D0\uB9CC \uD45C\uC2DC\uB428). \uB4DC\uB798\uADF8\uD558\uC5EC \uAE30\uC874 \uD0C0\uC784\uBE14\uB85D\uC744 \uC774\uB3D9\uD569\uB2C8\uB2E4. \uAC00\uC7A5\uC790\uB9AC\uB97C \uB4DC\uB798\uADF8\uD558\uC5EC \uAE30\uAC04\uC744 \uC870\uC815\uD569\uB2C8\uB2E4."},performance:{header:"\uC131\uB2A5 \uBC0F \uB3D9\uC791",description:"\uD50C\uB7EC\uADF8\uC778 \uC131\uB2A5 \uBC0F \uB3D9\uC791 \uC635\uC158\uC744 \uC124\uC815\uD569\uB2C8\uB2E4."},timeTrackingSection:{header:"\uC2DC\uAC04 \uCD94\uC801",description:"\uC790\uB3D9 \uC2DC\uAC04 \uCD94\uC801 \uB3D9\uC791\uC744 \uC124\uC815\uD569\uB2C8\uB2E4."},recurringSection:{header:"\uBC18\uBCF5 \uC791\uC5C5",description:"\uBC18\uBCF5 \uC791\uC5C5 \uAD00\uB9AC \uB3D9\uC791\uC744 \uC124\uC815\uD569\uB2C8\uB2E4."},debugLogging:{header:"\uB514\uBC84\uADF8 \uB85C\uAE45",description:"\uBB38\uC81C \uD574\uACB0\uC744 \uC704\uD574 \uB514\uBC84\uADF8 \uB85C\uADF8 \uCD9C\uB825\uC744 \uAD6C\uC131\uD569\uB2C8\uB2E4.",enableName:"\uB514\uBC84\uADF8 \uB85C\uADF8 \uC0AC\uC6A9",enableDesc:"\uB4DC\uB798\uADF8 \uC564 \uB4DC\uB86D \uBC0F \uBCF4\uAE30 \uC9C4\uB2E8\uC758 \uC790\uC138\uD55C \uB0B4\uC6A9\uC744 \uAC1C\uBC1C\uC790 \uCF58\uC194\uC5D0 \uAE30\uB85D\uD569\uB2C8\uB2E4. \uBB38\uC81C \uD574\uACB0\uC5D0 \uC720\uC6A9\uD569\uB2C8\uB2E4."}},defaults:{header:{basicDefaults:"\uAE30\uBCF8 \uAE30\uBCF8\uAC12",dateDefaults:"\uB0A0\uC9DC \uAE30\uBCF8\uAC12",defaultReminders:"\uAE30\uBCF8 \uB9AC\uB9C8\uC778\uB354",bodyTemplate:"\uBCF8\uBB38 \uD15C\uD50C\uB9BF",instantTaskConversion:"\uC989\uC2DC \uC791\uC5C5 \uBCC0\uD658"},description:{basicDefaults:"\uC0C8 \uC791\uC5C5\uC758 \uAE30\uBCF8\uAC12\uC744 \uC124\uC815\uD558\uC5EC \uC791\uC5C5 \uC0DD\uC131 \uC18D\uB3C4\uB97C \uB192\uC785\uB2C8\uB2E4.",dateDefaults:"\uC0C8 \uC791\uC5C5\uC758 \uAE30\uBCF8 \uB9C8\uAC10\uC77C \uBC0F \uC608\uC815\uC77C\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",defaultReminders:"\uC0C8 \uC791\uC5C5\uC5D0 \uCD94\uAC00\uB420 \uAE30\uBCF8 \uB9AC\uB9C8\uC778\uB354\uB97C \uC124\uC815\uD569\uB2C8\uB2E4.",bodyTemplate:"\uC0C8 \uC791\uC5C5 \uCF58\uD150\uCE20\uC5D0 \uC0AC\uC6A9\uD560 \uD15C\uD50C\uB9BF \uD30C\uC77C\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",instantTaskConversion:"\uD14D\uC2A4\uD2B8\uB97C \uC791\uC5C5\uC73C\uB85C \uC989\uC2DC \uBCC0\uD658\uD560 \uB54C\uC758 \uB3D9\uC791\uC744 \uC124\uC815\uD569\uB2C8\uB2E4."},basicDefaults:{defaultStatus:{name:"\uAE30\uBCF8 \uC0C1\uD0DC",description:"\uC0C8 \uC791\uC5C5\uC758 \uAE30\uBCF8 \uC0C1\uD0DC"},defaultPriority:{name:"\uAE30\uBCF8 \uC6B0\uC120\uC21C\uC704",description:"\uC0C8 \uC791\uC5C5\uC758 \uAE30\uBCF8 \uC6B0\uC120\uC21C\uC704"},defaultContexts:{name:"\uAE30\uBCF8 \uCEE8\uD14D\uC2A4\uD2B8",description:"\uC27C\uD45C\uB85C \uAD6C\uBD84\uB41C \uAE30\uBCF8 \uCEE8\uD14D\uC2A4\uD2B8 \uBAA9\uB85D (\uC608: @home, @work)",placeholder:"@\uC9D1, @\uC9C1\uC7A5"},defaultTags:{name:"\uAE30\uBCF8 \uD0DC\uADF8",description:"# \uC5C6\uC774 \uC27C\uD45C\uB85C \uAD6C\uBD84\uB41C \uAE30\uBCF8 \uD0DC\uADF8 \uBAA9\uB85D",placeholder:"\uC911\uC694, \uAE34\uAE09"},defaultProjects:{name:"\uAE30\uBCF8 \uD504\uB85C\uC81D\uD2B8",description:"\uC0C8 \uC791\uC5C5\uC758 \uAE30\uBCF8 \uD504\uB85C\uC81D\uD2B8 \uB9C1\uD06C",selectButton:"\uD504\uB85C\uC81D\uD2B8 \uC120\uD0DD",selectTooltip:"\uAE30\uBCF8\uC73C\uB85C \uC5F0\uACB0\uD560 \uD504\uB85C\uC81D\uD2B8 \uB178\uD2B8 \uC120\uD0DD",removeTooltip:"\uAE30\uBCF8 \uD504\uB85C\uC81D\uD2B8\uC5D0\uC11C {name} \uC81C\uAC70"},useParentNoteForTaskCreation:{name:"\uC0C8 \uC791\uC5C5\uC5D0\uC11C \uD65C\uC131 \uB178\uD2B8\uB97C \uD504\uB85C\uC81D\uD2B8\uB85C \uC0AC\uC6A9",description:"\uBA85\uB839 \uD314\uB808\uD2B8 \uB610\uB294 \uB9AC\uBCF8\uC5D0\uC11C \uC791\uC5C5 \uC0DD\uC131\uC744 \uC5F4 \uB54C \uD65C\uC131 \uB178\uD2B8\uB97C \uD504\uB85C\uC81D\uD2B8\uB85C \uC790\uB3D9 \uC5F0\uACB0\uD569\uB2C8\uB2E4"},useParentNoteAsProject:{name:"\uC778\uB77C\uC778 \uC0DD\uC131 \uBC0F \uC989\uC2DC \uBCC0\uD658\uC5D0\uC11C \uC0C1\uC704 \uB178\uD2B8\uB97C \uD504\uB85C\uC81D\uD2B8\uB85C \uC0AC\uC6A9",description:"\uC778\uB77C\uC778 \uC791\uC5C5 \uC0DD\uC131 \uB610\uB294 \uC989\uC2DC \uC791\uC5C5 \uBCC0\uD658\uC744 \uC0AC\uC6A9\uD560 \uB54C \uC6D0\uBCF8 \uB178\uD2B8\uB97C \uD504\uB85C\uC81D\uD2B8\uB85C \uC790\uB3D9 \uC5F0\uACB0\uD569\uB2C8\uB2E4"},useParentHeaderAsProject:{name:"\uC989\uC2DC \uBCC0\uD658 \uC2DC \uC0C1\uC704 \uC81C\uBAA9\uC744 \uD504\uB85C\uC81D\uD2B8\uB85C \uC0AC\uC6A9",description:"\uC989\uC2DC \uC791\uC5C5 \uBCC0\uD658 \uC0AC\uC6A9 \uC2DC \uBCC0\uD658\uB41C \uC904 \uC704\uC758 \uAC00\uC7A5 \uAC00\uAE4C\uC6B4 \uC81C\uBAA9\uC744 \uD504\uB85C\uC81D\uD2B8\uB85C \uC790\uB3D9 \uC5F0\uACB0"},defaultTimeEstimate:{name:"\uAE30\uBCF8 \uC2DC\uAC04 \uC608\uC0C1",description:"\uAE30\uBCF8 \uC2DC\uAC04 \uC608\uC0C1 (\uBD84 \uB2E8\uC704, 0 = \uAE30\uBCF8\uAC12 \uC5C6\uC74C)",placeholder:"60"},defaultRecurrence:{name:"\uAE30\uBCF8 \uBC18\uBCF5",description:"\uC0C8 \uC791\uC5C5\uC758 \uAE30\uBCF8 \uBC18\uBCF5 \uD328\uD134"}},dateDefaults:{defaultDueDate:{name:"\uAE30\uBCF8 \uB9C8\uAC10\uC77C",description:"\uC0C8 \uC791\uC5C5\uC758 \uAE30\uBCF8 \uB9C8\uAC10\uC77C"},defaultScheduledDate:{name:"\uAE30\uBCF8 \uC608\uC815\uC77C",description:"\uC0C8 \uC791\uC5C5\uC758 \uAE30\uBCF8 \uC608\uC815\uC77C"}},reminders:{addReminder:{name:"\uAE30\uBCF8 \uB9AC\uB9C8\uC778\uB354 \uCD94\uAC00",description:"\uBAA8\uB4E0 \uC0C8 \uC791\uC5C5\uC5D0 \uCD94\uAC00\uB420 \uC0C8 \uAE30\uBCF8 \uB9AC\uB9C8\uC778\uB354 \uB9CC\uB4E4\uAE30",buttonText:"\uB9AC\uB9C8\uC778\uB354 \uCD94\uAC00"},emptyState:"\uAE30\uBCF8 \uB9AC\uB9C8\uC778\uB354\uAC00 \uC124\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uB9AC\uB9C8\uC778\uB354\uB97C \uCD94\uAC00\uD558\uC5EC \uC0C8 \uC791\uC5C5\uC5D0 \uB300\uD574 \uC790\uB3D9\uC73C\uB85C \uC54C\uB9BC\uC744 \uBC1B\uC73C\uC138\uC694.",emptyStateButton:"\uB9AC\uB9C8\uC778\uB354 \uCD94\uAC00",reminderDescription:"\uB9AC\uB9C8\uC778\uB354 \uC124\uBA85",unnamedReminder:"\uC774\uB984 \uC5C6\uB294 \uB9AC\uB9C8\uC778\uB354",deleteTooltip:"\uB9AC\uB9C8\uC778\uB354 \uC0AD\uC81C",fields:{description:"\uC124\uBA85:",type:"\uC720\uD615:",offset:"\uC624\uD504\uC14B:",unit:"\uB2E8\uC704:",direction:"\uBC29\uD5A5:",relatedTo:"\uAE30\uC900:",date:"\uB0A0\uC9DC:",time:"\uC2DC\uAC04:"},types:{relative:"\uC0C1\uB300\uC801 (\uC791\uC5C5 \uB0A0\uC9DC \uAE30\uC900 \uC804/\uD6C4)",absolute:"\uC808\uB300\uC801 (\uD2B9\uC815 \uB0A0\uC9DC/\uC2DC\uAC04)"},units:{minutes:"\uBD84",hours:"\uC2DC\uAC04",days:"\uC77C"},directions:{before:"\uC804",after:"\uD6C4"},relatedTo:{due:"\uB9C8\uAC10\uC77C",scheduled:"\uC608\uC815\uC77C"}},bodyTemplate:{useBodyTemplate:{name:"\uBCF8\uBB38 \uD15C\uD50C\uB9BF \uC0AC\uC6A9",description:"\uC791\uC5C5 \uBCF8\uBB38 \uCF58\uD150\uCE20\uC5D0 \uD15C\uD50C\uB9BF \uD30C\uC77C \uC0AC\uC6A9"},bodyTemplateFile:{name:"\uBCF8\uBB38 \uD15C\uD50C\uB9BF \uD30C\uC77C",description:"\uC791\uC5C5 \uBCF8\uBB38 \uCF58\uD150\uCE20\uC6A9 \uD15C\uD50C\uB9BF \uD30C\uC77C \uACBD\uB85C. {{title}}, {{date}}, {{time}}, {{priority}}, {{status}} \uB4F1\uC758 \uD15C\uD50C\uB9BF \uBCC0\uC218\uB97C \uC9C0\uC6D0\uD569\uB2C8\uB2E4.",placeholder:"\uD15C\uD50C\uB9BF/\uC791\uC5C5 \uD15C\uD50C\uB9BF.md",ariaLabel:"\uBCF8\uBB38 \uD15C\uD50C\uB9BF \uD30C\uC77C \uACBD\uB85C"},useOccurrenceBodyTemplate:{name:"\uBC1C\uC0DD \uB178\uD2B8 \uD15C\uD50C\uB9BF \uC0AC\uC6A9",description:"\uBC18\uBCF5 \uC791\uC5C5\uC5D0 occurrence_template\uC774 \uC5C6\uC744 \uB54C \uAD6C\uCCB4\uD654\uB41C \uBC1C\uC0DD \uB178\uD2B8\uC6A9 \uBCC4\uB3C4 \uB300\uCCB4 \uD15C\uD50C\uB9BF\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4"},occurrenceBodyTemplateFile:{name:"\uBC1C\uC0DD \uB178\uD2B8 \uD15C\uD50C\uB9BF \uD30C\uC77C",description:"\uAD6C\uCCB4\uD654\uB41C \uBC1C\uC0DD \uB178\uD2B8\uC6A9 \uD15C\uD50C\uB9BF \uD30C\uC77C \uACBD\uB85C. \uBC18\uBCF5 \uC791\uC5C5\uC758 occurrence_template \uD544\uB4DC\uAC00 \uC774 \uB300\uCCB4 \uD15C\uD50C\uB9BF\uBCF4\uB2E4 \uC6B0\uC120\uD569\uB2C8\uB2E4.",placeholder:"\uD15C\uD50C\uB9BF/\uBC1C\uC0DD \uD15C\uD50C\uB9BF.md",ariaLabel:"\uBC1C\uC0DD \uB178\uD2B8 \uD15C\uD50C\uB9BF \uD30C\uC77C \uACBD\uB85C"},variablesHeader:"\uD15C\uD50C\uB9BF \uBCC0\uC218:",variables:{title:"{{title}} - \uC791\uC5C5 \uC81C\uBAA9",details:"{{details}} - \uBAA8\uB2EC\uC5D0\uC11C \uC0AC\uC6A9\uC790\uAC00 \uC81C\uACF5\uD55C \uC138\uBD80\uC815\uBCF4",date:"{{date}} - \uD604\uC7AC \uB0A0\uC9DC (YYYY-MM-DD)",time:"{{time}} - \uD604\uC7AC \uC2DC\uAC04 (HH:MM)",priority:"{{priority}} - \uC791\uC5C5 \uC6B0\uC120\uC21C\uC704",status:"{{status}} - \uC791\uC5C5 \uC0C1\uD0DC",contexts:"{{contexts}} - \uC791\uC5C5 \uCEE8\uD14D\uC2A4\uD2B8",tags:"{{tags}} - \uC791\uC5C5 \uD0DC\uADF8",projects:"{{projects}} - \uC791\uC5C5 \uD504\uB85C\uC81D\uD2B8"}},instantConversion:{useDefaultsOnInstantConvert:{name:"\uC989\uC2DC \uBCC0\uD658 \uC2DC \uC791\uC5C5 \uAE30\uBCF8\uAC12 \uC0AC\uC6A9",description:"\uD14D\uC2A4\uD2B8\uB97C \uC791\uC5C5\uC73C\uB85C \uC989\uC2DC \uBCC0\uD658\uD560 \uB54C \uAE30\uBCF8 \uC791\uC5C5 \uC124\uC815 \uC801\uC6A9"}},options:{noDefault:"\uAE30\uBCF8\uAC12 \uC5C6\uC74C",none:"\uC5C6\uC74C",today:"\uC624\uB298",tomorrow:"\uB0B4\uC77C",nextWeek:"\uB2E4\uC74C \uC8FC",daily:"\uB9E4\uC77C",weekly:"\uB9E4\uC8FC",monthly:"\uB9E4\uC6D4",yearly:"\uB9E4\uB144"}},general:{taskStorage:{header:"\uC791\uC5C5 \uC800\uC7A5\uC18C",description:"\uC791\uC5C5\uC774 \uC800\uC7A5\uB418\uB294 \uC704\uCE58\uC640 \uC2DD\uBCC4 \uBC29\uBC95\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",defaultFolder:{name:"\uAE30\uBCF8 \uC791\uC5C5 \uD3F4\uB354",description:"\uC0C8 \uC791\uC5C5\uC758 \uAE30\uBCF8 \uC704\uCE58\uC785\uB2C8\uB2E4. {{currentNotePath}}, {{currentNoteTitle}}, {{projectFilePath}} \uAC19\uC740 \uD3F4\uB354 \uD15C\uD50C\uB9BF \uBCC0\uC218\uC640 YYYY/MM/DD \uAC19\uC740 Daily Notes \uC2A4\uD0C0\uC77C \uB0A0\uC9DC \uD1A0\uD070\uC744 \uC9C0\uC6D0\uD569\uB2C8\uB2E4."},moveArchived:{name:"\uBCF4\uAD00\uB41C \uC791\uC5C5\uC744 \uD3F4\uB354\uB85C \uC774\uB3D9",description:"\uBCF4\uAD00\uB41C \uC791\uC5C5\uC744 \uBCF4\uAD00 \uD3F4\uB354\uB85C \uC790\uB3D9 \uC774\uB3D9"},archiveFolder:{name:"\uBCF4\uAD00 \uD3F4\uB354",description:"\uBCF4\uAD00 \uC2DC \uC791\uC5C5\uC744 \uC774\uB3D9\uD560 \uD3F4\uB354. {{year}}, {{month}}, {{priority}} \uB4F1\uC758 \uD15C\uD50C\uB9BF \uBCC0\uC218\uB97C \uC9C0\uC6D0\uD569\uB2C8\uB2E4."}},taskIdentification:{header:"\uC791\uC5C5 \uC2DD\uBCC4",description:"TaskNotes\uAC00 \uB178\uD2B8\uB97C \uC791\uC5C5\uC73C\uB85C \uC2DD\uBCC4\uD558\uB294 \uBC29\uBC95\uC744 \uC120\uD0DD\uD569\uB2C8\uB2E4.",identifyBy:{name:"\uC791\uC5C5 \uC2DD\uBCC4 \uAE30\uC900",description:"\uD0DC\uADF8 \uB610\uB294 \uD504\uB860\uD2B8\uB9E4\uD130 \uC18D\uC131\uC73C\uB85C \uC791\uC5C5\uC744 \uC2DD\uBCC4\uD560\uC9C0 \uC120\uD0DD",options:{tag:"\uD0DC\uADF8",property:"\uC18D\uC131"}},taskTag:{name:"\uC791\uC5C5 \uD0DC\uADF8",description:"\uB178\uD2B8\uB97C \uC791\uC5C5\uC73C\uB85C \uC2DD\uBCC4\uD558\uB294 \uD0DC\uADF8 (# \uC81C\uC678). \uC774 \uAC12\uC744 \uBCC0\uACBD\uD574\uB3C4 \uAE30\uC874 .base \uBCF4\uAE30 \uD544\uD130\uB294 \uC774\uC804 \uD0DC\uADF8\uB97C \uC720\uC9C0\uD569\uB2C8\uB2E4. \uAE30\uBCF8 Base \uD30C\uC77C\uC744 \uC5C5\uB370\uC774\uD2B8\uD558\uAC70\uB098 \uD574\uB2F9 \uD544\uD130\uB97C \uC9C1\uC811 \uD3B8\uC9D1\uD558\uC138\uC694."},hideIdentifyingTags:{name:"\uC791\uC5C5 \uCE74\uB4DC\uC5D0\uC11C \uC2DD\uBCC4 \uD0DC\uADF8 \uC228\uAE30\uAE30",description:"\uD65C\uC131\uD654\uD558\uBA74 \uC791\uC5C5 \uC2DD\uBCC4 \uD0DC\uADF8\uC640 \uC77C\uCE58\uD558\uB294 \uD0DC\uADF8 (\uC608: 'task/project' \uAC19\uC740 \uACC4\uCE35\uC801 \uD0DC\uADF8 \uD3EC\uD568)\uAC00 \uC791\uC5C5 \uCE74\uB4DC\uC5D0\uC11C \uC228\uACA8\uC9D1\uB2C8\uB2E4"},hideIdentifyingTagsMode:{name:"\uC228\uAE38 \uD0DC\uADF8 \uBC94\uC704",description:"\uC2DD\uBCC4 \uD0DC\uADF8\uB97C \uC228\uAE38 \uB54C \uC911\uCCA9 \uD0DC\uADF8\uB3C4 \uC228\uAE38\uC9C0 \uC120\uD0DD\uD569\uB2C8\uB2E4.",options:{all:"\uC791\uC5C5 \uD0DC\uADF8\uC640 \uC911\uCCA9 \uD0DC\uADF8",exactOnly:"\uC815\uD655\uD55C \uC791\uC5C5 \uD0DC\uADF8\uB9CC"}},taskProperty:{name:"\uC791\uC5C5 \uC18D\uC131 \uC774\uB984",description:'\uD504\uB860\uD2B8\uB9E4\uD130 \uC18D\uC131 \uC774\uB984 (\uC608: "category")'},taskPropertyValue:{name:"\uC791\uC5C5 \uC18D\uC131 \uAC12",description:'\uB178\uD2B8\uB97C \uC791\uC5C5\uC73C\uB85C \uC2DD\uBCC4\uD558\uB294 \uAC12 (\uC608: "task")'}},folderManagement:{header:"\uD3F4\uB354 \uAD00\uB9AC",excludedFolders:{name:"\uC81C\uC678 \uD3F4\uB354",description:"\uC791\uC5C5 \uC778\uB371\uC2F1 \uBC0F \uD504\uB85C\uC81D\uD2B8 \uC81C\uC548\uC5D0\uC11C \uC81C\uC678\uD560 \uD3F4\uB354 (\uC27C\uD45C\uB85C \uAD6C\uBD84)"}},frontmatter:{header:"\uD504\uB860\uD2B8\uB9E4\uD130",description:"\uD504\uB860\uD2B8\uB9E4\uD130 \uC18D\uC131\uC5D0\uC11C \uB9C1\uD06C \uD615\uC2DD\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",useMarkdownLinks:{name:"\uD504\uB860\uD2B8\uB9E4\uD130\uC5D0\uC11C \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C \uC0AC\uC6A9",description:`\uD504\uB860\uD2B8\uB9E4\uD130 \uC18D\uC131\uC5D0\uC11C \uC704\uD0A4\uB9C1\uD06C ([[link]]) \uB300\uC2E0 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C ([text](path)) \uC0DD\uC131.
|
||
|
||
\u26A0\uFE0F \uC62C\uBC14\uB974\uAC8C \uC791\uB3D9\uD558\uB824\uBA74 'obsidian-frontmatter-markdown-links' \uD50C\uB7EC\uADF8\uC778\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.`}},taskInteraction:{header:"\uC791\uC5C5 \uC0C1\uD638\uC791\uC6A9",description:"\uC791\uC5C5 \uD074\uB9AD \uB3D9\uC791\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",singleClick:{name:"\uB2E8\uC77C \uD074\uB9AD \uB3D9\uC791",description:"\uC791\uC5C5 \uCE74\uB4DC\uB97C \uD55C \uBC88 \uD074\uB9AD\uD588\uC744 \uB54C \uC218\uD589\uD560 \uB3D9\uC791"},doubleClick:{name:"\uB354\uBE14 \uD074\uB9AD \uB3D9\uC791",description:"\uC791\uC5C5 \uCE74\uB4DC\uB97C \uB450 \uBC88 \uD074\uB9AD\uD588\uC744 \uB54C \uC218\uD589\uD560 \uB3D9\uC791"},actions:{edit:"\uC791\uC5C5 \uD3B8\uC9D1",openNote:"\uB178\uD2B8 \uC5F4\uAE30",none:"\uB3D9\uC791 \uC5C6\uC74C"}},releaseNotes:{header:"\uB9B4\uB9AC\uC2A4 \uB178\uD2B8",description:"\uD604\uC7AC \uBC84\uC804: {version}",showOnUpdate:{name:"\uC5C5\uB370\uC774\uD2B8 \uD6C4 \uB9B4\uB9AC\uC2A4 \uB178\uD2B8 \uD45C\uC2DC",description:"TaskNotes\uAC00 \uC0C8 \uBC84\uC804\uC73C\uB85C \uC5C5\uB370\uC774\uD2B8\uB418\uBA74 \uC790\uB3D9\uC73C\uB85C \uB9B4\uB9AC\uC2A4 \uB178\uD2B8 \uC5F4\uAE30"},checkForUpdates:{name:"\uC2DC\uC791 \uC2DC \uC0C8 \uB9B4\uB9AC\uC2A4 \uD655\uC778",description:"TaskNotes\uAC00 \uC2DC\uC791\uB420 \uB54C GitHub\uB97C \uD55C \uBC88 \uD655\uC778\uD558\uACE0 \uB354 \uCD5C\uC2E0 \uD638\uD658 \uB9B4\uB9AC\uC2A4\uAC00 \uC788\uC73C\uBA74 \uC54C\uB9BC\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4"},viewButton:{name:"\uB9B4\uB9AC\uC2A4 \uB178\uD2B8 \uBCF4\uAE30",description:"\uCD5C\uC2E0 \uBC84\uC804\uC758 TaskNotes\uC5D0\uC11C \uC0C8\uB85C\uC6B4 \uAE30\uB2A5 \uD655\uC778",buttonText:"\uB9B4\uB9AC\uC2A4 \uB178\uD2B8 \uBCF4\uAE30"}}},taskProperties:{sections:{coreProperties:"\uD575\uC2EC \uC18D\uC131",corePropertiesDesc:"\uC0C1\uD0DC\uC640 \uC6B0\uC120\uC21C\uC704\uB294 \uC791\uC5C5\uC758 \uC0C1\uD0DC\uC640 \uC911\uC694\uB3C4\uB97C \uC815\uC758\uD558\uB294 \uD575\uC2EC \uC18D\uC131\uC785\uB2C8\uB2E4.",dateProperties:"\uB0A0\uC9DC \uC18D\uC131",datePropertiesDesc:"\uC791\uC5C5\uC758 \uB9C8\uAC10\uC77C\uACFC \uC608\uC815\uC77C\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",organizationProperties:"\uC870\uC9C1 \uC18D\uC131",organizationPropertiesDesc:"\uCEE8\uD14D\uC2A4\uD2B8, \uD504\uB85C\uC81D\uD2B8, \uD0DC\uADF8\uB85C \uC791\uC5C5\uC744 \uC815\uB9AC\uD569\uB2C8\uB2E4.",taskDetails:"\uC791\uC5C5 \uC138\uBD80\uC815\uBCF4",taskDetailsDesc:"\uC2DC\uAC04 \uC608\uC0C1, \uBC18\uBCF5, \uB9AC\uB9C8\uC778\uB354 \uB4F1 \uCD94\uAC00 \uC138\uBD80\uC815\uBCF4.",metadataProperties:"\uBA54\uD0C0\uB370\uC774\uD130 \uC18D\uC131",metadataPropertiesDesc:"\uC791\uC5C5 \uAE30\uB85D\uC744 \uCD94\uC801\uD558\uAE30 \uC704\uD55C \uC2DC\uC2A4\uD15C \uAD00\uB9AC \uC18D\uC131.",featureProperties:"\uAE30\uB2A5 \uC18D\uC131",featurePropertiesDesc:"\uBF40\uBAA8\uB3C4\uB85C \uD0C0\uC774\uBA38 \uBC0F \uCE98\uB9B0\uB354 \uB3D9\uAE30\uD654 \uAC19\uC740 \uD2B9\uC815 TaskNotes \uAE30\uB2A5\uC5D0\uC11C \uC0AC\uC6A9\uD558\uB294 \uC18D\uC131."},propertyCard:{propertyKey:"\uC18D\uC131 \uD0A4:",default:"\uAE30\uBCF8\uAC12:",nlpTrigger:"NLP \uD2B8\uB9AC\uAC70:",triggerChar:"\uD2B8\uB9AC\uAC70 \uBB38\uC790:",triggerEmpty:"\uD2B8\uB9AC\uAC70\uB294 \uBE44\uC5B4 \uC788\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",triggerTooLong:"\uD2B8\uB9AC\uAC70\uAC00 \uB108\uBB34 \uAE41\uB2C8\uB2E4 (\uCD5C\uB300 10\uC790)"},properties:{status:{name:"\uC0C1\uD0DC",description:"\uC791\uC5C5\uC758 \uD604\uC7AC \uC0C1\uD0DC\uB97C \uCD94\uC801\uD569\uB2C8\uB2E4 (\uC608: \uD560 \uC77C, \uC9C4\uD589 \uC911, \uC644\uB8CC). \uC0C1\uD0DC\uB294 \uC791\uC5C5\uC774 \uC644\uB8CC\uB85C \uD45C\uC2DC\uB418\uB294\uC9C0 \uC5EC\uBD80\uB97C \uACB0\uC815\uD558\uACE0 \uC790\uB3D9 \uBCF4\uAD00\uC744 \uD2B8\uB9AC\uAC70\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."},priority:{name:"\uC6B0\uC120\uC21C\uC704",description:"\uC791\uC5C5 \uC911\uC694\uB3C4\uB97C \uB098\uD0C0\uB0C5\uB2C8\uB2E4. \uC815\uB82C \uBC0F \uD544\uD130\uB9C1\uC5D0 \uC0AC\uC6A9\uB429\uB2C8\uB2E4. \uBCA0\uC774\uC2A4 \uBDF0\uC5D0\uC11C \uC54C\uD30C\uBCB3\uC21C\uC73C\uB85C \uC815\uB82C\uB418\uBBC0\uB85C \uC21C\uC11C\uB97C \uC81C\uC5B4\uD558\uB824\uBA74 1-, 2- \uAC19\uC740 \uC811\uB450\uC0AC\uB97C \uC0AC\uC6A9\uD558\uC138\uC694."},due:{name:"\uB9C8\uAC10\uC77C",description:"\uC791\uC5C5\uC744 \uC644\uB8CC\uD574\uC57C \uD558\uB294 \uAE30\uD55C. \uB9C8\uAC10\uC77C\uC774 \uC9C0\uB09C \uC791\uC5C5\uC740 \uC9C0\uC5F0\uC73C\uB85C \uD45C\uC2DC\uB429\uB2C8\uB2E4. \uD504\uB860\uD2B8\uB9E4\uD130\uC5D0 \uB0A0\uC9DC\uB85C \uC800\uC7A5\uB429\uB2C8\uB2E4."},scheduled:{name:"\uC608\uC815\uC77C",description:"\uC791\uC5C5\uC744 \uC218\uD589\uD560 \uACC4\uD68D\uC77C. \uB9C8\uAC10\uC77C\uACFC \uB2EC\uB9AC \uC608\uC815 \uC2DC\uC791 \uC2DC\uAC04\uC744 \uB098\uD0C0\uB0C5\uB2C8\uB2E4. \uC791\uC5C5\uC740 \uC608\uC815 \uB0A0\uC9DC/\uC2DC\uAC04\uC5D0 \uCE98\uB9B0\uB354\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4."},contexts:{name:"\uCEE8\uD14D\uC2A4\uD2B8",description:"\uC791\uC5C5\uC744 \uC218\uD589\uD560 \uC218 \uC788\uB294 \uC704\uCE58\uB098 \uC870\uAC74 (\uC608: @home, @office, @phone). \uD604\uC7AC \uC0C1\uD669\uC5D0 \uB530\uB77C \uC791\uC5C5\uC744 \uD544\uD130\uB9C1\uD558\uB294 \uB370 \uC720\uC6A9\uD569\uB2C8\uB2E4. \uBAA9\uB85D\uC73C\uB85C \uC800\uC7A5\uB429\uB2C8\uB2E4."},projects:{name:"\uD504\uB85C\uC81D\uD2B8",description:"\uC774 \uC791\uC5C5\uC774 \uC18D\uD55C \uD504\uB85C\uC81D\uD2B8 \uB178\uD2B8 \uB9C1\uD06C. \uC704\uD0A4\uB9C1\uD06C\uB85C \uC800\uC7A5\uB429\uB2C8\uB2E4 (\uC608: [[\uD504\uB85C\uC81D\uD2B8 \uC774\uB984]]). \uC791\uC5C5\uC740 \uC5EC\uB7EC \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC18D\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."},tags:{name:"\uD0DC\uADF8",description:"\uC791\uC5C5 \uBD84\uB958\uB97C \uC704\uD55C \uAE30\uBCF8 Obsidian \uD0DC\uADF8. tags \uD504\uB860\uD2B8\uB9E4\uD130 \uC18D\uC131\uC5D0 \uC800\uC7A5\uB418\uBA70 Obsidian\uC758 \uD0DC\uADF8 \uAE30\uB2A5\uACFC \uD568\uAED8 \uC791\uB3D9\uD569\uB2C8\uB2E4."},timeEstimate:{name:"\uC2DC\uAC04 \uC608\uC0C1",description:"\uC791\uC5C5\uC744 \uC644\uB8CC\uD558\uB294 \uB370 \uC608\uC0C1\uB418\uB294 \uC2DC\uAC04 (\uBD84). \uD0C0\uC784\uBE14\uB85C\uD0B9 \uBC0F \uC791\uC5C5\uB7C9 \uACC4\uD68D\uC5D0 \uC0AC\uC6A9\uB429\uB2C8\uB2E4. \uC791\uC5C5 \uCE74\uB4DC\uC640 \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4."},recurrence:{name:"\uBC18\uBCF5",description:"\uBC18\uBCF5 \uC791\uC5C5 \uD328\uD134 (\uB9E4\uC77C, \uB9E4\uC8FC, \uB9E4\uC6D4, \uB9E4\uB144 \uB610\uB294 \uC0AC\uC6A9\uC790 \uC9C0\uC815 RRULE). \uBC18\uBCF5 \uC791\uC5C5\uC774 \uC644\uB8CC\uB418\uBA74 \uC608\uC815\uC77C\uC774 \uC790\uB3D9\uC73C\uB85C \uB2E4\uC74C \uBC1C\uC0DD\uC73C\uB85C \uC5C5\uB370\uC774\uD2B8\uB429\uB2C8\uB2E4."},recurrenceAnchor:{name:"\uBC18\uBCF5 \uAE30\uC900",description:"\uB2E4\uC74C \uBC1C\uC0DD \uACC4\uC0B0 \uBC29\uBC95\uC744 \uC81C\uC5B4\uD569\uB2C8\uB2E4: 'scheduled'\uB294 \uC608\uC815\uC77C\uC744, 'completion'\uC740 \uC2E4\uC81C \uC644\uB8CC\uC77C\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4."},reminders:{name:"\uB9AC\uB9C8\uC778\uB354",description:"\uB9C8\uAC10\uC77C \uB610\uB294 \uC608\uC815\uC77C \uC804\uC5D0 \uD2B8\uB9AC\uAC70\uB418\uB294 \uC54C\uB9BC. \uD0C0\uC774\uBC0D\uACFC \uC120\uD0DD\uC801 \uC124\uBA85\uC774 \uD3EC\uD568\uB41C \uB9AC\uB9C8\uC778\uB354 \uAC1D\uCCB4 \uBAA9\uB85D\uC73C\uB85C \uC800\uC7A5\uB429\uB2C8\uB2E4."},title:{name:"\uC81C\uBAA9",description:"\uC791\uC5C5 \uC774\uB984. \uD504\uB860\uD2B8\uB9E4\uD130 \uB610\uB294 \uD30C\uC77C\uBA85\uC5D0 \uC800\uC7A5\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4 ('\uD30C\uC77C\uBA85\uC5D0 \uC81C\uBAA9 \uC800\uC7A5'\uC774 \uD65C\uC131\uD654\uB41C \uACBD\uC6B0)."},dateCreated:{name:"\uC0DD\uC131\uC77C",description:"\uC791\uC5C5\uC774 \uCC98\uC74C \uC0DD\uC131\uB41C \uD0C0\uC784\uC2A4\uD0EC\uD504. \uC790\uB3D9\uC73C\uB85C \uC124\uC815\uB418\uBA70 \uC0DD\uC131 \uC21C\uC11C\uB85C \uC815\uB82C\uD558\uB294 \uB370 \uC0AC\uC6A9\uB429\uB2C8\uB2E4."},dateModified:{name:"\uC218\uC815\uC77C",description:"\uC791\uC5C5\uC758 \uB9C8\uC9C0\uB9C9 \uBCC0\uACBD \uD0C0\uC784\uC2A4\uD0EC\uD504. \uC791\uC5C5 \uC18D\uC131\uC774 \uBCC0\uACBD\uB418\uBA74 \uC790\uB3D9\uC73C\uB85C \uC5C5\uB370\uC774\uD2B8\uB429\uB2C8\uB2E4."},completedDate:{name:"\uC644\uB8CC\uC77C",description:"\uC791\uC5C5\uC774 \uC644\uB8CC\uB85C \uD45C\uC2DC\uB41C \uD0C0\uC784\uC2A4\uD0EC\uD504. \uC0C1\uD0DC\uAC00 \uC644\uB8CC \uC0C1\uD0DC\uB85C \uBCC0\uACBD\uB418\uBA74 \uC790\uB3D9\uC73C\uB85C \uC124\uC815\uB429\uB2C8\uB2E4."},archiveTag:{name:"\uBCF4\uAD00 \uD0DC\uADF8",description:"\uC791\uC5C5\uC774 \uBCF4\uAD00\uB420 \uB54C \uCD94\uAC00\uB418\uB294 \uD0DC\uADF8. \uBCF4\uAD00\uB41C \uC791\uC5C5\uC744 \uC2DD\uBCC4\uD558\uB294 \uB370 \uC0AC\uC6A9\uB418\uBA70 \uD30C\uC77C\uC744 \uBCF4\uAD00 \uD3F4\uB354\uB85C \uC774\uB3D9\uD558\uB3C4\uB85D \uD2B8\uB9AC\uAC70\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."},timeEntries:{name:"\uC2DC\uAC04 \uAE30\uB85D",description:"\uC774 \uC791\uC5C5\uC5D0 \uB300\uD55C \uC2DC\uAC04 \uCD94\uC801 \uC138\uC158 \uAE30\uB85D. \uAC01 \uAE30\uB85D\uC740 \uC2DC\uC791 \uBC0F \uC885\uB8CC \uD0C0\uC784\uC2A4\uD0EC\uD504\uB97C \uC800\uC7A5\uD569\uB2C8\uB2E4. \uCD1D \uC18C\uC694 \uC2DC\uAC04\uC744 \uACC4\uC0B0\uD558\uB294 \uB370 \uC0AC\uC6A9\uB429\uB2C8\uB2E4."},completeInstances:{name:"\uC644\uB8CC \uC778\uC2A4\uD134\uC2A4",description:"\uBC18\uBCF5 \uC791\uC5C5\uC758 \uC644\uB8CC \uAE30\uB85D. \uAC01 \uC778\uC2A4\uD134\uC2A4\uAC00 \uC644\uB8CC\uB41C \uB0A0\uC9DC\uB97C \uC800\uC7A5\uD558\uC5EC \uC911\uBCF5 \uC644\uB8CC\uB97C \uBC29\uC9C0\uD569\uB2C8\uB2E4."},skippedInstances:{name:"\uAC74\uB108\uB6F4 \uC778\uC2A4\uD134\uC2A4",description:"\uBC18\uBCF5 \uC791\uC5C5\uC758 \uAC74\uB108\uB6F4 \uBC1C\uC0DD. \uC644\uB8CC \uB300\uC2E0 \uAC74\uB108\uB6F4 \uC778\uC2A4\uD134\uC2A4\uC758 \uB0A0\uC9DC\uB97C \uC800\uC7A5\uD569\uB2C8\uB2E4."},blockedBy:{name:"\uCC28\uB2E8 \uC6D0\uC778",description:"\uC774 \uC791\uC5C5 \uC804\uC5D0 \uC644\uB8CC\uD574\uC57C \uD558\uB294 \uC791\uC5C5 \uB9C1\uD06C. \uC704\uD0A4\uB9C1\uD06C\uB85C \uC800\uC7A5\uB429\uB2C8\uB2E4. \uCC28\uB2E8\uB41C \uC791\uC5C5\uC740 \uC2DC\uAC01\uC801 \uD45C\uC2DC\uAE30\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4."},sortOrder:{name:"\uC218\uB3D9 \uC21C\uC11C",description:"\uB4DC\uB798\uADF8 \uC564 \uB4DC\uB86D\uC73C\uB85C \uC7AC\uC815\uB82C\uD560 \uB54C \uC0AC\uC6A9\uB418\uB294 frontmatter \uC18D\uC131\uC785\uB2C8\uB2E4. \uBDF0\uB294 \uC774 \uC18D\uC131\uC73C\uB85C \uC815\uB82C\uB418\uC5B4 \uC788\uC5B4\uC57C \uC7AC\uC815\uB82C\uC774 \uC791\uB3D9\uD569\uB2C8\uB2E4."},pomodoros:{name:"\uBF40\uBAA8\uB3C4\uB85C",description:"\uC644\uB8CC\uB41C \uBF40\uBAA8\uB3C4\uB85C \uC138\uC158 \uC218. \uB370\uC774\uD130 \uC800\uC7A5\uC774 '\uB370\uC77C\uB9AC \uB178\uD2B8'\uB85C \uC124\uC815\uB418\uBA74 \uC791\uC5C5 \uD30C\uC77C \uB300\uC2E0 \uB370\uC77C\uB9AC \uB178\uD2B8\uC5D0 \uAE30\uB85D\uB429\uB2C8\uB2E4."},icsEventId:{name:"ICS \uC774\uBCA4\uD2B8 ID",description:"\uB178\uD2B8\uB97C ICS \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uC5D0 \uC5F0\uACB0\uD558\uB294 \uACE0\uC720 \uC2DD\uBCC4\uC790. \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uC5D0\uC11C \uB178\uD2B8\uB97C \uB9CC\uB4E4 \uB54C \uC790\uB3D9\uC73C\uB85C \uCD94\uAC00\uB429\uB2C8\uB2E4."},icsEventTag:{name:"ICS \uC774\uBCA4\uD2B8 \uD0DC\uADF8",description:"ICS \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uC5D0\uC11C \uC0DD\uC131\uB41C \uB178\uD2B8\uB97C \uC2DD\uBCC4\uD558\uB294 \uD0DC\uADF8. \uCE98\uB9B0\uB354\uC5D0\uC11C \uC0DD\uC131\uB41C \uB178\uD2B8\uB97C \uC77C\uBC18 \uC791\uC5C5\uACFC \uAD6C\uBD84\uD558\uB294 \uB370 \uC0AC\uC6A9\uB429\uB2C8\uB2E4."}},statusCard:{valuesHeader:"\uC0C1\uD0DC \uAC12"},priorityCard:{valuesHeader:"\uC6B0\uC120\uC21C\uC704 \uAC12"},projectsCard:{defaultProjects:"\uAE30\uBCF8 \uD504\uB85C\uC81D\uD2B8:",useParentNoteForTaskCreation:"\uC0C8 \uC791\uC5C5\uC5D0\uC11C \uD65C\uC131 \uB178\uD2B8 \uC0AC\uC6A9:",useParentNoteForInlineTasks:"\uC778\uB77C\uC778/\uC989\uC2DC \uBCC0\uD658\uC5D0\uC11C \uC0C1\uC704 \uB178\uD2B8 \uC0AC\uC6A9:",useParentHeader:"\uC0C1\uC704 \uC81C\uBAA9\uC744 \uD504\uB85C\uC81D\uD2B8\uB85C \uC0AC\uC6A9:",inheritParentTaskProperties:"\uD558\uC704 \uC791\uC5C5\uC5D0 \uC0C1\uC704 \uC791\uC5C5 \uC18D\uC131 \uC0C1\uC18D:",noDefaultProjects:"\uC120\uD0DD\uB41C \uAE30\uBCF8 \uD504\uB85C\uC81D\uD2B8 \uC5C6\uC74C",autosuggestFilters:"\uC790\uB3D9 \uC81C\uC548 \uD544\uD130",customizeDisplay:"\uD45C\uC2DC \uC0AC\uC6A9\uC790 \uC9C0\uC815",filtersOn:"\uD544\uD130 \uCF1C\uC9D0"},titleCard:{storeTitleInFilename:"\uD30C\uC77C\uBA85\uC5D0 \uC81C\uBAA9 \uC800\uC7A5:",storedInFilename:"\uD30C\uC77C\uBA85\uC5D0 \uC800\uC7A5\uB428",filenameUpdatesWithTitle:"\uC791\uC5C5 \uC81C\uBAA9\uC774 \uBCC0\uACBD\uB418\uBA74 \uD30C\uC77C\uBA85\uC774 \uC790\uB3D9\uC73C\uB85C \uC5C5\uB370\uC774\uD2B8\uB429\uB2C8\uB2E4.",filenameFormat:"\uD30C\uC77C\uBA85 \uD615\uC2DD:",customTemplate:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD15C\uD50C\uB9BF:",legacySyntaxWarning:"{title}\uACFC \uAC19\uC740 \uB2E8\uC77C \uC911\uAD04\uD638 \uAD6C\uBB38\uC740 \uB354 \uC774\uC0C1 \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uBCF8\uBB38 \uD15C\uD50C\uB9BF\uACFC\uC758 \uC77C\uAD00\uC131\uC744 \uC704\uD574 {{title}}\uACFC \uAC19\uC740 \uC774\uC911 \uC911\uAD04\uD638 \uAD6C\uBB38\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.",occurrenceFilenameTemplate:"\uBC1C\uC0DD \uD56D\uBAA9 \uD30C\uC77C\uBA85 \uD15C\uD50C\uB9BF",occurrenceFilenameTemplateHelp:"\uBC18\uBCF5 \uC791\uC5C5\uC5D0\uC11C \uAD6C\uCCB4\uD654\uB41C \uBC1C\uC0DD \uD56D\uBAA9\uC758 \uD30C\uC77C\uBA85 \uD15C\uD50C\uB9BF\uC785\uB2C8\uB2E4. \uBE44\uC6CC \uB450\uBA74 \uAE30\uC874 \uC774\uB984(\uC0C1\uC704 \uC791\uC5C5 \uC81C\uBAA9\uACFC \uC22B\uC790 \uC811\uBBF8\uC0AC)\uC744 \uC720\uC9C0\uD569\uB2C8\uB2E4. {{occurrenceDate}}, {{occurrenceWeek}}, {{occurrenceMonth}}, {{occurrenceYear}}, {{occurrenceMonthName}} \uC911 \uD558\uB098\uB85C \uD30C\uC77C\uBA85 \uB2E8\uC704\uB97C \uBA85\uC2DC\uC801\uC73C\uB85C \uC120\uD0DD\uD558\uC138\uC694. \uC77C\uBC18 \uD30C\uC77C\uBA85 \uBCC0\uC218\uB3C4 \uBAA8\uB450 \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC0C1\uC704 \uC791\uC5C5\uC740 \uC544\uB798\uC5D0\uC11C \uC124\uC815\uD55C \uD504\uB860\uD2B8\uB9E4\uD130 \uC18D\uC131\uC73C\uB85C \uC774 \uD15C\uD50C\uB9BF\uC744 \uC7AC\uC815\uC758\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",occurrenceFilenameProperty:"\uBC1C\uC0DD \uD56D\uBAA9 \uD15C\uD50C\uB9BF \uC7AC\uC815\uC758 \uC18D\uC131",occurrenceFilenamePropertyHelp:"\uBC18\uBCF5 \uC0C1\uC704 \uC791\uC5C5\uC5D0\uC11C \uBC1C\uC0DD \uD56D\uBAA9 \uD30C\uC77C\uBA85 \uD15C\uD50C\uB9BF\uC744 \uC7AC\uC815\uC758\uD558\uB294 \uD504\uB860\uD2B8\uB9E4\uD130 \uC18D\uC131\uC758 \uC774\uB984\uC785\uB2C8\uB2E4."},tagsCard:{nativeObsidianTags:"\uAE30\uBCF8 Obsidian \uD0DC\uADF8 \uC0AC\uC6A9"},remindersCard:{defaultReminders:"\uAE30\uBCF8 \uB9AC\uB9C8\uC778\uB354"},taskStatuses:{header:"\uC791\uC5C5 \uC0C1\uD0DC",description:"\uC791\uC5C5\uC5D0 \uC0AC\uC6A9\uD560 \uC218 \uC788\uB294 \uC0C1\uD0DC \uC635\uC158\uC744 \uC0AC\uC6A9\uC790 \uC9C0\uC815\uD569\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uC0C1\uD0DC\uB294 \uC791\uC5C5 \uC218\uBA85 \uC8FC\uAE30\uB97C \uC81C\uC5B4\uD558\uACE0 \uC791\uC5C5\uC774 \uC644\uB8CC\uB85C \uAC04\uC8FC\uB418\uB294 \uC2DC\uC810\uC744 \uACB0\uC815\uD569\uB2C8\uB2E4.",howTheyWork:{title:"\uC0C1\uD0DC \uC791\uB3D9 \uBC29\uC2DD:",value:'\uAC12: \uC791\uC5C5 \uD30C\uC77C\uC5D0 \uC800\uC7A5\uB418\uB294 \uB0B4\uBD80 \uC2DD\uBCC4\uC790 (\uC608: "in-progress")',label:'\uB808\uC774\uBE14: \uC778\uD130\uD398\uC774\uC2A4\uC5D0 \uD45C\uC2DC\uB418\uB294 \uD45C\uC2DC \uC774\uB984 (\uC608: "\uC9C4\uD589 \uC911")',color:"\uC0C9\uC0C1: \uC0C1\uD0DC \uC810\uACFC \uBC30\uC9C0\uC758 \uC2DC\uAC01\uC801 \uD45C\uC2DC\uAE30 \uC0C9\uC0C1",icon:'\uC544\uC774\uCF58: \uC0C9\uC0C1 \uC810 \uB300\uC2E0 \uD45C\uC2DC\uD560 \uC120\uD0DD\uC801 Lucide \uC544\uC774\uCF58 \uC774\uB984 (\uC608: "check", "circle", "clock"). lucide.dev\uC5D0\uC11C \uC544\uC774\uCF58\uC744 \uCC3E\uC544\uBCF4\uC138\uC694',completed:"\uC644\uB8CC\uB428: \uC120\uD0DD\uD558\uBA74 \uC774 \uC0C1\uD0DC\uC758 \uC791\uC5C5\uC774 \uC644\uB8CC\uB41C \uAC83\uC73C\uB85C \uAC04\uC8FC\uB418\uBA70 \uB2E4\uB974\uAC8C \uD544\uD130\uB9C1\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4",autoArchive:"\uC790\uB3D9 \uBCF4\uAD00: \uD65C\uC131\uD654\uD558\uBA74 \uC9C0\uC815\uB41C \uC9C0\uC5F0 \uC2DC\uAC04 \uD6C4 \uC791\uC5C5\uC774 \uC790\uB3D9\uC73C\uB85C \uBCF4\uAD00\uB429\uB2C8\uB2E4 (1-1440\uBD84)",orderNote:"\uC544\uB798 \uC21C\uC11C\uB294 \uC791\uC5C5 \uC0C1\uD0DC \uBC30\uC9C0\uB97C \uD074\uB9AD\uD558\uC5EC \uC0C1\uD0DC\uB97C \uC21C\uD658\uD560 \uB54C\uC758 \uC21C\uC11C\uB97C \uACB0\uC815\uD569\uB2C8\uB2E4."},addNew:{name:"\uC0C8 \uC0C1\uD0DC \uCD94\uAC00",description:"\uC791\uC5C5\uC5D0 \uC0C8 \uC0C1\uD0DC \uC635\uC158 \uB9CC\uB4E4\uAE30",buttonText:"\uC0C1\uD0DC \uCD94\uAC00"},validationNote:'\uCC38\uACE0: \uCD5C\uC18C 2\uAC1C\uC758 \uC0C1\uD0DC\uAC00 \uC788\uC5B4\uC57C \uD558\uBA70, \uCD5C\uC18C \uD558\uB098\uC758 \uC0C1\uD0DC\uAC00 "\uC644\uB8CC\uB428"\uC73C\uB85C \uD45C\uC2DC\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.',emptyState:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uC0C1\uD0DC\uAC00 \uC124\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uC0C1\uD0DC\uB97C \uCD94\uAC00\uD558\uC5EC \uC2DC\uC791\uD558\uC138\uC694.",emptyStateButton:"\uC0C1\uD0DC \uCD94\uAC00",fields:{value:"\uAC12:",label:"\uB808\uC774\uBE14:",color:"\uC0C9\uC0C1:",icon:"\uC544\uC774\uCF58:",completed:"\uC644\uB8CC\uB428:",excludeFromCycle:"\uC21C\uD658 \uC2DC \uAC74\uB108\uB6F0\uAE30:",nextStatus:"\uB2E4\uC74C \uC0C1\uD0DC:",autoArchive:"\uC790\uB3D9 \uBCF4\uAD00:",delayMinutes:"\uC9C0\uC5F0 (\uBD84):"},placeholders:{value:"\uC9C4\uD589\uC911",label:"\uC9C4\uD589 \uC911",icon:"check, circle, clock",nextStatusDefault:"\uC0C1\uD0DC \uC21C\uC11C \uC0AC\uC6A9"},badges:{completed:"\uC644\uB8CC\uB428"},deleteConfirm:'"{label}" \uC0C1\uD0DC\uB97C \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?'},taskPriorities:{header:"\uC791\uC5C5 \uC6B0\uC120\uC21C\uC704",description:"\uC791\uC5C5\uC5D0 \uC0AC\uC6A9\uD560 \uC218 \uC788\uB294 \uC6B0\uC120\uC21C\uC704 \uC218\uC900\uC744 \uC0AC\uC6A9\uC790 \uC9C0\uC815\uD569\uB2C8\uB2E4. v4.0+\uC5D0\uC11C\uB294 \uBCA0\uC774\uC2A4 \uBDF0\uC5D0\uC11C \uAC12\uC5D0 \uB530\uB77C \uC54C\uD30C\uBCB3\uC21C\uC73C\uB85C \uC815\uB82C\uB429\uB2C8\uB2E4.",howTheyWork:{title:"\uC6B0\uC120\uC21C\uC704 \uC791\uB3D9 \uBC29\uC2DD:",value:'\uAC12: \uC791\uC5C5 \uD30C\uC77C\uC5D0 \uC800\uC7A5\uB418\uB294 \uB0B4\uBD80 \uC2DD\uBCC4\uC790. \uBCA0\uC774\uC2A4 \uBDF0\uC5D0\uC11C \uC815\uB82C \uC21C\uC11C\uB97C \uC81C\uC5B4\uD558\uB824\uBA74 "1-urgent", "2-high" \uAC19\uC740 \uC811\uB450\uC0AC\uB97C \uC0AC\uC6A9\uD558\uC138\uC694.',label:'\uD45C\uC2DC \uB808\uC774\uBE14: \uC778\uD130\uD398\uC774\uC2A4\uC5D0 \uD45C\uC2DC\uB418\uB294 \uD45C\uC2DC \uC774\uB984 (\uC608: "\uB192\uC740 \uC6B0\uC120\uC21C\uC704")',color:"\uC0C9\uC0C1: \uC6B0\uC120\uC21C\uC704 \uC810\uACFC \uBC30\uC9C0\uC758 \uC2DC\uAC01\uC801 \uD45C\uC2DC\uAE30 \uC0C9\uC0C1",icon:"\uC544\uC774\uCF58: \uC791\uC5C5 \uCE74\uB4DC\uC5D0\uC11C \uC6B0\uC120\uC21C\uC704 \uC810 \uB300\uC2E0 \uD45C\uC2DC\uD560 \uC120\uD0DD\uC801 Lucide \uC544\uC774\uCF58"},addNew:{name:"\uC0C8 \uC6B0\uC120\uC21C\uC704 \uCD94\uAC00",description:"\uC791\uC5C5\uC5D0 \uC0C8 \uC6B0\uC120\uC21C\uC704 \uC218\uC900 \uB9CC\uB4E4\uAE30",buttonText:"\uC6B0\uC120\uC21C\uC704 \uCD94\uAC00"},validationNote:"\uCC38\uACE0: \uCD5C\uC18C 1\uAC1C\uC758 \uC6B0\uC120\uC21C\uC704\uAC00 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4. \uC6B0\uC120\uC21C\uC704\uB294 \uBCA0\uC774\uC2A4 \uBDF0\uC5D0\uC11C \uAC12\uC5D0 \uB530\uB77C \uC54C\uD30C\uBCB3\uC21C\uC73C\uB85C \uC815\uB82C\uB429\uB2C8\uB2E4.",emptyState:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uC6B0\uC120\uC21C\uC704\uAC00 \uC124\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uC6B0\uC120\uC21C\uC704\uB97C \uCD94\uAC00\uD558\uC5EC \uC2DC\uC791\uD558\uC138\uC694.",emptyStateButton:"\uC6B0\uC120\uC21C\uC704 \uCD94\uAC00",fields:{value:"\uAC12:",label:"\uB808\uC774\uBE14:",color:"\uC0C9\uC0C1:",icon:"\uC544\uC774\uCF58:"},placeholders:{value:"\uB192\uC74C",label:"\uB192\uC740 \uC6B0\uC120\uC21C\uC704",icon:"alert-circle"},deleteConfirm:"\uCD5C\uC18C \uD558\uB098\uC758 \uC6B0\uC120\uC21C\uC704\uAC00 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4",deleteTooltip:"\uC6B0\uC120\uC21C\uC704 \uC0AD\uC81C"},fieldMapping:{header:"\uD544\uB4DC \uB9E4\uD551",warning:"\u26A0\uFE0F \uACBD\uACE0: TaskNotes\uB294 \uC774\uB7EC\uD55C \uC18D\uC131 \uC774\uB984\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC77D\uACE0 \uC501\uB2C8\uB2E4. \uC791\uC5C5\uC744 \uB9CC\uB4E0 \uD6C4 \uC774\uB97C \uBCC0\uACBD\uD558\uBA74 \uBD88\uC77C\uCE58\uAC00 \uBC1C\uC0DD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",description:"TaskNotes\uAC00 \uAC01 \uD544\uB4DC\uC5D0 \uC0AC\uC6A9\uD574\uC57C \uD558\uB294 \uD504\uB860\uD2B8\uB9E4\uD130 \uC18D\uC131\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",resetButton:{name:"\uD544\uB4DC \uB9E4\uD551 \uCD08\uAE30\uD654",description:"\uBAA8\uB4E0 \uD544\uB4DC \uB9E4\uD551\uC744 \uAE30\uBCF8\uAC12\uC73C\uB85C \uCD08\uAE30\uD654",buttonText:"\uAE30\uBCF8\uAC12\uC73C\uB85C \uCD08\uAE30\uD654"},notices:{resetSuccess:"\uD544\uB4DC \uB9E4\uD551\uC774 \uAE30\uBCF8\uAC12\uC73C\uB85C \uCD08\uAE30\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4",resetFailure:"\uD544\uB4DC \uB9E4\uD551 \uCD08\uAE30\uD654 \uC2E4\uD328",updateFailure:"{label}\uC758 \uD544\uB4DC \uB9E4\uD551 \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694."},table:{fieldHeader:"TaskNotes \uD544\uB4DC",propertyHeader:"\uC0AC\uC6A9\uC790 \uC18D\uC131 \uC774\uB984"},fields:{title:"\uC81C\uBAA9",status:"\uC0C1\uD0DC",priority:"\uC6B0\uC120\uC21C\uC704",due:"\uB9C8\uAC10\uC77C",scheduled:"\uC608\uC815\uC77C",contexts:"\uCEE8\uD14D\uC2A4\uD2B8",projects:"\uD504\uB85C\uC81D\uD2B8",timeEstimate:"\uC2DC\uAC04 \uC608\uC0C1",recurrence:"\uBC18\uBCF5",dateCreated:"\uC0DD\uC131\uC77C",completedDate:"\uC644\uB8CC\uC77C",dateModified:"\uC218\uC815\uC77C",archiveTag:"\uBCF4\uAD00 \uD0DC\uADF8",timeEntries:"\uC2DC\uAC04 \uAE30\uB85D",completeInstances:"\uC644\uB8CC \uC778\uC2A4\uD134\uC2A4",blockedBy:"\uCC28\uB2E8 \uC6D0\uC778",sortOrder:"\uC218\uB3D9 \uC21C\uC11C",pomodoros:"\uBF40\uBAA8\uB3C4\uB85C",icsEventId:"ICS \uC774\uBCA4\uD2B8 ID",icsEventTag:"ICS \uC774\uBCA4\uD2B8 \uD0DC\uADF8",reminders:"\uB9AC\uB9C8\uC778\uB354"}},customUserFields:{header:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD544\uB4DC",description:"\uBDF0 \uC804\uCCB4\uC5D0\uC11C \uC720\uD615 \uC778\uC2DD \uD544\uD130 \uC635\uC158\uC73C\uB85C \uB098\uD0C0\uB098\uB294 \uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD504\uB860\uD2B8\uB9E4\uD130 \uC18D\uC131\uC744 \uC815\uC758\uD569\uB2C8\uB2E4. \uAC01 \uD589: \uD45C\uC2DC \uC774\uB984, \uC18D\uC131 \uC774\uB984, \uC720\uD615.",addNew:{name:"\uC0C8 \uC0AC\uC6A9\uC790 \uD544\uB4DC \uCD94\uAC00",description:"\uD544\uD130\uC640 \uBDF0\uC5D0 \uB098\uD0C0\uB0A0 \uC0C8 \uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD544\uB4DC \uB9CC\uB4E4\uAE30",buttonText:"\uC0AC\uC6A9\uC790 \uD544\uB4DC \uCD94\uAC00"},emptyState:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD544\uB4DC\uAC00 \uC124\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uC791\uC5C5\uC5D0 \uC0AC\uC6A9\uC790 \uC9C0\uC815 \uC18D\uC131\uC744 \uB9CC\uB4E4\uB824\uBA74 \uD544\uB4DC\uB97C \uCD94\uAC00\uD558\uC138\uC694.",emptyStateButton:"\uC0AC\uC6A9\uC790 \uD544\uB4DC \uCD94\uAC00",fields:{displayName:"\uD45C\uC2DC \uC774\uB984:",propertyKey:"\uC18D\uC131 \uD0A4:",type:"\uC720\uD615:",defaultValue:"\uAE30\uBCF8\uAC12:"},placeholders:{displayName:"\uD45C\uC2DC \uC774\uB984",propertyKey:"\uC18D\uC131-\uC774\uB984",defaultValue:"\uAE30\uBCF8\uAC12",defaultValueList:"\uAE30\uBCF8\uAC12 (\uC27C\uD45C\uB85C \uAD6C\uBD84)"},types:{text:"\uD14D\uC2A4\uD2B8",number:"\uC22B\uC790",boolean:"\uBD88\uB9AC\uC5B8",date:"\uB0A0\uC9DC",list:"\uBAA9\uB85D"},defaultNames:{unnamedField:"\uC774\uB984 \uC5C6\uB294 \uD544\uB4DC",noKey:"\uD0A4-\uC5C6\uC74C"},deleteTooltip:"\uD544\uB4DC \uC0AD\uC81C",autosuggestFilters:{header:"\uC790\uB3D9 \uC81C\uC548 \uD544\uD130 (\uACE0\uAE09)",description:"\uC774 \uD544\uB4DC\uC758 \uC790\uB3D9 \uC644\uC131 \uC81C\uC548\uC5D0 \uD45C\uC2DC\uB418\uB294 \uD30C\uC77C\uC744 \uD544\uD130\uB9C1"}}},appearance:{taskCards:{header:"\uC791\uC5C5 \uCE74\uB4DC",description:"\uBAA8\uB4E0 \uBDF0\uC5D0\uC11C \uC791\uC5C5 \uCE74\uB4DC\uAC00 \uD45C\uC2DC\uB418\uB294 \uBC29\uC2DD\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",defaultVisibleProperties:{name:"\uAE30\uBCF8 \uD45C\uC2DC \uC18D\uC131",description:"\uC791\uC5C5 \uCE74\uB4DC\uC5D0 \uAE30\uBCF8\uC73C\uB85C \uD45C\uC2DC\uD560 \uC18D\uC131\uC744 \uC120\uD0DD\uD569\uB2C8\uB2E4."},propertyGroups:{coreProperties:"\uD575\uC2EC \uC18D\uC131",organization:"\uC870\uC9C1",customProperties:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uC18D\uC131"},properties:{status:"\uC0C1\uD0DC \uC810",priority:"\uC6B0\uC120\uC21C\uC704 \uC810",due:"\uB9C8\uAC10\uC77C",scheduled:"\uC608\uC815\uC77C",timeEstimate:"\uC2DC\uAC04 \uC608\uC0C1",totalTrackedTime:"\uCD1D \uAE30\uB85D \uC2DC\uAC04",checklistProgress:"\uCCB4\uD06C\uB9AC\uC2A4\uD2B8 \uC9C4\uD589\uB960",recurrence:"\uBC18\uBCF5",completedDate:"\uC644\uB8CC\uC77C",createdDate:"\uC0DD\uC131\uC77C",modifiedDate:"\uC218\uC815\uC77C",projects:"\uD504\uB85C\uC81D\uD2B8",contexts:"\uCEE8\uD14D\uC2A4\uD2B8",tags:"\uD0DC\uADF8",blocked:"\uCC28\uB2E8\uB428",blocking:"\uCC28\uB2E8 \uC911"}},taskFilenames:{header:"\uC791\uC5C5 \uD30C\uC77C\uBA85",description:"\uC0DD\uC131 \uC2DC \uC791\uC5C5 \uD30C\uC77C \uC774\uB984 \uC9C0\uC815 \uBC29\uBC95\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",storeTitleInFilename:{name:"\uD30C\uC77C\uBA85\uC5D0 \uC81C\uBAA9 \uC800\uC7A5",description:"\uC791\uC5C5 \uC81C\uBAA9\uC744 \uD30C\uC77C\uBA85\uC73C\uB85C \uC0AC\uC6A9. \uC791\uC5C5 \uC81C\uBAA9\uC774 \uBCC0\uACBD\uB418\uBA74 \uD30C\uC77C\uBA85\uC774 \uC5C5\uB370\uC774\uD2B8\uB429\uB2C8\uB2E4 (\uAD8C\uC7A5)."},filenameFormat:{name:"\uD30C\uC77C\uBA85 \uD615\uC2DD",description:"\uC791\uC5C5 \uD30C\uC77C\uBA85 \uC0DD\uC131 \uBC29\uBC95",options:{title:"\uC791\uC5C5 \uC81C\uBAA9 (\uC5C5\uB370\uC774\uD2B8 \uC548 \uB428)",zettel:"Zettelkasten \uD615\uC2DD (YYMMDD + base36 \uC790\uC815 \uC774\uD6C4 \uCD08)",timestamp:"\uC804\uCCB4 \uD0C0\uC784\uC2A4\uD0EC\uD504 (YYYY-MM-DD-HHMMSS)",custom:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD15C\uD50C\uB9BF",uuid:"UUID v4"}},customTemplate:{name:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD30C\uC77C\uBA85 \uD15C\uD50C\uB9BF",description:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD30C\uC77C \uC774\uB984 \uD15C\uD50C\uB9BF\uC785\uB2C8\uB2E4. \uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uBCC0\uC218: {{title}}, {{titleLower}}, {{titleUpper}}, {{titleSnake}}, {{titleKebab}}, {{titleCamel}}, {{titlePascal}}, {{date}}, {{shortDate}}, {{time}}, {{time12}}, {{time24}}, {{timestamp}}, {{dateTime}}, {{year}}, {{month}}, {{monthName}}, {{monthNameShort}}, {{day}}, {{dayName}}, {{dayNameShort}}, {{hour}}, {{hour12}}, {{minute}}, {{second}}, {{milliseconds}}, {{ms}}, {{ampm}}, {{week}}, {{quarter}}, {{unix}}, {{unixMs}}, {{timezone}}, {{timezoneShort}}, {{utcOffset}}, {{utcOffsetShort}}, {{utcZ}}, {{zettel}}, {{uuid}}, {{nano}}, {{priority}}, {{priorityShort}}, {{status}}, {{statusShort}}, {{dueDate}}, {{scheduledDate}}",placeholder:"{{date}}-{{title}}-{{dueDate}}",helpText:"\uCC38\uACE0: {{dueDate}}\uC640 {{scheduledDate}}\uB294 YYYY-MM-DD \uD615\uC2DD\uC774\uBA70 \uC124\uC815\uB418\uC9C0 \uC54A\uC740 \uACBD\uC6B0 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4."}},displayFormatting:{header:"\uD45C\uC2DC \uD615\uC2DD",description:"\uD50C\uB7EC\uADF8\uC778 \uC804\uCCB4\uC5D0\uC11C \uB0A0\uC9DC, \uC2DC\uAC04 \uBC0F \uAE30\uD0C0 \uB370\uC774\uD130\uAC00 \uD45C\uC2DC\uB418\uB294 \uBC29\uC2DD\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",timeFormat:{name:"\uC2DC\uAC04 \uD615\uC2DD",description:"\uD50C\uB7EC\uADF8\uC778 \uC804\uCCB4\uC5D0\uC11C 12\uC2DC\uAC04 \uB610\uB294 24\uC2DC\uAC04 \uD615\uC2DD\uC73C\uB85C \uC2DC\uAC04 \uD45C\uC2DC",options:{twelveHour:"12\uC2DC\uAC04 (\uC624\uC804/\uC624\uD6C4)",twentyFourHour:"24\uC2DC\uAC04"}}},calendarView:{header:"\uCE98\uB9B0\uB354 \uBDF0",description:"\uCE98\uB9B0\uB354 \uBDF0\uC758 \uC678\uAD00\uACFC \uB3D9\uC791\uC744 \uC0AC\uC6A9\uC790 \uC9C0\uC815\uD569\uB2C8\uB2E4.",defaultView:{name:"\uAE30\uBCF8 \uBDF0",description:"\uCE98\uB9B0\uB354 \uD0ED\uC744 \uC5F4 \uB54C \uD45C\uC2DC\uB418\uB294 \uCE98\uB9B0\uB354 \uBDF0",options:{monthGrid:"\uC6D4\uAC04 \uADF8\uB9AC\uB4DC",weekTimeline:"\uC8FC\uAC04 \uD0C0\uC784\uB77C\uC778",dayTimeline:"\uC77C\uAC04 \uD0C0\uC784\uB77C\uC778",yearView:"\uC5F0\uAC04 \uBDF0",customMultiDay:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uB2E4\uC77C"}},customDayCount:{name:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uBDF0 \uC77C\uC218",description:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uB2E4\uC77C \uBDF0\uC5D0 \uD45C\uC2DC\uD560 \uC77C\uC218",placeholder:"3"},firstDayOfWeek:{name:"\uC8FC\uC758 \uCCAB\uC9F8 \uC694\uC77C",description:"\uC8FC\uAC04 \uBDF0\uC5D0\uC11C \uCCAB \uBC88\uC9F8 \uC5F4\uC774 \uB420 \uC694\uC77C"},showWeekends:{name:"\uC8FC\uB9D0 \uD45C\uC2DC",description:"\uCE98\uB9B0\uB354 \uBDF0\uC5D0 \uC8FC\uB9D0 \uD45C\uC2DC"},showWeekNumbers:{name:"\uC8FC \uBC88\uD638 \uD45C\uC2DC",description:"\uCE98\uB9B0\uB354 \uBDF0\uC5D0 \uC8FC \uBC88\uD638 \uD45C\uC2DC"},showTodayHighlight:{name:"\uC624\uB298 \uAC15\uC870 \uD45C\uC2DC",description:"\uCE98\uB9B0\uB354 \uBDF0\uC5D0\uC11C \uD604\uC7AC \uB0A0\uC9DC \uAC15\uC870"},showCurrentTimeIndicator:{name:"\uD604\uC7AC \uC2DC\uAC04 \uD45C\uC2DC\uAE30 \uD45C\uC2DC",description:"\uD0C0\uC784\uB77C\uC778 \uBDF0\uC5D0 \uD604\uC7AC \uC2DC\uAC04\uC744 \uB098\uD0C0\uB0B4\uB294 \uC120 \uD45C\uC2DC"},selectionMirror:{name:"\uC120\uD0DD \uBBF8\uB7EC",description:"\uC2DC\uAC04 \uBC94\uC704\uB97C \uB4DC\uB798\uADF8\uD558\uC5EC \uC120\uD0DD\uD560 \uB54C \uC2DC\uAC01\uC801 \uBBF8\uB9AC\uBCF4\uAE30 \uD45C\uC2DC"},calendarLocale:{name:"\uCE98\uB9B0\uB354 \uB85C\uCF00\uC77C",description:'\uB0A0\uC9DC \uD615\uC2DD \uBC0F \uCE98\uB9B0\uB354 \uC2DC\uC2A4\uD15C\uC744 \uC704\uD55C \uCE98\uB9B0\uB354 \uB85C\uCF00\uC77C (\uC608: "en", "fa" \uD398\uB974\uC2DC\uC544\uC5B4, "de" \uB3C5\uC77C\uC5B4). \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uC790\uB3D9 \uAC10\uC9C0\uD558\uB824\uBA74 \uBE44\uC6CC\uB450\uC138\uC694.',placeholder:"\uC790\uB3D9 \uAC10\uC9C0",invalidLocale:"\uC798\uBABB\uB41C \uB85C\uCF00\uC77C\uC785\uB2C8\uB2E4. \uC720\uD6A8\uD55C \uC5B8\uC5B4 \uD0DC\uADF8\uB97C \uC785\uB825\uD558\uC138\uC694 (\uC608: 'en', 'de', 'fr-FR')."}},defaultEventVisibility:{header:"\uAE30\uBCF8 \uC774\uBCA4\uD2B8 \uD45C\uC2DC",description:"\uCE98\uB9B0\uB354\uB97C \uC5F4 \uB54C \uAE30\uBCF8\uC73C\uB85C \uD45C\uC2DC\uB418\uB294 \uC774\uBCA4\uD2B8 \uC720\uD615\uC744 \uC124\uC815\uD569\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uB294 \uCE98\uB9B0\uB354 \uBDF0\uC5D0\uC11C \uC774\uB97C \uCF1C\uACE0 \uB04C \uC218 \uC788\uC2B5\uB2C8\uB2E4.",showScheduledTasks:{name:"\uC608\uC815\uB41C \uC791\uC5C5 \uD45C\uC2DC",description:"\uAE30\uBCF8\uC73C\uB85C \uC608\uC815\uC77C\uC774 \uC788\uB294 \uC791\uC5C5 \uD45C\uC2DC"},showDueDates:{name:"\uB9C8\uAC10\uC77C \uD45C\uC2DC",description:"\uAE30\uBCF8\uC73C\uB85C \uC791\uC5C5 \uB9C8\uAC10\uC77C \uD45C\uC2DC"},showDueWhenScheduled:{name:"\uC608\uC815\uC77C\uC774 \uC788\uC744 \uB54C \uB9C8\uAC10\uC77C \uD45C\uC2DC",description:"\uC774\uBBF8 \uC608\uC815\uC77C\uC774 \uC788\uB294 \uC791\uC5C5\uC758 \uB9C8\uAC10\uC77C\uB3C4 \uD45C\uC2DC"},showTimeEntries:{name:"\uC2DC\uAC04 \uAE30\uB85D \uD45C\uC2DC",description:"\uAE30\uBCF8\uC73C\uB85C \uC644\uB8CC\uB41C \uC2DC\uAC04 \uCD94\uC801 \uAE30\uB85D \uD45C\uC2DC"},showRecurringTasks:{name:"\uBC18\uBCF5 \uC791\uC5C5 \uD45C\uC2DC",description:"\uAE30\uBCF8\uC73C\uB85C \uBC18\uBCF5 \uC791\uC5C5 \uC778\uC2A4\uD134\uC2A4 \uD45C\uC2DC"},showICSEvents:{name:"ICS \uC774\uBCA4\uD2B8 \uD45C\uC2DC",description:"\uAE30\uBCF8\uC73C\uB85C ICS \uAD6C\uB3C5\uC758 \uC774\uBCA4\uD2B8 \uD45C\uC2DC"}},timeSettings:{header:"\uC2DC\uAC04 \uC124\uC815",description:"\uD0C0\uC784\uB77C\uC778 \uBDF0\uC758 \uC2DC\uAC04 \uAD00\uB828 \uD45C\uC2DC \uC124\uC815\uC744 \uAD6C\uC131\uD569\uB2C8\uB2E4.",timeSlotDuration:{name:"\uC2DC\uAC04 \uC2AC\uB86F \uAC04\uACA9",description:"\uD0C0\uC784\uB77C\uC778 \uBDF0\uC5D0\uC11C \uAC01 \uC2DC\uAC04 \uC2AC\uB86F\uC758 \uAE38\uC774",options:{fifteenMinutes:"15\uBD84",thirtyMinutes:"30\uBD84",sixtyMinutes:"60\uBD84"}},startTime:{name:"\uC2DC\uC791 \uC2DC\uAC04",description:"\uD0C0\uC784\uB77C\uC778 \uBDF0\uC5D0 \uD45C\uC2DC\uB418\uB294 \uAC00\uC7A5 \uC774\uB978 \uC2DC\uAC04 (HH:MM \uD615\uC2DD)",placeholder:"06:00"},endTime:{name:"\uC885\uB8CC \uC2DC\uAC04",description:"\uD0C0\uC784\uB77C\uC778 \uBCF4\uAE30\uC5D0\uC11C \uD45C\uC2DC\uD560 \uAC00\uC7A5 \uB2A6\uC740 \uC2DC\uAC04(HH:MM \uD615\uC2DD). 26:00\uC744 \uC624\uC804 2\uC2DC\uB85C \uD45C\uC2DC\uD558\uB294 \uAC83\uCC98\uB7FC 24:00\uBCF4\uB2E4 \uD070 \uAC12\uC744 \uC0AC\uC6A9\uD574 \uB2E4\uC74C \uB0A0 \uC774\uB978 \uC2DC\uAC04\uC744 \uD45C\uC2DC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",placeholder:"26:00"},initialScrollTime:{name:"\uCD08\uAE30 \uC2A4\uD06C\uB864 \uC2DC\uAC04",description:"\uD0C0\uC784\uB77C\uC778 \uBDF0\uB97C \uC5F4 \uB54C \uC2A4\uD06C\uB864\uD560 \uC2DC\uAC04 (HH:MM \uD615\uC2DD)",placeholder:"09:00"},eventMinHeight:{name:"\uC774\uBCA4\uD2B8 \uCD5C\uC18C \uB192\uC774",description:"\uD0C0\uC784\uB77C\uC778 \uBDF0\uC5D0\uC11C \uC774\uBCA4\uD2B8\uC758 \uCD5C\uC18C \uB192\uC774 (\uD53D\uC140)",placeholder:"15"}},uiElements:{header:"UI \uC694\uC18C",description:"\uB2E4\uC591\uD55C UI \uC694\uC18C\uC758 \uD45C\uC2DC\uB97C \uC124\uC815\uD569\uB2C8\uB2E4.",showTrackedTasksInStatusBar:{name:"\uC0C1\uD0DC \uD45C\uC2DC\uC904\uC5D0 \uCD94\uC801 \uC911\uC778 \uC791\uC5C5 \uD45C\uC2DC",description:"Obsidian \uC0C1\uD0DC \uD45C\uC2DC\uC904\uC5D0 \uD604\uC7AC \uCD94\uC801 \uC911\uC778 \uC791\uC5C5 \uD45C\uC2DC"},showRelationshipsWidget:{name:"\uAD00\uACC4 \uC704\uC82F \uD45C\uC2DC",description:"\uD604\uC7AC \uB178\uD2B8\uC758 \uBAA8\uB4E0 \uAD00\uACC4 (\uD558\uC704 \uC791\uC5C5, \uD504\uB85C\uC81D\uD2B8, \uC885\uC18D\uC131)\uB97C \uBCF4\uC5EC\uC8FC\uB294 \uC704\uC82F \uD45C\uC2DC"},relationshipsPosition:{name:"\uAD00\uACC4 \uC704\uCE58",description:"\uAD00\uACC4 \uC704\uC82F\uC758 \uC704\uCE58",options:{top:"\uB178\uD2B8 \uC0C1\uB2E8",bottom:"\uB178\uD2B8 \uD558\uB2E8"}},showTaskCardInNote:{name:"\uB178\uD2B8\uC5D0 \uC791\uC5C5 \uCE74\uB4DC \uD45C\uC2DC",description:"\uC791\uC5C5 \uB178\uD2B8 \uC0C1\uB2E8\uC5D0 \uC791\uC5C5 \uC138\uBD80\uC815\uBCF4\uC640 \uB3D9\uC791\uC744 \uBCF4\uC5EC\uC8FC\uB294 \uC791\uC5C5 \uCE74\uB4DC \uC704\uC82F \uD45C\uC2DC"},showCompletedTaskStrikethrough:{name:"\uC644\uB8CC\uB41C \uC791\uC5C5 \uC81C\uBAA9\uC5D0 \uCDE8\uC18C\uC120 \uD45C\uC2DC",description:"\uC644\uB8CC\uB41C \uC791\uC5C5 \uCE74\uB4DC \uC81C\uBAA9\uC5D0 \uC120\uC744 \uADF8\uB9BD\uB2C8\uB2E4. \uC644\uB8CC\uB41C \uC791\uC5C5\uC744 \uB354 \uC77D\uAE30 \uC27D\uAC8C \uBCF4\uB824\uBA74 \uB044\uC138\uC694"},showExpandableSubtasks:{name:"\uD655\uC7A5 \uAC00\uB2A5\uD55C \uD558\uC704 \uC791\uC5C5 \uD45C\uC2DC",description:"\uC791\uC5C5 \uCE74\uB4DC\uC5D0\uC11C \uD558\uC704 \uC791\uC5C5 \uC139\uC158\uC744 \uD3BC\uCE58\uACE0 \uC811\uC744 \uC218 \uC788\uB3C4\uB85D \uD5C8\uC6A9"},expandSubtasksByDefault:{name:"\uD558\uC704 \uC791\uC5C5 \uAE30\uBCF8 \uD3BC\uCE58\uAE30",description:"\uC791\uC5C5 \uCE74\uB4DC\uAC00 \uB80C\uB354\uB9C1\uB420 \uB54C \uD504\uB85C\uC81D\uD2B8 \uD558\uC704 \uC791\uC5C5\uC744 \uD3BC\uCCD0\uC11C \uD45C\uC2DC"},subtaskChevronPosition:{name:"\uD558\uC704 \uC791\uC5C5 \uD654\uC0B4\uD45C \uC704\uCE58",description:"\uC791\uC5C5 \uCE74\uB4DC\uC5D0\uC11C \uD3BC\uCE58\uAE30/\uC811\uAE30 \uD654\uC0B4\uD45C\uC758 \uC704\uCE58",options:{left:"\uC67C\uCABD",right:"\uC624\uB978\uCABD"}},viewsButtonAlignment:{name:"\uBDF0 \uBC84\uD2BC \uC815\uB82C",description:"\uC791\uC5C5 \uC778\uD130\uD398\uC774\uC2A4\uC5D0\uC11C \uBDF0/\uD544\uD130 \uBC84\uD2BC\uC758 \uC815\uB82C",options:{left:"\uC67C\uCABD",right:"\uC624\uB978\uCABD"}}},projectAutosuggest:{header:"\uD504\uB85C\uC81D\uD2B8 \uC790\uB3D9 \uC81C\uC548",description:"\uC791\uC5C5 \uC0DD\uC131 \uC2DC \uD504\uB85C\uC81D\uD2B8 \uC81C\uC548\uC774 \uD45C\uC2DC\uB418\uB294 \uBC29\uC2DD\uC744 \uC0AC\uC6A9\uC790 \uC9C0\uC815\uD569\uB2C8\uB2E4.",requiredTags:{name:"\uD544\uC218 \uD0DC\uADF8",description:"\uC774\uB7EC\uD55C \uD0DC\uADF8 \uC911 \uD558\uB098\uAC00 \uC788\uB294 \uB178\uD2B8\uB9CC \uD45C\uC2DC (\uC27C\uD45C\uB85C \uAD6C\uBD84). \uBAA8\uB4E0 \uB178\uD2B8\uB97C \uD45C\uC2DC\uD558\uB824\uBA74 \uBE44\uC6CC\uB450\uC138\uC694.",placeholder:"\uD504\uB85C\uC81D\uD2B8, \uD65C\uC131, \uC911\uC694"},includeFolders:{name:"\uD3EC\uD568 \uD3F4\uB354",description:"\uC774\uB7EC\uD55C \uD3F4\uB354\uC758 \uB178\uD2B8\uB9CC \uD45C\uC2DC (\uC27C\uD45C\uB85C \uAD6C\uBD84\uB41C \uACBD\uB85C). \uBAA8\uB4E0 \uD3F4\uB354\uB97C \uD45C\uC2DC\uD558\uB824\uBA74 \uBE44\uC6CC\uB450\uC138\uC694.",placeholder:"\uD504\uB85C\uC81D\uD2B8/, \uC5C5\uBB34/\uD65C\uC131, \uAC1C\uC778"},requiredPropertyKey:{name:"\uD544\uC218 \uC18D\uC131 \uD0A4",description:"\uC774 \uD504\uB860\uD2B8\uB9E4\uD130 \uC18D\uC131\uC774 \uC544\uB798 \uAC12\uACFC \uC77C\uCE58\uD558\uB294 \uB178\uD2B8\uB9CC \uD45C\uC2DC. \uBB34\uC2DC\uD558\uB824\uBA74 \uBE44\uC6CC\uB450\uC138\uC694.",placeholder:"\uC720\uD615"},requiredPropertyValue:{name:"\uD544\uC218 \uC18D\uC131 \uAC12",description:"\uC18D\uC131\uC774 \uC774 \uAC12\uACFC \uAC19\uC740 \uB178\uD2B8\uB9CC \uC81C\uC548\uB429\uB2C8\uB2E4. \uC18D\uC131 \uC874\uC7AC\uB9CC \uC694\uAD6C\uD558\uB824\uBA74 \uBE44\uC6CC\uB450\uC138\uC694.",placeholder:"\uD504\uB85C\uC81D\uD2B8"},customizeDisplay:{name:"\uC81C\uC548 \uD45C\uC2DC \uC0AC\uC6A9\uC790 \uC9C0\uC815",description:"\uD504\uB85C\uC81D\uD2B8 \uC81C\uC548\uC774 \uD45C\uC2DC\uB418\uB294 \uBC29\uC2DD\uACFC \uD45C\uC2DC\uB418\uB294 \uC815\uBCF4\uB97C \uC124\uC815\uD558\uB294 \uACE0\uAE09 \uC635\uC158 \uD45C\uC2DC."},enableFuzzyMatching:{name:"\uD37C\uC9C0 \uB9E4\uCE6D \uD65C\uC131\uD654",description:"\uD504\uB85C\uC81D\uD2B8 \uAC80\uC0C9\uC5D0\uC11C \uC624\uD0C0\uC640 \uBD80\uBD84 \uC77C\uCE58 \uD5C8\uC6A9. \uD070 \uBCF4\uAD00\uC18C\uC5D0\uC11C\uB294 \uB290\uB824\uC9C8 \uC218 \uC788\uC2B5\uB2C8\uB2E4."},displayRowsHelp:"\uAC01 \uD504\uB85C\uC81D\uD2B8 \uC81C\uC548\uC5D0 \uD45C\uC2DC\uD560 \uCD5C\uB300 3\uC904\uC758 \uC815\uBCF4\uB97C \uAD6C\uC131\uD569\uB2C8\uB2E4.",displayRows:{row1:{name:"\uD589 1",description:"\uD615\uC2DD: {property|flags}. \uC18D\uC131: title, aliases, file.path, file.parent. \uD50C\uB798\uADF8: n(Label)\uC740 \uB808\uC774\uBE14 \uD45C\uC2DC, s\uB294 \uAC80\uC0C9 \uAC00\uB2A5. \uC608: {title|n(Title)|s}",placeholder:"{title|n(\uC81C\uBAA9)}"},row2:{name:"\uD589 2 (\uC120\uD0DD\uC0AC\uD56D)",description:"\uC77C\uBC18\uC801\uC778 \uD328\uD134: {aliases|n(Aliases)}, {file.parent|n(Folder)}, literal:Custom Text",placeholder:"{aliases|n(\uBCC4\uCE6D)}"},row3:{name:"\uD589 3 (\uC120\uD0DD\uC0AC\uD56D)",description:"{file.path|n(Path)} \uB610\uB294 \uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD504\uB860\uD2B8\uB9E4\uD130 \uD544\uB4DC \uAC19\uC740 \uCD94\uAC00 \uC815\uBCF4",placeholder:"{file.path|n(\uACBD\uB85C)}"}},quickReference:{header:"\uBE60\uB978 \uCC38\uC870",properties:"\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uC18D\uC131: title, aliases, file.path, file.parent \uB610\uB294 \uBAA8\uB4E0 \uD504\uB860\uD2B8\uB9E4\uD130 \uD544\uB4DC",labels:'\uB808\uC774\uBE14 \uCD94\uAC00: {title|n(Title)} \u2192 "Title: My Project"',searchable:"\uAC80\uC0C9 \uAC00\uB2A5\uD558\uAC8C \uB9CC\uB4E4\uAE30: {description|s}\uB294 + \uAC80\uC0C9\uC5D0 \uC124\uBA85 \uD3EC\uD568",staticText:"\uC815\uC801 \uD14D\uC2A4\uD2B8: literal:My Custom Label",alwaysSearchable:"\uD30C\uC77C\uBA85, \uC81C\uBAA9, \uBCC4\uCE6D\uC740 \uAE30\uBCF8\uC801\uC73C\uB85C \uD56D\uC0C1 \uAC80\uC0C9 \uAC00\uB2A5\uD569\uB2C8\uB2E4."}},dataStorage:{name:"\uC800\uC7A5 \uC704\uCE58",description:"\uBF40\uBAA8\uB3C4\uB85C \uC138\uC158 \uAE30\uB85D\uC744 \uC800\uC7A5\uD560 \uC704\uCE58",pluginData:"\uD50C\uB7EC\uADF8\uC778 \uB370\uC774\uD130 (\uAD8C\uC7A5)",dailyNotes:"\uB370\uC77C\uB9AC \uB178\uD2B8",notices:{locationChanged:"\uBF40\uBAA8\uB3C4\uB85C \uC800\uC7A5 \uC704\uCE58\uAC00 {location}(\uC73C)\uB85C \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4"}},notifications:{description:"\uC791\uC5C5 \uB9AC\uB9C8\uC778\uB354 \uC54C\uB9BC \uBC0F \uACBD\uACE0\uB97C \uC124\uC815\uD569\uB2C8\uB2E4."},performance:{description:"\uD50C\uB7EC\uADF8\uC778 \uC131\uB2A5 \uBC0F \uB3D9\uC791 \uC635\uC158\uC744 \uC124\uC815\uD569\uB2C8\uB2E4."},timeTrackingSection:{description:"\uC790\uB3D9 \uC2DC\uAC04 \uCD94\uC801 \uB3D9\uC791\uC744 \uC124\uC815\uD569\uB2C8\uB2E4."},recurringSection:{description:"\uBC18\uBCF5 \uC791\uC5C5 \uAD00\uB9AC \uB3D9\uC791\uC744 \uC124\uC815\uD569\uB2C8\uB2E4."}},integrations:{mobileCalendar:{disable:{name:"\uBAA8\uBC14\uC77C\uC5D0\uC11C \uCE98\uB9B0\uB354 \uC5F0\uB3D9 \uBE44\uD65C\uC131\uD654",description:"Obsidian Mobile\uC5D0\uC11C Google, Microsoft \uBC0F ICS \uCE98\uB9B0\uB354 \uB85C\uB4DC\uB97C \uAC74\uB108\uB701\uB2C8\uB2E4. \uB370\uC2A4\uD06C\uD1B1 \uCE98\uB9B0\uB354 \uC5F0\uB3D9\uC740 \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."},status:{name:"\uC774 \uBAA8\uBC14\uC77C \uAE30\uAE30\uC5D0\uC11C \uCE98\uB9B0\uB354 \uC5F0\uB3D9\uC774 \uBE44\uD65C\uC131\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4",description:"\uCE98\uB9B0\uB354 \uB85C\uB4DC\uB97C \uB2E4\uC2DC \uC2DC\uC791\uD558\uB824\uBA74 \uC774 \uC124\uC815\uC744 \uB044\uACE0 Obsidian Mobile\uC744 \uB2E4\uC2DC \uB85C\uB4DC\uD558\uC138\uC694."}},basesIntegration:{header:"\uBCA0\uC774\uC2A4 \uD1B5\uD569",description:"Obsidian \uBCA0\uC774\uC2A4 \uD50C\uB7EC\uADF8\uC778\uACFC\uC758 \uD1B5\uD569\uC744 \uC124\uC815\uD569\uB2C8\uB2E4. \uC774\uAC83\uC740 \uC2E4\uD5D8\uC801 \uAE30\uB2A5\uC774\uBA70 \uD604\uC7AC \uBB38\uC11C\uD654\uB418\uC9C0 \uC54A\uC740 Obsidian API\uC5D0 \uC758\uC874\uD569\uB2C8\uB2E4. \uB3D9\uC791\uC774 \uBCC0\uACBD\uB418\uAC70\uB098 \uC911\uB2E8\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",enable:{name:"\uBCA0\uC774\uC2A4 \uD1B5\uD569 \uD65C\uC131\uD654",description:"TaskNotes \uBDF0\uB97C Obsidian \uBCA0\uC774\uC2A4 \uD50C\uB7EC\uADF8\uC778 \uB0B4\uC5D0\uC11C \uC0AC\uC6A9\uD560 \uC218 \uC788\uB3C4\uB85D \uD65C\uC131\uD654. \uC774 \uAE30\uB2A5\uC774 \uC791\uB3D9\uD558\uB824\uBA74 \uBCA0\uC774\uC2A4 \uD50C\uB7EC\uADF8\uC778\uC774 \uD65C\uC131\uD654\uB418\uC5B4 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4."},viewCommands:{header:"\uBDF0 \uBC0F \uBCA0\uC774\uC2A4 \uD30C\uC77C",description:"TaskNotes\uB294 Obsidian \uBCA0\uC774\uC2A4 \uD30C\uC77C (.base)\uC744 \uC0AC\uC6A9\uD558\uC5EC \uBDF0\uB97C \uAD6C\uB3D9\uD569\uB2C8\uB2E4. \uC774 \uD30C\uC77C\uB4E4\uC740 \uC2DC\uC791 \uC2DC \uC874\uC7AC\uD558\uC9C0 \uC54A\uC73C\uBA74 \uD604\uC7AC \uC124\uC815 (\uC791\uC5C5 \uC2DD\uBCC4, \uD544\uB4DC \uB9E4\uD551, \uC0C1\uD0DC \uB4F1)\uC73C\uB85C \uC790\uB3D9 \uC0DD\uC131\uB429\uB2C8\uB2E4.",descriptionRegen:'\uC124\uC815\uC744 \uBCC0\uACBD\uD574\uB3C4 Base \uD30C\uC77C\uC740 \uC790\uB3D9\uC73C\uB85C \uC5C5\uB370\uC774\uD2B8\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC0C8 \uC124\uC815\uC744 \uC801\uC6A9\uD558\uB824\uBA74 \uC544\uB798\uC758 "\uD30C\uC77C \uC5C5\uB370\uC774\uD2B8"\uB97C \uC0AC\uC6A9\uD558\uAC70\uB098, \uAE30\uC874 .base \uD30C\uC77C\uC744 \uC0AD\uC81C\uD558\uACE0 Obsidian\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD558\uAC70\uB098, \uC218\uB3D9\uC73C\uB85C \uD3B8\uC9D1\uD558\uC138\uC694.',docsLink:"\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uC218\uC2DD \uBC0F \uC0AC\uC6A9\uC790 \uC9C0\uC815 \uC635\uC158\uC5D0 \uB300\uD55C \uBB38\uC11C \uBCF4\uAE30",docsLinkUrl:"https://tasknotes.dev/views/default-base-templates",commands:{miniCalendar:"\uBBF8\uB2C8 \uCE98\uB9B0\uB354 \uBDF0 \uC5F4\uAE30",kanban:"\uCE78\uBC18 \uBDF0 \uC5F4\uAE30",tasks:"\uC791\uC5C5 \uBDF0 \uC5F4\uAE30",advancedCalendar:"\uACE0\uAE09 \uCE98\uB9B0\uB354 \uBDF0 \uC5F4\uAE30",agenda:"\uC77C\uC815 \uBDF0 \uC5F4\uAE30",relationships:"\uAD00\uACC4 \uC704\uC82F",pomodoroStats:"Pomodoro \uD1B5\uACC4 Base"},fileLabel:"\uD30C\uC77C: {path}",resetButton:"\uCD08\uAE30\uD654",resetTooltip:"\uAE30\uBCF8 \uACBD\uB85C\uB85C \uCD08\uAE30\uD654",pomodoroDailyNotesHint:"\uC0DD\uC131\uB41C Pomodoro \uD1B5\uACC4 Base\uB294 \uB370\uC77C\uB9AC \uB178\uD2B8\uC5D0\uC11C Pomodoro \uAE30\uB85D\uC744 \uC77D\uC2B5\uB2C8\uB2E4. \uAE30\uB85D\uC774 \uC544\uC9C1 \uD50C\uB7EC\uADF8\uC778 \uB370\uC774\uD130\uC5D0 \uC800\uC7A5\uB418\uC5B4 \uC788\uB2E4\uBA74 \uC774 Base \uD30C\uC77C\uC744 \uC0AC\uC6A9\uD558\uAE30 \uC804\uC5D0 \uC124\uC815\uC5D0\uC11C \uB9C8\uC774\uADF8\uB808\uC774\uC158\uD558\uC138\uC694."},autoCreateDefaultFiles:{name:"\uAE30\uBCF8 \uD30C\uC77C \uC790\uB3D9 \uC0DD\uC131",description:"\uC2DC\uC791 \uC2DC \uB204\uB77D\uB41C \uAE30\uBCF8 \uBCA0\uC774\uC2A4 \uBDF0 \uD30C\uC77C\uC744 \uC790\uB3D9\uC73C\uB85C \uC0DD\uC131. \uC0AD\uC81C\uB41C \uC0D8\uD50C \uD30C\uC77C\uC774 \uB2E4\uC2DC \uC0DD\uC131\uB418\uC9C0 \uC54A\uB3C4\uB85D \uBE44\uD65C\uC131\uD654\uD558\uC138\uC694."},createDefaultFiles:{name:"\uAE30\uBCF8 \uD30C\uC77C \uC0DD\uC131",description:"TaskNotes/Views/ \uB514\uB809\uD1A0\uB9AC\uC5D0 \uAE30\uBCF8 .base \uD30C\uC77C\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4. \uAE30\uC874 \uD30C\uC77C\uC740 \uB36E\uC5B4\uC4F0\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",buttonText:"\uD30C\uC77C \uC0DD\uC131"},exportV3Views:{name:"V3 \uC800\uC7A5\uB41C \uBDF0\uB97C \uBCA0\uC774\uC2A4\uB85C \uB0B4\uBCF4\uB0B4\uAE30",description:"TaskNotes v3\uC758 \uBAA8\uB4E0 \uC800\uC7A5\uB41C \uBDF0\uB97C \uC5EC\uB7EC \uBDF0\uAC00 \uD3EC\uD568\uB41C \uB2E8\uC77C .base \uD30C\uC77C\uB85C \uBCC0\uD658\uD569\uB2C8\uB2E4. v3 \uD544\uD130 \uAD6C\uC131\uC744 \uC0C8 \uBCA0\uC774\uC2A4 \uC2DC\uC2A4\uD15C\uC73C\uB85C \uB9C8\uC774\uADF8\uB808\uC774\uC158\uD558\uB294 \uB370 \uB3C4\uC6C0\uC774 \uB429\uB2C8\uB2E4.",buttonText:"V3 \uBDF0 \uB0B4\uBCF4\uB0B4\uAE30",noViews:"\uB0B4\uBCF4\uB0BC \uC800\uC7A5\uB41C \uBDF0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4",fileExists:"\uD30C\uC77C\uC774 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4",confirmOverwrite:'"{fileName}"\uC774\uB77C\uB294 \uD30C\uC77C\uC774 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4. \uB36E\uC5B4\uC4F0\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?',success:"{count}\uAC1C\uC758 \uC800\uC7A5\uB41C \uBDF0\uB97C {filePath}(\uC73C)\uB85C \uB0B4\uBCF4\uB0C8\uC2B5\uB2C8\uB2E4",error:"\uBDF0 \uB0B4\uBCF4\uB0B4\uAE30 \uC2E4\uD328: {message}"},notices:{enabled:"\uBCA0\uC774\uC2A4 \uD1B5\uD569\uC774 \uD65C\uC131\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC124\uC815\uC744 \uC644\uB8CC\uD558\uB824\uBA74 Obsidian\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD558\uC138\uC694.",disabled:"\uBCA0\uC774\uC2A4 \uD1B5\uD569\uC774 \uBE44\uD65C\uC131\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC81C\uAC70\uB97C \uC644\uB8CC\uD558\uB824\uBA74 Obsidian\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD558\uC138\uC694."},updateDefaultFiles:{name:"\uAE30\uBCF8 \uD30C\uC77C \uC5C5\uB370\uC774\uD2B8",description:"\uD604\uC7AC TaskNotes \uC124\uC815\uC5D0\uC11C \uC0DD\uC131\uB41C \uD15C\uD50C\uB9BF\uC73C\uB85C \uAD6C\uC131\uB41C \uAE30\uBCF8 .base \uD30C\uC77C\uC744 \uB36E\uC5B4\uC501\uB2C8\uB2E4.",buttonText:"\uD30C\uC77C \uC5C5\uB370\uC774\uD2B8",confirmTitle:"\uAE30\uBCF8 Base \uD30C\uC77C \uC5C5\uB370\uC774\uD2B8",confirmMessage:"\uAD6C\uC131\uB41C \uAE30\uBCF8 .base \uD30C\uC77C\uC744 \uC0C8\uB85C \uC0DD\uC131\uB41C \uD15C\uD50C\uB9BF\uC73C\uB85C \uB36E\uC5B4\uC501\uB2C8\uB2E4. \uD574\uB2F9 \uD30C\uC77C\uC758 \uC218\uB3D9 \uD3B8\uC9D1 \uB0B4\uC6A9\uC740 \uB300\uCCB4\uB429\uB2C8\uB2E4.",confirmText:"\uD30C\uC77C \uC5C5\uB370\uC774\uD2B8"}},calendarSubscriptions:{header:"\uCE98\uB9B0\uB354 \uAD6C\uB3C5",description:"ICS/iCal URL\uC744 \uD1B5\uD574 \uC678\uBD80 \uCE98\uB9B0\uB354\uB97C \uAD6C\uB3C5\uD558\uC5EC \uC791\uC5C5\uACFC \uD568\uAED8 \uC774\uBCA4\uD2B8\uB97C \uBD05\uB2C8\uB2E4.",defaultNoteTemplate:{name:"\uAE30\uBCF8 \uB178\uD2B8 \uD15C\uD50C\uB9BF",description:"ICS \uC774\uBCA4\uD2B8\uC5D0\uC11C \uC0DD\uC131\uB41C \uB178\uD2B8\uC6A9 \uD15C\uD50C\uB9BF \uD30C\uC77C \uACBD\uB85C",placeholder:"\uD15C\uD50C\uB9BF/\uC774\uBCA4\uD2B8 \uD15C\uD50C\uB9BF.md"},defaultNoteFolder:{name:"\uAE30\uBCF8 \uB178\uD2B8 \uD3F4\uB354",description:"ICS \uC774\uBCA4\uD2B8\uC5D0\uC11C \uC0DD\uC131\uB41C \uB178\uD2B8\uC6A9 \uD3F4\uB354",placeholder:"\uCE98\uB9B0\uB354/\uC774\uBCA4\uD2B8"},filenameFormat:{name:"ICS \uB178\uD2B8 \uD30C\uC77C\uBA85 \uD615\uC2DD",description:"ICS \uC774\uBCA4\uD2B8\uC5D0\uC11C \uC0DD\uC131\uB41C \uB178\uD2B8\uC758 \uD30C\uC77C\uBA85 \uC0DD\uC131 \uBC29\uBC95",options:{title:"\uC774\uBCA4\uD2B8 \uC81C\uBAA9",zettel:"Zettelkasten \uD615\uC2DD",timestamp:"\uD0C0\uC784\uC2A4\uD0EC\uD504",custom:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD15C\uD50C\uB9BF"}},customTemplate:{name:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 ICS \uD30C\uC77C\uBA85 \uD15C\uD50C\uB9BF",description:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 ICS \uC774\uBCA4\uD2B8 \uD30C\uC77C\uBA85 \uD15C\uD50C\uB9BF",placeholder:"{date}-{title}"},useICSEndAsDue:{name:"ICS \uC774\uBCA4\uD2B8 \uC885\uB8CC \uC2DC\uAC04\uC744 \uC791\uC5C5 \uB9C8\uAC10\uC77C\uB85C \uC0AC\uC6A9",description:"\uD65C\uC131\uD654\uD558\uBA74 \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uC5D0\uC11C \uC0DD\uC131\uB41C \uC791\uC5C5\uC758 \uB9C8\uAC10\uC77C\uC774 \uC774\uBCA4\uD2B8 \uC885\uB8CC \uC2DC\uAC04\uC73C\uB85C \uC124\uC815\uB429\uB2C8\uB2E4. \uC885\uC77C \uC774\uBCA4\uD2B8\uC758 \uACBD\uC6B0 \uB9C8\uAC10\uC77C\uC774 \uC774\uBCA4\uD2B8 \uB0A0\uC9DC\uB85C \uC124\uC815\uB429\uB2C8\uB2E4. \uC2DC\uAC04\uC774 \uC9C0\uC815\uB41C \uC774\uBCA4\uD2B8\uC758 \uACBD\uC6B0 \uB9C8\uAC10\uC77C\uC5D0 \uC885\uB8CC \uC2DC\uAC04\uC774 \uD3EC\uD568\uB429\uB2C8\uB2E4."},recurringEventRelatedNotesMode:{name:"\uBC18\uBCF5 \uC774\uBCA4\uD2B8 \uAD00\uB828 \uB178\uD2B8",description:"\uC678\uBD80 \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uC758 \uD55C \uBC18\uBCF5 \uD56D\uBAA9\uC5D0 \uC5F0\uACB0\uB41C \uB178\uD2B8\uB97C \uBD88\uB7EC\uC628 \uC804\uCCB4 \uC2DC\uB9AC\uC988\uC5D0 \uD45C\uC2DC\uD560\uC9C0, \uC120\uD0DD\uD55C \uC778\uC2A4\uD134\uC2A4\uC5D0\uB9CC \uD45C\uC2DC\uD560\uC9C0 \uC120\uD0DD\uD569\uB2C8\uB2E4.",options:{series:"\uC804\uCCB4 \uC2DC\uB9AC\uC988",instance:"\uC120\uD0DD\uD55C \uC778\uC2A4\uD134\uC2A4\uB9CC"}}},subscriptionsList:{header:"\uCE98\uB9B0\uB354 \uAD6C\uB3C5 \uBAA9\uB85D",addSubscription:{name:"\uCE98\uB9B0\uB354 \uAD6C\uB3C5 \uCD94\uAC00",description:"ICS/iCal URL \uB610\uB294 \uB85C\uCEEC \uD30C\uC77C\uC5D0\uC11C \uC0C8 \uCE98\uB9B0\uB354 \uAD6C\uB3C5 \uCD94\uAC00",buttonText:"\uAD6C\uB3C5 \uCD94\uAC00"},refreshAll:{name:"\uBAA8\uB4E0 \uAD6C\uB3C5 \uC0C8\uB85C\uACE0\uCE68",description:"\uD65C\uC131\uD654\uB41C \uBAA8\uB4E0 \uCE98\uB9B0\uB354 \uAD6C\uB3C5\uC744 \uC218\uB3D9\uC73C\uB85C \uC0C8\uB85C\uACE0\uCE68",buttonText:"\uBAA8\uB450 \uC0C8\uB85C\uACE0\uCE68"},newCalendarName:"\uC0C8 \uCE98\uB9B0\uB354",emptyState:"\uCE98\uB9B0\uB354 \uAD6C\uB3C5\uC774 \uC124\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uC678\uBD80 \uCE98\uB9B0\uB354\uB97C \uB3D9\uAE30\uD654\uD558\uB824\uBA74 \uAD6C\uB3C5\uC744 \uCD94\uAC00\uD558\uC138\uC694.",notices:{addSuccess:"\uC0C8 \uCE98\uB9B0\uB354 \uAD6C\uB3C5\uC774 \uCD94\uAC00\uB418\uC5C8\uC2B5\uB2C8\uB2E4 - \uC138\uBD80 \uC815\uBCF4\uB97C \uC124\uC815\uD558\uC138\uC694",addFailure:"\uAD6C\uB3C5 \uCD94\uAC00 \uC2E4\uD328",serviceUnavailable:"ICS \uAD6C\uB3C5 \uC11C\uBE44\uC2A4\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",refreshSuccess:"\uBAA8\uB4E0 \uCE98\uB9B0\uB354 \uAD6C\uB3C5\uC774 \uC0C8\uB85C\uACE0\uCE68\uB418\uC5C8\uC2B5\uB2C8\uB2E4",refreshFailure:"\uC77C\uBD80 \uCE98\uB9B0\uB354 \uAD6C\uB3C5 \uC0C8\uB85C\uACE0\uCE68 \uC2E4\uD328",updateFailure:"\uAD6C\uB3C5 \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328",deleteSuccess:'"{name}" \uAD6C\uB3C5\uC774 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4',deleteFailure:"\uAD6C\uB3C5 \uC0AD\uC81C \uC2E4\uD328",enableFirst:"\uBA3C\uC800 \uAD6C\uB3C5\uC744 \uD65C\uC131\uD654\uD558\uC138\uC694",refreshSubscriptionSuccess:'"{name}" \uC0C8\uB85C\uACE0\uCE68\uB428',refreshSubscriptionFailure:"\uAD6C\uB3C5 \uC0C8\uB85C\uACE0\uCE68 \uC2E4\uD328"},labels:{enabled:"\uD65C\uC131\uD654:",name:"\uC774\uB984:",type:"\uC720\uD615:",url:"URL:",filePath:"\uD30C\uC77C \uACBD\uB85C:",color:"\uC0C9\uC0C1:",refreshMinutes:"\uC0C8\uB85C\uACE0\uCE68 (\uBD84):"},typeOptions:{remote:"\uC6D0\uACA9 URL",local:"\uB85C\uCEEC \uD30C\uC77C"},placeholders:{calendarName:"\uCE98\uB9B0\uB354 \uC774\uB984",url:"ICS/iCal \uC8FC\uC18C",filePath:"\uB85C\uCEEC \uD30C\uC77C \uACBD\uB85C (\uC608: Calendar.ics)",localFile:"\uCE98\uB9B0\uB354.ics"},statusLabels:{enabled:"\uD65C\uC131\uD654\uB428",disabled:"\uBE44\uD65C\uC131\uD654\uB428",remote:"\uC6D0\uACA9",localFile:"\uB85C\uCEEC \uD30C\uC77C",remoteCalendar:"\uC6D0\uACA9 \uCE98\uB9B0\uB354",localFileCalendar:"\uB85C\uCEEC \uD30C\uC77C",synced:"{timeAgo} \uC804 \uB3D9\uAE30\uD654\uB428",error:"\uC624\uB958"},actions:{refreshNow:"\uC9C0\uAE08 \uC0C8\uB85C\uACE0\uCE68",deleteSubscription:"\uAD6C\uB3C5 \uC0AD\uC81C"},refreshNow:"\uC9C0\uAE08 \uC0C8\uB85C\uACE0\uCE68",confirmDelete:{title:"\uAD6C\uB3C5 \uC0AD\uC81C",message:'"{name}" \uAD6C\uB3C5\uC744 \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \uC774 \uC791\uC5C5\uC740 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.',confirmText:"\uC0AD\uC81C"}},autoExport:{header:"\uC790\uB3D9 ICS \uB0B4\uBCF4\uB0B4\uAE30",description:"\uBAA8\uB4E0 \uC791\uC5C5\uC744 ICS \uD30C\uC77C\uB85C \uC790\uB3D9 \uB0B4\uBCF4\uB0B4\uAE30.",enable:{name:"\uC790\uB3D9 \uB0B4\uBCF4\uB0B4\uAE30 \uD65C\uC131\uD654",description:"\uBAA8\uB4E0 \uC791\uC5C5\uC73C\uB85C ICS \uD30C\uC77C\uC744 \uC790\uB3D9\uC73C\uB85C \uC5C5\uB370\uC774\uD2B8"},filePath:{name:"\uB0B4\uBCF4\uB0B4\uAE30 \uD30C\uC77C \uACBD\uB85C",description:"ICS \uD30C\uC77C\uC774 \uC800\uC7A5\uB420 \uACBD\uB85C (\uBCF4\uAD00\uC18C \uB8E8\uD2B8 \uAE30\uC900)",placeholder:"tasknotes-\uCE98\uB9B0\uB354.ics"},interval:{name:"\uC5C5\uB370\uC774\uD2B8 \uAC04\uACA9 (5~1440\uBD84)",description:"\uB0B4\uBCF4\uB0B4\uAE30 \uD30C\uC77C \uC5C5\uB370\uC774\uD2B8 \uC8FC\uAE30",placeholder:"60"},useDuration:{name:"\uC791\uC5C5 \uC18C\uC694 \uC2DC\uAC04\uC744 \uC774\uBCA4\uD2B8 \uAE38\uC774\uB85C \uC0AC\uC6A9",description:"\uD65C\uC131\uD654\uD558\uBA74 \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8 \uC885\uB8CC \uC2DC\uAC04\uC5D0 \uB9C8\uAC10\uC77C \uB300\uC2E0 \uC791\uC5C5\uC758 \uC608\uC0C1 \uC2DC\uAC04(\uC18C\uC694 \uC2DC\uAC04)\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \uC774\uB294 \uC608\uC815 + \uC18C\uC694 \uC2DC\uAC04\uC774 \uC791\uC5C5 \uACC4\uD68D\uC744 \uB098\uD0C0\uB0B4\uACE0 \uB9C8\uAC10\uC77C\uC774 \uAE30\uD55C\uC744 \uB098\uD0C0\uB0B4\uB294 GTD \uC6CC\uD06C\uD50C\uB85C\uC6B0\uC5D0 \uC720\uC6A9\uD569\uB2C8\uB2E4."},exportNow:{name:"\uC9C0\uAE08 \uB0B4\uBCF4\uB0B4\uAE30",description:"\uC989\uC2DC \uB0B4\uBCF4\uB0B4\uAE30\uB97C \uC218\uB3D9\uC73C\uB85C \uD2B8\uB9AC\uAC70",buttonText:"\uC9C0\uAE08 \uB0B4\uBCF4\uB0B4\uAE30"},status:{title:"\uB0B4\uBCF4\uB0B4\uAE30 \uC0C1\uD0DC:",lastExport:"\uB9C8\uC9C0\uB9C9 \uB0B4\uBCF4\uB0B4\uAE30: {time}",nextExport:"\uB2E4\uC74C \uB0B4\uBCF4\uB0B4\uAE30: {time}",noExports:"\uC544\uC9C1 \uB0B4\uBCF4\uB0B4\uAE30 \uC5C6\uC74C",notScheduled:"\uC608\uC815\uB418\uC9C0 \uC54A\uC74C",notInitialized:"\uC790\uB3D9 \uB0B4\uBCF4\uB0B4\uAE30 \uC11C\uBE44\uC2A4\uAC00 \uCD08\uAE30\uD654\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4 - Obsidian\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD558\uC138\uC694",serviceNotInitialized:"\uC11C\uBE44\uC2A4\uAC00 \uCD08\uAE30\uD654\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4 - Obsidian\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD558\uC138\uC694"},notices:{reloadRequired:"\uC790\uB3D9 \uB0B4\uBCF4\uB0B4\uAE30 \uBCC0\uACBD \uC0AC\uD56D\uC744 \uC801\uC6A9\uD558\uB824\uBA74 Obsidian\uC744 \uB2E4\uC2DC \uB85C\uB4DC\uD558\uC138\uC694.",exportSuccess:"\uC791\uC5C5\uC774 \uC131\uACF5\uC801\uC73C\uB85C \uB0B4\uBCF4\uB0B4\uC84C\uC2B5\uB2C8\uB2E4",exportFailure:"\uB0B4\uBCF4\uB0B4\uAE30 \uC2E4\uD328 - \uCF58\uC194\uC5D0\uC11C \uC790\uC138\uD55C \uB0B4\uC6A9\uC744 \uD655\uC778\uD558\uC138\uC694",serviceUnavailable:"\uC790\uB3D9 \uB0B4\uBCF4\uB0B4\uAE30 \uC11C\uBE44\uC2A4\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4"},excludeCompleted:{name:"\uC644\uB8CC\uB41C \uC791\uC5C5 \uC81C\uC678",description:"\uD65C\uC131\uD654\uD558\uBA74 \uC644\uB8CC\uB41C \uC791\uC5C5\uC740 ICS \uB0B4\uBCF4\uB0B4\uAE30\uC5D0\uC11C \uC81C\uC678\uB429\uB2C8\uB2E4. \uC644\uB8CC \uC0C1\uD0DC\uB294 \uC791\uC5C5 \uC0C1\uD0DC \uC124\uC815\uC5D0\uC11C \uAC00\uC838\uC635\uB2C8\uB2E4."},excludeArchived:{name:"\uBCF4\uAD00\uB41C \uC791\uC5C5 \uC81C\uC678",description:"\uD65C\uC131\uD654\uD558\uBA74 \uBCF4\uAD00\uB41C \uC791\uC5C5\uC740 ICS \uB0B4\uBCF4\uB0B4\uAE30\uC5D0\uC11C \uC81C\uC678\uB429\uB2C8\uB2E4."},requireDueDate:{name:"\uB9C8\uAC10\uC77C \uD544\uC694",description:"\uD65C\uC131\uD654\uD558\uBA74 \uB9C8\uAC10\uC77C\uC774 \uC788\uB294 \uC791\uC5C5\uB9CC ICS \uB0B4\uBCF4\uB0B4\uAE30\uC5D0 \uD3EC\uD568\uB429\uB2C8\uB2E4."},requireScheduledDate:{name:"\uC608\uC57D\uC77C \uD544\uC694",description:"\uD65C\uC131\uD654\uD558\uBA74 \uC608\uC57D\uC77C\uC774 \uC788\uB294 \uC791\uC5C5\uB9CC ICS \uB0B4\uBCF4\uB0B4\uAE30\uC5D0 \uD3EC\uD568\uB429\uB2C8\uB2E4."}},googleCalendarExport:{header:"Google \uCE98\uB9B0\uB354\uB85C \uC791\uC5C5 \uB0B4\uBCF4\uB0B4\uAE30",description:"\uC791\uC5C5\uC744 Google \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uB85C \uC790\uB3D9 \uB3D9\uAE30\uD654\uD569\uB2C8\uB2E4. \uC704\uC5D0\uC11C Google \uCE98\uB9B0\uB354\uAC00 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4.",enable:{name:"\uC791\uC5C5 \uB0B4\uBCF4\uB0B4\uAE30 \uD65C\uC131\uD654",description:"\uD65C\uC131\uD654\uD558\uBA74 \uB0A0\uC9DC\uAC00 \uC788\uB294 \uC791\uC5C5\uC774 Google \uCE98\uB9B0\uB354\uC5D0 \uC774\uBCA4\uD2B8\uB85C \uC790\uB3D9 \uB3D9\uAE30\uD654\uB429\uB2C8\uB2E4."},targetCalendar:{name:"\uB300\uC0C1 \uCE98\uB9B0\uB354",description:"\uC791\uC5C5 \uC774\uBCA4\uD2B8\uB97C \uC0DD\uC131\uD560 \uCE98\uB9B0\uB354\uB97C \uC120\uD0DD\uD558\uC138\uC694.",placeholder:"\uCE98\uB9B0\uB354 \uC120\uD0DD...",connectFirst:"\uBA3C\uC800 Google \uCE98\uB9B0\uB354\uB97C \uC5F0\uACB0\uD558\uC138\uC694",primarySuffix:" (\uAE30\uBCF8)"},syncTrigger:{name:"\uB3D9\uAE30\uD654 \uD2B8\uB9AC\uAC70",description:"\uC5B4\uB5A4 \uC791\uC5C5 \uB0A0\uC9DC\uAC00 \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8 \uC0DD\uC131\uC744 \uD2B8\uB9AC\uAC70\uD560\uC9C0 \uC124\uC815\uD569\uB2C8\uB2E4.",options:{scheduled:"\uC608\uC815 \uB0A0\uC9DC",due:"\uB9C8\uAC10 \uB0A0\uC9DC",both:"\uB458 \uB2E4 (\uC608\uC815 \uB0A0\uC9DC \uC6B0\uC120)"}},allDayEvents:{name:"\uC885\uC77C \uC774\uBCA4\uD2B8\uB85C \uC0DD\uC131",description:"\uD65C\uC131\uD654\uD558\uBA74 \uC791\uC5C5\uC774 \uC885\uC77C \uC774\uBCA4\uD2B8\uB85C \uC0DD\uC131\uB429\uB2C8\uB2E4. \uBE44\uD65C\uC131\uD654\uD558\uBA74 \uC2DC\uAC04 \uCD94\uC815\uC744 \uAE30\uAC04\uC73C\uB85C \uC0AC\uC6A9\uD569\uB2C8\uB2E4."},defaultDuration:{name:"\uAE30\uBCF8 \uC774\uBCA4\uD2B8 \uAE30\uAC04",description:"\uC2DC\uAC04\uC774 \uC9C0\uC815\uB41C \uC774\uBCA4\uD2B8\uC758 \uAE30\uAC04(\uBD84) (\uC791\uC5C5\uC5D0 \uC2DC\uAC04 \uCD94\uC815\uC774 \uC5C6\uC744 \uB54C \uC0AC\uC6A9)."},eventTitleTemplate:{name:"\uC774\uBCA4\uD2B8 \uC81C\uBAA9 \uD15C\uD50C\uB9BF",description:"\uC774\uBCA4\uD2B8 \uC81C\uBAA9 \uD15C\uD50C\uB9BF. \uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uBCC0\uC218: {{title}}, {{status}}, {{priority}}",placeholder:"{{title}}"},includeDescription:{name:"\uC124\uBA85\uC5D0 \uC791\uC5C5 \uC138\uBD80 \uC815\uBCF4 \uD3EC\uD568",description:"\uC774\uBCA4\uD2B8 \uC124\uBA85\uC5D0 \uC791\uC5C5 \uBA54\uD0C0\uB370\uC774\uD130(\uC6B0\uC120\uC21C\uC704, \uC0C1\uD0DC, \uD0DC\uADF8 \uB4F1)\uB97C \uCD94\uAC00\uD569\uB2C8\uB2E4."},includeObsidianLink:{name:"Obsidian \uB9C1\uD06C \uD3EC\uD568",description:"\uC774\uBCA4\uD2B8 \uC124\uBA85\uC5D0 Obsidian\uC758 \uC791\uC5C5\uC73C\uB85C \uB3CC\uC544\uAC00\uB294 \uB9C1\uD06C\uB97C \uCD94\uAC00\uD569\uB2C8\uB2E4."},defaultReminder:{name:"\uAE30\uBCF8 \uC54C\uB9BC",description:"\uC2DC\uAC04\uC774 \uC9C0\uC815\uB41C Google Calendar \uC774\uBCA4\uD2B8\uC5D0 \uD31D\uC5C5 \uB9AC\uB9C8\uC778\uB354\uB97C \uCD94\uAC00\uD569\uB2C8\uB2E4. \uC774\uBCA4\uD2B8 \uC804 \uBD84 \uC218\uB97C \uC27C\uD45C\uB85C \uAD6C\uBD84\uD574 \uC785\uB825\uD558\uC138\uC694. \uBE44\uC6CC \uB450\uBA74 \uCE98\uB9B0\uB354 \uAE30\uBCF8\uAC12\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \uC77C\uBC18\uC801\uC778 \uAC12: 15, 30, 60, 1440."},automaticSyncBehavior:{header:"\uC790\uB3D9 \uB3D9\uAE30\uD654 \uB3D9\uC791"},syncOnCreate:{name:"\uC791\uC5C5 \uC0DD\uC131 \uC2DC \uB3D9\uAE30\uD654",description:"\uC0C8 \uC791\uC5C5\uC774 \uC0DD\uC131\uB420 \uB54C \uC790\uB3D9\uC73C\uB85C \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4."},syncOnUpdate:{name:"\uC791\uC5C5 \uC5C5\uB370\uC774\uD2B8 \uC2DC \uB3D9\uAE30\uD654",description:"\uC791\uC5C5\uC774 \uC218\uC815\uB420 \uB54C \uC790\uB3D9\uC73C\uB85C \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uB97C \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4."},syncOnComplete:{name:"\uC791\uC5C5 \uC644\uB8CC \uC2DC \uB3D9\uAE30\uD654",description:"\uC791\uC5C5\uC774 \uC644\uB8CC\uB418\uBA74 \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uB97C \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4 (\uC81C\uBAA9\uC5D0 \uCCB4\uD06C \uD45C\uC2DC \uCD94\uAC00)."},syncOnDelete:{name:"\uC791\uC5C5 \uC0AD\uC81C \uC2DC \uC774\uBCA4\uD2B8 \uC0AD\uC81C",description:"\uD574\uB2F9 \uC791\uC5C5\uC774 \uC0AD\uC81C\uB418\uBA74 \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4."},manualSyncActions:{header:"\uC218\uB3D9 \uB3D9\uAE30\uD654 \uC791\uC5C5"},syncAllTasks:{name:"\uBAA8\uB4E0 \uC791\uC5C5 \uB3D9\uAE30\uD654",description:"\uBAA8\uB4E0 \uAE30\uC874 \uC791\uC5C5\uC744 Google \uCE98\uB9B0\uB354\uC5D0 \uB3D9\uAE30\uD654\uD569\uB2C8\uB2E4. \uC544\uC9C1 \uB3D9\uAE30\uD654\uB418\uC9C0 \uC54A\uC740 \uC791\uC5C5\uC5D0 \uB300\uD574 \uC774\uBCA4\uD2B8\uAC00 \uC0DD\uC131\uB429\uB2C8\uB2E4.",buttonText:"\uBAA8\uB450 \uB3D9\uAE30\uD654"},unlinkAllTasks:{name:"\uBAA8\uB4E0 \uC791\uC5C5 \uC5F0\uACB0 \uD574\uC81C",description:"\uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uB97C \uC0AD\uC81C\uD558\uC9C0 \uC54A\uACE0 \uBAA8\uB4E0 \uC791\uC5C5-\uC774\uBCA4\uD2B8 \uB9C1\uD06C\uB97C \uC81C\uAC70\uD569\uB2C8\uB2E4.",buttonText:"\uBAA8\uB450 \uC5F0\uACB0 \uD574\uC81C",confirmTitle:"\uBAA8\uB4E0 \uC791\uC5C5 \uC5F0\uACB0 \uD574\uC81C",confirmMessage:"\uC791\uC5C5\uACFC \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8 \uAC04\uC758 \uBAA8\uB4E0 \uB9C1\uD06C\uAC00 \uC81C\uAC70\uB429\uB2C8\uB2E4. \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uB294 \uC720\uC9C0\uB418\uC9C0\uB9CC \uC791\uC5C5 \uBCC0\uACBD \uC2DC \uB354 \uC774\uC0C1 \uC5C5\uB370\uC774\uD2B8\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uD655\uC2E4\uD569\uB2C8\uAE4C?",confirmButtonText:"\uBAA8\uB450 \uC5F0\uACB0 \uD574\uC81C"},notices:{notEnabled:"Google \uCE98\uB9B0\uB354 \uB0B4\uBCF4\uB0B4\uAE30\uAC00 \uD65C\uC131\uD654\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uC124\uC815 > \uD1B5\uD569\uC5D0\uC11C \uAD6C\uC131\uD558\uC138\uC694.",notEnabledOrConfigured:"Google \uCE98\uB9B0\uB354 \uB0B4\uBCF4\uB0B4\uAE30\uAC00 \uD65C\uC131\uD654\uB418\uAC70\uB098 \uAD6C\uC131\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4",serviceNotAvailable:"\uC791\uC5C5 \uCE98\uB9B0\uB354 \uB3D9\uAE30\uD654 \uC11C\uBE44\uC2A4\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",syncResults:"\uB3D9\uAE30\uD654\uB428: {synced}, \uC2E4\uD328: {failed}, \uAC74\uB108\uB700: {skipped}",taskSynced:"\uC791\uC5C5\uC774 Google \uCE98\uB9B0\uB354\uC5D0 \uB3D9\uAE30\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4",noActiveFile:"\uD604\uC7AC \uD65C\uC131 \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",notATask:"\uD604\uC7AC \uD30C\uC77C\uC740 \uC791\uC5C5\uC774 \uC544\uB2D9\uB2C8\uB2E4",noDateToSync:"\uB3D9\uAE30\uD654\uD560 \uC608\uC815 \uB0A0\uC9DC \uB610\uB294 \uB9C8\uAC10 \uB0A0\uC9DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4",syncFailed:"Google \uCE98\uB9B0\uB354\uC5D0 \uC791\uC5C5 \uB3D9\uAE30\uD654 \uC2E4\uD328: {message}",connectionExpired:"Google \uCE98\uB9B0\uB354 \uC5F0\uACB0\uC774 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC124\uC815 > \uD1B5\uD569\uC5D0\uC11C \uB2E4\uC2DC \uC5F0\uACB0\uD558\uC138\uC694.",syncingTasks:"{total}\uAC1C\uC758 \uC791\uC5C5\uC744 Google \uCE98\uB9B0\uB354\uC5D0 \uB3D9\uAE30\uD654 \uC911...",syncComplete:"\uB3D9\uAE30\uD654 \uC644\uB8CC: {synced}\uAC1C \uB3D9\uAE30\uD654\uB428, {failed}\uAC1C \uC2E4\uD328, {skipped}\uAC1C \uAC74\uB108\uB700",eventsDeletedAndUnlinked:"\uBAA8\uB4E0 \uC774\uBCA4\uD2B8\uAC00 \uC0AD\uC81C\uB418\uACE0 \uC5F0\uACB0 \uD574\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4",tasksUnlinked:"\uBAA8\uB4E0 \uC791\uC5C5 \uB9C1\uD06C\uAC00 \uC81C\uAC70\uB418\uC5C8\uC2B5\uB2C8\uB2E4"},eventDescription:{untitledTask:"\uC81C\uBAA9 \uC5C6\uB294 \uC791\uC5C5",priority:"\uC6B0\uC120\uC21C\uC704: {value}",status:"\uC0C1\uD0DC: {value}",due:"\uB9C8\uAC10: {value}",scheduled:"\uC608\uC815: {value}",timeEstimate:"\uC2DC\uAC04 \uCD94\uC815: {value}",tags:"\uD0DC\uADF8: {value}",contexts:"\uCEE8\uD14D\uC2A4\uD2B8: {value}",projects:"\uD504\uB85C\uC81D\uD2B8: {value}",openInObsidian:"Obsidian\uC5D0\uC11C \uC5F4\uAE30"}},httpApi:{header:"HTTP API",description:"\uC678\uBD80 \uD1B5\uD569 \uBC0F \uC790\uB3D9\uD654\uB97C \uC704\uD55C HTTP API \uD65C\uC131\uD654.",enable:{name:"HTTP API \uD65C\uC131\uD654",description:"API \uC561\uC138\uC2A4\uB97C \uC704\uD55C \uB85C\uCEEC HTTP \uC11C\uBC84 \uC2DC\uC791"},port:{name:"API \uD3EC\uD2B8",description:"HTTP API \uC11C\uBC84\uC758 \uD3EC\uD2B8 \uBC88\uD638",placeholder:"3000"},authToken:{name:"API \uC778\uC99D \uD1A0\uD070",description:"API \uC778\uC99D\uC5D0 \uD544\uC694\uD55C \uD1A0\uD070 (\uC778\uC99D \uC5C6\uC774 \uC0AC\uC6A9\uD558\uB824\uBA74 \uBE44\uC6CC\uB450\uC138\uC694)",placeholder:"\uBE44\uBC00-\uD1A0\uD070"},mcp:{enable:{name:"MCP \uC11C\uBC84 \uD65C\uC131\uD654",description:"Model Context Protocol\uC744 \uD1B5\uD574 /mcp \uC5D4\uB4DC\uD3EC\uC778\uD2B8\uC5D0\uC11C TaskNotes \uB3C4\uAD6C\uB97C \uB178\uCD9C\uD569\uB2C8\uB2E4. HTTP API\uAC00 \uD65C\uC131\uD654\uB418\uC5B4 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4."}},endpoints:{header:"\uC0AC\uC6A9 \uAC00\uB2A5\uD55C API \uC5D4\uB4DC\uD3EC\uC778\uD2B8",expandIcon:"\u25B6",collapseIcon:"\u25BC"}},webhooks:{header:"\uC6F9\uD6C5",description:{overview:"\uC6F9\uD6C5\uC740 TaskNotes \uC774\uBCA4\uD2B8\uAC00 \uBC1C\uC0DD\uD560 \uB54C \uC678\uBD80 \uC11C\uBE44\uC2A4\uC5D0 \uC2E4\uC2DC\uAC04 \uC54C\uB9BC\uC744 \uBCF4\uB0C5\uB2C8\uB2E4.",usage:"\uC790\uB3D9\uD654 \uB3C4\uAD6C, \uB3D9\uAE30\uD654 \uC11C\uBE44\uC2A4 \uB610\uB294 \uC0AC\uC6A9\uC790 \uC9C0\uC815 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uACFC \uD1B5\uD569\uD558\uB824\uBA74 \uC6F9\uD6C5\uC744 \uAD6C\uC131\uD558\uC138\uC694."},addWebhook:{name:"\uC6F9\uD6C5 \uCD94\uAC00",description:"\uC0C8 \uC6F9\uD6C5 \uC5D4\uB4DC\uD3EC\uC778\uD2B8 \uB4F1\uB85D",buttonText:"\uC6F9\uD6C5 \uCD94\uAC00"},emptyState:{message:"\uC6F9\uD6C5\uC774 \uC124\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uC2E4\uC2DC\uAC04 \uC54C\uB9BC\uC744 \uBC1B\uC73C\uB824\uBA74 \uC6F9\uD6C5\uC744 \uCD94\uAC00\uD558\uC138\uC694.",buttonText:"\uC6F9\uD6C5 \uCD94\uAC00"},labels:{active:"\uD65C\uC131:",url:"URL:",events:"\uC774\uBCA4\uD2B8:",transform:"\uBCC0\uD658:"},placeholders:{url:"\uC6F9\uD6C5 URL",noEventsSelected:"\uC120\uD0DD\uB41C \uC774\uBCA4\uD2B8 \uC5C6\uC74C",rawPayload:"\uC6D0\uBCF8 \uD398\uC774\uB85C\uB4DC (\uBCC0\uD658 \uC5C6\uC74C)"},statusLabels:{active:"\uD65C\uC131",inactive:"\uBE44\uD65C\uC131",created:"{timeAgo} \uC804 \uC0DD\uC131\uB428"},actions:{editEvents:"\uC774\uBCA4\uD2B8 \uD3B8\uC9D1",delete:"\uC0AD\uC81C"},editEvents:"\uC774\uBCA4\uD2B8 \uD3B8\uC9D1",notices:{urlUpdated:"\uC6F9\uD6C5 URL\uC774 \uC5C5\uB370\uC774\uD2B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4",enabled:"\uC6F9\uD6C5\uC774 \uD65C\uC131\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4",disabled:"\uC6F9\uD6C5\uC774 \uBE44\uD65C\uC131\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4",created:"\uC6F9\uD6C5\uC774 \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4",deleted:"\uC6F9\uD6C5\uC774 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4",updated:"\uC6F9\uD6C5\uC774 \uC5C5\uB370\uC774\uD2B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4"},confirmDelete:{title:"\uC6F9\uD6C5 \uC0AD\uC81C",message:`\uC774 \uC6F9\uD6C5\uC744 \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?
|
||
|
||
URL: {url}
|
||
|
||
\uC774 \uC791\uC5C5\uC740 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.`,confirmText:"\uC0AD\uC81C"},cardHeader:"\uC6F9\uD6C5",cardFields:{active:"\uD65C\uC131:",url:"URL:",events:"\uC774\uBCA4\uD2B8:",transform:"\uBCC0\uD658:"},eventsDisplay:{noEvents:"\uC120\uD0DD\uB41C \uC774\uBCA4\uD2B8 \uC5C6\uC74C"},transformDisplay:{noTransform:"\uC6D0\uBCF8 \uD398\uC774\uB85C\uB4DC (\uBCC0\uD658 \uC5C6\uC74C)"},secretModal:{title:"\uC6F9\uD6C5 \uC2DC\uD06C\uB9BF \uC0DD\uC131\uB428",description:"\uC6F9\uD6C5 \uC2DC\uD06C\uB9BF\uC774 \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uBCFC \uC218 \uC5C6\uC73C\uBBC0\uB85C \uC774 \uC2DC\uD06C\uB9BF\uC744 \uC800\uC7A5\uD558\uC138\uC694:",usage:"\uC218\uC2E0 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC5D0\uC11C \uC6F9\uD6C5 \uD398\uC774\uB85C\uB4DC\uB97C \uD655\uC778\uD558\uB294 \uB370 \uC774 \uC2DC\uD06C\uB9BF\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.",gotIt:"\uD655\uC778"},editModal:{title:"\uC6F9\uD6C5 \uD3B8\uC9D1",eventsHeader:"\uAD6C\uB3C5\uD560 \uC774\uBCA4\uD2B8"},events:{taskCreated:{label:"\uC791\uC5C5 \uC0DD\uC131\uB428",description:"\uC0C8 \uC791\uC5C5\uC774 \uC0DD\uC131\uB420 \uB54C"},taskUpdated:{label:"\uC791\uC5C5 \uC5C5\uB370\uC774\uD2B8\uB428",description:"\uC791\uC5C5\uC774 \uC218\uC815\uB420 \uB54C"},taskCompleted:{label:"\uC791\uC5C5 \uC644\uB8CC\uB428",description:"\uC791\uC5C5\uC774 \uC644\uB8CC\uB85C \uD45C\uC2DC\uB420 \uB54C"},taskDeleted:{label:"\uC791\uC5C5 \uC0AD\uC81C\uB428",description:"\uC791\uC5C5\uC774 \uC0AD\uC81C\uB420 \uB54C"},taskArchived:{label:"\uC791\uC5C5 \uBCF4\uAD00\uB428",description:"\uC791\uC5C5\uC774 \uBCF4\uAD00\uB420 \uB54C"},taskUnarchived:{label:"\uC791\uC5C5 \uBCF4\uAD00 \uD574\uC81C\uB428",description:"\uC791\uC5C5\uC774 \uBCF4\uAD00 \uD574\uC81C\uB420 \uB54C"},timeStarted:{label:"\uC2DC\uAC04 \uCD94\uC801 \uC2DC\uC791\uB428",description:"\uC2DC\uAC04 \uCD94\uC801\uC774 \uC2DC\uC791\uB420 \uB54C"},timeStopped:{label:"\uC2DC\uAC04 \uCD94\uC801 \uC911\uC9C0\uB428",description:"\uC2DC\uAC04 \uCD94\uC801\uC774 \uC911\uC9C0\uB420 \uB54C"},pomodoroStarted:{label:"\uBF40\uBAA8\uB3C4\uB85C \uC2DC\uC791\uB428",description:"\uBF40\uBAA8\uB3C4\uB85C \uC138\uC158\uC774 \uC2DC\uC791\uB420 \uB54C"},pomodoroCompleted:{label:"\uBF40\uBAA8\uB3C4\uB85C \uC644\uB8CC\uB428",description:"\uBF40\uBAA8\uB3C4\uB85C \uC138\uC158\uC774 \uC644\uB8CC\uB420 \uB54C"},pomodoroInterrupted:{label:"\uBF40\uBAA8\uB3C4\uB85C \uC911\uB2E8\uB428",description:"\uBF40\uBAA8\uB3C4\uB85C \uC138\uC158\uC774 \uC911\uC9C0\uB420 \uB54C"},recurringCompleted:{label:"\uBC18\uBCF5 \uC778\uC2A4\uD134\uC2A4 \uC644\uB8CC\uB428",description:"\uBC18\uBCF5 \uC791\uC5C5 \uC778\uC2A4\uD134\uC2A4\uAC00 \uC644\uB8CC\uB420 \uB54C"},reminderTriggered:{label:"\uB9AC\uB9C8\uC778\uB354 \uD2B8\uB9AC\uAC70\uB428",description:"\uC791\uC5C5 \uB9AC\uB9C8\uC778\uB354\uAC00 \uD65C\uC131\uD654\uB420 \uB54C"}},modals:{secretGenerated:{title:"\uC6F9\uD6C5 \uC2DC\uD06C\uB9BF \uC0DD\uC131\uB428",description:"\uC6F9\uD6C5 \uC2DC\uD06C\uB9BF\uC774 \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uBCFC \uC218 \uC5C6\uC73C\uBBC0\uB85C \uC774 \uC2DC\uD06C\uB9BF\uC744 \uC800\uC7A5\uD558\uC138\uC694:",usage:"\uC218\uC2E0 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC5D0\uC11C \uC6F9\uD6C5 \uD398\uC774\uB85C\uB4DC\uB97C \uD655\uC778\uD558\uB294 \uB370 \uC774 \uC2DC\uD06C\uB9BF\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.",buttonText:"\uD655\uC778"},edit:{title:"\uC6F9\uD6C5 \uD3B8\uC9D1",eventsSection:"\uAD6C\uB3C5\uD560 \uC774\uBCA4\uD2B8",transformSection:"\uBCC0\uD658 \uAD6C\uC131 (\uC120\uD0DD\uC0AC\uD56D)",headersSection:"\uD5E4\uB354 \uAD6C\uC131",transformFile:{name:"\uBCC0\uD658 \uD30C\uC77C",description:"\uC6F9\uD6C5 \uD398\uC774\uB85C\uB4DC\uB97C \uBCC0\uD658\uD558\uB294 \uBCF4\uAD00\uC18C\uC758 .json \uD15C\uD50C\uB9BF \uD30C\uC77C \uACBD\uB85C",placeholder:"simple-template.json"},customHeaders:{name:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD5E4\uB354 \uD3EC\uD568",description:"TaskNotes \uD5E4\uB354 (\uC774\uBCA4\uD2B8 \uC720\uD615, \uC11C\uBA85, \uC804\uB2EC ID) \uD3EC\uD568. Discord, Slack \uBC0F \uC5C4\uACA9\uD55C CORS \uC815\uCC45\uC744 \uAC00\uC9C4 \uB2E4\uB978 \uC11C\uBE44\uC2A4\uC5D0\uC11C\uB294 \uBE44\uD65C\uC131\uD654\uD558\uC138\uC694."},buttons:{cancel:"\uCDE8\uC18C",save:"\uBCC0\uACBD \uC0AC\uD56D \uC800\uC7A5"},notices:{selectAtLeastOneEvent:"\uCD5C\uC18C \uD558\uB098\uC758 \uC774\uBCA4\uD2B8\uB97C \uC120\uD0DD\uD558\uC138\uC694"}},add:{title:"\uC6F9\uD6C5 \uCD94\uAC00",eventsSection:"\uAD6C\uB3C5\uD560 \uC774\uBCA4\uD2B8",transformSection:"\uBCC0\uD658 \uAD6C\uC131 (\uC120\uD0DD\uC0AC\uD56D)",headersSection:"\uD5E4\uB354 \uAD6C\uC131",url:{name:"\uC6F9\uD6C5 URL",description:"\uC6F9\uD6C5 \uD398\uC774\uB85C\uB4DC\uAC00 \uC804\uC1A1\uB420 \uC5D4\uB4DC\uD3EC\uC778\uD2B8",placeholder:"https://your-service.com/webhook"},transformFile:{name:"\uBCC0\uD658 \uD30C\uC77C",description:"\uC6F9\uD6C5 \uD398\uC774\uB85C\uB4DC\uB97C \uBCC0\uD658\uD558\uB294 \uBCF4\uAD00\uC18C\uC758 .json \uD15C\uD50C\uB9BF \uD30C\uC77C \uACBD\uB85C",placeholder:"simple-template.json"},customHeaders:{name:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD5E4\uB354 \uD3EC\uD568",description:"TaskNotes \uD5E4\uB354 (\uC774\uBCA4\uD2B8 \uC720\uD615, \uC11C\uBA85, \uC804\uB2EC ID) \uD3EC\uD568. Discord, Slack \uBC0F \uC5C4\uACA9\uD55C CORS \uC815\uCC45\uC744 \uAC00\uC9C4 \uB2E4\uB978 \uC11C\uBE44\uC2A4\uC5D0\uC11C\uB294 \uBE44\uD65C\uC131\uD654\uD558\uC138\uC694."},transformHelp:{title:"JSON \uBCC0\uD658 \uD15C\uD50C\uB9BF\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC6F9\uD6C5 \uD398\uC774\uB85C\uB4DC\uB97C \uC0AC\uC6A9\uC790 \uC9C0\uC815\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4:",jsFiles:"",jsDescription:"",jsonFiles:".json \uD30C\uC77C:",jsonDescription:" ",jsonVariable:"${data.task.title}",leaveEmpty:"\uBE44\uC6CC\uB450\uAE30:",leaveEmptyDescription:" \uC6D0\uBCF8 \uB370\uC774\uD130 \uC804\uC1A1",example:"\uC608:",exampleFile:"simple-template.json"},buttons:{cancel:"\uCDE8\uC18C",add:"\uC6F9\uD6C5 \uCD94\uAC00"},notices:{urlRequired:"\uC6F9\uD6C5 URL\uC774 \uD544\uC694\uD569\uB2C8\uB2E4",selectAtLeastOneEvent:"\uCD5C\uC18C \uD558\uB098\uC758 \uC774\uBCA4\uD2B8\uB97C \uC120\uD0DD\uD558\uC138\uC694"}}}},otherIntegrations:{header:"\uAE30\uD0C0 \uD50C\uB7EC\uADF8\uC778 \uD1B5\uD569",description:"\uB2E4\uB978 Obsidian \uD50C\uB7EC\uADF8\uC778\uACFC\uC758 \uD1B5\uD569\uC744 \uC124\uC815\uD569\uB2C8\uB2E4."},mdbaseSpec:{header:"mdbase \uD0C0\uC785 \uC815\uC758",learnMore:"mdbase-spec\uC5D0 \uB300\uD574 \uC790\uC138\uD788 \uC54C\uC544\uBCF4\uAE30",enable:{name:"mdbase \uD0C0\uC785 \uC815\uC758 \uC0DD\uC131",description:"\uC124\uC815\uC774 \uBCC0\uACBD\uB420 \uB54C \uBCF4\uAD00\uC18C \uB8E8\uD2B8\uC5D0 mdbase \uD0C0\uC785 \uD30C\uC77C(mdbase.yaml \uBC0F _types/task.md)\uC744 \uC0DD\uC131\uD558\uACE0 \uC720\uC9C0\uD569\uB2C8\uB2E4."}},timeFormats:{justNow:"\uBC29\uAE08",minutesAgo:"{minutes}\uBD84 \uC804",hoursAgo:"{hours}\uC2DC\uAC04 \uC804",daysAgo:"{days}\uC77C \uC804"}}},notices:{languageChanged:"\uC5B8\uC5B4\uAC00 {language}(\uC73C)\uB85C \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",releaseAvailable:{message:"TaskNotes {version} \uB9B4\uB9AC\uC2A4\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",action:"\uCEE4\uBBA4\uB2C8\uD2F0 \uD50C\uB7EC\uADF8\uC778\uC5D0\uC11C \uC5F4\uAE30"},exportTasksFailed:"ICS \uD30C\uC77C\uB85C \uC791\uC5C5 \uB0B4\uBCF4\uB0B4\uAE30 \uC2E4\uD328",icsNoteCreatedSuccess:"\uB178\uD2B8\uAC00 \uC131\uACF5\uC801\uC73C\uB85C \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4",icsCreationModalOpenFailed:"\uC0DD\uC131 \uBAA8\uB2EC \uC5F4\uAE30 \uC2E4\uD328",icsNoteLinkSuccess:'\uB178\uD2B8 "{fileName}"\uC774(\uAC00) ICS \uC774\uBCA4\uD2B8\uC5D0 \uC5F0\uACB0\uB418\uC5C8\uC2B5\uB2C8\uB2E4',icsTaskCreatedSuccess:"\uC791\uC5C5 \uC0DD\uC131\uB428: {title}",icsRelatedItemsRefreshed:"\uAD00\uB828 \uB178\uD2B8\uAC00 \uC0C8\uB85C\uACE0\uCE68\uB418\uC5C8\uC2B5\uB2C8\uB2E4",icsFileNotFound:"\uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uAC70\uB098 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4",icsFileOpenFailed:"\uD30C\uC77C \uC5F4\uAE30 \uC2E4\uD328",timeblockAttachmentExists:'"{fileName}"\uC774(\uAC00) \uC774\uBBF8 \uCCA8\uBD80\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4',timeblockAttachmentAdded:'"{fileName}"\uC774(\uAC00) \uCCA8\uBD80 \uD30C\uC77C\uB85C \uCD94\uAC00\uB418\uC5C8\uC2B5\uB2C8\uB2E4',timeblockAttachmentRemoved:'"{fileName}"\uC774(\uAC00) \uCCA8\uBD80 \uD30C\uC77C\uC5D0\uC11C \uC81C\uAC70\uB418\uC5C8\uC2B5\uB2C8\uB2E4',timeblockFileTypeNotSupported:'"{fileName}"\uC744(\uB97C) \uC5F4 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4 - \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uB294 \uD30C\uC77C \uD615\uC2DD',timeblockTitleRequired:"\uD0C0\uC784\uBE14\uB85D \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694",timeblockUpdatedSuccess:'\uD0C0\uC784\uBE14\uB85D "{title}"\uC774(\uAC00) \uC131\uACF5\uC801\uC73C\uB85C \uC5C5\uB370\uC774\uD2B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4',timeblockUpdateFailed:"\uD0C0\uC784\uBE14\uB85D \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328. \uC790\uC138\uD55C \uB0B4\uC6A9\uC740 \uCF58\uC194\uC744 \uD655\uC778\uD558\uC138\uC694.",timeblockDeletedSuccess:'\uD0C0\uC784\uBE14\uB85D "{title}"\uC774(\uAC00) \uC131\uACF5\uC801\uC73C\uB85C \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4',timeblockDeleteFailed:"\uD0C0\uC784\uBE14\uB85D \uC0AD\uC81C \uC2E4\uD328. \uC790\uC138\uD55C \uB0B4\uC6A9\uC740 \uCF58\uC194\uC744 \uD655\uC778\uD558\uC138\uC694.",timeblockRequiredFieldsMissing:"\uBAA8\uB4E0 \uD544\uC218 \uD544\uB4DC\uB97C \uC785\uB825\uD558\uC138\uC694",agendaLoadingFailed:"\uC77C\uC815 \uB85C\uB529 \uC911 \uC624\uB958. \uC0C8\uB85C\uACE0\uCE68\uC744 \uC2DC\uB3C4\uD558\uC138\uC694.",statsLoadingFailed:"\uD504\uB85C\uC81D\uD2B8 \uC138\uBD80\uC815\uBCF4 \uB85C\uB529 \uC911 \uC624\uB958."},commands:{openCalendarView:"\uBBF8\uB2C8 \uCE98\uB9B0\uB354 \uBDF0 \uC5F4\uAE30",openAdvancedCalendarView:"\uCE98\uB9B0\uB354 \uBDF0 \uC5F4\uAE30",openTasksView:"\uC791\uC5C5 \uBDF0 \uC5F4\uAE30",openNotesView:"\uB178\uD2B8 \uBDF0 \uC5F4\uAE30",openAgendaView:"\uC77C\uC815 \uBDF0 \uC5F4\uAE30",openPomodoroView:"\uBF40\uBAA8\uB3C4\uB85C \uD0C0\uC774\uBA38 \uC5F4\uAE30",openKanbanView:"\uCE78\uBC18 \uBCF4\uB4DC \uC5F4\uAE30",updateDefaultBaseFiles:"\uAE30\uBCF8 Base \uD30C\uC77C \uC5C5\uB370\uC774\uD2B8",openPomodoroStats:"\uBF40\uBAA8\uB3C4\uB85C \uD1B5\uACC4 \uC5F4\uAE30",openStatisticsView:"\uC791\uC5C5 \uBC0F \uD504\uB85C\uC81D\uD2B8 \uD1B5\uACC4 \uC5F4\uAE30",createNewTask:"\uC0C8 \uC791\uC5C5 \uB9CC\uB4E4\uAE30",convertCurrentNoteToTask:{name:"\uD604\uC7AC \uB178\uD2B8\uB97C \uC791\uC5C5\uC73C\uB85C \uBCC0\uD658",noActiveFile:"\uBCC0\uD658\uD560 \uD65C\uC131 \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",alreadyTask:"\uC774 \uB178\uD2B8\uB294 \uC774\uBBF8 \uC791\uC5C5\uC785\uB2C8\uB2E4",success:"'{title}'\uC744(\uB97C) \uC791\uC5C5\uC73C\uB85C \uBCC0\uD658\uD588\uC2B5\uB2C8\uB2E4"},convertToTaskNote:"\uCCB4\uD06C\uBC15\uC2A4 \uC791\uC5C5\uC744 TaskNote\uB85C \uBCC0\uD658",convertAllTasksInNote:"\uB178\uD2B8\uC758 \uBAA8\uB4E0 \uC791\uC5C5 \uBCC0\uD658",insertTaskNoteLink:"TaskNote \uB9C1\uD06C \uC0BD\uC785",createInlineTask:"\uC0C8 \uC778\uB77C\uC778 \uC791\uC5C5 \uB9CC\uB4E4\uAE30",quickActionsCurrentTask:"\uD604\uC7AC \uC791\uC5C5\uC758 \uBE60\uB978 \uC791\uC5C5",goToTodayNote:"\uC624\uB298\uC758 \uB178\uD2B8\uB85C \uC774\uB3D9",startPomodoro:"\uBF40\uBAA8\uB3C4\uB85C \uD0C0\uC774\uBA38 \uC2DC\uC791",stopPomodoro:"\uBF40\uBAA8\uB3C4\uB85C \uD0C0\uC774\uBA38 \uC911\uC9C0",pauseResumePomodoro:"\uBF40\uBAA8\uB3C4\uB85C \uD0C0\uC774\uBA38 \uC77C\uC2DC \uC815\uC9C0/\uC7AC\uAC1C",refreshCache:"\uCE90\uC2DC \uC0C8\uB85C\uACE0\uCE68",exportAllTasksIcs:"\uBAA8\uB4E0 \uC791\uC5C5\uC744 ICS \uD30C\uC77C\uB85C \uB0B4\uBCF4\uB0B4\uAE30",viewReleaseNotes:"\uB9B4\uB9AC\uC2A4 \uB178\uD2B8 \uBCF4\uAE30",startTimeTrackingWithSelector:"\uC2DC\uAC04 \uCD94\uC801 \uC2DC\uC791 (\uC791\uC5C5 \uC120\uD0DD)",editTimeEntries:"\uC2DC\uAC04 \uAE30\uB85D \uD3B8\uC9D1 (\uC791\uC5C5 \uC120\uD0DD)",createOrOpenTask:"\uC791\uC5C5 \uB9CC\uB4E4\uAE30 \uB610\uB294 \uC5F4\uAE30",createOrOpenTaskWithTracking:"\uC791\uC5C5\uC744 \uB9CC\uB4E4\uAC70\uB098 \uC5F4\uACE0 \uC2DC\uAC04 \uCD94\uC801 \uC2DC\uC791",rolloverOverdueScheduledTasks:"\uAE30\uD55C\uC774 \uC9C0\uB09C \uC608\uC57D \uC791\uC5C5\uC744 \uC624\uB298\uB85C \uC5F0\uAE30",syncAllTasksGoogleCalendar:"\uBAA8\uB4E0 \uC791\uC5C5\uC744 Google \uCE98\uB9B0\uB354\uC5D0 \uB3D9\uAE30\uD654",syncCurrentTaskGoogleCalendar:"\uD604\uC7AC \uC791\uC5C5\uC744 Google \uCE98\uB9B0\uB354\uC5D0 \uB3D9\uAE30\uD654",quickActionsTaskUnderCursor:"\uCEE4\uC11C \uC544\uB798 \uC791\uC5C5\uC758 \uBE60\uB978 \uC791\uC5C5",editCurrentTask:"\uD604\uC7AC \uC791\uC5C5 \uD3B8\uC9D1",cycleCurrentTaskStatus:"\uD604\uC7AC \uC791\uC5C5 \uC0C1\uD0DC \uC21C\uD658",cycleCurrentTaskPriority:"\uD604\uC7AC \uC791\uC5C5 \uC6B0\uC120\uC21C\uC704 \uC21C\uD658",addProjectToCurrentTask:"\uD604\uC7AC \uC791\uC5C5\uC5D0 \uD504\uB85C\uC81D\uD2B8 \uCD94\uAC00",addSubtaskToCurrentNote:"\uD604\uC7AC \uB178\uD2B8\uC5D0 \uD558\uC704 \uC791\uC5C5 \uCD94\uAC00"},modals:{deviceCode:{title:"Google \uCE98\uB9B0\uB354 \uC778\uC99D",instructions:{intro:"Google \uCE98\uB9B0\uB354\uC5D0 \uC5F0\uACB0\uD558\uB824\uBA74 \uB2E4\uC74C \uB2E8\uACC4\uB97C \uB530\uB974\uC138\uC694:"},steps:{open:"\uC5F4\uAE30",inBrowser:"(\uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C)",enterCode:"\uBA54\uC2DC\uC9C0\uAC00 \uD45C\uC2DC\uB418\uBA74 \uC774 \uCF54\uB4DC\uB97C \uC785\uB825\uD558\uC138\uC694:",signIn:"Google \uACC4\uC815\uC73C\uB85C \uB85C\uADF8\uC778\uD558\uACE0 \uC561\uC138\uC2A4 \uAD8C\uD55C\uC744 \uBD80\uC5EC\uD558\uC138\uC694",returnToObsidian:"Obsidian\uC73C\uB85C \uB3CC\uC544\uAC00\uC138\uC694 (\uC774 \uCC3D\uC740 \uC790\uB3D9\uC73C\uB85C \uB2EB\uD799\uB2C8\uB2E4)"},codeLabel:"\uCF54\uB4DC:",copyCodeAriaLabel:"\uCF54\uB4DC \uBCF5\uC0AC",waitingForAuthorization:"\uC778\uC99D \uB300\uAE30 \uC911...",openBrowserButton:"\uBE0C\uB77C\uC6B0\uC800 \uC5F4\uAE30",cancelButton:"\uCDE8\uC18C",expiresMinutesSeconds:"\uCF54\uB4DC \uB9CC\uB8CC: {minutes}\uBD84 {seconds}\uCD08",expiresSeconds:"\uCF54\uB4DC \uB9CC\uB8CC: {seconds}\uCD08"},icsEventInfo:{calendarEventHeading:"\uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8",titleLabel:"\uC81C\uBAA9",calendarLabel:"\uCE98\uB9B0\uB354",dateTimeLabel:"\uB0A0\uC9DC \uBC0F \uC2DC\uAC04",locationLabel:"\uC704\uCE58",descriptionLabel:"\uC124\uBA85",urlLabel:"URL",relatedNotesHeading:"\uAD00\uB828 \uB178\uD2B8 \uBC0F \uC791\uC5C5",noRelatedItems:"\uC774 \uC774\uBCA4\uD2B8\uC5D0 \uB300\uD55C \uAD00\uB828 \uB178\uD2B8\uB098 \uC791\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",typeTask:"\uC791\uC5C5",typeNote:"\uB178\uD2B8",actionsHeading:"\uC791\uC5C5",createFromEventLabel:"\uC774\uBCA4\uD2B8\uC5D0\uC11C \uC0DD\uC131",createFromEventDesc:"\uC774 \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uC5D0\uC11C \uC0C8 \uB178\uD2B8\uB098 \uC791\uC5C5 \uC0DD\uC131",linkExistingLabel:"\uAE30\uC874 \uD56D\uBAA9 \uC5F0\uACB0",linkExistingDesc:"\uC774 \uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8\uC5D0 \uAE30\uC874 \uB178\uD2B8 \uC5F0\uACB0"},timeblockInfo:{editHeading:"\uD0C0\uC784\uBE14\uB85D \uD3B8\uC9D1",dateTimeLabel:"\uB0A0\uC9DC \uBC0F \uC2DC\uAC04: ",titleLabel:"\uC81C\uBAA9",titleDesc:"\uD0C0\uC784\uBE14\uB85D \uC81C\uBAA9",titlePlaceholder:"\uC608: \uC9D1\uC911 \uC791\uC5C5 \uC2DC\uAC04",descriptionLabel:"\uC124\uBA85",descriptionDesc:"\uD0C0\uC784\uBE14\uB85D\uC5D0 \uB300\uD55C \uC120\uD0DD\uC801 \uC124\uBA85",descriptionPlaceholder:"\uC0C8 \uAE30\uB2A5\uC5D0 \uC9D1\uC911, \uBC29\uD574 \uAE08\uC9C0",colorLabel:"\uC0C9\uC0C1",colorDesc:"\uD0C0\uC784\uBE14\uB85D\uC758 \uC120\uD0DD\uC801 \uC0C9\uC0C1",colorPlaceholder:"#3b82f6",attachmentsLabel:"\uCCA8\uBD80 \uD30C\uC77C",attachmentsDesc:"\uC774 \uD0C0\uC784\uBE14\uB85D\uC5D0 \uC5F0\uACB0\uB41C \uD30C\uC77C \uB610\uB294 \uB178\uD2B8",addAttachmentButton:"\uCCA8\uBD80 \uD30C\uC77C \uCD94\uAC00",addAttachmentTooltip:"\uD37C\uC9C0 \uAC80\uC0C9\uC744 \uC0AC\uC6A9\uD558\uC5EC \uD30C\uC77C \uB610\uB294 \uB178\uD2B8 \uC120\uD0DD",deleteButton:"\uD0C0\uC784\uBE14\uB85D \uC0AD\uC81C",saveButton:"\uBCC0\uACBD \uC0AC\uD56D \uC800\uC7A5",deleteConfirmationTitle:"\uD0C0\uC784\uBE14\uB85D \uC0AD\uC81C"},timeblockCreation:{heading:"\uD0C0\uC784\uBE14\uB85D \uB9CC\uB4E4\uAE30",dateLabel:"\uB0A0\uC9DC: ",titleLabel:"\uC81C\uBAA9",titleDesc:"\uD0C0\uC784\uBE14\uB85D \uC81C\uBAA9",titlePlaceholder:"\uC608: \uC9D1\uC911 \uC791\uC5C5 \uC2DC\uAC04",startTimeLabel:"\uC2DC\uC791 \uC2DC\uAC04",startTimeDesc:"\uD0C0\uC784\uBE14\uB85D \uC2DC\uC791 \uC2DC\uAC04",startTimePlaceholder:"09:00",endTimeLabel:"\uC885\uB8CC \uC2DC\uAC04",endTimeDesc:"\uD0C0\uC784\uBE14\uB85D \uC885\uB8CC \uC2DC\uAC04",endTimePlaceholder:"11:00",descriptionLabel:"\uC124\uBA85",descriptionDesc:"\uD0C0\uC784\uBE14\uB85D\uC5D0 \uB300\uD55C \uC120\uD0DD\uC801 \uC124\uBA85",descriptionPlaceholder:"\uC0C8 \uAE30\uB2A5\uC5D0 \uC9D1\uC911, \uBC29\uD574 \uAE08\uC9C0",colorLabel:"\uC0C9\uC0C1",colorDesc:"\uD0C0\uC784\uBE14\uB85D\uC758 \uC120\uD0DD\uC801 \uC0C9\uC0C1",colorPlaceholder:"#3b82f6",attachmentsLabel:"\uCCA8\uBD80 \uD30C\uC77C",attachmentsDesc:"\uC774 \uD0C0\uC784\uBE14\uB85D\uC5D0 \uC5F0\uACB0\uD560 \uD30C\uC77C \uB610\uB294 \uB178\uD2B8",addAttachmentButton:"\uCCA8\uBD80 \uD30C\uC77C \uCD94\uAC00",addAttachmentTooltip:"\uD37C\uC9C0 \uAC80\uC0C9\uC744 \uC0AC\uC6A9\uD558\uC5EC \uD30C\uC77C \uB610\uB294 \uB178\uD2B8 \uC120\uD0DD",createButton:"\uD0C0\uC784\uBE14\uB85D \uB9CC\uB4E4\uAE30"},calendarEventCreation:{heading:"\uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8 \uB9CC\uB4E4\uAE30",dateTimeLabel:"\uB0A0\uC9DC \uBC0F \uC2DC\uAC04: ",titleLabel:"\uC81C\uBAA9",titleDesc:"\uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8 \uC81C\uBAA9",titlePlaceholder:"\uC608: \uD300 \uD68C\uC758",calendarLabel:"\uCE98\uB9B0\uB354",calendarDesc:"\uC774\uBCA4\uD2B8\uB97C \uB9CC\uB4E4 \uCE98\uB9B0\uB354",descriptionLabel:"\uC124\uBA85",descriptionDesc:"\uC774\uBCA4\uD2B8\uC5D0 \uB300\uD55C \uC120\uD0DD\uC801 \uC124\uBA85",descriptionPlaceholder:"\uC774\uBCA4\uD2B8\uC5D0 \uB300\uD55C \uC138\uBD80\uC815\uBCF4 \uCD94\uAC00...",locationLabel:"\uC704\uCE58",locationDesc:"\uC774\uBCA4\uD2B8\uC758 \uC120\uD0DD\uC801 \uC704\uCE58",locationPlaceholder:"\uC608: \uD68C\uC758\uC2E4 A",createButton:"\uC774\uBCA4\uD2B8 \uB9CC\uB4E4\uAE30",titleRequired:"\uC774\uBCA4\uD2B8 \uC81C\uBAA9\uC740 \uD544\uC218\uC785\uB2C8\uB2E4",noCalendarSelected:"\uCE98\uB9B0\uB354\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4",success:'\uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8 "{title}" \uC0DD\uC131\uB428',error:"\uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8 \uC0DD\uC131 \uC2E4\uD328: {message}"},icsNoteCreation:{heading:"ICS \uC774\uBCA4\uD2B8\uC5D0\uC11C \uC0DD\uC131",titleLabel:"\uC81C\uBAA9",titleDesc:"\uC0C8 \uCF58\uD150\uCE20\uC758 \uC81C\uBAA9",folderLabel:"\uD3F4\uB354",folderDesc:"\uB300\uC0C1 \uD3F4\uB354 (\uBCF4\uAD00\uC18C \uB8E8\uD2B8\uB97C \uC0AC\uC6A9\uD558\uB824\uBA74 \uBE44\uC6CC\uB450\uC138\uC694)",folderPlaceholder:"\uD3F4\uB354/\uD558\uC704\uD3F4\uB354",createButton:"\uC0DD\uC131",startLabel:"\uC2DC\uC791: ",endLabel:"\uC885\uB8CC: ",locationLabel:"\uC704\uCE58: ",calendarLabel:"\uCE98\uB9B0\uB354: ",useTemplateLabel:"\uD15C\uD50C\uB9BF \uC0AC\uC6A9",useTemplateDesc:"\uCF58\uD150\uCE20 \uC0DD\uC131 \uC2DC \uD15C\uD50C\uB9BF \uC801\uC6A9",templatePathLabel:"\uD15C\uD50C\uB9BF \uACBD\uB85C",templatePathDesc:"\uD15C\uD50C\uB9BF \uD30C\uC77C \uACBD\uB85C",templatePathPlaceholder:"\uD15C\uD50C\uB9BF/ICS \uB178\uD2B8 \uD15C\uD50C\uB9BF.md"},unscheduledTasksSelector:{title:"\uC608\uC815\uB418\uC9C0 \uC54A\uC740 \uC791\uC5C5",placeholder:"\uC608\uC815\uB418\uC9C0 \uC54A\uC740 \uC791\uC5C5\uC744 \uAC80\uC0C9\uD558\uC138\uC694...",instructions:{navigate:"\uD0D0\uC0C9",schedule:"\uC608\uC815",dismiss:"\uB2EB\uAE30"}},migration:{title:"\uC0C8 \uBC18\uBCF5 \uC2DC\uC2A4\uD15C\uC73C\uB85C \uB9C8\uC774\uADF8\uB808\uC774\uC158",description:"TaskNotes\uB294 \uC774\uC81C \uBC18\uBCF5\uC5D0 \uB300\uD574 \uC5C5\uACC4 \uD45C\uC900 RRULE \uD328\uD134\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \uC774\uB97C \uD1B5\uD574 \uB354 \uBCF5\uC7A1\uD55C \uC77C\uC815\uACFC \uB2E4\uB978 \uC571\uACFC\uC758 \uD638\uD658\uC131\uC774 \uD5A5\uC0C1\uB429\uB2C8\uB2E4.",tasksFound:"\uC774\uC804 \uBC18\uBCF5 \uD328\uD134\uC744 \uAC00\uC9C4 {count}\uAC1C\uC758 \uC791\uC5C5\uC774 \uAC10\uC9C0\uB418\uC5C8\uC2B5\uB2C8\uB2E4",noMigrationNeeded:"\uB9C8\uC774\uADF8\uB808\uC774\uC158\uC774 \uD544\uC694\uD55C \uC791\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",warnings:{title:"\uC9C4\uD589\uD558\uAE30 \uC804\uC5D0:",backup:"\uB9C8\uC774\uADF8\uB808\uC774\uC158 \uC804\uC5D0 \uBCF4\uAD00\uC18C\uB97C \uBC31\uC5C5\uD558\uC138\uC694",conversion:"\uC774\uC804 \uBC18\uBCF5 \uD328\uD134\uC774 \uC0C8 \uD615\uC2DD\uC73C\uB85C \uBCC0\uD658\uB429\uB2C8\uB2E4",normalUsage:"\uB9C8\uC774\uADF8\uB808\uC774\uC158 \uC911\uC5D0\uB3C4 TaskNotes\uB97C \uC815\uC0C1\uC801\uC73C\uB85C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4",permanent:"\uC774 \uBCC0\uACBD\uC740 \uC601\uAD6C\uC801\uC774\uBA70 \uC790\uB3D9\uC73C\uB85C \uC2E4\uD589 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4"},benefits:{title:"\uC0C8 \uC2DC\uC2A4\uD15C\uC758 \uC774\uC810:",powerfulPatterns:"\uBCF5\uC7A1\uD55C \uBC18\uBCF5 \uD328\uD134 (\uC608: '\uB9E4\uC6D4 \uB450 \uBC88\uC9F8 \uD654\uC694\uC77C')",performance:"\uBC18\uBCF5 \uC791\uC5C5\uC5D0 \uB300\uD55C \uB354 \uB098\uC740 \uC131\uB2A5",compatibility:"\uB2E4\uB978 \uC571\uACFC \uD638\uD658\uB418\uB294 \uD45C\uC900 \uBC18\uBCF5 \uD615\uC2DD",nlp:"\uD5A5\uC0C1\uB41C \uC790\uC5F0\uC5B4 \uCC98\uB9AC \uC9C0\uC6D0"},progress:{title:"\uB9C8\uC774\uADF8\uB808\uC774\uC158 \uC9C4\uD589 \uC0C1\uD669",preparing:"\uB9C8\uC774\uADF8\uB808\uC774\uC158 \uC900\uBE44 \uC911...",completed:"\uB9C8\uC774\uADF8\uB808\uC774\uC158\uC774 \uC131\uACF5\uC801\uC73C\uB85C \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",failed:"\uB9C8\uC774\uADF8\uB808\uC774\uC158 \uC2E4\uD328"},buttons:{migrate:"\uB9C8\uC774\uADF8\uB808\uC774\uC158 \uC2DC\uC791",completed:"\uB2EB\uAE30"},errors:{title:"\uB9C8\uC774\uADF8\uB808\uC774\uC158 \uC911 \uC624\uB958:"},notices:{completedWithErrors:"\uC77C\uBD80 \uC624\uB958\uC640 \uD568\uAED8 \uB9C8\uC774\uADF8\uB808\uC774\uC158\uC774 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC704\uC758 \uC624\uB958 \uBAA9\uB85D\uC744 \uD655\uC778\uD558\uC138\uC694.",success:"\uBAA8\uB4E0 \uC791\uC5C5\uC774 \uC131\uACF5\uC801\uC73C\uB85C \uB9C8\uC774\uADF8\uB808\uC774\uC158\uB418\uC5C8\uC2B5\uB2C8\uB2E4!",failed:"\uB9C8\uC774\uADF8\uB808\uC774\uC158 \uC2E4\uD328. \uC790\uC138\uD55C \uB0B4\uC6A9\uC740 \uCF58\uC194\uC744 \uD655\uC778\uD558\uC138\uC694."},prompt:{message:"TaskNotes\uC5D0\uC11C \uC774\uC804 \uBC18\uBCF5 \uD615\uC2DD\uC744 \uC0AC\uC6A9\uD558\uB294 \uC791\uC5C5\uC744 \uAC10\uC9C0\uD588\uC2B5\uB2C8\uB2E4. \uC9C0\uAE08 \uC0C8 \uC2DC\uC2A4\uD15C\uC73C\uB85C \uB9C8\uC774\uADF8\uB808\uC774\uC158\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",migrateNow:"\uC9C0\uAE08 \uB9C8\uC774\uADF8\uB808\uC774\uC158",remindLater:"\uB098\uC911\uC5D0 \uC54C\uB9BC"}},task:{titlePlaceholder:"\uBB34\uC5C7\uC744 \uD574\uC57C \uD558\uB098\uC694?",titleLabel:"\uC81C\uBAA9",titleDetailedPlaceholder:"\uC791\uC5C5 \uC81C\uBAA9...",detailsLabel:"\uC138\uBD80\uC815\uBCF4",detailsPlaceholder:"\uC138\uBD80\uC815\uBCF4 \uCD94\uAC00...",projectsLabel:"\uD504\uB85C\uC81D\uD2B8",projectsAdd:"\uD504\uB85C\uC81D\uD2B8 \uCD94\uAC00",projectsTooltip:"\uD37C\uC9C0 \uAC80\uC0C9\uC744 \uC0AC\uC6A9\uD558\uC5EC \uD504\uB85C\uC81D\uD2B8 \uB178\uD2B8 \uC120\uD0DD",projectsRemoveTooltip:"\uD504\uB85C\uC81D\uD2B8 \uC81C\uAC70",contextsLabel:"\uCEE8\uD14D\uC2A4\uD2B8",contextsPlaceholder:"\uCEE8\uD14D\uC2A4\uD2B81, \uCEE8\uD14D\uC2A4\uD2B82",tagsLabel:"\uD0DC\uADF8",tagsPlaceholder:"\uD0DC\uADF81, \uD0DC\uADF82",timeEstimateLabel:"\uC2DC\uAC04 \uC608\uC0C1 (\uBD84)",timeEstimatePlaceholder:"30",unsavedChanges:{title:"\uC800\uC7A5\uB418\uC9C0 \uC54A\uC740 \uBCC0\uACBD \uC0AC\uD56D",message:"\uC800\uC7A5\uB418\uC9C0 \uC54A\uC740 \uBCC0\uACBD \uC0AC\uD56D\uC774 \uC788\uC2B5\uB2C8\uB2E4. \uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",save:"\uBCC0\uACBD \uC0AC\uD56D \uC800\uC7A5",discard:"\uBCC0\uACBD \uC0AC\uD56D \uBC84\uB9AC\uAE30",cancel:"\uACC4\uC18D \uD3B8\uC9D1"},dependencies:{blockedBy:"\uCC28\uB2E8 \uC6D0\uC778",blocking:"\uCC28\uB2E8 \uC911",placeholder:"[[\uC791\uC5C5 \uB178\uD2B8]]",addTaskButton:"\uC791\uC5C5 \uCD94\uAC00",selectTaskTooltip:"\uD37C\uC9C0 \uAC80\uC0C9\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC791\uC5C5 \uB178\uD2B8 \uC120\uD0DD",removeTaskTooltip:"\uC791\uC5C5 \uC81C\uAC70"},organization:{projects:"\uD504\uB85C\uC81D\uD2B8",subtasks:"\uD558\uC704 \uC791\uC5C5",addToProject:"\uD504\uB85C\uC81D\uD2B8\uC5D0 \uCD94\uAC00",addToProjectButton:"\uD504\uB85C\uC81D\uD2B8\uC5D0 \uCD94\uAC00",addSubtasks:"\uD558\uC704 \uC791\uC5C5 \uCD94\uAC00",addSubtasksButton:"\uD558\uC704 \uC791\uC5C5 \uCD94\uAC00",addSubtasksTooltip:"\uC774 \uC791\uC5C5\uC758 \uD558\uC704 \uC791\uC5C5\uC73C\uB85C \uB9CC\uB4E4 \uC791\uC5C5 \uC120\uD0DD",removeSubtaskTooltip:"\uD558\uC704 \uC791\uC5C5 \uC81C\uAC70",notices:{noEligibleSubtasks:"\uD558\uC704 \uC791\uC5C5\uC73C\uB85C \uC9C0\uC815\uD560 \uC218 \uC788\uB294 \uC791\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",subtaskSelectFailed:"\uD558\uC704 \uC791\uC5C5 \uC120\uD0DD\uAE30 \uC5F4\uAE30 \uC2E4\uD328"}},customFieldsLabel:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uD544\uB4DC",actions:{due:"\uB9C8\uAC10\uC77C \uC124\uC815",scheduled:"\uC608\uC815\uC77C \uC124\uC815",status:"\uC0C1\uD0DC \uC124\uC815",priority:"\uC6B0\uC120\uC21C\uC704 \uC124\uC815",recurrence:"\uBC18\uBCF5 \uC124\uC815",reminders:"\uB9AC\uB9C8\uC778\uB354 \uC124\uC815"},buttons:{openNote:"\uB178\uD2B8 \uC5F4\uAE30",save:"\uC800\uC7A5"},tooltips:{dueValue:"\uB9C8\uAC10: {value}",scheduledValue:"\uC608\uC815: {value}",statusValue:"\uC0C1\uD0DC: {value}",priorityValue:"\uC6B0\uC120\uC21C\uC704: {value}",recurrenceValue:"\uBC18\uBCF5: {value}",remindersSingle:"1\uAC1C\uC758 \uB9AC\uB9C8\uC778\uB354 \uC124\uC815\uB428",remindersPlural:"{count}\uAC1C\uC758 \uB9AC\uB9C8\uC778\uB354 \uC124\uC815\uB428"},dateMenu:{dueTitle:"\uB9C8\uAC10\uC77C \uC124\uC815",scheduledTitle:"\uC608\uC815\uC77C \uC124\uC815"},userFields:{textPlaceholder:"{field} \uC785\uB825...",numberPlaceholder:"0",datePlaceholder:"YYYY-MM-DD",listPlaceholder:"\uD56D\uBAA91, \uD56D\uBAA92, \uD56D\uBAA93",pickDate:"{field} \uB0A0\uC9DC \uC120\uD0DD"},recurrence:{daily:"\uB9E4\uC77C",weekly:"\uB9E4\uC8FC",everyTwoWeeks:"2\uC8FC\uB9C8\uB2E4",weekdays:"\uD3C9\uC77C",weeklyOn:"{days}\uB9C8\uB2E4",monthly:"\uB9E4\uC6D4",everyThreeMonths:"3\uAC1C\uC6D4\uB9C8\uB2E4",monthlyOnOrdinal:"\uB9E4\uC6D4 {ordinal}",monthlyByWeekday:"\uB9E4\uC6D4 (\uC694\uC77C \uAE30\uC900)",yearly:"\uB9E4\uB144",yearlyOn:"\uB9E4\uB144 {month} {day}",custom:"\uC0AC\uC6A9\uC790 \uC9C0\uC815",countSuffix:"{count}\uD68C",untilSuffix:"{date}\uAE4C\uC9C0",ordinal:"{number}{suffix}"}},taskSelector:{title:"\uC791\uC5C5 \uC120\uD0DD",placeholder:"\uC791\uC5C5\uC744 \uAC80\uC0C9\uD558\uC138\uC694...",instructions:{navigate:"\uD0D0\uC0C9",select:"\uC120\uD0DD",dismiss:"\uCDE8\uC18C"},notices:{noteNotFound:'"{name}" \uB178\uD2B8\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4'},dueDate:{overdue:"\uB9C8\uAC10: {date} (\uC9C0\uC5F0\uB428)",today:"\uB9C8\uAC10: \uC624\uB298"}},taskSelectorWithCreate:{title:"\uC791\uC5C5 \uB9CC\uB4E4\uAE30 \uB610\uB294 \uC5F4\uAE30",placeholder:"\uC791\uC5C5\uC744 \uAC80\uC0C9\uD558\uAC70\uB098 \uC0C8\uB85C \uB9CC\uB4E4\uB824\uBA74 \uC785\uB825\uD558\uC138\uC694...",instructions:{create:"\uC0C8 \uC791\uC5C5 \uB9CC\uB4E4\uAE30"},footer:{createLabel:" \uB9CC\uB4E4\uAE30: "},notices:{emptyQuery:"\uC791\uC5C5 \uC124\uBA85\uC744 \uC785\uB825\uD558\uC138\uC694",invalidTitle:"\uC720\uD6A8\uD55C \uC791\uC5C5 \uC81C\uBAA9\uC744 \uD30C\uC2F1\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4"}},taskCreation:{title:"\uC791\uC5C5 \uB9CC\uB4E4\uAE30",actions:{fillFromNaturalLanguage:"\uC790\uC5F0\uC5B4\uC5D0\uC11C \uC591\uC2DD \uCC44\uC6B0\uAE30",hideDetailedOptions:"\uC0C1\uC138 \uC635\uC158 \uC228\uAE30\uAE30",showDetailedOptions:"\uC0C1\uC138 \uC635\uC158 \uBCF4\uAE30"},nlPlaceholder:"\uB0B4\uC77C \uC624\uD6C4 3\uC2DC\uC5D0 \uC7A5\uBCF4\uAE30 @home #\uC2EC\uBD80\uB984",notices:{titleRequired:"\uC791\uC5C5 \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694",success:'\uC791\uC5C5 "{title}"\uC774(\uAC00) \uC131\uACF5\uC801\uC73C\uB85C \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4',successShortened:'\uC791\uC5C5 "{title}"\uC774(\uAC00) \uC131\uACF5\uC801\uC73C\uB85C \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4 (\uAE38\uC774\uB85C \uC778\uD574 \uD30C\uC77C\uBA85\uC774 \uB2E8\uCD95\uB428)',failure:"\uC791\uC5C5 \uC0DD\uC131 \uC2E4\uD328: {message}",blockingUnresolved:"\uD574\uACB0\uD560 \uC218 \uC5C6\uC74C: {entries}",openCreatedTaskFailure:"\uC791\uC5C5\uC740 \uC0DD\uC131\uB418\uC5C8\uC9C0\uB9CC \uC791\uC5C5 \uB178\uD2B8\uB97C \uC5F4 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."}},taskEdit:{title:"\uC791\uC5C5 \uD3B8\uC9D1",sections:{completions:"\uC644\uB8CC",taskInfo:"\uC791\uC5C5 \uC815\uBCF4"},metadata:{totalTrackedTime:"\uCD1D \uAE30\uB85D \uC2DC\uAC04:",due:"\uB9C8\uAC10:",scheduled:"\uC608\uC815:",created:"\uC0DD\uC131:",modified:"\uC218\uC815:",file:"\uD30C\uC77C:"},buttons:{archive:"\uBCF4\uAD00",unarchive:"\uBCF4\uAD00 \uD574\uC81C"},notices:{titleRequired:"\uC791\uC5C5 \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694",noChanges:"\uC800\uC7A5\uD560 \uBCC0\uACBD \uC0AC\uD56D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",updateSuccess:'\uC791\uC5C5 "{title}"\uC774(\uAC00) \uC131\uACF5\uC801\uC73C\uB85C \uC5C5\uB370\uC774\uD2B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4',updateFailure:"\uC791\uC5C5 \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328: {message}",dependenciesUpdateSuccess:"\uC885\uC18D\uC131\uC774 \uC5C5\uB370\uC774\uD2B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4",blockingUnresolved:"\uD574\uACB0\uD560 \uC218 \uC5C6\uC74C: {entries}",fileMissing:"\uC791\uC5C5 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: {path}",openNoteFailure:"\uC791\uC5C5 \uB178\uD2B8 \uC5F4\uAE30 \uC2E4\uD328",archiveSuccess:"\uC791\uC5C5\uC774 \uC131\uACF5\uC801\uC73C\uB85C {action}\uB418\uC5C8\uC2B5\uB2C8\uB2E4",archiveFailure:"\uC791\uC5C5 \uBCF4\uAD00 \uC2E4\uD328",deleteSuccess:'\uC791\uC5C5 "{title}"\uC774 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4',deleteFailure:"\uC791\uC5C5 \uC0AD\uC81C \uC2E4\uD328: {message}"},archiveAction:{archived:"\uBCF4\uAD00\uB428",unarchived:"\uBCF4\uAD00 \uD574\uC81C\uB428"},deleteConfirmation:{title:"\uC791\uC5C5 \uC0AD\uC81C",message:'"{title}"\uC744 \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \uC791\uC5C5 \uB178\uD2B8\uAC00 Obsidian \uD734\uC9C0\uD1B5\uC73C\uB85C \uC774\uB3D9\uB429\uB2C8\uB2E4.',confirm:"\uC791\uC5C5 \uC0AD\uC81C"}},storageLocation:{title:{migrate:"\uBF40\uBAA8\uB3C4\uB85C \uB370\uC774\uD130\uB97C \uB9C8\uC774\uADF8\uB808\uC774\uC158\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",switch:"\uB370\uC77C\uB9AC \uB178\uD2B8 \uC800\uC7A5\uC18C\uB85C \uC804\uD658\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?"},message:{migrate:"\uC774 \uC791\uC5C5\uC740 \uAE30\uC874 \uBF40\uBAA8\uB3C4\uB85C \uC138\uC158 \uB370\uC774\uD130\uB97C \uB370\uC77C\uB9AC \uB178\uD2B8 \uD504\uB860\uD2B8\uB9E4\uD130\uB85C \uB9C8\uC774\uADF8\uB808\uC774\uC158\uD569\uB2C8\uB2E4. \uB370\uC774\uD130\uB294 \uB0A0\uC9DC\uBCC4\uB85C \uADF8\uB8F9\uD654\uB418\uC5B4 \uAC01 \uB370\uC77C\uB9AC \uB178\uD2B8\uC5D0 \uC800\uC7A5\uB429\uB2C8\uB2E4.",switch:"\uBF40\uBAA8\uB3C4\uB85C \uC138\uC158 \uB370\uC774\uD130\uAC00 \uD50C\uB7EC\uADF8\uC778 \uB370\uC774\uD130 \uD30C\uC77C \uB300\uC2E0 \uB370\uC77C\uB9AC \uB178\uD2B8 \uD504\uB860\uD2B8\uB9E4\uD130\uC5D0 \uC800\uC7A5\uB429\uB2C8\uB2E4."},whatThisMeans:"\uC774\uAC83\uC774 \uC758\uBBF8\uD558\uB294 \uAC83:",bullets:{dailyNotesRequired:"\uB370\uC77C\uB9AC \uB178\uD2B8\uB294 \uCF54\uC5B4 \uB370\uC77C\uB9AC \uB178\uD2B8 \uD50C\uB7EC\uADF8\uC778\uC774\uB098 Periodic Notes\uC5D0\uC11C \uD65C\uC131\uD654\uB418\uC5B4 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4",storedInNotes:"\uB370\uC774\uD130\uAC00 \uB370\uC77C\uB9AC \uB178\uD2B8 \uD504\uB860\uD2B8\uB9E4\uD130\uC5D0 \uC800\uC7A5\uB429\uB2C8\uB2E4",migrateData:"\uAE30\uC874 \uD50C\uB7EC\uADF8\uC778 \uB370\uC774\uD130\uAC00 \uB9C8\uC774\uADF8\uB808\uC774\uC158\uB41C \uD6C4 \uC9C0\uC6CC\uC9D1\uB2C8\uB2E4",futureSessions:"\uD5A5\uD6C4 \uC138\uC158\uC740 \uB370\uC77C\uB9AC \uB178\uD2B8\uC5D0 \uC800\uC7A5\uB429\uB2C8\uB2E4",dataLongevity:"\uB178\uD2B8\uC640 \uD568\uAED8 \uB354 \uB098\uC740 \uB370\uC774\uD130 \uC218\uBA85\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4"},finalNote:{migrate:"\u26A0\uFE0F \uD544\uC694\uD55C \uACBD\uC6B0 \uBC31\uC5C5\uC774 \uC788\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694. \uC774 \uBCC0\uACBD\uC740 \uC790\uB3D9\uC73C\uB85C \uC2E4\uD589 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",switch:"\uD5A5\uD6C4 \uC5B8\uC81C\uB4E0\uC9C0 \uD50C\uB7EC\uADF8\uC778 \uC800\uC7A5\uC18C\uB85C \uB2E4\uC2DC \uC804\uD658\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."},buttons:{migrate:"\uB370\uC774\uD130 \uB9C8\uC774\uADF8\uB808\uC774\uC158",switch:"\uC800\uC7A5\uC18C \uC804\uD658"}},dueDate:{title:"\uB9C8\uAC10\uC77C \uC124\uC815",taskLabel:"\uC791\uC5C5: {title}",sections:{dateTime:"\uB9C8\uAC10\uC77C \uBC0F \uC2DC\uAC04",quickOptions:"\uBE60\uB978 \uC635\uC158"},descriptions:{dateTime:"\uC774 \uC791\uC5C5\uC744 \uC644\uB8CC\uD574\uC57C \uD558\uB294 \uC2DC\uAC04 \uC124\uC815"},inputs:{date:{ariaLabel:"\uC791\uC5C5 \uB9C8\uAC10\uC77C",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"\uC791\uC5C5 \uB9C8\uAC10 \uC2DC\uAC04 (\uC120\uD0DD\uC0AC\uD56D)",placeholder:"HH:MM"}},quickOptions:{today:"\uC624\uB298",todayAriaLabel:"\uB9C8\uAC10\uC77C\uC744 \uC624\uB298\uB85C \uC124\uC815",tomorrow:"\uB0B4\uC77C",tomorrowAriaLabel:"\uB9C8\uAC10\uC77C\uC744 \uB0B4\uC77C\uB85C \uC124\uC815",nextWeek:"\uB2E4\uC74C \uC8FC",nextWeekAriaLabel:"\uB9C8\uAC10\uC77C\uC744 \uB2E4\uC74C \uC8FC\uB85C \uC124\uC815",now:"\uC9C0\uAE08",nowAriaLabel:"\uB9C8\uAC10\uC77C\uACFC \uC2DC\uAC04\uC744 \uC9C0\uAE08\uC73C\uB85C \uC124\uC815",clear:"\uC9C0\uC6B0\uAE30",clearAriaLabel:"\uB9C8\uAC10\uC77C \uC9C0\uC6B0\uAE30"},errors:{invalidDateTime:"\uC720\uD6A8\uD55C \uB0A0\uC9DC \uBC0F \uC2DC\uAC04 \uD615\uC2DD\uC744 \uC785\uB825\uD558\uC138\uC694",updateFailed:"\uB9C8\uAC10\uC77C \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694."}},scheduledDate:{title:"\uC608\uC815\uC77C \uC124\uC815",taskLabel:"\uC791\uC5C5: {title}",sections:{dateTime:"\uC608\uC815\uC77C \uBC0F \uC2DC\uAC04",quickOptions:"\uBE60\uB978 \uC635\uC158"},descriptions:{dateTime:"\uC774 \uC791\uC5C5\uC744 \uC218\uD589\uD560 \uC2DC\uAC04 \uC124\uC815"},inputs:{date:{ariaLabel:"\uC791\uC5C5 \uC608\uC815\uC77C",placeholder:"YYYY-MM-DD"},time:{ariaLabel:"\uC791\uC5C5 \uC608\uC815 \uC2DC\uAC04 (\uC120\uD0DD\uC0AC\uD56D)",placeholder:"HH:MM"}},quickOptions:{today:"\uC624\uB298",todayAriaLabel:"\uC608\uC815\uC77C\uC744 \uC624\uB298\uB85C \uC124\uC815",tomorrow:"\uB0B4\uC77C",tomorrowAriaLabel:"\uC608\uC815\uC77C\uC744 \uB0B4\uC77C\uB85C \uC124\uC815",nextWeek:"\uB2E4\uC74C \uC8FC",nextWeekAriaLabel:"\uC608\uC815\uC77C\uC744 \uB2E4\uC74C \uC8FC\uB85C \uC124\uC815",now:"\uC9C0\uAE08",nowAriaLabel:"\uC608\uC815\uC77C\uACFC \uC2DC\uAC04\uC744 \uC9C0\uAE08\uC73C\uB85C \uC124\uC815",clear:"\uC9C0\uC6B0\uAE30",clearAriaLabel:"\uC608\uC815\uC77C \uC9C0\uC6B0\uAE30"},errors:{invalidDateTime:"\uC720\uD6A8\uD55C \uB0A0\uC9DC \uBC0F \uC2DC\uAC04 \uD615\uC2DD\uC744 \uC785\uB825\uD558\uC138\uC694",updateFailed:"\uC608\uC815\uC77C \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694."}},timeEntryEditor:{title:"\uC2DC\uAC04 \uAE30\uB85D - {taskTitle}",addEntry:"\uC2DC\uAC04 \uAE30\uB85D \uCD94\uAC00",noEntries:"\uC544\uC9C1 \uC2DC\uAC04 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",deleteEntry:"\uAE30\uB85D \uC0AD\uC81C",startTime:"\uC2DC\uC791 \uC2DC\uAC04",endTime:"\uC885\uB8CC \uC2DC\uAC04 (\uC9C4\uD589 \uC911\uC774\uBA74 \uBE44\uC6CC\uB450\uC138\uC694)",duration:"\uAE30\uAC04 (\uBD84)",durationDesc:"\uACC4\uC0B0\uB41C \uAE30\uAC04 \uC7AC\uC815\uC758",durationPlaceholder:"\uAE30\uAC04\uC744 \uBD84 \uB2E8\uC704\uB85C \uC785\uB825",description:"\uC124\uBA85",descriptionPlaceholder:"\uBB34\uC5C7\uC744 \uC791\uC5C5\uD588\uB098\uC694?",calculatedDuration:"\uACC4\uC0B0\uB428: {minutes}\uBD84",totalTime:"\uCD1D {hours}\uC2DC\uAC04 {minutes}\uBD84",totalMinutes:"\uCD1D {minutes}\uBD84",saved:"\uC2DC\uAC04 \uAE30\uB85D\uC774 \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4",saveFailed:"\uC2DC\uAC04 \uAE30\uB85D \uC800\uC7A5 \uC2E4\uD328",openFailed:"\uC2DC\uAC04 \uAE30\uB85D \uD3B8\uC9D1\uAE30 \uC5F4\uAE30 \uC2E4\uD328",noTasksWithEntries:"\uD3B8\uC9D1\uD560 \uC2DC\uAC04 \uAE30\uB85D\uC774 \uC788\uB294 \uC791\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",validation:{missingStartTime:"\uC2DC\uC791 \uC2DC\uAC04\uC774 \uD544\uC694\uD569\uB2C8\uB2E4",endBeforeStart:"\uC885\uB8CC \uC2DC\uAC04\uC740 \uC2DC\uC791 \uC2DC\uAC04 \uC774\uD6C4\uC5EC\uC57C \uD569\uB2C8\uB2E4"}},timeTracking:{noTasksAvailable:"\uC2DC\uAC04\uC744 \uCD94\uC801\uD560 \uC218 \uC788\uB294 \uC791\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",started:"{taskTitle}\uC5D0 \uB300\uD55C \uC2DC\uAC04 \uCD94\uC801\uC774 \uC2DC\uC791\uB418\uC5C8\uC2B5\uB2C8\uB2E4",startFailed:"\uC2DC\uAC04 \uCD94\uC801 \uC2DC\uC791 \uC2E4\uD328"},timeEntry:{mustHaveSpecificTime:"\uC2DC\uAC04 \uAE30\uB85D\uC5D0\uB294 \uD2B9\uC815 \uC2DC\uAC04\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. \uC8FC\uAC04 \uB610\uB294 \uC77C\uAC04 \uBDF0\uC5D0\uC11C \uC2DC\uAC04 \uBC94\uC704\uB97C \uC120\uD0DD\uD558\uC138\uC694.",noTasksAvailable:"\uC2DC\uAC04 \uAE30\uB85D\uC744 \uC0DD\uC131\uD560 \uC218 \uC788\uB294 \uC791\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",created:"{taskTitle}\uC5D0 \uB300\uD55C \uC2DC\uAC04 \uAE30\uB85D\uC774 \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4 ({duration}\uBD84)",createFailed:"\uC2DC\uAC04 \uAE30\uB85D \uC0DD\uC131 \uC2E4\uD328"}},contextMenus:{task:{status:"\uC0C1\uD0DC",statusSelected:"\u2713 {label}",priority:"\uC6B0\uC120\uC21C\uC704",prioritySelected:"\u2713 {label}",dueDate:"\uB9C8\uAC10\uC77C",scheduledDate:"\uC608\uC815\uC77C",customDates:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uB0A0\uC9DC",reminders:"\uB9AC\uB9C8\uC778\uB354",remindBeforeDue:"\uB9C8\uAC10 \uC804 \uC54C\uB9BC...",remindBeforeScheduled:"\uC608\uC815 \uC804 \uC54C\uB9BC...",manageReminders:"\uBAA8\uB4E0 \uB9AC\uB9C8\uC778\uB354 \uAD00\uB9AC...",clearReminders:"\uBAA8\uB4E0 \uB9AC\uB9C8\uC778\uB354 \uC9C0\uC6B0\uAE30",startTimeTracking:"\uC2DC\uAC04 \uCD94\uC801 \uC2DC\uC791",stopTimeTracking:"\uC2DC\uAC04 \uCD94\uC801 \uC911\uC9C0",editTimeEntries:"\uC2DC\uAC04 \uAE30\uB85D \uD3B8\uC9D1",archive:"\uBCF4\uAD00",unarchive:"\uBCF4\uAD00 \uD574\uC81C",openNote:"\uB178\uD2B8 \uC5F4\uAE30",openNoteInNewTab:"\uC0C8 \uD0ED\uC5D0\uC11C \uB178\uD2B8 \uC5F4\uAE30",copyTitle:"\uC791\uC5C5 \uC81C\uBAA9 \uBCF5\uC0AC",quickActions:"\uBE60\uB978 \uC791\uC5C5",noteActions:"\uB178\uD2B8 \uC791\uC5C5",rename:"\uC774\uB984 \uBCC0\uACBD",renameTitle:"\uD30C\uC77C \uC774\uB984 \uBCC0\uACBD",renamePlaceholder:"\uC0C8 \uC774\uB984 \uC785\uB825",delete:"\uC0AD\uC81C",deleteTitle:"\uD30C\uC77C \uC0AD\uC81C",deleteMessage:'"{name}"\uC744(\uB97C) \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?',deleteConfirm:"\uC0AD\uC81C",copyPath:"\uACBD\uB85C \uBCF5\uC0AC",copyUrl:"Obsidian URL \uBCF5\uC0AC",showInExplorer:"\uD30C\uC77C \uD0D0\uC0C9\uAE30\uC5D0\uC11C \uBCF4\uAE30",addToCalendar:"\uCE98\uB9B0\uB354\uC5D0 \uCD94\uAC00",calendar:{google:"Google \uCE98\uB9B0\uB354",outlook:"Outlook \uCE98\uB9B0\uB354",yahoo:"Yahoo \uCE98\uB9B0\uB354",downloadIcs:".ics \uD30C\uC77C \uB2E4\uC6B4\uB85C\uB4DC",syncToGoogle:"Google \uCE98\uB9B0\uB354\uC5D0 \uB3D9\uAE30\uD654",syncToGoogleNotConfigured:"Google \uCE98\uB9B0\uB354 \uB3D9\uAE30\uD654\uAC00 \uAD6C\uC131\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4",syncToGoogleSuccess:"\uC791\uC5C5\uC774 Google \uCE98\uB9B0\uB354\uC5D0 \uB3D9\uAE30\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4",syncToGoogleFailed:"Google \uCE98\uB9B0\uB354 \uB3D9\uAE30\uD654 \uC2E4\uD328"},recurrence:"\uBC18\uBCF5",clearRecurrence:"\uBC18\uBCF5 \uC9C0\uC6B0\uAE30",customRecurrence:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uBC18\uBCF5...",createSubtask:"\uD558\uC704 \uC791\uC5C5 \uB9CC\uB4E4\uAE30",dependencies:{title:"\uC885\uC18D\uC131",addBlockedBy:'"\uCC28\uB2E8 \uC6D0\uC778" \uCD94\uAC00...',addBlockedByTitle:"\uC774 \uC791\uC5C5\uC774 \uC885\uC18D\uD558\uB294 \uC791\uC5C5 \uCD94\uAC00",addBlocking:'"\uCC28\uB2E8 \uC911" \uCD94\uAC00...',addBlockingTitle:"\uC774 \uC791\uC5C5\uC774 \uCC28\uB2E8\uD558\uB294 \uC791\uC5C5 \uCD94\uAC00",removeBlockedBy:"\uCC28\uB2E8 \uC6D0\uC778 \uC81C\uAC70...",removeBlocking:"\uCC28\uB2E8 \uC911 \uC81C\uAC70...",unknownDependency:"\uC54C \uC218 \uC5C6\uC74C",inputPlaceholder:"[[\uC791\uC5C5 \uB178\uD2B8]]",notices:{noEntries:"\uCD5C\uC18C \uD558\uB098\uC758 \uC791\uC5C5\uC744 \uC785\uB825\uD558\uC138\uC694",blockedByAdded:"{count}\uAC1C\uC758 \uC885\uC18D\uC131\uC774 \uCD94\uAC00\uB418\uC5C8\uC2B5\uB2C8\uB2E4",blockedByRemoved:"\uC885\uC18D\uC131\uC774 \uC81C\uAC70\uB418\uC5C8\uC2B5\uB2C8\uB2E4",blockingAdded:"{count}\uAC1C\uC758 \uC885\uC18D \uC791\uC5C5\uC774 \uCD94\uAC00\uB418\uC5C8\uC2B5\uB2C8\uB2E4",blockingRemoved:"\uC885\uC18D \uC791\uC5C5\uC774 \uC81C\uAC70\uB418\uC5C8\uC2B5\uB2C8\uB2E4",unresolved:"\uD574\uACB0\uD560 \uC218 \uC5C6\uC74C: {entries}",noEligibleTasks:"\uC77C\uCE58\uD558\uB294 \uC791\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",updateFailed:"\uC885\uC18D\uC131 \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328"}},organization:{title:"\uC870\uC9C1",projects:"\uD504\uB85C\uC81D\uD2B8",addToProject:"\uD504\uB85C\uC81D\uD2B8\uC5D0 \uCD94\uAC00...",subtasks:"\uD558\uC704 \uC791\uC5C5",addSubtasks:"\uD558\uC704 \uC791\uC5C5 \uCD94\uAC00...",notices:{alreadyInProject:"\uC791\uC5C5\uC774 \uC774\uBBF8 \uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC788\uC2B5\uB2C8\uB2E4",alreadySubtask:"\uC791\uC5C5\uC774 \uC774\uBBF8 \uC774 \uC791\uC5C5\uC758 \uD558\uC704 \uC791\uC5C5\uC785\uB2C8\uB2E4",addedToProject:"\uD504\uB85C\uC81D\uD2B8\uC5D0 \uCD94\uAC00\uB428: {project}",addedAsSubtask:"{subtask}\uC774(\uAC00) {parent}\uC758 \uD558\uC704 \uC791\uC5C5\uC73C\uB85C \uCD94\uAC00\uB418\uC5C8\uC2B5\uB2C8\uB2E4",addToProjectFailed:"\uD504\uB85C\uC81D\uD2B8\uC5D0 \uC791\uC5C5 \uCD94\uAC00 \uC2E4\uD328",addAsSubtaskFailed:"\uD558\uC704 \uC791\uC5C5\uC73C\uB85C \uC791\uC5C5 \uCD94\uAC00 \uC2E4\uD328",projectSelectFailed:"\uD504\uB85C\uC81D\uD2B8 \uC120\uD0DD\uAE30 \uC5F4\uAE30 \uC2E4\uD328",subtaskSelectFailed:"\uD558\uC704 \uC791\uC5C5 \uC120\uD0DD\uAE30 \uC5F4\uAE30 \uC2E4\uD328",noEligibleSubtasks:"\uD558\uC704 \uC791\uC5C5\uC73C\uB85C \uC9C0\uC815\uD560 \uC218 \uC788\uB294 \uC791\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",currentTaskNotFound:"\uD604\uC7AC \uC791\uC5C5 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",updateContextsFailed:"\uCEE8\uD14D\uC2A4\uD2B8 \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328"},contexts:"\uCEE8\uD14D\uC2A4\uD2B8",addContext:"\uCEE8\uD14D\uC2A4\uD2B8 \uCD94\uAC00\u2026",contextPlaceholder:"\uCEE8\uD14D\uC2A4\uD2B8",contextSelected:"\u2713 {context}",clearContexts:"\uCEE8\uD14D\uC2A4\uD2B8 \uC9C0\uC6B0\uAE30"},subtasks:{loading:"\uD558\uC704 \uC791\uC5C5 \uB85C\uB529 \uC911...",noSubtasks:"\uD558\uC704 \uC791\uC5C5\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",loadFailed:"\uD558\uC704 \uC791\uC5C5 \uB85C\uB4DC \uC2E4\uD328"},markComplete:"\uC774 \uB0A0\uC9DC\uC5D0 \uC644\uB8CC\uB85C \uD45C\uC2DC",markIncomplete:"\uC774 \uB0A0\uC9DC\uC5D0 \uBBF8\uC644\uB8CC\uB85C \uD45C\uC2DC",skipInstance:"\uC778\uC2A4\uD134\uC2A4 \uAC74\uB108\uB6F0\uAE30",unskipInstance:"\uC778\uC2A4\uD134\uC2A4 \uAC74\uB108\uB6F0\uAE30 \uCDE8\uC18C",quickReminders:{atTime:"\uC774\uBCA4\uD2B8 \uC2DC\uAC04\uC5D0",fiveMinutes:"5\uBD84 \uC804",fifteenMinutes:"15\uBD84 \uC804",oneHour:"1\uC2DC\uAC04 \uC804",oneDay:"1\uC77C \uC804"},notices:{toggleCompletionFailure:"\uBC18\uBCF5 \uC791\uC5C5 \uC644\uB8CC \uD1A0\uAE00 \uC2E4\uD328: {message}",toggleSkipFailure:"\uBC18\uBCF5 \uC791\uC5C5 \uAC74\uB108\uB6F0\uAE30 \uD1A0\uAE00 \uC2E4\uD328: {message}",updateDueDateFailure:"\uC791\uC5C5 \uB9C8\uAC10\uC77C \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328: {message}",updateScheduledFailure:"\uC791\uC5C5 \uC608\uC815\uC77C \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328: {message}",updateCustomDateFailure:"{field} \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328: {message}",updateRemindersFailure:"\uB9AC\uB9C8\uC778\uB354 \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328",clearRemindersFailure:"\uB9AC\uB9C8\uC778\uB354 \uC9C0\uC6B0\uAE30 \uC2E4\uD328",addReminderFailure:"\uB9AC\uB9C8\uC778\uB354 \uCD94\uAC00 \uC2E4\uD328",archiveFailure:"\uC791\uC5C5 \uBCF4\uAD00 \uD1A0\uAE00 \uC2E4\uD328: {message}",copyTitleSuccess:"\uC791\uC5C5 \uC81C\uBAA9\uC774 \uD074\uB9BD\uBCF4\uB4DC\uC5D0 \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",copyFailure:"\uD074\uB9BD\uBCF4\uB4DC\uC5D0 \uBCF5\uC0AC \uC2E4\uD328",renameSuccess:'"{name}"(\uC73C)\uB85C \uC774\uB984\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4',renameFailure:"\uD30C\uC77C \uC774\uB984 \uBCC0\uACBD \uC2E4\uD328",copyPathSuccess:"\uD30C\uC77C \uACBD\uB85C\uAC00 \uD074\uB9BD\uBCF4\uB4DC\uC5D0 \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",copyUrlSuccess:"Obsidian URL\uC774 \uD074\uB9BD\uBCF4\uB4DC\uC5D0 \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",updateRecurrenceFailure:"\uC791\uC5C5 \uBC18\uBCF5 \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328: {message}",updateTagsFailed:"\uD0DC\uADF8 \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328"},tags:"\uD0DC\uADF8",addTag:"\uD0DC\uADF8 \uCD94\uAC00\u2026",removeTag:"{tag} \uC81C\uAC70",removeTagInput:"\uD0DC\uADF8 \uC81C\uAC70\u2026",tagPlaceholder:"\uD0DC\uADF8 \uB610\uB294 #\uD0DC\uADF8",clearTags:"\uD0DC\uADF8 \uC9C0\uC6B0\uAE30"},priority:{clearPriority:"\uC6B0\uC120\uC21C\uC704 \uC9C0\uC6B0\uAE30"},ics:{showDetails:"\uC138\uBD80\uC815\uBCF4 \uBCF4\uAE30",createTask:"\uC774\uBCA4\uD2B8\uC5D0\uC11C \uC791\uC5C5 \uB9CC\uB4E4\uAE30",createNote:"\uC774\uBCA4\uD2B8\uC5D0\uC11C \uB178\uD2B8 \uB9CC\uB4E4\uAE30",linkNote:"\uAE30\uC874 \uB178\uD2B8 \uC5F0\uACB0",copyTitle:"\uC81C\uBAA9 \uBCF5\uC0AC",copyLocation:"\uC704\uCE58 \uBCF5\uC0AC",copyUrl:"URL \uBCF5\uC0AC",copyMarkdown:"\uB9C8\uD06C\uB2E4\uC6B4\uC73C\uB85C \uBCF5\uC0AC",subscriptionUnknown:"\uC54C \uC218 \uC5C6\uB294 \uCE98\uB9B0\uB354",notices:{copyTitleSuccess:"\uC774\uBCA4\uD2B8 \uC81C\uBAA9\uC774 \uD074\uB9BD\uBCF4\uB4DC\uC5D0 \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",copyLocationSuccess:"\uC704\uCE58\uAC00 \uD074\uB9BD\uBCF4\uB4DC\uC5D0 \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",copyUrlSuccess:"\uC774\uBCA4\uD2B8 URL\uC774 \uD074\uB9BD\uBCF4\uB4DC\uC5D0 \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",copyMarkdownSuccess:"\uC774\uBCA4\uD2B8 \uC138\uBD80\uC815\uBCF4\uAC00 \uB9C8\uD06C\uB2E4\uC6B4\uC73C\uB85C \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",copyFailure:"\uD074\uB9BD\uBCF4\uB4DC\uC5D0 \uBCF5\uC0AC \uC2E4\uD328",taskCreated:"\uC791\uC5C5 \uC0DD\uC131\uB428: {title}",taskCreateFailure:"\uC774\uBCA4\uD2B8\uC5D0\uC11C \uC791\uC5C5 \uC0DD\uC131 \uC2E4\uD328",noteCreated:"\uB178\uD2B8\uAC00 \uC131\uACF5\uC801\uC73C\uB85C \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4",creationFailure:"\uC0DD\uC131 \uBAA8\uB2EC \uC5F4\uAE30 \uC2E4\uD328",linkSuccess:'\uB178\uD2B8 "{name}"\uC774(\uAC00) \uC774\uBCA4\uD2B8\uC5D0 \uC5F0\uACB0\uB418\uC5C8\uC2B5\uB2C8\uB2E4',linkFailure:"\uB178\uD2B8 \uC5F0\uACB0 \uC2E4\uD328",linkSelectionFailure:"\uB178\uD2B8 \uC120\uD0DD \uC5F4\uAE30 \uC2E4\uD328"},markdown:{titleFallback:"\uC81C\uBAA9 \uC5C6\uB294 \uC774\uBCA4\uD2B8",calendar:"**\uCE98\uB9B0\uB354:** {value}",date:"**\uB0A0\uC9DC \uBC0F \uC2DC\uAC04:** {value}",location:"**\uC704\uCE58:** {value}",descriptionHeading:"### \uC124\uBA85",url:"**URL:** {value}",at:" {time}"}},date:{increment:{plusOneDay:"+1\uC77C",minusOneDay:"-1\uC77C",plusOneWeek:"+1\uC8FC",minusOneWeek:"-1\uC8FC"},basic:{today:"\uC624\uB298",tomorrow:"\uB0B4\uC77C",thisWeekend:"\uC774\uBC88 \uC8FC\uB9D0",nextWeek:"\uB2E4\uC74C \uC8FC",nextMonth:"\uB2E4\uC74C \uB2EC"},weekdaysLabel:"\uD3C9\uC77C",selected:"\u2713 {label}",pickDateTime:"\uB0A0\uC9DC \uBC0F \uC2DC\uAC04 \uC120\uD0DD...",clearDate:"\uB0A0\uC9DC \uC9C0\uC6B0\uAE30",modal:{title:"\uB0A0\uC9DC \uBC0F \uC2DC\uAC04 \uC124\uC815",dateLabel:"\uB0A0\uC9DC",timeLabel:"\uC2DC\uAC04 (\uC120\uD0DD\uC0AC\uD56D)",select:"\uC120\uD0DD"}}},services:{pomodoro:{notices:{alreadyRunning:"\uBF40\uBAA8\uB3C4\uB85C\uAC00 \uC774\uBBF8 \uC2E4\uD589 \uC911\uC785\uB2C8\uB2E4",resumeCurrentSession:"\uC0C8 \uC138\uC158\uC744 \uC2DC\uC791\uD558\uB294 \uB300\uC2E0 \uD604\uC7AC \uC138\uC158\uC744 \uC7AC\uAC1C\uD558\uC138\uC694",timerAlreadyRunning:"\uD0C0\uC774\uBA38\uAC00 \uC774\uBBF8 \uC2E4\uD589 \uC911\uC785\uB2C8\uB2E4",resumeSessionInstead:"\uC0C8 \uC138\uC158\uC744 \uC2DC\uC791\uD558\uB294 \uB300\uC2E0 \uD604\uC7AC \uC138\uC158\uC744 \uC7AC\uAC1C\uD558\uC138\uC694",shortBreakStarted:"\uC9E7\uC740 \uD734\uC2DD\uC774 \uC2DC\uC791\uB418\uC5C8\uC2B5\uB2C8\uB2E4",longBreakStarted:"\uAE34 \uD734\uC2DD\uC774 \uC2DC\uC791\uB418\uC5C8\uC2B5\uB2C8\uB2E4",paused:"\uBF40\uBAA8\uB3C4\uB85C \uC77C\uC2DC \uC815\uC9C0\uB428",resumed:"\uBF40\uBAA8\uB3C4\uB85C \uC7AC\uAC1C\uB428",stoppedAndReset:"\uBF40\uBAA8\uB3C4\uB85C\uAC00 \uC911\uC9C0\uB418\uACE0 \uCD08\uAE30\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4",migrationSuccess:"{count}\uAC1C\uC758 \uBF40\uBAA8\uB3C4\uB85C \uC138\uC158\uC774 \uB370\uC77C\uB9AC \uB178\uD2B8\uB85C \uB9C8\uC774\uADF8\uB808\uC774\uC158\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",migrationFailure:"\uBF40\uBAA8\uB3C4\uB85C \uB370\uC774\uD130 \uB9C8\uC774\uADF8\uB808\uC774\uC158 \uC2E4\uD328. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uAC70\uB098 \uCF58\uC194\uC5D0\uC11C \uC790\uC138\uD55C \uB0B4\uC6A9\uC744 \uD655\uC778\uD558\uC138\uC694."}},icsSubscription:{notices:{calendarNotFound:'\uCE98\uB9B0\uB354 "{name}"\uC744(\uB97C) \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4 (404). ICS URL\uC774 \uC62C\uBC14\uB974\uACE0 \uCE98\uB9B0\uB354\uAC00 \uACF5\uAC1C\uC801\uC73C\uB85C \uC811\uADFC \uAC00\uB2A5\uD55C\uC9C0 \uD655\uC778\uD558\uC138\uC694.',calendarAccessDenied:'\uCE98\uB9B0\uB354 "{name}" \uC561\uC138\uC2A4\uAC00 \uAC70\uBD80\uB418\uC5C8\uC2B5\uB2C8\uB2E4 (500). Microsoft Outlook \uC11C\uBC84 \uC81C\uD55C \uB54C\uBB38\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uCE98\uB9B0\uB354 \uC124\uC815\uC5D0\uC11C ICS URL\uC744 \uB2E4\uC2DC \uC0DD\uC131\uD574 \uBCF4\uC138\uC694.',fetchRemoteFailed:'\uC6D0\uACA9 \uCE98\uB9B0\uB354 "{name}" \uAC00\uC838\uC624\uAE30 \uC2E4\uD328: {error}',readLocalFailed:'\uB85C\uCEEC \uCE98\uB9B0\uB354 "{name}" \uC77D\uAE30 \uC2E4\uD328: {error}'}},calendarExport:{notices:{generateLinkFailed:"\uCE98\uB9B0\uB354 \uB9C1\uD06C \uC0DD\uC131 \uC2E4\uD328",noTasksToExport:"\uB0B4\uBCF4\uB0BC \uC791\uC5C5\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",downloadSuccess:"{count}\uAC1C\uC758 \uC791\uC5C5\uC774 \uD3EC\uD568\uB41C {filename}\uC774(\uAC00) \uB2E4\uC6B4\uB85C\uB4DC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",downloadFailed:"\uCE98\uB9B0\uB354 \uD30C\uC77C \uB2E4\uC6B4\uB85C\uB4DC \uC2E4\uD328",singleDownloadSuccess:"{filename}\uC774(\uAC00) \uB2E4\uC6B4\uB85C\uB4DC\uB418\uC5C8\uC2B5\uB2C8\uB2E4"}},filter:{groupLabels:{noProject:"\uD504\uB85C\uC81D\uD2B8 \uC5C6\uC74C",noTags:"\uD0DC\uADF8 \uC5C6\uC74C",invalidDate:"\uC798\uBABB\uB41C \uB0A0\uC9DC",due:{overdue:"\uC9C0\uC5F0\uB428",today:"\uC624\uB298",tomorrow:"\uB0B4\uC77C",nextSevenDays:"\uB2E4\uC74C 7\uC77C",later:"\uB098\uC911\uC5D0",none:"\uB9C8\uAC10\uC77C \uC5C6\uC74C"},scheduled:{past:"\uACFC\uAC70 \uC608\uC815",today:"\uC624\uB298",tomorrow:"\uB0B4\uC77C",nextSevenDays:"\uB2E4\uC74C 7\uC77C",later:"\uB098\uC911\uC5D0",none:"\uC608\uC815\uC77C \uC5C6\uC74C"}},errors:{noDatesProvided:"\uB0A0\uC9DC\uAC00 \uC81C\uACF5\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4"},folders:{root:"(\uB8E8\uD2B8)"}},instantTaskConvert:{notices:{noCheckboxTasks:"\uD604\uC7AC \uB178\uD2B8\uC5D0\uC11C \uCCB4\uD06C\uBC15\uC2A4 \uC791\uC5C5\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",convertingTasks:"{count}\uAC1C\uC758 \uC791\uC5C5\uC744 \uBCC0\uD658 \uC911...",conversionSuccess:"\u2705 {count}\uAC1C\uC758 \uC791\uC5C5\uC774 TaskNotes\uB85C \uC131\uACF5\uC801\uC73C\uB85C \uBCC0\uD658\uB418\uC5C8\uC2B5\uB2C8\uB2E4!",partialConversion:"{successCount}\uAC1C\uC758 \uC791\uC5C5\uC774 \uBCC0\uD658\uB418\uC5C8\uC2B5\uB2C8\uB2E4. {failureCount}\uAC1C \uC2E4\uD328.",batchConversionFailed:"\uC77C\uAD04 \uBCC0\uD658 \uC218\uD589 \uC2E4\uD328. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694.",invalidParameters:"\uC798\uBABB\uB41C \uC785\uB825 \uB9E4\uAC1C\uBCC0\uC218.",emptyLine:"\uD604\uC7AC \uC904\uC774 \uBE44\uC5B4 \uC788\uAC70\uB098 \uC720\uD6A8\uD55C \uCF58\uD150\uCE20\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",parseError:"\uC791\uC5C5 \uD30C\uC2F1 \uC624\uB958: {error}",invalidTaskData:"\uC798\uBABB\uB41C \uC791\uC5C5 \uB370\uC774\uD130.",replaceLineFailed:"\uC791\uC5C5 \uC904 \uAD50\uCCB4 \uC2E4\uD328.",conversionComplete:"\uC791\uC5C5 \uBCC0\uD658\uB428: {title}",conversionCompleteShortened:'\uC791\uC5C5 \uBCC0\uD658\uB428: "{title}" (\uAE38\uC774\uB85C \uC778\uD574 \uD30C\uC77C\uBA85\uC774 \uB2E8\uCD95\uB428)',fileExists:"\uC774 \uC774\uB984\uC758 \uD30C\uC77C\uC774 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uAC70\uB098 \uC791\uC5C5 \uC774\uB984\uC744 \uBCC0\uACBD\uD558\uC138\uC694.",conversionFailed:"\uC791\uC5C5 \uBCC0\uD658 \uC2E4\uD328. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694."}},icsNote:{notices:{templateNotFound:"\uD15C\uD50C\uB9BF\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: {path}",templateProcessError:"\uD15C\uD50C\uB9BF \uCC98\uB9AC \uC911 \uC624\uB958: {template}",linkedToEvent:"\uB178\uD2B8\uAC00 ICS \uC774\uBCA4\uD2B8\uC5D0 \uC5F0\uACB0\uB418\uC5C8\uC2B5\uB2C8\uB2E4: {title}"}},task:{notices:{templateNotFound:"\uC791\uC5C5 \uBCF8\uBB38 \uD15C\uD50C\uB9BF\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: {path}",templateReadError:"\uC791\uC5C5 \uBCF8\uBB38 \uD15C\uD50C\uB9BF \uC77D\uAE30 \uC624\uB958: {template}",occurrenceTemplateNotFound:"\uBC1C\uC0DD \uB178\uD2B8 \uD15C\uD50C\uB9BF\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: {path}",occurrenceTemplateReadError:"\uBC1C\uC0DD \uB178\uD2B8 \uD15C\uD50C\uB9BF \uC77D\uAE30 \uC624\uB958: {template}",moveTaskFailed:"{operation} \uC791\uC5C5 \uC774\uB3D9 \uC2E4\uD328: {error}"}},autoExport:{notices:{exportFailed:"TaskNotes \uC790\uB3D9 \uB0B4\uBCF4\uB0B4\uAE30 \uC2E4\uD328: {error}"}}},ui:{icsCard:{untitledEvent:"\uC81C\uBAA9 \uC5C6\uB294 \uC774\uBCA4\uD2B8",allDay:"\uC885\uC77C",calendarEvent:"\uCE98\uB9B0\uB354 \uC774\uBCA4\uD2B8",calendarFallback:"\uCE98\uB9B0\uB354"},noteCard:{createdLabel:"\uC0DD\uC131:",dailyBadge:"\uB370\uC77C\uB9AC",dailyTooltip:"\uB370\uC77C\uB9AC \uB178\uD2B8"},taskCard:{labels:{due:"\uB9C8\uAC10\uC77C",scheduled:"\uC608\uC815\uC77C",recurrence:"\uBC18\uBCF5",completed:"\uC644\uB8CC",created:"\uC0DD\uC131\uC77C",modified:"\uC218\uC815\uC77C",blocked:"\uCC28\uB2E8\uB428",blocking:"\uCC28\uB2E8 \uC911"},blockedBadge:"\uCC28\uB2E8\uB428",blockedBadgeTooltip:"\uC774 \uC791\uC5C5\uC740 \uB2E4\uB978 \uC791\uC5C5\uC744 \uAE30\uB2E4\uB9AC\uACE0 \uC788\uC2B5\uB2C8\uB2E4",blockingBadge:"\uCC28\uB2E8 \uC911",blockingBadgeTooltip:"\uC774 \uC791\uC5C5\uC774 \uB2E4\uB978 \uC791\uC5C5\uC744 \uCC28\uB2E8\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4",blockingToggle:"{count}\uAC1C\uC758 \uC791\uC5C5\uC744 \uCC28\uB2E8 \uC911",priorityAriaLabel:"\uC6B0\uC120\uC21C\uC704: {label}",taskOptions:"\uC791\uC5C5 \uC635\uC158",recurrenceTooltip:"{label}: {value}",reminderTooltipOne:"\uC54C\uB9BC 1\uAC1C \uC124\uC815\uB428 (\uAD00\uB9AC\uD558\uB824\uBA74 \uD074\uB9AD)",reminderTooltipMany:"{count}\uAC1C \uC54C\uB9BC \uC124\uC815\uB428 (\uAD00\uB9AC\uD558\uB824\uBA74 \uD074\uB9AD)",projectTooltip:"\uC774 \uC791\uC5C5\uC740 \uD504\uB85C\uC81D\uD2B8\uB85C \uC0AC\uC6A9\uB429\uB2C8\uB2E4 (\uD074\uB9AD\uD558\uC5EC \uD558\uC704 \uC791\uC5C5 \uD45C\uC2DC/\uC228\uAE30\uAE30)",projectIndicatorTooltip:"\uC774 \uC791\uC5C5\uC740 \uD504\uB85C\uC81D\uD2B8\uB85C \uC0AC\uC6A9\uB429\uB2C8\uB2E4",expandSubtasks:"\uD558\uC704 \uC791\uC5C5 \uD3BC\uCE58\uAE30",collapseSubtasks:"\uD558\uC704 \uC791\uC5C5 \uC811\uAE30",dueToday:"{label}: \uC624\uB298",dueTodayAt:"{label}: \uC624\uB298 {time}",dueOverdue:"{label}: {display} (\uAE30\uD55C \uC9C0\uB0A8)",dueLabel:"{label}: {display}",scheduledToday:"{label}: \uC624\uB298",scheduledTodayAt:"{label}: \uC624\uB298 {time}",scheduledPast:"{label}: {display} (\uC9C0\uB09C)",scheduledLabel:"{label}: {display}",loadingDependencies:"\uC885\uC18D\uC131 \uB85C\uB529 \uC911...",blockingEmpty:"\uC885\uC18D \uC791\uC5C5 \uC5C6\uC74C",blockingLoadError:"\uC885\uC18D\uC131 \uB85C\uB4DC \uC2E4\uD328",googleCalendarSyncTooltip:"Google \uCE98\uB9B0\uB354\uC5D0 \uB3D9\uAE30\uD654\uB428",detailsTooltip:"\uC791\uC5C5\uC5D0 \uC138\uBD80 \uC815\uBCF4\uAC00 \uC788\uC2B5\uB2C8\uB2E4"},propertyEventCard:{unknownFile:"\uC54C \uC218 \uC5C6\uB294 \uD30C\uC77C"},filterHeading:{allViewName:"\uBAA8\uB450"},filterBar:{saveView:"\uBDF0 \uC800\uC7A5",saveViewNamePlaceholder:"\uBDF0 \uC774\uB984 \uC785\uB825...",saveButton:"\uC800\uC7A5",views:"\uBDF0",savedFilterViews:"\uC800\uC7A5\uB41C \uD544\uD130 \uBDF0",filters:"\uD544\uD130",properties:"\uC18D\uC131",sort:"\uC815\uB82C",newTask:"\uC0C8\uB85C \uB9CC\uB4E4\uAE30",expandAllGroups:"\uBAA8\uB4E0 \uADF8\uB8F9 \uD3BC\uCE58\uAE30",collapseAllGroups:"\uBAA8\uB4E0 \uADF8\uB8F9 \uC811\uAE30",searchTasksPlaceholder:"\uC791\uC5C5 \uAC80\uC0C9...",searchTasksTooltip:"\uC791\uC5C5 \uC81C\uBAA9 \uAC80\uC0C9",filterUnavailable:"\uD544\uD130 \uBC14\uB97C \uC77C\uC2DC\uC801\uC73C\uB85C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",toggleFilter:"\uD544\uD130 \uD1A0\uAE00",activeFiltersTooltip:"\uD65C\uC131 \uD544\uD130 \u2013 \uC218\uC815\uD558\uB824\uBA74 \uD074\uB9AD, \uC9C0\uC6B0\uB824\uBA74 \uC6B0\uD074\uB9AD",configureVisibleProperties:"\uD45C\uC2DC \uC18D\uC131 \uC124\uC815",sortAndGroupOptions:"\uC815\uB82C \uBC0F \uADF8\uB8F9 \uC635\uC158",sortMenuHeader:"\uC815\uB82C",orderMenuHeader:"\uC21C\uC11C",groupMenuHeader:"\uADF8\uB8F9",createNewTask:"\uC0C8 \uC791\uC5C5 \uB9CC\uB4E4\uAE30",filter:"\uD544\uD130",displayOrganization:"\uD45C\uC2DC \uBC0F \uC870\uC9C1",viewOptions:"\uBDF0 \uC635\uC158",addFilter:"\uD544\uD130 \uCD94\uAC00",addFilterGroup:"\uD544\uD130 \uADF8\uB8F9 \uCD94\uAC00",addFilterTooltip:"\uC0C8 \uD544\uD130 \uC870\uAC74 \uCD94\uAC00",addFilterGroupTooltip:"\uC911\uCCA9\uB41C \uD544\uD130 \uADF8\uB8F9 \uCD94\uAC00",clearAllFilters:"\uBAA8\uB4E0 \uD544\uD130 \uBC0F \uADF8\uB8F9 \uC9C0\uC6B0\uAE30",saveCurrentFilter:"\uD604\uC7AC \uD544\uD130\uB97C \uBDF0\uB85C \uC800\uC7A5",closeFilterModal:"\uD544\uD130 \uBAA8\uB2EC \uB2EB\uAE30",deleteFilterGroup:"\uD544\uD130 \uADF8\uB8F9 \uC0AD\uC81C",deleteCondition:"\uC870\uAC74 \uC0AD\uC81C",all:"\uBAA8\uB450",any:"\uC77C\uBD80",followingAreTrue:"\uB2E4\uC74C \uC870\uAC74\uC774 \uCC38:",where:"\uC870\uAC74",selectProperty:"\uC120\uD0DD...",chooseProperty:"\uD544\uD130\uB9C1\uD560 \uC791\uC5C5 \uC18D\uC131 \uC120\uD0DD",chooseOperator:"\uC18D\uC131 \uAC12 \uBE44\uAD50 \uBC29\uBC95 \uC120\uD0DD",enterValue:"\uD544\uD130\uB9C1\uD560 \uAC12 \uC785\uB825",selectValue:"\uD544\uD130\uB9C1\uD560 {property} \uC120\uD0DD",sortBy:"\uC815\uB82C \uAE30\uC900:",toggleSortDirection:"\uC815\uB82C \uBC29\uD5A5 \uD1A0\uAE00",chooseSortMethod:"\uC791\uC5C5 \uC815\uB82C \uBC29\uBC95 \uC120\uD0DD",groupBy:"\uADF8\uB8F9 \uAE30\uC900:",chooseGroupMethod:"\uACF5\uD1B5 \uC18D\uC131\uC73C\uB85C \uC791\uC5C5 \uADF8\uB8F9\uD654",toggleViewOption:"{option} \uD1A0\uAE00",expandCollapseFilters:"\uD544\uD130 \uC870\uAC74 \uD3BC\uCE58\uAE30/\uC811\uAE30",expandCollapseSort:"\uC815\uB82C \uBC0F \uADF8\uB8F9 \uC635\uC158 \uD3BC\uCE58\uAE30/\uC811\uAE30",expandCollapseViewOptions:"\uBDF0\uBCC4 \uC635\uC158 \uD3BC\uCE58\uAE30/\uC811\uAE30",naturalLanguageDates:"\uC790\uC5F0\uC5B4 \uB0A0\uC9DC",naturalLanguageExamples:"\uC790\uC5F0\uC5B4 \uB0A0\uC9DC \uC608\uC2DC \uBCF4\uAE30",enterNumericValue:"\uD544\uD130\uB9C1\uD560 \uC22B\uC790 \uAC12 \uC785\uB825",enterDateValue:"\uC790\uC5F0\uC5B4 \uB610\uB294 ISO \uD615\uC2DD\uC73C\uB85C \uB0A0\uC9DC \uC785\uB825",pickDateTime:"\uB0A0\uC9DC \uBC0F \uC2DC\uAC04 \uC120\uD0DD",noSavedViews:"\uC800\uC7A5\uB41C \uBDF0 \uC5C6\uC74C",savedViews:"\uC800\uC7A5\uB41C \uBDF0",yourSavedFilters:"\uC800\uC7A5\uB41C \uD544\uD130 \uAD6C\uC131",dragToReorder:"\uB4DC\uB798\uADF8\uD558\uC5EC \uBDF0 \uC21C\uC11C \uBCC0\uACBD",loadSavedView:"\uC800\uC7A5\uB41C \uBDF0 \uB85C\uB4DC: {name}",deleteView:"\uBDF0 \uC0AD\uC81C",deleteViewTitle:"\uBDF0 \uC0AD\uC81C",deleteViewMessage:'"{name}" \uBDF0\uB97C \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?',manageAllReminders:"\uBAA8\uB4E0 \uB9AC\uB9C8\uC778\uB354 \uAD00\uB9AC...",clearAllReminders:"\uBAA8\uB4E0 \uB9AC\uB9C8\uC778\uB354 \uC9C0\uC6B0\uAE30",customRecurrence:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uBC18\uBCF5...",clearRecurrence:"\uBC18\uBCF5 \uC9C0\uC6B0\uAE30",sortOptions:{dueDate:"\uB9C8\uAC10\uC77C",scheduledDate:"\uC608\uC815\uC77C",priority:"\uC6B0\uC120\uC21C\uC704",status:"\uC0C1\uD0DC",title:"\uC81C\uBAA9",createdDate:"\uC0DD\uC131\uC77C",tags:"\uD0DC\uADF8",ascending:"\uC624\uB984\uCC28\uC21C",descending:"\uB0B4\uB9BC\uCC28\uC21C"},group:{none:"\uC5C6\uC74C",status:"\uC0C1\uD0DC",priority:"\uC6B0\uC120\uC21C\uC704",context:"\uCEE8\uD14D\uC2A4\uD2B8",project:"\uD504\uB85C\uC81D\uD2B8",dueDate:"\uB9C8\uAC10\uC77C",scheduledDate:"\uC608\uC815\uC77C",tags:"\uD0DC\uADF8",completedDate:"\uC644\uB8CC\uC77C"},subgroupLabel:"\uD558\uC704 \uADF8\uB8F9",notices:{propertiesMenuFailed:"\uC18D\uC131 \uBA54\uB274 \uD45C\uC2DC \uC2E4\uD328"}}},components:{dateContextMenu:{weekdays:"\uD3C9\uC77C",clearDate:"\uB0A0\uC9DC \uC9C0\uC6B0\uAE30",today:"\uC624\uB298",tomorrow:"\uB0B4\uC77C",thisWeekend:"\uC774\uBC88 \uC8FC\uB9D0",nextWeek:"\uB2E4\uC74C \uC8FC",nextMonth:"\uB2E4\uC74C \uB2EC",setDateTime:"\uB0A0\uC9DC \uBC0F \uC2DC\uAC04 \uC124\uC815",dateLabel:"\uB0A0\uC9DC",timeLabel:"\uC2DC\uAC04 (\uC120\uD0DD\uC0AC\uD56D)"},subgroupMenuBuilder:{none:"\uC5C6\uC74C",status:"\uC0C1\uD0DC",priority:"\uC6B0\uC120\uC21C\uC704",context:"\uCEE8\uD14D\uC2A4\uD2B8",project:"\uD504\uB85C\uC81D\uD2B8",dueDate:"\uB9C8\uAC10\uC77C",scheduledDate:"\uC608\uC815\uC77C",tags:"\uD0DC\uADF8",completedDate:"\uC644\uB8CC\uC77C",subgroup:"\uD558\uC704 \uADF8\uB8F9"},propertyVisibilityDropdown:{coreProperties:"\uD575\uC2EC \uC18D\uC131",organization:"\uC870\uC9C1",customProperties:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uC18D\uC131",failed:"\uC18D\uC131 \uBA54\uB274 \uD45C\uC2DC \uC2E4\uD328",properties:{statusDot:"\uC0C1\uD0DC \uC810",priorityDot:"\uC6B0\uC120\uC21C\uC704 \uC810",dueDate:"\uB9C8\uAC10\uC77C",scheduledDate:"\uC608\uC815\uC77C",timeEstimate:"\uC2DC\uAC04 \uC608\uC0C1",totalTrackedTime:"\uCD1D \uAE30\uB85D \uC2DC\uAC04",checklistProgress:"\uCCB4\uD06C\uB9AC\uC2A4\uD2B8 \uC9C4\uD589\uB960",recurrence:"\uBC18\uBCF5",completedDate:"\uC644\uB8CC\uC77C",createdDate:"\uC0DD\uC131\uC77C",modifiedDate:"\uC218\uC815\uC77C",projects:"\uD504\uB85C\uC81D\uD2B8",contexts:"\uCEE8\uD14D\uC2A4\uD2B8",tags:"\uD0DC\uADF8",blocked:"\uCC28\uB2E8\uB428",blocking:"\uCC28\uB2E8 \uC911"}},reminderContextMenu:{remindBeforeDue:"\uB9C8\uAC10 \uC804 \uC54C\uB9BC...",remindBeforeScheduled:"\uC608\uC815 \uC804 \uC54C\uB9BC...",manageAllReminders:"\uBAA8\uB4E0 \uB9AC\uB9C8\uC778\uB354 \uAD00\uB9AC...",clearAllReminders:"\uBAA8\uB4E0 \uB9AC\uB9C8\uC778\uB354 \uC9C0\uC6B0\uAE30",quickReminders:{atTime:"\uC774\uBCA4\uD2B8 \uC2DC\uAC04\uC5D0",fiveMinutesBefore:"5\uBD84 \uC804",fifteenMinutesBefore:"15\uBD84 \uC804",oneHourBefore:"1\uC2DC\uAC04 \uC804",oneDayBefore:"1\uC77C \uC804"}},recurrenceContextMenu:{daily:"\uB9E4\uC77C",weeklyOn:"{day}\uB9C8\uB2E4",everyTwoWeeksOn:"2\uC8FC\uB9C8\uB2E4 {day}",monthlyOnThe:"\uB9E4\uC6D4 {ordinal}",everyThreeMonthsOnThe:"3\uAC1C\uC6D4\uB9C8\uB2E4 {ordinal}",yearlyOn:"\uB9E4\uB144 {month} {ordinal}",weekdaysOnly:"\uD3C9\uC77C\uB9CC",dailyAfterCompletion:"\uB9E4\uC77C (\uC644\uB8CC \uD6C4)",every3DaysAfterCompletion:"3\uC77C\uB9C8\uB2E4 (\uC644\uB8CC \uD6C4)",weeklyAfterCompletion:"\uB9E4\uC8FC (\uC644\uB8CC \uD6C4)",monthlyAfterCompletion:"\uB9E4\uC6D4 (\uC644\uB8CC \uD6C4)",customRecurrence:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uBC18\uBCF5...",clearRecurrence:"\uBC18\uBCF5 \uC9C0\uC6B0\uAE30",customRecurrenceModal:{title:"\uC0AC\uC6A9\uC790 \uC9C0\uC815 \uBC18\uBCF5",startDate:"\uC2DC\uC791 \uB0A0\uC9DC",startDateDesc:"\uBC18\uBCF5 \uD328\uD134\uC774 \uC2DC\uC791\uB418\uB294 \uB0A0\uC9DC",startTime:"\uC2DC\uC791 \uC2DC\uAC04",startTimeDesc:"\uBC18\uBCF5 \uC778\uC2A4\uD134\uC2A4\uAC00 \uB098\uD0C0\uB098\uC57C \uD558\uB294 \uC2DC\uAC04 (\uC120\uD0DD\uC0AC\uD56D)",recurFrom:"\uBC18\uBCF5 \uAE30\uC900",recurFromDesc:"\uB2E4\uC74C \uBC1C\uC0DD\uC744 \uC5B8\uC81C \uACC4\uC0B0\uD574\uC57C \uD558\uB098\uC694?",scheduledDate:"\uC608\uC815\uC77C",completionDate:"\uC644\uB8CC\uC77C",frequency:"\uBE48\uB3C4",interval:"\uAC04\uACA9",intervalDesc:"X\uC77C/\uC8FC/\uC6D4/\uB144\uB9C8\uB2E4",daysOfWeek:"\uC694\uC77C",daysOfWeekDesc:"\uD2B9\uC815 \uC694\uC77C \uC120\uD0DD (\uC8FC\uAC04 \uBC18\uBCF5\uC6A9)",monthlyRecurrence:"\uC6D4\uAC04 \uBC18\uBCF5",monthlyRecurrenceDesc:"\uB9E4\uC6D4 \uBC18\uBCF5 \uBC29\uBC95 \uC120\uD0DD",yearlyRecurrence:"\uC5F0\uAC04 \uBC18\uBCF5",yearlyRecurrenceDesc:"\uB9E4\uB144 \uBC18\uBCF5 \uBC29\uBC95 \uC120\uD0DD",endCondition:"\uC885\uB8CC \uC870\uAC74",endConditionDesc:"\uBC18\uBCF5\uC774 \uB05D\uB098\uC57C \uD558\uB294 \uC2DC\uC810 \uC120\uD0DD",neverEnds:"\uB05D\uB098\uC9C0 \uC54A\uC74C",endAfterOccurrences:"{count}\uD68C \uD6C4 \uC885\uB8CC",endOnDate:"{date}\uC5D0 \uC885\uB8CC",onDayOfMonth:"\uB9E4\uC6D4 {day}\uC77C\uC5D0",onTheWeekOfMonth:"\uB9E4\uC6D4 {week} {day}\uC5D0",onDateOfYear:"\uB9E4\uB144 {month} {day}\uC5D0",onTheWeekOfYear:"\uB9E4\uB144 {month} {week} {day}\uC5D0",frequencies:{daily:"\uB9E4\uC77C",weekly:"\uB9E4\uC8FC",monthly:"\uB9E4\uC6D4",yearly:"\uB9E4\uB144"},weekPositions:{first:"\uCCAB\uC9F8",second:"\uB458\uC9F8",third:"\uC14B\uC9F8",fourth:"\uB137\uC9F8",last:"\uB9C8\uC9C0\uB9C9"},weekdays:{monday:"\uC6D4\uC694\uC77C",tuesday:"\uD654\uC694\uC77C",wednesday:"\uC218\uC694\uC77C",thursday:"\uBAA9\uC694\uC77C",friday:"\uAE08\uC694\uC77C",saturday:"\uD1A0\uC694\uC77C",sunday:"\uC77C\uC694\uC77C"},weekdaysShort:{mon:"\uC6D4",tue:"\uD654",wed:"\uC218",thu:"\uBAA9",fri:"\uAE08",sat:"\uD1A0",sun:"\uC77C"},cancel:"\uCDE8\uC18C",save:"\uC800\uC7A5"}}}};var Iot={en:ixe,fr:sxe,ru:oxe,zh:lxe,de:cxe,es:dxe,ja:uxe,pt:pxe,ko:mxe};function fxe(r){return new LN({resources:Iot,defaultLocale:"en",fallbackLocale:"en",...r})}K();var hxe=N({tag:"Services/OAuthSecretStore"}),Qk={google:{credentials:"tasknotes-oauth-google-credentials",connection:"tasknotes-oauth-google-connection"},microsoft:{credentials:"tasknotes-oauth-microsoft-credentials",connection:"tasknotes-oauth-microsoft-connection"}};function ME(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function Mm(r){return typeof r=="string"?r:void 0}function jN(r,e){var i,s,o,l;if(!ME(r)||r.provider!==e||!ME(r.tokens))return null;let t=r.tokens.accessToken,n=r.tokens.expiresAt;if(typeof t!="string"||t.length===0||typeof n!="number"||!Number.isFinite(n))return null;let a=(i=Mm(r.connectedAt))!=null?i:"";return{provider:e,tokens:{accessToken:t,refreshToken:(s=Mm(r.tokens.refreshToken))!=null?s:"",expiresAt:n,scope:(o=Mm(r.tokens.scope))!=null?o:"",tokenType:(l=Mm(r.tokens.tokenType))!=null?l:"Bearer"},...Mm(r.userEmail)!==void 0&&{userEmail:Mm(r.userEmail)},connectedAt:a,...Mm(r.lastRefreshed)!==void 0&&{lastRefreshed:Mm(r.lastRefreshed)}}}function Not(r){try{let e=JSON.parse(r);if(!ME(e)||e.version!==1)return{status:"invalid"};if(e.state==="cleared")return{status:"cleared"};if(e.state!=="configured"||!ME(e.credentials))return{status:"invalid"};let t=e.credentials.clientId,n=e.credentials.clientSecret;return typeof t!="string"||n!==void 0&&typeof n!="string"?{status:"invalid"}:{status:"configured",credentials:{clientId:t,...typeof n=="string"&&n.length>0?{clientSecret:n}:{}}}}catch(e){return{status:"invalid"}}}function Rot(r,e){try{let t=JSON.parse(r);if(!ME(t)||t.version!==1)return{status:"invalid"};if(t.state==="cleared")return{status:"cleared"};if(t.state!=="connected")return{status:"invalid"};let n=jN(t.connection,e);return n?{status:"connected",connection:n}:{status:"invalid"}}catch(t){return{status:"invalid"}}}var zN=class{constructor(e){this.secretStorage=e}getCredentialsState(e){let t=Qk[e].credentials,n=this.secretStorage.getSecret(t);if(n===null)return{status:"missing"};let a=Not(n);return a.status==="invalid"&&hxe.warn("Stored OAuth credentials could not be read",{category:"configuration",operation:"read-oauth-credentials",details:{provider:e}}),a}getCredentials(e){let t=this.getCredentialsState(e);return t.status==="configured"?t.credentials:null}setCredentials(e,t){var a;let n={version:1,state:"configured",credentials:{clientId:t.clientId.trim(),...(a=t.clientSecret)!=null&&a.trim()?{clientSecret:t.clientSecret.trim()}:{}}};this.writeVerified(Qk[e].credentials,n)}clearCredentials(e){let t={version:1,state:"cleared"};this.writeVerified(Qk[e].credentials,t)}getConnectionState(e){let t=Qk[e].connection,n=this.secretStorage.getSecret(t);if(n===null)return{status:"missing"};let a=Rot(n,e);return a.status==="invalid"&&hxe.warn("Stored OAuth connection could not be read",{category:"configuration",operation:"read-oauth-connection",details:{provider:e}}),a}getConnection(e){let t=this.getConnectionState(e);return t.status==="connected"?t.connection:null}setConnection(e,t){let n=jN(t,e);if(!n)throw new Error(`Cannot store an invalid ${e} OAuth connection`);let a={version:1,state:"connected",connection:n};this.writeVerified(Qk[e].connection,a)}clearConnection(e){let t={version:1,state:"cleared"};this.writeVerified(Qk[e].connection,t)}writeVerified(e,t){let n=JSON.stringify(t);if(this.secretStorage.setSecret(e,n),this.secretStorage.getSecret(e)!==n)throw new Error(`Obsidian SecretStorage did not persist ${e}`)}};var $N=["google","microsoft"],tW={google:{clientId:"googleOAuthClientId",clientSecret:"googleOAuthClientSecret"},microsoft:{clientId:"microsoftOAuthClientId",clientSecret:"microsoftOAuthClientSecret"}};function eW(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function hg(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function Fot(r,e){let t=tW[e],n=r[t.clientId],a=r[t.clientSecret];if(typeof n!="string"&&typeof a!="string")return null;let i={clientId:typeof n=="string"?n:""};return typeof a=="string"&&a.length>0&&(i.clientSecret=a),i}function rW(r){let e=!1,t={...r};for(let n of $N){let a=tW[n];for(let i of[a.clientId,a.clientSecret])hg(t,i)&&(delete t[i],e=!0)}if(hg(t,"oauthConnections")){let n=t.oauthConnections;if(eW(n)){let a={...n};for(let i of $N)hg(a,i)&&(delete a[i],e=!0);Object.keys(a).length===0?(delete t.oauthConnections,e=!0):e&&(t.oauthConnections=a)}else delete t.oauthConnections,e=!0}return e?t:r}function gxe(r,e){if(r==null)return{data:null,changed:!1};for(let n of $N){let a=tW[n];if(hg(r,a.clientId)||hg(r,a.clientSecret)){let s=Fot(r,n),o=e.getCredentialsState(n);s&&(o.status==="missing"||o.status==="invalid")&&e.setCredentials(n,s)}}if(hg(r,"oauthConnections")){let n=r.oauthConnections;if(n!==null&&!eW(n))throw new Error("Cannot migrate malformed OAuth connection storage");if(eW(n))for(let a of $N){if(!hg(n,a)||n[a]===null)continue;let i=e.getConnectionState(a);if(i.status==="connected"||i.status==="cleared")continue;let s=jN(n[a],a);if(!s)throw new Error(`Cannot migrate malformed ${a} OAuth connection`);e.setConnection(a,s)}}let t=rW(r);return{data:t,changed:t!==r}}rN();H$();var ch=require("obsidian");Yc();var Kw=require("obsidian");Yc();ro();K();Ba();var CYt=N({tag:"Settings/Tabs/GeneralTab"});function Gw(r,e,t){r.empty();let n=(o,l)=>e.i18n.translate(o,l);Dt(r,{heading:n("settings.general.taskStorage.header"),description:n("settings.general.taskStorage.description")},o=>{o.addSetting(l=>void Sn(l,{name:n("settings.general.taskStorage.defaultFolder.name"),desc:n("settings.general.taskStorage.defaultFolder.description"),placeholder:"TaskNotes",getValue:()=>e.settings.tasksFolder,setValue:async c=>{e.settings.tasksFolder=c,t()},ariaLabel:"Default folder path for new tasks"})),o.addSetting(l=>void Sn(l,{name:n("settings.features.instantConvert.folder.name"),desc:n("settings.features.instantConvert.folder.description"),placeholder:"{{currentNotePath}}",getValue:()=>e.settings.inlineTaskConvertFolder,setValue:async c=>{e.settings.inlineTaskConvertFolder=c,t()},ariaLabel:"Folder for inline-created tasks"})),o.addSetting(l=>void he(l,{name:n("settings.general.taskStorage.moveArchived.name"),desc:n("settings.general.taskStorage.moveArchived.description"),getValue:()=>e.settings.moveArchivedTasks,setValue:async c=>{e.settings.moveArchivedTasks=c,t(),Gw(r,e,t)}})),e.settings.moveArchivedTasks&&o.addSetting(l=>void Sn(l,{name:n("settings.general.taskStorage.archiveFolder.name"),desc:n("settings.general.taskStorage.archiveFolder.description"),placeholder:"TaskNotes/Archive",getValue:()=>e.settings.archiveFolder,setValue:async c=>{e.settings.archiveFolder=c,t()},ariaLabel:"Archive folder path"}))}),Dt(r,{heading:n("settings.general.taskIdentification.header"),description:n("settings.general.taskIdentification.description")},o=>{o.addSetting(l=>void on(l,{name:n("settings.general.taskIdentification.identifyBy.name"),desc:n("settings.general.taskIdentification.identifyBy.description"),options:[{value:"tag",label:n("settings.general.taskIdentification.identifyBy.options.tag")},{value:"property",label:n("settings.general.taskIdentification.identifyBy.options.property")}],getValue:()=>e.settings.taskIdentificationMethod,setValue:async c=>{e.settings.taskIdentificationMethod=c,t(),Gw(r,e,t)},ariaLabel:"Task identification method"})),e.settings.taskIdentificationMethod==="tag"?(o.addSetting(l=>void Sn(l,{name:n("settings.general.taskIdentification.taskTag.name"),desc:n("settings.general.taskIdentification.taskTag.description"),placeholder:"task",getValue:()=>e.settings.taskTag,setValue:async c=>{e.settings.taskTag=c,t()},ariaLabel:"Task identification tag"})),o.addSetting(l=>void he(l,{name:n("settings.general.taskIdentification.hideIdentifyingTags.name"),desc:n("settings.general.taskIdentification.hideIdentifyingTags.description"),getValue:()=>e.settings.hideIdentifyingTagsInCards,setValue:async c=>{e.settings.hideIdentifyingTagsInCards=c,t(),Gw(r,e,t)}})),e.settings.hideIdentifyingTagsInCards&&o.addSetting(l=>void on(l,{name:n("settings.general.taskIdentification.hideIdentifyingTagsMode.name"),desc:n("settings.general.taskIdentification.hideIdentifyingTagsMode.description"),options:[{value:"all",label:n("settings.general.taskIdentification.hideIdentifyingTagsMode.options.all")},{value:"exact-only",label:n("settings.general.taskIdentification.hideIdentifyingTagsMode.options.exactOnly")}],getValue:()=>e.settings.hideIdentifyingTagsMode,setValue:async c=>{e.settings.hideIdentifyingTagsMode=c,t()},ariaLabel:"Hidden identification tag scope"}))):(o.addSetting(l=>void Sn(l,{name:n("settings.general.taskIdentification.taskProperty.name"),desc:n("settings.general.taskIdentification.taskProperty.description"),placeholder:"category",getValue:()=>e.settings.taskPropertyName,setValue:async c=>{e.settings.taskPropertyName=c,t()}})),o.addSetting(l=>void Sn(l,{name:n("settings.general.taskIdentification.taskPropertyValue.name"),desc:n("settings.general.taskIdentification.taskPropertyValue.description"),placeholder:"task",getValue:()=>e.settings.taskPropertyValue,setValue:async c=>{e.settings.taskPropertyValue=c,t()}})))});let a=[{id:"open-calendar-view",nameKey:"miniCalendar",defaultPath:"TaskNotes/Views/mini-calendar-default.base"},{id:"open-kanban-view",nameKey:"kanban",defaultPath:"TaskNotes/Views/kanban-default.base"},{id:"open-tasks-view",nameKey:"tasks",defaultPath:"TaskNotes/Views/tasks-default.base"},{id:"open-advanced-calendar-view",nameKey:"advancedCalendar",defaultPath:"TaskNotes/Views/calendar-default.base"},{id:"open-agenda-view",nameKey:"agenda",defaultPath:"TaskNotes/Views/agenda-default.base"},{id:"pomodoro-stats-base",nameKey:"pomodoroStats",defaultPath:"TaskNotes/Views/pomodoro-stats.base"},{id:"relationships",nameKey:"relationships",defaultPath:"TaskNotes/Views/relationships.base"}];Dt(r,{heading:n("settings.integrations.basesIntegration.viewCommands.header"),description:n("settings.integrations.basesIntegration.viewCommands.description")},o=>{o.addSetting(l=>{l.setDesc(n("settings.integrations.basesIntegration.viewCommands.descriptionRegen")),l.settingEl.addClass("settings-view__group-description")}),o.addSetting(l=>{l.setDesc(n("settings.integrations.basesIntegration.viewCommands.pomodoroDailyNotesHint")),l.settingEl.addClass("settings-view__group-description")}),o.addSetting(l=>{l.descEl.createEl("a",{text:n("settings.integrations.basesIntegration.viewCommands.docsLink"),href:n("settings.integrations.basesIntegration.viewCommands.docsLinkUrl")}).setAttr("target","_blank"),l.settingEl.addClass("settings-view__group-description")}),a.forEach(({id:l,nameKey:c,defaultPath:d})=>{o.addSetting(u=>{let p=n(`settings.integrations.basesIntegration.viewCommands.commands.${c}`);u.setName(p),u.setDesc(n("settings.integrations.basesIntegration.viewCommands.fileLabel",{path:e.settings.commandFileMapping[l]})),u.addText(m=>(m.setPlaceholder(d).setValue(e.settings.commandFileMapping[l]).onChange(f=>{e.settings.commandFileMapping[l]=f,t(),u.setDesc(n("settings.integrations.basesIntegration.viewCommands.fileLabel",{path:f}))}),m.inputEl.classList.remove("tn-static-width-12px-fbf353fb","tn-static-width-16px-7375d50b","tn-static-width-1px-aa77e27e","tn-static-width-200px-2acaf3b5","tn-static-width-60px-bd09c419","tn-static-width-80px-8573bae3"),m.inputEl.classList.add("tn-static-width-100-0466783d"),m)),u.addButton(m=>(m.setButtonText(n("settings.integrations.basesIntegration.viewCommands.resetButton")).setTooltip(n("settings.integrations.basesIntegration.viewCommands.resetTooltip")).onClick(()=>{e.settings.commandFileMapping[l]=d,t(),e.app.setting.activeTab&&e.app.setting.openTabById(e.app.setting.activeTab.id)}),m))})}),o.addSetting(l=>{l.setName(n("settings.integrations.basesIntegration.autoCreateDefaultFiles.name")).setDesc(n("settings.integrations.basesIntegration.autoCreateDefaultFiles.description")).addToggle(c=>(c.setValue(e.settings.autoCreateDefaultBasesFiles).onChange(d=>{e.settings.autoCreateDefaultBasesFiles=d,t()}),c))}),o.addSetting(l=>{l.setName(n("settings.integrations.basesIntegration.createDefaultFiles.name")).setDesc(n("settings.integrations.basesIntegration.createDefaultFiles.description")).addButton(c=>(c.setButtonText(n("settings.integrations.basesIntegration.createDefaultFiles.buttonText")).setCta().onClick(async()=>{await e.createDefaultBasesFiles()}),c))}),o.addSetting(l=>{l.setName(n("settings.integrations.basesIntegration.updateDefaultFiles.name")).setDesc(n("settings.integrations.basesIntegration.updateDefaultFiles.description")).addButton(c=>(c.setButtonText(n("settings.integrations.basesIntegration.updateDefaultFiles.buttonText")).onClick(async()=>{await Ir(e.app,{title:n("settings.integrations.basesIntegration.updateDefaultFiles.confirmTitle"),message:n("settings.integrations.basesIntegration.updateDefaultFiles.confirmMessage"),confirmText:n("settings.integrations.basesIntegration.updateDefaultFiles.confirmText"),isDestructive:!1})&&await e.createDefaultBasesFiles({overwriteExisting:!0})}),c))}),o.addSetting(l=>{l.setName(n("settings.integrations.basesIntegration.exportV3Views.name")).setDesc(n("settings.integrations.basesIntegration.exportV3Views.description")).addButton(c=>(c.setButtonText(n("settings.integrations.basesIntegration.exportV3Views.buttonText")).onClick(async()=>{try{let d=e.viewStateManager.getSavedViews();if(d.length===0){new Kw.Notice(n("settings.integrations.basesIntegration.exportV3Views.noViews"));return}let u=e.basesFilterConverter.convertAllSavedViewsToBasesFile(d),p="all-saved-views.base",m=`TaskNotes/Views/${p}`;await e.app.vault.adapter.exists("TaskNotes/Views")||await FS(e.app,"TaskNotes/Views");let f=e.app.vault.getAbstractFileByPath(m);if(f){if(!(f instanceof Kw.TFile))throw new Error(`${m} exists but is not a file`);if(!await Ir(e.app,{title:n("settings.integrations.basesIntegration.exportV3Views.fileExists"),message:n("settings.integrations.basesIntegration.exportV3Views.confirmOverwrite",{fileName:p}),isDestructive:!1}))return;await Mo(e.app,f,u)}else await _h(e.app,m,u);new Kw.Notice(n("settings.integrations.basesIntegration.exportV3Views.success",{count:d.length.toString(),filePath:m})),await e.app.workspace.openLinkText(m,"",!0)}catch(d){CYt.error("Error exporting all views to Bases:",{category:"provider",operation:"exporting-all-views-bases",error:d}),new Kw.Notice(n("settings.integrations.basesIntegration.exportV3Views.error",{message:d.message}))}}),c))})}),Dt(r,{heading:n("settings.general.folderManagement.header")},o=>{o.addSetting(l=>void Sn(l,{name:n("settings.general.folderManagement.excludedFolders.name"),desc:n("settings.general.folderManagement.excludedFolders.description"),placeholder:"Templates, Archive",getValue:()=>e.settings.excludedFolders,setValue:async c=>{e.settings.excludedFolders=c,t()},ariaLabel:"Excluded folder paths"}))});let i=(()=>{let o=[{value:"system",label:n("common.systemDefault")}];for(let l of e.i18n.getAvailableLocales()){let c=e.i18n.getNativeLanguageName(l);o.push({value:l,label:c})}return o})();Dt(r,{heading:n("settings.features.uiLanguage.header"),description:n("settings.features.uiLanguage.description")},o=>{o.addSetting(l=>void on(l,{name:n("settings.features.uiLanguage.dropdown.name"),desc:n("settings.features.uiLanguage.dropdown.description"),options:i,getValue:()=>{var c;return(c=e.settings.uiLanguage)!=null?c:"system"},setValue:async c=>{e.settings.uiLanguage=c,e.i18n.setLocale(c),t(),Gw(r,e,t)}}))}),e.app.vault.getConfig("useMarkdownLinks")&&Dt(r,{heading:n("settings.general.frontmatter.header"),description:n("settings.general.frontmatter.description")},o=>{o.addSetting(l=>void he(l,{name:n("settings.general.frontmatter.useMarkdownLinks.name"),desc:n("settings.general.frontmatter.useMarkdownLinks.description"),getValue:()=>e.settings.useFrontmatterMarkdownLinks,setValue:async c=>{e.settings.useFrontmatterMarkdownLinks=c,t()}}))}),Dt(r,{heading:n("settings.general.releaseNotes.header"),description:n("settings.general.releaseNotes.description",{version:e.manifest.version})},o=>{o.addSetting(l=>void he(l,{name:n("settings.general.releaseNotes.showOnUpdate.name"),desc:n("settings.general.releaseNotes.showOnUpdate.description"),getValue:()=>{var c;return(c=e.settings.showReleaseNotesOnUpdate)!=null?c:!0},setValue:async c=>{e.settings.showReleaseNotesOnUpdate=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.general.releaseNotes.checkForUpdates.name"),desc:n("settings.general.releaseNotes.checkForUpdates.description"),getValue:()=>{var c;return(c=e.settings.checkForUpdatesOnStartup)!=null?c:!0},setValue:async c=>{e.settings.checkForUpdatesOnStartup=c,t()}})),o.addSetting(l=>{l.setName(n("settings.general.releaseNotes.viewButton.name")).setDesc(n("settings.general.releaseNotes.viewButton.description")).addButton(c=>c.setButtonText(n("settings.general.releaseNotes.viewButton.buttonText")).setCta().onClick(async()=>{await e.activateReleaseNotesView()}))})})}Yc();fi();var B8e=require("obsidian");fi();var ese=require("obsidian");fi();function EYt(r,e,t){var a;let n=r.settings.nlpTriggers.triggers.find(i=>i.propertyId===e);return{propertyId:e,enabled:(a=n==null?void 0:n.enabled)!=null?a:e!=="priority",trigger:(n==null?void 0:n.trigger)||t}}function $8e(r,e,t,n,a){var s,o;let i=r.settings.nlpTriggers.triggers.findIndex(l=>l.propertyId===e);i!==-1?(t.enabled!==void 0&&(r.settings.nlpTriggers.triggers[i].enabled=t.enabled),t.trigger!==void 0&&(r.settings.nlpTriggers.triggers[i].trigger=t.trigger)):r.settings.nlpTriggers.triggers.push({propertyId:e,trigger:(s=t.trigger)!=null?s:n,enabled:(o=t.enabled)!=null?o:!0}),a()}function Cl(r,e,t,n,a,i){let s=EYt(r,e,t),o=xn(s.enabled,d=>{$8e(r,e,{enabled:d},t,n),i&&i()}),l=[{label:a("settings.taskProperties.propertyCard.nlpTrigger"),input:o}],c=Ke("text",t,s.trigger);return c.classList.remove("tn-static-width-100-0466783d","tn-static-width-12px-fbf353fb","tn-static-width-16px-7375d50b","tn-static-width-1px-aa77e27e","tn-static-width-200px-2acaf3b5","tn-static-width-60px-bd09c419"),c.classList.add("tn-static-width-80px-8573bae3"),c.addEventListener("change",()=>{let d=c.value;if(d.trim().length===0){new ese.Notice(a("settings.taskProperties.propertyCard.triggerEmpty"));return}if(d.length>10){new ese.Notice(a("settings.taskProperties.propertyCard.triggerTooLong"));return}$8e(r,e,{trigger:d},t,n)}),l.push({label:a("settings.taskProperties.propertyCard.triggerChar"),input:c}),l}function rs(r){let e=activeWindow.createEl("p");return e.className="setting-item-description",e.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),e.classList.add("tn-static-margin-top-0-d462248a"),e.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-20px-49f14f8f","tn-static-margin-bottom-8px-fdf33f23"),e.classList.add("tn-static-margin-bottom-0-75rem-c05a3c6e"),e.textContent=r,e}function dv(r,e,t,n,a){let i=Ke("text",a.propertyId,e.settings.fieldMapping[a.propertyId]);i.addEventListener("change",()=>{e.settings.fieldMapping[a.propertyId]=i.value,t()});let o=[{label:"",input:rs(a.description||""),fullWidth:!0},{label:n("settings.taskProperties.propertyCard.propertyKey"),input:i}];if(a.hasDefault&&a.getDefaultValue&&a.setDefaultValue){let l=a.setDefaultValue,c;a.defaultType==="dropdown"||a.defaultType==="date-preset"?(c=ma(a.defaultOptions||[],a.getDefaultValue()),c.addEventListener("change",()=>{l(c.value)})):a.defaultType==="number"?(c=xm(0,void 0,1,parseInt(a.getDefaultValue())||0),c.addEventListener("change",()=>{l(c.value)})):(c=Ke("text",a.defaultPlaceholder||"",a.getDefaultValue()),c.addEventListener("change",()=>{l(c.value)})),o.push({label:n("settings.taskProperties.propertyCard.default"),input:c})}if(a.extraRows&&o.push(...a.extraRows),a.hasNLPTrigger&&a.nlpDefaultTrigger){let l=Cl(e,a.propertyId,a.nlpDefaultTrigger,t,n);o.push(...l)}Tr(r,{id:`property-${a.propertyId}`,collapsible:!0,defaultCollapsed:!0,header:{primaryText:a.displayName,secondaryText:e.settings.fieldMapping[a.propertyId]},content:{sections:[{rows:o}]}})}function ns(r,e,t,n,a,i,s){let o=Ke("text",a,e.settings.fieldMapping[a]);o.addEventListener("change",()=>{e.settings.fieldMapping[a]=o.value,t()});let l=rs(s||"");Tr(r,{id:`property-${a}`,collapsible:!0,defaultCollapsed:!0,header:{primaryText:i,secondaryText:e.settings.fieldMapping[a]},content:{sections:[{rows:[{label:"",input:l,fullWidth:!0},{label:n("settings.taskProperties.propertyCard.propertyKey"),input:o}]}]}})}function tse(r,e,t,n){let a=r.createDiv(),i=!0;function s(){a.empty();let o=Ke("text","title",e.settings.fieldMapping.title);o.addEventListener("change",()=>{e.settings.fieldMapping.title=o.value,t()});let l=xn(e.settings.storeTitleInFilename,p=>{e.settings.storeTitleInFilename=p,t(),s()}),c=activeWindow.createDiv();c.addClass("tasknotes-settings__nested-content"),U8e(c,e,t,n);let u=[{label:"",input:rs(n("settings.taskProperties.properties.title.description")),fullWidth:!0}];e.settings.storeTitleInFilename||u.push({label:n("settings.taskProperties.propertyCard.propertyKey"),input:o}),u.push({label:n("settings.taskProperties.titleCard.storeTitleInFilename"),input:l},{label:"",input:c,fullWidth:!0}),Tr(a,{id:"property-title",collapsible:!0,defaultCollapsed:i,onCollapseChange:p=>{i=p},header:{primaryText:n("settings.taskProperties.properties.title.name"),secondaryText:e.settings.storeTitleInFilename?n("settings.taskProperties.titleCard.storedInFilename"):e.settings.fieldMapping.title},content:{sections:[{rows:u}]}})}s()}function U8e(r,e,t,n){r.empty();let a=r.createDiv("tasknotes-settings__card-config-row");a.createSpan({text:n("settings.taskProperties.titleCard.occurrenceFilenameTemplate"),cls:"tasknotes-settings__card-config-label"});let i=Ke("text","{{title}} \u2014 {{occurrenceDate}}",e.settings.occurrenceFilenameTemplate);i.addEventListener("change",()=>{e.settings.occurrenceFilenameTemplate=i.value,t()}),a.appendChild(i),r.createDiv({text:n("settings.taskProperties.titleCard.occurrenceFilenameTemplateHelp"),cls:"setting-item-description"});let s=r.createDiv("tasknotes-settings__card-config-row");s.createSpan({text:n("settings.taskProperties.titleCard.occurrenceFilenameProperty"),cls:"tasknotes-settings__card-config-label"});let o=Ke("text","occurrenceFilenameTemplate",e.settings.occurrenceFilenameTemplateProperty);if(o.addEventListener("change",()=>{e.settings.occurrenceFilenameTemplateProperty=o.value.trim()||"occurrenceFilenameTemplate",t()}),s.appendChild(o),r.createDiv({text:n("settings.taskProperties.titleCard.occurrenceFilenamePropertyHelp"),cls:"setting-item-description"}),e.settings.storeTitleInFilename){r.createDiv({text:n("settings.taskProperties.titleCard.filenameUpdatesWithTitle"),cls:"setting-item-description"});return}let l=r.createDiv("tasknotes-settings__card-config-row");l.createSpan({text:n("settings.taskProperties.titleCard.filenameFormat"),cls:"tasknotes-settings__card-config-label"});let c=ma([{value:"title",label:n("settings.appearance.taskFilenames.filenameFormat.options.title")},{value:"zettel",label:n("settings.appearance.taskFilenames.filenameFormat.options.zettel")},{value:"timestamp",label:n("settings.appearance.taskFilenames.filenameFormat.options.timestamp")},{value:"uuid",label:n("settings.appearance.taskFilenames.filenameFormat.options.uuid")},{value:"custom",label:n("settings.appearance.taskFilenames.filenameFormat.options.custom")}],e.settings.taskFilenameFormat);if(c.addEventListener("change",()=>{e.settings.taskFilenameFormat=c.value,t(),U8e(r,e,t,n)}),l.appendChild(c),e.settings.taskFilenameFormat==="custom"){let d=r.createDiv("tasknotes-settings__card-config-row");d.createSpan({text:n("settings.taskProperties.titleCard.customTemplate"),cls:"tasknotes-settings__card-config-label"});let u=Ke("text",n("settings.appearance.taskFilenames.customTemplate.placeholder"),e.settings.customFilenameTemplate);u.classList.remove("tn-static-width-12px-fbf353fb","tn-static-width-16px-7375d50b","tn-static-width-1px-aa77e27e","tn-static-width-200px-2acaf3b5","tn-static-width-60px-bd09c419","tn-static-width-80px-8573bae3"),u.classList.add("tn-static-width-100-0466783d");let p=r.createDiv(),m=()=>{p.empty();let f=u.value,h=/\{[a-zA-Z]+\}/g,g=/\{\{[a-zA-Z]+\}\}/g,v=f.replace(g,"");if(h.test(v)){let k=p.createDiv({cls:"setting-item-description mod-warning"});k.classList.remove("tn-static-color-var-color-accent-d2cad743","tn-static-color-var-text-accent-65b47ee3","tn-static-color-var-text-muted-5872de20","tn-static-color-var-text-on-accent-f3e1679d","tn-static-color-var-tn-text-muted-a90fb6f3","tn-static-color-white-0a43e56a","tn-static-cursor-pointer-2723efcc","tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-2px-0-edce9b14","tn-static-padding-20px-7a035d95","tn-static-padding-20px-ebe8e48c"),k.classList.add("tn-static-color-var-text-warning-783d5f03"),k.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-f4f01e68"),k.classList.add("tn-static-margin-top-8px-8a77e5a3"),k.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),k.classList.add("tn-static-display-flex-75816cae"),k.classList.remove("tn-static-align-items-baseline-4b95b5c7","tn-static-align-items-center-7c619740"),k.classList.add("tn-static-align-items-flex-start-0486f781"),k.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-0-5rem-ce2fca4d","tn-static-gap-10px-f3d7ce77","tn-static-gap-12px-ed7b3d87","tn-static-gap-8px-33fcd4c3"),k.classList.add("tn-static-gap-6px-f0abc1db");let w=k.createSpan();(0,B8e.setIcon)(w,"alert-triangle"),w.classList.add("tn-static-flex-shrink-0-6ee0661e");let S=k.createSpan();S.textContent=n("settings.taskProperties.titleCard.legacySyntaxWarning")}};u.addEventListener("change",()=>{e.settings.customFilenameTemplate=u.value,t(),m()}),u.addEventListener("input",m),d.appendChild(u),r.createDiv({text:n("settings.appearance.taskFilenames.customTemplate.helpText"),cls:"setting-item-description"}),m()}}var H8e=require("obsidian");ro();fi();var Hp=require("obsidian"),rse=class extends Hp.AbstractInputSuggest{constructor(e,t){super(e,t),this.input=t}getSuggestions(e){let t=(0,Hp.getIconIds)(),n=e.toLowerCase().trim();return n?t.filter(a=>a.toLowerCase().includes(n)).map(a=>({id:a,display:a})):["check","circle","clock","star","flag","alert-circle","calendar","bookmark","play","pause","square","x","check-circle","minus-circle","plus-circle","loader"].filter(i=>t.includes(i)).map(i=>({id:i,display:i}))}renderSuggestion(e,t){t.addClass("icon-suggestion-item");let n=t.createSpan("icon-suggestion-preview");(0,Hp.setIcon)(n,e.id),t.createSpan({text:e.display,cls:"icon-suggestion-text"})}selectSuggestion(e){this.input.value=e.id,this.input.dispatchEvent(new Event("input",{bubbles:!0})),this.input.dispatchEvent(new Event("change",{bubbles:!0})),this.close()}};function V$(r,e,t,n){let a=activeWindow.createDiv();a.addClass("icon-input-container");let i=activeWindow.createSpan();i.addClass("icon-input-preview"),a.appendChild(i);let s=activeWindow.createEl("input");s.type="text",s.addClass("tasknotes-settings__card-input"),s.addClass("icon-input"),s.placeholder=e,t&&(s.value=t,(0,Hp.setIcon)(i,t),i.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),i.classList.add("tn-static-display-flex-75816cae")),a.appendChild(s);let o=()=>{let l=s.value.trim();l&&(0,Hp.getIconIds)().includes(l)?(i.empty(),(0,Hp.setIcon)(i,l),i.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),i.classList.add("tn-static-display-flex-75816cae")):(i.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),i.classList.add("tn-static-display-none-6b99de8b"))};return s.addEventListener("input",()=>{o(),n&&n(s.value)}),new rse(r,s),{container:a,input:s}}function nse(r,e,t,n){let a=Ke("text","status",e.settings.fieldMapping.status),i=e.settings.customStatuses.map(k=>k.value);!i.includes(e.settings.defaultTaskStatus)&&i.length>0&&(e.settings.defaultTaskStatus=i[0],t());let s=ma(e.settings.customStatuses.map(k=>({value:k.value,label:k.label||k.value})),e.settings.defaultTaskStatus);a.addEventListener("change",()=>{e.settings.fieldMapping.status=a.value,t()}),s.addEventListener("change",()=>{e.settings.defaultTaskStatus=s.value,t()});let o=activeWindow.createDiv();o.addClass("tasknotes-settings__nested-cards");let l=o.createDiv("tasknotes-settings__collapsible-section"),c=l.createDiv("tasknotes-settings__collapsible-section-header");c.createSpan({text:n("settings.taskProperties.statusCard.valuesHeader"),cls:"tasknotes-settings__collapsible-section-title"});let d=c.createSpan("tasknotes-settings__collapsible-section-chevron");(0,H8e.setIcon)(d,"chevron-down");let u=l.createDiv("tasknotes-settings__collapsible-section-content"),p=u.createDiv("tasknotes-settings__help-section");p.createEl("h4",{text:n("settings.taskProperties.taskStatuses.howTheyWork.title")});let m=p.createEl("ul");m.createEl("li",{text:n("settings.taskProperties.taskStatuses.howTheyWork.value")}),m.createEl("li",{text:n("settings.taskProperties.taskStatuses.howTheyWork.label")}),m.createEl("li",{text:n("settings.taskProperties.taskStatuses.howTheyWork.color")}),m.createEl("li",{text:n("settings.taskProperties.taskStatuses.howTheyWork.icon")}),m.createEl("li",{text:n("settings.taskProperties.taskStatuses.howTheyWork.completed")}),m.createEl("li",{text:n("settings.taskProperties.taskStatuses.howTheyWork.autoArchive")}),p.createEl("p",{text:n("settings.taskProperties.taskStatuses.howTheyWork.orderNote"),cls:"setting-item-description"});let f=u.createDiv("tasknotes-statuses-container");wA(f,e,t,n,()=>{s.empty(),e.settings.customStatuses.forEach(k=>{let w=s.createEl("option",{value:k.value,text:k.label||k.value});k.value===e.settings.defaultTaskStatus&&(w.selected=!0)})});let h=u.createEl("button",{text:n("settings.taskProperties.taskStatuses.addNew.buttonText"),cls:"tn-btn tn-btn--ghost"});h.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),h.classList.add("tn-static-margin-top-0-5rem-3dc98b5e"),h.onclick=()=>{let w={id:`status_${Date.now()}`,value:"",label:"",color:"#6366f1",completed:!1,isCompleted:!1,excludeFromCycle:!1,order:e.settings.customStatuses.length,autoArchive:!1,autoArchiveDelay:5};e.settings.customStatuses.push(w),t(),wA(f,e,t,n,()=>{s.empty(),e.settings.customStatuses.forEach(S=>{let C=s.createEl("option",{value:S.value,text:S.label||S.value});S.value===e.settings.defaultTaskStatus&&(C.selected=!0)})})},c.addEventListener("click",()=>{l.toggleClass("tasknotes-settings__collapsible-section--collapsed",!l.hasClass("tasknotes-settings__collapsible-section--collapsed"))});let g=Cl(e,"status","*",t,n),b=[{label:"",input:rs(n("settings.taskProperties.properties.status.description")),fullWidth:!0},{label:n("settings.taskProperties.propertyCard.propertyKey"),input:a},{label:n("settings.taskProperties.propertyCard.default"),input:s},...g,{label:"",input:o,fullWidth:!0}];Tr(r,{id:"property-status",collapsible:!0,defaultCollapsed:!0,header:{primaryText:n("settings.taskProperties.properties.status.name"),secondaryText:e.settings.fieldMapping.status},content:{sections:[{rows:b}]}})}function wA(r,e,t,n,a){if(r.empty(),!e.settings.customStatuses||e.settings.customStatuses.length===0){Gc(r,n("settings.taskProperties.taskStatuses.emptyState"));return}let i=[...e.settings.customStatuses].sort((s,o)=>s.order-o.order);i.forEach(s=>{let o=s.value,l=Ke("text",n("settings.taskProperties.taskStatuses.placeholders.value"),s.value),c=Ke("text",n("settings.taskProperties.taskStatuses.placeholders.label"),s.label),d=Lk(s.color),{container:u,input:p}=V$(e.app,n("settings.taskProperties.taskStatuses.placeholders.icon"),s.icon||""),m=xn(s.isCompleted||!1,E=>{s.isCompleted=E;let D=k==null?void 0:k.querySelector(".tasknotes-settings__card-meta");D&&(D.empty(),s.isCompleted&&D.appendChild(Ui(n("settings.taskProperties.taskStatuses.badges.completed"),"completed"))),t()}),f=xn(s.excludeFromCycle||!1,E=>{s.excludeFromCycle=E,t()}),h=ma([{value:"",label:n("settings.taskProperties.taskStatuses.placeholders.nextStatusDefault")},...i.filter(E=>E.id!==s.id).map(E=>({value:E.value,label:E.label||E.value}))],s.nextStatus===s.value?"":s.nextStatus||""),g=xn(s.autoArchive||!1,E=>{s.autoArchive=E,t(),w()}),v=xm(1,1440,1,s.autoArchiveDelay||5),b=s.isCompleted?[Ui(n("settings.taskProperties.taskStatuses.badges.completed"),"completed")]:[],k,w=()=>{let E=v.closest(".tasknotes-settings__card-config-row");E&&(E.style.display=s.autoArchive?"flex":"none")},S=()=>{(async()=>{let E=n("settings.taskProperties.taskStatuses.deleteConfirm",{label:s.label||s.value});if(!await Ir(e.app,{title:n("common.confirm"),message:E,confirmText:n("common.confirm"),cancelText:n("common.cancel"),isDestructive:!0}))return;let P=e.settings.customStatuses.findIndex(O=>O.id===s.id);if(P!==-1){let O=e.settings.defaultTaskStatus===s.value,z=e.settings.customStatuses[P].value;e.settings.customStatuses.splice(P,1),e.settings.customStatuses.forEach((R,A)=>{R.order=A,R.nextStatus===z&&delete R.nextStatus}),O&&e.settings.customStatuses.length>0&&(e.settings.defaultTaskStatus=e.settings.customStatuses[0].value),t(),wA(r,e,t,n,a),a&&a()}})()},C={id:s.id,draggable:!0,collapsible:!0,defaultCollapsed:!0,colorIndicator:{color:s.color,cssVar:"--status-color"},header:{primaryText:s.value||"untitled",secondaryText:s.label||"No label",meta:b,actions:[Wl(S)]},content:{sections:[{rows:[{label:n("settings.taskProperties.taskStatuses.fields.value"),input:l},{label:n("settings.taskProperties.taskStatuses.fields.label"),input:c},{label:n("settings.taskProperties.taskStatuses.fields.color"),input:d},{label:n("settings.taskProperties.taskStatuses.fields.icon"),input:u},{label:n("settings.taskProperties.taskStatuses.fields.completed"),input:m},{label:n("settings.taskProperties.taskStatuses.fields.excludeFromCycle"),input:f},{label:n("settings.taskProperties.taskStatuses.fields.nextStatus"),input:h},{label:n("settings.taskProperties.taskStatuses.fields.autoArchive"),input:g},{label:n("settings.taskProperties.taskStatuses.fields.delayMinutes"),input:v}]}]}};k=Tr(r,C),w(),l.addEventListener("input",()=>{s.value=l.value,k.querySelector(".tasknotes-settings__card-primary-text").textContent=s.value||"untitled",t(),a&&a()}),l.addEventListener("change",()=>{o!==s.value&&(e.settings.customStatuses.forEach(E=>{E.nextStatus===o&&(E.nextStatus=E.id===s.id||!s.value?void 0:s.value)}),o=s.value,t(),wA(r,e,t,n,a))}),c.addEventListener("input",()=>{s.label=c.value,k.querySelector(".tasknotes-settings__card-secondary-text").textContent=s.label||"No label",t(),a&&a()}),d.addEventListener("change",()=>{s.color=zk(d,s.color||"#6366f1");let E=k.querySelector(".tasknotes-settings__card-color-indicator");E&&(E.style.backgroundColor=s.color),t()}),p.addEventListener("change",()=>{s.icon=p.value.trim()||void 0,t()}),h.addEventListener("change",()=>{s.nextStatus=h.value&&h.value!==s.value?h.value:void 0,t()}),v.addEventListener("change",()=>{let E=parseInt(v.value);!isNaN(E)&&E>=1&&E<=1440&&(s.autoArchiveDelay=E,t())}),jk(k,r,(E,D,P)=>{let O=e.settings.customStatuses.findIndex($=>$.id===E),z=e.settings.customStatuses.findIndex($=>$.id===D);if(O===-1||z===-1)return;let R=[...e.settings.customStatuses],[A]=R.splice(O,1),F=z;O<z&&(F=z-1),P||F++,R.splice(F,0,A),R.forEach(($,B)=>{$.order=B}),e.settings.customStatuses=R,t(),wA(r,e,t,n,a)})})}var W$=require("obsidian");fi();function ase(r,e,t,n){let a=Ke("text","priority",e.settings.fieldMapping.priority),i=e.settings.customPriorities.map(k=>k.value);e.settings.defaultTaskPriority!==""&&!i.includes(e.settings.defaultTaskPriority)&&(e.settings.defaultTaskPriority=i.length>0?i[0]:"",t());let s=ma([{value:"",label:n("settings.defaults.options.noDefault")},...e.settings.customPriorities.map(k=>({value:k.value,label:k.label||k.value}))],e.settings.defaultTaskPriority);a.addEventListener("change",()=>{e.settings.fieldMapping.priority=a.value,t()}),s.addEventListener("change",()=>{e.settings.defaultTaskPriority=s.value,t()});let o=activeWindow.createDiv();o.addClass("tasknotes-settings__nested-cards");let l=o.createDiv("tasknotes-settings__collapsible-section"),c=l.createDiv("tasknotes-settings__collapsible-section-header");c.createSpan({text:n("settings.taskProperties.priorityCard.valuesHeader"),cls:"tasknotes-settings__collapsible-section-title"});let d=c.createSpan("tasknotes-settings__collapsible-section-chevron");(0,W$.setIcon)(d,"chevron-down");let u=l.createDiv("tasknotes-settings__collapsible-section-content"),p=u.createDiv("tasknotes-settings__help-section");p.createEl("h4",{text:n("settings.taskProperties.taskPriorities.howTheyWork.title")});let m=p.createEl("ul");m.createEl("li",{text:n("settings.taskProperties.taskPriorities.howTheyWork.value")}),m.createEl("li",{text:n("settings.taskProperties.taskPriorities.howTheyWork.label")}),m.createEl("li",{text:n("settings.taskProperties.taskPriorities.howTheyWork.color")}),m.createEl("li",{text:n("settings.taskProperties.taskPriorities.howTheyWork.icon")});let f=u.createDiv("tasknotes-priorities-container");q$(f,e,t,n,()=>{s.empty();let k=s.createEl("option",{value:"",text:n("settings.defaults.options.noDefault")});e.settings.defaultTaskPriority===""&&(k.selected=!0),e.settings.customPriorities.forEach(w=>{let S=s.createEl("option",{value:w.value,text:w.label||w.value});w.value===e.settings.defaultTaskPriority&&(S.selected=!0)})});let h=u.createEl("button",{text:n("settings.taskProperties.taskPriorities.addNew.buttonText"),cls:"tn-btn tn-btn--ghost"});h.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),h.classList.add("tn-static-margin-top-0-5rem-3dc98b5e"),h.onclick=()=>{let k=`priority_${Date.now()}`,w=e.settings.customPriorities.reduce((C,E)=>Math.max(C,E.weight),-1),S={id:k,value:"",label:"",color:"#6366f1",weight:w+1};e.settings.customPriorities.push(S),t(),q$(f,e,t,n,()=>{s.empty();let C=s.createEl("option",{value:"",text:n("settings.defaults.options.noDefault")});e.settings.defaultTaskPriority===""&&(C.selected=!0),e.settings.customPriorities.forEach(E=>{let D=s.createEl("option",{value:E.value,text:E.label||E.value});E.value===e.settings.defaultTaskPriority&&(D.selected=!0)})})},c.addEventListener("click",()=>{l.toggleClass("tasknotes-settings__collapsible-section--collapsed",!l.hasClass("tasknotes-settings__collapsible-section--collapsed"))});let g=Cl(e,"priority","!",t,n),b=[{label:"",input:rs(n("settings.taskProperties.properties.priority.description")),fullWidth:!0},{label:n("settings.taskProperties.propertyCard.propertyKey"),input:a},{label:n("settings.taskProperties.propertyCard.default"),input:s},...g,{label:"",input:o,fullWidth:!0}];Tr(r,{id:"property-priority",collapsible:!0,defaultCollapsed:!0,header:{primaryText:n("settings.taskProperties.properties.priority.name"),secondaryText:e.settings.fieldMapping.priority},content:{sections:[{rows:b}]}})}function q$(r,e,t,n,a){if(r.empty(),!e.settings.customPriorities||e.settings.customPriorities.length===0){Gc(r,n("settings.taskProperties.taskPriorities.emptyState"));return}[...e.settings.customPriorities].sort((s,o)=>s.weight-o.weight).forEach(s=>{let o=Ke("text",n("settings.taskProperties.taskPriorities.placeholders.value"),s.value),l=Ke("text",n("settings.taskProperties.taskPriorities.placeholders.label"),s.label),c=Lk(s.color),{container:d,input:u}=V$(e.app,n("settings.taskProperties.taskPriorities.placeholders.icon"),s.icon||""),p=Tr(r,{id:s.id,draggable:!0,collapsible:!0,defaultCollapsed:!0,colorIndicator:{color:s.color},header:{primaryText:s.label||s.value||"untitled",actions:[Wl(()=>{if(e.settings.customPriorities.length<=1){new W$.Notice(n("settings.taskProperties.taskPriorities.deleteConfirm"));return}let m=e.settings.customPriorities.findIndex(f=>f.id===s.id);if(m!==-1){let f=e.settings.defaultTaskPriority===s.value;e.settings.customPriorities.splice(m,1),e.settings.customPriorities.sort((h,g)=>h.weight-g.weight).forEach((h,g)=>{h.weight=g}),f&&(e.settings.defaultTaskPriority=e.settings.customPriorities.length>0?e.settings.customPriorities[0].value:""),t(),q$(r,e,t,n,a),a&&a()}},n("settings.taskProperties.taskPriorities.deleteTooltip"))]},content:{sections:[{rows:[{label:n("settings.taskProperties.taskPriorities.fields.value"),input:o},{label:n("settings.taskProperties.taskPriorities.fields.label"),input:l},{label:n("settings.taskProperties.taskPriorities.fields.color"),input:c},{label:n("settings.taskProperties.taskPriorities.fields.icon"),input:d}]}]}});o.addEventListener("input",()=>{s.value=o.value,t(),a&&a()}),l.addEventListener("input",()=>{s.label=l.value,p.querySelector(".tasknotes-settings__card-primary-text").textContent=s.label||s.value||"untitled",t(),a&&a()}),c.addEventListener("change",()=>{s.color=zk(c,s.color||"#6366f1");let m=p.querySelector(".tasknotes-settings__card-color-indicator");m&&(m.style.backgroundColor=s.color),t()}),u.addEventListener("change",()=>{s.icon=u.value.trim()||void 0,t()}),jk(p,r,(m,f,h)=>{let g=e.settings.customPriorities.findIndex(E=>E.id===m),v=e.settings.customPriorities.findIndex(E=>E.id===f);if(g===-1||v===-1)return;let b=[...e.settings.customPriorities].sort((E,D)=>E.weight-D.weight),k=b.findIndex(E=>E.id===m),w=b.findIndex(E=>E.id===f),[S]=b.splice(k,1),C=w;k<w&&(C=w-1),h||C++,b.splice(C,0,S),b.forEach((E,D)=>{E.weight=D}),e.settings.customPriorities=b,t(),q$(r,e,t,n,a)})})}var SA=require("obsidian");fi();fi();function Y$(r,e,t,n){var u,p;let a=e||{requiredTags:[],includeFolders:[],propertyKey:"",propertyValue:""},i=m=>{a={...a,...m},t(a)},s=Ke("text",n("settings.appearance.projectAutosuggest.requiredTags.placeholder"),((u=a.requiredTags)==null?void 0:u.join(", "))||"");s.addEventListener("change",()=>{let m=s.value.split(",").map(f=>f.trim()).filter(Boolean);i({requiredTags:m})});let o=Ke("text",n("settings.appearance.projectAutosuggest.includeFolders.placeholder"),((p=a.includeFolders)==null?void 0:p.join(", "))||"");o.addEventListener("change",()=>{let m=o.value.split(",").map(f=>f.trim()).filter(Boolean);i({includeFolders:m})});let l=Ke("text",n("settings.appearance.projectAutosuggest.requiredPropertyKey.placeholder"),a.propertyKey||"");l.addEventListener("change",()=>{i({propertyKey:l.value.trim()})});let c=Ke("text",n("settings.appearance.projectAutosuggest.requiredPropertyValue.placeholder"),a.propertyValue||"");c.addEventListener("change",()=>{i({propertyValue:c.value.trim()})});let d=(m,f)=>{let h=r.createDiv("tasknotes-settings__card-config-row"),g=h.createSpan("tasknotes-settings__card-config-label");g.textContent=m,h.appendChild(f)};d(n("settings.appearance.projectAutosuggest.requiredTags.name"),s),d(n("settings.appearance.projectAutosuggest.includeFolders.name"),o),d(n("settings.appearance.projectAutosuggest.requiredPropertyKey.name"),l),d(n("settings.appearance.projectAutosuggest.requiredPropertyValue.name"),c)}qv();am();function sse(r,e,t,n){let a=r.createDiv(),i=!0;function s(){a.empty();let o=Ke("text","projects",e.settings.fieldMapping.projects);o.addEventListener("change",()=>{e.settings.fieldMapping.projects=o.value,t()});let l=activeWindow.createDiv();l.addClass("tasknotes-settings__nested-content");let c=[],d=l.createDiv("default-projects-container");e.settings.taskCreationDefaults.defaultProjects&&qs(e.settings.taskCreationDefaults.defaultProjects).map(E=>E.replace(/\[\[|\]\]/g,"").trim()).filter(E=>E).forEach(E=>{let D=e.app.vault.getAbstractFileByPath(E+".md")||e.app.vault.getAbstractFileByPath(E);D&&c.push(D)});let p=d.createDiv().createEl("button",{text:n("settings.defaults.basicDefaults.defaultProjects.selectButton"),cls:"tn-btn tn-btn--ghost"});p.onclick=()=>{new Ao(e.app,e,E=>{if(!c.includes(E)){c.push(E);let D=c.map(P=>`[[${P.path.replace(/\.md$/,"")}]]`).join(", ");e.settings.taskCreationDefaults.defaultProjects=D,t(),ise(m,e,t,c,n)}}).open()};let m=d.createDiv("default-projects-list-container");ise(m,e,t,c,n);let f=xn(e.settings.taskCreationDefaults.useParentNoteForTaskCreation,C=>{e.settings.taskCreationDefaults.useParentNoteForTaskCreation=C,t()}),h=xn(e.settings.taskCreationDefaults.useParentNoteAsProject,C=>{e.settings.taskCreationDefaults.useParentNoteAsProject=C,t()}),g=xn(e.settings.taskCreationDefaults.useParentHeaderAsProject,C=>{e.settings.taskCreationDefaults.useParentHeaderAsProject=C,t()}),v=xn(e.settings.taskCreationDefaults.inheritParentTaskProperties,C=>{e.settings.taskCreationDefaults.inheritParentTaskProperties=C,t()}),b=Cl(e,"projects","+",t,n),k=rs(n("settings.taskProperties.properties.projects.description")),w=activeWindow.createDiv();w.addClass("tasknotes-settings__nested-content"),DYt(w,e,t,n,s);let S=[{label:"",input:k,fullWidth:!0},{label:n("settings.taskProperties.propertyCard.propertyKey"),input:o},{label:n("settings.taskProperties.projectsCard.defaultProjects"),input:l,fullWidth:!0},{label:n("settings.taskProperties.projectsCard.useParentNoteForTaskCreation"),input:f},{label:n("settings.taskProperties.projectsCard.useParentNoteForInlineTasks"),input:h},{label:n("settings.taskProperties.projectsCard.useParentHeader"),input:g},{label:n("settings.taskProperties.projectsCard.inheritParentTaskProperties"),input:v},...b,{label:"",input:w,fullWidth:!0}];Tr(a,{id:"property-projects",collapsible:!0,defaultCollapsed:i,onCollapseChange:C=>{i=C},header:{primaryText:n("settings.taskProperties.properties.projects.name"),secondaryText:e.settings.fieldMapping.projects},content:{sections:[{rows:S}]}})}s()}function DYt(r,e,t,n,a){r.empty(),e.settings.projectAutosuggest||(e.settings.projectAutosuggest={enableFuzzy:!1,rows:[],showAdvanced:!1,requiredTags:[],includeFolders:[],propertyKey:"",propertyValue:""});let i=()=>{let $=e.settings.projectAutosuggest;return $?$.requiredTags&&$.requiredTags.length>0||$.includeFolders&&$.includeFolders.length>0||$.propertyKey&&$.propertyKey.trim()!=="":!1},s=e.settings.projectAutosuggest;if(!s)return;let o=r.createDiv("tasknotes-settings__collapsible-section");o.addClass("tasknotes-settings__collapsible-section--collapsed");let l=o.createDiv("tasknotes-settings__collapsible-section-header"),c=l.createDiv("tasknotes-settings__collapsible-section-header-left");c.createSpan({text:n("settings.taskProperties.projectsCard.autosuggestFilters"),cls:"tasknotes-settings__collapsible-section-title"});let d=c.createSpan("tasknotes-settings__filter-badge"),u=()=>{if(i()){d.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),d.classList.add("tn-static-display-inline-flex-f984c520"),d.empty();let $=d.createSpan();(0,SA.setIcon)($,"filter"),d.createSpan({text:n("settings.taskProperties.projectsCard.filtersOn")})}else d.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),d.classList.add("tn-static-display-none-6b99de8b"),d.empty()};u();let p=l.createSpan("tasknotes-settings__collapsible-section-chevron");(0,SA.setIcon)(p,"chevron-down");let m=o.createDiv("tasknotes-settings__collapsible-section-content");Y$(m,{requiredTags:s.requiredTags,includeFolders:s.includeFolders,propertyKey:s.propertyKey,propertyValue:s.propertyValue},$=>{s.requiredTags=$.requiredTags,s.includeFolders=$.includeFolders,s.propertyKey=$.propertyKey,s.propertyValue=$.propertyValue,u(),t()},n),l.addEventListener("click",()=>{o.toggleClass("tasknotes-settings__collapsible-section--collapsed",!o.hasClass("tasknotes-settings__collapsible-section--collapsed"))});let f=r.createDiv("tasknotes-settings__collapsible-section");f.addClass("tasknotes-settings__collapsible-section--collapsed");let h=f.createDiv("tasknotes-settings__collapsible-section-header");h.createDiv("tasknotes-settings__collapsible-section-header-left").createSpan({text:n("settings.taskProperties.projectsCard.customizeDisplay"),cls:"tasknotes-settings__collapsible-section-title"});let v=h.createSpan("tasknotes-settings__collapsible-section-chevron");(0,SA.setIcon)(v,"chevron-down");let b=f.createDiv("tasknotes-settings__collapsible-section-content"),k=b.createDiv("tasknotes-settings__card-config-row");k.createSpan({text:n("settings.appearance.projectAutosuggest.enableFuzzyMatching.name"),cls:"tasknotes-settings__card-config-label"});let w=xn(s.enableFuzzy,$=>{s.enableFuzzy=$,t()});k.appendChild(w),b.createDiv({text:n("settings.appearance.projectAutosuggest.displayRowsHelp"),cls:"setting-item-description"});let S=()=>{var $,B;return((B=($=e.settings.projectAutosuggest)==null?void 0:$.rows)!=null?B:[]).slice(0,3)},C=($,B)=>{var G;if(!e.settings.projectAutosuggest)return;let Q=[...(G=e.settings.projectAutosuggest.rows)!=null?G:[]];Q[$]=B,e.settings.projectAutosuggest.rows=Q.slice(0,3),t()},E=b.createDiv("tasknotes-settings__card-config-row");E.createSpan({text:n("settings.appearance.projectAutosuggest.displayRows.row1.name"),cls:"tasknotes-settings__card-config-label"});let D=Ke("text",n("settings.appearance.projectAutosuggest.displayRows.row1.placeholder"),S()[0]||"");D.addEventListener("change",()=>C(0,D.value)),E.appendChild(D);let P=b.createDiv("tasknotes-settings__card-config-row");P.createSpan({text:n("settings.appearance.projectAutosuggest.displayRows.row2.name"),cls:"tasknotes-settings__card-config-label"});let O=Ke("text",n("settings.appearance.projectAutosuggest.displayRows.row2.placeholder"),S()[1]||"");O.addEventListener("change",()=>C(1,O.value)),P.appendChild(O);let z=b.createDiv("tasknotes-settings__card-config-row");z.createSpan({text:n("settings.appearance.projectAutosuggest.displayRows.row3.name"),cls:"tasknotes-settings__card-config-label"});let R=Ke("text",n("settings.appearance.projectAutosuggest.displayRows.row3.placeholder"),S()[2]||"");R.addEventListener("change",()=>C(2,R.value)),z.appendChild(R);let A=b.createDiv("tasknotes-settings__help-section");A.createEl("h4",{text:n("settings.appearance.projectAutosuggest.quickReference.header")});let F=A.createEl("ul");F.createEl("li",{text:n("settings.appearance.projectAutosuggest.quickReference.properties")}),F.createEl("li",{text:n("settings.appearance.projectAutosuggest.quickReference.labels")}),F.createEl("li",{text:n("settings.appearance.projectAutosuggest.quickReference.searchable")}),F.createEl("li",{text:n("settings.appearance.projectAutosuggest.quickReference.staticText")}),A.createEl("p",{text:n("settings.appearance.projectAutosuggest.quickReference.alwaysSearchable"),cls:"settings-help-note"}),h.addEventListener("click",()=>{f.toggleClass("tasknotes-settings__collapsible-section--collapsed",!f.hasClass("tasknotes-settings__collapsible-section--collapsed"))})}function ise(r,e,t,n,a){if(r.empty(),n.length===0){r.createDiv({text:a("settings.taskProperties.projectsCard.noDefaultProjects"),cls:"setting-item-description"});return}n.forEach(i=>{let s=r.createDiv("tasknotes-settings__project-item");s.createSpan({text:i.name.replace(/\.md$/,"")});let o=s.createEl("button",{cls:"tasknotes-settings__card-header-btn tasknotes-settings__card-header-btn--delete"});(0,SA.setIcon)(o,"x"),o.title=a("settings.defaults.basicDefaults.defaultProjects.removeTooltip",{name:i.name}),o.onclick=()=>{let l=n.indexOf(i);if(l>-1){n.splice(l,1);let c=n.map(d=>`[[${d.path.replace(/\.md$/,"")}]]`).join(", ");e.settings.taskCreationDefaults.defaultProjects=c,t(),ise(r,e,t,n,a)}}})}fi();function ose(r,e,t,n){let a=Ke("text",n("settings.defaults.basicDefaults.defaultTags.placeholder"),e.settings.taskCreationDefaults.defaultTags);a.addEventListener("change",()=>{e.settings.taskCreationDefaults.defaultTags=a.value,t()});let i=Cl(e,"tags","#",t,n),o=[{label:"",input:rs(n("settings.taskProperties.properties.tags.description")),fullWidth:!0},{label:n("settings.taskProperties.propertyCard.default"),input:a},...i];Tr(r,{id:"property-tags",collapsible:!0,defaultCollapsed:!0,header:{primaryText:n("settings.taskProperties.properties.tags.name"),secondaryText:n("settings.taskProperties.tagsCard.nativeObsidianTags")},content:{sections:[{rows:o}]}})}var q8e=require("obsidian");fi();function lse(r,e,t,n){let a=Ke("text","reminders",e.settings.fieldMapping.reminders);a.addEventListener("change",()=>{e.settings.fieldMapping.reminders=a.value,t()});let i=activeWindow.createDiv();i.addClass("tasknotes-settings__nested-cards");let s=i.createDiv("tasknotes-settings__collapsible-section"),o=s.createDiv("tasknotes-settings__collapsible-section-header");o.createSpan({text:n("settings.taskProperties.remindersCard.defaultReminders"),cls:"tasknotes-settings__collapsible-section-title"});let l=o.createSpan("tasknotes-settings__collapsible-section-chevron");(0,q8e.setIcon)(l,"chevron-down");let c=s.createDiv("tasknotes-settings__collapsible-section-content"),d=c.createDiv("tasknotes-reminders-container");G$(d,e,t,n);let u=c.createEl("button",{text:n("settings.defaults.reminders.addReminder.buttonText"),cls:"tn-btn tn-btn--ghost"});u.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-20px-a26bda7d","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),u.classList.add("tn-static-margin-top-0-5rem-3dc98b5e"),u.onclick=()=>{let h={id:`reminder_${Date.now()}`,type:"relative",relatedTo:"due",offset:1,unit:"hours",direction:"before",description:"Reminder"};e.settings.taskCreationDefaults.defaultReminders=e.settings.taskCreationDefaults.defaultReminders||[],e.settings.taskCreationDefaults.defaultReminders.push(h),t(),G$(d,e,t,n)},o.addEventListener("click",()=>{s.toggleClass("tasknotes-settings__collapsible-section--collapsed",!s.hasClass("tasknotes-settings__collapsible-section--collapsed"))});let m=[{label:"",input:rs(n("settings.taskProperties.properties.reminders.description")),fullWidth:!0},{label:n("settings.taskProperties.propertyCard.propertyKey"),input:a},{label:"",input:i,fullWidth:!0}];Tr(r,{id:"property-reminders",collapsible:!0,defaultCollapsed:!0,header:{primaryText:n("settings.taskProperties.properties.reminders.name"),secondaryText:e.settings.fieldMapping.reminders},content:{sections:[{rows:m}]}})}function G$(r,e,t,n){if(r.empty(),!e.settings.taskCreationDefaults.defaultReminders||e.settings.taskCreationDefaults.defaultReminders.length===0){Gc(r,n("settings.defaults.reminders.emptyState"));return}e.settings.taskCreationDefaults.defaultReminders.forEach((a,i)=>{let s=V8e(a,n),o=Ke("text",n("settings.defaults.reminders.reminderDescription"),a.description),l=ma([{value:"relative",label:n("settings.defaults.reminders.types.relative")},{value:"absolute",label:n("settings.defaults.reminders.types.absolute")}],a.type),c=p=>{Object.assign(a,p),t();let m=r.querySelector(`[data-card-id="${a.id}"]`);if(m){let f=m.querySelector(".tasknotes-settings__card-secondary-text");f&&(f.textContent=V8e(a,n))}},d=a.type==="relative"?PYt(a,c,n):MYt(a,c,n),u=Tr(r,{id:a.id,collapsible:!0,defaultCollapsed:!0,header:{primaryText:a.description||n("settings.defaults.reminders.unnamedReminder"),secondaryText:s,actions:[Wl(()=>{e.settings.taskCreationDefaults.defaultReminders.splice(i,1),t(),G$(r,e,t,n)},n("settings.defaults.reminders.deleteTooltip"))]},content:{sections:[{rows:[{label:n("settings.defaults.reminders.fields.description"),input:o},{label:n("settings.defaults.reminders.fields.type"),input:l}]},{rows:d}]}});o.addEventListener("input",()=>{a.description=o.value,t();let p=u.querySelector(".tasknotes-settings__card-primary-text");p&&(p.textContent=a.description||n("settings.defaults.reminders.unnamedReminder"))}),l.addEventListener("change",()=>{a.type=l.value,t(),G$(r,e,t,n)})})}function PYt(r,e,t){let n=xm(0,void 0,1,r.offset);n.addEventListener("input",()=>{let o=parseInt(n.value);!isNaN(o)&&o>=0&&e({offset:o})});let a=ma([{value:"minutes",label:t("settings.defaults.reminders.units.minutes")},{value:"hours",label:t("settings.defaults.reminders.units.hours")},{value:"days",label:t("settings.defaults.reminders.units.days")}],r.unit);a.addEventListener("change",()=>{e({unit:a.value})});let i=ma([{value:"before",label:t("settings.defaults.reminders.directions.before")},{value:"after",label:t("settings.defaults.reminders.directions.after")}],r.direction);i.addEventListener("change",()=>{e({direction:i.value})});let s=ma([{value:"due",label:t("settings.defaults.reminders.relatedTo.due")},{value:"scheduled",label:t("settings.defaults.reminders.relatedTo.scheduled")}],r.relatedTo);return s.addEventListener("change",()=>{e({relatedTo:s.value})}),[{label:t("settings.defaults.reminders.fields.offset"),input:n},{label:t("settings.defaults.reminders.fields.unit"),input:a},{label:t("settings.defaults.reminders.fields.direction"),input:i},{label:t("settings.defaults.reminders.fields.relatedTo"),input:s}]}function MYt(r,e,t){let n=Ke("date",r.absoluteDate||new Date().toISOString().split("T")[0]);n.addEventListener("input",()=>{e({absoluteDate:n.value})});let a=Ke("time",r.absoluteTime||"09:00");return a.addEventListener("input",()=>{e({absoluteTime:a.value})}),[{label:t("settings.defaults.reminders.fields.date"),input:n},{label:t("settings.defaults.reminders.fields.time"),input:a}]}function V8e(r,e){var t;if(r.type==="relative"){let n=r.direction==="before"?e("settings.defaults.reminders.directions.before"):e("settings.defaults.reminders.directions.after"),a=e(`settings.defaults.reminders.units.${r.unit||"hours"}`),i=(t=r.offset)!=null?t:1,s=r.relatedTo==="due"?e("settings.defaults.reminders.relatedTo.due"):e("settings.defaults.reminders.relatedTo.scheduled");return`${i} ${a} ${n} ${s}`}else{let n=r.absoluteDate||e("settings.defaults.reminders.fields.date"),a=r.absoluteTime||e("settings.defaults.reminders.fields.time");return`${n} at ${a}`}}var CA=require("obsidian");fi();vS();function AYt(r,e,t){let n,a;if(r.type==="boolean"){let i=typeof r.defaultValue=="boolean"?r.defaultValue:!1;n=xn(i,s=>{t(s)}),a={label:e("settings.taskProperties.customUserFields.fields.defaultValue"),input:n}}else if(r.type==="number"){let i=Ke("number",e("settings.taskProperties.customUserFields.placeholders.defaultValue"),r.defaultValue!==void 0?String(r.defaultValue):"");i.addEventListener("input",()=>{let s=i.value.trim();if(s==="")t(void 0);else{let o=parseFloat(s);Number.isNaN(o)||t(o)}}),n=i,a={label:e("settings.taskProperties.customUserFields.fields.defaultValue"),input:n}}else if(r.type==="date"){let i=typeof r.defaultValue=="string"?r.defaultValue:"none",s=ma([{value:"none",label:e("settings.defaults.options.none")},{value:"today",label:e("settings.defaults.options.today")},{value:"tomorrow",label:e("settings.defaults.options.tomorrow")},{value:"next-week",label:e("settings.defaults.options.nextWeek")}],i);s.addEventListener("change",()=>{let o=s.value;t(o==="none"?void 0:o)}),n=s,a={label:e("settings.taskProperties.customUserFields.fields.defaultValue"),input:n}}else if(r.type==="list"){let i=Array.isArray(r.defaultValue)?r.defaultValue.join(", "):"",s=Ke("text",e("settings.taskProperties.customUserFields.placeholders.defaultValueList"),i);s.addEventListener("input",()=>{let o=s.value.trim();t(o===""?void 0:o.split(",").map(l=>l.trim()).filter(l=>l))}),n=s,a={label:e("settings.taskProperties.customUserFields.fields.defaultValue"),input:n}}else{let i=Ke("text",e("settings.taskProperties.customUserFields.placeholders.defaultValue"),typeof r.defaultValue=="string"?r.defaultValue:"");i.addEventListener("input",()=>{let s=i.value.trim();t(s===""?void 0:s)}),n=i,a={label:e("settings.taskProperties.customUserFields.fields.defaultValue"),input:n}}return{element:n,row:a}}function cse(r,e,t,n){if(Array.isArray(e.settings.userFields)||(e.settings.userFields=[]),e.settings.userField&&e.settings.userField.enabled){let i=e.settings.userField,s=(i.displayName||i.key||"field").toLowerCase().replace(/[^a-z0-9_-]/g,"-");e.settings.userFields.find(o=>o.id===s||o.key===i.key)||(e.settings.userFields.push({id:s,displayName:i.displayName||"",key:i.key||"",type:i.type||"text"}),t())}let a=r.createDiv("tasknotes-user-fields-container");xA(a,e,t,n),new CA.Setting(r).setName(n("settings.taskProperties.customUserFields.addNew.name")).setDesc(n("settings.taskProperties.customUserFields.addNew.description")).addButton(i=>i.setButtonText(n("settings.taskProperties.customUserFields.addNew.buttonText")).onClick(async()=>{e.settings.userFields||(e.settings.userFields=[]);let s=`field_${Date.now()}`,o={id:s,displayName:"",key:"",type:"text"};if(e.settings.userFields.push(o),!e.settings.modalFieldsConfig)e.settings.modalFieldsConfig=Cc(void 0,e.settings.userFields);else{let l=e.settings.modalFieldsConfig.fields.filter(d=>d.group==="custom"),c=l.length>0?Math.max(...l.map(d=>d.order)):-1;e.settings.modalFieldsConfig.fields.push({id:s,fieldType:"user",group:"custom",displayName:o.displayName||"",visibleInCreation:!0,visibleInEdit:!0,order:c+1,enabled:!0})}t(),xA(a,e,t,n)}))}function xA(r,e,t,n,a){if(r.empty(),e.settings.userFields||(e.settings.userFields=[]),e.settings.userFields.length===0){Gc(r,n("settings.taskProperties.customUserFields.emptyState"),n("settings.taskProperties.customUserFields.emptyStateButton"),()=>{let i=activeDocument.querySelector('[data-setting-name="Add new user field"] button');i&&i.click()});return}e.settings.userFields.forEach((i,s)=>{let o=Ke("text",n("settings.taskProperties.customUserFields.placeholders.displayName"),i.displayName),l=Ke("text",n("settings.taskProperties.customUserFields.placeholders.propertyKey"),i.key),c=ma([{value:"text",label:n("settings.taskProperties.customUserFields.types.text")},{value:"number",label:n("settings.taskProperties.customUserFields.types.number")},{value:"boolean",label:n("settings.taskProperties.customUserFields.types.boolean")},{value:"date",label:n("settings.taskProperties.customUserFields.types.date")},{value:"list",label:n("settings.taskProperties.customUserFields.types.list")}],i.type);o.addEventListener("input",()=>{if(i.displayName=o.value,e.settings.modalFieldsConfig){let C=e.settings.modalFieldsConfig.fields.find(E=>E.id===i.id);C&&(C.displayName=i.displayName)}let S=r.querySelector(`[data-card-id="${i.id}"]`);if(S){let C=S.querySelector(".tasknotes-settings__card-header-primary");C&&(C.textContent=i.displayName||n("settings.taskProperties.customUserFields.defaultNames.unnamedField"))}t()}),l.addEventListener("input",()=>{i.key=l.value;let S=r.querySelector(`[data-card-id="${i.id}"]`);if(S){let C=S.querySelector(".tasknotes-settings__card-header-secondary");C&&(C.textContent=i.key||n("settings.taskProperties.customUserFields.defaultNames.noKey"))}t()}),c.addEventListener("change",()=>{i.type=c.value,i.defaultValue=i.type==="boolean"?!1:void 0,t(),xA(r,e,t,n,i.id)});let{row:d}=AYt(i,n,S=>{i.defaultValue=S,t()}),u=Cl(e,i.id,`${i.id}:`,t,n,()=>xA(r,e,t,n)),p=activeWindow.createDiv();p.addClass("tasknotes-settings__collapsible-section"),p.addClass("tasknotes-settings__collapsible-section--collapsed");let m=S=>S?S.requiredTags&&S.requiredTags.length>0||S.includeFolders&&S.includeFolders.length>0||S.propertyKey&&S.propertyKey.trim()!=="":!1,f=p.createDiv("tasknotes-settings__collapsible-section-header"),h=f.createDiv("tasknotes-settings__collapsible-section-header-left"),g=h.createSpan("tasknotes-settings__collapsible-section-title");g.textContent=n("settings.taskProperties.customUserFields.autosuggestFilters.header");let v=h.createSpan("tasknotes-settings__filter-badge"),b=()=>{if(m(i.autosuggestFilter)){v.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),v.classList.add("tn-static-display-inline-flex-f984c520"),v.empty();let S=v.createSpan();(0,CA.setIcon)(S,"filter"),v.createSpan({text:"Filters On"})}else v.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),v.classList.add("tn-static-display-none-6b99de8b")};b();let k=f.createSpan("tasknotes-settings__collapsible-section-chevron");(0,CA.setIcon)(k,"chevron-down");let w=p.createDiv("tasknotes-settings__collapsible-section-content");Y$(w,i.autosuggestFilter,S=>{i.autosuggestFilter=S,b(),t()},n),f.addEventListener("click",()=>{p.hasClass("tasknotes-settings__collapsible-section--collapsed")?p.removeClass("tasknotes-settings__collapsible-section--collapsed"):p.addClass("tasknotes-settings__collapsible-section--collapsed")}),Tr(r,{id:i.id,collapsible:!0,defaultCollapsed:i.id!==a,header:{primaryText:i.displayName||n("settings.taskProperties.customUserFields.defaultNames.unnamedField"),secondaryText:i.key||n("settings.taskProperties.customUserFields.defaultNames.noKey"),meta:[Ui(i.type.charAt(0).toUpperCase()+i.type.slice(1),"default")],actions:[Wl(()=>{var S;if(e.settings.userFields){let C=(S=e.settings.userFields[s])==null?void 0:S.id;e.settings.userFields.splice(s,1),e.settings.modalFieldsConfig&&C&&(e.settings.modalFieldsConfig.fields=e.settings.modalFieldsConfig.fields.filter(E=>E.id!==C)),t(),xA(r,e,t,n)}},n("settings.taskProperties.customUserFields.deleteTooltip"))]},content:{sections:[{rows:[{label:n("settings.taskProperties.customUserFields.fields.displayName"),input:o},{label:n("settings.taskProperties.customUserFields.fields.propertyKey"),input:l},{label:n("settings.taskProperties.customUserFields.fields.type"),input:c},d,...u]},{rows:[{label:"",input:p,fullWidth:!0}]}]}})})}function W8e(r,e,t){r.empty();let n=(i,s)=>e.i18n.translate(i,s),a=(i,s)=>{let o=Ke("time","",i&&i!=="none"?i:"");return o.addEventListener("change",()=>{s(o.value||"none"),t()}),o};Sm(r,n("settings.taskProperties.sections.coreProperties")),Wc(r,n("settings.taskProperties.sections.corePropertiesDesc")),tse(r,e,t,n),nse(r,e,t,n),ase(r,e,t,n),Sm(r,n("settings.taskProperties.sections.dateProperties")),Wc(r,n("settings.taskProperties.sections.datePropertiesDesc")),dv(r,e,t,n,{propertyId:"due",displayName:n("settings.taskProperties.properties.due.name"),description:n("settings.taskProperties.properties.due.description"),hasDefault:!0,defaultType:"date-preset",defaultOptions:[{value:"none",label:n("settings.defaults.options.none")},{value:"today",label:n("settings.defaults.options.today")},{value:"tomorrow",label:n("settings.defaults.options.tomorrow")},{value:"next-week",label:n("settings.defaults.options.nextWeek")}],getDefaultValue:()=>e.settings.taskCreationDefaults.defaultDueDate,setDefaultValue:i=>{e.settings.taskCreationDefaults.defaultDueDate=i,t()},extraRows:[{label:n("settings.defaults.reminders.fields.time"),input:a(e.settings.taskCreationDefaults.defaultDueTime,i=>{e.settings.taskCreationDefaults.defaultDueTime=i})}]}),dv(r,e,t,n,{propertyId:"scheduled",displayName:n("settings.taskProperties.properties.scheduled.name"),description:n("settings.taskProperties.properties.scheduled.description"),hasDefault:!0,defaultType:"date-preset",defaultOptions:[{value:"none",label:n("settings.defaults.options.none")},{value:"today",label:n("settings.defaults.options.today")},{value:"tomorrow",label:n("settings.defaults.options.tomorrow")},{value:"next-week",label:n("settings.defaults.options.nextWeek")}],getDefaultValue:()=>e.settings.taskCreationDefaults.defaultScheduledDate,setDefaultValue:i=>{e.settings.taskCreationDefaults.defaultScheduledDate=i,t()},extraRows:[{label:n("settings.defaults.reminders.fields.time"),input:a(e.settings.taskCreationDefaults.defaultScheduledTime,i=>{e.settings.taskCreationDefaults.defaultScheduledTime=i})}]}),Sm(r,n("settings.taskProperties.sections.organizationProperties")),Wc(r,n("settings.taskProperties.sections.organizationPropertiesDesc")),dv(r,e,t,n,{propertyId:"contexts",displayName:n("settings.taskProperties.properties.contexts.name"),description:n("settings.taskProperties.properties.contexts.description"),hasDefault:!0,defaultType:"text",defaultPlaceholder:n("settings.defaults.basicDefaults.defaultContexts.placeholder"),getDefaultValue:()=>e.settings.taskCreationDefaults.defaultContexts,setDefaultValue:i=>{e.settings.taskCreationDefaults.defaultContexts=i,t()},hasNLPTrigger:!0,nlpDefaultTrigger:"@"}),sse(r,e,t,n),ose(r,e,t,n),Sm(r,n("settings.taskProperties.sections.taskDetails")),Wc(r,n("settings.taskProperties.sections.taskDetailsDesc")),dv(r,e,t,n,{propertyId:"timeEstimate",displayName:n("settings.taskProperties.properties.timeEstimate.name"),description:n("settings.taskProperties.properties.timeEstimate.description"),hasDefault:!0,defaultType:"number",defaultPlaceholder:n("settings.defaults.basicDefaults.defaultTimeEstimate.placeholder"),getDefaultValue:()=>{var i;return((i=e.settings.taskCreationDefaults.defaultTimeEstimate)==null?void 0:i.toString())||""},setDefaultValue:i=>{e.settings.taskCreationDefaults.defaultTimeEstimate=parseInt(i)||0,t()}}),dv(r,e,t,n,{propertyId:"recurrence",displayName:n("settings.taskProperties.properties.recurrence.name"),description:n("settings.taskProperties.properties.recurrence.description"),hasDefault:!0,defaultType:"dropdown",defaultOptions:[{value:"none",label:n("settings.defaults.options.none")},{value:"daily",label:n("settings.defaults.options.daily")},{value:"weekly",label:n("settings.defaults.options.weekly")},{value:"monthly",label:n("settings.defaults.options.monthly")},{value:"yearly",label:n("settings.defaults.options.yearly")}],getDefaultValue:()=>e.settings.taskCreationDefaults.defaultRecurrence,setDefaultValue:i=>{e.settings.taskCreationDefaults.defaultRecurrence=i,t()}}),ns(r,e,t,n,"recurrenceAnchor",n("settings.taskProperties.properties.recurrenceAnchor.name"),n("settings.taskProperties.properties.recurrenceAnchor.description")),lse(r,e,t,n),Sm(r,n("settings.taskProperties.sections.metadataProperties")),Wc(r,n("settings.taskProperties.sections.metadataPropertiesDesc")),ns(r,e,t,n,"dateCreated",n("settings.taskProperties.properties.dateCreated.name"),n("settings.taskProperties.properties.dateCreated.description")),ns(r,e,t,n,"dateModified",n("settings.taskProperties.properties.dateModified.name"),n("settings.taskProperties.properties.dateModified.description")),ns(r,e,t,n,"completedDate",n("settings.taskProperties.properties.completedDate.name"),n("settings.taskProperties.properties.completedDate.description")),ns(r,e,t,n,"archiveTag",n("settings.taskProperties.properties.archiveTag.name"),n("settings.taskProperties.properties.archiveTag.description")),ns(r,e,t,n,"timeEntries",n("settings.taskProperties.properties.timeEntries.name"),n("settings.taskProperties.properties.timeEntries.description")),ns(r,e,t,n,"completeInstances",n("settings.taskProperties.properties.completeInstances.name"),n("settings.taskProperties.properties.completeInstances.description")),ns(r,e,t,n,"skippedInstances",n("settings.taskProperties.properties.skippedInstances.name"),n("settings.taskProperties.properties.skippedInstances.description")),ns(r,e,t,n,"blockedBy",n("settings.taskProperties.properties.blockedBy.name"),n("settings.taskProperties.properties.blockedBy.description")),ns(r,e,t,n,"sortOrder",n("settings.taskProperties.properties.sortOrder.name"),n("settings.taskProperties.properties.sortOrder.description")),Sm(r,n("settings.taskProperties.sections.featureProperties")),Wc(r,n("settings.taskProperties.sections.featurePropertiesDesc")),ns(r,e,t,n,"pomodoros",n("settings.taskProperties.properties.pomodoros.name"),n("settings.taskProperties.properties.pomodoros.description")),ns(r,e,t,n,"icsEventId",n("settings.taskProperties.properties.icsEventId.name"),n("settings.taskProperties.properties.icsEventId.description")),ns(r,e,t,n,"icsEventTag",n("settings.taskProperties.properties.icsEventTag.name"),n("settings.taskProperties.properties.icsEventTag.description")),Sm(r,n("settings.taskProperties.customUserFields.header")),Wc(r,n("settings.taskProperties.customUserFields.description")),cse(r,e,t,n)}var dse=require("obsidian");Yc();fi();function Y8e(r,e,t,n,a){if(r.empty(),r.addClass("field-manager"),!t||!t.groups||!t.fields){r.createDiv({text:"Error: Invalid field configuration. Please reset to defaults."});return}let i=r.createDiv({cls:"field-manager__tabs"}),s=r.createDiv({cls:"field-manager__content"}),o=[...t.groups].sort((l,c)=>l.order-c.order);o.forEach((l,c)=>{let d=i.createDiv({cls:"field-manager__tab"});c===0&&d.addClass("field-manager__tab--active"),d.setText(l.displayName),d.onclick=()=>{i.querySelectorAll(".field-manager__tab").forEach(u=>{u.removeClass("field-manager__tab--active")}),d.addClass("field-manager__tab--active"),K$(s,l.id,t,e,n,a)}}),o.length>0&&K$(s,o[0].id,t,e,n,a)}function K$(r,e,t,n,a,i){r.empty();let s=t.fields.filter(l=>l.group===e).sort((l,c)=>l.order-c.order);if(s.length===0){r.createDiv({cls:"field-manager__empty"}).setText("No fields in this group");return}let o=r.createDiv({cls:"field-manager__cards"});s.forEach((l,c)=>{_Yt(o,l,c,t,n,a,i,e)})}function _Yt(r,e,t,n,a,i,s,o){let l=activeWindow.createSpan();l.classList.add("field-card__type"),l.classList.add(`field-card__type--${e.fieldType}`),l.textContent=e.fieldType;let c=xn(e.enabled,h=>{let g=n.fields.findIndex(v=>v.id===e.id);if(g!==-1){n.fields[g].enabled=h,i(n);let v=activeDocument.querySelector(".field-manager__tab--active");if(v){let b=v.parentElement,k=r.parentElement;if(!b||!k)return;let w=Array.from(b.children).indexOf(v),C=[...n.groups].sort((E,D)=>E.order-D.order)[w];C&&K$(k,C.id,n,a,i,s)}}}),d=xn(e.visibleInCreation,h=>{let g=n.fields.findIndex(v=>v.id===e.id);g!==-1&&(n.fields[g].visibleInCreation=h,i(n))}),u=xn(e.visibleInEdit,h=>{let g=n.fields.findIndex(v=>v.id===e.id);g!==-1&&(n.fields[g].visibleInEdit=h,i(n))}),p=ma(n.groups.map(h=>({value:h.id,label:h.displayName})),e.group);p.onchange=()=>{let h=n.fields.findIndex(g=>g.id===e.id);if(h!==-1){n.fields[h].group=p.value,i(n);let g=activeDocument.querySelector(".field-manager__tab--active");g&&g.click()}};let m=e.group!=="basic",f=Tr(r,{id:e.id,draggable:m,header:{primaryText:e.displayName,secondaryText:IYt(e,a.settings.userFields),meta:[l]},content:{sections:[{rows:[{label:"Enabled:",input:c}]},...e.enabled?[{rows:[{label:"Show in Creation:",input:d},{label:"Show in Edit:",input:u},{label:"Group:",input:p,fullWidth:!0}]}]:[]]}});m&&jk(f,r,(h,g,v)=>{let b=n.fields.findIndex(P=>P.id===h&&P.group===o),k=n.fields.findIndex(P=>P.id===g&&P.group===o);if(b===-1||k===-1)return;let w=n.fields.filter(P=>P.group===o),S=w.findIndex(P=>P.id===h),C=w.findIndex(P=>P.id===g),[E]=w.splice(S,1),D=C+(v?0:1);w.splice(D,0,E),w.forEach((P,O)=>{let z=n.fields.findIndex(R=>R.id===P.id);z!==-1&&(n.fields[z].order=O)}),i(n),K$(r,o,n,a,i,s)})}function IYt(r,e){if(r.fieldType!=="user")return`ID: ${r.id}`;let t=e==null?void 0:e.find(n=>n.id===r.id);return t!=null&&t.key?`Key: ${t.key}`:"No key set"}vS();ro();function Z$(r,e,t){r.empty(),e.settings.modalFieldsConfig||(e.settings.modalFieldsConfig=Cc(void 0,e.settings.userFields),t()),Dt(r,{heading:"Task Modal Fields Configuration",description:"Configure which fields appear in task creation and edit modals. Drag fields to reorder them within each group."},a=>{a.addSetting(i=>{he(i,{name:"Split layout on wide screens",desc:"When enabled, the details editor appears in a right column on screens 900px or wider. When disabled, the modal uses a stacked layout.",getValue:()=>e.settings.enableModalSplitLayout,setValue:s=>{e.settings.enableModalSplitLayout=s,t()}})}),a.addSetting(i=>{he(i,{name:"Tab moves focus in details editor",desc:"When enabled, Tab moves from the details editor to the next modal field and Shift+Tab moves to the previous field. When disabled, Tab and Shift+Tab use the markdown editor's indentation behavior.",getValue:()=>e.settings.taskModalTabMovesFocus,setValue:s=>{e.settings.taskModalTabMovesFocus=s,t()}})}),a.addSetting(i=>{i.setName("Sync user fields").setDesc("Click to sync custom user fields from task properties settings into this configuration.").addButton(s=>{s.setButtonText("Sync user fields").setCta().onClick(()=>{NYt(e),t(),new dse.Notice("User fields synced to modal configuration"),Z$(r,e,t)})})}),a.addSetting(i=>{i.setName("Reset to defaults").setDesc("Reset all field configurations to their default values. This will remove any custom configurations.").addButton(s=>{s.setButtonText("Reset to defaults").setWarning().onClick(async()=>{await Ir(e.app,{title:"Reset Field Configuration",message:"Are you sure you want to reset field configuration to defaults? This will remove any custom field configurations.",confirmText:"Reset",cancelText:"Cancel",isDestructive:!0})&&(e.settings.modalFieldsConfig=Cc(void 0,e.settings.userFields),t(),new dse.Notice("Field configuration reset to defaults"),Z$(r,e,t))})})})});let n=r.createDiv({cls:"modal-fields-manager-container"});if(!e.settings.modalFieldsConfig){n.createDiv({text:"Error: Could not initialize field configuration"});return}Y8e(n,e,e.settings.modalFieldsConfig,a=>{e.settings.modalFieldsConfig=a,t()},e.app)}function NYt(r){if(!r.settings.modalFieldsConfig){r.settings.modalFieldsConfig=Cc(void 0,r.settings.userFields);return}if(!r.settings.userFields||r.settings.userFields.length===0)return;let e=r.settings.modalFieldsConfig,t=new Set(e.fields.filter(a=>a.fieldType==="user").map(a=>a.id));r.settings.userFields.forEach(a=>{if(t.has(a.id)){let i=e.fields.findIndex(s=>s.id===a.id);i!==-1&&(e.fields[i].displayName=a.displayName)}else{let i=e.fields.filter(o=>o.group==="custom"),s=i.length>0?Math.max(...i.map(o=>o.order)):-1;e.fields.push({id:a.id,fieldType:"user",group:"custom",displayName:a.displayName,visibleInCreation:!0,visibleInEdit:!0,order:s+1,enabled:!0})}});let n=new Set(r.settings.userFields.map(a=>a.id));e.fields=e.fields.filter(a=>a.fieldType!=="user"||n.has(a.id))}var Vp=require("obsidian");Yc();var Q$=require("obsidian");K();var RYt=N({tag:"Modals/PropertySelectorModal"}),Zw=class extends Q$.Modal{constructor(t,n,a,i,s="Select Task Card Properties",o="Choose which properties to display in task cards. Selected properties will appear in the order shown below."){super(t);this.keyboardHandler=null;this.availableProperties=n,this.currentSelection=a,this.tempSelection=[...a],this.onSubmit=i,this.modalTitle=s,this.modalDescription=o}onOpen(){let{contentEl:t}=this;t.empty(),this.keyboardHandler=o=>{o.key==="Enter"&&(o.ctrlKey||o.metaKey)&&(o.preventDefault(),this.submitSelection(),this.close())},this.containerEl.addEventListener("keydown",this.keyboardHandler),t.createEl("h2",{text:this.modalTitle}),t.createEl("p",{text:this.modalDescription,cls:"setting-item-description"});let n=t.createDiv({cls:"property-selector-checkboxes"});n.classList.remove("tn-static-margin-top-12px-91e0f558"),n.classList.add("tn-static-max-height-400px-f0787633"),n.classList.remove("tn-static-margin-top-12px-91e0f558","tn-static-overflow-y-clip-c5043043"),n.classList.add("tn-static-overflow-y-auto-03df744e"),n.classList.remove("tn-static-font-size-12px-65574819","tn-static-font-weight-bold-0fe8c30d","tn-static-font-weight-bold-e0b452bd","tn-static-margin-bottom-0-75rem-c05a3c6e","tn-static-margin-bottom-8px-fdf33f23"),n.classList.add("tn-static-margin-bottom-20px-49f14f8f");for(let o of this.availableProperties)new Q$.Setting(n).setName(o.label).addToggle(l=>{l.setValue(this.tempSelection.includes(o.id)).onChange(c=>{if(c)this.tempSelection.includes(o.id)||this.tempSelection.push(o.id);else{let d=this.tempSelection.indexOf(o.id);d>-1&&this.tempSelection.splice(d,1)}})});let a=t.createDiv({cls:"modal-button-container"});a.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),a.classList.add("tn-static-display-flex-75816cae"),a.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-0-5rem-ce2fca4d","tn-static-gap-12px-ed7b3d87","tn-static-gap-6px-f0abc1db","tn-static-gap-8px-33fcd4c3"),a.classList.add("tn-static-gap-10px-f3d7ce77"),a.classList.remove("tn-static-justify-content-center-03c4bb6f","tn-static-justify-content-space-between-a562f4fd"),a.classList.add("tn-static-justify-content-flex-end-455f8cca"),a.createEl("button",{text:"Cancel"}).addEventListener("click",()=>{this.close()}),a.createEl("button",{text:"Save",cls:"mod-cta"}).addEventListener("click",()=>{this.submitSelection(),this.close()})}submitSelection(){Promise.resolve().then(()=>this.onSubmit(this.tempSelection)).catch(t=>{RYt.error("TaskNotes property selection callback failed:",{category:"persistence",operation:"property-selection-callback",error:t})})}onClose(){this.keyboardHandler&&(this.containerEl.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=null);let{contentEl:t}=this;t.empty()}};function EA(r){var a;let e=(i,s)=>{let o=r.fieldMapper.toUserField(s);return o!==i.toLowerCase().replace(/\s+/g,"")?`${i} (${o})`:i},t=[{id:"status",label:e("Status","status")},{id:"priority",label:e("Priority","priority")},{id:"blocked",label:"Blocked Status"},{id:"blocking",label:"Blocking Status"},{id:"due",label:e("Due Date","due")},{id:"scheduled",label:e("Scheduled Date","scheduled")},{id:"timeEstimate",label:e("Time Estimate","timeEstimate")},{id:"totalTrackedTime",label:"Total Tracked Time"},{id:"checklistProgress",label:"Checklist Progress"},{id:"recurrence",label:e("Recurrence","recurrence")},{id:"completeInstances",label:e("Completed Instances","completeInstances")},{id:"skippedInstances",label:e("Skipped Instances","skippedInstances")},{id:"completedDate",label:e("Completed Date","completedDate")},{id:"dateCreated",label:e("Created Date","dateCreated")},{id:"dateModified",label:e("Modified Date","dateModified")},{id:"projects",label:e("Projects","projects")},{id:"contexts",label:e("Contexts","contexts")},{id:"tags",label:"Tags"}],n=((a=r.settings.userFields)==null?void 0:a.map(i=>({id:`user:${i.id}`,label:i.displayName})))||[];return[...t,...n]}function J$(r,e){let t=EA(r);return e.map(n=>{var a;return((a=t.find(i=>i.id===n))==null?void 0:a.label)||n}).filter(Boolean)}kJ();var FYt=["dayGridMonth","timeGridWeek","timeGridDay","multiMonthYear","timeGridCustom"],OYt=[0,1,2,3,4,5,6],LYt=["00:15:00","00:30:00","01:00:00"];function zYt(r){return FYt.some(e=>e===r)}function jYt(r,e){var n;let t=Number.parseInt(r,10);return(n=OYt.find(a=>a===t))!=null?n:e}function $Yt(r){return LYt.some(e=>e===r)}function Qw(r,e,t){r.empty();let n=(o,l)=>e.i18n.translate(o,l),a=EA(e),i=e.settings.defaultVisibleProperties||[],s=J$(e,i);Dt(r,{heading:n("settings.appearance.taskCards.header"),description:n("settings.appearance.taskCards.description")},o=>{o.addSetting(l=>{l.setName(n("settings.appearance.taskCards.defaultVisibleProperties.name")).setDesc(n("settings.appearance.taskCards.defaultVisibleProperties.description")).addButton(c=>{c.setButtonText("Configure").onClick(()=>{new Zw(e.app,a,i,async u=>{e.settings.defaultVisibleProperties=u,t(),new Vp.Notice("Default task card properties updated"),Qw(r,e,t)},"Select Default Task Card Properties","Choose which properties to display in task cards (views, kanban, etc.). Selected properties will appear in the order shown below.").open()})})}),o.addSetting(l=>{l.setDesc(`Currently showing: ${s.join(", ")}`),l.settingEl.addClass("settings-view__group-description")})}),Dt(r,{heading:n("settings.appearance.displayFormatting.header"),description:n("settings.appearance.displayFormatting.description")},o=>{o.addSetting(l=>void on(l,{name:n("settings.appearance.displayFormatting.timeFormat.name"),desc:n("settings.appearance.displayFormatting.timeFormat.description"),options:[{value:"12",label:n("settings.appearance.displayFormatting.timeFormat.options.twelveHour")},{value:"24",label:n("settings.appearance.displayFormatting.timeFormat.options.twentyFourHour")}],getValue:()=>e.settings.calendarViewSettings.timeFormat,setValue:async c=>{e.settings.calendarViewSettings.timeFormat=c,t()}}))}),Dt(r,{heading:n("settings.appearance.calendarView.header"),description:n("settings.appearance.calendarView.description")},o=>{o.addSetting(l=>void on(l,{name:n("settings.appearance.calendarView.defaultView.name"),desc:n("settings.appearance.calendarView.defaultView.description"),options:[{value:"dayGridMonth",label:n("settings.appearance.calendarView.defaultView.options.monthGrid")},{value:"timeGridWeek",label:n("settings.appearance.calendarView.defaultView.options.weekTimeline")},{value:"timeGridDay",label:n("settings.appearance.calendarView.defaultView.options.dayTimeline")},{value:"multiMonthYear",label:n("settings.appearance.calendarView.defaultView.options.yearView")},{value:"timeGridCustom",label:n("settings.appearance.calendarView.defaultView.options.customMultiDay")}],getValue:()=>e.settings.calendarViewSettings.defaultView,setValue:async c=>{zYt(c)&&(e.settings.calendarViewSettings.defaultView=c,t(),Qw(r,e,t))}})),e.settings.calendarViewSettings.defaultView==="timeGridCustom"&&o.addSetting(l=>void Bi(l,{name:n("settings.appearance.calendarView.customDayCount.name"),desc:n("settings.appearance.calendarView.customDayCount.description"),placeholder:n("settings.appearance.calendarView.customDayCount.placeholder"),min:2,max:10,getValue:()=>e.settings.calendarViewSettings.customDayCount,setValue:async c=>{e.settings.calendarViewSettings.customDayCount=c,t()}})),o.addSetting(l=>void on(l,{name:n("settings.appearance.calendarView.firstDayOfWeek.name"),desc:n("settings.appearance.calendarView.firstDayOfWeek.description"),options:[{value:"0",label:n("common.weekdays.sunday")},{value:"1",label:n("common.weekdays.monday")},{value:"2",label:n("common.weekdays.tuesday")},{value:"3",label:n("common.weekdays.wednesday")},{value:"4",label:n("common.weekdays.thursday")},{value:"5",label:n("common.weekdays.friday")},{value:"6",label:n("common.weekdays.saturday")}],getValue:()=>e.settings.calendarViewSettings.firstDay.toString(),setValue:async c=>{e.settings.calendarViewSettings.firstDay=jYt(c,e.settings.calendarViewSettings.firstDay),t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.calendarView.showWeekends.name"),desc:n("settings.appearance.calendarView.showWeekends.description"),getValue:()=>e.settings.calendarViewSettings.showWeekends,setValue:async c=>{e.settings.calendarViewSettings.showWeekends=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.calendarView.showWeekNumbers.name"),desc:n("settings.appearance.calendarView.showWeekNumbers.description"),getValue:()=>e.settings.calendarViewSettings.weekNumbers,setValue:async c=>{e.settings.calendarViewSettings.weekNumbers=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.calendarView.showTodayHighlight.name"),desc:n("settings.appearance.calendarView.showTodayHighlight.description"),getValue:()=>e.settings.calendarViewSettings.showTodayHighlight,setValue:async c=>{e.settings.calendarViewSettings.showTodayHighlight=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.calendarView.showCurrentTimeIndicator.name"),desc:n("settings.appearance.calendarView.showCurrentTimeIndicator.description"),getValue:()=>e.settings.calendarViewSettings.nowIndicator,setValue:async c=>{e.settings.calendarViewSettings.nowIndicator=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.calendarView.selectionMirror.name"),desc:n("settings.appearance.calendarView.selectionMirror.description"),getValue:()=>e.settings.calendarViewSettings.selectMirror,setValue:async c=>{e.settings.calendarViewSettings.selectMirror=c,t()}})),o.addSetting(l=>{l.setName(n("settings.appearance.calendarView.calendarLocale.name")).setDesc(n("settings.appearance.calendarView.calendarLocale.description")).addText(c=>{c.setPlaceholder(n("settings.appearance.calendarView.calendarLocale.placeholder")),c.setValue(e.settings.calendarViewSettings.locale||""),c.inputEl.addClass("settings-view__input"),c.inputEl.addEventListener("blur",()=>{let d=c.getValue().trim();if(d)try{Intl.getCanonicalLocales(d),e.settings.calendarViewSettings.locale=d,t()}catch(u){new Vp.Notice(n("settings.appearance.calendarView.calendarLocale.invalidLocale")),e.settings.calendarViewSettings.locale="",c.setValue(""),t()}else e.settings.calendarViewSettings.locale="",t()})})})}),Dt(r,{heading:n("settings.appearance.defaultEventVisibility.header"),description:n("settings.appearance.defaultEventVisibility.description")},o=>{o.addSetting(l=>void he(l,{name:n("settings.appearance.defaultEventVisibility.showScheduledTasks.name"),desc:n("settings.appearance.defaultEventVisibility.showScheduledTasks.description"),getValue:()=>e.settings.calendarViewSettings.defaultShowScheduled,setValue:async c=>{e.settings.calendarViewSettings.defaultShowScheduled=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.defaultEventVisibility.showDueDates.name"),desc:n("settings.appearance.defaultEventVisibility.showDueDates.description"),getValue:()=>e.settings.calendarViewSettings.defaultShowDue,setValue:async c=>{e.settings.calendarViewSettings.defaultShowDue=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.defaultEventVisibility.showDueWhenScheduled.name"),desc:n("settings.appearance.defaultEventVisibility.showDueWhenScheduled.description"),getValue:()=>e.settings.calendarViewSettings.defaultShowDueWhenScheduled,setValue:async c=>{e.settings.calendarViewSettings.defaultShowDueWhenScheduled=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.defaultEventVisibility.showTimeEntries.name"),desc:n("settings.appearance.defaultEventVisibility.showTimeEntries.description"),getValue:()=>e.settings.calendarViewSettings.defaultShowTimeEntries,setValue:async c=>{e.settings.calendarViewSettings.defaultShowTimeEntries=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.defaultEventVisibility.showRecurringTasks.name"),desc:n("settings.appearance.defaultEventVisibility.showRecurringTasks.description"),getValue:()=>e.settings.calendarViewSettings.defaultShowRecurring,setValue:async c=>{e.settings.calendarViewSettings.defaultShowRecurring=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.defaultEventVisibility.showICSEvents.name"),desc:n("settings.appearance.defaultEventVisibility.showICSEvents.description"),getValue:()=>e.settings.calendarViewSettings.defaultShowICSEvents,setValue:async c=>{e.settings.calendarViewSettings.defaultShowICSEvents=c,t()}}))}),Dt(r,{heading:n("settings.appearance.timeSettings.header"),description:n("settings.appearance.timeSettings.description")},o=>{o.addSetting(l=>void on(l,{name:n("settings.appearance.timeSettings.timeSlotDuration.name"),desc:n("settings.appearance.timeSettings.timeSlotDuration.description"),options:[{value:"00:15:00",label:n("settings.appearance.timeSettings.timeSlotDuration.options.fifteenMinutes")},{value:"00:30:00",label:n("settings.appearance.timeSettings.timeSlotDuration.options.thirtyMinutes")},{value:"01:00:00",label:n("settings.appearance.timeSettings.timeSlotDuration.options.sixtyMinutes")}],getValue:()=>e.settings.calendarViewSettings.slotDuration,setValue:async c=>{$Yt(c)&&(e.settings.calendarViewSettings.slotDuration=c,t())}})),o.addSetting(l=>void Sn(l,{name:n("settings.appearance.timeSettings.startTime.name"),desc:n("settings.appearance.timeSettings.startTime.description"),placeholder:n("settings.appearance.timeSettings.startTime.placeholder"),debounceMs:500,getValue:()=>{let c=e.settings.calendarViewSettings.slotMinTime;return!c||c.length<5||!/^\d{2}:\d{2}:\d{2}$/.test(c)?"00:00":c.slice(0,5)},setValue:async c=>{if(!/^\d{2}:\d{2}$/.test(c)){new Vp.Notice("Invalid time format. Please use hh:mm format (e.g., 08:00)");return}let[d,u]=c.split(":").map(Number);if(d<0||d>23||u<0||u>59){new Vp.Notice("Invalid time. Hours must be 00-23 and minutes must be 00-59");return}e.settings.calendarViewSettings.slotMinTime=c+":00",t()}})),o.addSetting(l=>void Sn(l,{name:n("settings.appearance.timeSettings.endTime.name"),desc:n("settings.appearance.timeSettings.endTime.description"),placeholder:n("settings.appearance.timeSettings.endTime.placeholder"),debounceMs:500,getValue:()=>{let c=e.settings.calendarViewSettings.slotMaxTime;return!c||c.length<5||!/^\d{2}:\d{2}:\d{2}$/.test(c)?"24:00":c.slice(0,5)},setValue:async c=>{if(!/^\d{2}:\d{2}$/.test(c)){new Vp.Notice("Invalid time format. Please use hh:mm format (e.g., 26:00)");return}let d=X1(c,"24:00:00",{maxHour:48,allowMaxHourOnlyAtZero:!0});if(!d.isValid){new Vp.Notice("Invalid time. Use 00:00-48:00; values after midnight use 24:00-48:00, such as 26:00 for 2 am next day");return}e.settings.calendarViewSettings.slotMaxTime=d.value,t()}})),o.addSetting(l=>void Sn(l,{name:n("settings.appearance.timeSettings.initialScrollTime.name"),desc:n("settings.appearance.timeSettings.initialScrollTime.description"),placeholder:n("settings.appearance.timeSettings.initialScrollTime.placeholder"),debounceMs:500,getValue:()=>{let c=e.settings.calendarViewSettings.scrollTime;return!c||c.length<5||!/^\d{2}:\d{2}:\d{2}$/.test(c)?"08:00":c.slice(0,5)},setValue:async c=>{if(!/^\d{2}:\d{2}$/.test(c)){new Vp.Notice("Invalid time format. Please use hh:mm format (e.g., 08:00)");return}let[d,u]=c.split(":").map(Number);if(d<0||d>23||u<0||u>59){new Vp.Notice("Invalid time. Hours must be 00-23 and minutes must be 00-59");return}e.settings.calendarViewSettings.scrollTime=c+":00",t()}})),o.addSetting(l=>void Bi(l,{name:n("settings.appearance.timeSettings.eventMinHeight.name"),desc:n("settings.appearance.timeSettings.eventMinHeight.description"),placeholder:n("settings.appearance.timeSettings.eventMinHeight.placeholder"),min:5,max:100,debounceMs:300,getValue:()=>e.settings.calendarViewSettings.eventMinHeight,setValue:async c=>{e.settings.calendarViewSettings.eventMinHeight=c,t()}}))}),Dt(r,{heading:n("settings.appearance.uiElements.header"),description:n("settings.appearance.uiElements.description")},o=>{o.addSetting(l=>void he(l,{name:n("settings.appearance.uiElements.showTrackedTasksInStatusBar.name"),desc:n("settings.appearance.uiElements.showTrackedTasksInStatusBar.description"),getValue:()=>e.settings.showTrackedTasksInStatusBar,setValue:async c=>{e.settings.showTrackedTasksInStatusBar=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.uiElements.showRelationshipsWidget.name"),desc:n("settings.appearance.uiElements.showRelationshipsWidget.description"),getValue:()=>e.settings.showRelationships,setValue:async c=>{e.settings.showRelationships=c,t(),Qw(r,e,t)}})),e.settings.showRelationships&&o.addSetting(l=>void on(l,{name:n("settings.appearance.uiElements.relationshipsPosition.name"),desc:n("settings.appearance.uiElements.relationshipsPosition.description"),options:[{value:"top",label:n("settings.appearance.uiElements.relationshipsPosition.options.top")},{value:"bottom",label:n("settings.appearance.uiElements.relationshipsPosition.options.bottom")}],getValue:()=>e.settings.relationshipsPosition,setValue:async c=>{e.settings.relationshipsPosition=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.uiElements.showTaskCardInNote.name"),desc:n("settings.appearance.uiElements.showTaskCardInNote.description"),getValue:()=>e.settings.showTaskCardInNote,setValue:async c=>{e.settings.showTaskCardInNote=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.uiElements.showCompletedTaskStrikethrough.name"),desc:n("settings.appearance.uiElements.showCompletedTaskStrikethrough.description"),getValue:()=>e.settings.showCompletedTaskStrikethrough,setValue:async c=>{e.settings.showCompletedTaskStrikethrough=c,t(),e.app.workspace.trigger("tasknotes:refresh-views")}})),o.addSetting(l=>void he(l,{name:n("settings.appearance.uiElements.showExpandableSubtasks.name"),desc:n("settings.appearance.uiElements.showExpandableSubtasks.description"),getValue:()=>e.settings.showExpandableSubtasks,setValue:async c=>{e.settings.showExpandableSubtasks=c,t(),Qw(r,e,t)}})),e.settings.showExpandableSubtasks&&(o.addSetting(l=>void he(l,{name:n("settings.appearance.uiElements.expandSubtasksByDefault.name"),desc:n("settings.appearance.uiElements.expandSubtasksByDefault.description"),getValue:()=>e.settings.expandSubtasksByDefault,setValue:async c=>{e.settings.expandSubtasksByDefault=c,t()}})),o.addSetting(l=>void on(l,{name:n("settings.appearance.uiElements.subtaskChevronPosition.name"),desc:n("settings.appearance.uiElements.subtaskChevronPosition.description"),options:[{value:"left",label:n("settings.appearance.uiElements.subtaskChevronPosition.options.left")},{value:"right",label:n("settings.appearance.uiElements.subtaskChevronPosition.options.right")}],getValue:()=>e.settings.subtaskChevronPosition,setValue:async c=>{e.settings.subtaskChevronPosition=c,t()}}))),o.addSetting(l=>void on(l,{name:n("settings.appearance.uiElements.viewsButtonAlignment.name"),desc:n("settings.appearance.uiElements.viewsButtonAlignment.description"),options:[{value:"left",label:n("settings.appearance.uiElements.viewsButtonAlignment.options.left")},{value:"right",label:n("settings.appearance.uiElements.viewsButtonAlignment.options.right")}],getValue:()=>e.settings.viewsButtonAlignment,setValue:async c=>{e.settings.viewsButtonAlignment=c,t()}}))}),Dt(r,{heading:n("settings.general.taskInteraction.header"),description:n("settings.general.taskInteraction.description")},o=>{o.addSetting(l=>void on(l,{name:n("settings.general.taskInteraction.singleClick.name"),desc:n("settings.general.taskInteraction.singleClick.description"),options:[{value:"edit",label:n("settings.general.taskInteraction.actions.edit")},{value:"openNote",label:n("settings.general.taskInteraction.actions.openNote")}],getValue:()=>e.settings.singleClickAction,setValue:async c=>{e.settings.singleClickAction=c,t()}})),o.addSetting(l=>void on(l,{name:n("settings.general.taskInteraction.doubleClick.name"),desc:n("settings.general.taskInteraction.doubleClick.description"),options:[{value:"edit",label:n("settings.general.taskInteraction.actions.edit")},{value:"openNote",label:n("settings.general.taskInteraction.actions.openNote")},{value:"none",label:n("settings.general.taskInteraction.actions.none")}],getValue:()=>e.settings.doubleClickAction,setValue:async c=>{e.settings.doubleClickAction=c,t()}}))})}var pse=require("obsidian");Yc();var X$=require("obsidian"),use=class extends X$.Modal{constructor(e,t){super(e.app),this.plugin=e,this.hasExistingData=t}t(e,t){return this.plugin.i18n.translate(e,t)}show(){return new Promise(e=>{this.resolve=e,this.open()})}onOpen(){let{contentEl:e}=this;e.empty();let t=this.hasExistingData?"migrate":"switch",n=this.t(`modals.storageLocation.title.${t}`);new X$.Setting(e).setName(n).setHeading();let a=this.t(`modals.storageLocation.message.${t}`),s=e.createEl("p").createEl("strong");s.textContent=a,e.createEl("br"),e.createEl("p",{text:this.t("modals.storageLocation.whatThisMeans")});let o=e.createEl("ul");[this.t("modals.storageLocation.bullets.dailyNotesRequired"),this.t("modals.storageLocation.bullets.storedInNotes"),this.hasExistingData?this.t("modals.storageLocation.bullets.migrateData"):this.t("modals.storageLocation.bullets.futureSessions"),this.t("modals.storageLocation.bullets.dataLongevity")].forEach(m=>{let f=o.createEl("li");f.textContent=m}),e.createEl("br");let c=e.createEl("p");if(this.hasExistingData){let m=c.createEl("strong");m.textContent=this.t("modals.storageLocation.finalNote.migrate")}else c.textContent=this.t("modals.storageLocation.finalNote.switch");let d=e.createDiv({cls:"modal-button-container"});d.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-display-none-6b99de8b","tn-static-min-height-800px-997b4c8c"),d.classList.add("tn-static-display-flex-75816cae"),d.classList.remove("tn-static-display-flex-8bb39979","tn-static-gap-0-5rem-ce2fca4d","tn-static-gap-12px-ed7b3d87","tn-static-gap-6px-f0abc1db","tn-static-gap-8px-33fcd4c3"),d.classList.add("tn-static-gap-10px-f3d7ce77"),d.classList.remove("tn-static-justify-content-center-03c4bb6f","tn-static-justify-content-space-between-a562f4fd"),d.classList.add("tn-static-justify-content-flex-end-455f8cca"),d.classList.remove("tn-static-font-size-12px-b0cc7e05","tn-static-margin-top-0-5rem-3dc98b5e","tn-static-margin-top-0-d462248a","tn-static-margin-top-12px-91e0f558","tn-static-margin-top-16px-1b0f4999","tn-static-margin-top-1rem-2239d6d5","tn-static-margin-top-30px-2fbbbcd4","tn-static-margin-top-4px-96ad6099","tn-static-margin-top-8px-8a77e5a3","tn-static-margin-top-8px-f4f01e68"),d.classList.add("tn-static-margin-top-20px-a26bda7d"),d.createEl("button",{text:this.t("common.cancel")}).addEventListener("click",()=>{this.resolve(!1),this.close()});let p=d.createEl("button",{text:this.hasExistingData?this.t("modals.storageLocation.buttons.migrate"):this.t("modals.storageLocation.buttons.switch"),cls:"mod-cta"});p.addEventListener("click",()=>{this.resolve(!0),this.close()}),window.setTimeout(()=>{p.focus()},50)}onClose(){let{contentEl:e}=this;e.empty(),this.resolve&&this.resolve(!1)}};async function G8e(r,e){return new use(r,e).show()}var K8e={code:"en",name:"English",chronoLocale:"en",dateTriggers:{due:["due","deadline","must be done by","by"],scheduled:["scheduled for","start on","begin on","work on","on"]},recurrence:{frequencies:{daily:["daily","every day"],weekly:["weekly","every week"],monthly:["monthly","every month"],yearly:["yearly","annually","every year"]},every:["every"],other:["other"],weekdays:{monday:["monday"],tuesday:["tuesday"],wednesday:["wednesday"],thursday:["thursday"],friday:["friday"],saturday:["saturday"],sunday:["sunday"]},pluralWeekdays:{monday:["mondays"],tuesday:["tuesdays"],wednesday:["wednesdays"],thursday:["thursdays"],friday:["fridays"],saturday:["saturdays"],sunday:["sundays"]},ordinals:{first:["first"],second:["second"],third:["third"],fourth:["fourth"],last:["last"]},periods:{day:["day","days"],week:["week","weeks"],month:["month","months"],year:["year","years"]}},timeEstimate:{hours:["h","hr","hrs","hour","hours"],minutes:["m","min","mins","minute","minutes"]},fallbackStatus:{open:["todo","to do","open"],inProgress:["in progress","in-progress","doing"],done:["done","completed","finished"],cancelled:["cancelled","canceled"],waiting:["waiting","blocked","on hold"]},fallbackPriority:{urgent:["urgent","critical","highest"],high:["high","important"],normal:["medium","normal"],low:["low","minor"]}};var Z8e={code:"es",name:"Espa\xF1ol",chronoLocale:"es",dateTriggers:{due:["vence","fecha l\xEDmite","debe terminarse","para el","antes del"],scheduled:["programado para","programado el","comenzar el","empezar el","trabajar en","el"]},recurrence:{frequencies:{daily:["diario","diaria","diariamente","cada d\xEDa","todos los d\xEDas","a diario"],weekly:["semanal","semanalmente","cada semana","todas las semanas","por semana"],monthly:["mensual","mensualmente","cada mes","todos los meses","por mes"],yearly:["anual","anualmente","cada a\xF1o","todos los a\xF1os","por a\xF1o"]},every:["cada","todos los","todas las"],other:["otro","otra"],weekdays:{monday:["lunes"],tuesday:["martes"],wednesday:["mi\xE9rcoles"],thursday:["jueves"],friday:["viernes"],saturday:["s\xE1bado"],sunday:["domingo"]},pluralWeekdays:{monday:["lunes"],tuesday:["martes"],wednesday:["mi\xE9rcoles"],thursday:["jueves"],friday:["viernes"],saturday:["s\xE1bados"],sunday:["domingos"]},ordinals:{first:["primer","primera","primero"],second:["segundo","segunda"],third:["tercer","tercera","tercero"],fourth:["cuarto","cuarta"],last:["\xFAltimo","\xFAltima"]},periods:{day:["d\xEDa","d\xEDas"],week:["semana","semanas"],month:["mes","meses"],year:["a\xF1o","a\xF1os"]}},timeEstimate:{hours:["h","hr","hrs","hora","horas"],minutes:["m","min","mins","minuto","minutos"]},fallbackStatus:{open:["pendiente","por hacer","abierto","todo"],inProgress:["en progreso","en curso","haciendo","trabajando"],done:["hecho","terminado","completado","finalizado"],cancelled:["cancelado","anulado"],waiting:["esperando","bloqueado","en espera"]},fallbackPriority:{urgent:["urgente","cr\xEDtico","cr\xEDtica","m\xE1ximo","m\xE1xima","prioritario","prioritaria"],high:["alto","alta","importante","elevado","elevada"],normal:["medio","media","normal","regular","est\xE1ndar"],low:["bajo","baja","menor","m\xEDnimo","m\xEDnima"]}};var Q8e={code:"fr",name:"Fran\xE7ais",chronoLocale:"fr",dateTriggers:{due:["\xE9ch\xE9ance","date limite","doit \xEAtre termin\xE9","pour le","avant le"],scheduled:["programm\xE9 pour","programm\xE9 le","commencer le","d\xE9buter le","travailler sur","le"]},recurrence:{frequencies:{daily:["quotidien","quotidienne","quotidiennement","chaque jour","tous les jours","journalier","journali\xE8re"],weekly:["hebdomadaire","chaque semaine","toutes les semaines","par semaine"],monthly:["mensuel","mensuelle","mensuellement","chaque mois","tous les mois","par mois"],yearly:["annuel","annuelle","annuellement","chaque ann\xE9e","tous les ans","par an","par ann\xE9e"]},every:["chaque","tous les","toutes les"],other:["autre"],weekdays:{monday:["lundi"],tuesday:["mardi"],wednesday:["mercredi"],thursday:["jeudi"],friday:["vendredi"],saturday:["samedi"],sunday:["dimanche"]},pluralWeekdays:{monday:["lundis"],tuesday:["mardis"],wednesday:["mercredis"],thursday:["jeudis"],friday:["vendredis"],saturday:["samedis"],sunday:["dimanches"]},ordinals:{first:["premier","premi\xE8re"],second:["deuxi\xE8me","second","seconde"],third:["troisi\xE8me"],fourth:["quatri\xE8me"],last:["dernier","derni\xE8re"]},periods:{day:["jour","jours"],week:["semaine","semaines"],month:["mois"],year:["an","ans","ann\xE9e","ann\xE9es"]}},timeEstimate:{hours:["h","hr","hrs","heure","heures"],minutes:["m","min","mins","minute","minutes"]},fallbackStatus:{open:["\xE0 faire","ouvert","en attente","todo"],inProgress:["en cours","en progression","en train de faire"],done:["termin\xE9","fini","accompli","fait"],cancelled:["annul\xE9","abandonn\xE9"],waiting:["en attente","bloqu\xE9","suspendu"]},fallbackPriority:{urgent:["urgent","urgente","critique","maximum","prioritaire"],high:["\xE9lev\xE9","\xE9lev\xE9e","haut","haute","important","importante","sup\xE9rieur","sup\xE9rieure"],normal:["moyen","moyenne","normal","normale","standard","r\xE9gulier","r\xE9guli\xE8re"],low:["faible","bas","basse","mineur","mineure","minimum"]}};var J8e={code:"de",name:"Deutsch",chronoLocale:"de",dateTriggers:{due:["f\xE4llig","termin","abgabe","deadline","bis zum","bis"],scheduled:["geplant f\xFCr","geplant am","beginnen am","anfangen am","arbeiten an","am"]},recurrence:{frequencies:{daily:["t\xE4glich","jeden Tag","alle Tage","tagaus tagein"],weekly:["w\xF6chentlich","jede Woche","alle Wochen"],monthly:["monatlich","jeden Monat","alle Monate"],yearly:["j\xE4hrlich","jedes Jahr","alle Jahre"]},every:["jede","jeden","jedes","alle"],other:["andere","anderen","anderes"],weekdays:{monday:["montag"],tuesday:["dienstag"],wednesday:["mittwoch"],thursday:["donnerstag"],friday:["freitag"],saturday:["samstag"],sunday:["sonntag"]},pluralWeekdays:{monday:["montags"],tuesday:["dienstags"],wednesday:["mittwochs"],thursday:["donnerstags"],friday:["freitags"],saturday:["samstags"],sunday:["sonntags"]},ordinals:{first:["erste","ersten","erster"],second:["zweite","zweiten","zweiter"],third:["dritte","dritten","dritter"],fourth:["vierte","vierten","vierter"],last:["letzte","letzten","letzter"]},periods:{day:["tag","tage"],week:["woche","wochen"],month:["monat","monate"],year:["jahr","jahre"]}},timeEstimate:{hours:["h","std","stunde","stunden"],minutes:["m","min","minute","minuten"]},fallbackStatus:{open:["offen","zu erledigen","ausstehend","todo"],inProgress:["in bearbeitung","wird bearbeitet","l\xE4uft","in arbeit"],done:["erledigt","fertig","abgeschlossen","gemacht"],cancelled:["abgebrochen","storniert","abgesagt"],waiting:["wartend","warten","blockiert","pausiert"]},fallbackPriority:{urgent:["dringend","eilig","kritisch","sofort","h\xF6chste"],high:["hoch","hohe","wichtig","priorit\xE4r"],normal:["normal","mittel","mittlere","standard"],low:["niedrig","niedrige","gering","geringe"]}};var X8e={code:"ru",name:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",chronoLocale:"ru",dateTriggers:{due:["\u0441\u0440\u043E\u043A","\u0434\u0435\u0434\u043B\u0430\u0439\u043D","\u0434\u043E","\u043A","\u0441\u0434\u0430\u0442\u044C \u0434\u043E"],scheduled:["\u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u043D\u0430","\u043D\u0430\u0447\u0430\u0442\u044C","\u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u043D\u0430\u0434","\u043D\u0430"]},recurrence:{frequencies:{daily:["\u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u043E","\u043A\u0430\u0436\u0434\u044B\u0439 \u0434\u0435\u043D\u044C","\u0435\u0436\u0435\u0434\u043D\u0435\u0432\u043D\u044B\u0439","\u043A\u0430\u0436\u0434\u043E\u0434\u043D\u0435\u0432\u043D\u044B\u0439"],weekly:["\u0435\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u043E","\u043A\u0430\u0436\u0434\u0443\u044E \u043D\u0435\u0434\u0435\u043B\u044E","\u0435\u0436\u0435\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u044B\u0439"],monthly:["\u0435\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u043E","\u043A\u0430\u0436\u0434\u044B\u0439 \u043C\u0435\u0441\u044F\u0446","\u0435\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u044B\u0439"],yearly:["\u0435\u0436\u0435\u0433\u043E\u0434\u043D\u043E","\u043A\u0430\u0436\u0434\u044B\u0439 \u0433\u043E\u0434","\u0435\u0436\u0435\u0433\u043E\u0434\u043D\u044B\u0439"]},every:["\u043A\u0430\u0436\u0434\u044B\u0439","\u043A\u0430\u0436\u0434\u0443\u044E","\u043A\u0430\u0436\u0434\u043E\u0435","\u0432\u0441\u0435"],other:["\u0434\u0440\u0443\u0433\u043E\u0439","\u0434\u0440\u0443\u0433\u0443\u044E","\u0434\u0440\u0443\u0433\u043E\u0435"],weekdays:{monday:["\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A"],tuesday:["\u0432\u0442\u043E\u0440\u043D\u0438\u043A"],wednesday:["\u0441\u0440\u0435\u0434\u0430"],thursday:["\u0447\u0435\u0442\u0432\u0435\u0440\u0433"],friday:["\u043F\u044F\u0442\u043D\u0438\u0446\u0430"],saturday:["\u0441\u0443\u0431\u0431\u043E\u0442\u0430"],sunday:["\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435"]},pluralWeekdays:{monday:["\u043F\u043E \u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A\u0430\u043C"],tuesday:["\u043F\u043E \u0432\u0442\u043E\u0440\u043D\u0438\u043A\u0430\u043C"],wednesday:["\u043F\u043E \u0441\u0440\u0435\u0434\u0430\u043C"],thursday:["\u043F\u043E \u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430\u043C"],friday:["\u043F\u043E \u043F\u044F\u0442\u043D\u0438\u0446\u0430\u043C"],saturday:["\u043F\u043E \u0441\u0443\u0431\u0431\u043E\u0442\u0430\u043C"],sunday:["\u043F\u043E \u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u044F\u043C"]},ordinals:{first:["\u043F\u0435\u0440\u0432\u044B\u0439","\u043F\u0435\u0440\u0432\u0430\u044F","\u043F\u0435\u0440\u0432\u043E\u0435"],second:["\u0432\u0442\u043E\u0440\u043E\u0439","\u0432\u0442\u043E\u0440\u0430\u044F","\u0432\u0442\u043E\u0440\u043E\u0435"],third:["\u0442\u0440\u0435\u0442\u0438\u0439","\u0442\u0440\u0435\u0442\u044C\u044F","\u0442\u0440\u0435\u0442\u044C\u0435"],fourth:["\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044B\u0439","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0430\u044F","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435"],last:["\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439","\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F","\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0435"]},periods:{day:["\u0434\u0435\u043D\u044C","\u0434\u043D\u0438"],week:["\u043D\u0435\u0434\u0435\u043B\u044F","\u043D\u0435\u0434\u0435\u043B\u0438"],month:["\u043C\u0435\u0441\u044F\u0446","\u043C\u0435\u0441\u044F\u0446\u044B"],year:["\u0433\u043E\u0434","\u0433\u043E\u0434\u044B"]}},timeEstimate:{hours:["\u0447","\u0447\u0430\u0441","\u0447\u0430\u0441\u0430","\u0447\u0430\u0441\u043E\u0432"],minutes:["\u043C","\u043C\u0438\u043D","\u043C\u0438\u043D\u0443\u0442\u0430","\u043C\u0438\u043D\u0443\u0442\u044B","\u043C\u0438\u043D\u0443\u0442"]},fallbackStatus:{open:["\u043E\u0442\u043A\u0440\u044B\u0442\u043E","\u043A \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044E","\u043D\u043E\u0432\u043E\u0435","todo"],inProgress:["\u0432 \u0440\u0430\u0431\u043E\u0442\u0435","\u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F","\u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435"],done:["\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E","\u0433\u043E\u0442\u043E\u0432\u043E","\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E","\u0441\u0434\u0435\u043B\u0430\u043D\u043E"],cancelled:["\u043E\u0442\u043C\u0435\u043D\u0435\u043D\u043E","\u043E\u0442\u043C\u0435\u043D\u0451\u043D","\u043E\u0442\u043C\u0435\u043D\u0435\u043D\u0430"],waiting:["\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u0435","\u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u043E","\u043D\u0430 \u043F\u0430\u0443\u0437\u0435"]},fallbackPriority:{urgent:["\u0441\u0440\u043E\u0447\u043D\u043E","\u043A\u0440\u0438\u0442\u0438\u0447\u043D\u043E","\u044D\u043A\u0441\u0442\u0440\u0435\u043D\u043D\u043E","\u043D\u0435\u043C\u0435\u0434\u043B\u0435\u043D\u043D\u043E"],high:["\u0432\u044B\u0441\u043E\u043A\u0438\u0439","\u0432\u044B\u0441\u043E\u043A\u0430\u044F","\u0432\u0430\u0436\u043D\u043E","\u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u043D\u043E"],normal:["\u043D\u043E\u0440\u043C\u0430\u043B\u044C\u043D\u044B\u0439","\u043D\u043E\u0440\u043C\u0430\u043B\u044C\u043D\u0430\u044F","\u0441\u0440\u0435\u0434\u043D\u0438\u0439","\u0441\u0440\u0435\u0434\u043D\u044F\u044F"],low:["\u043D\u0438\u0437\u043A\u0438\u0439","\u043D\u0438\u0437\u043A\u0430\u044F","\u043D\u0435\u0432\u0430\u0436\u043D\u043E","\u043C\u043E\u0436\u043D\u043E \u043F\u043E\u0437\u0436\u0435"]}};var e7e={code:"zh",name:"\u4E2D\u6587",chronoLocale:"zh",dateTriggers:{due:["\u622A\u6B62","\u5230\u671F","\u671F\u9650","\u5728","\u4E4B\u524D"],scheduled:["\u5B89\u6392\u5728","\u8BA1\u5212\u5728","\u5F00\u59CB\u5728","\u5728"]},recurrence:{frequencies:{daily:["\u6BCF\u5929","\u6BCF\u65E5","\u5929\u5929","\u65E5\u5E38"],weekly:["\u6BCF\u5468","\u6BCF\u661F\u671F","\u5468\u5468"],monthly:["\u6BCF\u6708","\u6BCF\u4E2A\u6708","\u6708\u6708"],yearly:["\u6BCF\u5E74","\u5E74\u5E74","\u6BCF\u4E00\u5E74"]},every:["\u6BCF","\u6BCF\u4E2A","\u6BCF\u4E00\u4E2A"],other:["\u5176\u4ED6","\u53E6\u4E00\u4E2A"],weekdays:{monday:["\u5468\u4E00","\u661F\u671F\u4E00","\u793C\u62DC\u4E00"],tuesday:["\u5468\u4E8C","\u661F\u671F\u4E8C","\u793C\u62DC\u4E8C"],wednesday:["\u5468\u4E09","\u661F\u671F\u4E09","\u793C\u62DC\u4E09"],thursday:["\u5468\u56DB","\u661F\u671F\u56DB","\u793C\u62DC\u56DB"],friday:["\u5468\u4E94","\u661F\u671F\u4E94","\u793C\u62DC\u4E94"],saturday:["\u5468\u516D","\u661F\u671F\u516D","\u793C\u62DC\u516D"],sunday:["\u5468\u65E5","\u661F\u671F\u65E5","\u793C\u62DC\u65E5"]},pluralWeekdays:{monday:["\u5468\u4E00","\u661F\u671F\u4E00","\u793C\u62DC\u4E00"],tuesday:["\u5468\u4E8C","\u661F\u671F\u4E8C","\u793C\u62DC\u4E8C"],wednesday:["\u5468\u4E09","\u661F\u671F\u4E09","\u793C\u62DC\u4E09"],thursday:["\u5468\u56DB","\u661F\u671F\u56DB","\u793C\u62DC\u56DB"],friday:["\u5468\u4E94","\u661F\u671F\u4E94","\u793C\u62DC\u4E94"],saturday:["\u5468\u516D","\u661F\u671F\u516D","\u793C\u62DC\u516D"],sunday:["\u5468\u65E5","\u661F\u671F\u65E5","\u793C\u62DC\u65E5"]},ordinals:{first:["\u7B2C\u4E00\u4E2A","\u7B2C\u4E00","\u9996\u4E2A"],second:["\u7B2C\u4E8C\u4E2A","\u7B2C\u4E8C"],third:["\u7B2C\u4E09\u4E2A","\u7B2C\u4E09"],fourth:["\u7B2C\u56DB\u4E2A","\u7B2C\u56DB"],last:["\u6700\u540E\u4E00\u4E2A","\u6700\u540E","\u672B\u5C3E"]},periods:{day:["\u5929","\u65E5"],week:["\u5468","\u661F\u671F"],month:["\u6708","\u4E2A\u6708"],year:["\u5E74"]}},timeEstimate:{hours:["\u5C0F\u65F6","\u65F6","\u4E2A\u5C0F\u65F6"],minutes:["\u5206\u949F","\u5206","\u4E2A\u5206\u949F"]},fallbackStatus:{open:["\u5F85\u529E","\u672A\u5B8C\u6210","\u5F00\u653E","\u65B0\u5EFA"],inProgress:["\u8FDB\u884C\u4E2D","\u6B63\u5728\u5904\u7406","\u5904\u7406\u4E2D","\u5DE5\u4F5C\u4E2D"],done:["\u5B8C\u6210","\u5DF2\u5B8C\u6210","\u7ED3\u675F","\u641E\u5B9A"],cancelled:["\u53D6\u6D88","\u5DF2\u53D6\u6D88","\u5E9F\u5F03"],waiting:["\u7B49\u5F85","\u6682\u505C","\u963B\u585E","\u5F85\u5B9A"]},fallbackPriority:{urgent:["\u7D27\u6025","\u6025\u8FEB","\u7ACB\u5373","\u9A6C\u4E0A"],high:["\u9AD8","\u91CD\u8981","\u4F18\u5148","\u9AD8\u4F18\u5148\u7EA7"],normal:["\u6B63\u5E38","\u666E\u901A","\u4E2D\u7B49","\u6807\u51C6"],low:["\u4F4E","\u4E0D\u91CD\u8981","\u4F4E\u4F18\u5148\u7EA7","\u6B21\u8981"]}};var t7e={code:"ja",name:"\u65E5\u672C\u8A9E",chronoLocale:"ja",dateTriggers:{due:["\u671F\u9650","\u7DE0\u5207","\u3006\u5207","\u307E\u3067","\u307E\u3067\u306B","\u306B"],scheduled:["\u4E88\u5B9A","\u8A08\u753B","\u958B\u59CB","\u304B\u3089","\u306B\u958B\u59CB","\u3092\u958B\u59CB"]},recurrence:{frequencies:{daily:["\u6BCE\u65E5","\u65E5\u3005","\u6BCE\u65E5\u6BCE\u65E5","\u9023\u65E5"],weekly:["\u6BCE\u9031","\u9031\u6BCE","\u9031\u4E00","\u6BCE\u9031\u6BCE\u9031"],monthly:["\u6BCE\u6708","\u6708\u6BCE","\u6708\u4E00","\u6BCE\u6708\u6BCE\u6708"],yearly:["\u6BCE\u5E74","\u5E74\u6BCE","\u5E74\u4E00","\u6BCE\u5E74\u6BCE\u5E74","\u5E74\u6B21"]},every:["\u6BCE","\u5404","\u5168\u3066"],other:["\u4ED6\u306E","\u5225\u306E","\u7570\u306A\u308B"],weekdays:{monday:["\u6708\u66DC\u65E5","\u6708\u66DC","\u6708","\u3052\u3064\u3088\u3046\u3073"],tuesday:["\u706B\u66DC\u65E5","\u706B\u66DC","\u706B","\u304B\u3088\u3046\u3073"],wednesday:["\u6C34\u66DC\u65E5","\u6C34\u66DC","\u6C34","\u3059\u3044\u3088\u3046\u3073"],thursday:["\u6728\u66DC\u65E5","\u6728\u66DC","\u6728","\u3082\u304F\u3088\u3046\u3073"],friday:["\u91D1\u66DC\u65E5","\u91D1\u66DC","\u91D1","\u304D\u3093\u3088\u3046\u3073"],saturday:["\u571F\u66DC\u65E5","\u571F\u66DC","\u571F","\u3069\u3088\u3046\u3073"],sunday:["\u65E5\u66DC\u65E5","\u65E5\u66DC","\u65E5","\u306B\u3061\u3088\u3046\u3073"]},pluralWeekdays:{monday:["\u6708\u66DC\u65E5","\u6708\u66DC","\u6708","\u3052\u3064\u3088\u3046\u3073"],tuesday:["\u706B\u66DC\u65E5","\u706B\u66DC","\u706B","\u304B\u3088\u3046\u3073"],wednesday:["\u6C34\u66DC\u65E5","\u6C34\u66DC","\u6C34","\u3059\u3044\u3088\u3046\u3073"],thursday:["\u6728\u66DC\u65E5","\u6728\u66DC","\u6728","\u3082\u304F\u3088\u3046\u3073"],friday:["\u91D1\u66DC\u65E5","\u91D1\u66DC","\u91D1","\u304D\u3093\u3088\u3046\u3073"],saturday:["\u571F\u66DC\u65E5","\u571F\u66DC","\u571F","\u3069\u3088\u3046\u3073"],sunday:["\u65E5\u66DC\u65E5","\u65E5\u66DC","\u65E5","\u306B\u3061\u3088\u3046\u3073"]},ordinals:{first:["\u6700\u521D\u306E","\u7B2C\u4E00\u306E","\u4E00\u756A\u76EE\u306E","\u521D\u56DE"],second:["\u4E8C\u756A\u76EE\u306E","\u7B2C\u4E8C\u306E","\u6B21\u306E"],third:["\u4E09\u756A\u76EE\u306E","\u7B2C\u4E09\u306E"],fourth:["\u56DB\u756A\u76EE\u306E","\u7B2C\u56DB\u306E"],last:["\u6700\u5F8C\u306E","\u6700\u7D42\u306E","\u7D42\u308F\u308A\u306E"]},periods:{day:["\u65E5","\u65E5\u9593"],week:["\u9031","\u9031\u9593"],month:["\u6708","\u6708\u9593","\u30F6\u6708"],year:["\u5E74","\u5E74\u9593"]}},timeEstimate:{hours:["\u6642\u9593","\u6642","\u3058\u304B\u3093"],minutes:["\u5206","\u5206\u9593","\u3075\u3093","\u3077\u3093"]},fallbackStatus:{open:["\u672A\u7740\u624B","\u65B0\u898F","\u30AA\u30FC\u30D7\u30F3","\u958B\u59CB\u524D","\u5F85\u6A5F"],inProgress:["\u9032\u884C\u4E2D","\u4F5C\u696D\u4E2D","\u5B9F\u884C\u4E2D","\u51E6\u7406\u4E2D","\u9032\u884C"],done:["\u5B8C\u4E86","\u7D42\u4E86","\u6E08\u307F","\u7D42\u308F\u308A","\u9054\u6210"],cancelled:["\u30AD\u30E3\u30F3\u30BB\u30EB","\u4E2D\u6B62","\u53D6\u6D88","\u5EC3\u6B62","\u505C\u6B62"],waiting:["\u5F85\u6A5F","\u4FDD\u7559","\u30D6\u30ED\u30C3\u30AF","\u4E00\u6642\u505C\u6B62","\u5F85\u3061"]},fallbackPriority:{urgent:["\u7DCA\u6025","\u81F3\u6025","\u6025\u52D9","\u6700\u512A\u5148","\u3059\u3050\u306B"],high:["\u9AD8","\u91CD\u8981","\u512A\u5148","\u9AD8\u512A\u5148\u5EA6","\u91CD\u70B9"],normal:["\u666E\u901A","\u901A\u5E38","\u6A19\u6E96","\u4E00\u822C","\u30CE\u30FC\u30DE\u30EB"],low:["\u4F4E","\u8EFD\u5FAE","\u5F8C\u56DE\u3057","\u4F4E\u512A\u5148\u5EA6","\u4F59\u88D5"]}};var r7e={code:"it",name:"Italiano",chronoLocale:"it",dateTriggers:{due:["scadenza","entro","entro il","deve essere fatto entro","per il","termine"],scheduled:["programmato per","programmato il","iniziare il","lavorare su","il","per"]},recurrence:{frequencies:{daily:["giornaliero","giornaliera","quotidiano","quotidiana","ogni giorno","tutti i giorni","giornalmente"],weekly:["settimanale","ogni settimana","tutte le settimane","settimanalmente","alla settimana"],monthly:["mensile","ogni mese","tutti i mesi","mensilmente","al mese"],yearly:["annuale","ogni anno","tutti gli anni","annualmente","all'anno"]},every:["ogni","tutti i","tutte le"],other:["altro","altra","altri","altre"],weekdays:{monday:["luned\xEC"],tuesday:["marted\xEC"],wednesday:["mercoled\xEC"],thursday:["gioved\xEC"],friday:["venerd\xEC"],saturday:["sabato"],sunday:["domenica"]},pluralWeekdays:{monday:["luned\xEC"],tuesday:["marted\xEC"],wednesday:["mercoled\xEC"],thursday:["gioved\xEC"],friday:["venerd\xEC"],saturday:["sabati"],sunday:["domeniche"]},ordinals:{first:["primo","prima"],second:["secondo","seconda"],third:["terzo","terza"],fourth:["quarto","quarta"],last:["ultimo","ultima"]},periods:{day:["giorno","giorni"],week:["settimana","settimane"],month:["mese","mesi"],year:["anno","anni"]}},timeEstimate:{hours:["h","hr","ore","ora","o"],minutes:["m","min","minuto","minuti"]},fallbackStatus:{open:["da fare","aperto","pendente","todo","in sospeso"],inProgress:["in corso","in progresso","facendo","lavorando"],done:["fatto","completato","finito","terminato","chiuso"],cancelled:["cancellato","annullato","rimosso"],waiting:["in attesa","aspettando","bloccato","fermo"]},fallbackPriority:{urgent:["urgente","critico","critica","massimo","massima","prioritario","prioritaria"],high:["alto","alta","importante","elevato","elevata"],normal:["medio","media","normale","regolare","standard"],low:["basso","bassa","minore","minimo","minima"]}};var n7e={code:"nl",name:"Nederlands",chronoLocale:"nl",dateTriggers:{due:["vervalt op","deadline","moet klaar zijn op","tegen","uiterlijk","voor"],scheduled:["gepland voor","gepland op","beginnen op","werken aan","op","voor"]},recurrence:{frequencies:{daily:["dagelijks","elke dag","alle dagen","per dag"],weekly:["wekelijks","elke week","alle weken","per week"],monthly:["maandelijks","elke maand","alle maanden","per maand"],yearly:["jaarlijks","elk jaar","alle jaren","per jaar"]},every:["elke","alle","iedere"],other:["andere","ander"],weekdays:{monday:["maandag"],tuesday:["dinsdag"],wednesday:["woensdag"],thursday:["donderdag"],friday:["vrijdag"],saturday:["zaterdag"],sunday:["zondag"]},pluralWeekdays:{monday:["maandagen"],tuesday:["dinsdagen"],wednesday:["woensdagen"],thursday:["donderdagen"],friday:["vrijdagen"],saturday:["zaterdagen"],sunday:["zondagen"]},ordinals:{first:["eerste"],second:["tweede"],third:["derde"],fourth:["vierde"],last:["laatste"]},periods:{day:["dag","dagen"],week:["week","weken"],month:["maand","maanden"],year:["jaar","jaren"]}},timeEstimate:{hours:["u","uur","uren","h"],minutes:["m","min","minuut","minuten"]},fallbackStatus:{open:["te doen","open","nog te doen","todo","openstaand"],inProgress:["bezig","in behandeling","aan het werk","lopend","in uitvoering"],done:["klaar","voltooid","gedaan","afgerond","gesloten"],cancelled:["geannuleerd","afgezegd","ingetrokken"],waiting:["wachtend","in de wacht","geblokkeerd","uitgesteld"]},fallbackPriority:{urgent:["urgent","kritiek","hoogste","spoed","direct"],high:["hoog","hoge","belangrijk","belangrijke"],normal:["normaal","normale","gemiddeld","standaard"],low:["laag","lage","klein","kleine","onbelangrijk"]}};var a7e={code:"pt",name:"Portugu\xEAs",chronoLocale:"pt",dateTriggers:{due:["vencimento","prazo","deve estar pronto at\xE9","at\xE9","para","limite"],scheduled:["programado para","agendado para","come\xE7ar em","trabalhar em","em","no"]},recurrence:{frequencies:{daily:["di\xE1rio","di\xE1ria","diariamente","todos os dias","cada dia","por dia"],weekly:["semanal","semanalmente","toda semana","todas as semanas","por semana"],monthly:["mensal","mensalmente","todo m\xEAs","todos os meses","por m\xEAs"],yearly:["anual","anualmente","todo ano","todos os anos","por ano"]},every:["todo","toda","todos","todas","cada"],other:["outro","outra","outros","outras"],weekdays:{monday:["segunda","segunda-feira"],tuesday:["ter\xE7a","ter\xE7a-feira"],wednesday:["quarta","quarta-feira"],thursday:["quinta","quinta-feira"],friday:["sexta","sexta-feira"],saturday:["s\xE1bado"],sunday:["domingo"]},pluralWeekdays:{monday:["segundas","segundas-feiras"],tuesday:["ter\xE7as","ter\xE7as-feiras"],wednesday:["quartas","quartas-feiras"],thursday:["quintas","quintas-feiras"],friday:["sextas","sextas-feiras"],saturday:["s\xE1bados"],sunday:["domingos"]},ordinals:{first:["primeiro","primeira"],second:["segundo","segunda"],third:["terceiro","terceira"],fourth:["quarto","quarta"],last:["\xFAltimo","\xFAltima"]},periods:{day:["dia","dias"],week:["semana","semanas"],month:["m\xEAs","meses"],year:["ano","anos"]}},timeEstimate:{hours:["h","hr","hora","horas"],minutes:["m","min","minuto","minutos"]},fallbackStatus:{open:["a fazer","pendente","aberto","todo","por fazer"],inProgress:["em andamento","em progresso","fazendo","trabalhando","executando"],done:["feito","conclu\xEDdo","terminado","finalizado","completo"],cancelled:["cancelado","anulado","suspenso"],waiting:["aguardando","esperando","bloqueado","em espera"]},fallbackPriority:{urgent:["urgente","cr\xEDtico","cr\xEDtica","m\xE1ximo","m\xE1xima","priorit\xE1rio","priorit\xE1ria"],high:["alto","alta","importante","elevado","elevada"],normal:["m\xE9dio","m\xE9dia","normal","regular","padr\xE3o"],low:["baixo","baixa","menor","m\xEDnimo","m\xEDnima"]}};var i7e={code:"sv",name:"Svenska",chronoLocale:"sv",dateTriggers:{due:["f\xF6rfaller","deadline","m\xE5ste vara klar","senast","till","innan"],scheduled:["schemalagd","planerad f\xF6r","b\xF6rja","arbeta med","den","p\xE5"]},recurrence:{frequencies:{daily:["dagligen","varje dag","alla dagar","per dag"],weekly:["veckovis","varje vecka","alla veckor","per vecka"],monthly:["m\xE5nadsvis","varje m\xE5nad","alla m\xE5nader","per m\xE5nad"],yearly:["\xE5rligen","varje \xE5r","alla \xE5r","per \xE5r"]},every:["varje","alla","var"],other:["annan","annat","andra"],weekdays:{monday:["m\xE5ndag"],tuesday:["tisdag"],wednesday:["onsdag"],thursday:["torsdag"],friday:["fredag"],saturday:["l\xF6rdag"],sunday:["s\xF6ndag"]},pluralWeekdays:{monday:["m\xE5ndagar"],tuesday:["tisdagar"],wednesday:["onsdagar"],thursday:["torsdagar"],friday:["fredagar"],saturday:["l\xF6rdagar"],sunday:["s\xF6ndagar"]},ordinals:{first:["f\xF6rsta"],second:["andra"],third:["tredje"],fourth:["fj\xE4rde"],last:["sista"]},periods:{day:["dag","dagar"],week:["vecka","veckor"],month:["m\xE5nad","m\xE5nader"],year:["\xE5r"]}},timeEstimate:{hours:["t","tim","timme","timmar","h"],minutes:["m","min","minut","minuter"]},fallbackStatus:{open:["att g\xF6ra","\xF6ppen","kvar","todo","v\xE4ntande"],inProgress:["p\xE5g\xE5ende","arbetar","g\xF6r","i process","under arbete"],done:["klar","f\xE4rdig","slutf\xF6rd","avslutad","gjord"],cancelled:["avbruten","inst\xE4lld","avbokad"],waiting:["v\xE4ntar","blockerad","pausad","vilande"]},fallbackPriority:{urgent:["br\xE5dskande","kritisk","h\xF6gsta","akut","omedelbar"],high:["h\xF6g","viktig","f\xF6rh\xF6jd","prioriterad"],normal:["normal","medel","standard","vanlig"],low:["l\xE5g","mindre","minimal","obetydlig"]}};var s7e={code:"uk",name:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430",chronoLocale:"uk",dateTriggers:{due:["\u0442\u0435\u0440\u043C\u0456\u043D","\u0434\u0435\u0434\u043B\u0430\u0439\u043D","\u043C\u0430\u0454 \u0431\u0443\u0442\u0438 \u0433\u043E\u0442\u043E\u0432\u043E \u0434\u043E","\u0434\u043E","\u043D\u0435 \u043F\u0456\u0437\u043D\u0456\u0448\u0435","\u043A\u0440\u0430\u0439\u043D\u0456\u0439 \u0442\u0435\u0440\u043C\u0456\u043D"],scheduled:["\u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u043E \u043D\u0430","\u0437\u0430\u043F\u043B\u0430\u043D\u043E\u0432\u0430\u043D\u0438\u0439","\u043F\u043E\u0447\u0430\u0442\u0438","\u043F\u0440\u0430\u0446\u044E\u0432\u0430\u0442\u0438 \u043D\u0430\u0434","\u043D\u0430","\u0432"]},recurrence:{frequencies:{daily:["\u0449\u043E\u0434\u043D\u044F","\u0449\u043E\u0434\u0435\u043D\u043D\u043E","\u043A\u043E\u0436\u0435\u043D \u0434\u0435\u043D\u044C","\u0432\u0441\u0456 \u0434\u043D\u0456","\u043D\u0430 \u0434\u0435\u043D\u044C"],weekly:["\u0449\u043E\u0442\u0438\u0436\u043D\u044F","\u0449\u043E\u0442\u0438\u0436\u043D\u0435\u0432\u043E","\u043A\u043E\u0436\u0435\u043D \u0442\u0438\u0436\u0434\u0435\u043D\u044C","\u0432\u0441\u0456 \u0442\u0438\u0436\u043D\u0456","\u043D\u0430 \u0442\u0438\u0436\u0434\u0435\u043D\u044C"],monthly:["\u0449\u043E\u043C\u0456\u0441\u044F\u0446\u044F","\u0449\u043E\u043C\u0456\u0441\u044F\u0447\u043D\u043E","\u043A\u043E\u0436\u0435\u043D \u043C\u0456\u0441\u044F\u0446\u044C","\u0432\u0441\u0456 \u043C\u0456\u0441\u044F\u0446\u0456","\u043D\u0430 \u043C\u0456\u0441\u044F\u0446\u044C"],yearly:["\u0449\u043E\u0440\u043E\u043A\u0443","\u0449\u043E\u0440\u0456\u0447\u043D\u043E","\u043A\u043E\u0436\u0435\u043D \u0440\u0456\u043A","\u0432\u0441\u0456 \u0440\u043E\u043A\u0438","\u043D\u0430 \u0440\u0456\u043A"]},every:["\u043A\u043E\u0436\u0435\u043D","\u043A\u043E\u0436\u043D\u0430","\u043A\u043E\u0436\u043D\u0435","\u0432\u0441\u0456"],other:["\u0456\u043D\u0448\u0438\u0439","\u0456\u043D\u0448\u0430","\u0456\u043D\u0448\u0435","\u0456\u043D\u0448\u0456"],weekdays:{monday:["\u043F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A"],tuesday:["\u0432\u0456\u0432\u0442\u043E\u0440\u043E\u043A"],wednesday:["\u0441\u0435\u0440\u0435\u0434\u0430"],thursday:["\u0447\u0435\u0442\u0432\u0435\u0440"],friday:["\u043F'\u044F\u0442\u043D\u0438\u0446\u044F"],saturday:["\u0441\u0443\u0431\u043E\u0442\u0430"],sunday:["\u043D\u0435\u0434\u0456\u043B\u044F"]},pluralWeekdays:{monday:["\u043F\u043E\u043D\u0435\u0434\u0456\u043B\u043A\u0438"],tuesday:["\u0432\u0456\u0432\u0442\u043E\u0440\u043A\u0438"],wednesday:["\u0441\u0435\u0440\u0435\u0434\u0438"],thursday:["\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0438"],friday:["\u043F'\u044F\u0442\u043D\u0438\u0446\u0456"],saturday:["\u0441\u0443\u0431\u043E\u0442\u0438"],sunday:["\u043D\u0435\u0434\u0456\u043B\u0456"]},ordinals:{first:["\u043F\u0435\u0440\u0448\u0438\u0439","\u043F\u0435\u0440\u0448\u0430","\u043F\u0435\u0440\u0448\u0435"],second:["\u0434\u0440\u0443\u0433\u0438\u0439","\u0434\u0440\u0443\u0433\u0430","\u0434\u0440\u0443\u0433\u0435"],third:["\u0442\u0440\u0435\u0442\u0456\u0439","\u0442\u0440\u0435\u0442\u044F","\u0442\u0440\u0435\u0442\u0454"],fourth:["\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438\u0439","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0430","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0435"],last:["\u043E\u0441\u0442\u0430\u043D\u043D\u0456\u0439","\u043E\u0441\u0442\u0430\u043D\u043D\u044F","\u043E\u0441\u0442\u0430\u043D\u043D\u0454"]},periods:{day:["\u0434\u0435\u043D\u044C","\u0434\u043D\u0456","\u0434\u043D\u0456\u0432"],week:["\u0442\u0438\u0436\u0434\u0435\u043D\u044C","\u0442\u0438\u0436\u043D\u0456","\u0442\u0438\u0436\u043D\u0456\u0432"],month:["\u043C\u0456\u0441\u044F\u0446\u044C","\u043C\u0456\u0441\u044F\u0446\u0456","\u043C\u0456\u0441\u044F\u0446\u0456\u0432"],year:["\u0440\u0456\u043A","\u0440\u043E\u043A\u0438","\u0440\u043E\u043A\u0456\u0432"]}},timeEstimate:{hours:["\u0433","\u0433\u043E\u0434","\u0433\u043E\u0434\u0438\u043D\u0430","\u0433\u043E\u0434\u0438\u043D\u0438","\u0433\u043E\u0434\u0438\u043D"],minutes:["\u0445\u0432","\u043C\u0456\u043D","\u0445\u0432\u0438\u043B\u0438\u043D\u0430","\u0445\u0432\u0438\u043B\u0438\u043D\u0438","\u0445\u0432\u0438\u043B\u0438\u043D"]},fallbackStatus:{open:["\u0437\u0440\u043E\u0431\u0438\u0442\u0438","\u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438\u0439","\u043E\u0447\u0456\u043A\u0443\u0454","todo","\u0432 \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u0456"],inProgress:["\u0432 \u0440\u043E\u0431\u043E\u0442\u0456","\u0432\u0438\u043A\u043E\u043D\u0443\u0454\u0442\u044C\u0441\u044F","\u0440\u043E\u0431\u043B\u044E","\u043F\u0440\u0430\u0446\u044E\u044E","\u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0456"],done:["\u0433\u043E\u0442\u043E\u0432\u043E","\u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043E","\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E","\u0437\u0430\u043A\u0456\u043D\u0447\u0435\u043D\u043E","\u0437\u0440\u043E\u0431\u043B\u0435\u043D\u043E"],cancelled:["\u0441\u043A\u0430\u0441\u043E\u0432\u0430\u043D\u043E","\u0432\u0456\u0434\u043C\u0456\u043D\u0435\u043D\u043E","\u043F\u0440\u0438\u043F\u0438\u043D\u0435\u043D\u043E"],waiting:["\u0447\u0435\u043A\u0430\u044E","\u043E\u0447\u0456\u043A\u0443\u044E","\u0437\u0430\u0431\u043B\u043E\u043A\u043E\u0432\u0430\u043D\u043E","\u043F\u0440\u0438\u0437\u0443\u043F\u0438\u043D\u0435\u043D\u043E"]},fallbackPriority:{urgent:["\u0442\u0435\u0440\u043C\u0456\u043D\u043E\u0432\u043E","\u043A\u0440\u0438\u0442\u0438\u0447\u043D\u043E","\u043D\u0430\u0439\u0432\u0438\u0449\u0438\u0439","\u043D\u0435\u0432\u0456\u0434\u043A\u043B\u0430\u0434\u043D\u043E","\u043F\u0440\u0456\u043E\u0440\u0438\u0442\u0435\u0442\u043D\u043E"],high:["\u0432\u0438\u0441\u043E\u043A\u0438\u0439","\u0432\u0438\u0441\u043E\u043A\u0430","\u0432\u0430\u0436\u043B\u0438\u0432\u043E","\u043F\u0456\u0434\u0432\u0438\u0449\u0435\u043D\u0438\u0439"],normal:["\u0441\u0435\u0440\u0435\u0434\u043D\u0456\u0439","\u0441\u0435\u0440\u0435\u0434\u043D\u044F","\u043D\u043E\u0440\u043C\u0430\u043B\u044C\u043D\u043E","\u0437\u0432\u0438\u0447\u0430\u0439\u043D\u043E","\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E"],low:["\u043D\u0438\u0437\u044C\u043A\u0438\u0439","\u043D\u0438\u0437\u044C\u043A\u0430","\u043C\u0435\u043D\u0448\u0438\u0439","\u043C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0438\u0439","\u043D\u0435\u0437\u043D\u0430\u0447\u043D\u0438\u0439"]}};var BYt={en:K8e,es:Z8e,fr:Q8e,de:J8e,ru:X8e,zh:e7e,ja:t7e,it:r7e,nl:n7e,pt:a7e,sv:i7e,uk:s7e};function o7e(){return Object.values(BYt).map(r=>({value:r.code,label:r.name}))}Mc();fi();async function UYt(r){if(!r.pomodoroService){let{PomodoroService:e}=await Promise.resolve().then(()=>(mZ(),J$e));r.pomodoroService=new e(r),await r.pomodoroService.initialize()}return r.pomodoroService}function js(r,e,t){r.empty();let n=(o,l)=>e.i18n.translate(o,l),a=EA(e),i=e.settings.inlineVisibleProperties||["status","priority","due","scheduled","recurrence"],s=J$(e,i);Dt(r,{heading:n("settings.features.inlineTasks.header"),description:n("settings.features.inlineTasks.description")},o=>{o.addSetting(l=>void he(l,{name:n("settings.features.overlays.taskLinkToggle.name"),desc:n("settings.features.overlays.taskLinkToggle.description"),getValue:()=>e.settings.enableTaskLinkOverlay,setValue:async c=>{e.settings.enableTaskLinkOverlay=c,t(),js(r,e,t)}})),e.settings.enableTaskLinkOverlay&&(o.addSetting(l=>void he(l,{name:n("settings.features.overlays.aliasExclusion.name"),desc:n("settings.features.overlays.aliasExclusion.description"),getValue:()=>e.settings.disableOverlayOnAlias,setValue:async c=>{e.settings.disableOverlayOnAlias=c,t()}})),o.addSetting(l=>{l.setName("Inline task card properties").setDesc("Select which properties to show in inline task cards.").addButton(c=>{c.setButtonText("Configure").onClick(()=>{new Zw(e.app,a,i,async u=>{e.settings.inlineVisibleProperties=u,t(),new pse.Notice("Inline task card properties updated"),js(r,e,t)},"Select Inline Task Card Properties","Choose which properties to display in inline task cards.").open()})})}),o.addSetting(l=>{l.setDesc(`Currently showing: ${s.join(", ")}`),l.settingEl.addClass("settings-view__group-description")})),o.addSetting(l=>void he(l,{name:n("settings.features.instantConvert.toggle.name"),desc:n("settings.features.instantConvert.toggle.description"),getValue:()=>e.settings.enableInstantTaskConvert,setValue:async c=>{e.settings.enableInstantTaskConvert=c,t(),js(r,e,t)}})),e.settings.enableInstantTaskConvert&&o.addSetting(l=>void he(l,{name:n("settings.features.instantConvert.preserveCheckbox.name"),desc:n("settings.features.instantConvert.preserveCheckbox.description"),getValue:()=>e.settings.preserveCheckboxOnConvert,setValue:async c=>{e.settings.preserveCheckboxOnConvert=c,t()}}))}),Dt(r,{heading:n("settings.features.nlp.header"),description:n("settings.features.nlp.description")},o=>{o.addSetting(l=>void he(l,{name:n("settings.features.nlp.enable.name"),desc:n("settings.features.nlp.enable.description"),getValue:()=>e.settings.enableNaturalLanguageInput,setValue:async c=>{e.settings.enableNaturalLanguageInput=c,t(),js(r,e,t)}})),e.settings.enableNaturalLanguageInput&&(o.addSetting(l=>void he(l,{name:n("settings.features.nlp.defaultToScheduled.name"),desc:n("settings.features.nlp.defaultToScheduled.description"),getValue:()=>e.settings.nlpDefaultToScheduled,setValue:async c=>{e.settings.nlpDefaultToScheduled=c,t()}})),o.addSetting(l=>void on(l,{name:n("settings.features.nlp.language.name"),desc:n("settings.features.nlp.language.description"),options:o7e(),getValue:()=>e.settings.nlpLanguage,setValue:async c=>{e.settings.nlpLanguage=c,t()}})))}),Dt(r,{heading:n("settings.features.taskCreation.header"),description:n("settings.features.taskCreation.description")},o=>{o.addSetting(l=>void on(l,{name:n("settings.features.taskCreation.openAfterCreate.name"),desc:n("settings.features.taskCreation.openAfterCreate.description"),options:[{value:"none",label:n("settings.features.taskCreation.openAfterCreate.options.none")},{value:"same-tab",label:n("settings.features.taskCreation.openAfterCreate.options.sameTab")},{value:"new-tab",label:n("settings.features.taskCreation.openAfterCreate.options.newTab")}],getValue:()=>e.settings.openTaskAfterCreation,setValue:async c=>{e.settings.openTaskAfterCreation=c,t()}}))}),Dt(r,{heading:n("settings.defaults.header.bodyTemplate"),description:n("settings.defaults.description.bodyTemplate")},o=>{o.addSetting(l=>void he(l,{name:n("settings.defaults.bodyTemplate.useBodyTemplate.name"),desc:n("settings.defaults.bodyTemplate.useBodyTemplate.description"),getValue:()=>e.settings.taskCreationDefaults.useBodyTemplate,setValue:async c=>{e.settings.taskCreationDefaults.useBodyTemplate=c,t(),js(r,e,t)}})),e.settings.taskCreationDefaults.useBodyTemplate&&o.addSetting(l=>void Sn(l,{name:n("settings.defaults.bodyTemplate.bodyTemplateFile.name"),desc:n("settings.defaults.bodyTemplate.bodyTemplateFile.description"),placeholder:n("settings.defaults.bodyTemplate.bodyTemplateFile.placeholder"),getValue:()=>e.settings.taskCreationDefaults.bodyTemplate,setValue:async c=>{e.settings.taskCreationDefaults.bodyTemplate=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.defaults.bodyTemplate.useOccurrenceBodyTemplate.name"),desc:n("settings.defaults.bodyTemplate.useOccurrenceBodyTemplate.description"),getValue:()=>e.settings.taskCreationDefaults.useOccurrenceBodyTemplate,setValue:async c=>{e.settings.taskCreationDefaults.useOccurrenceBodyTemplate=c,t(),js(r,e,t)}})),e.settings.taskCreationDefaults.useOccurrenceBodyTemplate&&o.addSetting(l=>void Sn(l,{name:n("settings.defaults.bodyTemplate.occurrenceBodyTemplateFile.name"),desc:n("settings.defaults.bodyTemplate.occurrenceBodyTemplateFile.description"),placeholder:n("settings.defaults.bodyTemplate.occurrenceBodyTemplateFile.placeholder"),getValue:()=>e.settings.taskCreationDefaults.occurrenceBodyTemplate,setValue:async c=>{e.settings.taskCreationDefaults.occurrenceBodyTemplate=c,t()}})),(e.settings.taskCreationDefaults.useBodyTemplate||e.settings.taskCreationDefaults.useOccurrenceBodyTemplate)&&o.addSetting(l=>{let c=[n("settings.defaults.bodyTemplate.variables.title"),n("settings.defaults.bodyTemplate.variables.details"),n("settings.defaults.bodyTemplate.variables.date"),n("settings.defaults.bodyTemplate.variables.time"),n("settings.defaults.bodyTemplate.variables.priority"),n("settings.defaults.bodyTemplate.variables.status"),n("settings.defaults.bodyTemplate.variables.contexts"),n("settings.defaults.bodyTemplate.variables.tags"),n("settings.defaults.bodyTemplate.variables.projects")];l.setName(n("settings.defaults.bodyTemplate.variablesHeader")),l.setDesc(c.join(" \u2022 "))}),o.addSetting(l=>void he(l,{name:n("settings.defaults.instantConversion.useDefaultsOnInstantConvert.name"),desc:n("settings.defaults.instantConversion.useDefaultsOnInstantConvert.description"),getValue:()=>e.settings.useDefaultsOnInstantConvert,setValue:async c=>{e.settings.useDefaultsOnInstantConvert=c,t()}}))}),Dt(r,{heading:n("settings.features.pomodoro.header"),description:n("settings.features.pomodoro.description")},o=>{o.addSetting(l=>void Bi(l,{name:n("settings.features.pomodoro.workDuration.name"),desc:n("settings.features.pomodoro.workDuration.description"),placeholder:"25",min:1,max:120,getValue:()=>e.settings.pomodoroWorkDuration,setValue:async c=>{e.settings.pomodoroWorkDuration=c,t()}})),o.addSetting(l=>void Bi(l,{name:n("settings.features.pomodoro.shortBreak.name"),desc:n("settings.features.pomodoro.shortBreak.description"),placeholder:"5",min:1,max:60,getValue:()=>e.settings.pomodoroShortBreakDuration,setValue:async c=>{e.settings.pomodoroShortBreakDuration=c,t()}})),o.addSetting(l=>void Bi(l,{name:n("settings.features.pomodoro.longBreak.name"),desc:n("settings.features.pomodoro.longBreak.description"),placeholder:"15",min:1,max:120,getValue:()=>e.settings.pomodoroLongBreakDuration,setValue:async c=>{e.settings.pomodoroLongBreakDuration=c,t()}})),o.addSetting(l=>void Bi(l,{name:n("settings.features.pomodoro.longBreakInterval.name"),desc:n("settings.features.pomodoro.longBreakInterval.description"),placeholder:"4",min:1,max:10,getValue:()=>e.settings.pomodoroLongBreakInterval,setValue:async c=>{e.settings.pomodoroLongBreakInterval=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.features.pomodoro.autoStartBreaks.name"),desc:n("settings.features.pomodoro.autoStartBreaks.description"),getValue:()=>e.settings.pomodoroAutoStartBreaks,setValue:async c=>{e.settings.pomodoroAutoStartBreaks=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.features.pomodoro.autoStartWork.name"),desc:n("settings.features.pomodoro.autoStartWork.description"),getValue:()=>e.settings.pomodoroAutoStartWork,setValue:async c=>{e.settings.pomodoroAutoStartWork=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.features.pomodoro.notifications.name"),desc:n("settings.features.pomodoro.notifications.description"),getValue:()=>e.settings.pomodoroNotifications,setValue:async c=>{e.settings.pomodoroNotifications=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.features.pomodoro.statusBar.name"),desc:n("settings.features.pomodoro.statusBar.description"),getValue:()=>e.settings.showPomodoroInStatusBar,setValue:async c=>{var d;e.settings.showPomodoroInStatusBar=c,t(),(d=e.statusBarService)==null||d.updateVisibility()}})),o.addSetting(l=>void he(l,{name:n("settings.features.pomodoroSound.enabledName"),desc:n("settings.features.pomodoroSound.enabledDesc"),getValue:()=>e.settings.pomodoroSoundEnabled,setValue:async c=>{e.settings.pomodoroSoundEnabled=c,t(),js(r,e,t)}})),e.settings.pomodoroSoundEnabled&&o.addSetting(l=>void Bi(l,{name:n("settings.features.pomodoroSound.volumeName"),desc:n("settings.features.pomodoroSound.volumeDesc"),placeholder:"50",min:0,max:100,getValue:()=>e.settings.pomodoroSoundVolume,setValue:async c=>{e.settings.pomodoroSoundVolume=c,t()}})),o.addSetting(l=>void on(l,{name:n("settings.features.dataStorage.name"),desc:n("settings.features.dataStorage.description"),options:[{value:"plugin",label:n("settings.features.dataStorage.pluginData")},{value:"daily-notes",label:n("settings.features.dataStorage.dailyNotes")}],getValue:()=>e.settings.pomodoroStorageLocation,setValue:async c=>{let d=c;if(d!==e.settings.pomodoroStorageLocation){let u=await e.loadData(),p=(u==null?void 0:u.pomodoroHistory)&&Array.isArray(u.pomodoroHistory)&&u.pomodoroHistory.length>0;if(await G8e(e,p))try{d==="daily-notes"&&await(await UYt(e)).migrateTodailyNotes(),e.settings.pomodoroStorageLocation=d,t(),new pse.Notice(n("settings.features.dataStorage.notices.locationChanged",{location:n(d==="plugin"?"settings.features.dataStorage.pluginData":"settings.features.dataStorage.dailyNotes")}))}catch(f){js(r,e,t)}else js(r,e,t)}}})),o.addSetting(l=>void on(l,{name:n("settings.features.pomodoro.mobileSidebar.name"),desc:n("settings.features.pomodoro.mobileSidebar.description"),options:[{value:"tab",label:n("settings.features.pomodoro.mobileSidebar.tab")},{value:"left",label:n("settings.features.pomodoro.mobileSidebar.left")},{value:"right",label:n("settings.features.pomodoro.mobileSidebar.right")}],getValue:()=>e.settings.pomodoroMobileSidebar,setValue:async c=>{e.settings.pomodoroMobileSidebar=c,t()}}))}),Dt(r,{heading:n("settings.features.notifications.header"),description:n("settings.features.notifications.description")},o=>{o.addSetting(l=>void he(l,{name:n("settings.features.notifications.enableName"),desc:n("settings.features.notifications.enableDesc"),getValue:()=>e.settings.enableNotifications,setValue:async c=>{e.settings.enableNotifications=c,t(),js(r,e,t)}})),e.settings.enableNotifications&&(o.addSetting(l=>void on(l,{name:n("settings.features.notifications.typeName"),desc:n("settings.features.notifications.typeDesc"),options:[{value:"in-app",label:n("settings.features.notifications.inAppLabel")},{value:"system",label:n("settings.features.notifications.systemLabel")}],getValue:()=>e.settings.notificationType,setValue:async c=>{e.settings.notificationType=c,t()}})),o.addSetting(l=>void qc(l,{name:n("settings.features.notifications.testReminderName"),desc:n("settings.features.notifications.testReminderDesc"),buttonText:n("settings.features.notifications.testReminderButton"),onClick:async()=>{var c;await((c=e.notificationService)==null?void 0:c.sendTestReminderNotification())}})),o.addSetting(l=>void he(l,{name:n("settings.features.notifications.soundEnabledName"),desc:n("settings.features.notifications.soundEnabledDesc"),getValue:()=>e.settings.notificationSoundEnabled,setValue:async c=>{e.settings.notificationSoundEnabled=c,t(),js(r,e,t)}})),e.settings.notificationSoundEnabled&&(o.addSetting(l=>void Bi(l,{name:n("settings.features.notifications.soundVolumeName"),desc:n("settings.features.notifications.soundVolumeDesc"),placeholder:"50",min:0,max:100,getValue:()=>e.settings.notificationSoundVolume,setValue:async c=>{e.settings.notificationSoundVolume=c,t()}})),o.addSetting(l=>void qc(l,{name:n("settings.features.notifications.soundPreviewName"),desc:n("settings.features.notifications.soundPreviewDesc"),buttonText:n("settings.features.notifications.soundPreviewButton"),onClick:()=>{var c;(c=e.notificationService)==null||c.playNotificationSound()}}))))}),Dt(r,{heading:n("settings.features.performance.header"),description:n("settings.features.performance.description")},o=>{o.addSetting(l=>void he(l,{name:n("settings.features.overdue.hideCompletedName"),desc:n("settings.features.overdue.hideCompletedDesc"),getValue:()=>e.settings.hideCompletedFromOverdue,setValue:async c=>{e.settings.hideCompletedFromOverdue=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.features.indexing.disableName"),desc:n("settings.features.indexing.disableDesc"),getValue:()=>e.settings.disableNoteIndexing,setValue:async c=>{e.settings.disableNoteIndexing=c,t()}})),e.settings.suggestionDebounceMs!==void 0&&o.addSetting(l=>void Bi(l,{name:n("settings.features.suggestions.debounceName"),desc:n("settings.features.suggestions.debounceDesc"),placeholder:"300",min:0,max:2e3,getValue:()=>e.settings.suggestionDebounceMs||0,setValue:async c=>{e.settings.suggestionDebounceMs=c>0?c:void 0,t()}}))}),Dt(r,{heading:n("settings.features.timeTrackingSection.header"),description:n("settings.features.timeTrackingSection.description")},o=>{o.addSetting(l=>void he(l,{name:n("settings.features.timeTracking.autoStopName"),desc:n("settings.features.timeTracking.autoStopDesc"),getValue:()=>e.settings.autoStopTimeTrackingOnComplete,setValue:async c=>{e.settings.autoStopTimeTrackingOnComplete=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.features.timeTracking.stopNotificationName"),desc:n("settings.features.timeTracking.stopNotificationDesc"),getValue:()=>e.settings.autoStopTimeTrackingNotification,setValue:async c=>{e.settings.autoStopTimeTrackingNotification=c,t()}}))}),Dt(r,{heading:n("settings.features.recurringSection.header"),description:n("settings.features.recurringSection.description")},o=>{o.addSetting(l=>void he(l,{name:n("settings.features.recurring.maintainOffsetName"),desc:n("settings.features.recurring.maintainOffsetDesc"),getValue:()=>e.settings.maintainDueDateOffsetInRecurring,setValue:async c=>{e.settings.maintainDueDateOffsetInRecurring=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.features.recurring.resetCheckboxesName"),desc:n("settings.features.recurring.resetCheckboxesDesc"),getValue:()=>e.settings.resetCheckboxesOnRecurrence,setValue:async c=>{e.settings.resetCheckboxesOnRecurrence=c,t()}}))}),Dt(r,{heading:n("settings.features.timeblocking.header"),description:n("settings.features.timeblocking.description")},o=>{o.addSetting(l=>void he(l,{name:n("settings.features.timeblocking.enableName"),desc:n("settings.features.timeblocking.enableDesc"),getValue:()=>e.settings.calendarViewSettings.enableTimeblocking,setValue:async c=>{e.settings.calendarViewSettings.enableTimeblocking=c,t(),js(r,e,t)}})),e.settings.calendarViewSettings.enableTimeblocking&&(o.addSetting(l=>void on(l,{name:"Attachment Search Order",desc:"Controls how files are ordered in the Add Attachment search window for timeblocks.",options:[{value:"name-asc",label:"Name (A to Z)"},{value:"name-desc",label:"Name (Z to A)"},{value:"path-asc",label:"Path (A to Z)"},{value:"path-desc",label:"Path (Z to A)"},{value:"created-recent",label:"Created (Newest first)"},{value:"created-oldest",label:"Created (Oldest first)"},{value:"modified-recent",label:"Modified (Newest first)"},{value:"modified-oldest",label:"Modified (Oldest first)"}],getValue:()=>e.settings.calendarViewSettings.timeblockAttachmentSearchOrder,setValue:async c=>{e.settings.calendarViewSettings.timeblockAttachmentSearchOrder=c,t()}})),o.addSetting(l=>void he(l,{name:n("settings.features.timeblocking.showBlocksName"),desc:n("settings.features.timeblocking.showBlocksDesc"),getValue:()=>e.settings.calendarViewSettings.defaultShowTimeblocks,setValue:async c=>{e.settings.calendarViewSettings.defaultShowTimeblocks=c,t()}})),o.addSetting(l=>{l.setName(n("settings.features.timeblocking.defaultColorName")).setDesc(n("settings.features.timeblocking.defaultColorDesc")).addText(c=>{dg(c.inputEl),c.setValue(Su(e.settings.calendarViewSettings.defaultTimeblockColor)),c.onChange(d=>{e.settings.calendarViewSettings.defaultTimeblockColor=_r(d,e.settings.calendarViewSettings.defaultTimeblockColor),t()})})}),o.addSetting(l=>{l.setDesc(n("settings.features.timeblocking.usage")),l.settingEl.addClass("settings-view__group-description")}))}),Dt(r,{heading:n("settings.features.debugLogging.header"),description:n("settings.features.debugLogging.description")},o=>{o.addSetting(l=>void he(l,{name:n("settings.features.debugLogging.enableName"),desc:n("settings.features.debugLogging.enableDesc"),getValue:()=>e.settings.enableDebugLogging,setValue:async c=>{e.settings.enableDebugLogging=c,t()}}))})}var ge=require("obsidian");var l7e=require("obsidian");K();var HYt=N({tag:"Api/LoadAPIEndpoints"});function VYt(r){return r instanceof Error?r.message:String(r)}function qYt(r=8080,e={}){var a;let t={url:`http://localhost:${r}/api/docs`,throw:!1},n=(a=e.apiAuthToken)==null?void 0:a.trim();return n&&(t.headers={Authorization:`Bearer ${n}`}),t}async function c7e(r,e=8080,t={}){let n=r.createEl("p",{text:"Loading API endpoints...",attr:{style:"color: var(--text-muted); font-style: italic; margin: 16px 0;"}});try{let a=await(0,l7e.requestUrl)(qYt(e,t));if(a.status<200||a.status>=300)throw new Error(`API unavailable (${a.status})`);let i=a.json;n.remove();let s={};if(i.paths)for(let[o,l]of Object.entries(i.paths))for(let[c,d]of Object.entries(l)){let p=(d.tags||["General"])[0];s[p]||(s[p]=[]),s[p].push({method:c.toUpperCase(),path:o,summary:d.summary||d.description||"No description"})}Object.keys(s).length>0?Object.entries(s).forEach(([o,l])=>{r.createEl("h5",{text:o,attr:{style:"margin: 16px 0 8px 0; font-weight: 600; color: var(--text-normal);"}});let c=r.createEl("ul");l.forEach(d=>{c.createEl("li",{text:`${d.method} ${d.path} - ${d.summary}`})})}):r.createEl("p",{text:"No API endpoints found in specification.",attr:{style:"color: var(--text-muted); margin: 16px 0;"}})}catch(a){HYt.error("Error loading API endpoints:",{category:"provider",operation:"loading-api-endpoints",error:a}),n.remove(),r.createEl("p",{text:`API server not accessible (${VYt(a)}). Ensure the TaskNotes API server is running on port ${e}.`,attr:{style:"color: var(--text-muted); font-style: italic; margin: 16px 0;"}})}}mT();Yc();ro();PZ();fi();K();var El=N({tag:"Settings/Tabs/IntegrationsTab"});function qp(r,e){let n=new Date().getTime()-r.getTime(),a=Math.floor(n/1e3),i=Math.floor(a/60),s=Math.floor(i/60),o=Math.floor(s/24);return o>0?e("settings.integrations.timeFormats.daysAgo",{days:o,plural:o>1?"s":""}):s>0?e("settings.integrations.timeFormats.hoursAgo",{hours:s,plural:s>1?"s":""}):i>0?e("settings.integrations.timeFormats.minutesAgo",{minutes:i,plural:i>1?"s":""}):e("settings.integrations.timeFormats.justNow")}function mse(r){return r instanceof Error?r.message:String(r)}var WYt=["title","zettel","timestamp","custom"],YYt=["series","instance"];function GYt(r){return WYt.some(e=>e===r)}function KYt(r){return YYt.some(e=>e===r)}function ZYt(r){return Array.isArray(r)?r.filter(e=>e>0).join(", "):typeof r=="number"&&r>0?r.toString():""}function QYt(r){let e=r.split(/[,\s]+/).map(n=>Math.trunc(Number(n.trim()))).filter(n=>Number.isFinite(n)&&n>0).map(n=>Math.min(n,go.MAX_REMINDER_MINUTES)),t=Array.from(new Set(e));return t.length===0?null:t.length===1?t[0]:t}function d7e(r,e,t,n){var d;let a=r.oauthService,i=a==null?void 0:a.getCredentials(e),s=Ke("text",t,(d=i==null?void 0:i.clientId)!=null?d:""),o=Ke("text",i!=null&&i.clientSecret?"Stored securely - enter a new value to replace":n,"");o.setAttribute("type","password");let l=()=>{if(!a)return;let u=a.getCredentials(e),p=s.value.trim();!p&&!(u!=null&&u.clientSecret)||a.setCredentials(e,{clientId:p,...u!=null&&u.clientSecret?{clientSecret:u.clientSecret}:{}})},c=()=>{if(!a)return;let u=o.value.trim();u&&(a.setCredentials(e,{clientId:s.value.trim(),clientSecret:u}),o.value="",o.placeholder="Stored securely - enter a new value to replace")};return s.addEventListener("blur",l),o.addEventListener("blur",c),{clientIdInput:s,clientSecretInput:o,persistPendingValues:()=>{c(),l()},hasStoredCredentials:i!==null}}var u7e=[{id:"task.created",label:"Task Created",desc:"When new tasks are created"},{id:"task.updated",label:"Task Updated",desc:"When tasks are modified"},{id:"task.completed",label:"Task Completed",desc:"When tasks are marked complete"},{id:"task.deleted",label:"Task Deleted",desc:"When tasks are deleted"},{id:"task.archived",label:"Task Archived",desc:"When tasks are archived"},{id:"task.unarchived",label:"Task Unarchived",desc:"When tasks are unarchived"},{id:"time.started",label:"Time Started",desc:"When time tracking starts"},{id:"time.stopped",label:"Time Stopped",desc:"When time tracking stops"},{id:"pomodoro.started",label:"Pomodoro Started",desc:"When pomodoro sessions begin"},{id:"pomodoro.completed",label:"Pomodoro Completed",desc:"When pomodoro sessions finish"},{id:"pomodoro.interrupted",label:"Pomodoro Interrupted",desc:"When pomodoro sessions are stopped"},{id:"recurring.instance.completed",label:"Recurring Instance Completed",desc:"When recurring task instances complete"},{id:"reminder.triggered",label:"Reminder Triggered",desc:"When task reminders activate"}];function uv(r,e,t){r.empty();let n=(d,u)=>e.i18n.translate(d,u),a=YL(e.settings);Dt(r,{heading:n("settings.integrations.mdbaseSpec.header")},d=>{d.addSetting(u=>{he(u,{name:n("settings.integrations.mdbaseSpec.enable.name"),desc:"",getValue:()=>e.settings.enableMdbaseSpec,setValue:f=>{e.settings.enableMdbaseSpec=f,t()}});let p=u.descEl;p.createSpan({text:n("settings.integrations.mdbaseSpec.enable.description")+" "}),p.createEl("a",{text:n("settings.integrations.mdbaseSpec.learnMore"),href:"https://mdbase.dev"}).setAttr("target","_blank")})}),Dt(r,{heading:"OAuth Calendar Integration"},d=>{d.addSetting(u=>{u.setDesc("Connect your Google calendar or Microsoft outlook to sync events directly into tasknotes.");let p=u.descEl;p.createSpan({text:" You'll need to create OAuth credentials with Google and/or Microsoft. This takes approximately 15 minutes for initial setup. "}),p.createEl("a",{text:"View calendar setup guide",href:"https://callumalpass.github.io/tasknotes/calendar-setup"}).setAttr("target","_blank")}),d.addSetting(u=>void he(u,{name:n("settings.integrations.mobileCalendar.disable.name"),desc:n("settings.integrations.mobileCalendar.disable.description"),getValue:()=>e.settings.disableCalendarOnMobile,setValue:async p=>{e.settings.disableCalendarOnMobile=p,t(),ge.Platform.isMobile&&uv(r,e,t)}})),a&&d.addSetting(u=>{u.setName(n("settings.integrations.mobileCalendar.status.name")),u.setDesc(n("settings.integrations.mobileCalendar.status.description"))})});let i=r.createDiv("google-calendar-integration-container"),s=async()=>{if(i.empty(),!e.oauthService){Tr(i,{header:{primaryText:"Google Calendar",secondaryText:"OAuth service not available",meta:[Ui("Error","inactive")]}});return}let d=await e.oauthService.isConnected("google"),u=d?await e.oauthService.getConnection("google"):null;if(d&&u){let p=u.connectedAt?new Date(u.connectedAt):null,m=p?qp(p,n):"",f=activeWindow.createDiv();f.className="tasknotes-calendar-info",f.textContent=p?`Connected ${m}`:"Connected";let h=activeWindow.createDiv();if(h.className="tasknotes-calendar-info",u.lastRefreshed){let g=new Date(u.lastRefreshed);h.textContent=`Last refreshed ${qp(g,n)}`}else h.textContent="Never refreshed";Tr(i,{collapsible:!0,defaultCollapsed:!1,colorIndicator:{color:"#4285F4"},header:{primaryText:"Google Calendar",secondaryText:"OAuth 2.0 Connection",meta:[Ui("Connected","active")]},content:{sections:[{rows:[{label:"Status:",input:f},{label:"Sync:",input:h}]}]},actions:{buttons:[{text:"Refresh Now",icon:"refresh-cw",variant:"primary",onClick:async()=>{try{e.googleCalendarService&&(await e.googleCalendarService.refresh(),new ge.Notice("Google calendar refreshed successfully"),s())}catch(g){El.error("Failed to refresh:",{category:"configuration",operation:"refresh",error:g}),new ge.Notice("Failed to refresh Google calendar")}}},{text:"Disconnect",icon:"log-out",variant:"warning",onClick:async()=>{try{let g=e.oauthService;if(!g)return;await g.disconnect("google"),new ge.Notice("Disconnected from Google calendar"),s()}catch(g){El.error("Failed to disconnect:",{category:"configuration",operation:"disconnect",error:g}),new ge.Notice("Failed to disconnect from Google calendar")}}}]}})}else{let p=activeWindow.createDiv();p.className="tasknotes-calendar-help",p.textContent="Connect your Google calendar account to sync events directly into tasknotes. Events will automatically refresh every 15 minutes.";let m=[{rows:[{label:"Info:",input:p,fullWidth:!0}]}],f=d7e(e,"google","your-client-id.apps.googleusercontent.com","your-client-secret"),h=activeWindow.createDiv();h.className="tasknotes-credential-note",h.textContent="Enter your OAUTH app credentials from Google cloud console. Obsidian secret storage encrypts credentials at rest when supported by the operating system.",m.push({rows:[{label:"Client ID:",input:f.clientIdInput},{label:"Client Secret:",input:f.clientSecretInput},{label:"",input:h,fullWidth:!0}]}),Tr(i,{collapsible:!0,defaultCollapsed:!1,colorIndicator:{color:"#9AA0A6"},header:{primaryText:"Google Calendar",secondaryText:"OAuth 2.0 Connection",meta:[Ui("Not Connected","inactive")]},content:{sections:m},actions:{buttons:[{text:"Connect Google Calendar",icon:"link",variant:"primary",onClick:async()=>{try{let g=e.oauthService;if(!g)return;f.persistPendingValues(),await g.authenticate("google"),new ge.Notice("Google calendar connected successfully!"),s()}catch(g){El.error("Failed to connect:",{category:"configuration",operation:"connect",error:g}),new ge.Notice(`Failed to connect: ${mse(g)}`)}}},...f.hasStoredCredentials?[{text:"Forget saved credentials",icon:"trash-2",variant:"warning",onClick:async()=>{await Ir(e.app,{title:"Forget Google OAuth credentials?",message:"This removes the saved client ID and client secret from Obsidian Secret Storage.",confirmText:"Forget credentials",isDestructive:!0})&&(e.oauthService.clearCredentials("google"),new ge.Notice("Forgot Google OAUTH credentials"),s())}}]:[]]}})}};s();let o=r.createDiv("microsoft-calendar-integration-container"),l=async()=>{var p;if(o.empty(),!e.oauthService){Tr(o,{header:{primaryText:"Microsoft Outlook Calendar",secondaryText:"OAuth service not available",meta:[Ui("Error","inactive")]}});return}let d=await e.oauthService.isConnected("microsoft"),u=d?await e.oauthService.getConnection("microsoft"):null;if(d&&u){let m=u.connectedAt?new Date(u.connectedAt):null,f=m?qp(m,n):"",h=activeWindow.createDiv();h.className="tasknotes-calendar-info",h.textContent=m?`Connected ${f}`:"Connected";let g=activeWindow.createDiv();if(g.className="tasknotes-calendar-info",u.lastRefreshed){let w=new Date(u.lastRefreshed);g.textContent=`OAuth token refreshed ${qp(w,n)}`}else g.textContent="Token not refreshed yet";let v=(p=e.microsoftCalendarService)==null?void 0:p.getSyncStatus(),b=activeWindow.createDiv();if(b.className="tasknotes-calendar-info",!e.microsoftCalendarService)b.addClass("tasknotes-calendar-info--warning"),b.textContent="Calendar sync service not available";else if(v!=null&&v.lastError){b.addClass("tasknotes-calendar-info--warning");let w=v.lastAttempt?new Date(v.lastAttempt):null,S=w?` ${qp(w,n)}`:"";b.textContent=`Calendar sync failed${S}: ${v.lastError}`}else if(v!=null&&v.lastSuccess){let w=new Date(v.lastSuccess);b.textContent=`Calendar sync succeeded ${qp(w,n)} (${v.eventsLoaded} events)`}else if(v!=null&&v.lastAttempt){let w=new Date(v.lastAttempt);b.textContent=`Calendar sync checked ${qp(w,n)}`}else b.textContent="Calendar events not refreshed yet";let k=[{label:"Status:",input:h},{label:"Token:",input:g},{label:"Sync:",input:b}];if(v!=null&&v.calendarErrors.length){let w=activeWindow.createDiv();w.className="tasknotes-calendar-info tasknotes-calendar-info--warning";let S=v.calendarErrors[0],C=S.calendarName||S.calendarId||"Microsoft calendar";w.textContent=v.calendarErrors.length===1?`${C}: ${S.message}`:`${v.calendarErrors.length} calendars failed. First error: ${C}: ${S.message}`,k.push({label:"Issue:",input:w,fullWidth:!0})}Tr(o,{collapsible:!0,defaultCollapsed:!1,colorIndicator:{color:"#0078D4"},header:{primaryText:"Microsoft Outlook Calendar",secondaryText:"OAuth 2.0 Connection",meta:[Ui("Connected","active")]},content:{sections:[{rows:k}]},actions:{buttons:[{text:"Refresh Now",icon:"refresh-cw",variant:"primary",onClick:async()=>{try{if(e.microsoftCalendarService){await e.microsoftCalendarService.refresh();let w=e.microsoftCalendarService.getSyncStatus();w.lastError?new ge.Notice(`Microsoft calendar refresh had errors: ${w.lastError}`):new ge.Notice("Microsoft calendar refreshed successfully"),l()}}catch(w){El.error("Failed to refresh:",{category:"configuration",operation:"refresh",error:w}),new ge.Notice(`Failed to refresh Microsoft calendar: ${mse(w)}`)}}},{text:"Disconnect",icon:"log-out",variant:"warning",onClick:async()=>{try{let w=e.oauthService;if(!w)return;await w.disconnect("microsoft"),new ge.Notice("Disconnected from Microsoft calendar"),l()}catch(w){El.error("Failed to disconnect:",{category:"configuration",operation:"disconnect",error:w}),new ge.Notice("Failed to disconnect from Microsoft calendar")}}}]}})}else{let m=activeWindow.createDiv();m.className="tasknotes-calendar-help",m.textContent="Connect your Microsoft outlook calendar to sync events directly into tasknotes.";let f=[{rows:[{label:"Info:",input:m,fullWidth:!0}]}],h=d7e(e,"microsoft","your-microsoft-client-id","your-microsoft-client-secret"),g=activeWindow.createDiv();g.className="tasknotes-credential-note",g.textContent="Enter your OAUTH app credentials from azure portal. Obsidian secret storage encrypts credentials at rest when supported by the operating system.",f.push({rows:[{label:"Client ID:",input:h.clientIdInput},{label:"Client Secret:",input:h.clientSecretInput},{label:"",input:g,fullWidth:!0}]}),Tr(o,{collapsible:!0,defaultCollapsed:!1,colorIndicator:{color:"#737373"},header:{primaryText:"Microsoft Outlook Calendar",secondaryText:"OAuth 2.0 Connection",meta:[Ui("Not Connected","inactive")]},content:{sections:f},actions:{buttons:[{text:"Connect Microsoft Calendar",icon:"link",variant:"primary",onClick:async()=>{try{let v=e.oauthService;if(!v)return;h.persistPendingValues(),await v.authenticate("microsoft"),new ge.Notice("Microsoft calendar connected successfully!"),l()}catch(v){El.error("Failed to connect:",{category:"configuration",operation:"connect",error:v}),new ge.Notice(`Failed to connect: ${mse(v)}`)}}},...h.hasStoredCredentials?[{text:"Forget saved credentials",icon:"trash-2",variant:"warning",onClick:async()=>{await Ir(e.app,{title:"Forget Microsoft OAuth credentials?",message:"This removes the saved client ID and client secret from Obsidian Secret Storage.",confirmText:"Forget credentials",isDestructive:!0})&&(e.oauthService.clearCredentials("microsoft"),new ge.Notice("Forgot Microsoft OAUTH credentials"),l())}}]:[]]}})}};l(),Dt(r,{heading:n("settings.integrations.googleCalendarExport.header"),description:n("settings.integrations.googleCalendarExport.description")},d=>{d.addSetting(u=>void he(u,{name:n("settings.integrations.googleCalendarExport.enable.name"),desc:n("settings.integrations.googleCalendarExport.enable.description"),getValue:()=>e.settings.googleCalendarExport.enabled,setValue:async p=>{e.settings.googleCalendarExport.enabled=p,t()}})),d.addSetting(u=>{u.setName(n("settings.integrations.googleCalendarExport.targetCalendar.name")),u.setDesc(n("settings.integrations.googleCalendarExport.targetCalendar.description"));let p=u.controlEl.createEl("select",{cls:"dropdown"});p.classList.remove("tn-static-width-100-0466783d","tn-static-width-12px-fbf353fb","tn-static-width-16px-7375d50b","tn-static-width-1px-aa77e27e","tn-static-width-60px-bd09c419","tn-static-width-80px-8573bae3"),p.classList.add("tn-static-width-200px-2acaf3b5"),p.createEl("option",{text:n("settings.integrations.googleCalendarExport.targetCalendar.placeholder"),value:""});let m=async()=>{for(;p.options.length>1;)p.remove(1);if(e.oauthService&&await e.oauthService.isConnected("google")&&e.googleCalendarService){let b=e.googleCalendarService.getAvailableCalendars();for(let k of b){let w=p.createEl("option",{text:k.summary+(k.primary?n("settings.integrations.googleCalendarExport.targetCalendar.primarySuffix"):""),value:k.id});k.id===e.settings.googleCalendarExport.targetCalendarId&&(w.selected=!0)}}else p.createEl("option",{text:n("settings.integrations.googleCalendarExport.targetCalendar.connectFirst"),value:""})};m();let f=null,h=null,g=()=>{f&&(f(),f=null),h&&(h.disconnect(),h=null)};f=e.googleCalendarService.on("data-changed",()=>{if(!p.isConnected){g();return}m()}),h=new MutationObserver(()=>{p.isConnected||g()}),h.observe(r.ownerDocument.body,{childList:!0,subtree:!0}),p.addEventListener("change",()=>{e.settings.googleCalendarExport.targetCalendarId=p.value,t()})}),d.addSetting(u=>void on(u,{name:n("settings.integrations.googleCalendarExport.syncTrigger.name"),desc:n("settings.integrations.googleCalendarExport.syncTrigger.description"),options:[{value:"scheduled",label:n("settings.integrations.googleCalendarExport.syncTrigger.options.scheduled")},{value:"due",label:n("settings.integrations.googleCalendarExport.syncTrigger.options.due")},{value:"both",label:n("settings.integrations.googleCalendarExport.syncTrigger.options.both")}],getValue:()=>e.settings.googleCalendarExport.syncTrigger,setValue:async p=>{e.settings.googleCalendarExport.syncTrigger=p,t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.googleCalendarExport.allDayEvents.name"),desc:n("settings.integrations.googleCalendarExport.allDayEvents.description"),getValue:()=>e.settings.googleCalendarExport.createAsAllDay,setValue:async p=>{e.settings.googleCalendarExport.createAsAllDay=p,t()}})),d.addSetting(u=>void Bi(u,{name:n("settings.integrations.googleCalendarExport.defaultDuration.name"),desc:n("settings.integrations.googleCalendarExport.defaultDuration.description"),getValue:()=>e.settings.googleCalendarExport.defaultEventDuration,setValue:async p=>{e.settings.googleCalendarExport.defaultEventDuration=p,t()},min:15,max:480})),d.addSetting(u=>void Sn(u,{name:n("settings.integrations.googleCalendarExport.eventTitleTemplate.name"),desc:n("settings.integrations.googleCalendarExport.eventTitleTemplate.description"),placeholder:n("settings.integrations.googleCalendarExport.eventTitleTemplate.placeholder"),getValue:()=>e.settings.googleCalendarExport.eventTitleTemplate,setValue:async p=>{e.settings.googleCalendarExport.eventTitleTemplate=p||"{{title}}",t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.googleCalendarExport.includeDescription.name"),desc:n("settings.integrations.googleCalendarExport.includeDescription.description"),getValue:()=>e.settings.googleCalendarExport.includeDescription,setValue:async p=>{e.settings.googleCalendarExport.includeDescription=p,t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.googleCalendarExport.includeObsidianLink.name"),desc:n("settings.integrations.googleCalendarExport.includeObsidianLink.description"),getValue:()=>e.settings.googleCalendarExport.includeObsidianLink,setValue:async p=>{e.settings.googleCalendarExport.includeObsidianLink=p,t()}})),d.addSetting(u=>void Sn(u,{name:n("settings.integrations.googleCalendarExport.defaultReminder.name"),desc:n("settings.integrations.googleCalendarExport.defaultReminder.description"),getValue:()=>ZYt(e.settings.googleCalendarExport.defaultReminderMinutes),setValue:async p=>{e.settings.googleCalendarExport.defaultReminderMinutes=QYt(p),t()},placeholder:"60, 1440"})),d.addSetting(u=>{u.setName(n("settings.integrations.googleCalendarExport.automaticSyncBehavior.header")),u.setHeading()}),d.addSetting(u=>void he(u,{name:n("settings.integrations.googleCalendarExport.syncOnCreate.name"),desc:n("settings.integrations.googleCalendarExport.syncOnCreate.description"),getValue:()=>e.settings.googleCalendarExport.syncOnTaskCreate,setValue:async p=>{e.settings.googleCalendarExport.syncOnTaskCreate=p,t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.googleCalendarExport.syncOnUpdate.name"),desc:n("settings.integrations.googleCalendarExport.syncOnUpdate.description"),getValue:()=>e.settings.googleCalendarExport.syncOnTaskUpdate,setValue:async p=>{e.settings.googleCalendarExport.syncOnTaskUpdate=p,t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.googleCalendarExport.syncOnComplete.name"),desc:n("settings.integrations.googleCalendarExport.syncOnComplete.description"),getValue:()=>e.settings.googleCalendarExport.syncOnTaskComplete,setValue:async p=>{e.settings.googleCalendarExport.syncOnTaskComplete=p,t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.googleCalendarExport.syncOnDelete.name"),desc:n("settings.integrations.googleCalendarExport.syncOnDelete.description"),getValue:()=>e.settings.googleCalendarExport.syncOnTaskDelete,setValue:async p=>{e.settings.googleCalendarExport.syncOnTaskDelete=p,t()}})),d.addSetting(u=>{u.setName(n("settings.integrations.googleCalendarExport.manualSyncActions.header")),u.setHeading()}),d.addSetting(u=>void qc(u,{name:n("settings.integrations.googleCalendarExport.syncAllTasks.name"),desc:n("settings.integrations.googleCalendarExport.syncAllTasks.description"),buttonText:n("settings.integrations.googleCalendarExport.syncAllTasks.buttonText"),onClick:async()=>{var m;if(!((m=e.taskCalendarSyncService)!=null&&m.isEnabled())){new ge.Notice(n("settings.integrations.googleCalendarExport.notices.notEnabledOrConfigured"));return}let p=await e.taskCalendarSyncService.syncAllTasks();new ge.Notice(n("settings.integrations.googleCalendarExport.notices.syncResults",{synced:p.synced,failed:p.failed,skipped:p.skipped}))}})),d.addSetting(u=>void qc(u,{name:n("settings.integrations.googleCalendarExport.unlinkAllTasks.name"),desc:n("settings.integrations.googleCalendarExport.unlinkAllTasks.description"),buttonText:n("settings.integrations.googleCalendarExport.unlinkAllTasks.buttonText"),onClick:async()=>{if(!e.taskCalendarSyncService){new ge.Notice(n("settings.integrations.googleCalendarExport.notices.serviceNotAvailable"));return}await Ir(e.app,{title:n("settings.integrations.googleCalendarExport.unlinkAllTasks.confirmTitle"),message:n("settings.integrations.googleCalendarExport.unlinkAllTasks.confirmMessage"),confirmText:n("settings.integrations.googleCalendarExport.unlinkAllTasks.confirmButtonText"),isDestructive:!0})&&await e.taskCalendarSyncService.unlinkAllTasks(!1)}}))}),Dt(r,{heading:n("settings.integrations.calendarSubscriptions.header"),description:n("settings.integrations.calendarSubscriptions.description")},d=>{d.addSetting(u=>void Sn(u,{name:n("settings.integrations.calendarSubscriptions.defaultNoteTemplate.name"),desc:n("settings.integrations.calendarSubscriptions.defaultNoteTemplate.description"),placeholder:n("settings.integrations.calendarSubscriptions.defaultNoteTemplate.placeholder"),getValue:()=>e.settings.icsIntegration.defaultNoteTemplate,setValue:async p=>{e.settings.icsIntegration.defaultNoteTemplate=p,t()}})),d.addSetting(u=>void Sn(u,{name:n("settings.integrations.calendarSubscriptions.defaultNoteFolder.name"),desc:n("settings.integrations.calendarSubscriptions.defaultNoteFolder.description"),placeholder:n("settings.integrations.calendarSubscriptions.defaultNoteFolder.placeholder"),getValue:()=>e.settings.icsIntegration.defaultNoteFolder,setValue:async p=>{e.settings.icsIntegration.defaultNoteFolder=p,t()}})),d.addSetting(u=>void on(u,{name:n("settings.integrations.calendarSubscriptions.filenameFormat.name"),desc:n("settings.integrations.calendarSubscriptions.filenameFormat.description"),options:[{value:"title",label:n("settings.integrations.calendarSubscriptions.filenameFormat.options.title")},{value:"zettel",label:n("settings.integrations.calendarSubscriptions.filenameFormat.options.zettel")},{value:"timestamp",label:n("settings.integrations.calendarSubscriptions.filenameFormat.options.timestamp")},{value:"custom",label:n("settings.integrations.calendarSubscriptions.filenameFormat.options.custom")}],getValue:()=>e.settings.icsIntegration.icsNoteFilenameFormat,setValue:async p=>{GYt(p)&&(e.settings.icsIntegration.icsNoteFilenameFormat=p,t(),uv(r,e,t))}})),e.settings.icsIntegration.icsNoteFilenameFormat==="custom"&&d.addSetting(u=>void Sn(u,{name:n("settings.integrations.calendarSubscriptions.customTemplate.name"),desc:n("settings.integrations.calendarSubscriptions.customTemplate.description"),placeholder:n("settings.integrations.calendarSubscriptions.customTemplate.placeholder"),getValue:()=>e.settings.icsIntegration.customICSNoteFilenameTemplate,setValue:async p=>{e.settings.icsIntegration.customICSNoteFilenameTemplate=p,t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.calendarSubscriptions.useICSEndAsDue.name"),desc:n("settings.integrations.calendarSubscriptions.useICSEndAsDue.description"),getValue:()=>{var p;return(p=e.settings.icsIntegration.useICSEndAsDue)!=null?p:!1},setValue:async p=>{e.settings.icsIntegration.useICSEndAsDue=p,t()}})),d.addSetting(u=>void on(u,{name:n("settings.integrations.calendarSubscriptions.recurringEventRelatedNotesMode.name"),desc:n("settings.integrations.calendarSubscriptions.recurringEventRelatedNotesMode.description"),options:[{value:"series",label:n("settings.integrations.calendarSubscriptions.recurringEventRelatedNotesMode.options.series")},{value:"instance",label:n("settings.integrations.calendarSubscriptions.recurringEventRelatedNotesMode.options.instance")}],getValue:()=>{var p;return(p=e.settings.icsIntegration.recurringEventRelatedNotesMode)!=null?p:"series"},setValue:async p=>{KYt(p)&&(e.settings.icsIntegration.recurringEventRelatedNotesMode=p,t())}}))}),Dt(r,{heading:n("settings.integrations.subscriptionsList.header")},d=>{d.addSetting(u=>void qc(u,{name:n("settings.integrations.subscriptionsList.addSubscription.name"),desc:n("settings.integrations.subscriptionsList.addSubscription.description"),buttonText:n("settings.integrations.subscriptionsList.addSubscription.buttonText"),onClick:async()=>{let p={name:n("settings.integrations.subscriptionsList.newCalendarName"),url:"",color:"#6366f1",enabled:!1,type:"remote",refreshInterval:60};if(!e.icsSubscriptionService){new ge.Notice(n("settings.integrations.subscriptionsList.notices.serviceUnavailable"));return}try{await e.icsSubscriptionService.addSubscription(p),new ge.Notice(n("settings.integrations.subscriptionsList.notices.addSuccess")),Jw(c,e,t)}catch(m){El.error("Error adding subscription:",{category:"provider",operation:"adding-subscription",error:m}),new ge.Notice(n("settings.integrations.subscriptionsList.notices.addFailure"))}}})),d.addSetting(u=>void qc(u,{name:n("settings.integrations.subscriptionsList.refreshAll.name"),desc:n("settings.integrations.subscriptionsList.refreshAll.description"),buttonText:n("settings.integrations.subscriptionsList.refreshAll.buttonText"),onClick:async()=>{if(e.icsSubscriptionService)try{await e.icsSubscriptionService.refreshAllSubscriptions(),new ge.Notice(n("settings.integrations.subscriptionsList.notices.refreshSuccess"))}catch(p){El.error("Error refreshing subscriptions:",{category:"provider",operation:"refreshing-subscriptions",error:p}),new ge.Notice(n("settings.integrations.subscriptionsList.notices.refreshFailure"))}}}))});let c=r.createDiv("ics-subscriptions-container");if(Jw(c,e,t),Dt(r,{heading:n("settings.integrations.autoExport.header"),description:n("settings.integrations.autoExport.description")},d=>{d.addSetting(u=>void he(u,{name:n("settings.integrations.autoExport.enable.name"),desc:n("settings.integrations.autoExport.enable.description"),getValue:()=>e.settings.icsIntegration.enableAutoExport,setValue:async p=>{e.settings.icsIntegration.enableAutoExport=p,t(),new ge.Notice(n("settings.integrations.autoExport.notices.reloadRequired")),uv(r,e,t)}})),e.settings.icsIntegration.enableAutoExport&&(d.addSetting(u=>void Sn(u,{name:n("settings.integrations.autoExport.filePath.name"),desc:n("settings.integrations.autoExport.filePath.description"),placeholder:n("settings.integrations.autoExport.filePath.placeholder"),getValue:()=>e.settings.icsIntegration.autoExportPath,setValue:async p=>{e.settings.icsIntegration.autoExportPath=p||"tasknotes-calendar.ics",t()}})),d.addSetting(u=>void Bi(u,{name:n("settings.integrations.autoExport.interval.name"),desc:n("settings.integrations.autoExport.interval.description"),placeholder:n("settings.integrations.autoExport.interval.placeholder"),min:5,max:1440,getValue:()=>e.settings.icsIntegration.autoExportInterval,setValue:async p=>{e.settings.icsIntegration.autoExportInterval=Math.max(5,p||60),t(),e.autoExportService&&e.autoExportService.updateInterval(e.settings.icsIntegration.autoExportInterval)}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.autoExport.useDuration.name"),desc:n("settings.integrations.autoExport.useDuration.description"),getValue:()=>{var p;return(p=e.settings.icsIntegration.useDurationForExport)!=null?p:!1},setValue:async p=>{e.settings.icsIntegration.useDurationForExport=p,t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.autoExport.excludeCompleted.name"),desc:n("settings.integrations.autoExport.excludeCompleted.description"),getValue:()=>{var p;return(p=e.settings.icsIntegration.excludeCompletedFromExport)!=null?p:!1},setValue:async p=>{e.settings.icsIntegration.excludeCompletedFromExport=p,t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.autoExport.excludeArchived.name"),desc:n("settings.integrations.autoExport.excludeArchived.description"),getValue:()=>{var p;return(p=e.settings.icsIntegration.excludeArchivedFromExport)!=null?p:!1},setValue:async p=>{e.settings.icsIntegration.excludeArchivedFromExport=p,t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.autoExport.requireDueDate.name"),desc:n("settings.integrations.autoExport.requireDueDate.description"),getValue:()=>{var p;return(p=e.settings.icsIntegration.requireDueDateForExport)!=null?p:!1},setValue:async p=>{e.settings.icsIntegration.requireDueDateForExport=p,t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.autoExport.requireScheduledDate.name"),desc:n("settings.integrations.autoExport.requireScheduledDate.description"),getValue:()=>{var p;return(p=e.settings.icsIntegration.requireScheduledDateForExport)!=null?p:!1},setValue:async p=>{e.settings.icsIntegration.requireScheduledDateForExport=p,t()}})),d.addSetting(u=>void qc(u,{name:n("settings.integrations.autoExport.exportNow.name"),desc:n("settings.integrations.autoExport.exportNow.description"),buttonText:n("settings.integrations.autoExport.exportNow.buttonText"),onClick:async()=>{if(e.autoExportService)try{await e.autoExportService.exportNow(),new ge.Notice(n("settings.integrations.autoExport.notices.exportSuccess")),uv(r,e,t)}catch(p){El.error("Manual export failed:",{category:"provider",operation:"manual-export",error:p}),new ge.Notice(n("settings.integrations.autoExport.notices.exportFailure"))}else new ge.Notice(n("settings.integrations.autoExport.notices.serviceUnavailable"))}})),d.addSetting(u=>{u.setName(n("settings.integrations.autoExport.status.title"));let p=u.descEl;if(e.autoExportService){let m=e.autoExportService.getLastExportTime(),f=e.autoExportService.getNextExportTime(),h=m?n("settings.integrations.autoExport.status.lastExport",{time:m.toLocaleString()}):n("settings.integrations.autoExport.status.noExports"),g=f?n("settings.integrations.autoExport.status.nextExport",{time:f.toLocaleString()}):n("settings.integrations.autoExport.status.notScheduled");p.textContent=h+`
|
||
`+g}else p.textContent=n("settings.integrations.autoExport.status.serviceNotInitialized"),p.addClass("tasknotes-auto-export-status__error")}))}),!ge.Platform.isMobile){if(Dt(r,{heading:n("settings.integrations.httpApi.header"),description:n("settings.integrations.httpApi.description")},d=>{d.addSetting(u=>void he(u,{name:n("settings.integrations.httpApi.enable.name"),desc:n("settings.integrations.httpApi.enable.description"),getValue:()=>e.settings.enableAPI,setValue:async p=>{e.settings.enableAPI=p,t(),uv(r,e,t)}})),e.settings.enableAPI&&(d.addSetting(u=>void Bi(u,{name:n("settings.integrations.httpApi.port.name"),desc:n("settings.integrations.httpApi.port.description"),placeholder:n("settings.integrations.httpApi.port.placeholder"),min:1024,max:65535,getValue:()=>e.settings.apiPort,setValue:async p=>{e.settings.apiPort=p,t()}})),d.addSetting(u=>void Sn(u,{name:n("settings.integrations.httpApi.authToken.name"),desc:n("settings.integrations.httpApi.authToken.description"),placeholder:n("settings.integrations.httpApi.authToken.placeholder"),getValue:()=>e.settings.apiAuthToken,setValue:async p=>{e.settings.apiAuthToken=p,t()}})),d.addSetting(u=>void he(u,{name:n("settings.integrations.httpApi.mcp.enable.name"),desc:n("settings.integrations.httpApi.mcp.enable.description"),getValue:()=>e.settings.enableMCP,setValue:async p=>{e.settings.enableMCP=p,t()}})))}),e.settings.enableAPI){let d=r.createDiv("tasknotes-settings__help-section"),u=d.createDiv("tasknotes-settings__collapsible-header"),p=u.createDiv("tasknotes-settings__collapsible-header-content"),m=p.createSpan("tasknotes-settings__collapsible-icon");m.textContent=n("settings.integrations.httpApi.endpoints.expandIcon"),p.createSpan({text:n("settings.integrations.httpApi.endpoints.header"),cls:"tasknotes-settings__collapsible-title"});let f=d.createDiv("tasknotes-settings__collapsible-content");f.classList.remove("tn-static-display-block-2a1b75c9","tn-static-display-flex-4d51fc62","tn-static-display-flex-75816cae","tn-static-display-flex-8bb39979","tn-static-display-inline-block-60e32dcb","tn-static-display-inline-cccfa456","tn-static-display-inline-flex-f984c520","tn-static-min-height-800px-997b4c8c"),f.classList.add("tn-static-display-none-6b99de8b"),u.addEventListener("click",()=>{let h=f.style.display!=="none";f.style.display=h?"none":"block",m.textContent=n(h?"settings.integrations.httpApi.endpoints.expandIcon":"settings.integrations.httpApi.endpoints.collapseIcon")}),c7e(f,e.settings.apiPort,{apiAuthToken:e.settings.apiAuthToken})}Dt(r,{heading:n("settings.integrations.webhooks.header"),description:n("settings.integrations.webhooks.description.overview")+" "+n("settings.integrations.webhooks.description.usage")},d=>{d.addSetting(u=>void qc(u,{name:n("settings.integrations.webhooks.addWebhook.name"),desc:n("settings.integrations.webhooks.addWebhook.description"),buttonText:n("settings.integrations.webhooks.addWebhook.buttonText"),onClick:async()=>{new gse(e.app,m=>{var h;let f={id:`wh_${Date.now()}_${Math.random().toString(36).substring(2,9)}`,url:m.url||"",events:m.events||[],secret:JYt(),active:!0,createdAt:new Date().toISOString(),failureCount:0,successCount:0,transformFile:m.transformFile,corsHeaders:m.corsHeaders};e.settings.webhooks||(e.settings.webhooks=[]),e.settings.webhooks.push(f),t(),eB(((h=r.querySelector(".tasknotes-webhooks-container"))==null?void 0:h.parentElement)||r,e,t),new fse(e.app,f.secret).open(),new ge.Notice(n("settings.integrations.webhooks.notices.created"))}).open()}}))}),eB(r,e,t)}}function Jw(r,e,t){r.empty();let n=(i,s)=>e.i18n.translate(i,s);if(!e.icsSubscriptionService){Wc(r,n("settings.integrations.subscriptionsList.notices.serviceUnavailable"));return}let a=e.icsSubscriptionService.getSubscriptions();if(a.length===0){let i=r.createDiv("tasknotes-webhooks-empty-state");i.createSpan("tasknotes-webhooks-empty-icon"),i.createSpan({text:n("settings.integrations.subscriptionsList.emptyState"),cls:"tasknotes-webhooks-empty-text"});return}a.forEach(i=>{let s=xn(i.enabled,S=>{i.enabled=S,t()}),o=Ke("text","Calendar name",i.name),l=activeWindow.createEl("select");l.className="tasknotes-settings__card-input";let c=activeWindow.createEl("option");c.value="remote",c.textContent="Remote URL",c.selected=i.type==="remote",l.appendChild(c);let d=activeWindow.createEl("option");d.value="local",d.textContent="Local file",d.selected=i.type==="local",l.appendChild(d);let u;if(i.type==="remote")u=dN("ICS/iCal URL",i.url);else{let S=Ke("text","Local file path (e.g., Calendar.ics)",i.filePath||"");S.setAttribute("placeholder","Calendar.ics"),u=S}let p=Lk(i.color),m=xm(5,1440,5,i.refreshInterval||60),f=async S=>{try{let C=e.icsSubscriptionService;if(!C)return;await C.updateSubscription(i.id,S),t(),Jw(r,e,t)}catch(C){El.error("Error updating subscription:",{category:"provider",operation:"updating-subscription",error:C}),new ge.Notice(n("settings.integrations.subscriptionsList.notices.updateFailure")),Jw(r,e,t)}};o.addEventListener("blur",()=>{f({name:o.value.trim()})}),p.addEventListener("change",()=>{f({color:zk(p,i.color||"#3788d8")})}),m.addEventListener("blur",()=>{let S=parseInt(m.value)||60;f({refreshInterval:S})}),l.addEventListener("change",()=>{hs(async()=>{let S=l.value;i.type=S,S==="remote"?(i.url=i.filePath||"",i.filePath=void 0):(i.filePath=i.url||"",i.url=void 0),t();let C=l.closest(".tasknotes-settings__card");if(C){let E=C.querySelector(".tasknotes-settings__card-config-row:nth-child(4)");if(E){let D=E.querySelector("input");D&&D.remove();let P;if(S==="remote")P=dN("ICS/iCal URL",i.url);else{let A=Ke("text","Local file path (e.g., Calendar.ics)",i.filePath||"");A.setAttribute("placeholder","Calendar.ics"),P=A}P.addEventListener("blur",()=>{let A=P.value.trim();if(i.type==="remote"){let F=gq(A);f({url:F})}else f({filePath:A})}),E.appendChild(P);let O=E.querySelector(".tasknotes-settings__card-config-label");O&&(O.textContent=S==="remote"?"URL:":"File Path:");let z=C.querySelector(".tasknotes-settings__card-secondary-text");z&&(z.textContent=S==="remote"?"Remote Calendar":"Local File");let R=C.querySelector(".tasknotes-settings__card-meta .info-badge");R&&(R.textContent=S==="remote"?"Remote":"Local File")}}})}),u.addEventListener("blur",()=>{let S=u.value.trim();if(i.type==="remote"){let C=gq(S);f({url:C})}else f({filePath:S})});let h=Ui(i.enabled?"Enabled":"Disabled",i.enabled?"active":"inactive"),g=$k(i.type==="remote"?"Remote":"Local File"),v=[h,g],b=e.icsSubscriptionService.getLastFetched(i.id);if(b){let S=new Date(b),C=qp(S,n),E=$k(`Synced ${C}`);v.push(E)}let k=e.icsSubscriptionService.getLastError(i.id);if(k){let S=Ui("Error","inactive");S.title=k,v.push(S)}let w=[{label:"Enabled:",input:s},{label:"Name:",input:o},{label:"Type:",input:l},{label:i.type==="remote"?"URL:":"File Path:",input:u},{label:"Color:",input:p},{label:"Refresh (min):",input:m}];Tr(r,{id:i.id,collapsible:!0,defaultCollapsed:!0,colorIndicator:{color:i.color},header:{primaryText:i.name,secondaryText:i.type==="remote"?"Remote Calendar":"Local File",meta:v,actions:[Wl(async()=>{if(await Ir(e.app,{title:n("settings.integrations.subscriptionsList.confirmDelete.title"),message:n("settings.integrations.subscriptionsList.confirmDelete.message",{name:i.name}),confirmText:n("settings.integrations.subscriptionsList.confirmDelete.confirmText"),cancelText:n("common.cancel"),isDestructive:!0}))try{let C=e.icsSubscriptionService;if(!C)return;await C.removeSubscription(i.id),new ge.Notice(n("settings.integrations.subscriptionsList.notices.deleteSuccess",{name:i.name})),t(),Jw(r,e,t)}catch(C){El.error("Error deleting subscription:",{category:"provider",operation:"deleting-subscription",error:C}),new ge.Notice(n("settings.integrations.subscriptionsList.notices.deleteFailure"))}},"Delete subscription")]},content:{sections:[{rows:w}]},actions:{buttons:[{text:n("settings.integrations.subscriptionsList.refreshNow"),icon:"refresh-cw",variant:i.enabled?"primary":"secondary",disabled:!i.enabled,onClick:async()=>{if(!i.enabled){new ge.Notice(n("settings.integrations.subscriptionsList.notices.enableFirst"));return}try{let S=e.icsSubscriptionService;if(!S)return;await S.refreshSubscription(i.id),new ge.Notice(n("settings.integrations.subscriptionsList.notices.refreshSuccess",{name:i.name})),Jw(r,e,t)}catch(S){El.error("Error refreshing subscription:",{category:"provider",operation:"refreshing-subscription",error:S}),new ge.Notice(n("settings.integrations.subscriptionsList.notices.refreshFailure"))}}}]}})})}function eB(r,e,t){let n=(s,o)=>e.i18n.translate(s,o),a=r.querySelector(".tasknotes-webhooks-container");a&&a.remove();let i=r.createDiv("tasknotes-webhooks-container");if(!e.settings.webhooks||e.settings.webhooks.length===0){Gc(i,n("settings.integrations.webhooks.emptyState.message"),n("settings.integrations.webhooks.emptyState.buttonText"),()=>{var o;let s=(o=r.closest(".settings-tab-content"))==null?void 0:o.querySelector("button.tn-btn--primary");s&&s.click()});return}e.settings.webhooks.forEach((s,o)=>{let l=Ui(s.active?"Active":"Inactive",s.active?"active":"inactive"),c=$k(`Success: ${s.successCount||0}`),d=$k(`Failed: ${s.failureCount||0}`),u=dN("Webhook URL",s.url),p=xn(s.active,v=>{s.active=v,t();let b=p.closest(".tasknotes-settings__card");if(b){let k=b.querySelector(".tasknotes-settings__card-status-badge--active, .tasknotes-settings__card-status-badge--inactive");k&&(k.textContent=s.active?"Active":"Inactive",k.className=s.active?"tasknotes-settings__card-status-badge tasknotes-settings__card-status-badge--active":"tasknotes-settings__card-status-badge tasknotes-settings__card-status-badge--inactive");let w=b.querySelector('[aria-label*="Test"]');w&&(w.disabled=!s.active||!s.url)}new ge.Notice(s.active?n("settings.integrations.webhooks.notices.enabled"):n("settings.integrations.webhooks.notices.disabled"))});u.addEventListener("blur",()=>{u.value.trim()!==s.url&&(s.url=u.value.trim(),t(),new ge.Notice(n("settings.integrations.webhooks.notices.urlUpdated")))});let m=s.createdAt?new Date(s.createdAt):null,f=m?n("settings.integrations.webhooks.statusLabels.created",{timeAgo:qp(m,n)}):"Creation date unknown",h=activeWindow.createDiv();if(h.className="tasknotes-webhook-events",s.events.length===0){let v=activeWindow.createSpan();v.className="tasknotes-webhook-events--empty",v.textContent=n("settings.integrations.webhooks.eventsDisplay.noEvents"),h.appendChild(v)}else s.events.forEach(v=>{h.appendChild($k(v))});let g=activeWindow.createSpan();s.transformFile?(g.className="tasknotes-transform-file",g.textContent=s.transformFile):(g.className="tasknotes-transform-file--empty",g.textContent=n("settings.integrations.webhooks.transformDisplay.noTransform")),Tr(i,{id:s.id,collapsible:!0,defaultCollapsed:!0,header:{primaryText:n("settings.integrations.webhooks.cardHeader"),secondaryText:f,meta:[l,c,d],actions:[Wl(async()=>{await Ir(e.app,{title:n("settings.integrations.webhooks.confirmDelete.title"),message:n("settings.integrations.webhooks.confirmDelete.message",{url:s.url}),confirmText:n("settings.integrations.webhooks.confirmDelete.confirmText"),cancelText:n("common.cancel"),isDestructive:!0})&&(e.settings.webhooks.splice(o,1),t(),eB(r,e,t),new ge.Notice(n("settings.integrations.webhooks.notices.deleted")))})]},content:{sections:[{rows:[{label:n("settings.integrations.webhooks.cardFields.active"),input:p},{label:n("settings.integrations.webhooks.cardFields.url"),input:u},{label:n("settings.integrations.webhooks.cardFields.events"),input:h},{label:n("settings.integrations.webhooks.cardFields.transform"),input:g}]}]},actions:{buttons:[{text:n("settings.integrations.webhooks.editEvents"),icon:"settings",variant:"secondary",onClick:async()=>{new hse(e.app,s,b=>{Object.assign(s,b),t(),eB(r,e,t),new ge.Notice(n("settings.integrations.webhooks.notices.updated"))}).open()}}]}})})}function JYt(){return Array.from(crypto.getRandomValues(new Uint8Array(32))).map(r=>r.toString(16).padStart(2,"0")).join("")}var fse=class extends ge.Modal{constructor(e,t){super(e),this.secret=t}onOpen(){let{contentEl:e}=this;e.empty(),e.addClass("tasknotes-webhook-modal");let t=e.createDiv({cls:"tasknotes-webhook-secret-notice"}),n=t.createDiv({cls:"tasknotes-webhook-secret-title"}),a=n.createSpan();(0,ge.setIcon)(a,"shield-check"),n.createSpan({text:"Webhook Secret Generated"});let i=t.createDiv({cls:"tasknotes-webhook-secret-content"});i.createEl("p",{text:"Your webhook secret has been generated. Save this secret as you won't be able to view it again:"}),i.createEl("code",{text:this.secret,cls:"tasknotes-webhook-secret-code"}),i.createEl("p",{text:"Use this secret to verify webhook payloads in your receiving application."});let o=e.createDiv({cls:"tasknotes-webhook-modal-buttons"}).createEl("button",{text:"Got it",cls:"tasknotes-webhook-modal-btn save"});o.onclick=()=>this.close()}onClose(){let{contentEl:e}=this;e.empty()}},hse=class extends ge.Modal{constructor(e,t,n){var a;super(e),this.selectedEvents=[...t.events],this.transformFile=t.transformFile||"",this.corsHeaders=(a=t.corsHeaders)!=null?a:!0,this.onSubmit=n}onOpen(){let{contentEl:e}=this;e.empty(),e.addClass("tasknotes-webhook-modal");let t=e.createDiv({cls:"tasknotes-webhook-modal-header"}),n=t.createSpan({cls:"tasknotes-webhook-modal-icon"});(0,ge.setIcon)(n,"webhook"),t.createEl("h2",{text:"Edit webhook",cls:"tasknotes-webhook-modal-title"});let a=e.createDiv({cls:"tasknotes-webhook-modal-section"}),i=a.createDiv({cls:"tasknotes-webhook-modal-subsection-header"}),s=i.createSpan();(0,ge.setIcon)(s,"zap"),i.createEl("h3",{text:"Events to subscribe to"});let o=a.createDiv({cls:"tasknotes-webhook-events-list"});u7e.forEach(k=>{new ge.Setting(o).setName(k.label).setDesc(k.desc).addToggle(w=>(w.toggleEl.setAttribute("aria-label",`Subscribe to ${k.label} events`),w.setValue(this.selectedEvents.includes(k.id)).onChange(S=>{if(S)this.selectedEvents.push(k.id);else{let C=this.selectedEvents.indexOf(k.id);C>-1&&this.selectedEvents.splice(C,1)}})))});let l=e.createDiv({cls:"tasknotes-webhook-modal-section"}),c=l.createDiv({cls:"tasknotes-webhook-modal-subsection-header"}),d=c.createSpan();(0,ge.setIcon)(d,"file-code"),c.createEl("h3",{text:"Transform configuration (optional)"}),new ge.Setting(l).setName("Transform file").setDesc("Path to a .json template file in your vault that transforms webhook payloads").addText(k=>(k.inputEl.setAttribute("aria-label","Transform file path"),k.setPlaceholder("simple-template.json").setValue(this.transformFile).onChange(w=>{this.transformFile=w})));let u=e.createDiv({cls:"tasknotes-webhook-modal-section"}),p=u.createDiv({cls:"tasknotes-webhook-modal-subsection-header"}),m=p.createSpan();(0,ge.setIcon)(m,"settings"),p.createEl("h3",{text:"Headers configuration"}),new ge.Setting(u).setName("Include custom headers").setDesc("Include tasknotes headers (event type, signature, delivery ID). Turn off for Discord, Slack, and other services with strict cors policies.").addToggle(k=>(k.toggleEl.setAttribute("aria-label","Include custom headers"),k.setValue(this.corsHeaders).onChange(w=>{this.corsHeaders=w})));let f=e.createDiv({cls:"tasknotes-webhook-modal-buttons"}),h=f.createEl("button",{text:"Cancel",cls:"tasknotes-webhook-modal-btn cancel",attr:{"aria-label":"Cancel webhook editing"}}),g=h.createSpan({cls:"tasknotes-webhook-modal-btn-icon"});(0,ge.setIcon)(g,"x"),h.onclick=()=>this.close();let v=f.createEl("button",{text:"Save changes",cls:"tasknotes-webhook-modal-btn save mod-cta",attr:{"aria-label":"Save webhook changes"}}),b=v.createSpan({cls:"tasknotes-webhook-modal-btn-icon"});(0,ge.setIcon)(b,"save"),v.onclick=()=>{if(this.selectedEvents.length===0){new ge.Notice("Please select at least one event");return}hs(()=>this.onSubmit({events:this.selectedEvents,transformFile:this.transformFile.trim()||void 0,corsHeaders:this.corsHeaders})),this.close()}}onClose(){let{contentEl:e}=this;e.empty()}},gse=class extends ge.Modal{constructor(t,n){super(t);this.url="";this.selectedEvents=[];this.transformFile="";this.corsHeaders=!0;this.onSubmit=n}onOpen(){let{contentEl:t}=this;t.empty(),t.addClass("tasknotes-webhook-modal");let n=t.createDiv({cls:"tasknotes-webhook-modal-header"}),a=n.createSpan({cls:"tasknotes-webhook-modal-icon"});(0,ge.setIcon)(a,"webhook"),n.createEl("h2",{text:"Add webhook",cls:"tasknotes-webhook-modal-title"});let i=t.createDiv({cls:"tasknotes-webhook-modal-section"});new ge.Setting(i).setName("Webhook URL").setDesc("The endpoint where webhook payloads will be sent").addText(R=>(R.inputEl.setAttribute("aria-label","Webhook URL"),R.setPlaceholder("HTTPS://your-service.com/webhook").setValue(this.url).onChange(A=>{this.url=A})));let s=t.createDiv({cls:"tasknotes-webhook-modal-section"}),o=s.createDiv({cls:"tasknotes-webhook-modal-subsection-header"}),l=o.createSpan();(0,ge.setIcon)(l,"zap"),o.createEl("h3",{text:"Events to subscribe to"});let c=s.createDiv({cls:"tasknotes-webhook-events-list"});u7e.forEach(R=>{new ge.Setting(c).setName(R.label).setDesc(R.desc).addToggle(A=>(A.toggleEl.setAttribute("aria-label",`Subscribe to ${R.label} events`),A.setValue(this.selectedEvents.includes(R.id)).onChange(F=>{if(F)this.selectedEvents.push(R.id);else{let $=this.selectedEvents.indexOf(R.id);$>-1&&this.selectedEvents.splice($,1)}})))});let d=t.createDiv({cls:"tasknotes-webhook-modal-section"}),u=d.createDiv({cls:"tasknotes-webhook-modal-subsection-header"}),p=u.createSpan();(0,ge.setIcon)(p,"file-code"),u.createEl("h3",{text:"Transform configuration (optional)"}),new ge.Setting(d).setName("Transform file").setDesc("Path to a .json template file in your vault that transforms webhook payloads").addText(R=>(R.inputEl.setAttribute("aria-label","Transform file path"),R.setPlaceholder("simple-template.json").setValue(this.transformFile).onChange(A=>{this.transformFile=A})));let m=d.createDiv({cls:"tasknotes-webhook-transform-help"}),f=m.createDiv({cls:"tasknotes-webhook-help-header"}),h=f.createSpan();(0,ge.setIcon)(h,"info"),f.createSpan({text:"JSON transform templates customize webhook payloads:"});let g=m.createEl("ul",{cls:"tasknotes-webhook-help-list"}),v=g.createEl("li");v.createEl("strong",{text:".json files:"}),v.appendText(" Templates with "),v.createEl("code",{text:"${data.task.title}"});let b=g.createEl("li");b.createEl("strong",{text:"Leave empty:"}),b.appendText(" Send raw data");let k=m.createDiv({cls:"tasknotes-webhook-help-example"});k.createEl("strong",{text:"Example:"}),k.appendText(" "),k.createEl("code",{text:"simple-template.json"});let w=t.createDiv({cls:"tasknotes-webhook-modal-section"}),S=w.createDiv({cls:"tasknotes-webhook-modal-subsection-header"}),C=S.createSpan();(0,ge.setIcon)(C,"settings"),S.createEl("h3",{text:"Headers configuration"}),new ge.Setting(w).setName("Include custom headers").setDesc("Include tasknotes headers (event type, signature, delivery ID). Turn off for Discord, Slack, and other services with strict cors policies.").addToggle(R=>(R.toggleEl.setAttribute("aria-label","Include custom headers"),R.setValue(this.corsHeaders).onChange(A=>{this.corsHeaders=A})));let E=t.createDiv({cls:"tasknotes-webhook-modal-buttons"}),D=E.createEl("button",{text:"Cancel",cls:"tasknotes-webhook-modal-btn cancel",attr:{"aria-label":"Cancel webhook creation"}}),P=D.createSpan({cls:"tasknotes-webhook-modal-btn-icon"});(0,ge.setIcon)(P,"x"),D.onclick=()=>this.close();let O=E.createEl("button",{text:"Add webhook",cls:"tasknotes-webhook-modal-btn save mod-cta",attr:{"aria-label":"Create webhook"}}),z=O.createSpan({cls:"tasknotes-webhook-modal-btn-icon"});(0,ge.setIcon)(z,"plus"),O.onclick=()=>{if(!this.url.trim()){new ge.Notice("Webhook URL is required");return}if(this.selectedEvents.length===0){new ge.Notice("Please select at least one event");return}hs(()=>this.onSubmit({url:this.url.trim(),events:this.selectedEvents,transformFile:this.transformFile.trim()||void 0,corsHeaders:this.corsHeaders})),this.close()}}onClose(){let{contentEl:t}=this;t.empty()}};var tB=class extends ch.PluginSettingTab{constructor(t,n){super(t,n);this.activeTab="general";this.tabContents={};this.debouncedSave=Ok(()=>this.plugin.saveSettings(),500);this.plugin=n,(0,ch.requireApiVersion)("1.11.0")&&(this.icon="tasknotes-simple"),this.plugin.registerEvent(this.plugin.i18n.on("locale-changed",()=>{this.containerEl.isConnected&&((0,ch.requireApiVersion)("1.13.0")?this.update():this.renderSettings(this.containerEl))}))}getSettingDefinitions(){return[{name:this.plugin.i18n.translate("common.appName"),aliases:this.getTabConfigurations().map(t=>this.plugin.i18n.translate(t.nameKey)),render:t=>{t.settingEl.empty(),this.renderSettings(t.settingEl)}}]}display(){this.renderSettings(this.containerEl)}renderSettings(t){this.tabContents={},t.empty(),t.addClass("tasknotes-settings"),t.addClass("tasknotes-plugin"),t.addClass("settings-view");let n=u=>this.plugin.i18n.translate(u),a=t.createDiv("settings-view__toolbar"),i=a.createDiv("settings-tab-nav settings-view__tab-nav"),s=this.getTabConfigurations(),o=ch.Platform.isMobile?s.filter(u=>u.id!=="integrations"||this.hasNonAPIIntegrations()):s;ch.Platform.isMobile&&this.activeTab==="integrations"&&!this.hasNonAPIIntegrations()&&(this.activeTab="general"),o.forEach(u=>{let p=this.activeTab===u.id,m=n(u.nameKey),f=i.createEl("button",{text:m,cls:p?"settings-tab-button settings-view__tab-button active settings-view__tab-button--active is-active vertical-tab-nav-item":"settings-tab-button settings-view__tab-button vertical-tab-nav-item",attr:{role:"tab","aria-selected":p.toString(),"aria-controls":`settings-tab-${u.id}`,id:`tab-button-${u.id}`,tabindex:p?"0":"-1"}});f.addEventListener("click",()=>{this.switchTab(u.id)}),f.addEventListener("keydown",h=>{if(h.key==="ArrowLeft"||h.key==="ArrowRight"){h.preventDefault();let g=o.findIndex(k=>k.id===u.id),v=h.key==="ArrowRight"?(g+1)%o.length:(g-1+o.length)%o.length,b=o[v].id;this.switchTab(b)}})}),a.createDiv("settings-header").createEl("a",{text:n("settings.header.documentation"),href:n("settings.header.documentationUrl"),cls:"settings-header-link"}).setAttr("target","_blank");let d=t.createDiv("settings-tab-contents settings-view__tab-contents");o.forEach(u=>{let p=d.createDiv("settings-tab-content settings-view__tab-content");p.setAttribute("role","tabpanel"),p.setAttribute("id",`settings-tab-${u.id}`),p.setAttribute("aria-labelledby",`tab-button-${u.id}`),this.activeTab===u.id&&(p.addClass("active"),p.addClass("settings-view__tab-content--active"),u.renderFn(p,this.plugin,this.debouncedSave)),this.tabContents[u.id]=p})}switchTab(t){this.activeTab=t,this.containerEl.querySelectorAll(".settings-tab-button").forEach(a=>{let i=a.id===`tab-button-${t}`;a.classList.toggle("active",i),a.classList.toggle("settings-view__tab-button--active",i),a.classList.toggle("is-active",i),a.setAttribute("aria-selected",i.toString()),a.setAttribute("tabindex",i?"0":"-1")}),this.containerEl.querySelectorAll(".settings-tab-content").forEach(a=>{let i=a.id===`settings-tab-${t}`;a.classList.toggle("active",i),a.classList.toggle("settings-view__tab-content--active",i)});let n=this.tabContents[t];if(n&&n.children.length===0){let a=this.getTabConfigurations().find(i=>i.id===t);a&&a.renderFn(n,this.plugin,this.debouncedSave)}window.setTimeout(()=>{let a=this.containerEl.querySelector(`#tab-button-${t}`);a&&a.focus()},50)}getTabConfigurations(){return[{id:"general",nameKey:"settings.tabs.general",renderFn:Gw},{id:"task-properties",nameKey:"settings.tabs.taskProperties",renderFn:W8e},{id:"modal-fields",nameKey:"settings.tabs.modalFields",renderFn:Z$},{id:"appearance",nameKey:"settings.tabs.appearance",renderFn:Qw},{id:"features",nameKey:"settings.tabs.features",renderFn:js},{id:"integrations",nameKey:"settings.tabs.integrations",renderFn:uv}]}hasNonAPIIntegrations(){return!0}hide(){this.debouncedSave.flush()}};var Xw=require("obsidian");K();var DA=N({tag:"Utils/PerformanceMonitor"}),dh=class dh{constructor(){this.metrics=new Map;this.markers=new Map;this.enabled=!0;this.mutationObservers=new Set;this.performanceObservers=new Set}static getInstance(){return dh.instance||(dh.instance=new dh),dh.instance}startTimer(e){this.enabled&&this.markers.set(e,performance.now())}endTimer(e){if(!this.enabled)return 0;let t=this.markers.get(e);if(t===void 0)return e.includes("-measure-")||DA.warn(`No start marker found for operation: ${e}`,{category:"configuration",operation:"no-start-marker-found-operation"}),0;let n=performance.now()-t;return this.recordMetric(e,n),this.markers.delete(e),n}async measure(e,t){if(!this.enabled)return t();let n=performance.now();try{return await t()}finally{let a=performance.now()-n;this.recordMetric(e,a)}}measureSync(e,t){if(!this.enabled)return t();let n=performance.now();try{return t()}finally{let a=performance.now()-n;this.recordMetric(e,a)}}recordMetric(e,t){if(!this.enabled)return;this.metrics.has(e)||this.metrics.set(e,[]);let n=this.metrics.get(e);n.push(t),n.length>50&&n.splice(0,n.length-50)}getStats(e){let t=this.metrics.get(e);if(!t||t.length===0)return null;let n=[...t].sort((s,o)=>s-o),a=n.length,i=n.reduce((s,o)=>s+o,0);return{count:a,average:i/a,min:n[0],max:n[a-1],median:n[Math.floor(a/2)],p95:n[Math.floor(a*.95)]}}getAllStats(){let e={};for(let[t]of this.metrics)e[t]=this.getStats(t);return e}logSummary(){this.enabled&&this.getAllStats()}monitorDOMMutations(e){if(!this.enabled)return()=>{};let t=0,n=performance.now(),a=new MutationObserver(i=>{t+=i.length;let s=performance.now()-n;t>100&&s<1e3&&DA.warn(`High DOM mutation rate: ${t} mutations in ${s.toFixed(2)}ms`,{category:"configuration",operation:"high-dom-mutation-rate"})});return a.observe(e,{childList:!0,subtree:!0,attributes:!0}),this.mutationObservers.add(a),()=>{a.disconnect(),this.mutationObservers.delete(a),this.recordMetric("dom-mutations",t)}}recordMemoryUsage(e){if(!this.enabled||!("memory"in performance))return;let t=performance.memory;if(!t)return;let n={used:t.usedJSHeapSize/1024/1024,total:t.totalJSHeapSize/1024/1024,limit:t.jsHeapSizeLimit/1024/1024},a=e?`memory-${e}`:"memory-usage";this.recordMetric(a,n.used),n.used>100&&DA.warn(`High memory usage: ${n.used.toFixed(2)}MB`,{category:"configuration",operation:"high-memory-usage"})}trackLongTasks(){if(!this.enabled||!("PerformanceObserver"in window))return()=>{};let e=new PerformanceObserver(t=>{for(let n of t.getEntries())n.duration>50&&(DA.warn(`Long task detected: ${n.duration.toFixed(2)}ms`,{category:"persistence",operation:"long-task-detected"}),this.recordMetric("long-task",n.duration))});try{e.observe({entryTypes:["longtask"]}),this.performanceObservers.add(e)}catch(t){DA.warn("Long task monitoring not supported",{category:"persistence",operation:"long-task-monitoring-not-supported"})}return()=>{e.disconnect(),this.performanceObservers.delete(e)}}mark(e){if(this.enabled)try{performance.mark(`tasknotes-${e}`)}catch(t){}}measureBetweenMarks(e,t,n){if(this.enabled)try{performance.measure(`tasknotes-${n}`,`tasknotes-${e}`,`tasknotes-${t}`)}catch(a){}}clear(){this.metrics.clear(),this.markers.clear()}destroy(){for(let e of this.mutationObservers)e.disconnect();this.mutationObservers.clear();for(let e of this.performanceObservers)e.disconnect();this.performanceObservers.clear(),this.clear(),dh.instance=null}setEnabled(e){this.enabled=e,e||this.clear()}exportData(){let e={timestamp:new Date().toISOString(),stats:this.getAllStats(),platform:{isDesktop:Xw.Platform.isDesktop,isMobile:Xw.Platform.isMobile,isWin:Xw.Platform.isWin,isMacOS:Xw.Platform.isMacOS,isLinux:Xw.Platform.isLinux},memoryInfo:"memory"in performance?performance.memory:null};return JSON.stringify(e,null,2)}};dh.instance=null;var yse=dh;var PA=yse.getInstance();var x7e=require("obsidian");function ni(r){return JSON.stringify(r,null,2)}function p7e(r){return{title:r.title,path:r.path,status:r.status,priority:r.priority}}Lc();Me();Ct();fE();function vse(r){if(!r)return;let e=r.split(",").map(t=>t.trim()).filter(t=>t.length>0);return e.length>0?e:void 0}function XYt(r){if(!r)return;let e=Number(r);if(!Number.isFinite(e)||e<0)throw new Error("--estimate must be a non-negative number of minutes");return e}function m7e(r){return`rem_${Date.now()}_${r}_${Math.random().toString(36).slice(2,11)}`}function e5t(r){return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/.test(r)?`${r}:00`:r}function t5t(r,e){let t=r.trim();if(t.startsWith("at:")){let s=e5t(t.slice(3).trim());if(!s)throw new Error("Absolute reminders must use at:YYYY-MM-DDTHH:MM or full ISO datetime");return{id:m7e(e),type:"absolute",description:"Reminder",absoluteTime:s}}let n=t.indexOf(":");if(n===-1)throw new Error("Reminder shorthand must use due:<offset>, scheduled:<offset>, or at:<datetime>");let a=t.slice(0,n).trim(),i=t.slice(n+1).trim();if(a!=="due"&&a!=="scheduled"||!i)throw new Error("Relative reminders must use due:<offset> or scheduled:<offset> with ISO 8601 durations like -PT1H");return{id:m7e(e),type:"relative",description:"Reminder",relatedTo:a,offset:i}}function r5t(r){if(!r)return;let e=r.trim();if(!e)return;if(e.startsWith("[")){let n=JSON.parse(e);if(!Array.isArray(n))throw new Error("--reminders JSON must be an array");return n}let t=e.split(";").map(n=>n.trim()).filter(n=>n.length>0).map((n,a)=>t5t(n,a));return t.length>0?t:void 0}function n5t(r){if(r){if(r!=="scheduled"&&r!=="completion")throw new Error("--recurrence-anchor must be either 'scheduled' or 'completion'");return r}}function f7e(r,e){var m,f;let t=(m=e.text)==null?void 0:m.trim(),n=(f=e.title)==null?void 0:f.trim(),a=e.literal==="true",i,s=!1;if(t&&!a){let h=ra.fromPlugin(r).parseInput(t);i=Bu(r,h,{creationContext:"api"}),s=!0}else{let h=Ge(),g=n||t;if(!g)throw new Error("Either --text or --title is required");i={title:g,status:r.settings.defaultTaskStatus,priority:r.settings.defaultTaskPriority,dateCreated:h,dateModified:h,creationContext:"api"}}if((!i.title||i.title.trim()===""||i.title==="Untitled Task")&&!n)throw new Error("Could not derive a task title from --text; pass --title to override");n&&(i.title=n),e.details&&(i.details=e.details),e.status&&(i.status=e.status),e.priority&&(i.priority=e.priority),e.due&&(i.due=e.due),e.scheduled&&(i.scheduled=e.scheduled);let o=vse(e.tags);o&&(i.tags=o.map(h=>za(h)));let l=vse(e.contexts);l&&(i.contexts=l);let c=vse(e.projects);c&&(i.projects=c),e.recurrence&&(i.recurrence=e.recurrence);let d=n5t(e["recurrence-anchor"]);d&&(i.recurrence_anchor=d);let u=XYt(e.estimate);u!==void 0&&(i.timeEstimate=u);let p=r5t(e.reminders);return p&&(i.reminders=p),{taskData:i,usedNlp:s}}var h7e={command:"capture",description:"Create a TaskNotes task from free text or explicit flags",flags:{text:{value:"<text>",description:"Task text to parse with NLP unless --literal is set"},title:{value:"<title>",description:"Explicit task title; overrides NLP-derived title"},details:{value:"<details>",description:"Task details/body; overrides NLP-derived details"},status:{value:"<status>",description:"Explicit task status"},priority:{value:"<priority>",description:"Explicit task priority"},due:{value:"<date>",description:"Due date or datetime (YYYY-MM-DD or YYYY-MM-DDTHH:MM)"},scheduled:{value:"<date>",description:"Scheduled date or datetime (YYYY-MM-DD or YYYY-MM-DDTHH:MM)"},tags:{value:"<tag1,tag2>",description:"Comma-separated tags; overrides NLP-derived tags"},contexts:{value:"<ctx1,ctx2>",description:"Comma-separated contexts; overrides NLP-derived contexts"},projects:{value:"<proj1,proj2>",description:"Comma-separated projects; overrides NLP-derived projects"},recurrence:{value:"<rrule>",description:"Explicit recurrence rule"},"recurrence-anchor":{value:"<scheduled|completion>",description:"How recurring tasks advance: from the scheduled date or completion date"},reminders:{value:"<spec>",description:"Reminder spec(s): due:-PT1H;scheduled:-PT30M;at:2026-04-02T09:00 or a JSON array"},estimate:{value:"<minutes>",description:"Time estimate in minutes"},literal:{description:"Treat --text as a literal title instead of parsing it with NLP"}},async handler(r,e){let{taskData:t,usedNlp:n}=f7e(r,e),a=await r.taskService.createTask(t);return ni({...p7e(a.taskInfo),usedNlp:n})}};function kse(r){let e=r==null?void 0:r.trim();return e&&e.length>0?e:void 0}function g7e(r){return r.slice(0,5).map(e=>`${e.title} (${e.path})`).join(", ")}async function uh(r,e){let t=kse(e.path),n=kse(e.title),a=kse(e.query);if(t){let s=await r.cacheManager.getTaskInfo(t);if(!s)throw new Error(`Task not found for path: ${t}`);return s}let i=await r.cacheManager.getAllTasks();if(n){let s=i.filter(o=>o.title===n);if(s.length===1)return s[0];throw s.length>1?new Error(`Multiple tasks matched title "${n}": ${g7e(s)}`):new Error(`Task not found for title: ${n}`)}if(a){let s=a.toLowerCase(),o=i.filter(l=>l.title.toLowerCase().includes(s)||l.path.toLowerCase().includes(s));if(o.length===1)return o[0];throw o.length>1?new Error(`Multiple tasks matched query "${a}": ${g7e(o)}`):new Error(`Task not found for query: ${a}`)}throw new Error("A task reference is required: pass path, title, or query")}function a5t(r){let e=(r==null?void 0:r.trim())||"status";switch(e){case"status":case"start":case"pause":case"resume":case"stop":case"short-break":case"long-break":return e;default:throw new Error("--action must be one of: status, start, pause, resume, stop, short-break, long-break")}}function i5t(r){if(!r)return;let e=Number(r);if(!Number.isFinite(e)||e<=0)throw new Error("--duration must be a positive number of minutes");return e}function s5t(r){return!!(r.path||r.title||r.query)}async function o5t(r,e,t){if(!s5t(e)){if(t)throw new Error("A task reference is required: pass path, title, or query");return}return uh(r,{path:e.path,title:e.title,query:e.query})}async function pv(r,e){var a,i,s;let t=e.currentSession,n=t!=null&&t.taskPath?await r.cacheManager.getTaskInfo(t.taskPath):null;return{isRunning:e.isRunning,timeRemaining:e.timeRemaining,nextSessionType:(a=e.nextSessionType)!=null?a:null,currentSession:t?{id:t.id,type:t.type,startTime:t.startTime,endTime:(i=t.endTime)!=null?i:null,plannedDuration:t.plannedDuration,completed:t.completed,interrupted:(s=t.interrupted)!=null?s:!1,task:n?{title:n.title,path:n.path}:t.taskPath?{title:null,path:t.taskPath}:null}:null}}var y7e={command:"pomodoro",description:"Control TaskNotes Pomodoro sessions or inspect the current Pomodoro state",flags:{action:{value:"<status|start|pause|resume|stop|short-break|long-break>",description:"Pomodoro action to perform (default: status)"},path:{value:"<path>",description:"Exact task file path for action=start"},title:{value:"<title>",description:"Exact task title for action=start"},query:{value:"<text>",description:"Substring match against task title or path for action=start"},duration:{value:"<minutes>",description:"Optional work-session duration override for action=start"}},async handler(r,e){let t=a5t(e.action),n=i5t(e.duration);switch(t){case"status":return ni(await pv(r,r.pomodoroService.getState()));case"start":{let a=await o5t(r,e,!1);return await r.pomodoroService.startPomodoro(a,n),ni(await pv(r,r.pomodoroService.getState()))}case"pause":return await r.pomodoroService.pausePomodoro(),ni(await pv(r,r.pomodoroService.getState()));case"resume":return await r.pomodoroService.resumePomodoro(),ni(await pv(r,r.pomodoroService.getState()));case"stop":return await r.pomodoroService.stopPomodoro(),ni(await pv(r,r.pomodoroService.getState()));case"short-break":return await r.pomodoroService.startBreak(!1),ni(await pv(r,r.pomodoroService.getState()));case"long-break":return await r.pomodoroService.startBreak(!0),ni(await pv(r,r.pomodoroService.getState()))}}};function l5t(r){return v7e(r)}function v7e(r){var e,t;return(t=(e=r.timeEntries)==null?void 0:e.find(n=>!n.endTime))!=null?t:null}async function k7e(r,e,t){let n=await r.taskService.startTimeTracking(e),a=t==null?void 0:t.trim();if(a&&n.timeEntries&&n.timeEntries.length>0){let i=n.timeEntries[n.timeEntries.length-1];i&&!i.endTime&&(i.description=a,n=await r.taskService.updateTask(n,{timeEntries:n.timeEntries}))}return n}async function b7e(r,e){let t=await e();if(t)return t;let a=(await r.cacheManager.getAllTasks()).filter(i=>!!l5t(i));if(a.length===1)return a[0];throw a.length>1?new Error("Multiple tasks have active time tracking; pass path, title, or query"):new Error("No active time tracking session found")}function rB(r){var t,n;let e=v7e(r);return{title:r.title,path:r.path,status:r.status,priority:r.priority,activeTimeEntry:e?{startTime:e.startTime,description:e.description}:null,totalTimeEntries:(n=(t=r.timeEntries)==null?void 0:t.length)!=null?n:0}}var T7e={command:"start-time",description:"Start time tracking for a task",flags:{path:{value:"<path>",description:"Exact task file path"},title:{value:"<title>",description:"Exact task title"},query:{value:"<text>",description:"Substring match against task title or path"},description:{value:"<text>",description:"Optional description for the started time entry"}},async handler(r,e){let t=await uh(r,{path:e.path,title:e.title,query:e.query}),n=await k7e(r,t,e.description);return ni(rB(n))}};function c5t(r){return!!(r.path||r.title||r.query)}var w7e={command:"stop-time",description:"Stop time tracking for a task, or for the only active session if unambiguous",flags:{path:{value:"<path>",description:"Exact task file path"},title:{value:"<title>",description:"Exact task title"},query:{value:"<text>",description:"Substring match against task title or path"}},async handler(r,e){let t=await b7e(r,async()=>c5t(e)?uh(r,{path:e.path,title:e.title,query:e.query}):null),n=await r.taskService.stopTimeTracking(t);return ni(rB(n))}};HP();function d5t(r){return!!(r.path||r.title||r.query)}var S7e={command:"time-status",description:"Show active time-tracking sessions, or detailed status for a specific task",flags:{path:{value:"<path>",description:"Exact task file path"},title:{value:"<title>",description:"Exact task title"},query:{value:"<text>",description:"Substring match against task title or path"}},async handler(r,e){if(d5t(e)){let n=await uh(r,{path:e.path,title:e.title,query:e.query});return ni(Cf(n,a=>r.getActiveTimeSession(a)))}let t=await r.cacheManager.getAllTasks();return ni(RT(t,n=>r.getActiveTimeSession(n)))}};var u5t=[y7e,S7e,T7e,w7e,h7e];function C7e(r){var e;if((0,x7e.requireApiVersion)("1.12.2")&&typeof r.registerCliHandler=="function")for(let t of u5t)r.registerCliHandler(`${r.manifest.id}:${t.command}`,t.description,(e=t.flags)!=null?e:null,n=>t.handler(r,n))}var ph=require("obsidian");K();ro();var p5t=N({tag:"Commands/TaskNotesCommands"});function E7e(r){return[{id:"open-calendar-view",nameKey:"commands.openCalendarView",callback:async e=>{await e.activateCalendarView()}},{id:"open-advanced-calendar-view",nameKey:"commands.openAdvancedCalendarView",callback:async e=>{await e.openBasesFileForCommand("open-advanced-calendar-view")}},{id:"open-tasks-view",nameKey:"commands.openTasksView",callback:async e=>{await e.openBasesFileForCommand("open-tasks-view")}},{id:"open-agenda-view",nameKey:"commands.openAgendaView",callback:async e=>{await e.openBasesFileForCommand("open-agenda-view")}},{id:"open-pomodoro-view",nameKey:"commands.openPomodoroView",callback:async e=>{await e.activatePomodoroView()}},{id:"open-kanban-view",nameKey:"commands.openKanbanView",callback:async e=>{await e.openBasesFileForCommand("open-kanban-view")}},{id:"update-default-base-files",nameKey:"commands.updateDefaultBaseFiles",callback:async e=>{await Ir(e.app,{title:e.i18n.translate("settings.integrations.basesIntegration.updateDefaultFiles.confirmTitle"),message:e.i18n.translate("settings.integrations.basesIntegration.updateDefaultFiles.confirmMessage"),confirmText:e.i18n.translate("settings.integrations.basesIntegration.updateDefaultFiles.confirmText"),isDestructive:!1})&&await e.createDefaultBasesFiles({overwriteExisting:!0})}},{id:"open-pomodoro-stats",nameKey:"commands.openPomodoroStats",callback:async e=>{await e.activatePomodoroStatsView()}},{id:"open-statistics",nameKey:"commands.openStatisticsView",callback:async e=>{await e.activateStatsView()}},{id:"create-new-task",nameKey:"commands.createNewTask",callback:e=>{e.openTaskCreationModal()}},{id:"convert-current-note-to-task",nameKey:"commands.convertCurrentNoteToTask.name",callback:async e=>{await e.convertCurrentNoteToTask()}},{id:"convert-to-tasknote",nameKey:"commands.convertToTaskNote",editorCallback:async(e,t)=>{await e.convertTaskToTaskNote(t)}},{id:"batch-convert-all-tasks",nameKey:"commands.convertAllTasksInNote",editorCallback:async(e,t)=>{await e.batchConvertAllTasks(t)}},{id:"insert-tasknote-link",nameKey:"commands.insertTaskNoteLink",editorCallback:(e,t)=>{e.insertTaskNoteLink(t)}},{id:"create-inline-task",nameKey:"commands.createInlineTask",editorCallback:async(e,t)=>{await e.createInlineTask(t)}},{id:"quick-actions-current-task",nameKey:"commands.quickActionsCurrentTask",callback:async e=>{await e.openQuickActionsForCurrentTask()}},{id:"quick-actions-task-under-cursor",nameKey:"commands.quickActionsTaskUnderCursor",editorCallback:async(e,t,n)=>{await e.openQuickActionsForTaskUnderCursor(t,n.file)}},{id:"edit-current-task",nameKey:"commands.editCurrentTask",callback:async e=>{await e.openTaskEditModalForCurrentTask()}},{id:"cycle-current-task-status",nameKey:"commands.cycleCurrentTaskStatus",callback:async e=>{await e.cycleCurrentTaskStatus()}},{id:"cycle-current-task-priority",nameKey:"commands.cycleCurrentTaskPriority",callback:async e=>{await e.cycleCurrentTaskPriority()}},{id:"add-project-to-current-task",nameKey:"commands.addProjectToCurrentTask",callback:async e=>{await e.addProjectToCurrentTask()}},{id:"add-subtask-to-current-note",nameKey:"commands.addSubtaskToCurrentNote",callback:async e=>{await e.addSubtaskToCurrentNote()}},{id:"go-to-today",nameKey:"commands.goToTodayNote",callback:async e=>{await e.navigateToCurrentDailyNote()}},{id:"start-pomodoro",nameKey:"commands.startPomodoro",callback:async e=>{let t=e.pomodoroService.getState();if(t.currentSession&&!t.isRunning){await e.pomodoroService.resumePomodoro();return}t.nextSessionType==="short-break"?await e.pomodoroService.startBreak(!1):t.nextSessionType==="long-break"?await e.pomodoroService.startBreak(!0):await e.pomodoroService.startPomodoroWithLastSelectedTask()}},{id:"stop-pomodoro",nameKey:"commands.stopPomodoro",callback:async e=>{await e.pomodoroService.stopPomodoro()}},{id:"pause-pomodoro",nameKey:"commands.pauseResumePomodoro",callback:async e=>{let t=e.pomodoroService.getState();t.isRunning?await e.pomodoroService.pausePomodoro():t.currentSession&&await e.pomodoroService.resumePomodoro()}},{id:"refresh-cache",nameKey:"commands.refreshCache",callback:async e=>{await e.refreshCache()}},{id:"export-all-tasks-ics",nameKey:"commands.exportAllTasksIcs",callback:async e=>{var t,n,a,i,s;try{let o=await e.cacheManager.getAllTasks(),{downloadAllTasksICSFile:l}=await Promise.resolve().then(()=>(xq(),YTe));l(o,e.i18n.translate.bind(e.i18n),{useDurationForExport:(t=e.settings.icsIntegration.useDurationForExport)!=null?t:!1,excludeArchived:(n=e.settings.icsIntegration.excludeArchivedFromExport)!=null?n:!1,excludeCompleted:(a=e.settings.icsIntegration.excludeCompletedFromExport)!=null?a:!1,completedStatuses:e.statusManager.getCompletedStatuses(),requireDueDate:(i=e.settings.icsIntegration.requireDueDateForExport)!=null?i:!1,requireScheduledDate:(s=e.settings.icsIntegration.requireScheduledDateForExport)!=null?s:!1,includeObsidianLink:!0,vaultName:e.app.vault.getName()})}catch(o){p5t.error("Error exporting all tasks as ICS:",{category:"provider",operation:"exporting-all-tasks-as-ics",error:o}),new ph.Notice(e.i18n.translate("notices.exportTasksFailed"))}}},{id:"sync-all-tasks-google-calendar",nameKey:"commands.syncAllTasksGoogleCalendar",callback:async e=>{var t;if(!((t=e.taskCalendarSyncService)!=null&&t.isEnabled())){new ph.Notice(e.i18n.translate("settings.integrations.googleCalendarExport.notices.notEnabled"));return}await e.taskCalendarSyncService.syncAllTasks()}},{id:"sync-current-task-google-calendar",nameKey:"commands.syncCurrentTaskGoogleCalendar",callback:async e=>{var a;if(!((a=e.taskCalendarSyncService)!=null&&a.isEnabled())){new ph.Notice(e.i18n.translate("settings.integrations.googleCalendarExport.notices.notEnabled"));return}let t=e.app.workspace.getActiveFile();if(!t){new ph.Notice(e.i18n.translate("settings.integrations.googleCalendarExport.notices.noActiveFile"));return}let n=await e.cacheManager.getTaskInfo(t.path);if(!n){new ph.Notice(e.i18n.translate("settings.integrations.googleCalendarExport.notices.notATask"));return}if(!e.taskCalendarSyncService.shouldSyncTask(n)){new ph.Notice(e.i18n.translate("settings.integrations.googleCalendarExport.notices.noDateToSync"));return}await e.taskCalendarSyncService.syncTaskToCalendar(n),new ph.Notice(e.i18n.translate("settings.integrations.googleCalendarExport.notices.taskSynced"))}},{id:"view-release-notes",nameKey:"commands.viewReleaseNotes",callback:async e=>{await e.activateReleaseNotesView()}},{id:"start-time-tracking-with-selector",nameKey:"commands.startTimeTrackingWithSelector",callback:async e=>{await e.openTaskSelectorForTimeTracking()}},{id:"edit-time-entries",nameKey:"commands.editTimeEntries",callback:async e=>{await e.openTaskSelectorForTimeEntryEditor()}},{id:"create-or-open-task",nameKey:"commands.createOrOpenTask",callback:async e=>{await e.openTaskSelectorWithCreate()}},{id:"create-or-open-task-with-time-tracking",nameKey:"commands.createOrOpenTaskWithTracking",callback:async e=>{await e.openTaskSelectorWithCreateAndStartTracking()}},{id:"rollover-overdue-scheduled-tasks",nameKey:"commands.rolloverOverdueScheduledTasks",callback:async e=>{await e.rolloverOverdueScheduledTasks()}}]}var nB=class{constructor(e){this.plugin=e;this.definitions=[];this.registeredCommands=new Map}register(){this.definitions=E7e(this.plugin),this.registerCommands()}refreshTranslations(){var a,i;if(!this.definitions.length)return;let e=this.plugin.app.commands;if(!e)return;let t=e,n=t.removeCommand;if(typeof n=="function"){for(let s of this.registeredCommands.values())n.call(e,s);this.registerCommands();return}for(let s of this.definitions){let o=(a=this.registeredCommands.get(s.id))!=null?a:`${this.plugin.manifest.id}:${s.id}`,l=(i=t.commands)==null?void 0:i[o];l&&(l.name=this.plugin.i18n.translate(s.nameKey),typeof t.updateCommand=="function"&&t.updateCommand(o,l))}}registerCommands(){this.registeredCommands.clear();for(let e of this.definitions){let t={id:e.id,name:this.plugin.i18n.translate(e.nameKey)};e.callback&&(t.callback=()=>{var a;(a=e.callback)==null||a.call(e,this.plugin)}),e.editorCallback&&(t.editorCallback=(a,i)=>{var s;(s=e.editorCallback)==null||s.call(e,this.plugin,a,i)}),e.checkCallback&&(t.checkCallback=e.checkCallback),e.hotkeys&&(t.hotkeys=e.hotkeys);let n=this.plugin.addCommand(t);this.registeredCommands.set(e.id,n.id)}}};var mv=require("obsidian");Yr();w6();Uu();var aB=class{constructor(e){this.plugin=e}getLeafOfType(e){let t=this.plugin.app.workspace.getLeavesOfType(e);return t.length>0?t[0]:null}async revealLeafReady(e){let{workspace:t}=this.plugin.app;t.setActiveLeaf(e,{focus:!0}),await t.revealLeaf(e),e.isDeferred&&await e.loadIfDeferred()}async activateView(e){let{workspace:t}=this.plugin.app,n=this.getLeafOfType(e);return n||(n=t.getLeaf("tab"),await n.setViewState({type:e,active:!0})),await this.revealLeafReady(n),n}async activateCalendarView(){await this.openBasesFileForCommand("open-calendar-view")}async activateAgendaView(){return this.activateView(spe)}async activatePomodoroView(){if(mv.Platform.isMobile&&this.plugin.settings.pomodoroMobileSidebar!=="tab"){let{workspace:e}=this.plugin.app,t=this.getLeafOfType(su);if(!t){let n=this.plugin.settings.pomodoroMobileSidebar==="left"?e.getLeftLeaf(!1):e.getRightLeaf(!1);if(n)t=n,await t.setViewState({type:su,active:!0});else return this.activateView(su)}return await this.revealLeafReady(t),t}return this.activateView(su)}async activatePomodoroStatsView(){return this.activateView(Pv)}async activateStatsView(){return this.activateView(Mv)}async activateReleaseNotesView(){return this.activateView(QD)}getLeafFilePath(e){var n,a,i,s;let t=((a=(n=e.view)==null?void 0:n.file)==null?void 0:a.path)||((s=(i=e.view)==null?void 0:i.getState)==null?void 0:s.call(i).file);return t?(0,mv.normalizePath)(t):null}findLeafForFile(e){var a;let t=this.plugin.app.workspace,n=null;return(a=t.iterateAllLeaves)==null||a.call(t,i=>{!n&&this.getLeafFilePath(i)===e&&(n=i)}),n}async openBasesFileForCommand(e){let t=this.plugin.settings.commandFileMapping[e];if(!t){Xe(`No file configured for command: ${e}`);return}let n=(0,mv.normalizePath)(t);if(!await this.plugin.app.vault.adapter.exists(n)){Xe(`File not found: ${n}
|
||
|
||
Please configure a valid file in Settings \u2192 TaskNotes \u2192 View Commands, or use the "Create Default Files" button.`,1e4);return}let i=this.plugin.app.vault.getAbstractFileByPath(n);if(!i){Xe(`File not found in vault: ${n}
|
||
|
||
The file exists but Obsidian cannot find it. Try reloading the vault.`);return}if(!(i instanceof mv.TFile)){Xe(`Path is not a file: ${n}`);return}let s=this.findLeafForFile(n);if(s){await this.revealLeafReady(s);return}await this.plugin.app.workspace.getLeaf("tab").openFile(i)}};var _7e=require("obsidian");Yr();var bc=require("obsidian");QB();var iB=class extends bc.Modal{constructor(t,n,a,i){super(t);this.keyboardHandler=null;this.totalEl=null;this.descriptionEditors=[];this.plugin=n,this.task=a,this.timeEntries=JSON.parse(JSON.stringify(a.timeEntries||[])),this.onSave=i,this.translate=n.i18n.translate.bind(n.i18n)}onOpen(){let{contentEl:t}=this;this.cleanupDescriptionEditors(),t.empty(),t.addClass("time-entry-editor-modal"),this.titleEl.setText(this.translate("modals.timeEntryEditor.title",{taskTitle:this.task.title})),this.keyboardHandler&&this.containerEl.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=c=>{c.key==="Enter"&&(c.ctrlKey||c.metaKey)&&(c.preventDefault(),this.save())},this.containerEl.addEventListener("keydown",this.keyboardHandler),this.entriesContainerEl=t.createDiv({cls:"time-entry-editor-modal__entries"}),this.renderEntries(),t.createDiv({cls:"time-entry-editor-modal__add-button-container"}).createEl("button",{text:this.translate("modals.timeEntryEditor.addEntry"),cls:"mod-cta"}).addEventListener("click",()=>this.addNewEntry());let i=t.createDiv({cls:"time-entry-editor-modal__footer"});this.totalEl=i.createDiv({cls:"time-entry-editor-modal__total"}),this.updateTotalDisplay();let s=i.createDiv({cls:"time-entry-editor-modal__buttons"});s.createEl("button",{text:this.translate("common.cancel")}).addEventListener("click",()=>this.close()),s.createEl("button",{text:this.translate("common.save"),cls:"mod-cta"}).addEventListener("click",()=>this.save())}renderEntries(){if(this.cleanupDescriptionEditors(),this.entriesContainerEl.empty(),this.timeEntries.length===0){this.entriesContainerEl.createDiv({cls:"time-entry-editor-modal__empty",text:this.translate("modals.timeEntryEditor.noEntries")});return}[...this.timeEntries].sort((n,a)=>new Date(a.startTime).getTime()-new Date(n.startTime).getTime()).forEach(n=>{let a=this.timeEntries.indexOf(n);this.renderEntry(n,a)})}renderEntry(t,n){let a=this.entriesContainerEl.createDiv({cls:"time-entry-editor-modal__entry"}),i=a.createDiv({cls:"time-entry-editor-modal__entry-header"}),s=new Date(t.startTime).toLocaleDateString();i.createSpan({cls:"time-entry-editor-modal__entry-date",text:s});let o=i.createEl("button",{cls:"time-entry-editor-modal__delete-button",attr:{"aria-label":this.translate("modals.timeEntryEditor.deleteEntry")}});(0,bc.setIcon)(o,"trash-2"),o.addEventListener("click",()=>this.deleteEntry(n));let l=a.createDiv({cls:"time-entry-editor-modal__time-container"}),d=new bc.Setting(l).setName(this.translate("modals.timeEntryEditor.startTime")).controlEl.createEl("input",{type:"datetime-local",cls:"time-entry-editor-modal__datetime-input"});d.value=this.formatDateTimeForInput(new Date(t.startTime)),d.addEventListener("change",()=>{let h=new Date(d.value);isNaN(h.getTime())||(t.startTime=h.toISOString(),this.updateTotalDisplay())});let p=new bc.Setting(l).setName(this.translate("modals.timeEntryEditor.endTime")).controlEl.createEl("input",{type:"datetime-local",cls:"time-entry-editor-modal__datetime-input"});t.endTime&&(p.value=this.formatDateTimeForInput(new Date(t.endTime))),p.addEventListener("change",()=>{if(p.value){let h=new Date(p.value);isNaN(h.getTime())||(t.endTime=h.toISOString(),this.updateTotalDisplay())}else t.endTime=void 0,this.updateTotalDisplay()});let m=new bc.Setting(l).setName(this.translate("modals.timeEntryEditor.description"));m.settingEl.addClass("time-entry-editor-modal__description-setting");let f=m.controlEl.createDiv({cls:"time-entry-editor-modal__description-editor-container"});this.renderLazyDescriptionEditor(t,f)}renderLazyDescriptionEditor(t,n){let a=n.createEl("textarea",{cls:"time-entry-editor-modal__description-editor-fallback",placeholder:this.translate("modals.timeEntryEditor.descriptionPlaceholder")});a.value=t.description||"",a.addEventListener("input",()=>{t.description=a.value||void 0}),a.addEventListener("keydown",o=>{o.key==="Enter"&&(o.ctrlKey||o.metaKey)?(o.preventDefault(),this.save()):o.key==="Escape"&&(o.preventDefault(),this.close())});let i=!1,s=()=>{if(i)return;i=!0,t.description=a.value||void 0,n.empty();let o=this.createDescriptionMarkdownEditor(t,n);o&&this.descriptionEditors.push(o),this.focusDescriptionEditor(n)};a.addEventListener("focus",s,{once:!0})}createDescriptionMarkdownEditor(t,n){return ZA(this.app,n,{value:t.description||"",placeholder:this.translate("modals.timeEntryEditor.descriptionPlaceholder"),cls:"time-entry-editor-modal__description-editor",onChange:i=>{t.description=i||void 0},onSubmit:()=>this.save(),onEscape:()=>this.close(),onTab:()=>!1})}focusDescriptionEditor(t){window.setTimeout(()=>{let n=t.querySelector(".cm-content, textarea");n==null||n.focus()},0)}cleanupDescriptionEditors(){this.descriptionEditors.forEach(t=>t.destroy()),this.descriptionEditors=[]}updateTotalDisplay(){if(!this.totalEl)return;let t=this.calculateTotalMinutes(),n=Math.floor(t/60),a=t%60,i=n>0?this.translate("modals.timeEntryEditor.totalTime",{hours:n.toString(),minutes:a.toString()}):this.translate("modals.timeEntryEditor.totalMinutes",{minutes:t.toString()});this.totalEl.setText(i)}calculateDuration(t){if(!t.endTime){let i=new Date,s=new Date(t.startTime);return Math.round((i.getTime()-s.getTime())/6e4)}let n=new Date(t.startTime),a=new Date(t.endTime);return Math.round((a.getTime()-n.getTime())/6e4)}calculateTotalMinutes(){return this.timeEntries.reduce((t,n)=>{let a=this.calculateDuration(n);return t+a},0)}addNewEntry(){let t=new Date,a={startTime:new Date(t.getTime()-3600*1e3).toISOString(),endTime:t.toISOString(),description:""};this.timeEntries.push(a),this.renderEntries(),this.updateTotalDisplay()}deleteEntry(t){this.timeEntries.splice(t,1),this.renderEntries(),this.updateTotalDisplay()}formatDateTimeForInput(t){let n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),o=String(t.getMinutes()).padStart(2,"0");return`${n}-${a}-${i}T${s}:${o}`}save(){for(let n of this.timeEntries){if(!n.startTime){new bc.Notice(this.translate("modals.timeEntryEditor.validation.missingStartTime"));return}if(n.endTime){let a=new Date(n.startTime);if(new Date(n.endTime)<=a){new bc.Notice(this.translate("modals.timeEntryEditor.validation.endBeforeStart"));return}}}let t=this.timeEntries.map(n=>{let a={...n};return delete a.duration,a});this.onSave(t),this.close()}onClose(){this.cleanupDescriptionEditors(),this.totalEl=null,this.keyboardHandler&&(this.containerEl.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=null);let{contentEl:t}=this;t.empty()}};ro();Vo();var bse=/^(\d{4})-(\d{2})-(\d{2})$/,m5t=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d{1,3})?(?:Z|([+-])(\d{2}):(\d{2}))?$/;function Tse(r){let e=h5t(r),t=e.match(bse);if(t){let[,a,i,s]=t,o=Number(a),l=Number(i),c=Number(s);if(!P7e(o,l,c))throw new Error(`Invalid date "${r}".`);return new Date(Date.UTC(o,l-1,c,0,0,0,0))}if(!g5t(e))throw new Error(`Invalid date "${r}".`);let n=new Date(e);if(!M7e(n))throw new Error(`Invalid date "${r}".`);return n}function f5t(r){if(!M7e(r))return"";let e=r.getUTCFullYear(),t=String(r.getUTCMonth()+1).padStart(2,"0"),n=String(r.getUTCDate()).padStart(2,"0");return`${e}-${t}-${n}`}function MA(){let r=new Date,e=r.getFullYear(),t=String(r.getMonth()+1).padStart(2,"0"),n=String(r.getDate()).padStart(2,"0");return`${e}-${t}-${n}`}function sB(r){if(!r)return"";let e=r.trim();if(bse.test(e))return e;let t=e.indexOf("T");if(t>-1)return e.slice(0,t);let n=e.indexOf(" ");return n>-1&&bse.test(e.slice(0,n))?e.slice(0,n):f5t(Tse(e))}function D7e(r,e){try{return Tse(sB(r)).getTime()<Tse(sB(e)).getTime()}catch(t){return!1}}function h5t(r,e="Date string cannot be empty"){if(!r||r.trim().length===0)throw new Error(e);return r.trim()}function g5t(r){let e=r.match(m5t);if(!e)return!1;let[,t,n,a,i,s,o,,l,c,d]=e;return P7e(Number(t),Number(n),Number(a))&&y5t(Number(i),Number(s),Number(o))&&v5t(l,c,d)}function P7e(r,e,t){let n=new Date(Date.UTC(r,e-1,t,0,0,0,0));return n.getUTCFullYear()===r&&n.getUTCMonth()===e-1&&n.getUTCDate()===t}function y5t(r,e,t){return r>=0&&r<=23&&e>=0&&e<=59&&t>=0&&t<=59}function v5t(r,e,t){if(!r)return!0;let n=Number(e),a=Number(t);return!(n>14||a>59||n===14&&a!==0)}function M7e(r){return r instanceof Date&&!Number.isNaN(r.getTime())}Ct();function k5t(r,e=MA()){let t=r.indexOf("T");return t===-1?e:`${e}${r.slice(t)}`}function A7e(r,e,t=MA()){let n=[];for(let a of r){if(!a.scheduled||a.archived||e(a.status))continue;let i=sB(a.scheduled);!i||!D7e(i,t)||n.push({task:a,nextScheduled:k5t(a.scheduled,t)})}return n}K();Uu();var mh=N({tag:"Services/TaskActionCoordinator"}),oB=class{constructor(e){this.plugin=e}async openTaskFile(e){let t=this.plugin.app.vault.getAbstractFileByPath(e.path);t instanceof _7e.TFile&&await this.plugin.app.workspace.getLeaf(!1).openFile(t)}async openTaskSelectorWithCreate(){let{openTaskSelectorWithCreate:e}=await Promise.resolve().then(()=>(Vo(),uq)),t=await e(this.plugin);(t.type==="selected"||t.type==="created")&&await this.openTaskFile(t.task)}async openTaskSelectorWithCreateAndStartTracking(){let{openTaskSelectorWithCreate:e}=await Promise.resolve().then(()=>(Vo(),uq)),t=new Date,n=await e(this.plugin,{targetDate:t});if(n.type==="selected"||n.type==="created"){let a=n.task;try{a=await this.startTimeTracking(n.task)}catch(i){}finally{await this.openTaskFile(a)}}}async startTimeTracking(e,t){try{let n=await this.plugin.taskService.startTimeTracking(e),a=t==null?void 0:t.trim();if(a&&n.timeEntries&&n.timeEntries.length>0){let i=n.timeEntries[n.timeEntries.length-1];i&&!i.endTime&&(i.description=a,n=await this.plugin.taskService.updateTask(n,{timeEntries:n.timeEntries}))}return Xe("Time tracking started"),this.requestStatusBarUpdate(),n}catch(n){throw mh.error("Failed to start time tracking:",{category:"persistence",operation:"start-time-tracking",error:n}),n instanceof Error&&n.message==="Time tracking is already active for this task"?Xe("Time tracking is already active for this task"):Xe("Failed to start time tracking"),n}}async stopTimeTracking(e){try{let t=await this.plugin.taskService.stopTimeTracking(e);return Xe("Time tracking stopped"),this.requestStatusBarUpdate(),t}catch(t){throw mh.error("Failed to stop time tracking:",{category:"persistence",operation:"stop-time-tracking",error:t}),t instanceof Error&&t.message==="No active time tracking session for this task"?Xe("No active time tracking session for this task"):Xe("Failed to stop time tracking"),t}}async openTaskSelectorForTimeTracking(){try{let e=new Date,n=(await this.plugin.cacheManager.getAllTasks()).filter(a=>!a.archived).filter(a=>!P_(a.timeEntries||[]));if(n.length===0){Xe(this.plugin.i18n.translate("modals.timeTracking.noTasksAvailable"));return}Fn(this.plugin,n,a=>{(async()=>{if(a)try{await this.startTimeTracking(a),Xe(this.plugin.i18n.translate("modals.timeTracking.started",{taskTitle:a.title}))}catch(i){mh.error("Error starting time tracking:",{category:"persistence",operation:"starting-time-tracking",error:i}),Xe(this.plugin.i18n.translate("modals.timeTracking.startFailed"))}})()},{targetDate:e})}catch(e){mh.error("Error opening task selector for time tracking:",{category:"persistence",operation:"opening-task-selector-time-tracking",error:e}),Xe(this.plugin.i18n.translate("modals.timeTracking.startFailed"))}}async openTaskSelectorForTimeEntryEditor(){try{let t=(await this.plugin.cacheManager.getAllTasks()).filter(n=>!n.archived).filter(n=>n.timeEntries&&n.timeEntries.length>0);if(t.length===0){Xe(this.plugin.i18n.translate("modals.timeEntryEditor.noTasksWithEntries"));return}Fn(this.plugin,t,n=>{n&&this.openTimeEntryEditor(n)})}catch(e){mh.error("Error opening task selector for time entry editor:",{category:"persistence",operation:"opening-task-selector-time-entry-editor",error:e}),Xe(this.plugin.i18n.translate("modals.timeEntryEditor.openFailed"))}}async rolloverOverdueScheduledTasks(){try{let e=MA(),t=await this.plugin.cacheManager.getAllTasks(),n=A7e(t,l=>this.plugin.statusManager.isCompletedStatus(l),e);if(n.length===0){Xe("No overdue scheduled tasks to postpone");return}let a=n.length===1?"task":"tasks";if(!await Ir(this.plugin.app,{title:"Postpone overdue scheduled tasks",message:`Move ${n.length} active overdue scheduled ${a} to today (${e})?`,confirmText:"Postpone",cancelText:this.plugin.i18n.translate("common.cancel")}))return;Xe(`Postponing ${n.length} ${a}...`);let s=0,o=0;for(let l of n)try{await this.plugin.taskService.updateProperty(l.task,"scheduled",l.nextScheduled),s++}catch(c){mh.error(`[TaskActionCoordinator] Failed to postpone scheduled task ${l.task.path}:`,{category:"persistence",operation:"postpone-scheduled-task",error:c}),o++}o===0?Xe(`Postponed ${s} ${s===1?"task":"tasks"}`):Xe(`Postponed ${s} tasks, ${o} failed`),this.plugin.emitter.trigger(ii)}catch(e){mh.error("Failed to postpone overdue scheduled tasks:",{category:"persistence",operation:"postpone-overdue-scheduled-tasks",error:e}),Xe("Failed to postpone overdue scheduled tasks")}}openTimeEntryEditor(e,t){new iB(this.plugin.app,this.plugin,e,a=>{(async()=>{try{let i=a.map(s=>{let o={...s};return delete o.duration,o});await this.plugin.taskService.updateTask(e,{timeEntries:i}),t==null||t(),this.plugin.emitter.trigger(ii),Xe(this.plugin.i18n.translate("modals.timeEntryEditor.saved"))}catch(i){mh.error("Error saving time entries:",{category:"persistence",operation:"saving-time-entries",error:i}),Xe(this.plugin.i18n.translate("modals.timeEntryEditor.saveFailed"))}})()}).open()}requestStatusBarUpdate(){this.plugin.statusBarService&&window.setTimeout(()=>{this.plugin.statusBarService.requestUpdate()},50)}};Yr();K();fs();var I7e=N({tag:"Services/SettingsLifecycleService"}),lB=class{constructor(e){this.plugin=e;this.previousCacheSettings=null;this.previousTimeTrackingSettings=null;this.autoStopTimeTrackingListener=null;this.saveSettingsPromise=null;this.saveSettingsRequested=!1}captureCurrentSettings(){this.updatePreviousCacheSettings(),this.updatePreviousTimeTrackingSettings()}setupTimeTrackingEventListeners(){this.autoStopTimeTrackingListener&&(this.plugin.emitter.offref(this.autoStopTimeTrackingListener),this.autoStopTimeTrackingListener=null),this.plugin.settings.autoStopTimeTrackingOnComplete&&(this.autoStopTimeTrackingListener=this.plugin.emitter.on(ot,async e=>{await this.handleAutoStopTimeTracking(e)})),this.updatePreviousTimeTrackingSettings()}async saveSettings(){this.saveSettingsRequested=!0,this.saveSettingsPromise||(this.saveSettingsPromise=this.drainSettingsSaves()),await this.saveSettingsPromise}async drainSettingsSaves(){try{for(;this.saveSettingsRequested;)this.saveSettingsRequested=!1,await this.plugin.saveSettingsDataOnly(),!this.saveSettingsRequested&&this.applySettingsSideEffects()}finally{this.saveSettingsPromise=null,this.saveSettingsRequested&&await this.saveSettings()}}applySettingsSideEffects(){var n,a,i,s,o,l,c,d,u,p,m,f;(a=(n=this.plugin.apiService)==null?void 0:n.syncWebhookSettings)==null||a.call(n);let e=this.haveCacheSettingsChanged(),t=this.haveTimeTrackingSettingsChanged();(i=this.plugin.fieldMapper)==null||i.updateMapping(this.plugin.settings.fieldMapping),(o=this.plugin.fieldMapper)==null||o.updateUserFields((s=this.plugin.settings.userFields)!=null?s:[]),(l=this.plugin.fieldMapper)==null||l.updateConfiguredValues(this.plugin.settings.customStatuses,this.plugin.settings.customPriorities),(c=this.plugin.statusManager)==null||c.updateStatuses(this.plugin.settings.customStatuses),(d=this.plugin.priorityManager)==null||d.updatePriorities(this.plugin.settings.customPriorities),e&&(I7e.debug("Cache-related settings changed, updating cache configuration",{category:"configuration",operation:"cache-related-settings-changed-updating-cache-configuration"}),this.plugin.cacheManager.updateConfig(this.plugin.settings),(u=this.plugin.dependencyCache)==null||u.updateConfig(this.plugin.settings),this.updatePreviousCacheSettings()),this.plugin.injectCustomStyles(),t&&this.setupTimeTrackingEventListeners(),(p=this.plugin.statusBarService)==null||p.updateVisibility(),(m=this.plugin.mdbaseSpecService)==null||m.onSettingsChanged(),(f=this.plugin.filterService)==null||f.refreshFilterOptions(),this.plugin.notifyDataChanged(),this.plugin.emitter.trigger("settings-changed",this.plugin.settings)}async onExternalSettingsChange(){var e,t,n,a,i,s,o,l,c,d,u;await this.plugin.loadSettings(),(t=(e=this.plugin.apiService)==null?void 0:e.syncWebhookSettings)==null||t.call(e),(n=this.plugin.fieldMapper)==null||n.updateMapping(this.plugin.settings.fieldMapping),(i=this.plugin.fieldMapper)==null||i.updateUserFields((a=this.plugin.settings.userFields)!=null?a:[]),(s=this.plugin.fieldMapper)==null||s.updateConfiguredValues(this.plugin.settings.customStatuses,this.plugin.settings.customPriorities),(o=this.plugin.statusManager)==null||o.updateStatuses(this.plugin.settings.customStatuses),(l=this.plugin.priorityManager)==null||l.updatePriorities(this.plugin.settings.customPriorities),this.plugin.cacheManager.updateConfig(this.plugin.settings),(c=this.plugin.dependencyCache)==null||c.updateConfig(this.plugin.settings),this.updatePreviousCacheSettings(),this.setupTimeTrackingEventListeners(),this.plugin.injectCustomStyles(),(d=this.plugin.statusBarService)==null||d.updateVisibility(),(u=this.plugin.filterService)==null||u.refreshFilterOptions(),this.plugin.notifyDataChanged(),this.plugin.emitter.trigger("settings-changed",this.plugin.settings)}destroy(){this.autoStopTimeTrackingListener&&(this.plugin.emitter.offref(this.autoStopTimeTrackingListener),this.autoStopTimeTrackingListener=null)}async handleAutoStopTimeTracking(e){let{originalTask:t,updatedTask:n}=e;if(!t||!n)return;let a=!1,i=this.plugin.statusManager.isCompletedStatus(t.status),s=this.plugin.statusManager.isCompletedStatus(n.status);if(!i&&s&&(a=!0),n.recurrence){let l=t.complete_instances||[];(n.complete_instances||[]).length>l.length&&(a=!0)}if(!(!a||!this.plugin.getActiveTimeSession(n)))try{await this.plugin.stopTimeTracking(n),this.plugin.settings.autoStopTimeTrackingNotification&&Te(this.plugin.emitter,`Auto-stopped time tracking for: ${n.title}`)}catch(l){I7e.error("Error auto-stopping time tracking:",{category:"configuration",operation:"auto-stopping-time-tracking",error:l})}}haveCacheSettingsChanged(){if(!this.previousCacheSettings)return!0;let e={taskTag:this.plugin.settings.taskTag,excludedFolders:this.plugin.settings.excludedFolders,disableNoteIndexing:this.plugin.settings.disableNoteIndexing,storeTitleInFilename:this.plugin.settings.storeTitleInFilename,fieldMapping:this.plugin.settings.fieldMapping};return e.taskTag!==this.previousCacheSettings.taskTag||e.excludedFolders!==this.previousCacheSettings.excludedFolders||e.disableNoteIndexing!==this.previousCacheSettings.disableNoteIndexing||e.storeTitleInFilename!==this.previousCacheSettings.storeTitleInFilename||JSON.stringify(e.fieldMapping)!==JSON.stringify(this.previousCacheSettings.fieldMapping)}haveTimeTrackingSettingsChanged(){return this.previousTimeTrackingSettings?this.plugin.settings.autoStopTimeTrackingOnComplete!==this.previousTimeTrackingSettings.autoStopTimeTrackingOnComplete:!0}updatePreviousCacheSettings(){this.previousCacheSettings={taskTag:this.plugin.settings.taskTag,excludedFolders:this.plugin.settings.excludedFolders,disableNoteIndexing:this.plugin.settings.disableNoteIndexing,storeTitleInFilename:this.plugin.settings.storeTitleInFilename,fieldMapping:JSON.parse(JSON.stringify(this.plugin.settings.fieldMapping))}}updatePreviousTimeTrackingSettings(){this.previousTimeTrackingSettings={autoStopTimeTrackingOnComplete:this.plugin.settings.autoStopTimeTrackingOnComplete}}};DJ();H$();K();var b5t=N({tag:"Bootstrap/PluginRuntime"});async function N7e(r){Kie(),await Zie(r),r.workspaceNavigationService=new aB(r),r.taskActionCoordinator=new oB(r),r.settingsLifecycleService=new lB(r),r.commandRegistry=new nB(r),r.settingsLifecycleService.captureCurrentSettings(),Qie(r),r.commandRegistry.register(),C7e(r),r.addSettingTab(new tB(r.app,r))}async function R7e(r){var t,n,a,i,s,o,l,c,d,u,p,m,f,h,g,v,b,k,w,S,C,E,D,P,O,z,R;if((t=r.settings)!=null&&t.enableBases)try{EJ(r),r.basesRegistered=!1}catch(A){b5t.debug("[TaskNotes][Bases] Unregistration failed:",{category:"internal",operation:"unregistration",error:A})}let e=PA.getStats("cache-initialization");e&&e.count>0&&PA.logSummary(),(n=r.pomodoroService)==null||n.cleanup(),(a=r.filterService)==null||a.cleanup(),(i=r.viewPerformanceService)==null||i.destroy(),r.taskCardReadingModeCleanup&&(r.taskCardReadingModeCleanup(),r.taskCardReadingModeCleanup=null),r.relationshipsReadingModeCleanup&&(r.relationshipsReadingModeCleanup(),r.relationshipsReadingModeCleanup=null),(s=r.autoArchiveService)==null||s.stop(),(o=r.icsSubscriptionService)==null||o.destroy(),(l=r.autoExportService)==null||l.destroy(),(c=r.taskLinkDetectionService)==null||c.cleanup(),(d=r.dragDropManager)==null||d.destroy(),(u=r.apiService)==null||u.stop(),(p=r.oauthService)==null||p.destroy(),(m=r.taskFileLifecycleReconciliationService)==null||m.destroy(),(f=r.taskCalendarSyncService)==null||f.destroy(),(h=r.googleCalendarService)==null||h.destroy(),(g=r.microsoftCalendarService)==null||g.destroy(),(v=r.calendarProviderRegistry)==null||v.destroyAll(),(b=r.viewStateManager)==null||b.cleanup(),(k=r.statusBarService)==null||k.destroy(),(w=r.notificationService)==null||w.destroy(),(S=r.projectSubtasksService)==null||S.destroy(),(C=r.cacheManager)==null||C.destroy(),(E=r.dependencyCache)==null||E.destroy(),(D=r.requestDeduplicator)==null||D.cancelAll(),(P=r.domReconciler)==null||P.destroy(),(O=r.uiStateManager)==null||O.destroy(),(z=r.settingsLifecycleService)==null||z.destroy(),(R=r.performanceProfiler)==null||R.destroy(),typeof PA!="undefined"&&PA.destroy(),r.taskUpdateListenerForEditor&&r.emitter.offref(r.taskUpdateListenerForEditor),r.initializationComplete=!1}var AA=require("obsidian");ag();async function wse(r,e){if(!e)return;let n=(0,AA.normalizePath)(e).split("/").filter(i=>i.length>0);if(n.length===0)return;let a="";for(let i of n)if(a=a?`${a}/${i}`:i,!await r.adapter.exists(a))try{await r.createFolder(a)}catch(s){if(!await r.adapter.exists(a))throw s}}async function F7e(r,e={}){var s,o,l;let t=[],n=[],a=[],i=e.overwriteExisting===!0;try{let c=r.app.vault,d=c.adapter,u={...pa.commandFileMapping,...(s=r.settings.commandFileMapping)!=null?s:{}};r.settings.commandFileMapping=u;for(let[p,m]of Object.entries(u)){if(!m)continue;let f=(0,AA.normalizePath)(m),h=r.generateTemplate(p);if(!h){a.push(m);continue}if(await d.exists(f)){if(!i){a.push(m);continue}let b=c.getAbstractFileByPath(f);if(!(b instanceof AA.TFile)){(o=r.warn)==null||o.call(r,`[TaskNotes][Bases] Cannot update default Bases file because path is not a file: ${f}`),a.push(m);continue}await c.modify(b,h),n.push(m);continue}let g=f.lastIndexOf("/"),v=g>=0?f.substring(0,g):"";v&&await wse(c,v),await c.create(f,h),t.push(m)}}catch(c){(l=r.warn)==null||l.call(r,"[TaskNotes][Bases] Failed to ensure Bases command files:",c)}return{created:t,updated:n,skipped:a}}var cB=require("obsidian");var T5t="TaskNotes/Start Here.md",w5t=["# Start Here with TaskNotes","","This note is a small tour of TaskNotes inside your own vault. Work through it in place, then keep it as a reference or delete it when you no longer need it.","","TaskNotes works best when three things feel connected:","","1. Capture a task quickly.","2. Store the task as a normal Markdown note.","3. Review tasks through Bases views.","","## Before you start","","- [ ] Enable the Obsidian **Bases** core plugin.","- [ ] Confirm TaskNotes has created the default `.base` files in `TaskNotes/Views/`.","- [ ] Open the command palette and run **TaskNotes: Open tasks view**.","","TaskNotes creates missing default `.base` files automatically on startup when **Auto-create default files** is enabled. If the files are missing, use **Settings -> TaskNotes -> General -> Views & base files -> Create files**.","","## 1. Create a task from the command palette","","Run **TaskNotes: Create new task** and create a real task you intend to do soon.","","Try a title like:","","```text","Review my TaskNotes setup tomorrow #admin","```","","After saving, TaskNotes creates a Markdown note for that task. Open the task note and look at the YAML properties at the top. Those properties are what Bases reads for filtering, sorting, grouping, and calendar placement.","","## 2. Convert inline tasks into TaskNotes","","The checkboxes below are ordinary Markdown tasks. Convert each one into a TaskNote from the line's inline action or the command palette.","","- [ ] Create a TaskNotes inbox task due tomorrow #admin","- [ ] Schedule a 20 minute planning task for next Monday #planning","- [ ] Make a task linked to an active project note","","After conversion, notice a few things:","","- The source line can stay in this note as context.","- The actual task now lives as its own Markdown note, so it can appear in TaskNotes views.","- The converted line links to the TaskNote. Right-click that TaskNote link to open the task menu, then try changing a property such as status, priority, due date, scheduled date, or project.","","## 3. Review your tasks","","The embedded views below use the default TaskNotes Bases files.","","### Task list","","![[TaskNotes/Views/tasks-default.base]]","","Use this when you want a straightforward list of everything open.","","### Agenda","","![[TaskNotes/Views/agenda-default.base]]","","Use this when you care about due dates, scheduled dates, and what needs attention soon.","","### Mini calendar","","![[TaskNotes/Views/mini-calendar-default.base]]","","Use this when you want a compact calendar alongside your notes.","","### Calendar","","![[TaskNotes/Views/calendar-default.base]]","","Use this when you want a larger calendar for scheduled work, due dates, timeblocks, and calendar events.","","### Kanban","","![[TaskNotes/Views/kanban-default.base]]","","Use this when you want to move work through statuses like open, in progress, and done.","","## 4. Adjust only what gets in your way","","The defaults are enough to start. Visit settings later when you know what you want to change:","","- If task files are going to the wrong place, check **Settings -> TaskNotes -> General**.","- If converted inline tasks should be created somewhere else, check **Settings -> TaskNotes -> Inline Task Settings**.","- If the task modal shows too much or too little, check **Settings -> TaskNotes -> Modal Fields**.","- If your vault uses different property names, statuses, priorities, or custom fields, check **Settings -> TaskNotes -> Task Properties**.","","## 5. Make it yours","","Try adding one custom property to a task, such as `energy`, `client`, or `area`. Because tasks are Markdown notes, custom properties can be used in Bases without locking you into a separate task database.","","## 6. Contextual views","","You can embed Bases views inside daily notes, project notes, meeting notes, or task notes. Advanced Bases filters can use the current note as context, so one view can show tasks related to whatever note it is embedded in.","","TaskNotes uses this pattern for the Relationships widget in task notes. When you are ready to customize views, see the TaskNotes documentation for examples.","","Useful next experiments:","","- Duplicate `TaskNotes/Views/tasks-default.base` and make a view for one project.","- Add a group to a Base view, such as status or priority.","- Add a filter for tasks due this week.","- Link a task to a project note and use backlinks to see where it is mentioned.","","## More help and extensions","","- Documentation: [tasknotes.dev](https://tasknotes.dev/)","- Problems or bugs: [open an issue on GitHub](https://github.com/callumalpass/tasknotes/issues)","- Companion plugins:"," - [Canvas Bases](https://tasknotes.dev/companion-plugins/canvas-bases/) adds canvas-style boards and JSON Canvas snapshots for Bases views, with optional TaskNotes badges, actions, and relationship edges."," - [TaskNotes Workflows](https://tasknotes.dev/companion-plugins/tasknotes-workflows/) adds Markdown-defined automation for TaskNotes events, schedules, manual commands, and task actions.","","## Finished","","Now you know the core idea: tasks are notes, properties make them queryable, and Bases turns them into views."].join(`
|
||
`)+`
|
||
`;async function O7e(r){var t,n;if(r.settings.starterNoteCreated)return"already-created";if(!r.shouldCreateStarterNote)return"not-first-install";let e=(0,cB.normalizePath)(T5t);try{let a=r.app.vault,i=await a.adapter.exists(e),s,o="created";if(i){let l=a.getAbstractFileByPath(e);if(!(l instanceof cB.TFile))return(t=r.warn)==null||t.call(r,`[TaskNotes][StarterNote] Starter note path exists but is not a file: ${e}`),"path-not-file";s=l,o="opened-existing"}else{let l=e.lastIndexOf("/"),c=l>=0?e.substring(0,l):"";c&&await wse(a,c),s=await a.create(e,w5t)}return r.settings.starterNoteCreated=!0,await r.saveSettings(),await r.app.workspace.getLeaf("tab").openFile(s),o}catch(a){return(n=r.warn)==null||n.call(r,"[TaskNotes][StarterNote] Failed to create starter note:",a),"failed"}}var _A=require("obsidian"),S5t="https://github.com/callumalpass/tasknotes/releases/latest/download/manifest.json",x5t="https://raw.githubusercontent.com/callumalpass/tasknotes/main/versions.json",Sse="obsidian://show-plugin?id=tasknotes";function L7e(r){let[e,t=""]=r.trim().split("-",2);return{numbers:e.split(".").map(a=>{let i=Number.parseInt(a,10);return Number.isFinite(i)?i:0}),prerelease:t?t.split("."):[]}}function C5t(r,e){let t=Number.parseInt(r,10),n=Number.parseInt(e,10),a=String(t)===r,i=String(n)===e;return a&&i?Math.sign(t-n):a?-1:i?1:r.localeCompare(e)}function j7e(r,e){var s,o;let t=L7e(r),n=L7e(e),a=Math.max(t.numbers.length,n.numbers.length,3);for(let l=0;l<a;l++){let c=((s=t.numbers[l])!=null?s:0)-((o=n.numbers[l])!=null?o:0);if(c!==0)return Math.sign(c)}if(t.prerelease.length===0&&n.prerelease.length===0)return 0;if(t.prerelease.length===0)return 1;if(n.prerelease.length===0)return-1;let i=Math.max(t.prerelease.length,n.prerelease.length);for(let l=0;l<i;l++){let c=t.prerelease[l],d=n.prerelease[l];if(c===void 0)return-1;if(d===void 0)return 1;let u=C5t(c,d);if(u!==0)return u}return 0}function $7e(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}async function z7e(r){return(await(0,_A.requestUrl)({url:r,method:"GET"})).json}function E5t(r){if(!$7e(r))return null;let e=typeof r.version=="string"?r.version.trim():"";return e?{version:e,minAppVersion:typeof r.minAppVersion=="string"?r.minAppVersion.trim():void 0}:null}function D5t(r){if(!$7e(r))return{};let e={};for(let[t,n]of Object.entries(r))typeof n=="string"&&t.trim()&&(e[t]=n);return e}function P5t(r,e,t=_A.requireApiVersion){var a,i;if(!r.minAppVersion||t(r.minAppVersion))return(a=r.version)!=null?a:null;let n=Object.entries(e).filter(([,s])=>t(s)).map(([s])=>s).sort(j7e);return(i=n[n.length-1])!=null?i:null}function B7e(r,e,t){return!e||j7e(e,r)<=0?!1:t!==e}async function U7e(){var t;let r=E5t(await z7e(S5t));if(!r)return null;if(!r.minAppVersion||(0,_A.requireApiVersion)(r.minAppVersion))return(t=r.version)!=null?t:null;let e=D5t(await z7e(x5t));return P5t(r,e)}Me();Ct();kr();function V7e({path:r,basename:e,content:t,frontmatter:n={},settings:a,fieldMapper:i,now:s=Ge(),adapters:o={}}){var u,p,m,f;let l=i==null?void 0:i.mapFromFrontmatter(n,r,a.storeTitleInFilename),c=$s(l?l.scheduled:n.scheduled),d=c!=null?c:M5t(a.taskCreationDefaults,(u=o.calculateDefaultDateTime)!=null?u:Ac);return{path:r,title:$s(l?l.title:n.title)||e,status:(p=$s(l?l.status:n.status))!=null?p:a.defaultTaskStatus,priority:(m=$s(l?l.priority:n.priority))!=null?m:a.defaultTaskPriority,archived:!1,due:$s(l?l.due:n.due),scheduled:d,contexts:eS(l?l.contexts:n.contexts),projects:eS(l?l.projects:n.projects),tags:(f=eS(l?l.tags:n.tags))!=null?f:[],timeEstimate:H7e(l?l.timeEstimate:n.timeEstimate),recurrence:$s(l?l.recurrence:n.recurrence),dateCreated:$s(l?l.dateCreated:n.dateCreated)||s,dateModified:s,details:A5t(t)}}function M5t(r,e){if(r.defaultScheduledDate!=="none")return e(r.defaultScheduledDate,r.defaultScheduledTime)||void 0}function A5t(r){let e=r.match(/^---\n[\s\S]*?\n---\n*/);return e?r.slice(e[0].length).trim():r.trim()}function $s(r){if(r!=null){if(typeof r=="string")return r;if(typeof r=="number"||typeof r=="boolean")return String(r)}}function eS(r){if(r!=null)return __(r)}function H7e(r){if(typeof r=="number")return r;if(typeof r=="string"&&r.trim()!==""){let e=Number(r);return Number.isNaN(e)?void 0:e}}function q7e(r,e){return e==="task-creation"?r.useParentNoteForTaskCreation:r.useParentNoteAsProject}function W7e(r,e){let t=r?{...r}:{},n=Object.keys(t).length>0,a=Array.isArray(t.projects)?t.projects:[];return!e||a.length>0?n?t:void 0:(t.projects=[e],t)}function Y7e(r,e){var n;let t=r;return typeof t.setQuery=="function"?(t.setQuery(e),!0):typeof((n=t.searchComponent)==null?void 0:n.setValue)=="function"?(t.searchComponent.setValue(e),!0):t.searchInputEl?(t.searchInputEl.value=e,typeof t.startSearch=="function"&&t.startSearch(),!0):!1}TE();var K7e=require("obsidian");ag();ag();function _5t(r,e){return r!==null&&typeof r=="object"&&Object.prototype.hasOwnProperty.call(r,e)}function xse(r,e){return Object.keys(r).some(t=>!_5t(e,t))}function G7e(r){return r?xse(pa.fieldMapping,r.fieldMapping)||xse(pa.calendarViewSettings,r.calendarViewSettings)||xse(pa.commandFileMapping,r.commandFileMapping):!1}vS();K();var I5t=N({tag:"Settings/SettingsPersistence"});function Z7e(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function N5t(r){return new Promise(e=>window.setTimeout(e,r))}function R5t(r){var t;let e=(t=r.manifest.dir)!=null?t:r.app.vault.configDir&&r.manifest.id?`${r.app.vault.configDir}/plugins/${r.manifest.id}`:void 0;return e?(0,K7e.normalizePath)(`${e}/data.json`):null}async function Cse(r){let e=R5t(r);if(!e)return!1;try{return await r.app.vault.adapter.exists(e)}catch(t){return I5t.warn("[TaskNotes] Could not check settings data file existence:",{category:"configuration",operation:"check-settings-data-file-existence",error:t}),!1}}async function Q7e(r,e={}){var i,s,o,l;let t=(i=e.retryCount)!=null?i:3,n=(s=e.retryDelayMs)!=null?s:50,a=(o=await r.loadData())!=null?o:null;if(a!==null)return{data:a,compromised:!1};if(!await Cse(r))return{data:null,compromised:!1};for(let c=0;c<t;c++){await N5t(n);let d=(l=await r.loadData())!=null?l:null;if(d!==null)return{data:d,compromised:!1}}return{data:null,compromised:!0}}function F5t(r){if(!r)return null;let e={...r};if(delete e.useNativeMetadataCache,typeof e.enableAPI=="undefined"&&(e.enableAPI=!1),typeof e.apiPort=="undefined"&&(e.apiPort=8080),typeof e.apiAuthToken=="undefined"&&(e.apiAuthToken=""),typeof e.enableMCP=="undefined"&&(e.enableMCP=!1),!e.nlpTriggers&&e.statusSuggestionTrigger!==void 0){e.nlpTriggers={triggers:[...kV.triggers]};let t=e.nlpTriggers.triggers.findIndex(n=>n.propertyId==="status");t!==-1&&e.statusSuggestionTrigger&&(e.nlpTriggers.triggers[t].trigger=e.statusSuggestionTrigger)}return e.modalFieldsConfig||(e.modalFieldsConfig=Cc(void 0,e.userFields)),e.enableBases===!1&&(e.enableBases=!0),e.taskFilenameFormat!=="custom"&&e.customFilenameTemplate==="{title}"&&(e.customFilenameTemplate="{{title}}"),e}function O5t(r){let e=r==null?void 0:r.taskCreationDefaults;return!!(e&&!Z7e(e,"useParentNoteForTaskCreation")&&typeof e.useParentNoteAsProject=="boolean")}function L5t(r){let e={...pa.taskCreationDefaults,...r||{}};return r&&!Z7e(r,"useParentNoteForTaskCreation")&&typeof r.useParentNoteAsProject=="boolean"&&(e.useParentNoteForTaskCreation=r.useParentNoteAsProject),e}function J7e(r){var i;let e=F5t(r),t=(r==null?void 0:r.taskFilenameFormat)!=="custom"&&(r==null?void 0:r.customFilenameTemplate)==="{title}"&&(e==null?void 0:e.customFilenameTemplate)==="{{title}}",n=O5t(e);return{settings:{...pa,...e,fieldMapping:{...pa.fieldMapping,...(e==null?void 0:e.fieldMapping)||{}},taskCreationDefaults:L5t(e==null?void 0:e.taskCreationDefaults),calendarViewSettings:{...pa.calendarViewSettings,...(e==null?void 0:e.calendarViewSettings)||{}},commandFileMapping:{...pa.commandFileMapping,...(e==null?void 0:e.commandFileMapping)||{}},icsIntegration:{...pa.icsIntegration,...(e==null?void 0:e.icsIntegration)||{}},nlpTriggers:{...pa.nlpTriggers,...(e==null?void 0:e.nlpTriggers)||{},triggers:((i=e==null?void 0:e.nlpTriggers)==null?void 0:i.triggers)||pa.nlpTriggers.triggers},modalFieldsConfig:Cc(e==null?void 0:e.modalFieldsConfig,e==null?void 0:e.userFields),customStatuses:(e==null?void 0:e.customStatuses)||pa.customStatuses,customPriorities:(e==null?void 0:e.customPriorities)||pa.customPriorities,savedViews:(e==null?void 0:e.savedViews)||pa.savedViews},shouldPersistMigratedSettings:G7e(e)||t||n}}function X7e(r,e){let t=r?{...r}:{},n=Object.keys(pa);for(let a of n)t[a]=e[a];return t}function eZe({timer:r=window,registerTimer:e,emitDateChanged:t,getDateKey:n=()=>new Date().toDateString(),getNow:a=()=>new Date,intervalMs:i=6e4}){let s=n(),o=null,l=()=>{let u=n();return u===s?!1:(s=u,t(),!0)},c=()=>{let u=z5t(a());return o!==null&&r.clearTimeout(o),o=r.setTimeout(()=>{l(),c()},u),e(o),o},d=r.setInterval(l,i);return e(d),c(),{checkDateChange:l,scheduleNextMidnightCheck:c,getLastKnownDate:()=>s,getMidnightTimeout:()=>o}}function z5t(r){let e=new Date(r);return e.setHours(24,0,0,0),e.getTime()-r.getTime()}K();Hie();VP();var tS=require("obsidian");K();var j5t=200,$5t=250,B5t=N({tag:"Utils/PerformanceProfiler"});function U5t(){return typeof performance!="undefined"&&typeof performance.now=="function"?performance.now():Date.now()}function H5t(){return typeof performance!="undefined"&&"memory"in performance}function tZe(r,e){if(r.length===0)return 0;let t=Math.min(r.length-1,Math.max(0,Math.ceil(r.length*e)-1));return r[t]}function fh(r){return Math.round(r*1e3)/1e3}function V5t(r,e){if(!(!r&&!e))return{...r||{},...e||{}}}var Ese=class r{constructor(e={}){this.enabledOverride=null;this.metrics=new Map;this.counters=new Map;this.gauges=new Map;var t,n;this.namespace=((t=e.namespace)==null?void 0:t.trim())||"tasknotes",this.isEnabledCallback=e.isEnabled||(()=>!1),this.logger=e.logger||B5t,this.now=e.now||U5t,this.sampleLimit=Math.max(1,e.sampleLimit||j5t),this.slowThresholdMs=Math.max(0,(n=e.slowThresholdMs)!=null?n:$5t)}isEnabled(){var e;return(e=this.enabledOverride)!=null?e:this.isEnabledCallback()}enable(){this.enabledOverride=!0}disable(){this.enabledOverride=!1}clearEnabledOverride(){this.enabledOverride=null}child(e){return new r({namespace:[this.namespace,e].filter(Boolean).join("."),isEnabled:()=>this.isEnabled(),logger:this.logger,now:this.now,sampleLimit:this.sampleLimit,slowThresholdMs:this.slowThresholdMs})}start(e,t){if(!this.isEnabled())return{end:()=>0};let n=this.now(),a=!1;return{end:i=>{if(a)return 0;a=!0;let s=this.now()-n;return this.recordDuration(e,s,V5t(t,i)),s}}}async measureAsync(e,t,n){if(!this.isEnabled())return t();let a=this.start(e,n);try{let i=await t();return a.end(),i}catch(i){throw a.end({failed:!0}),i}}measureSync(e,t,n){if(!this.isEnabled())return t();let a=this.start(e,n);try{let i=t();return a.end(),i}catch(i){throw a.end({failed:!0}),i}}recordDuration(e,t,n){if(!this.isEnabled())return;let a=this.getMetricName(e),s=this.metrics.get(a)||{count:0,totalMs:0,minMs:Number.POSITIVE_INFINITY,maxMs:0,lastMs:0,samples:[]};s.count++,s.totalMs+=t,s.minMs=Math.min(s.minMs,t),s.maxMs=Math.max(s.maxMs,t),s.lastMs=t,s.lastDetails=n,s.samples.push(t),s.samples.length>this.sampleLimit&&s.samples.splice(0,s.samples.length-this.sampleLimit),this.metrics.set(a,s),t>=this.slowThresholdMs&&this.logger.warn("Slow operation recorded",{category:"internal",operation:"performance-profiler",details:{name:a,durationMs:fh(t),...n||{}}})}increment(e,t=1,n){if(!this.isEnabled())return;let a=this.getMetricName(e),i=this.counters.get(a)||{count:0};i.count+=t,i.lastDetails=n,this.counters.set(a,i)}recordGauge(e,t,n){this.isEnabled()&&this.gauges.set(this.getMetricName(e),{value:t,updatedAt:new Date().toISOString(),lastDetails:n})}getMetric(e){let t=this.metrics.get(this.getMetricName(e));return t?this.toMetricSnapshot(this.getMetricName(e),t):null}snapshot(){let e={},t={},n={};for(let[a,i]of this.metrics)e[a]=this.toMetricSnapshot(a,i);for(let[a,i]of this.counters)t[a]={name:a,count:i.count,lastDetails:i.lastDetails};for(let[a,i]of this.gauges)n[a]={name:a,value:i.value,updatedAt:i.updatedAt,lastDetails:i.lastDetails};return{generatedAt:new Date().toISOString(),enabled:this.isEnabled(),metrics:e,counters:t,gauges:n}}exportData(){return{...this.snapshot(),platform:{isDesktop:tS.Platform.isDesktop,isMobile:tS.Platform.isMobile,isWin:tS.Platform.isWin,isMacOS:tS.Platform.isMacOS,isLinux:tS.Platform.isLinux},memoryInfo:H5t()?performance.memory:null}}reset(e){if(!e){this.metrics.clear(),this.counters.clear(),this.gauges.clear();return}let t=this.getMetricName(e);this.metrics.delete(t),this.counters.delete(t),this.gauges.delete(t)}destroy(){this.reset(),this.clearEnabledOverride()}getMetricName(e){let t=e.trim();return t.startsWith(`${this.namespace}.`)?t:`${this.namespace}.${t}`}toMetricSnapshot(e,t){let n=[...t.samples].sort((i,s)=>i-s),a=t.count===0?0:t.totalMs/t.count;return{name:e,count:t.count,totalMs:fh(t.totalMs),averageMs:fh(a),minMs:fh(t.minMs===Number.POSITIVE_INFINITY?0:t.minMs),maxMs:fh(t.maxMs),medianMs:fh(tZe(n,.5)),p95Ms:fh(tZe(n,.95)),lastMs:fh(t.lastMs),sampleCount:t.samples.length,lastDetails:t.lastDetails}}};function rZe(r={}){return new Ese(r)}var St=N({tag:"Main"});function W5t(r){return r.setSubmenu()}var IA=class extends Se.Plugin{constructor(){super(...arguments);this.settingsLoadCompromised=!1;this.settingsDataSavePromise=null;this.settingsDataSaveRequested=!1;this.oauthSecretStorageReady=!1;this.taskUpdateListenerForEditor=null;this.relationshipsReadingModeCleanup=null;this.taskCardReadingModeCleanup=null;this.initializationComplete=!1;this.migrationComplete=!1;this.migrationPromise=null;this.shouldCreateStarterNoteOnStartup=!1;this.basesRegistered=!1;this.basesRegistrationRetryIntervalId=null}getSystemUILocale(){try{let t=(0,Se.getLanguage)();if(t)return t}catch(t){}return typeof navigator!="undefined"&&navigator.language?navigator.language:"en"}refreshLocalizedViews(){}async onload(){var t;this.readyPromise=new Promise(n=>{this.resolveReady=n}),await this.loadSettings(),this.performanceProfiler=rZe({isEnabled:()=>{var n;return((n=this.settings)==null?void 0:n.enableDebugLogging)===!0},logger:N({tag:"PerformanceProfiler",isDebugEnabled:()=>{var n;return((n=this.settings)==null?void 0:n.enableDebugLogging)===!0}})}),this.i18n=fxe({initialLocale:(t=this.settings.uiLanguage)!=null?t:"system",getSystemLocale:()=>this.getSystemUILocale()}),this.i18n.on("locale-changed",({current:n})=>{var i;if(!this.initializationComplete)return;let a=this.i18n.getNativeLanguageName(n);new Se.Notice(this.i18n.translate("notices.languageChanged",{language:a})),this.refreshLocalizedViews(),(i=this.commandRegistry)==null||i.refreshTranslations()}),await N7e(this),this.registerTaskNotesFileMenuActions(),this.migrationPromise=this.performEarlyMigrationCheck(),Jie(this),TA(this),this.app.workspace.onLayoutReady(()=>{this.initializeAfterLayoutReady()}),this.resolveReady(),this.emitter.trigger(_d.ready,{timestamp:new Date().toISOString()})}registerTaskNotesFileMenuActions(){this.registerEvent(this.app.workspace.on("file-menu",(t,n,a)=>{this.addTaskNotesFileMenuActions(t,n,a)}))}addTaskNotesFileMenuActions(t,n,a){if(a==="tasknotes-context-menu"||!(n instanceof Se.TFile))return;let i=this.app.metadataCache.getFileCache(n);if(!(i!=null&&i.frontmatter)||!this.cacheManager.isTaskFile(i.frontmatter))return;t.addSeparator(),t.addItem(o=>{o.setTitle(this.i18n.translate("modals.taskEdit.title")),o.setIcon("pencil"),o.setSection("tasknotes"),o.onClick(()=>{this.openTaskEditModalForFile(n)})});let s=this.cacheManager.getCachedTaskInfoSync(n.path);s&&t.addItem(o=>{o.setTitle(this.i18n.translate("common.appName")),o.setIcon("list-checks"),o.setSection("tasknotes");let l=W5t(o);Yl.addToMenu(l,{task:s,plugin:this,targetDate:Er(),onUpdate:()=>{this.app.workspace.trigger("tasknotes:refresh-views")}})})}async initializeAfterLayoutReady(){await Xie(this)}initializeServicesLazily(){Promise.resolve().then(()=>(H$(),j8e)).then(({initializeServicesLazily:t})=>{t(this)})}async warmupProjectIndexes(){try{this.cacheManager.getTasksForDate(new Date().toISOString().split("T")[0])}catch(t){St.error("[TaskNotes] Error during project index warmup:",{category:"internal",operation:"project-index-warmup",error:t})}}async onReady(){await this.readyPromise}setupStatusBarEventListeners(){this.statusBarService&&(this.registerEvent(this.emitter.on(ot,()=>{window.setTimeout(()=>{this.statusBarService.requestUpdate()},100)})),this.registerEvent(this.emitter.on(ii,()=>{window.setTimeout(()=>{this.statusBarService.requestUpdate()},100)})),this.pomodoroService&&(this.registerEvent(this.emitter.on("pomodoro-start",()=>{window.setTimeout(()=>{this.statusBarService.requestUpdate()},100)})),this.registerEvent(this.emitter.on("pomodoro-stop",()=>{window.setTimeout(()=>{this.statusBarService.requestUpdate()},100)})),this.registerEvent(this.emitter.on("pomodoro-state-changed",()=>{window.setTimeout(()=>{this.statusBarService.requestUpdate()},100)}))))}setupTimeTrackingEventListeners(){this.settingsLifecycleService.setupTimeTrackingEventListeners()}async performEarlyMigrationCheck(){try{await this.viewStateManager.initializeSavedViews(),this.viewStateManager.needsMigration()&&await this.viewStateManager.performMigration(),this.migrationComplete=!0}catch(t){St.error("Error during early migration check:",{category:"configuration",operation:"early-migration-check",error:t}),this.migrationComplete=!0}}async checkForVersionUpdate(){var t;try{let n=this.manifest.version,a=this.settings.lastSeenVersion;a&&a!==n&&(((t=this.settings.showReleaseNotesOnUpdate)!=null?t:!0)?window.setTimeout(()=>{(async()=>(await this.activateReleaseNotesView(),this.settings.lastSeenVersion=n,await this.saveSettings()))()},1500):(this.settings.lastSeenVersion=n,await this.saveSettings())),a||(this.settings.lastSeenVersion=n,await this.saveSettings())}catch(n){St.error("Error checking for version update:",{category:"configuration",operation:"checking-version-update",error:n})}}async checkForNewReleaseOnStartup(){if(this.settings.checkForUpdatesOnStartup!==!1)try{let t=await U7e();if(!B7e(this.manifest.version,t,this.settings.lastNotifiedReleaseVersion))return;this.settings.lastNotifiedReleaseVersion=t,await this.saveSettingsDataOnly(),new Se.Notice(this.createReleaseAvailableNotice(t),15e3)}catch(t){St.debug("Release check failed",{category:"provider",operation:"check-release",error:t})}}createReleaseAvailableNotice(t){let n=activeWindow.createFragment();n.appendText(this.i18n.translate("notices.releaseAvailable.message",{version:t})),n.appendText(" ");let a=activeWindow.createEl("a");return a.textContent=this.i18n.translate("notices.releaseAvailable.action"),a.href=Sse,a.addEventListener("click",i=>{i.preventDefault(),window.open(Sse,"_blank")}),n.appendChild(a),n}async waitForMigration(){for(this.migrationPromise&&await this.migrationPromise;!this.migrationComplete;)await new Promise(t=>window.setTimeout(t,50))}notifyDataChanged(t,n=!1,a=!0){t?(this.cacheManager.clearCacheEntry(t),this.taskLinkDetectionService&&this.taskLinkDetectionService.clearCacheForFile(t)):n&&(this.cacheManager.clearAllCaches(),this.taskLinkDetectionService&&this.taskLinkDetectionService.clearCache()),a&&window.requestAnimationFrame(()=>{this.emitter.trigger(ii),this.emitter.trigger(_d["cache.changed"],{filePath:t,force:n,timestamp:new Date().toISOString()})})}setupDateChangeDetection(){eZe({registerTimer:t=>this.registerInterval(t),emitDateChanged:()=>this.emitter.trigger(Wp)})}onunload(){var t;(t=this.emitter)==null||t.trigger(_d.unloading,{timestamp:new Date().toISOString()}),R7e(this)}async pluginDataFileExists(){return Cse(this)}async loadPluginDataForSafeWrite(t){let n=await this.loadData();return n==null&&await this.pluginDataFileExists()?(this.settingsLoadCompromised=!0,St.warn("[TaskNotes] Skipping plugin data save because data.json exists but could not be read.",{category:"configuration",operation:"load-plugin-data-for-safe-write",details:{requestedOperation:t,settingsSavesBlocked:!0}}),null):n==null?{}:typeof n=="object"&&!Array.isArray(n)?n:(St.warn("[TaskNotes] Skipping plugin data save because loaded plugin data was not an object.",{category:"configuration",operation:"load-plugin-data-for-safe-write",details:{requestedOperation:t,dataType:Array.isArray(n)?"array":typeof n}}),null)}async loadSettingsData(){this.settingsLoadCompromised=!1;let t=await Q7e(this);return this.settingsLoadCompromised=t.compromised,t.compromised&&St.error("Settings data could not be read safely",{category:"internal",operation:"load-settings-data",details:{reason:"Settings data file exists, but Obsidian returned no settings data.",settingsSavesBlocked:!0}}),t.data}async loadSettings(){var i;let t=await this.loadSettingsData();if((i=this.oauthSecretStore)!=null||(this.oauthSecretStore=new zN(this.app.secretStorage)),this.oauthSecretStorageReady=!1,!this.settingsLoadCompromised){let s=gxe(t,this.oauthSecretStore);s.changed&&s.data&&await super.saveData(s.data),t=s.data,this.oauthSecretStorageReady=!0}let{settings:n,shouldPersistMigratedSettings:a}=J7e(t);this.settings=n,this.shouldCreateStarterNoteOnStartup=!n.lastSeenVersion,a&&window.setTimeout(()=>{(async()=>{try{await this.saveSettingsDataOnly()}catch(s){St.error("Failed to save migrated settings:",{category:"configuration",operation:"save-migrated-settings",error:s})}})()},100)}async saveData(t){let n=this.oauthSecretStorageReady&&typeof t=="object"&&t!==null&&!Array.isArray(t)?rW(t):t;await super.saveData(n)}async saveSettings(){await this.settingsLifecycleService.saveSettings()}async saveSettingsDataOnly(){this.settingsDataSaveRequested=!0,this.settingsDataSavePromise||(this.settingsDataSavePromise=this.drainSettingsDataSaves()),await this.settingsDataSavePromise}async drainSettingsDataSaves(){try{for(;this.settingsDataSaveRequested;)this.settingsDataSaveRequested=!1,await this.writeSettingsDataOnlyOnce()}finally{this.settingsDataSavePromise=null,this.settingsDataSaveRequested&&await this.saveSettingsDataOnly()}}async writeSettingsDataOnlyOnce(){if(this.settingsLoadCompromised){St.warn("[TaskNotes] Skipping settings save because settings data could not be read safely during startup.",{category:"configuration",operation:"skipping-settings-save-because-settings-data-read-safely-startup"});return}let t=await this.loadPluginDataForSafeWrite("save-settings-data-only");t&&await this.saveData(X7e(t,this.settings))}async onExternalSettingsChange(){await this.settingsLifecycleService.onExternalSettingsChange()}async revealLeafReady(t){await this.workspaceNavigationService.revealLeafReady(t)}async activateView(t){return this.workspaceNavigationService.activateView(t)}async activateCalendarView(){return this.workspaceNavigationService.activateCalendarView()}async activateAgendaView(){return this.workspaceNavigationService.activateAgendaView()}async activatePomodoroView(){return this.workspaceNavigationService.activatePomodoroView()}async activatePomodoroStatsView(){return this.workspaceNavigationService.activatePomodoroStatsView()}async activateStatsView(){return this.workspaceNavigationService.activateStatsView()}async activateReleaseNotesView(){return this.workspaceNavigationService.activateReleaseNotesView()}async openBasesFileForCommand(t){await this.workspaceNavigationService.openBasesFileForCommand(t)}async createDefaultBasesFiles(t={}){let{created:n,updated:a,skipped:i}=await this.ensureBasesViewFiles(t);n.length>0&&new Se.Notice(`Created ${n.length} default Bases file(s):
|
||
${n.join(`
|
||
`)}`,8e3),a.length>0&&new Se.Notice(`Updated ${a.length} default Bases file(s):
|
||
${a.join(`
|
||
`)}`,8e3),i.length>0&&n.length===0&&a.length===0&&new Se.Notice(`Default Bases files already exist:
|
||
${i.join(`
|
||
`)}`,8e3)}async updateDefaultBasesFiles(){return this.ensureBasesViewFiles({overwriteExisting:!0})}async ensureBasesViewFiles(t={}){return F7e({app:this.app,settings:this.settings,generateTemplate:n=>ape(n,this),warn:(n,a)=>{a===void 0?St.warn(n,{category:"configuration",operation:"ensure-bases-view-files"}):St.warn(n,{category:"configuration",operation:"ensure-bases-view-files",error:a})}},t)}async ensureStarterNote(){let t=this.shouldCreateStarterNoteOnStartup;this.shouldCreateStarterNoteOnStartup=!1,await O7e({app:this.app,settings:this.settings,shouldCreateStarterNote:t,saveSettings:()=>this.saveSettingsDataOnly(),warn:(n,a)=>{a===void 0?St.warn(n,{category:"configuration",operation:"ensure-starter-note"}):St.warn(n,{category:"configuration",operation:"ensure-starter-note",error:a})}})}async openTagsPane(t){let{workspace:n}=this.app;try{let a=n.getLeavesOfType("search").first();if(!a){let s=n.getLeftLeaf(!1);if(!s)return St.warn("Could not get left leaf for search pane",{category:"configuration",operation:"get-left-leaf-search-pane"}),!1;try{await s.setViewState({type:"search",active:!0}),a=s}catch(o){return St.warn("Failed to create search view:",{category:"persistence",operation:"create-search-view",error:o}),!1}}if(!a)return St.warn("No search leaf available",{category:"configuration",operation:"no-search-leaf"}),!1;await this.revealLeafReady(a);let i=`tag:${t}`;return Y7e(a.view,i)?!0:(St.warn("[TaskNotes] Could not find method to set search query",{category:"stale-data",operation:"find-method-set-search-query"}),new Se.Notice("Search pane opened but could not set tag query"),!1)}catch(a){return St.error("[TaskNotes] Error opening search pane with tag:",{category:"internal",operation:"opening-search-pane-tag",error:a}),new Se.Notice(`Failed to open search pane for tag: ${t}`),!1}}getLeafOfType(t){return this.workspaceNavigationService.getLeafOfType(t)}getCalendarLeaf(){return this.getLeafOfType(ipe)}async navigateToCurrentDailyNote(){let t=Er();await this.navigateToDailyNote(t,{isAlreadyLocal:!0})}async navigateToDailyNote(t,n){try{if(!(0,hh.appHasDailyNotesPluginLoaded)()){new Se.Notice("Daily notes core plugin is not enabled. Please enable it in settings > core plugins.");return}let a=n!=null&&n.isAlreadyLocal?t:ku(t),i=window.moment(a),s=(0,hh.getAllDailyNotes)(),o=(0,hh.getDailyNote)(i,s),l=!1;if(!o)try{o=await(0,hh.createDailyNote)(i),l=!0}catch(c){let d=c instanceof Error?c.message:String(c);St.error("Failed to create daily note:",{category:"persistence",operation:"create-daily-note",error:c}),new Se.Notice(`Failed to create daily note: ${d}`);return}o&&(await this.app.workspace.getLeaf(!1).openFile(o),l&&this.notifyDataChanged(o.path,!1,!0))}catch(a){let i=a instanceof Error?a.message:String(a);St.error("Failed to navigate to daily note:",{category:"persistence",operation:"navigate-daily-note",error:a}),new Se.Notice(`Failed to navigate to daily note: ${i}`)}}injectCustomStyles(){var n;(n=activeDocument.getElementById("tasknotes-custom-styles"))==null||n.remove();let t=activeDocument.documentElement.style;for(let a=t.length-1;a>=0;a-=1){let i=t.item(a);(i.startsWith("--status-")||i.startsWith("--priority-"))&&t.removeProperty(i)}for(let[a,i]of[...this.statusManager.getStatusColorVariables(),...this.priorityManager.getPriorityColorVariables()])t.setProperty(a,i)}async updateTaskProperty(t,n,a,i={}){try{let s=await this.taskService.updateProperty(t,n,a,i);if(!i.silent)if(n==="status"){let o=typeof a=="string"?a:String(a),l=this.statusManager.getStatusConfig(o);new Se.Notice(`Task marked as '${(l==null?void 0:l.label)||o}'`)}else new Se.Notice(`Task ${n} updated`);return s}catch(s){throw St.error(`Failed to update task ${n}:`,{category:"validation",operation:"update-task",error:s}),new Se.Notice(`Failed to update task ${n}`),s}}async toggleRecurringTaskComplete(t,n){var a;try{let i=await this.taskService.resolveRecurringTaskActionDate(t,n),s=await this.taskService.toggleRecurringTaskComplete(t,i),o=ce(i),c=((a=s.complete_instances)==null?void 0:a.includes(o))?"completed":"marked incomplete",d=it(o);return new Se.Notice(`Recurring task ${c} for ${M(d,"MMM d")}`),s}catch(i){throw St.error("Failed to toggle recurring task completion:",{category:"persistence",operation:"toggle-recurring-task-completion",error:i}),new Se.Notice("Failed to update recurring task"),i}}async toggleTaskArchive(t){try{let n=await this.taskService.toggleArchive(t),a=n.archived?"archived":"unarchived";return new Se.Notice(`Task ${a}`),n}catch(n){throw St.error("Failed to toggle task archive:",{category:"persistence",operation:"toggle-task-archive",error:n}),new Se.Notice("Failed to update task archive status"),n}}async toggleTaskStatus(t){try{let n=await this.taskService.toggleStatus(t),a=this.statusManager.getStatusConfig(n.status);return new Se.Notice(`Task marked as '${(a==null?void 0:a.label)||n.status}'`),n}catch(n){throw St.error("Failed to toggle task status:",{category:"persistence",operation:"toggle-task-status",error:n}),new Se.Notice("Failed to update task status"),n}}openTaskCreationModal(t){new Pm(this.app,this,{prePopulatedValues:this.applyParentNoteProjectDefault(t,"task-creation")}).open()}applyParentNoteProjectDefault(t,n){if(!q7e(this.settings.taskCreationDefaults,n))return t;let a=this.app.workspace.getActiveFile(),i=a?this.app.fileManager.generateMarkdownLink(a,a.path):void 0;return W7e(t,i)}async convertCurrentNoteToTask(){let t=this.app.workspace.getActiveFile();if(!t){new Se.Notice(this.i18n.translate("commands.convertCurrentNoteToTask.noActiveFile"));return}if(await this.cacheManager.getTaskInfo(t.path)){new Se.Notice(this.i18n.translate("commands.convertCurrentNoteToTask.alreadyTask"));return}let a=this.app.metadataCache.getFileCache(t),i=(a==null?void 0:a.frontmatter)||{},s=await this.app.vault.read(t),o=V7e({path:t.path,basename:t.basename,content:s,frontmatter:i,settings:this.settings,fieldMapper:this.fieldMapper});new PE(this.app,this,{task:o,onTaskUpdated:l=>{new Se.Notice(this.i18n.translate("commands.convertCurrentNoteToTask.success",{title:l.title}))}}).open()}async openTaskSelectorWithCreate(){await this.taskActionCoordinator.openTaskSelectorWithCreate()}async openTaskSelectorWithCreateAndStartTracking(){await this.taskActionCoordinator.openTaskSelectorWithCreateAndStartTracking()}async rolloverOverdueScheduledTasks(){await this.taskActionCoordinator.rolloverOverdueScheduledTasks()}async startTimeTracking(t,n){return this.taskActionCoordinator.startTimeTracking(t,n)}async stopTimeTracking(t){return this.taskActionCoordinator.stopTimeTracking(t)}getActiveTimeSession(t){return P_(t.timeEntries||[])}isRecurringTaskCompleteForDate(t,n){if(!t.recurrence)return!1;let a=ce(n);return(Array.isArray(t.complete_instances)?t.complete_instances:[]).includes(a)}formatTime(t){return M_(t)}async openTaskEditModal(t,n){new PE(this.app,this,{task:t,onTaskUpdated:n}).open()}async openDueDateModal(t){this.openTaskDatePicker(t,"due")}async openScheduledDateModal(t){this.openTaskDatePicker(t,"scheduled")}async openTaskDatePicker(t,n){try{let{DateTimePickerModal:a}=await Promise.resolve().then(()=>(kk(),wbe)),{getDatePart:i,getTimePart:s,combineDateAndTime:o}=await Promise.resolve().then(()=>(Me(),U2)),l=(n==="due"?t.due:t.scheduled)||"";new a(this.app,{currentDate:i(l)||null,currentTime:s(l)||null,dateRole:n,plugin:this,onSelect:(d,u)=>{(async()=>{let p=d&&u?o(d,u):d||void 0;await this.taskService.updateProperty(t,n,p)})()}}).open()}catch(a){St.error("Error loading DateTimePickerModal:",{category:"validation",operation:"loading-datetimepickermodal",error:a})}}async refreshCache(){try{let t=new Se.Notice("Refreshing tasknotes cache...",0);await this.cacheManager.clearAllCaches(),this.notifyDataChanged(void 0,!0,!0),this.emitter.trigger(_d["cache.rebuilt"],{force:!0,timestamp:new Date().toISOString()}),t.hide(),new Se.Notice("Tasknotes cache refreshed successfully")}catch(t){St.error("Error refreshing cache:",{category:"stale-data",operation:"refreshing-cache",error:t}),new Se.Notice("Failed to refresh cache. Please try again.")}}async convertTaskToTaskNote(t){try{let n=t.getCursor();if(!this.instantTaskConvertService){new Se.Notice("Task conversion service not available. Please try again.");return}await this.instantTaskConvertService.instantConvertTask(t,n.line)}catch(n){St.error("Error converting task:",{category:"validation",operation:"converting-task",error:n}),new Se.Notice("Failed to convert task. Please try again.")}}async batchConvertAllTasks(t){try{if(!this.instantTaskConvertService){new Se.Notice("Task conversion service not available. Please try again.");return}await this.instantTaskConvertService.batchConvertAllTasks(t)}catch(n){St.error("Error batch converting tasks:",{category:"validation",operation:"batch-converting-tasks",error:n}),new Se.Notice("Failed to batch convert tasks. Please try again.")}}async insertTaskNoteLink(t){try{let a=(await this.cacheManager.getAllTasks()).filter(i=>!i.archived);Fn(this,a,i=>{if(i){let s=this.app.vault.getAbstractFileByPath(i.path);if(s instanceof Se.TFile){let o=this.app.workspace.getActiveFile(),l=(o==null?void 0:o.path)||"",c=this.app.fileManager.generateMarkdownLink(s,l,"",i.title),d=t.getCursor();t.replaceRange(c,d);let u={line:d.line,ch:d.ch+c.length};t.setCursor(u)}else new Se.Notice("Failed to create link - file not found")}})}catch(n){St.error("Error inserting tasknote link:",{category:"persistence",operation:"inserting-tasknote-link",error:n}),new Se.Notice("Failed to insert tasknote link")}}async openTaskSelectorForTimeTracking(){await this.taskActionCoordinator.openTaskSelectorForTimeTracking()}async openTaskSelectorForTimeEntryEditor(){await this.taskActionCoordinator.openTaskSelectorForTimeEntryEditor()}openTimeEntryEditor(t,n){this.taskActionCoordinator.openTimeEntryEditor(t,n)}extractSelectionInfoForCommand(t,n){let a=t.getSelection();if(a&&a.trim()){let i=t.listSelections()[0],s=Math.min(i.anchor.line,i.head.line),o=Math.max(i.anchor.line,i.head.line),l=[];for(let p=s;p<=o;p++)l.push(t.getLine(p));let c=l[0],u=l.slice(1).join(`
|
||
`).trimEnd();return{taskLine:c,details:u,startLine:s,endLine:o,originalContent:l}}else{let i=t.getLine(n);return{taskLine:i,details:"",startLine:n,endLine:n,originalContent:[i]}}}async openQuickActionsForCurrentTask(){try{let t=this.app.workspace.getActiveFile();if(!t){new Se.Notice("No file is currently open");return}await this.openQuickActionsForTaskFile(t,"Current file is not a tasknote")}catch(t){St.error("Error opening quick actions:",{category:"internal",operation:"opening-quick-actions",error:t}),new Se.Notice("Failed to open quick actions")}}async openQuickActionsForTaskUnderCursor(t,n){try{let a=n!=null?n:this.app.workspace.getActiveFile();if(!a){new Se.Notice("No file is currently open");return}let i=await this.getTaskLinkDetectionService(),s=this.getTaskLinkAtCursor(t,i);if(!s){new Se.Notice("No task link found");return}let o=await i.detectTaskLink(s.match,a.path,s.type);if(!o.isValidTaskLink||!o.taskInfo){new Se.Notice("No task link found");return}await this.openQuickActionsForTaskInfo(o.taskInfo)}catch(a){St.error("Error opening quick actions for task under cursor:",{category:"persistence",operation:"opening-quick-actions-task-under-cursor",error:a}),new Se.Notice("Failed to open quick actions")}}async openTaskEditModalForCurrentTask(){let t=this.app.workspace.getActiveFile();if(!t){new Se.Notice("No file is currently open");return}await this.openTaskEditModalForFile(t,"Current file is not a tasknote")}async cycleCurrentTaskStatus(){try{let t=await this.getCurrentTaskForCommand();if(!t)return;let n=this.statusManager.getNextStatus(t.status);await this.updateTaskProperty(t,"status",n)}catch(t){St.error("Failed to cycle current task status:",{category:"persistence",operation:"cycle-current-task-status",error:t}),new Se.Notice("Failed to cycle task status")}}async cycleCurrentTaskPriority(){try{let t=await this.getCurrentTaskForCommand();if(!t)return;let n=t.priority||this.settings.defaultTaskPriority,a=this.priorityManager.getNextPriority(n);await this.updateTaskProperty(t,"priority",a)}catch(t){St.error("Failed to cycle current task priority:",{category:"persistence",operation:"cycle-current-task-priority",error:t}),new Se.Notice("Failed to cycle task priority")}}async getCurrentTaskForCommand(t="Current file is not a task"){let n=this.app.workspace.getActiveFile();if(!n)return new Se.Notice("No file is currently open"),null;let a=await this.cacheManager.getTaskInfo(n.path);return a||(new Se.Notice(t),null)}async getTaskLinkDetectionService(){if(!this.taskLinkDetectionService){let{TaskLinkDetectionService:t}=await Promise.resolve().then(()=>(bO(),E6));this.taskLinkDetectionService=new t(this)}return this.taskLinkDetectionService}getTaskLinkAtCursor(t,n){var o;let a=t.getCursor(),i=t.getLine(a.line);return(o=n.findWikilinks(i).find(l=>a.ch>=l.start&&a.ch<=l.end&&(l.type==="wikilink"||l.type==="markdown")))!=null?o:null}async openTaskEditModalForFile(t,n){try{let a=await this.cacheManager.getTaskInfo(t.path);if(!a){new Se.Notice(n!=null?n:this.i18n.translate("modals.taskEdit.notices.fileMissing",{path:t.path}));return}await this.openTaskEditModal(a)}catch(a){St.error("Error opening task edit modal from file menu:",{category:"persistence",operation:"opening-task-edit-modal-file-menu",error:a}),new Se.Notice(this.i18n.translate("modals.taskEdit.notices.openNoteFailure"))}}async openQuickActionsForTaskFile(t,n="Selected file is not a tasknote"){let a=await this.cacheManager.getTaskInfo(t.path);if(!a){new Se.Notice(n);return}await this.openQuickActionsForTaskInfo(a)}async openQuickActionsForTaskInfo(t){let{TaskActionPaletteModal:n}=await Promise.resolve().then(()=>(iZe(),aZe)),a=new Date,i=new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate()));new n(this.app,t,this,i).open()}async addProjectToCurrentTask(){try{let t=this.app.workspace.getActiveFile();if(!t){new Se.Notice("No file is currently open");return}let n=await this.cacheManager.getTaskInfo(t.path);if(!n){new Se.Notice("Current file is not a task");return}new Ao(this.app,this,i=>{if(!(i instanceof Se.TFile)){new Se.Notice(this.i18n.translate("contextMenus.task.organization.notices.projectSelectFailed"));return}this.addSelectedProjectToTask(n,i)}).open()}catch(t){St.error("Failed to add project to current task:",{category:"persistence",operation:"add-project-current-task",error:t}),new Se.Notice(this.i18n.translate("contextMenus.task.organization.notices.addToProjectFailed"))}}async addSubtaskToCurrentNote(){try{let t=this.app.workspace.getActiveFile();if(!t){new Se.Notice("No file is currently open");return}let a=(await this.cacheManager.getAllTasks()).filter(i=>i.path!==t.path);if(a.length===0){new Se.Notice(this.i18n.translate("contextMenus.task.organization.notices.noEligibleSubtasks"));return}Fn(this,a,i=>{i&&this.assignSelectedSubtaskToCurrentNote(t,i)})}catch(t){St.error("Failed to add subtask to current note:",{category:"persistence",operation:"add-subtask-current-note",error:t}),new Se.Notice(this.i18n.translate("contextMenus.task.organization.notices.subtaskSelectFailed"))}}async addSelectedProjectToTask(t,n){try{await Nk(this,t,n)}catch(a){St.error("Failed to add selected project to task:",{category:"persistence",operation:"add-selected-project-task",error:a}),new Se.Notice(this.i18n.translate("contextMenus.task.organization.notices.addToProjectFailed"))}}async assignSelectedSubtaskToCurrentNote(t,n){try{await tN(this,t,n)}catch(a){St.error("Failed to assign selected subtask to current note:",{category:"persistence",operation:"assign-selected-subtask-current-note",error:a}),new Se.Notice(this.i18n.translate("contextMenus.task.organization.notices.addAsSubtaskFailed"))}}async createInlineTask(t){try{let n=t.getCursor(),a=t.getLine(n.line),i=a.trim(),s;if(i==="")s={line:n.line,ch:n.ch};else{let d={line:n.line,ch:a.length};t.replaceRange(`
|
||
`,d),s={line:n.line+1,ch:0}}let o={editor:t,insertionPoint:s},l=this.applyParentNoteProjectDefault(void 0,"inline-creation");new Pm(this.app,this,{prePopulatedValues:l,onTaskCreated:d=>{this.handleInlineTaskCreated(d,o)},creationContext:"modal-inline-creation"}).open()}catch(n){St.error("Error creating inline task:",{category:"persistence",operation:"creating-inline-task",error:n}),new Se.Notice("Failed to create inline task")}}handleInlineTaskCreated(t,n){try{let{editor:a,insertionPoint:i}=n,s=this.app.vault.getAbstractFileByPath(t.path);if(!(s instanceof Se.TFile)){new Se.Notice("Failed to create link - file not found");return}let o=this.app.workspace.getActiveFile(),l=(o==null?void 0:o.path)||"",c=this.app.fileManager.generateMarkdownLink(s,l,"",Vw(t.title));a.replaceRange(c,i);let d={line:i.line,ch:i.ch+c.length};a.setCursor(d),new Se.Notice(`Inline task "${t.title}" created and linked successfully`)}catch(a){St.error("Error handling inline task creation:",{category:"persistence",operation:"handling-inline-task-creation",error:a}),new Se.Notice("Failed to insert task link")}}};var Y5t=IA;
|
||
/*! Bundled license information:
|
||
|
||
reflect-metadata/Reflect.js:
|
||
(*! *****************************************************************************
|
||
Copyright (C) Microsoft. All rights reserved.
|
||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||
this file except in compliance with the License. You may obtain a copy of the
|
||
License at http://www.apache.org/licenses/LICENSE-2.0
|
||
|
||
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||
|
||
See the Apache Version 2.0 License for specific language governing permissions
|
||
and limitations under the License.
|
||
***************************************************************************** *)
|
||
*/
|
||
|
||
/* nosourcemap */ |