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
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 */ |