/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var mg=Object.create;var Fr=Object.defineProperty;var pg=Object.getOwnPropertyDescriptor;var gg=Object.getOwnPropertyNames;var yg=Object.getPrototypeOf,vg=Object.prototype.hasOwnProperty;var ol=t=>Fr(t,"__esModule",{value:!0});var Je=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),bg=(t,e)=>{ol(t);for(var n in e)Fr(t,n,{get:e[n],enumerable:!0})},wg=(t,e,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of gg(e))!vg.call(t,a)&&a!=="default"&&Fr(t,a,{get:()=>e[a],enumerable:!(n=pg(e,a))||n.enumerable});return t},Fe=t=>wg(ol(Fr(t!=null?mg(yg(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var Nn=Je((lo,uo)=>{(function(t,e){typeof lo=="object"&&typeof uo!="undefined"?uo.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis!="undefined"?globalThis:t||self,t["fast-copy"]=e())})(lo,function(){"use strict";var t=Function.prototype.toString,e=Object.create,n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getOwnPropertySymbols,o=Object.getPrototypeOf,l=Object.prototype,s=l.hasOwnProperty,d=l.propertyIsEnumerable,u={SYMBOL_PROPERTIES:typeof i=="function",WEAKMAP:typeof WeakMap=="function"},c=function(){if(u.WEAKMAP)return new WeakMap;var x=e({has:function(B){return!!~x._keys.indexOf(B)},set:function(B,C){x._keys.push(B),x._values.push(C)},get:function(B){return x._values[x._keys.indexOf(B)]}});return x._keys=[],x._values=[],x},h=function(x,B){if(!x.constructor)return e(null);var C=x.constructor,F=x.__proto__||o(x);if(C===B.Object)return F===B.Object.prototype?{}:e(F);if(~t.call(C).indexOf("[native code]"))try{return new C}catch{}return e(F)},y=function(x,B,C,F){var _=h(x,B);F.set(x,_);for(var N in x)s.call(x,N)&&(_[N]=C(x[N],F));if(u.SYMBOL_PROPERTIES){var k=i(x),P=k.length;if(P)for(var S=0,W=void 0;S
"),n.style.display="none",n.style.position="fixed",n.style.zIndex="-5",n}function Ba(t){Lt.innerHTML="";var e=document.createTextNode(t);Lt.appendChild(e),Lt.style.display="none",Lt.style.display="inline"}var m0="--any--",td={outline:"rgba(255, 255, 102, 0.7) solid 2px"},tn=!1,ds,It,sa="",la,dn,Pn="",wi=new WeakSet,nd=new WeakMap,ad=new WeakMap,fs=new Map,xt=new Map,fn=new Map,rd=f0();function p0(t,e){Me(function(){return"registering drop-zone if absent"}),fn.size===0&&(Me(function(){return"adding global keydown and click handlers"}),window.addEventListener("keydown",od),window.addEventListener("click",sd)),fn.has(e)||fn.set(e,new Set),fn.get(e).has(t)||(fn.get(e).add(t),Nc())}function id(t,e){Me(function(){return"unregistering drop-zone"}),It===t&&pr(),fn.get(e).delete(t),Mc(),fn.get(e).size===0&&fn.delete(e),fn.size===0&&(Me(function(){return"removing global keydown and click handlers"}),window.removeEventListener("keydown",od),window.removeEventListener("click",sd))}function od(t){if(!!tn)switch(t.key){case"Escape":{pr();break}}}function sd(){!tn||wi.has(document.activeElement)||(Me(function(){return"clicked outside of any draggable"}),pr())}function g0(t){if(Me(function(){return"zone focus"}),!!tn){var e=t.currentTarget;if(e!==It){sa=e.getAttribute("aria-label")||"";var n=xt.get(It),a=n.items,r=a.find(function(c){return c[_t]===dn}),i=a.indexOf(r),o=a.splice(i,1)[0],l=xt.get(e),s=l.items,d=l.autoAriaDisabled;e.getBoundingClientRect().top0&&arguments[0]!==void 0?arguments[0]:!0;Me(function(){return"drop"}),xt.get(It).autoAriaDisabled||Ba("Stopped dragging item ".concat(Pn)),wi.has(document.activeElement)&&document.activeElement.blur(),t&&Rn(It,xt.get(It).items,{trigger:ot.DRAG_STOPPED,id:dn,source:nt.KEYBOARD}),mi(fn.get(ds),function(e){return xt.get(e).dropTargetStyle},function(e){return xt.get(e).dropTargetClasses}),la=null,dn=null,Pn="",ds=null,It=null,sa="",tn=!1,ld()}function y0(t,e){var n={items:void 0,type:void 0,dragDisabled:!1,zoneTabIndex:0,dropFromOthersDisabled:!1,dropTargetStyle:td,dropTargetClasses:[],autoAriaDisabled:!1};function a(u,c,h){u.length<=1||u.splice(h,1,u.splice(c,1,u[h])[0])}function r(u){switch(Me(function(){return["handling key down",u.key]}),u.key){case"Enter":case" ":{if((u.target.disabled!==void 0||u.target.href||u.target.isContentEditable)&&!wi.has(u.target))return;u.preventDefault(),u.stopPropagation(),tn?pr():i(u);break}case"ArrowDown":case"ArrowRight":{if(!tn)return;u.preventDefault(),u.stopPropagation();var c=xt.get(t),h=c.items,y=Array.from(t.children),m=y.indexOf(u.currentTarget);Me(function(){return["arrow down",m]}),m0&&(n.autoAriaDisabled||Ba("Moved item ".concat(Pn," to position ").concat(w," in the list ").concat(sa)),a(p,w,w-1),ka(t,p,{trigger:ot.DROPPED_INTO_ZONE,id:dn,source:nt.KEYBOARD}));break}}}function i(u){Me(function(){return"drag start"}),l(u.currentTarget),It=t,ds=n.type,tn=!0;var c=Array.from(fn.get(n.type)).filter(function(y){return y===It||!xt.get(y).dropFromOthersDisabled});if(hi(c,function(y){return xt.get(y).dropTargetStyle},function(y){return xt.get(y).dropTargetClasses}),!n.autoAriaDisabled){var h="Started dragging item ".concat(Pn,". Use the arrow keys to move it within its list ").concat(sa);c.length>1&&(h+=", or tab to another list in order to move the item into it"),Ba(h)}Rn(t,xt.get(t).items,{trigger:ot.DRAG_STARTED,id:dn,source:nt.KEYBOARD}),ld()}function o(u){!tn||u.currentTarget!==la&&(u.stopPropagation(),pr(!1),i(u))}function l(u){var c=xt.get(t),h=c.items,y=Array.from(t.children),m=y.indexOf(u);la=u,la.tabIndex=0,dn=h[m][_t],Pn=y[m].getAttribute("aria-label")||""}function s(u){var c=u.items,h=c===void 0?[]:c,y=u.type,m=y===void 0?m0:y,v=u.dragDisabled,p=v===void 0?!1:v,A=u.zoneTabIndex,w=A===void 0?0:A,x=u.dropFromOthersDisabled,B=x===void 0?!1:x,C=u.dropTargetStyle,F=C===void 0?td:C,_=u.dropTargetClasses,N=_===void 0?[]:_,k=u.autoAriaDisabled,P=k===void 0?!1:k;n.items=oi(h),n.dragDisabled=p,n.dropFromOthersDisabled=B,n.zoneTabIndex=w,n.dropTargetStyle=F,n.dropTargetClasses=N,n.autoAriaDisabled=P,P||(t.setAttribute("aria-disabled",p),t.setAttribute("role","list"),t.setAttribute("aria-describedby",p?rd.DND_ZONE_DRAG_DISABLED:rd.DND_ZONE_ACTIVE)),n.type&&m!==n.type&&id(t,n.type),n.type=m,p0(t,m),xt.set(t,n),tn?t.tabIndex=t===It||la.contains(t)||n.dropFromOthersDisabled||It&&n.type!==xt.get(It).type?-1:0:t.tabIndex=n.zoneTabIndex,t.addEventListener("focus",g0);for(var S=function(le){var oe=t.children[le];wi.add(oe),oe.tabIndex=tn?-1:0,P||oe.setAttribute("role","listitem"),oe.removeEventListener("keydown",nd.get(oe)),oe.removeEventListener("click",ad.get(oe)),p||(oe.addEventListener("keydown",r),nd.set(oe,r),oe.addEventListener("click",o),ad.set(oe,o)),tn&&n.items[le][_t]===dn&&(Me(function(){return["focusing on",{i:le,focusedItemId:dn}]}),la=oe,la.tabIndex=0,oe.focus())},W=0;W0&&console.warn("dndzone will ignore unknown options",y),!e)throw new Error("no 'items' key provided to dndzone");var m=e.find(function(v){return!{}.hasOwnProperty.call(v,_t)});if(m)throw new Error("missing '".concat(_t,"' property for item ").concat(xn(m)));if(d&&!Array.isArray(d))throw new Error("dropTargetClasses should be an array but instead it is a ".concat(ur(d),", ").concat(xn(d)));if(l&&!v0(l))throw new Error("zoneTabIndex should be a number but instead it is a ".concat(ur(l),", ").concat(xn(l)))}function v0(t){return!isNaN(t)&&function(e){return(e|0)===e}(parseFloat(t))}var Na=Fe(require("obsidian"));var cd=Fe(require("obsidian"));function b0(t){we(t,"svelte-l6axd",".add-new.svelte-l6axd,.add-new.svelte-l6axd button{width:100%}.disabled.svelte-l6axd button{cursor:not-allowed}")}function w0(t){let e,n,a,r;return{c(){e=T("div"),D(e,"class","add-new setting-item svelte-l6axd"),D(e,"aria-label",t[1]),ge(e,"disabled",t[0])},m(i,o){q(i,e,o),a||(r=[ue(n=t[2].call(null,e)),ae(e,"click",t[4])],a=!0)},p(i,[o]){o&2&&D(e,"aria-label",i[1]),o&1&&ge(e,"disabled",i[0])},i:Y,o:Y,d(i){i&&O(e),a=!1,_e(r)}}}function D0(t,e,n){let{disabled:a=!1}=e,{label:r="Add New"}=e,i,o=s=>{n(3,i=new cd.ButtonComponent(s).setButtonText("+").setDisabled(a))};function l(s){ce.call(this,t,s)}return t.$$set=s=>{"disabled"in s&&n(0,a=s.disabled),"label"in s&&n(1,r=s.label)},t.$$.update=()=>{if(t.$$.dirty&9){e:i&&i.setDisabled(a)}},[a,r,o,i,l]}var dd=class extends de{constructor(e){super();fe(this,e,D0,w0,se,{disabled:0,label:1},b0)}},Ft=dd;function _0(t){we(t,"svelte-1o5puim",".no-existing-items.svelte-1o5puim.svelte-1o5puim{width:100%}.no-existing-items.svelte-1o5puim span.svelte-1o5puim{width:100%;text-align:center;color:var(--text-faint)}")}function C0(t){let e,n,a;return{c(){e=T("div"),n=T("span"),a=pe(t[0]),D(n,"class","svelte-1o5puim"),D(e,"class","no-existing-items setting-item svelte-1o5puim")},m(r,i){q(r,e,i),E(e,n),E(n,a)},p(r,[i]){i&1&&be(a,r[0])},i:Y,o:Y,d(r){r&&O(e)}}}function E0(t,e,n){let{message:a}=e;return t.$$set=r=>{"message"in r&&n(0,a=r.message)},[a]}var fd=class extends de{constructor(e){super();fe(this,e,E0,C0,se,{message:0},_0)}},Pt=fd;function A0(t){we(t,"svelte-1ddbnom",".existing-items.svelte-1ddbnom.svelte-1ddbnom{width:100%}.weekday.svelte-1ddbnom.svelte-1ddbnom{display:grid;grid-template-columns:auto 1fr auto;align-items:center;justify-content:space-between;gap:1rem;width:100%}.weekday.svelte-1ddbnom .icon.svelte-1ddbnom{align-items:center}.weekday.svelte-1ddbnom.svelte-1ddbnom{margin-top:0.5rem}")}function hd(t,e,n){let a=t.slice();return a[15]=e[n],a[17]=n,a}function md(t,e,n){let a=t.slice();return a[18]=e[n],a}function k0(t){let e,n=[],a=new Map,r,i,o,l=t[1],s=d=>d[18].id;for(let d=0;dFirst Day
The day of the week the first year starts on.
`,u=V(),c=T("div"),h=T("select"),y=T("option"),y.textContent="Select a Weekday";for(let _=0;_t[13].call(h)),D(c,"class","setting-item-control"),D(s,"class","setting-item")},m(_,N){J(e,_,N),q(_,n,N),J(a,_,N),q(_,r,N),x[i].m(_,N),q(_,l,N),q(_,s,N),E(s,d),E(s,u),E(s,c),E(c,h),E(h,y);for(let k=0;k{x[P]=null}),Ae(),o=x[i],o?o.p(_,N):(o=x[i]=w[i](_),o.c()),R(o,1),o.m(l.parentNode,l)),N&6){C=_[1].filter(yd);let S;for(S=0;St.name?.length,vd=t=>t.name?.length;function S0(t,e,n){let a,r,i=Se(),{calendar:o}=e,l=o.static.firstWeekDay,s=w=>{(0,Na.setIcon)(w,"fantasy-calendar-grip")},d=(w,x)=>{new Na.ExtraButtonComponent(w).setIcon("trash").onClick(()=>n(1,a=a.filter(B=>B.id!==x.id)))};function u(w){w.preventDefault(),n(3,c=!1)}let c=!1;function h(w){let{items:x,info:{source:B,trigger:C}}=w.detail;n(1,a=x),B===nt.KEYBOARD&&C===ot.DRAG_STOPPED&&n(3,c=!0)}function y(w){let{items:x,info:{source:B}}=w.detail;n(1,a=x),B===nt.POINTER&&n(3,c=!0)}let m=(w,x)=>{new Na.TextComponent(w).setValue(x.name).setPlaceholder("Name").onChange(B=>{x.name=B,i("weekday-update",a),n(1,a),n(0,o)}).inputEl.setAttr("style","width: 100%;")},v=()=>n(0,o.static.overflow=!o.static.overflow,o),p=()=>n(0,o.static.weekdays=[...a,{type:"day",name:null,id:ze(6)}],o);function A(){o.static.firstWeekDay=hn(this),n(0,o)}return t.$$set=w=>{"calendar"in w&&n(0,o=w.calendar)},t.$$.update=()=>{if(t.$$.dirty&1){e:n(1,a=o.static.weekdays)}if(t.$$.dirty&1){e:n(10,l=o.static.firstWeekDay)}if(t.$$.dirty&1){e:n(2,r=o.static.overflow)}if(t.$$.dirty&2){e:i("weekday-update",a)}if(t.$$.dirty&1024){e:i("first-weekday-update",l)}if(t.$$.dirty&4){e:i("overflow-update",r)}},[o,a,r,c,s,d,u,h,y,m,l,v,p,A]}var bd=class extends de{constructor(e){super();fe(this,e,S0,T0,se,{calendar:0},A0)}},wd=bd;var Cd=Fe(require("obsidian"));var Di=Fe(require("obsidian"));function B0(t){we(t,"svelte-1e37bk8",".month.svelte-1e37bk8.svelte-1e37bk8{display:grid;grid-template-columns:1fr 1fr auto auto;align-items:center;justify-content:space-between;gap:1rem;width:100%}.month.svelte-1e37bk8 .icon.svelte-1e37bk8{align-items:center}")}function N0(t){let e,n,a,r,i,o,l,s,d,u,c,h,y;return{c(){e=T("div"),n=T("input"),a=V(),r=T("input"),i=V(),o=T("select"),l=T("option"),l.textContent="Month",s=T("option"),s.textContent="Intercalary",d=V(),u=T("div"),D(n,"type","text"),D(n,"spellcheck","false"),D(n,"placeholder","Name"),tt(n,"width","100%"),D(r,"type","number"),D(r,"spellcheck","false"),D(r,"placeholder","Length"),tt(r,"width","100%"),D(r,"min","0"),l.__value="month",l.value=l.__value,s.__value="intercalary",s.value=s.__value,D(o,"class","dropdown"),t[0]===void 0&&Nt(()=>t[8].call(o)),D(u,"class","icon svelte-1e37bk8"),D(e,"class","month svelte-1e37bk8")},m(m,v){q(m,e,v),E(e,n),vt(n,t[1]),E(e,a),E(e,r),vt(r,t[2]),E(e,i),E(e,o),E(o,l),E(o,s),Bt(o,t[0]),E(e,d),E(e,u),h||(y=[ae(n,"input",t[6]),ae(n,"input",t[4]),ae(r,"input",t[7]),ae(r,"input",t[4]),ae(o,"change",t[8]),ae(o,"input",t[4]),ue(c=t[3].call(null,u))],h=!0)},p(m,[v]){v&2&&n.value!==m[1]&&vt(n,m[1]),v&4&&sn(r.value)!==m[2]&&vt(r,m[2]),v&1&&Bt(o,m[0])},i:Y,o:Y,d(m){m&&O(e),h=!1,_e(y)}}}function M0(t,e,n){let a=Se(),{month:r}=e,i=r.name,o=r.type,l=r.length,s=y=>{new Di.ExtraButtonComponent(y).setIcon("trash").onClick(()=>{a("month-delete")})},d=(0,Di.debounce)(()=>{n(5,r.name=i,r),n(5,r.type=o,r),n(5,r.length=l,r),a("month-update",r)},300,!0);function u(){i=this.value,n(1,i)}function c(){l=sn(this.value),n(2,l)}function h(){o=hn(this),n(0,o)}return t.$$set=y=>{"month"in y&&n(5,r=y.month)},t.$$.update=()=>{if(t.$$.dirty&1){e:n(5,r.type=o,r)}},[o,i,l,s,d,r,u,c,h]}var Dd=class extends de{constructor(e){super();fe(this,e,M0,N0,se,{month:5},B0)}},_d=Dd;function I0(t){we(t,"svelte-xv4vbj",".month.svelte-xv4vbj{display:flex;align-items:center;margin-top:0.5rem;gap:1rem}")}function Ed(t,e,n){let a=t.slice();return a[14]=e[n],a}function O0(t){let e,n=[],a=new Map,r,i,o,l,s=t[2],d=u=>u[14].id;for(let u=0;u{s[h]=null}),Ae(),r=s[a],r?r.p(u,c):(r=s[a]=l[a](u),r.c()),R(r,1),r.m(i.parentNode,i))},i(u){o||(R(e.$$.fragment,u),R(r),o=!0)},o(u){H(e.$$.fragment,u),H(r),o=!1},d(u){Q(e,u),u&&O(n),s[a].d(u),u&&O(i)}}}function L0(t){let e,n;return e=new st({props:{name:"Months",warn:!t[2]?.length,label:"At least one month is required",$$slots:{default:[R0]},$$scope:{ctx:t}}}),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,[r]){let i={};r&4&&(i.warn=!a[2]?.length),r&131079&&(i.$$scope={dirty:r,ctx:a}),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}var ms=300;function P0(t,e,n){let a,r,i=Ke("store");i.subscribe(A=>n(0,r=A));let o=A=>{n(2,a=a.filter(w=>w.id!=A.id)),i.set(r)},l=A=>{(0,Cd.setIcon)(A,"fantasy-calendar-grip")};function s(A){A.preventDefault(),n(1,d=!1)}let d=!1;function u(A){let{items:w,info:{source:x,trigger:B}}=A.detail;n(2,a=w),x===nt.KEYBOARD&&B===ot.DRAG_STOPPED&&n(1,d=!0)}function c(A){let{items:w,info:{source:x}}=A.detail;n(2,a=w),h("month-update",a),x===nt.POINTER&&n(1,d=!0)}let h=Se(),y=()=>{n(0,r.static.months=[...a,{type:"month",name:null,length:null,id:ze(6)}],r),i.set(r)},m=()=>y(),v=A=>o(A),p=()=>{i.set(r)};return t.$$.update=()=>{if(t.$$.dirty&1){e:n(2,a=r.static.months)}},[r,d,a,i,o,l,s,u,c,y,m,v,p]}var kd=class extends de{constructor(e){super();fe(this,e,P0,L0,se,{},I0)}},xd=kd;var Ia=Fe(require("obsidian"));var Ma=Fe(require("obsidian"));async function gr(t,e,n={cta:"Yes",secondary:"No"}){return new Promise((a,r)=>{try{let i=new Fd(t,e,n);i.onClose=()=>{a(i.confirmed)},i.open()}catch{r()}})}var Fd=class extends it{constructor(e,n,a){super(e);this.text=n;this.buttons=a;this.confirmed=!1}async display(){this.contentEl.empty(),this.contentEl.addClass("confirm-modal"),this.contentEl.createEl("p",{text:this.text});let e=this.contentEl.createDiv("fantasy-calendar-confirm-buttons");new Ma.ButtonComponent(e).setButtonText(this.buttons.cta).setCta().onClick(()=>{this.confirmed=!0,this.close()}),new Ma.ButtonComponent(e).setButtonText(this.buttons.secondary).onClick(()=>{this.close()})}onOpen(){this.display()}};async function Td(t){return new Promise((e,n)=>{try{let a=new Sd(t);a.onClose=()=>{e(a.confirmed)},a.open()}catch{n()}})}var Sd=class extends it{constructor(e){super(e.app);this.plugin=e;this.confirmed=!1}async display(){this.contentEl.empty(),this.contentEl.addClass("confirm-modal"),this.contentEl.createEl("p",{text:"Are you sure you want to delete this calendar?"});let e=this.contentEl.createDiv("fantasy-calendar-confirm-buttons-container");e.createEl("a").createEl("small",{cls:"dont-ask",text:"Delete and don't ask again"}).onclick=async()=>{this.confirmed=!0,this.plugin.data.exit.calendar=!0,await this.plugin.saveSettings(),this.close()};let n=e.createDiv("fantasy-calendar-confirm-buttons");new Ma.ButtonComponent(n).setButtonText("Delete").setCta().onClick(()=>{this.confirmed=!0,this.close()}),n.createEl("a").createEl("small",{cls:"dont-ask",text:"Cancel"}).onclick=()=>{this.close()}}onOpen(){this.display()}},ps=class extends it{constructor(e){super(e.app);this.plugin=e;this.confirmed=!1}async display(){this.contentEl.empty(),this.contentEl.addClass("confirm-modal"),this.contentEl.createEl("p",{text:"Additional information is required to save this calendar. Any changes you may have made will be discarded if you exit now."});let e=this.contentEl.createDiv("fantasy-calendar-confirm-buttons-container");e.createEl("a").createEl("small",{cls:"dont-ask",text:"Exit and don't ask again"}).onclick=async()=>{this.confirmed=!0,this.plugin.data.exit.saving=!0,await this.plugin.saveSettings(),this.close()};let n=e.createDiv("fantasy-calendar-confirm-buttons");new Ma.ButtonComponent(n).setButtonText("Exit").setCta().onClick(()=>{this.confirmed=!0,this.close()}),n.createEl("a").createEl("small",{cls:"dont-ask",text:"Keep editing"}).onclick=()=>{this.close()}}onOpen(){this.display()}};async function Bd(t){return new Promise((e,n)=>{try{let a=new Nd(t);a.onClose=()=>{e(a.confirmed)},a.open()}catch{n()}})}var Nd=class extends it{constructor(e){super(e.app);this.plugin=e;this.confirmed=!1}async display(){this.contentEl.empty(),this.contentEl.addClass("confirm-modal"),this.contentEl.createEl("p",{text:"Are you sure you wish to delete this event?"});let e=this.contentEl.createDiv("fantasy-calendar-confirm-buttons-container");e.createEl("a").createEl("small",{cls:"dont-ask",text:"Delete and don't ask again"}).onclick=async()=>{this.confirmed=!0,this.plugin.data.exit.event=!0,await this.plugin.saveSettings(),this.close()};let n=e.createDiv("fantasy-calendar-confirm-buttons");new Ma.ButtonComponent(n).setButtonText("Delete").setCta().onClick(()=>{this.confirmed=!0,this.close()}),n.createEl("a").createEl("small",{cls:"dont-ask",text:"Cancel"}).onclick=()=>{this.close()}}onOpen(){this.display()}};function j0(t){we(t,"svelte-1c4m78g",".weekday.svelte-1c4m78g.svelte-1c4m78g{display:grid;grid-template-columns:auto 1fr auto;align-items:center;justify-content:space-between;gap:1rem}.weekday.svelte-1c4m78g .icon.svelte-1c4m78g{align-items:center}.weekday.svelte-1c4m78g.svelte-1c4m78g{margin-top:0.5rem}")}function Md(t,e,n){let a=t.slice();return a[17]=e[n],a}function Id(t){let e,n,a,r,i,o;e=new Ft({}),e.$on("click",t[15]);let l=[H0,V0],s=[];function d(u,c){return!u[2]||!u[2].length?0:1}return a=d(t,-1),r=s[a]=l[a](t),{c(){$(e.$$.fragment),n=V(),r.c(),i=Ge()},m(u,c){J(e,u,c),q(u,n,c),s[a].m(u,c),q(u,i,c),o=!0},p(u,c){let h=a;a=d(u,c),a===h?s[a].p(u,c):(Ee(),H(s[h],1,1,()=>{s[h]=null}),Ae(),r=s[a],r?r.p(u,c):(r=s[a]=l[a](u),r.c()),R(r,1),r.m(i.parentNode,i))},i(u){o||(R(e.$$.fragment,u),R(r),o=!0)},o(u){H(e.$$.fragment,u),H(r),o=!1},d(u){Q(e,u),u&&O(n),s[a].d(u),u&&O(i)}}}function V0(t){let e,n=[],a=new Map,r,i,o,l=t[2],s=d=>d[17].id;for(let d=0;d{i=null}),Ae())},i(o){r||(R(e.$$.fragment,o),R(i),r=!0)},o(o){H(e.$$.fragment,o),H(i),r=!1},d(o){Q(e,o),o&&O(n),i&&i.d(o),o&&O(a)}}}function G0(t){let e,n;return e=new st({props:{name:"Years",warn:t[1]&&!t[2]?.length,label:"At least one year is required when using custom years",$$slots:{default:[W0]},$$scope:{ctx:t}}}),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,[r]){let i={};r&6&&(i.warn=a[1]&&!a[2]?.length),r&1048591&&(i.$$scope={dirty:r,ctx:a}),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}var gs=300;function U0(t,e,n){let a,r,{calendar:i}=e,o=Ke("store");o.subscribe(B=>n(0,i=B));let l=B=>{(0,Ia.setIcon)(B,"fantasy-calendar-grip")},s=(B,C)=>{new Ia.ExtraButtonComponent(B).setIcon("trash").onClick(()=>n(2,a=a.filter(F=>F.id!==C.id)))},d=(B,C)=>{new Ia.TextComponent(B).setValue(C.name).setPlaceholder("Name").onChange(_=>{C.name=_,A("years-update",a),n(2,a),n(0,i)}).inputEl.setAttr("style","width: 100%;")},{app:u}=e,c=createFragment(B=>(B.createSpan({text:"Create custom years to display instead of incrementing from 1."}),B.createEl("br"),B.createSpan({text:"If on, "}),B.createEl("strong",{text:"only the years added below will be displayed."}),B)),h=async()=>{i.static.useCustomYears&&a?.length&&await gr(u,"The custom years you have created will be removed. Proceed?")&&n(0,i.static.years=[],i),n(0,i.static.useCustomYears=!i.static.useCustomYears,i),o.set(i)};function y(B){B.preventDefault(),n(3,m=!1)}let m=!1;function v(B){let{items:C,info:{source:F,trigger:_}}=B.detail;n(2,a=C),F===nt.KEYBOARD&&_===ot.DRAG_STOPPED&&n(3,m=!0)}function p(B){let{items:C,info:{source:F}}=B.detail;n(2,a=C),F===nt.POINTER&&n(3,m=!0)}let A=Se(),w=()=>h(),x=()=>{n(0,i.static.years=[...a??[],{name:null,id:ze(6),type:"year"}],i),o.set(i)};return t.$$set=B=>{"calendar"in B&&n(0,i=B.calendar),"app"in B&&n(13,u=B.app)},t.$$.update=()=>{if(t.$$.dirty&1){e:n(2,a=i.static.years)}if(t.$$.dirty&1){e:n(1,r=i.static.useCustomYears)}if(t.$$.dirty&4){e:A("years-update",a)}if(t.$$.dirty&2){e:A("use-custom-update",r)}},[i,r,a,m,o,l,s,d,c,h,y,v,p,u,w,x]}var qd=class extends de{constructor(e){super();fe(this,e,U0,G0,se,{calendar:0,app:13},j0)}},Rd=qd;var ys=Fe(require("obsidian"));function z0(t){we(t,"svelte-1ldxqlp",".dot.svelte-1ldxqlp{display:inline-block;height:0.875em;width:0.875em;margin:0 1px}")}function Y0(t){let e,n;return{c(){e=on("svg"),n=on("circle"),D(n,"stroke",t[0]),D(n,"fill",t[0]),D(n,"cx","3"),D(n,"cy","3"),D(n,"r","2"),D(e,"class","dot svelte-1ldxqlp"),D(e,"viewBox","0 0 6 6"),D(e,"xmlns","http://www.w3.org/2000/svg"),D(e,"aria-label",t[1])},m(a,r){q(a,e,r),E(e,n)},p(a,[r]){r&1&&D(n,"stroke",a[0]),r&1&&D(n,"fill",a[0]),r&2&&D(e,"aria-label",a[1])},i:Y,o:Y,d(a){a&&O(e)}}}function Z0(t,e,n){let{color:a}=e,{label:r}=e;return t.$$set=i=>{"color"in i&&n(0,a=i.color),"label"in i&&n(1,r=i.label)},[a,r]}var Ld=class extends de{constructor(e){super();fe(this,e,Z0,Y0,se,{color:0,label:1},z0)}},Pd=Ld;function K0(t){we(t,"svelte-3snb0d",".event.svelte-3snb0d.svelte-3snb0d{display:grid;grid-template-columns:1fr auto;align-items:center;justify-content:space-between;gap:1rem;margin-top:0.5rem}.event-info.svelte-3snb0d.svelte-3snb0d{width:100%}.icons.svelte-3snb0d.svelte-3snb0d{display:flex;align-self:flex-start;justify-self:flex-end;align-items:center}.event.svelte-3snb0d .icon.svelte-3snb0d{align-items:center}.date.svelte-3snb0d.svelte-3snb0d{display:flex;justify-content:flex-start;gap:0.25rem}.clamp.svelte-3snb0d.svelte-3snb0d{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;word-break:keep-all;overflow:hidden;width:calc(var(--event-max-width) * 0.75)}")}function jd(t){let e,n;return e=new Pd({props:{color:t[1].color,label:t[1].name}}),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,r){let i={};r&2&&(i.color=a[1].color),r&2&&(i.label=a[1].name),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}function Q0(t){let e,n,a,r,i=t[0].name+"",o,l,s,d,u,c,h,y=(t[0].description??"")+"",m,v,p,A,w,x,B,C,F,_,N,k=t[1]!=null&&jd(t);return{c(){e=T("div"),n=T("div"),a=T("span"),k&&k.c(),r=V(),o=pe(i),l=V(),s=T("div"),d=T("div"),u=pe(t[2]),c=V(),h=T("span"),m=pe(y),v=V(),p=T("div"),A=T("div"),x=V(),B=T("div"),D(a,"class","setting-item-name"),D(d,"class","date svelte-3snb0d"),D(h,"class","clamp svelte-3snb0d"),D(s,"class","setting-item-description"),D(n,"class","event-info svelte-3snb0d"),D(A,"class","icon svelte-3snb0d"),D(B,"class","icon svelte-3snb0d"),D(p,"class","icons svelte-3snb0d"),D(e,"class","event svelte-3snb0d")},m(P,S){q(P,e,S),E(e,n),E(n,a),k&&k.m(a,null),E(a,r),E(a,o),E(n,l),E(n,s),E(s,d),E(d,u),E(s,c),E(s,h),E(h,m),E(e,v),E(e,p),E(p,A),E(p,x),E(p,B),F=!0,_||(N=[ue(w=t[5].call(null,A)),ae(A,"click",t[6]),ue(C=t[4].call(null,B)),ae(B,"click",t[7])],_=!0)},p(P,[S]){P[1]!=null?k?(k.p(P,S),S&2&&R(k,1)):(k=jd(P),k.c(),R(k,1),k.m(a,r)):k&&(Ee(),H(k,1,1,()=>{k=null}),Ae()),(!F||S&1)&&i!==(i=P[0].name+"")&&be(o,i),(!F||S&4)&&be(u,P[2]),(!F||S&1)&&y!==(y=(P[0].description??"")+"")&&be(m,y)},i(P){F||(R(k),F=!0)},o(P){H(k),F=!1},d(P){P&&O(e),k&&k.d(),_=!1,_e(N)}}}function X0(t,e,n){let a=Se(),r=c=>{new ys.ExtraButtonComponent(c).setIcon("trash").setTooltip("Delete").extraSettingsEl.setAttr("style","margin-left: 0;")},i=c=>{new ys.ExtraButtonComponent(c).setIcon("pencil").setTooltip("Edit")},{event:o}=e,{category:l}=e,{date:s}=e,d=()=>a("edit"),u=()=>a("delete");return t.$$set=c=>{"event"in c&&n(0,o=c.event),"category"in c&&n(1,l=c.category),"date"in c&&n(2,s=c.date)},[o,l,s,a,r,i,d,u]}var Vd=class extends de{constructor(e){super();fe(this,e,X0,Q0,se,{event:0,category:1,date:2},K0)}},Hd=Vd;var gt=Fe(require("obsidian"));var yr=Fe(require("obsidian")),_i=class extends or{constructor(e,n,a){super(e,n.inputEl,a);this.files=[...a],this.text=n,this.createPrompts(),this.inputEl.addEventListener("input",this.getFile.bind(this))}createPrompts(){this.createPrompt([createSpan({cls:"prompt-instruction-command",text:"Type #"}),createSpan({text:"to link heading"})]),this.createPrompt([createSpan({cls:"prompt-instruction-command",text:"Type ^"}),createSpan({text:"to link blocks"})]),this.createPrompt([createSpan({cls:"prompt-instruction-command",text:"Note: "}),createSpan({text:"Blocks must have been created already"})])}getFile(){let e=this.inputEl.value,n=this.app.metadataCache.getFirstLinkpathDest(e.split(/[\^#]/).shift()||"","");n!=this.file&&(this.file=n,this.file&&(this.cache=this.app.metadataCache.getFileCache(this.file)),this.onInputChanged())}getItemText(e){if(e instanceof yr.TFile)return e.path;if(Object.prototype.hasOwnProperty.call(e,"heading"))return e.heading;if(Object.prototype.hasOwnProperty.call(e,"id"))return e.id}onChooseItem(e){e instanceof yr.TFile?(this.text.setValue(e.basename),this.file=e,this.cache=this.app.metadataCache.getFileCache(this.file)):Object.prototype.hasOwnProperty.call(e,"heading")?this.text.setValue(this.file.basename+"#"+e.heading):Object.prototype.hasOwnProperty.call(e,"id")&&this.text.setValue(this.file.basename+"^"+e.id)}selectSuggestion({item:e}){let n;e instanceof yr.TFile?(this.file=e,n=e.basename):Object.prototype.hasOwnProperty.call(e,"heading")?n=this.file.basename+"#"+e.heading:Object.prototype.hasOwnProperty.call(e,"id")&&(n=this.file.basename+"^"+e.id);let a=this.file.path.split("/").slice(0,-1);a.length?this.link=a.join("/")+"/"+n:this.link=n,this.text.setValue(n),this.close(),this.onClose()}renderSuggestion(e,n){let{item:a,match:r}=e||{},i=n.createDiv({cls:"suggestion-content"});if(!a){i.setText(this.emptyStateText),i.parentElement.addClass("is-selected");return}if(a instanceof yr.TFile){let o=a.path.length-a.name.length,l=r.matches.map(s=>createSpan("suggestion-highlight"));for(let s=o;su[0]===s);if(d){let u=l[r.matches.indexOf(d)];i.appendChild(u),u.appendText(a.path.substring(d[0],d[1])),s+=d[1]-d[0]-1;continue}i.appendText(a.path[s])}n.createDiv({cls:"suggestion-note",text:a.path})}else Object.prototype.hasOwnProperty.call(a,"heading")?(i.setText(a.heading),i.prepend(createSpan({cls:"suggestion-flair",text:`H${a.level}`}))):Object.prototype.hasOwnProperty.call(a,"id")&&i.setText(a.id)}get headings(){return this.file?(this.cache||(this.cache=this.app.metadataCache.getFileCache(this.file)),this.cache.headings||[]):[]}get blocks(){return this.file?(this.cache||(this.cache=this.app.metadataCache.getFileCache(this.file)),Object.values(this.cache.blocks||{})||[]):[]}getItems(){let e=this.inputEl.value;return/#/.test(e)?(this.modifyInput=n=>n.split(/#/).pop(),this.headings):/\^/.test(e)?(this.modifyInput=n=>n.split(/\^/).pop(),this.blocks):this.files}};var vs=Fe(Nn());var Oa=class extends it{constructor(e,n,a,r){super(e.app);this.plugin=e;this.calendar=n;this.saved=!1;this.event={name:null,description:null,date:{month:null,day:null,year:null},id:ze(6),note:null,category:null};a&&(this.event=(0,vs.default)(a),this.editing=!0),r&&(this.event.date=(0,vs.default)(r)),this.containerEl.addClass("fantasy-calendar-create-event")}async display(){this.contentEl.empty(),this.titleEl.setText(this.editing?"Edit Event":"New Event"),this.infoEl=this.contentEl.createDiv("event-info"),this.buildInfo(),this.dateEl=this.contentEl.createDiv("event-date"),this.buildDate(),new gt.Setting(this.contentEl).addButton(e=>{e.setButtonText("Save").setCta().onClick(async()=>{if(!this.event.name?.length){new gt.Notice("The event must have a name.");return}if(this.event.end){this.event.end={year:this.event.end.year??this.event.date.year,month:this.event.end.month??this.event.date.month,day:this.event.end.day??this.event.date.day};let n=this.event.date,a=this.event.end,r=Math.max(...this.calendar.static.months.map(s=>s.length)),i=r*this.calendar.static.months.length,o=(n.year-1)*i+(n.month??-1)*r+n.day,l=(a.year-1)*i+(a.month??-1)*r+a.day;if(o>l){let s={...this.event.end};this.event.end={...this.event.date},this.event.date={...s}}}this.saved=!0,this.event.name||(this.event.name="Event"),this.close()})}).addExtraButton(e=>{e.setIcon("cross").setTooltip("Cancel").onClick(()=>this.close())})}buildDate(){this.dateEl.empty(),this.buildStartDate(),this.endEl=this.dateEl.createDiv(),this.event.end?this.buildEndDate():new gt.Setting(this.endEl).setName("Add End Date").addToggle(n=>{n.setValue(!1).onChange(a=>this.buildEndDate())});let e=this.dateEl.createDiv("fantasy-calendar-event-formula");this.event.formulas?.length?this.buildEventFormulas(e):new gt.Setting(e).setName("Add Interval").addToggle(n=>{n.setValue(!1).onChange(a=>this.buildEventFormulas(e))}),this.stringEl=this.dateEl.createDiv("event-date-string setting-item-description"),this.buildDateString()}buildEventFormulas(e){e.empty(),this.event.formulas=this.event.formulas??[{type:"interval",number:1,timespan:"days"}],new gt.Setting(e).setName("Event Interval").addText(n=>{n.setValue(`${this.event.formulas[0].number}`).onChange(a=>{this.event.formulas[0].number=Number(a)}).inputEl.setAttr("type","number")}).addDropdown(n=>{n.addOption("days","days")})}buildStartDate(){this.startEl=this.dateEl.createDiv("fantasy-calendar-event-date"),this.startEl.createSpan({text:"Start:"}),this.startDateEl=this.startEl.createDiv("fantasy-calendar-date-fields"),this.buildDateFields(this.startDateEl,this.event.date)}buildEndDate(){this.event.end=this.event.end??{...this.event.date},this.endEl.empty(),this.endEl.addClass("fantasy-calendar-event-date"),this.endEl.createSpan({text:"End:"}),this.endDateEl=this.endEl.createDiv("fantasy-calendar-date-fields"),this.buildDateFields(this.endDateEl,this.event.end)}buildDateString(){this.stringEl.empty(),this.stringEl.createSpan({text:rn(this.event.date,this.calendar.static.months,this.event.end)})}buildDateFields(e,n=this.event.date){e.empty();let a=e.createDiv("fantasy-calendar-date-field");a.createEl("label",{text:"Day"}),new gt.TextComponent(a).setPlaceholder("Day").setValue(`${n.day}`).onChange(s=>{n.day=Number(s),this.buildDateString()}).inputEl.setAttr("type","number");let i=e.createDiv("fantasy-calendar-date-field");i.createEl("label",{text:"Month"}),new gt.DropdownComponent(i).addOptions(Object.fromEntries([["select","Select Month"],...this.calendar.static.months.map(s=>[s.name,s.name])])).setValue(n.month!=null?this.calendar.static.months[n.month].name:"select").onChange(s=>{s==="select"&&(n.month=null);let d=this.calendar.static.months.find(u=>u.name==s);n.month=this.calendar.static.months.indexOf(d),this.buildDateString()});let o=e.createDiv("fantasy-calendar-date-field");o.createEl("label",{text:"Year"}),new gt.TextComponent(o).setPlaceholder("Year").setValue(`${n.year}`).onChange(s=>{!s||s==null?n.year=void 0:n.year=Number(s),this.buildDateString()}).inputEl.setAttr("type","number")}buildInfo(){this.infoEl.empty(),new gt.Setting(this.infoEl).setName("Note").setDesc("Link the event to a note.").addText(n=>{let a=this.app.vault.getFiles();if(n.setPlaceholder("Path"),this.event.note){let[i,o]=this.event.note.split(/[#^]/),l=this.app.metadataCache.getFirstLinkpathDest(i,"");l&&l instanceof gt.TFile&&n.setValue(`${l.basename}${o?"#":""}${o||""}`)}let r=new _i(this.app,n,[...a]);r.onClose=async()=>{n.inputEl.blur(),this.event.note=r.link,this.tryParse(r.file)}}),new gt.Setting(this.infoEl).setName("Event Name").addText(n=>n.setPlaceholder("Event Name").setValue(this.event.name).onChange(a=>{this.event.name=a}));let e=this.infoEl.createDiv("event-description");e.createEl("label",{text:"Event Description"}),new gt.TextAreaComponent(e).setPlaceholder("Event Description").setValue(this.event.description).onChange(n=>{this.event.description=n}),new gt.Setting(this.infoEl).setName("Event Category").addDropdown(n=>{let a=Object.fromEntries(this.calendar.categories.map(r=>[r.id,r.name]));n.addOptions(a).setValue(this.event.category).onChange(r=>this.event.category=r)})}async tryParse(e){this.event.name=e.basename;let n=this.app.metadataCache.getFileCache(e),{frontmatter:a}=n;if(a){if("fc-display-name"in a&&(this.event.name=a["fc-display-name"]),"fc-date"in a){let{day:r,month:i,year:o}=a["fc-date"];if(r&&(this.event.date.day=r),i){if(typeof i=="string"){let l=this.calendar.static.months?.find(s=>s.name==i)??this.calendar.static.months?.[0];this.event.date.month=this.calendar.static.months?.indexOf(l)}typeof i=="number"&&(this.event.date.month=i-1)}o&&(this.event.date.year=o)}"fc-category"in a&&(this.calendar.categories.find(r=>r.name===a["fc-category"])||this.calendar.categories.push({name:a["fantasy-category"],color:"#808080",id:ze(6)}),this.event.category=this.calendar.categories.find(r=>r.name===a["fc-category"])?.id)}await this.display()}async onOpen(){await this.display()}};var Wd=Fe(require("obsidian"));function J0(t){let e;return{c(){e=pe(t[4])},m(n,a){q(n,e,a)},p(n,a){a&16&&be(e,n[4])},d(n){n&&O(e)}}}function $0(t){let e,n,a,r;return{c(){e=T("div")},m(i,o){q(i,e,o),a||(r=ue(n=t[5].call(null,e)),a=!0)},p:Y,d(i){i&&O(e),a=!1,r()}}}function e1(t){let e,n,a,r,i,o,l,s,d,u,c,h;function y(p,A){if(p[3])return $0;if(p[4])return J0}let m=y(t,-1),v=m&&m(t);return{c(){e=T("div"),n=T("div"),a=T("div"),r=pe(t[0]),i=V(),o=T("div"),l=pe(t[1]),s=V(),d=T("div"),u=T("button"),v&&v.c(),D(a,"class","setting-item-name"),D(o,"class","setting-item-description"),D(n,"class","setting-item-info"),D(u,"aria-label",t[2]),D(d,"class","setting-item-control"),D(e,"class","setting-item")},m(p,A){q(p,e,A),E(e,n),E(n,a),E(a,r),E(n,i),E(n,o),E(o,l),E(e,s),E(e,d),E(d,u),v&&v.m(u,null),c||(h=ae(u,"click",t[6]),c=!0)},p(p,[A]){A&1&&be(r,p[0]),A&2&&be(l,p[1]),m===(m=y(p,A))&&v?v.p(p,A):(v&&v.d(1),v=m&&m(p),v&&(v.c(),v.m(u,null))),A&4&&D(u,"aria-label",p[2])},i:Y,o:Y,d(p){p&&O(e),v&&v.d(),c=!1,h()}}}function t1(t,e,n){let{name:a}=e,{desc:r=""}=e,{label:i=null}=e,{icon:o=null}=e,{text:l=null}=e,s=u=>{(0,Wd.setIcon)(u,o)};function d(u){ce.call(this,t,u)}return t.$$set=u=>{"name"in u&&n(0,a=u.name),"desc"in u&&n(1,r=u.desc),"label"in u&&n(2,i=u.label),"icon"in u&&n(3,o=u.icon),"text"in u&&n(4,l=u.text)},[a,r,i,o,l,s,d]}var Gd=class extends de{constructor(e){super();fe(this,e,t1,e1,se,{name:0,desc:1,label:2,icon:3,text:4})}},Ud=Gd;var qa=Fe(require("obsidian"));function n1(t){we(t,"svelte-1cuaalj",".more.svelte-1cuaalj{text-align:center;padding-top:10px;text-decoration:underline;font-style:italic;cursor:pointer}")}function zd(t,e,n){let a=t.slice();return a[17]=e[n],a}function Yd(t){let e,n,a,r,i,o;return r=new Pt({props:{message:"Create a new event to see it here."}}),{c(){e=T("div"),n=V(),a=T("div"),$(r.$$.fragment),i=V(),D(a,"class","setting-item")},m(l,s){q(l,e,s),q(l,n,s),q(l,a,s),J(r,a,null),E(a,i),o=!0},p:Y,i(l){o||(R(r.$$.fragment,l),o=!0)},o(l){H(r.$$.fragment,l),o=!1},d(l){l&&O(e),l&&O(n),l&&O(a),Q(r)}}}function Zd(t){let e,n;function a(){return t[14](t[17])}function r(){return t[15](t[17])}return e=new Hd({props:{event:t[17],category:t[6](t[17].category),date:rn(t[17].date,t[4],t[17].end)}}),e.$on("edit",a),e.$on("delete",r),{c(){$(e.$$.fragment)},m(i,o){J(e,i,o),n=!0},p(i,o){t=i;let l={};o&8&&(l.event=t[17]),o&8&&(l.category=t[6](t[17].category)),o&24&&(l.date=rn(t[17].date,t[4],t[17].end)),e.$set(l)},i(i){n||(R(e.$$.fragment,i),n=!0)},o(i){H(e.$$.fragment,i),n=!1},d(i){Q(e,i)}}}function Kd(t){let e,n,a;return{c(){e=T("div"),e.innerHTML="Load More Events...",D(e,"class","more svelte-1cuaalj")},m(r,i){q(r,e,i),n||(a=ae(e,"click",t[16]),n=!0)},p:Y,d(r){r&&O(e),n=!1,a()}}}function a1(t){let e,n,a,r,i,o,l,s,d,u,c,h,y;e=new Ud({props:{name:"Delete All Events",icon:"trash"}}),e.$on("click",t[12]),o=new Ft({}),o.$on("click",t[13]);let m=t[3],v=[];for(let x=0;xH(v[x],1,1,()=>{v[x]=null}),A=null;m.length||(A=Yd(t));let w=!t[2]&&t[3].length{A=null}),Ae()):(A=Yd(x),A.c(),R(A,1),A.m(s,null))}!x[2]&&x[3].length{n(3,r=r.filter(C=>C.id!==B.id))},c=B=>o.categories.find(({id:C})=>C==B),h=B=>{let C=new Oa(l,o,B);C.onClose=()=>{if(!!C.saved){if(C.editing){let F=o.events.findIndex(_=>_.id===C.event.id);o.events.splice(F,1,{...C.event})}else o.events.push({...C.event});n(3,r=o.events)}},C.open()},y=async()=>{await gr(l.app,"Are you sure you want to delete all events from this calendar?")&&n(0,o.events=[],o)},m=B=>{B.createDiv();let C;new qa.Setting(B).setName("Filter events").addSearch(F=>{C=F,F.onChange((0,qa.debounce)(_=>{if(!_){n(11,a=o.events.sort((k,P)=>k.date.year!=P.date.year?k.date.year-P.date.year:k.date.month!=P.date.month?k.date.month-P.date.month:k.date.day-P.date.day)),n(2,d=!1);return}let N=[];for(let k of a)(0,qa.prepareFuzzySearch)(_)(k.name)&&N.push(k);n(11,a=N),n(2,d=!0)},250))}).addExtraButton(F=>{F.setIcon("trash").setTooltip("Delete Filtered Events").onClick(async()=>{await gr(l.app,"Are you sure you want to delete the filtered events from this calendar?")&&(n(0,o.events=o.events.filter(_=>!a.includes(_)),o),C.setValue(""))})})},v=()=>y(),p=()=>h(),A=B=>h(B),w=B=>u(B),x=()=>n(1,s++,s);return t.$$set=B=>{"calendar"in B&&n(0,o=B.calendar),"plugin"in B&&n(10,l=B.plugin)},t.$$.update=()=>{if(t.$$.dirty&1){e:n(11,a=o.events.sort((B,C)=>B.date.year!=C.date.year?B.date.year-C.date.year:B.date.month!=C.date.month?B.date.month-C.date.month:B.date.day-C.date.day))}if(t.$$.dirty&2050){e:n(3,r=a.slice(0,100*s))}if(t.$$.dirty&1){e:n(4,i=o.static.months)}},[o,s,d,r,i,u,c,h,y,m,l,a,v,p,A,w,x]}var Qd=class extends de{constructor(e){super();fe(this,e,i1,r1,se,{calendar:0,plugin:10},n1)}},Xd=Qd;var Ci=Fe(require("obsidian"));var $d=Fe(Jd());function o1(t){we(t,"svelte-1ok7o99",".category.svelte-1ok7o99{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:0.5rem;padding-top:0.75rem}")}function ef(t,e,n){let a=t.slice();return a[8]=e[n],a}function s1(t){let e,n=t[1],a=[];for(let r=0;r{s[h]=null}),Ae(),r=s[a],r?r.p(u,c):(r=s[a]=l[a](u),r.c()),R(r,1),r.m(i.parentNode,i))},i(u){o||(R(e.$$.fragment,u),R(r),o=!0)},o(u){H(e.$$.fragment,u),H(r),o=!1},d(u){Q(e,u),u&&O(n),s[a].d(u),u&&O(i)}}}function c1(t){let e,n;return e=new st({props:{name:"Categories",$$slots:{default:[u1]},$$scope:{ctx:t}}}),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,[r]){let i={};r&2051&&(i.$$scope={dirty:r,ctx:a}),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}function d1(t,e,n){let a,r=Se(),{calendar:i}=e,o=(c,h)=>{new Ci.TextComponent(c).setValue(h.name).setPlaceholder("Name").onChange(m=>{h.name=m,r("update",h)}).inputEl.setAttr("style","width: 100%;")},l=(c,h)=>{new Ci.ExtraButtonComponent(c).setIcon("trash").onClick(()=>{n(1,a=a.filter(y=>y.id!==h.id)),r("delete",h)})},s=(c,h)=>{let{target:y}=c;y instanceof HTMLInputElement&&(h.color=y.value,r("update",h))},d=()=>n(0,i.categories=[...a,{id:ze(6),color:(0,$d.default)(),name:"Category"}],i),u=(c,h)=>s(h,c);return t.$$set=c=>{"calendar"in c&&n(0,i=c.calendar)},t.$$.update=()=>{if(t.$$.dirty&1){e:n(1,a=i.categories)}},[i,a,o,l,s,d,u]}var nf=class extends de{constructor(e){super();fe(this,e,d1,c1,se,{calendar:0},o1)}},af=nf;var Ds=Fe(require("obsidian"));var bs="#808080",Ie=["M6.5,16a9.5,9.5 0 1,0 19,0a9.5,9.5 0 1,0 -19,0","M19.79,6C22.25,7.2,25,9.92,25,16s-2.75,8.8-5.21,10a10.59,10.59,0,0,1-3.79.71A10.72,10.72,0,0,1,16,5.28,10.59,10.59,0,0,1,19.79,6Z","M19.43,5.86C21.79,7,24.5,9.7,24.5,16s-2.71,9-5.07,10.14a10.55,10.55,0,0,1-3.43.58A10.72,10.72,0,0,1,16,5.28,10.55,10.55,0,0,1,19.43,5.86Z","M17.87,5.46C20.23,6.34,24,8.88,24,16.17c0,6.85-3.33,9.36-5.69,10.29a11,11,0,0,1-2.31.26A10.72,10.72,0,0,1,16,5.28,10.49,10.49,0,0,1,17.87,5.46Z","M17.79,5.45C20,6.3,23.5,8.77,23.5,15.88c0,7.37-3.75,9.87-5.95,10.71a9.92,9.92,0,0,1-1.55.13A10.72,10.72,0,0,1,16,5.28,10.54,10.54,0,0,1,17.79,5.45Z","M17.35,5.38c1.9.79,5.15,3.25,5.15,10.72,0,7.25-3.06,9.68-5,10.5a10.87,10.87,0,0,1-1.52.12A10.72,10.72,0,0,1,16,5.28,10.1,10.1,0,0,1,17.35,5.38Z","M17.05,5.34c1.6.75,4.45,3.17,4.45,10.79,0,7.39-2.68,9.76-4.3,10.52a11.9,11.9,0,0,1-1.2.07A10.72,10.72,0,0,1,16,5.28,9,9,0,0,1,17.05,5.34Z","M16.85,5.33c1.3.74,3.65,3.12,3.65,10.67s-2.35,9.93-3.65,10.67c-.28,0-.56,0-.85,0A10.72,10.72,0,0,1,16,5.28,7.92,7.92,0,0,1,16.85,5.33Z","M16.46,5.31c.95.78,3,3.34,3,10.69s-2.09,9.91-3,10.69l-.46,0A10.72,10.72,0,0,1,16,5.28Z","M16.29,5.3c.65.8,2.21,3.48,2.21,10.78S17,25.91,16.3,26.7l-.3,0A10.72,10.72,0,0,1,16,5.28Z","M16.13,5.29c.37.89,1.37,3.92,1.37,10.79s-1,9.76-1.36,10.63H16A10.72,10.72,0,0,1,16,5.28Z","M16,5.29A85.5,85.5,0,0,1,16.5,16,85.5,85.5,0,0,1,16,26.71h0A10.72,10.72,0,0,1,16,5.28Z","M16,26.72A10.72,10.72,0,0,1,16,5.28Z","M15.5,16A85.59,85.59,0,0,0,16,26.72,10.72,10.72,0,0,1,16,5.28,85.59,85.59,0,0,0,15.5,16Z","M14.5,16.08c0,6.84,1,9.77,1.36,10.63a10.71,10.71,0,0,1,0-21.42C15.5,6.17,14.5,9.2,14.5,16.08Z","M15.7,26.7a10.7,10.7,0,0,1,0-21.4c-.65.8-2.21,3.47-2.21,10.78S15,25.92,15.7,26.7Z","M15.55,26.7a10.71,10.71,0,0,1,0-21.4c-1,.78-3.05,3.34-3.05,10.7S14.6,25.92,15.55,26.7Z","M15.16,26.68a10.71,10.71,0,0,1,0-21.36C13.85,6.06,11.5,8.43,11.5,16S13.85,25.94,15.16,26.68Z","M14.81,26.65A10.72,10.72,0,0,1,15,5.33c-1.59.76-4.45,3.17-4.45,10.8C10.5,23.53,13.19,25.9,14.81,26.65Z","M14.49,26.6a10.71,10.71,0,0,1,.17-21.23c-1.9.8-5.16,3.24-5.16,10.73C9.5,23.37,12.57,25.79,14.49,26.6Z","M14.46,26.6a10.71,10.71,0,0,1-.24-21.16C12,6.29,8.5,8.76,8.5,15.88,8.5,23.26,12.27,25.76,14.46,26.6Z","M13.72,26.47a10.71,10.71,0,0,1,.43-21C11.78,6.33,8,8.87,8,16.17,8,23,11.35,25.55,13.72,26.47Z","M12.6,26.19a10.73,10.73,0,0,1,0-20.35C10.23,7,7.5,9.67,7.5,16s2.73,9,5.1,10.16Z","M12.23,26a10.7,10.7,0,0,1,0-20C9.77,7.19,7,9.9,7,16S9.77,24.81,12.23,26Z",null,"M19.77,26C22.23,24.81,25,22.1,25,16S22.23,7.19,19.77,6a10.7,10.7,0,0,1,0,20Z","M19.4,26.16C21.77,25,24.5,22.33,24.5,16S21.77,7,19.4,5.84a10.71,10.71,0,0,1,0,20.32Z","M18.28,26.47C20.65,25.55,24,23,24,16.17c0-7.3-3.78-9.84-6.15-10.72a10.71,10.71,0,0,1,.43,21Z","M17.54,26.6c2.19-.84,6-3.34,6-10.72,0-7.12-3.5-9.59-5.72-10.44a10.71,10.71,0,0,1-.24,21.16Z","M17.51,26.6c1.92-.81,5-3.23,5-10.5,0-7.49-3.26-9.93-5.16-10.73a10.71,10.71,0,0,1,.17,21.23Z","M17.19,26.65c1.62-.75,4.31-3.12,4.31-10.52,0-7.63-2.86-10-4.45-10.8a10.72,10.72,0,0,1,.14,21.32Z","M16.84,26.68c1.31-.74,3.66-3.11,3.66-10.68S18.15,6.06,16.84,5.32a10.71,10.71,0,0,1,0,21.36Z","M16.45,26.7c.95-.78,3.05-3.34,3.05-10.7S17.4,6.08,16.45,5.3a10.71,10.71,0,0,1,0,21.4Z","M16.3,26.7c.67-.78,2.2-3.37,2.2-10.62S16.94,6.1,16.29,5.3a10.7,10.7,0,0,1,0,21.4Z","M16.14,26.71c.37-.86,1.36-3.79,1.36-10.63s-1-9.91-1.37-10.79a10.71,10.71,0,0,1,0,21.42Z","M16,26.72A85.59,85.59,0,0,0,16.5,16,85.59,85.59,0,0,0,16,5.28a10.72,10.72,0,0,1,0,21.44Z","M16,26.72V5.28a10.72,10.72,0,0,1,0,21.44Z","M16,26.72h0A85.59,85.59,0,0,1,15.5,16,85.59,85.59,0,0,1,16,5.28h0a10.72,10.72,0,0,1,0,21.44Z","M16,26.72h-.14c-.37-.86-1.36-3.79-1.36-10.63s1-9.91,1.37-10.79H16a10.72,10.72,0,0,1,0,21.44Z","M16,26.72l-.3,0c-.67-.78-2.2-3.37-2.2-10.62s1.56-10,2.21-10.78l.29,0a10.72,10.72,0,0,1,0,21.44Z","M16,26.72l-.45,0c-1-.78-3.05-3.34-3.05-10.7s2.1-9.92,3.05-10.7l.45,0a10.72,10.72,0,0,1,0,21.44Z","M16,26.72c-.28,0-.56,0-.84,0C13.85,25.94,11.5,23.57,11.5,16s2.35-9.94,3.66-10.68c.28,0,.56,0,.84,0a10.72,10.72,0,0,1,0,21.44Z","M16,26.72a11.7,11.7,0,0,1-1.19-.07c-1.62-.75-4.31-3.12-4.31-10.52,0-7.63,2.86-10,4.45-10.8.35,0,.7,0,1.05,0a10.72,10.72,0,0,1,0,21.44Z","M16,26.72a10.85,10.85,0,0,1-1.51-.12c-1.92-.81-5-3.23-5-10.5,0-7.49,3.26-9.93,5.16-10.73A11.9,11.9,0,0,1,16,5.28a10.72,10.72,0,0,1,0,21.44Z","M16,26.72a11.16,11.16,0,0,1-1.54-.12c-2.19-.84-6-3.34-6-10.72,0-7.12,3.5-9.59,5.72-10.44A10.43,10.43,0,0,1,16,5.28a10.72,10.72,0,0,1,0,21.44Z","M16,26.72a10.69,10.69,0,0,1-2.28-.25C11.35,25.55,8,23,8,16.17c0-7.3,3.78-9.84,6.15-10.72A11.26,11.26,0,0,1,16,5.28a10.72,10.72,0,0,1,0,21.44Z","M16,26.72a10.63,10.63,0,0,1-3.4-.56C10.23,25,7.5,22.33,7.5,16s2.73-9,5.1-10.16A10.72,10.72,0,1,1,16,26.72Z","M16,26.72a10.52,10.52,0,0,1-3.77-.7C9.77,24.81,7,22.1,7,16S9.77,7.19,12.23,6A10.52,10.52,0,0,1,16,5.28a10.72,10.72,0,0,1,0,21.44Z"],rf={"New Moon":Ie[0],"New Moon Fading":Ie[1],"New Moon Faded":Ie[2],"Waxing Crescent Rising":Ie[3],"Waxing Crescent Risen":Ie[4],"Waxing Crescent":Ie[6],"Waxing Crescent Fading":Ie[7],"Waxing Crescent Faded":Ie[8],"First Quarter Rising":Ie[9],"First Quarter Risen":Ie[10],"First Quarter":Ie[12],"First Quarter Fading":Ie[13],"First Quarter Faded":Ie[14],"Waxing Gibbous Rising":Ie[15],"Waxing Gibbous Risen":Ie[16],"Waxing Gibbous":Ie[18],"Waxing Gibbous Fading":Ie[19],"Waxing Gibbous Faded":Ie[20],"Full Moon Rising":Ie[21],"Full Moon Risen":Ie[22],"Full Moon":Ie[24],"Full Moon Fading":Ie[25],"Full Moon Faded":Ie[26],"Waning Gibbous Rising":Ie[27],"Waning Gibbous Risen":Ie[28],"Waning Gibbous":Ie[30],"Waning Gibbous Fading":Ie[31],"Waning Gibbous Faded":Ie[32],"Last Quarter Rising":Ie[33],"Last Quarter Risen":Ie[34],"Last Quarter":Ie[36],"Last Quarter Fading":Ie[37],"Last Quarter Faded":Ie[38],"Waning Crescent Rising":Ie[39],"Waning Crescent Risen":Ie[40],"Waning Crescent":Ie[42],"Waning Crescent Fading":Ie[43],"Waning Crescent Faded":Ie[44],"New Moon Rising":Ie[45],"New Moon Risen":Ie[46]},of={4:["New Moon","First Quarter","Full Moon","Last Quarter"],8:["New Moon","Waxing Crescent","First Quarter","Waxing Gibbous","Full Moon","Waning Gibbous","Last Quarter","Waning Crescent"],16:["New Moon","New Moon Fading","Waxing Crescent","Waxing Crescent Fading","First Quarter","First Quarter Fading","Waxing Gibbous","Waxing Gibbous Fading","Full Moon","Full Moon Fading","Waning Gibbous","Waning Gibbous Fading","Last Quarter","Last Quarter Fading","Waning Crescent","Waning Crescent Fading"],24:["New Moon","New Moon Fading","Waxing Crescent Rising","Waxing Crescent","Waxing Crescent Fading","First Quarter Rising","First Quarter","First Quarter Fading","Waxing Gibbous Rising","Waxing Gibbous","Waxing Gibbous Fading","Full Moon Rising","Full Moon","Full Moon Fading","Waning Gibbous Rising","Waning Gibbous","Waning Gibbous Fading","Last Quarter Rising","Last Quarter","Last Quarter Fading","Waning Crescent Rising","Waning Crescent","Waning Crescent Fading","New Moon Rising"],40:["New Moon","New Moon Fading","New Moon Faded","Waxing Crescent Rising","Waxing Crescent Risen","Waxing Crescent","Waxing Crescent Fading","Waxing Crescent Faded","First Quarter Rising","First Quarter Risen","First Quarter","First Quarter Fading","First Quarter Faded","Waxing Gibbous Rising","Waxing Gibbous Risen","Waxing Gibbous","Waxing Gibbous Fading","Waxing Gibbous Faded","Full Moon Rising","Full Moon Risen","Full Moon","Full Moon Fading","Full Moon Faded","Waning Gibbous Rising","Waning Gibbous Risen","Waning Gibbous","Waning Gibbous Fading","Waning Gibbous Faded","Last Quarter Rising","Last Quarter Risen","Last Quarter","Last Quarter Fading","Last Quarter Faded","Waning Crescent Rising","Waning Crescent Risen","Waning Crescent","Waning Crescent Fading","Waning Crescent Faded","New Moon Rising","New Moon Risen"]};function f1(t){let e,n,a,r,i,o,l,s;return{c(){e=on("svg"),n=on("circle"),r=on("path"),o=on("circle"),D(n,"cx","16"),D(n,"cy","16"),D(n,"r","10"),D(n,"fill",a=t[0].faceColor),D(r,"class","shadow"),D(r,"fill",i=t[0].shadowColor),D(r,"d",t[4]),D(o,"cx","16"),D(o,"cy","16"),D(o,"r","10"),D(o,"fill","none"),D(o,"stroke","#000"),D(o,"stroke-width","2px"),D(e,"class","moon"),D(e,"id",l=t[0].id),D(e,"preserveAspectRatio","xMidYMid"),D(e,"aria-label",s=t[1]?`${t[0].name}
${t[3]}`:null),D(e,"width",t[2]),D(e,"height",t[2]),D(e,"viewBox","0 0 32 32")},m(d,u){q(d,e,u),E(e,n),E(e,r),E(e,o)},p(d,[u]){u&1&&a!==(a=d[0].faceColor)&&D(n,"fill",a),u&1&&i!==(i=d[0].shadowColor)&&D(r,"fill",i),u&16&&D(r,"d",d[4]),u&1&&l!==(l=d[0].id)&&D(e,"id",l),u&11&&s!==(s=d[1]?`${d[0].name}
${d[3]}`:null)&&D(e,"aria-label",s),u&4&&D(e,"width",d[2]),u&4&&D(e,"height",d[2])},i:Y,o:Y,d(d){d&&O(e)}}}function h1(t,e,n){let a,{moon:r}=e,{label:i=!0}=e,{size:o=28}=e,{phase:l}=e;return t.$$set=s=>{"moon"in s&&n(0,r=s.moon),"label"in s&&n(1,i=s.label),"size"in s&&n(2,o=s.size),"phase"in s&&n(3,l=s.phase)},t.$$.update=()=>{if(t.$$.dirty&8){e:n(4,a=rf[l])}},[r,i,o,l,a]}var sf=class extends de{constructor(e){super();fe(this,e,h1,f1,se,{moon:0,label:1,size:2,phase:3})}},jn=sf;var yn=Fe(require("obsidian"));var ws=class extends it{constructor(e,n,a){super(e);this.calendar=n;this.saved=!1;this.moon={name:null,cycle:null,offset:null,faceColor:"#fff",shadowColor:"#000",id:ze(6)};a&&(this.moon={...a},this.editing=!0),this.containerEl.addClass("fantasy-calendar-create-moon")}async display(){this.contentEl.empty(),this.contentEl.createEl("h3",{text:this.editing?"Edit Moon":"New Moon"}),this.infoEl=this.contentEl.createDiv("moon-info"),this.buildInfo(),new yn.Setting(this.contentEl).addButton(e=>{e.setButtonText("Save").setCta().onClick(()=>{if(!this.moon.name?.length){new yn.Notice("The moon must have a name.");return}if(!this.moon.cycle){new yn.Notice("The moon must have a positive cycle.");return}this.saved=!0,this.close()})}).addExtraButton(e=>{e.setIcon("cross").setTooltip("Cancel").onClick(()=>this.close())})}buildInfo(){this.infoEl.empty(),new yn.Setting(this.infoEl).setName("Name").addText(e=>{e.setValue(this.moon.name).onChange(n=>{this.moon.name=n})}),new yn.Setting(this.infoEl).setName("Cycle").setDesc("How many days it takes for the moon to complete a full cycle.").addText(e=>{e.inputEl.setAttr("type","number"),e.setValue(`${this.moon.cycle}`).onChange(n=>{isNaN(Number(n))||(this.moon.cycle=Number(n))})}),new yn.Setting(this.infoEl).setName("Offset").setDesc("Shift the starting moon phase by a number of days.").addText(e=>{e.inputEl.setAttr("type","number"),e.setValue(`${this.moon.offset}`).onChange(n=>{isNaN(Number(n))||(this.moon.offset=Number(n))})}),new yn.Setting(this.infoEl).setName("Face Color").addText(e=>{e.inputEl.setAttr("type","color"),e.setValue(this.moon.faceColor).onChange(n=>{this.moon.faceColor=n})}),new yn.Setting(this.infoEl).setName("Shadow Color").addText(e=>{e.inputEl.setAttr("type","color"),e.setValue(this.moon.shadowColor).onChange(n=>{this.moon.shadowColor=n})})}async onOpen(){await this.display()}};function m1(t){we(t,"svelte-v24qmo",".moon.svelte-v24qmo{display:grid;grid-template-columns:1fr auto;align-items:center;justify-content:space-between;gap:1rem;margin-top:0.5rem}.setting-item-name.svelte-v24qmo{display:flex;align-items:center}.icons.svelte-v24qmo{display:flex;align-self:flex-start;justify-self:flex-end;align-items:center}.icon.svelte-v24qmo{align-items:center}")}function lf(t,e,n){let a=t.slice();return a[13]=e[n],a}function p1(t){let e,n,a=t[1],r=[];for(let o=0;oH(r[o],1,1,()=>{r[o]=null});return{c(){e=T("div");for(let o=0;o{u[v]=null}),Ae(),o=u[i],o?o.p(h,y):(o=u[i]=d[i](h),o.c()),R(o,1),o.m(l.parentNode,l))},i(h){s||(R(e.$$.fragment,h),R(a.$$.fragment,h),R(o),s=!0)},o(h){H(e.$$.fragment,h),H(a.$$.fragment,h),H(o),s=!1},d(h){Q(e,h),h&&O(n),Q(a,h),h&&O(r),u[i].d(h),h&&O(l)}}}function v1(t){let e,n;return e=new st({props:{name:"Moons",$$slots:{default:[y1]},$$scope:{ctx:t}}}),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,[r]){let i={};r&65543&&(i.$$scope={dirty:r,ctx:a}),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}function b1(t,e,n){let a,r,{calendar:i}=e,{plugin:o}=e,l=Se(),s=p=>{let A=new Ds.ExtraButtonComponent(p).setIcon("trash").setTooltip("Delete")},d=p=>{new Ds.ExtraButtonComponent(p).setIcon("pencil").setTooltip("Edit")},u=p=>{n(0,i.static.moons=i.static.moons.filter(A=>A.id!==p.id),i)},c=p=>{let A=new ws(o.app,i,p);A.onClose=()=>{if(!!A.saved){if(A.editing){let w=i.static.moons.findIndex(x=>x.id===A.moon.id);i.static.moons.splice(w,1,{...A.moon})}else i.static.moons.push({...A.moon});n(1,a=i.static.moons)}},A.open()},h=()=>n(0,i.static.displayMoons=!i.static.displayMoons,i),y=()=>c(),m=p=>c(p),v=p=>u(p);return t.$$set=p=>{"calendar"in p&&n(0,i=p.calendar),"plugin"in p&&n(7,o=p.plugin)},t.$$.update=()=>{if(t.$$.dirty&1){e:n(1,a=i.static.moons)}if(t.$$.dirty&1){e:n(2,r=i.static.displayMoons)}},[i,a,r,s,d,u,c,o,h,y,m,v]}var cf=class extends de{constructor(e){super();fe(this,e,b1,v1,se,{calendar:0,plugin:7},m1)}},df=cf;var _s=Fe(require("obsidian"));function w1(t){we(t,"svelte-1rh93fc",".leapday.svelte-1rh93fc.svelte-1rh93fc{display:grid;grid-template-columns:1fr auto;align-items:center;justify-content:space-between;gap:1rem;margin-top:0.5rem}.leapday-info.svelte-1rh93fc.svelte-1rh93fc{width:100%}.icons.svelte-1rh93fc.svelte-1rh93fc{display:flex;align-self:center;justify-self:flex-end;align-items:center}.leapday.svelte-1rh93fc .icon.svelte-1rh93fc{align-items:center}")}function D1(t){let e,n,a,r=t[0].name+"",i,o,l,s,d,u,c,h,y,m,v,p,A;return{c(){e=T("div"),n=T("div"),a=T("span"),i=pe(r),o=V(),l=T("div"),s=pe(t[1]),d=V(),u=T("div"),c=T("div"),y=V(),m=T("div"),D(a,"class","setting-item-name"),D(l,"class","setting-item-description"),D(n,"class","leapday-info svelte-1rh93fc"),D(c,"class","icon svelte-1rh93fc"),D(m,"class","icon svelte-1rh93fc"),D(u,"class","icons svelte-1rh93fc"),D(e,"class","leapday svelte-1rh93fc")},m(w,x){q(w,e,x),E(e,n),E(n,a),E(a,i),E(n,o),E(n,l),E(l,s),E(e,d),E(e,u),E(u,c),E(u,y),E(u,m),p||(A=[ue(h=t[4].call(null,c)),ae(c,"click",t[5]),ue(v=t[3].call(null,m)),ae(m,"click",t[6])],p=!0)},p(w,[x]){x&1&&r!==(r=w[0].name+"")&&be(i,r),x&2&&be(s,w[1])},i:Y,o:Y,d(w){w&&O(e),p=!1,_e(A)}}}function _1(t,e,n){let a,r=Se(),i=u=>{new _s.ExtraButtonComponent(u).setIcon("trash").setTooltip("Delete").extraSettingsEl.setAttr("style","margin-left: 0;")},o=u=>{new _s.ExtraButtonComponent(u).setIcon("pencil").setTooltip("Edit")},{leapday:l}=e,s=()=>r("edit"),d=()=>r("delete");return t.$$set=u=>{"leapday"in u&&n(0,l=u.leapday)},t.$$.update=()=>{if(t.$$.dirty&1){e:n(1,a=Ua(l))}},[l,a,r,i,o,s,d]}var ff=class extends de{constructor(e){super();fe(this,e,_1,D1,se,{leapday:0},w1)}},hf=ff;var Af=Fe(Nn()),Ra=Fe(require("obsidian"));var wr=Fe(require("obsidian"));function C1(t){we(t,"svelte-n1tx0h",".intercalary-settings.svelte-n1tx0h{display:flex;justify-content:space-around}.buttons.svelte-n1tx0h{display:flex;justify-content:flex-end}")}function mf(t,e,n){let a=t.slice();return a[24]=e[n],a}function pf(t,e,n){let a=t.slice();return a[27]=e[n],a}function gf(t,e,n){let a=t.slice();return a[30]=e[n],a[32]=n,a}function yf(t){let e,n=(t[30].name??"")+"",a,r,i,o;return{c(){e=T("option"),a=pe(n),r=V(),e.__value=i=t[32],e.value=e.__value,e.selected=o=t[32]==t[0].timespan},m(l,s){q(l,e,s),E(e,a),E(e,r)},p(l,s){s[0]&2&&n!==(n=(l[30].name??"")+"")&&be(a,n),s[0]&1&&o!==(o=l[32]==l[0].timespan)&&(e.selected=o)},d(l){l&&O(e)}}}function vf(t){let e,n,a,r,i,o,l,s,d,u,c,h,y,m,v,p,A=t[3],w=[];for(let x=0;xt[18].call(c)),D(s,"class","after intercalary-field"),D(e,"class","setting-item intercalary-settings svelte-n1tx0h")},m(x,B){q(x,e,B),E(e,n),E(n,a),E(n,i),E(n,o),E(e,l),E(e,s),E(s,d),E(s,u),E(s,c),E(c,h),E(h,y);for(let C=0;CMonth
The leap day will be added to this month.
`,o=V(),l=T("div"),s=T("select");for(let N=0;Nt[15].call(s)),D(l,"class","setting-item-control"),D(r,"class","setting-item"),D(e,"class","fantasy-calendar-nested-settings"),D(v,"class","buttons svelte-n1tx0h")},m(N,k){q(N,e,k),J(n,e,null),E(e,a),E(e,r),E(r,i),E(r,o),E(r,l),E(l,s);for(let P=0;P{let W=new Cs(d,u.interval.length>0,S);W.onClose=()=>{!W.saved||!W.condition.interval||(S?u.interval.splice(u.interval.indexOf(S),1,W.condition):u.interval.push(W.condition),n(0,u))},W.open()},y=S=>{let W=[`${S.interval}`];return S.exclusive&&W.push("(Exclusive)"),S.ignore&&W.push(" - Ignoring Offset"),W.join(" ")},m=S=>{new wr.ExtraButtonComponent(S).setIcon("pencil")},v=S=>{new wr.ExtraButtonComponent(S).setIcon("trash")},p=S=>{new wr.ButtonComponent(S).setButtonText("Cancel").setCta()},A=S=>n(0,u.name=S.detail,u);function w(){u.timespan=hn(this),n(0,u)}let x=S=>n(0,u.intercalary=!u.intercalary,u),B=()=>n(0,u.numbered=!u.numbered,u);function C(){u.after=hn(this),n(0,u)}let F=S=>n(0,u.offset=S.detail,u),_=()=>h(),N=S=>h(S),k=S=>n(0,u.interval=u.interval.filter(W=>W!=S),u),P=()=>s("cancel");return t.$$set=S=>{"app"in S&&n(11,d=S.app),"leapDay"in S&&n(0,u=S.leapDay),"calendar"in S&&n(12,c=S.calendar)},t.$$.update=()=>{if(t.$$.dirty[0]&1){e:n(4,a=u.intercalary)}if(t.$$.dirty[0]&4096){e:n(1,r=c.static.months)}if(t.$$.dirty[0]&3){e:n(13,i=r[u.timespan])}if(t.$$.dirty[0]&8192){e:n(3,o=i.length?[...Array(i.length).keys()].map(S=>S+1):[])}if(t.$$.dirty[0]&1){e:n(2,l=u.interval.sort((S,W)=>S.interval-W.interval))}},[u,r,l,o,a,s,h,y,m,v,p,d,c,i,A,w,x,B,C,F,_,N,k,P]}var Df=class extends de{constructor(e){super();fe(this,e,k1,A1,se,{app:11,leapDay:0,calendar:12},C1,[-1,-1])}},_f=Df;function x1(t){let e,n,a,r,i,o;return e=new kn({props:{type:"number",name:"Interval",desc:"How often the condition applies.",value:t[0].interval,warn:!t[0].interval}}),e.$on("blur",t[2]),a=new Mt({props:{disabled:!t[1],name:"Exclusive",desc:"If true, the leap day will not apply when the year meets the condition.\\n\\nRequires the leap day to have at least one non-exclusive condition.",value:t[0].exclusive}}),a.$on("click",t[3]),i=new Mt({props:{name:"Ignore Offset",desc:"The condition will ignore the leap day's offset when checking to apply.",value:t[0].ignore}}),i.$on("click",t[4]),{c(){$(e.$$.fragment),n=V(),$(a.$$.fragment),r=V(),$(i.$$.fragment)},m(l,s){J(e,l,s),q(l,n,s),J(a,l,s),q(l,r,s),J(i,l,s),o=!0},p(l,[s]){let d={};s&1&&(d.value=l[0].interval),s&1&&(d.warn=!l[0].interval),e.$set(d);let u={};s&2&&(u.disabled=!l[1]),s&1&&(u.value=l[0].exclusive),a.$set(u);let c={};s&1&&(c.value=l[0].ignore),i.$set(c)},i(l){o||(R(e.$$.fragment,l),R(a.$$.fragment,l),R(i.$$.fragment,l),o=!0)},o(l){H(e.$$.fragment,l),H(a.$$.fragment,l),H(i.$$.fragment,l),o=!1},d(l){Q(e,l),l&&O(n),Q(a,l),l&&O(r),Q(i,l)}}}function F1(t,e,n){let{canBeExclusive:a}=e,{condition:r}=e,i=s=>n(0,r.interval=s.detail,r),o=()=>a?n(0,r.exclusive=!r.exclusive,r):null,l=()=>n(0,r.ignore=!r.ignore,r);return t.$$set=s=>{"canBeExclusive"in s&&n(1,a=s.canBeExclusive),"condition"in s&&n(0,r=s.condition)},[r,a,i,o,l]}var Cf=class extends de{constructor(e){super();fe(this,e,F1,x1,se,{canBeExclusive:1,condition:0})}},Ef=Cf;var Es=class extends it{constructor(e,n,a){super(e);this.calendar=n;this.saved=!0;this.leapday={id:ze(6),name:"Leap Day",interval:[],intercalary:!1,timespan:0,offset:0,type:"leapday"};a&&(this.leapday=(0,Af.default)(a),this.editing=!0),this.containerEl.addClasses(["fantasy-calendar-create-leapday"])}async display(){this.titleEl.setText(this.editing?"Edit Leap Day":"New Leap Day"),new _f({target:this.contentEl,props:{leapDay:this.leapday,calendar:this.calendar,app:this.app}}).$on("cancel",()=>{this.saved=!1,this.close()})}async onOpen(){await this.display()}},Cs=class extends it{constructor(e,n,a){super(e);this.app=e;this.canBeExclusive=n;this.saved=!0;this.editing=!1;this.condition={interval:null,exclusive:!1,ignore:!1};a&&(this.condition={...a},this.editing=!0)}onOpen(){this.containerEl.addClasses(["fantasy-calendar-nested-settings"]),this.contentEl.empty(),this.titleEl.setText("Leap Day Condition"),new Ef({target:this.contentEl,props:{canBeExclusive:this.canBeExclusive,condition:this.condition}}),this.buttonsEl=this.contentEl.createDiv("fantasy-context-buttons setting-item"),new Ra.ButtonComponent(this.buttonsEl).setCta().setButtonText("Cancel").onClick(()=>{this.saved=!1,this.close()})}old(){new Ra.Setting(this.contentEl).setName("Interval").setDesc("How often the condition applies.").addText(e=>{e.inputEl.setAttr("type","number"),e.setValue(`${this.condition.interval}`).onChange(n=>{isNaN(Number(n))||(this.condition.interval=Number(n))})}),new Ra.Setting(this.contentEl).setName("Exclusive").setDesc(`If true, the leap day will not apply when the year meets the condition.
Requires the leap day to have at least one non-exclusive condition.`).addToggle(e=>e.setDisabled(!this.canBeExclusive).setValue(this.condition.exclusive).onChange(n=>this.condition.exclusive=n)),new Ra.Setting(this.contentEl).setName("Ignore Offset").setDesc("The condition will ignore the leap day's offset when checking to apply.").addToggle(e=>e.setValue(this.condition.ignore).onChange(n=>this.condition.ignore=n))}};function kf(t,e,n){let a=t.slice();return a[10]=e[n],a}function T1(t){let e,n,a=t[1],r=[];for(let o=0;oH(r[o],1,1,()=>{r[o]=null});return{c(){e=T("div");for(let o=0;o{s[y]=null}),Ae(),r=s[a],r?r.p(u,c):(r=s[a]=l[a](u),r.c()),R(r,1),r.m(i.parentNode,i))},i(u){o||(R(e.$$.fragment,u),R(r),o=!0)},o(u){H(e.$$.fragment,u),H(r),o=!1},d(u){Q(e,u),u&&O(n),s[a].d(u),u&&O(i)}}}function N1(t){let e,n;return e=new st({props:{name:"Leap Days",$$slots:{default:[B1]},$$scope:{ctx:t}}}),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,[r]){let i={};r&8195&&(i.$$scope={dirty:r,ctx:a}),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}function M1(t,e,n){let a,{calendar:r}=e,{plugin:i}=e;Ke("store").subscribe(y=>n(4,r=y));let l=r.static.months?.filter(y=>y.name?.length).length==0,s=y=>{n(1,a=a.filter(m=>m.id!==y.id))},d=y=>{let m=new Es(i.app,r,y);m.onClose=()=>{if(!!m.saved&&!!m.leapday.interval.length&&!!m.leapday.name){if(m.editing){let v=r.static.leapDays.findIndex(p=>p.id===m.leapday.id);r.static.leapDays.splice(v,1,{...m.leapday})}else r.static.leapDays.push({...m.leapday});n(1,a=r.static.leapDays)}},m.open()},u=()=>d(),c=y=>d(y),h=y=>s(y);return t.$$set=y=>{"calendar"in y&&n(4,r=y.calendar),"plugin"in y&&n(5,i=y.plugin)},t.$$.update=()=>{if(t.$$.dirty&16){e:n(1,a=r.static.leapDays)}if(t.$$.dirty&16){e:n(0,l=r.static.months?.filter(y=>y.name?.length).length==0)}},[l,a,s,d,r,i,u,c,h]}var Ff=class extends de{constructor(e){super();fe(this,e,M1,N1,se,{calendar:4,plugin:5})}},Tf=Ff;var Bf=Fe(require("obsidian"));var I1=Fe(Nn());var Sf=Fe(require("obsidian"));function O1(t){we(t,"svelte-190iu8i","body:not(.is-mobile) .fantasy-calendar-creator.svelte-190iu8i.svelte-190iu8i{position:absolute;top:var(--top, 0);height:100%}body:not(.is-mobile) .fantasy-calendar-creator-inner.svelte-190iu8i.svelte-190iu8i{position:absolute;top:0;left:-2px;bottom:0;overflow:auto;display:grid;grid-template-rows:auto 1fr}.fantasy-calendar-creator.svelte-190iu8i.svelte-190iu8i,.fantasy-calendar-creator.svelte-190iu8i .fantasy-calendar-creator-inner.svelte-190iu8i,.fantasy-calendar-creator.svelte-190iu8i .fantasy-creator-app.svelte-190iu8i{background-color:var(--creator-background-color)}body.is-mobile .fantasy-calendar-creator.svelte-190iu8i.svelte-190iu8i,body.is-mobile .fantasy-calendar-creator.svelte-190iu8i .fantasy-creator-app.svelte-190iu8i{padding:0px 10px;width:100%}.fantasy-creator-app.svelte-190iu8i.svelte-190iu8i{overflow:auto;height:100%}.fantasy-calendar-creator-header.svelte-190iu8i.svelte-190iu8i{margin:0}.top-nav.svelte-190iu8i.svelte-190iu8i{position:sticky;top:0;padding:10px 0px;background-color:inherit;z-index:3}.icons.svelte-190iu8i.svelte-190iu8i{display:flex;justify-content:space-between}.icons.svelte-190iu8i .left.svelte-190iu8i{display:flex;align-items:center}.check.svelte-190iu8i.svelte-190iu8i{display:flex;gap:0.25rem;align-items:center}.additional.svelte-190iu8i.svelte-190iu8i{color:var(--text-faint)}.save.svelte-190iu8i.svelte-190iu8i{color:var(--text-error)}.save.can-save.svelte-190iu8i.svelte-190iu8i{color:var(--interactive-success)}.additional.can-save.svelte-190iu8i.svelte-190iu8i{color:var(--text-normal)}.back.svelte-190iu8i.svelte-190iu8i{width:min-content}.back.svelte-190iu8i .clickable-icon{margin-left:0}")}function Mf(t){let e,n,a,r,i,o,l,s,d,u,c,h,y,m,v,p,A,w,x,B,C,F,_,N,k,P,S,W,K,le,oe,me,X,z,he,De,ie,Ce,xe,et,je;function yt(Be,Ve){return Be[7]?R1:q1}let Tt=yt(t,-1),$e=Tt(t);return B=new Sc({props:{calendar:t[0],plugin:t[2]}}),F=new wd({props:{calendar:t[0]}}),N=new xd({}),P=new Rd({props:{calendar:t[0],app:t[2].app}}),W=new qo({}),le=new Xd({props:{plugin:t[2],calendar:t[0]}}),me=new af({props:{calendar:t[0]}}),z=new df({props:{plugin:t[2],calendar:t[0]}}),De=new Tf({props:{calendar:t[0],plugin:t[2]}}),{c(){e=T("div"),n=T("div"),a=T("div"),r=T("div"),i=T("div"),s=V(),d=T("div"),$e.c(),u=V(),c=T("div"),y=V(),m=T("h3"),m.textContent="Calendar Creator",v=V(),p=T("div"),A=T("div"),x=V(),$(B.$$.fragment),C=V(),$(F.$$.fragment),_=V(),$(N.$$.fragment),k=V(),$(P.$$.fragment),S=V(),$(W.$$.fragment),K=V(),$(le.$$.fragment),oe=V(),$(me.$$.fragment),X=V(),$(z.$$.fragment),he=V(),$(De.$$.fragment),D(i,"class","back svelte-190iu8i"),D(i,"aria-label",o=t[7]?"Save and exit":"Exit without saving"),D(d,"class","check svelte-190iu8i"),D(r,"class","left svelte-190iu8i"),D(c,"class","cancel"),D(a,"class","icons svelte-190iu8i"),D(m,"class","fantasy-calendar-creator-header svelte-190iu8i"),D(n,"class","top-nav svelte-190iu8i"),D(p,"class","fantasy-creator-app svelte-190iu8i"),D(e,"class","inherit fantasy-calendar-creator-inner svelte-190iu8i"),D(e,"style",ie=t[9]?"":`width: ${t[1]+4}px;`)},m(Be,Ve){q(Be,e,Ve),E(e,n),E(n,a),E(a,r),E(r,i),E(r,s),E(r,d),$e.m(d,null),E(a,u),E(a,c),E(n,y),E(n,m),E(e,v),E(e,p),E(p,A),E(p,x),J(B,p,null),E(p,C),J(F,p,null),E(p,_),J(N,p,null),E(p,k),J(P,p,null),E(p,S),J(W,p,null),E(p,K),J(le,p,null),E(p,oe),J(me,p,null),E(p,X),J(z,p,null),E(p,he),J(De,p,null),xe=!0,et||(je=[ue(l=t[11].call(null,i)),ae(i,"click",t[17]),ue(h=t[12].call(null,c)),ae(c,"click",t[18]),ue(w=t[13].call(null,A)),ae(e,"introend",t[19]),ae(e,"outroend",t[20])],et=!0)},p(Be,Ve){t=Be,(!xe||Ve&128&&o!==(o=t[7]?"Save and exit":"Exit without saving"))&&D(i,"aria-label",o),Tt===(Tt=yt(t,Ve))&&$e?$e.p(t,Ve):($e.d(1),$e=Tt(t),$e&&($e.c(),$e.m(d,null)));let jt={};Ve&1&&(jt.calendar=t[0]),Ve&4&&(jt.plugin=t[2]),B.$set(jt);let Ut={};Ve&1&&(Ut.calendar=t[0]),F.$set(Ut);let St={};Ve&1&&(St.calendar=t[0]),Ve&4&&(St.app=t[2].app),P.$set(St);let Ot={};Ve&4&&(Ot.plugin=t[2]),Ve&1&&(Ot.calendar=t[0]),le.$set(Ot);let vn={};Ve&1&&(vn.calendar=t[0]),me.$set(vn);let zt={};Ve&4&&(zt.plugin=t[2]),Ve&1&&(zt.calendar=t[0]),z.$set(zt);let nn={};Ve&1&&(nn.calendar=t[0]),Ve&4&&(nn.plugin=t[2]),De.$set(nn),(!xe||Ve&2&&ie!==(ie=t[9]?"":`width: ${t[1]+4}px;`))&&D(e,"style",ie)},i(Be){xe||(R(B.$$.fragment,Be),R(F.$$.fragment,Be),R(N.$$.fragment,Be),R(P.$$.fragment,Be),R(W.$$.fragment,Be),R(le.$$.fragment,Be),R(me.$$.fragment,Be),R(z.$$.fragment,Be),R(De.$$.fragment,Be),Nt(()=>{Ce||(Ce=Bo(e,t[16],{x:t[1]*1.5,opacity:1},!0)),Ce.run(1)}),xe=!0)},o(Be){H(B.$$.fragment,Be),H(F.$$.fragment,Be),H(N.$$.fragment,Be),H(P.$$.fragment,Be),H(W.$$.fragment,Be),H(le.$$.fragment,Be),H(me.$$.fragment,Be),H(z.$$.fragment,Be),H(De.$$.fragment,Be),Ce||(Ce=Bo(e,t[16],{x:t[1]*1.5,opacity:1},!1)),Ce.run(0),xe=!1},d(Be){Be&&O(e),$e.d(),Q(B),Q(F),Q(N),Q(P),Q(W),Q(le),Q(me),Q(z),Q(De),Be&&Ce&&Ce.end(),et=!1,_e(je)}}}function q1(t){let e,n,a,r,i,o;return{c(){e=T("div"),a=V(),r=T("span"),r.textContent=`Additional information is required before
saving`,D(e,"class","save svelte-190iu8i"),D(e,"aria-label",t[8]),D(r,"class","additional svelte-190iu8i")},m(l,s){q(l,e,s),q(l,a,s),q(l,r,s),i||(o=ue(n=t[15].call(null,e)),i=!0)},p(l,s){s&256&&D(e,"aria-label",l[8])},d(l){l&&O(e),l&&O(a),l&&O(r),i=!1,o()}}}function R1(t){let e,n,a,r,i,o;return{c(){e=T("div"),a=V(),r=T("span"),r.textContent="All good! Exit to save calendar",D(e,"class","save can-save svelte-190iu8i"),D(e,"aria-label",t[8]),D(r,"class","additional can-save svelte-190iu8i")},m(l,s){q(l,e,s),q(l,a,s),q(l,r,s),i||(o=ue(n=t[15].call(null,e)),i=!0)},p(l,s){s&256&&D(e,"aria-label",l[8])},d(l){l&&O(e),l&&O(a),l&&O(r),i=!1,o()}}}function L1(t){let e,n,a=t[5]&&Mf(t);return{c(){e=T("div"),a&&a.c(),D(e,"class","fantasy-calendar-creator svelte-190iu8i"),tt(e,"--creator-background-color",t[3]),tt(e,"--top",t[4]+"px")},m(r,i){q(r,e,i),a&&a.m(e,null),n=!0},p(r,[i]){r[5]?a?(a.p(r,i),i&32&&R(a,1)):(a=Mf(r),a.c(),R(a,1),a.m(e,null)):a&&(Ee(),H(a,1,1,()=>{a=null}),Ae()),(!n||i&8)&&tt(e,"--creator-background-color",r[3]),(!n||i&16)&&tt(e,"--top",r[4]+"px")},i(r){n||(R(a),n=!0)},o(r){H(a),n=!1},d(r){r&&O(e),a&&a.d()}}}function P1(t,e,n){let a,r,i=Fn.Platform.isMobile,o=i;Yn(()=>{n(5,o=!0)});let l=Se(),{width:s}=e,{calendar:d}=e,{plugin:u}=e,{color:c=null}=e,{top:h}=e,y=_a(d);y.subscribe(k=>{n(0,d=k)}),Zn("store",y);let m=k=>{new Fn.ExtraButtonComponent(k).setIcon("left-arrow-with-tail")},v=k=>{new Fn.ExtraButtonComponent(k).setIcon("cross").setTooltip("Exit without saving")},p=k=>{let P=k.createDiv("fantasy-calendar-apply-preset");new Fn.Setting(P).setName("Apply Preset").setDesc("Apply a common fantasy calendar as a preset.").addButton(S=>{S.setCta().setButtonText("Choose Preset").onClick(()=>{let W=new No(u.app);W.onClose=()=>{if(!!W.saved){if(n(0,d=(0,Nf.default)(W.preset)),d?.name=="Gregorian Calendar"){let K=new Date;n(0,d.current={year:K.getFullYear(),month:K.getMonth(),day:K.getDate()},d)}y.set(d)}},W.open()})})},A=!1,w=()=>{if(!r&&!u.data.exit.saving){let k=new ps(u);k.onClose=()=>{k.confirmed&&n(5,o=!1),i&&l("exit",{saved:A,calendar:d})},k.open()}else n(6,A=!0),n(5,o=!1)},x=k=>{r?(0,Fn.setIcon)(k,"checkmark"):mn(k)},B=(k,P)=>i?null:ku(k,P),C=()=>{w()},F=()=>n(5,o=!1),_=()=>l("flown"),N=()=>l("exit",{saved:A,calendar:d});return t.$$set=k=>{"width"in k&&n(1,s=k.width),"calendar"in k&&n(0,d=k.calendar),"plugin"in k&&n(2,u=k.plugin),"color"in k&&n(3,c=k.color),"top"in k&&n(4,h=k.top)},t.$$.update=()=>{if(t.$$.dirty&1){e:n(8,a=Fu(d))}if(t.$$.dirty&1){e:n(7,r=Tu(d))}},[d,s,u,c,h,o,A,r,a,i,l,m,v,p,w,x,B,C,F,_,N]}var If=class extends de{constructor(e){super();fe(this,e,P1,L1,se,{width:1,calendar:0,plugin:2,color:3,top:4},O1)}},As=If;var Of;(function(a){a.none="None",a.monthly="Monthly",a.yearly="Yearly"})(Of||(Of={}));(0,Ue.addIcon)("fantasy-calendar-grip",'');(0,Ue.addIcon)("fantasy-calendar-warning",'');var Ei=class extends Ue.PluginSettingTab{constructor(e){super(e.app,e);this.plugin=e}get data(){return this.plugin.data}async display(){this.containerEl.empty(),this.containerEl.createEl("h2",{text:"Fantasy Calendars"}),this.containerEl.addClass("fantasy-calendar-settings"),this.contentEl=this.containerEl.createDiv("fantasy-calendar-settings-content"),this.buildInfo(this.contentEl.createDiv("fantasy-calendar-nested-settings")),this.calendarsEl=this.contentEl.createEl("details",{cls:"fantasy-calendar-nested-settings",attr:{...this.data.settingsToggleState.calendars?{open:"open"}:{}}}),this.buildCalendars(),this.buildEvents(this.contentEl.createEl("details",{cls:"fantasy-calendar-nested-settings",attr:{...this.data.settingsToggleState.events?{open:"open"}:{}}})),this.buildAdvanced(this.contentEl.createEl("details",{cls:"fantasy-calendar-nested-settings",attr:{...this.data.settingsToggleState.advanced?{open:"open"}:{}}}))}buildInfo(e){e.empty(),new Ue.Setting(e).setName(`Reset "Don't Ask Again" Prompts`).setDesc(`All confirmations set to "Don't Ask Again" will be reset.`).addButton(n=>{n.setIcon("reset").onClick(async()=>{this.plugin.data.exit={saving:!1,event:!1,calendar:!1},await this.plugin.saveSettings()})}),new Ue.Setting(e).setName(createFragment(n=>{let a=n.createSpan("fantasy-calendar-warning");(0,Ue.setIcon)(a.createSpan("fantasy-calendar-warning"),"fantasy-calendar-warning"),a.createSpan({text:"Default Config Directory"})})).setDesc(createFragment(n=>{n.createSpan({text:"Please back up your data before changing this setting. Hidden directories must be manually entered."}),n.createEl("br"),n.createSpan({text:"Current directory: "});let a=this.data.configDirectory??this.app.vault.configDir;n.createEl("code",{text:a})})).addText(async n=>{let a=this.app.vault.getAllLoadedFiles().filter(i=>i instanceof Ue.TFolder);n.setPlaceholder(this.data.configDirectory??this.app.vault.configDir);let r=new sr(this.app,n,[...a]);r.onClose=async()=>{n.inputEl.value?await this.app.vault.adapter.exists(n.inputEl.value)||(this.data.configDirectory=n.inputEl.value,await this.plugin.saveSettings()):this.data.configDirectory=null},n.inputEl.onblur=async()=>{if(!n.inputEl.value)return;let i=await this.app.vault.adapter.exists(n.inputEl.value);this.data.configDirectory=n.inputEl.value,await this.plugin.saveSettings(),this.display()}}).addExtraButton(n=>{n.setTooltip("Reset to Default").setIcon("reset").onClick(async()=>{this.data.configDirectory=null,await this.plugin.saveSettings(),this.display()})})}buildCalendars(){this.calendarsEl.empty(),this.calendarsEl.ontoggle=()=>{this.data.settingsToggleState.calendars=this.calendarsEl.open};let e=this.calendarsEl.createEl("summary");new Ue.Setting(e).setHeading().setName("Calendar Management"),e.createDiv("collapser").createDiv("handle"),new Ue.Setting(this.calendarsEl).setName("Show Intercalary Months Separately").setDesc("Intercalary months will appear a distinct months in the calendar.").addToggle(n=>{n.setValue(this.data.showIntercalary).onChange(async a=>{this.data.showIntercalary=a,await this.plugin.saveCalendar()})}),new Ue.Setting(this.calendarsEl).setName("Default Calendar").setDesc("Views will open to this calendar by default.").addDropdown(n=>{n.addOption("none","None");for(let a of this.data.calendars)n.addOption(a.id,a.name);n.setValue(this.plugin.data.defaultCalendar),n.onChange(async a=>{if(a==="none"){this.plugin.data.defaultCalendar=null,await this.plugin.saveSettings();return}this.plugin.data.defaultCalendar=a,await this.plugin.saveSettings(),this.plugin.watcher.start()})}),new Ue.Setting(this.calendarsEl).setName("Import Calendar").setDesc(createFragment(n=>{n.createSpan({text:"Import calendar from "}),n.createEl("a",{href:"https://app.fantasy-calendar.com",text:"Fantasy Calendar",cls:"external-link"})})).addButton(n=>{let a=createEl("input",{attr:{type:"file",name:"merge",accept:".json",multiple:!0,style:"display: none;"}});a.onchange=async()=>{let{files:r}=a;if(!!r.length){try{let i=[];for(let l of Array.from(r))i.push(JSON.parse(await l.text()));let o=Pr.import(i);for(let l of o)await this.plugin.addNewCalendar(l);this.display()}catch(i){new Ue.Notice(`There was an error while importing the calendar${r.length==1?"":"s"}.`),console.error(i)}a.value=null}},n.setButtonText("Choose Files"),n.buttonEl.addClass("calendar-file-upload"),n.buttonEl.appendChild(a),n.onClick(()=>a.click())}),new Ue.Setting(this.calendarsEl).setName("Create New Calendar").addButton(n=>n.setTooltip("Launch Calendar Creator").setIcon("plus-with-circle").onClick(async()=>{let a=await this.launchCalendarCreator();a&&(await this.plugin.addNewCalendar(a),this.display())})),this.existingEl=this.calendarsEl.createDiv("existing-calendars"),this.showCalendars()}showCalendars(){if(this.existingEl.empty(),!this.data.calendars.length){this.existingEl.createSpan({text:"No calendars created! Create a calendar to see it here."});return}for(let e of this.data.calendars)new Ue.Setting(this.existingEl).setName(e.name).setDesc(e.description??"").addExtraButton(n=>{n.setIcon("pencil").onClick(async()=>{let a=await this.launchCalendarCreator(e);a&&(this.plugin.addNewCalendar(a,e),await this.plugin.saveCalendar(),this.display())})}).addExtraButton(n=>{n.setIcon("trash").onClick(async()=>{!this.plugin.data.exit.calendar&&!await Td(this.plugin)||(this.plugin.data.calendars=this.plugin.data.calendars.filter(a=>a.id!=e.id),e.id==this.data.defaultCalendar&&(this.plugin.data.defaultCalendar=this.plugin.data.calendars[0]?.id,this.plugin.watcher.start()),await this.plugin.saveCalendar(),this.display())})})}buildEvents(e){e.empty(),e.ontoggle=()=>{this.data.settingsToggleState.events=e.open};let n=e.createEl("summary");new Ue.Setting(n).setHeading().setName("Events"),n.createDiv("collapser").createDiv("handle"),new Ue.Setting(e).setName("Add Events to Default Calendar").setDesc(createFragment(a=>{a.createSpan({text:"Add events found in notes to the default calendar if the "}),a.createEl("code",{text:"fc-calendar"}),a.createSpan({text:" frontmatter tag is not present."})})).addToggle(a=>{a.setValue(this.data.addToDefaultIfMissing).onChange(async r=>{this.data.addToDefaultIfMissing=r,await this.plugin.saveSettings(),this.plugin.watcher.start()})}),new Ue.Setting(e).setName("Display Event Previews").setDesc("Use the core Note Preview plugin to display event notes when hovered.").addToggle(a=>{a.setValue(this.data.eventPreview).onChange(async r=>{this.data.eventPreview=r,await this.plugin.saveSettings()})}),new Ue.Setting(e).setName("Write Event Data to Frontmatter").setDesc("This setting is temporarily disabled.").addToggle(a=>{a.setValue(!1).setDisabled(!0).onChange(async r=>{this.data.eventFrontmatter=r,await this.plugin.saveSettings()})}),new Ue.Setting(e).setName("Parse Note Titles for Event Dates").setDesc("The plugin will parse note titles for event dates.").addToggle(a=>{a.setValue(this.data.parseDates).onChange(async r=>{this.data.parseDates=r,await this.plugin.saveSettings(),this.plugin.watcher.start()})}),new Ue.Setting(e).setName("Date Format").setClass(this.data.dailyNotes?"daily-notes":"no-daily-notes").setDesc(createFragment(a=>{if(a.createSpan({text:"Event dates will be parsed using this format."}),a.createSpan({text:"Only the "}),a.createEl("code",{text:"Y"}),a.createSpan({text:", "}),a.createEl("code",{text:"M"}),a.createSpan({text:", and "}),a.createEl("code",{text:"D"}),a.createEl("a",{text:"tokens",href:"https://momentjs.com/docs/#/displaying/format/",cls:"external-link"}),a.createSpan({text:" are supported."}),["Y","M","D"].some(r=>!this.data.dateFormat.includes(r))){a.createEl("br");let r=a.createSpan({cls:"fantasy-calendar-warning date-format"});(0,Ue.setIcon)(r.createSpan("fantasy-calendar-warning"),"fantasy-calendar-warning");let i=["Y","M","D"].filter(o=>!this.data.dateFormat.includes(o));r.createSpan({text:` Date format is missing: ${i.join(", ").replace(/, ([^,]*)$/," and $1")}`})}})).addText(a=>{a.setDisabled(this.data.dailyNotes).setValue(this.plugin.format).onChange(async r=>{this.data.dateFormat=r,await this.plugin.saveSettings()}),a.inputEl.onblur=()=>this.buildEvents(e)}).addExtraButton(a=>{if(!this.plugin.canUseDailyNotes){a.extraSettingsEl.detach();return}this.data.dailyNotes?a.setIcon("checkmark").setTooltip("Unlink from Daily Notes").onClick(()=>{this.data.dailyNotes=!1,this.buildEvents(e)}):a.setIcon("sync").setTooltip("Link with Daily Notes").onClick(()=>{this.data.dailyNotes=!0,this.buildEvents(e)})})}buildAdvanced(e){e.empty(),e.ontoggle=()=>{this.data.settingsToggleState.advanced=e.open};let n=e.createEl("summary");new Ue.Setting(n).setHeading().setName("Advanced"),n.createDiv("collapser").createDiv("handle"),new Ue.Setting(e).setName("Show Event Debug Messages").setDesc(createFragment(a=>{a.createSpan({text:"The plugin will show debug messages when events are added, deleted or updated by the file watcher."})})).addToggle(a=>{a.setValue(this.data.debug).onChange(async r=>{this.data.debug=r,await this.plugin.saveSettings()})})}launchCalendarCreator(e=lr){let n=(0,La.default)(e);if(Ue.Platform.isMobile){let a=new qf(this.plugin,n);return new Promise((r,i)=>{try{a.onClose=()=>{a.saved&&(e=(0,La.default)(a.calendar),r(e)),r()},a.open()}catch{i()}})}else return this.containerEl.addClass("fantasy-calendar-creator-open"),new Promise(a=>{let r=getComputedStyle(this.containerEl.closest(".modal")).backgroundColor,i=new As({target:this.containerEl,props:{calendar:n,plugin:this.plugin,width:this.contentEl.clientWidth,color:r,top:this.containerEl.scrollTop}}),o=new ResizeObserver(()=>{i.$set({width:this.contentEl.clientWidth})});o.observe(this.contentEl),i.$on("exit",l=>{this.containerEl.removeClass("fantasy-calendar-creator-open"),i.$destroy(),l.detail.saved&&(e=(0,La.default)(l.detail.calendar),o.disconnect(),a(e)),a()})})}},qf=class extends it{constructor(e,n){super(e.app);this.plugin=e;this.saved=!1;this.calendar=(0,La.default)(n)}onOpen(){this.contentEl.setAttr("style","background-color: inherit; padding-top: 0px;");let e=new As({target:this.contentEl,props:{calendar:this.calendar,plugin:this.plugin,width:this.contentEl.clientWidth,top:0}});e.$on("exit",n=>{n.detail.saved&&(this.calendar=(0,La.default)(n.detail.calendar),this.saved=!0),this.close(),e.$destroy()})}};var qe=Fe(require("obsidian"));var Dr=Fe(require("obsidian"));var Rf=class{constructor(e,n,a){this.month=e;this.number=n;this.leapday=a;this.shouldUpdate=!1}get calendar(){return this.month.calendar}get date(){return{day:this.number,month:this.month.number,year:this.year}}get events(){return(!this._events||!this._events.length||this.shouldUpdate)&&(this._events=this.month.getEventsOnDay(this.date)),this._events}get longDate(){return{day:this.number,month:this.month.name,year:this.year}}get daysBefore(){return this.month.daysBefore+this.number-1-this.month.leapDays.filter(e=>e.numbered&&e.after!i.intercalary||i.intercalary&&i.numbered).length).keys()].map(i=>new Rf(this,i+1,this.leapDays.find(o=>o.after==i)))}get id(){return this.data.id}get index(){return this.calendar.data.months.indexOf(this.data)}get name(){return this.data.name}get length(){return this.days.length}get firstWeekday(){return this.calendar.data.overflow?this.days[0].weekday:0}get lastWeekday(){return this.days[this.days.length-1].weekday}get type(){return this.data.type}getEventsOnDay(e){return(!this.events||!this.events.length||this.shouldUpdate)&&(this.days.forEach(n=>n.shouldUpdate=!0),this.events=this.calendar.getEventsForMonth(this),this.shouldUpdate=!1),this.events.filter(n=>{if((!n.date.year||n.date.year==e.year)&&(!n.date.month||n.date.month==e.month)&&n.date.day==e.day)return!0;if(!n.end&&!n.formulas?.length)return!1;let a={...n.date},r={...n.end??{}};a.year||(a.year=r.year=this.year),a.month||(a.month=r.month=this.number);let i=Number(this.calendar.hash(e));if(Number(this.calendar.hash(a))<=i&&i<=Number(this.calendar.hash(r)??1/0))if(n.formulas?.length){let o=this.calendar.totalDaysBeforeYear(a.year)+this.calendar.daysBeforeMonth(a.month,a.year,!0)+a.day;return(this.calendar.totalDaysBeforeYear(e.year)+this.calendar.daysBeforeMonth(e.month,e.year,!0)+e.day-o)%n.formulas[0].number==0}else return!0;return!1})}getMoonsForDay(e){return(!this.moons||!this.moons.length||this.shouldUpdateMoons)&&(this.moons=this.calendar.getMoonsForMonth(this)),this.moons[e.day-1]}},Pa=class extends Dr.Events{constructor(e,n){super();this.calendar=e;this.plugin=n;this._cache=new Map;this.displayed={year:null,month:null,day:null};this.viewing={year:null,month:null,day:null};this.displayed={...this.current},this.update(this.calendar),this.plugin.registerEvent(this.plugin.app.workspace.on("fantasy-calendars-event-update",a=>{if(!a.has(this.calendar.id))return;let r=a.get(this.calendar.id);for(let i of r)!this._cache.has(i)||this.refreshYear(i)}))}addEvent(e){let n=e.date.year,a=e.date.month;this.refreshMonth(a,n)}refreshMonth(e,n){!this._cache.has(n)||!this._cache.get(n).months.has(e)||(this._cache.get(n).shouldUpdate=!0,this._cache.get(n).months.forEach(a=>a.shouldUpdate=!0),(n==this.displayed.year&&e==this.displayed.month||n==this.viewing.year&&e==this.viewing.month)&&this.trigger("month-update"))}refreshYear(e){!this._cache.has(e)||(this._cache.get(e).shouldUpdate=!0,this._cache.get(e).months.forEach(n=>n.shouldUpdate=!0),(e==this.displayed.year||e==this.viewing.year)&&this.trigger("month-update"))}getDayForDate(e){return this.getMonth(e.month,e.year).days[e.day-1]}getEventsForMonth(e){let{year:n,number:a}=e;if(this._cache.has(n)||this._cache.set(n,{events:[],shouldUpdate:!0,months:new Map}),this._cache.get(n).shouldUpdate){let i=this.calendar.events.filter(o=>{let l={...o.date},s={...o.end};return l.year==n||l.year==null?!0:l.year>n||!s&&!o.formulas?.length&&l.year=n||o.formulas?.length))});this._cache.set(n,{months:this._cache.get(n).months,events:i,shouldUpdate:!1})}return this._cache.get(n).events.filter(i=>{let o={...i.date},l={...i.end};return o.month==null||(o.year==n||o.year==null)&&o.month==a?!0:o.year>n||o.year==n&&o.month>a||!l&&!i.formulas?.length&&(o.month!=a||o.year=n&&l.month>=a)))})}getNameForYear(e){if(!this.data.useCustomYears)return`${e}`;if(this.data.useCustomYears&&e-1>=0&&e<=this.data.years?.length)return this.data.years[e-1].name}get displayWeeks(){return this.calendar.displayWeeks}getMonthsForYear(e){return this._cache.has(e)||this._cache.set(e,{events:[],shouldUpdate:!0,months:new Map(this.data.months.map((n,a)=>[a,new Ai(n,a,e,this)]))}),this._cache.get(e).months.size!=this.data.months.length&&this._cache.set(e,{...this._cache.get(e),months:new Map(this.data.months.map((n,a)=>[a,new Ai(n,a,e,this)]))}),Array.from(this._cache.get(e).months.values())}hash(e){if(e.year==null||e.month==null||e.day==null)return null;let n=`${this.data.months.length}`.length,a=`${e.month}`.padStart(n,"0"),r=`${this.maxDays}`.length,i=`${e.day}`.padStart(r,"0");return`${e.year}${a}${i}`}update(e){this.calendar=e??this.calendar,this.maxDays=Math.max(...this.data.months.map(n=>n.length)),this.standardMonths=this.data.months.filter(n=>n.type!="intercalary"),this.calendar?.current||(this.calendar.current={day:null,month:null,year:null}),Dn(this.calendar?.current.year,this.calendar)||(this.calendar.current.year=1),wn(this.calendar?.current.month,this.calendar)||(this.calendar.current.month=0),bn(this.calendar?.current.day,this.calendar)||(this.calendar.current.day=1),this.trigger("month-update"),this.trigger("day-update")}get categories(){return this.calendar.categories}get data(){return this.calendar.static}get current(){return this.calendar.current}get leapdays(){return this.data.leapDays??[]}get currentDate(){return rn(this.current,this.data.months)}get displayedDate(){return rn(this.displayed,this.data.months)}get viewedDate(){return rn(this.viewing,this.data.months)}reset(){this.displayed={...this.current},this.viewing={...this.current},this.trigger("month-update"),this.trigger("day-update")}setCurrentMonth(e){this.displayed.month=e,this.trigger("month-update")}goToNextDay(){let e=this.getDayForDate(this.viewing);this.viewing.day+=1,this.viewing.day>e.month.days.length&&(this.goToNext(),this.viewing.month=this.displayed.month,this.viewing.year=this.displayed.year,this.viewing.day=1),this.trigger("day-update")}goToNextCurrentDay(){this.current.day+=1;let e=this.getMonth(this.current.month,this.current.year);this.current.day>=e.days.length&&(this.current.day=1,this.current.month+=1,this.current.month>=this.data.months.length&&(this.current.month=0,this.current.year+=1)),this.trigger("day-update")}get nextMonthIndex(){return Mn(this.displayed.month+1,this.data.months.length)}get nextMonth(){return this.getMonth(this.displayed.month+1,this.displayed.year)}canGoToNextYear(e=this.displayed.year){return!this.data.useCustomYears||ethis.displayed.month){if(this.displayed.year==1){new Dr.Notice("This is the earliest year.");return}this.goToPreviousYear()}this.setCurrentMonth(e)}goToPreviousDay(){this.viewing.day-=1,this.viewing.day<1&&(this.goToPrevious(),this.viewing.month=this.displayed.month,this.viewing.year=this.displayed.year,this.viewing.day=this.currentMonth.days.length),this.trigger("day-update")}goToPreviousYear(){this.displayed.year-=1,this.trigger("year-update")}get weekdays(){return this.data.weekdays}get currentMonth(){return this.getMonth(this.displayed.month,this.displayed.year)}testLeapDay(e,n){return e.interval.sort((a,r)=>a.interval-r.interval).some(({interval:a,exclusive:r},i,o)=>{if(r&&i==0)return(n-e.offset)%a!=0;if(!r)return o[i+1]&&o[i+1].exclusive?(n-e.offset)%a==0&&(n-e.offset)%o[i+1].interval!=0:(n-e.offset)%a==0})}leapDaysForYear(e){return this.leapdays.filter(n=>this.testLeapDay(n,e))}leapDaysForMonth(e,n=this.displayed.year){return this.leapdays.filter(a=>a.timespan!=e?!1:this.testLeapDay(a,n))}getMonth(e,n,a=0){let r=this.data.months,i=Mn(e,r.length);if(e<0&&(n-=1),n==0)return null;if(e>=r.length&&(n+=1),this._cache.has(n)){if(this._cache.get(n).months.has(i))return this._cache.get(n).months.get(i)}else this._cache.set(n,{events:[],shouldUpdate:!0,months:new Map});if(r[i].type=="intercalary"&&a!=0)return this.getMonth(e+a,n,a);let o=new Ai(r[i],i,n,this);return this._cache.get(n).months.set(i,o),this._cache.set(n,this._cache.get(n)),o}getPaddedDaysForMonth(e){let n=e.days,a=[],r=this.getMonth(e.index-1,this.displayed.year,-1);e.firstWeekday>0&&e.type=="month"&&(a=r!=null?r.days.slice(-e.firstWeekday):Array(e.firstWeekday).fill(null));let i=[],o=this.getMonth(e.index+1,this.displayed.year,1);return e.lastWeekdaye.type==="month").reduce((e,n)=>e+n.length,0)}daysBeforeMonth(e,n,a=!1){return!e||e==0?0:this.data.months.slice(0,e).filter(r=>a?!0:r.type=="month").map((r,i)=>{let o=this.leapDaysForMonth(i,n);return r.length+o.filter(l=>!l.intercalary).length}).reduce((r,i)=>r+i,0)}dayNumberForDate(e){return this.daysBeforeMonth(e.month,e.year,!0)+e.day}get firstWeekday(){return this.data.firstWeekDay}get leapDaysBefore(){return this.displayed.year==1?0:this.leapDaysBeforeYear(this.displayed.year-1)}leapDaysBeforeYear(e){if(e==1)return 0;let n=e-1,a=0;for(let{interval:r,offset:i}of this.leapdays.filter(o=>!o.intercalary)){let o=0;for(let l=0;l!c.exclusive).map(c=>Math.floor((n+(c.ignore?0:i))/c.interval)).reduce((c,h)=>c+h,0),u=Math.floor((n+(s.ignore?0:i))/s.interval);s.exclusive?(o-=u,o+=d):(o+=u,o-=d)}a+=o}return a}get totalDaysBefore(){return this.totalDaysBeforeYear(this.displayed.year)}totalDaysBeforeYear(e,n=!1){return e<1?0:Math.abs(e-1)*this.data.months.filter(a=>n||a.type=="month").reduce((a,r)=>a+r.length,0)+this.leapDaysBeforeYear(e)}firstDayOfYear(e=this.displayed.year){return this.data.overflow?e==1?this.firstWeekday:Mn(this.totalDaysBeforeYear(e)%this.data.weekdays.length+this.firstWeekday+(this.data.offset??0),this.data.weekdays.length):0}get moons(){return this.data.moons}getMoonsForMonth(e){let n=[];for(let a of e.days){let r=this.totalDaysBeforeYear(e.year,!0)+this.daysBeforeMonth(e.number,e.year,!0)+a.number-1,i=[];for(let o of this.moons){let{offset:l,cycle:s}=o,d=24,u=(r-l)/s,h=(u-Math.floor(u))*d%d,y=of[d];i.push([o,y[Mn(Math.round(h),y.length)]])}n.push(i)}return n}};var ja=Fe(require("obsidian"));var ki=Fe(require("obsidian"));function j1(t){we(t,"svelte-1e1nyi2",".flag.svelte-1e1nyi2.svelte-1e1nyi2{cursor:pointer;position:relative;padding-left:0.125rem;text-align:left;width:100%;background-color:var(--hex-alpha);border-left:2px solid var(--color)}.flag-content.svelte-1e1nyi2.svelte-1e1nyi2{display:flex;gap:0.25rem;align-items:flex-start;justify-content:space-between}.day-view.svelte-1e1nyi2 .flag-content.svelte-1e1nyi2{justify-content:space-between}.clamp.svelte-1e1nyi2.svelte-1e1nyi2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:keep-all;overflow:hidden;text-overflow:ellipsis}.note.svelte-1e1nyi2.svelte-1e1nyi2{display:flex;align-self:center}.multi.svelte-1e1nyi2.svelte-1e1nyi2{flex-shrink:0;overflow:visible;width:unset}.multi.svelte-1e1nyi2 .clamp.svelte-1e1nyi2{-webkit-line-clamp:1;overflow:visible}.multi.start.svelte-1e1nyi2.svelte-1e1nyi2{margin-left:0}.multi.end.svelte-1e1nyi2.svelte-1e1nyi2{margin-right:0}.multi.first.svelte-1e1nyi2.svelte-1e1nyi2{overflow:visible;white-space:nowrap}.multi.svelte-1e1nyi2.svelte-1e1nyi2:not(.first){color:transparent;overflow:hidden}.multi.svelte-1e1nyi2.svelte-1e1nyi2:not(.start){border:0;margin-left:-6px}.multi.svelte-1e1nyi2.svelte-1e1nyi2:not(.end){margin-right:-6px}.start.svelte-1e1nyi2>.flag-content.svelte-1e1nyi2{justify-content:flex-start;gap:1em}")}function Lf(t){let e,n,a,r;return{c(){e=T("div"),D(e,"class","note svelte-1e1nyi2")},m(i,o){q(i,e,o),a||(r=ue(n=t[9].call(null,e)),a=!0)},d(i){i&&O(e),a=!1,r()}}}function V1(t){let e,n,a,r=t[0].name+"",i,o,l,s,d,u=t[0].note&&Lf(t);return{c(){e=T("div"),n=T("div"),a=T("span"),i=pe(r),o=V(),u&&u.c(),D(a,"class","svelte-1e1nyi2"),ge(a,"clamp",!t[1]),ge(a,"day-view",t[1]),D(n,"class","flag-content svelte-1e1nyi2"),D(e,"class","flag svelte-1e1nyi2"),D(e,"aria-label",l=t[1]?null:t[0].name),tt(e,"--hex-alpha",t[6]+"40"),tt(e,"--color",t[6]),ge(e,"multi",t[4]),ge(e,"start",t[2]),ge(e,"end",t[3]),ge(e,"first",t[5]),ge(e,"day-view",t[1])},m(c,h){q(c,e,h),E(e,n),E(n,a),E(a,i),E(n,o),u&&u.m(n,null),s||(d=[ae(e,"click",t[12]),ae(e,"mouseover",t[13]),ae(e,"focus",H1),ae(e,"contextmenu",t[14])],s=!0)},p(c,[h]){h&1&&r!==(r=c[0].name+"")&&be(i,r),h&2&&ge(a,"clamp",!c[1]),h&2&&ge(a,"day-view",c[1]),c[0].note?u||(u=Lf(c),u.c(),u.m(n,null)):u&&(u.d(1),u=null),h&3&&l!==(l=c[1]?null:c[0].name)&&D(e,"aria-label",l),h&64&&tt(e,"--hex-alpha",c[6]+"40"),h&64&&tt(e,"--color",c[6]),h&16&&ge(e,"multi",c[4]),h&4&&ge(e,"start",c[2]),h&8&&ge(e,"end",c[3]),h&32&&ge(e,"first",c[5]),h&2&&ge(e,"day-view",c[1])},i:Y,o:Y,d(c){c&&O(e),u&&u.d(),s=!1,_e(d)}}}var H1=()=>{};function W1(t,e,n){let a=Se(),{event:r}=e,{date:i}=e,{dayView:o=!1}=e,l=!1,s=!1,d=!1,u=!1,{categories:c}=e,h=c.find(w=>w.id==r.category)?.color??bs,y=ki.Platform.isMacOS?"Meta":"Control",m=w=>{(0,ki.setIcon)(w,"note-glyph")},v=w=>{w.stopPropagation(),a("event-click",{event:r,modifier:w.getModifierState(y)})},p=w=>a("event-mouseover",{target:w.target,event:r}),A=w=>{w.stopPropagation(),a("event-context",{evt:w,event:r})};return t.$$set=w=>{"event"in w&&n(0,r=w.event),"date"in w&&n(10,i=w.date),"dayView"in w&&n(1,o=w.dayView),"categories"in w&&n(11,c=w.categories)},t.$$.update=()=>{if(t.$$.dirty&1039){e:r.end!=null&&!o&&(n(4,l=!0),n(2,s=i.day===r.date.day&&(r.date.month==null||i.month==r.date.month)&&(r.date.year==null||i.year===r.date.year)),n(5,u=s||i.day==1),n(3,d=i.day===r.end.day&&(r.end.month==null||i.month==r.end.month)&&(r.end.year==null||i.year===r.end.year)),s&&d&&(n(4,l=!1),n(2,s=!1),n(3,d=!1)))}if(t.$$.dirty&2049){e:n(6,h=c.find(w=>w.id==r.category)?.color??bs)}},[r,o,s,d,l,u,h,a,y,m,i,c,v,p,A]}var Pf=class extends de{constructor(e){super();fe(this,e,W1,V1,se,{event:0,date:10,dayView:1,categories:11},j1)}},jf=Pf;function G1(t){we(t,"svelte-qnut28",".flags-container.svelte-qnut28{height:100%}.flag-container.svelte-qnut28{display:flex;flex-flow:column nowrap;gap:0.25rem}.overflow.svelte-qnut28{color:var(--text-muted);display:flex;justify-content:flex-end;width:100%}")}function Vf(t){let e,n,a,r;return{c(){e=T("div"),D(e,"class","flag-container svelte-qnut28")},m(i,o){q(i,e,o),a||(r=ue(n=t[2].call(null,e)),a=!0)},p:Y,d(i){i&&O(e),a=!1,r()}}}function Hf(t){let e,n,a;return{c(){e=T("span"),n=pe("+"),a=pe(t[1])},m(r,i){q(r,e,i),E(e,n),E(e,a)},p(r,i){i&2&&be(a,r[1])},d(r){r&&O(e)}}}function U1(t){let e,n=t[0],a,r,i=Vf(t),o=t[1]>0&&Hf(t);return{c(){e=T("div"),i.c(),a=V(),r=T("div"),o&&o.c(),D(r,"class","overflow svelte-qnut28"),D(e,"class","flags-container svelte-qnut28")},m(l,s){q(l,e,s),i.m(e,null),E(e,a),E(e,r),o&&o.m(r,null)},p(l,[s]){s&1&&se(n,n=l[0])?(i.d(1),i=Vf(l),i.c(),i.m(e,a)):i.p(l,s),l[1]>0?o?o.p(l,s):(o=Hf(l),o.c(),o.m(r,null)):o&&(o.d(1),o=null)},i:Y,o:Y,d(l){l&&O(e),i.d(l),o&&o.d()}}}function z1(t,e,n){let{events:a=[]}=e,{categories:r}=e,{dayView:i=!1}=e,{date:o}=e,{calendar:l}=e,s=0,d=Se(),u,c=0,h=y=>{if(a.length){let m=y?.parentElement?.getBoundingClientRect()?.height;if(!i&&(m==null||Math.floor(m)==Math.floor(c)))return;c=m,u=y,y.empty(),n(1,s=0);let v=m;for(let p of a){let A=new jf({target:y,props:{event:p,categories:r,dayView:i,date:o}});if(A.$on("event-click",w=>d("event-click",w.detail)),A.$on("event-mouseover",w=>d("event-mouseover",w.detail)),A.$on("event-context",w=>d("event-context",w.detail)),!i){if(v=m-y.getBoundingClientRect().height,v<0){y.lastElementChild.detach(),n(1,s=a.length-a.indexOf(p));break}else if(v==0){n(1,s=a.length-a.indexOf(p)-1);break}}}}};return l.on("view-resized",()=>{i||h(u)}),t.$$set=y=>{"events"in y&&n(0,a=y.events),"categories"in y&&n(3,r=y.categories),"dayView"in y&&n(4,i=y.dayView),"date"in y&&n(5,o=y.date),"calendar"in y&&n(6,l=y.calendar)},t.$$.update=()=>{if(t.$$.dirty&1){e:n(0,a=[...a])}},[a,s,h,r,i,o,l]}var Wf=class extends de{constructor(e){super();fe(this,e,z1,U1,se,{events:0,categories:3,dayView:4,date:5,calendar:6},G1)}},xi=Wf;function Y1(t){we(t,"svelte-1uhffao",".day-view.svelte-1uhffao{padding:5px 15px;display:flex;flex-flow:column nowrap;gap:0.5rem}.nav.svelte-1uhffao,.date.svelte-1uhffao{display:flex;justify-content:space-between;align-items:center}.left-nav.svelte-1uhffao{display:flex}.left-nav.svelte-1uhffao .clickable-icon{margin-right:0}.calendar-clickable.svelte-1uhffao{align-items:center;cursor:pointer;display:flex;justify-content:center}h3.svelte-1uhffao{margin:0}.day-view.svelte-1uhffao .flag-container > .flag{padding-left:0.5rem}.title-container.svelte-1uhffao{display:flex;flex-flow:column nowrap;align-items:center;justify-content:center}.day-number.svelte-1uhffao{font-size:small}")}function Gf(t,e,n){let a=t.slice();return a[24]=e[n][0],a[25]=e[n][1],a}function Uf(t){let e,n,a,r;return{c(){e=T("div"),n=T("em"),a=pe("Day "),r=pe(t[8]),D(e,"class","day-number svelte-1uhffao")},m(i,o){q(i,e,o),E(e,n),E(n,a),E(n,r)},p(i,o){o&256&&be(r,i[8])},d(i){i&&O(e)}}}function zf(t){let e,n,a=t[5],r=[];for(let o=0;oH(r[o],1,1,()=>{r[o]=null});return{c(){e=T("div");for(let o=0;o{me=null}),Ae());let he={};z&8&&(he.events=X[3].events),z&128&&(he.categories=X[7]),z&4&&(he.date=X[2]),z&2&&(he.calendar=X[1]),S.$set(he)},i(X){W||(R(me),R(S.$$.fragment,X),W=!0)},o(X){H(me),H(S.$$.fragment,X),W=!1},d(X){X&&O(e),oe&&oe.d(),me&&me.d(),Q(S),K=!1,_e(le)}}}function K1(t,e,n){let a,r,i,o,l,s,{displayDayNumber:d}=e,u=Ke("calendar"),c;u.subscribe(S=>{n(1,c=S)});let h;Ke("displayMoons").subscribe(S=>n(4,h=S)),c.on("day-update",()=>{n(2,r=c.viewing),n(6,a=c.viewedDate),n(3,i=c.getDayForDate(r)),n(5,l=i.moons)});let m=Se(),v=S=>{new ja.ExtraButtonComponent(S).setIcon("cross").setTooltip("Close")},p=S=>{new ja.ExtraButtonComponent(S).setIcon("fantasy-calendar-reveal").setTooltip("Show on Calendar").onClick(()=>{n(1,c.displayed.year=c.viewing.year,c),c.setCurrentMonth(c.viewing.month)})},A=S=>{new ja.ExtraButtonComponent(S).setIcon("plus-with-circle").setTooltip("New Event").onClick(()=>m("event",r))},w=S=>{new ja.ExtraButtonComponent(S).setIcon("left-arrow")},x=S=>{new ja.ExtraButtonComponent(S).setIcon("right-arrow")},B=()=>m("reveal"),C=()=>m("close"),F=()=>c.goToPreviousDay(),_=()=>c.goToNextDay();function N(S){ce.call(this,t,S)}function k(S){ce.call(this,t,S)}function P(S){ce.call(this,t,S)}return t.$$set=S=>{"displayDayNumber"in S&&n(0,d=S.displayDayNumber)},t.$$.update=()=>{if(t.$$.dirty&2){e:n(6,a=c.viewedDate)}if(t.$$.dirty&2){e:n(2,r=c.viewing)}if(t.$$.dirty&6){e:n(3,i=c.getDayForDate(r))}if(t.$$.dirty&6){e:n(8,o=c.dayNumberForDate(r))}if(t.$$.dirty&8){e:n(5,l=i.moons)}if(t.$$.dirty&2){e:n(7,s=c.categories)}},[d,c,r,i,h,l,a,s,o,m,v,p,A,w,x,B,C,F,_,N,k,P]}var Zf=class extends de{constructor(e){super();fe(this,e,K1,Z1,se,{displayDayNumber:0},Y1)}},Kf=Zf;function Q1(t){we(t,"svelte-1gou5hh",".dot.svelte-1gou5hh{display:inline-block;min-height:6px;min-width:6px;height:6px;width:6px;margin:0 2px}.active.svelte-1gou5hh{color:var(--text-on-accent)}")}function X1(t){let e,n,a,r;return{c(){e=on("svg"),n=on("circle"),D(n,"stroke",a=t[2]??"currentColor"),D(n,"fill",r=t[2]??"currentColor"),D(n,"cx","3"),D(n,"cy","3"),D(n,"r","2"),D(e,"class","dot svelte-1gou5hh"),D(e,"viewBox","0 0 6 6"),D(e,"xmlns","http://www.w3.org/2000/svg"),ge(e,"filled",t[0]),ge(e,"active",t[1])},m(i,o){q(i,e,o),E(e,n)},p(i,[o]){o&4&&a!==(a=i[2]??"currentColor")&&D(n,"stroke",a),o&4&&r!==(r=i[2]??"currentColor")&&D(n,"fill",r),o&1&&ge(e,"filled",i[0]),o&2&&ge(e,"active",i[1])},i:Y,o:Y,d(i){i&&O(e)}}}function J1(t,e,n){let{isFilled:a=!0}=e,{isActive:r=!1}=e,{color:i}=e;return t.$$set=o=>{"isFilled"in o&&n(0,a=o.isFilled),"isActive"in o&&n(1,r=o.isActive),"color"in o&&n(2,i=o.color)},[a,r,i]}var Qf=class extends de{constructor(e){super();fe(this,e,J1,X1,se,{isFilled:0,isActive:1,color:2},Q1)}},Xf=Qf;function $1(t){we(t,"svelte-1w3ytba",".dots-container.svelte-1w3ytba{width:100%}.dot-container.svelte-1w3ytba{display:flex;flex-flow:row nowrap;width:fit-content;margin:auto;line-height:6px;min-height:6px}.centered.svelte-1w3ytba{justify-content:center;align-items:center}.overflow.svelte-1w3ytba{color:var(--text-muted);font-size:xx-small;display:flex;justify-content:flex-end;width:100%;line-height:1.25}")}function Jf(t){let e,n,a,r;return{c(){e=T("div"),D(e,"class","dot-container centered svelte-1w3ytba")},m(i,o){q(i,e,o),a||(r=ue(n=t[2].call(null,e)),a=!0)},p:Y,d(i){i&&O(e),a=!1,r()}}}function $f(t){let e,n,a;return{c(){e=T("span"),n=pe("+"),a=pe(t[1])},m(r,i){q(r,e,i),E(e,n),E(e,a)},p(r,i){i&2&&be(a,r[1])},d(r){r&&O(e)}}}function eb(t){let e,n=t[0],a,r,i=Jf(t),o=t[1]>0&&$f(t);return{c(){e=T("div"),i.c(),a=V(),r=T("div"),o&&o.c(),D(r,"class","overflow svelte-1w3ytba"),D(e,"class","dots-container svelte-1w3ytba")},m(l,s){q(l,e,s),i.m(e,null),E(e,a),E(e,r),o&&o.m(r,null)},p(l,[s]){s&1&&se(n,n=l[0])?(i.d(1),i=Jf(l),i.c(),i.m(e,a)):i.p(l,s),l[1]>0?o?o.p(l,s):(o=$f(l),o.c(),o.m(r,null)):o&&(o.d(1),o=null)},i:Y,o:Y,d(l){l&&O(e),i.d(l),o&&o.d()}}}function tb(t,e,n){let{events:a=[]}=e,{categories:r}=e,{calendar:i}=e,o=0,l,s=0,d=c=>{if(l=c,a.length){let h=c.parentElement?.getBoundingClientRect()?.width;if(!h||Math.floor(h)==Math.floor(s))return;s=h;let y=h;c.empty(),n(1,o=0);for(let m of a)if(new Xf({target:c,props:{color:u(m)}}),y=h-c.getBoundingClientRect().width,y<0){c.lastElementChild.detach(),n(1,o=a.length-a.indexOf(m));break}else if(y==0){n(1,o=a.length-a.indexOf(m)-1);break}}};i.on("view-resized",()=>{!l||d(l)});let u=c=>r.find(h=>h.id==c.category)?.color;return t.$$set=c=>{"events"in c&&n(0,a=c.events),"categories"in c&&n(3,r=c.categories),"calendar"in c&&n(4,i=c.calendar)},[a,o,d,r,i]}var eh=class extends de{constructor(e){super();fe(this,e,tb,eb,se,{events:0,categories:3,calendar:4},$1)}},th=eh;function nb(t){we(t,"svelte-3pptg2",".day.svelte-3pptg2{background-color:transparent;border:2px solid transparent;border-radius:4px;color:var(--color-text-day);cursor:pointer;font-size:0.8em;height:100%;padding:2px;position:relative;text-align:center;vertical-align:baseline;overflow:visible;display:flex;flex-flow:column nowrap}.active.svelte-3pptg2{background-color:var(--background-secondary)}.viewing.svelte-3pptg2{border:2px solid var(--background-modifier-border)}.adjacent-month.svelte-3pptg2{opacity:0.25}")}function nh(t,e,n){let a=t.slice();return a[20]=e[n][0],a[21]=e[n][1],a}function ab(t){let e,n;return e=new th({props:{events:t[4],categories:t[9],calendar:t[0].calendar}}),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,r){let i={};r&16&&(i.events=a[4]),r&512&&(i.categories=a[9]),r&1&&(i.calendar=a[0].calendar),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}function rb(t){let e,n,a,r=t[5]&&t[10]&&t[10].length&&ah(t);return n=new xi({props:{events:t[4],categories:t[9],date:t[8],calendar:t[0].calendar}}),n.$on("event-click",t[12]),n.$on("event-mouseover",t[13]),n.$on("event-context",t[14]),{c(){r&&r.c(),e=V(),$(n.$$.fragment)},m(i,o){r&&r.m(i,o),q(i,e,o),J(n,i,o),a=!0},p(i,o){i[5]&&i[10]&&i[10].length?r?(r.p(i,o),o&1056&&R(r,1)):(r=ah(i),r.c(),R(r,1),r.m(e.parentNode,e)):r&&(Ee(),H(r,1,1,()=>{r=null}),Ae());let l={};o&16&&(l.events=i[4]),o&512&&(l.categories=i[9]),o&256&&(l.date=i[8]),o&1&&(l.calendar=i[0].calendar),n.$set(l)},i(i){a||(R(r),R(n.$$.fragment,i),a=!0)},o(i){H(r),H(n.$$.fragment,i),a=!1},d(i){r&&r.d(i),i&&O(e),Q(n,i)}}}function ah(t){let e,n,a=t[10],r=[];for(let o=0;oH(r[o],1,1,()=>{r[o]=null});return{c(){e=T("div");for(let o=0;o{m[w]=null}),Ae(),l=m[o],l?l.p(p,A):(l=m[o]=y[o](p),l.c()),R(l,1),l.m(e,null)),(!u||A&2&&s!==(s=""+(Co(p[1]?"adjacent-month fantasy-adjacent-month":"")+" svelte-3pptg2")))&&D(e,"class",s),(!u||A&20&&d!==(d=!p[2]&&p[4].length?`${p[4].length} event${p[4].length==1?"":"s"}`:void 0))&&D(e,"aria-label",d),A&2&&ge(e,"day",!0),A&2&&ge(e,"fantasy-day",!0),A&130&&ge(e,"active",p[7]&&!p[1]),A&74&&ge(e,"viewing",p[3]&&p[6]&&!p[1])},i(p){u||(R(l),u=!0)},o(p){H(l),u=!1},d(p){p&&O(e),m[o].d(),c=!1,_e(h)}}}function ob(t,e,n){let a,r,i,o,l,s=Se(),{day:d}=e,{adjacent:u}=e,{fullView:c}=e,h=[],y;Ke("dayView").subscribe(_=>n(3,y=_));let v;Ke("displayMoons").subscribe(_=>n(5,v=_)),d.calendar.on("month-update",()=>{n(7,o=d.isCurrentDay),n(6,l=d.isDisplaying),n(4,h=d.events)}),d.calendar.on("day-update",()=>{n(7,o=d.isCurrentDay),n(6,l=d.isDisplaying)});function A(_){ce.call(this,t,_)}function w(_){ce.call(this,t,_)}function x(_){ce.call(this,t,_)}let B=()=>s("day-click",d),C=()=>s("day-doubleclick",d),F=_=>s("day-context-menu",{day:d,evt:_});return t.$$set=_=>{"day"in _&&n(0,d=_.day),"adjacent"in _&&n(1,u=_.adjacent),"fullView"in _&&n(2,c=_.fullView)},t.$$.update=()=>{if(t.$$.dirty&3){e:u||n(4,h=d.events)}if(t.$$.dirty&1){e:n(10,a=d.moons)}if(t.$$.dirty&1){e:n(9,r=d.calendar.categories)}if(t.$$.dirty&1){e:n(8,i=d.date)}if(t.$$.dirty&1){e:n(7,o=d.isCurrentDay)}if(t.$$.dirty&1){e:n(6,l=d.isDisplaying)}if(t.$$.dirty&8){e:n(3,y)}},[d,u,c,y,h,v,l,o,i,r,a,s,A,w,x,B,C,F]}var ih=class extends de{constructor(e){super();fe(this,e,ob,ib,se,{day:0,adjacent:1,fullView:2},nb)}},_r=ih;function sb(t){we(t,"svelte-1cfzxxk",`.fantasy-month.svelte-1cfzxxk.svelte-1cfzxxk{display:grid;grid-template-columns:repeat(
var(--calendar-columns),
var(--column-widths)
);grid-auto-rows:var(--calendar-rows)}.intercalary.svelte-1cfzxxk.svelte-1cfzxxk{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;border-top:1px solid var(--background-modifier-border);border-bottom:1px solid var(--background-modifier-border);border-radius:0;align-items:center}.intercalary.svelte-1cfzxxk span.month.svelte-1cfzxxk{text-align:center}.intercalary.svelte-1cfzxxk .fantasy-month.svelte-1cfzxxk{grid-template-columns:unset;grid-auto-columns:var(--column-widths);align-items:center;justify-content:center}.leapday-container.svelte-1cfzxxk.svelte-1cfzxxk{grid-column:span var(--calendar-columns);display:flex;justify-content:center;align-items:center;border-top:1px solid var(--background-modifier-border);border-bottom:1px solid var(--background-modifier-border);color:var(--text-accent)}.full-view.svelte-1cfzxxk.svelte-1cfzxxk{height:100%;margin-bottom:0.5rem}.month.svelte-1cfzxxk.svelte-1cfzxxk{padding:0.25rem}.month-name.svelte-1cfzxxk.svelte-1cfzxxk{margin:0}.month.svelte-1cfzxxk .fantasy-day.day{padding:0px}`)}function oh(t,e,n){let a=t.slice();return a[24]=e[n],a}function sh(t,e,n){let a=t.slice();return a[24]=e[n],a}function lh(t,e,n){let a=t.slice();return a[29]=e[n],a}function uh(t,e,n){let a=t.slice();return a[29]=e[n],a}function ch(t,e,n){let a=t.slice();return a[24]=e[n],a}function dh(t){let e,n=t[1].name+"",a;return{c(){e=T("h3"),a=pe(n),D(e,"class","month-name svelte-1cfzxxk")},m(r,i){q(r,e,i),E(e,a)},p(r,i){i[0]&2&&n!==(n=r[1].name+"")&&be(a,n)},d(r){r&&O(e)}}}function fh(t){let e,n=t[1].name+"",a;return{c(){e=T("span"),a=pe(n),D(e,"class","month svelte-1cfzxxk")},m(r,i){q(r,e,i),E(e,a)},p(r,i){i[0]&2&&n!==(n=r[1].name+"")&&be(a,n)},d(r){r&&O(e)}}}function lb(t){let e;return{c(){e=T("div")},m(n,a){q(n,e,a)},p:Y,i:Y,o:Y,d(n){n&&O(e)}}}function ub(t){let e,n;return e=new _r({props:{day:t[24],adjacent:!0,fullView:t[3]}}),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,r){let i={};r[0]&512&&(i.day=a[24]),r[0]&8&&(i.fullView=a[3]),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}function hh(t){let e,n,a,r,i=[ub,lb],o=[];function l(s,d){return s[6]&&s[24]!=null?0:1}return e=l(t,[-1,-1]),n=o[e]=i[e](t),{c(){n.c(),a=Ge()},m(s,d){o[e].m(s,d),q(s,a,d),r=!0},p(s,d){let u=e;e=l(s,d),e===u?o[e].p(s,d):(Ee(),H(o[u],1,1,()=>{o[u]=null}),Ae(),n=o[e],n?n.p(s,d):(n=o[e]=i[e](s),n.c()),R(n,1),n.m(a.parentNode,a))},i(s){r||(R(n),r=!0)},o(s){H(n),r=!1},d(s){o[e].d(s),s&&O(a)}}}function mh(t){let e,n,a,r,i,o,l,s=t[10](t[24]).next,d=[];for(let v=0;v{c[A]=null}),Ae(),r=c[a],r?r.p(v,p):(r=c[a]=u[a](v),r.c()),R(r,1),r.m(n,null)),p[0]&256){y=v[10](v[24]).prev;let w;for(w=0;w{r=null}),Ae()),o[24].leapday?.numbered?i&&(Ee(),H(i,1,1,()=>{i=null}),Ae()):i?(i.p(o,l),l[0]&256&&R(i,1)):(i=yh(o),i.c(),R(i,1),i.m(n.parentNode,n))},i(o){a||(R(r),R(i),a=!0)},o(o){H(r),H(i),a=!1},d(o){r&&r.d(o),o&&O(e),i&&i.d(o),o&&O(n)}}}function fb(t){let e;return{c(){e=T("div")},m(n,a){q(n,e,a)},p:Y,i:Y,o:Y,d(n){n&&O(e)}}}function hb(t){let e,n;return e=new _r({props:{day:t[24],adjacent:!0,fullView:t[3]}}),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,r){let i={};r[0]&128&&(i.day=a[24]),r[0]&8&&(i.fullView=a[3]),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}function bh(t){let e,n,a,r,i=[hb,fb],o=[];function l(s,d){return s[6]?0:1}return e=l(t,[-1,-1]),n=o[e]=i[e](t),{c(){n.c(),a=Ge()},m(s,d){o[e].m(s,d),q(s,a,d),r=!0},p(s,d){let u=e;e=l(s,d),e===u?o[e].p(s,d):(Ee(),H(o[u],1,1,()=>{o[u]=null}),Ae(),n=o[e],n?n.p(s,d):(n=o[e]=i[e](s),n.c()),R(n,1),n.m(a.parentNode,a))},i(s){r||(R(n),r=!0)},o(s){H(n),r=!1},d(s){o[e].d(s),s&&O(a)}}}function wh(t){let e,n,a,r,i=t[9],o=[];for(let m=0;mH(o[m],1,1,()=>{o[m]=null}),s=t[8],d=[];for(let m=0;mH(d[m],1,1,()=>{d[m]=null}),c=t[7],h=[];for(let m=0;mH(h[m],1,1,()=>{h[m]=null});return{c(){e=T("div");for(let m=0;m{let W=S.weekday,K=S.calendar.weekdays.length-W,le=[];K!=0&&(le=[...Array(K).keys()]);let oe=[];return W!=0&&(oe=[...Array(W).keys()]),{next:le,prev:oe}};function v(S){ce.call(this,t,S)}function p(S){ce.call(this,t,S)}function A(S){ce.call(this,t,S)}function w(S){ce.call(this,t,S)}function x(S){ce.call(this,t,S)}function B(S){ce.call(this,t,S)}function C(S){ce.call(this,t,S)}function F(S){ce.call(this,t,S)}function _(S){ce.call(this,t,S)}function N(S){ce.call(this,t,S)}function k(S){ce.call(this,t,S)}function P(S){ce.call(this,t,S)}return t.$$set=S=>{"yearView"in S&&n(0,l=S.yearView),"month"in S&&n(1,s=S.month),"columns"in S&&n(2,d=S.columns),"fullView"in S&&n(3,u=S.fullView),"weeks"in S&&n(4,c=S.weeks),"intercalary"in S&&n(5,h=S.intercalary),"showPad"in S&&n(6,y=S.showPad)},t.$$.update=()=>{if(t.$$.dirty[0]&2){e:n(11,a=s.calendar.getPaddedDaysForMonth(s))}if(t.$$.dirty[0]&2048){e:n(9,r=a.previous)}if(t.$$.dirty[0]&2){e:n(8,i=s.days)}if(t.$$.dirty[0]&2048){e:n(7,o=a.next)}},[l,s,d,u,c,h,y,o,i,r,m,a,v,p,A,w,x,B,C,F,_,N,k,P]}var Dh=class extends de{constructor(e){super();fe(this,e,pb,mb,se,{yearView:0,month:1,columns:2,fullView:3,weeks:4,intercalary:5,showPad:6},sb,[-1,-1])}},Vn=Dh;var Fi=Fe(require("obsidian"));function gb(t){we(t,"svelte-131055d",".fantasy-nav.nav.nav.svelte-131055d{padding:10px 0px;margin:0;display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:stretch}.container.svelte-131055d{display:flex;align-items:center}.fantasy-title.svelte-131055d{margin:0;line-height:1.25}.fantasy-right-nav.svelte-131055d{display:flex;justify-content:center;align-items:flex-start}.calendar-clickable.svelte-131055d{align-items:center;cursor:pointer;display:flex;justify-content:center}.title-container.svelte-131055d{display:flex;flex-flow:column nowrap;align-items:flex-start}")}function yb(t){let e,n,a,r,i,o,l,s,d,u,c,h,y,m,v,p,A,w,x,B,C,F,_,N,k,P,S;return{c(){e=T("div"),n=T("div"),a=T("h3"),r=T("span"),i=pe(t[0]),o=V(),l=T("span"),s=pe(t[1]),d=V(),u=T("div"),c=T("div"),h=T("div"),v=V(),p=T("div"),A=T("span"),A.textContent="Today",x=V(),B=T("div"),_=V(),N=T("div"),D(r,"class","fantasy-month month"),D(l,"class","fantasy-year year"),D(a,"class","fantasy-title title svelte-131055d"),D(n,"class","title-container svelte-131055d"),D(h,"class","arrow calendar-clickable svelte-131055d"),D(h,"aria-label",y=t[3].name),D(p,"class","reset-button calendar-clickable svelte-131055d"),D(p,"aria-label",w="Today is "+t[2]),D(B,"class","arrow right calendar-clickable svelte-131055d"),D(B,"aria-label",C=t[4].name),D(N,"class","calendar-clickable svelte-131055d"),D(N,"aria-label","Calendar Settings"),D(c,"class","container svelte-131055d"),D(u,"class","right-nav fantasy-right-nav svelte-131055d"),D(e,"class","fantasy-nav nav svelte-131055d")},m(W,K){q(W,e,K),E(e,n),E(n,a),E(a,r),E(r,i),E(a,o),E(a,l),E(l,s),E(e,d),E(e,u),E(u,c),E(c,h),E(c,v),E(c,p),E(p,A),E(c,x),E(c,B),E(c,_),E(c,N),P||(S=[ue(m=t[6].call(null,h)),ae(h,"click",t[9]),ae(p,"click",t[10]),ue(F=t[7].call(null,B)),ae(B,"click",t[11]),ue(k=t[8].call(null,N)),ae(N,"click",t[12])],P=!0)},p(W,[K]){K&1&&be(i,W[0]),K&2&&be(s,W[1]),K&8&&y!==(y=W[3].name)&&D(h,"aria-label",y),K&4&&w!==(w="Today is "+W[2])&&D(p,"aria-label",w),K&16&&C!==(C=W[4].name)&&D(B,"aria-label",C)},i:Y,o:Y,d(W){W&&O(e),P=!1,_e(S)}}}function vb(t,e,n){let a=Se(),{month:r}=e,{year:i}=e,{current:o}=e,l=Ke("calendar"),s;l.subscribe(w=>{s=w});let d=s.getPreviousMonth(),u=s.getNextMonth();s.on("month-update",()=>{n(3,d=s.getPreviousMonth()),n(4,u=s.getNextMonth())});let c=w=>{new Fi.ExtraButtonComponent(w).setIcon("left-arrow")},h=w=>{new Fi.ExtraButtonComponent(w).setIcon("right-arrow")},y=w=>{new Fi.ExtraButtonComponent(w).setIcon("gear")},m=()=>a("previous"),v=()=>a("reset"),p=w=>a("next"),A=w=>a("settings",w);return t.$$set=w=>{"month"in w&&n(0,r=w.month),"year"in w&&n(1,i=w.year),"current"in w&&n(2,o=w.current)},[r,i,o,d,u,a,c,h,y,m,v,p,A]}var _h=class extends de{constructor(e){super();fe(this,e,vb,yb,se,{month:0,year:1,current:2},gb)}},Ch=_h;var Ti=Fe(require("obsidian"));function bb(t){we(t,"svelte-i3pajt","#calendar-container .fantasy-nav.nav.nav.svelte-i3pajt{padding:0;margin:0;display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:2}.fantasy-year-nav.svelte-i3pajt{display:flex;align-items:center;margin-right:auto}.container.svelte-i3pajt{display:flex;align-items:center}.fantasy-title.svelte-i3pajt{margin:0}.fantasy-right-nav.svelte-i3pajt{display:flex;justify-content:center;align-items:flex-start}.calendar-clickable.svelte-i3pajt{align-items:center;cursor:pointer;display:flex;justify-content:center}")}function Eh(t){let e,n,a,r;return{c(){e=T("div"),D(e,"class","arrow calendar-clickable svelte-i3pajt"),D(e,"aria-label","Previous Year")},m(i,o){q(i,e,o),a||(r=[ue(n=t[4].call(null,e)),ae(e,"click",t[7])],a=!0)},p:Y,d(i){i&&O(e),a=!1,_e(r)}}}function Ah(t){let e,n,a,r;return{c(){e=T("div"),D(e,"class","arrow right calendar-clickable svelte-i3pajt"),D(e,"aria-label","Next Year")},m(i,o){q(i,e,o),a||(r=[ue(n=t[5].call(null,e)),ae(e,"click",t[9])],a=!0)},p:Y,d(i){i&&O(e),a=!1,_e(r)}}}function wb(t){let e,n,a,r,i,o,l,s,d,u,c,h,y,m,v,p,A,w,x=t[1]&&Eh(t),B=t[1]&&Ah(t);return{c(){e=T("div"),n=T("div"),a=T("h2"),r=T("span"),i=pe(t[0]),o=V(),l=T("div"),s=T("div"),x&&x.c(),d=V(),u=T("div"),c=T("span"),c.textContent="Today",y=V(),B&&B.c(),m=V(),v=T("div"),D(r,"class","fantasy-year"),D(a,"class","fantasy-title svelte-i3pajt"),D(n,"class","fantasy-year-nav svelte-i3pajt"),D(u,"class","reset-button calendar-clickable svelte-i3pajt"),D(u,"aria-label",h="Today is "+t[2]),D(v,"class","calendar-clickable svelte-i3pajt"),D(v,"aria-label","Calendar Settings"),D(s,"class","container svelte-i3pajt"),D(l,"class","right-nav fantasy-right-nav svelte-i3pajt"),D(e,"class","fantasy-nav nav svelte-i3pajt")},m(C,F){q(C,e,F),E(e,n),E(n,a),E(a,r),E(r,i),E(e,o),E(e,l),E(l,s),x&&x.m(s,null),E(s,d),E(s,u),E(u,c),E(s,y),B&&B.m(s,null),E(s,m),E(s,v),A||(w=[ae(u,"click",t[8]),ue(p=t[6].call(null,v)),ae(v,"click",t[10])],A=!0)},p(C,[F]){F&1&&be(i,C[0]),C[1]?x?x.p(C,F):(x=Eh(C),x.c(),x.m(s,d)):x&&(x.d(1),x=null),F&4&&h!==(h="Today is "+C[2])&&D(u,"aria-label",h),C[1]?B?B.p(C,F):(B=Ah(C),B.c(),B.m(s,m)):B&&(B.d(1),B=null)},i:Y,o:Y,d(C){C&&O(e),x&&x.d(),B&&B.d(),A=!1,_e(w)}}}function Db(t,e,n){let a=Se(),{year:r}=e,{arrows:i=!1}=e,{current:o}=e,l=m=>{new Ti.ExtraButtonComponent(m).setIcon("left-arrow")},s=m=>{new Ti.ExtraButtonComponent(m).setIcon("right-arrow")},d=m=>{new Ti.ExtraButtonComponent(m).setIcon("gear")},u=()=>a("previous"),c=()=>a("reset"),h=m=>a("next"),y=m=>a("settings",m);return t.$$set=m=>{"year"in m&&n(0,r=m.year),"arrows"in m&&n(1,i=m.arrows),"current"in m&&n(2,o=m.current)},[r,i,o,a,l,s,d,u,c,h,y]}var kh=class extends de{constructor(e){super();fe(this,e,Db,wb,se,{year:0,arrows:1,current:2},bb)}},Si=kh;function _b(t){we(t,"svelte-15hvixf",".year-view.svelte-15hvixf{height:100%;position:relative;display:flex;flex-direction:column}.year.svelte-15hvixf{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;overflow:auto;flex:1}.year.svelte-15hvixf:not(.full-view){grid-template-columns:1fr}")}function Cb(t){let e,n,a,r,i,o,l;return n=new Si({props:{year:t[3],current:t[0]}}),n.$on("next",t[9]),n.$on("previous",t[10]),n.$on("reset",t[11]),n.$on("settings",t[12]),{c(){e=T("div"),$(n.$$.fragment),a=V(),r=T("div"),D(r,"class","year svelte-15hvixf"),ge(r,"full-view",t[1]),D(e,"class","year-view svelte-15hvixf")},m(s,d){q(s,e,d),J(n,e,null),E(e,a),E(e,r),t[13](r),i=!0,o||(l=ae(r,"scroll",t[5],{once:!0}),o=!0)},p(s,[d]){let u={};d&8&&(u.year=s[3]),d&1&&(u.current=s[0]),n.$set(u),d&2&&ge(r,"full-view",s[1])},i(s){i||(R(n.$$.fragment,s),i=!0)},o(s){H(n.$$.fragment,s),i=!1},d(s){s&&O(e),Q(n),t[13](null),o=!1,l()}}}function Eb(t,e,n){let a,r=Se(),{current:i}=e,{year:o}=e,{columns:l}=e,{fullView:s}=e,d,u,c,h=Ke("calendar"),y;h.subscribe(z=>{n(8,y=z)});let m=[],v=Ke("dayView"),p=Ke("displayMoons"),A=new IntersectionObserver((z,he)=>{he===A&&(!z.length||!z[0].isIntersecting||(A.disconnect(),!(!y.canGoToNextYear(c.year)&&c.number===y.data.months.length-1)&&(B(),P(m.shift()),w())))},{root:d,rootMargin:"0px",threshold:.25}),w=()=>{let z=d.children[d.children.length-2];!z||A.observe(z)},x=new IntersectionObserver((z,he)=>{if(he!==x||!z&&!z.length||z[0].isIntersecting)return;let De=d.getBoundingClientRect();z[0].boundingClientRect.top{if(!(!y.canGoToNextYear(c.year)&&c.number===y.data.months.length-1)){if(c=y.getMonth(c.number+1,c.year),c.number===0&&!(d.lastElementChild instanceof HTMLHeadingElement)){let he=d.createEl("h2",{text:y.getNameForYear(c.year),cls:"fantasy-title"});m.push(he),x.disconnect(),x.observe(he)}m.push(k(c,!1)),z&&(u=y.getMonth((u?.number??0)+1,u?.year??1)),F()}},C=new IntersectionObserver((z,he)=>{he===C&&(!z.length||!z[0].isIntersecting||(C.disconnect(),!!u&&(N(),P(m.pop()),F())))},{root:d,rootMargin:"0px",threshold:.25}),F=()=>{let z=d.children[1];!z||C.observe(z)},_=new IntersectionObserver((z,he)=>{he===_&&(!z&&!z.length||z[0].isIntersecting&&(n(6,o-=1),x.observe(z[0].target),_.disconnect()))},{root:d,rootMargin:"0px",threshold:0}),N=(z=!0)=>{if(u=y.getMonth(u.number-1,u.year),!!u){if(m.unshift(k(u,!0)),u.number===0&&!(d.firstElementChild instanceof HTMLHeadingElement)){let he=createEl("h2",{text:y.getNameForYear(u.year),cls:"fantasy-title"});d.prepend(he),m.unshift(he),_.disconnect(),_.observe(he)}z&&(c=y.getMonth(c.number-1,c.year)),w()}},k=(z,he)=>{let De=new Vn({target:d,anchor:he?d.children[0]:null,props:{month:z,fullView:!1,yearView:!0,columns:l,weeks:y.weekdays.length,showPad:!1},context:new Map([["dayView",v],["displayMoons",p]])});return De.$on("day-click",ie=>r("day-click",ie.detail)),De.$on("day-doubleclick",ie=>r("day-doubleclick",ie.detail)),De.$on("day-context-menu",ie=>r("day-context-menu",ie.detail)),De.$on("event-mouseover",ie=>r("event-mouseover",ie.detail)),De.$on("event-mouseover",ie=>r("event-mouseover",ie.detail)),De},P=z=>{z instanceof HTMLHeadingElement?z.detach():z.$destroy()},S=async(z=!1)=>{for(let De of m)P(De);m.splice(0,m.length),d.empty(),await Kn(),n(6,o=y.current.year),u=y.getMonth(y.displayed.month-1,y.displayed.year),c=u;for(let De=0;De{C.disconnect(),A.disconnect(),_.disconnect(),x.disconnect()}),Yn(S);let W=async()=>{await Kn(),C.observe(d.children[1]),A.observe(d.children[d.children.length-2])};function K(z){ce.call(this,t,z)}function le(z){ce.call(this,t,z)}let oe=()=>S(!0);function me(z){ce.call(this,t,z)}function X(z){wa[z?"unshift":"push"](()=>{d=z,n(2,d)})}return t.$$set=z=>{"current"in z&&n(0,i=z.current),"year"in z&&n(6,o=z.year),"columns"in z&&n(7,l=z.columns),"fullView"in z&&n(1,s=z.fullView)},t.$$.update=()=>{if(t.$$.dirty&320){e:n(3,a=y.getNameForYear(o))}},[i,s,d,a,S,W,o,l,y,K,le,oe,me,X]}var xh=class extends de{constructor(e){super();fe(this,e,Eb,Cb,se,{current:0,year:6,columns:7,fullView:1},_b)}},Fh=xh;var ks=Fe(require("obsidian"));function Ab(t){we(t,"svelte-ztrrn8",".year.svelte-ztrrn8{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;overflow:auto;flex:1}.year.svelte-ztrrn8:not(.full-view){grid-template-columns:1fr}")}function Th(t,e,n){let a=t.slice();return a[8]=e[n],a}function Sh(t){let e,n;return e=new Vn({props:{month:t[8],fullView:!1,yearView:!0,columns:t[2],weeks:t[8].calendar.weekdays.length,showPad:!1}}),e.$on("day-click",t[3]),e.$on("day-doubleclick",t[4]),e.$on("day-context-menu",t[5]),e.$on("event-click",t[6]),e.$on("event-mouseover",t[7]),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,r){let i={};r&2&&(i.month=a[8]),r&4&&(i.columns=a[2]),r&2&&(i.weeks=a[8].calendar.weekdays.length),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}function kb(t){let e,n,a=t[1],r=[];for(let o=0;oH(r[o],1,1,()=>{r[o]=null});return{c(){e=T("div");for(let o=0;o{"fullView"in c&&n(0,a=c.fullView),"months"in c&&n(1,r=c.months),"columns"in c&&n(2,i=c.columns)},[a,r,i,o,l,s,d,u]}var Bh=class extends de{constructor(e){super();fe(this,e,xb,kb,se,{fullView:0,months:1,columns:2},Ab)}},Nh=Bh;function Fb(t){we(t,"svelte-1xpvbi",".year-view.svelte-1xpvbi{height:100%;position:relative;display:flex;flex-direction:column}.year-container.svelte-1xpvbi{flex:1;overflow:auto}")}function Tb(t){let e,n,a,r,i;return n=new Si({props:{year:t[2],current:t[0],arrows:!0}}),n.$on("next",t[9]),n.$on("previous",t[10]),n.$on("reset",t[11]),n.$on("settings",t[12]),{c(){e=T("div"),$(n.$$.fragment),a=V(),r=T("div"),D(r,"class","year-container svelte-1xpvbi"),D(e,"class","year-view svelte-1xpvbi")},m(o,l){q(o,e,l),J(n,e,null),E(e,a),E(e,r),t[13](r),i=!0},p(o,[l]){let s={};l&4&&(s.year=o[2]),l&1&&(s.current=o[0]),n.$set(s)},i(o){i||(R(n.$$.fragment,o),i=!0)},o(o){H(n.$$.fragment,o),i=!1},d(o){o&&O(e),Q(n),t[13](null)}}}function Sb(t,e,n){let a,r=Se(),i=Ke("calendar"),o=Ke("dayView"),l=Ke("displayMoons"),s;i.subscribe(k=>{n(8,s=k)});let{year:d}=e,{current:u}=e,{columns:c}=e,h,y=(k,P=!1)=>{let S=s.getMonthsForYear(k),W=new Nh({target:h,anchor:P?h.children[0]:null,props:{months:S,fullView:!0,columns:c},context:new Map([["dayView",o],["displayMoons",l]])});return W.$on("day-click",K=>r("day-click",K.detail)),W.$on("day-doubleclick",K=>r("day-doubleclick",K.detail)),W.$on("day-context-menu",K=>r("day-context-menu",K.detail)),W.$on("event-mouseover",K=>r("event-mouseover",K.detail)),W.$on("event-mouseover",K=>r("event-mouseover",K.detail)),W},m=k=>{k instanceof HTMLHeadingElement?k.detach():k.$destroy()},v=[],p=()=>{if(!s.canGoToNextYear(d)){new ks.Notice("This is the last year. Additional years can be created in settings.");return}n(6,d=d+1),x(d)},A=()=>{if(d===1){new ks.Notice("This is the earliest year.");return}n(6,d=d-1),x(d)},w=()=>{n(6,d=s.current.year),x(d)},x=async k=>{v.forEach(P=>m(P)),h.empty(),await Kn(),k=k,v.push(y(k))};Yn(()=>v.push(y(d)));let B=()=>p(),C=()=>A(),F=()=>w();function _(k){ce.call(this,t,k)}function N(k){wa[k?"unshift":"push"](()=>{h=k,n(1,h)})}return t.$$set=k=>{"year"in k&&n(6,d=k.year),"current"in k&&n(0,u=k.current),"columns"in k&&n(7,c=k.columns)},t.$$.update=()=>{if(t.$$.dirty&320){e:n(2,a=s.getNameForYear(d))}},[u,h,a,p,A,w,d,c,s,B,C,F,_,N]}var Mh=class extends de{constructor(e){super();fe(this,e,Sb,Tb,se,{year:6,current:0,columns:7},Fb)}},Ih=Mh;function Bb(t){we(t,"svelte-li8ss6","#calendar-container.year-view.svelte-li8ss6.svelte-li8ss6{height:100%}#calendar-container.fantasy-calendar.full-view.svelte-li8ss6.svelte-li8ss6{width:100%;padding:0 0.5rem 0.5rem;height:100%;display:flex;flex-flow:column}.fantasy-calendar.full-view.svelte-li8ss6 .month-container.svelte-li8ss6{height:100%}.month-container.svelte-li8ss6.svelte-li8ss6{display:flex}.month-view.svelte-li8ss6.svelte-li8ss6{flex-grow:2}.weeks.svelte-li8ss6.svelte-li8ss6{display:grid;grid-template-rows:auto 1fr}.week-num-container.svelte-li8ss6.svelte-li8ss6{display:grid;grid-template-rows:repeat(var(--calendar-rows), auto);padding:0.25rem 0}.week-num.svelte-li8ss6.svelte-li8ss6{background-color:transparent;border:2px solid transparent;border-radius:4px;color:var(--color-text-day);cursor:pointer;font-size:0.8em;height:100%;padding:2px;position:relative;text-align:center;vertical-align:baseline;overflow:visible}.weekdays.svelte-li8ss6.svelte-li8ss6{display:grid;grid-template-columns:repeat(var(--calendar-columns), 1fr);grid-template-rows:auto;padding:0 0.25rem;gap:2px}.weekday.svelte-li8ss6.svelte-li8ss6{background-color:var(--color-background-heading);color:var(--color-text-heading);font-size:0.6em;letter-spacing:1px;padding:4px;text-transform:uppercase;text-align:center;border:2px solid transparent}hr.svelte-li8ss6.svelte-li8ss6{margin:1rem 0}.moon-container{display:flex;flex-flow:row wrap;align-items:center;justify-content:center}")}function Oh(t,e,n){let a=t.slice();return a[64]=e[n],a}function qh(t,e,n){let a=t.slice();return a[67]=e[n],a}function Nb(t){let e,n,a,r,i,o,l,s,d,u,c;e=new Ch({props:{month:t[6].name,year:t[11],current:t[3].currentDate}}),e.$on("next",t[34]),e.$on("previous",t[35]),e.$on("reset",t[36]),e.$on("settings",t[37]);let h=t[5]&&Rh(t),y=t[9]&&t[9].type=="intercalary"&&!t[14]&&Ph(t),m=t[6].type=="month"&&jh(t);d=new Vn({props:{columns:t[13].length,weeks:t[7],month:t[6],fullView:t[1]}}),d.$on("day-click",t[44]),d.$on("day-doubleclick",t[45]),d.$on("day-context-menu",t[46]),d.$on("event-click",t[47]),d.$on("event-mouseover",t[48]),d.$on("event-context",t[49]);let v=t[10]&&t[10].type=="intercalary"&&!t[14]&&Hh(t);return{c(){$(e.$$.fragment),n=V(),a=T("div"),r=T("div"),h&&h.c(),i=V(),o=T("div"),y&&y.c(),l=V(),m&&m.c(),s=V(),$(d.$$.fragment),u=V(),v&&v.c(),D(r,"class","weeks svelte-li8ss6"),D(o,"class","month-view svelte-li8ss6"),D(a,"class","month-container svelte-li8ss6")},m(p,A){J(e,p,A),q(p,n,A),q(p,a,A),E(a,r),h&&h.m(r,null),E(a,i),E(a,o),y&&y.m(o,null),E(o,l),m&&m.m(o,null),E(o,s),J(d,o,null),E(o,u),v&&v.m(o,null),c=!0},p(p,A){let w={};A[0]&64&&(w.month=p[6].name),A[0]&2048&&(w.year=p[11]),A[0]&8&&(w.current=p[3].currentDate),e.$set(w),p[5]?h?h.p(p,A):(h=Rh(p),h.c(),h.m(r,null)):h&&(h.d(1),h=null),p[9]&&p[9].type=="intercalary"&&!p[14]?y?(y.p(p,A),A[0]&16896&&R(y,1)):(y=Ph(p),y.c(),R(y,1),y.m(o,l)):y&&(Ee(),H(y,1,1,()=>{y=null}),Ae()),p[6].type=="month"?m?m.p(p,A):(m=jh(p),m.c(),m.m(o,s)):m&&(m.d(1),m=null);let x={};A[0]&8192&&(x.columns=p[13].length),A[0]&128&&(x.weeks=p[7]),A[0]&64&&(x.month=p[6]),A[0]&2&&(x.fullView=p[1]),d.$set(x),p[10]&&p[10].type=="intercalary"&&!p[14]?v?(v.p(p,A),A[0]&17408&&R(v,1)):(v=Hh(p),v.c(),R(v,1),v.m(o,null)):v&&(Ee(),H(v,1,1,()=>{v=null}),Ae())},i(p){c||(R(e.$$.fragment,p),R(y),R(d.$$.fragment,p),R(v),c=!0)},o(p){H(e.$$.fragment,p),H(y),H(d.$$.fragment,p),H(v),c=!1},d(p){Q(e,p),p&&O(n),p&&O(a),h&&h.d(),y&&y.d(),m&&m.d(),Q(d),v&&v.d()}}}function Mb(t){let e,n;return e=new Ih({props:{year:t[12],columns:t[13].length,current:t[3].displayedDate}}),e.$on("next",t[25]),e.$on("previous",t[26]),e.$on("reset",t[27]),e.$on("settings",t[28]),e.$on("day-click",t[29]),e.$on("day-doubleclick",t[30]),e.$on("day-context-menu",t[31]),e.$on("event-click",t[32]),e.$on("event-mouseover",t[33]),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,r){let i={};r[0]&4096&&(i.year=a[12]),r[0]&8192&&(i.columns=a[13].length),r[0]&8&&(i.current=a[3].displayedDate),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}function Ib(t){let e,n;return e=new Fh({props:{year:t[12],fullView:t[1],columns:t[13].length,current:t[3].displayedDate}}),e.$on("next",t[16]),e.$on("previous",t[17]),e.$on("reset",t[18]),e.$on("settings",t[19]),e.$on("day-click",t[20]),e.$on("day-doubleclick",t[21]),e.$on("day-context-menu",t[22]),e.$on("event-click",t[23]),e.$on("event-mouseover",t[24]),{c(){$(e.$$.fragment)},m(a,r){J(e,a,r),n=!0},p(a,r){let i={};r[0]&4096&&(i.year=a[12]),r[0]&2&&(i.fullView=a[1]),r[0]&8192&&(i.columns=a[13].length),r[0]&8&&(i.current=a[3].displayedDate),e.$set(i)},i(a){n||(R(e.$$.fragment,a),n=!0)},o(a){H(e.$$.fragment,a),n=!1},d(a){Q(e,a)}}}function Rh(t){let e,n,a,r=[...Array(t[7]).keys()],i=[];for(let o=0;o{s[y]=null}),Ae(),a=s[n],a?a.p(c,h):(a=s[n]=l[n](c),a.c()),R(a,1),a.m(e,null)),(!o||h[0]&8)&&tt(e,"--calendar-columns",c[3].weekdays.length),(!o||h[0]&8)&&tt(e,"--column-widths",1/c[3].weekdays.length*100+"%"),(!o||h[0]&8)&&tt(e,"--calendar-rows",c[3].weeksPerCurrentMonth),h[0]&2&&ge(e,"full-view",c[1]),h[0]&4&&ge(e,"year-view",c[2]),c[0]&&!c[1]?u?(u.p(c,h),h[0]&3&&R(u,1)):(u=Wh(c),u.c(),R(u,1),u.m(i.parentNode,i)):u&&(Ee(),H(u,1,1,()=>{u=null}),Ae())},i(c){o||(R(a),R(u),o=!0)},o(c){H(a),H(u),o=!1},d(c){c&&O(e),s[n].d(),c&&O(r),u&&u.d(c),c&&O(i)}}}function qb(t,e,n){let a,r,i,o,l,s,d,u,c,{fullView:h=!1}=e,{dayView:y=!1}=e,{yearView:m=!1}=e,{calendar:v}=e,{moons:p}=e,{displayDayNumber:A}=e,{displayWeeks:w}=e,x=_a(y),B=_a(p),C=_a(v);Zn("dayView",x),Zn("displayMoons",B),Zn("calendar",C),v.on("month-update",()=>{n(12,i=v.displayed.year),n(11,o=v.getNameForYear(v.displayed.year)),n(6,l=v.currentMonth),n(10,s=v.nextMonth),n(9,d=v.previousMonth),n(7,c=v.weeksOfMonth(l)),n(8,u=v.weekNumbersOfMonth(l))});let F=()=>v.goToNextYear(),_=()=>v.goToPreviousYear();function N(te){ce.call(this,t,te)}function k(te){ce.call(this,t,te)}function P(te){ce.call(this,t,te)}function S(te){ce.call(this,t,te)}function W(te){ce.call(this,t,te)}function K(te){ce.call(this,t,te)}function le(te){ce.call(this,t,te)}let oe=()=>v.goToNextYear(),me=()=>v.goToPreviousYear();function X(te){ce.call(this,t,te)}function z(te){ce.call(this,t,te)}function he(te){ce.call(this,t,te)}function De(te){ce.call(this,t,te)}function ie(te){ce.call(this,t,te)}function Ce(te){ce.call(this,t,te)}function xe(te){ce.call(this,t,te)}let et=()=>v.goToNext(),je=()=>v.goToPrevious();function yt(te){ce.call(this,t,te)}function Tt(te){ce.call(this,t,te)}function $e(te){ce.call(this,t,te)}function Be(te){ce.call(this,t,te)}function Ve(te){ce.call(this,t,te)}function jt(te){ce.call(this,t,te)}function Ut(te){ce.call(this,t,te)}function St(te){ce.call(this,t,te)}function Ot(te){ce.call(this,t,te)}function vn(te){ce.call(this,t,te)}function zt(te){ce.call(this,t,te)}function nn(te){ce.call(this,t,te)}function da(te){ce.call(this,t,te)}function fa(te){ce.call(this,t,te)}function Bi(te){ce.call(this,t,te)}function Ni(te){ce.call(this,t,te)}function Mi(te){ce.call(this,t,te)}function Ii(te){ce.call(this,t,te)}function Oi(te){ce.call(this,t,te)}function qi(te){ce.call(this,t,te)}let Ri=()=>n(0,y=!1);function Li(te){ce.call(this,t,te)}function Pi(te){ce.call(this,t,te)}function ji(te){ce.call(this,t,te)}function Vi(te){ce.call(this,t,te)}return t.$$set=te=>{"fullView"in te&&n(1,h=te.fullView),"dayView"in te&&n(0,y=te.dayView),"yearView"in te&&n(2,m=te.yearView),"calendar"in te&&n(3,v=te.calendar),"moons"in te&&n(15,p=te.moons),"displayDayNumber"in te&&n(4,A=te.displayDayNumber),"displayWeeks"in te&&n(5,w=te.displayWeeks)},t.$$.update=()=>{if(t.$$.dirty[0]&4){e:m&&n(0,y=!1)}if(t.$$.dirty[0]&1){e:x.set(y)}if(t.$$.dirty[0]&32768){e:B.set(p)}if(t.$$.dirty[0]&8){e:C.set(v)}if(t.$$.dirty[0]&8){e:n(14,a=v.plugin.data.showIntercalary)}if(t.$$.dirty[0]&8){e:n(13,r=v.weekdays)}if(t.$$.dirty[0]&8){e:n(12,i=v.displayed.year)}if(t.$$.dirty[0]&8){e:n(11,o=v.getNameForYear(v.displayed.year))}if(t.$$.dirty[0]&8){e:n(6,l=v.currentMonth)}if(t.$$.dirty[0]&8){e:n(10,s=v.nextMonth)}if(t.$$.dirty[0]&8){e:n(9,d=v.previousMonth)}if(t.$$.dirty[0]&72){e:n(8,u=v.weekNumbersOfMonth(l))}if(t.$$.dirty[0]&72){e:n(7,c=v.weeksOfMonth(l))}},[y,h,m,v,A,w,l,c,u,d,s,o,i,r,a,p,F,_,N,k,P,S,W,K,le,oe,me,X,z,he,De,ie,Ce,xe,et,je,yt,Tt,$e,Be,Ve,jt,Ut,St,Ot,vn,zt,nn,da,fa,Bi,Ni,Mi,Ii,Oi,qi,Ri,Li,Pi,ji,Vi]}var Gh=class extends de{constructor(e){super();fe(this,e,qb,Ob,se,{fullView:1,dayView:0,yearView:2,calendar:3,moons:15,displayDayNumber:4,displayWeeks:5},Bb,[-1,-1,-1])}},Uh=Gh;var Kt="FANTASY_CALENDAR",ca="FANTASY_CALENDAR_FULL_VIEW";(0,qe.addIcon)(Kt,'');(0,qe.addIcon)("fantasy-calendar-reveal",'');var Hn=class extends qe.ItemView{constructor(e,n,a={}){super(n);this.plugin=e;this.leaf=n;this.options=a;this.updateMe=!0;this.yearView=!1;this.moons=!0;this.containerEl.addClass("fantasy-calendar-view"),this.contentEl.addClass("fantasy-calendar-view-content"),this.registerEvent(this.plugin.app.workspace.on("fantasy-calendars-updated",()=>{this.plugin.onSettingsLoad(()=>this.updateCalendars())})),this.registerEvent(this.plugin.app.workspace.on("layout-change",()=>{!this._app||this._app.$set({fullView:this.full,...this.full?{dayView:!1}:{}})}))}get root(){return this.leaf.getRoot()}get full(){return!("collapse"in this.root)}updateCalendars(){if(!this.updateMe){this.updateMe=!0;return}if(!this.plugin.data.calendars.length){this._app?.$destroy(),this.contentEl.empty(),this.noCalendarEl=this.contentEl.createDiv("fantasy-no-calendar"),this.noCalendarEl.createSpan({text:"No calendars created! Create a calendar to see it here."});return}let e=this.plugin.data.calendars.find(n=>n.id==this.calendar?.id)??this.plugin.defaultCalendar??this.plugin.data.calendars[0];this.helper&&this.helper.calendar.id==e.id?this.update(e):this.setCurrentCalendar(e)}update(e){this.calendar=e,this.helper.update(this.calendar),this.registerCalendarInterval(),this._app?this._app.$set({calendar:this.helper}):this.build()}async registerCalendarInterval(){if(this.interval&&(clearInterval(this.interval),this.interval=null),this.calendar.static.incrementDay){let e=new Date;this.calendar.date||(this.calendar.date=e.valueOf());let n=Do(new Date(this.calendar.date),e);if(n>=1){for(let a=0;a{Do(new Date,e)>=1&&(this.helper.goToNextCurrentDay(),this.helper.current,e=new Date,this.calendar.date=e.valueOf(),await this.saveCalendars())},60*1e3),this.registerInterval(this.interval)}}async saveCalendars(){this.updateMe=!1,await this.plugin.saveCalendar()}setCurrentCalendar(e){this.noCalendarEl?.detach(),this.calendar=e,this.moons=this.calendar.static.displayMoons,this.dayNumber=this.calendar.static.displayDayNumber,this.helper=new Pa(this.calendar,this.plugin),this.registerCalendarInterval(),this.build()}createEventForDay(e){let n=new Oa(this.plugin,this.calendar,null,e);n.onClose=async()=>{!n.saved||(this.calendar.events.push(n.event),this.helper.addEvent(n.event),await this.saveCalendars(),this._app.$set({calendar:this.helper}),this.triggerHelperEvent("day-update"))},n.open()}async onOpen(){this.plugin.onSettingsLoad(()=>this.updateCalendars())}build(){this.contentEl.empty(),this._app=new Uh({target:this.contentEl,props:{calendar:this.helper,fullView:this.full,yearView:this.yearView,moons:this.moons,displayWeeks:this.helper.displayWeeks,displayDayNumber:this.dayNumber}}),this._app.$on("day-click",e=>{let n=e.detail;n.events.length||this.createEventForDay(n.date)}),this._app.$on("day-doubleclick",e=>{let n=e.detail;!n.events.length||(this.helper.viewing.day=n.number,this.helper.viewing.month=n.month.number,this.helper.viewing.year=n.month.year,this.yearView=!1,this._app.$set({yearView:!1}),this._app.$set({dayView:!0}),this.triggerHelperEvent("day-update",!1))}),this._app.$on("day-context-menu",e=>{let{day:n,evt:a}=e.detail,r=new qe.Menu(this.app);r.setNoIcon(),this.full||r.addItem(i=>{i.setTitle("Open Day").onClick(()=>{this.openDay({day:n.number,month:this.helper.displayed.month,year:this.helper.displayed.year})})}),r.addItem(i=>{i.setTitle("Set as Today").onClick(async()=>{this.calendar.current=n.date,this.helper.current.day=n.number,this.triggerHelperEvent("day-update"),await this.saveCalendars()})}),r.addItem(i=>i.setTitle("New Event").onClick(()=>{this.createEventForDay(n.date)})),r.showAtMouseEvent(a)}),this._app.$on("settings",e=>{let n=e.detail,a=new qe.Menu(this.app);a.setNoIcon(),a.addItem(r=>{r.setTitle(`${this.calendar.displayWeeks?"Hide":"Show"} Weeks`).onClick(async()=>{this.calendar.displayWeeks=!this.calendar.displayWeeks,this.helper.update(this.calendar),this._app.$set({displayWeeks:this.calendar.displayWeeks}),await this.saveCalendars()})}),a.addItem(r=>{r.setTitle(`Open ${this.yearView?"Month":"Year"}`).onClick(()=>{this.yearView=!this.yearView,this._app.$set({yearView:this.yearView})})}),a.addItem(r=>{r.setTitle(this.moons?"Hide Moons":"Display Moons").onClick(()=>{this.toggleMoons()})}),a.addItem(r=>{r.setTitle(this.dayNumber?"Hide Day Number":"Display Day Number").onClick(async()=>{this.dayNumber=!this.dayNumber,this.calendar.static.displayDayNumber=this.dayNumber,this._app.$set({displayDayNumber:this.dayNumber}),await this.saveCalendars()})}),a.addItem(r=>{r.setTitle("View Day"),r.onClick(()=>{this.openDate()})}),a.addItem(r=>{r.setTitle("Switch Calendars"),r.setDisabled(this.plugin.data.calendars.length<=1),r.onClick(()=>{let i=new zh(this.plugin,this.calendar);i.onClose=()=>{!i.confirmed||this.setCurrentCalendar(i.calendar)},i.open()})}),a.showAtMouseEvent(n)}),this._app.$on("event-click",e=>{let{event:n,modifier:a}=e.detail;if(n.note){let r=[];this.app.workspace.iterateAllLeaves(i=>{i.view instanceof qe.MarkdownView&&i.view.file.basename===n.note&&r.push(i)}),r.length?this.app.workspace.setActiveLeaf(r[0]):this.app.workspace.openLinkText(n.note,"",this.full||a)}else new Zh(n,this.plugin).open()}),this._app.$on("event-mouseover",e=>{if(!this.plugin.data.eventPreview)return;let{target:n,event:a}=e.detail;a.note&&this.app.workspace.trigger("link-hover",this,n,a.note,"")}),this._app.$on("event-context",e=>{let{evt:n,event:a}=e.detail,r=new qe.Menu(this.app);r.setNoIcon(),a.note||r.addItem(i=>{i.setTitle("Create Note").onClick(async()=>{let o=this.app.workspace.getActiveFile()?.path,l=o?this.app.fileManager.getNewFileParent(o)?.parent??"/":"/",s=`${a.date.year}-${a.date.month+1}-${a.date.day}`,d;a.end&&(d=`${a.end.year}-${a.end.month+1}-${a.end.day}`);let u={"fc-calendar":this.calendar.name,"fc-date":s,...a.end?{"fc-end":d}:{},...a.category?{"fc-category":this.calendar.categories.find(h=>h.id==a.category)?.name}:{},"fc-display-name":a.name};a.note=(0,qe.normalizePath)(`${l}/${a.name}.md`);let c=this.app.vault.getAbstractFileByPath(a.note);if(c||(c=await this.app.vault.create(a.note,`---
${(0,qe.stringifyYaml)(u)}
---`)),await this.saveCalendars(),c instanceof qe.TFile){let y=this.app.workspace.getLeavesOfType("markdown").find(m=>{m.view instanceof qe.FileView&&m.view.file.path==a.note});y?this.app.workspace.setActiveLeaf(y):await this.app.workspace.getUnpinnedLeaf().openFile(c,{active:!0})}})}),r.addItem(i=>{i.setTitle("Edit Event").onClick(()=>{let o=new Oa(this.plugin,this.calendar,a);o.onClose=async()=>{if(!o.saved)return;let l=this.calendar.events.find(s=>s.id==a.id);this.calendar.events.splice(this.calendar.events.indexOf(l),1,o.event),this.helper.refreshMonth(o.event.date.month,o.event.date.year),(o.event.date.month!=l.date.month||o.event.date.year!=l.date.year)&&this.helper.refreshMonth(l.date.month,l.date.year),await this.saveCalendars(),this._app.$set({calendar:this.helper}),this.triggerHelperEvent("day-update")},o.open()})}),r.addItem(i=>{i.setTitle("Delete Event").onClick(async()=>{if(!this.plugin.data.exit.event&&!await Bd(this.plugin))return;let o=this.calendar.events.find(l=>l.id==a.id);this.calendar.events.splice(this.calendar.events.indexOf(o),1),this.helper.refreshMonth(o.date.month,o.date.year),await this.saveCalendars(),this._app.$set({calendar:this.helper}),this.triggerHelperEvent("day-update")})}),r.showAtMouseEvent(n)}),this._app.$on("event",e=>{let n=e.detail;this.createEventForDay(n)}),this._app.$on("reset",()=>{this.helper.reset(),this.yearView=!1,this._app.$set({yearView:!1}),this._app.$set({dayView:!0}),this.triggerHelperEvent("day-update",!1)})}openDay(e){this.helper.viewing.day=e.day,this.helper.viewing.month=e.month,this.helper.viewing.year=e.year,this.yearView=!1,this._app.$set({yearView:!1}),this._app.$set({dayView:!0}),this.triggerHelperEvent("day-update",!1)}openDate(){if(!this.helper||!this.calendar)return;let e=new Yh(this.plugin,this.calendar);e.onClose=async()=>{!e.confirmed||(e.setCurrent?(this.calendar.current={...e.date},this.setCurrentCalendar(this.calendar)):(this.helper.displayed={...e.date},this.helper.update(),this._app.$set({calendar:this.helper})),await this.saveCalendars())},e.open()}toggleMoons(){this.moons=!this.moons,this._app.$set({moons:this.moons})}async onClose(){}onResize(){this.triggerHelperEvent("view-resized",!1)}getViewType(){return Kt}getDisplayText(){return"Fantasy Calendar"}getIcon(){return Kt}triggerHelperEvent(e,n=!0){!this.helper||(this.helper.trigger(e),n&&(this.updateMe=!1,this.plugin.app.workspace.trigger("fantasy-calendars-updated")))}async onunload(){}},zh=class extends it{constructor(e,n){super(e.app);this.plugin=e;this.calendar=n;this.confirmed=!1}async display(){this.contentEl.empty(),this.contentEl.createEl("h4",{text:"Switch Calendars"});let e=this.contentEl.createDiv("fantasy-calendar-dropdown");e.createEl("label",{text:"Choose a Calendar"}),new qe.DropdownComponent(e).onChange(r=>{this.calendar=this.plugin.data.calendars.find(i=>i.id==r)}).addOptions(Object.fromEntries(this.plugin.data.calendars.map(r=>[r.id,r.name]))).setValue(this.calendar?this.calendar.id:null);let a=this.contentEl.createDiv("fantasy-calendar-confirm-buttons");new qe.ButtonComponent(a).setButtonText("Switch").setCta().onClick(()=>{this.confirmed=!0,this.close()}),new qe.ButtonComponent(a).setButtonText("Cancel").onClick(()=>{this.close()})}onOpen(){this.display()}},Yh=class extends it{constructor(e,n){super(e.app);this.plugin=e;this.calendar=n;this.confirmed=!1;this.setCurrent=!1;this.date={...this.calendar.current},this.tempCurrentDays=this.date.day}async display(){this.contentEl.empty(),this.contentEl.createEl("h4",{text:"View Day"}),this.dateFieldEl=this.contentEl.createDiv("fantasy-calendar-date-fields"),this.buildDateFields(),new qe.Setting(this.contentEl).setName("Set as Current Date").setDesc("Also set this date to today's date.").addToggle(n=>n.setValue(this.setCurrent).onChange(a=>{this.setCurrent=a}));let e=this.contentEl.createDiv("fantasy-calendar-confirm-buttons");new qe.ButtonComponent(e).setButtonText("Switch").setCta().onClick(()=>{this.confirmed=!0,this.date.day=this.tempCurrentDays,this.close()}),new qe.ButtonComponent(e).setButtonText("Cancel").onClick(()=>{this.close()})}buildDateFields(){this.dateFieldEl.empty(),this.tempCurrentDays!=null&&this.date.month!=null&&this.tempCurrentDays>this.calendar.static.months[this.date.month]?.length&&(this.tempCurrentDays=this.calendar.static.months[this.date.month]?.length);let e=this.dateFieldEl.createDiv("fantasy-calendar-date-field");e.createEl("label",{text:"Day"}),new qe.TextComponent(e).setPlaceholder("Day").setValue(`${this.tempCurrentDays}`).setDisabled(this.date.month==null).onChange(i=>{if(Number(i)<1||Number(i)>this.calendar.static.months[this.date.month]?.length){new qe.Notice(`The current day must be between 1 and ${this.calendar.static.months[this.date.month].length}`),this.tempCurrentDays=this.date.day,this.buildDateFields();return}this.tempCurrentDays=Number(i)}).inputEl.setAttr("type","number");let a=this.dateFieldEl.createDiv("fantasy-calendar-date-field");a.createEl("label",{text:"Month"}),new qe.DropdownComponent(a).addOptions(Object.fromEntries([["select","Select Month"],...this.calendar.static.months.map(i=>[i.name,i.name])])).setValue(this.date.month!=null?this.calendar.static.months[this.date.month].name:"select").onChange(i=>{i==="select"&&(this.date.month=null);let o=this.calendar.static.months.find(l=>l.name==i);this.date.month=this.calendar.static.months.indexOf(o),this.buildDateFields()});let r=this.dateFieldEl.createDiv("fantasy-calendar-date-field");if(r.createEl("label",{text:"Year"}),this.calendar.static.useCustomYears){let i=new qe.DropdownComponent(r);(this.calendar.static.years??[]).forEach(o=>{i.addOption(o.id,o.name)}),this.date.year>this.calendar.static.years?.length&&(this.date.year=this.calendar.static.years?this.calendar.static.years.length:null),i.setValue(this.calendar.static.years?.[this.date.year-1]?.id).onChange(o=>{this.date.year=this.calendar.static.years.findIndex(l=>l.id==o)+1})}else new qe.TextComponent(r).setPlaceholder("Year").setValue(`${this.date.year}`).onChange(o=>{this.date.year=Number(o)}).inputEl.setAttr("type","number")}onOpen(){this.display()}},Zh=class extends it{constructor(e,n){super(n.app);this.event=e;this.plugin=n;this.containerEl.addClass("fantasy-calendar-view-event")}async display(){this.contentEl.empty(),this.contentEl.createEl("h4",{text:this.event.name}),await qe.MarkdownRenderer.renderMarkdown(this.event.description,this.contentEl,this.event.note,null)}async onOpen(){await this.display()}};var p9=Fe(require("fs")),Qt=Fe(require("obsidian"));function xs(t){let e=new Blob([t],{type:"text/javascript"}),n=URL.createObjectURL(e),a=new Worker(n,{name:"Fantasy Calendar File Watcher"});return URL.revokeObjectURL(n),a}function Fs(){return xs(`var te=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Re=te(Ae=>{Ae.entityMap={lt:"<",gt:">",amp:"&",quot:'"',apos:"'",Agrave:"\\xC0",Aacute:"\\xC1",Acirc:"\\xC2",Atilde:"\\xC3",Auml:"\\xC4",Aring:"\\xC5",AElig:"\\xC6",Ccedil:"\\xC7",Egrave:"\\xC8",Eacute:"\\xC9",Ecirc:"\\xCA",Euml:"\\xCB",Igrave:"\\xCC",Iacute:"\\xCD",Icirc:"\\xCE",Iuml:"\\xCF",ETH:"\\xD0",Ntilde:"\\xD1",Ograve:"\\xD2",Oacute:"\\xD3",Ocirc:"\\xD4",Otilde:"\\xD5",Ouml:"\\xD6",Oslash:"\\xD8",Ugrave:"\\xD9",Uacute:"\\xDA",Ucirc:"\\xDB",Uuml:"\\xDC",Yacute:"\\xDD",THORN:"\\xDE",szlig:"\\xDF",agrave:"\\xE0",aacute:"\\xE1",acirc:"\\xE2",atilde:"\\xE3",auml:"\\xE4",aring:"\\xE5",aelig:"\\xE6",ccedil:"\\xE7",egrave:"\\xE8",eacute:"\\xE9",ecirc:"\\xEA",euml:"\\xEB",igrave:"\\xEC",iacute:"\\xED",icirc:"\\xEE",iuml:"\\xEF",eth:"\\xF0",ntilde:"\\xF1",ograve:"\\xF2",oacute:"\\xF3",ocirc:"\\xF4",otilde:"\\xF5",ouml:"\\xF6",oslash:"\\xF8",ugrave:"\\xF9",uacute:"\\xFA",ucirc:"\\xFB",uuml:"\\xFC",yacute:"\\xFD",thorn:"\\xFE",yuml:"\\xFF",nbsp:"\\xA0",iexcl:"\\xA1",cent:"\\xA2",pound:"\\xA3",curren:"\\xA4",yen:"\\xA5",brvbar:"\\xA6",sect:"\\xA7",uml:"\\xA8",copy:"\\xA9",ordf:"\\xAA",laquo:"\\xAB",not:"\\xAC",shy:"\\xAD\\xAD",reg:"\\xAE",macr:"\\xAF",deg:"\\xB0",plusmn:"\\xB1",sup2:"\\xB2",sup3:"\\xB3",acute:"\\xB4",micro:"\\xB5",para:"\\xB6",middot:"\\xB7",cedil:"\\xB8",sup1:"\\xB9",ordm:"\\xBA",raquo:"\\xBB",frac14:"\\xBC",frac12:"\\xBD",frac34:"\\xBE",iquest:"\\xBF",times:"\\xD7",divide:"\\xF7",forall:"\\u2200",part:"\\u2202",exist:"\\u2203",empty:"\\u2205",nabla:"\\u2207",isin:"\\u2208",notin:"\\u2209",ni:"\\u220B",prod:"\\u220F",sum:"\\u2211",minus:"\\u2212",lowast:"\\u2217",radic:"\\u221A",prop:"\\u221D",infin:"\\u221E",ang:"\\u2220",and:"\\u2227",or:"\\u2228",cap:"\\u2229",cup:"\\u222A",int:"\\u222B",there4:"\\u2234",sim:"\\u223C",cong:"\\u2245",asymp:"\\u2248",ne:"\\u2260",equiv:"\\u2261",le:"\\u2264",ge:"\\u2265",sub:"\\u2282",sup:"\\u2283",nsub:"\\u2284",sube:"\\u2286",supe:"\\u2287",oplus:"\\u2295",otimes:"\\u2297",perp:"\\u22A5",sdot:"\\u22C5",Alpha:"\\u0391",Beta:"\\u0392",Gamma:"\\u0393",Delta:"\\u0394",Epsilon:"\\u0395",Zeta:"\\u0396",Eta:"\\u0397",Theta:"\\u0398",Iota:"\\u0399",Kappa:"\\u039A",Lambda:"\\u039B",Mu:"\\u039C",Nu:"\\u039D",Xi:"\\u039E",Omicron:"\\u039F",Pi:"\\u03A0",Rho:"\\u03A1",Sigma:"\\u03A3",Tau:"\\u03A4",Upsilon:"\\u03A5",Phi:"\\u03A6",Chi:"\\u03A7",Psi:"\\u03A8",Omega:"\\u03A9",alpha:"\\u03B1",beta:"\\u03B2",gamma:"\\u03B3",delta:"\\u03B4",epsilon:"\\u03B5",zeta:"\\u03B6",eta:"\\u03B7",theta:"\\u03B8",iota:"\\u03B9",kappa:"\\u03BA",lambda:"\\u03BB",mu:"\\u03BC",nu:"\\u03BD",xi:"\\u03BE",omicron:"\\u03BF",pi:"\\u03C0",rho:"\\u03C1",sigmaf:"\\u03C2",sigma:"\\u03C3",tau:"\\u03C4",upsilon:"\\u03C5",phi:"\\u03C6",chi:"\\u03C7",psi:"\\u03C8",omega:"\\u03C9",thetasym:"\\u03D1",upsih:"\\u03D2",piv:"\\u03D6",OElig:"\\u0152",oelig:"\\u0153",Scaron:"\\u0160",scaron:"\\u0161",Yuml:"\\u0178",fnof:"\\u0192",circ:"\\u02C6",tilde:"\\u02DC",ensp:"\\u2002",emsp:"\\u2003",thinsp:"\\u2009",zwnj:"\\u200C",zwj:"\\u200D",lrm:"\\u200E",rlm:"\\u200F",ndash:"\\u2013",mdash:"\\u2014",lsquo:"\\u2018",rsquo:"\\u2019",sbquo:"\\u201A",ldquo:"\\u201C",rdquo:"\\u201D",bdquo:"\\u201E",dagger:"\\u2020",Dagger:"\\u2021",bull:"\\u2022",hellip:"\\u2026",permil:"\\u2030",prime:"\\u2032",Prime:"\\u2033",lsaquo:"\\u2039",rsaquo:"\\u203A",oline:"\\u203E",euro:"\\u20AC",trade:"\\u2122",larr:"\\u2190",uarr:"\\u2191",rarr:"\\u2192",darr:"\\u2193",harr:"\\u2194",crarr:"\\u21B5",lceil:"\\u2308",rceil:"\\u2309",lfloor:"\\u230A",rfloor:"\\u230B",loz:"\\u25CA",spades:"\\u2660",clubs:"\\u2663",hearts:"\\u2665",diams:"\\u2666"}});var Pe=te(me=>{var pe=/[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/,Oe=new RegExp("[\\\\-\\\\.0-9"+pe.source.slice(1,-1)+"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]"),Se=new RegExp("^"+pe.source+Oe.source+"*(?::"+pe.source+Oe.source+"*)?$"),j=0,S=1,F=2,G=3,U=4,L=5,Q=6,ne=7;function P(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,P)}P.prototype=new Error;P.prototype.name=P.name;function Me(){}Me.prototype={parse:function(e,t,n){var r=this.domBuilder;r.startDocument(),Ue(t,t={}),vt(e,t,n,r,this.errorHandler),r.endDocument()}};function vt(e,t,n,r,i){function s(E){if(E>65535){E-=65536;var x=55296+(E>>10),dt=56320+(E&1023);return String.fromCharCode(x,dt)}else return String.fromCharCode(E)}function a(E){var x=E.slice(1,-1);return x in n?n[x]:x.charAt(0)==="#"?s(parseInt(x.substr(1).replace("x","0x"))):(i.error("entity not found:"+E),E)}function o(E){if(E>g){var x=e.substring(g,E).replace(/?\\w+;/g,a);p&&c(g),r.characters(x,0,E-g),g=E}}function c(E,x){for(;E>=u&&(x=m.exec(e));)l=x.index,u=l+x[0].length,p.lineNumber++;p.columnNumber=E-l+1}for(var l=0,u=0,m=/.*(?:\\r\\n?|\\n)|.*$/g,p=r.locator,v=[{currentNSMap:t}],_={},g=0;;){try{var d=e.indexOf("<",g);if(d<0){if(!e.substr(g).match(/^\\s*$/)){var O=r.doc,z=O.createTextNode(e.substr(g));O.appendChild(z),r.currentElement=z}return}switch(d>g&&o(d),e.charAt(d+1)){case"/":var h=e.indexOf(">",d+3),f=e.substring(d+2,h),b=v.pop();h<0?(f=e.substring(d+2).replace(/[\\s<].*/,""),i.error("end tag name: "+f+" is not complete:"+b.tagName),h=d+1+f.length):f.match(/\\s)&&(f=f.replace(/[\\s<].*/,""),i.error("end tag name: "+f+" maybe not complete"),h=d+1+f.length);var _e=b.localNSMap,Ce=b.tagName==f,pt=Ce||b.tagName&&b.tagName.toLowerCase()==f.toLowerCase();if(pt){if(r.endElement(b.uri,b.localName,f),_e)for(var mt in _e)r.endPrefixMapping(mt);Ce||i.fatalError("end tag name: "+f+" is not match the current start tagName:"+b.tagName)}else v.push(b);h++;break;case"?":p&&c(d),h=Dt(e,d,r);break;case"!":p&&c(d),h=yt(e,d,r,i);break;default:p&&c(d);var C=new Le,ue=v[v.length-1].currentNSMap,h=gt(e,d,C,ue,a,i),xe=C.length;if(!C.closed&&Nt(e,h,C.tagName,_)&&(C.closed=!0,n.nbsp||i.warning("unclosed xml attribute")),p&&xe){for(var ht=$e(p,{}),le=0;leg?g=h:o(Math.max(d,g)+1)}}function $e(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function gt(e,t,n,r,i,s){function a(v,_,g){v in n.attributeNames&&s.fatalError("Attribute "+v+" redefined"),n.addValue(v,_,g)}for(var o,c,l=++t,u=j;;){var m=e.charAt(l);switch(m){case"=":if(u===S)o=e.slice(t,l),u=G;else if(u===F)u=G;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(u===G||u===S)if(u===S&&(s.warning('attribute value must after "="'),o=e.slice(t,l)),t=l+1,l=e.indexOf(m,t),l>0)c=e.slice(t,l).replace(/?\\w+;/g,i),a(o,c,t-1),u=L;else throw new Error("attribute value no end '"+m+"' match");else if(u==U)c=e.slice(t,l).replace(/?\\w+;/g,i),a(o,c,t),s.warning('attribute "'+o+'" missed start quot('+m+")!!"),t=l+1,u=L;else throw new Error('attribute value must after "="');break;case"/":switch(u){case j:n.setTagName(e.slice(t,l));case L:case Q:case ne:u=ne,n.closed=!0;case U:case S:case F:break;default:throw new Error("attribute invalid close char('/')")}break;case"":return s.error("unexpected end of input"),u==j&&n.setTagName(e.slice(t,l)),l;case">":switch(u){case j:n.setTagName(e.slice(t,l));case L:case Q:case ne:break;case U:case S:c=e.slice(t,l),c.slice(-1)==="/"&&(n.closed=!0,c=c.slice(0,-1));case F:u===F&&(c=o),u==U?(s.warning('attribute "'+c+'" missed quot(")!'),a(o,c.replace(/?\\w+;/g,i),t)):((r[""]!=="http://www.w3.org/1999/xhtml"||!c.match(/^(?:disabled|checked|selected)$/i))&&s.warning('attribute "'+c+'" missed value!! "'+c+'" instead!!'),a(c,c,t));break;case G:throw new Error("attribute value missed!!")}return l;case"\\x80":m=" ";default:if(m<=" ")switch(u){case j:n.setTagName(e.slice(t,l)),u=Q;break;case S:o=e.slice(t,l),u=F;break;case U:var c=e.slice(t,l).replace(/?\\w+;/g,i);s.warning('attribute "'+c+'" missed quot(")!!'),a(o,c,t);case L:u=Q;break}else switch(u){case F:var p=n.tagName;(r[""]!=="http://www.w3.org/1999/xhtml"||!o.match(/^(?:disabled|checked|selected)$/i))&&s.warning('attribute "'+o+'" missed value!! "'+o+'" instead2!!'),a(o,o,t),t=l,u=S;break;case L:s.warning('attribute space is required"'+o+'"!!');case Q:u=S,t=l;break;case G:u=U,t=l;break;case ne:throw new Error("elements closed character '/' and '>' must be connected to")}}l++}}function Fe(e,t,n){for(var r=e.tagName,i=null,s=e.length;s--;){var a=e[s],o=a.qName,c=a.value,p=o.indexOf(":");if(p>0)var l=a.prefix=o.slice(0,p),u=o.slice(p+1),m=l==="xmlns"&&u;else u=o,l=null,m=o==="xmlns"&&"";a.localName=u,m!==!1&&(i==null&&(i={},Ue(n,n={})),n[m]=i[m]=c,a.uri="http://www.w3.org/2000/xmlns/",t.startPrefixMapping(m,c))}for(var s=e.length;s--;){a=e[s];var l=a.prefix;l&&(l==="xml"&&(a.uri="http://www.w3.org/XML/1998/namespace"),l!=="xmlns"&&(a.uri=n[l||""]))}var p=r.indexOf(":");p>0?(l=e.prefix=r.slice(0,p),u=e.localName=r.slice(p+1)):(l=null,u=e.localName=r);var v=e.uri=n[l||""];if(t.startElement(v,u,r,e),e.closed){if(t.endElement(v,u,r),i)for(l in i)t.endPrefixMapping(l)}else return e.currentNSMap=n,e.localNSMap=i,!0}function Et(e,t,n,r,i){if(/^(?:script|textarea)$/i.test(n)){var s=e.indexOf(""+n+">",t),a=e.substring(t+1,s);if(/[&<]/.test(a))return/^script$/i.test(n)?(i.characters(a,0,a.length),s):(a=a.replace(/?\\w+;/g,r),i.characters(a,0,a.length),s)}return t+1}function Nt(e,t,n,r){var i=r[n];return i==null&&(i=e.lastIndexOf(""+n+">"),i",t+4);return s>t?(n.comment(e,t+4,s-t-4),s+3):(r.error("Unclosed comment"),-1)}else return-1;default:if(e.substr(t+3,6)=="CDATA["){var s=e.indexOf("]]>",t+9);return n.startCDATA(),n.characters(e,t+9,s-t-9),n.endCDATA(),s+3}var a=bt(e,t),o=a.length;if(o>1&&/!doctype/i.test(a[0][0])){var c=a[1][0],l=!1,u=!1;o>3&&(/^public$/i.test(a[2][0])?(l=a[3][0],u=o>4&&a[4][0]):/^system$/i.test(a[2][0])&&(u=a[3][0]));var m=a[o-1];return n.startDTD(c,l,u),n.endDTD(),m.index+m[0].length}}return-1}function Dt(e,t,n){var r=e.indexOf("?>",t);if(r){var i=e.substring(t,r).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);if(i){var s=i[0].length;return n.processingInstruction(i[1],i[2]),r+2}else return-1}return-1}function Le(){this.attributeNames={}}Le.prototype={setTagName:function(e){if(!Se.test(e))throw new Error("invalid tagName:"+e);this.tagName=e},addValue:function(e,t,n){if(!Se.test(e))throw new Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:n}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}};function bt(e,t){var n,r=[],i=/'[^']+'|"[^"]+"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;for(i.lastIndex=t,i.exec(e);n=i.exec(e);)if(r.push(n),n[1])return r}me.XMLReader=Me;me.ParseError=P});var we=te(J=>{function W(e,t){for(var n in e)t[n]=e[n]}function w(e,t){var n=e.prototype;if(!(n instanceof t)){let i=function(){};var r=i;i.prototype=t.prototype,i=new i,W(n,i),e.prototype=n=i}n.constructor!=e&&(typeof e!="function"&&console.error("unknow Class:"+e),n.constructor=e)}var wt="http://www.w3.org/1999/xhtml",T={},I=T.ELEMENT_NODE=1,k=T.ATTRIBUTE_NODE=2,re=T.TEXT_NODE=3,ke=T.CDATA_SECTION_NODE=4,Ve=T.ENTITY_REFERENCE_NODE=5,Tt=T.ENTITY_NODE=6,qe=T.PROCESSING_INSTRUCTION_NODE=7,Ye=T.COMMENT_NODE=8,Xe=T.DOCUMENT_NODE=9,ze=T.DOCUMENT_TYPE_NODE=10,R=T.DOCUMENT_FRAGMENT_NODE=11,_t=T.NOTATION_NODE=12,y={},N={},qt=y.INDEX_SIZE_ERR=(N[1]="Index size error",1),Yt=y.DOMSTRING_SIZE_ERR=(N[2]="DOMString size error",2),Ct=y.HIERARCHY_REQUEST_ERR=(N[3]="Hierarchy request error",3),Xt=y.WRONG_DOCUMENT_ERR=(N[4]="Wrong document",4),zt=y.INVALID_CHARACTER_ERR=(N[5]="Invalid character",5),jt=y.NO_DATA_ALLOWED_ERR=(N[6]="No data allowed",6),Gt=y.NO_MODIFICATION_ALLOWED_ERR=(N[7]="No modification allowed",7),xt=y.NOT_FOUND_ERR=(N[8]="Not found",8),Qt=y.NOT_SUPPORTED_ERR=(N[9]="Not supported",9),je=y.INUSE_ATTRIBUTE_ERR=(N[10]="Attribute in use",10),Wt=y.INVALID_STATE_ERR=(N[11]="Invalid state",11),Bt=y.SYNTAX_ERR=(N[12]="Syntax error",12),Zt=y.INVALID_MODIFICATION_ERR=(N[13]="Invalid modification",13),Kt=y.NAMESPACE_ERR=(N[14]="Invalid namespace",14),Jt=y.INVALID_ACCESS_ERR=(N[15]="Invalid access",15);function $(e,t){if(t instanceof Error)var n=t;else n=this,Error.call(this,N[e]),this.message=N[e],Error.captureStackTrace&&Error.captureStackTrace(this,$);return n.code=e,t&&(this.message=this.message+": "+t),n}$.prototype=Error.prototype;W(y,$);function M(){}M.prototype={length:0,item:function(e){return this[e]||null},toString:function(e,t){for(var n=[],r=0;r=0){for(var i=t.length-1;r0},lookupPrefix:function(e){for(var t=this;t;){var n=t._nsMap;if(n){for(var r in n)if(n[r]==e)return r}t=t.nodeType==k?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){for(var t=this;t;){var n=t._nsMap;if(n&&e in n)return n[e];t=t.nodeType==k?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){var t=this.lookupPrefix(e);return t==null}};function Ze(e){return e=="<"&&"<"||e==">"&&">"||e=="&"&&"&"||e=='"'&&"""||""+e.charCodeAt()+";"}W(T,D);W(T,D.prototype);function B(e,t){if(t(e))return!0;if(e=e.firstChild)do if(B(e,t))return!0;while(e=e.nextSibling)}function Z(){}function It(e,t,n){e&&e._inc++;var r=n.namespaceURI;r=="http://www.w3.org/2000/xmlns/"&&(t._nsMap[n.prefix?n.localName:""]=n.value)}function Ke(e,t,n,r){e&&e._inc++;var i=n.namespaceURI;i=="http://www.w3.org/2000/xmlns/"&&delete t._nsMap[n.prefix?n.localName:""]}function de(e,t,n){if(e&&e._inc){e._inc++;var r=t.childNodes;if(n)r[r.length++]=n;else{for(var i=t.firstChild,s=0;i;)r[s++]=i,i=i.nextSibling;r.length=s}}}function Je(e,t){var n=t.previousSibling,r=t.nextSibling;return n?n.nextSibling=r:e.firstChild=r,r?r.previousSibling=n:e.lastChild=n,de(e.ownerDocument,e),t}function He(e,t,n){var r=t.parentNode;if(r&&r.removeChild(t),t.nodeType===R){var i=t.firstChild;if(i==null)return t;var s=t.lastChild}else i=s=t;var a=n?n.previousSibling:e.lastChild;i.previousSibling=a,s.nextSibling=n,a?a.nextSibling=i:e.firstChild=i,n==null?e.lastChild=s:n.previousSibling=s;do i.parentNode=e;while(i!==s&&(i=i.nextSibling));return de(e.ownerDocument||e,e),t.nodeType==R&&(t.firstChild=t.lastChild=null),t}function At(e,t){var n=t.parentNode;if(n){var r=e.lastChild;n.removeChild(t);var r=e.lastChild}var r=e.lastChild;return t.parentNode=e,t.previousSibling=r,t.nextSibling=null,r?r.nextSibling=t:e.firstChild=t,e.lastChild=t,de(e.ownerDocument,e,t),t}Z.prototype={nodeName:"#document",nodeType:Xe,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==R){for(var n=e.firstChild;n;){var r=n.nextSibling;this.insertBefore(n,t),n=r}return e}return this.documentElement==null&&e.nodeType==I&&(this.documentElement=e),He(this,e,t),e.ownerDocument=this,e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),Je(this,e)},importNode:function(e,t){return at(this,e,t)},getElementById:function(e){var t=null;return B(this.documentElement,function(n){if(n.nodeType==I&&n.getAttribute("id")==e)return t=n,!0}),t},getElementsByClassName:function(e){var t=new RegExp("(^|\\\\s)"+e+"(\\\\s|$)");return new V(this,function(n){var r=[];return B(n.documentElement,function(i){i!==n&&i.nodeType==I&&t.test(i.getAttribute("class"))&&r.push(i)}),r})},createElement:function(e){var t=new q;t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.childNodes=new M;var n=t.attributes=new ie;return n._ownerElement=t,t},createDocumentFragment:function(){var e=new se;return e.ownerDocument=this,e.childNodes=new M,e},createTextNode:function(e){var t=new ve;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new ge;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new Ee;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var n=new De;return n.ownerDocument=this,n.tagName=n.target=e,n.nodeValue=n.data=t,n},createAttribute:function(e){var t=new ae;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new ye;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var n=new q,r=t.split(":"),i=n.attributes=new ie;return n.childNodes=new M,n.ownerDocument=this,n.nodeName=t,n.tagName=t,n.namespaceURI=e,r.length==2?(n.prefix=r[0],n.localName=r[1]):n.localName=t,i._ownerElement=n,n},createAttributeNS:function(e,t){var n=new ae,r=t.split(":");return n.ownerDocument=this,n.nodeName=t,n.name=t,n.namespaceURI=e,n.specified=!0,r.length==2?(n.prefix=r[0],n.localName=r[1]):n.localName=t,n}};w(Z,D);function q(){this._nsMap={}}q.prototype={nodeType:I,hasAttribute:function(e){return this.getAttributeNode(e)!=null},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var n=this.ownerDocument.createAttribute(e);n.value=n.nodeValue=""+t,this.setAttributeNode(n)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===R?this.insertBefore(e,null):At(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,t){return this.getAttributeNodeNS(e,t)!=null},getAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);return n&&n.value||""},setAttributeNS:function(e,t,n){var r=this.ownerDocument.createAttributeNS(e,t);r.value=r.nodeValue=""+n,this.setAttributeNode(r)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new V(this,function(t){var n=[];return B(t,function(r){r!==t&&r.nodeType==I&&(e==="*"||r.tagName==e)&&n.push(r)}),n})},getElementsByTagNameNS:function(e,t){return new V(this,function(n){var r=[];return B(n,function(i){i!==n&&i.nodeType===I&&(e==="*"||i.namespaceURI===e)&&(t==="*"||i.localName==t)&&r.push(i)}),r})}};Z.prototype.getElementsByTagName=q.prototype.getElementsByTagName;Z.prototype.getElementsByTagNameNS=q.prototype.getElementsByTagNameNS;w(q,D);function ae(){}ae.prototype.nodeType=k;w(ae,D);function K(){}K.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw new Error(N[Ct])},deleteData:function(e,t){this.replaceData(e,t,"")},replaceData:function(e,t,n){var r=this.data.substring(0,e),i=this.data.substring(e+t);n=r+n+i,this.nodeValue=this.data=n,this.length=n.length}};w(K,D);function ve(){}ve.prototype={nodeName:"#text",nodeType:re,splitText:function(e){var t=this.data,n=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var r=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(r,this.nextSibling),r}};w(ve,K);function ge(){}ge.prototype={nodeName:"#comment",nodeType:Ye};w(ge,K);function Ee(){}Ee.prototype={nodeName:"#cdata-section",nodeType:ke};w(Ee,K);function Ne(){}Ne.prototype.nodeType=ze;w(Ne,D);function et(){}et.prototype.nodeType=_t;w(et,D);function tt(){}tt.prototype.nodeType=Tt;w(tt,D);function ye(){}ye.prototype.nodeType=Ve;w(ye,D);function se(){}se.prototype.nodeName="#document-fragment";se.prototype.nodeType=R;w(se,D);function De(){}De.prototype.nodeType=qe;w(De,D);function nt(){}nt.prototype.serializeToString=function(e,t,n){return rt.call(e,t,n)};D.prototype.toString=rt;function rt(e,t){var n=[],r=this.nodeType==9&&this.documentElement||this,i=r.prefix,s=r.namespaceURI;if(s&&i==null){var i=r.lookupPrefix(s);if(i==null)var a=[{namespace:s,prefix:null}]}return Y(this,n,e,t,a),n.join("")}function it(e,t,n){var r=e.prefix||"",i=e.namespaceURI;if(!r&&!i||r==="xml"&&i==="http://www.w3.org/XML/1998/namespace"||i=="http://www.w3.org/2000/xmlns/")return!1;for(var s=n.length;s--;){var a=n[s];if(a.prefix==r)return a.namespace!=i}return!0}function Y(e,t,n,r,i){if(r)if(e=r(e),e){if(typeof e=="string"){t.push(e);return}}else return;switch(e.nodeType){case I:i||(i=[]);var s=i.length,a=e.attributes,o=a.length,c=e.firstChild,l=e.tagName;n=wt===e.namespaceURI||n,t.push("<",l);for(var u=0;u"),n&&/^script$/i.test(l))for(;c;)c.data?t.push(c.data):Y(c,t,n,r,i),c=c.nextSibling;else for(;c;)Y(c,t,n,r,i),c=c.nextSibling;t.push("",l,">")}else t.push("/>");return;case Xe:case R:for(var c=e.firstChild;c;)Y(c,t,n,r,i),c=c.nextSibling;return;case k:return t.push(" ",e.name,'="',e.value.replace(/[<&"]/g,Ze),'"');case re:return t.push(e.data.replace(/[<&]/g,Ze).replace(/]]>/g,"]]>"));case ke:return t.push("");case Ye:return t.push("");case ze:var g=e.publicId,d=e.systemId;if(t.push("");else if(d&&d!=".")t.push(" SYSTEM ",d,">");else{var O=e.internalSubset;O&&t.push(" [",O,"]"),t.push(">")}return;case qe:return t.push("",e.target," ",e.data,"?>");case Ve:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName)}}function at(e,t,n){var r;switch(t.nodeType){case I:r=t.cloneNode(!1),r.ownerDocument=e;case R:break;case k:n=!0;break}if(r||(r=t.cloneNode(!1)),r.ownerDocument=e,r.parentNode=null,n)for(var i=t.firstChild;i;)r.appendChild(at(e,i,n)),i=i.nextSibling;return r}function be(e,t,n){var r=new t.constructor;for(var i in t){var s=t[i];typeof s!="object"&&s!=r[i]&&(r[i]=s)}switch(t.childNodes&&(r.childNodes=new M),r.ownerDocument=e,r.nodeType){case I:var a=t.attributes,o=r.attributes=new ie,c=a.length;o._ownerElement=r;for(var l=0;l{function ot(e){this.options=e||{locator:{}}}ot.prototype.parseFromString=function(e,t){var n=this.options,r=new St,i=n.domBuilder||new H,s=n.errorHandler,a=n.locator,o=n.xmlns||{},c=/\\/x?html?$/.test(t),l=c?Ot.entityMap:{lt:"<",gt:">",amp:"&",quot:'"',apos:"'"};return a&&i.setDocumentLocator(a),r.errorHandler=Rt(s,i,a),r.domBuilder=n.domBuilder||i,c&&(o[""]="http://www.w3.org/1999/xhtml"),o.xml=o.xml||"http://www.w3.org/XML/1998/namespace",e&&typeof e=="string"?r.parse(e,o,l):r.errorHandler.error("invalid doc source"),i.doc};function Rt(e,t,n){if(!e){if(t instanceof H)return t;e=t}var r={},i=e instanceof Function;n=n||{};function s(a){var o=e[a];!o&&i&&(o=e.length==2?function(c){e(a,c)}:e),r[a]=o&&function(c){o("[xmldom "+a+"] "+c+Te(n))}||function(){}}return s("warning"),s("error"),s("fatalError"),r}function H(){this.cdata=!1}function X(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber}H.prototype={startDocument:function(){this.doc=new $t().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(e,t,n,r){var i=this.doc,s=i.createElementNS(e,n||t),a=r.length;oe(this,s),this.currentElement=s,this.locator&&X(this.locator,s);for(var o=0;o=t+n||t?new java.lang.String(e,t,n)+"":e}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\\w+/g,function(e){H.prototype[e]=function(){return null}});function oe(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t)}var Ot=Re(),lt=Pe(),St=lt.XMLReader,Mt=lt.ParseError,$t=ee.DOMImplementation=we().DOMImplementation;ee.XMLSerializer=we().XMLSerializer;ee.DOMParser=ot;ee.__DOMHandler=H});function ce(e,t){return(e%t+t)%t}function fe(e){return"ID_xyxyxyxyxyxy".replace(/[xy]/g,function(t){var n=Math.random()*16|0,r=t=="x"?n:n&3|8;return r.toString(16)})}var{DOMParser:Ft}=ct(),Ut=/(<(span|div).*?<\\/(span|div)>)/g,A=self,ft=class{constructor(){this.queue=[];this.parsing=!1;this.parseTitle=!1;A.addEventListener("message",t=>{if(t.data.type=="options"){let{defaultCalendar:n,addToDefaultIfMissing:r,format:i,parseTitle:s,debug:a}=t.data;this.addToDefaultIfMissing=r,this.defaultCalendar=n,this.format=i,this.parseTitle=s,this.debug=a,this.debug&&console.debug("Received options message")}}),A.addEventListener("message",t=>{if(t.data.type=="calendars"){let{calendars:n}=t.data;this.calendars=[...n],this.debug&&console.debug("Received calendars message")}}),A.addEventListener("message",t=>{t.data.type=="queue"&&(this.add(...t.data.paths),this.debug&&console.debug(\`Received queue message for \${t.data.paths.length} paths\`))})}add(...t){this.debug&&console.debug(\`Adding \${t.length} paths to queue\`),this.queue.push(...t),this.parsing||this.parse()}async parse(){for(this.parsing=!0;this.queue.length;){let t=this.queue.shift();this.debug&&console.debug(\`Parsing \${t} for calendar events (\${this.queue.length} to go)\`),await this.getFileData(t)}this.parsing=!1,this.debug&&console.info("Parsing complete"),A.postMessage({type:"save"})}async getFileData(t){let n=this;return new Promise(r=>{function i(s){if(s.data.type=="queue"){A.removeEventListener("message",i),r();return}if(s.data.type!="file"||s.data.path!=t)return;A.removeEventListener("message",i);let{data:a,cache:o,allTags:c,file:l}=s.data;n.parseFileForEvents(a,o,c,l),r()}setTimeout(()=>r(),500),A.addEventListener("message",i),A.postMessage({path:t,type:"get"})})}getDataFromFrontmatter(t){let n,r,i;return t&&"fc-ignore"in t?{}:(t&&(n=t==null?void 0:t["fc-calendar"],r=t==null?void 0:t["fc-category"],i=t==null?void 0:t["fc-display-name"]),this.addToDefaultIfMissing&&(!n||!n.length)&&(n=this.defaultCalendar),n=n==null?void 0:n.toLowerCase(),{calendar:this.calendars.find(a=>n==a.name.toLowerCase()),fcCategory:r,eventDisplayName:i})}removeEventsFromFile(t){for(let n of this.calendars)for(let r=0;rh.replace(/#/,"")).includes(o.timelineTag.replace(/#/,""))&&(u=this.parseTimelineEvents(o,t,i,c),s.push(...u));let m=this.parseFrontmatterEvents(o,c,a,i,l);if(s.push(...m),!s||!s.length){this.removeEventsFromFile(i.path);return}let p=0;for(let h of s){let f=o.events.find(b=>b.note==i.path&&(!h.timestamp||b.timestamp==h.timestamp));(f==null?void 0:f.date.day)==h.date.day&&(f==null?void 0:f.date.month)==h.date.month&&(f==null?void 0:f.date.year)==h.date.year&&((v=f==null?void 0:f.end)==null?void 0:v.day)==((_=h.end)==null?void 0:_.day)&&((g=f==null?void 0:f.end)==null?void 0:g.month)==((d=h.end)==null?void 0:d.month)&&((O=f==null?void 0:f.end)==null?void 0:O.year)==((z=h.end)==null?void 0:z.year)&&(f==null?void 0:f.category)==h.category&&(f==null?void 0:f.name)==h.name&&(!h.timestamp&&!(f==null?void 0:f.timestamp)||(f==null?void 0:f.timestamp)==h.timestamp)||(A.postMessage({type:"update",id:o.id,index:f?o.events.findIndex(b=>b.id==(f==null?void 0:f.id)):-1,event:h,original:f}),p++)}this.debug&&s.length>0&&console.info(\`\${p}/\${s.length} (\${m.length} from frontmatter, \${u.length} from timelines) event operations completed on \${o.name} for \${i.basename}\`)}parseFrontmatterEvents(t,n,r,i,s){let{date:a,end:o}=this.getDates(r,this.parseTitle?i.basename:"");if(!a)return[];if((a==null?void 0:a.month)&&typeof(a==null?void 0:a.month)=="string"){let u=t.static.months.find(m=>m.name==a.month);u?a.month=t.static.months.indexOf(u):a.month=null}else(a==null?void 0:a.month)&&typeof(a==null?void 0:a.month)=="number"&&(a.month=ce(a.month-1,t.static.months.length));if((o==null?void 0:o.month)&&typeof(o==null?void 0:o.month)=="string"){let u=t.static.months.find(m=>m.name==o.month);u?o.month=t.static.months.indexOf(u):o.month=null}else(o==null?void 0:o.month)&&typeof(o==null?void 0:o.month)=="number"&&(o.month=ce(o.month-1,t.static.months.length));let c=Number(\`\${a.year}\${a.month}\${a.day}00\`),l=t.categories.find(u=>(u==null?void 0:u.name)==n);return[{id:fe(6),name:s!=null?s:i.basename,note:i.path,date:a,end:o,category:l==null?void 0:l.id,description:"",auto:!0}]}parseTimelineEvents(t,n,r,i){var o;let s=[],a=new Ft;for(let c of n.matchAll(Ut)){let l=a.parseFromString(c[0],"text/html"),u={class:l.documentElement.getAttribute("class"),dataset:{date:l.documentElement.getAttribute("data-date"),title:l.documentElement.getAttribute("data-title"),class:l.documentElement.getAttribute("data-class"),end:l.documentElement.getAttribute("data-end")},content:l.documentElement.textContent};if(u.class!=="ob-timelines"||!u.dataset.date)continue;let m=Number(u.dataset.date[0]=="-"?+u.dataset.date.substring(1,u.dataset.date.length).split("-").join("")*-1:+u.dataset.date.split("-").join("")),p=u.dataset.date.split(/(?(d==null?void 0:d.name)==u.dataset.class);s.push({id:fe(6),name:(o=u.dataset.title)!=null?o:r.basename,note:r.path,date:v,end:_,timestamp:m,category:g==null?void 0:g.id,description:u.content,auto:!0})}return s}parseDate(t){var n;if(typeof t=="string"){if(!/\\d+[./-]\\d+[./-]\\d+/.test(t))return;try{let[r]=(n=t.match(/\\d+[./-]\\d+[./-]\\d+/))!=null?n:[];if(!r)return;let i=r.split(/[.\\-\\/]/).map(a=>Number(a)),s=[...new Set(this.format.replace(/[^\\w]/g,"").toUpperCase().split(""))];return{year:i[s.indexOf("Y")],month:i[s.indexOf("M")],day:i[s.indexOf("D")]}}catch(r){return}}else return t}getDates(t={},n){let r="fc-date"in t?"fc-date":"fc-start",i;t&&r in t&&(i=t[r]),i||(i=n);let s=this.parseDate(i),a="fc-end"in t?t["fc-end"]:null,o=this.parseDate(a);return{date:s,end:o}}};new ft;
`)}var Kh=class extends Qt.FuzzySuggestModal{constructor(e){super(e.app);this.plugin=e}getItems(){return this.plugin.data.calendars}getItemText(e){return e.name}onChooseItem(e,n){this.chosen=e,this.close()}},Ts=class extends Qt.Component{constructor(e){super();this.plugin=e;this.queue=new Set;this.tree=new Map;this.worker=new Fs}get calendars(){return this.plugin.data.calendars}get metadataCache(){return this.plugin.app.metadataCache}get vault(){return this.plugin.app.vault}onload(){this.plugin.addCommand({id:"rescan-events",name:"Rescan Events",callback:()=>{this.plugin.data.debug&&console.info("Beginning full rescan for calendar events"),this.start()}}),this.plugin.addCommand({id:"rescan-events-for-calendar",name:"Rescan Events for Calendar",callback:()=>{let e=new Kh(this.plugin);e.onClose=()=>{e.chosen&&(this.plugin.data.debug&&console.info("Beginning full rescan for calendar events for calendar "+e.chosen.name),this.start(e.chosen))},e.open()}}),this.worker.postMessage({type:"calendars",calendars:this.calendars}),this.registerEvent(this.plugin.app.workspace.on("fantasy-calendars-updated",()=>{this.worker.postMessage({type:"calendars",calendars:this.calendars})})),this.worker.postMessage({type:"options",parseTitle:this.plugin.data.parseDates,addToDefaultIfMissing:this.plugin.data.addToDefaultIfMissing,format:this.plugin.format,defaultCalendar:this.plugin.defaultCalendar?.name,debug:this.plugin.data.debug}),this.registerEvent(this.plugin.app.workspace.on("fantasy-calendar-settings-change",()=>{this.worker.postMessage({type:"options",parseTitle:this.plugin.data.parseDates,addToDefaultIfMissing:this.plugin.data.addToDefaultIfMissing,format:this.plugin.format,defaultCalendar:this.plugin.defaultCalendar?.name,debug:this.plugin.data.debug})})),this.registerEvent(this.metadataCache.on("changed",e=>{this.queue.has(e.path)||this.startParsing([e.path])})),this.registerEvent(this.vault.on("rename",async(e,n)=>{if(!!this.calendars.length&&e instanceof Qt.TFile){for(let a of this.calendars)a.events=a.events.filter(r=>r.note!=n);this.worker.postMessage({type:"calendars",calendars:this.calendars}),this.startParsing([e.path])}})),this.registerEvent(this.vault.on("delete",async e=>{if(e instanceof Qt.TFile){for(let n of this.calendars){let a=n.events.filter(r=>r.note===e.path);n.events=n.events.filter(r=>r.note!=e.path);for(let r of a)this.addToTree(n,r)}await this.plugin.saveCalendar(),this.plugin.app.workspace.trigger("fantasy-calendars-event-update",this.tree),this.tree=new Map}})),this.worker.addEventListener("message",async e=>{if(e.data.type=="get"){let{path:n}=e.data;this.queue.delete(n);let a=this.plugin.app.vault.getAbstractFileByPath(n);if(a instanceof Qt.TFile){let r=this.metadataCache.getFileCache(a),i=(0,Qt.getAllTags)(r),o=await this.vault.cachedRead(a);this.worker.postMessage({type:"file",path:n,cache:r,file:{path:a.path,basename:a.basename},allTags:i,data:o})}else if(a instanceof Qt.TFolder){let r=a.children.map(i=>i.path);this.startParsing(r)}}}),this.worker.addEventListener("message",async e=>{if(e.data.type=="update"){let{id:n,index:a,event:r,original:i}=e.data,o=this.calendars.find(l=>l.id==n);if(!o)return;a==-1?(this.plugin.data.debug&&console.debug(`Adding '${r.name}' to ${o.name}`),o.events.push(r)):(this.plugin.data.debug&&console.debug(`Updating '${r.name}' in calendar ${o.name}`),o.events.splice(a,a>=0?1:0,r)),this.addToTree(o,r),i&&this.addToTree(o,i)}}),this.worker.addEventListener("message",async e=>{if(e.data.type=="delete"){let{id:n,index:a,event:r}=e.data;if(!r)return;let i=this.calendars.find(o=>o.id==n);if(!i)return;this.plugin.data.debug&&console.debug(`Removing '${r.name}' from ${i.name}`),i.events=i.events.filter(o=>o.id!=r.id),this.addToTree(i,r)}}),this.worker.addEventListener("message",async e=>{e.data.type=="save"&&(this.plugin.data.debug&&console.debug("Received save event from file watcher"),this.plugin.app.workspace.trigger("fantasy-calendars-event-update",this.tree),this.tree=new Map,await this.plugin.saveCalendar())}),this.start()}start(e){let n=e?[e]:this.calendars;if(!n.length)return;let a=new Set;for(let r of n){if(!r||!r.autoParse)continue;let i=this.vault.getAbstractFileByPath(r.path);if(!(!i||!(i instanceof Qt.TFolder)))for(let o of i.children)a.add(o.path)}!a.size||(this.plugin.data.debug&&console.info(e?`Starting rescan for ${e.name} (${a.size})`:`Starting rescan for ${n.length} calendars (${a.size})`),this.startParsing([...a]))}addToTree(e,n){this.tree.has(e.id)||this.tree.set(e.id,new Set);let a=this.tree.get(e.id);if(!a.has(n.date.year)&&(a.add(n.date.year),n.end&&n.end.year!=n.date.year))for(let r=n.date.year+1;r<=n.end.year;r++)a.add(n.date.year)}startParsing(e){for(let n of e)this.queue.add(n);this.worker.postMessage({type:"queue",paths:e})}onunload(){this.worker.terminate(),this.worker=null}};var Ss=Fe(require("obsidian"));var Bs=class{constructor(e){this.plugin=e}getCalendars(){return this.plugin.data.calendars}getMoons(e,n){let a=n?this.plugin.data.calendars.find(({name:s})=>s==n):this.plugin.defaultCalendar??this.plugin.defaultCalendar,r=this.getHelper(a),i=e||r.current,o=r.getDayForDate(i),l=[];for(let[s,d]of o.moons){let u=createSpan();new jn({target:u,props:{moon:s,phase:d}}),l.push({icon:u,moon:s,phase:d})}return l}getDay(e,n=this.plugin.defaultCalendar){if(!e||typeof e!="object"||e.year==null||e.month==null||e.day==null){new Ss.Notice("The Date parameter is required and must have the day, month and year.");return}typeof n=="string"&&(n=this.plugin.data.calendars.find(o=>o.name==n)??this.plugin.defaultCalendar);let a=this.getHelper(n),r;if(typeof e.month=="string"?r=a.data.months.findIndex(o=>o.name==e.month):r=e.month,isNaN(e.year)||isNaN(r)||r==-1||isNaN(e.day)){let o=[];isNaN(e.year)&&o.push("The year must be a number."),(isNaN(r)||r==-1)&&(typeof e.month=="string"?o.push(`Could not find ${e.month} in the Months list for ${a.calendar.name}`):o.push("The month must be a number or the name of a month in the list of months for the selected calendar.")),isNaN(e.day)&&o.push("The year must be a number."),new Ss.Notice(`There was an issue with the provided date.
${o.join(`
`)}`);return}let i=a.getDayForDate({year:e.year,month:r,day:e.day});return{moons:i.moons,events:i.events,date:i.date,longDate:i.longDate,leapDay:i.leapday,weekday:i.weekday,displayDate:rn(i.date,a.data.months)}}async addCategoryToCalendar(e,n=this.plugin.defaultCalendar){if(!e)throw new Error("Category is required.");if(!e.name||!e.color)throw new Error("A category requires a name and a color.");if(e.id||(e.id=ze(6)),typeof n=="string"&&(n=this.plugin.data.calendars.find(a=>a.name==n)??this.plugin.defaultCalendar),!n||typeof n!="object"||!("categories"in n))throw new Error("Invalid calendar provided.");n.categories.push(e),await this.plugin.saveCalendar()}getHelper(e=this.plugin.defaultCalendar){return new Pa(e,this.plugin)}};var Ns=Fe(Nn());var Qh=Wn.Platform.isMacOS?"Meta":"Control",lr={name:null,description:null,id:null,static:{incrementDay:!1,firstWeekDay:null,overflow:!0,weekdays:[],months:[],moons:[],displayMoons:!0,displayDayNumber:!1,leapDays:[],eras:[]},current:{year:null,month:null,day:null},events:[],categories:[],autoParse:!1,path:"/",supportTimelines:!1,syncTimelines:!0,timelineTag:"#timeline"},Xh={addToDefaultIfMissing:!0,calendars:[],configDirectory:null,currentCalendar:null,dailyNotes:!1,dateFormat:"YYYY-MM-DD",defaultCalendar:null,eventPreview:!1,exit:{saving:!1,event:!1,calendar:!1},eventFrontmatter:!1,parseDates:!1,settingsToggleState:{calendars:!1,events:!1,advanced:!0},showIntercalary:!1,version:{major:null,minor:null,patch:null},debug:!1},Ms=class extends Wn.Plugin{constructor(){super(...arguments);this.api=new Bs(this);this.watcher=new Ts(this);this.save=(0,Wn.debounce)(async e=>{if(this.configDirectory)try{await this.app.vault.adapter.exists(this.configDirectory)||await this.app.vault.adapter.mkdir(this.configDirectory),await this.app.vault.adapter.write(this.configFilePath,JSON.stringify(e))}catch(n){console.error(n),new Wn.Notice("There was an error saving into the configured directory.")}await this.saveData(e)},200)}async addNewCalendar(e,n){let a=!n||e.name!=n?.name||e.autoParse&&!n?.autoParse||e.path!=n?.path;n==null?this.data.calendars.push(e):this.data.calendars.splice(this.data.calendars.indexOf(n),1,e),this.data.defaultCalendar||(this.data.defaultCalendar=e.id),a&&this.watcher.start(e),await this.saveCalendar()}get currentCalendar(){return this.data.calendars.find(e=>e.id==this.data.currentCalendar)}get canUseDailyNotes(){return this.dailyNotes._loaded}get dailyNotes(){return this.app.internalPlugins.getPluginById("daily-notes")}get canUseTimelines(){return this.app.plugins.getPlugin("obsidian-timelines")!=null}syncTimelines(e){return e.syncTimelines&&this.canUseTimelines}timelineTag(e){let n=e.timelineTag;return this.syncTimelines(e)&&(n=this.app.plugins.getPlugin("obsidian-timelines").settings.timelineTag),/^#/.test(n)||(n=`#${n}`),n??e.timelineTag??""}get format(){return(this.data.dailyNotes&&this.canUseDailyNotes?this.dailyNotes.instance.options.format:this.data.dateFormat)??"YYYY-MM-DD"}get defaultCalendar(){return this.data.calendars.find(e=>e.id==this.data.defaultCalendar)??this.data.calendars[0]}get view(){let e=this.app.workspace.getLeavesOfType(Kt),n=e.length?e[0]:null;if(n&&n.view&&n.view instanceof Hn)return n.view}get full(){let e=this.app.workspace.getLeavesOfType(ca),n=e.length?e[0]:null;if(n&&n.view&&n.view instanceof Hn)return n.view}async onload(){console.log("Loading Fantasy Calendars v"+this.manifest.version),(window.FantasyCalendarAPI=this.api)&&this.register(()=>delete window.FantasyCalendarAPI),this.registerView(Kt,e=>new Hn(this,e)),this.registerView(ca,e=>new Hn(this,e,{full:!0})),this.app.workspace.onLayoutReady(async()=>{await this.loadSettings(),this.watcher.load(),this.addCommands(),this.addSettingTab(new Ei(this)),this.addCalendarView(!0)}),this.addRibbonIcon(Kt,"Open Large Fantasy Calendar",e=>{this.app.workspace.getLeaf(e.getModifierState(Qh)).setViewState({type:ca})})}async onunload(){console.log("Unloading Fantasy Calendars v"+this.manifest.version),this.app.workspace.getLeavesOfType(Kt).forEach(e=>e.detach()),this.app.workspace.getLeavesOfType(ca).forEach(e=>e.detach()),this.watcher.unload()}addCommands(){this.addCommand({id:"open-fantasy-calendar",name:"Open Fantasy Calendar",callback:()=>{this.addCalendarView()}}),this.addCommand({id:"open-big-fantasy-calendar",name:"Open Large Fantasy Calendar",callback:()=>{this.addFullCalendarView()}}),this.addCommand({id:"toggle-moons",name:"Toggle Moons",checkCallback:e=>{let n=this.app.workspace.getLeavesOfType(Kt);if(n&&n.length)return e||n[0].view.toggleMoons(),!0}}),this.addCommand({id:"view-date",name:"View Date",checkCallback:e=>{let n=this.app.workspace.getLeavesOfType(Kt);if(n&&n.length)return e||n[0].view.openDate(),!0}}),this.addCommand({id:"view-date",name:"View Note Event",checkCallback:e=>{let n=this.app.workspace.getLeavesOfType(Kt);if(n&&n.length&&n[0].view instanceof Hn){let a=this.app.workspace.getActiveFile();if(a){let r=n[0].view.calendar.events.find(i=>i.note==a.path);if(r)return e||n[0].view.openDay(r.date),!0}}}})}async addCalendarView(e=!1){e&&this.app.workspace.getLeavesOfType(Kt)?.length||(await this.app.workspace.getRightLeaf(!1).setViewState({type:Kt}),this.view&&this.app.workspace.revealLeaf(this.view.leaf))}async addFullCalendarView(e=!1){e&&this.app.workspace.getLeavesOfType(ca)?.length||(this.app.workspace.getLeaf(!1).setViewState({type:ca}),this.full&&this.app.workspace.revealLeaf(this.full.leaf))}async loadSettings(){if(this.data={...(0,Ns.default)(Xh),...await this.loadData()},this.configDirectory&&await this.app.vault.adapter.exists(this.configFilePath)&&(this.data=Object.assign({},this.data,JSON.parse(await this.app.vault.adapter.read(this.configFilePath)))),!this.data.defaultCalendar&&this.data.calendars.length&&(this.data.defaultCalendar=this.data.calendars[0].id),this.data.calendars.length&&!this.data.calendars.find(e=>e.id==this.data.defaultCalendar)&&(this.data.defaultCalendar=this.data.calendars[0].id),this.data.autoParse&&this.data.calendars.length){for(let e of this.data.calendars)e.autoParse=this.data.autoParse,e.path=this.data.path;delete this.data.autoParse,delete this.data.path}for(let e of this.data.calendars)e.static.eras&&e.static.eras.length&&e.static.eras.some(n=>!n.id)&&(e.static.eras=e.static.eras.map(n=>({...(0,Ns.default)(n),id:n.id??ze(6),restart:n.restart??!1,endsYear:n.endsYear??!1,event:n.event??!1})));this.data.eventFrontmatter=!1,await this.saveSettings(),this.settingsLoaded=!0,this.app.workspace.trigger("fantasy-calendars-settings-loaded")}onSettingsLoad(e){this.settingsLoaded?e():this.app.workspace.on("fantasy-calendars-settings-loaded",()=>e())}async saveCalendar(){await this.saveSettings(),this.app.workspace.trigger("fantasy-calendars-updated")}get configDirectory(){if(!(!this.data||!this.data.configDirectory))return`${this.data.configDirectory}/plugins/fantasy-calendar`}get configFilePath(){if(!!this.data.configDirectory)return`${this.configDirectory}/data.json`}async saveSettings(){await this.save(this.data),this.app.workspace.trigger("fantasy-calendar-settings-change")}};
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/*! https://mths.be/he v1.2.0 by @mathias | MIT license */
/**
* chroma.js - JavaScript library for color conversions
*
* Copyright (c) 2011-2019, Gregor Aisch
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. The name Gregor Aisch may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* -------------------------------------------------------
*
* chroma.js includes colors from colorbrewer2.org, which are released under
* the following license:
*
* Copyright (c) 2002 Cynthia Brewer, Mark Harrower,
* and The Pennsylvania State University.
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific
* language governing permissions and limitations under the License.
*
* ------------------------------------------------------
*
* Named colors are taken from X11 Color Names.
* http://www.w3.org/TR/css3-color/#svg-color
*
* @preserve
*/