Absolue-Necessite/.obsidian/plugins/homepage/main.js

3 lines
53 KiB
JavaScript

"use strict";var tn=Object.create;var et=Object.defineProperty;var on=Object.getOwnPropertyDescriptor;var nn=Object.getOwnPropertyNames;var rn=Object.getPrototypeOf,an=Object.prototype.hasOwnProperty;var sn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ln=(t,e)=>{for(var o in e)et(t,o,{get:e[o],enumerable:!0})},to=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of nn(e))!an.call(t,i)&&i!==o&&et(t,i,{get:()=>e[i],enumerable:!(n=on(e,i))||n.enumerable});return t};var pn=(t,e,o)=>(o=t!=null?tn(rn(t)):{},to(e||!t||!t.__esModule?et(o,"default",{value:t,enumerable:!0}):o,t)),cn=t=>to(et({},"__esModule",{value:!0}),t);var xo=sn(h=>{"use strict";Object.defineProperty(h,"__esModule",{value:!0});var T=require("obsidian"),yt="YYYY-MM-DD",bt="gggg-[W]ww",so="YYYY-MM",lo="YYYY-[Q]Q",po="YYYY";function Fe(t){let e=window.app.plugins.getPlugin("periodic-notes");return e&&e.settings?.[t]?.enabled}function Ce(){try{let{internalPlugins:t,plugins:e}=window.app;if(Fe("daily")){let{format:r,folder:p,template:s}=e.getPlugin("periodic-notes")?.settings?.daily||{};return{format:r||yt,folder:p?.trim()||"",template:s?.trim()||""}}let{folder:o,format:n,template:i}=t.getPluginById("daily-notes")?.instance?.options||{};return{format:n||yt,folder:o?.trim()||"",template:i?.trim()||""}}catch(t){console.info("No custom daily note settings found!",t)}}function He(){try{let t=window.app.plugins,e=t.getPlugin("calendar")?.options,o=t.getPlugin("periodic-notes")?.settings?.weekly;if(Fe("weekly"))return{format:o.format||bt,folder:o.folder?.trim()||"",template:o.template?.trim()||""};let n=e||{};return{format:n.weeklyNoteFormat||bt,folder:n.weeklyNoteFolder?.trim()||"",template:n.weeklyNoteTemplate?.trim()||""}}catch(t){console.info("No custom weekly note settings found!",t)}}function Re(){let t=window.app.plugins;try{let e=Fe("monthly")&&t.getPlugin("periodic-notes")?.settings?.monthly||{};return{format:e.format||so,folder:e.folder?.trim()||"",template:e.template?.trim()||""}}catch(e){console.info("No custom monthly note settings found!",e)}}function Ie(){let t=window.app.plugins;try{let e=Fe("quarterly")&&t.getPlugin("periodic-notes")?.settings?.quarterly||{};return{format:e.format||lo,folder:e.folder?.trim()||"",template:e.template?.trim()||""}}catch(e){console.info("No custom quarterly note settings found!",e)}}function Ve(){let t=window.app.plugins;try{let e=Fe("yearly")&&t.getPlugin("periodic-notes")?.settings?.yearly||{};return{format:e.format||po,folder:e.folder?.trim()||"",template:e.template?.trim()||""}}catch(e){console.info("No custom yearly note settings found!",e)}}function co(...t){let e=[];for(let n=0,i=t.length;n<i;n++)e=e.concat(t[n].split("/"));let o=[];for(let n=0,i=e.length;n<i;n++){let r=e[n];!r||r==="."||o.push(r)}return e[0]===""&&o.unshift(""),o.join("/")}function dn(t){let e=t.substring(t.lastIndexOf("/")+1);return e.lastIndexOf(".")!=-1&&(e=e.substring(0,e.lastIndexOf("."))),e}async function un(t){let e=t.replace(/\\/g,"/").split("/");if(e.pop(),e.length){let o=co(...e);window.app.vault.getAbstractFileByPath(o)||await window.app.vault.createFolder(o)}}async function We(t,e){e.endsWith(".md")||(e+=".md");let o=T.normalizePath(co(t,e));return await un(o),o}async function Pe(t){let{metadataCache:e,vault:o}=window.app,n=T.normalizePath(t);if(n==="/")return Promise.resolve(["",null]);try{let i=e.getFirstLinkpathDest(n,""),r=await o.cachedRead(i),p=window.app.foldManager.load(i);return[r,p]}catch(i){return console.error(`Failed to read the daily note template '${n}'`,i),new T.Notice("Failed to read the daily note template"),["",null]}}function Q(t,e="day"){let o=t.clone().startOf(e).format();return`${e}-${o}`}function uo(t){return t.replace(/\[[^\]]*\]/g,"")}function mn(t,e){if(e==="week"){let o=uo(t);return/w{1,2}/i.test(o)&&(/M{1,4}/.test(o)||/D{1,4}/.test(o))}return!1}function Oe(t,e){return mo(t.basename,e)}function fn(t,e){return mo(dn(t),e)}function mo(t,e){let n={day:Ce,week:He,month:Re,quarter:Ie,year:Ve}[e]().format.split("/").pop(),i=window.moment(t,n,!0);if(!i.isValid())return null;if(mn(n,e)&&e==="week"){let r=uo(n);if(/w{1,2}/i.test(r))return window.moment(t,n.replace(/M{1,4}/g,"").replace(/D{1,4}/g,""),!1)}return i}var xt=class extends Error{};async function fo(t){let e=window.app,{vault:o}=e,n=window.moment,{template:i,format:r,folder:p}=Ce(),[s,a]=await Pe(i),l=t.format(r),c=await We(p,l);try{let g=await o.create(c,s.replace(/{{\s*date\s*}}/gi,l).replace(/{{\s*time\s*}}/gi,n().format("HH:mm")).replace(/{{\s*title\s*}}/gi,l).replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(v,d,w,m,u,f)=>{let E=n(),P=t.clone().set({hour:E.get("hour"),minute:E.get("minute"),second:E.get("second")});return w&&P.add(parseInt(m,10),u),f?P.format(f.substring(1).trim()):P.format(r)}).replace(/{{\s*yesterday\s*}}/gi,t.clone().subtract(1,"day").format(r)).replace(/{{\s*tomorrow\s*}}/gi,t.clone().add(1,"d").format(r)));return e.foldManager.save(g,a),g}catch(g){console.error(`Failed to create file: '${c}'`,g),new T.Notice("Unable to create new file.")}}function gn(t,e){return e[Q(t,"day")]??null}function hn(){let{vault:t}=window.app,{folder:e}=Ce(),o=t.getAbstractFileByPath(T.normalizePath(e));if(!o)throw new xt("Failed to find daily notes folder");let n={};return T.Vault.recurseChildren(o,i=>{if(i instanceof T.TFile){let r=Oe(i,"day");if(r){let p=Q(r,"day");n[p]=i}}}),n}var Et=class extends Error{};function vn(){let{moment:t}=window,e=t.localeData()._week.dow,o=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];for(;e;)o.push(o.shift()),e--;return o}function wn(t){return vn().indexOf(t.toLowerCase())}async function go(t){let{vault:e}=window.app,{template:o,format:n,folder:i}=He(),[r,p]=await Pe(o),s=t.format(n),a=await We(i,s);try{let l=await e.create(a,r.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,g,v,d,w,m)=>{let u=window.moment(),f=t.clone().set({hour:u.get("hour"),minute:u.get("minute"),second:u.get("second")});return v&&f.add(parseInt(d,10),w),m?f.format(m.substring(1).trim()):f.format(n)}).replace(/{{\s*title\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*(sunday|monday|tuesday|wednesday|thursday|friday|saturday)\s*:(.*?)}}/gi,(c,g,v)=>{let d=wn(g);return t.weekday(d).format(v.trim())}));return window.app.foldManager.save(l,p),l}catch(l){console.error(`Failed to create file: '${a}'`,l),new T.Notice("Unable to create new file.")}}function yn(t,e){return e[Q(t,"week")]??null}function bn(){let t={};if(!vo())return t;let{vault:e}=window.app,{folder:o}=He(),n=e.getAbstractFileByPath(T.normalizePath(o));if(!n)throw new Et("Failed to find weekly notes folder");return T.Vault.recurseChildren(n,i=>{if(i instanceof T.TFile){let r=Oe(i,"week");if(r){let p=Q(r,"week");t[p]=i}}}),t}var Pt=class extends Error{};async function ho(t){let{vault:e}=window.app,{template:o,format:n,folder:i}=Re(),[r,p]=await Pe(o),s=t.format(n),a=await We(i,s);try{let l=await e.create(a,r.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,g,v,d,w,m)=>{let u=window.moment(),f=t.clone().set({hour:u.get("hour"),minute:u.get("minute"),second:u.get("second")});return v&&f.add(parseInt(d,10),w),m?f.format(m.substring(1).trim()):f.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,p),l}catch(l){console.error(`Failed to create file: '${a}'`,l),new T.Notice("Unable to create new file.")}}function xn(t,e){return e[Q(t,"month")]??null}function En(){let t={};if(!wo())return t;let{vault:e}=window.app,{folder:o}=Re(),n=e.getAbstractFileByPath(T.normalizePath(o));if(!n)throw new Pt("Failed to find monthly notes folder");return T.Vault.recurseChildren(n,i=>{if(i instanceof T.TFile){let r=Oe(i,"month");if(r){let p=Q(r,"month");t[p]=i}}}),t}var Ot=class extends Error{};async function Pn(t){let{vault:e}=window.app,{template:o,format:n,folder:i}=Ie(),[r,p]=await Pe(o),s=t.format(n),a=await We(i,s);try{let l=await e.create(a,r.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,g,v,d,w,m)=>{let u=window.moment(),f=t.clone().set({hour:u.get("hour"),minute:u.get("minute"),second:u.get("second")});return v&&f.add(parseInt(d,10),w),m?f.format(m.substring(1).trim()):f.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,p),l}catch(l){console.error(`Failed to create file: '${a}'`,l),new T.Notice("Unable to create new file.")}}function On(t,e){return e[Q(t,"quarter")]??null}function Nn(){let t={};if(!yo())return t;let{vault:e}=window.app,{folder:o}=Ie(),n=e.getAbstractFileByPath(T.normalizePath(o));if(!n)throw new Ot("Failed to find quarterly notes folder");return T.Vault.recurseChildren(n,i=>{if(i instanceof T.TFile){let r=Oe(i,"quarter");if(r){let p=Q(r,"quarter");t[p]=i}}}),t}var Nt=class extends Error{};async function Sn(t){let{vault:e}=window.app,{template:o,format:n,folder:i}=Ve(),[r,p]=await Pe(o),s=t.format(n),a=await We(i,s);try{let l=await e.create(a,r.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi,(c,g,v,d,w,m)=>{let u=window.moment(),f=t.clone().set({hour:u.get("hour"),minute:u.get("minute"),second:u.get("second")});return v&&f.add(parseInt(d,10),w),m?f.format(m.substring(1).trim()):f.format(n)}).replace(/{{\s*date\s*}}/gi,s).replace(/{{\s*time\s*}}/gi,window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi,s));return window.app.foldManager.save(l,p),l}catch(l){console.error(`Failed to create file: '${a}'`,l),new T.Notice("Unable to create new file.")}}function Dn(t,e){return e[Q(t,"year")]??null}function Tn(){let t={};if(!bo())return t;let{vault:e}=window.app,{folder:o}=Ve(),n=e.getAbstractFileByPath(T.normalizePath(o));if(!n)throw new Nt("Failed to find yearly notes folder");return T.Vault.recurseChildren(n,i=>{if(i instanceof T.TFile){let r=Oe(i,"year");if(r){let p=Q(r,"year");t[p]=i}}}),t}function kn(){let{app:t}=window,e=t.internalPlugins.plugins["daily-notes"];if(e&&e.enabled)return!0;let o=t.plugins.getPlugin("periodic-notes");return o&&o.settings?.daily?.enabled}function vo(){let{app:t}=window;if(t.plugins.getPlugin("calendar"))return!0;let e=t.plugins.getPlugin("periodic-notes");return e&&e.settings?.weekly?.enabled}function wo(){let{app:t}=window,e=t.plugins.getPlugin("periodic-notes");return e&&e.settings?.monthly?.enabled}function yo(){let{app:t}=window,e=t.plugins.getPlugin("periodic-notes");return e&&e.settings?.quarterly?.enabled}function bo(){let{app:t}=window,e=t.plugins.getPlugin("periodic-notes");return e&&e.settings?.yearly?.enabled}function Mn(t){let e={day:Ce,week:He,month:Re,quarter:Ie,year:Ve}[t];return e()}function An(t,e){return{day:fo,month:ho,week:go}[t](e)}h.DEFAULT_DAILY_NOTE_FORMAT=yt;h.DEFAULT_MONTHLY_NOTE_FORMAT=so;h.DEFAULT_QUARTERLY_NOTE_FORMAT=lo;h.DEFAULT_WEEKLY_NOTE_FORMAT=bt;h.DEFAULT_YEARLY_NOTE_FORMAT=po;h.appHasDailyNotesPluginLoaded=kn;h.appHasMonthlyNotesPluginLoaded=wo;h.appHasQuarterlyNotesPluginLoaded=yo;h.appHasWeeklyNotesPluginLoaded=vo;h.appHasYearlyNotesPluginLoaded=bo;h.createDailyNote=fo;h.createMonthlyNote=ho;h.createPeriodicNote=An;h.createQuarterlyNote=Pn;h.createWeeklyNote=go;h.createYearlyNote=Sn;h.getAllDailyNotes=hn;h.getAllMonthlyNotes=En;h.getAllQuarterlyNotes=Nn;h.getAllWeeklyNotes=bn;h.getAllYearlyNotes=Tn;h.getDailyNote=gn;h.getDailyNoteSettings=Ce;h.getDateFromFile=Oe;h.getDateFromPath=fn;h.getDateUID=Q;h.getMonthlyNote=xn;h.getMonthlyNoteSettings=Re;h.getPeriodicNoteSettings=Mn;h.getQuarterlyNote=On;h.getQuarterlyNoteSettings=Ie;h.getTemplateInfo=Pe;h.getWeeklyNote=yn;h.getWeeklyNoteSettings=He;h.getYearlyNote=Dn;h.getYearlyNoteSettings=Ve});var mi={};ln(mi,{default:()=>ft});module.exports=cn(mi);var se=require("obsidian");var q=require("obsidian");var Eo=require("obsidian");var oo=require("obsidian");function ee(t){return t?t.extension=="md"?t.path.slice(0,-3):t.path:""}function no(t){return t.split("/").slice(-1)[0].contains(".")?t:`${t}.md`}function io(t,e){return(t%e+e)%e}function ro(t){let e=t.vault.getFiles().filter(o=>["md","canvas"].contains(o.extension));if(e.length){let o=Math.floor(Math.random()*e.length);return ee(e[o])}}function ao(t){return t.workspace.getActiveViewOfType(oo.View)?.getViewType()=="empty"}var N=pn(xo()),St={["Daily Note"]:{noun:"day",adjective:"daily",create:N.createDailyNote,get:N.getDailyNote,getAll:N.getAllDailyNotes},["Weekly Note"]:{noun:"week",adjective:"weekly",create:N.createWeeklyNote,get:N.getWeeklyNote,getAll:N.getAllWeeklyNotes},["Monthly Note"]:{noun:"month",adjective:"monthly",create:N.createMonthlyNote,get:N.getMonthlyNote,getAll:N.getAllMonthlyNotes},["Yearly Note"]:{noun:"year",adjective:"yearly",create:N.createYearlyNote,get:N.getYearlyNote,getAll:N.getAllYearlyNotes}},Dt=["Daily Note","Weekly Note","Monthly Note","Yearly Note"];async function Po(t,e){let o=e.communityPlugins["periodic-notes"],n=St[t],i=(0,Eo.moment)().startOf(n.noun),r;if(No(o)){let p=n.getAll();Object.keys(p).length?r=n.get(i,p)||await n.create(i):r=await n.create(i)}else o.cache.initialize(),r=o.getPeriodicNote(n.noun,i)||await o.createPeriodicNote(n.noun,i);return ee(r)}function Oo(t,e){if(t=="Daily Note"&&e.internalPlugins["daily-notes"]?.enabled)return!0;let o=e.communityPlugins["periodic-notes"];if(!o)return!1;if(No(o)){let n=St[t].adjective;return e.communityPlugins["periodic-notes"].settings[n]?.enabled}else{let n=St[t].noun;return e.communityPlugins["periodic-notes"]?.calendarSetManager?.getActiveSet()[n]?.enabled}}function tt(t){let e=t.internalPlugins["daily-notes"];return e?.enabled&&e?.instance.options.autorun}function No(t){return(t?.manifest.version||"0").startsWith("0")}var So=["markdown","canvas","kanban"],me="Main Homepage",ot="Mobile Homepage",nt=(n=>(n.ReplaceAll="Replace all open notes",n.ReplaceLast="Replace last note",n.Retain="Keep open notes",n))(nt||{}),Tt=(i=>(i.Default="Default view",i.Reading="Reading view",i.Source="Editing view (Source)",i.LivePreview="Editing view (Live Preview)",i))(Tt||{}),_e=(l=>(l.File="File",l.Workspace="Workspace",l.Random="Random file",l.Graph="Graph view",l.DailyNote="Daily Note",l.WeeklyNote="Weekly Note",l.MonthlyNote="Monthly Note",l.YearlyNote="Yearly Note",l.MomentDate="Date-dependent file",l))(_e||{}),Be=class{constructor(e,o){this.lastView=void 0;this.openedViews=new WeakMap;this.name=e,this.plugin=o,this.app=o.app,this.data=o.settings.homepages[e],this.data.commands||(this.data.commands=[],this.save())}async open(e=!1){if(this.plugin.hasRequiredPlugin(this.data.kind))if(this.data.kind=="Workspace")await this.launchWorkspace();else{let o=this.plugin.loaded?this.data.manualOpenMode:this.data.openMode;e&&(o="Keep open notes"),await this.launchLeaf(o)}else{new q.Notice("Homepage cannot be opened due to plugin unavailablity.");return}if(this.data.commands)for(let o of this.data.commands)this.app.commands.executeCommandById(o)}async launchWorkspace(){let e=this.plugin.internalPlugins.workspaces?.instance;if(!(this.data.value in e.workspaces)){new q.Notice(`Cannot find the workspace "${this.data.value}" to use as the homepage.`);return}e.loadWorkspace(this.data.value)}async launchLeaf(e){let o;if(this.computedValue=await this.computeValue(),this.plugin.executing=!0,!(tt(this.plugin)&&!this.plugin.loaded)){if(e!="Replace all open notes"){let n=this.getOpened();if(n.length>0){this.app.workspace.setActiveLeaf(n[0]),await this.configure(n[0]);return}else e=="Keep open notes"&&ao(this.app)&&(e="Replace last note")}this.data.kind==="Graph view"?o=await this.launchGraph(e):o=await this.launchNote(e),o&&(await this.configure(o),e=="Replace all open notes"&&(this.app.workspace.iterateAllLeaves(n=>{So.includes(n.getViewState().type)&&o.id!=n.id&&n.detach()}),this.app.workspace.detachLeavesOfType("empty")))}}async launchGraph(e){if(e==="Keep open notes"){let o=this.app.workspace.getLeaf("tab");this.app.workspace.setActiveLeaf(o)}return this.app.commands.executeCommandById("graph:open"),this.app.workspace.getActiveViewOfType(q.View)?.leaf}async launchNote(e){let o=this.app.metadataCache.getFirstLinkpathDest(this.computedValue,"/");if(!o){if(!this.data.autoCreate){new q.Notice(`Homepage "${this.computedValue}" does not exist.`);return}o=await this.app.vault.create(no(this.computedValue),"")}let n=this.app.workspace.getLeaf(e=="Keep open notes");return await n.openFile(o),this.app.workspace.setActiveLeaf(n),n}async configure(e){this.plugin.executing=!1;let o=e.view;if(!(o instanceof q.MarkdownView)){this.data.pin&&o.leaf.setPinned(!0);return}let n=o.getState();if(this.data.revertView&&(this.lastView=new WeakRef(o)),this.data.autoScroll){let i=o.editor.lineCount();n.mode=="preview"?o.previewMode.applyScroll(i-4):(o.editor.setCursor(i),o.editor.focus())}if(this.data.pin&&o.leaf.setPinned(!0),this.data.view!="Default view"){switch(this.data.view){case"Editing view (Live Preview)":case"Editing view (Source)":n.mode="source",n.source=this.data.view!="Editing view (Live Preview)";break;case"Reading view":n.mode="preview";break}await o.leaf.setViewState({type:"markdown",state:n}),this.plugin.loaded&&this.data.refreshDataview&&this.plugin.communityPlugins.dataview?.index.touch()}}getOpened(){return this.data.kind=="Graph view"?this.app.workspace.getLeavesOfType("graph"):So.flatMap(o=>this.app.workspace.getLeavesOfType(o)).filter(o=>ee(o.view.file)==this.computedValue)}async computeValue(){let e=this.data.value;switch(this.data.kind){case"Date-dependent file":e=(0,q.moment)().format(this.data.value);break;case"Random file":let o=ro(this.app);o&&(e=o);break;case"Daily Note":case"Weekly Note":case"Monthly Note":case"Yearly Note":e=await Po(this.data.kind,this.plugin);break}return e}async save(){this.plugin.settings.homepages[this.name]=this.data,await this.plugin.saveSettings()}async revertView(){if(this.lastView==null||this.data.view=="Default view")return;let e=this.lastView.deref();if(!e||ee(e.file)==this.computedValue)return;let o=e.getState(),n=this.app.vault.config,i=n.defaultViewMode||"source",r=!n.livePreview||!1;e.leaf.getViewState().type=="markdown"&&(i!=o.mode||r!=o.source)&&(o.mode=i,o.source=r,await e.leaf.setViewState({type:"markdown",state:o,active:!0})),this.lastView=void 0}async openWhenEmpty(){if(!this.plugin.loaded)return;let e=this.app.workspace.getActiveViewOfType(q.View)?.leaf;e?.getViewState().type!=="empty"||e?.parentSplit.children.length!=1||await this.open()}async apply(){let e=this.app.workspace.getActiveViewOfType(q.FileView);if(!e)return;let o=ee(e.file);this.openedViews.get(e)!==o&&(this.openedViews.set(e,o),o===await this.computeValue()&&this.plugin.loaded&&!this.plugin.executing&&await this.configure(e.leaf))}};var W=require("obsidian");var Me=require("obsidian");var Ko=require("obsidian");var k="top",H="bottom",A="right",M="left",it="auto",re=[k,H,A,M],te="start",fe="end",Do="clippingParents",rt="viewport",Ne="popper",To="reference",kt=re.reduce(function(t,e){return t.concat([e+"-"+te,e+"-"+fe])},[]),at=[].concat(re,[it]).reduce(function(t,e){return t.concat([e,e+"-"+te,e+"-"+fe])},[]),Ln="beforeRead",Fn="read",Cn="afterRead",Hn="beforeMain",Rn="main",In="afterMain",Vn="beforeWrite",Wn="write",_n="afterWrite",ko=[Ln,Fn,Cn,Hn,Rn,In,Vn,Wn,_n];function I(t){return t?(t.nodeName||"").toLowerCase():null}function S(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function U(t){var e=S(t).Element;return t instanceof e||t instanceof Element}function R(t){var e=S(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function Se(t){if(typeof ShadowRoot>"u")return!1;var e=S(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Bn(t){var e=t.state;Object.keys(e.elements).forEach(function(o){var n=e.styles[o]||{},i=e.attributes[o]||{},r=e.elements[o];!R(r)||!I(r)||(Object.assign(r.style,n),Object.keys(i).forEach(function(p){var s=i[p];s===!1?r.removeAttribute(p):r.setAttribute(p,s===!0?"":s)}))})}function jn(t){var e=t.state,o={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,o.popper),e.styles=o,e.elements.arrow&&Object.assign(e.elements.arrow.style,o.arrow),function(){Object.keys(e.elements).forEach(function(n){var i=e.elements[n],r=e.attributes[n]||{},p=Object.keys(e.styles.hasOwnProperty(n)?e.styles[n]:o[n]),s=p.reduce(function(a,l){return a[l]="",a},{});!R(i)||!I(i)||(Object.assign(i.style,s),Object.keys(r).forEach(function(a){i.removeAttribute(a)}))})}}var Mo={name:"applyStyles",enabled:!0,phase:"write",fn:Bn,effect:jn,requires:["computeStyles"]};function V(t){return t.split("-")[0]}var X=Math.max,ge=Math.min,oe=Math.round;function De(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function je(){return!/^((?!chrome|android).)*safari/i.test(De())}function z(t,e,o){e===void 0&&(e=!1),o===void 0&&(o=!1);var n=t.getBoundingClientRect(),i=1,r=1;e&&R(t)&&(i=t.offsetWidth>0&&oe(n.width)/t.offsetWidth||1,r=t.offsetHeight>0&&oe(n.height)/t.offsetHeight||1);var p=U(t)?S(t):window,s=p.visualViewport,a=!je()&&o,l=(n.left+(a&&s?s.offsetLeft:0))/i,c=(n.top+(a&&s?s.offsetTop:0))/r,g=n.width/i,v=n.height/r;return{width:g,height:v,top:c,right:l+g,bottom:c+v,left:l,x:l,y:c}}function he(t){var e=z(t),o=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-o)<=1&&(o=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:o,height:n}}function Ye(t,e){var o=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(o&&Se(o)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function j(t){return S(t).getComputedStyle(t)}function Mt(t){return["table","td","th"].indexOf(I(t))>=0}function _(t){return((U(t)?t.ownerDocument:t.document)||window.document).documentElement}function ne(t){return I(t)==="html"?t:t.assignedSlot||t.parentNode||(Se(t)?t.host:null)||_(t)}function Ao(t){return!R(t)||j(t).position==="fixed"?null:t.offsetParent}function Yn(t){var e=/firefox/i.test(De()),o=/Trident/i.test(De());if(o&&R(t)){var n=j(t);if(n.position==="fixed")return null}var i=ne(t);for(Se(i)&&(i=i.host);R(i)&&["html","body"].indexOf(I(i))<0;){var r=j(i);if(r.transform!=="none"||r.perspective!=="none"||r.contain==="paint"||["transform","perspective"].indexOf(r.willChange)!==-1||e&&r.willChange==="filter"||e&&r.filter&&r.filter!=="none")return i;i=i.parentNode}return null}function J(t){for(var e=S(t),o=Ao(t);o&&Mt(o)&&j(o).position==="static";)o=Ao(o);return o&&(I(o)==="html"||I(o)==="body"&&j(o).position==="static")?e:o||Yn(t)||e}function ve(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function we(t,e,o){return X(t,ge(e,o))}function Lo(t,e,o){var n=we(t,e,o);return n>o?o:n}function $e(){return{top:0,right:0,bottom:0,left:0}}function qe(t){return Object.assign({},$e(),t)}function Ue(t,e){return e.reduce(function(o,n){return o[n]=t,o},{})}var $n=function(e,o){return e=typeof e=="function"?e(Object.assign({},o.rects,{placement:o.placement})):e,qe(typeof e!="number"?e:Ue(e,re))};function qn(t){var e,o=t.state,n=t.name,i=t.options,r=o.elements.arrow,p=o.modifiersData.popperOffsets,s=V(o.placement),a=ve(s),l=[M,A].indexOf(s)>=0,c=l?"height":"width";if(!(!r||!p)){var g=$n(i.padding,o),v=he(r),d=a==="y"?k:M,w=a==="y"?H:A,m=o.rects.reference[c]+o.rects.reference[a]-p[a]-o.rects.popper[c],u=p[a]-o.rects.reference[a],f=J(r),E=f?a==="y"?f.clientHeight||0:f.clientWidth||0:0,P=m/2-u/2,y=g[d],b=E-v[c]-g[w],x=E/2-v[c]/2+P,D=we(y,x,b),L=a;o.modifiersData[n]=(e={},e[L]=D,e.centerOffset=D-x,e)}}function Un(t){var e=t.state,o=t.options,n=o.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=e.elements.popper.querySelector(i),!i)||Ye(e.elements.popper,i)&&(e.elements.arrow=i))}var Fo={name:"arrow",enabled:!0,phase:"main",fn:qn,effect:Un,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function K(t){return t.split("-")[1]}var zn={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Kn(t,e){var o=t.x,n=t.y,i=e.devicePixelRatio||1;return{x:oe(o*i)/i||0,y:oe(n*i)/i||0}}function Co(t){var e,o=t.popper,n=t.popperRect,i=t.placement,r=t.variation,p=t.offsets,s=t.position,a=t.gpuAcceleration,l=t.adaptive,c=t.roundOffsets,g=t.isFixed,v=p.x,d=v===void 0?0:v,w=p.y,m=w===void 0?0:w,u=typeof c=="function"?c({x:d,y:m}):{x:d,y:m};d=u.x,m=u.y;var f=p.hasOwnProperty("x"),E=p.hasOwnProperty("y"),P=M,y=k,b=window;if(l){var x=J(o),D="clientHeight",L="clientWidth";if(x===S(o)&&(x=_(o),j(x).position!=="static"&&s==="absolute"&&(D="scrollHeight",L="scrollWidth")),x=x,i===k||(i===M||i===A)&&r===fe){y=H;var F=g&&x===b&&b.visualViewport?b.visualViewport.height:x[D];m-=F-n.height,m*=a?1:-1}if(i===M||(i===k||i===H)&&r===fe){P=A;var C=g&&x===b&&b.visualViewport?b.visualViewport.width:x[L];d-=C-n.width,d*=a?1:-1}}var O=Object.assign({position:s},l&&zn),Y=c===!0?Kn({x:d,y:m},S(o)):{x:d,y:m};if(d=Y.x,m=Y.y,a){var B;return Object.assign({},O,(B={},B[y]=E?"0":"",B[P]=f?"0":"",B.transform=(b.devicePixelRatio||1)<=1?"translate("+d+"px, "+m+"px)":"translate3d("+d+"px, "+m+"px, 0)",B))}return Object.assign({},O,(e={},e[y]=E?m+"px":"",e[P]=f?d+"px":"",e.transform="",e))}function Gn(t){var e=t.state,o=t.options,n=o.gpuAcceleration,i=n===void 0?!0:n,r=o.adaptive,p=r===void 0?!0:r,s=o.roundOffsets,a=s===void 0?!0:s;if(!1)var l;var c={placement:V(e.placement),variation:K(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:i,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,Co(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:p,roundOffsets:a})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,Co(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:a})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}var Ho={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Gn,data:{}};var st={passive:!0};function Qn(t){var e=t.state,o=t.instance,n=t.options,i=n.scroll,r=i===void 0?!0:i,p=n.resize,s=p===void 0?!0:p,a=S(e.elements.popper),l=[].concat(e.scrollParents.reference,e.scrollParents.popper);return r&&l.forEach(function(c){c.addEventListener("scroll",o.update,st)}),s&&a.addEventListener("resize",o.update,st),function(){r&&l.forEach(function(c){c.removeEventListener("scroll",o.update,st)}),s&&a.removeEventListener("resize",o.update,st)}}var Ro={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Qn,data:{}};var Xn={left:"right",right:"left",bottom:"top",top:"bottom"};function Te(t){return t.replace(/left|right|bottom|top/g,function(e){return Xn[e]})}var Jn={start:"end",end:"start"};function lt(t){return t.replace(/start|end/g,function(e){return Jn[e]})}function ye(t){var e=S(t),o=e.pageXOffset,n=e.pageYOffset;return{scrollLeft:o,scrollTop:n}}function be(t){return z(_(t)).left+ye(t).scrollLeft}function At(t,e){var o=S(t),n=_(t),i=o.visualViewport,r=n.clientWidth,p=n.clientHeight,s=0,a=0;if(i){r=i.width,p=i.height;var l=je();(l||!l&&e==="fixed")&&(s=i.offsetLeft,a=i.offsetTop)}return{width:r,height:p,x:s+be(t),y:a}}function Lt(t){var e,o=_(t),n=ye(t),i=(e=t.ownerDocument)==null?void 0:e.body,r=X(o.scrollWidth,o.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),p=X(o.scrollHeight,o.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+be(t),a=-n.scrollTop;return j(i||o).direction==="rtl"&&(s+=X(o.clientWidth,i?i.clientWidth:0)-r),{width:r,height:p,x:s,y:a}}function xe(t){var e=j(t),o=e.overflow,n=e.overflowX,i=e.overflowY;return/auto|scroll|overlay|hidden/.test(o+i+n)}function pt(t){return["html","body","#document"].indexOf(I(t))>=0?t.ownerDocument.body:R(t)&&xe(t)?t:pt(ne(t))}function ae(t,e){var o;e===void 0&&(e=[]);var n=pt(t),i=n===((o=t.ownerDocument)==null?void 0:o.body),r=S(n),p=i?[r].concat(r.visualViewport||[],xe(n)?n:[]):n,s=e.concat(p);return i?s:s.concat(ae(ne(p)))}function ke(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Zn(t,e){var o=z(t,!1,e==="fixed");return o.top=o.top+t.clientTop,o.left=o.left+t.clientLeft,o.bottom=o.top+t.clientHeight,o.right=o.left+t.clientWidth,o.width=t.clientWidth,o.height=t.clientHeight,o.x=o.left,o.y=o.top,o}function Io(t,e,o){return e===rt?ke(At(t,o)):U(e)?Zn(e,o):ke(Lt(_(t)))}function ei(t){var e=ae(ne(t)),o=["absolute","fixed"].indexOf(j(t).position)>=0,n=o&&R(t)?J(t):t;return U(n)?e.filter(function(i){return U(i)&&Ye(i,n)&&I(i)!=="body"}):[]}function Ft(t,e,o,n){var i=e==="clippingParents"?ei(t):[].concat(e),r=[].concat(i,[o]),p=r[0],s=r.reduce(function(a,l){var c=Io(t,l,n);return a.top=X(c.top,a.top),a.right=ge(c.right,a.right),a.bottom=ge(c.bottom,a.bottom),a.left=X(c.left,a.left),a},Io(t,p,n));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function ze(t){var e=t.reference,o=t.element,n=t.placement,i=n?V(n):null,r=n?K(n):null,p=e.x+e.width/2-o.width/2,s=e.y+e.height/2-o.height/2,a;switch(i){case k:a={x:p,y:e.y-o.height};break;case H:a={x:p,y:e.y+e.height};break;case A:a={x:e.x+e.width,y:s};break;case M:a={x:e.x-o.width,y:s};break;default:a={x:e.x,y:e.y}}var l=i?ve(i):null;if(l!=null){var c=l==="y"?"height":"width";switch(r){case te:a[l]=a[l]-(e[c]/2-o[c]/2);break;case fe:a[l]=a[l]+(e[c]/2-o[c]/2);break;default:}}return a}function Z(t,e){e===void 0&&(e={});var o=e,n=o.placement,i=n===void 0?t.placement:n,r=o.strategy,p=r===void 0?t.strategy:r,s=o.boundary,a=s===void 0?Do:s,l=o.rootBoundary,c=l===void 0?rt:l,g=o.elementContext,v=g===void 0?Ne:g,d=o.altBoundary,w=d===void 0?!1:d,m=o.padding,u=m===void 0?0:m,f=qe(typeof u!="number"?u:Ue(u,re)),E=v===Ne?To:Ne,P=t.rects.popper,y=t.elements[w?E:v],b=Ft(U(y)?y:y.contextElement||_(t.elements.popper),a,c,p),x=z(t.elements.reference),D=ze({reference:x,element:P,strategy:"absolute",placement:i}),L=ke(Object.assign({},P,D)),F=v===Ne?L:x,C={top:b.top-F.top+f.top,bottom:F.bottom-b.bottom+f.bottom,left:b.left-F.left+f.left,right:F.right-b.right+f.right},O=t.modifiersData.offset;if(v===Ne&&O){var Y=O[i];Object.keys(C).forEach(function(B){var le=[A,H].indexOf(B)>=0?1:-1,pe=[k,H].indexOf(B)>=0?"y":"x";C[B]+=Y[pe]*le})}return C}function Ct(t,e){e===void 0&&(e={});var o=e,n=o.placement,i=o.boundary,r=o.rootBoundary,p=o.padding,s=o.flipVariations,a=o.allowedAutoPlacements,l=a===void 0?at:a,c=K(n),g=c?s?kt:kt.filter(function(w){return K(w)===c}):re,v=g.filter(function(w){return l.indexOf(w)>=0});v.length===0&&(v=g);var d=v.reduce(function(w,m){return w[m]=Z(t,{placement:m,boundary:i,rootBoundary:r,padding:p})[V(m)],w},{});return Object.keys(d).sort(function(w,m){return d[w]-d[m]})}function ti(t){if(V(t)===it)return[];var e=Te(t);return[lt(t),e,lt(e)]}function oi(t){var e=t.state,o=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var i=o.mainAxis,r=i===void 0?!0:i,p=o.altAxis,s=p===void 0?!0:p,a=o.fallbackPlacements,l=o.padding,c=o.boundary,g=o.rootBoundary,v=o.altBoundary,d=o.flipVariations,w=d===void 0?!0:d,m=o.allowedAutoPlacements,u=e.options.placement,f=V(u),E=f===u,P=a||(E||!w?[Te(u)]:ti(u)),y=[u].concat(P).reduce(function(Ee,ie){return Ee.concat(V(ie)===it?Ct(e,{placement:ie,boundary:c,rootBoundary:g,padding:l,flipVariations:w,allowedAutoPlacements:m}):ie)},[]),b=e.rects.reference,x=e.rects.popper,D=new Map,L=!0,F=y[0],C=0;C<y.length;C++){var O=y[C],Y=V(O),B=K(O)===te,le=[k,H].indexOf(Y)>=0,pe=le?"width":"height",$=Z(e,{placement:O,boundary:c,rootBoundary:g,altBoundary:v,padding:l}),G=le?B?A:M:B?H:k;b[pe]>x[pe]&&(G=Te(G));var Ge=Te(G),ce=[];if(r&&ce.push($[Y]<=0),s&&ce.push($[G]<=0,$[Ge]<=0),ce.every(function(Ee){return Ee})){F=O,L=!1;break}D.set(O,ce)}if(L)for(var Qe=w?3:1,gt=function(ie){var Le=y.find(function(Je){var de=D.get(Je);if(de)return de.slice(0,ie).every(function(ht){return ht})});if(Le)return F=Le,"break"},Ae=Qe;Ae>0;Ae--){var Xe=gt(Ae);if(Xe==="break")break}e.placement!==F&&(e.modifiersData[n]._skip=!0,e.placement=F,e.reset=!0)}}var Vo={name:"flip",enabled:!0,phase:"main",fn:oi,requiresIfExists:["offset"],data:{_skip:!1}};function Wo(t,e,o){return o===void 0&&(o={x:0,y:0}),{top:t.top-e.height-o.y,right:t.right-e.width+o.x,bottom:t.bottom-e.height+o.y,left:t.left-e.width-o.x}}function _o(t){return[k,A,H,M].some(function(e){return t[e]>=0})}function ni(t){var e=t.state,o=t.name,n=e.rects.reference,i=e.rects.popper,r=e.modifiersData.preventOverflow,p=Z(e,{elementContext:"reference"}),s=Z(e,{altBoundary:!0}),a=Wo(p,n),l=Wo(s,i,r),c=_o(a),g=_o(l);e.modifiersData[o]={referenceClippingOffsets:a,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:g},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":g})}var Bo={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:ni};function ii(t,e,o){var n=V(t),i=[M,k].indexOf(n)>=0?-1:1,r=typeof o=="function"?o(Object.assign({},e,{placement:t})):o,p=r[0],s=r[1];return p=p||0,s=(s||0)*i,[M,A].indexOf(n)>=0?{x:s,y:p}:{x:p,y:s}}function ri(t){var e=t.state,o=t.options,n=t.name,i=o.offset,r=i===void 0?[0,0]:i,p=at.reduce(function(c,g){return c[g]=ii(g,e.rects,r),c},{}),s=p[e.placement],a=s.x,l=s.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=a,e.modifiersData.popperOffsets.y+=l),e.modifiersData[n]=p}var jo={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:ri};function ai(t){var e=t.state,o=t.name;e.modifiersData[o]=ze({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}var Yo={name:"popperOffsets",enabled:!0,phase:"read",fn:ai,data:{}};function Ht(t){return t==="x"?"y":"x"}function si(t){var e=t.state,o=t.options,n=t.name,i=o.mainAxis,r=i===void 0?!0:i,p=o.altAxis,s=p===void 0?!1:p,a=o.boundary,l=o.rootBoundary,c=o.altBoundary,g=o.padding,v=o.tether,d=v===void 0?!0:v,w=o.tetherOffset,m=w===void 0?0:w,u=Z(e,{boundary:a,rootBoundary:l,padding:g,altBoundary:c}),f=V(e.placement),E=K(e.placement),P=!E,y=ve(f),b=Ht(y),x=e.modifiersData.popperOffsets,D=e.rects.reference,L=e.rects.popper,F=typeof m=="function"?m(Object.assign({},e.rects,{placement:e.placement})):m,C=typeof F=="number"?{mainAxis:F,altAxis:F}:Object.assign({mainAxis:0,altAxis:0},F),O=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,Y={x:0,y:0};if(x){if(r){var B,le=y==="y"?k:M,pe=y==="y"?H:A,$=y==="y"?"height":"width",G=x[y],Ge=G+u[le],ce=G-u[pe],Qe=d?-L[$]/2:0,gt=E===te?D[$]:L[$],Ae=E===te?-L[$]:-D[$],Xe=e.elements.arrow,Ee=d&&Xe?he(Xe):{width:0,height:0},ie=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:$e(),Le=ie[le],Je=ie[pe],de=we(0,D[$],Ee[$]),ht=P?D[$]/2-Qe-de-Le-C.mainAxis:gt-de-Le-C.mainAxis,Go=P?-D[$]/2+Qe+de+Je+C.mainAxis:Ae+de+Je+C.mainAxis,vt=e.elements.arrow&&J(e.elements.arrow),Qo=vt?y==="y"?vt.clientTop||0:vt.clientLeft||0:0,Ut=(B=O?.[y])!=null?B:0,Xo=G+ht-Ut-Qo,Jo=G+Go-Ut,zt=we(d?ge(Ge,Xo):Ge,G,d?X(ce,Jo):ce);x[y]=zt,Y[y]=zt-G}if(s){var Kt,Zo=y==="x"?k:M,en=y==="x"?H:A,ue=x[b],Ze=b==="y"?"height":"width",Gt=ue+u[Zo],Qt=ue-u[en],wt=[k,M].indexOf(f)!==-1,Xt=(Kt=O?.[b])!=null?Kt:0,Jt=wt?Gt:ue-D[Ze]-L[Ze]-Xt+C.altAxis,Zt=wt?ue+D[Ze]+L[Ze]-Xt-C.altAxis:Qt,eo=d&&wt?Lo(Jt,ue,Zt):we(d?Jt:Gt,ue,d?Zt:Qt);x[b]=eo,Y[b]=eo-ue}e.modifiersData[n]=Y}}var $o={name:"preventOverflow",enabled:!0,phase:"main",fn:si,requiresIfExists:["offset"]};function Rt(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function It(t){return t===S(t)||!R(t)?ye(t):Rt(t)}function li(t){var e=t.getBoundingClientRect(),o=oe(e.width)/t.offsetWidth||1,n=oe(e.height)/t.offsetHeight||1;return o!==1||n!==1}function Vt(t,e,o){o===void 0&&(o=!1);var n=R(e),i=R(e)&&li(e),r=_(e),p=z(t,i,o),s={scrollLeft:0,scrollTop:0},a={x:0,y:0};return(n||!n&&!o)&&((I(e)!=="body"||xe(r))&&(s=It(e)),R(e)?(a=z(e,!0),a.x+=e.clientLeft,a.y+=e.clientTop):r&&(a.x=be(r))),{x:p.left+s.scrollLeft-a.x,y:p.top+s.scrollTop-a.y,width:p.width,height:p.height}}function pi(t){var e=new Map,o=new Set,n=[];t.forEach(function(r){e.set(r.name,r)});function i(r){o.add(r.name);var p=[].concat(r.requires||[],r.requiresIfExists||[]);p.forEach(function(s){if(!o.has(s)){var a=e.get(s);a&&i(a)}}),n.push(r)}return t.forEach(function(r){o.has(r.name)||i(r)}),n}function Wt(t){var e=pi(t);return ko.reduce(function(o,n){return o.concat(e.filter(function(i){return i.phase===n}))},[])}function _t(t){var e;return function(){return e||(e=new Promise(function(o){Promise.resolve().then(function(){e=void 0,o(t())})})),e}}function Bt(t){var e=t.reduce(function(o,n){var i=o[n.name];return o[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,o},{});return Object.keys(e).map(function(o){return e[o]})}var qo={placement:"bottom",modifiers:[],strategy:"absolute"};function Uo(){for(var t=arguments.length,e=new Array(t),o=0;o<t;o++)e[o]=arguments[o];return!e.some(function(n){return!(n&&typeof n.getBoundingClientRect=="function")})}function zo(t){t===void 0&&(t={});var e=t,o=e.defaultModifiers,n=o===void 0?[]:o,i=e.defaultOptions,r=i===void 0?qo:i;return function(s,a,l){l===void 0&&(l=r);var c={placement:"bottom",orderedModifiers:[],options:Object.assign({},qo,r),modifiersData:{},elements:{reference:s,popper:a},attributes:{},styles:{}},g=[],v=!1,d={state:c,setOptions:function(f){var E=typeof f=="function"?f(c.options):f;m(),c.options=Object.assign({},r,c.options,E),c.scrollParents={reference:U(s)?ae(s):s.contextElement?ae(s.contextElement):[],popper:ae(a)};var P=Wt(Bt([].concat(n,c.options.modifiers)));if(c.orderedModifiers=P.filter(function(O){return O.enabled}),!1){var y;if(getBasePlacement(c.options.placement)===auto)var b;var x,D,L,F,C}return w(),d.update()},forceUpdate:function(){if(!v){var f=c.elements,E=f.reference,P=f.popper;if(Uo(E,P)){c.rects={reference:Vt(E,J(P),c.options.strategy==="fixed"),popper:he(P)},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach(function(O){return c.modifiersData[O.name]=Object.assign({},O.data)});for(var y=0,b=0;b<c.orderedModifiers.length;b++){if(c.reset===!0){c.reset=!1,b=-1;continue}var x=c.orderedModifiers[b],D=x.fn,L=x.options,F=L===void 0?{}:L,C=x.name;typeof D=="function"&&(c=D({state:c,options:F,name:C,instance:d})||c)}}}},update:_t(function(){return new Promise(function(u){d.forceUpdate(),u(c)})}),destroy:function(){m(),v=!0}};if(!Uo(s,a))return d;d.setOptions(l).then(function(u){!v&&l.onFirstUpdate&&l.onFirstUpdate(u)});function w(){c.orderedModifiers.forEach(function(u){var f=u.name,E=u.options,P=E===void 0?{}:E,y=u.effect;if(typeof y=="function"){var b=y({state:c,name:f,instance:d,options:P}),x=function(){};g.push(b||x)}})}function m(){g.forEach(function(u){return u()}),g=[]}return d}}var ci=[Ro,Yo,Ho,Mo,jo,Vo,$o,Fo,Bo],jt=zo({defaultModifiers:ci});var Yt=class{constructor(e,o,n){this.owner=e,this.containerEl=o,o.on("click",".suggestion-item",this.onSuggestionClick.bind(this)),o.on("mousemove",".suggestion-item",this.onSuggestionMouseover.bind(this)),n.register([],"ArrowUp",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem-1,!0),!1}),n.register([],"ArrowDown",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem+1,!0),!1}),n.register([],"Enter",i=>{if(!i.isComposing)return this.useSelectedItem(i),!1})}onSuggestionClick(e,o){e.preventDefault();let n=this.suggestions.indexOf(o);this.setSelectedItem(n,!1),this.useSelectedItem(e)}onSuggestionMouseover(e,o){let n=this.suggestions.indexOf(o);this.setSelectedItem(n,!1)}setSuggestions(e){this.containerEl.empty();let o=[];e.forEach(n=>{let i=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(n,i),o.push(i)}),this.values=e,this.suggestions=o,this.setSelectedItem(0,!1)}useSelectedItem(e){let o=this.values[this.selectedItem];o&&this.owner.selectSuggestion(o,e)}setSelectedItem(e,o){let n=io(e,this.suggestions.length),i=this.suggestions[this.selectedItem],r=this.suggestions[n];i?.removeClass("is-selected"),r?.addClass("is-selected"),this.selectedItem=n,o&&r.scrollIntoView(!1)}},Ke=class{constructor(e,o){this.app=e,this.inputEl=o,this.scope=new Ko.Scope,this.suggestEl=createDiv("suggestion-container");let n=this.suggestEl.createDiv("suggestion");this.suggest=new Yt(this,n,this.scope),this.scope.register([],"Escape",this.close.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onInputChanged.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",i=>{i.preventDefault()})}onInputChanged(){let e=this.inputEl.value,o=this.getSuggestions(e);o.length>0&&(this.suggest.setSuggestions(o),this.open(this.app.dom.appContainerEl,this.inputEl))}open(e,o){this.app.keymap.pushScope(this.scope),e.appendChild(this.suggestEl),this.popper=jt(o,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"sameWidth",enabled:!0,fn:({state:n,instance:i})=>{let r=`${n.rects.reference.width+100}px`;n.styles.popper.width!==r&&(n.styles.popper.width=r,i.update())},phase:"beforeWrite",requires:["computeStyles"]}]})}close(){this.app.keymap.popScope(this.scope),this.suggest.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}};var ct=class extends Ke{getSuggestions(e){let o=this.app.vault.getAllLoadedFiles(),n=[],i=e.toLowerCase();return o.forEach(r=>{r instanceof Me.TFile&&["md","canvas"].contains(r.extension)&&r.path.toLowerCase().contains(i)&&n.push(r)}),n}renderSuggestion(e,o){e.extension=="md"?o.setText(ee(e)):(o.setText(e.path.slice(0,-7)),o.insertAdjacentHTML("beforeend",'<div class="nav-file-tag" style="display:inline-block;vertical-align:middle">canvas</div>'))}selectSuggestion(e){this.inputEl.value=ee(e),this.inputEl.trigger("input"),this.close()}},dt=class extends Ke{getSuggestions(e){let o=Object.keys(this.app.internalPlugins.plugins.workspaces?.instance.workspaces),n=e.toLowerCase();return o.filter(i=>i.toLowerCase().contains(n))}renderSuggestion(e,o){o.setText(e)}selectSuggestion(e){this.inputEl.value=e,this.inputEl.trigger("input"),this.close()}},ut=class extends Me.FuzzySuggestModal{constructor(o){super(o.plugin.app);this.homepage=o.plugin.homepage,this.tab=o}getItems(){return Object.values(this.app.commands.commands)}getItemText(o){return o.name}onChooseItem(o){if(o.id==="homepage:open-homepage"){new Me.Notice("Really?");return}else this.homepage.data.commands||(this.homepage.data.commands=[]);this.homepage.data.commands.push(o.id),this.homepage.save(),this.tab.updateCommandBox()}};var qt={version:3,homepages:{[me]:{value:"Home",kind:"File",openOnStartup:!0,hasRibbonIcon:!0,openMode:"Replace all open notes",manualOpenMode:"Keep open notes",view:"Default view",revertView:!0,openWhenEmpty:!1,refreshDataview:!1,autoCreate:!0,autoScroll:!1,pin:!1,commands:[],alwaysApply:!1}},separateMobile:!1},$t=qt.homepages[me],di=["Random file","Graph view",...Dt],mt=class extends W.PluginSettingTab{constructor(o,n){super(o,n);this.plugin=n,this.settings=n.settings}sanitiseNote(o){return o===null||o.match(/^\s*$/)!==null?null:(0,W.normalizePath)(o)}display(){let o=this.plugin.homepage.data.kind=="Workspace",n=tt(this.plugin),i=!1,r=document.createElement("article"),p=o?dt:ct;this.containerEl.empty(),this.elements={},r.id="nv-desc";let s=new W.Setting(this.containerEl).setName("Homepage").addDropdown(async a=>{for(let l of Object.values(_e)){if(!this.plugin.hasRequiredPlugin(l))if(l==this.plugin.homepage.data.kind)i=!0;else continue;let c=l;l=="Date-dependent file"&&(c="Moment (legacy)"),a.addOption(l,c)}a.setValue(this.plugin.homepage.data.kind),a.onChange(async l=>{this.plugin.homepage.data.kind=l,await this.plugin.homepage.save(),this.display()})});switch(s.settingEl.id="nv-main-setting",s.settingEl.append(r),this.plugin.homepage.data.kind){case"File":r.innerHTML="Enter a note or canvas to use.";break;case"Workspace":r.innerHTML="Enter an Obsidian workspace to use.";break;case"Graph view":r.innerHTML="Your graph view will be used.";break;case"Date-dependent file":r.innerHTML=`<span class="mod-warning">This type is deprecated and will eventually be removed. Use Daily/Weekly/Monthly/Yearly Note instead, which works natively with Daily and Periodic Notes.</span><br>
Enter a note or canvas to use based on <a href="https://momentjs.com/docs/#/displaying/format/" target="_blank" rel="noopener">Moment date formatting</a>.<small> Surround words in <code>[brackets]</code> to include them unmodified.
<br> Currently, your specification will produce: </small>`;break;case"Random file":r.innerHTML="A random note or canvas from your Obsidian folder will be selected.";break;case"Daily Note":r.innerHTML="Your Daily Note or Periodic Daily Note will be used.";break;case"Weekly Note":case"Monthly Note":case"Yearly Note":r.innerHTML=`Your Periodic ${this.plugin.homepage.data.kind} will be used.`;break}if(i&&r.createDiv({text:"The plugin required for this homepage type isn't available.",attr:{class:"mod-warning"}}),this.plugin.homepage.data.kind=="Date-dependent file"){let a=r.lastChild.createEl("b",{attr:{class:"u-pop"}});s.addMomentFormat(l=>l.setDefaultFormat("YYYY-MM-DD").setValue(this.plugin.homepage.data.value).onChange(async c=>{this.plugin.homepage.data.value=c,await this.plugin.homepage.save()}).setSampleEl(a))}else di.includes(this.plugin.homepage.data.kind)?s.addText(a=>{a.setDisabled(!0)}):s.addText(a=>{new p(this.app,a.inputEl),a.setPlaceholder($t.value),a.setValue($t.value==this.plugin.homepage.data.value?"":this.plugin.homepage.data.value),a.onChange(async l=>{this.plugin.homepage.data.value=this.sanitiseNote(l)||$t.value,await this.plugin.homepage.save()})});this.addToggle("Open on startup","When launching Obsidian, open the homepage.","openOnStartup",a=>this.display()),n&&(this.elements.openOnStartup.descEl.createDiv({text:`This setting has been disabled, as it isn't compatible with Daily Notes' "Open daily note on startup" functionality. To use it, disable the Daily Notes setting.`,attr:{class:"mod-warning"}}),this.disableSetting("openOnStartup")),this.addToggle("Open when empty","When there are no tabs open, open the homepage.","openWhenEmpty"),this.addToggle("Use when opening normally","Use homepage settings when opening it normally, such as from a link or the file browser.","alwaysApply"),this.addToggle("Use ribbon icon","Show a little house on the ribbon, allowing you to quickly access the homepage.","hasRibbonIcon",a=>this.plugin.setIcon(a)),new W.Setting(this.containerEl).setName("Separate mobile homepage").setDesc("For mobile devices, store the homepage and its settings separately.").addToggle(a=>a.setValue(this.plugin.settings.separateMobile).onChange(async l=>{this.plugin.settings.separateMobile=l,this.plugin.homepage=this.plugin.getHomepage(),await this.plugin.saveSettings(),this.display()})),this.addHeading("Commands","commandsHeading"),this.containerEl.createDiv({cls:"nv-command-desc setting-item-description",text:"Select commands that will be executed when opening the homepage."}),this.commandBox=this.containerEl.createDiv({cls:"nv-command-box"}),this.updateCommandBox(),this.addHeading("Vault environment","vaultHeading"),this.addDropdown("Opening method","Determine how extant tabs and views are affected on startup.","openMode",nt),this.addDropdown("Manual opening method","Determine how extant tabs and views are affected when opening with commands or the ribbon button.","manualOpenMode",nt),this.addToggle("Auto-create","If the homepage doesn't exist, create a note with the specified name.","autoCreate"),this.addToggle("Pin","Pin the homepage when opening.","pin"),this.addHeading("Opened view","paneHeading"),this.addDropdown("Homepage view","Choose what view to open the homepage in.","view",Tt),this.addToggle("Revert view on close","When navigating away from the homepage, restore the default view.","revertView"),this.addToggle("Auto-scroll","When opening the homepage, scroll to the bottom and focus on the last line.","autoScroll"),"dataview"in this.plugin.communityPlugins&&(this.addToggle("Refresh Dataview","Always attempt to reload Dataview views when opening the homepage.","refreshDataview"),this.elements.refreshDataview.descEl.createDiv({text:"Requires Dataview auto-refresh to be enabled.",attr:{class:"mod-warning"}})),W.Platform.isMobile||new W.ButtonComponent(this.containerEl).setButtonText("Copy debug info").setClass("nv-debug-button").onClick(async()=>await this.copyDebugInfo()),o&&this.disableSettings("openWhenEmpty","alwaysApply","vaultHeading","openMode","manualOpenMode","autoCreate","pin"),(o||this.plugin.homepage.data.kind=="Graph view")&&this.disableSettings("paneHeading","view","revertView","autoScroll","refreshDataview"),(!this.plugin.homepage.data.openOnStartup||n)&&this.disableSetting("openMode"),Dt.includes(this.plugin.homepage.data.kind)&&this.disableSetting("autoCreate")}disableSetting(o){this.elements[o]?.settingEl.setAttribute("nv-greyed","")}disableSettings(...o){o.forEach(n=>this.disableSetting(n))}addHeading(o,n){let i=new W.Setting(this.containerEl).setHeading().setName(o);this.elements[n]=i}addDropdown(o,n,i,r,p){let s=new W.Setting(this.containerEl).setName(o).setDesc(n).addDropdown(async a=>{for(let l of Object.values(r))a.addOption(l,l);a.setValue(this.plugin.homepage.data[i]),a.onChange(async l=>{this.plugin.homepage.data[i]=l,await this.plugin.homepage.save(),p&&p(l)})});this.elements[i]=s}addToggle(o,n,i,r){let p=new W.Setting(this.containerEl).setName(o).setDesc(n).addToggle(s=>s.setValue(this.plugin.homepage.data[i]).onChange(async a=>{this.plugin.homepage.data[i]=a,await this.plugin.homepage.save(),r&&r(a)}));this.elements[i]=p}updateCommandBox(){this.commandBox.innerHTML="";for(let[o,n]of this.plugin.homepage.data.commands.entries()){let i=this.app.commands.findCommand(n);if(!i)continue;let r=this.commandBox.createDiv({cls:"nv-command-pill",text:i.name});new W.ButtonComponent(r).setIcon("trash-2").setClass("clickable-icon").onClick(()=>{this.plugin.homepage.data.commands.splice(o,1),this.plugin.homepage.save(),this.updateCommandBox()})}new W.ButtonComponent(this.commandBox).setClass("nv-command-add-button").setButtonText("Add...").onClick(()=>{new ut(this).open()})}async copyDebugInfo(){let o=this.app.vault.config,n={...this.settings,_defaultViewMode:o.defaultViewMode||"default",_livePreview:o.livePreview||"default",_focusNewTab:o.focusNewTab||"default",_plugins:Object.keys(this.plugin.communityPlugins),_internalPlugins:Object.values(this.plugin.internalPlugins).flatMap(i=>i.enabled?[i.instance.id]:[]),_obsidianVersion:window.electron.ipcRenderer.sendSync("version")};await navigator.clipboard.writeText(JSON.stringify(n)),new W.Notice("Copied homepage debug information to clipboard")}};var ui='<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5"><path d="M10.025 21H6v-7H3v-1.5L12 3l9 9.5V14h-3v7h-4v-7h-3.975v7Z" style="fill:none;stroke:currentColor;stroke-width:2px"/></svg>',ft=class extends se.Plugin{constructor(){super(...arguments);this.loaded=!1;this.executing=!1;this.onLayoutChange=async()=>{this.homepage.data.revertView&&await this.homepage.revertView(),this.homepage.data.openWhenEmpty&&await this.homepage.openWhenEmpty(),this.homepage.data.alwaysApply&&await this.homepage.apply()}}async onload(){let o=document.body.querySelector(".progress-bar")!==null;this.settings=await this.loadSettings(),this.internalPlugins=this.app.internalPlugins.plugins,this.communityPlugins=this.app.plugins.plugins,this.homepage=this.getHomepage(),this.app.workspace.onLayoutReady(async()=>{let n=this.communityPlugins["new-tab-default-page"];n&&(n._checkForNewTab=n.checkForNewTab,n.checkForNewTab=async i=>{if(!(this&&this.executing))return await n._checkForNewTab(i)}),o&&this.homepage.data.openOnStartup&&await this.homepage.open(),this.loaded=!0}),(0,se.addIcon)("homepage",ui),this.setIcon(this.homepage.data.hasRibbonIcon),this.registerEvent(this.app.workspace.on("layout-change",this.onLayoutChange)),this.addSettingTab(new mt(this.app,this)),this.addCommand({id:"open-homepage",name:"Open homepage",callback:()=>this.homepage.open()}),console.log(`Homepage: ${this.homepage.data.value} (method: ${this.homepage.data.openMode}, view: ${this.homepage.data.view}, kind: ${this.homepage.data.kind})`)}async onunload(){this.app.workspace.off("layout-change",this.onLayoutChange);let o=this.communityPlugins["new-tab-default-page"];o&&(o.checkForNewTab=o._checkForNewTab)}getHomepage(){return this.settings.separateMobile&&se.Platform.isMobile?(ot in this.settings.homepages||(this.settings.homepages[ot]={...this.settings.homepages[me]}),new Be(ot,this)):new Be(me,this)}async loadSettings(){let o=await this.loadData();if(!o||o.version!==2)return Object.assign({},qt,o);{let n={version:3,homepages:{},separateMobile:!1},i=o;return o.workspaceEnabled?(i.value=i.workspace,i.kind="Workspace"):o.useMoment?(i.value=i.momentFormat,i.kind="Date-dependent file"):(i.value=i.defaultNote,i.kind="File"),i.commands=[],delete i.workspace,delete i.momentFormat,delete i.defaultNote,delete i.useMoment,delete i.workspaceEnabled,n.homepages[me]=i,n}}async saveSettings(){await this.saveData(this.settings)}setIcon(o){o?this.addRibbonIcon("homepage","Open homepage",n=>this.homepage.open(n.button==1||n.button==2||se.Keymap.isModifier(n,"Mod"))).setAttribute("id","nv-homepage-icon"):document.getElementById("nv-homepage-icon")?.remove()}hasRequiredPlugin(o){switch(o){case"Workspace":return this.internalPlugins.workspaces?.enabled;case"Graph view":return this.internalPlugins.graph?.enabled;case"Daily Note":case"Weekly Note":case"Monthly Note":case"Yearly Note":return Oo(o,this);default:return!0}}};