You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
154 KiB

/*
-------------------------------------------
Media DB - Release Build
-------------------------------------------
By: Moritz Jung (https://www.moritzjung.dev)
Time: Mon, 27 Jan 2025 20:54:57 GMT
Version: 0.8.0
-------------------------------------------
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
-------------------------------------------
MIT License
Copyright (c) 2025 Moritz Jung
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
"use strict";var zi=Object.defineProperty;var Ll=Object.getOwnPropertyDescriptor;var ql=Object.getOwnPropertyNames;var Ul=Object.prototype.hasOwnProperty;var ka=t=>{throw TypeError(t)};var Hl=(t,r,e)=>r in t?zi(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e;var Wl=(t,r)=>{for(var e in r)zi(t,e,{get:r[e],enumerable:!0})},Vl=(t,r,e,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of ql(r))!Ul.call(t,o)&&o!==e&&zi(t,o,{get:()=>r[o],enumerable:!(i=Ll(r,o))||i.enumerable});return t};var Yl=t=>Vl(zi({},"__esModule",{value:!0}),t);var p=(t,r,e)=>Hl(t,typeof r!="symbol"?r+"":r,e),Aa=(t,r,e)=>r.has(t)||ka("Cannot "+e);var xe=(t,r,e)=>(Aa(t,r,"read from private field"),e?e.call(t):r.get(t)),Xi=(t,r,e)=>r.has(t)?ka("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(t):r.set(t,e),Zi=(t,r,e,i)=>(Aa(t,r,"write to private field"),i?i.call(t,e):r.set(t,e),e);var ed={};Wl(ed,{default:()=>tn});module.exports=Yl(ed);var oe=require("obsidian");var rn=require("obsidian");var Ji=class{constructor(){p(this,"apis");this.apis=[]}async query(r,e){console.debug(`MDB | api manager queried with "${r}"`);let i=this.apis.filter(o=>e.contains(o.apiName)).map(async o=>{try{return await o.searchByTitle(r)}catch(n){return new rn.Notice(`Error querying ${o.apiName}: ${n}`),console.warn(n),[]}});return(await Promise.all(i)).flat()}async queryDetailedInfo(r){return await this.queryDetailedInfoById(r.id,r.dataSource)}async queryDetailedInfoById(r,e){for(let i of this.apis)if(i.apiName===e)try{return i.getById(r)}catch(o){new rn.Notice(`Error querying ${i.apiName}: ${o}`),console.warn(o);return}}getApiByName(r){for(let e of this.apis)if(e.apiName===r)return e}registerAPI(r){this.apis.push(r)}};var cn=require("obsidian");var on="obsidian-media-db-plugin",nn="m.projects.code@gmail.com",ge="mediaDB",an="0.5.2";function Na(t,r){if(r<=0)throw Error("size may not be zero or negative");return Qi(t,r)}function sn(t){return/^[\p{Letter}\p{M}_]+$/u.test(t)}function Fa(t){return t.replace(/[\\,#%&{}/*<>$"@.?]*/g,"").replace(/:+/g," -")}function ln(t,r,e=!1){return t.replace(new RegExp("{{.*?}}","g"),i=>jl(i,r,e))}function jl(t,r,e){let i=t;i=i.substring(2),i=i.substring(0,i.length-2),i=i.trim();let o=i.split(":");if(o.length===1){let n=o[0].split("."),a=Ra(n,r);return a===void 0?e?"":"{{ INVALID TEMPLATE TAG - object undefined }}":a}else if(o.length===2){let n=o[0],a=o[1].split("."),s=Ra(a,r);return s===void 0?e?"":"{{ INVALID TEMPLATE TAG - object undefined }}":n==="LIST"?Array.isArray(s)?s.map(l=>`- ${l}`).join(`
`):"{{ INVALID TEMPLATE TAG - operator LIST is only applicable on an array }}":n==="ENUM"?Array.isArray(s)?s.join(", "):"{{ INVALID TEMPLATE TAG - operator ENUM is only applicable on an array }}":n==="FIRST"?Array.isArray(s)?s[0]:"{{ INVALID TEMPLATE TAG - operator FIRST is only applicable on an array }}":n==="LAST"?Array.isArray(s)?s[s.length-1]:"{{ INVALID TEMPLATE TAG - operator LAST is only applicable on an array }}":`{{ INVALID TEMPLATE TAG - unknown operator ${n} }}`}return"{{ INVALID TEMPLATE TAG }}"}function Ra(t,r){let e=r;for(let i of t)e!==void 0&&(e=e[i]);return e}function Ia(t){let r=t.length;if(r===0)return"";let e=t[0].length;if(e===0)return"";for(let n of t)if(n.length!==e)return"";let i=[];for(let n=0;n<e;n++){let a=0;for(let s of t)s[n].length>a&&(a=s[n].length);i.push(a)}let o="";for(let n=0;n<r;n++){o+="|";for(let a=0;a<e;a++){let s=t[n][a];s+=" ".repeat(i[a]-s.length),o+=" "+s+" |"}if(o+=`
`,n===0){o+="|";for(let a=0;a<e;a++)o+=" "+"-".repeat(i[a])+" |";o+=`
`}}return o}function Oa(t){return createFragment(r=>r.createDiv().innerHTML=t)}function Gl(t){return`${t.getMonth()+1}-${t.getDate()}-${t.getFullYear()}`}function Kl(t){return`${t.getHours()}-${t.getMinutes()}-${t.getSeconds()}`}function Ba(t){return`${Gl(t)} ${Kl(t)}`}function Qi(t,r){return(t%r+r)%r}function La(t){return t.charAt(0).toUpperCase()+t.slice(1)}var Jt=class extends Error{constructor(r){super(r)}},gi=class extends Error{constructor(r){super(r)}};function W(t,r,e){for(let i in t)t[i]=r.hasOwnProperty(i)?r[i]:e[i]}function vi(t){return t.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b([A-Z]+)([A-Z])([a-z])/,"$1 $2$3").replace(/^./,function(r){return r.toUpperCase()})}function pn(t){return!!t.plugins.plugins["templater-obsidian"]}async function qa(t,r){let e=t.plugins.plugins["templater-obsidian"];e&&!(e!=null&&e.settings.trigger_on_file_creation)&&await e.templater.overwrite_file_commands(r)}var ne=class{constructor(){p(this,"type");p(this,"subType");p(this,"title");p(this,"englishTitle");p(this,"year");p(this,"dataSource");p(this,"url");p(this,"id");p(this,"userData");this.type="",this.subType="",this.title="",this.englishTitle="",this.year="",this.dataSource="",this.url="",this.id="",this.userData={}}toMetaDataObject(){return{...this.getWithOutUserData(),...this.userData,tags:this.getTags().join("/")}}getWithOutUserData(){let r=structuredClone(this);return delete r.userData,r}};var Qt=class extends ne{constructor(e){super();p(this,"genres");p(this,"onlineRating");p(this,"complexityRating");p(this,"minPlayers");p(this,"maxPlayers");p(this,"playtime");p(this,"publishers");p(this,"image");p(this,"released");p(this,"userData");this.genres=[],this.onlineRating=0,this.complexityRating=0,this.minPlayers=0,this.maxPlayers=0,this.playtime="",this.publishers=[],this.image="",this.released=!1,this.userData={played:!1,personalRating:0},W(this,e,this),e.hasOwnProperty("userData")||W(this.userData,e,this.userData),this.type=this.getMediaType()}getTags(){return[ge,"boardgame"]}getMediaType(){return"boardgame"}getSummary(){return this.englishTitle+" ("+this.year+")"}};var j=class{constructor(){p(this,"apiName");p(this,"apiUrl");p(this,"apiDescription");p(this,"types");p(this,"plugin")}hasType(r){return this.types.contains(r)}hasTypeOverlap(r){return r.some(e=>this.hasType(e))}};var eo=class extends j{constructor(e){super();p(this,"plugin");this.plugin=e,this.apiName="BoardGameGeekAPI",this.apiDescription="A free API for BoardGameGeek things.",this.apiUrl="https://api.geekdo.com/xmlapi",this.types=["boardgame"]}async searchByTitle(e){var l,d,c,u,f,m,g;console.log(`MDB | api "${this.apiName}" queried by Title`);let i=`${this.apiUrl}/search?search=${encodeURIComponent(e)}`,o=await(0,cn.requestUrl)({url:i});if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=o.text,a=new window.DOMParser().parseFromString(n,"text/xml"),s=[];for(let h of Array.from(a.querySelectorAll("boardgame"))){let v=(l=h.attributes.getNamedItem("objectid"))==null?void 0:l.value,b=(f=(u=(d=h.querySelector("name[primary=true]"))==null?void 0:d.textContent)!=null?u:(c=h.querySelector("name"))==null?void 0:c.textContent)!=null?f:void 0,E=(g=(m=h.querySelector("yearpublished"))==null?void 0:m.textContent)!=null?g:"";s.push(new Qt({dataSource:this.apiName,id:v,title:b,englishTitle:b,year:E}))}return s}async getById(e){var E,T,M,_,y,$,A,D,x,C,S,O,L,U,H;console.log(`MDB | api "${this.apiName}" queried by ID`);let i=`${this.apiUrl}/boardgame/${encodeURIComponent(e)}?stats=1`,o=await(0,cn.requestUrl)({url:i});if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=o.text,s=new window.DOMParser().parseFromString(n,"text/xml").querySelector("boardgame");if(!s)throw Error(`MDB | Received invalid data from ${this.apiName}.`);let l=(E=s.querySelector("name[primary=true]"))==null?void 0:E.textContent,d=(M=(T=s.querySelector("yearpublished"))==null?void 0:T.textContent)!=null?M:"",c=(y=(_=s.querySelector("image"))==null?void 0:_.textContent)!=null?y:void 0,u=Number.parseFloat((A=($=s.querySelector("statistics ratings average"))==null?void 0:$.textContent)!=null?A:"0"),f=Array.from(s.querySelectorAll("boardgamecategory")).map(q=>q.textContent).filter(q=>q!==null),m=Number.parseFloat((x=(D=s.querySelector("averageweight"))==null?void 0:D.textContent)!=null?x:"0"),g=Number.parseFloat((S=(C=s.querySelector("minplayers"))==null?void 0:C.textContent)!=null?S:"0"),h=Number.parseFloat((L=(O=s.querySelector("maxplayers"))==null?void 0:O.textContent)!=null?L:"0"),v=((H=(U=s.querySelector("playingtime"))==null?void 0:U.textContent)!=null?H:"unknown")+" minutes",b=Array.from(s.querySelectorAll("boardgamepublisher")).map(q=>q.textContent).filter(q=>q!==null);return new Qt({title:l!=null?l:void 0,englishTitle:l!=null?l:void 0,year:d==="0"?"":d,dataSource:this.apiName,url:`https://boardgamegeek.com/boardgame/${e}`,id:e,genres:f,onlineRating:u,complexityRating:m,minPlayers:g,maxPlayers:h,playtime:v,publishers:b,image:c,released:!0,userData:{played:!1,personalRating:0}})}};var dn=require("obsidian");var ve=class extends ne{constructor(e){super();p(this,"developers");p(this,"publishers");p(this,"genres");p(this,"onlineRating");p(this,"image");p(this,"released");p(this,"releaseDate");p(this,"userData");this.developers=[],this.publishers=[],this.genres=[],this.onlineRating=0,this.image="",this.released=!1,this.releaseDate="",this.userData={played:!1,personalRating:0},W(this,e,this),e.hasOwnProperty("userData")||W(this.userData,e,this.userData),this.type=this.getMediaType()}getTags(){return[ge,"game"]}getMediaType(){return"game"}getSummary(){return this.englishTitle+" ("+this.year+")"}};var to=class extends j{constructor(e){super();p(this,"plugin");p(this,"apiDateFormat","YYYY-MM-DD");this.plugin=e,this.apiName="GiantBombAPI",this.apiDescription="A free API for games.",this.apiUrl="https://www.giantbomb.com/api",this.types=["game"]}async searchByTitle(e){if(console.log(`MDB | api "${this.apiName}" queried by Title`),!this.plugin.settings.GiantBombKey)throw Error(`MDB | API key for ${this.apiName} missing.`);let i=`${this.apiUrl}/games?api_key=${this.plugin.settings.GiantBombKey}&filter=name:${encodeURIComponent(e)}&format=json`,o=await(0,dn.requestUrl)({url:i});if(o.status===401)throw Error(`MDB | Authentication for ${this.apiName} failed. Check the API key.`);if(o.status===429)throw Error(`MDB | Too many requests for ${this.apiName}, you've exceeded your API quota.`);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json,a=[];for(let s of n.results)a.push(new ve({type:"game",title:s.name,englishTitle:s.name,year:new Date(s.original_release_date).getFullYear().toString(),dataSource:this.apiName,id:s.guid}));return a}async getById(e){var s,l,d,c,u,f,m,g,h;if(console.log(`MDB | api "${this.apiName}" queried by ID`),!this.plugin.settings.GiantBombKey)throw Error(`MDB | API key for ${this.apiName} missing.`);let i=`${this.apiUrl}/game/${encodeURIComponent(e)}/?api_key=${this.plugin.settings.GiantBombKey}&format=json`,o=await(0,dn.requestUrl)({url:i});if(console.debug(o),o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let a=(await o.json).results;return new ve({type:"game",title:a.name,englishTitle:a.name,year:new Date(a.original_release_date).getFullYear().toString(),dataSource:this.apiName,url:a.site_detail_url,id:a.guid,developers:(l=(s=a.developers)==null?void 0:s.map(v=>v.name))!=null?l:[],publishers:(c=(d=a.publishers)==null?void 0:d.map(v=>v.name))!=null?c:[],genres:(f=(u=a.genres)==null?void 0:u.map(v=>v.name))!=null?f:[],onlineRating:0,image:(g=(m=a.image)==null?void 0:m.super_url)!=null?g:"",released:!0,releaseDate:(h=a.original_release_date)!=null?h:"unknown",userData:{played:!1,personalRating:0}})}};var Ue=class extends ne{constructor(e){super();p(this,"plot");p(this,"genres");p(this,"director");p(this,"writer");p(this,"studio");p(this,"duration");p(this,"onlineRating");p(this,"actors");p(this,"image");p(this,"released");p(this,"streamingServices");p(this,"premiere");p(this,"userData");this.plot="",this.genres=[],this.director=[],this.writer=[],this.studio=[],this.duration="",this.onlineRating=0,this.actors=[],this.image="",this.released=!1,this.streamingServices=[],this.premiere="",this.userData={watched:!1,lastWatched:"",personalRating:0},W(this,e,this),e.hasOwnProperty("userData")||W(this.userData,e,this.userData),this.type=this.getMediaType()}getTags(){return[ge,"tv","movie"]}getMediaType(){return"movie"}getSummary(){return this.englishTitle+" ("+this.year+")"}};var ht=class extends ne{constructor(e){super();p(this,"plot");p(this,"genres");p(this,"writer");p(this,"studio");p(this,"episodes");p(this,"duration");p(this,"onlineRating");p(this,"actors");p(this,"image");p(this,"released");p(this,"streamingServices");p(this,"airing");p(this,"airedFrom");p(this,"airedTo");p(this,"userData");this.plot="",this.genres=[],this.writer=[],this.studio=[],this.episodes=0,this.duration="",this.onlineRating=0,this.actors=[],this.image="",this.released=!1,this.streamingServices=[],this.airing=!1,this.airedFrom="",this.airedTo="",this.userData={watched:!1,lastWatched:"",personalRating:0},W(this,e,this),e.hasOwnProperty("userData")||W(this.userData,e,this.userData),this.type=this.getMediaType()}getTags(){return[ge,"tv","series"]}getMediaType(){return"series"}getSummary(){return this.title+" ("+this.year+")"}};var ro=class extends j{constructor(e){super();p(this,"plugin");p(this,"typeMappings");p(this,"apiDateFormat","YYYY-MM-DDTHH:mm:ssZ");this.plugin=e,this.apiName="MALAPI",this.apiDescription="A free API for Anime. Some results may take a long time to load.",this.apiUrl="https://jikan.moe/",this.types=["movie","series"],this.typeMappings=new Map,this.typeMappings.set("movie","movie"),this.typeMappings.set("special","special"),this.typeMappings.set("tv","series"),this.typeMappings.set("ova","ova")}async searchByTitle(e){var s,l,d,c,u,f,m,g,h,v,b,E,T,M,_,y,$,A,D;console.log(`MDB | api "${this.apiName}" queried by Title`);let i=`https://api.jikan.moe/v4/anime?q=${encodeURIComponent(e)}&limit=20${this.plugin.settings.sfwFilter?"&sfw":""}`,o=await fetch(i);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json(),a=[];for(let x of n.data){let C=this.typeMappings.get((s=x.type)==null?void 0:s.toLowerCase());C===void 0&&a.push(new Ue({subType:"",title:x.title,englishTitle:(l=x.title_english)!=null?l:x.title,year:(m=(f=x.year)!=null?f:(u=(c=(d=x.aired)==null?void 0:d.prop)==null?void 0:c.from)==null?void 0:u.year)!=null?m:"",dataSource:this.apiName,id:x.mal_id})),C==="movie"||C==="special"?a.push(new Ue({subType:C,title:x.title,englishTitle:(g=x.title_english)!=null?g:x.title,year:(T=(E=x.year)!=null?E:(b=(v=(h=x.aired)==null?void 0:h.prop)==null?void 0:v.from)==null?void 0:b.year)!=null?T:"",dataSource:this.apiName,id:x.mal_id})):(C==="series"||C==="ova")&&a.push(new ht({subType:C,title:x.title,englishTitle:(M=x.title_english)!=null?M:x.title,year:(D=(A=x.year)!=null?A:($=(y=(_=x.aired)==null?void 0:_.prop)==null?void 0:y.from)==null?void 0:$.year)!=null?D:"",dataSource:this.apiName,id:x.mal_id}))}return a}async getById(e){var l,d,c,u,f,m,g,h,v,b,E,T,M,_,y,$,A,D,x,C,S,O,L,U,H,q,Ne,he,Kt,Sr,It,zt,Et,Qe,Ot,Xt,ft,Cr,Wi,$r,Vi,si,Yi,ji,li,pi,Gi,Ki,mt,Zt,ci,di,Pr,ui,fi,mi,hi,Ca,$a,Pa;console.log(`MDB | api "${this.apiName}" queried by ID`);let i=`https://api.jikan.moe/v4/anime/${encodeURIComponent(e)}/full`,o=await fetch(i);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let a=(await o.json()).data,s=this.typeMappings.get((l=a.type)==null?void 0:l.toLowerCase());if(s===void 0)return new Ue({subType:"",title:a.title,englishTitle:(d=a.title_english)!=null?d:a.title,year:(g=(m=a.year)!=null?m:(f=(u=(c=a.aired)==null?void 0:c.prop)==null?void 0:u.from)==null?void 0:f.year)!=null?g:"",dataSource:this.apiName,url:a.url,id:a.mal_id,plot:a.synopsis,genres:(v=(h=a.genres)==null?void 0:h.map(pe=>pe.name))!=null?v:[],director:[],writer:[],studio:(E=(b=a.studios)==null?void 0:b.map(pe=>pe.name).join(", "))!=null?E:"unknown",duration:(T=a.duration)!=null?T:"unknown",onlineRating:(M=a.score)!=null?M:0,actors:[],image:($=(y=(_=a.images)==null?void 0:_.jpg)==null?void 0:y.image_url)!=null?$:"",released:!0,premiere:(D=this.plugin.dateFormatter.format((A=a.aired)==null?void 0:A.from,this.apiDateFormat))!=null?D:"unknown",streamingServices:(C=(x=a.streaming)==null?void 0:x.map(pe=>pe.name))!=null?C:[],userData:{watched:!1,lastWatched:"",personalRating:0}});if(s==="movie"||s==="special")return new Ue({subType:s,title:a.title,englishTitle:(S=a.title_english)!=null?S:a.title,year:(q=(H=a.year)!=null?H:(U=(L=(O=a.aired)==null?void 0:O.prop)==null?void 0:L.from)==null?void 0:U.year)!=null?q:"",dataSource:this.apiName,url:a.url,id:a.mal_id,plot:a.synopsis,genres:(he=(Ne=a.genres)==null?void 0:Ne.map(pe=>pe.name))!=null?he:[],director:[],writer:[],studio:(Sr=(Kt=a.studios)==null?void 0:Kt.map(pe=>pe.name).join(", "))!=null?Sr:"unknown",duration:(It=a.duration)!=null?It:"unknown",onlineRating:(zt=a.score)!=null?zt:0,actors:[],image:(Ot=(Qe=(Et=a.images)==null?void 0:Et.jpg)==null?void 0:Qe.image_url)!=null?Ot:"",released:!0,premiere:(ft=this.plugin.dateFormatter.format((Xt=a.aired)==null?void 0:Xt.from,this.apiDateFormat))!=null?ft:"unknown",streamingServices:(Wi=(Cr=a.streaming)==null?void 0:Cr.map(pe=>pe.name))!=null?Wi:[],userData:{watched:!1,lastWatched:"",personalRating:0}});if(s==="series"||s==="ova")return new ht({subType:s,title:a.title,englishTitle:($r=a.title_english)!=null?$r:a.title,year:(li=(ji=a.year)!=null?ji:(Yi=(si=(Vi=a.aired)==null?void 0:Vi.prop)==null?void 0:si.from)==null?void 0:Yi.year)!=null?li:"",dataSource:this.apiName,url:a.url,id:a.mal_id,plot:a.synopsis,genres:(Gi=(pi=a.genres)==null?void 0:pi.map(pe=>pe.name))!=null?Gi:[],writer:[],studio:(mt=(Ki=a.studios)==null?void 0:Ki.map(pe=>pe.name))!=null?mt:[],episodes:a.episodes,duration:(Zt=a.duration)!=null?Zt:"unknown",onlineRating:(ci=a.score)!=null?ci:0,streamingServices:(Pr=(di=a.streaming)==null?void 0:di.map(pe=>pe.name))!=null?Pr:[],image:(mi=(fi=(ui=a.images)==null?void 0:ui.jpg)==null?void 0:fi.image_url)!=null?mi:"",released:!0,airedFrom:(Ca=this.plugin.dateFormatter.format((hi=a.aired)==null?void 0:hi.from,this.apiDateFormat))!=null?Ca:"unknown",airedTo:(Pa=this.plugin.dateFormatter.format(($a=a.aired)==null?void 0:$a.to,this.apiDateFormat))!=null?Pa:"unknown",airing:a.airing,userData:{watched:!1,lastWatched:"",personalRating:0}});throw new Error(`MDB | Unknown media type for id ${e}`)}};var er=class extends ne{constructor(e){super();p(this,"plot");p(this,"alternateTitles");p(this,"genres");p(this,"authors");p(this,"chapters");p(this,"volumes");p(this,"onlineRating");p(this,"image");p(this,"released");p(this,"status");p(this,"publishedFrom");p(this,"publishedTo");p(this,"userData");this.plot="",this.alternateTitles=[],this.genres=[],this.authors=[],this.chapters=0,this.volumes=0,this.onlineRating=0,this.image="",this.released=!1,this.status="",this.publishedFrom="",this.publishedTo="",this.userData={watched:!1,lastWatched:"",personalRating:0},W(this,e,this),e.hasOwnProperty("userData")||W(this.userData,e,this.userData),this.type=this.getMediaType()}getTags(){return[ge,"manga","light-novel"]}getMediaType(){return"manga"}getSummary(){return this.title+" ("+this.year+")"}};var io=class extends j{constructor(e){super();p(this,"plugin");p(this,"typeMappings");this.plugin=e,this.apiName="MALAPI Manga",this.apiDescription="A free API for Manga. Some results may take a long time to load.",this.apiUrl="https://jikan.moe/",this.types=["manga"],this.typeMappings=new Map,this.typeMappings.set("manga","manga"),this.typeMappings.set("manhwa","manhwa"),this.typeMappings.set("doujinshi","doujin"),this.typeMappings.set("one-shot","oneshot"),this.typeMappings.set("manhua","manhua"),this.typeMappings.set("light novel","light-novel"),this.typeMappings.set("novel","novel")}async searchByTitle(e){var s,l,d,c,u,f,m,g,h,v,b,E,T,M,_,y,$,A,D,x,C;console.log(`MDB | api "${this.apiName}" queried by Title`);let i=`https://api.jikan.moe/v4/manga?q=${encodeURIComponent(e)}&limit=20${this.plugin.settings.sfwFilter?"&sfw":""}`,o=await fetch(i);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json(),a=[];for(let S of n.data){let O=this.typeMappings.get((s=S.type)==null?void 0:s.toLowerCase());a.push(new er({subType:O,title:S.title,plot:S.synopsis,englishTitle:(l=S.title_english)!=null?l:S.title,alternateTitles:(c=(d=S.titles)==null?void 0:d.map(L=>L.title))!=null?c:[],year:(h=(g=S.year)!=null?g:(m=(f=(u=S.published)==null?void 0:u.prop)==null?void 0:f.from)==null?void 0:m.year)!=null?h:"",dataSource:this.apiName,url:S.url,id:S.mal_id,genres:(b=(v=S.genres)==null?void 0:v.map(L=>L.name))!=null?b:[],authors:(T=(E=S.authors)==null?void 0:E.map(L=>L.name))!=null?T:[],chapters:S.chapters,volumes:S.volumes,onlineRating:(M=S.score)!=null?M:0,image:($=(y=(_=S.images)==null?void 0:_.jpg)==null?void 0:y.image_url)!=null?$:"",released:!0,publishedFrom:(D=new Date((A=S.published)==null?void 0:A.from).toLocaleDateString())!=null?D:"unknown",publishedTo:(C=new Date((x=S.published)==null?void 0:x.to).toLocaleDateString())!=null?C:"unknown",status:S.status,userData:{watched:!1,lastWatched:"",personalRating:0}}))}return a}async getById(e){var l,d,c,u,f,m,g,h,v,b,E,T,M,_,y,$,A,D,x,C,S,O,L;console.log(`MDB | api "${this.apiName}" queried by ID`);let i=`https://api.jikan.moe/v4/manga/${encodeURIComponent(e)}/full`,o=await fetch(i);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let a=(await o.json()).data,s=this.typeMappings.get((l=a.type)==null?void 0:l.toLowerCase());return new er({subType:s,title:a.title,englishTitle:(d=a.title_english)!=null?d:a.title,alternateTitles:(u=(c=a.titles)==null?void 0:c.map(U=>U.title))!=null?u:[],year:(v=(h=a.year)!=null?h:(g=(m=(f=a.published)==null?void 0:f.prop)==null?void 0:m.from)==null?void 0:g.year)!=null?v:"",dataSource:this.apiName,url:a.url,id:a.mal_id,plot:(E=((b=a.synopsis)!=null?b:"unknown").replace(/"/g,"'"))!=null?E:"unknown",genres:(M=(T=a.genres)==null?void 0:T.map(U=>U.name))!=null?M:[],authors:(y=(_=a.authors)==null?void 0:_.map(U=>U.name))!=null?y:[],chapters:a.chapters,volumes:a.volumes,onlineRating:($=a.score)!=null?$:0,image:(x=(D=(A=a.images)==null?void 0:A.jpg)==null?void 0:D.image_url)!=null?x:"",released:!0,publishedFrom:(S=new Date((C=a.published)==null?void 0:C.from).toLocaleDateString())!=null?S:"unknown",publishedTo:(L=new Date((O=a.published)==null?void 0:O.to).toLocaleDateString())!=null?L:"unknown",status:a.status,userData:{watched:!1,lastWatched:"",personalRating:0}})}};var ru=require("obsidian"),un=require("obsidian");var oo=class extends j{constructor(e){super();p(this,"plugin");p(this,"apiDateFormat","YYYY-DD-MM");this.plugin=e,this.apiName="MobyGamesAPI",this.apiDescription="A free API for games.",this.apiUrl="https://api.mobygames.com/v1",this.types=["game"]}async searchByTitle(e){if(console.log(`MDB | api "${this.apiName}" queried by Title`),!this.plugin.settings.MobyGamesKey)throw new Error(`MDB | API key for ${this.apiName} missing.`);let i=`${this.apiUrl}/games?title=${encodeURIComponent(e)}&api_key=${this.plugin.settings.MobyGamesKey}`,o=await(0,un.requestUrl)({url:i});if(o.status===401)throw Error(`MDB | Authentication for ${this.apiName} failed. Check the API key.`);if(o.status===429)throw Error(`MDB | Too many requests for ${this.apiName}, you've exceeded your API quota.`);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json,a=[];for(let s of n.games)a.push(new ve({type:"game",title:s.title,englishTitle:s.title,year:new Date(s.platforms[0].first_release_date).getFullYear().toString(),dataSource:this.apiName,id:s.game_id}));return a}async getById(e){var s,l,d,c,u;if(console.log(`MDB | api "${this.apiName}" queried by ID`),!this.plugin.settings.MobyGamesKey)throw Error(`MDB | API key for ${this.apiName} missing.`);let i=`${this.apiUrl}/games?id=${encodeURIComponent(e)}&api_key=${this.plugin.settings.MobyGamesKey}`,o=await(0,un.requestUrl)({url:i});if(console.debug(o),o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let a=(await o.json).games[0];return new ve({type:"game",title:a.title,englishTitle:a.title,year:new Date(a.platforms[0].first_release_date).getFullYear().toString(),dataSource:this.apiName,url:`https://www.mobygames.com/game/${a.game_id}`,id:a.game_id,developers:[],publishers:[],genres:(l=(s=a.genres)==null?void 0:s.map(f=>f.genre_name))!=null?l:[],onlineRating:a.moby_score,image:(c=(d=a.sample_cover)==null?void 0:d.image)!=null?c:"",released:!0,releaseDate:(u=a.platforms[0].first_release_date)!=null?u:"unknown",userData:{played:!1,personalRating:0}})}};var fn=require("obsidian");var tr=class extends ne{constructor(e){super();p(this,"genres");p(this,"artists");p(this,"image");p(this,"rating");p(this,"userData");this.genres=[],this.artists=[],this.image="",this.rating=0,this.userData={personalRating:0},W(this,e,this),e.hasOwnProperty("userData")||W(this.userData,e,this.userData),this.type=this.getMediaType()}getTags(){return[ge,"music",this.subType]}getMediaType(){return"musicRelease"}getSummary(){let e=this.title+" ("+this.year+")";return this.artists.length>0&&(e+=" - "+this.artists.join(", ")),e}};var no=class extends j{constructor(e){super();p(this,"plugin");this.plugin=e,this.apiName="MusicBrainz API",this.apiDescription="Free API for music albums.",this.apiUrl="https://musicbrainz.org/",this.types=["musicRelease"]}async searchByTitle(e){console.log(`MDB | api "${this.apiName}" queried by Title`);let i=`https://musicbrainz.org/ws/2/release-group?query=${encodeURIComponent(e)}&limit=20&fmt=json`,o=await(0,fn.requestUrl)({url:i,headers:{"User-Agent":`${on}/${an} (${nn})`}});if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json,a=[];for(let s of n["release-groups"])a.push(new tr({type:"musicRelease",title:s.title,englishTitle:s.title,year:new Date(s["first-release-date"]).getFullYear().toString(),dataSource:this.apiName,url:"https://musicbrainz.org/release-group/"+s.id,id:s.id,image:"https://coverartarchive.org/release-group/"+s.id+"/front",artists:s["artist-credit"].map(l=>l.name),subType:s["primary-type"]}));return a}async getById(e){console.log(`MDB | api "${this.apiName}" queried by ID`);let i=`https://musicbrainz.org/ws/2/release-group/${encodeURIComponent(e)}?inc=releases+artists+tags+ratings+genres&fmt=json`,o=await(0,fn.requestUrl)({url:i,headers:{"User-Agent":`${on}/${an} (${nn})`}});if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json;return new tr({type:"musicRelease",title:n.title,englishTitle:n.title,year:new Date(n["first-release-date"]).getFullYear().toString(),dataSource:this.apiName,url:"https://musicbrainz.org/release-group/"+n.id,id:n.id,image:"https://coverartarchive.org/release-group/"+n.id+"/front",artists:n["artist-credit"].map(a=>a.name),genres:n.genres.map(a=>a.name),subType:n["primary-type"],rating:n.rating.value*2,userData:{personalRating:0}})}};var wu=require("obsidian");var ao=class extends j{constructor(e){super();p(this,"plugin");p(this,"typeMappings");p(this,"apiDateFormat","DD MMM YYYY");this.plugin=e,this.apiName="OMDbAPI",this.apiDescription="A free API for Movies, Series and Games.",this.apiUrl="https://www.omdbapi.com/",this.types=["movie","series","game"],this.typeMappings=new Map,this.typeMappings.set("movie","movie"),this.typeMappings.set("series","series"),this.typeMappings.set("game","game")}async searchByTitle(e){if(console.log(`MDB | api "${this.apiName}" queried by Title`),!this.plugin.settings.OMDbKey)throw new Error(`MDB | API key for ${this.apiName} missing.`);let i=`https://www.omdbapi.com/?s=${encodeURIComponent(e)}&apikey=${this.plugin.settings.OMDbKey}`,o=await fetch(i);if(o.status===401)throw Error(`MDB | Authentication for ${this.apiName} failed. Check the API key.`);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json();if(n.Response==="False"){if(n.Error==="Movie not found!")return[];throw Error(`MDB | Received error from ${this.apiName}:
${JSON.stringify(n,void 0,4)}`)}if(!n.Search)return[];let a=[];for(let s of n.Search){let l=this.typeMappings.get(s.Type.toLowerCase());l!==void 0&&(l==="movie"?a.push(new Ue({type:l,title:s.Title,englishTitle:s.Title,year:s.Year,dataSource:this.apiName,id:s.imdbID})):l==="series"?a.push(new ht({type:l,title:s.Title,englishTitle:s.Title,year:s.Year,dataSource:this.apiName,id:s.imdbID})):l==="game"&&a.push(new ve({type:l,title:s.Title,englishTitle:s.Title,year:s.Year,dataSource:this.apiName,id:s.imdbID})))}return a}async getById(e){var s,l,d,c,u,f,m,g,h,v,b,E,T,M,_,y,$,A,D,x,C,S,O,L,U,H,q,Ne,he;if(console.log(`MDB | api "${this.apiName}" queried by ID`),!this.plugin.settings.OMDbKey)throw Error(`MDB | API key for ${this.apiName} missing.`);let i=`https://www.omdbapi.com/?i=${encodeURIComponent(e)}&apikey=${this.plugin.settings.OMDbKey}`,o=await fetch(i);if(o.status===401)throw Error(`MDB | Authentication for ${this.apiName} failed. Check the API key.`);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json();if(n.Response==="False")throw Error(`MDB | Received error from ${this.apiName}: ${n.Error}`);let a=this.typeMappings.get(n.Type.toLowerCase());if(a===void 0)throw Error(`${n.type.toLowerCase()} is an unsupported type.`);if(a==="movie")return new Ue({type:a,title:n.Title,englishTitle:n.Title,year:n.Year,dataSource:this.apiName,url:`https://www.imdb.com/title/${n.imdbID}/`,id:n.imdbID,plot:(s=n.Plot)!=null?s:"",genres:(d=(l=n.Genre)==null?void 0:l.split(", "))!=null?d:[],director:(u=(c=n.Director)==null?void 0:c.split(", "))!=null?u:[],writer:(m=(f=n.Writer)==null?void 0:f.split(", "))!=null?m:[],studio:["N/A"],duration:(g=n.Runtime)!=null?g:"unknown",onlineRating:Number.parseFloat((h=n.imdbRating)!=null?h:0),actors:(b=(v=n.Actors)==null?void 0:v.split(", "))!=null?b:[],image:(E=n.Poster)!=null?E:"",released:!0,streamingServices:[],premiere:(T=this.plugin.dateFormatter.format(n.Released,this.apiDateFormat))!=null?T:"unknown",userData:{watched:!1,lastWatched:"",personalRating:0}});if(a==="series")return new ht({type:a,title:n.Title,englishTitle:n.Title,year:n.Year,dataSource:this.apiName,url:`https://www.imdb.com/title/${n.imdbID}/`,id:n.imdbID,plot:(M=n.Plot)!=null?M:"",genres:(y=(_=n.Genre)==null?void 0:_.split(", "))!=null?y:[],writer:(A=($=n.Writer)==null?void 0:$.split(", "))!=null?A:[],studio:[],episodes:0,duration:(D=n.Runtime)!=null?D:"unknown",onlineRating:Number.parseFloat((x=n.imdbRating)!=null?x:0),actors:(S=(C=n.Actors)==null?void 0:C.split(", "))!=null?S:[],image:(O=n.Poster)!=null?O:"",released:!0,streamingServices:[],airing:!1,airedFrom:(L=this.plugin.dateFormatter.format(n.Released,this.apiDateFormat))!=null?L:"unknown",airedTo:"unknown",userData:{watched:!1,lastWatched:"",personalRating:0}});if(a==="game")return new ve({type:a,title:n.Title,englishTitle:n.Title,year:n.Year,dataSource:this.apiName,url:`https://www.imdb.com/title/${n.imdbID}/`,id:n.imdbID,developers:[],publishers:[],genres:(H=(U=n.Genre)==null?void 0:U.split(", "))!=null?H:[],onlineRating:Number.parseFloat((q=n.imdbRating)!=null?q:0),image:(Ne=n.Poster)!=null?Ne:"",released:!0,releaseDate:(he=this.plugin.dateFormatter.format(n.Released,this.apiDateFormat))!=null?he:"unknown",userData:{played:!1,personalRating:0}});throw new Error(`MDB | Unknown media type for id ${e}`)}};var rr=class extends ne{constructor(e){super();p(this,"author");p(this,"plot");p(this,"pages");p(this,"image");p(this,"onlineRating");p(this,"isbn");p(this,"isbn13");p(this,"released");p(this,"userData");this.author="",this.plot="",this.pages=0,this.image="",this.onlineRating=0,this.isbn=0,this.isbn13=0,this.released=!1,this.userData={read:!1,lastRead:"",personalRating:0},W(this,e,this),e.hasOwnProperty("userData")||W(this.userData,e,this.userData),this.type=this.getMediaType()}getTags(){return[ge,"book"]}getMediaType(){return"book"}getSummary(){return this.englishTitle+" ("+this.year+") - "+this.author}};var so=class extends j{constructor(e){super();p(this,"plugin");this.plugin=e,this.apiName="OpenLibraryAPI",this.apiDescription="A free API for books",this.apiUrl="https://openlibrary.org/",this.types=["book"]}async searchByTitle(e){var s,l;console.log(`MDB | api "${this.apiName}" queried by Title`);let i=`https://openlibrary.org/search.json?title=${encodeURIComponent(e)}`,o=await fetch(i);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json(),a=[];for(let d of n.docs)a.push(new rr({title:d.title,englishTitle:(s=d.title_english)!=null?s:d.title,year:d.first_publish_year,dataSource:this.apiName,id:d.key,author:(l=d.author_name)!=null?l:"unknown"}));return a}async getById(e){var s,l,d,c,u,f,m,g,h;console.log(`MDB | api "${this.apiName}" queried by ID`);let i=`https://openlibrary.org/search.json?q=key:${encodeURIComponent(e)}`,o=await fetch(i);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let a=(await o.json()).docs[0];return new rr({title:a.title,year:a.first_publish_year,dataSource:this.apiName,url:"https://openlibrary.org"+a.key,id:a.key,isbn:(l=((s=a.isbn)!=null?s:[]).find(v=>v.length<=10))!=null?l:"unknown",isbn13:(c=((d=a.isbn)!=null?d:[]).find(v=>v.length==13))!=null?c:"unknown",englishTitle:(u=a.title_english)!=null?u:a.title,author:(f=a.author_name)!=null?f:"unknown",plot:(m=a.description)!=null?m:"unknown",pages:(g=a.number_of_pages_median)!=null?g:"unknown",onlineRating:Number.parseFloat(Number((h=a.ratings_average)!=null?h:0).toFixed(2)),image:"https://covers.openlibrary.org/b/OLID/"+a.cover_edition_key+"-L.jpg",released:!0,userData:{read:!1,lastRead:"",personalRating:0}})}};var mn=require("obsidian");var lo=class extends j{constructor(e){super();p(this,"plugin");p(this,"typeMappings");p(this,"apiDateFormat","DD MMM, YYYY");this.plugin=e,this.apiName="SteamAPI",this.apiDescription="A free API for all Steam games.",this.apiUrl="https://www.steampowered.com/",this.types=["game"],this.typeMappings=new Map,this.typeMappings.set("game","game")}async searchByTitle(e){console.log(`MDB | api "${this.apiName}" queried by Title`);let i=`https://steamcommunity.com/actions/SearchApps/${encodeURIComponent(e)}`,o=await(0,mn.requestUrl)({url:i});if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json,a=[];for(let s of n)a.push(new ve({type:"game",title:s.name,englishTitle:s.name,year:"",dataSource:this.apiName,id:s.appid}));return a}async getById(e){var a,s,l,d,c,u,f,m;console.log(`MDB | api "${this.apiName}" queried by ID`);let i=`https://store.steampowered.com/api/appdetails?appids=${encodeURIComponent(e)}&l=en`,o=await(0,mn.requestUrl)({url:i});if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n;for(let[g,h]of Object.entries(await o.json))g===String(e)&&(n=h.data);if(!n)throw Error("MDB | API returned invalid data.");return new ve({type:"game",title:n.name,englishTitle:n.name,year:new Date(n.release_date.date).getFullYear().toString(),dataSource:this.apiName,url:`https://store.steampowered.com/app/${n.steam_appid}`,id:n.steam_appid,developers:n.developers,publishers:n.publishers,genres:(s=(a=n.genres)==null?void 0:a.map(g=>g.description))!=null?s:[],onlineRating:Number.parseFloat((d=(l=n.metacritic)==null?void 0:l.score)!=null?d:0),image:(c=n.header_image)!=null?c:"",released:!((u=n.release_date)!=null&&u.comming_soon),releaseDate:(m=this.plugin.dateFormatter.format((f=n.release_date)==null?void 0:f.date,this.apiDateFormat))!=null?m:"unknown",userData:{played:!1,personalRating:0}})}};var ir=class extends ne{constructor(e){super();p(this,"wikiUrl");p(this,"lastUpdated");p(this,"length");p(this,"article");p(this,"userData");this.wikiUrl="",this.lastUpdated="",this.length=0,this.article="",this.userData={},W(this,e,this),e.hasOwnProperty("userData")||W(this.userData,e,this.userData),this.type=this.getMediaType()}getTags(){return[ge,"wiki"]}getMediaType(){return"wiki"}getWithOutUserData(){let e=structuredClone(this);return delete e.userData,delete e.article,e}getSummary(){return this.title}};var po=class extends j{constructor(e){super();p(this,"plugin");p(this,"apiDateFormat","YYYY-MM-DDTHH:mm:ssZ");this.plugin=e,this.apiName="Wikipedia API",this.apiDescription="The API behind Wikipedia",this.apiUrl="https://www.wikipedia.com",this.types=["wiki"]}async searchByTitle(e){console.log(`MDB | api "${this.apiName}" queried by Title`);let i=`https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=${encodeURIComponent(e)}&srlimit=20&utf8=&format=json&origin=*`,o=await fetch(i);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json();console.debug(n);let a=[];for(let s of n.query.search)a.push(new ir({type:"wiki",title:s.title,englishTitle:s.title,year:"",dataSource:this.apiName,id:s.pageid}));return a}async getById(e){var s,l;console.log(`MDB | api "${this.apiName}" queried by ID`);let i=`https://en.wikipedia.org/w/api.php?action=query&prop=info&pageids=${encodeURIComponent(e)}&inprop=url&format=json&origin=*`,o=await fetch(i);if(o.status!==200)throw Error(`MDB | Received status code ${o.status} from ${this.apiName}.`);let n=await o.json(),a=Object.entries((s=n==null?void 0:n.query)==null?void 0:s.pages)[0][1];return new ir({type:"wiki",title:a.title,englishTitle:a.title,year:"",dataSource:this.apiName,url:a.fullurl,id:a.pageid,wikiUrl:a.fullurl,lastUpdated:(l=this.plugin.dateFormatter.format(a.touched,this.apiDateFormat))!=null?l:void 0,length:a.length,userData:{}})}};var gt=require("obsidian");var co=class extends gt.Modal{constructor(e,i,o){super(e);p(this,"plugin");p(this,"onSubmit");p(this,"selectedApi");p(this,"searchBtn");p(this,"titleFieldName");p(this,"appendContent");this.plugin=i,this.onSubmit=o,this.selectedApi=i.apiManager.apis[0].apiName,this.titleFieldName="",this.appendContent=!1}submit(){this.onSubmit(this.selectedApi,this.titleFieldName,this.appendContent),this.close()}onOpen(){let{contentEl:e}=this;e.createEl("h2",{text:"Import folder as Media DB entries"});let i=e.createEl("div",{cls:"media-db-plugin-list-wrapper"});i.createEl("div",{cls:"media-db-plugin-list-text-wrapper"}).createEl("span",{text:"API to search",cls:"media-db-plugin-list-text"});let n=new gt.DropdownComponent(i);n.onChange(f=>{this.selectedApi=f});for(let f of this.plugin.apiManager.apis)n.addOption(f.apiName,f.apiName);i.appendChild(n.selectEl),e.createDiv({cls:"media-db-plugin-spacer"}),e.createEl("h3",{text:"Append note content to Media DB entry."});let a=e.createEl("div",{cls:"media-db-plugin-list-wrapper"});a.createEl("div",{cls:"media-db-plugin-list-text-wrapper"}).createEl("span",{text:"If this is enabled, the plugin will override metadata fields with the same name.",cls:"media-db-plugin-list-text"});let l=a.createEl("div",{cls:"media-db-plugin-list-toggle"}),d=new gt.ToggleComponent(a);d.setValue(!1),d.onChange(f=>this.appendContent=f),l.appendChild(d.toggleEl),e.createDiv({cls:"media-db-plugin-spacer"}),e.createEl("h3",{text:"The name of the metadata field that should be used as the title to query."});let c="title",u=new gt.TextComponent(e);u.inputEl.style.width="100%",u.setPlaceholder(c),u.onChange(f=>this.titleFieldName=f),u.inputEl.addEventListener("keydown",f=>{f.key==="Enter"&&this.submit()}),e.appendChild(u.inputEl),e.createDiv({cls:"media-db-plugin-spacer"}),new gt.Setting(e).addButton(f=>{f.setButtonText("Cancel"),f.onClick(()=>this.close()),f.buttonEl.addClass("media-db-plugin-button")}).addButton(f=>{f.setButtonText("Ok"),f.setCta(),f.onClick(()=>{this.submit()}),f.buttonEl.addClass("media-db-plugin-button"),this.searchBtn=f})}onClose(){let{contentEl:e}=this;e.empty()}};var hn=require("obsidian");var Dt=["movie","series","manga","game","wiki","musicRelease","boardgame","book"],uo=class{constructor(){p(this,"mediaFileNameTemplateMap");p(this,"mediaTemplateMap");p(this,"mediaFolderMap");this.mediaFileNameTemplateMap=new Map,this.mediaTemplateMap=new Map,this.mediaFolderMap=new Map}updateTemplates(r){this.mediaFileNameTemplateMap=new Map,this.mediaFileNameTemplateMap.set("movie",r.movieFileNameTemplate),this.mediaFileNameTemplateMap.set("series",r.seriesFileNameTemplate),this.mediaFileNameTemplateMap.set("manga",r.mangaFileNameTemplate),this.mediaFileNameTemplateMap.set("game",r.gameFileNameTemplate),this.mediaFileNameTemplateMap.set("wiki",r.wikiFileNameTemplate),this.mediaFileNameTemplateMap.set("musicRelease",r.musicReleaseFileNameTemplate),this.mediaFileNameTemplateMap.set("boardgame",r.boardgameFileNameTemplate),this.mediaFileNameTemplateMap.set("book",r.bookFileNameTemplate),this.mediaTemplateMap=new Map,this.mediaTemplateMap.set("movie",r.movieTemplate),this.mediaTemplateMap.set("series",r.seriesTemplate),this.mediaTemplateMap.set("manga",r.mangaTemplate),this.mediaTemplateMap.set("game",r.gameTemplate),this.mediaTemplateMap.set("wiki",r.wikiTemplate),this.mediaTemplateMap.set("musicRelease",r.musicReleaseTemplate),this.mediaTemplateMap.set("boardgame",r.boardgameTemplate),this.mediaTemplateMap.set("book",r.bookTemplate)}updateFolders(r){this.mediaFolderMap=new Map,this.mediaFolderMap.set("movie",r.movieFolder),this.mediaFolderMap.set("series",r.seriesFolder),this.mediaFolderMap.set("manga",r.mangaFolder),this.mediaFolderMap.set("game",r.gameFolder),this.mediaFolderMap.set("wiki",r.wikiFolder),this.mediaFolderMap.set("musicRelease",r.musicReleaseFolder),this.mediaFolderMap.set("boardgame",r.boardgameFolder),this.mediaFolderMap.set("book",r.bookFolder)}getFileName(r){return ln(this.mediaFileNameTemplateMap.get(r.getMediaType()),r,!0)}async getTemplate(r,e){var a;let i=this.mediaTemplateMap.get(r.getMediaType());if(!i)return"";let o=(a=e.vault.getAbstractFileByPath(i))!=null?a:void 0;if((!o||o instanceof hn.TFolder)&&(o=e.vault.getFiles().filter(s=>s.name===i).first(),!o))return"";let n=await e.vault.cachedRead(o);return ln(n,r)}async getFolder(r,e){let i=this.mediaFolderMap.get(r.getMediaType());i||(i="/"),await e.vault.adapter.exists(i)||await e.vault.createFolder(i);let o=e.vault.getAbstractFileByPath(i);if(!(o instanceof hn.TFolder))throw Error(`Expected ${o} to be instance of TFolder`);return o}createMediaTypeModelFromMediaType(r,e){if(e==="movie")return new Ue(r);if(e==="series")return new ht(r);if(e==="manga")return new er(r);if(e==="game")return new ve(r);if(e==="wiki")return new ir(r);if(e==="musicRelease")return new tr(r);if(e==="boardgame")return new Qt(r);if(e==="book")return new rr(r);throw new Error(`Unknown media type: ${e}`)}};var Ua=["default","remap","remove"],kr=class t{constructor(r,e){p(this,"type");p(this,"properties");this.type=r,this.properties=e!=null?e:[]}validate(){console.debug(`MDB | validated property mappings for ${this.type}`);for(let r of this.properties){let e=r.validate();if(!e.res)return{res:!1,err:e.err}}for(let r of this.getMappedProperties()){let e=this.getMappedProperties().filter(i=>i.newProperty===r.newProperty);if(e.length!==0){if(e.length!==1)return{res:!1,err:new gi(`Multiple remapped properties (${e.map(i=>i.toString()).toString()}) may not share the same name.`)}}}for(let r of this.getMappedProperties())if(this.properties.filter(i=>i.newProperty===r.property).length!==0)return{res:!1,err:new gi(`Remapped property (${r}) may not share it's new name with an existing property.`)};return{res:!0}}getMappedProperties(){return this.properties.filter(r=>r.mapping==="remap")}copy(){let r=new t(this.type);for(let e of this.properties){let i=new or(e.property,e.newProperty,e.mapping,e.locked);r.properties.push(i)}return r}},or=class{constructor(r,e,i,o){p(this,"property");p(this,"newProperty");p(this,"locked");p(this,"mapping");this.property=r,this.newProperty=e,this.mapping=i,this.locked=o!=null?o:!1}validate(){if(this.locked){if(this.mapping==="remove")return{res:!1,err:new Jt(`Error in property mapping "${this.toString()}": locked property may not be removed.`)};if(this.mapping==="remap")return{res:!1,err:new Jt(`Error in property mapping "${this.toString()}": locked property may not be remapped.`)}}return this.mapping==="default"?{res:!0}:this.mapping==="remove"?{res:!0}:!this.property||!sn(this.property)?{res:!1,err:new Jt(`Error in property mapping "${this.toString()}": property may not be empty and only contain letters and underscores.`)}:!this.newProperty||!sn(this.newProperty)?{res:!1,err:new Jt(`Error in property mapping "${this.toString()}": new property may not be empty and only contain letters and underscores.`)}:{res:!0}}toString(){return this.mapping==="default"?this.property:this.mapping==="remap"?`${this.property} -> ${this.newProperty}`:this.mapping==="remove"?`remove ${this.property}`:this.property}};var fo=class{constructor(r){p(this,"plugin");this.plugin=r}convertObject(r){if(!r.hasOwnProperty("type")||Dt.filter(o=>o.toString()==r.type).length<1)return r;let e=this.plugin.settings.propertyMappingModels.find(o=>o.type===r.type).properties,i={};for(let[o,n]of Object.entries(r))for(let a of e)if(a.property===o){a.mapping==="remap"?i[a.newProperty]=n:a.mapping==="remove"||a.mapping==="default"&&(i[o]=n);break}return i}convertObjectBack(r){var o,n;if(!r.hasOwnProperty("type")||Dt.contains(r.type))return r;let e=(n=(o=this.plugin.settings.propertyMappingModels.find(a=>a.type===r.type))==null?void 0:o.properties)!=null?n:[],i={};e:for(let[a,s]of Object.entries(r)){for(let l of e)if(l.property===a){i[a]=s;continue e}for(let l of e)if(l.newProperty===a){i[l.property]=s;continue e}}return i}};var N=require("obsidian");var Va,Ya,Wa=(Ya=(Va=globalThis.process)==null?void 0:Va.env)==null?void 0:Ya.NODE_ENV,w=Wa&&!Wa.toLowerCase().startsWith("prod");var et=Array.isArray,ja=Array.prototype.indexOf,_i=Array.from,gn=Object.keys,ce=Object.defineProperty,tt=Object.getOwnPropertyDescriptor,vn=Object.getOwnPropertyDescriptors,_n=Object.prototype,Ga=Array.prototype,nr=Object.getPrototypeOf;function yi(t){for(var r=0;r<t.length;r++)t[r]()}var Fe=Symbol("$state"),ar=Symbol("$state metadata"),mo=Symbol("legacy props"),Ka=Symbol("");function ho(t){return t===this.v}function go(t,r){return t!=t?r==r:t!==r||t!==null&&typeof t=="object"||typeof t=="function"}function Ar(t){return!go(t,this.v)}function yn(){if(w){let t=new Error("bind_invalid_checkbox_value\nUsing `bind:value` together with a checkbox input is not allowed. Use `bind:checked` instead\nhttps://svelte.dev/e/bind_invalid_checkbox_value");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/bind_invalid_checkbox_value")}function za(){if(w){let t=new Error(`derived_references_self
A derived value cannot reference itself recursively
https://svelte.dev/e/derived_references_self`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/derived_references_self")}function Xa(t){if(w){let r=new Error(`effect_in_teardown
\`${t}\` cannot be used inside an effect cleanup function
https://svelte.dev/e/effect_in_teardown`);throw r.name="Svelte error",r}else throw new Error("https://svelte.dev/e/effect_in_teardown")}function Za(){if(w){let t=new Error("effect_in_unowned_derived\nEffect cannot be created inside a `$derived` value that was not itself created inside an effect\nhttps://svelte.dev/e/effect_in_unowned_derived");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Ja(t){if(w){let r=new Error(`effect_orphan
\`${t}\` can only be used inside an effect (e.g. during component initialisation)
https://svelte.dev/e/effect_orphan`);throw r.name="Svelte error",r}else throw new Error("https://svelte.dev/e/effect_orphan")}function Qa(){if(w){let t=new Error(`effect_update_depth_exceeded
Maximum update depth exceeded. This can happen when a reactive block or effect repeatedly sets a new value. Svelte limits the number of nested updates to prevent infinite loops
https://svelte.dev/e/effect_update_depth_exceeded`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function es(){if(w){let t=new Error(`hydration_failed
Failed to hydrate the application
https://svelte.dev/e/hydration_failed`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/hydration_failed")}function ts(t){if(w){let r=new Error(`props_invalid_value
Cannot do \`bind:${t}={undefined}\` when \`${t}\` has a fallback value
https://svelte.dev/e/props_invalid_value`);throw r.name="Svelte error",r}else throw new Error("https://svelte.dev/e/props_invalid_value")}function rs(t){if(w){let r=new Error(`rune_outside_svelte
The \`${t}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files
https://svelte.dev/e/rune_outside_svelte`);throw r.name="Svelte error",r}else throw new Error("https://svelte.dev/e/rune_outside_svelte")}function is(){if(w){let t=new Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function os(){if(w){let t=new Error("state_prototype_fixed\nCannot set prototype of `$state` object\nhttps://svelte.dev/e/state_prototype_fixed");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_prototype_fixed")}function ns(){if(w){let t=new Error("state_unsafe_local_read\nReading state that was created inside the same derived is forbidden. Consider using `untrack` to read locally created state\nhttps://svelte.dev/e/state_unsafe_local_read");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_unsafe_local_read")}function as(){if(w){let t=new Error("state_unsafe_mutation\nUpdating state inside a derived or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_unsafe_mutation")}var St=!1,vt=!1;var Rr="[",sr="[!",lr="]",Bt={};var Z=Symbol(),Te=Symbol("filename"),ss=Symbol("hmr");var wi=null;function Ct(t){let r=Error(),e=r.stack;if(e){let i=e.split(`
`),o=[`
`];for(let n=0;n<i.length;n++){let a=i[n];if(a!=="Error"){if(a.includes("validate_each_keys"))return null;a.includes("svelte/src/internal")||o.push(a)}}if(o.length===1)return null;ce(r,"stack",{value:o.join(`
`)}),ce(r,"name",{value:`${t}Error`})}return r}var pr=new Set;function Mn(t){pr=t}function J(t,r){var e={f:0,v:t,reactions:null,equals:ho,rv:0,wv:0};return w&&vt&&(e.created=r!=null?r:Ct("CreatedAt"),e.debug=null),e}function Mi(t){return Zl(J(t))}function Lt(t,r=!1){var i,o;let e=J(t);return r||(e.equals=Ar),St&&B!==null&&B.l!==null&&((o=(i=B.l).s)!=null?o:i.s=[]).push(e),e}function Zl(t){return I!==null&&I.f&2&&(rt===null?cs([t]):rt.push(t)),t}function G(t,r){return I!==null&&Pt()&&I.f&18&&(rt===null||!rt.includes(t))&&as(),Ir(t,r)}function Ir(t,r){var o;if(!t.equals(r)){var e=t.v;if(t.v=r,t.wv=xi(),w&&vt&&(t.updated=Ct("UpdatedAt"),k!=null&&(t.trace_need_increase=!0,(o=t.trace_v)!=null||(t.trace_v=e))),ps(t,2048),Pt()&&k!==null&&k.f&1024&&!(k.f&96)&&(_t===null?ds([t]):_t.push(t)),w&&pr.size>0){let n=Array.from(pr);var i=$t;Nr(!0);try{for(let a of n)a.f&1024&&Ce(a,4096),qt(a)&&cr(a)}finally{Nr(i)}pr.clear()}}return r}function ps(t,r){var e=t.reactions;if(e!==null)for(var i=Pt(),o=e.length,n=0;n<o;n++){var a=e[n],s=a.f;if(!(s&2048)&&!(!i&&a===k)){if(w&&s&262144){pr.add(a);continue}Ce(a,r),s&1280&&(s&2?ps(a,4096):Ti(a))}}}var Ei="font-weight: bold",Di="font-weight: normal";function us(t,r,e){w?console.warn(`%c[svelte] hydration_attribute_changed
%cThe \`${t}\` attribute on \`${r}\` changed its value between server and client renders. The client value, \`${e}\`, will be ignored in favour of the server value
https://svelte.dev/e/hydration_attribute_changed`,Ei,Di):console.warn("https://svelte.dev/e/hydration_attribute_changed")}function Or(t){w?console.warn(`%c[svelte] hydration_mismatch
%c${t?`Hydration failed because the initial UI does not match what was rendered on the server. The error occurred near ${t}`:"Hydration failed because the initial UI does not match what was rendered on the server"}
https://svelte.dev/e/hydration_mismatch`,Ei,Di):console.warn("https://svelte.dev/e/hydration_mismatch")}function fs(){w?console.warn(`%c[svelte] lifecycle_double_unmount
%cTried to unmount a component that was not mounted
https://svelte.dev/e/lifecycle_double_unmount`,Ei,Di):console.warn("https://svelte.dev/e/lifecycle_double_unmount")}function xn(t,r){w?console.warn(`%c[svelte] ownership_invalid_mutation
%c${t?`${t} mutated a value owned by ${r}. This is strongly discouraged. Consider passing values to child components with \`bind:\`, or use a callback instead`:"Mutating a value outside the component that created it is strongly discouraged. Consider passing values to child components with `bind:`, or use a callback instead"}
https://svelte.dev/e/ownership_invalid_mutation`,Ei,Di):console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function vo(t){w?console.warn(`%c[svelte] state_proxy_equality_mismatch
%cReactive \`$state(...)\` proxies and the values they proxy have different identities. Because of this, comparisons with \`${t}\` will produce unexpected results
https://svelte.dev/e/state_proxy_equality_mismatch`,Ei,Di):console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}var P=!1;function $e(t){P=t}var F;function K(t){if(t===null)throw Or(),Bt;return F=t}function _e(){return K(Ee(F))}function fe(t){if(P){if(Ee(F)!==null)throw Or(),Bt;F=t}}function Br(){for(var t=0,r=F;;){if(r.nodeType===8){var e=r.data;if(e===lr){if(t===0)return r;t-=1}else(e===Rr||e===sr)&&(t+=1)}var i=Ee(r);r.remove(),r=i}}var Jl={},Ql=/at (?:.+ \()?(.+):(\d+):(\d+)\)?$/,ep=/@(.+):(\d+):(\d+)$/;function tp(){var e;let t=new Error().stack;if(!t)return null;let r=[];for(let i of t.split(`
`)){let o=(e=Ql.exec(i))!=null?e:ep.exec(i);o&&r.push({file:o[1],line:+o[2],column:+o[3]})}return r}function ms(){var r;let t=(r=tp())==null?void 0:r.slice(4);if(!t)return null;for(let e=0;e<t.length;e++){let i=t[e],o=Jl[i.file];if(!o){if(e===0)return null;continue}for(let n of o){if(n.end==null)return null;if(n.start.line<i.line&&n.end.line>i.line)return n.component}}return null}var rp=Symbol("ADD_OWNER");function Tn(t,r){if(r.owners!==null)for(;t;){if(t.owners===null){r.owners=null;break}for(let e of t.owners)r.owners.add(e);t=t.parent}}function hs(t,r){return t.owners===null?!0:t.owners.has(r)||t.parent!==null&&hs(t.parent,r)}function gs(t){var r,e;return(e=(r=t==null?void 0:t.owners)==null?void 0:r.values().next().value)!=null?e:gs(t.parent)}var ip=!1;function vs(t){if(ip)return;let r=ms();if(r&&!hs(t,r)){let e=gs(t);e[Te]!==r[Te]?xn(r[Te],e[Te]):xn()}}function bt(t,r=null,e){var d,c;var i=null;if(w&&vt&&(i=Ct("CreatedAt")),typeof t!="object"||t===null||Fe in t)return t;let o=nr(t);if(o!==_n&&o!==Ga)return t;var n=new Map,a=et(t),s=J(0);a&&n.set("length",J(t.length,i));var l;if(w)if(l={parent:r,owners:null},e){let u=(c=(d=e.v)==null?void 0:d[ar])==null?void 0:c.owners;l.owners=u?new Set(u):null}else l.owners=r===null?B!==null?new Set([B.function]):null:new Set;return new Proxy(t,{defineProperty(u,f,m){(!("value"in m)||m.configurable===!1||m.enumerable===!1||m.writable===!1)&&is();var g=n.get(f);return g===void 0?(g=J(m.value,i),n.set(f,g)):G(g,bt(m.value,l)),!0},deleteProperty(u,f){var m=n.get(f);if(m===void 0)f in u&&n.set(f,J(Z,i));else{if(a&&typeof f=="string"){var g=n.get("length"),h=Number(f);Number.isInteger(h)&&h<g.v&&G(g,h)}G(m,Z),_s(s)}return!0},get(u,f,m){var E;if(w&&f===ar)return l;if(f===Fe)return t;var g=n.get(f),h=f in u;if(g===void 0&&(!h||(E=tt(u,f))!=null&&E.writable)&&(g=J(bt(h?u[f]:Z,l),i),n.set(f,g)),g!==void 0){var v=R(g);if(w){var b=v==null?void 0:v[ar];b&&(b==null?void 0:b.parent)!==l&&Tn(l,b)}return v===Z?void 0:v}return Reflect.get(u,f,m)},getOwnPropertyDescriptor(u,f){var m=Reflect.getOwnPropertyDescriptor(u,f);if(m&&"value"in m){var g=n.get(f);g&&(m.value=R(g))}else if(m===void 0){var h=n.get(f),v=h==null?void 0:h.v;if(h!==void 0&&v!==Z)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return m},has(u,f){var v;if(w&&f===ar||f===Fe)return!0;var m=n.get(f),g=m!==void 0&&m.v!==Z||Reflect.has(u,f);if(m!==void 0||k!==null&&(!g||(v=tt(u,f))!=null&&v.writable)){m===void 0&&(m=J(g?bt(u[f],l):Z,i),n.set(f,m));var h=R(m);if(h===Z)return!1}return g},set(u,f,m,g){var $;var h=n.get(f),v=f in u;if(a&&f==="length")for(var b=m;b<h.v;b+=1){var E=n.get(b+"");E!==void 0?G(E,Z):b in u&&(E=J(Z,i),n.set(b+"",E))}if(h===void 0?(!v||($=tt(u,f))!=null&&$.writable)&&(h=J(void 0,i),G(h,bt(m,l)),n.set(f,h)):(v=h.v!==Z,G(h,bt(m,l))),w){var T=m==null?void 0:m[ar];T&&(T==null?void 0:T.parent)!==l&&Tn(l,T),vs(l)}var M=Reflect.getOwnPropertyDescriptor(u,f);if(M!=null&&M.set&&M.set.call(g,m),!v){if(a&&typeof f=="string"){var _=n.get("length"),y=Number(f);Number.isInteger(y)&&y>=_.v&&G(_,y+1)}_s(s)}return!0},ownKeys(u){R(s);var f=Reflect.ownKeys(u).filter(h=>{var v=n.get(h);return v===void 0||v.v!==Z});for(var[m,g]of n)g.v!==Z&&!(m in u)&&f.push(m);return f},setPrototypeOf(){os()}})}function _s(t,r=1){G(t,t.v+r)}function Lr(t){return t!==null&&typeof t=="object"&&Fe in t?t[Fe]:t}function En(t,r){return Object.is(Lr(t),Lr(r))}function ys(){let t=Array.prototype,r=Array.__svelte_cleanup;r&&r();let{indexOf:e,lastIndexOf:i,includes:o}=t;t.indexOf=function(n,a){let s=e.call(this,n,a);if(s===-1){for(let l=a!=null?a:0;l<this.length;l+=1)if(Lr(this[l])===n){vo("array.indexOf(...)");break}}return s},t.lastIndexOf=function(n,a){let s=i.call(this,n,a!=null?a:this.length-1);if(s===-1){for(let l=0;l<=(a!=null?a:this.length-1);l+=1)if(Lr(this[l])===n){vo("array.lastIndexOf(...)");break}}return s},t.includes=function(n,a){let s=o.call(this,n,a);if(!s){for(let l=0;l<this.length;l+=1)if(Lr(this[l])===n){vo("array.includes(...)");break}}return s},Array.__svelte_cleanup=()=>{t.indexOf=e,t.lastIndexOf=i,t.includes=o}}var Dn,ws,bs,Ms;function yo(){if(Dn===void 0){Dn=window,ws=document;var t=Element.prototype,r=Node.prototype;bs=tt(r,"firstChild").get,Ms=tt(r,"nextSibling").get,t.__click=void 0,t.__className="",t.__attributes=null,t.__styles=null,t.__e=void 0,Text.prototype.__t=void 0,w&&(t.__svelte_meta=null,ys())}}function je(t=""){return document.createTextNode(t)}function ye(t){return bs.call(t)}function Ee(t){return Ms.call(t)}function Be(t,r){if(!P)return ye(t);var e=ye(F);if(e===null)e=F.appendChild(je());else if(r&&e.nodeType!==3){var i=je();return e==null||e.before(i),K(i),i}return K(e),e}function qr(t,r){var o,n;if(!P){var e=ye(t);return e instanceof Comment&&e.data===""?Ee(e):e}if(r&&((o=F)==null?void 0:o.nodeType)!==3){var i=je();return(n=F)==null||n.before(i),K(i),i}return F}function Ut(t,r=1,e=!1){let i=P?F:t;for(var o;r--;)o=i,i=Ee(i);if(!P)return i;var n=i==null?void 0:i.nodeType;if(e&&n!==3){var a=je();return i===null?o==null||o.after(a):i.before(a),K(a),a}return K(i),i}function Si(t){t.textContent=""}function Ur(t){var o;var r=2050;k===null?r|=256:k.f|=1048576;var e=I!==null&&I.f&2?I:null;let i={children:null,ctx:B,deps:null,equals:ho,f:r,fn:t,reactions:null,rv:0,v:null,wv:0,parent:e!=null?e:k};return w&&vt&&(i.created=Ct("CreatedAt")),e!==null&&((o=e.children)!=null?o:e.children=[]).push(i),i}function Ci(t){let r=Ur(t);return r.equals=Ar,r}function Cn(t){var r=t.children;if(r!==null){t.children=null;for(var e=0;e<r.length;e+=1){var i=r[e];i.f&2?$i(i):we(i)}}}var Sn=[];function op(t){for(var r=t.parent;r!==null;){if(!(r.f&2))return r;r=r.parent}return null}function Pn(t){var r,e=k;if(te(op(t)),w){let i=pr;Mn(new Set);try{Sn.includes(t)&&za(),Sn.push(t),Cn(t),r=wo(t)}finally{te(e),Mn(i),Sn.pop()}}else try{Cn(t),r=wo(t)}finally{te(e)}return r}function kn(t){var r=Pn(t),e=(kt||t.f&256)&&t.deps!==null?4096:1024;Ce(t,e),t.equals(r)||(t.v=r,t.wv=xi())}function $i(t){Cn(t),dr(t,0),Ce(t,16384),t.v=t.children=t.deps=t.ctx=t.reactions=null}function Es(t){k===null&&I===null&&Ja(t),I!==null&&I.f&256&&Za(),Mo&&Xa(t)}function np(t,r){var e=r.last;e===null?r.last=r.first=t:(e.next=t,t.prev=e,r.last=t)}function Wr(t,r,e,i=!0){var c;var o=(t&64)!==0,n=k;if(w)for(;n!==null&&n.f&262144;)n=n.parent;var a={ctx:B,deps:null,deriveds:null,nodes_start:null,nodes_end:null,f:t|2048,first:null,fn:r,last:null,next:null,parent:o?null:n,prev:null,teardown:null,transitions:null,wv:0};if(w&&(a.component_function=Ye),e){var s=$t;try{Nr(!0),cr(a),a.f|=32768}catch(u){throw we(a),u}finally{Nr(s)}}else r!==null&&Ti(a);var l=e&&a.deps===null&&a.first===null&&a.nodes_start===null&&a.teardown===null&&(a.f&1048704)===0;if(!l&&!o&&i&&(n!==null&&np(a,n),I!==null&&I.f&2)){var d=I;((c=d.children)!=null?c:d.children=[]).push(a)}return a}function Vr(t){var o;Es("$effect");var r=k!==null&&(k.f&32)!==0&&B!==null&&!B.m;if(w&&ce(t,"name",{value:"$effect"}),r){var e=B;((o=e.e)!=null?o:e.e=[]).push({fn:t,effect:k,reaction:I})}else{var i=ke(t);return i}}function Nn(t){let r=Wr(64,t,!0);return()=>{we(r)}}function Ds(t){let r=Wr(64,t,!0);return(e={})=>new Promise(i=>{e.outro?it(r,()=>{we(r),i(void 0)}):(we(r),i(void 0))})}function ke(t){return Wr(4,t,!1)}function Pe(t){return Wr(8,t,!0)}function ur(t){return w&&ce(t,"name",{value:"{expression}"}),Ae(t)}function Ae(t,r=0){return Wr(24|r,t,!0)}function be(t,r=!0){return Wr(40,t,!0,r)}function Fn(t){var r=t.teardown;if(r!==null){let e=Mo,i=I;An(!0),De(null);try{r.call(null)}finally{An(e),De(i)}}}function In(t){var r=t.deriveds;if(r!==null){t.deriveds=null;for(var e=0;e<r.length;e+=1)$i(r[e])}}function On(t,r=!1){var e=t.first;for(t.first=t.last=null;e!==null;){var i=e.next;we(e,r),e=i}}function Ss(t){for(var r=t.first;r!==null;){var e=r.next;r.f&32||we(r),r=e}}function we(t,r=!0){var e=!1;if((r||t.f&524288)&&t.nodes_start!==null){for(var i=t.nodes_start,o=t.nodes_end;i!==null;){var n=i===o?null:Ee(i);i.remove(),i=n}e=!0}On(t,r&&!e),In(t),dr(t,0),Ce(t,16384);var a=t.transitions;if(a!==null)for(let l of a)l.stop();Fn(t);var s=t.parent;s!==null&&s.first!==null&&Bn(t),w&&(t.component_function=null),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=null}function Bn(t){var r=t.parent,e=t.prev,i=t.next;e!==null&&(e.next=i),i!==null&&(i.prev=e),r!==null&&(r.first===t&&(r.first=i),r.last===t&&(r.last=e))}function it(t,r){var e=[];bo(t,e,!0),Ln(e,()=>{we(t),r&&r()})}function Ln(t,r){var e=t.length;if(e>0){var i=()=>--e||r();for(var o of t)o.out(i)}else r()}function bo(t,r,e){if(!(t.f&8192)){if(t.f^=8192,t.transitions!==null)for(let a of t.transitions)(a.is_global||e)&&r.push(a);for(var i=t.first;i!==null;){var o=i.next,n=(i.f&65536)!==0||(i.f&32)!==0;bo(i,r,n?e:!1),i=o}}}function Wt(t){Cs(t,!0)}function Cs(t,r){if(t.f&8192){qt(t)&&cr(t),t.f^=8192;for(var e=t.first;e!==null;){var i=e.next,o=(e.f&65536)!==0||(e.f&32)!==0;Cs(e,o?r:!1),e=i}if(t.transitions!==null)for(let n of t.transitions)(n.is_global||r)&&n.in()}}var ap=typeof requestIdleCallback=="undefined"?t=>setTimeout(t,1):requestIdleCallback,xo=!1,To=!1,qn=[],Un=[];function $s(){xo=!1;let t=qn.slice();qn=[],yi(t)}function Ps(){To=!1;let t=Un.slice();Un=[],yi(t)}function Ke(t){xo||(xo=!0,queueMicrotask($s)),qn.push(t)}function ks(t){To||(To=!0,ap(Ps)),Un.push(t)}function As(){xo&&$s(),To&&Ps()}function Eo(t){if(w){let r=new Error(`lifecycle_outside_component
\`${t}(...)\` can only be used during component initialisation
https://svelte.dev/e/lifecycle_outside_component`);throw r.name="Svelte error",r}else throw new Error("https://svelte.dev/e/lifecycle_outside_component")}var Bs=0,pp=1,Rs=new WeakSet,Do=!1,So=Bs,ki=!1,Yr=null,$t=!1,Mo=!1;function Nr(t){$t=t}function An(t){Mo=t}var fr=[],jr=0,Ai=[],I=null;function De(t){I=t}var k=null;function te(t){k=t}var rt=null;function cs(t){rt=t}var Re=null,Le=0,_t=null;function ds(t){_t=t}var Ls=1,$o=0,kt=!1,bi=null;var B=null;var Ye=null;function xi(){return++Ls}function Pt(){return!St||B!==null&&B.l===null}function qt(t){var d,c;var r=t.f;if(r&2048)return!0;if(r&4096){var e=t.deps,i=(r&256)!==0;if(e!==null){var o,n,a=(r&512)!==0,s=i&&k!==null&&!kt,l=e.length;if(a||s){for(o=0;o<l;o++)n=e[o],(a||!((d=n==null?void 0:n.reactions)!=null&&d.includes(t)))&&((c=n.reactions)!=null?c:n.reactions=[]).push(t);a&&(t.f^=512)}for(o=0;o<l;o++)if(n=e[o],qt(n)&&kn(n),n.wv>t.wv)return!0}(!i||k!==null&&!kt)&&Ce(t,1024)}return!1}function Ns(t,r){for(var e=r;e!==null;){if(e.f&128)try{e.fn(t);return}catch(i){e.f^=128}e=e.parent}throw Do=!1,t}function Fs(t){return(t.f&16384)===0&&(t.parent===null||(t.parent.f&128)===0)}function Gr(t,r,e,i){var c,u;if(Do){if(e===null&&(Do=!1),Fs(r))throw t;return}if(e!==null&&(Do=!0),!w||i===null||!(t instanceof Error)||Rs.has(t)){Ns(t,r);return}Rs.add(t);let o=[],n=(c=r.fn)==null?void 0:c.name;n&&o.push(n);let a=i;for(;a!==null;){if(w){var s=(u=a.function)==null?void 0:u[Te];if(s){let f=s.split("/").pop();o.push(f)}}a=a.p}let l=/Firefox/.test(navigator.userAgent)?" ":" ";ce(t,"message",{value:t.message+`
${o.map(f=>`
${l}in ${f}`).join("")}
`}),ce(t,"component_stack",{value:o});let d=t.stack;if(d){let f=d.split(`
`),m=[];for(let g=0;g<f.length;g++){let h=f[g];h.includes("svelte/src/internal")||m.push(h)}ce(t,"stack",{value:m.join(`
`)})}if(Ns(t,r),Fs(r))throw t}function qs(t,r,e=0){var i=t.reactions;if(i!==null)for(var o=0;o<i.length;o++){var n=i[o];n.f&2?qs(n,r,e+1):r===n&&(e===0?Ce(n,2048):n.f&1024&&Ce(n,4096),Ti(n))}}function wo(t){var f,m;var r=Re,e=Le,i=_t,o=I,n=kt,a=rt,s=B,l=t.f;Re=null,Le=0,_t=null,I=l&96?null:t,kt=!$t&&(l&256)!==0,rt=null,B=t.ctx,$o++;try{var d=(0,t.fn)(),c=t.deps;if(Re!==null){var u;if(dr(t,Le),c!==null&&Le>0)for(c.length=Le+Re.length,u=0;u<Re.length;u++)c[Le+u]=Re[u];else t.deps=c=Re;if(!kt)for(u=Le;u<c.length;u++)((m=(f=c[u]).reactions)!=null?m:f.reactions=[]).push(t)}else c!==null&&Le<c.length&&(dr(t,Le),c.length=Le);if(Pt()&&_t!==null&&!(t.f&6146))for(u=0;u<_t.length;u++)qs(_t[u],t);return o!==null&&$o++,d}finally{Re=r,Le=e,_t=i,I=o,kt=n,rt=a,B=s}}function cp(t,r){let e=r.reactions;if(e!==null){var i=ja.call(e,t);if(i!==-1){var o=e.length-1;o===0?e=r.reactions=null:(e[i]=e[o],e.pop())}}e===null&&r.f&2&&(Re===null||!Re.includes(r))&&(Ce(r,4096),r.f&768||(r.f^=512),dr(r,0))}function dr(t,r){var e=t.deps;if(e!==null)for(var i=r;i<e.length;i++)cp(t,e[i])}function cr(t){var r=t.f;if(!(r&16384)){Ce(t,1024);var e=k,i=B;if(k=t,w){var o=Ye;Ye=t.component_function}try{r&16?Ss(t):On(t),In(t),Fn(t);var n=wo(t);t.teardown=typeof n=="function"?n:null,t.wv=Ls;var a=t.deps;if(w&&vt&&t.f&2048&&a!==null)for(let l=0;l<a.length;l++){var s=a[l];s.trace_need_increase&&(s.wv=xi(),s.trace_need_increase=void 0,s.trace_v=void 0)}w&&Ai.push(t)}catch(l){Gr(l,t,e,i||t.ctx)}finally{k=e,w&&(Ye=o)}}}function Is(){console.error("Last ten effects were: ",Ai.slice(-10).map(t=>t.fn)),Ai=[]}function Us(){if(jr>1e3){jr=0;try{Qa()}catch(t){if(w&&ce(t,"stack",{value:""}),Yr!==null)if(w)try{Gr(t,Yr,null,null)}catch(r){throw Is(),r}else Gr(t,Yr,null,null);else throw w&&Is(),t}}jr++}function Hs(t){var r=t.length;if(r!==0){Us();var e=$t;$t=!0;try{for(var i=0;i<r;i++){var o=t[i];o.f&1024||(o.f^=1024);var n=[];Ws(o,n),dp(n)}}finally{$t=e}}}function dp(t){var r=t.length;if(r!==0)for(var e=0;e<r;e++){var i=t[e];if(!(i.f&24576))try{qt(i)&&(cr(i),i.deps===null&&i.first===null&&i.nodes_start===null&&(i.teardown===null?Bn(i):i.fn=null))}catch(o){Gr(o,i,null,i.ctx)}}}function up(){if(ki=!1,jr>1001)return;let t=fr;fr=[],Hs(t),ki||(jr=0,Yr=null,w&&(Ai=[]))}function Ti(t){So===Bs&&(ki||(ki=!0,queueMicrotask(up))),Yr=t;for(var r=t;r.parent!==null;){r=r.parent;var e=r.f;if(e&96){if(!(e&1024))return;r.f^=1024}}fr.push(r)}function Ws(t,r){var e=t.first,i=[];e:for(;e!==null;){var o=e.f,n=(o&32)!==0,a=n&&(o&1024)!==0,s=e.next;if(!a&&!(o&8192))if(o&8){if(n)e.f^=1024;else try{qt(e)&&cr(e)}catch(u){Gr(u,e,null,e.ctx)}var l=e.first;if(l!==null){e=l;continue}}else o&4&&i.push(e);if(s===null){let u=e.parent;for(;u!==null;){if(t===u)break e;var d=u.next;if(d!==null){e=d;continue e}u=u.parent}}e=s}for(var c=0;c<i.length;c++)l=i[c],r.push(l),Ws(l,r)}function Kr(t){var r=So,e=fr;try{Us();let o=[];So=pp,fr=o,ki=!1,Hs(e);var i=t==null?void 0:t();return As(),(fr.length>0||o.length>0)&&Kr(),jr=0,Yr=null,w&&(Ai=[]),i}finally{So=r,fr=e}}function R(t){var u,f;var r=t.f,e=(r&2)!==0;if(e&&r&16384){var i=Pn(t);return $i(t),i}if(bi!==null&&bi.add(t),I!==null){rt!==null&&rt.includes(t)&&ns();var o=I.deps;t.rv<$o&&(t.rv=$o,Re===null&&o!==null&&o[Le]===t?Le++:Re===null?Re=[t]:Re.push(t))}else if(e&&t.deps===null)for(var n=t,a=n.parent,s=n;a!==null;)if(a.f&2){var l=a;s=l,a=l.parent}else{var d=a;(u=d.deriveds)!=null&&u.includes(s)||((f=d.deriveds)!=null?f:d.deriveds=[]).push(s);break}if(e&&(n=t,qt(n)&&kn(n)),w&&vt&&wi!==null&&I!==null&&wi.reaction===I){if(t.debug)t.debug();else if(t.created){var c=wi.entries.get(t);c===void 0&&(c={read:[]},wi.entries.set(t,c)),c.read.push(Ct("TracedAt"))}}return t.v}function Y(t){let r=I;try{return I=null,t()}finally{I=r}}var fp=-7169;function Ce(t,r){t.f=t.f&fp|r}function mr(t,r=!1,e){B={p:B,c:null,e:null,m:!1,s:t,x:null,l:null},St&&!r&&(B.l={s:null,u:null,r1:[],r2:J(!1)}),w&&(B.function=e,Ye=e)}function hr(t){var a,s;let r=B;if(r!==null){t!==void 0&&(r.x=t);let l=r.e;if(l!==null){var e=k,i=I;r.e=null;try{for(var o=0;o<l.length;o++){var n=l[o];te(n.effect),De(n.reaction),ke(n.fn)}}finally{te(e),De(i)}}B=r.p,w&&(Ye=(s=(a=r.p)==null?void 0:a.function)!=null?s:null),r.m=!0}return t||{}}if(w){let t=function(r){if(!(r in globalThis)){let e;Object.defineProperty(globalThis,r,{configurable:!0,get:()=>{if(e!==void 0)return e;rs(r)},set:i=>{e=i}})}};t("$state"),t("$effect"),t("$derived"),t("$inspect"),t("$props"),t("$bindable")}var mp=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected","webkitdirectory"];var ph=[...mp,"formNoValidate","isMap","noModule","playsInline","readOnly","value","volume","defaultValue","defaultChecked","srcObject"];var hp=["touchstart","touchmove"];function Vs(t){return hp.includes(t)}var Ys=new Map;function js(t,r){var e=Ys.get(t);e||(e=new Set,Ys.set(t,e)),e.add(r)}var Gs=!1;function Po(){Gs||(Gs=!0,document.addEventListener("reset",t=>{Promise.resolve().then(()=>{var r;if(!t.defaultPrevented)for(let e of t.target.elements)(r=e.__on_r)==null||r.call(e)})},{capture:!0}))}function Hn(t){var r=I,e=k;De(null),te(null);try{return t()}finally{De(r),te(e)}}function ko(t,r,e,i=e){t.addEventListener(r,()=>Hn(e));let o=t.__on_r;o?t.__on_r=()=>{o(),i(!0)}:t.__on_r=()=>i(!0),Po()}var Wn=new Set,Ao=new Set;function Ro(t){for(var r=0;r<t.length;r++)Wn.add(t[r]);for(var e of Ao)e(t)}function Ri(t){var E;var r=this,e=r.ownerDocument,i=t.type,o=((E=t.composedPath)==null?void 0:E.call(t))||[],n=o[0]||t.target,a=0,s=t.__root;if(s){var l=o.indexOf(s);if(l!==-1&&(r===document||r===window)){t.__root=r;return}var d=o.indexOf(r);if(d===-1)return;l<=d&&(a=l)}if(n=o[a]||t.target,n!==r){ce(t,"currentTarget",{configurable:!0,get(){return n||e}});var c=I,u=k;De(null),te(null);try{for(var f,m=[];n!==null;){var g=n.assignedSlot||n.parentNode||n.host||null;try{var h=n["__"+i];if(h!==void 0&&!n.disabled)if(et(h)){var[v,...b]=h;v.apply(n,[t,...b])}else h.call(n,t)}catch(T){f?m.push(T):f=T}if(t.cancelBubble||g===r||g===null)break;n=g}if(f){for(let T of m)queueMicrotask(()=>{throw T});throw f}}finally{t.__root=r,delete t.currentTarget,De(c),te(u)}}}var vp;function Ks(){vp=void 0}function No(t){var r=document.createElement("template");return r.innerHTML=t,r.content}function Tt(t,r){var e=k;e.nodes_start===null&&(e.nodes_start=t,e.nodes_end=r)}function qe(t,r){var e=(r&1)!==0,i=(r&2)!==0,o,n=!t.startsWith("<!>");return()=>{if(P)return Tt(F,null),F;o===void 0&&(o=No(n?t:"<!>"+t),e||(o=ye(o)));var a=i?document.importNode(o,!0):o.cloneNode(!0);if(e){var s=ye(a),l=a.lastChild;Tt(s,l)}else Tt(a,a);return a}}function Vn(){if(P)return Tt(F,null),F;var t=document.createDocumentFragment(),r=document.createComment(""),e=je();return t.append(r,e),Tt(r,e),t}function Me(t,r){if(P){k.nodes_end=F,_e();return}t!==null&&t.before(r)}var Yn=!0;function Xr(t,r){var i;var e=r==null?"":typeof r=="object"?r+"":r;e!==((i=t.__t)!=null?i:t.__t=t.nodeValue)&&(t.__t=e,t.nodeValue=e==null?"":e+"")}function Zr(t,r){return zs(t,r)}function Gn(t,r){var a;yo(),r.intro=(a=r.intro)!=null?a:!1;let e=r.target,i=P,o=F;try{for(var n=ye(e);n&&(n.nodeType!==8||n.data!==Rr);)n=Ee(n);if(!n)throw Bt;$e(!0),K(n),_e();let s=zs(t,{...r,anchor:n});if(F===null||F.nodeType!==8||F.data!==lr)throw Or(),Bt;return $e(!1),s}catch(s){if(s===Bt)return r.recover===!1&&es(),yo(),Si(e),$e(!1),Zr(t,r);throw s}finally{$e(i),K(o),Ks()}}var zr=new Map;function zs(t,{target:r,anchor:e,props:i={},events:o,context:n,intro:a=!0}){yo();var s=new Set,l=u=>{for(var f=0;f<u.length;f++){var m=u[f];if(!s.has(m)){s.add(m);var g=Vs(m);r.addEventListener(m,Ri,{passive:g});var h=zr.get(m);h===void 0?(document.addEventListener(m,Ri,{passive:g}),zr.set(m,1)):zr.set(m,h+1)}}};l(_i(Wn)),Ao.add(l);var d=void 0,c=Ds(()=>{var u=e!=null?e:r.appendChild(je());return be(()=>{if(n){mr({});var f=B;f.c=n}o&&(i.$$events=o),P&&Tt(u,null),Yn=a,d=t(u,i)||{},Yn=!0,P&&(k.nodes_end=F),n&&hr()}),()=>{var g;for(var f of s){r.removeEventListener(f,Ri);var m=zr.get(f);--m===0?(document.removeEventListener(f,Ri),zr.delete(f)):zr.set(f,m)}Ao.delete(l),u!==e&&((g=u.parentNode)==null||g.removeChild(u))}});return jn.set(d,c),d}var jn=new WeakMap;function Kn(t,r){let e=jn.get(t);return e?(jn.delete(t),e(r)):(w&&fs(),Promise.resolve())}function gr(t,r,e=!1){P&&_e();var i=t,o=null,n=null,a=Z,s=e?65536:0,l=!1;let d=(u,f=!0)=>{l=!0,c(f,u)},c=(u,f)=>{if(a===(a=u))return;let m=!1;if(P){let g=i.data===sr;!!a===g&&(i=Br(),K(i),$e(!1),m=!0)}a?(o?Wt(o):f&&(o=be(()=>f(i))),n&&it(n,()=>{n=null})):(n?Wt(n):f&&(n=be(()=>f(i))),o&&it(o,()=>{o=null})),m&&$e(!0)};Ae(()=>{l=!1,r(d),l||c(null,null)},s),P&&(i=F)}var Ni=null;function Jr(t,r){return r}function Ep(t,r,e,i){for(var o=[],n=r.length,a=0;a<n;a++)bo(r[a].e,o,!0);var s=n>0&&o.length===0&&e!==null;if(s){var l=e.parentNode;Si(l),l.append(e),i.clear(),Vt(t,r[0].prev,r[n-1].next)}Ln(o,()=>{for(var d=0;d<n;d++){var c=r[d];s||(i.delete(c.k),Vt(t,c.prev,c.next)),we(c.e,!s)}})}function Qr(t,r,e,i,o,n=null){var a=t,s={flags:r,items:new Map,first:null},l=(r&4)!==0;if(l){var d=t;a=P?K(ye(d)):d.appendChild(je())}P&&_e();var c=null,u=!1,f=Ci(()=>{var m=e();return et(m)?m:m==null?[]:_i(m)});Ae(()=>{var m=R(f),g=m.length;if(u&&g===0)return;u=g===0;let h=!1;if(P){var v=a.data===sr;v!==(g===0)&&(a=Br(),K(a),$e(!1),h=!0)}if(P){for(var b=null,E,T=0;T<g;T++){if(F.nodeType===8&&F.data===lr){a=F,h=!0,$e(!1);break}var M=m[T],_=i(M,T);E=Js(F,s,b,null,M,_,T,o,r,e),s.items.set(_,E),b=E}g>0&&K(Br())}if(!P){var y=I;Dp(m,s,a,o,r,(y.f&8192)!==0,i,e)}n!==null&&(g===0?c?Wt(c):c=be(()=>n(a)):c!==null&&it(c,()=>{c=null})),h&&$e(!0),R(f)}),P&&(a=F)}function Dp(t,r,e,i,o,n,a,s){var U,H,q,Ne;var l=(o&8)!==0,d=(o&3)!==0,c=t.length,u=r.items,f=r.first,m=f,g,h=null,v,b=[],E=[],T,M,_,y;if(l)for(y=0;y<c;y+=1)T=t[y],M=a(T,y),_=u.get(M),_!==void 0&&((U=_.a)==null||U.measure(),(v!=null?v:v=new Set).add(_));for(y=0;y<c;y+=1){if(T=t[y],M=a(T,y),_=u.get(M),_===void 0){var $=m?m.e.nodes_start:e;h=Js($,r,h,h===null?r.first:h.next,T,M,y,i,o,s),u.set(M,h),b=[],E=[],m=h.next;continue}if(d&&Sp(_,T,y,o),_.e.f&8192&&(Wt(_.e),l&&((H=_.a)==null||H.unfix(),(v!=null?v:v=new Set).delete(_))),_!==m){if(g!==void 0&&g.has(_)){if(b.length<E.length){var A=E[0],D;h=A.prev;var x=b[0],C=b[b.length-1];for(D=0;D<b.length;D+=1)Xs(b[D],A,e);for(D=0;D<E.length;D+=1)g.delete(E[D]);Vt(r,x.prev,C.next),Vt(r,h,x),Vt(r,C,A),m=A,h=C,y-=1,b=[],E=[]}else g.delete(_),Xs(_,m,e),Vt(r,_.prev,_.next),Vt(r,_,h===null?r.first:h.next),Vt(r,h,_),h=_;continue}for(b=[],E=[];m!==null&&m.k!==M;)(n||!(m.e.f&8192))&&(g!=null?g:g=new Set).add(m),E.push(m),m=m.next;if(m===null)continue;_=m}b.push(_),h=_,m=_.next}if(m!==null||g!==void 0){for(var S=g===void 0?[]:_i(g);m!==null;)(n||!(m.e.f&8192))&&S.push(m),m=m.next;var O=S.length;if(O>0){var L=o&4&&c===0?e:null;if(l){for(y=0;y<O;y+=1)(q=S[y].a)==null||q.measure();for(y=0;y<O;y+=1)(Ne=S[y].a)==null||Ne.fix()}Ep(r,S,L,u)}}l&&Ke(()=>{var he;if(v!==void 0)for(_ of v)(he=_.a)==null||he.apply()}),k.first=r.first&&r.first.e,k.last=h&&h.e}function Sp(t,r,e,i){i&1&&Ir(t.v,r),i&2?Ir(t.i,e):t.i=e}function Js(t,r,e,i,o,n,a,s,l,d){var c=Ni,u=(l&1)!==0,f=(l&16)===0,m=u?f?Lt(o):J(o):o,g=l&2?J(a):a;w&&u&&(m.debug=()=>{var v=typeof g=="number"?a:g.v;d()[v]});var h={i:g,v:m,k:n,a:null,e:null,prev:e,next:i};Ni=h;try{return h.e=be(()=>s(t,m,g),P),h.e.prev=e&&e.e,h.e.next=i&&i.e,e===null?r.first=h:(e.next=h,e.e.next=h.e),i!==null&&(i.prev=h,i.e.prev=h.e),h}finally{Ni=c}}function Xs(t,r,e){for(var i=t.next?t.next.e.nodes_start:e,o=r?r.e.nodes_start:e,n=t.e.nodes_start;n!==i;){var a=Ee(n);o.before(n),n=a}}function Vt(t,r,e){r===null?t.first=e:(r.next=e,r.e.next=e&&e.e),e!==null&&(e.prev=r,e.e.prev=r&&r.e)}function _r(t,r){Ke(()=>{var o;var e=t.getRootNode(),i=e.host?e:(o=e.head)!=null?o:e.ownerDocument.head;if(!i.querySelector("#"+r.hash)){let n=document.createElement("style");n.id=r.hash,n.textContent=r.code,i.appendChild(n),w&&js(r.hash,n)}})}function Qn(t){if(P){var r=!1,e=()=>{if(!r){if(r=!0,t.hasAttribute("value")){var i=t.value;Zn(t,"value",null),t.value=i}if(t.hasAttribute("checked")){var o=t.checked;Zn(t,"checked",null),t.checked=o}}};t.__on_r=e,ks(e),Po()}}function Zn(t,r,e,i){var n;var o=(n=t.__attributes)!=null?n:t.__attributes={};if(P&&(o[r]=t.getAttribute(r),r==="src"||r==="srcset"||r==="href"&&t.nodeName==="LINK")){i||Ap(t,r,e!=null?e:"");return}o[r]!==(o[r]=e)&&(r==="style"&&"__styles"in t&&(t.__styles={}),r==="loading"&&(t[Ka]=e),e==null?t.removeAttribute(r):typeof e!="string"&&kp(t).includes(r)?t[r]=e:t.setAttribute(r,e))}var el=new Map;function kp(t){var r=el.get(t.nodeName);if(r)return r;el.set(t.nodeName,r=[]);for(var e,i=t,o=Element.prototype;o!==i;){e=vn(i);for(var n in e)e[n].set&&r.push(n);i=nr(i)}return r}function Ap(t,r,e){var i;w&&(r==="srcset"&&Rp(t,e)||Jn((i=t.getAttribute(r))!=null?i:"",e)||us(r,t.outerHTML.replace(t.innerHTML,t.innerHTML&&"..."),String(e)))}function Jn(t,r){return t===r?!0:new URL(t,document.baseURI).href===new URL(r,document.baseURI).href}function tl(t){return t.split(",").map(r=>r.trim().split(" ").filter(Boolean))}function Rp(t,r){var e=tl(t.srcset),i=tl(r);return i.length===e.length&&i.every(([o,n],a)=>n===e[a][1]&&(Jn(e[a][0],o)||Jn(o,e[a][0])))}function ea(t,r,e){var i=t.__className,o=Np(r,e);P&&t.className===o?t.__className=o:(i!==o||P&&t.className!==o)&&(r==null&&!e?t.removeAttribute("class"):t.className=o,t.__className=o)}function Np(t,r){return(t==null?"":t)+(r?" "+r:"")}function ia(t,r,e=r){var i=Pt();ko(t,"input",o=>{w&&t.type==="checkbox"&&yn();var n=o?t.defaultValue:t.value;if(n=ta(t)?ra(n):n,e(n),i&&n!==(n=r())){var a=t.selectionStart,s=t.selectionEnd;t.value=n!=null?n:"",s!==null&&(t.selectionStart=a,t.selectionEnd=Math.min(s,t.value.length))}}),(P&&t.defaultValue!==t.value||Y(r)==null&&t.value)&&e(ta(t)?ra(t.value):t.value),Pe(()=>{w&&t.type==="checkbox"&&yn();var o=r();ta(t)&&o===ra(t.value)||t.type==="date"&&!o&&!t.value||o!==t.value&&(t.value=o!=null?o:"")})}function ta(t){var r=t.type;return r==="number"||r==="range"}function ra(t){return t===""?null:+t}function Io(t,r,e){if(t.multiple)return Op(t,r);for(var i of t.options){var o=Fi(i);if(En(o,r)){i.selected=!0;return}}(!e||r!==void 0)&&(t.selectedIndex=-1)}function rl(t,r){let e=!0;ke(()=>{r&&Io(t,Y(r),e),e=!1;var i=new MutationObserver(()=>{var o=t.__value;Io(t,o)});return i.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),()=>{i.disconnect()}})}function oa(t,r,e=r){var i=!0;ko(t,"change",o=>{var l;var n=o?"[selected]":":checked",a;if(t.multiple)a=[].map.call(t.querySelectorAll(n),Fi);else{var s=(l=t.querySelector(n))!=null?l:t.querySelector("option:not([disabled])");a=s&&Fi(s)}e(a)}),ke(()=>{var o=r();if(Io(t,o,i),i&&o===void 0){var n=t.querySelector(":checked");n!==null&&(o=Fi(n),e(o))}t.__value=o,i=!1}),rl(t)}function Op(t,r){for(var e of t.options)e.selected=~r.indexOf(Fi(e))}function Fi(t){return"__value"in t?t.__value:t.value}function il(t,r){return t===r||(t==null?void 0:t[Fe])===r}function na(t={},r,e,i){return ke(()=>{var o,n;return Pe(()=>{o=n,n=(i==null?void 0:i())||[],Y(()=>{t!==e(...n)&&(r(t,...n),o&&il(e(...o),t)&&r(null,...o))})}),()=>{Ke(()=>{n&&il(e(...n),t)&&r(null,...n)})}}),t}var Oo=!1,hw=Symbol();function aa(t){var r=Oo;try{return Oo=!1,[t(),Oo]}finally{Oo=r}}function ol(t){for(var r=k,e=k;r!==null&&!(r.f&96);)r=r.parent;try{return te(r),t()}finally{te(e)}}function Ii(t,r,e,i){var $,A;var o=(e&1)!==0,n=!St||(e&2)!==0,a=(e&8)!==0,s=(e&16)!==0,l=!1,d;a?[d,l]=aa(()=>t[r]):d=t[r];var c=Fe in t||mo in t,u=a&&((A=($=tt(t,r))==null?void 0:$.set)!=null?A:c&&r in t&&(D=>t[r]=D))||void 0,f=i,m=!0,g=!1,h=()=>(g=!0,m&&(m=!1,s?f=Y(i):f=i),f);d===void 0&&i!==void 0&&(u&&n&&ts(r),d=h(),u&&u(d));var v;if(n)v=()=>{var D=t[r];return D===void 0?h():(m=!0,g=!1,D)};else{var b=ol(()=>(o?Ur:Ci)(()=>t[r]));b.f|=131072,v=()=>{var D=R(b);return D!==void 0&&(f=void 0),D===void 0?f:D}}if(!(e&4))return v;if(u){var E=t.$$legacy;return function(D,x){return arguments.length>0?((!n||!x||E||l)&&u(x?v():D),D):v()}}var T=!1,M=!1,_=Lt(d),y=ol(()=>Ur(()=>{var D=v(),x=R(_);return T?(T=!1,M=!0,x):(M=!1,_.v=D)}));return o||(y.equals=Ar),function(D,x){if(bi!==null&&(T=M,v(),R(_)),arguments.length>0){let C=x?R(y):n&&a?bt(D):D;return y.equals(C)||(T=!0,G(_,C),g&&f!==void 0&&(f=C),Y(()=>R(y))),D}return R(y)}}function nl(t){return new sa(t)}var At,ze,sa=class{constructor(r){Xi(this,At);Xi(this,ze);var n,a;var e=new Map,i=(s,l)=>{var d=Lt(l);return e.set(s,d),d};let o=new Proxy({...r.props||{},$$events:{}},{get(s,l){var d;return R((d=e.get(l))!=null?d:i(l,Reflect.get(s,l)))},has(s,l){var d;return l===mo?!0:(R((d=e.get(l))!=null?d:i(l,Reflect.get(s,l))),Reflect.has(s,l))},set(s,l,d){var c;return G((c=e.get(l))!=null?c:i(l,d),d),Reflect.set(s,l,d)}});Zi(this,ze,(r.hydrate?Gn:Zr)(r.component,{target:r.target,anchor:r.anchor,props:o,context:r.context,intro:(n=r.intro)!=null?n:!1,recover:r.recover})),(!((a=r==null?void 0:r.props)!=null&&a.$$host)||r.sync===!1)&&Kr(),Zi(this,At,o.$$events);for(let s of Object.keys(xe(this,ze)))s==="$set"||s==="$destroy"||s==="$on"||ce(this,s,{get(){return xe(this,ze)[s]},set(l){xe(this,ze)[s]=l},enumerable:!0});xe(this,ze).$set=s=>{Object.assign(o,s)},xe(this,ze).$destroy=()=>{Kn(xe(this,ze))}}$set(r){xe(this,ze).$set(r)}$on(r,e){xe(this,At)[r]=xe(this,At)[r]||[];let i=(...o)=>e.call(this,...o);return xe(this,At)[r].push(i),()=>{xe(this,At)[r]=xe(this,At)[r].filter(o=>o!==i)}}$destroy(){xe(this,ze).$destroy()}};At=new WeakMap,ze=new WeakMap;var Jp;typeof HTMLElement=="function"&&(Jp=class extends HTMLElement{constructor(r,e,i){super();p(this,"$$ctor");p(this,"$$s");p(this,"$$c");p(this,"$$cn",!1);p(this,"$$d",{});p(this,"$$r",!1);p(this,"$$p_d",{});p(this,"$$l",{});p(this,"$$l_u",new Map);p(this,"$$me");this.$$ctor=r,this.$$s=e,i&&this.attachShadow({mode:"open"})}addEventListener(r,e,i){if(this.$$l[r]=this.$$l[r]||[],this.$$l[r].push(e),this.$$c){let o=this.$$c.$on(r,e);this.$$l_u.set(e,o)}super.addEventListener(r,e,i)}removeEventListener(r,e,i){if(super.removeEventListener(r,e,i),this.$$c){let o=this.$$l_u.get(e);o&&(o(),this.$$l_u.delete(e))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let r=function(o){return n=>{let a=document.createElement("slot");o!=="default"&&(a.name=o),Me(n,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;let e={},i=Qp(this);for(let o of this.$$s)o in i&&(o==="default"&&!this.$$d.children?(this.$$d.children=r(o),e.default=!0):e[o]=r(o));for(let o of this.attributes){let n=this.$$g_p(o.name);n in this.$$d||(this.$$d[n]=la(n,o.value,this.$$p_d,"toProp"))}for(let o in this.$$p_d)!(o in this.$$d)&&this[o]!==void 0&&(this.$$d[o]=this[o],delete this[o]);this.$$c=nl({component:this.$$ctor,target:this.shadowRoot||this,props:{...this.$$d,$$slots:e,$$host:this}}),this.$$me=Nn(()=>{Pe(()=>{var o;this.$$r=!0;for(let n of gn(this.$$c)){if(!((o=this.$$p_d[n])!=null&&o.reflect))continue;this.$$d[n]=this.$$c[n];let a=la(n,this.$$d[n],this.$$p_d,"toAttribute");a==null?this.removeAttribute(this.$$p_d[n].attribute||n):this.setAttribute(this.$$p_d[n].attribute||n,a)}this.$$r=!1})});for(let o in this.$$l)for(let n of this.$$l[o]){let a=this.$$c.$on(o,n);this.$$l_u.set(n,a)}this.$$l={}}}attributeChangedCallback(r,e,i){var o;this.$$r||(r=this.$$g_p(r),this.$$d[r]=la(r,i,this.$$p_d,"toProp"),(o=this.$$c)==null||o.$set({[r]:this.$$d[r]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(r){return gn(this.$$p_d).find(e=>this.$$p_d[e].attribute===r||!this.$$p_d[e].attribute&&e.toLowerCase()===r)||r}});function la(t,r,e,i){var n;let o=(n=e[t])==null?void 0:n.type;if(r=o==="Boolean"&&typeof r!="boolean"?r!=null:r,!i||!e[t])return r;if(i==="toAttribute")switch(o){case"Object":case"Array":return r==null?null:JSON.stringify(r);case"Boolean":return r?"":null;case"Number":return r==null?null:r;default:return r}else switch(o){case"Object":case"Array":return r&&JSON.parse(r);case"Boolean":return r;case"Number":return r!=null?+r:r;default:return r}}function Qp(t){let r={};return t.childNodes.forEach(e=>{r[e.slot||"default"]=!0}),r}function al(t){B===null&&Eo("onMount"),St&&B.l!==null?ac(B).m.push(t):Vr(()=>{let r=Y(t);if(typeof r=="function")return r})}function ac(t){var e;var r=t.l;return(e=r.u)!=null?e:r.u={a:[],b:[],m:[]}}var sl="5";typeof window!="undefined"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(sl);var ll=require("obsidian");var sc=qe('<div class="icon-wrapper svelte-pwdquc"><div class="icon svelte-pwdquc"></div></div>'),lc={hash:"svelte-pwdquc",code:".icon-wrapper.svelte-pwdquc {display:inline-block;position:relative;width:20px;}.icon.svelte-pwdquc {position:absolute;height:20px;width:20px;top:calc(50% - 10px);}"};function ca(t,r){mr(r,!0),_r(t,lc);let e=Ii(r,"iconName",3,""),i=Mi(void 0);al(()=>{(0,ll.setIcon)(R(i),e())});var o=Vn(),n=qr(o);{var a=s=>{var l=sc(),d=Be(l);na(d,c=>G(i,c),()=>R(i)),fe(l),Me(s,l)};gr(n,s=>{e().length>0&&s(a)})}Me(t,o),hr()}var pc=qe('<div class="media-db-plugin-property-binding-text">property cannot be remapped</div>'),cc=qe("<option> </option>"),dc=qe('<!> <div class="media-db-plugin-property-mapping-to"><input type="text" spellcheck="false"></div>',1),uc=qe('<select class="dropdown"></select> <!>',1),fc=qe('<div class="media-db-plugin-property-mapping-element"><div class="media-db-plugin-property-mapping-element-property-name-wrapper"><pre class="media-db-plugin-property-mapping-element-property-name"><code> </code></pre></div> <!></div>'),mc=qe('<div class="media-db-plugin-property-mapping-validation"> </div>'),hc=(t,r)=>{r.model.validate().res&&r.save(r.model)},gc=qe('<div class="media-db-plugin-property-mappings-model-container"><div class="setting-item-name"> </div> <div class="media-db-plugin-property-mappings-container"></div> <!> <button>Save</button></div>'),vc={hash:"svelte-3kpd",code:""};function da(t,r){mr(r,!0),_r(t,vc);let e=Mi(void 0);Vr(()=>{G(e,bt(r.model.validate()))});var i=gc(),o=Be(i),n=Be(o,!0);ur(()=>Xr(n,La(r.model.type))),fe(o);var a=Ut(o,2);Qr(a,21,()=>r.model.properties,Jr,(c,u,f)=>{var m=fc(),g=Be(m),h=Be(g),v=Be(h),b=Be(v,!0);fe(v),fe(h),fe(g);var E=Ut(g,2);{var T=_=>{var y=pc();Me(_,y)},M=_=>{var y=uc(),$=qr(y);Qr($,21,()=>Ua,Jr,(x,C)=>{var S=cc(),O={},L=Be(S,!0);fe(S),ur(()=>{O!==(O=R(C))&&(S.value=(S.__value=R(C))==null?"":R(C)),Xr(L,R(C))}),Me(x,S)}),fe($);var A=Ut($,2);{var D=x=>{var C=dc(),S=qr(C);ca(S,{iconName:"arrow-right"});var O=Ut(S,2),L=Be(O);Qn(L),fe(O),ia(L,()=>R(u).newProperty,U=>R(u).newProperty=U),Me(x,C)};gr(A,x=>{R(u).mapping==="remap"&&x(D)})}oa($,()=>R(u).mapping,x=>R(u).mapping=x),Me(_,y)};gr(E,_=>{R(u).locked?_(T):_(M,!1)})}fe(m),ur(()=>Xr(b,R(u).property)),Me(c,m)}),fe(a);var s=Ut(a,2);{var l=c=>{var u=mc(),f=Be(u,!0);fe(u),ur(()=>{var m,g;return Xr(f,(g=(m=R(e))==null?void 0:m.err)==null?void 0:g.message)}),Me(c,u)};gr(s,c=>{var u;(u=R(e))!=null&&u.res||c(l)})}var d=Ut(s,2);d.__click=[hc,r],fe(i),ur(()=>{var c,u;return ea(d,`media-db-plugin-property-mappings-save-button ${(u=(c=R(e))!=null&&c.res?"mod-cta":"mod-muted")!=null?u:""}`)}),Me(t,i),hr()}Ro(["click"]);var _c=qe('<div class="setting-item" style="display: flex; gap: 10px; flex-direction: column; align-items: stretch;"></div>'),yc={hash:"svelte-3kpd",code:""};function ua(t,r){_r(t,yc);let e=Ii(r,"models",19,()=>[]);var i=_c();Qr(i,21,e,Jr,(o,n)=>{da(o,{get model(){return R(n)},get save(){return r.save}})}),fe(i),Me(t,i)}var kl=require("obsidian");var z="top",re="bottom",Q="right",X="left",Bo="auto",Yt=[z,re,Q,X],Rt="start",yr="end",pl="clippingParents",Lo="viewport",ei="popper",cl="reference",fa=Yt.reduce(function(t,r){return t.concat([r+"-"+Rt,r+"-"+yr])},[]),qo=[].concat(Yt,[Bo]).reduce(function(t,r){return t.concat([r,r+"-"+Rt,r+"-"+yr])},[]),wc="beforeRead",bc="read",Mc="afterRead",xc="beforeMain",Tc="main",Ec="afterMain",Dc="beforeWrite",Sc="write",Cc="afterWrite",dl=[wc,bc,Mc,xc,Tc,Ec,Dc,Sc,Cc];function se(t){return t?(t.nodeName||"").toLowerCase():null}function V(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var r=t.ownerDocument;return r&&r.defaultView||window}return t}function Xe(t){var r=V(t).Element;return t instanceof r||t instanceof Element}function ie(t){var r=V(t).HTMLElement;return t instanceof r||t instanceof HTMLElement}function ti(t){if(typeof ShadowRoot=="undefined")return!1;var r=V(t).ShadowRoot;return t instanceof r||t instanceof ShadowRoot}function $c(t){var r=t.state;Object.keys(r.elements).forEach(function(e){var i=r.styles[e]||{},o=r.attributes[e]||{},n=r.elements[e];!ie(n)||!se(n)||(Object.assign(n.style,i),Object.keys(o).forEach(function(a){var s=o[a];s===!1?n.removeAttribute(a):n.setAttribute(a,s===!0?"":s)}))})}function Pc(t){var r=t.state,e={popper:{position:r.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(r.elements.popper.style,e.popper),r.styles=e,r.elements.arrow&&Object.assign(r.elements.arrow.style,e.arrow),function(){Object.keys(r.elements).forEach(function(i){var o=r.elements[i],n=r.attributes[i]||{},a=Object.keys(r.styles.hasOwnProperty(i)?r.styles[i]:e[i]),s=a.reduce(function(l,d){return l[d]="",l},{});!ie(o)||!se(o)||(Object.assign(o.style,s),Object.keys(n).forEach(function(l){o.removeAttribute(l)}))})}}var ul={name:"applyStyles",enabled:!0,phase:"write",fn:$c,effect:Pc,requires:["computeStyles"]};function le(t){return t.split("-")[0]}var ot=Math.max,wr=Math.min,Nt=Math.round;function ri(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(r){return r.brand+"/"+r.version}).join(" "):navigator.userAgent}function Oi(){return!/^((?!chrome|android).)*safari/i.test(ri())}function Ze(t,r,e){r===void 0&&(r=!1),e===void 0&&(e=!1);var i=t.getBoundingClientRect(),o=1,n=1;r&&ie(t)&&(o=t.offsetWidth>0&&Nt(i.width)/t.offsetWidth||1,n=t.offsetHeight>0&&Nt(i.height)/t.offsetHeight||1);var a=Xe(t)?V(t):window,s=a.visualViewport,l=!Oi()&&e,d=(i.left+(l&&s?s.offsetLeft:0))/o,c=(i.top+(l&&s?s.offsetTop:0))/n,u=i.width/o,f=i.height/n;return{width:u,height:f,top:c,right:d+u,bottom:c+f,left:d,x:d,y:c}}function br(t){var r=Ze(t),e=t.offsetWidth,i=t.offsetHeight;return Math.abs(r.width-e)<=1&&(e=r.width),Math.abs(r.height-i)<=1&&(i=r.height),{x:t.offsetLeft,y:t.offsetTop,width:e,height:i}}function Bi(t,r){var e=r.getRootNode&&r.getRootNode();if(t.contains(r))return!0;if(e&&ti(e)){var i=r;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function Se(t){return V(t).getComputedStyle(t)}function ma(t){return["table","td","th"].indexOf(se(t))>=0}function me(t){return((Xe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Ft(t){return se(t)==="html"?t:t.assignedSlot||t.parentNode||(ti(t)?t.host:null)||me(t)}function fl(t){return!ie(t)||Se(t).position==="fixed"?null:t.offsetParent}function kc(t){var r=/firefox/i.test(ri()),e=/Trident/i.test(ri());if(e&&ie(t)){var i=Se(t);if(i.position==="fixed")return null}var o=Ft(t);for(ti(o)&&(o=o.host);ie(o)&&["html","body"].indexOf(se(o))<0;){var n=Se(o);if(n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].indexOf(n.willChange)!==-1||r&&n.willChange==="filter"||r&&n.filter&&n.filter!=="none")return o;o=o.parentNode}return null}function nt(t){for(var r=V(t),e=fl(t);e&&ma(e)&&Se(e).position==="static";)e=fl(e);return e&&(se(e)==="html"||se(e)==="body"&&Se(e).position==="static")?r:e||kc(t)||r}function Mr(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function xr(t,r,e){return ot(t,wr(r,e))}function ml(t,r,e){var i=xr(t,r,e);return i>e?e:i}function Li(){return{top:0,right:0,bottom:0,left:0}}function qi(t){return Object.assign({},Li(),t)}function Ui(t,r){return r.reduce(function(e,i){return e[i]=t,e},{})}var Ac=function(r,e){return r=typeof r=="function"?r(Object.assign({},e.rects,{placement:e.placement})):r,qi(typeof r!="number"?r:Ui(r,Yt))};function Rc(t){var r,e=t.state,i=t.name,o=t.options,n=e.elements.arrow,a=e.modifiersData.popperOffsets,s=le(e.placement),l=Mr(s),d=[X,Q].indexOf(s)>=0,c=d?"height":"width";if(!(!n||!a)){var u=Ac(o.padding,e),f=br(n),m=l==="y"?z:X,g=l==="y"?re:Q,h=e.rects.reference[c]+e.rects.reference[l]-a[l]-e.rects.popper[c],v=a[l]-e.rects.reference[l],b=nt(n),E=b?l==="y"?b.clientHeight||0:b.clientWidth||0:0,T=h/2-v/2,M=u[m],_=E-f[c]-u[g],y=E/2-f[c]/2+T,$=xr(M,y,_),A=l;e.modifiersData[i]=(r={},r[A]=$,r.centerOffset=$-y,r)}}function Nc(t){var r=t.state,e=t.options,i=e.element,o=i===void 0?"[data-popper-arrow]":i;o!=null&&(typeof o=="string"&&(o=r.elements.popper.querySelector(o),!o)||Bi(r.elements.popper,o)&&(r.elements.arrow=o))}var hl={name:"arrow",enabled:!0,phase:"main",fn:Rc,effect:Nc,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Je(t){return t.split("-")[1]}var Fc={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ic(t,r){var e=t.x,i=t.y,o=r.devicePixelRatio||1;return{x:Nt(e*o)/o||0,y:Nt(i*o)/o||0}}function gl(t){var r,e=t.popper,i=t.popperRect,o=t.placement,n=t.variation,a=t.offsets,s=t.position,l=t.gpuAcceleration,d=t.adaptive,c=t.roundOffsets,u=t.isFixed,f=a.x,m=f===void 0?0:f,g=a.y,h=g===void 0?0:g,v=typeof c=="function"?c({x:m,y:h}):{x:m,y:h};m=v.x,h=v.y;var b=a.hasOwnProperty("x"),E=a.hasOwnProperty("y"),T=X,M=z,_=window;if(d){var y=nt(e),$="clientHeight",A="clientWidth";if(y===V(e)&&(y=me(e),Se(y).position!=="static"&&s==="absolute"&&($="scrollHeight",A="scrollWidth")),y=y,o===z||(o===X||o===Q)&&n===yr){M=re;var D=u&&y===_&&_.visualViewport?_.visualViewport.height:y[$];h-=D-i.height,h*=l?1:-1}if(o===X||(o===z||o===re)&&n===yr){T=Q;var x=u&&y===_&&_.visualViewport?_.visualViewport.width:y[A];m-=x-i.width,m*=l?1:-1}}var C=Object.assign({position:s},d&&Fc),S=c===!0?Ic({x:m,y:h},V(e)):{x:m,y:h};if(m=S.x,h=S.y,l){var O;return Object.assign({},C,(O={},O[M]=E?"0":"",O[T]=b?"0":"",O.transform=(_.devicePixelRatio||1)<=1?"translate("+m+"px, "+h+"px)":"translate3d("+m+"px, "+h+"px, 0)",O))}return Object.assign({},C,(r={},r[M]=E?h+"px":"",r[T]=b?m+"px":"",r.transform="",r))}function Oc(t){var r=t.state,e=t.options,i=e.gpuAcceleration,o=i===void 0?!0:i,n=e.adaptive,a=n===void 0?!0:n,s=e.roundOffsets,l=s===void 0?!0:s,d={placement:le(r.placement),variation:Je(r.placement),popper:r.elements.popper,popperRect:r.rects.popper,gpuAcceleration:o,isFixed:r.options.strategy==="fixed"};r.modifiersData.popperOffsets!=null&&(r.styles.popper=Object.assign({},r.styles.popper,gl(Object.assign({},d,{offsets:r.modifiersData.popperOffsets,position:r.options.strategy,adaptive:a,roundOffsets:l})))),r.modifiersData.arrow!=null&&(r.styles.arrow=Object.assign({},r.styles.arrow,gl(Object.assign({},d,{offsets:r.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),r.attributes.popper=Object.assign({},r.attributes.popper,{"data-popper-placement":r.placement})}var vl={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Oc,data:{}};var Uo={passive:!0};function Bc(t){var r=t.state,e=t.instance,i=t.options,o=i.scroll,n=o===void 0?!0:o,a=i.resize,s=a===void 0?!0:a,l=V(r.elements.popper),d=[].concat(r.scrollParents.reference,r.scrollParents.popper);return n&&d.forEach(function(c){c.addEventListener("scroll",e.update,Uo)}),s&&l.addEventListener("resize",e.update,Uo),function(){n&&d.forEach(function(c){c.removeEventListener("scroll",e.update,Uo)}),s&&l.removeEventListener("resize",e.update,Uo)}}var _l={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Bc,data:{}};var Lc={left:"right",right:"left",bottom:"top",top:"bottom"};function ii(t){return t.replace(/left|right|bottom|top/g,function(r){return Lc[r]})}var qc={start:"end",end:"start"};function Ho(t){return t.replace(/start|end/g,function(r){return qc[r]})}function Tr(t){var r=V(t),e=r.pageXOffset,i=r.pageYOffset;return{scrollLeft:e,scrollTop:i}}function Er(t){return Ze(me(t)).left+Tr(t).scrollLeft}function ha(t,r){var e=V(t),i=me(t),o=e.visualViewport,n=i.clientWidth,a=i.clientHeight,s=0,l=0;if(o){n=o.width,a=o.height;var d=Oi();(d||!d&&r==="fixed")&&(s=o.offsetLeft,l=o.offsetTop)}return{width:n,height:a,x:s+Er(t),y:l}}function ga(t){var r,e=me(t),i=Tr(t),o=(r=t.ownerDocument)==null?void 0:r.body,n=ot(e.scrollWidth,e.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=ot(e.scrollHeight,e.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-i.scrollLeft+Er(t),l=-i.scrollTop;return Se(o||e).direction==="rtl"&&(s+=ot(e.clientWidth,o?o.clientWidth:0)-n),{width:n,height:a,x:s,y:l}}function Dr(t){var r=Se(t),e=r.overflow,i=r.overflowX,o=r.overflowY;return/auto|scroll|overlay|hidden/.test(e+o+i)}function Wo(t){return["html","body","#document"].indexOf(se(t))>=0?t.ownerDocument.body:ie(t)&&Dr(t)?t:Wo(Ft(t))}function jt(t,r){var e;r===void 0&&(r=[]);var i=Wo(t),o=i===((e=t.ownerDocument)==null?void 0:e.body),n=V(i),a=o?[n].concat(n.visualViewport||[],Dr(i)?i:[]):i,s=r.concat(a);return o?s:s.concat(jt(Ft(a)))}function oi(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Uc(t,r){var e=Ze(t,!1,r==="fixed");return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}function yl(t,r,e){return r===Lo?oi(ha(t,e)):Xe(r)?Uc(r,e):oi(ga(me(t)))}function Hc(t){var r=jt(Ft(t)),e=["absolute","fixed"].indexOf(Se(t).position)>=0,i=e&&ie(t)?nt(t):t;return Xe(i)?r.filter(function(o){return Xe(o)&&Bi(o,i)&&se(o)!=="body"}):[]}function va(t,r,e,i){var o=r==="clippingParents"?Hc(t):[].concat(r),n=[].concat(o,[e]),a=n[0],s=n.reduce(function(l,d){var c=yl(t,d,i);return l.top=ot(c.top,l.top),l.right=wr(c.right,l.right),l.bottom=wr(c.bottom,l.bottom),l.left=ot(c.left,l.left),l},yl(t,a,i));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Hi(t){var r=t.reference,e=t.element,i=t.placement,o=i?le(i):null,n=i?Je(i):null,a=r.x+r.width/2-e.width/2,s=r.y+r.height/2-e.height/2,l;switch(o){case z:l={x:a,y:r.y-e.height};break;case re:l={x:a,y:r.y+r.height};break;case Q:l={x:r.x+r.width,y:s};break;case X:l={x:r.x-e.width,y:s};break;default:l={x:r.x,y:r.y}}var d=o?Mr(o):null;if(d!=null){var c=d==="y"?"height":"width";switch(n){case Rt:l[d]=l[d]-(r[c]/2-e[c]/2);break;case yr:l[d]=l[d]+(r[c]/2-e[c]/2);break;default:}}return l}function at(t,r){r===void 0&&(r={});var e=r,i=e.placement,o=i===void 0?t.placement:i,n=e.strategy,a=n===void 0?t.strategy:n,s=e.boundary,l=s===void 0?pl:s,d=e.rootBoundary,c=d===void 0?Lo:d,u=e.elementContext,f=u===void 0?ei:u,m=e.altBoundary,g=m===void 0?!1:m,h=e.padding,v=h===void 0?0:h,b=qi(typeof v!="number"?v:Ui(v,Yt)),E=f===ei?cl:ei,T=t.rects.popper,M=t.elements[g?E:f],_=va(Xe(M)?M:M.contextElement||me(t.elements.popper),l,c,a),y=Ze(t.elements.reference),$=Hi({reference:y,element:T,strategy:"absolute",placement:o}),A=oi(Object.assign({},T,$)),D=f===ei?A:y,x={top:_.top-D.top+b.top,bottom:D.bottom-_.bottom+b.bottom,left:_.left-D.left+b.left,right:D.right-_.right+b.right},C=t.modifiersData.offset;if(f===ei&&C){var S=C[o];Object.keys(x).forEach(function(O){var L=[Q,re].indexOf(O)>=0?1:-1,U=[z,re].indexOf(O)>=0?"y":"x";x[O]+=S[U]*L})}return x}function _a(t,r){r===void 0&&(r={});var e=r,i=e.placement,o=e.boundary,n=e.rootBoundary,a=e.padding,s=e.flipVariations,l=e.allowedAutoPlacements,d=l===void 0?qo:l,c=Je(i),u=c?s?fa:fa.filter(function(g){return Je(g)===c}):Yt,f=u.filter(function(g){return d.indexOf(g)>=0});f.length===0&&(f=u);var m=f.reduce(function(g,h){return g[h]=at(t,{placement:h,boundary:o,rootBoundary:n,padding:a})[le(h)],g},{});return Object.keys(m).sort(function(g,h){return m[g]-m[h]})}function Wc(t){if(le(t)===Bo)return[];var r=ii(t);return[Ho(t),r,Ho(r)]}function Vc(t){var r=t.state,e=t.options,i=t.name;if(!r.modifiersData[i]._skip){for(var o=e.mainAxis,n=o===void 0?!0:o,a=e.altAxis,s=a===void 0?!0:a,l=e.fallbackPlacements,d=e.padding,c=e.boundary,u=e.rootBoundary,f=e.altBoundary,m=e.flipVariations,g=m===void 0?!0:m,h=e.allowedAutoPlacements,v=r.options.placement,b=le(v),E=b===v,T=l||(E||!g?[ii(v)]:Wc(v)),M=[v].concat(T).reduce(function(Et,Qe){return Et.concat(le(Qe)===Bo?_a(r,{placement:Qe,boundary:c,rootBoundary:u,padding:d,flipVariations:g,allowedAutoPlacements:h}):Qe)},[]),_=r.rects.reference,y=r.rects.popper,$=new Map,A=!0,D=M[0],x=0;x<M.length;x++){var C=M[x],S=le(C),O=Je(C)===Rt,L=[z,re].indexOf(S)>=0,U=L?"width":"height",H=at(r,{placement:C,boundary:c,rootBoundary:u,altBoundary:f,padding:d}),q=L?O?Q:X:O?re:z;_[U]>y[U]&&(q=ii(q));var Ne=ii(q),he=[];if(n&&he.push(H[S]<=0),s&&he.push(H[q]<=0,H[Ne]<=0),he.every(function(Et){return Et})){D=C,A=!1;break}$.set(C,he)}if(A)for(var Kt=g?3:1,Sr=function(Qe){var Ot=M.find(function(Xt){var ft=$.get(Xt);if(ft)return ft.slice(0,Qe).every(function(Cr){return Cr})});if(Ot)return D=Ot,"break"},It=Kt;It>0;It--){var zt=Sr(It);if(zt==="break")break}r.placement!==D&&(r.modifiersData[i]._skip=!0,r.placement=D,r.reset=!0)}}var wl={name:"flip",enabled:!0,phase:"main",fn:Vc,requiresIfExists:["offset"],data:{_skip:!1}};function bl(t,r,e){return e===void 0&&(e={x:0,y:0}),{top:t.top-r.height-e.y,right:t.right-r.width+e.x,bottom:t.bottom-r.height+e.y,left:t.left-r.width-e.x}}function Ml(t){return[z,Q,re,X].some(function(r){return t[r]>=0})}function Yc(t){var r=t.state,e=t.name,i=r.rects.reference,o=r.rects.popper,n=r.modifiersData.preventOverflow,a=at(r,{elementContext:"reference"}),s=at(r,{altBoundary:!0}),l=bl(a,i),d=bl(s,o,n),c=Ml(l),u=Ml(d);r.modifiersData[e]={referenceClippingOffsets:l,popperEscapeOffsets:d,isReferenceHidden:c,hasPopperEscaped:u},r.attributes.popper=Object.assign({},r.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":u})}var xl={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Yc};function jc(t,r,e){var i=le(t),o=[X,z].indexOf(i)>=0?-1:1,n=typeof e=="function"?e(Object.assign({},r,{placement:t})):e,a=n[0],s=n[1];return a=a||0,s=(s||0)*o,[X,Q].indexOf(i)>=0?{x:s,y:a}:{x:a,y:s}}function Gc(t){var r=t.state,e=t.options,i=t.name,o=e.offset,n=o===void 0?[0,0]:o,a=qo.reduce(function(c,u){return c[u]=jc(u,r.rects,n),c},{}),s=a[r.placement],l=s.x,d=s.y;r.modifiersData.popperOffsets!=null&&(r.modifiersData.popperOffsets.x+=l,r.modifiersData.popperOffsets.y+=d),r.modifiersData[i]=a}var Tl={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Gc};function Kc(t){var r=t.state,e=t.name;r.modifiersData[e]=Hi({reference:r.rects.reference,element:r.rects.popper,strategy:"absolute",placement:r.placement})}var El={name:"popperOffsets",enabled:!0,phase:"read",fn:Kc,data:{}};function ya(t){return t==="x"?"y":"x"}function zc(t){var r=t.state,e=t.options,i=t.name,o=e.mainAxis,n=o===void 0?!0:o,a=e.altAxis,s=a===void 0?!1:a,l=e.boundary,d=e.rootBoundary,c=e.altBoundary,u=e.padding,f=e.tether,m=f===void 0?!0:f,g=e.tetherOffset,h=g===void 0?0:g,v=at(r,{boundary:l,rootBoundary:d,padding:u,altBoundary:c}),b=le(r.placement),E=Je(r.placement),T=!E,M=Mr(b),_=ya(M),y=r.modifiersData.popperOffsets,$=r.rects.reference,A=r.rects.popper,D=typeof h=="function"?h(Object.assign({},r.rects,{placement:r.placement})):h,x=typeof D=="number"?{mainAxis:D,altAxis:D}:Object.assign({mainAxis:0,altAxis:0},D),C=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,S={x:0,y:0};if(y){if(n){var O,L=M==="y"?z:X,U=M==="y"?re:Q,H=M==="y"?"height":"width",q=y[M],Ne=q+v[L],he=q-v[U],Kt=m?-A[H]/2:0,Sr=E===Rt?$[H]:A[H],It=E===Rt?-A[H]:-$[H],zt=r.elements.arrow,Et=m&&zt?br(zt):{width:0,height:0},Qe=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:Li(),Ot=Qe[L],Xt=Qe[U],ft=xr(0,$[H],Et[H]),Cr=T?$[H]/2-Kt-ft-Ot-x.mainAxis:Sr-ft-Ot-x.mainAxis,Wi=T?-$[H]/2+Kt+ft+Xt+x.mainAxis:It+ft+Xt+x.mainAxis,$r=r.elements.arrow&&nt(r.elements.arrow),Vi=$r?M==="y"?$r.clientTop||0:$r.clientLeft||0:0,si=(O=C==null?void 0:C[M])!=null?O:0,Yi=q+Cr-si-Vi,ji=q+Wi-si,li=xr(m?wr(Ne,Yi):Ne,q,m?ot(he,ji):he);y[M]=li,S[M]=li-q}if(s){var pi,Gi=M==="x"?z:X,Ki=M==="x"?re:Q,mt=y[_],Zt=_==="y"?"height":"width",ci=mt+v[Gi],di=mt-v[Ki],Pr=[z,X].indexOf(b)!==-1,ui=(pi=C==null?void 0:C[_])!=null?pi:0,fi=Pr?ci:mt-$[Zt]-A[Zt]-ui+x.altAxis,mi=Pr?mt+$[Zt]+A[Zt]-ui-x.altAxis:di,hi=m&&Pr?ml(fi,mt,mi):xr(m?fi:ci,mt,m?mi:di);y[_]=hi,S[_]=hi-mt}r.modifiersData[i]=S}}var Dl={name:"preventOverflow",enabled:!0,phase:"main",fn:zc,requiresIfExists:["offset"]};function wa(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function ba(t){return t===V(t)||!ie(t)?Tr(t):wa(t)}function Xc(t){var r=t.getBoundingClientRect(),e=Nt(r.width)/t.offsetWidth||1,i=Nt(r.height)/t.offsetHeight||1;return e!==1||i!==1}function Ma(t,r,e){e===void 0&&(e=!1);var i=ie(r),o=ie(r)&&Xc(r),n=me(r),a=Ze(t,o,e),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!e)&&((se(r)!=="body"||Dr(n))&&(s=ba(r)),ie(r)?(l=Ze(r,!0),l.x+=r.clientLeft,l.y+=r.clientTop):n&&(l.x=Er(n))),{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function Zc(t){var r=new Map,e=new Set,i=[];t.forEach(function(n){r.set(n.name,n)});function o(n){e.add(n.name);var a=[].concat(n.requires||[],n.requiresIfExists||[]);a.forEach(function(s){if(!e.has(s)){var l=r.get(s);l&&o(l)}}),i.push(n)}return t.forEach(function(n){e.has(n.name)||o(n)}),i}function xa(t){var r=Zc(t);return dl.reduce(function(e,i){return e.concat(r.filter(function(o){return o.phase===i}))},[])}function Ta(t){var r;return function(){return r||(r=new Promise(function(e){Promise.resolve().then(function(){r=void 0,e(t())})})),r}}function Ea(t){var r=t.reduce(function(e,i){var o=e[i.name];return e[i.name]=o?Object.assign({},o,i,{options:Object.assign({},o.options,i.options),data:Object.assign({},o.data,i.data)}):i,e},{});return Object.keys(r).map(function(e){return r[e]})}var Sl={placement:"bottom",modifiers:[],strategy:"absolute"};function Cl(){for(var t=arguments.length,r=new Array(t),e=0;e<t;e++)r[e]=arguments[e];return!r.some(function(i){return!(i&&typeof i.getBoundingClientRect=="function")})}function $l(t){t===void 0&&(t={});var r=t,e=r.defaultModifiers,i=e===void 0?[]:e,o=r.defaultOptions,n=o===void 0?Sl:o;return function(s,l,d){d===void 0&&(d=n);var c={placement:"bottom",orderedModifiers:[],options:Object.assign({},Sl,n),modifiersData:{},elements:{reference:s,popper:l},attributes:{},styles:{}},u=[],f=!1,m={state:c,setOptions:function(b){var E=typeof b=="function"?b(c.options):b;h(),c.options=Object.assign({},n,c.options,E),c.scrollParents={reference:Xe(s)?jt(s):s.contextElement?jt(s.contextElement):[],popper:jt(l)};var T=xa(Ea([].concat(i,c.options.modifiers)));return c.orderedModifiers=T.filter(function(M){return M.enabled}),g(),m.update()},forceUpdate:function(){if(!f){var b=c.elements,E=b.reference,T=b.popper;if(Cl(E,T)){c.rects={reference:Ma(E,nt(T),c.options.strategy==="fixed"),popper:br(T)},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach(function(x){return c.modifiersData[x.name]=Object.assign({},x.data)});for(var M=0;M<c.orderedModifiers.length;M++){if(c.reset===!0){c.reset=!1,M=-1;continue}var _=c.orderedModifiers[M],y=_.fn,$=_.options,A=$===void 0?{}:$,D=_.name;typeof y=="function"&&(c=y({state:c,options:A,name:D,instance:m})||c)}}}},update:Ta(function(){return new Promise(function(v){m.forceUpdate(),v(c)})}),destroy:function(){h(),f=!0}};if(!Cl(s,l))return m;m.setOptions(d).then(function(v){!f&&d.onFirstUpdate&&d.onFirstUpdate(v)});function g(){c.orderedModifiers.forEach(function(v){var b=v.name,E=v.options,T=E===void 0?{}:E,M=v.effect;if(typeof M=="function"){var _=M({state:c,name:b,instance:m,options:T}),y=function(){};u.push(_||y)}})}function h(){u.forEach(function(v){return v()}),u=[]}return m}}var Jc=[_l,El,vl,ul,Tl,wl,Dl,hl,xl],Da=$l({defaultModifiers:Jc});var Pl=require("obsidian");var Sa=class{constructor(r,e,i){p(this,"owner");p(this,"values");p(this,"suggestions");p(this,"selectedItem");p(this,"containerEl");this.owner=r,this.containerEl=e,this.values=[],this.suggestions=[],this.selectedItem=0,e.on("click",".suggestion-item",(o,n)=>this.onSuggestionClick(o,n)),e.on("mousemove",".suggestion-item",(o,n)=>this.onSuggestionMouseover(o,n)),i.register([],"ArrowUp",o=>{if(!o.isComposing)return this.setSelectedItem(this.selectedItem-1,!0),!1}),i.register([],"ArrowDown",o=>{if(!o.isComposing)return this.setSelectedItem(this.selectedItem+1,!0),!1}),i.register([],"Enter",o=>{if(!o.isComposing)return this.useSelectedItem(o),!1})}onSuggestionClick(r,e){r.preventDefault();let i=this.suggestions.indexOf(e);this.setSelectedItem(i,!1),this.useSelectedItem(r)}onSuggestionMouseover(r,e){let i=this.suggestions.indexOf(e);this.setSelectedItem(i,!1)}setSuggestions(r){this.containerEl.empty();let e=[];r.forEach(i=>{let o=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(i,o),e.push(o)}),this.values=r,this.suggestions=e,this.setSelectedItem(0,!1)}useSelectedItem(r){let e=this.values[this.selectedItem];e&&this.owner.selectSuggestion(e,r)}setSelectedItem(r,e){let i=this.suggestions.length>0?Na(r,this.suggestions.length):0,o=this.suggestions[this.selectedItem],n=this.suggestions[i];o==null||o.removeClass("is-selected"),n==null||n.addClass("is-selected"),this.selectedItem=i,e&&n.scrollIntoView(!1)}},ni=class{constructor(r,e){p(this,"app");p(this,"inputEl");p(this,"popper");p(this,"scope");p(this,"suggestEl");p(this,"suggest");this.app=r,this.inputEl=e,this.scope=new Pl.Scope,this.suggestEl=createDiv("suggestion-container");let i=this.suggestEl.createDiv("suggestion");this.suggest=new Sa(this,i,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",o=>{o.preventDefault()})}onInputChanged(){let r=this.inputEl.value,e=this.getSuggestions(r);e.length>0&&(this.suggest.setSuggestions(e),this.open(this.app.dom.appContainerEl,this.inputEl))}open(r,e){this.app.keymap.pushScope(this.scope),r.appendChild(this.suggestEl),this.popper=Da(e,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"sameWidth",enabled:!0,fn:({state:i,instance:o})=>{let n=`${i.rects.reference.width}px`;i.styles.popper.width!==n&&(i.styles.popper.width=n,o.update())},phase:"beforeWrite",requires:["computeStyles"]}]})}close(){var r;this.app.keymap.popScope(this.scope),this.suggest.setSuggestions([]),(r=this.popper)==null||r.destroy(),this.suggestEl.detach()}};var st=class extends ni{getSuggestions(r){let e=this.app.vault.getAllLoadedFiles(),i=[],o=r.toLowerCase();return e.forEach(n=>{n instanceof kl.TFile&&n.name.toLowerCase().contains(o)&&i.push(n)}),i}renderSuggestion(r,e){e.setText(r.path)}selectSuggestion(r){this.inputEl.value=r.path,this.inputEl.trigger("input"),this.close()}};var Al=require("obsidian");var lt=class extends ni{getSuggestions(r){let e=this.app.vault.getAllLoadedFiles(),i=[],o=r.toLowerCase();return e.forEach(n=>{n instanceof Al.TFolder&&n.path.toLowerCase().contains(o)&&i.push(n)}),i}renderSuggestion(r,e){e.setText(r.path)}selectSuggestion(r){this.inputEl.value=r.path,this.inputEl.trigger("input"),this.close()}};var ee={OMDbKey:"",MobyGamesKey:"",GiantBombKey:"",sfwFilter:!0,templates:!0,customDateFormat:"L",openNoteInNewTab:!0,useDefaultFrontMatter:!0,enableTemplaterIntegration:!1,movieTemplate:"",seriesTemplate:"",mangaTemplate:"",gameTemplate:"",wikiTemplate:"",musicReleaseTemplate:"",boardgameTemplate:"",bookTemplate:"",movieFileNameTemplate:"{{ title }} ({{ year }})",seriesFileNameTemplate:"{{ title }} ({{ year }})",mangaFileNameTemplate:"{{ title }} ({{ year }})",gameFileNameTemplate:"{{ title }} ({{ year }})",wikiFileNameTemplate:"{{ title }}",musicReleaseFileNameTemplate:"{{ title }} (by {{ ENUM:artists }} - {{ year }})",boardgameFileNameTemplate:"{{ title }} ({{ year }})",bookFileNameTemplate:"{{ title }} ({{ year }})",moviePropertyConversionRules:"",seriesPropertyConversionRules:"",mangaPropertyConversionRules:"",gamePropertyConversionRules:"",wikiPropertyConversionRules:"",musicReleasePropertyConversionRules:"",boardgamePropertyConversionRules:"",bookPropertyConversionRules:"",movieFolder:"Media DB/movies",seriesFolder:"Media DB/series",mangaFolder:"Media DB/manga",gameFolder:"Media DB/games",wikiFolder:"Media DB/wiki",musicReleaseFolder:"Media DB/music",boardgameFolder:"Media DB/boardgames",bookFolder:"Media DB/books",propertyMappingModels:[]},Qc=["type","id","dataSource"];function Rl(t){let r=ee,e=[];for(let i of Dt){let n=t.mediaTypeManager.createMediaTypeModelFromMediaType({},i).toMetaDataObject(),a=new kr(i);for(let s of Object.keys(n))a.properties.push(new or(s,"","default",Qc.contains(s)));e.push(a)}return r.propertyMappingModels=e,r}var Vo=class extends N.PluginSettingTab{constructor(e,i){super(e,i);p(this,"plugin");this.plugin=i}display(){let{containerEl:e}=this;if(e.empty(),new N.Setting(e).setName("OMDb API key").setDesc('API key for "www.omdbapi.com".').addText(i=>{i.setPlaceholder("API key").setValue(this.plugin.settings.OMDbKey).onChange(o=>{this.plugin.settings.OMDbKey=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Moby Games key").setDesc('API key for "www.mobygames.com".').addText(i=>{i.setPlaceholder("API key").setValue(this.plugin.settings.MobyGamesKey).onChange(o=>{this.plugin.settings.MobyGamesKey=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Giant Bomb Key").setDesc('API key for "www.giantbomb.com".').addText(i=>{i.setPlaceholder("API key").setValue(this.plugin.settings.GiantBombKey).onChange(o=>{this.plugin.settings.GiantBombKey=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("SFW filter").setDesc("Only shows SFW results for APIs that offer filtering.").addToggle(i=>{i.setValue(this.plugin.settings.sfwFilter).onChange(o=>{this.plugin.settings.sfwFilter=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Resolve {{ tags }} in templates").setDesc("Whether to resolve {{ tags }} in templates. The spaces inside the curly braces are important.").addToggle(i=>{i.setValue(this.plugin.settings.templates).onChange(o=>{this.plugin.settings.templates=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Date format").setDesc(Oa("Your custom date format. Use <em>'YYYY-MM-DD'</em> for example.<br>For more syntax, refer to <a href='https://momentjs.com/docs/#/displaying/format/'>format reference</a>.<br>Your current syntax looks like this: <b><a id='media-db-dateformat-preview' style='pointer-events: none; cursor: default; text-decoration: none;'>"+this.plugin.dateFormatter.getPreview()+"</a></b>")).addText(i=>{i.setPlaceholder(ee.customDateFormat).setValue(this.plugin.settings.customDateFormat===ee.customDateFormat?"":this.plugin.settings.customDateFormat).onChange(o=>{let n=o||ee.customDateFormat;this.plugin.settings.customDateFormat=n;let a=document.getElementById("media-db-dateformat-preview");a&&(a.textContent=this.plugin.dateFormatter.getPreview(n)),this.plugin.saveSettings()})}),new N.Setting(e).setName("Open note in new tab").setDesc("Open the newly created note in a new tab.").addToggle(i=>{i.setValue(this.plugin.settings.openNoteInNewTab).onChange(o=>{this.plugin.settings.openNoteInNewTab=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Use default front matter").setDesc("Whether to use the default front matter. If disabled, the front matter from the template will be used. Same as mapping everything to remove.").addToggle(i=>{i.setValue(this.plugin.settings.useDefaultFrontMatter).onChange(o=>{this.plugin.settings.useDefaultFrontMatter=o,this.plugin.saveSettings(),this.display()})}),new N.Setting(e).setName("Enable Templater integration").setDesc("Enable integration with the templater plugin, this also needs templater to be installed. Warning: Templater allows you to execute arbitrary JavaScript code and system commands.").addToggle(i=>{i.setValue(this.plugin.settings.enableTemplaterIntegration).onChange(o=>{this.plugin.settings.enableTemplaterIntegration=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("New file location").setHeading(),new N.Setting(e).setName("Movie folder").setDesc("Where newly imported movies should be placed.").addSearch(i=>{new lt(this.app,i.inputEl),i.setPlaceholder(ee.movieFolder).setValue(this.plugin.settings.movieFolder).onChange(o=>{this.plugin.settings.movieFolder=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Series folder").setDesc("Where newly imported series should be placed.").addSearch(i=>{new lt(this.app,i.inputEl),i.setPlaceholder(ee.seriesFolder).setValue(this.plugin.settings.seriesFolder).onChange(o=>{this.plugin.settings.seriesFolder=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Manga folder").setDesc("Where newly imported manga should be placed.").addSearch(i=>{new lt(this.app,i.inputEl),i.setPlaceholder(ee.mangaFolder).setValue(this.plugin.settings.mangaFolder).onChange(o=>{this.plugin.settings.mangaFolder=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Game folder").setDesc("Where newly imported games should be placed.").addSearch(i=>{new lt(this.app,i.inputEl),i.setPlaceholder(ee.gameFolder).setValue(this.plugin.settings.gameFolder).onChange(o=>{this.plugin.settings.gameFolder=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Wiki folder").setDesc("Where newly imported wiki articles should be placed.").addSearch(i=>{new lt(this.app,i.inputEl),i.setPlaceholder(ee.wikiFolder).setValue(this.plugin.settings.wikiFolder).onChange(o=>{this.plugin.settings.wikiFolder=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Music folder").setDesc("Where newly imported music should be placed.").addSearch(i=>{new lt(this.app,i.inputEl),i.setPlaceholder(ee.musicReleaseFolder).setValue(this.plugin.settings.musicReleaseFolder).onChange(o=>{this.plugin.settings.musicReleaseFolder=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Board game folder").setDesc("Where newly imported board games should be places.").addSearch(i=>{new lt(this.app,i.inputEl),i.setPlaceholder(ee.boardgameFolder).setValue(this.plugin.settings.boardgameFolder).onChange(o=>{this.plugin.settings.boardgameFolder=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Book folder").setDesc("Where newly imported books should be placed.").addSearch(i=>{new lt(this.app,i.inputEl),i.setPlaceholder(ee.bookFolder).setValue(this.plugin.settings.bookFolder).onChange(o=>{this.plugin.settings.bookFolder=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Template settings").setHeading(),new N.Setting(e).setName("Movie template").setDesc("Template file to be used when creating a new note for a movie.").addSearch(i=>{new st(this.app,i.inputEl),i.setPlaceholder("Example: movieTemplate.md").setValue(this.plugin.settings.movieTemplate).onChange(o=>{this.plugin.settings.movieTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Series template").setDesc("Template file to be used when creating a new note for a series.").addSearch(i=>{new st(this.app,i.inputEl),i.setPlaceholder("Example: seriesTemplate.md").setValue(this.plugin.settings.seriesTemplate).onChange(o=>{this.plugin.settings.seriesTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Manga template").setDesc("Template file to be used when creating a new note for a manga.").addSearch(i=>{new st(this.app,i.inputEl),i.setPlaceholder("Example: mangaTemplate.md").setValue(this.plugin.settings.mangaTemplate).onChange(o=>{this.plugin.settings.mangaTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Game template").setDesc("Template file to be used when creating a new note for a game.").addSearch(i=>{new st(this.app,i.inputEl),i.setPlaceholder("Example: gameTemplate.md").setValue(this.plugin.settings.gameTemplate).onChange(o=>{this.plugin.settings.gameTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Wiki template").setDesc("Template file to be used when creating a new note for a wiki entry.").addSearch(i=>{new st(this.app,i.inputEl),i.setPlaceholder("Example: wikiTemplate.md").setValue(this.plugin.settings.wikiTemplate).onChange(o=>{this.plugin.settings.wikiTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Music release template").setDesc("Template file to be used when creating a new note for a music release.").addSearch(i=>{new st(this.app,i.inputEl),i.setPlaceholder("Example: musicReleaseTemplate.md").setValue(this.plugin.settings.musicReleaseTemplate).onChange(o=>{this.plugin.settings.musicReleaseTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Board game template").setDesc("Template file to be used when creating a new note for a boardgame.").addSearch(i=>{new st(this.app,i.inputEl),i.setPlaceholder("Example: boardgameTemplate.md").setValue(this.plugin.settings.boardgameTemplate).onChange(o=>{this.plugin.settings.boardgameTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Book template").setDesc("Template file to be used when creating a new note for a book.").addSearch(i=>{new st(this.app,i.inputEl),i.setPlaceholder("Example: bookTemplate.md").setValue(this.plugin.settings.bookTemplate).onChange(o=>{this.plugin.settings.bookTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("File name settings").setHeading(),new N.Setting(e).setName("Movie file name template").setDesc("Template for the file name used when creating a new note for a movie.").addText(i=>{i.setPlaceholder(`Example: ${ee.movieFileNameTemplate}`).setValue(this.plugin.settings.movieFileNameTemplate).onChange(o=>{this.plugin.settings.movieFileNameTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Series file name template").setDesc("Template for the file name used when creating a new note for a series.").addText(i=>{i.setPlaceholder(`Example: ${ee.seriesFileNameTemplate}`).setValue(this.plugin.settings.seriesFileNameTemplate).onChange(o=>{this.plugin.settings.seriesFileNameTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Manga file name template").setDesc("Template for the file name used when creating a new note for a manga.").addText(i=>{i.setPlaceholder(`Example: ${ee.mangaFileNameTemplate}`).setValue(this.plugin.settings.mangaFileNameTemplate).onChange(o=>{this.plugin.settings.mangaFileNameTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Game file name template").setDesc("Template for the file name used when creating a new note for a game.").addText(i=>{i.setPlaceholder(`Example: ${ee.gameFileNameTemplate}`).setValue(this.plugin.settings.gameFileNameTemplate).onChange(o=>{this.plugin.settings.gameFileNameTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Wiki file name template").setDesc("Template for the file name used when creating a new note for a wiki entry.").addText(i=>{i.setPlaceholder(`Example: ${ee.wikiFileNameTemplate}`).setValue(this.plugin.settings.wikiFileNameTemplate).onChange(o=>{this.plugin.settings.wikiFileNameTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Music release file name template").setDesc("Template for the file name used when creating a new note for a music release.").addText(i=>{i.setPlaceholder(`Example: ${ee.musicReleaseFileNameTemplate}`).setValue(this.plugin.settings.musicReleaseFileNameTemplate).onChange(o=>{this.plugin.settings.musicReleaseFileNameTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Board game file name template").setDesc("Template for the file name used when creating a new note for a boardgame.").addText(i=>{i.setPlaceholder(`Example: ${ee.boardgameFileNameTemplate}`).setValue(this.plugin.settings.boardgameFileNameTemplate).onChange(o=>{this.plugin.settings.boardgameFileNameTemplate=o,this.plugin.saveSettings()})}),new N.Setting(e).setName("Book file name template").setDesc("Template for the file name used when creating a new note for a book.").addText(i=>{i.setPlaceholder(`Example: ${ee.bookFileNameTemplate}`).setValue(this.plugin.settings.bookFileNameTemplate).onChange(o=>{this.plugin.settings.bookFileNameTemplate=o,this.plugin.saveSettings()})}),this.plugin.settings.useDefaultFrontMatter){new N.Setting(e).setName("Property mappings").setHeading();let i=e.createEl("div");i.innerHTML=`
<p>Choose how metadata fields are mapped to property names. The options are:</p>
<ul>
<li><strong>default</strong>: keep the original name.</li>
<li><strong>remap</strong>: rename the property.</li>
<li><strong>remove</strong>: remove the property entirely.</li>
</ul>
<p>
Don't forget to save your changes using the save button for each individual category.
</p>`,Zr(ua,{target:this.containerEl,props:{models:this.plugin.settings.propertyMappingModels.map(o=>o.copy()),save:o=>{let n=[];for(let a of this.plugin.settings.propertyMappingModels)a.type===o.type?n.push(o):n.push(a);this.plugin.settings.propertyMappingModels=n,new N.Notice(`MDB: Property mappings for ${o.type} saved successfully.`),this.plugin.saveSettings()}}})}}};var ai=require("obsidian");var Yo=class{constructor(){p(this,"toFormat");p(this,"locale");this.toFormat="YYYY-MM-DD",this.locale=new Intl.DateTimeFormat().resolvedOptions().locale}setFormat(r){this.toFormat=r}getPreview(r){let e=(0,ai.moment)();return r||(r=this.toFormat),e.locale(this.locale).format(r)}format(r,e,i="en"){if(!r)return null;let o;return e?o=(0,ai.moment)(r,e,i):this.hasMomentFormat(r)?o=(0,ai.moment)(r):o=(0,ai.moment)(new Date(r)),o.isValid()?o.locale(this.locale).format(this.toFormat):null}hasMomentFormat(r){return(0,ai.moment)(r,!0).isValid()}};var ut=require("obsidian");var Gt=require("obsidian");var jo=class extends Gt.Modal{constructor(e,i){var o,n;i=Object.assign({},Nl,i);super(e.app);p(this,"plugin");p(this,"elements");p(this,"title");p(this,"markdownComponent");p(this,"submitCallback");p(this,"closeCallback");this.plugin=e,this.title=(o=i.modalTitle)!=null?o:"",this.elements=(n=i.elements)!=null?n:[],this.markdownComponent=new Gt.Component}setSubmitCallback(e){this.submitCallback=e}setCloseCallback(e){this.closeCallback=e}async preview(){let{contentEl:e}=this;e.addClass("media-db-plugin-preview-modal"),e.createEl("h2",{text:this.title});let i=e.createDiv({cls:"media-db-plugin-preview-wrapper"});this.markdownComponent.load();for(let n of this.elements){i.createEl("h3",{text:n.englishTitle});let a=i.createDiv({cls:"media-db-plugin-preview"}),s=this.plugin.generateMediaDbNoteFrontmatterPreview(n);s=`\`\`\`yaml
${s}\`\`\``;try{await Gt.MarkdownRenderer.render(this.app,s,a,"",this.markdownComponent)}catch(l){console.warn("mdb | error during rendering of preview",l)}}e.createDiv({cls:"media-db-plugin-spacer"});let o=new Gt.Setting(e);o.addButton(n=>{n.setButtonText("Cancel"),n.onClick(()=>this.close()),n.buttonEl.addClass("media-db-plugin-button")}),o.addButton(n=>{n.setButtonText("Ok"),n.setCta(),n.onClick(()=>{var a;return(a=this.submitCallback)==null?void 0:a.call(this,{confirmed:!0})}),n.buttonEl.addClass("media-db-plugin-button")})}onOpen(){this.preview()}onClose(){var e;this.markdownComponent.unload(),(e=this.closeCallback)==null||e.call(this)}};var pt=require("obsidian");var Go=class extends pt.Modal{constructor(e,i){var o,n;i=Object.assign({},Fl,i);super(e.app);p(this,"plugin");p(this,"query");p(this,"isBusy");p(this,"title");p(this,"selectedApis");p(this,"searchBtn");p(this,"submitCallback");p(this,"closeCallback");this.plugin=e,this.selectedApis=[],this.title=(o=i.modalTitle)!=null?o:"",this.query=(n=i.prefilledSearchString)!=null?n:"",this.isBusy=!1}setSubmitCallback(e){this.submitCallback=e}setCloseCallback(e){this.closeCallback=e}keyPressCallback(e){e.key==="Enter"&&this.search()}async search(){var i,o,n;if(!this.query||this.query.length<3){new pt.Notice("MDB | Query too short");return}let e=this.selectedApis;if(e.length===0){new pt.Notice("MDB | No API selected");return}this.isBusy||(this.isBusy=!0,(i=this.searchBtn)==null||i.setDisabled(!1),(o=this.searchBtn)==null||o.setButtonText("Searching..."),(n=this.submitCallback)==null||n.call(this,{query:this.query,apis:e}))}onOpen(){let{contentEl:e}=this;e.createEl("h2",{text:this.title});let i="Search by title",o=new pt.TextComponent(e);o.inputEl.style.width="100%",o.setPlaceholder(i),o.setValue(this.query),o.onChange(n=>this.query=n),o.inputEl.addEventListener("keydown",this.keyPressCallback.bind(this)),e.appendChild(o.inputEl),o.inputEl.focus(),e.createDiv({cls:"media-db-plugin-spacer"}),e.createEl("h3",{text:"APIs to search"});for(let n of this.plugin.apiManager.apis){let a=e.createEl("div",{cls:"media-db-plugin-list-wrapper"}),s=a.createEl("div",{cls:"media-db-plugin-list-text-wrapper"});s.createEl("span",{text:n.apiName,cls:"media-db-plugin-list-text"}),s.createEl("small",{text:n.apiDescription,cls:"media-db-plugin-list-text"});let l=a.createEl("div",{cls:"media-db-plugin-list-toggle"}),d=new pt.ToggleComponent(l);d.setTooltip(n.apiName),d.setValue(this.selectedApis.some(c=>c===n.apiName)),d.onChange(c=>{c?this.selectedApis.push(n.apiName):this.selectedApis=this.selectedApis.filter(u=>u!==n.apiName)}),l.appendChild(d.toggleEl)}e.createDiv({cls:"media-db-plugin-spacer"}),new pt.Setting(e).addButton(n=>{n.setButtonText("Cancel"),n.onClick(()=>this.close()),n.buttonEl.addClass("media-db-plugin-button")}).addButton(n=>{n.setButtonText("Ok"),n.setCta(),n.onClick(()=>{this.search()}),n.buttonEl.addClass("media-db-plugin-button"),this.searchBtn=n})}onClose(){var i;(i=this.closeCallback)==null||i.call(this);let{contentEl:e}=this;e.empty()}};var ct=require("obsidian");var Ko=class extends ct.Modal{constructor(e,i){var o;i=Object.assign({},Il,i);super(e.app);p(this,"plugin");p(this,"query");p(this,"isBusy");p(this,"title");p(this,"selectedApi");p(this,"searchBtn");p(this,"submitCallback");p(this,"closeCallback");this.plugin=e,this.title=(o=i.modalTitle)!=null?o:"",this.selectedApi=i.preselectedAPI||e.apiManager.apis[0].apiName,this.query="",this.isBusy=!1}setSubmitCallback(e){this.submitCallback=e}setCloseCallback(e){this.closeCallback=e}keyPressCallback(e){e.key==="Enter"&&this.search()}async search(){var e,i,o;if(!this.query){new ct.Notice("MDB | no Id entered");return}if(!this.selectedApi){new ct.Notice("MDB | No API selected");return}this.isBusy||(this.isBusy=!0,(e=this.searchBtn)==null||e.setDisabled(!1),(i=this.searchBtn)==null||i.setButtonText("Searching..."),(o=this.submitCallback)==null||o.call(this,{query:this.query,api:this.selectedApi}))}onOpen(){let{contentEl:e}=this;e.createEl("h2",{text:this.title});let i="Search by id",o=new ct.TextComponent(e);o.inputEl.style.width="100%",o.setPlaceholder(i),o.onChange(l=>this.query=l),o.inputEl.addEventListener("keydown",this.keyPressCallback.bind(this)),e.appendChild(o.inputEl),o.inputEl.focus(),e.createDiv({cls:"media-db-plugin-spacer"});let n=e.createEl("div",{cls:"media-db-plugin-list-wrapper"});n.createEl("div",{cls:"media-db-plugin-list-text-wrapper"}).createEl("span",{text:"API to search",cls:"media-db-plugin-list-text"});let s=new ct.DropdownComponent(n);s.onChange(l=>{this.selectedApi=l});for(let l of this.plugin.apiManager.apis)s.addOption(l.apiName,l.apiName);n.appendChild(s.selectEl),e.createDiv({cls:"media-db-plugin-spacer"}),new ct.Setting(e).addButton(l=>{l.setButtonText("Cancel"),l.onClick(()=>this.close()),l.buttonEl.addClass("media-db-plugin-button")}).addButton(l=>{l.setButtonText("Ok"),l.setCta(),l.onClick(()=>{this.search()}),l.buttonEl.addClass("media-db-plugin-button"),this.searchBtn=l})}onClose(){var i;(i=this.closeCallback)==null||i.call(this);let{contentEl:e}=this;e.empty()}};var dt=require("obsidian");var zo=class extends dt.Modal{constructor(e,i){var o,n,a;i=Object.assign({},Ol,i);super(e.app);p(this,"plugin");p(this,"query");p(this,"isBusy");p(this,"title");p(this,"selectedTypes");p(this,"searchBtn");p(this,"submitCallback");p(this,"closeCallback");this.plugin=e,this.selectedTypes=[...(o=i.preselectedTypes)!=null?o:[]],this.title=(n=i.modalTitle)!=null?n:"",this.query=(a=i.prefilledSearchString)!=null?a:"",this.isBusy=!1}setSubmitCallback(e){this.submitCallback=e}setCloseCallback(e){this.closeCallback=e}keyPressCallback(e){e.key==="Enter"&&this.search()}async search(){var i,o,n;if(!this.query||this.query.length<3){new dt.Notice("MDB | Query too short");return}let e=this.selectedTypes;if(e.length===0){new dt.Notice("MDB | No Type selected");return}this.isBusy||(this.isBusy=!0,(i=this.searchBtn)==null||i.setDisabled(!1),(o=this.searchBtn)==null||o.setButtonText("Searching..."),(n=this.submitCallback)==null||n.call(this,{query:this.query,types:e}))}onOpen(){let{contentEl:e}=this;e.createEl("h2",{text:this.title});let i="Search by title",o=new dt.TextComponent(e),n;o.inputEl.style.width="100%",o.setPlaceholder(i),o.setValue(this.query),o.onChange(a=>this.query=a),o.inputEl.addEventListener("keydown",this.keyPressCallback.bind(this)),e.appendChild(o.inputEl),o.inputEl.focus(),e.createDiv({cls:"media-db-plugin-spacer"}),e.createEl("h3",{text:"APIs to search"});for(let a of Dt){let s=e.createEl("div",{cls:"media-db-plugin-list-wrapper"});s.createEl("div",{cls:"media-db-plugin-list-text-wrapper"}).createEl("span",{text:vi(a),cls:"media-db-plugin-list-text"});let d=s.createEl("div",{cls:"media-db-plugin-list-toggle"}),c=new dt.ToggleComponent(d);c.setTooltip(vi(a)),c.setValue(this.selectedTypes.contains(a)),c.getValue()&&(n=c),c.onChange(u=>{u?(n&&n!==c&&(n.setValue(!1),this.selectedTypes=this.selectedTypes.filter(f=>f!==a)),n=c,this.selectedTypes.push(a)):(n=void 0,this.selectedTypes=this.selectedTypes.filter(f=>f!==a))}),d.appendChild(c.toggleEl)}e.createDiv({cls:"media-db-plugin-spacer"}),new dt.Setting(e).addButton(a=>{a.setButtonText("Cancel"),a.onClick(()=>this.close()),a.buttonEl.addClass("media-db-plugin-button")}).addButton(a=>{a.setButtonText("Ok"),a.setCta(),a.onClick(()=>{this.search()}),a.buttonEl.addClass("media-db-plugin-button"),this.searchBtn=a})}onClose(){var i;(i=this.closeCallback)==null||i.call(this);let{contentEl:e}=this;e.empty()}};var Jo=require("obsidian");var Xo=class{constructor(r,e,i,o,n=!1){p(this,"selectModal");p(this,"value");p(this,"id");p(this,"element");p(this,"cssClass");p(this,"activeClass");p(this,"hoverClass");p(this,"active");p(this,"highlighted");this.value=r,this.id=i,this.active=n,this.selectModal=o,this.cssClass="media-db-plugin-select-element",this.activeClass="media-db-plugin-select-element-selected",this.hoverClass="media-db-plugin-select-element-hover",this.element=e.createDiv({cls:this.cssClass}),this.element.id=this.getHTMLId(),this.element.on("click","#"+this.getHTMLId(),()=>{this.setActive(!this.active),this.selectModal.allowMultiSelect||this.selectModal.disableAllOtherElements(this.id)}),this.element.on("mouseenter","#"+this.getHTMLId(),()=>{this.setHighlighted(!0)}),this.element.on("mouseleave","#"+this.getHTMLId(),()=>{this.setHighlighted(!1)}),this.highlighted=!1}getHTMLId(){return`media-db-plugin-select-element-${this.id}`}isHighlighted(){return this.highlighted}setHighlighted(r){this.highlighted=r,this.highlighted?(this.addClass(this.hoverClass),this.selectModal.deHighlightAllOtherElements(this.id)):this.removeClass(this.hoverClass)}isActive(){return this.active}setActive(r){this.active=r,this.update()}update(){this.active?this.addClass(this.activeClass):this.removeClass(this.activeClass)}addClass(r){this.element.hasClass(r)||this.element.addClass(r)}removeClass(r){this.element.hasClass(r)&&this.element.removeClass(r)}};var Zo=class extends Jo.Modal{constructor(e,i,o=!0){super(e);p(this,"allowMultiSelect");p(this,"title");p(this,"description");p(this,"addSkipButton");p(this,"cancelButton");p(this,"skipButton");p(this,"submitButton");p(this,"elementWrapper");p(this,"elements");p(this,"selectModalElements");this.allowMultiSelect=o,this.title="",this.description="",this.addSkipButton=!1,this.cancelButton=void 0,this.skipButton=void 0,this.submitButton=void 0,this.elementWrapper=void 0,this.elements=i,this.selectModalElements=[],this.scope.register([],"ArrowUp",n=>{this.highlightUp(),n.preventDefault()}),this.scope.register([],"ArrowDown",n=>{this.highlightDown(),n.preventDefault()}),this.scope.register([],"ArrowRight",()=>{this.activateHighlighted()}),this.scope.register([]," ",n=>{this.elementWrapper&&this.elementWrapper===document.activeElement&&(this.activateHighlighted(),n.preventDefault())}),this.scope.register([],"Enter",()=>this.submit())}disableAllOtherElements(e){for(let i of this.selectModalElements)i.id!==e&&i.setActive(!1)}deHighlightAllOtherElements(e){for(let i of this.selectModalElements)i.id!==e&&i.setHighlighted(!1)}async onOpen(){var a;let{contentEl:e,titleEl:i}=this;i.createEl("h2",{text:this.title}),e.addClass("media-db-plugin-select-modal"),e.createEl("p",{text:this.description}),this.elementWrapper=e.createDiv({cls:"media-db-plugin-select-wrapper"}),this.elementWrapper.tabIndex=0;let o=0;for(let s of this.elements){let l=new Xo(s,this.elementWrapper,o,this,!1);this.selectModalElements.push(l),this.renderElement(s,l.element),o+=1}(a=this.selectModalElements.first())==null||a.element.scrollIntoView();let n=new Jo.Setting(e);n.addButton(s=>{s.setButtonText("Cancel"),s.onClick(()=>this.close()),s.buttonEl.addClass("media-db-plugin-button"),this.cancelButton=s}),this.addSkipButton&&n.addButton(s=>{s.setButtonText("Skip"),s.onClick(()=>this.skip()),s.buttonEl.addClass("media-db-plugin-button"),this.skipButton=s}),n.addButton(s=>{s.setButtonText("Ok"),s.setCta(),s.onClick(()=>this.submit()),s.buttonEl.addClass("media-db-plugin-button"),this.submitButton=s})}activateHighlighted(){for(let e of this.selectModalElements)e.isHighlighted()&&(e.setActive(!e.isActive()),this.allowMultiSelect||this.disableAllOtherElements(e.id))}highlightUp(){var e;for(let i of this.selectModalElements)if(i.isHighlighted()){this.getPreviousSelectModalElement(i).setHighlighted(!0);return}(e=this.selectModalElements.last())==null||e.setHighlighted(!0)}highlightDown(){var e;for(let i of this.selectModalElements)if(i.isHighlighted()){this.getNextSelectModalElement(i).setHighlighted(!0);return}(e=this.selectModalElements.first())==null||e.setHighlighted(!0)}getNextSelectModalElement(e){let i=e.id+1;return i=Qi(i,this.selectModalElements.length),this.selectModalElements.find(o=>o.id===i)}getPreviousSelectModalElement(e){let i=e.id-1;return i=Qi(i,this.selectModalElements.length),this.selectModalElements.find(o=>o.id===i)}};var Qo=class extends Zo{constructor(e,i){var o,n,a;i=Object.assign({},Bl,i);super(e.app,(o=i.elements)!=null?o:[],i.multiSelect);p(this,"plugin");p(this,"busy");p(this,"sendCallback");p(this,"submitCallback");p(this,"closeCallback");p(this,"skipCallback");this.plugin=e,this.title=(n=i.modalTitle)!=null?n:"",this.description="Select one or multiple search results.",this.addSkipButton=(a=i.skipButton)!=null?a:!1,this.busy=!1,this.sendCallback=!1}setSubmitCallback(e){this.submitCallback=e}setCloseCallback(e){this.closeCallback=e}setSkipCallback(e){this.skipCallback=e}renderElement(e,i){i.createEl("div",{text:this.plugin.mediaTypeManager.getFileName(e)}),i.createEl("small",{text:`${e.getSummary()}
`}),i.createEl("small",{text:`${e.type.toUpperCase()+(e.subType?` (${e.subType})`:"")} from ${e.dataSource}`})}submit(){var e,i;this.busy||(this.busy=!0,(e=this.submitButton)==null||e.setButtonText("Creating entry..."),(i=this.submitCallback)==null||i.call(this,{selected:this.selectModalElements.filter(o=>o.isActive()).map(o=>o.value)}))}skip(){var e,i;(e=this.skipButton)==null||e.setButtonText("Skipping..."),(i=this.skipCallback)==null||i.call(this)}onClose(){var e;(e=this.closeCallback)==null||e.call(this)}};var Ol={modalTitle:"Media DB Search",preselectedTypes:[],prefilledSearchString:""},Fl={modalTitle:"Media DB Advanced Search",preselectedAPIs:[],prefilledSearchString:""},Il={modalTitle:"Media DB Id Search",preselectedAPI:"",prefilledSearchString:""},Bl={modalTitle:"Media DB Search Results",elements:[],multiSelect:!0,skipButton:!1},Nl={modalTitle:"Media DB Preview",elements:[]},en=class{constructor(r){p(this,"plugin");this.plugin=r}async createSearchModal(r){let e=new zo(this.plugin,r);return{searchModalResult:await new Promise(o=>{e.setSubmitCallback(n=>o({code:"SUCCESS",data:n})),e.setCloseCallback(n=>{n&&o({code:"ERROR",error:n}),o({code:"CLOSE"})}),e.open()}),searchModal:e}}async openSearchModal(r,e){let{searchModalResult:i,searchModal:o}=await this.createSearchModal(r);if(console.debug(`MDB | searchModal closed with code ${i.code}`),i.code==="ERROR"){console.warn(i.error),new ut.Notice(i.error.toString()),o.close();return}if(i.code!=="CLOSE")try{let n=await e(i.data);return o.close(),n}catch(n){console.warn(n),new ut.Notice(`${n}`),o.close();return}}async createAdvancedSearchModal(r){let e=new Go(this.plugin,r);return{advancedSearchModalResult:await new Promise(o=>{e.setSubmitCallback(n=>o({code:"SUCCESS",data:n})),e.setCloseCallback(n=>{n&&o({code:"ERROR",error:n}),o({code:"CLOSE"})}),e.open()}),advancedSearchModal:e}}async openAdvancedSearchModal(r,e){let{advancedSearchModalResult:i,advancedSearchModal:o}=await this.createAdvancedSearchModal(r);if(console.debug(`MDB | advencedSearchModal closed with code ${i.code}`),i.code==="ERROR"){console.warn(i.error),new ut.Notice(i.error.toString()),o.close();return}if(i.code!=="CLOSE")try{let n=await e(i.data);return o.close(),n}catch(n){console.warn(n),new ut.Notice(`${n}`),o.close();return}}async createIdSearchModal(r){let e=new Ko(this.plugin,r);return{idSearchModalResult:await new Promise(o=>{e.setSubmitCallback(n=>o({code:"SUCCESS",data:n})),e.setCloseCallback(n=>{n&&o({code:"ERROR",error:n}),o({code:"CLOSE"})}),e.open()}),idSearchModal:e}}async openIdSearchModal(r,e){let{idSearchModalResult:i,idSearchModal:o}=await this.createIdSearchModal(r);if(console.debug(`MDB | idSearchModal closed with code ${i.code}`),i.code==="ERROR"){console.warn(i.error),new ut.Notice(i.error.toString()),o.close();return}if(i.code!=="CLOSE")try{let n=await e(i.data);return o.close(),n}catch(n){console.warn(n),new ut.Notice(`${n}`),o.close();return}}async createSelectModal(r){let e=new Qo(this.plugin,r);return{selectModalResult:await new Promise(o=>{e.setSubmitCallback(n=>o({code:"SUCCESS",data:n})),e.setSkipCallback(()=>o({code:"SKIP"})),e.setCloseCallback(n=>{n&&o({code:"ERROR",error:n}),o({code:"CLOSE"})}),e.open()}),selectModal:e}}async openSelectModal(r,e){let{selectModalResult:i,selectModal:o}=await this.createSelectModal(r);if(console.debug(`MDB | selectModal closed with code ${i.code}`),i.code==="ERROR"){console.warn(i.error),new ut.Notice(i.error.toString()),o.close();return}if(i.code!=="CLOSE"&&i.code!=="SKIP")try{let n=await e(i.data);return o.close(),n}catch(n){console.warn(n),new ut.Notice(`${n}`),o.close();return}}async createPreviewModal(r){let e=new jo(this.plugin,r);return{previewModalResult:await new Promise(o=>{e.setSubmitCallback(n=>o({code:"SUCCESS",data:n})),e.setCloseCallback(n=>{n&&o({code:"ERROR",error:n}),o({code:"CLOSE"})}),e.open()}),previewModal:e}}async openPreviewModal(r,e){let{previewModalResult:i,previewModal:o}=await this.createPreviewModal(r);if(console.debug(`MDB | previewModal closed with code ${i.code}`),i.code==="ERROR")return console.warn(i.error),new ut.Notice(i.error.toString()),o.close(),!0;if(i.code==="CLOSE")return!0;try{let n=await e(i.data);return o.close(),n}catch(n){return console.warn(n),new ut.Notice(`${n}`),o.close(),!0}}};var tn=class extends oe.Plugin{constructor(){super(...arguments);p(this,"settings");p(this,"apiManager");p(this,"mediaTypeManager");p(this,"modelPropertyMapper");p(this,"modalHelper");p(this,"dateFormatter");p(this,"frontMatterRexExpPattern","^(---)\\n[\\s\\S]*?\\n---")}async onload(){this.apiManager=new Ji,this.apiManager.registerAPI(new ao(this)),this.apiManager.registerAPI(new ro(this)),this.apiManager.registerAPI(new io(this)),this.apiManager.registerAPI(new po(this)),this.apiManager.registerAPI(new no(this)),this.apiManager.registerAPI(new lo(this)),this.apiManager.registerAPI(new eo(this)),this.apiManager.registerAPI(new so(this)),this.apiManager.registerAPI(new oo(this)),this.apiManager.registerAPI(new to(this)),this.mediaTypeManager=new uo,this.modelPropertyMapper=new fo(this),this.modalHelper=new en(this),this.dateFormatter=new Yo,await this.loadSettings(),this.addSettingTab(new Vo(this.app,this)),this.mediaTypeManager.updateTemplates(this.settings),this.mediaTypeManager.updateFolders(this.settings),this.dateFormatter.setFormat(this.settings.customDateFormat),this.addRibbonIcon("database","Add new Media DB entry",()=>this.createEntryWithAdvancedSearchModal()).addClass("obsidian-media-db-plugin-ribbon-class"),this.registerEvent(this.app.workspace.on("file-menu",(i,o)=>{o instanceof oe.TFolder&&i.addItem(n=>{n.setTitle("Import folder as Media DB entries").setIcon("database").onClick(()=>this.createEntriesFromFolder(o))})})),this.addCommand({id:"open-media-db-search-modal",name:"Create Media DB entry",callback:()=>this.createEntryWithSearchModal()});for(let i of Dt)this.addCommand({id:`open-media-db-search-modal-with-${i}`,name:`Create Media DB entry (${vi(i)})`,callback:()=>this.createEntryWithSearchModal({preselectedTypes:[i]})});this.addCommand({id:"open-media-db-advanced-search-modal",name:"Create Media DB entry (advanced search)",callback:()=>this.createEntryWithAdvancedSearchModal()}),this.addCommand({id:"open-media-db-id-search-modal",name:"Create Media DB entry by id",callback:()=>this.createEntryWithIdSearchModal()}),this.addCommand({id:"update-media-db-note",name:"Update open note (this will recreate the note)",checkCallback:i=>this.app.workspace.getActiveFile()?(i||this.updateActiveNote(!1),!0):!1}),this.addCommand({id:"update-media-db-note-metadata",name:"Update metadata",checkCallback:i=>this.app.workspace.getActiveFile()?(i||this.updateActiveNote(!0),!0):!1}),this.addCommand({id:"add-media-db-link",name:"Insert link",checkCallback:i=>this.app.workspace.getActiveFile()?(i||this.createLinkWithSearchModal(),!0):!1})}async createLinkWithSearchModal(){let e=await this.modalHelper.openAdvancedSearchModal({},async a=>await this.apiManager.query(a.query,a.apis));if(!e)return;let i=await this.modalHelper.openSelectModal({elements:e,multiSelect:!1},async a=>await this.queryDetails(a.selected));if(!i||i.length<1)return;let o=`[${i[0].title}](${i[0].url})`,n=this.app.workspace.getActiveViewOfType(oe.MarkdownView);n&&n.editor.replaceRange(o,n.editor.getCursor())}async createEntryWithSearchModal(e){var s;let i=[],o=await this.modalHelper.openSearchModal(e!=null?e:{},async l=>{i=l.types;let d=this.apiManager.apis.filter(c=>c.hasTypeOverlap(l.types)).map(c=>c.apiName);try{return console.log(d),await this.apiManager.query(l.query,d)}catch(c){return console.warn(c),[]}});if(!o)return;o=o.filter(l=>i.contains(l.type));let n,a=!1;for(;!a;){if(n=(s=await this.modalHelper.openSelectModal({elements:o},async l=>await this.queryDetails(l.selected)))!=null?s:[],!n)return;a=await this.modalHelper.openPreviewModal({elements:n},async l=>l.confirmed)}await this.createMediaDbNotes(n)}async createEntryWithAdvancedSearchModal(){var n;let e=await this.modalHelper.openAdvancedSearchModal({},async a=>await this.apiManager.query(a.query,a.apis));if(!e)return;let i,o=!1;for(;!o;){if(i=(n=await this.modalHelper.openSelectModal({elements:e},async a=>await this.queryDetails(a.selected)))!=null?n:[],!i)return;o=await this.modalHelper.openPreviewModal({elements:i},async a=>a.confirmed)}await this.createMediaDbNotes(i)}async createEntryWithIdSearchModal(){let e,i=!1;for(;!i;){if(e=await this.modalHelper.openIdSearchModal({},async o=>await this.apiManager.queryDetailedInfoById(o.query,o.api)),!e)return;i=await this.modalHelper.openPreviewModal({elements:[e]},async o=>o.confirmed)}e&&await this.createMediaDbNoteFromModel(e,{attachTemplate:!0,openNote:!0})}async createMediaDbNotes(e,i){for(let o of e)await this.createMediaDbNoteFromModel(o,{attachTemplate:!0,attachFile:i})}async queryDetails(e){let i=[];for(let o of e){let n=await this.apiManager.queryDetailedInfo(o);n&&i.push(n)}return i}async createMediaDbNoteFromModel(e,i){try{console.debug("MDB | creating new note"),i.openNote=this.settings.openNoteInNewTab;let o=await this.generateMediaDbNoteContents(e,i);i.folder||(i.folder=await this.mediaTypeManager.getFolder(e,this.app));let n=await this.createNote(this.mediaTypeManager.getFileName(e),o,i);this.settings.enableTemplaterIntegration&&await qa(this.app,n)}catch(o){console.warn(o),new oe.Notice(`${o}`)}}generateMediaDbNoteFrontmatterPreview(e){let i=this.modelPropertyMapper.convertObject(e.toMetaDataObject());return(0,oe.stringifyYaml)(i)}async generateMediaDbNoteContents(e,i){let o=await this.mediaTypeManager.getTemplate(e,this.app);return this.generateContentWithDefaultFrontMatter(e,i,o)}async generateContentWithDefaultFrontMatter(e,i,o){let n;this.settings.useDefaultFrontMatter?n=this.modelPropertyMapper.convertObject(e.toMetaDataObject()):n={id:e.id,type:e.type,dataSource:e.dataSource};let a="";return o=i.attachTemplate?o:"",{fileMetadata:n,fileContent:a}=await this.attachFile(n,a,i.attachFile),{fileMetadata:n,fileContent:a}=await this.attachTemplate(n,a,o),this.settings.enableTemplaterIntegration&&pn(this.app)?a=`---
<%* const media = ${JSON.stringify(e)} %>
${(0,oe.stringifyYaml)(n)}---
${a}`:a=`---
${(0,oe.stringifyYaml)(n)}---
${a}`,a}async generateContentWithCustomFrontMatter(e,i,o){var l,d;let n=new RegExp(this.frontMatterRexExpPattern),a=this.getMetaDataFromFileContent(o),s=o.replace(n,"");if(i.attachFile){let c=(d=(l=this.app.metadataCache.getFileCache(i.attachFile))==null?void 0:l.frontmatter)!=null?d:{};s=await this.app.vault.read(i.attachFile),s=s.replace(n,""),s=s.startsWith(`
`)?s.substring(1):s,Object.keys(c).forEach(u=>{let f=c[u];!a[u]&&f&&(a[u]=f)})}return a.id||(a.id=e.id),a.type||(a.type=e.type),a.dataSource||(a.dataSource=e.dataSource),this.settings.enableTemplaterIntegration&&pn(this.app)?s=`---
<%* const media = ${JSON.stringify(e)} %>
${(0,oe.stringifyYaml)(a)}---
${s}`:s=`---
${(0,oe.stringifyYaml)(a)}---
${s}`,s}async attachFile(e,i,o){if(!o)return{fileMetadata:e,fileContent:i};let n=this.getMetadataFromFileCache(o);e=Object.assign(n,e);let a=await this.app.vault.read(o),s=new RegExp(this.frontMatterRexExpPattern);return a=a.replace(s,""),a=a.startsWith(`
`)?a.substring(1):a,i+=a,{fileMetadata:e,fileContent:i}}async attachTemplate(e,i,o){if(!o)return{fileMetadata:e,fileContent:i};let n=this.getMetaDataFromFileContent(o);e=Object.assign(n,e);let a=new RegExp(this.frontMatterRexExpPattern),s=o.replace(a,"");return i+=s,{fileMetadata:e,fileContent:i}}getMetaDataFromFileContent(e){let i,n=new RegExp(this.frontMatterRexExpPattern).exec(e);if(!n)return{};let a=n[0];return a?(a=a.substring(4),a=a.substring(0,a.length-3),i=(0,oe.parseYaml)(a),i||(i={}),console.debug("MDB | metadata read from file content",i),i):{}}getMetadataFromFileCache(e){var o;let i=(o=this.app.metadataCache.getFileCache(e))==null?void 0:o.frontmatter;return structuredClone(i!=null?i:{})}async createNote(e,i,o){var d;let n=(d=o.folder)!=null?d:this.app.vault.getAbstractFileByPath("/");if(!n||!(n instanceof oe.TFolder))throw new Error("MDB | invalid folder");e=Fa(e);let a=`${n.path}/${e}.md`,s=this.app.vault.getAbstractFileByPath(a);s&&await this.app.vault.delete(s);let l=await this.app.vault.create(a,i);if(console.debug(`MDB | created new file at ${a}`),o.openNote){let c=this.app.workspace.getUnpinnedLeaf();if(!c)return console.warn("MDB | no active leaf, not opening newly created note"),l;await c.openFile(l,{state:{mode:"source"}})}return l}async updateActiveNote(e=!1){var l,d,c;let i=(l=this.app.workspace.getActiveFile())!=null?l:void 0;if(!i)throw new Error("MDB | there is no active note");let o=this.getMetadataFromFileCache(i);if(o=this.modelPropertyMapper.convertObjectBack(o),console.debug("MDB | read metadata",o),!(o!=null&&o.type)||!(o!=null&&o.dataSource)||!(o!=null&&o.id))throw new Error("MDB | active note is not a Media DB entry or is missing metadata");let n=o,a=this.mediaTypeManager.createMediaTypeModelFromMediaType(n,n.type),s=await this.apiManager.queryDetailedInfoById(n.id,n.dataSource);s&&(s=Object.assign(a,s.getWithOutUserData()),e?await this.createMediaDbNoteFromModel(s,{attachFile:i,folder:(d=i.parent)!=null?d:void 0,openNote:!0}):await this.createMediaDbNoteFromModel(s,{attachTemplate:!0,folder:(c=i.parent)!=null?c:void 0,openNote:!0}))}async createEntriesFromFolder(e){let i=[],o=!1,{selectedAPI:n,titleFieldName:a,appendContent:s}=await new Promise(l=>{new co(this.app,this,(d,c,u)=>{l({selectedAPI:d,titleFieldName:c,appendContent:u})}).open()});for(let l of e.children)if(l instanceof oe.TFile){let d=l;if(o){i.push({filePath:d.path,error:"user canceled"});continue}let u=this.getMetadataFromFileCache(d)[a];if(!u){i.push({filePath:d.path,error:`metadata field '${a}' not found or empty`});continue}let f=[];try{f=await this.apiManager.query(u,[n])}catch(v){i.push({filePath:d.path,error:`${v}`});continue}if(!f||f.length===0){i.push({filePath:d.path,error:"no search results"});continue}let{selectModalResult:m,selectModal:g}=await this.modalHelper.createSelectModal({elements:f,skipButton:!0,modalTitle:`Results for '${u}'`});if(m.code==="ERROR"){i.push({filePath:d.path,error:m.error.message}),g.close();continue}if(m.code==="CLOSE"){i.push({filePath:d.path,error:"user canceled"}),g.close(),o=!0;continue}if(m.code==="SKIP"){i.push({filePath:d.path,error:"user skipped"}),g.close();continue}if(m.data.selected.length===0){i.push({filePath:d.path,error:"no search results selected"});continue}let h=await this.queryDetails(m.data.selected);await this.createMediaDbNotes(h,s?d:void 0),g.close()}i.length>0&&await this.createErroredFilesReport(i)}async createErroredFilesReport(e){let i=`MDB - bulk import error report ${Ba(new Date)}`,o=`${i}.md`,n=[["file","error"]].concat(e.map(s=>[s.filePath,s.error])),a=`# ${i}
${Ia(n)}`;await this.app.vault.create(o,a)}async loadSettings(){let e=await this.loadData(),i=Rl(this),o=Object.assign({},i,e),n=[];for(let a of i.propertyMappingModels){let s=o.propertyMappingModels.find(l=>l.type===a.type);if(s===void 0)n.push(a);else{let l=[];for(let d of a.properties){let c=s.properties.find(u=>u.property===d.property);c===void 0?l.push(d):l.push(new or(c.property,c.newProperty,c.mapping,d.locked))}n.push(new kr(s.type,l))}}o.propertyMappingModels=n,this.settings=o}async saveSettings(){this.mediaTypeManager.updateTemplates(this.settings),this.mediaTypeManager.updateFolders(this.settings),this.dateFormatter.setFormat(this.settings.customDateFormat),await this.saveData(this.settings)}};
/* nosourcemap */