diff --git a/dist/components/index.d.ts b/dist/components/index.d.ts index 168021f..8ab8718 100644 --- a/dist/components/index.d.ts +++ b/dist/components/index.d.ts @@ -1,2 +1,2 @@ -export { Search, SearchOptions } from '../index.js'; +export { Search, SearchField, SearchOptions } from '../index.js'; import '@quartz-community/types'; diff --git a/dist/components/index.js b/dist/components/index.js index 329405f..ef6040e 100644 --- a/dist/components/index.js +++ b/dist/components/index.js @@ -13,7 +13,11 @@ var en_US_default = { components: { search: { title: "Search", - searchBarPlaceholder: "Search for something" + searchBarPlaceholder: "Search for something...", + noResults: "No results.", + noResultsHint: "Try another search term?", + tagFilterHint: "Filter by tag", + noTagsFound: "No matching tags" } } }; @@ -23,7 +27,11 @@ var de_DE_default = { components: { search: { title: "Suche", - searchBarPlaceholder: "Suche nach etwas" + searchBarPlaceholder: "Suche nach etwas...", + noResults: "Keine Ergebnisse.", + noResultsHint: "Versuchen Sie einen anderen Suchbegriff?", + tagFilterHint: "Nach Tag filtern", + noTagsFound: "Keine passenden Tags" } } }; @@ -33,7 +41,11 @@ var es_ES_default = { components: { search: { title: "Buscar", - searchBarPlaceholder: "Buscar algo" + searchBarPlaceholder: "Buscar algo...", + noResults: "Sin resultados.", + noResultsHint: "\xBFIntentar con otro t\xE9rmino de b\xFAsqueda?", + tagFilterHint: "Filtrar por etiqueta", + noTagsFound: "No se encontraron etiquetas" } } }; @@ -43,7 +55,11 @@ var fr_FR_default = { components: { search: { title: "Recherche", - searchBarPlaceholder: "Rechercher quelque chose" + searchBarPlaceholder: "Rechercher quelque chose...", + noResults: "Aucun r\xE9sultat.", + noResultsHint: "Essayez un autre terme de recherche\xA0?", + tagFilterHint: "Filtrer par tag", + noTagsFound: "Aucun tag correspondant" } } }; @@ -53,7 +69,11 @@ var ja_JP_default = { components: { search: { title: "\u691C\u7D22", - searchBarPlaceholder: "\u4F55\u304B\u3092\u691C\u7D22" + searchBarPlaceholder: "\u4F55\u304B\u3092\u691C\u7D22...", + noResults: "\u7D50\u679C\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002", + noResultsHint: "\u5225\u306E\u691C\u7D22\u8A9E\u3092\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002", + tagFilterHint: "\u30BF\u30B0\u3067\u30D5\u30A3\u30EB\u30BF\u30FC", + noTagsFound: "\u4E00\u81F4\u3059\u308B\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093" } } }; @@ -63,7 +83,11 @@ var zh_CN_default = { components: { search: { title: "\u641C\u7D22", - searchBarPlaceholder: "\u641C\u7D22\u5185\u5BB9" + searchBarPlaceholder: "\u641C\u7D22\u5185\u5BB9...", + noResults: "\u6CA1\u6709\u7ED3\u679C\u3002", + noResultsHint: "\u8BF7\u5C1D\u8BD5\u5176\u4ED6\u641C\u7D22\u8BCD\u3002", + tagFilterHint: "\u6309\u6807\u7B7E\u7B5B\u9009", + noTagsFound: "\u6CA1\u6709\u5339\u914D\u7684\u6807\u7B7E" } } }; @@ -82,13 +106,14 @@ function i18n(locale) { } // src/components/styles/search.scss -var search_default = ".search {\n min-width: fit-content;\n max-width: 14rem;\n}\n\n@media all and (max-width: 800px) {\n .search {\n flex-grow: 0.3;\n }\n}\n.search > .search-button {\n background-color: transparent;\n border: 1px var(--lightgray) solid;\n border-radius: 4px;\n font-family: inherit;\n font-size: inherit;\n height: 2rem;\n padding: 0 1rem 0 0;\n display: flex;\n align-items: center;\n text-align: inherit;\n cursor: pointer;\n white-space: nowrap;\n width: 100%;\n}\n\n.search > .search-button > p {\n display: inline;\n color: var(--gray);\n text-wrap: unset;\n}\n\n.search > .search-button svg {\n cursor: pointer;\n width: 18px;\n min-width: 18px;\n margin: 0 0.5rem;\n}\n\n.search > .search-button svg .search-path {\n stroke: var(--darkgray);\n stroke-width: 1.5px;\n transition: stroke 0.5s ease;\n}\n\n.search > .search-container {\n position: fixed;\n contain: layout;\n z-index: 999;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n overflow-y: auto;\n display: none;\n backdrop-filter: blur(4px);\n}\n\n.search > .search-container.active {\n display: inline-block;\n}\n\n.search > .search-container > .search-space {\n width: 65%;\n margin-top: 12vh;\n margin-left: auto;\n margin-right: auto;\n}\n\n@media all and not (min-width: 1200px) {\n .search > .search-container > .search-space {\n width: 90%;\n }\n}\n.search > .search-container > .search-space > * {\n width: 100%;\n border-radius: 7px;\n background: var(--light);\n box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16);\n margin-bottom: 2em;\n}\n\n.search > .search-container > .search-space > input {\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n color: var(--dark);\n font-size: 1.1em;\n border: 1px solid var(--lightgray);\n}\n\n.search > .search-container > .search-space > input:focus {\n outline: none;\n}\n\n.search > .search-container > .search-space > .search-layout {\n display: none;\n flex-direction: row;\n border: 1px solid var(--lightgray);\n flex: 0 0 100%;\n box-sizing: border-box;\n}\n\n.search > .search-container > .search-space > .search-layout.display-results {\n display: flex;\n}\n\n.search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n flex: 0 0 min(30%, 450px);\n}\n\n@media all and not (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout[data-preview] .result-card > p.preview {\n display: none;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:first-child {\n border-right: 1px solid var(--lightgray);\n border-top-right-radius: unset;\n border-bottom-right-radius: unset;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:last-child {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n}\n.search > .search-container > .search-space > .search-layout > div {\n height: 63vh;\n border-radius: 5px;\n}\n\n@media all and (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout {\n flex-direction: column;\n }\n .search > .search-container > .search-space > .search-layout > .preview-container {\n display: none !important;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n width: 100%;\n height: auto;\n flex: 0 0 100%;\n }\n}\n.search > .search-container > .search-space > .search-layout .highlight {\n background: color-mix(in srgb, var(--tertiary) 60%, rgba(255, 255, 255, 0));\n border-radius: 5px;\n scroll-margin-top: 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container {\n flex-grow: 1;\n display: block;\n overflow: hidden;\n font-family: inherit;\n color: var(--dark);\n line-height: 1.5em;\n font-weight: 400;\n overflow-y: auto;\n padding: 0 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container .preview-inner {\n margin: 0 auto;\n width: 100%;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container a[role=anchor] {\n background-color: transparent;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container {\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card {\n overflow: hidden;\n padding: 1em;\n cursor: pointer;\n transition: background 0.2s ease;\n border-bottom: 1px solid var(--lightgray);\n width: 100%;\n display: block;\n box-sizing: border-box;\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n text-transform: none;\n text-align: left;\n outline: none;\n font-weight: inherit;\n text-decoration: none;\n color: var(--dark);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:hover,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:focus,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.focus {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > h3 {\n margin: 0;\n color: var(--secondary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags {\n margin-top: 0.45rem;\n margin-bottom: 0;\n padding: 0;\n list-style: none;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags > li {\n display: inline-block;\n margin-right: 0.3rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p {\n border-radius: 8px;\n background-color: var(--highlight);\n padding: 0.2rem 0.4rem;\n margin: 0;\n line-height: 1.4rem;\n font-weight: 700;\n color: var(--secondary);\n font-size: 0.85rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p.match-tag {\n color: var(--tertiary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > p {\n margin-bottom: 0;\n margin-top: 0.5em;\n font-size: 0.9em;\n color: var(--gray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.no-match {\n cursor: default;\n}"; +var search_default = ".search {\n min-width: fit-content;\n max-width: 14rem;\n}\n\n@media all and (max-width: 800px) {\n .search {\n flex-grow: 0.3;\n }\n}\n.search > .search-button {\n background-color: transparent;\n border: 1px var(--lightgray) solid;\n border-radius: 4px;\n font-family: inherit;\n font-size: inherit;\n height: 2rem;\n padding: 0 1rem 0 0;\n display: flex;\n align-items: center;\n text-align: inherit;\n cursor: pointer;\n white-space: nowrap;\n width: 100%;\n}\n\n.search > .search-button > p {\n display: inline;\n color: var(--gray);\n text-wrap: unset;\n}\n\n.search > .search-button svg {\n cursor: pointer;\n width: 18px;\n min-width: 18px;\n margin: 0 0.5rem;\n}\n\n.search > .search-button svg .search-path {\n stroke: var(--darkgray);\n stroke-width: 1.5px;\n transition: stroke 0.5s ease;\n}\n\n.search > .search-container {\n position: fixed;\n contain: layout;\n z-index: var(--search-z-index, 999);\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n overflow-y: auto;\n display: none;\n backdrop-filter: blur(4px);\n}\n\n.search > .search-container.active {\n display: inline-block;\n}\n\n.search > .search-container > .search-space {\n width: 65%;\n margin-top: 12vh;\n margin-left: auto;\n margin-right: auto;\n}\n\n@media all and not (min-width: 1200px) {\n .search > .search-container > .search-space {\n width: 90%;\n }\n}\n.search > .search-container > .search-space > *:not(.ghost-text):not(.tag-suggestions) {\n width: 100%;\n border-radius: 7px;\n background: var(--light);\n box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16);\n margin-bottom: 2em;\n}\n\n.search > .search-container > .search-space > input {\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n color: var(--dark);\n font-size: 1.1em;\n border: 1px solid var(--lightgray);\n}\n\n.search > .search-container > .search-space > input:focus {\n outline: none;\n}\n\n.search > .search-container > .search-space > .search-layout {\n display: none;\n flex-direction: row;\n border: 1px solid var(--lightgray);\n flex: 0 0 100%;\n box-sizing: border-box;\n}\n\n.search > .search-container > .search-space > .search-layout.display-results {\n display: flex;\n}\n\n.search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n flex: 0 0 min(30%, 450px);\n}\n\n@media all and not (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout[data-preview] .result-card > p.preview {\n display: none;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:first-child {\n border-right: 1px solid var(--lightgray);\n border-top-right-radius: unset;\n border-bottom-right-radius: unset;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:last-child {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n}\n.search > .search-container > .search-space > .search-layout > div {\n height: 63vh;\n border-radius: 5px;\n}\n\n@media all and (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout {\n flex-direction: column;\n }\n .search > .search-container > .search-space > .search-layout > .preview-container {\n display: none !important;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n width: 100%;\n height: auto;\n max-height: 60vh;\n flex: 0 0 100%;\n }\n}\n.search > .search-container > .search-space > .search-layout .highlight {\n background: color-mix(in srgb, var(--tertiary) 60%, rgba(255, 255, 255, 0));\n border-radius: 5px;\n scroll-margin-top: 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container {\n flex-grow: 1;\n display: block;\n overflow: hidden;\n font-family: inherit;\n color: var(--dark);\n line-height: 1.5em;\n font-weight: 400;\n overflow-y: auto;\n padding: 0 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container .preview-inner {\n margin: 0 auto;\n width: 100%;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container a[role=anchor] {\n background-color: transparent;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container {\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card {\n overflow: hidden;\n padding: 1em;\n cursor: pointer;\n transition: background 0.2s ease;\n border-bottom: 1px solid var(--lightgray);\n width: 100%;\n display: block;\n box-sizing: border-box;\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n text-transform: none;\n text-align: left;\n outline: none;\n font-weight: inherit;\n text-decoration: none;\n color: var(--dark);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:hover,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:focus,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.focus {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > h3 {\n margin: 0;\n color: var(--secondary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags {\n margin-top: 0.45rem;\n margin-bottom: 0;\n padding: 0;\n list-style: none;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags > li {\n display: inline-block;\n margin-right: 0.3rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p {\n border-radius: 8px;\n background-color: var(--highlight);\n padding: 0.2rem 0.4rem;\n margin: 0;\n line-height: 1.4rem;\n font-weight: 700;\n color: var(--secondary);\n font-size: 0.85rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p.match-tag {\n color: var(--tertiary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > p {\n margin-bottom: 0;\n margin-top: 0.5em;\n font-size: 0.9em;\n color: var(--gray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.no-match {\n cursor: default;\n}\n\n.search > .search-container > .search-space {\n position: relative;\n}\n\n.search > .search-container > .search-space > .ghost-text {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n font-size: 1.1em;\n color: var(--gray);\n opacity: 0.6;\n white-space: pre;\n overflow: hidden;\n height: auto;\n line-height: normal;\n border: 1px solid transparent;\n}\n\n.search > .search-container > .search-space > .tag-suggestions {\n position: absolute;\n top: calc(3.1em + 2px);\n left: 0;\n right: 0;\n z-index: calc(var(--search-z-index, 999) + 1);\n background: var(--light);\n border: 1px solid var(--lightgray);\n border-radius: 5px;\n box-shadow: 0 4px 12px rgba(27, 33, 48, 0.1), 0 2px 6px rgba(27, 33, 48, 0.08);\n max-height: 240px;\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item {\n padding: 0.4em 1em;\n cursor: pointer;\n font-family: var(--bodyFont);\n font-size: 0.95em;\n color: var(--dark);\n transition: background 0.15s ease;\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item:hover,\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item.active {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item.active {\n color: var(--secondary);\n font-weight: 600;\n}"; // src/components/scripts/search.inline.ts -var search_inline_default = `var hn=Object.create;var ge=Object.defineProperty;var cn=Object.getOwnPropertyDescriptor;var fn=Object.getOwnPropertyNames;var an=Object.getPrototypeOf,pn=Object.prototype.hasOwnProperty;var Dn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var gn=(t,e,n,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of fn(e))!pn.call(t,i)&&i!==n&&ge(t,i,{get:()=>e[i],enumerable:!(u=cn(e,i))||u.enumerable});return t};var dn=(t,e,n)=>(n=t!=null?hn(an(t)):{},gn(e||!t||!t.__esModule?ge(n,"default",{value:t,enumerable:!0}):n,t));var Ot=Dn(()=>{});var y;function z(t,e,n){let u=typeof n,i=typeof t;if(u!=="undefined"){if(i!=="undefined"){if(n){if(i==="function"&&u===i)return function(o){return t(n(o))};if(e=t.constructor,e===n.constructor){if(e===Array)return n.concat(t);if(e===Map){var r=new Map(n);for(var s of t)r.set(s[0],s[1]);return r}if(e===Set){s=new Set(n);for(r of t.values())s.add(r);return s}}}return t}return n}return i==="undefined"?e:t}function rt(t,e){return typeof t>"u"?e:t}function W(){return Object.create(null)}function H(t){return typeof t=="string"}function mt(t){return typeof t=="object"}function _t(t,e){if(H(e))t=t[e];else for(let n=0;t&&n1?this.addMatcher(t,e):(this.mapper||(this.mapper=new Map),this.mapper.set(t,e),this.cache&&tt(this),this)};y.addMatcher=function(t,e){return typeof t=="object"?this.addReplacer(t,e):t.length<2&&(this.dedupe||this.mapper)?this.addMapper(t,e):(this.matcher||(this.matcher=new Map),this.matcher.set(t,e),this.h+=(this.h?"|":"")+t,this.J=null,this.cache&&tt(this),this)};y.addReplacer=function(t,e){return typeof t=="string"?this.addMatcher(t,e):(this.replacer||(this.replacer=[]),this.replacer.push(t,e),this.cache&&tt(this),this)};y.encode=function(t,e){if(this.cache&&t.length<=this.H)if(this.F){if(this.B.has(t))return this.B.get(t)}else this.F=setTimeout(tt,50,this);this.normalize&&(typeof this.normalize=="function"?t=this.normalize(t):t=de?t.normalize("NFKD").replace(de,"").toLowerCase():t.toLowerCase()),this.prepare&&(t=this.prepare(t)),this.numeric&&t.length>3&&(t=t.replace(_n,"$1 $2").replace(yn,"$1 $2").replace(mn,"$1 "));let n=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer),u=[],i=W(),r,s,o=this.split||this.split===""?t.split(this.split):[t];for(let h=0,f,c;hthis.maxlength)){if(e){if(i[f])continue;i[f]=1}else{if(r===f)continue;r=f}if(n)u.push(f);else if(!this.filter||(typeof this.filter=="function"?this.filter(f):!this.filter.has(f))){if(this.cache&&f.length<=this.I)if(this.F){var l=this.D.get(f);if(l||l===""){l&&u.push(l);continue}}else this.F=setTimeout(tt,50,this);if(this.stemmer){this.K||(this.K=new RegExp("(?!^)("+this.A+")$"));let g;for(;g!==f&&f.length>2;)g=f,f=f.replace(this.K,a=>this.stemmer.get(a))}if(f&&(this.mapper||this.dedupe&&f.length>1)){l="";for(let g=0,a="",d,p;g1&&(this.J||(this.J=new RegExp("("+this.h+")","g")),f=f.replace(this.J,g=>this.matcher.get(g))),f&&this.replacer)for(l=0;f&&lthis.L&&(this.D.clear(),this.I=this.I/1.1|0)),f){if(f!==c)if(e){if(i[f])continue;i[f]=1}else{if(s===f)continue;s=f}u.push(f)}}}return this.finalize&&(u=this.finalize(u)||u),this.cache&&t.length<=this.H&&(this.B.set(t,u),this.B.size>this.L&&(this.B.clear(),this.H=this.H/1.1|0)),u};function tt(t){t.F=null,t.B.clear(),t.D.clear()}function Qt(t,e,n){n||(e||typeof t!="object"?typeof e=="object"&&(n=e,e=0):n=t),n&&(t=n.query||t,e=n.limit||e);let u=""+(e||0);n&&(u+=(n.offset||0)+!!n.context+!!n.suggest+(n.resolve!==!1)+(n.resolution||this.resolution)+(n.boost||0)),t=(""+t).toLowerCase(),this.cache||(this.cache=new it);let i=this.cache.get(t+u);if(!i){let r=n&&n.cache;r&&(n.cache=!1),i=this.search(t,e,n),r&&(n.cache=r),this.cache.set(t+u,i)}return i}function it(t){this.limit=t&&t!==!0?t:1e3,this.cache=new Map,this.h=""}it.prototype.set=function(t,e){this.cache.set(this.h=t,e),this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};it.prototype.get=function(t){let e=this.cache.get(t);return e&&this.h!==t&&(this.cache.delete(t),this.cache.set(this.h=t,e)),e};it.prototype.remove=function(t){for(let e of this.cache){let n=e[0];e[1].includes(t)&&this.cache.delete(n)}};it.prototype.clear=function(){this.cache.clear(),this.h=""};var Fe={normalize:!1,numeric:!1,dedupe:!1},wt={},$t=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]),me=new Map([["ae","a"],["oe","o"],["sh","s"],["kh","k"],["th","t"],["ph","f"],["pf","f"]]),_e=[/([^aeo])h(.)/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2",/(.)\\1+/g,"$1"],ye={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,\\u00DF:2,d:3,t:3,l:4,m:5,n:5,r:6},Xt={Exact:Fe,Default:wt,Normalize:wt,LatinBalance:{mapper:$t},LatinAdvanced:{mapper:$t,matcher:me,replacer:_e},LatinExtra:{mapper:$t,replacer:_e.concat([/(?!^)[aeo]/g,""]),matcher:me},LatinSoundex:{dedupe:!1,include:{letter:!0},finalize:function(t){for(let n=0;n=s.length)e-=s.length;else{e=s[u?"splice":"slice"](e,n);let o=e.length;if(o&&(i=i.length?i.concat(e):e,n-=o,u&&(t.length-=o),!n))break;e=0}return i}function ct(t){if(!this||this.constructor!==ct)return new ct(t);this.index=t?[t]:[],this.length=t?t.length:0;let e=this;return new Proxy([],{get(n,u){if(u==="length")return e.length;if(u==="push")return function(i){e.index[e.index.length-1].push(i),e.length++};if(u==="pop")return function(){if(e.length)return e.length--,e.index[e.index.length-1].pop()};if(u==="indexOf")return function(i){let r=0;for(let s=0,o,l;s=0)return r+l;r+=o.length}return-1};if(u==="includes")return function(i){for(let r=0;r32?(this.B=be,this.A=BigInt(t)):(this.B=ke,this.A=t)}N.prototype.get=function(t){let e=this.index[this.B(t)];return e&&e.get(t)};N.prototype.set=function(t,e){var n=this.B(t);let u=this.index[n];u?(n=u.size,u.set(t,e),(n-=u.size)&&this.size++):(this.index[n]=u=new Map([[t,e]]),this.h.push(u),this.size++)};function O(t=8){if(!this||this.constructor!==O)return new O(t);this.index=W(),this.h=[],this.size=0,t>32?(this.B=be,this.A=BigInt(t)):(this.B=ke,this.A=t)}O.prototype.add=function(t){var e=this.B(t);let n=this.index[e];n?(e=n.size,n.add(t),(e-=n.size)&&this.size++):(this.index[e]=n=new Set([t]),this.h.push(n),this.size++)};y=N.prototype;y.has=O.prototype.has=function(t){let e=this.index[this.B(t)];return e&&e.has(t)};y.delete=O.prototype.delete=function(t){let e=this.index[this.B(t)];e&&e.delete(t)&&this.size--};y.clear=O.prototype.clear=function(){this.index=W(),this.h=[],this.size=0};y.values=O.prototype.values=function*(){for(let t=0;t=this.priority*this.priority*3):(Ut=setTimeout(An,0),Ae=Date.now()),Bt){let r=this;return new Promise(s=>{setTimeout(function(){s(r[t+"Async"].apply(r,e))},0)})}let i=this[t].apply(this,e);return n=i.then?i:new Promise(r=>r(i)),u&&n.then(u),n}}var V=0;function et(t={},e){function n(o){function l(h){h=h.data||h;let f=h.id,c=f&&r.h[f];c&&(c(h.msg),delete r.h[f])}if(this.worker=o,this.h=W(),this.worker)return i?this.worker.on("message",l):this.worker.onmessage=l,t.config?new Promise(function(h){V>1e9&&(V=0),r.h[++V]=function(){h(r)},r.worker.postMessage({id:V,task:"init",factory:u,options:t})}):(this.priority=t.priority||4,this.encoder=e||null,this.worker.postMessage({task:"init",factory:u,options:t}),this)}if(!this||this.constructor!==et)return new et(t);let u=typeof self<"u"?self._factory:typeof window<"u"?window._factory:null;u&&(u=u.toString());let i=typeof window>"u",r=this,s=En(u,i,t.worker);return s.then?s.then(function(o){return n.call(r,o)}):n.call(this,s)}Z("add");Z("append");Z("search");Z("update");Z("remove");Z("clear");Z("export");Z("import");et.prototype.searchCache=Qt;Yt(et.prototype);function Z(t){et.prototype[t]=function(){let e=this,n=[].slice.call(arguments);var u=n[n.length-1];let i;return typeof u=="function"&&(i=u,n.pop()),u=new Promise(function(r){t==="export"&&typeof n[0]=="function"&&(n[0]=null),V>1e9&&(V=0),e.h[++V]=r,e.worker.postMessage({task:t,id:V,args:n})}),i?(u.then(i),this):u}}function En(t,e,n){return e?typeof module<"u"?new(Ot()).Worker(__dirname+"/worker/node.js"):Promise.resolve().then(()=>dn(Ot(),1)).then(function(u){return new u.Worker(import.meta.dirname+"/node/node.mjs")}):t?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+Cn.toString()],{type:"text/javascript"}))):new window.Worker(typeof n=="string"?n:import.meta.url.replace("/worker.js","/worker/worker.js").replace("flexsearch.bundle.module.min.js","module/worker/worker.js").replace("flexsearch.bundle.module.min.mjs","module/worker/worker.js"),{type:"module"})}nt.prototype.add=function(t,e,n){if(mt(t)&&(e=t,t=_t(e,this.key)),e&&(t||t===0)){if(!n&&this.reg.has(t))return this.update(t,e);for(let o=0,l;oe?t.slice(n,n+e):t,u?lt.call(this,t):t;let i=[];for(let r=0,s,o;r=o){n-=o;continue}s=s.slice(n,n+e),o=s.length,n=0}if(o>e&&(s=s.slice(0,e),o=e),!i.length&&o>=e)return u?lt.call(this,s):s;if(i.push(s),e-=o,!e)break}return i=i.length>1?[].concat.apply([],i):i[0],u?lt.call(this,i):i}function jt(t,e,n,u){var i=u[0];if(i[0]&&i[0].query)return t[e].apply(t,i);if(!(e!=="and"&&e!=="not"||t.result.length||t.await||i.suggest))return u.length>1&&(i=u[u.length-1]),(u=i.resolve)?t.await||t.result:t;let r=[],s=0,o=0,l,h,f,c,g;for(e=0;e1&&(n=n[e].apply(n,t.slice(1))),n}T.prototype.or=function(){return jt(this,"or",wn,arguments)};function wn(t,e,n,u,i,r,s){return t.length&&(this.result.length&&t.push(this.result),t.length<2?this.result=t[0]:(this.result=Se(t,e,n,!1,this.h),n=0)),i&&(this.await=null),i?this.resolve(e,n,u,s):this}T.prototype.and=function(){return jt(this,"and",xn,arguments)};function xn(t,e,n,u,i,r,s){if(!r&&!this.result.length)return i?this.result:this;let o;if(t.length)if(this.result.length&&t.unshift(this.result),t.length<2)this.result=t[0];else{let l=0;for(let h=0,f,c;h1?C.join(" "):C[0];let x;if(C&&v){for(var E=v.length,_=(G.split?v.replace(G.split,""):v).length-C.length,w="",M=0,S=0;S-1&&(w=(L?v.substring(0,L):"")+s+v.substring(L,L+j)+o+(L+j=l)break}if(b=Et.length*(r.length-2),a||d||l&&D.length-b>l)if(b=l+b-g*2,k=B-A,a>0&&(k+=a),d>0&&(k+=d),k<=b)m=a?A-(a>0?a:0):A-((b-k)/2|0),F=d?B+(d>0?d:0):m+b,h||(m>0&&D.charAt(m)!==" "&&D.charAt(m-1)!==" "&&(m=D.indexOf(" ",m),m<0&&(m=0)),F=F.length-1){if(R>=F.length){k[x+1]=1,R>=m.length&&(b[x+1]=1);continue}E-=g}if(D=F[R].text,j=d&&C[x])if(j>0){if(D.length>j)if(k[x+1]=1,h)D=D.substring(0,j);else continue;(j-=D.length)||(j=-1),C[x]=j}else{k[x+1]=1;continue}if(E+D.length+1<=l)D=" "+D,B[x]+=D;else if(h)I=l-E-1,I>0&&(D=" "+D.substring(0,I),B[x]+=D),k[x+1]=1;else{k[x+1]=1;continue}}else{if(k[x])continue;if(R-=_,A[R]){E-=g,k[x]=1,b[x]=1;continue}if(R<=0){if(R<0){k[x]=1,b[x]=1;continue}E-=g}if(D=F[R].text,j=a&&v[x])if(j>0){if(D.length>j)if(k[x]=1,h)D=D.substring(D.length-j);else continue;(j-=D.length)||(j=-1),v[x]=j}else{k[x]=1;continue}if(E+D.length+1<=l)D+=" ",B[x]=D+B[x];else if(h)I=D.length+1-(l-E),I>=0&&I=m.length-1||R1?Se(l,n,u,s,r):(l=l[0])&&n&&l.length>n||u?l.slice(u,n+u):l;else{if(tn||u)&&(l=l.slice(u,n+u));else{i=[];for(let c=0,g;cu)u-=g.length;else if((n&&g.length>n||u)&&(g=g.slice(u,n+u),n-=g.length,u&&(u-=g.length)),i.push(g),!n)break}l=i}}return l}function Se(t,e,n,u,i){let r=[],s=W(),o;var l=t.length;let h;if(u){for(i=l-1;i>=0;i--)if(h=(u=t[i])&&u.length){for(l=0;l=0;f--){c=t[f];for(let a=0;a1?bt(i,1,0,0,l,h):i[0],v)})}return a?i:new T(i.length>1?bt(i,1,0,0,l,h):i[0],this)}}a||s||!(c=c||this.field)||(H(c)?s=c:(c.constructor===Array&&c.length===1&&(c=c[0]),s=c.field||c.index)),c&&c.constructor!==Array&&(c=[c])}c||(c=this.field);let b;F=(this.worker||this.db)&&!u&&[];for(let v=0,C,E,_;v"u"&&(this.db?F.push(p=this.index.get(this.field[0]).db.enrich(p)):p=lt.call(this,p)),s)return a?d?kt(t,p,this.index,s,d):p:new T(p,this);i[m]={field:r[m],result:p}}if(D&&this.db&&F.length){let v=this;return Promise.all(F).then(function(C){for(let E=0;E0&&((n&&e>n||u)&&(t=t.slice(u,u+n)),i&&(t=lt.call(this,t))),t):[]):[]}function lt(t){if(!this||!this.store)return t;if(this.db)return this.index.get(this.field[0]).db.enrich(t);let e=Array(t.length);for(let n=0,u;n1?n:n[0]}y.append=function(t,e){return this.add(t,e,!0)};y.update=function(t,e){return this.remove(t).add(t,e)};y.remove=function(t){mt(t)&&(t=_t(t,this.key));for(var e of this.index.values())e.remove(t,!0);if(this.reg.has(t)){if(this.tag&&!this.fastupdate)for(let n of this.tag.values())for(let u of n){e=u[0];let i=u[1],r=i.indexOf(t);r>-1&&(i.length>1?i.splice(r,1):n.delete(e))}this.store&&this.store.delete(t),this.reg.delete(t)}return this.cache&&this.cache.remove(t),this};y.clear=function(){let t=[];for(let e of this.index.values()){let n=e.clear();n.then&&t.push(n)}if(this.tag)for(let e of this.tag.values())e.clear();return this.store&&this.store.clear(),this.cache&&this.cache.clear(),t.length?Promise.all(t):this};y.contain=function(t){return this.db?this.index.get(this.field[0]).db.has(t):this.reg.has(t)};y.cleanup=function(){for(let t of this.index.values())t.cleanup();return this};y.get=function(t){return this.db?this.index.get(this.field[0]).db.enrich(t).then(function(e){return e[0]&&e[0].doc||null}):this.store.get(t)||null};y.set=function(t,e){return typeof t=="object"&&(e=t,t=_t(e,this.key)),this.store.set(t,e),this};y.searchCache=Qt;y.export=Mn;y.import=Tn;Yt(nt.prototype);function te(t,e=0){let n=[],u=[];e&&(e=25e4/e*5e3|0);for(let i of t.entries())u.push(i),u.length===e&&(n.push(u),u=[]);return u.length&&n.push(u),n}function ee(t,e){e||(e=new Map);for(let n=0,u;n2?n[0]:"";if(n=n.length>2?n[2]:n[1],this.worker&&u)return this.index.get(u).import(t);if(e){if(typeof e=="string"&&(e=JSON.parse(e)),u)return this.index.get(u).import(n,e);switch(n){case"reg":this.fastupdate=!1,this.reg=je(e,this.reg);for(let i=0,r;i=0&&i.splice(s,1)}}else yt(this.map,t),this.depth&&yt(this.ctx,t);e||this.reg.delete(t)}return this.db&&(this.commit_task.push({del:t}),this.M&&Pe(this)),this.cache&&this.cache.remove(t),this};function yt(t,e){let n=0;var u=typeof e>"u";if(t.constructor===Array){for(let i=0,r,s,o;i=0){if(r.length>1)return r.splice(s,1),1;if(delete t[i],n)return 1;o=1}else{if(o)return 1;n++}}}else for(let i of t.entries())u=i[0],yt(i[1],e)?n++:t.delete(u);return n}var Ln={memory:{resolution:1},performance:{resolution:3,fastupdate:!0,context:{depth:1,resolution:1}},match:{tokenize:"forward"},score:{resolution:9,context:{depth:2,resolution:3}}};$.prototype.add=function(t,e,n,u){if(e&&(t||t===0)){if(!u&&!n&&this.reg.has(t))return this.update(t,e);u=this.depth,e=this.encoder.encode(e,!u);let h=e.length;if(h){let f=W(),c=W(),g=this.resolution;for(let a=0;a2){for(let p=1,D,m,F,A;p2){for(let p=0,D;pp;r--){s=d.substring(p,r),D=this.rtl?i-1-p:p;var o=this.score?this.score(e,d,a,s,D):vt(g,h,a,i,D);K(this,c,s,o,t,n)}break}case"bidirectional":case"reverse":if(i>1){for(o=i-1;o>0;o--){s=d[this.rtl?i-1-o:o]+s;var l=this.score?this.score(e,d,a,s,o):vt(g,h,a,i,o);K(this,c,s,l,t,n)}s=""}case"forward":if(i>1){for(o=0;o1&&as;let p=this.score?this.score(e,s,a,d,o-1):vt(i+(h/2>i?0:1),h,a,r-1,o-1);K(this,f,l?s:d,p,t,n,l?d:s)}}}}this.fastupdate||this.reg.add(t)}}return this.db&&(this.commit_task.push(n?{ins:t}:{del:t}),this.M&&Pe(this)),this};function K(t,e,n,u,i,r,s){let o,l;if(!(o=e[n])||s&&!o[s]){if(s?(e=o||(e[n]=W()),e[s]=1,l=t.ctx,(o=l.get(s))?l=o:l.set(s,l=t.keystore?new N(t.keystore):new Map)):(l=t.map,e[n]=1),(o=l.get(n))?l=o:l.set(n,l=o=[]),r){for(let h=0,f;h1?e+(u||0)<=t?n+(i||0):(t-1)/(e+(u||0))*(n+(i||0))+1|0:0}$.prototype.search=function(t,e,n){if(n||(e||typeof t!="object"?typeof e=="object"&&(n=e,e=0):(n=t,t="")),n&&n.cache)return n.cache=!1,t=this.searchCache(t,e,n),n.cache=!0,t;let u=[],i,r,s,o=0,l,h,f,c,g;n&&(t=n.query||t,e=n.limit||e,o=n.offset||0,r=n.context,s=n.suggest,g=(l=n.resolve)&&n.enrich,f=n.boost,c=n.resolution,h=this.db&&n.tag),typeof l>"u"&&(l=this.resolve),r=this.depth&&r!==!1;let a=this.encoder.encode(t,!r);if(i=a.length,e=e||(l?100:0),i===1)return ve.call(this,a[0],"",e,o,l,g,h);if(i===2&&r&&!s)return ve.call(this,a[1],a[0],e,o,l,g,h);let d=W(),p=0,D;if(r&&(D=a[0],p=1),c||c===0||(c=D?this.N:this.resolution),this.db){if(this.db.search&&(n=this.db.search(this,a,e,o,s,l,g,h),n!==!1))return n;let m=this;return(async function(){for(let F,A;p1)l=bt(t,e,n,u,i,r,s);else if(o===1)return s?Gt.call(null,t[0],n,u):new T(t[0],this);return s?l:new T(l,this)}function ve(t,e,n,u,i,r,s){return t=Zt(this,t,e,n,u,i,r,s),this.db?t.then(function(o){return i?o||[]:new T(o,this)}):t&&t.length?i?Gt.call(this,t,n,u):new T(t,this):i?[]:new T([],this)}function Be(t,e,n,u){let i=[];if(t&&t.length){if(t.length<=u){e.push(t);return}for(let r=0,s;rn)&&(l=n,n=e,e=l),t.db?t.db.get(e,n,u,i,r,s,o):(t=n?(t=t.ctx.get(n))&&t.get(e):t.map.get(e),t)}function $(t,e){if(!this||this.constructor!==$)return new $(t);if(t){var n=H(t)?t:t.preset;n&&(t=Object.assign({},Ln[n],t))}else t={};n=t.context;let u=n===!0?{depth:1}:n||{},i=H(t.encoder)?Xt[t.encoder]:t.encode||t.encoder||{};this.encoder=i.encode?i:typeof i=="object"?new ht(i):{encode:i},this.resolution=t.resolution||9,this.tokenize=n=(n=t.tokenize)&&n!=="default"&&n!=="exact"&&n||"strict",this.depth=n==="strict"&&u.depth||0,this.bidirectional=u.bidirectional!==!1,this.fastupdate=!!t.fastupdate,this.score=t.score||null,(n=t.keystore||0)&&(this.keystore=n),this.map=n?new N(n):new Map,this.ctx=n?new N(n):new Map,this.reg=e||(this.fastupdate?n?new N(n):new Map:n?new O(n):new Set),this.N=u.resolution||3,this.rtl=i.rtl||t.rtl||!1,this.cache=(n=t.cache||null)&&new it(n),this.resolve=t.resolve!==!1,(n=t.db)&&(this.db=this.mount(n)),this.M=t.commit!==!1,this.commit_task=[],this.commit_timer=null,this.priority=t.priority||4}y=$.prototype;y.mount=function(t){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),t.mount(this)};y.commit=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.commit(this)};y.destroy=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.destroy()};function Pe(t){t.commit_timer||(t.commit_timer=setTimeout(function(){t.commit_timer=null,t.db.commit(t)},1))}y.clear=function(){return this.map.clear(),this.ctx.clear(),this.reg.clear(),this.cache&&this.cache.clear(),this.db?(this.commit_timer&&clearTimeout(this.commit_timer),this.commit_timer=null,this.commit_task=[],this.db.clear()):this};y.append=function(t,e){return this.add(t,e,!0)};y.contain=function(t){return this.db?this.db.has(t):this.reg.has(t)};y.update=function(t,e){let n=this,u=this.remove(t);return u&&u.then?u.then(()=>n.add(t,e)):this.add(t,e)};y.cleanup=function(){return this.fastupdate?(yt(this.map),this.depth&&yt(this.ctx),this):this};y.searchCache=Qt;y.export=function(t,e,n=0,u=0){let i,r;switch(u){case 0:i="reg",r=Le(this.reg);break;case 1:i="cfg",r=null;break;case 2:i="map",r=te(this.map,this.reg.size);break;case 3:i="ctx",r=Me(this.ctx,this.reg.size);break;default:return}return Mt.call(this,t,e,i,r,n,u)};y.import=function(t,e){if(e)switch(typeof e=="string"&&(e=JSON.parse(e)),t=t.split("."),t[t.length-1]==="json"&&t.pop(),t.length===3&&t.shift(),t=t.length>1?t[1]:t[0],t){case"reg":this.fastupdate=!1,this.reg=je(e,this.reg);break;case"map":this.map=ee(e,this.map);break;case"ctx":this.ctx=Te(e,this.ctx)}};y.serialize=function(t=!0){let e="",n="",u="";if(this.reg.size){let r;for(var i of this.reg.keys())r||(r=typeof i),e+=(e?",":"")+(r==="string"?'"'+i+'"':i);e="index.reg=new Set(["+e+"]);",n=we(this.map,r),n="index.map=new Map(["+n+"]);";for(let s of this.ctx.entries()){i=s[0];let o=we(s[1],r);o="new Map(["+o+"])",o='["'+i+'",'+o+"]",u+=(u?",":"")+o}u="index.ctx=new Map(["+u+"]);"}return t?"function inject(index){"+e+n+u+"}":e+n+u};Yt($.prototype);var Ie=typeof window<"u"&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Tt=["map","ctx","tag","reg","cfg"],q=W();function Lt(t,e={}){if(!this||this.constructor!==Lt)return new Lt(t,e);typeof t=="object"&&(e=t,t=t.name),t||console.info("Default storage space was used, because a name was not passed."),this.id="flexsearch"+(t?":"+t.toLowerCase().replace(/[^a-z0-9_\\-]/g,""):""),this.field=e.field?e.field.toLowerCase().replace(/[^a-z0-9_\\-]/g,""):"",this.type=e.type,this.fastupdate=this.support_tag_search=!1,this.db=null,this.h={}}y=Lt.prototype;y.mount=function(t){return t.index?t.mount(this):(t.db=this,this.open())};y.open=function(){if(this.db)return this.db;let t=this;navigator.storage&&navigator.storage.persist&&navigator.storage.persist(),q[t.id]||(q[t.id]=[]),q[t.id].push(t.field);let e=Ie.open(t.id,1);return e.onupgradeneeded=function(){let n=t.db=this.result;for(let u=0,i;u=f.length){u-=f.length;continue}let c=n?u+Math.min(f.length-u,n):f.length;for(let g=u;g=r.length?[]:!e&&!n?r:(r=r.slice(n,n+e),u?i.enrich(r):r)})};y.enrich=function(t){typeof t!="object"&&(t=[t]);let e=this.db.transaction("reg","readonly").objectStore("reg"),n=[];for(let u=0;u=0)if(i=1,o.length>1)o.splice(h,1);else{u[s]=[];break}r+=o.length}if(n)break}r?i&&t.update(u):t.delete(),t.continue()}y.remove=function(t){return typeof t!="object"&&(t=[t]),Promise.all([this.transaction("map","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t)}}),this.transaction("ctx","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t)}}),this.transaction("tag","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t,!0)}}),this.transaction("reg","readwrite",function(e){for(let n=0;n{t.onsuccess=t.oncomplete=function(){e&&e(this.result),e=null,n(this.result)},t.onerror=t.onblocked=u,t=null})}var We={Index:$,Charset:Xt,Encoder:ht,Document:nt,Worker:et,Resolver:T,IndexedDB:Lt,Language:{}};var hi=Object.hasOwnProperty;var Oe,P,$e,jn,X,Re,Ke,Ue,Je,se,ie,ue,Pn,Ve={},Wt=[],In=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,zt=Array.isArray;function U(t,e){for(var n in e)t[n]=e[n];return t}function oe(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function ne(t,e,n,u,i){var r={type:t,props:e,key:n,ref:u,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++$e,__i:-1,__u:0};return i==null&&P.vnode!=null&&P.vnode(r),r}function at(t){return t.children}function It(t,e){this.props=t,this.context=e}function ft(t,e){if(e==null)return t.__?ft(t.__,t.__i+1):null;for(var n;ee&&X.sort(Ue),t=X.shift(),e=X.length,Wn(t)}finally{X.length=Rt.__r=0}}function Qe(t,e,n,u,i,r,s,o,l,h,f){var c,g,a,d,p,D,m,F=u&&u.__k||Wt,A=e.length;for(l=Rn(n,e,F,l,A),c=0;c0?s=t.__k[r]=ne(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):t.__k[r]=s,l=r+g,s.__=t,s.__b=t.__b+1,o=null,(h=s.__i=zn(s,n,l,c))!=-1&&(c--,(o=n[h])&&(o.__u|=2)),o==null||o.__v==null?(h==-1&&(i>f?g--:il?g--:g++,s.__u|=4))):t.__k[r]=null;if(c)for(r=0;r(f?1:0)){for(i=n-1,r=n+1;i>=0||r=0?i--:r++])!=null&&(2&h.__u)==0&&o==h.key&&l==h.type)return s}return-1}function He(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||In.test(e)?n:n+"px"}function Pt(t,e,n,u,i){var r,s;t:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof u=="string"&&(t.style.cssText=u=""),u)for(e in u)n&&e in n||He(t.style,e,"");if(n)for(e in n)u&&n[e]==u[e]||He(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")r=e!=(e=e.replace(Je,"$1")),s=e.toLowerCase(),e=s in t||e=="onFocusOut"||e=="onFocusIn"?s.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+r]=n,n?u?n.u=u.u:(n.u=se,t.addEventListener(e,r?ue:ie,r)):t.removeEventListener(e,r?ue:ie,r);else{if(i=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break t}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function Ne(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=se++;else if(e.t0?t:zt(t)?t.map(Ge):U({},t)}function Nn(t,e,n,u,i,r,s,o,l){var h,f,c,g,a,d,p,D=n.props||Ve,m=e.props,F=e.type;if(F=="svg"?i="http://www.w3.org/2000/svg":F=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),r!=null){for(h=0;h"u"?"":document.body?.dataset?.basepath??""}function he(t,e){let n=e??Kn(),u=t.startsWith("/")?t:"/"+t;return n+u}function Y(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function tn(t,e){if(!t)return()=>{};let n=i=>{t.classList.contains("active")&&i.target===t&&(i.preventDefault(),i.stopPropagation(),e())},u=i=>{t.classList.contains("active")&&i.key==="Escape"&&(i.preventDefault(),e())};return t.addEventListener("click",n),document.addEventListener("keydown",u),()=>{t.removeEventListener("click",n),document.removeEventListener("keydown",u)}}function en(t,e){let n=t.querySelectorAll("[src], [href]");for(let u of Array.from(n)){let i=u.hasAttribute("href")?"href":"src",r=u.getAttribute(i);if(r&&!(r.startsWith("http://")||r.startsWith("https://")||r.startsWith("mailto:")||r.startsWith("tel:")||r.startsWith("#")||r.startsWith("/")||r.startsWith("data:")))try{let s=new URL(r,e).toString();u.setAttribute(i,s)}catch{continue}}}var ut="basic",J="",ce=8,Un=5,Ht=30,Jn=t=>{let e=[],n=-1,u=-1,i=t.toLowerCase(),r=0;for(let s of i){let o=s.codePointAt(0);o>=12352&&o<=12447||o>=12448&&o<=12543||o>=19968&&o<=40959||o>=44032&&o<=55215||o>=131072&&o<=173791?(n!==-1&&(e.push(i.slice(n,u)),n=-1),e.push(s)):o===32||o===9||o===10||o===13?n!==-1&&(e.push(i.slice(n,u)),n=-1):(n===-1&&(n=r),u=r+1),r+=s.length}return n!==-1&&e.push(i.slice(n)),e},ae=new We.Document({encode:Jn,document:{id:"id",tag:"tags",index:[{field:"title",tokenize:"forward"},{field:"content",tokenize:"forward"},{field:"tags",tokenize:"forward"}]}}),pt=null,rn=[],fe=new Map,sn=new DOMParser;async function Vn(t){if(fe.has(t))return fe.get(t);let e=new URL(he(t),window.location.origin).toString(),n=await fetch(e).then(u=>u.text()).then(u=>{let i=sn.parseFromString(u??"","text/html");return en(i,e),Array.from(i.getElementsByClassName("popover-hint"))});return fe.set(t,n),n}var pe=[];function Ct(t){pe.push(t)}function Zn(){pe.forEach(t=>t()),pe.length=0}async function Qn(){let t=document.querySelectorAll(".search");for(let e of Array.from(t)){let n=e.querySelector(".search-container"),u=e.querySelector(".search-button"),i=e.querySelector(".search-bar"),r=e.querySelector(".search-layout");if(!n||!u||!i||!r)continue;let s=r.getAttribute("data-preview")==="true",o=r.querySelector(".results-container");o||(o=document.createElement("div"),o.className="results-container",r.appendChild(o));let l=r.querySelector(".preview-container");s&&!l&&(l=document.createElement("div"),l.className="preview-container",r.appendChild(l));let h=null,f=0,c=()=>{console.log("[Search] hideSearch called, stack:",new Error().stack),n.classList.remove("active"),i.value="",Y(o),l&&Y(l),r.classList.remove("display-results"),ut="basic",h=null},g=_=>{console.log("[Search] showSearch called, type:",_),ut=_,n.classList.add("active"),console.log("[Search] container.classList after add:",n.classList.toString()),i.focus(),console.log("[Search] focus called, container active:",n.classList.contains("active"))},a=async _=>{if(Y(o),_.length===0)o.innerHTML='

No results.

Try another search term?

',h=null,l&&Y(l);else for(let w of _){let M=w.tags.length>0?'
    '+w.tags.join("")+"
":"",S=document.createElement("a");S.className="result-card",S.id=w.slug,S.href=he(w.slug),S.innerHTML='

'+w.title+"

"+M+'

'+w.content+"

",S.addEventListener("click",L=>{L.altKey||L.ctrlKey||L.metaKey||L.shiftKey||c()}),S.addEventListener("mouseenter",()=>{m(S)}),o.appendChild(S)}},d=()=>Array.from(o.querySelectorAll(".result-card:not(.no-match)")),p=()=>ut==="tags"?J.substring(1).trim():J,D=async _=>{if(!l||(Y(l),!_))return;let w=_.id,M=++f,S=await Vn(w);if(M!==f)return;let L=p();for(let j of S){let I=j.cloneNode(!0);L.trim()!==""&&(I.innerHTML=Xn(L,I)),l.appendChild(I)}},m=_=>{h&&h.classList.remove("focus"),h=_,h&&h.classList.add("focus"),D(h)},F=_=>{let w=d();if(w.length===0){m(null);return}let M=Math.min(Math.max(_,0),w.length-1);m(w[M]??null)},A=()=>{let _=d();if(_.length===0)return;let w=h?_.indexOf(h):-1;F(w+1)},B=()=>{let _=d();if(_.length===0)return;let w=h?_.indexOf(h):_.length;F(w-1)},b=async _=>{if(J=_.target.value,r.classList.toggle("display-results",J!==""),ut=J.startsWith("#")?"tags":"basic",J===""){Y(o),l&&Y(l),h=null;return}let w=J,M;if(ut==="tags"){let I=J.substring(1).trim();M=await ae.searchAsync({query:I,limit:ce,index:["tags"]})}else M=await ae.searchAsync({query:w,limit:ce,index:["title","content"]});let S=new Set;for(let I of M)if(I&&I.result)for(let Dt of I.result)S.add(Dt);let L=[];S.forEach(I=>{L.push(Gn(J,I))}),await a(L.slice(0,ce));let j=d();m(j[0]??null)},k=_=>{console.log("[Search] Button click event, target:",_.target,"currentTarget:",_.currentTarget),_.stopPropagation(),g("basic")};u.addEventListener("click",k),Ct(()=>u.removeEventListener("click",k)),i.addEventListener("input",b),Ct(()=>i.removeEventListener("input",b));let v=_=>{if(_.key==="ArrowUp"||_.shiftKey&&_.key==="Tab"){_.preventDefault(),B();return}if(_.key==="ArrowDown"||_.key==="Tab"){_.preventDefault(),A();return}if(_.key==="Enter"){let w=h;w instanceof HTMLAnchorElement&&(c(),window.location.href=w.href)}};i.addEventListener("keydown",v),Ct(()=>i.removeEventListener("keydown",v));let C=_=>{_.key==="k"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey?(_.preventDefault(),n.classList.contains("active")?c():g("basic")):_.shiftKey&&(_.ctrlKey||_.metaKey)&&_.key.toLowerCase()==="k"&&(_.preventDefault(),g("tags"),i.value="#")};document.addEventListener("keydown",C),Ct(()=>document.removeEventListener("keydown",C));let E=tn(n,c);Ct(E)}}function on(t){let e=t.split(/\\s+/).filter(u=>u.trim()!==""),n=e.length;if(n>1)for(let u=1;ui.length-u.length)}function Xn(t,e){let n=on(t).filter(h=>h.trim()!=="");if(n.length===0)return e.innerHTML;let u=sn.parseFromString(e.innerHTML,"text/html"),i=n.map(h=>h.replace(/[.*+?^\${}()|[\\]\\\\]/g,"\\\\$&")).join("|");if(i==="")return e.innerHTML;let r=new RegExp(i,"gi"),s=u.createTreeWalker(u.body,NodeFilter.SHOW_TEXT),o=[],l=s.nextNode();for(;l;)o.push(l),l=s.nextNode();for(let h of o){let f=h.nodeValue??"";if(r.lastIndex=0,!r.test(f))continue;r.lastIndex=0;let c=u.createDocumentFragment(),g=0,a;for(;(a=r.exec(f))!==null;){a.index>g&&c.appendChild(u.createTextNode(f.slice(g,a.index)));let d=u.createElement("span");d.className="highlight",d.textContent=a[0],c.appendChild(d),g=a.index+a[0].length}gl!==""),r=0,s=i.length-1;if(n){let l=g=>u.some(a=>g.toLowerCase().startsWith(a.toLowerCase())),h=i.map(l),f=0,c=0;for(let g=0;gp+(D?1:0),0);d>=f&&(f=d,c=g)}r=Math.max(c-Ht/2,0),s=Math.min(r+Ht,i.length-1)}let o=i.map(l=>{let h=l;for(let f of u)if(l.toLowerCase().includes(f.toLowerCase())){let c=new RegExp(f.replace(/[.*+?^\${}()|[\\]\\\\]/g,"\\\\$&"),"gi");h=l.replace(c,g=>\`\${g}\`);break}return h}).join(" ");return(r===0?"":"...")+o+(s===i.length-1?"":"...")}function Yn(t,e){return!e||ut!=="tags"?[]:e.map(n=>n.toLowerCase().includes(t.toLowerCase())?\`
  • #\${n}

  • \`:\`
  • #\${n}

  • \`).slice(0,Un)}function Gn(t,e){let n=rn[e];if(!n||!pt)return{id:e,slug:"",title:"",content:"",tags:[]};let u=pt[n];return u?{id:e,slug:n,title:ut==="tags"?u.title:nn(t,u.title||""),content:nn(t,u.content||"",!0),tags:Yn(t.substring(1),u.tags)}:{id:e,slug:n,title:"",content:"",tags:[]}}async function qn(){if(!pt)return;let t=0;for(let e of Object.keys(pt)){let n=pt[e];n&&(rn[t]=e,await ae.addAsync(t,{id:t,slug:e,title:n.title||"",content:n.content||"",tags:n.tags||[]}),t++)}}async function ti(){return await fetchData}var un=!1;async function ei(){un||(pt=await ti(),await qn(),un=!0)}async function ln(){Zn(),await ei(),await Qn()}document.addEventListener("nav",ln);document.addEventListener("render",ln); +var search_inline_default = `var Ln=Object.create;var Me=Object.defineProperty;var jn=Object.getOwnPropertyDescriptor;var In=Object.getOwnPropertyNames;var Pn=Object.getPrototypeOf,Hn=Object.prototype.hasOwnProperty;var Wn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Rn=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of In(e))!Hn.call(t,i)&&i!==n&&Me(t,i,{get:()=>e[i],enumerable:!(r=jn(e,i))||r.enumerable});return t};var Nn=(t,e,n)=>(n=t!=null?Ln(Pn(t)):{},Rn(e||!t||!t.__esModule?Me(n,"default",{value:t,enumerable:!0}):n,t));var ee=Wn(()=>{});var y;function z(t,e,n){let r=typeof n,i=typeof t;if(r!=="undefined"){if(i!=="undefined"){if(n){if(i==="function"&&r===i)return function(o){return t(n(o))};if(e=t.constructor,e===n.constructor){if(e===Array)return n.concat(t);if(e===Map){var s=new Map(n);for(var u of t)s.set(u[0],u[1]);return s}if(e===Set){u=new Set(n);for(s of t.values())u.add(s);return u}}}return t}return n}return i==="undefined"?e:t}function _t(t,e){return typeof t>"u"?e:t}function W(){return Object.create(null)}function U(t){return typeof t=="string"}function bt(t){return typeof t=="object"}function St(t,e){if(U(e))t=t[e];else for(let n=0;t&&n1?this.addMatcher(t,e):(this.mapper||(this.mapper=new Map),this.mapper.set(t,e),this.cache&&ft(this),this)};y.addMatcher=function(t,e){return typeof t=="object"?this.addReplacer(t,e):t.length<2&&(this.dedupe||this.mapper)?this.addMapper(t,e):(this.matcher||(this.matcher=new Map),this.matcher.set(t,e),this.h+=(this.h?"|":"")+t,this.J=null,this.cache&&ft(this),this)};y.addReplacer=function(t,e){return typeof t=="string"?this.addMatcher(t,e):(this.replacer||(this.replacer=[]),this.replacer.push(t,e),this.cache&&ft(this),this)};y.encode=function(t,e){if(this.cache&&t.length<=this.H)if(this.F){if(this.B.has(t))return this.B.get(t)}else this.F=setTimeout(ft,50,this);this.normalize&&(typeof this.normalize=="function"?t=this.normalize(t):t=Le?t.normalize("NFKD").replace(Le,"").toLowerCase():t.toLowerCase()),this.prepare&&(t=this.prepare(t)),this.numeric&&t.length>3&&(t=t.replace($n,"$1 $2").replace(Kn,"$1 $2").replace(On,"$1 "));let n=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer),r=[],i=W(),s,u,o=this.split||this.split===""?t.split(this.split):[t];for(let h=0,f,c;hthis.maxlength)){if(e){if(i[f])continue;i[f]=1}else{if(s===f)continue;s=f}if(n)r.push(f);else if(!this.filter||(typeof this.filter=="function"?this.filter(f):!this.filter.has(f))){if(this.cache&&f.length<=this.I)if(this.F){var l=this.D.get(f);if(l||l===""){l&&r.push(l);continue}}else this.F=setTimeout(ft,50,this);if(this.stemmer){this.K||(this.K=new RegExp("(?!^)("+this.A+")$"));let D;for(;D!==f&&f.length>2;)D=f,f=f.replace(this.K,a=>this.stemmer.get(a))}if(f&&(this.mapper||this.dedupe&&f.length>1)){l="";for(let D=0,a="",d,p;D1&&(this.J||(this.J=new RegExp("("+this.h+")","g")),f=f.replace(this.J,D=>this.matcher.get(D))),f&&this.replacer)for(l=0;f&&lthis.L&&(this.D.clear(),this.I=this.I/1.1|0)),f){if(f!==c)if(e){if(i[f])continue;i[f]=1}else{if(u===f)continue;u=f}r.push(f)}}}return this.finalize&&(r=this.finalize(r)||r),this.cache&&t.length<=this.H&&(this.B.set(t,r),this.B.size>this.L&&(this.B.clear(),this.H=this.H/1.1|0)),r};function ft(t){t.F=null,t.B.clear(),t.D.clear()}function le(t,e,n){n||(e||typeof t!="object"?typeof e=="object"&&(n=e,e=0):n=t),n&&(t=n.query||t,e=n.limit||e);let r=""+(e||0);n&&(r+=(n.offset||0)+!!n.context+!!n.suggest+(n.resolve!==!1)+(n.resolution||this.resolution)+(n.boost||0)),t=(""+t).toLowerCase(),this.cache||(this.cache=new gt);let i=this.cache.get(t+r);if(!i){let s=n&&n.cache;s&&(n.cache=!1),i=this.search(t,e,n),s&&(n.cache=s),this.cache.set(t+r,i)}return i}function gt(t){this.limit=t&&t!==!0?t:1e3,this.cache=new Map,this.h=""}gt.prototype.set=function(t,e){this.cache.set(this.h=t,e),this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};gt.prototype.get=function(t){let e=this.cache.get(t);return e&&this.h!==t&&(this.cache.delete(t),this.cache.set(this.h=t,e)),e};gt.prototype.remove=function(t){for(let e of this.cache){let n=e[0];e[1].includes(t)&&this.cache.delete(n)}};gt.prototype.clear=function(){this.cache.clear(),this.h=""};var je={normalize:!1,numeric:!1,dedupe:!1},Pt={},ne=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]),Ie=new Map([["ae","a"],["oe","o"],["sh","s"],["kh","k"],["th","t"],["ph","f"],["pf","f"]]),Pe=[/([^aeo])h(.)/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2",/(.)\\1+/g,"$1"],He={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,\\u00DF:2,d:3,t:3,l:4,m:5,n:5,r:6},he={Exact:je,Default:Pt,Normalize:Pt,LatinBalance:{mapper:ne},LatinAdvanced:{mapper:ne,matcher:Ie,replacer:Pe},LatinExtra:{mapper:ne,replacer:Pe.concat([/(?!^)[aeo]/g,""]),matcher:Ie},LatinSoundex:{dedupe:!1,include:{letter:!0},finalize:function(t){for(let n=0;n=u.length)e-=u.length;else{e=u[r?"splice":"slice"](e,n);let o=e.length;if(o&&(i=i.length?i.concat(e):e,n-=o,r&&(t.length-=o),!n))break;e=0}return i}function wt(t){if(!this||this.constructor!==wt)return new wt(t);this.index=t?[t]:[],this.length=t?t.length:0;let e=this;return new Proxy([],{get(n,r){if(r==="length")return e.length;if(r==="push")return function(i){e.index[e.index.length-1].push(i),e.length++};if(r==="pop")return function(){if(e.length)return e.length--,e.index[e.index.length-1].pop()};if(r==="indexOf")return function(i){let s=0;for(let u=0,o,l;u=0)return s+l;s+=o.length}return-1};if(r==="includes")return function(i){for(let s=0;s32?(this.B=Je,this.A=BigInt(t)):(this.B=Ue,this.A=t)}J.prototype.get=function(t){let e=this.index[this.B(t)];return e&&e.get(t)};J.prototype.set=function(t,e){var n=this.B(t);let r=this.index[n];r?(n=r.size,r.set(t,e),(n-=r.size)&&this.size++):(this.index[n]=r=new Map([[t,e]]),this.h.push(r),this.size++)};function V(t=8){if(!this||this.constructor!==V)return new V(t);this.index=W(),this.h=[],this.size=0,t>32?(this.B=Je,this.A=BigInt(t)):(this.B=Ue,this.A=t)}V.prototype.add=function(t){var e=this.B(t);let n=this.index[e];n?(e=n.size,n.add(t),(e-=n.size)&&this.size++):(this.index[e]=n=new Set([t]),this.h.push(n),this.size++)};y=J.prototype;y.has=V.prototype.has=function(t){let e=this.index[this.B(t)];return e&&e.has(t)};y.delete=V.prototype.delete=function(t){let e=this.index[this.B(t)];e&&e.delete(t)&&this.size--};y.clear=V.prototype.clear=function(){this.index=W(),this.h=[],this.size=0};y.values=V.prototype.values=function*(){for(let t=0;t=this.priority*this.priority*3):(re=setTimeout(Jn,0),Re=Date.now()),Rt){let s=this;return new Promise(u=>{setTimeout(function(){u(s[t+"Async"].apply(s,e))},0)})}let i=this[t].apply(this,e);return n=i.then?i:new Promise(s=>s(i)),r&&n.then(r),n}}var nt=0;function at(t={},e){function n(o){function l(h){h=h.data||h;let f=h.id,c=f&&s.h[f];c&&(c(h.msg),delete s.h[f])}if(this.worker=o,this.h=W(),this.worker)return i?this.worker.on("message",l):this.worker.onmessage=l,t.config?new Promise(function(h){nt>1e9&&(nt=0),s.h[++nt]=function(){h(s)},s.worker.postMessage({id:nt,task:"init",factory:r,options:t})}):(this.priority=t.priority||4,this.encoder=e||null,this.worker.postMessage({task:"init",factory:r,options:t}),this)}if(!this||this.constructor!==at)return new at(t);let r=typeof self<"u"?self._factory:typeof window<"u"?window._factory:null;r&&(r=r.toString());let i=typeof window>"u",s=this,u=Vn(r,i,t.worker);return u.then?u.then(function(o){return n.call(s,o)}):n.call(this,u)}it("add");it("append");it("search");it("update");it("remove");it("clear");it("export");it("import");at.prototype.searchCache=le;ce(at.prototype);function it(t){at.prototype[t]=function(){let e=this,n=[].slice.call(arguments);var r=n[n.length-1];let i;return typeof r=="function"&&(i=r,n.pop()),r=new Promise(function(s){t==="export"&&typeof n[0]=="function"&&(n[0]=null),nt>1e9&&(nt=0),e.h[++nt]=s,e.worker.postMessage({task:t,id:nt,args:n})}),i?(r.then(i),this):r}}function Vn(t,e,n){return e?typeof module<"u"?new(ee()).Worker(__dirname+"/worker/node.js"):Promise.resolve().then(()=>Nn(ee(),1)).then(function(r){return new r.Worker(import.meta.dirname+"/node/node.mjs")}):t?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+Un.toString()],{type:"text/javascript"}))):new window.Worker(typeof n=="string"?n:import.meta.url.replace("/worker.js","/worker/worker.js").replace("flexsearch.bundle.module.min.js","module/worker/worker.js").replace("flexsearch.bundle.module.min.mjs","module/worker/worker.js"),{type:"module"})}pt.prototype.add=function(t,e,n){if(bt(t)&&(e=t,t=St(e,this.key)),e&&(t||t===0)){if(!n&&this.reg.has(t))return this.update(t,e);for(let o=0,l;oe?t.slice(n,n+e):t,r?Et.call(this,t):t;let i=[];for(let s=0,u,o;s=o){n-=o;continue}u=u.slice(n,n+e),o=u.length,n=0}if(o>e&&(u=u.slice(0,e),o=e),!i.length&&o>=e)return r?Et.call(this,u):u;if(i.push(u),e-=o,!e)break}return i=i.length>1?[].concat.apply([],i):i[0],r?Et.call(this,i):i}function Jt(t,e,n,r){var i=r[0];if(i[0]&&i[0].query)return t[e].apply(t,i);if(!(e!=="and"&&e!=="not"||t.result.length||t.await||i.suggest))return r.length>1&&(i=r[r.length-1]),(r=i.resolve)?t.await||t.result:t;let s=[],u=0,o=0,l,h,f,c,D;for(e=0;e1&&(n=n[e].apply(n,t.slice(1))),n}j.prototype.or=function(){return Jt(this,"or",Zn,arguments)};function Zn(t,e,n,r,i,s,u){return t.length&&(this.result.length&&t.push(this.result),t.length<2?this.result=t[0]:(this.result=Ve(t,e,n,!1,this.h),n=0)),i&&(this.await=null),i?this.resolve(e,n,r,u):this}j.prototype.and=function(){return Jt(this,"and",Qn,arguments)};function Qn(t,e,n,r,i,s,u){if(!s&&!this.result.length)return i?this.result:this;let o;if(t.length)if(this.result.length&&t.unshift(this.result),t.length<2)this.result=t[0];else{let l=0;for(let h=0,f,c;h1?A.join(" "):A[0];let x;if(A&&E){for(var v=E.length,M=(Q.split?E.replace(Q.split,""):E).length-A.length,T="",N=0,R=0;R-1&&(T=(O?E.substring(0,O):"")+u+E.substring(O,O+H)+o+(O+H=l)break}if(b=ot.length*(s.length-2),a||d||l&&g.length-b>l)if(b=l+b-D*2,k=B-C,a>0&&(k+=a),d>0&&(k+=d),k<=b)m=a?C-(a>0?a:0):C-((b-k)/2|0),F=d?B+(d>0?d:0):m+b,h||(m>0&&g.charAt(m)!==" "&&g.charAt(m-1)!==" "&&(m=g.indexOf(" ",m),m<0&&(m=0)),F=F.length-1){if(I>=F.length){k[x+1]=1,I>=m.length&&(b[x+1]=1);continue}v-=D}if(g=F[I].text,H=d&&A[x])if(H>0){if(g.length>H)if(k[x+1]=1,h)g=g.substring(0,H);else continue;(H-=g.length)||(H=-1),A[x]=H}else{k[x+1]=1;continue}if(v+g.length+1<=l)g=" "+g,B[x]+=g;else if(h)$=l-v-1,$>0&&(g=" "+g.substring(0,$),B[x]+=g),k[x+1]=1;else{k[x+1]=1;continue}}else{if(k[x])continue;if(I-=M,C[I]){v-=D,k[x]=1,b[x]=1;continue}if(I<=0){if(I<0){k[x]=1,b[x]=1;continue}v-=D}if(g=F[I].text,H=a&&E[x])if(H>0){if(g.length>H)if(k[x]=1,h)g=g.substring(g.length-H);else continue;(H-=g.length)||(H=-1),E[x]=H}else{k[x]=1;continue}if(v+g.length+1<=l)g+=" ",B[x]=g+B[x];else if(h)$=g.length+1-(l-v),$>=0&&$=m.length-1||I1?Ve(l,n,r,u,s):(l=l[0])&&n&&l.length>n||r?l.slice(r,n+r):l;else{if(tn||r)&&(l=l.slice(r,n+r));else{i=[];for(let c=0,D;cr)r-=D.length;else if((n&&D.length>n||r)&&(D=D.slice(r,n+r),n-=D.length,r&&(r-=D.length)),i.push(D),!n)break}l=i}}return l}function Ve(t,e,n,r,i){let s=[],u=W(),o;var l=t.length;let h;if(r){for(i=l-1;i>=0;i--)if(h=(r=t[i])&&r.length){for(l=0;l=0;f--){c=t[f];for(let a=0;a1?zt(i,1,0,0,l,h):i[0],E)})}return a?i:new j(i.length>1?zt(i,1,0,0,l,h):i[0],this)}}a||u||!(c=c||this.field)||(U(c)?u=c:(c.constructor===Array&&c.length===1&&(c=c[0]),u=c.field||c.index)),c&&c.constructor!==Array&&(c=[c])}c||(c=this.field);let b;F=(this.worker||this.db)&&!r&&[];for(let E=0,A,v,M;E"u"&&(this.db?F.push(p=this.index.get(this.field[0]).db.enrich(p)):p=Et.call(this,p)),u)return a?d?Nt(t,p,this.index,u,d):p:new j(p,this);i[m]={field:s[m],result:p}}if(g&&this.db&&F.length){let E=this;return Promise.all(F).then(function(A){for(let v=0;v0&&((n&&e>n||r)&&(t=t.slice(r,r+n)),i&&(t=Et.call(this,t))),t):[]):[]}function Et(t){if(!this||!this.store)return t;if(this.db)return this.index.get(this.field[0]).db.enrich(t);let e=Array(t.length);for(let n=0,r;n1?n:n[0]}y.append=function(t,e){return this.add(t,e,!0)};y.update=function(t,e){return this.remove(t).add(t,e)};y.remove=function(t){bt(t)&&(t=St(t,this.key));for(var e of this.index.values())e.remove(t,!0);if(this.reg.has(t)){if(this.tag&&!this.fastupdate)for(let n of this.tag.values())for(let r of n){e=r[0];let i=r[1],s=i.indexOf(t);s>-1&&(i.length>1?i.splice(s,1):n.delete(e))}this.store&&this.store.delete(t),this.reg.delete(t)}return this.cache&&this.cache.remove(t),this};y.clear=function(){let t=[];for(let e of this.index.values()){let n=e.clear();n.then&&t.push(n)}if(this.tag)for(let e of this.tag.values())e.clear();return this.store&&this.store.clear(),this.cache&&this.cache.clear(),t.length?Promise.all(t):this};y.contain=function(t){return this.db?this.index.get(this.field[0]).db.has(t):this.reg.has(t)};y.cleanup=function(){for(let t of this.index.values())t.cleanup();return this};y.get=function(t){return this.db?this.index.get(this.field[0]).db.enrich(t).then(function(e){return e[0]&&e[0].doc||null}):this.store.get(t)||null};y.set=function(t,e){return typeof t=="object"&&(e=t,t=St(e,this.key)),this.store.set(t,e),this};y.searchCache=le;y.export=ei;y.import=ni;ce(pt.prototype);function pe(t,e=0){let n=[],r=[];e&&(e=25e4/e*5e3|0);for(let i of t.entries())r.push(i),r.length===e&&(n.push(r),r=[]);return r.length&&n.push(r),n}function ge(t,e){e||(e=new Map);for(let n=0,r;n2?n[0]:"";if(n=n.length>2?n[2]:n[1],this.worker&&r)return this.index.get(r).import(t);if(e){if(typeof e=="string"&&(e=JSON.parse(e)),r)return this.index.get(r).import(n,e);switch(n){case"reg":this.fastupdate=!1,this.reg=Ye(e,this.reg);for(let i=0,s;i=0&&i.splice(u,1)}}else Tt(this.map,t),this.depth&&Tt(this.ctx,t);e||this.reg.delete(t)}return this.db&&(this.commit_task.push({del:t}),this.M&&Ge(this)),this.cache&&this.cache.remove(t),this};function Tt(t,e){let n=0;var r=typeof e>"u";if(t.constructor===Array){for(let i=0,s,u,o;i=0){if(s.length>1)return s.splice(u,1),1;if(delete t[i],n)return 1;o=1}else{if(o)return 1;n++}}}else for(let i of t.entries())r=i[0],Tt(i[1],e)?n++:t.delete(r);return n}var ii={memory:{resolution:1},performance:{resolution:3,fastupdate:!0,context:{depth:1,resolution:1}},match:{tokenize:"forward"},score:{resolution:9,context:{depth:2,resolution:3}}};Z.prototype.add=function(t,e,n,r){if(e&&(t||t===0)){if(!r&&!n&&this.reg.has(t))return this.update(t,e);r=this.depth,e=this.encoder.encode(e,!r);let h=e.length;if(h){let f=W(),c=W(),D=this.resolution;for(let a=0;a2){for(let p=1,g,m,F,C;p2){for(let p=0,g;pp;s--){u=d.substring(p,s),g=this.rtl?i-1-p:p;var o=this.score?this.score(e,d,a,u,g):Wt(D,h,a,i,g);Y(this,c,u,o,t,n)}break}case"bidirectional":case"reverse":if(i>1){for(o=i-1;o>0;o--){u=d[this.rtl?i-1-o:o]+u;var l=this.score?this.score(e,d,a,u,o):Wt(D,h,a,i,o);Y(this,c,u,l,t,n)}u=""}case"forward":if(i>1){for(o=0;o1&&au;let p=this.score?this.score(e,u,a,d,o-1):Wt(i+(h/2>i?0:1),h,a,s-1,o-1);Y(this,f,l?u:d,p,t,n,l?d:u)}}}}this.fastupdate||this.reg.add(t)}}return this.db&&(this.commit_task.push(n?{ins:t}:{del:t}),this.M&&Ge(this)),this};function Y(t,e,n,r,i,s,u){let o,l;if(!(o=e[n])||u&&!o[u]){if(u?(e=o||(e[n]=W()),e[u]=1,l=t.ctx,(o=l.get(u))?l=o:l.set(u,l=t.keystore?new J(t.keystore):new Map)):(l=t.map,e[n]=1),(o=l.get(n))?l=o:l.set(n,l=o=[]),s){for(let h=0,f;h1?e+(r||0)<=t?n+(i||0):(t-1)/(e+(r||0))*(n+(i||0))+1|0:0}Z.prototype.search=function(t,e,n){if(n||(e||typeof t!="object"?typeof e=="object"&&(n=e,e=0):(n=t,t="")),n&&n.cache)return n.cache=!1,t=this.searchCache(t,e,n),n.cache=!0,t;let r=[],i,s,u,o=0,l,h,f,c,D;n&&(t=n.query||t,e=n.limit||e,o=n.offset||0,s=n.context,u=n.suggest,D=(l=n.resolve)&&n.enrich,f=n.boost,c=n.resolution,h=this.db&&n.tag),typeof l>"u"&&(l=this.resolve),s=this.depth&&s!==!1;let a=this.encoder.encode(t,!s);if(i=a.length,e=e||(l?100:0),i===1)return $e.call(this,a[0],"",e,o,l,D,h);if(i===2&&s&&!u)return $e.call(this,a[1],a[0],e,o,l,D,h);let d=W(),p=0,g;if(s&&(g=a[0],p=1),c||c===0||(c=g?this.N:this.resolution),this.db){if(this.db.search&&(n=this.db.search(this,a,e,o,u,l,D,h),n!==!1))return n;let m=this;return(async function(){for(let F,C;p1)l=zt(t,e,n,r,i,s,u);else if(o===1)return u?fe.call(null,t[0],n,r):new j(t[0],this);return u?l:new j(l,this)}function $e(t,e,n,r,i,s,u){return t=oe(this,t,e,n,r,i,s,u),this.db?t.then(function(o){return i?o||[]:new j(o,this)}):t&&t.length?i?fe.call(this,t,n,r):new j(t,this):i?[]:new j([],this)}function Ke(t,e,n,r){let i=[];if(t&&t.length){if(t.length<=r){e.push(t);return}for(let s=0,u;sn)&&(l=n,n=e,e=l),t.db?t.db.get(e,n,r,i,s,u,o):(t=n?(t=t.ctx.get(n))&&t.get(e):t.map.get(e),t)}function Z(t,e){if(!this||this.constructor!==Z)return new Z(t);if(t){var n=U(t)?t:t.preset;n&&(t=Object.assign({},ii[n],t))}else t={};n=t.context;let r=n===!0?{depth:1}:n||{},i=U(t.encoder)?he[t.encoder]:t.encode||t.encoder||{};this.encoder=i.encode?i:typeof i=="object"?new At(i):{encode:i},this.resolution=t.resolution||9,this.tokenize=n=(n=t.tokenize)&&n!=="default"&&n!=="exact"&&n||"strict",this.depth=n==="strict"&&r.depth||0,this.bidirectional=r.bidirectional!==!1,this.fastupdate=!!t.fastupdate,this.score=t.score||null,(n=t.keystore||0)&&(this.keystore=n),this.map=n?new J(n):new Map,this.ctx=n?new J(n):new Map,this.reg=e||(this.fastupdate?n?new J(n):new Map:n?new V(n):new Set),this.N=r.resolution||3,this.rtl=i.rtl||t.rtl||!1,this.cache=(n=t.cache||null)&&new gt(n),this.resolve=t.resolve!==!1,(n=t.db)&&(this.db=this.mount(n)),this.M=t.commit!==!1,this.commit_task=[],this.commit_timer=null,this.priority=t.priority||4}y=Z.prototype;y.mount=function(t){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),t.mount(this)};y.commit=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.commit(this)};y.destroy=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.destroy()};function Ge(t){t.commit_timer||(t.commit_timer=setTimeout(function(){t.commit_timer=null,t.db.commit(t)},1))}y.clear=function(){return this.map.clear(),this.ctx.clear(),this.reg.clear(),this.cache&&this.cache.clear(),this.db?(this.commit_timer&&clearTimeout(this.commit_timer),this.commit_timer=null,this.commit_task=[],this.db.clear()):this};y.append=function(t,e){return this.add(t,e,!0)};y.contain=function(t){return this.db?this.db.has(t):this.reg.has(t)};y.update=function(t,e){let n=this,r=this.remove(t);return r&&r.then?r.then(()=>n.add(t,e)):this.add(t,e)};y.cleanup=function(){return this.fastupdate?(Tt(this.map),this.depth&&Tt(this.ctx),this):this};y.searchCache=le;y.export=function(t,e,n=0,r=0){let i,s;switch(r){case 0:i="reg",s=Xe(this.reg);break;case 1:i="cfg",s=null;break;case 2:i="map",s=pe(this.map,this.reg.size);break;case 3:i="ctx",s=Ze(this.ctx,this.reg.size);break;default:return}return $t.call(this,t,e,i,s,n,r)};y.import=function(t,e){if(e)switch(typeof e=="string"&&(e=JSON.parse(e)),t=t.split("."),t[t.length-1]==="json"&&t.pop(),t.length===3&&t.shift(),t=t.length>1?t[1]:t[0],t){case"reg":this.fastupdate=!1,this.reg=Ye(e,this.reg);break;case"map":this.map=ge(e,this.map);break;case"ctx":this.ctx=Qe(e,this.ctx)}};y.serialize=function(t=!0){let e="",n="",r="";if(this.reg.size){let s;for(var i of this.reg.keys())s||(s=typeof i),e+=(e?",":"")+(s==="string"?'"'+i+'"':i);e="index.reg=new Set(["+e+"]);",n=ze(this.map,s),n="index.map=new Map(["+n+"]);";for(let u of this.ctx.entries()){i=u[0];let o=ze(u[1],s);o="new Map(["+o+"])",o='["'+i+'",'+o+"]",r+=(r?",":"")+o}r="index.ctx=new Map(["+r+"]);"}return t?"function inject(index){"+e+n+r+"}":e+n+r};ce(Z.prototype);var qe=typeof window<"u"&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Kt=["map","ctx","tag","reg","cfg"],ct=W();function Ut(t,e={}){if(!this||this.constructor!==Ut)return new Ut(t,e);typeof t=="object"&&(e=t,t=t.name),t||console.info("Default storage space was used, because a name was not passed."),this.id="flexsearch"+(t?":"+t.toLowerCase().replace(/[^a-z0-9_\\-]/g,""):""),this.field=e.field?e.field.toLowerCase().replace(/[^a-z0-9_\\-]/g,""):"",this.type=e.type,this.fastupdate=this.support_tag_search=!1,this.db=null,this.h={}}y=Ut.prototype;y.mount=function(t){return t.index?t.mount(this):(t.db=this,this.open())};y.open=function(){if(this.db)return this.db;let t=this;navigator.storage&&navigator.storage.persist&&navigator.storage.persist(),ct[t.id]||(ct[t.id]=[]),ct[t.id].push(t.field);let e=qe.open(t.id,1);return e.onupgradeneeded=function(){let n=t.db=this.result;for(let r=0,i;r=f.length){r-=f.length;continue}let c=n?r+Math.min(f.length-r,n):f.length;for(let D=r;D=s.length?[]:!e&&!n?s:(s=s.slice(n,n+e),r?i.enrich(s):s)})};y.enrich=function(t){typeof t!="object"&&(t=[t]);let e=this.db.transaction("reg","readonly").objectStore("reg"),n=[];for(let r=0;r=0)if(i=1,o.length>1)o.splice(h,1);else{r[u]=[];break}s+=o.length}if(n)break}s?i&&t.update(r):t.delete(),t.continue()}y.remove=function(t){return typeof t!="object"&&(t=[t]),Promise.all([this.transaction("map","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t)}}),this.transaction("ctx","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t)}}),this.transaction("tag","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t,!0)}}),this.transaction("reg","readwrite",function(e){for(let n=0;n{t.onsuccess=t.oncomplete=function(){e&&e(this.result),e=null,n(this.result)},t.onerror=t.onblocked=r,t=null})}var tn={Index:Z,Charset:he,Encoder:At,Document:pt,Worker:at,Resolver:j,IndexedDB:Ut,Language:{}};var Li=Object.hasOwnProperty;var un,P,on,ri,st,en,ln,hn,cn,_e,De,Fe,si,fn={},Qt=[],ui=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Yt=Array.isArray;function G(t,e){for(var n in e)t[n]=e[n];return t}function ye(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function de(t,e,n,r,i){var s={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++on,__i:-1,__u:0};return i==null&&P.vnode!=null&&P.vnode(s),s}function xt(t){return t.children}function Zt(t,e){this.props=t,this.context=e}function vt(t,e){if(e==null)return t.__?vt(t.__,t.__i+1):null;for(var n;ee&&st.sort(hn),t=st.shift(),e=st.length,oi(t)}finally{st.length=Xt.__r=0}}function pn(t,e,n,r,i,s,u,o,l,h,f){var c,D,a,d,p,g,m,F=r&&r.__k||Qt,C=e.length;for(l=li(n,e,F,l,C),c=0;c0?u=t.__k[s]=de(u.type,u.props,u.key,u.ref?u.ref:null,u.__v):t.__k[s]=u,l=s+D,u.__=t,u.__b=t.__b+1,o=null,(h=u.__i=hi(u,n,l,c))!=-1&&(c--,(o=n[h])&&(o.__u|=2)),o==null||o.__v==null?(h==-1&&(i>f?D--:il?D--:D++,u.__u|=4))):t.__k[s]=null;if(c)for(s=0;s(f?1:0)){for(i=n-1,s=n+1;i>=0||s=0?i--:s++])!=null&&(2&h.__u)==0&&o==h.key&&l==h.type)return u}return-1}function rn(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||ui.test(e)?n:n+"px"}function Vt(t,e,n,r,i){var s,u;t:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof r=="string"&&(t.style.cssText=r=""),r)for(e in r)n&&e in n||rn(t.style,e,"");if(n)for(e in n)r&&n[e]==r[e]||rn(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")s=e!=(e=e.replace(cn,"$1")),u=e.toLowerCase(),e=u in t||e=="onFocusOut"||e=="onFocusIn"?u.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+s]=n,n?r?n.u=r.u:(n.u=_e,t.addEventListener(e,s?Fe:De,s)):t.removeEventListener(e,s?Fe:De,s);else{if(i=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break t}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function sn(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=_e++;else if(e.t0?t:Yt(t)?t.map(Dn):G({},t)}function fi(t,e,n,r,i,s,u,o,l){var h,f,c,D,a,d,p,g=n.props||fn,m=e.props,F=e.type;if(F=="svg"?i="http://www.w3.org/2000/svg":F=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),s!=null){for(h=0;h"u"?"":document.body?.dataset?.basepath??""}function Ee(t,e){let n=e??gi(),r=t.startsWith("/")?t:"/"+t;return n+r}function q(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function mn(t,e){if(!t)return()=>{};let n=i=>{t.classList.contains("active")&&i.target===t&&(i.preventDefault(),i.stopPropagation(),e())},r=i=>{t.classList.contains("active")&&i.key==="Escape"&&(i.preventDefault(),e())};return t.addEventListener("click",n),document.addEventListener("keydown",r),()=>{t.removeEventListener("click",n),document.removeEventListener("keydown",r)}}function _n(t,e){let n=t.querySelectorAll("[src], [href]");for(let r of Array.from(n)){let i=r.hasAttribute("href")?"href":"src",s=r.getAttribute(i);if(s&&!(s.startsWith("http://")||s.startsWith("https://")||s.startsWith("mailto:")||s.startsWith("tel:")||s.startsWith("#")||s.startsWith("/")||s.startsWith("data:")))try{let u=new URL(s,e).toString();r.setAttribute(i,u)}catch{continue}}}function Gt(t){return t.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}var Ae="basic",te="",yn=8,di=5,qt=30,Di=t=>{let e=[],n=-1,r=-1,i=t.toLowerCase(),s=0;for(let u of i){let o=u.codePointAt(0);o>=12352&&o<=12447||o>=12448&&o<=12543||o>=19968&&o<=40959||o>=44032&&o<=55215||o>=131072&&o<=173791?(n!==-1&&(e.push(i.slice(n,r)),n=-1),e.push(u)):o===32||o===9||o===10||o===13?n!==-1&&(e.push(i.slice(n,r)),n=-1):(n===-1&&(n=s),r=s+1),s+=u.length}return n!==-1&&e.push(i.slice(n)),e},ve=new tn.Document({encode:Di,document:{id:"id",tag:"tags",index:[{field:"title",tokenize:"forward"},{field:"content",tokenize:"forward"},{field:"tags",tokenize:"forward"}]}}),Dt=null,Se=[],xe=[],we=new Map;function Be(t){let e=t.split(/\\s+/),n=[],r=[];for(let i of e)i.startsWith("#")&&i.length>1?n.push(i.substring(1)):i!=="#"&&r.push(i);return{tags:n,query:r.join(" ").trim()}}function Cn(t){let e=t.split(/\\s+/),n=e[e.length-1];return n&&n.startsWith("#")?n.substring(1):null}var An=new DOMParser;async function Fi(t){if(we.has(t))return we.get(t);let e=new URL(Ee(t),window.location.origin).toString();try{let n=await fetch(e);if(!n.ok)return[];let r=await n.text(),i=An.parseFromString(r??"","text/html");_n(i,e);let s=Array.from(i.getElementsByClassName("popover-hint"));return we.set(t,s),s}catch{return[]}}var ke=[];function dt(t){ke.push(t)}function mi(){ke.forEach(t=>t()),ke.length=0}async function _i(){let t=document.querySelectorAll(".search");for(let e of Array.from(t)){let n=e.querySelector(".search-container"),r=e.querySelector(".search-button"),i=e.querySelector(".search-bar"),s=e.querySelector(".search-layout");if(!n||!r||!i||!s)continue;let u=s.getAttribute("data-preview")==="true",o=s.getAttribute("data-field-priority"),l=o?JSON.parse(o):["title","content","tags"],h=s.querySelector(".results-container");h||(h=document.createElement("div"),h.className="results-container",h.setAttribute("role","listbox"),h.setAttribute("aria-label","Search results"),s.appendChild(h));let f=s.querySelector(".preview-container");u&&!f&&(f=document.createElement("div"),f.className="preview-container",s.appendChild(f));let c=document.createElement("div");c.className="tag-suggestions",c.setAttribute("role","listbox"),c.setAttribute("aria-label","Tag suggestions"),c.style.display="none";let D=i.parentElement;D.insertBefore(c,i.nextSibling);let a=document.createElement("span");a.className="ghost-text",a.setAttribute("aria-hidden","true"),D.insertBefore(a,i.nextSibling);let d=-1,p=[],g=!1,m=_=>{if(d<0||d>=p.length){a.textContent="";return}let w=p[d];if(!w.toLowerCase().startsWith(_.toLowerCase())){a.textContent="";return}let L=w.substring(_.length);a.innerHTML="";let S=document.createElement("span");S.style.visibility="hidden",S.textContent=i.value,a.appendChild(S),a.appendChild(document.createTextNode(L))},F=()=>{c.querySelectorAll(".tag-suggestion-item").forEach((L,S)=>{L.classList.toggle("active",S===d)});let w=Cn(i.value)||"";m(w)},C=()=>{g=!1,d=-1,p=[],c.style.display="none",a.textContent=""},B=_=>{let w=i.value,L=w.lastIndexOf("#");L!==-1&&(i.value=w.substring(0,L)+"#"+_+" "),C(),i.focus(),i.dispatchEvent(new Event("input"))},b=_=>{if(be){if(p=_===""?xe.slice(0,10):xe.filter(w=>w.toLowerCase().startsWith(_.toLowerCase())).slice(0,10),p.length===0){C();return}d=0,g=!0,q(c);for(let w=0;w!g||p.length===0?!1:(_==="down"?d=Math.min(d+1,p.length-1):d=Math.max(d-1,0),F(),!0),E=null,A=0,v=null,M=()=>{n.classList.remove("active"),r.setAttribute("aria-expanded","false"),i.value="",q(h),f&&q(f),s.classList.remove("display-results"),Ae="basic",E=null,C(),r.focus()},T=_=>{Ae=_,n.classList.add("active"),r.setAttribute("aria-expanded","true"),i.focus()},N=async _=>{if(q(h),_.length===0){let w=document.createElement("a");w.className="result-card no-match";let L=document.createElement("h3");L.textContent="No results.";let S=document.createElement("p");S.textContent="Try another search term?",w.appendChild(L),w.appendChild(S),h.appendChild(w),E=null,f&&q(f)}else for(let w of _){let L=document.createElement("a");L.className="result-card",L.id=w.slug,L.href=Ee(w.slug);let S=document.createElement("h3");if(S.className="card-title",S.innerHTML=w.title,L.appendChild(S),w.tags.length>0){let K=document.createElement("ul");K.className="tags",K.innerHTML=w.tags.join(""),L.appendChild(K)}let X=document.createElement("p");X.className="card-description",X.innerHTML=w.content,L.appendChild(X),h.appendChild(L)}},R=()=>Array.from(h.querySelectorAll(".result-card:not(.no-match)")),O=()=>{let _=Be(te);return _.query||(_.tags.length>0?_.tags.join(" "):te)},H=async _=>{if(!f||(q(f),!_))return;let w=_.id,L=++A,S=await Fi(w);if(L!==A)return;let X=O(),K=document.createElement("div");K.className="preview-inner";for(let jt of S){let lt=jt.cloneNode(!0);X.trim()!==""&&(lt.innerHTML=yi(X,lt)),K.appendChild(lt)}f.appendChild(K);let Lt=Array.from(f.getElementsByClassName("highlight")).sort((jt,lt)=>lt.innerHTML.length-jt.innerHTML.length);Lt[0]&&Lt[0].scrollIntoView({block:"start"})},$=_=>{E&&E.classList.remove("focus"),E=_,E&&E.classList.add("focus"),v&&clearTimeout(v),v=setTimeout(()=>H(E),150)},Ft=_=>{let w=R();if(w.length===0){$(null);return}let L=Math.min(Math.max(_,0),w.length-1);$(w[L]??null)},Q=()=>{let _=R();if(_.length===0)return;let w=E?_.indexOf(E):-1;Ft(w+1)},Mt=()=>{let _=R();if(_.length===0)return;let w=E?_.indexOf(E):_.length;Ft(w-1)},tt=async _=>{let w=_.target.value;te=w;let L=Cn(w);L!==null?b(L):C();let S=Be(w),X=S.query!==""||S.tags.length>0;if(s.classList.toggle("display-results",X),Ae=S.tags.length>0&&!S.query?"tags":"basic",!X){q(h),f&&q(f),E=null;return}let K;S.query?K=await ve.searchAsync({query:S.query,limit:S.tags.length>0?1e4:yn,index:["title","content"]}):S.tags.length>0?K=await ve.searchAsync({query:S.tags[0],limit:1e4,index:["tags"]}):K=[];let Lt=ht=>{let Bt=K.filter(It=>It.field===ht);return Bt.length===0?[]:[...Bt[0].result]},lt=[...new Set(l.flatMap(ht=>Lt(ht)))].filter(ht=>{if(S.tags.length===0)return!0;let Bt=Se[ht];if(!Bt)return!1;let It=Dt?.[Bt];if(!It)return!1;let Sn=It.tags||[];return S.tags.every(Tn=>Sn.some(Mn=>Mn.toLowerCase()===Tn.toLowerCase()))}),Bn=S.query||(S.tags.length>0?S.tags.join(" "):w),kn=lt.map(ht=>Ei(Bn,ht));await N(kn.slice(0,yn));let bn=R();$(bn[0]??null)},et=_=>{_.stopPropagation(),T("basic")};r.addEventListener("click",et),dt(()=>r.removeEventListener("click",et)),i.addEventListener("input",tt),dt(()=>i.removeEventListener("input",tt));let ut=_=>{if(g){if(_.key==="ArrowDown"){_.preventDefault(),k("down");return}if(_.key==="ArrowUp"){_.preventDefault(),k("up");return}if(_.key==="Tab"){_.preventDefault(),d>=0&&d=0&&di.removeEventListener("keydown",ut));let ot=_=>{_.key==="k"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey?(_.preventDefault(),n.classList.contains("active")?M():T("basic")):_.shiftKey&&(_.ctrlKey||_.metaKey)&&_.key.toLowerCase()==="k"&&(_.preventDefault(),T("tags"),i.value="#",i.dispatchEvent(new Event("input")))};document.addEventListener("keydown",ot),dt(()=>document.removeEventListener("keydown",ot));let x=_=>{let w=_.target.closest(".result-card");!w||w.classList.contains("no-match")||_ instanceof MouseEvent&&(_.altKey||_.ctrlKey||_.metaKey||_.shiftKey)||M()},I=_=>{let w=_.target.closest(".result-card");!w||w.classList.contains("no-match")||$(w)};h.addEventListener("click",x),h.addEventListener("mouseover",I),dt(()=>{h.removeEventListener("click",x),h.removeEventListener("mouseover",I)});let mt=_=>{let w=_.target.closest(".tag-suggestion-item");if(!w)return;let L=w.getAttribute("data-tag");L&&B(L)},Te=_=>{let w=_.target.closest(".tag-suggestion-item");if(!w)return;let L=w.getAttribute("data-index");L!==null&&(d=parseInt(L,10),F())};c.addEventListener("click",mt),c.addEventListener("mouseover",Te),dt(()=>{c.removeEventListener("click",mt),c.removeEventListener("mouseover",Te)});let xn=mn(n,M);dt(xn)}}function wn(t){let e=t.split(/\\s+/).filter(r=>r.trim()!==""),n=e.length;if(n>1)for(let r=1;ri.length-r.length)}function yi(t,e){let n=wn(t).filter(h=>h.trim()!=="");if(n.length===0)return e.innerHTML;let r=An.parseFromString(e.innerHTML,"text/html"),i=n.map(h=>h.replace(/[.*+?^\${}()|[\\]\\\\]/g,"\\\\$&")).join("|");if(i==="")return e.innerHTML;let s=new RegExp(i,"gi"),u=r.createTreeWalker(r.body,NodeFilter.SHOW_TEXT),o=[],l=u.nextNode();for(;l;)o.push(l),l=u.nextNode();for(let h of o){let f=h.nodeValue??"";if(s.lastIndex=0,!s.test(f))continue;s.lastIndex=0;let c=r.createDocumentFragment(),D=0,a;for(;(a=s.exec(f))!==null;){a.index>D&&c.appendChild(r.createTextNode(f.slice(D,a.index)));let d=r.createElement("span");d.className="highlight",d.textContent=a[0],c.appendChild(d),D=a.index+a[0].length}Dl!==""),s=0,u=i.length-1;if(n){let l=D=>r.some(a=>D.toLowerCase().startsWith(a.toLowerCase())),h=i.map(l),f=0,c=0;for(let D=0;Dp+(g?1:0),0);d>=f&&(f=d,c=D)}s=Math.max(c-qt,0),u=Math.min(s+2*qt,i.length-1),i=i.slice(s,u)}let o=i.map(l=>{let h=l;for(let f of r)if(l.toLowerCase().includes(f.toLowerCase())){let c=new RegExp(f.replace(/[.*+?^\${}()|[\\]\\\\]/g,"\\\\$&"),"gi");h=l.replace(c,D=>\`\${D}\`);break}return h}).join(" ");return(s===0?"":"...")+o+(u===i.length-1?"":"...")}function Ci(t,e){return!e||e.length===0||t.length===0?[]:e.map(n=>{let r=Gt(n);return t.some(i=>n.toLowerCase().includes(i.toLowerCase()))?\`
  • #\${r}

  • \`:\`
  • #\${r}

  • \`}).slice(0,di)}function Ei(t,e){let n=Se[e];if(!n||!Dt)return{id:e,slug:"",title:"",content:"",tags:[]};let r=Dt[n];if(!r)return{id:e,slug:n,title:"",content:"",tags:[]};let i=Be(te);return{id:e,slug:n,title:i.tags.length>0&&!i.query?Gt(r.title):En(t,r.title||""),content:En(t,r.content||"",!0),tags:Ci(i.tags,r.tags)}}async function Ai(){if(!Dt)return;let t=0,e=[],n=new Set;for(let r of Object.keys(Dt)){let i=Dt[r];if(i){Se[t]=r;for(let s of i.tags||[])n.add(s);e.push(ve.addAsync(t,{id:t,slug:r,title:i.title||"",content:i.content||"",tags:i.tags||[]})),t++}}await Promise.all(e),xe=[...n].sort()}async function wi(){return await fetchData}var be=!1;async function vi(){be||(Dt=await wi(),await Ai(),be=!0)}async function vn(){mi(),await vi(),await _i()}document.addEventListener("nav",vn);document.addEventListener("render",vn); `; var defaultOptions = { - enablePreview: true + enablePreview: true, + fieldPriority: ["title", "content", "tags"] }; var Search_default = ((userOpts) => { const Search = ({ displayClass, cfg }) => { @@ -96,16 +121,24 @@ var Search_default = ((userOpts) => { const locale = cfg.locale ?? "en-US"; const searchPlaceholder = i18n(locale).components.search.searchBarPlaceholder; return /* @__PURE__ */ jsxs("div", { class: classNames(displayClass, "search"), children: [ - /* @__PURE__ */ jsxs("button", { class: "search-button", children: [ - /* @__PURE__ */ jsxs("svg", { role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 19.9 19.7", children: [ - /* @__PURE__ */ jsx("title", { children: "Search" }), - /* @__PURE__ */ jsxs("g", { class: "search-path", fill: "none", children: [ - /* @__PURE__ */ jsx("path", { "stroke-linecap": "square", d: "M18.5 18.3l-5.4-5.4" }), - /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7" }) - ] }) - ] }), - /* @__PURE__ */ jsx("p", { children: i18n(locale).components.search.title }) - ] }), + /* @__PURE__ */ jsxs( + "button", + { + class: "search-button", + "aria-label": i18n(locale).components.search.title, + "aria-expanded": "false", + children: [ + /* @__PURE__ */ jsxs("svg", { role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 19.9 19.7", children: [ + /* @__PURE__ */ jsx("title", { children: "Search" }), + /* @__PURE__ */ jsxs("g", { class: "search-path", fill: "none", children: [ + /* @__PURE__ */ jsx("path", { "stroke-linecap": "square", d: "M18.5 18.3l-5.4-5.4" }), + /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7" }) + ] }) + ] }), + /* @__PURE__ */ jsx("p", { children: i18n(locale).components.search.title }) + ] + } + ), /* @__PURE__ */ jsx("div", { class: "search-container", children: /* @__PURE__ */ jsxs("div", { class: "search-space", children: [ /* @__PURE__ */ jsx( "input", @@ -118,7 +151,14 @@ var Search_default = ((userOpts) => { placeholder: searchPlaceholder } ), - /* @__PURE__ */ jsx("div", { class: "search-layout", "data-preview": opts.enablePreview }) + /* @__PURE__ */ jsx( + "div", + { + class: "search-layout", + "data-preview": opts.enablePreview, + "data-field-priority": JSON.stringify(opts.fieldPriority) + } + ) ] }) }) ] }); }; diff --git a/dist/components/index.js.map b/dist/components/index.js.map index b3f6f60..df2efbb 100644 --- a/dist/components/index.js.map +++ b/dist/components/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/util/lang.ts","../../src/i18n/locales/en-US.ts","../../src/i18n/locales/de-DE.ts","../../src/i18n/locales/es-ES.ts","../../src/i18n/locales/fr-FR.ts","../../src/i18n/locales/ja-JP.ts","../../src/i18n/locales/zh-CN.ts","../../src/i18n/index.ts","../../src/components/styles/search.scss","../../src/components/scripts/search.inline.ts","../../src/components/Search.tsx"],"names":[],"mappings":";;;AAAO,SAAS,UAAA,CACd,iBACG,OAAA,EACK;AACR,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,OAAA,CAAQ,KAAK,YAAY,CAAA;AAAA,EAC3B;AACA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;;;ACRA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACPA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACPA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACPA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACPA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACPA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACAA,IAAM,OAAA,GAAuC;AAAA,EAC3C,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;AAEO,SAAS,KAAK,MAAA,EAAgB;AACnC,EAAA,OAAO,OAAA,CAAQ,MAAM,CAAA,IAAK,aAAA;AAC5B;;;AClBA,IAAA,cAAA,GAAA,s4MAAA;;;ACAA,IAAA,qBAAA,GAAA,CAAA;AAAA,CAAA;ACeA,IAAM,cAAA,GAAgC;AAAA,EACpC,aAAA,EAAe;AACjB,CAAA;AAEA,IAAO,cAAA,IAAS,CAAC,QAAA,KAAsC;AACrD,EAAA,MAAM,MAAA,GAA0B,CAAC,EAAE,YAAA,EAAc,KAAI,KAA4B;AAC/E,IAAA,MAAM,IAAA,GAAO,EAAE,GAAG,cAAA,EAAgB,GAAG,QAAA,EAAS;AAC9C,IAAA,MAAM,MAAA,GAAS,IAAI,MAAA,IAAU,OAAA;AAC7B,IAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,MAAM,CAAA,CAAE,WAAW,MAAA,CAAO,oBAAA;AAEzD,IAAA,4BACG,KAAA,EAAA,EAAI,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,QAAQ,CAAA,EAC3C,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,QAAA,EAAA,EAAO,OAAM,eAAA,EACZ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,SAAI,IAAA,EAAK,KAAA,EAAM,KAAA,EAAM,4BAAA,EAA6B,SAAQ,eAAA,EACzD,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,WAAM,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,0BACb,IAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAM,aAAA,EAAc,MAAK,MAAA,EAC1B,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,gBAAA,EAAe,QAAA,EAAS,CAAA,EAAE,qBAAA,EAAsB,CAAA;AAAA,gCACrD,QAAA,EAAA,EAAO,EAAA,EAAG,KAAI,EAAA,EAAG,GAAA,EAAI,GAAE,GAAA,EAAI;AAAA,WAAA,EAC9B;AAAA,SAAA,EACF,CAAA;AAAA,4BACC,GAAA,EAAA,EAAG,QAAA,EAAA,IAAA,CAAK,MAAM,CAAA,CAAE,UAAA,CAAW,OAAO,KAAA,EAAM;AAAA,OAAA,EAC3C,CAAA;AAAA,0BACC,KAAA,EAAA,EAAI,KAAA,EAAM,oBACT,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,OAAM,cAAA,EACT,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAa,KAAA;AAAA,YACb,KAAA,EAAM,YAAA;AAAA,YACN,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,MAAA;AAAA,YACL,YAAA,EAAY,iBAAA;AAAA,YACZ,WAAA,EAAa;AAAA;AAAA,SACf;AAAA,4BACC,KAAA,EAAA,EAAI,KAAA,EAAM,eAAA,EAAgB,cAAA,EAAc,KAAK,aAAA,EAAe;AAAA,OAAA,EAC/D,CAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,MAAA,CAAO,cAAA,GAAiB,qBAAA;AACxB,EAAA,MAAA,CAAO,GAAA,GAAM,cAAA;AAEb,EAAA,OAAO,MAAA;AACT,CAAA","file":"index.js","sourcesContent":["export function classNames(\n displayClass?: \"mobile-only\" | \"desktop-only\",\n ...classes: string[]\n): string {\n if (displayClass) {\n classes.push(displayClass);\n }\n return classes.join(\" \");\n}\n","export default {\n components: {\n search: {\n title: \"Search\",\n searchBarPlaceholder: \"Search for something\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Suche\",\n searchBarPlaceholder: \"Suche nach etwas\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Buscar\",\n searchBarPlaceholder: \"Buscar algo\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Recherche\",\n searchBarPlaceholder: \"Rechercher quelque chose\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"検索\",\n searchBarPlaceholder: \"何かを検索\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"搜索\",\n searchBarPlaceholder: \"搜索内容\",\n },\n },\n};\n","import enUS from \"./locales/en-US\";\nimport deDE from \"./locales/de-DE\";\nimport esES from \"./locales/es-ES\";\nimport frFR from \"./locales/fr-FR\";\nimport jaJP from \"./locales/ja-JP\";\nimport zhCN from \"./locales/zh-CN\";\n\nconst locales: Record = {\n \"en-US\": enUS,\n \"de-DE\": deDE,\n \"es-ES\": esES,\n \"fr-FR\": frFR,\n \"ja-JP\": jaJP,\n \"zh-CN\": zhCN,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n",".search {\n min-width: fit-content;\n max-width: 14rem;\n}\n\n@media all and (max-width: 800px) {\n .search {\n flex-grow: 0.3;\n }\n}\n.search > .search-button {\n background-color: transparent;\n border: 1px var(--lightgray) solid;\n border-radius: 4px;\n font-family: inherit;\n font-size: inherit;\n height: 2rem;\n padding: 0 1rem 0 0;\n display: flex;\n align-items: center;\n text-align: inherit;\n cursor: pointer;\n white-space: nowrap;\n width: 100%;\n}\n\n.search > .search-button > p {\n display: inline;\n color: var(--gray);\n text-wrap: unset;\n}\n\n.search > .search-button svg {\n cursor: pointer;\n width: 18px;\n min-width: 18px;\n margin: 0 0.5rem;\n}\n\n.search > .search-button svg .search-path {\n stroke: var(--darkgray);\n stroke-width: 1.5px;\n transition: stroke 0.5s ease;\n}\n\n.search > .search-container {\n position: fixed;\n contain: layout;\n z-index: 999;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n overflow-y: auto;\n display: none;\n backdrop-filter: blur(4px);\n}\n\n.search > .search-container.active {\n display: inline-block;\n}\n\n.search > .search-container > .search-space {\n width: 65%;\n margin-top: 12vh;\n margin-left: auto;\n margin-right: auto;\n}\n\n@media all and not (min-width: 1200px) {\n .search > .search-container > .search-space {\n width: 90%;\n }\n}\n.search > .search-container > .search-space > * {\n width: 100%;\n border-radius: 7px;\n background: var(--light);\n box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16);\n margin-bottom: 2em;\n}\n\n.search > .search-container > .search-space > input {\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n color: var(--dark);\n font-size: 1.1em;\n border: 1px solid var(--lightgray);\n}\n\n.search > .search-container > .search-space > input:focus {\n outline: none;\n}\n\n.search > .search-container > .search-space > .search-layout {\n display: none;\n flex-direction: row;\n border: 1px solid var(--lightgray);\n flex: 0 0 100%;\n box-sizing: border-box;\n}\n\n.search > .search-container > .search-space > .search-layout.display-results {\n display: flex;\n}\n\n.search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n flex: 0 0 min(30%, 450px);\n}\n\n@media all and not (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout[data-preview] .result-card > p.preview {\n display: none;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:first-child {\n border-right: 1px solid var(--lightgray);\n border-top-right-radius: unset;\n border-bottom-right-radius: unset;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:last-child {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n}\n.search > .search-container > .search-space > .search-layout > div {\n height: 63vh;\n border-radius: 5px;\n}\n\n@media all and (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout {\n flex-direction: column;\n }\n .search > .search-container > .search-space > .search-layout > .preview-container {\n display: none !important;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n width: 100%;\n height: auto;\n flex: 0 0 100%;\n }\n}\n.search > .search-container > .search-space > .search-layout .highlight {\n background: color-mix(in srgb, var(--tertiary) 60%, rgba(255, 255, 255, 0));\n border-radius: 5px;\n scroll-margin-top: 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container {\n flex-grow: 1;\n display: block;\n overflow: hidden;\n font-family: inherit;\n color: var(--dark);\n line-height: 1.5em;\n font-weight: 400;\n overflow-y: auto;\n padding: 0 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container .preview-inner {\n margin: 0 auto;\n width: 100%;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container a[role=anchor] {\n background-color: transparent;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container {\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card {\n overflow: hidden;\n padding: 1em;\n cursor: pointer;\n transition: background 0.2s ease;\n border-bottom: 1px solid var(--lightgray);\n width: 100%;\n display: block;\n box-sizing: border-box;\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n text-transform: none;\n text-align: left;\n outline: none;\n font-weight: inherit;\n text-decoration: none;\n color: var(--dark);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:hover,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:focus,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.focus {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > h3 {\n margin: 0;\n color: var(--secondary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags {\n margin-top: 0.45rem;\n margin-bottom: 0;\n padding: 0;\n list-style: none;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags > li {\n display: inline-block;\n margin-right: 0.3rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p {\n border-radius: 8px;\n background-color: var(--highlight);\n padding: 0.2rem 0.4rem;\n margin: 0;\n line-height: 1.4rem;\n font-weight: 700;\n color: var(--secondary);\n font-size: 0.85rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p.match-tag {\n color: var(--tertiary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > p {\n margin-bottom: 0;\n margin-top: 0.5em;\n font-size: 0.9em;\n color: var(--gray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.no-match {\n cursor: default;\n}","var hn=Object.create;var ge=Object.defineProperty;var cn=Object.getOwnPropertyDescriptor;var fn=Object.getOwnPropertyNames;var an=Object.getPrototypeOf,pn=Object.prototype.hasOwnProperty;var Dn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var gn=(t,e,n,u)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of fn(e))!pn.call(t,i)&&i!==n&&ge(t,i,{get:()=>e[i],enumerable:!(u=cn(e,i))||u.enumerable});return t};var dn=(t,e,n)=>(n=t!=null?hn(an(t)):{},gn(e||!t||!t.__esModule?ge(n,\"default\",{value:t,enumerable:!0}):n,t));var Ot=Dn(()=>{});var y;function z(t,e,n){let u=typeof n,i=typeof t;if(u!==\"undefined\"){if(i!==\"undefined\"){if(n){if(i===\"function\"&&u===i)return function(o){return t(n(o))};if(e=t.constructor,e===n.constructor){if(e===Array)return n.concat(t);if(e===Map){var r=new Map(n);for(var s of t)r.set(s[0],s[1]);return r}if(e===Set){s=new Set(n);for(r of t.values())s.add(r);return s}}}return t}return n}return i===\"undefined\"?e:t}function rt(t,e){return typeof t>\"u\"?e:t}function W(){return Object.create(null)}function H(t){return typeof t==\"string\"}function mt(t){return typeof t==\"object\"}function _t(t,e){if(H(e))t=t[e];else for(let n=0;t&&n1?this.addMatcher(t,e):(this.mapper||(this.mapper=new Map),this.mapper.set(t,e),this.cache&&tt(this),this)};y.addMatcher=function(t,e){return typeof t==\"object\"?this.addReplacer(t,e):t.length<2&&(this.dedupe||this.mapper)?this.addMapper(t,e):(this.matcher||(this.matcher=new Map),this.matcher.set(t,e),this.h+=(this.h?\"|\":\"\")+t,this.J=null,this.cache&&tt(this),this)};y.addReplacer=function(t,e){return typeof t==\"string\"?this.addMatcher(t,e):(this.replacer||(this.replacer=[]),this.replacer.push(t,e),this.cache&&tt(this),this)};y.encode=function(t,e){if(this.cache&&t.length<=this.H)if(this.F){if(this.B.has(t))return this.B.get(t)}else this.F=setTimeout(tt,50,this);this.normalize&&(typeof this.normalize==\"function\"?t=this.normalize(t):t=de?t.normalize(\"NFKD\").replace(de,\"\").toLowerCase():t.toLowerCase()),this.prepare&&(t=this.prepare(t)),this.numeric&&t.length>3&&(t=t.replace(_n,\"$1 $2\").replace(yn,\"$1 $2\").replace(mn,\"$1 \"));let n=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer),u=[],i=W(),r,s,o=this.split||this.split===\"\"?t.split(this.split):[t];for(let h=0,f,c;hthis.maxlength)){if(e){if(i[f])continue;i[f]=1}else{if(r===f)continue;r=f}if(n)u.push(f);else if(!this.filter||(typeof this.filter==\"function\"?this.filter(f):!this.filter.has(f))){if(this.cache&&f.length<=this.I)if(this.F){var l=this.D.get(f);if(l||l===\"\"){l&&u.push(l);continue}}else this.F=setTimeout(tt,50,this);if(this.stemmer){this.K||(this.K=new RegExp(\"(?!^)(\"+this.A+\")$\"));let g;for(;g!==f&&f.length>2;)g=f,f=f.replace(this.K,a=>this.stemmer.get(a))}if(f&&(this.mapper||this.dedupe&&f.length>1)){l=\"\";for(let g=0,a=\"\",d,p;g1&&(this.J||(this.J=new RegExp(\"(\"+this.h+\")\",\"g\")),f=f.replace(this.J,g=>this.matcher.get(g))),f&&this.replacer)for(l=0;f&&lthis.L&&(this.D.clear(),this.I=this.I/1.1|0)),f){if(f!==c)if(e){if(i[f])continue;i[f]=1}else{if(s===f)continue;s=f}u.push(f)}}}return this.finalize&&(u=this.finalize(u)||u),this.cache&&t.length<=this.H&&(this.B.set(t,u),this.B.size>this.L&&(this.B.clear(),this.H=this.H/1.1|0)),u};function tt(t){t.F=null,t.B.clear(),t.D.clear()}function Qt(t,e,n){n||(e||typeof t!=\"object\"?typeof e==\"object\"&&(n=e,e=0):n=t),n&&(t=n.query||t,e=n.limit||e);let u=\"\"+(e||0);n&&(u+=(n.offset||0)+!!n.context+!!n.suggest+(n.resolve!==!1)+(n.resolution||this.resolution)+(n.boost||0)),t=(\"\"+t).toLowerCase(),this.cache||(this.cache=new it);let i=this.cache.get(t+u);if(!i){let r=n&&n.cache;r&&(n.cache=!1),i=this.search(t,e,n),r&&(n.cache=r),this.cache.set(t+u,i)}return i}function it(t){this.limit=t&&t!==!0?t:1e3,this.cache=new Map,this.h=\"\"}it.prototype.set=function(t,e){this.cache.set(this.h=t,e),this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};it.prototype.get=function(t){let e=this.cache.get(t);return e&&this.h!==t&&(this.cache.delete(t),this.cache.set(this.h=t,e)),e};it.prototype.remove=function(t){for(let e of this.cache){let n=e[0];e[1].includes(t)&&this.cache.delete(n)}};it.prototype.clear=function(){this.cache.clear(),this.h=\"\"};var Fe={normalize:!1,numeric:!1,dedupe:!1},wt={},$t=new Map([[\"b\",\"p\"],[\"v\",\"f\"],[\"w\",\"f\"],[\"z\",\"s\"],[\"x\",\"s\"],[\"d\",\"t\"],[\"n\",\"m\"],[\"c\",\"k\"],[\"g\",\"k\"],[\"j\",\"k\"],[\"q\",\"k\"],[\"i\",\"e\"],[\"y\",\"e\"],[\"u\",\"o\"]]),me=new Map([[\"ae\",\"a\"],[\"oe\",\"o\"],[\"sh\",\"s\"],[\"kh\",\"k\"],[\"th\",\"t\"],[\"ph\",\"f\"],[\"pf\",\"f\"]]),_e=[/([^aeo])h(.)/g,\"$1$2\",/([aeo])h([^aeo]|$)/g,\"$1$2\",/(.)\\1+/g,\"$1\"],ye={a:\"\",e:\"\",i:\"\",o:\"\",u:\"\",y:\"\",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,\\u00DF:2,d:3,t:3,l:4,m:5,n:5,r:6},Xt={Exact:Fe,Default:wt,Normalize:wt,LatinBalance:{mapper:$t},LatinAdvanced:{mapper:$t,matcher:me,replacer:_e},LatinExtra:{mapper:$t,replacer:_e.concat([/(?!^)[aeo]/g,\"\"]),matcher:me},LatinSoundex:{dedupe:!1,include:{letter:!0},finalize:function(t){for(let n=0;n=s.length)e-=s.length;else{e=s[u?\"splice\":\"slice\"](e,n);let o=e.length;if(o&&(i=i.length?i.concat(e):e,n-=o,u&&(t.length-=o),!n))break;e=0}return i}function ct(t){if(!this||this.constructor!==ct)return new ct(t);this.index=t?[t]:[],this.length=t?t.length:0;let e=this;return new Proxy([],{get(n,u){if(u===\"length\")return e.length;if(u===\"push\")return function(i){e.index[e.index.length-1].push(i),e.length++};if(u===\"pop\")return function(){if(e.length)return e.length--,e.index[e.index.length-1].pop()};if(u===\"indexOf\")return function(i){let r=0;for(let s=0,o,l;s=0)return r+l;r+=o.length}return-1};if(u===\"includes\")return function(i){for(let r=0;r32?(this.B=be,this.A=BigInt(t)):(this.B=ke,this.A=t)}N.prototype.get=function(t){let e=this.index[this.B(t)];return e&&e.get(t)};N.prototype.set=function(t,e){var n=this.B(t);let u=this.index[n];u?(n=u.size,u.set(t,e),(n-=u.size)&&this.size++):(this.index[n]=u=new Map([[t,e]]),this.h.push(u),this.size++)};function O(t=8){if(!this||this.constructor!==O)return new O(t);this.index=W(),this.h=[],this.size=0,t>32?(this.B=be,this.A=BigInt(t)):(this.B=ke,this.A=t)}O.prototype.add=function(t){var e=this.B(t);let n=this.index[e];n?(e=n.size,n.add(t),(e-=n.size)&&this.size++):(this.index[e]=n=new Set([t]),this.h.push(n),this.size++)};y=N.prototype;y.has=O.prototype.has=function(t){let e=this.index[this.B(t)];return e&&e.has(t)};y.delete=O.prototype.delete=function(t){let e=this.index[this.B(t)];e&&e.delete(t)&&this.size--};y.clear=O.prototype.clear=function(){this.index=W(),this.h=[],this.size=0};y.values=O.prototype.values=function*(){for(let t=0;t=this.priority*this.priority*3):(Ut=setTimeout(An,0),Ae=Date.now()),Bt){let r=this;return new Promise(s=>{setTimeout(function(){s(r[t+\"Async\"].apply(r,e))},0)})}let i=this[t].apply(this,e);return n=i.then?i:new Promise(r=>r(i)),u&&n.then(u),n}}var V=0;function et(t={},e){function n(o){function l(h){h=h.data||h;let f=h.id,c=f&&r.h[f];c&&(c(h.msg),delete r.h[f])}if(this.worker=o,this.h=W(),this.worker)return i?this.worker.on(\"message\",l):this.worker.onmessage=l,t.config?new Promise(function(h){V>1e9&&(V=0),r.h[++V]=function(){h(r)},r.worker.postMessage({id:V,task:\"init\",factory:u,options:t})}):(this.priority=t.priority||4,this.encoder=e||null,this.worker.postMessage({task:\"init\",factory:u,options:t}),this)}if(!this||this.constructor!==et)return new et(t);let u=typeof self<\"u\"?self._factory:typeof window<\"u\"?window._factory:null;u&&(u=u.toString());let i=typeof window>\"u\",r=this,s=En(u,i,t.worker);return s.then?s.then(function(o){return n.call(r,o)}):n.call(this,s)}Z(\"add\");Z(\"append\");Z(\"search\");Z(\"update\");Z(\"remove\");Z(\"clear\");Z(\"export\");Z(\"import\");et.prototype.searchCache=Qt;Yt(et.prototype);function Z(t){et.prototype[t]=function(){let e=this,n=[].slice.call(arguments);var u=n[n.length-1];let i;return typeof u==\"function\"&&(i=u,n.pop()),u=new Promise(function(r){t===\"export\"&&typeof n[0]==\"function\"&&(n[0]=null),V>1e9&&(V=0),e.h[++V]=r,e.worker.postMessage({task:t,id:V,args:n})}),i?(u.then(i),this):u}}function En(t,e,n){return e?typeof module<\"u\"?new(Ot()).Worker(__dirname+\"/worker/node.js\"):Promise.resolve().then(()=>dn(Ot(),1)).then(function(u){return new u.Worker(import.meta.dirname+\"/node/node.mjs\")}):t?new window.Worker(URL.createObjectURL(new Blob([\"onmessage=\"+Cn.toString()],{type:\"text/javascript\"}))):new window.Worker(typeof n==\"string\"?n:import.meta.url.replace(\"/worker.js\",\"/worker/worker.js\").replace(\"flexsearch.bundle.module.min.js\",\"module/worker/worker.js\").replace(\"flexsearch.bundle.module.min.mjs\",\"module/worker/worker.js\"),{type:\"module\"})}nt.prototype.add=function(t,e,n){if(mt(t)&&(e=t,t=_t(e,this.key)),e&&(t||t===0)){if(!n&&this.reg.has(t))return this.update(t,e);for(let o=0,l;oe?t.slice(n,n+e):t,u?lt.call(this,t):t;let i=[];for(let r=0,s,o;r=o){n-=o;continue}s=s.slice(n,n+e),o=s.length,n=0}if(o>e&&(s=s.slice(0,e),o=e),!i.length&&o>=e)return u?lt.call(this,s):s;if(i.push(s),e-=o,!e)break}return i=i.length>1?[].concat.apply([],i):i[0],u?lt.call(this,i):i}function jt(t,e,n,u){var i=u[0];if(i[0]&&i[0].query)return t[e].apply(t,i);if(!(e!==\"and\"&&e!==\"not\"||t.result.length||t.await||i.suggest))return u.length>1&&(i=u[u.length-1]),(u=i.resolve)?t.await||t.result:t;let r=[],s=0,o=0,l,h,f,c,g;for(e=0;e1&&(n=n[e].apply(n,t.slice(1))),n}T.prototype.or=function(){return jt(this,\"or\",wn,arguments)};function wn(t,e,n,u,i,r,s){return t.length&&(this.result.length&&t.push(this.result),t.length<2?this.result=t[0]:(this.result=Se(t,e,n,!1,this.h),n=0)),i&&(this.await=null),i?this.resolve(e,n,u,s):this}T.prototype.and=function(){return jt(this,\"and\",xn,arguments)};function xn(t,e,n,u,i,r,s){if(!r&&!this.result.length)return i?this.result:this;let o;if(t.length)if(this.result.length&&t.unshift(this.result),t.length<2)this.result=t[0];else{let l=0;for(let h=0,f,c;h1?C.join(\" \"):C[0];let x;if(C&&v){for(var E=v.length,_=(G.split?v.replace(G.split,\"\"):v).length-C.length,w=\"\",M=0,S=0;S-1&&(w=(L?v.substring(0,L):\"\")+s+v.substring(L,L+j)+o+(L+j=l)break}if(b=Et.length*(r.length-2),a||d||l&&D.length-b>l)if(b=l+b-g*2,k=B-A,a>0&&(k+=a),d>0&&(k+=d),k<=b)m=a?A-(a>0?a:0):A-((b-k)/2|0),F=d?B+(d>0?d:0):m+b,h||(m>0&&D.charAt(m)!==\" \"&&D.charAt(m-1)!==\" \"&&(m=D.indexOf(\" \",m),m<0&&(m=0)),F=F.length-1){if(R>=F.length){k[x+1]=1,R>=m.length&&(b[x+1]=1);continue}E-=g}if(D=F[R].text,j=d&&C[x])if(j>0){if(D.length>j)if(k[x+1]=1,h)D=D.substring(0,j);else continue;(j-=D.length)||(j=-1),C[x]=j}else{k[x+1]=1;continue}if(E+D.length+1<=l)D=\" \"+D,B[x]+=D;else if(h)I=l-E-1,I>0&&(D=\" \"+D.substring(0,I),B[x]+=D),k[x+1]=1;else{k[x+1]=1;continue}}else{if(k[x])continue;if(R-=_,A[R]){E-=g,k[x]=1,b[x]=1;continue}if(R<=0){if(R<0){k[x]=1,b[x]=1;continue}E-=g}if(D=F[R].text,j=a&&v[x])if(j>0){if(D.length>j)if(k[x]=1,h)D=D.substring(D.length-j);else continue;(j-=D.length)||(j=-1),v[x]=j}else{k[x]=1;continue}if(E+D.length+1<=l)D+=\" \",B[x]=D+B[x];else if(h)I=D.length+1-(l-E),I>=0&&I=m.length-1||R1?Se(l,n,u,s,r):(l=l[0])&&n&&l.length>n||u?l.slice(u,n+u):l;else{if(tn||u)&&(l=l.slice(u,n+u));else{i=[];for(let c=0,g;cu)u-=g.length;else if((n&&g.length>n||u)&&(g=g.slice(u,n+u),n-=g.length,u&&(u-=g.length)),i.push(g),!n)break}l=i}}return l}function Se(t,e,n,u,i){let r=[],s=W(),o;var l=t.length;let h;if(u){for(i=l-1;i>=0;i--)if(h=(u=t[i])&&u.length){for(l=0;l=0;f--){c=t[f];for(let a=0;a1?bt(i,1,0,0,l,h):i[0],v)})}return a?i:new T(i.length>1?bt(i,1,0,0,l,h):i[0],this)}}a||s||!(c=c||this.field)||(H(c)?s=c:(c.constructor===Array&&c.length===1&&(c=c[0]),s=c.field||c.index)),c&&c.constructor!==Array&&(c=[c])}c||(c=this.field);let b;F=(this.worker||this.db)&&!u&&[];for(let v=0,C,E,_;v\"u\"&&(this.db?F.push(p=this.index.get(this.field[0]).db.enrich(p)):p=lt.call(this,p)),s)return a?d?kt(t,p,this.index,s,d):p:new T(p,this);i[m]={field:r[m],result:p}}if(D&&this.db&&F.length){let v=this;return Promise.all(F).then(function(C){for(let E=0;E0&&((n&&e>n||u)&&(t=t.slice(u,u+n)),i&&(t=lt.call(this,t))),t):[]):[]}function lt(t){if(!this||!this.store)return t;if(this.db)return this.index.get(this.field[0]).db.enrich(t);let e=Array(t.length);for(let n=0,u;n1?n:n[0]}y.append=function(t,e){return this.add(t,e,!0)};y.update=function(t,e){return this.remove(t).add(t,e)};y.remove=function(t){mt(t)&&(t=_t(t,this.key));for(var e of this.index.values())e.remove(t,!0);if(this.reg.has(t)){if(this.tag&&!this.fastupdate)for(let n of this.tag.values())for(let u of n){e=u[0];let i=u[1],r=i.indexOf(t);r>-1&&(i.length>1?i.splice(r,1):n.delete(e))}this.store&&this.store.delete(t),this.reg.delete(t)}return this.cache&&this.cache.remove(t),this};y.clear=function(){let t=[];for(let e of this.index.values()){let n=e.clear();n.then&&t.push(n)}if(this.tag)for(let e of this.tag.values())e.clear();return this.store&&this.store.clear(),this.cache&&this.cache.clear(),t.length?Promise.all(t):this};y.contain=function(t){return this.db?this.index.get(this.field[0]).db.has(t):this.reg.has(t)};y.cleanup=function(){for(let t of this.index.values())t.cleanup();return this};y.get=function(t){return this.db?this.index.get(this.field[0]).db.enrich(t).then(function(e){return e[0]&&e[0].doc||null}):this.store.get(t)||null};y.set=function(t,e){return typeof t==\"object\"&&(e=t,t=_t(e,this.key)),this.store.set(t,e),this};y.searchCache=Qt;y.export=Mn;y.import=Tn;Yt(nt.prototype);function te(t,e=0){let n=[],u=[];e&&(e=25e4/e*5e3|0);for(let i of t.entries())u.push(i),u.length===e&&(n.push(u),u=[]);return u.length&&n.push(u),n}function ee(t,e){e||(e=new Map);for(let n=0,u;n2?n[0]:\"\";if(n=n.length>2?n[2]:n[1],this.worker&&u)return this.index.get(u).import(t);if(e){if(typeof e==\"string\"&&(e=JSON.parse(e)),u)return this.index.get(u).import(n,e);switch(n){case\"reg\":this.fastupdate=!1,this.reg=je(e,this.reg);for(let i=0,r;i=0&&i.splice(s,1)}}else yt(this.map,t),this.depth&&yt(this.ctx,t);e||this.reg.delete(t)}return this.db&&(this.commit_task.push({del:t}),this.M&&Pe(this)),this.cache&&this.cache.remove(t),this};function yt(t,e){let n=0;var u=typeof e>\"u\";if(t.constructor===Array){for(let i=0,r,s,o;i=0){if(r.length>1)return r.splice(s,1),1;if(delete t[i],n)return 1;o=1}else{if(o)return 1;n++}}}else for(let i of t.entries())u=i[0],yt(i[1],e)?n++:t.delete(u);return n}var Ln={memory:{resolution:1},performance:{resolution:3,fastupdate:!0,context:{depth:1,resolution:1}},match:{tokenize:\"forward\"},score:{resolution:9,context:{depth:2,resolution:3}}};$.prototype.add=function(t,e,n,u){if(e&&(t||t===0)){if(!u&&!n&&this.reg.has(t))return this.update(t,e);u=this.depth,e=this.encoder.encode(e,!u);let h=e.length;if(h){let f=W(),c=W(),g=this.resolution;for(let a=0;a2){for(let p=1,D,m,F,A;p2){for(let p=0,D;pp;r--){s=d.substring(p,r),D=this.rtl?i-1-p:p;var o=this.score?this.score(e,d,a,s,D):vt(g,h,a,i,D);K(this,c,s,o,t,n)}break}case\"bidirectional\":case\"reverse\":if(i>1){for(o=i-1;o>0;o--){s=d[this.rtl?i-1-o:o]+s;var l=this.score?this.score(e,d,a,s,o):vt(g,h,a,i,o);K(this,c,s,l,t,n)}s=\"\"}case\"forward\":if(i>1){for(o=0;o1&&as;let p=this.score?this.score(e,s,a,d,o-1):vt(i+(h/2>i?0:1),h,a,r-1,o-1);K(this,f,l?s:d,p,t,n,l?d:s)}}}}this.fastupdate||this.reg.add(t)}}return this.db&&(this.commit_task.push(n?{ins:t}:{del:t}),this.M&&Pe(this)),this};function K(t,e,n,u,i,r,s){let o,l;if(!(o=e[n])||s&&!o[s]){if(s?(e=o||(e[n]=W()),e[s]=1,l=t.ctx,(o=l.get(s))?l=o:l.set(s,l=t.keystore?new N(t.keystore):new Map)):(l=t.map,e[n]=1),(o=l.get(n))?l=o:l.set(n,l=o=[]),r){for(let h=0,f;h1?e+(u||0)<=t?n+(i||0):(t-1)/(e+(u||0))*(n+(i||0))+1|0:0}$.prototype.search=function(t,e,n){if(n||(e||typeof t!=\"object\"?typeof e==\"object\"&&(n=e,e=0):(n=t,t=\"\")),n&&n.cache)return n.cache=!1,t=this.searchCache(t,e,n),n.cache=!0,t;let u=[],i,r,s,o=0,l,h,f,c,g;n&&(t=n.query||t,e=n.limit||e,o=n.offset||0,r=n.context,s=n.suggest,g=(l=n.resolve)&&n.enrich,f=n.boost,c=n.resolution,h=this.db&&n.tag),typeof l>\"u\"&&(l=this.resolve),r=this.depth&&r!==!1;let a=this.encoder.encode(t,!r);if(i=a.length,e=e||(l?100:0),i===1)return ve.call(this,a[0],\"\",e,o,l,g,h);if(i===2&&r&&!s)return ve.call(this,a[1],a[0],e,o,l,g,h);let d=W(),p=0,D;if(r&&(D=a[0],p=1),c||c===0||(c=D?this.N:this.resolution),this.db){if(this.db.search&&(n=this.db.search(this,a,e,o,s,l,g,h),n!==!1))return n;let m=this;return(async function(){for(let F,A;p1)l=bt(t,e,n,u,i,r,s);else if(o===1)return s?Gt.call(null,t[0],n,u):new T(t[0],this);return s?l:new T(l,this)}function ve(t,e,n,u,i,r,s){return t=Zt(this,t,e,n,u,i,r,s),this.db?t.then(function(o){return i?o||[]:new T(o,this)}):t&&t.length?i?Gt.call(this,t,n,u):new T(t,this):i?[]:new T([],this)}function Be(t,e,n,u){let i=[];if(t&&t.length){if(t.length<=u){e.push(t);return}for(let r=0,s;rn)&&(l=n,n=e,e=l),t.db?t.db.get(e,n,u,i,r,s,o):(t=n?(t=t.ctx.get(n))&&t.get(e):t.map.get(e),t)}function $(t,e){if(!this||this.constructor!==$)return new $(t);if(t){var n=H(t)?t:t.preset;n&&(t=Object.assign({},Ln[n],t))}else t={};n=t.context;let u=n===!0?{depth:1}:n||{},i=H(t.encoder)?Xt[t.encoder]:t.encode||t.encoder||{};this.encoder=i.encode?i:typeof i==\"object\"?new ht(i):{encode:i},this.resolution=t.resolution||9,this.tokenize=n=(n=t.tokenize)&&n!==\"default\"&&n!==\"exact\"&&n||\"strict\",this.depth=n===\"strict\"&&u.depth||0,this.bidirectional=u.bidirectional!==!1,this.fastupdate=!!t.fastupdate,this.score=t.score||null,(n=t.keystore||0)&&(this.keystore=n),this.map=n?new N(n):new Map,this.ctx=n?new N(n):new Map,this.reg=e||(this.fastupdate?n?new N(n):new Map:n?new O(n):new Set),this.N=u.resolution||3,this.rtl=i.rtl||t.rtl||!1,this.cache=(n=t.cache||null)&&new it(n),this.resolve=t.resolve!==!1,(n=t.db)&&(this.db=this.mount(n)),this.M=t.commit!==!1,this.commit_task=[],this.commit_timer=null,this.priority=t.priority||4}y=$.prototype;y.mount=function(t){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),t.mount(this)};y.commit=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.commit(this)};y.destroy=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.destroy()};function Pe(t){t.commit_timer||(t.commit_timer=setTimeout(function(){t.commit_timer=null,t.db.commit(t)},1))}y.clear=function(){return this.map.clear(),this.ctx.clear(),this.reg.clear(),this.cache&&this.cache.clear(),this.db?(this.commit_timer&&clearTimeout(this.commit_timer),this.commit_timer=null,this.commit_task=[],this.db.clear()):this};y.append=function(t,e){return this.add(t,e,!0)};y.contain=function(t){return this.db?this.db.has(t):this.reg.has(t)};y.update=function(t,e){let n=this,u=this.remove(t);return u&&u.then?u.then(()=>n.add(t,e)):this.add(t,e)};y.cleanup=function(){return this.fastupdate?(yt(this.map),this.depth&&yt(this.ctx),this):this};y.searchCache=Qt;y.export=function(t,e,n=0,u=0){let i,r;switch(u){case 0:i=\"reg\",r=Le(this.reg);break;case 1:i=\"cfg\",r=null;break;case 2:i=\"map\",r=te(this.map,this.reg.size);break;case 3:i=\"ctx\",r=Me(this.ctx,this.reg.size);break;default:return}return Mt.call(this,t,e,i,r,n,u)};y.import=function(t,e){if(e)switch(typeof e==\"string\"&&(e=JSON.parse(e)),t=t.split(\".\"),t[t.length-1]===\"json\"&&t.pop(),t.length===3&&t.shift(),t=t.length>1?t[1]:t[0],t){case\"reg\":this.fastupdate=!1,this.reg=je(e,this.reg);break;case\"map\":this.map=ee(e,this.map);break;case\"ctx\":this.ctx=Te(e,this.ctx)}};y.serialize=function(t=!0){let e=\"\",n=\"\",u=\"\";if(this.reg.size){let r;for(var i of this.reg.keys())r||(r=typeof i),e+=(e?\",\":\"\")+(r===\"string\"?'\"'+i+'\"':i);e=\"index.reg=new Set([\"+e+\"]);\",n=we(this.map,r),n=\"index.map=new Map([\"+n+\"]);\";for(let s of this.ctx.entries()){i=s[0];let o=we(s[1],r);o=\"new Map([\"+o+\"])\",o='[\"'+i+'\",'+o+\"]\",u+=(u?\",\":\"\")+o}u=\"index.ctx=new Map([\"+u+\"]);\"}return t?\"function inject(index){\"+e+n+u+\"}\":e+n+u};Yt($.prototype);var Ie=typeof window<\"u\"&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Tt=[\"map\",\"ctx\",\"tag\",\"reg\",\"cfg\"],q=W();function Lt(t,e={}){if(!this||this.constructor!==Lt)return new Lt(t,e);typeof t==\"object\"&&(e=t,t=t.name),t||console.info(\"Default storage space was used, because a name was not passed.\"),this.id=\"flexsearch\"+(t?\":\"+t.toLowerCase().replace(/[^a-z0-9_\\-]/g,\"\"):\"\"),this.field=e.field?e.field.toLowerCase().replace(/[^a-z0-9_\\-]/g,\"\"):\"\",this.type=e.type,this.fastupdate=this.support_tag_search=!1,this.db=null,this.h={}}y=Lt.prototype;y.mount=function(t){return t.index?t.mount(this):(t.db=this,this.open())};y.open=function(){if(this.db)return this.db;let t=this;navigator.storage&&navigator.storage.persist&&navigator.storage.persist(),q[t.id]||(q[t.id]=[]),q[t.id].push(t.field);let e=Ie.open(t.id,1);return e.onupgradeneeded=function(){let n=t.db=this.result;for(let u=0,i;u=f.length){u-=f.length;continue}let c=n?u+Math.min(f.length-u,n):f.length;for(let g=u;g=r.length?[]:!e&&!n?r:(r=r.slice(n,n+e),u?i.enrich(r):r)})};y.enrich=function(t){typeof t!=\"object\"&&(t=[t]);let e=this.db.transaction(\"reg\",\"readonly\").objectStore(\"reg\"),n=[];for(let u=0;u=0)if(i=1,o.length>1)o.splice(h,1);else{u[s]=[];break}r+=o.length}if(n)break}r?i&&t.update(u):t.delete(),t.continue()}y.remove=function(t){return typeof t!=\"object\"&&(t=[t]),Promise.all([this.transaction(\"map\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t)}}),this.transaction(\"ctx\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t)}}),this.transaction(\"tag\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t,!0)}}),this.transaction(\"reg\",\"readwrite\",function(e){for(let n=0;n{t.onsuccess=t.oncomplete=function(){e&&e(this.result),e=null,n(this.result)},t.onerror=t.onblocked=u,t=null})}var We={Index:$,Charset:Xt,Encoder:ht,Document:nt,Worker:et,Resolver:T,IndexedDB:Lt,Language:{}};var hi=Object.hasOwnProperty;var Oe,P,$e,jn,X,Re,Ke,Ue,Je,se,ie,ue,Pn,Ve={},Wt=[],In=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,zt=Array.isArray;function U(t,e){for(var n in e)t[n]=e[n];return t}function oe(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function ne(t,e,n,u,i){var r={type:t,props:e,key:n,ref:u,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++$e,__i:-1,__u:0};return i==null&&P.vnode!=null&&P.vnode(r),r}function at(t){return t.children}function It(t,e){this.props=t,this.context=e}function ft(t,e){if(e==null)return t.__?ft(t.__,t.__i+1):null;for(var n;ee&&X.sort(Ue),t=X.shift(),e=X.length,Wn(t)}finally{X.length=Rt.__r=0}}function Qe(t,e,n,u,i,r,s,o,l,h,f){var c,g,a,d,p,D,m,F=u&&u.__k||Wt,A=e.length;for(l=Rn(n,e,F,l,A),c=0;c0?s=t.__k[r]=ne(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):t.__k[r]=s,l=r+g,s.__=t,s.__b=t.__b+1,o=null,(h=s.__i=zn(s,n,l,c))!=-1&&(c--,(o=n[h])&&(o.__u|=2)),o==null||o.__v==null?(h==-1&&(i>f?g--:il?g--:g++,s.__u|=4))):t.__k[r]=null;if(c)for(r=0;r(f?1:0)){for(i=n-1,r=n+1;i>=0||r=0?i--:r++])!=null&&(2&h.__u)==0&&o==h.key&&l==h.type)return s}return-1}function He(t,e,n){e[0]==\"-\"?t.setProperty(e,n??\"\"):t[e]=n==null?\"\":typeof n!=\"number\"||In.test(e)?n:n+\"px\"}function Pt(t,e,n,u,i){var r,s;t:if(e==\"style\")if(typeof n==\"string\")t.style.cssText=n;else{if(typeof u==\"string\"&&(t.style.cssText=u=\"\"),u)for(e in u)n&&e in n||He(t.style,e,\"\");if(n)for(e in n)u&&n[e]==u[e]||He(t.style,e,n[e])}else if(e[0]==\"o\"&&e[1]==\"n\")r=e!=(e=e.replace(Je,\"$1\")),s=e.toLowerCase(),e=s in t||e==\"onFocusOut\"||e==\"onFocusIn\"?s.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+r]=n,n?u?n.u=u.u:(n.u=se,t.addEventListener(e,r?ue:ie,r)):t.removeEventListener(e,r?ue:ie,r);else{if(i==\"http://www.w3.org/2000/svg\")e=e.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(e!=\"width\"&&e!=\"height\"&&e!=\"href\"&&e!=\"list\"&&e!=\"form\"&&e!=\"tabIndex\"&&e!=\"download\"&&e!=\"rowSpan\"&&e!=\"colSpan\"&&e!=\"role\"&&e!=\"popover\"&&e in t)try{t[e]=n??\"\";break t}catch{}typeof n==\"function\"||(n==null||n===!1&&e[4]!=\"-\"?t.removeAttribute(e):t.setAttribute(e,e==\"popover\"&&n==1?\"\":n))}}function Ne(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=se++;else if(e.t0?t:zt(t)?t.map(Ge):U({},t)}function Nn(t,e,n,u,i,r,s,o,l){var h,f,c,g,a,d,p,D=n.props||Ve,m=e.props,F=e.type;if(F==\"svg\"?i=\"http://www.w3.org/2000/svg\":F==\"math\"?i=\"http://www.w3.org/1998/Math/MathML\":i||(i=\"http://www.w3.org/1999/xhtml\"),r!=null){for(h=0;h\"u\"?\"\":document.body?.dataset?.basepath??\"\"}function he(t,e){let n=e??Kn(),u=t.startsWith(\"/\")?t:\"/\"+t;return n+u}function Y(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function tn(t,e){if(!t)return()=>{};let n=i=>{t.classList.contains(\"active\")&&i.target===t&&(i.preventDefault(),i.stopPropagation(),e())},u=i=>{t.classList.contains(\"active\")&&i.key===\"Escape\"&&(i.preventDefault(),e())};return t.addEventListener(\"click\",n),document.addEventListener(\"keydown\",u),()=>{t.removeEventListener(\"click\",n),document.removeEventListener(\"keydown\",u)}}function en(t,e){let n=t.querySelectorAll(\"[src], [href]\");for(let u of Array.from(n)){let i=u.hasAttribute(\"href\")?\"href\":\"src\",r=u.getAttribute(i);if(r&&!(r.startsWith(\"http://\")||r.startsWith(\"https://\")||r.startsWith(\"mailto:\")||r.startsWith(\"tel:\")||r.startsWith(\"#\")||r.startsWith(\"/\")||r.startsWith(\"data:\")))try{let s=new URL(r,e).toString();u.setAttribute(i,s)}catch{continue}}}var ut=\"basic\",J=\"\",ce=8,Un=5,Ht=30,Jn=t=>{let e=[],n=-1,u=-1,i=t.toLowerCase(),r=0;for(let s of i){let o=s.codePointAt(0);o>=12352&&o<=12447||o>=12448&&o<=12543||o>=19968&&o<=40959||o>=44032&&o<=55215||o>=131072&&o<=173791?(n!==-1&&(e.push(i.slice(n,u)),n=-1),e.push(s)):o===32||o===9||o===10||o===13?n!==-1&&(e.push(i.slice(n,u)),n=-1):(n===-1&&(n=r),u=r+1),r+=s.length}return n!==-1&&e.push(i.slice(n)),e},ae=new We.Document({encode:Jn,document:{id:\"id\",tag:\"tags\",index:[{field:\"title\",tokenize:\"forward\"},{field:\"content\",tokenize:\"forward\"},{field:\"tags\",tokenize:\"forward\"}]}}),pt=null,rn=[],fe=new Map,sn=new DOMParser;async function Vn(t){if(fe.has(t))return fe.get(t);let e=new URL(he(t),window.location.origin).toString(),n=await fetch(e).then(u=>u.text()).then(u=>{let i=sn.parseFromString(u??\"\",\"text/html\");return en(i,e),Array.from(i.getElementsByClassName(\"popover-hint\"))});return fe.set(t,n),n}var pe=[];function Ct(t){pe.push(t)}function Zn(){pe.forEach(t=>t()),pe.length=0}async function Qn(){let t=document.querySelectorAll(\".search\");for(let e of Array.from(t)){let n=e.querySelector(\".search-container\"),u=e.querySelector(\".search-button\"),i=e.querySelector(\".search-bar\"),r=e.querySelector(\".search-layout\");if(!n||!u||!i||!r)continue;let s=r.getAttribute(\"data-preview\")===\"true\",o=r.querySelector(\".results-container\");o||(o=document.createElement(\"div\"),o.className=\"results-container\",r.appendChild(o));let l=r.querySelector(\".preview-container\");s&&!l&&(l=document.createElement(\"div\"),l.className=\"preview-container\",r.appendChild(l));let h=null,f=0,c=()=>{console.log(\"[Search] hideSearch called, stack:\",new Error().stack),n.classList.remove(\"active\"),i.value=\"\",Y(o),l&&Y(l),r.classList.remove(\"display-results\"),ut=\"basic\",h=null},g=_=>{console.log(\"[Search] showSearch called, type:\",_),ut=_,n.classList.add(\"active\"),console.log(\"[Search] container.classList after add:\",n.classList.toString()),i.focus(),console.log(\"[Search] focus called, container active:\",n.classList.contains(\"active\"))},a=async _=>{if(Y(o),_.length===0)o.innerHTML='

    No results.

    Try another search term?

    ',h=null,l&&Y(l);else for(let w of _){let M=w.tags.length>0?'
      '+w.tags.join(\"\")+\"
    \":\"\",S=document.createElement(\"a\");S.className=\"result-card\",S.id=w.slug,S.href=he(w.slug),S.innerHTML='

    '+w.title+\"

    \"+M+'

    '+w.content+\"

    \",S.addEventListener(\"click\",L=>{L.altKey||L.ctrlKey||L.metaKey||L.shiftKey||c()}),S.addEventListener(\"mouseenter\",()=>{m(S)}),o.appendChild(S)}},d=()=>Array.from(o.querySelectorAll(\".result-card:not(.no-match)\")),p=()=>ut===\"tags\"?J.substring(1).trim():J,D=async _=>{if(!l||(Y(l),!_))return;let w=_.id,M=++f,S=await Vn(w);if(M!==f)return;let L=p();for(let j of S){let I=j.cloneNode(!0);L.trim()!==\"\"&&(I.innerHTML=Xn(L,I)),l.appendChild(I)}},m=_=>{h&&h.classList.remove(\"focus\"),h=_,h&&h.classList.add(\"focus\"),D(h)},F=_=>{let w=d();if(w.length===0){m(null);return}let M=Math.min(Math.max(_,0),w.length-1);m(w[M]??null)},A=()=>{let _=d();if(_.length===0)return;let w=h?_.indexOf(h):-1;F(w+1)},B=()=>{let _=d();if(_.length===0)return;let w=h?_.indexOf(h):_.length;F(w-1)},b=async _=>{if(J=_.target.value,r.classList.toggle(\"display-results\",J!==\"\"),ut=J.startsWith(\"#\")?\"tags\":\"basic\",J===\"\"){Y(o),l&&Y(l),h=null;return}let w=J,M;if(ut===\"tags\"){let I=J.substring(1).trim();M=await ae.searchAsync({query:I,limit:ce,index:[\"tags\"]})}else M=await ae.searchAsync({query:w,limit:ce,index:[\"title\",\"content\"]});let S=new Set;for(let I of M)if(I&&I.result)for(let Dt of I.result)S.add(Dt);let L=[];S.forEach(I=>{L.push(Gn(J,I))}),await a(L.slice(0,ce));let j=d();m(j[0]??null)},k=_=>{console.log(\"[Search] Button click event, target:\",_.target,\"currentTarget:\",_.currentTarget),_.stopPropagation(),g(\"basic\")};u.addEventListener(\"click\",k),Ct(()=>u.removeEventListener(\"click\",k)),i.addEventListener(\"input\",b),Ct(()=>i.removeEventListener(\"input\",b));let v=_=>{if(_.key===\"ArrowUp\"||_.shiftKey&&_.key===\"Tab\"){_.preventDefault(),B();return}if(_.key===\"ArrowDown\"||_.key===\"Tab\"){_.preventDefault(),A();return}if(_.key===\"Enter\"){let w=h;w instanceof HTMLAnchorElement&&(c(),window.location.href=w.href)}};i.addEventListener(\"keydown\",v),Ct(()=>i.removeEventListener(\"keydown\",v));let C=_=>{_.key===\"k\"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey?(_.preventDefault(),n.classList.contains(\"active\")?c():g(\"basic\")):_.shiftKey&&(_.ctrlKey||_.metaKey)&&_.key.toLowerCase()===\"k\"&&(_.preventDefault(),g(\"tags\"),i.value=\"#\")};document.addEventListener(\"keydown\",C),Ct(()=>document.removeEventListener(\"keydown\",C));let E=tn(n,c);Ct(E)}}function on(t){let e=t.split(/\\s+/).filter(u=>u.trim()!==\"\"),n=e.length;if(n>1)for(let u=1;ui.length-u.length)}function Xn(t,e){let n=on(t).filter(h=>h.trim()!==\"\");if(n.length===0)return e.innerHTML;let u=sn.parseFromString(e.innerHTML,\"text/html\"),i=n.map(h=>h.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")).join(\"|\");if(i===\"\")return e.innerHTML;let r=new RegExp(i,\"gi\"),s=u.createTreeWalker(u.body,NodeFilter.SHOW_TEXT),o=[],l=s.nextNode();for(;l;)o.push(l),l=s.nextNode();for(let h of o){let f=h.nodeValue??\"\";if(r.lastIndex=0,!r.test(f))continue;r.lastIndex=0;let c=u.createDocumentFragment(),g=0,a;for(;(a=r.exec(f))!==null;){a.index>g&&c.appendChild(u.createTextNode(f.slice(g,a.index)));let d=u.createElement(\"span\");d.className=\"highlight\",d.textContent=a[0],c.appendChild(d),g=a.index+a[0].length}gl!==\"\"),r=0,s=i.length-1;if(n){let l=g=>u.some(a=>g.toLowerCase().startsWith(a.toLowerCase())),h=i.map(l),f=0,c=0;for(let g=0;gp+(D?1:0),0);d>=f&&(f=d,c=g)}r=Math.max(c-Ht/2,0),s=Math.min(r+Ht,i.length-1)}let o=i.map(l=>{let h=l;for(let f of u)if(l.toLowerCase().includes(f.toLowerCase())){let c=new RegExp(f.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\"),\"gi\");h=l.replace(c,g=>`${g}`);break}return h}).join(\" \");return(r===0?\"\":\"...\")+o+(s===i.length-1?\"\":\"...\")}function Yn(t,e){return!e||ut!==\"tags\"?[]:e.map(n=>n.toLowerCase().includes(t.toLowerCase())?`
  • #${n}

  • `:`
  • #${n}

  • `).slice(0,Un)}function Gn(t,e){let n=rn[e];if(!n||!pt)return{id:e,slug:\"\",title:\"\",content:\"\",tags:[]};let u=pt[n];return u?{id:e,slug:n,title:ut===\"tags\"?u.title:nn(t,u.title||\"\"),content:nn(t,u.content||\"\",!0),tags:Yn(t.substring(1),u.tags)}:{id:e,slug:n,title:\"\",content:\"\",tags:[]}}async function qn(){if(!pt)return;let t=0;for(let e of Object.keys(pt)){let n=pt[e];n&&(rn[t]=e,await ae.addAsync(t,{id:t,slug:e,title:n.title||\"\",content:n.content||\"\",tags:n.tags||[]}),t++)}}async function ti(){return await fetchData}var un=!1;async function ei(){un||(pt=await ti(),await qn(),un=!0)}async function ln(){Zn(),await ei(),await Qn()}document.addEventListener(\"nav\",ln);document.addEventListener(\"render\",ln);\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport { i18n } from \"../i18n\";\nimport style from \"./styles/search.scss\";\n// @ts-expect-error - inline script imported as string by esbuild loader\nimport script from \"./scripts/search.inline.ts\";\n\nexport interface SearchOptions {\n enablePreview: boolean;\n}\n\nconst defaultOptions: SearchOptions = {\n enablePreview: true,\n};\n\nexport default ((userOpts?: Partial) => {\n const Search: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const opts = { ...defaultOptions, ...userOpts };\n const locale = cfg.locale ?? \"en-US\";\n const searchPlaceholder = i18n(locale).components.search.searchBarPlaceholder;\n\n return (\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n };\n\n Search.afterDOMLoaded = script;\n Search.css = style;\n\n return Search;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/util/lang.ts","../../src/i18n/locales/en-US.ts","../../src/i18n/locales/de-DE.ts","../../src/i18n/locales/es-ES.ts","../../src/i18n/locales/fr-FR.ts","../../src/i18n/locales/ja-JP.ts","../../src/i18n/locales/zh-CN.ts","../../src/i18n/index.ts","../../src/components/styles/search.scss","../../src/components/scripts/search.inline.ts","../../src/components/Search.tsx"],"names":[],"mappings":";;;AAAO,SAAS,UAAA,CACd,iBACG,OAAA,EACK;AACR,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,OAAA,CAAQ,KAAK,YAAY,CAAA;AAAA,EAC3B;AACA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;;;ACRA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,oBAAA,EAAsB,yBAAA;AAAA,MACtB,SAAA,EAAW,aAAA;AAAA,MACX,aAAA,EAAe,0BAAA;AAAA,MACf,aAAA,EAAe,eAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACXA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,oBAAA,EAAsB,qBAAA;AAAA,MACtB,SAAA,EAAW,mBAAA;AAAA,MACX,aAAA,EAAe,0CAAA;AAAA,MACf,aAAA,EAAe,kBAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACXA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,oBAAA,EAAsB,gBAAA;AAAA,MACtB,SAAA,EAAW,iBAAA;AAAA,MACX,aAAA,EAAe,kDAAA;AAAA,MACf,aAAA,EAAe,sBAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACXA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,oBAAA,EAAsB,6BAAA;AAAA,MACtB,SAAA,EAAW,oBAAA;AAAA,MACX,aAAA,EAAe,0CAAA;AAAA,MACf,aAAA,EAAe,iBAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACXA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,oBAAA,EAAsB,mCAAA;AAAA,MACtB,SAAA,EAAW,oEAAA;AAAA,MACX,aAAA,EACE,sFAAA;AAAA,MACF,aAAA,EAAe,kDAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACZA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,oBAAA,EAAsB,6BAAA;AAAA,MACtB,SAAA,EAAW,gCAAA;AAAA,MACX,aAAA,EAAe,wDAAA;AAAA,MACf,aAAA,EAAe,gCAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACJA,IAAM,OAAA,GAAuC;AAAA,EAC3C,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;AAEO,SAAS,KAAK,MAAA,EAAgB;AACnC,EAAA,OAAO,OAAA,CAAQ,MAAM,CAAA,IAAK,aAAA;AAC5B;;;AClBA,IAAA,cAAA,GAAA,q9PAAA;;;ACAA,IAAA,qBAAA,GAAA,CAAA;AAAA,CAAA;ACkBA,IAAM,cAAA,GAAgC;AAAA,EACpC,aAAA,EAAe,IAAA;AAAA,EACf,aAAA,EAAe,CAAC,OAAA,EAAS,SAAA,EAAW,MAAM;AAC5C,CAAA;AAEA,IAAO,cAAA,IAAS,CAAC,QAAA,KAAsC;AACrD,EAAA,MAAM,MAAA,GAA0B,CAAC,EAAE,YAAA,EAAc,KAAI,KAA4B;AAC/E,IAAA,MAAM,IAAA,GAAO,EAAE,GAAG,cAAA,EAAgB,GAAG,QAAA,EAAS;AAC9C,IAAA,MAAM,MAAA,GAAS,IAAI,MAAA,IAAU,OAAA;AAC7B,IAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,MAAM,CAAA,CAAE,WAAW,MAAA,CAAO,oBAAA;AAEzD,IAAA,4BACG,KAAA,EAAA,EAAI,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,QAAQ,CAAA,EAC3C,QAAA,EAAA;AAAA,sBAAA,IAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAM,eAAA;AAAA,UACN,YAAA,EAAY,IAAA,CAAK,MAAM,CAAA,CAAE,WAAW,MAAA,CAAO,KAAA;AAAA,UAC3C,eAAA,EAAc,OAAA;AAAA,UAEd,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,SAAI,IAAA,EAAK,KAAA,EAAM,KAAA,EAAM,4BAAA,EAA6B,SAAQ,eAAA,EACzD,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,WAAM,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,8BACb,IAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAM,aAAA,EAAc,MAAK,MAAA,EAC1B,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,MAAA,EAAA,EAAK,gBAAA,EAAe,QAAA,EAAS,CAAA,EAAE,qBAAA,EAAsB,CAAA;AAAA,oCACrD,QAAA,EAAA,EAAO,EAAA,EAAG,KAAI,EAAA,EAAG,GAAA,EAAI,GAAE,GAAA,EAAI;AAAA,eAAA,EAC9B;AAAA,aAAA,EACF,CAAA;AAAA,gCACC,GAAA,EAAA,EAAG,QAAA,EAAA,IAAA,CAAK,MAAM,CAAA,CAAE,UAAA,CAAW,OAAO,KAAA,EAAM;AAAA;AAAA;AAAA,OAC3C;AAAA,0BACC,KAAA,EAAA,EAAI,KAAA,EAAM,oBACT,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,OAAM,cAAA,EACT,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAa,KAAA;AAAA,YACb,KAAA,EAAM,YAAA;AAAA,YACN,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,MAAA;AAAA,YACL,YAAA,EAAY,iBAAA;AAAA,YACZ,WAAA,EAAa;AAAA;AAAA,SACf;AAAA,wBACA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,eAAA;AAAA,YACN,gBAAc,IAAA,CAAK,aAAA;AAAA,YACnB,qBAAA,EAAqB,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,aAAa;AAAA;AAAA;AACvD,OAAA,EACH,CAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,MAAA,CAAO,cAAA,GAAiB,qBAAA;AACxB,EAAA,MAAA,CAAO,GAAA,GAAM,cAAA;AAEb,EAAA,OAAO,MAAA;AACT,CAAA","file":"index.js","sourcesContent":["export function classNames(\n displayClass?: \"mobile-only\" | \"desktop-only\",\n ...classes: string[]\n): string {\n if (displayClass) {\n classes.push(displayClass);\n }\n return classes.join(\" \");\n}\n","export default {\n components: {\n search: {\n title: \"Search\",\n searchBarPlaceholder: \"Search for something...\",\n noResults: \"No results.\",\n noResultsHint: \"Try another search term?\",\n tagFilterHint: \"Filter by tag\",\n noTagsFound: \"No matching tags\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Suche\",\n searchBarPlaceholder: \"Suche nach etwas...\",\n noResults: \"Keine Ergebnisse.\",\n noResultsHint: \"Versuchen Sie einen anderen Suchbegriff?\",\n tagFilterHint: \"Nach Tag filtern\",\n noTagsFound: \"Keine passenden Tags\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Buscar\",\n searchBarPlaceholder: \"Buscar algo...\",\n noResults: \"Sin resultados.\",\n noResultsHint: \"\\u00bfIntentar con otro t\\u00e9rmino de b\\u00fasqueda?\",\n tagFilterHint: \"Filtrar por etiqueta\",\n noTagsFound: \"No se encontraron etiquetas\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Recherche\",\n searchBarPlaceholder: \"Rechercher quelque chose...\",\n noResults: \"Aucun r\\u00e9sultat.\",\n noResultsHint: \"Essayez un autre terme de recherche\\u00a0?\",\n tagFilterHint: \"Filtrer par tag\",\n noTagsFound: \"Aucun tag correspondant\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"\\u691c\\u7d22\",\n searchBarPlaceholder: \"\\u4f55\\u304b\\u3092\\u691c\\u7d22...\",\n noResults: \"\\u7d50\\u679c\\u304c\\u898b\\u3064\\u304b\\u308a\\u307e\\u305b\\u3093\\u3002\",\n noResultsHint:\n \"\\u5225\\u306e\\u691c\\u7d22\\u8a9e\\u3092\\u304a\\u8a66\\u3057\\u304f\\u3060\\u3055\\u3044\\u3002\",\n tagFilterHint: \"\\u30bf\\u30b0\\u3067\\u30d5\\u30a3\\u30eb\\u30bf\\u30fc\",\n noTagsFound: \"\\u4e00\\u81f4\\u3059\\u308b\\u30bf\\u30b0\\u304c\\u3042\\u308a\\u307e\\u305b\\u3093\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"\\u641c\\u7d22\",\n searchBarPlaceholder: \"\\u641c\\u7d22\\u5185\\u5bb9...\",\n noResults: \"\\u6ca1\\u6709\\u7ed3\\u679c\\u3002\",\n noResultsHint: \"\\u8bf7\\u5c1d\\u8bd5\\u5176\\u4ed6\\u641c\\u7d22\\u8bcd\\u3002\",\n tagFilterHint: \"\\u6309\\u6807\\u7b7e\\u7b5b\\u9009\",\n noTagsFound: \"\\u6ca1\\u6709\\u5339\\u914d\\u7684\\u6807\\u7b7e\",\n },\n },\n};\n","import enUS from \"./locales/en-US\";\nimport deDE from \"./locales/de-DE\";\nimport esES from \"./locales/es-ES\";\nimport frFR from \"./locales/fr-FR\";\nimport jaJP from \"./locales/ja-JP\";\nimport zhCN from \"./locales/zh-CN\";\n\nconst locales: Record = {\n \"en-US\": enUS,\n \"de-DE\": deDE,\n \"es-ES\": esES,\n \"fr-FR\": frFR,\n \"ja-JP\": jaJP,\n \"zh-CN\": zhCN,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n",".search {\n min-width: fit-content;\n max-width: 14rem;\n}\n\n@media all and (max-width: 800px) {\n .search {\n flex-grow: 0.3;\n }\n}\n.search > .search-button {\n background-color: transparent;\n border: 1px var(--lightgray) solid;\n border-radius: 4px;\n font-family: inherit;\n font-size: inherit;\n height: 2rem;\n padding: 0 1rem 0 0;\n display: flex;\n align-items: center;\n text-align: inherit;\n cursor: pointer;\n white-space: nowrap;\n width: 100%;\n}\n\n.search > .search-button > p {\n display: inline;\n color: var(--gray);\n text-wrap: unset;\n}\n\n.search > .search-button svg {\n cursor: pointer;\n width: 18px;\n min-width: 18px;\n margin: 0 0.5rem;\n}\n\n.search > .search-button svg .search-path {\n stroke: var(--darkgray);\n stroke-width: 1.5px;\n transition: stroke 0.5s ease;\n}\n\n.search > .search-container {\n position: fixed;\n contain: layout;\n z-index: var(--search-z-index, 999);\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n overflow-y: auto;\n display: none;\n backdrop-filter: blur(4px);\n}\n\n.search > .search-container.active {\n display: inline-block;\n}\n\n.search > .search-container > .search-space {\n width: 65%;\n margin-top: 12vh;\n margin-left: auto;\n margin-right: auto;\n}\n\n@media all and not (min-width: 1200px) {\n .search > .search-container > .search-space {\n width: 90%;\n }\n}\n.search > .search-container > .search-space > *:not(.ghost-text):not(.tag-suggestions) {\n width: 100%;\n border-radius: 7px;\n background: var(--light);\n box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16);\n margin-bottom: 2em;\n}\n\n.search > .search-container > .search-space > input {\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n color: var(--dark);\n font-size: 1.1em;\n border: 1px solid var(--lightgray);\n}\n\n.search > .search-container > .search-space > input:focus {\n outline: none;\n}\n\n.search > .search-container > .search-space > .search-layout {\n display: none;\n flex-direction: row;\n border: 1px solid var(--lightgray);\n flex: 0 0 100%;\n box-sizing: border-box;\n}\n\n.search > .search-container > .search-space > .search-layout.display-results {\n display: flex;\n}\n\n.search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n flex: 0 0 min(30%, 450px);\n}\n\n@media all and not (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout[data-preview] .result-card > p.preview {\n display: none;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:first-child {\n border-right: 1px solid var(--lightgray);\n border-top-right-radius: unset;\n border-bottom-right-radius: unset;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:last-child {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n}\n.search > .search-container > .search-space > .search-layout > div {\n height: 63vh;\n border-radius: 5px;\n}\n\n@media all and (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout {\n flex-direction: column;\n }\n .search > .search-container > .search-space > .search-layout > .preview-container {\n display: none !important;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n width: 100%;\n height: auto;\n max-height: 60vh;\n flex: 0 0 100%;\n }\n}\n.search > .search-container > .search-space > .search-layout .highlight {\n background: color-mix(in srgb, var(--tertiary) 60%, rgba(255, 255, 255, 0));\n border-radius: 5px;\n scroll-margin-top: 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container {\n flex-grow: 1;\n display: block;\n overflow: hidden;\n font-family: inherit;\n color: var(--dark);\n line-height: 1.5em;\n font-weight: 400;\n overflow-y: auto;\n padding: 0 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container .preview-inner {\n margin: 0 auto;\n width: 100%;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container a[role=anchor] {\n background-color: transparent;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container {\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card {\n overflow: hidden;\n padding: 1em;\n cursor: pointer;\n transition: background 0.2s ease;\n border-bottom: 1px solid var(--lightgray);\n width: 100%;\n display: block;\n box-sizing: border-box;\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n text-transform: none;\n text-align: left;\n outline: none;\n font-weight: inherit;\n text-decoration: none;\n color: var(--dark);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:hover,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:focus,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.focus {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > h3 {\n margin: 0;\n color: var(--secondary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags {\n margin-top: 0.45rem;\n margin-bottom: 0;\n padding: 0;\n list-style: none;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags > li {\n display: inline-block;\n margin-right: 0.3rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p {\n border-radius: 8px;\n background-color: var(--highlight);\n padding: 0.2rem 0.4rem;\n margin: 0;\n line-height: 1.4rem;\n font-weight: 700;\n color: var(--secondary);\n font-size: 0.85rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p.match-tag {\n color: var(--tertiary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > p {\n margin-bottom: 0;\n margin-top: 0.5em;\n font-size: 0.9em;\n color: var(--gray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.no-match {\n cursor: default;\n}\n\n.search > .search-container > .search-space {\n position: relative;\n}\n\n.search > .search-container > .search-space > .ghost-text {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n font-size: 1.1em;\n color: var(--gray);\n opacity: 0.6;\n white-space: pre;\n overflow: hidden;\n height: auto;\n line-height: normal;\n border: 1px solid transparent;\n}\n\n.search > .search-container > .search-space > .tag-suggestions {\n position: absolute;\n top: calc(3.1em + 2px);\n left: 0;\n right: 0;\n z-index: calc(var(--search-z-index, 999) + 1);\n background: var(--light);\n border: 1px solid var(--lightgray);\n border-radius: 5px;\n box-shadow: 0 4px 12px rgba(27, 33, 48, 0.1), 0 2px 6px rgba(27, 33, 48, 0.08);\n max-height: 240px;\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item {\n padding: 0.4em 1em;\n cursor: pointer;\n font-family: var(--bodyFont);\n font-size: 0.95em;\n color: var(--dark);\n transition: background 0.15s ease;\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item:hover,\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item.active {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item.active {\n color: var(--secondary);\n font-weight: 600;\n}","var Ln=Object.create;var Me=Object.defineProperty;var jn=Object.getOwnPropertyDescriptor;var In=Object.getOwnPropertyNames;var Pn=Object.getPrototypeOf,Hn=Object.prototype.hasOwnProperty;var Wn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Rn=(t,e,n,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of In(e))!Hn.call(t,i)&&i!==n&&Me(t,i,{get:()=>e[i],enumerable:!(r=jn(e,i))||r.enumerable});return t};var Nn=(t,e,n)=>(n=t!=null?Ln(Pn(t)):{},Rn(e||!t||!t.__esModule?Me(n,\"default\",{value:t,enumerable:!0}):n,t));var ee=Wn(()=>{});var y;function z(t,e,n){let r=typeof n,i=typeof t;if(r!==\"undefined\"){if(i!==\"undefined\"){if(n){if(i===\"function\"&&r===i)return function(o){return t(n(o))};if(e=t.constructor,e===n.constructor){if(e===Array)return n.concat(t);if(e===Map){var s=new Map(n);for(var u of t)s.set(u[0],u[1]);return s}if(e===Set){u=new Set(n);for(s of t.values())u.add(s);return u}}}return t}return n}return i===\"undefined\"?e:t}function _t(t,e){return typeof t>\"u\"?e:t}function W(){return Object.create(null)}function U(t){return typeof t==\"string\"}function bt(t){return typeof t==\"object\"}function St(t,e){if(U(e))t=t[e];else for(let n=0;t&&n1?this.addMatcher(t,e):(this.mapper||(this.mapper=new Map),this.mapper.set(t,e),this.cache&&ft(this),this)};y.addMatcher=function(t,e){return typeof t==\"object\"?this.addReplacer(t,e):t.length<2&&(this.dedupe||this.mapper)?this.addMapper(t,e):(this.matcher||(this.matcher=new Map),this.matcher.set(t,e),this.h+=(this.h?\"|\":\"\")+t,this.J=null,this.cache&&ft(this),this)};y.addReplacer=function(t,e){return typeof t==\"string\"?this.addMatcher(t,e):(this.replacer||(this.replacer=[]),this.replacer.push(t,e),this.cache&&ft(this),this)};y.encode=function(t,e){if(this.cache&&t.length<=this.H)if(this.F){if(this.B.has(t))return this.B.get(t)}else this.F=setTimeout(ft,50,this);this.normalize&&(typeof this.normalize==\"function\"?t=this.normalize(t):t=Le?t.normalize(\"NFKD\").replace(Le,\"\").toLowerCase():t.toLowerCase()),this.prepare&&(t=this.prepare(t)),this.numeric&&t.length>3&&(t=t.replace($n,\"$1 $2\").replace(Kn,\"$1 $2\").replace(On,\"$1 \"));let n=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer),r=[],i=W(),s,u,o=this.split||this.split===\"\"?t.split(this.split):[t];for(let h=0,f,c;hthis.maxlength)){if(e){if(i[f])continue;i[f]=1}else{if(s===f)continue;s=f}if(n)r.push(f);else if(!this.filter||(typeof this.filter==\"function\"?this.filter(f):!this.filter.has(f))){if(this.cache&&f.length<=this.I)if(this.F){var l=this.D.get(f);if(l||l===\"\"){l&&r.push(l);continue}}else this.F=setTimeout(ft,50,this);if(this.stemmer){this.K||(this.K=new RegExp(\"(?!^)(\"+this.A+\")$\"));let D;for(;D!==f&&f.length>2;)D=f,f=f.replace(this.K,a=>this.stemmer.get(a))}if(f&&(this.mapper||this.dedupe&&f.length>1)){l=\"\";for(let D=0,a=\"\",d,p;D1&&(this.J||(this.J=new RegExp(\"(\"+this.h+\")\",\"g\")),f=f.replace(this.J,D=>this.matcher.get(D))),f&&this.replacer)for(l=0;f&&lthis.L&&(this.D.clear(),this.I=this.I/1.1|0)),f){if(f!==c)if(e){if(i[f])continue;i[f]=1}else{if(u===f)continue;u=f}r.push(f)}}}return this.finalize&&(r=this.finalize(r)||r),this.cache&&t.length<=this.H&&(this.B.set(t,r),this.B.size>this.L&&(this.B.clear(),this.H=this.H/1.1|0)),r};function ft(t){t.F=null,t.B.clear(),t.D.clear()}function le(t,e,n){n||(e||typeof t!=\"object\"?typeof e==\"object\"&&(n=e,e=0):n=t),n&&(t=n.query||t,e=n.limit||e);let r=\"\"+(e||0);n&&(r+=(n.offset||0)+!!n.context+!!n.suggest+(n.resolve!==!1)+(n.resolution||this.resolution)+(n.boost||0)),t=(\"\"+t).toLowerCase(),this.cache||(this.cache=new gt);let i=this.cache.get(t+r);if(!i){let s=n&&n.cache;s&&(n.cache=!1),i=this.search(t,e,n),s&&(n.cache=s),this.cache.set(t+r,i)}return i}function gt(t){this.limit=t&&t!==!0?t:1e3,this.cache=new Map,this.h=\"\"}gt.prototype.set=function(t,e){this.cache.set(this.h=t,e),this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};gt.prototype.get=function(t){let e=this.cache.get(t);return e&&this.h!==t&&(this.cache.delete(t),this.cache.set(this.h=t,e)),e};gt.prototype.remove=function(t){for(let e of this.cache){let n=e[0];e[1].includes(t)&&this.cache.delete(n)}};gt.prototype.clear=function(){this.cache.clear(),this.h=\"\"};var je={normalize:!1,numeric:!1,dedupe:!1},Pt={},ne=new Map([[\"b\",\"p\"],[\"v\",\"f\"],[\"w\",\"f\"],[\"z\",\"s\"],[\"x\",\"s\"],[\"d\",\"t\"],[\"n\",\"m\"],[\"c\",\"k\"],[\"g\",\"k\"],[\"j\",\"k\"],[\"q\",\"k\"],[\"i\",\"e\"],[\"y\",\"e\"],[\"u\",\"o\"]]),Ie=new Map([[\"ae\",\"a\"],[\"oe\",\"o\"],[\"sh\",\"s\"],[\"kh\",\"k\"],[\"th\",\"t\"],[\"ph\",\"f\"],[\"pf\",\"f\"]]),Pe=[/([^aeo])h(.)/g,\"$1$2\",/([aeo])h([^aeo]|$)/g,\"$1$2\",/(.)\\1+/g,\"$1\"],He={a:\"\",e:\"\",i:\"\",o:\"\",u:\"\",y:\"\",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,\\u00DF:2,d:3,t:3,l:4,m:5,n:5,r:6},he={Exact:je,Default:Pt,Normalize:Pt,LatinBalance:{mapper:ne},LatinAdvanced:{mapper:ne,matcher:Ie,replacer:Pe},LatinExtra:{mapper:ne,replacer:Pe.concat([/(?!^)[aeo]/g,\"\"]),matcher:Ie},LatinSoundex:{dedupe:!1,include:{letter:!0},finalize:function(t){for(let n=0;n=u.length)e-=u.length;else{e=u[r?\"splice\":\"slice\"](e,n);let o=e.length;if(o&&(i=i.length?i.concat(e):e,n-=o,r&&(t.length-=o),!n))break;e=0}return i}function wt(t){if(!this||this.constructor!==wt)return new wt(t);this.index=t?[t]:[],this.length=t?t.length:0;let e=this;return new Proxy([],{get(n,r){if(r===\"length\")return e.length;if(r===\"push\")return function(i){e.index[e.index.length-1].push(i),e.length++};if(r===\"pop\")return function(){if(e.length)return e.length--,e.index[e.index.length-1].pop()};if(r===\"indexOf\")return function(i){let s=0;for(let u=0,o,l;u=0)return s+l;s+=o.length}return-1};if(r===\"includes\")return function(i){for(let s=0;s32?(this.B=Je,this.A=BigInt(t)):(this.B=Ue,this.A=t)}J.prototype.get=function(t){let e=this.index[this.B(t)];return e&&e.get(t)};J.prototype.set=function(t,e){var n=this.B(t);let r=this.index[n];r?(n=r.size,r.set(t,e),(n-=r.size)&&this.size++):(this.index[n]=r=new Map([[t,e]]),this.h.push(r),this.size++)};function V(t=8){if(!this||this.constructor!==V)return new V(t);this.index=W(),this.h=[],this.size=0,t>32?(this.B=Je,this.A=BigInt(t)):(this.B=Ue,this.A=t)}V.prototype.add=function(t){var e=this.B(t);let n=this.index[e];n?(e=n.size,n.add(t),(e-=n.size)&&this.size++):(this.index[e]=n=new Set([t]),this.h.push(n),this.size++)};y=J.prototype;y.has=V.prototype.has=function(t){let e=this.index[this.B(t)];return e&&e.has(t)};y.delete=V.prototype.delete=function(t){let e=this.index[this.B(t)];e&&e.delete(t)&&this.size--};y.clear=V.prototype.clear=function(){this.index=W(),this.h=[],this.size=0};y.values=V.prototype.values=function*(){for(let t=0;t=this.priority*this.priority*3):(re=setTimeout(Jn,0),Re=Date.now()),Rt){let s=this;return new Promise(u=>{setTimeout(function(){u(s[t+\"Async\"].apply(s,e))},0)})}let i=this[t].apply(this,e);return n=i.then?i:new Promise(s=>s(i)),r&&n.then(r),n}}var nt=0;function at(t={},e){function n(o){function l(h){h=h.data||h;let f=h.id,c=f&&s.h[f];c&&(c(h.msg),delete s.h[f])}if(this.worker=o,this.h=W(),this.worker)return i?this.worker.on(\"message\",l):this.worker.onmessage=l,t.config?new Promise(function(h){nt>1e9&&(nt=0),s.h[++nt]=function(){h(s)},s.worker.postMessage({id:nt,task:\"init\",factory:r,options:t})}):(this.priority=t.priority||4,this.encoder=e||null,this.worker.postMessage({task:\"init\",factory:r,options:t}),this)}if(!this||this.constructor!==at)return new at(t);let r=typeof self<\"u\"?self._factory:typeof window<\"u\"?window._factory:null;r&&(r=r.toString());let i=typeof window>\"u\",s=this,u=Vn(r,i,t.worker);return u.then?u.then(function(o){return n.call(s,o)}):n.call(this,u)}it(\"add\");it(\"append\");it(\"search\");it(\"update\");it(\"remove\");it(\"clear\");it(\"export\");it(\"import\");at.prototype.searchCache=le;ce(at.prototype);function it(t){at.prototype[t]=function(){let e=this,n=[].slice.call(arguments);var r=n[n.length-1];let i;return typeof r==\"function\"&&(i=r,n.pop()),r=new Promise(function(s){t===\"export\"&&typeof n[0]==\"function\"&&(n[0]=null),nt>1e9&&(nt=0),e.h[++nt]=s,e.worker.postMessage({task:t,id:nt,args:n})}),i?(r.then(i),this):r}}function Vn(t,e,n){return e?typeof module<\"u\"?new(ee()).Worker(__dirname+\"/worker/node.js\"):Promise.resolve().then(()=>Nn(ee(),1)).then(function(r){return new r.Worker(import.meta.dirname+\"/node/node.mjs\")}):t?new window.Worker(URL.createObjectURL(new Blob([\"onmessage=\"+Un.toString()],{type:\"text/javascript\"}))):new window.Worker(typeof n==\"string\"?n:import.meta.url.replace(\"/worker.js\",\"/worker/worker.js\").replace(\"flexsearch.bundle.module.min.js\",\"module/worker/worker.js\").replace(\"flexsearch.bundle.module.min.mjs\",\"module/worker/worker.js\"),{type:\"module\"})}pt.prototype.add=function(t,e,n){if(bt(t)&&(e=t,t=St(e,this.key)),e&&(t||t===0)){if(!n&&this.reg.has(t))return this.update(t,e);for(let o=0,l;oe?t.slice(n,n+e):t,r?Et.call(this,t):t;let i=[];for(let s=0,u,o;s=o){n-=o;continue}u=u.slice(n,n+e),o=u.length,n=0}if(o>e&&(u=u.slice(0,e),o=e),!i.length&&o>=e)return r?Et.call(this,u):u;if(i.push(u),e-=o,!e)break}return i=i.length>1?[].concat.apply([],i):i[0],r?Et.call(this,i):i}function Jt(t,e,n,r){var i=r[0];if(i[0]&&i[0].query)return t[e].apply(t,i);if(!(e!==\"and\"&&e!==\"not\"||t.result.length||t.await||i.suggest))return r.length>1&&(i=r[r.length-1]),(r=i.resolve)?t.await||t.result:t;let s=[],u=0,o=0,l,h,f,c,D;for(e=0;e1&&(n=n[e].apply(n,t.slice(1))),n}j.prototype.or=function(){return Jt(this,\"or\",Zn,arguments)};function Zn(t,e,n,r,i,s,u){return t.length&&(this.result.length&&t.push(this.result),t.length<2?this.result=t[0]:(this.result=Ve(t,e,n,!1,this.h),n=0)),i&&(this.await=null),i?this.resolve(e,n,r,u):this}j.prototype.and=function(){return Jt(this,\"and\",Qn,arguments)};function Qn(t,e,n,r,i,s,u){if(!s&&!this.result.length)return i?this.result:this;let o;if(t.length)if(this.result.length&&t.unshift(this.result),t.length<2)this.result=t[0];else{let l=0;for(let h=0,f,c;h1?A.join(\" \"):A[0];let x;if(A&&E){for(var v=E.length,M=(Q.split?E.replace(Q.split,\"\"):E).length-A.length,T=\"\",N=0,R=0;R-1&&(T=(O?E.substring(0,O):\"\")+u+E.substring(O,O+H)+o+(O+H=l)break}if(b=ot.length*(s.length-2),a||d||l&&g.length-b>l)if(b=l+b-D*2,k=B-C,a>0&&(k+=a),d>0&&(k+=d),k<=b)m=a?C-(a>0?a:0):C-((b-k)/2|0),F=d?B+(d>0?d:0):m+b,h||(m>0&&g.charAt(m)!==\" \"&&g.charAt(m-1)!==\" \"&&(m=g.indexOf(\" \",m),m<0&&(m=0)),F=F.length-1){if(I>=F.length){k[x+1]=1,I>=m.length&&(b[x+1]=1);continue}v-=D}if(g=F[I].text,H=d&&A[x])if(H>0){if(g.length>H)if(k[x+1]=1,h)g=g.substring(0,H);else continue;(H-=g.length)||(H=-1),A[x]=H}else{k[x+1]=1;continue}if(v+g.length+1<=l)g=\" \"+g,B[x]+=g;else if(h)$=l-v-1,$>0&&(g=\" \"+g.substring(0,$),B[x]+=g),k[x+1]=1;else{k[x+1]=1;continue}}else{if(k[x])continue;if(I-=M,C[I]){v-=D,k[x]=1,b[x]=1;continue}if(I<=0){if(I<0){k[x]=1,b[x]=1;continue}v-=D}if(g=F[I].text,H=a&&E[x])if(H>0){if(g.length>H)if(k[x]=1,h)g=g.substring(g.length-H);else continue;(H-=g.length)||(H=-1),E[x]=H}else{k[x]=1;continue}if(v+g.length+1<=l)g+=\" \",B[x]=g+B[x];else if(h)$=g.length+1-(l-v),$>=0&&$=m.length-1||I1?Ve(l,n,r,u,s):(l=l[0])&&n&&l.length>n||r?l.slice(r,n+r):l;else{if(tn||r)&&(l=l.slice(r,n+r));else{i=[];for(let c=0,D;cr)r-=D.length;else if((n&&D.length>n||r)&&(D=D.slice(r,n+r),n-=D.length,r&&(r-=D.length)),i.push(D),!n)break}l=i}}return l}function Ve(t,e,n,r,i){let s=[],u=W(),o;var l=t.length;let h;if(r){for(i=l-1;i>=0;i--)if(h=(r=t[i])&&r.length){for(l=0;l=0;f--){c=t[f];for(let a=0;a1?zt(i,1,0,0,l,h):i[0],E)})}return a?i:new j(i.length>1?zt(i,1,0,0,l,h):i[0],this)}}a||u||!(c=c||this.field)||(U(c)?u=c:(c.constructor===Array&&c.length===1&&(c=c[0]),u=c.field||c.index)),c&&c.constructor!==Array&&(c=[c])}c||(c=this.field);let b;F=(this.worker||this.db)&&!r&&[];for(let E=0,A,v,M;E\"u\"&&(this.db?F.push(p=this.index.get(this.field[0]).db.enrich(p)):p=Et.call(this,p)),u)return a?d?Nt(t,p,this.index,u,d):p:new j(p,this);i[m]={field:s[m],result:p}}if(g&&this.db&&F.length){let E=this;return Promise.all(F).then(function(A){for(let v=0;v0&&((n&&e>n||r)&&(t=t.slice(r,r+n)),i&&(t=Et.call(this,t))),t):[]):[]}function Et(t){if(!this||!this.store)return t;if(this.db)return this.index.get(this.field[0]).db.enrich(t);let e=Array(t.length);for(let n=0,r;n1?n:n[0]}y.append=function(t,e){return this.add(t,e,!0)};y.update=function(t,e){return this.remove(t).add(t,e)};y.remove=function(t){bt(t)&&(t=St(t,this.key));for(var e of this.index.values())e.remove(t,!0);if(this.reg.has(t)){if(this.tag&&!this.fastupdate)for(let n of this.tag.values())for(let r of n){e=r[0];let i=r[1],s=i.indexOf(t);s>-1&&(i.length>1?i.splice(s,1):n.delete(e))}this.store&&this.store.delete(t),this.reg.delete(t)}return this.cache&&this.cache.remove(t),this};y.clear=function(){let t=[];for(let e of this.index.values()){let n=e.clear();n.then&&t.push(n)}if(this.tag)for(let e of this.tag.values())e.clear();return this.store&&this.store.clear(),this.cache&&this.cache.clear(),t.length?Promise.all(t):this};y.contain=function(t){return this.db?this.index.get(this.field[0]).db.has(t):this.reg.has(t)};y.cleanup=function(){for(let t of this.index.values())t.cleanup();return this};y.get=function(t){return this.db?this.index.get(this.field[0]).db.enrich(t).then(function(e){return e[0]&&e[0].doc||null}):this.store.get(t)||null};y.set=function(t,e){return typeof t==\"object\"&&(e=t,t=St(e,this.key)),this.store.set(t,e),this};y.searchCache=le;y.export=ei;y.import=ni;ce(pt.prototype);function pe(t,e=0){let n=[],r=[];e&&(e=25e4/e*5e3|0);for(let i of t.entries())r.push(i),r.length===e&&(n.push(r),r=[]);return r.length&&n.push(r),n}function ge(t,e){e||(e=new Map);for(let n=0,r;n2?n[0]:\"\";if(n=n.length>2?n[2]:n[1],this.worker&&r)return this.index.get(r).import(t);if(e){if(typeof e==\"string\"&&(e=JSON.parse(e)),r)return this.index.get(r).import(n,e);switch(n){case\"reg\":this.fastupdate=!1,this.reg=Ye(e,this.reg);for(let i=0,s;i=0&&i.splice(u,1)}}else Tt(this.map,t),this.depth&&Tt(this.ctx,t);e||this.reg.delete(t)}return this.db&&(this.commit_task.push({del:t}),this.M&&Ge(this)),this.cache&&this.cache.remove(t),this};function Tt(t,e){let n=0;var r=typeof e>\"u\";if(t.constructor===Array){for(let i=0,s,u,o;i=0){if(s.length>1)return s.splice(u,1),1;if(delete t[i],n)return 1;o=1}else{if(o)return 1;n++}}}else for(let i of t.entries())r=i[0],Tt(i[1],e)?n++:t.delete(r);return n}var ii={memory:{resolution:1},performance:{resolution:3,fastupdate:!0,context:{depth:1,resolution:1}},match:{tokenize:\"forward\"},score:{resolution:9,context:{depth:2,resolution:3}}};Z.prototype.add=function(t,e,n,r){if(e&&(t||t===0)){if(!r&&!n&&this.reg.has(t))return this.update(t,e);r=this.depth,e=this.encoder.encode(e,!r);let h=e.length;if(h){let f=W(),c=W(),D=this.resolution;for(let a=0;a2){for(let p=1,g,m,F,C;p2){for(let p=0,g;pp;s--){u=d.substring(p,s),g=this.rtl?i-1-p:p;var o=this.score?this.score(e,d,a,u,g):Wt(D,h,a,i,g);Y(this,c,u,o,t,n)}break}case\"bidirectional\":case\"reverse\":if(i>1){for(o=i-1;o>0;o--){u=d[this.rtl?i-1-o:o]+u;var l=this.score?this.score(e,d,a,u,o):Wt(D,h,a,i,o);Y(this,c,u,l,t,n)}u=\"\"}case\"forward\":if(i>1){for(o=0;o1&&au;let p=this.score?this.score(e,u,a,d,o-1):Wt(i+(h/2>i?0:1),h,a,s-1,o-1);Y(this,f,l?u:d,p,t,n,l?d:u)}}}}this.fastupdate||this.reg.add(t)}}return this.db&&(this.commit_task.push(n?{ins:t}:{del:t}),this.M&&Ge(this)),this};function Y(t,e,n,r,i,s,u){let o,l;if(!(o=e[n])||u&&!o[u]){if(u?(e=o||(e[n]=W()),e[u]=1,l=t.ctx,(o=l.get(u))?l=o:l.set(u,l=t.keystore?new J(t.keystore):new Map)):(l=t.map,e[n]=1),(o=l.get(n))?l=o:l.set(n,l=o=[]),s){for(let h=0,f;h1?e+(r||0)<=t?n+(i||0):(t-1)/(e+(r||0))*(n+(i||0))+1|0:0}Z.prototype.search=function(t,e,n){if(n||(e||typeof t!=\"object\"?typeof e==\"object\"&&(n=e,e=0):(n=t,t=\"\")),n&&n.cache)return n.cache=!1,t=this.searchCache(t,e,n),n.cache=!0,t;let r=[],i,s,u,o=0,l,h,f,c,D;n&&(t=n.query||t,e=n.limit||e,o=n.offset||0,s=n.context,u=n.suggest,D=(l=n.resolve)&&n.enrich,f=n.boost,c=n.resolution,h=this.db&&n.tag),typeof l>\"u\"&&(l=this.resolve),s=this.depth&&s!==!1;let a=this.encoder.encode(t,!s);if(i=a.length,e=e||(l?100:0),i===1)return $e.call(this,a[0],\"\",e,o,l,D,h);if(i===2&&s&&!u)return $e.call(this,a[1],a[0],e,o,l,D,h);let d=W(),p=0,g;if(s&&(g=a[0],p=1),c||c===0||(c=g?this.N:this.resolution),this.db){if(this.db.search&&(n=this.db.search(this,a,e,o,u,l,D,h),n!==!1))return n;let m=this;return(async function(){for(let F,C;p1)l=zt(t,e,n,r,i,s,u);else if(o===1)return u?fe.call(null,t[0],n,r):new j(t[0],this);return u?l:new j(l,this)}function $e(t,e,n,r,i,s,u){return t=oe(this,t,e,n,r,i,s,u),this.db?t.then(function(o){return i?o||[]:new j(o,this)}):t&&t.length?i?fe.call(this,t,n,r):new j(t,this):i?[]:new j([],this)}function Ke(t,e,n,r){let i=[];if(t&&t.length){if(t.length<=r){e.push(t);return}for(let s=0,u;sn)&&(l=n,n=e,e=l),t.db?t.db.get(e,n,r,i,s,u,o):(t=n?(t=t.ctx.get(n))&&t.get(e):t.map.get(e),t)}function Z(t,e){if(!this||this.constructor!==Z)return new Z(t);if(t){var n=U(t)?t:t.preset;n&&(t=Object.assign({},ii[n],t))}else t={};n=t.context;let r=n===!0?{depth:1}:n||{},i=U(t.encoder)?he[t.encoder]:t.encode||t.encoder||{};this.encoder=i.encode?i:typeof i==\"object\"?new At(i):{encode:i},this.resolution=t.resolution||9,this.tokenize=n=(n=t.tokenize)&&n!==\"default\"&&n!==\"exact\"&&n||\"strict\",this.depth=n===\"strict\"&&r.depth||0,this.bidirectional=r.bidirectional!==!1,this.fastupdate=!!t.fastupdate,this.score=t.score||null,(n=t.keystore||0)&&(this.keystore=n),this.map=n?new J(n):new Map,this.ctx=n?new J(n):new Map,this.reg=e||(this.fastupdate?n?new J(n):new Map:n?new V(n):new Set),this.N=r.resolution||3,this.rtl=i.rtl||t.rtl||!1,this.cache=(n=t.cache||null)&&new gt(n),this.resolve=t.resolve!==!1,(n=t.db)&&(this.db=this.mount(n)),this.M=t.commit!==!1,this.commit_task=[],this.commit_timer=null,this.priority=t.priority||4}y=Z.prototype;y.mount=function(t){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),t.mount(this)};y.commit=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.commit(this)};y.destroy=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.destroy()};function Ge(t){t.commit_timer||(t.commit_timer=setTimeout(function(){t.commit_timer=null,t.db.commit(t)},1))}y.clear=function(){return this.map.clear(),this.ctx.clear(),this.reg.clear(),this.cache&&this.cache.clear(),this.db?(this.commit_timer&&clearTimeout(this.commit_timer),this.commit_timer=null,this.commit_task=[],this.db.clear()):this};y.append=function(t,e){return this.add(t,e,!0)};y.contain=function(t){return this.db?this.db.has(t):this.reg.has(t)};y.update=function(t,e){let n=this,r=this.remove(t);return r&&r.then?r.then(()=>n.add(t,e)):this.add(t,e)};y.cleanup=function(){return this.fastupdate?(Tt(this.map),this.depth&&Tt(this.ctx),this):this};y.searchCache=le;y.export=function(t,e,n=0,r=0){let i,s;switch(r){case 0:i=\"reg\",s=Xe(this.reg);break;case 1:i=\"cfg\",s=null;break;case 2:i=\"map\",s=pe(this.map,this.reg.size);break;case 3:i=\"ctx\",s=Ze(this.ctx,this.reg.size);break;default:return}return $t.call(this,t,e,i,s,n,r)};y.import=function(t,e){if(e)switch(typeof e==\"string\"&&(e=JSON.parse(e)),t=t.split(\".\"),t[t.length-1]===\"json\"&&t.pop(),t.length===3&&t.shift(),t=t.length>1?t[1]:t[0],t){case\"reg\":this.fastupdate=!1,this.reg=Ye(e,this.reg);break;case\"map\":this.map=ge(e,this.map);break;case\"ctx\":this.ctx=Qe(e,this.ctx)}};y.serialize=function(t=!0){let e=\"\",n=\"\",r=\"\";if(this.reg.size){let s;for(var i of this.reg.keys())s||(s=typeof i),e+=(e?\",\":\"\")+(s===\"string\"?'\"'+i+'\"':i);e=\"index.reg=new Set([\"+e+\"]);\",n=ze(this.map,s),n=\"index.map=new Map([\"+n+\"]);\";for(let u of this.ctx.entries()){i=u[0];let o=ze(u[1],s);o=\"new Map([\"+o+\"])\",o='[\"'+i+'\",'+o+\"]\",r+=(r?\",\":\"\")+o}r=\"index.ctx=new Map([\"+r+\"]);\"}return t?\"function inject(index){\"+e+n+r+\"}\":e+n+r};ce(Z.prototype);var qe=typeof window<\"u\"&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Kt=[\"map\",\"ctx\",\"tag\",\"reg\",\"cfg\"],ct=W();function Ut(t,e={}){if(!this||this.constructor!==Ut)return new Ut(t,e);typeof t==\"object\"&&(e=t,t=t.name),t||console.info(\"Default storage space was used, because a name was not passed.\"),this.id=\"flexsearch\"+(t?\":\"+t.toLowerCase().replace(/[^a-z0-9_\\-]/g,\"\"):\"\"),this.field=e.field?e.field.toLowerCase().replace(/[^a-z0-9_\\-]/g,\"\"):\"\",this.type=e.type,this.fastupdate=this.support_tag_search=!1,this.db=null,this.h={}}y=Ut.prototype;y.mount=function(t){return t.index?t.mount(this):(t.db=this,this.open())};y.open=function(){if(this.db)return this.db;let t=this;navigator.storage&&navigator.storage.persist&&navigator.storage.persist(),ct[t.id]||(ct[t.id]=[]),ct[t.id].push(t.field);let e=qe.open(t.id,1);return e.onupgradeneeded=function(){let n=t.db=this.result;for(let r=0,i;r=f.length){r-=f.length;continue}let c=n?r+Math.min(f.length-r,n):f.length;for(let D=r;D=s.length?[]:!e&&!n?s:(s=s.slice(n,n+e),r?i.enrich(s):s)})};y.enrich=function(t){typeof t!=\"object\"&&(t=[t]);let e=this.db.transaction(\"reg\",\"readonly\").objectStore(\"reg\"),n=[];for(let r=0;r=0)if(i=1,o.length>1)o.splice(h,1);else{r[u]=[];break}s+=o.length}if(n)break}s?i&&t.update(r):t.delete(),t.continue()}y.remove=function(t){return typeof t!=\"object\"&&(t=[t]),Promise.all([this.transaction(\"map\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t)}}),this.transaction(\"ctx\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t)}}),this.transaction(\"tag\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t,!0)}}),this.transaction(\"reg\",\"readwrite\",function(e){for(let n=0;n{t.onsuccess=t.oncomplete=function(){e&&e(this.result),e=null,n(this.result)},t.onerror=t.onblocked=r,t=null})}var tn={Index:Z,Charset:he,Encoder:At,Document:pt,Worker:at,Resolver:j,IndexedDB:Ut,Language:{}};var Li=Object.hasOwnProperty;var un,P,on,ri,st,en,ln,hn,cn,_e,De,Fe,si,fn={},Qt=[],ui=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Yt=Array.isArray;function G(t,e){for(var n in e)t[n]=e[n];return t}function ye(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function de(t,e,n,r,i){var s={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++on,__i:-1,__u:0};return i==null&&P.vnode!=null&&P.vnode(s),s}function xt(t){return t.children}function Zt(t,e){this.props=t,this.context=e}function vt(t,e){if(e==null)return t.__?vt(t.__,t.__i+1):null;for(var n;ee&&st.sort(hn),t=st.shift(),e=st.length,oi(t)}finally{st.length=Xt.__r=0}}function pn(t,e,n,r,i,s,u,o,l,h,f){var c,D,a,d,p,g,m,F=r&&r.__k||Qt,C=e.length;for(l=li(n,e,F,l,C),c=0;c0?u=t.__k[s]=de(u.type,u.props,u.key,u.ref?u.ref:null,u.__v):t.__k[s]=u,l=s+D,u.__=t,u.__b=t.__b+1,o=null,(h=u.__i=hi(u,n,l,c))!=-1&&(c--,(o=n[h])&&(o.__u|=2)),o==null||o.__v==null?(h==-1&&(i>f?D--:il?D--:D++,u.__u|=4))):t.__k[s]=null;if(c)for(s=0;s(f?1:0)){for(i=n-1,s=n+1;i>=0||s=0?i--:s++])!=null&&(2&h.__u)==0&&o==h.key&&l==h.type)return u}return-1}function rn(t,e,n){e[0]==\"-\"?t.setProperty(e,n??\"\"):t[e]=n==null?\"\":typeof n!=\"number\"||ui.test(e)?n:n+\"px\"}function Vt(t,e,n,r,i){var s,u;t:if(e==\"style\")if(typeof n==\"string\")t.style.cssText=n;else{if(typeof r==\"string\"&&(t.style.cssText=r=\"\"),r)for(e in r)n&&e in n||rn(t.style,e,\"\");if(n)for(e in n)r&&n[e]==r[e]||rn(t.style,e,n[e])}else if(e[0]==\"o\"&&e[1]==\"n\")s=e!=(e=e.replace(cn,\"$1\")),u=e.toLowerCase(),e=u in t||e==\"onFocusOut\"||e==\"onFocusIn\"?u.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+s]=n,n?r?n.u=r.u:(n.u=_e,t.addEventListener(e,s?Fe:De,s)):t.removeEventListener(e,s?Fe:De,s);else{if(i==\"http://www.w3.org/2000/svg\")e=e.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(e!=\"width\"&&e!=\"height\"&&e!=\"href\"&&e!=\"list\"&&e!=\"form\"&&e!=\"tabIndex\"&&e!=\"download\"&&e!=\"rowSpan\"&&e!=\"colSpan\"&&e!=\"role\"&&e!=\"popover\"&&e in t)try{t[e]=n??\"\";break t}catch{}typeof n==\"function\"||(n==null||n===!1&&e[4]!=\"-\"?t.removeAttribute(e):t.setAttribute(e,e==\"popover\"&&n==1?\"\":n))}}function sn(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=_e++;else if(e.t0?t:Yt(t)?t.map(Dn):G({},t)}function fi(t,e,n,r,i,s,u,o,l){var h,f,c,D,a,d,p,g=n.props||fn,m=e.props,F=e.type;if(F==\"svg\"?i=\"http://www.w3.org/2000/svg\":F==\"math\"?i=\"http://www.w3.org/1998/Math/MathML\":i||(i=\"http://www.w3.org/1999/xhtml\"),s!=null){for(h=0;h\"u\"?\"\":document.body?.dataset?.basepath??\"\"}function Ee(t,e){let n=e??gi(),r=t.startsWith(\"/\")?t:\"/\"+t;return n+r}function q(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function mn(t,e){if(!t)return()=>{};let n=i=>{t.classList.contains(\"active\")&&i.target===t&&(i.preventDefault(),i.stopPropagation(),e())},r=i=>{t.classList.contains(\"active\")&&i.key===\"Escape\"&&(i.preventDefault(),e())};return t.addEventListener(\"click\",n),document.addEventListener(\"keydown\",r),()=>{t.removeEventListener(\"click\",n),document.removeEventListener(\"keydown\",r)}}function _n(t,e){let n=t.querySelectorAll(\"[src], [href]\");for(let r of Array.from(n)){let i=r.hasAttribute(\"href\")?\"href\":\"src\",s=r.getAttribute(i);if(s&&!(s.startsWith(\"http://\")||s.startsWith(\"https://\")||s.startsWith(\"mailto:\")||s.startsWith(\"tel:\")||s.startsWith(\"#\")||s.startsWith(\"/\")||s.startsWith(\"data:\")))try{let u=new URL(s,e).toString();r.setAttribute(i,u)}catch{continue}}}function Gt(t){return t.replaceAll(\"&\",\"&\").replaceAll(\"<\",\"<\").replaceAll(\">\",\">\").replaceAll('\"',\""\").replaceAll(\"'\",\"'\")}var Ae=\"basic\",te=\"\",yn=8,di=5,qt=30,Di=t=>{let e=[],n=-1,r=-1,i=t.toLowerCase(),s=0;for(let u of i){let o=u.codePointAt(0);o>=12352&&o<=12447||o>=12448&&o<=12543||o>=19968&&o<=40959||o>=44032&&o<=55215||o>=131072&&o<=173791?(n!==-1&&(e.push(i.slice(n,r)),n=-1),e.push(u)):o===32||o===9||o===10||o===13?n!==-1&&(e.push(i.slice(n,r)),n=-1):(n===-1&&(n=s),r=s+1),s+=u.length}return n!==-1&&e.push(i.slice(n)),e},ve=new tn.Document({encode:Di,document:{id:\"id\",tag:\"tags\",index:[{field:\"title\",tokenize:\"forward\"},{field:\"content\",tokenize:\"forward\"},{field:\"tags\",tokenize:\"forward\"}]}}),Dt=null,Se=[],xe=[],we=new Map;function Be(t){let e=t.split(/\\s+/),n=[],r=[];for(let i of e)i.startsWith(\"#\")&&i.length>1?n.push(i.substring(1)):i!==\"#\"&&r.push(i);return{tags:n,query:r.join(\" \").trim()}}function Cn(t){let e=t.split(/\\s+/),n=e[e.length-1];return n&&n.startsWith(\"#\")?n.substring(1):null}var An=new DOMParser;async function Fi(t){if(we.has(t))return we.get(t);let e=new URL(Ee(t),window.location.origin).toString();try{let n=await fetch(e);if(!n.ok)return[];let r=await n.text(),i=An.parseFromString(r??\"\",\"text/html\");_n(i,e);let s=Array.from(i.getElementsByClassName(\"popover-hint\"));return we.set(t,s),s}catch{return[]}}var ke=[];function dt(t){ke.push(t)}function mi(){ke.forEach(t=>t()),ke.length=0}async function _i(){let t=document.querySelectorAll(\".search\");for(let e of Array.from(t)){let n=e.querySelector(\".search-container\"),r=e.querySelector(\".search-button\"),i=e.querySelector(\".search-bar\"),s=e.querySelector(\".search-layout\");if(!n||!r||!i||!s)continue;let u=s.getAttribute(\"data-preview\")===\"true\",o=s.getAttribute(\"data-field-priority\"),l=o?JSON.parse(o):[\"title\",\"content\",\"tags\"],h=s.querySelector(\".results-container\");h||(h=document.createElement(\"div\"),h.className=\"results-container\",h.setAttribute(\"role\",\"listbox\"),h.setAttribute(\"aria-label\",\"Search results\"),s.appendChild(h));let f=s.querySelector(\".preview-container\");u&&!f&&(f=document.createElement(\"div\"),f.className=\"preview-container\",s.appendChild(f));let c=document.createElement(\"div\");c.className=\"tag-suggestions\",c.setAttribute(\"role\",\"listbox\"),c.setAttribute(\"aria-label\",\"Tag suggestions\"),c.style.display=\"none\";let D=i.parentElement;D.insertBefore(c,i.nextSibling);let a=document.createElement(\"span\");a.className=\"ghost-text\",a.setAttribute(\"aria-hidden\",\"true\"),D.insertBefore(a,i.nextSibling);let d=-1,p=[],g=!1,m=_=>{if(d<0||d>=p.length){a.textContent=\"\";return}let w=p[d];if(!w.toLowerCase().startsWith(_.toLowerCase())){a.textContent=\"\";return}let L=w.substring(_.length);a.innerHTML=\"\";let S=document.createElement(\"span\");S.style.visibility=\"hidden\",S.textContent=i.value,a.appendChild(S),a.appendChild(document.createTextNode(L))},F=()=>{c.querySelectorAll(\".tag-suggestion-item\").forEach((L,S)=>{L.classList.toggle(\"active\",S===d)});let w=Cn(i.value)||\"\";m(w)},C=()=>{g=!1,d=-1,p=[],c.style.display=\"none\",a.textContent=\"\"},B=_=>{let w=i.value,L=w.lastIndexOf(\"#\");L!==-1&&(i.value=w.substring(0,L)+\"#\"+_+\" \"),C(),i.focus(),i.dispatchEvent(new Event(\"input\"))},b=_=>{if(be){if(p=_===\"\"?xe.slice(0,10):xe.filter(w=>w.toLowerCase().startsWith(_.toLowerCase())).slice(0,10),p.length===0){C();return}d=0,g=!0,q(c);for(let w=0;w!g||p.length===0?!1:(_===\"down\"?d=Math.min(d+1,p.length-1):d=Math.max(d-1,0),F(),!0),E=null,A=0,v=null,M=()=>{n.classList.remove(\"active\"),r.setAttribute(\"aria-expanded\",\"false\"),i.value=\"\",q(h),f&&q(f),s.classList.remove(\"display-results\"),Ae=\"basic\",E=null,C(),r.focus()},T=_=>{Ae=_,n.classList.add(\"active\"),r.setAttribute(\"aria-expanded\",\"true\"),i.focus()},N=async _=>{if(q(h),_.length===0){let w=document.createElement(\"a\");w.className=\"result-card no-match\";let L=document.createElement(\"h3\");L.textContent=\"No results.\";let S=document.createElement(\"p\");S.textContent=\"Try another search term?\",w.appendChild(L),w.appendChild(S),h.appendChild(w),E=null,f&&q(f)}else for(let w of _){let L=document.createElement(\"a\");L.className=\"result-card\",L.id=w.slug,L.href=Ee(w.slug);let S=document.createElement(\"h3\");if(S.className=\"card-title\",S.innerHTML=w.title,L.appendChild(S),w.tags.length>0){let K=document.createElement(\"ul\");K.className=\"tags\",K.innerHTML=w.tags.join(\"\"),L.appendChild(K)}let X=document.createElement(\"p\");X.className=\"card-description\",X.innerHTML=w.content,L.appendChild(X),h.appendChild(L)}},R=()=>Array.from(h.querySelectorAll(\".result-card:not(.no-match)\")),O=()=>{let _=Be(te);return _.query||(_.tags.length>0?_.tags.join(\" \"):te)},H=async _=>{if(!f||(q(f),!_))return;let w=_.id,L=++A,S=await Fi(w);if(L!==A)return;let X=O(),K=document.createElement(\"div\");K.className=\"preview-inner\";for(let jt of S){let lt=jt.cloneNode(!0);X.trim()!==\"\"&&(lt.innerHTML=yi(X,lt)),K.appendChild(lt)}f.appendChild(K);let Lt=Array.from(f.getElementsByClassName(\"highlight\")).sort((jt,lt)=>lt.innerHTML.length-jt.innerHTML.length);Lt[0]&&Lt[0].scrollIntoView({block:\"start\"})},$=_=>{E&&E.classList.remove(\"focus\"),E=_,E&&E.classList.add(\"focus\"),v&&clearTimeout(v),v=setTimeout(()=>H(E),150)},Ft=_=>{let w=R();if(w.length===0){$(null);return}let L=Math.min(Math.max(_,0),w.length-1);$(w[L]??null)},Q=()=>{let _=R();if(_.length===0)return;let w=E?_.indexOf(E):-1;Ft(w+1)},Mt=()=>{let _=R();if(_.length===0)return;let w=E?_.indexOf(E):_.length;Ft(w-1)},tt=async _=>{let w=_.target.value;te=w;let L=Cn(w);L!==null?b(L):C();let S=Be(w),X=S.query!==\"\"||S.tags.length>0;if(s.classList.toggle(\"display-results\",X),Ae=S.tags.length>0&&!S.query?\"tags\":\"basic\",!X){q(h),f&&q(f),E=null;return}let K;S.query?K=await ve.searchAsync({query:S.query,limit:S.tags.length>0?1e4:yn,index:[\"title\",\"content\"]}):S.tags.length>0?K=await ve.searchAsync({query:S.tags[0],limit:1e4,index:[\"tags\"]}):K=[];let Lt=ht=>{let Bt=K.filter(It=>It.field===ht);return Bt.length===0?[]:[...Bt[0].result]},lt=[...new Set(l.flatMap(ht=>Lt(ht)))].filter(ht=>{if(S.tags.length===0)return!0;let Bt=Se[ht];if(!Bt)return!1;let It=Dt?.[Bt];if(!It)return!1;let Sn=It.tags||[];return S.tags.every(Tn=>Sn.some(Mn=>Mn.toLowerCase()===Tn.toLowerCase()))}),Bn=S.query||(S.tags.length>0?S.tags.join(\" \"):w),kn=lt.map(ht=>Ei(Bn,ht));await N(kn.slice(0,yn));let bn=R();$(bn[0]??null)},et=_=>{_.stopPropagation(),T(\"basic\")};r.addEventListener(\"click\",et),dt(()=>r.removeEventListener(\"click\",et)),i.addEventListener(\"input\",tt),dt(()=>i.removeEventListener(\"input\",tt));let ut=_=>{if(g){if(_.key===\"ArrowDown\"){_.preventDefault(),k(\"down\");return}if(_.key===\"ArrowUp\"){_.preventDefault(),k(\"up\");return}if(_.key===\"Tab\"){_.preventDefault(),d>=0&&d=0&&di.removeEventListener(\"keydown\",ut));let ot=_=>{_.key===\"k\"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey?(_.preventDefault(),n.classList.contains(\"active\")?M():T(\"basic\")):_.shiftKey&&(_.ctrlKey||_.metaKey)&&_.key.toLowerCase()===\"k\"&&(_.preventDefault(),T(\"tags\"),i.value=\"#\",i.dispatchEvent(new Event(\"input\")))};document.addEventListener(\"keydown\",ot),dt(()=>document.removeEventListener(\"keydown\",ot));let x=_=>{let w=_.target.closest(\".result-card\");!w||w.classList.contains(\"no-match\")||_ instanceof MouseEvent&&(_.altKey||_.ctrlKey||_.metaKey||_.shiftKey)||M()},I=_=>{let w=_.target.closest(\".result-card\");!w||w.classList.contains(\"no-match\")||$(w)};h.addEventListener(\"click\",x),h.addEventListener(\"mouseover\",I),dt(()=>{h.removeEventListener(\"click\",x),h.removeEventListener(\"mouseover\",I)});let mt=_=>{let w=_.target.closest(\".tag-suggestion-item\");if(!w)return;let L=w.getAttribute(\"data-tag\");L&&B(L)},Te=_=>{let w=_.target.closest(\".tag-suggestion-item\");if(!w)return;let L=w.getAttribute(\"data-index\");L!==null&&(d=parseInt(L,10),F())};c.addEventListener(\"click\",mt),c.addEventListener(\"mouseover\",Te),dt(()=>{c.removeEventListener(\"click\",mt),c.removeEventListener(\"mouseover\",Te)});let xn=mn(n,M);dt(xn)}}function wn(t){let e=t.split(/\\s+/).filter(r=>r.trim()!==\"\"),n=e.length;if(n>1)for(let r=1;ri.length-r.length)}function yi(t,e){let n=wn(t).filter(h=>h.trim()!==\"\");if(n.length===0)return e.innerHTML;let r=An.parseFromString(e.innerHTML,\"text/html\"),i=n.map(h=>h.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")).join(\"|\");if(i===\"\")return e.innerHTML;let s=new RegExp(i,\"gi\"),u=r.createTreeWalker(r.body,NodeFilter.SHOW_TEXT),o=[],l=u.nextNode();for(;l;)o.push(l),l=u.nextNode();for(let h of o){let f=h.nodeValue??\"\";if(s.lastIndex=0,!s.test(f))continue;s.lastIndex=0;let c=r.createDocumentFragment(),D=0,a;for(;(a=s.exec(f))!==null;){a.index>D&&c.appendChild(r.createTextNode(f.slice(D,a.index)));let d=r.createElement(\"span\");d.className=\"highlight\",d.textContent=a[0],c.appendChild(d),D=a.index+a[0].length}Dl!==\"\"),s=0,u=i.length-1;if(n){let l=D=>r.some(a=>D.toLowerCase().startsWith(a.toLowerCase())),h=i.map(l),f=0,c=0;for(let D=0;Dp+(g?1:0),0);d>=f&&(f=d,c=D)}s=Math.max(c-qt,0),u=Math.min(s+2*qt,i.length-1),i=i.slice(s,u)}let o=i.map(l=>{let h=l;for(let f of r)if(l.toLowerCase().includes(f.toLowerCase())){let c=new RegExp(f.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\"),\"gi\");h=l.replace(c,D=>`${D}`);break}return h}).join(\" \");return(s===0?\"\":\"...\")+o+(u===i.length-1?\"\":\"...\")}function Ci(t,e){return!e||e.length===0||t.length===0?[]:e.map(n=>{let r=Gt(n);return t.some(i=>n.toLowerCase().includes(i.toLowerCase()))?`
  • #${r}

  • `:`
  • #${r}

  • `}).slice(0,di)}function Ei(t,e){let n=Se[e];if(!n||!Dt)return{id:e,slug:\"\",title:\"\",content:\"\",tags:[]};let r=Dt[n];if(!r)return{id:e,slug:n,title:\"\",content:\"\",tags:[]};let i=Be(te);return{id:e,slug:n,title:i.tags.length>0&&!i.query?Gt(r.title):En(t,r.title||\"\"),content:En(t,r.content||\"\",!0),tags:Ci(i.tags,r.tags)}}async function Ai(){if(!Dt)return;let t=0,e=[],n=new Set;for(let r of Object.keys(Dt)){let i=Dt[r];if(i){Se[t]=r;for(let s of i.tags||[])n.add(s);e.push(ve.addAsync(t,{id:t,slug:r,title:i.title||\"\",content:i.content||\"\",tags:i.tags||[]})),t++}}await Promise.all(e),xe=[...n].sort()}async function wi(){return await fetchData}var be=!1;async function vi(){be||(Dt=await wi(),await Ai(),be=!0)}async function vn(){mi(),await vi(),await _i()}document.addEventListener(\"nav\",vn);document.addEventListener(\"render\",vn);\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport { i18n } from \"../i18n\";\nimport style from \"./styles/search.scss\";\n// @ts-expect-error - inline script imported as string by esbuild loader\nimport script from \"./scripts/search.inline.ts\";\n\nexport type SearchField = \"title\" | \"content\" | \"tags\";\n\nexport interface SearchOptions {\n enablePreview: boolean;\n fieldPriority: SearchField[];\n}\n\nconst defaultOptions: SearchOptions = {\n enablePreview: true,\n fieldPriority: [\"title\", \"content\", \"tags\"],\n};\n\nexport default ((userOpts?: Partial) => {\n const Search: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const opts = { ...defaultOptions, ...userOpts };\n const locale = cfg.locale ?? \"en-US\";\n const searchPlaceholder = i18n(locale).components.search.searchBarPlaceholder;\n\n return (\n
    \n \n \n Search\n \n \n \n \n \n

    {i18n(locale).components.search.title}

    \n \n
    \n
    \n \n
    \n
    \n
    \n \n );\n };\n\n Search.afterDOMLoaded = script;\n Search.css = style;\n\n return Search;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index 9baea26..cebeb48 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,8 +1,10 @@ import { QuartzComponent } from '@quartz-community/types'; +type SearchField = "title" | "content" | "tags"; interface SearchOptions { enablePreview: boolean; + fieldPriority: SearchField[]; } declare const _default: (userOpts?: Partial) => QuartzComponent; -export { _default as Search, type SearchOptions }; +export { _default as Search, type SearchField, type SearchOptions }; diff --git a/dist/index.js b/dist/index.js index 329405f..ef6040e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -13,7 +13,11 @@ var en_US_default = { components: { search: { title: "Search", - searchBarPlaceholder: "Search for something" + searchBarPlaceholder: "Search for something...", + noResults: "No results.", + noResultsHint: "Try another search term?", + tagFilterHint: "Filter by tag", + noTagsFound: "No matching tags" } } }; @@ -23,7 +27,11 @@ var de_DE_default = { components: { search: { title: "Suche", - searchBarPlaceholder: "Suche nach etwas" + searchBarPlaceholder: "Suche nach etwas...", + noResults: "Keine Ergebnisse.", + noResultsHint: "Versuchen Sie einen anderen Suchbegriff?", + tagFilterHint: "Nach Tag filtern", + noTagsFound: "Keine passenden Tags" } } }; @@ -33,7 +41,11 @@ var es_ES_default = { components: { search: { title: "Buscar", - searchBarPlaceholder: "Buscar algo" + searchBarPlaceholder: "Buscar algo...", + noResults: "Sin resultados.", + noResultsHint: "\xBFIntentar con otro t\xE9rmino de b\xFAsqueda?", + tagFilterHint: "Filtrar por etiqueta", + noTagsFound: "No se encontraron etiquetas" } } }; @@ -43,7 +55,11 @@ var fr_FR_default = { components: { search: { title: "Recherche", - searchBarPlaceholder: "Rechercher quelque chose" + searchBarPlaceholder: "Rechercher quelque chose...", + noResults: "Aucun r\xE9sultat.", + noResultsHint: "Essayez un autre terme de recherche\xA0?", + tagFilterHint: "Filtrer par tag", + noTagsFound: "Aucun tag correspondant" } } }; @@ -53,7 +69,11 @@ var ja_JP_default = { components: { search: { title: "\u691C\u7D22", - searchBarPlaceholder: "\u4F55\u304B\u3092\u691C\u7D22" + searchBarPlaceholder: "\u4F55\u304B\u3092\u691C\u7D22...", + noResults: "\u7D50\u679C\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002", + noResultsHint: "\u5225\u306E\u691C\u7D22\u8A9E\u3092\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002", + tagFilterHint: "\u30BF\u30B0\u3067\u30D5\u30A3\u30EB\u30BF\u30FC", + noTagsFound: "\u4E00\u81F4\u3059\u308B\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093" } } }; @@ -63,7 +83,11 @@ var zh_CN_default = { components: { search: { title: "\u641C\u7D22", - searchBarPlaceholder: "\u641C\u7D22\u5185\u5BB9" + searchBarPlaceholder: "\u641C\u7D22\u5185\u5BB9...", + noResults: "\u6CA1\u6709\u7ED3\u679C\u3002", + noResultsHint: "\u8BF7\u5C1D\u8BD5\u5176\u4ED6\u641C\u7D22\u8BCD\u3002", + tagFilterHint: "\u6309\u6807\u7B7E\u7B5B\u9009", + noTagsFound: "\u6CA1\u6709\u5339\u914D\u7684\u6807\u7B7E" } } }; @@ -82,13 +106,14 @@ function i18n(locale) { } // src/components/styles/search.scss -var search_default = ".search {\n min-width: fit-content;\n max-width: 14rem;\n}\n\n@media all and (max-width: 800px) {\n .search {\n flex-grow: 0.3;\n }\n}\n.search > .search-button {\n background-color: transparent;\n border: 1px var(--lightgray) solid;\n border-radius: 4px;\n font-family: inherit;\n font-size: inherit;\n height: 2rem;\n padding: 0 1rem 0 0;\n display: flex;\n align-items: center;\n text-align: inherit;\n cursor: pointer;\n white-space: nowrap;\n width: 100%;\n}\n\n.search > .search-button > p {\n display: inline;\n color: var(--gray);\n text-wrap: unset;\n}\n\n.search > .search-button svg {\n cursor: pointer;\n width: 18px;\n min-width: 18px;\n margin: 0 0.5rem;\n}\n\n.search > .search-button svg .search-path {\n stroke: var(--darkgray);\n stroke-width: 1.5px;\n transition: stroke 0.5s ease;\n}\n\n.search > .search-container {\n position: fixed;\n contain: layout;\n z-index: 999;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n overflow-y: auto;\n display: none;\n backdrop-filter: blur(4px);\n}\n\n.search > .search-container.active {\n display: inline-block;\n}\n\n.search > .search-container > .search-space {\n width: 65%;\n margin-top: 12vh;\n margin-left: auto;\n margin-right: auto;\n}\n\n@media all and not (min-width: 1200px) {\n .search > .search-container > .search-space {\n width: 90%;\n }\n}\n.search > .search-container > .search-space > * {\n width: 100%;\n border-radius: 7px;\n background: var(--light);\n box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16);\n margin-bottom: 2em;\n}\n\n.search > .search-container > .search-space > input {\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n color: var(--dark);\n font-size: 1.1em;\n border: 1px solid var(--lightgray);\n}\n\n.search > .search-container > .search-space > input:focus {\n outline: none;\n}\n\n.search > .search-container > .search-space > .search-layout {\n display: none;\n flex-direction: row;\n border: 1px solid var(--lightgray);\n flex: 0 0 100%;\n box-sizing: border-box;\n}\n\n.search > .search-container > .search-space > .search-layout.display-results {\n display: flex;\n}\n\n.search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n flex: 0 0 min(30%, 450px);\n}\n\n@media all and not (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout[data-preview] .result-card > p.preview {\n display: none;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:first-child {\n border-right: 1px solid var(--lightgray);\n border-top-right-radius: unset;\n border-bottom-right-radius: unset;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:last-child {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n}\n.search > .search-container > .search-space > .search-layout > div {\n height: 63vh;\n border-radius: 5px;\n}\n\n@media all and (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout {\n flex-direction: column;\n }\n .search > .search-container > .search-space > .search-layout > .preview-container {\n display: none !important;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n width: 100%;\n height: auto;\n flex: 0 0 100%;\n }\n}\n.search > .search-container > .search-space > .search-layout .highlight {\n background: color-mix(in srgb, var(--tertiary) 60%, rgba(255, 255, 255, 0));\n border-radius: 5px;\n scroll-margin-top: 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container {\n flex-grow: 1;\n display: block;\n overflow: hidden;\n font-family: inherit;\n color: var(--dark);\n line-height: 1.5em;\n font-weight: 400;\n overflow-y: auto;\n padding: 0 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container .preview-inner {\n margin: 0 auto;\n width: 100%;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container a[role=anchor] {\n background-color: transparent;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container {\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card {\n overflow: hidden;\n padding: 1em;\n cursor: pointer;\n transition: background 0.2s ease;\n border-bottom: 1px solid var(--lightgray);\n width: 100%;\n display: block;\n box-sizing: border-box;\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n text-transform: none;\n text-align: left;\n outline: none;\n font-weight: inherit;\n text-decoration: none;\n color: var(--dark);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:hover,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:focus,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.focus {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > h3 {\n margin: 0;\n color: var(--secondary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags {\n margin-top: 0.45rem;\n margin-bottom: 0;\n padding: 0;\n list-style: none;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags > li {\n display: inline-block;\n margin-right: 0.3rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p {\n border-radius: 8px;\n background-color: var(--highlight);\n padding: 0.2rem 0.4rem;\n margin: 0;\n line-height: 1.4rem;\n font-weight: 700;\n color: var(--secondary);\n font-size: 0.85rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p.match-tag {\n color: var(--tertiary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > p {\n margin-bottom: 0;\n margin-top: 0.5em;\n font-size: 0.9em;\n color: var(--gray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.no-match {\n cursor: default;\n}"; +var search_default = ".search {\n min-width: fit-content;\n max-width: 14rem;\n}\n\n@media all and (max-width: 800px) {\n .search {\n flex-grow: 0.3;\n }\n}\n.search > .search-button {\n background-color: transparent;\n border: 1px var(--lightgray) solid;\n border-radius: 4px;\n font-family: inherit;\n font-size: inherit;\n height: 2rem;\n padding: 0 1rem 0 0;\n display: flex;\n align-items: center;\n text-align: inherit;\n cursor: pointer;\n white-space: nowrap;\n width: 100%;\n}\n\n.search > .search-button > p {\n display: inline;\n color: var(--gray);\n text-wrap: unset;\n}\n\n.search > .search-button svg {\n cursor: pointer;\n width: 18px;\n min-width: 18px;\n margin: 0 0.5rem;\n}\n\n.search > .search-button svg .search-path {\n stroke: var(--darkgray);\n stroke-width: 1.5px;\n transition: stroke 0.5s ease;\n}\n\n.search > .search-container {\n position: fixed;\n contain: layout;\n z-index: var(--search-z-index, 999);\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n overflow-y: auto;\n display: none;\n backdrop-filter: blur(4px);\n}\n\n.search > .search-container.active {\n display: inline-block;\n}\n\n.search > .search-container > .search-space {\n width: 65%;\n margin-top: 12vh;\n margin-left: auto;\n margin-right: auto;\n}\n\n@media all and not (min-width: 1200px) {\n .search > .search-container > .search-space {\n width: 90%;\n }\n}\n.search > .search-container > .search-space > *:not(.ghost-text):not(.tag-suggestions) {\n width: 100%;\n border-radius: 7px;\n background: var(--light);\n box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16);\n margin-bottom: 2em;\n}\n\n.search > .search-container > .search-space > input {\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n color: var(--dark);\n font-size: 1.1em;\n border: 1px solid var(--lightgray);\n}\n\n.search > .search-container > .search-space > input:focus {\n outline: none;\n}\n\n.search > .search-container > .search-space > .search-layout {\n display: none;\n flex-direction: row;\n border: 1px solid var(--lightgray);\n flex: 0 0 100%;\n box-sizing: border-box;\n}\n\n.search > .search-container > .search-space > .search-layout.display-results {\n display: flex;\n}\n\n.search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n flex: 0 0 min(30%, 450px);\n}\n\n@media all and not (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout[data-preview] .result-card > p.preview {\n display: none;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:first-child {\n border-right: 1px solid var(--lightgray);\n border-top-right-radius: unset;\n border-bottom-right-radius: unset;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:last-child {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n}\n.search > .search-container > .search-space > .search-layout > div {\n height: 63vh;\n border-radius: 5px;\n}\n\n@media all and (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout {\n flex-direction: column;\n }\n .search > .search-container > .search-space > .search-layout > .preview-container {\n display: none !important;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n width: 100%;\n height: auto;\n max-height: 60vh;\n flex: 0 0 100%;\n }\n}\n.search > .search-container > .search-space > .search-layout .highlight {\n background: color-mix(in srgb, var(--tertiary) 60%, rgba(255, 255, 255, 0));\n border-radius: 5px;\n scroll-margin-top: 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container {\n flex-grow: 1;\n display: block;\n overflow: hidden;\n font-family: inherit;\n color: var(--dark);\n line-height: 1.5em;\n font-weight: 400;\n overflow-y: auto;\n padding: 0 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container .preview-inner {\n margin: 0 auto;\n width: 100%;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container a[role=anchor] {\n background-color: transparent;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container {\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card {\n overflow: hidden;\n padding: 1em;\n cursor: pointer;\n transition: background 0.2s ease;\n border-bottom: 1px solid var(--lightgray);\n width: 100%;\n display: block;\n box-sizing: border-box;\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n text-transform: none;\n text-align: left;\n outline: none;\n font-weight: inherit;\n text-decoration: none;\n color: var(--dark);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:hover,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:focus,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.focus {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > h3 {\n margin: 0;\n color: var(--secondary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags {\n margin-top: 0.45rem;\n margin-bottom: 0;\n padding: 0;\n list-style: none;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags > li {\n display: inline-block;\n margin-right: 0.3rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p {\n border-radius: 8px;\n background-color: var(--highlight);\n padding: 0.2rem 0.4rem;\n margin: 0;\n line-height: 1.4rem;\n font-weight: 700;\n color: var(--secondary);\n font-size: 0.85rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p.match-tag {\n color: var(--tertiary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > p {\n margin-bottom: 0;\n margin-top: 0.5em;\n font-size: 0.9em;\n color: var(--gray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.no-match {\n cursor: default;\n}\n\n.search > .search-container > .search-space {\n position: relative;\n}\n\n.search > .search-container > .search-space > .ghost-text {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n font-size: 1.1em;\n color: var(--gray);\n opacity: 0.6;\n white-space: pre;\n overflow: hidden;\n height: auto;\n line-height: normal;\n border: 1px solid transparent;\n}\n\n.search > .search-container > .search-space > .tag-suggestions {\n position: absolute;\n top: calc(3.1em + 2px);\n left: 0;\n right: 0;\n z-index: calc(var(--search-z-index, 999) + 1);\n background: var(--light);\n border: 1px solid var(--lightgray);\n border-radius: 5px;\n box-shadow: 0 4px 12px rgba(27, 33, 48, 0.1), 0 2px 6px rgba(27, 33, 48, 0.08);\n max-height: 240px;\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item {\n padding: 0.4em 1em;\n cursor: pointer;\n font-family: var(--bodyFont);\n font-size: 0.95em;\n color: var(--dark);\n transition: background 0.15s ease;\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item:hover,\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item.active {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item.active {\n color: var(--secondary);\n font-weight: 600;\n}"; // src/components/scripts/search.inline.ts -var search_inline_default = `var hn=Object.create;var ge=Object.defineProperty;var cn=Object.getOwnPropertyDescriptor;var fn=Object.getOwnPropertyNames;var an=Object.getPrototypeOf,pn=Object.prototype.hasOwnProperty;var Dn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var gn=(t,e,n,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of fn(e))!pn.call(t,i)&&i!==n&&ge(t,i,{get:()=>e[i],enumerable:!(u=cn(e,i))||u.enumerable});return t};var dn=(t,e,n)=>(n=t!=null?hn(an(t)):{},gn(e||!t||!t.__esModule?ge(n,"default",{value:t,enumerable:!0}):n,t));var Ot=Dn(()=>{});var y;function z(t,e,n){let u=typeof n,i=typeof t;if(u!=="undefined"){if(i!=="undefined"){if(n){if(i==="function"&&u===i)return function(o){return t(n(o))};if(e=t.constructor,e===n.constructor){if(e===Array)return n.concat(t);if(e===Map){var r=new Map(n);for(var s of t)r.set(s[0],s[1]);return r}if(e===Set){s=new Set(n);for(r of t.values())s.add(r);return s}}}return t}return n}return i==="undefined"?e:t}function rt(t,e){return typeof t>"u"?e:t}function W(){return Object.create(null)}function H(t){return typeof t=="string"}function mt(t){return typeof t=="object"}function _t(t,e){if(H(e))t=t[e];else for(let n=0;t&&n1?this.addMatcher(t,e):(this.mapper||(this.mapper=new Map),this.mapper.set(t,e),this.cache&&tt(this),this)};y.addMatcher=function(t,e){return typeof t=="object"?this.addReplacer(t,e):t.length<2&&(this.dedupe||this.mapper)?this.addMapper(t,e):(this.matcher||(this.matcher=new Map),this.matcher.set(t,e),this.h+=(this.h?"|":"")+t,this.J=null,this.cache&&tt(this),this)};y.addReplacer=function(t,e){return typeof t=="string"?this.addMatcher(t,e):(this.replacer||(this.replacer=[]),this.replacer.push(t,e),this.cache&&tt(this),this)};y.encode=function(t,e){if(this.cache&&t.length<=this.H)if(this.F){if(this.B.has(t))return this.B.get(t)}else this.F=setTimeout(tt,50,this);this.normalize&&(typeof this.normalize=="function"?t=this.normalize(t):t=de?t.normalize("NFKD").replace(de,"").toLowerCase():t.toLowerCase()),this.prepare&&(t=this.prepare(t)),this.numeric&&t.length>3&&(t=t.replace(_n,"$1 $2").replace(yn,"$1 $2").replace(mn,"$1 "));let n=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer),u=[],i=W(),r,s,o=this.split||this.split===""?t.split(this.split):[t];for(let h=0,f,c;hthis.maxlength)){if(e){if(i[f])continue;i[f]=1}else{if(r===f)continue;r=f}if(n)u.push(f);else if(!this.filter||(typeof this.filter=="function"?this.filter(f):!this.filter.has(f))){if(this.cache&&f.length<=this.I)if(this.F){var l=this.D.get(f);if(l||l===""){l&&u.push(l);continue}}else this.F=setTimeout(tt,50,this);if(this.stemmer){this.K||(this.K=new RegExp("(?!^)("+this.A+")$"));let g;for(;g!==f&&f.length>2;)g=f,f=f.replace(this.K,a=>this.stemmer.get(a))}if(f&&(this.mapper||this.dedupe&&f.length>1)){l="";for(let g=0,a="",d,p;g1&&(this.J||(this.J=new RegExp("("+this.h+")","g")),f=f.replace(this.J,g=>this.matcher.get(g))),f&&this.replacer)for(l=0;f&&lthis.L&&(this.D.clear(),this.I=this.I/1.1|0)),f){if(f!==c)if(e){if(i[f])continue;i[f]=1}else{if(s===f)continue;s=f}u.push(f)}}}return this.finalize&&(u=this.finalize(u)||u),this.cache&&t.length<=this.H&&(this.B.set(t,u),this.B.size>this.L&&(this.B.clear(),this.H=this.H/1.1|0)),u};function tt(t){t.F=null,t.B.clear(),t.D.clear()}function Qt(t,e,n){n||(e||typeof t!="object"?typeof e=="object"&&(n=e,e=0):n=t),n&&(t=n.query||t,e=n.limit||e);let u=""+(e||0);n&&(u+=(n.offset||0)+!!n.context+!!n.suggest+(n.resolve!==!1)+(n.resolution||this.resolution)+(n.boost||0)),t=(""+t).toLowerCase(),this.cache||(this.cache=new it);let i=this.cache.get(t+u);if(!i){let r=n&&n.cache;r&&(n.cache=!1),i=this.search(t,e,n),r&&(n.cache=r),this.cache.set(t+u,i)}return i}function it(t){this.limit=t&&t!==!0?t:1e3,this.cache=new Map,this.h=""}it.prototype.set=function(t,e){this.cache.set(this.h=t,e),this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};it.prototype.get=function(t){let e=this.cache.get(t);return e&&this.h!==t&&(this.cache.delete(t),this.cache.set(this.h=t,e)),e};it.prototype.remove=function(t){for(let e of this.cache){let n=e[0];e[1].includes(t)&&this.cache.delete(n)}};it.prototype.clear=function(){this.cache.clear(),this.h=""};var Fe={normalize:!1,numeric:!1,dedupe:!1},wt={},$t=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]),me=new Map([["ae","a"],["oe","o"],["sh","s"],["kh","k"],["th","t"],["ph","f"],["pf","f"]]),_e=[/([^aeo])h(.)/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2",/(.)\\1+/g,"$1"],ye={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,\\u00DF:2,d:3,t:3,l:4,m:5,n:5,r:6},Xt={Exact:Fe,Default:wt,Normalize:wt,LatinBalance:{mapper:$t},LatinAdvanced:{mapper:$t,matcher:me,replacer:_e},LatinExtra:{mapper:$t,replacer:_e.concat([/(?!^)[aeo]/g,""]),matcher:me},LatinSoundex:{dedupe:!1,include:{letter:!0},finalize:function(t){for(let n=0;n=s.length)e-=s.length;else{e=s[u?"splice":"slice"](e,n);let o=e.length;if(o&&(i=i.length?i.concat(e):e,n-=o,u&&(t.length-=o),!n))break;e=0}return i}function ct(t){if(!this||this.constructor!==ct)return new ct(t);this.index=t?[t]:[],this.length=t?t.length:0;let e=this;return new Proxy([],{get(n,u){if(u==="length")return e.length;if(u==="push")return function(i){e.index[e.index.length-1].push(i),e.length++};if(u==="pop")return function(){if(e.length)return e.length--,e.index[e.index.length-1].pop()};if(u==="indexOf")return function(i){let r=0;for(let s=0,o,l;s=0)return r+l;r+=o.length}return-1};if(u==="includes")return function(i){for(let r=0;r32?(this.B=be,this.A=BigInt(t)):(this.B=ke,this.A=t)}N.prototype.get=function(t){let e=this.index[this.B(t)];return e&&e.get(t)};N.prototype.set=function(t,e){var n=this.B(t);let u=this.index[n];u?(n=u.size,u.set(t,e),(n-=u.size)&&this.size++):(this.index[n]=u=new Map([[t,e]]),this.h.push(u),this.size++)};function O(t=8){if(!this||this.constructor!==O)return new O(t);this.index=W(),this.h=[],this.size=0,t>32?(this.B=be,this.A=BigInt(t)):(this.B=ke,this.A=t)}O.prototype.add=function(t){var e=this.B(t);let n=this.index[e];n?(e=n.size,n.add(t),(e-=n.size)&&this.size++):(this.index[e]=n=new Set([t]),this.h.push(n),this.size++)};y=N.prototype;y.has=O.prototype.has=function(t){let e=this.index[this.B(t)];return e&&e.has(t)};y.delete=O.prototype.delete=function(t){let e=this.index[this.B(t)];e&&e.delete(t)&&this.size--};y.clear=O.prototype.clear=function(){this.index=W(),this.h=[],this.size=0};y.values=O.prototype.values=function*(){for(let t=0;t=this.priority*this.priority*3):(Ut=setTimeout(An,0),Ae=Date.now()),Bt){let r=this;return new Promise(s=>{setTimeout(function(){s(r[t+"Async"].apply(r,e))},0)})}let i=this[t].apply(this,e);return n=i.then?i:new Promise(r=>r(i)),u&&n.then(u),n}}var V=0;function et(t={},e){function n(o){function l(h){h=h.data||h;let f=h.id,c=f&&r.h[f];c&&(c(h.msg),delete r.h[f])}if(this.worker=o,this.h=W(),this.worker)return i?this.worker.on("message",l):this.worker.onmessage=l,t.config?new Promise(function(h){V>1e9&&(V=0),r.h[++V]=function(){h(r)},r.worker.postMessage({id:V,task:"init",factory:u,options:t})}):(this.priority=t.priority||4,this.encoder=e||null,this.worker.postMessage({task:"init",factory:u,options:t}),this)}if(!this||this.constructor!==et)return new et(t);let u=typeof self<"u"?self._factory:typeof window<"u"?window._factory:null;u&&(u=u.toString());let i=typeof window>"u",r=this,s=En(u,i,t.worker);return s.then?s.then(function(o){return n.call(r,o)}):n.call(this,s)}Z("add");Z("append");Z("search");Z("update");Z("remove");Z("clear");Z("export");Z("import");et.prototype.searchCache=Qt;Yt(et.prototype);function Z(t){et.prototype[t]=function(){let e=this,n=[].slice.call(arguments);var u=n[n.length-1];let i;return typeof u=="function"&&(i=u,n.pop()),u=new Promise(function(r){t==="export"&&typeof n[0]=="function"&&(n[0]=null),V>1e9&&(V=0),e.h[++V]=r,e.worker.postMessage({task:t,id:V,args:n})}),i?(u.then(i),this):u}}function En(t,e,n){return e?typeof module<"u"?new(Ot()).Worker(__dirname+"/worker/node.js"):Promise.resolve().then(()=>dn(Ot(),1)).then(function(u){return new u.Worker(import.meta.dirname+"/node/node.mjs")}):t?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+Cn.toString()],{type:"text/javascript"}))):new window.Worker(typeof n=="string"?n:import.meta.url.replace("/worker.js","/worker/worker.js").replace("flexsearch.bundle.module.min.js","module/worker/worker.js").replace("flexsearch.bundle.module.min.mjs","module/worker/worker.js"),{type:"module"})}nt.prototype.add=function(t,e,n){if(mt(t)&&(e=t,t=_t(e,this.key)),e&&(t||t===0)){if(!n&&this.reg.has(t))return this.update(t,e);for(let o=0,l;oe?t.slice(n,n+e):t,u?lt.call(this,t):t;let i=[];for(let r=0,s,o;r=o){n-=o;continue}s=s.slice(n,n+e),o=s.length,n=0}if(o>e&&(s=s.slice(0,e),o=e),!i.length&&o>=e)return u?lt.call(this,s):s;if(i.push(s),e-=o,!e)break}return i=i.length>1?[].concat.apply([],i):i[0],u?lt.call(this,i):i}function jt(t,e,n,u){var i=u[0];if(i[0]&&i[0].query)return t[e].apply(t,i);if(!(e!=="and"&&e!=="not"||t.result.length||t.await||i.suggest))return u.length>1&&(i=u[u.length-1]),(u=i.resolve)?t.await||t.result:t;let r=[],s=0,o=0,l,h,f,c,g;for(e=0;e1&&(n=n[e].apply(n,t.slice(1))),n}T.prototype.or=function(){return jt(this,"or",wn,arguments)};function wn(t,e,n,u,i,r,s){return t.length&&(this.result.length&&t.push(this.result),t.length<2?this.result=t[0]:(this.result=Se(t,e,n,!1,this.h),n=0)),i&&(this.await=null),i?this.resolve(e,n,u,s):this}T.prototype.and=function(){return jt(this,"and",xn,arguments)};function xn(t,e,n,u,i,r,s){if(!r&&!this.result.length)return i?this.result:this;let o;if(t.length)if(this.result.length&&t.unshift(this.result),t.length<2)this.result=t[0];else{let l=0;for(let h=0,f,c;h1?C.join(" "):C[0];let x;if(C&&v){for(var E=v.length,_=(G.split?v.replace(G.split,""):v).length-C.length,w="",M=0,S=0;S-1&&(w=(L?v.substring(0,L):"")+s+v.substring(L,L+j)+o+(L+j=l)break}if(b=Et.length*(r.length-2),a||d||l&&D.length-b>l)if(b=l+b-g*2,k=B-A,a>0&&(k+=a),d>0&&(k+=d),k<=b)m=a?A-(a>0?a:0):A-((b-k)/2|0),F=d?B+(d>0?d:0):m+b,h||(m>0&&D.charAt(m)!==" "&&D.charAt(m-1)!==" "&&(m=D.indexOf(" ",m),m<0&&(m=0)),F=F.length-1){if(R>=F.length){k[x+1]=1,R>=m.length&&(b[x+1]=1);continue}E-=g}if(D=F[R].text,j=d&&C[x])if(j>0){if(D.length>j)if(k[x+1]=1,h)D=D.substring(0,j);else continue;(j-=D.length)||(j=-1),C[x]=j}else{k[x+1]=1;continue}if(E+D.length+1<=l)D=" "+D,B[x]+=D;else if(h)I=l-E-1,I>0&&(D=" "+D.substring(0,I),B[x]+=D),k[x+1]=1;else{k[x+1]=1;continue}}else{if(k[x])continue;if(R-=_,A[R]){E-=g,k[x]=1,b[x]=1;continue}if(R<=0){if(R<0){k[x]=1,b[x]=1;continue}E-=g}if(D=F[R].text,j=a&&v[x])if(j>0){if(D.length>j)if(k[x]=1,h)D=D.substring(D.length-j);else continue;(j-=D.length)||(j=-1),v[x]=j}else{k[x]=1;continue}if(E+D.length+1<=l)D+=" ",B[x]=D+B[x];else if(h)I=D.length+1-(l-E),I>=0&&I=m.length-1||R1?Se(l,n,u,s,r):(l=l[0])&&n&&l.length>n||u?l.slice(u,n+u):l;else{if(tn||u)&&(l=l.slice(u,n+u));else{i=[];for(let c=0,g;cu)u-=g.length;else if((n&&g.length>n||u)&&(g=g.slice(u,n+u),n-=g.length,u&&(u-=g.length)),i.push(g),!n)break}l=i}}return l}function Se(t,e,n,u,i){let r=[],s=W(),o;var l=t.length;let h;if(u){for(i=l-1;i>=0;i--)if(h=(u=t[i])&&u.length){for(l=0;l=0;f--){c=t[f];for(let a=0;a1?bt(i,1,0,0,l,h):i[0],v)})}return a?i:new T(i.length>1?bt(i,1,0,0,l,h):i[0],this)}}a||s||!(c=c||this.field)||(H(c)?s=c:(c.constructor===Array&&c.length===1&&(c=c[0]),s=c.field||c.index)),c&&c.constructor!==Array&&(c=[c])}c||(c=this.field);let b;F=(this.worker||this.db)&&!u&&[];for(let v=0,C,E,_;v"u"&&(this.db?F.push(p=this.index.get(this.field[0]).db.enrich(p)):p=lt.call(this,p)),s)return a?d?kt(t,p,this.index,s,d):p:new T(p,this);i[m]={field:r[m],result:p}}if(D&&this.db&&F.length){let v=this;return Promise.all(F).then(function(C){for(let E=0;E0&&((n&&e>n||u)&&(t=t.slice(u,u+n)),i&&(t=lt.call(this,t))),t):[]):[]}function lt(t){if(!this||!this.store)return t;if(this.db)return this.index.get(this.field[0]).db.enrich(t);let e=Array(t.length);for(let n=0,u;n1?n:n[0]}y.append=function(t,e){return this.add(t,e,!0)};y.update=function(t,e){return this.remove(t).add(t,e)};y.remove=function(t){mt(t)&&(t=_t(t,this.key));for(var e of this.index.values())e.remove(t,!0);if(this.reg.has(t)){if(this.tag&&!this.fastupdate)for(let n of this.tag.values())for(let u of n){e=u[0];let i=u[1],r=i.indexOf(t);r>-1&&(i.length>1?i.splice(r,1):n.delete(e))}this.store&&this.store.delete(t),this.reg.delete(t)}return this.cache&&this.cache.remove(t),this};y.clear=function(){let t=[];for(let e of this.index.values()){let n=e.clear();n.then&&t.push(n)}if(this.tag)for(let e of this.tag.values())e.clear();return this.store&&this.store.clear(),this.cache&&this.cache.clear(),t.length?Promise.all(t):this};y.contain=function(t){return this.db?this.index.get(this.field[0]).db.has(t):this.reg.has(t)};y.cleanup=function(){for(let t of this.index.values())t.cleanup();return this};y.get=function(t){return this.db?this.index.get(this.field[0]).db.enrich(t).then(function(e){return e[0]&&e[0].doc||null}):this.store.get(t)||null};y.set=function(t,e){return typeof t=="object"&&(e=t,t=_t(e,this.key)),this.store.set(t,e),this};y.searchCache=Qt;y.export=Mn;y.import=Tn;Yt(nt.prototype);function te(t,e=0){let n=[],u=[];e&&(e=25e4/e*5e3|0);for(let i of t.entries())u.push(i),u.length===e&&(n.push(u),u=[]);return u.length&&n.push(u),n}function ee(t,e){e||(e=new Map);for(let n=0,u;n2?n[0]:"";if(n=n.length>2?n[2]:n[1],this.worker&&u)return this.index.get(u).import(t);if(e){if(typeof e=="string"&&(e=JSON.parse(e)),u)return this.index.get(u).import(n,e);switch(n){case"reg":this.fastupdate=!1,this.reg=je(e,this.reg);for(let i=0,r;i=0&&i.splice(s,1)}}else yt(this.map,t),this.depth&&yt(this.ctx,t);e||this.reg.delete(t)}return this.db&&(this.commit_task.push({del:t}),this.M&&Pe(this)),this.cache&&this.cache.remove(t),this};function yt(t,e){let n=0;var u=typeof e>"u";if(t.constructor===Array){for(let i=0,r,s,o;i=0){if(r.length>1)return r.splice(s,1),1;if(delete t[i],n)return 1;o=1}else{if(o)return 1;n++}}}else for(let i of t.entries())u=i[0],yt(i[1],e)?n++:t.delete(u);return n}var Ln={memory:{resolution:1},performance:{resolution:3,fastupdate:!0,context:{depth:1,resolution:1}},match:{tokenize:"forward"},score:{resolution:9,context:{depth:2,resolution:3}}};$.prototype.add=function(t,e,n,u){if(e&&(t||t===0)){if(!u&&!n&&this.reg.has(t))return this.update(t,e);u=this.depth,e=this.encoder.encode(e,!u);let h=e.length;if(h){let f=W(),c=W(),g=this.resolution;for(let a=0;a2){for(let p=1,D,m,F,A;p2){for(let p=0,D;pp;r--){s=d.substring(p,r),D=this.rtl?i-1-p:p;var o=this.score?this.score(e,d,a,s,D):vt(g,h,a,i,D);K(this,c,s,o,t,n)}break}case"bidirectional":case"reverse":if(i>1){for(o=i-1;o>0;o--){s=d[this.rtl?i-1-o:o]+s;var l=this.score?this.score(e,d,a,s,o):vt(g,h,a,i,o);K(this,c,s,l,t,n)}s=""}case"forward":if(i>1){for(o=0;o1&&as;let p=this.score?this.score(e,s,a,d,o-1):vt(i+(h/2>i?0:1),h,a,r-1,o-1);K(this,f,l?s:d,p,t,n,l?d:s)}}}}this.fastupdate||this.reg.add(t)}}return this.db&&(this.commit_task.push(n?{ins:t}:{del:t}),this.M&&Pe(this)),this};function K(t,e,n,u,i,r,s){let o,l;if(!(o=e[n])||s&&!o[s]){if(s?(e=o||(e[n]=W()),e[s]=1,l=t.ctx,(o=l.get(s))?l=o:l.set(s,l=t.keystore?new N(t.keystore):new Map)):(l=t.map,e[n]=1),(o=l.get(n))?l=o:l.set(n,l=o=[]),r){for(let h=0,f;h1?e+(u||0)<=t?n+(i||0):(t-1)/(e+(u||0))*(n+(i||0))+1|0:0}$.prototype.search=function(t,e,n){if(n||(e||typeof t!="object"?typeof e=="object"&&(n=e,e=0):(n=t,t="")),n&&n.cache)return n.cache=!1,t=this.searchCache(t,e,n),n.cache=!0,t;let u=[],i,r,s,o=0,l,h,f,c,g;n&&(t=n.query||t,e=n.limit||e,o=n.offset||0,r=n.context,s=n.suggest,g=(l=n.resolve)&&n.enrich,f=n.boost,c=n.resolution,h=this.db&&n.tag),typeof l>"u"&&(l=this.resolve),r=this.depth&&r!==!1;let a=this.encoder.encode(t,!r);if(i=a.length,e=e||(l?100:0),i===1)return ve.call(this,a[0],"",e,o,l,g,h);if(i===2&&r&&!s)return ve.call(this,a[1],a[0],e,o,l,g,h);let d=W(),p=0,D;if(r&&(D=a[0],p=1),c||c===0||(c=D?this.N:this.resolution),this.db){if(this.db.search&&(n=this.db.search(this,a,e,o,s,l,g,h),n!==!1))return n;let m=this;return(async function(){for(let F,A;p1)l=bt(t,e,n,u,i,r,s);else if(o===1)return s?Gt.call(null,t[0],n,u):new T(t[0],this);return s?l:new T(l,this)}function ve(t,e,n,u,i,r,s){return t=Zt(this,t,e,n,u,i,r,s),this.db?t.then(function(o){return i?o||[]:new T(o,this)}):t&&t.length?i?Gt.call(this,t,n,u):new T(t,this):i?[]:new T([],this)}function Be(t,e,n,u){let i=[];if(t&&t.length){if(t.length<=u){e.push(t);return}for(let r=0,s;rn)&&(l=n,n=e,e=l),t.db?t.db.get(e,n,u,i,r,s,o):(t=n?(t=t.ctx.get(n))&&t.get(e):t.map.get(e),t)}function $(t,e){if(!this||this.constructor!==$)return new $(t);if(t){var n=H(t)?t:t.preset;n&&(t=Object.assign({},Ln[n],t))}else t={};n=t.context;let u=n===!0?{depth:1}:n||{},i=H(t.encoder)?Xt[t.encoder]:t.encode||t.encoder||{};this.encoder=i.encode?i:typeof i=="object"?new ht(i):{encode:i},this.resolution=t.resolution||9,this.tokenize=n=(n=t.tokenize)&&n!=="default"&&n!=="exact"&&n||"strict",this.depth=n==="strict"&&u.depth||0,this.bidirectional=u.bidirectional!==!1,this.fastupdate=!!t.fastupdate,this.score=t.score||null,(n=t.keystore||0)&&(this.keystore=n),this.map=n?new N(n):new Map,this.ctx=n?new N(n):new Map,this.reg=e||(this.fastupdate?n?new N(n):new Map:n?new O(n):new Set),this.N=u.resolution||3,this.rtl=i.rtl||t.rtl||!1,this.cache=(n=t.cache||null)&&new it(n),this.resolve=t.resolve!==!1,(n=t.db)&&(this.db=this.mount(n)),this.M=t.commit!==!1,this.commit_task=[],this.commit_timer=null,this.priority=t.priority||4}y=$.prototype;y.mount=function(t){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),t.mount(this)};y.commit=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.commit(this)};y.destroy=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.destroy()};function Pe(t){t.commit_timer||(t.commit_timer=setTimeout(function(){t.commit_timer=null,t.db.commit(t)},1))}y.clear=function(){return this.map.clear(),this.ctx.clear(),this.reg.clear(),this.cache&&this.cache.clear(),this.db?(this.commit_timer&&clearTimeout(this.commit_timer),this.commit_timer=null,this.commit_task=[],this.db.clear()):this};y.append=function(t,e){return this.add(t,e,!0)};y.contain=function(t){return this.db?this.db.has(t):this.reg.has(t)};y.update=function(t,e){let n=this,u=this.remove(t);return u&&u.then?u.then(()=>n.add(t,e)):this.add(t,e)};y.cleanup=function(){return this.fastupdate?(yt(this.map),this.depth&&yt(this.ctx),this):this};y.searchCache=Qt;y.export=function(t,e,n=0,u=0){let i,r;switch(u){case 0:i="reg",r=Le(this.reg);break;case 1:i="cfg",r=null;break;case 2:i="map",r=te(this.map,this.reg.size);break;case 3:i="ctx",r=Me(this.ctx,this.reg.size);break;default:return}return Mt.call(this,t,e,i,r,n,u)};y.import=function(t,e){if(e)switch(typeof e=="string"&&(e=JSON.parse(e)),t=t.split("."),t[t.length-1]==="json"&&t.pop(),t.length===3&&t.shift(),t=t.length>1?t[1]:t[0],t){case"reg":this.fastupdate=!1,this.reg=je(e,this.reg);break;case"map":this.map=ee(e,this.map);break;case"ctx":this.ctx=Te(e,this.ctx)}};y.serialize=function(t=!0){let e="",n="",u="";if(this.reg.size){let r;for(var i of this.reg.keys())r||(r=typeof i),e+=(e?",":"")+(r==="string"?'"'+i+'"':i);e="index.reg=new Set(["+e+"]);",n=we(this.map,r),n="index.map=new Map(["+n+"]);";for(let s of this.ctx.entries()){i=s[0];let o=we(s[1],r);o="new Map(["+o+"])",o='["'+i+'",'+o+"]",u+=(u?",":"")+o}u="index.ctx=new Map(["+u+"]);"}return t?"function inject(index){"+e+n+u+"}":e+n+u};Yt($.prototype);var Ie=typeof window<"u"&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Tt=["map","ctx","tag","reg","cfg"],q=W();function Lt(t,e={}){if(!this||this.constructor!==Lt)return new Lt(t,e);typeof t=="object"&&(e=t,t=t.name),t||console.info("Default storage space was used, because a name was not passed."),this.id="flexsearch"+(t?":"+t.toLowerCase().replace(/[^a-z0-9_\\-]/g,""):""),this.field=e.field?e.field.toLowerCase().replace(/[^a-z0-9_\\-]/g,""):"",this.type=e.type,this.fastupdate=this.support_tag_search=!1,this.db=null,this.h={}}y=Lt.prototype;y.mount=function(t){return t.index?t.mount(this):(t.db=this,this.open())};y.open=function(){if(this.db)return this.db;let t=this;navigator.storage&&navigator.storage.persist&&navigator.storage.persist(),q[t.id]||(q[t.id]=[]),q[t.id].push(t.field);let e=Ie.open(t.id,1);return e.onupgradeneeded=function(){let n=t.db=this.result;for(let u=0,i;u=f.length){u-=f.length;continue}let c=n?u+Math.min(f.length-u,n):f.length;for(let g=u;g=r.length?[]:!e&&!n?r:(r=r.slice(n,n+e),u?i.enrich(r):r)})};y.enrich=function(t){typeof t!="object"&&(t=[t]);let e=this.db.transaction("reg","readonly").objectStore("reg"),n=[];for(let u=0;u=0)if(i=1,o.length>1)o.splice(h,1);else{u[s]=[];break}r+=o.length}if(n)break}r?i&&t.update(u):t.delete(),t.continue()}y.remove=function(t){return typeof t!="object"&&(t=[t]),Promise.all([this.transaction("map","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t)}}),this.transaction("ctx","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t)}}),this.transaction("tag","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t,!0)}}),this.transaction("reg","readwrite",function(e){for(let n=0;n{t.onsuccess=t.oncomplete=function(){e&&e(this.result),e=null,n(this.result)},t.onerror=t.onblocked=u,t=null})}var We={Index:$,Charset:Xt,Encoder:ht,Document:nt,Worker:et,Resolver:T,IndexedDB:Lt,Language:{}};var hi=Object.hasOwnProperty;var Oe,P,$e,jn,X,Re,Ke,Ue,Je,se,ie,ue,Pn,Ve={},Wt=[],In=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,zt=Array.isArray;function U(t,e){for(var n in e)t[n]=e[n];return t}function oe(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function ne(t,e,n,u,i){var r={type:t,props:e,key:n,ref:u,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++$e,__i:-1,__u:0};return i==null&&P.vnode!=null&&P.vnode(r),r}function at(t){return t.children}function It(t,e){this.props=t,this.context=e}function ft(t,e){if(e==null)return t.__?ft(t.__,t.__i+1):null;for(var n;ee&&X.sort(Ue),t=X.shift(),e=X.length,Wn(t)}finally{X.length=Rt.__r=0}}function Qe(t,e,n,u,i,r,s,o,l,h,f){var c,g,a,d,p,D,m,F=u&&u.__k||Wt,A=e.length;for(l=Rn(n,e,F,l,A),c=0;c0?s=t.__k[r]=ne(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):t.__k[r]=s,l=r+g,s.__=t,s.__b=t.__b+1,o=null,(h=s.__i=zn(s,n,l,c))!=-1&&(c--,(o=n[h])&&(o.__u|=2)),o==null||o.__v==null?(h==-1&&(i>f?g--:il?g--:g++,s.__u|=4))):t.__k[r]=null;if(c)for(r=0;r(f?1:0)){for(i=n-1,r=n+1;i>=0||r=0?i--:r++])!=null&&(2&h.__u)==0&&o==h.key&&l==h.type)return s}return-1}function He(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||In.test(e)?n:n+"px"}function Pt(t,e,n,u,i){var r,s;t:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof u=="string"&&(t.style.cssText=u=""),u)for(e in u)n&&e in n||He(t.style,e,"");if(n)for(e in n)u&&n[e]==u[e]||He(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")r=e!=(e=e.replace(Je,"$1")),s=e.toLowerCase(),e=s in t||e=="onFocusOut"||e=="onFocusIn"?s.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+r]=n,n?u?n.u=u.u:(n.u=se,t.addEventListener(e,r?ue:ie,r)):t.removeEventListener(e,r?ue:ie,r);else{if(i=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break t}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function Ne(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=se++;else if(e.t0?t:zt(t)?t.map(Ge):U({},t)}function Nn(t,e,n,u,i,r,s,o,l){var h,f,c,g,a,d,p,D=n.props||Ve,m=e.props,F=e.type;if(F=="svg"?i="http://www.w3.org/2000/svg":F=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),r!=null){for(h=0;h"u"?"":document.body?.dataset?.basepath??""}function he(t,e){let n=e??Kn(),u=t.startsWith("/")?t:"/"+t;return n+u}function Y(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function tn(t,e){if(!t)return()=>{};let n=i=>{t.classList.contains("active")&&i.target===t&&(i.preventDefault(),i.stopPropagation(),e())},u=i=>{t.classList.contains("active")&&i.key==="Escape"&&(i.preventDefault(),e())};return t.addEventListener("click",n),document.addEventListener("keydown",u),()=>{t.removeEventListener("click",n),document.removeEventListener("keydown",u)}}function en(t,e){let n=t.querySelectorAll("[src], [href]");for(let u of Array.from(n)){let i=u.hasAttribute("href")?"href":"src",r=u.getAttribute(i);if(r&&!(r.startsWith("http://")||r.startsWith("https://")||r.startsWith("mailto:")||r.startsWith("tel:")||r.startsWith("#")||r.startsWith("/")||r.startsWith("data:")))try{let s=new URL(r,e).toString();u.setAttribute(i,s)}catch{continue}}}var ut="basic",J="",ce=8,Un=5,Ht=30,Jn=t=>{let e=[],n=-1,u=-1,i=t.toLowerCase(),r=0;for(let s of i){let o=s.codePointAt(0);o>=12352&&o<=12447||o>=12448&&o<=12543||o>=19968&&o<=40959||o>=44032&&o<=55215||o>=131072&&o<=173791?(n!==-1&&(e.push(i.slice(n,u)),n=-1),e.push(s)):o===32||o===9||o===10||o===13?n!==-1&&(e.push(i.slice(n,u)),n=-1):(n===-1&&(n=r),u=r+1),r+=s.length}return n!==-1&&e.push(i.slice(n)),e},ae=new We.Document({encode:Jn,document:{id:"id",tag:"tags",index:[{field:"title",tokenize:"forward"},{field:"content",tokenize:"forward"},{field:"tags",tokenize:"forward"}]}}),pt=null,rn=[],fe=new Map,sn=new DOMParser;async function Vn(t){if(fe.has(t))return fe.get(t);let e=new URL(he(t),window.location.origin).toString(),n=await fetch(e).then(u=>u.text()).then(u=>{let i=sn.parseFromString(u??"","text/html");return en(i,e),Array.from(i.getElementsByClassName("popover-hint"))});return fe.set(t,n),n}var pe=[];function Ct(t){pe.push(t)}function Zn(){pe.forEach(t=>t()),pe.length=0}async function Qn(){let t=document.querySelectorAll(".search");for(let e of Array.from(t)){let n=e.querySelector(".search-container"),u=e.querySelector(".search-button"),i=e.querySelector(".search-bar"),r=e.querySelector(".search-layout");if(!n||!u||!i||!r)continue;let s=r.getAttribute("data-preview")==="true",o=r.querySelector(".results-container");o||(o=document.createElement("div"),o.className="results-container",r.appendChild(o));let l=r.querySelector(".preview-container");s&&!l&&(l=document.createElement("div"),l.className="preview-container",r.appendChild(l));let h=null,f=0,c=()=>{console.log("[Search] hideSearch called, stack:",new Error().stack),n.classList.remove("active"),i.value="",Y(o),l&&Y(l),r.classList.remove("display-results"),ut="basic",h=null},g=_=>{console.log("[Search] showSearch called, type:",_),ut=_,n.classList.add("active"),console.log("[Search] container.classList after add:",n.classList.toString()),i.focus(),console.log("[Search] focus called, container active:",n.classList.contains("active"))},a=async _=>{if(Y(o),_.length===0)o.innerHTML='

    No results.

    Try another search term?

    ',h=null,l&&Y(l);else for(let w of _){let M=w.tags.length>0?'
      '+w.tags.join("")+"
    ":"",S=document.createElement("a");S.className="result-card",S.id=w.slug,S.href=he(w.slug),S.innerHTML='

    '+w.title+"

    "+M+'

    '+w.content+"

    ",S.addEventListener("click",L=>{L.altKey||L.ctrlKey||L.metaKey||L.shiftKey||c()}),S.addEventListener("mouseenter",()=>{m(S)}),o.appendChild(S)}},d=()=>Array.from(o.querySelectorAll(".result-card:not(.no-match)")),p=()=>ut==="tags"?J.substring(1).trim():J,D=async _=>{if(!l||(Y(l),!_))return;let w=_.id,M=++f,S=await Vn(w);if(M!==f)return;let L=p();for(let j of S){let I=j.cloneNode(!0);L.trim()!==""&&(I.innerHTML=Xn(L,I)),l.appendChild(I)}},m=_=>{h&&h.classList.remove("focus"),h=_,h&&h.classList.add("focus"),D(h)},F=_=>{let w=d();if(w.length===0){m(null);return}let M=Math.min(Math.max(_,0),w.length-1);m(w[M]??null)},A=()=>{let _=d();if(_.length===0)return;let w=h?_.indexOf(h):-1;F(w+1)},B=()=>{let _=d();if(_.length===0)return;let w=h?_.indexOf(h):_.length;F(w-1)},b=async _=>{if(J=_.target.value,r.classList.toggle("display-results",J!==""),ut=J.startsWith("#")?"tags":"basic",J===""){Y(o),l&&Y(l),h=null;return}let w=J,M;if(ut==="tags"){let I=J.substring(1).trim();M=await ae.searchAsync({query:I,limit:ce,index:["tags"]})}else M=await ae.searchAsync({query:w,limit:ce,index:["title","content"]});let S=new Set;for(let I of M)if(I&&I.result)for(let Dt of I.result)S.add(Dt);let L=[];S.forEach(I=>{L.push(Gn(J,I))}),await a(L.slice(0,ce));let j=d();m(j[0]??null)},k=_=>{console.log("[Search] Button click event, target:",_.target,"currentTarget:",_.currentTarget),_.stopPropagation(),g("basic")};u.addEventListener("click",k),Ct(()=>u.removeEventListener("click",k)),i.addEventListener("input",b),Ct(()=>i.removeEventListener("input",b));let v=_=>{if(_.key==="ArrowUp"||_.shiftKey&&_.key==="Tab"){_.preventDefault(),B();return}if(_.key==="ArrowDown"||_.key==="Tab"){_.preventDefault(),A();return}if(_.key==="Enter"){let w=h;w instanceof HTMLAnchorElement&&(c(),window.location.href=w.href)}};i.addEventListener("keydown",v),Ct(()=>i.removeEventListener("keydown",v));let C=_=>{_.key==="k"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey?(_.preventDefault(),n.classList.contains("active")?c():g("basic")):_.shiftKey&&(_.ctrlKey||_.metaKey)&&_.key.toLowerCase()==="k"&&(_.preventDefault(),g("tags"),i.value="#")};document.addEventListener("keydown",C),Ct(()=>document.removeEventListener("keydown",C));let E=tn(n,c);Ct(E)}}function on(t){let e=t.split(/\\s+/).filter(u=>u.trim()!==""),n=e.length;if(n>1)for(let u=1;ui.length-u.length)}function Xn(t,e){let n=on(t).filter(h=>h.trim()!=="");if(n.length===0)return e.innerHTML;let u=sn.parseFromString(e.innerHTML,"text/html"),i=n.map(h=>h.replace(/[.*+?^\${}()|[\\]\\\\]/g,"\\\\$&")).join("|");if(i==="")return e.innerHTML;let r=new RegExp(i,"gi"),s=u.createTreeWalker(u.body,NodeFilter.SHOW_TEXT),o=[],l=s.nextNode();for(;l;)o.push(l),l=s.nextNode();for(let h of o){let f=h.nodeValue??"";if(r.lastIndex=0,!r.test(f))continue;r.lastIndex=0;let c=u.createDocumentFragment(),g=0,a;for(;(a=r.exec(f))!==null;){a.index>g&&c.appendChild(u.createTextNode(f.slice(g,a.index)));let d=u.createElement("span");d.className="highlight",d.textContent=a[0],c.appendChild(d),g=a.index+a[0].length}gl!==""),r=0,s=i.length-1;if(n){let l=g=>u.some(a=>g.toLowerCase().startsWith(a.toLowerCase())),h=i.map(l),f=0,c=0;for(let g=0;gp+(D?1:0),0);d>=f&&(f=d,c=g)}r=Math.max(c-Ht/2,0),s=Math.min(r+Ht,i.length-1)}let o=i.map(l=>{let h=l;for(let f of u)if(l.toLowerCase().includes(f.toLowerCase())){let c=new RegExp(f.replace(/[.*+?^\${}()|[\\]\\\\]/g,"\\\\$&"),"gi");h=l.replace(c,g=>\`\${g}\`);break}return h}).join(" ");return(r===0?"":"...")+o+(s===i.length-1?"":"...")}function Yn(t,e){return!e||ut!=="tags"?[]:e.map(n=>n.toLowerCase().includes(t.toLowerCase())?\`
  • #\${n}

  • \`:\`
  • #\${n}

  • \`).slice(0,Un)}function Gn(t,e){let n=rn[e];if(!n||!pt)return{id:e,slug:"",title:"",content:"",tags:[]};let u=pt[n];return u?{id:e,slug:n,title:ut==="tags"?u.title:nn(t,u.title||""),content:nn(t,u.content||"",!0),tags:Yn(t.substring(1),u.tags)}:{id:e,slug:n,title:"",content:"",tags:[]}}async function qn(){if(!pt)return;let t=0;for(let e of Object.keys(pt)){let n=pt[e];n&&(rn[t]=e,await ae.addAsync(t,{id:t,slug:e,title:n.title||"",content:n.content||"",tags:n.tags||[]}),t++)}}async function ti(){return await fetchData}var un=!1;async function ei(){un||(pt=await ti(),await qn(),un=!0)}async function ln(){Zn(),await ei(),await Qn()}document.addEventListener("nav",ln);document.addEventListener("render",ln); +var search_inline_default = `var Ln=Object.create;var Me=Object.defineProperty;var jn=Object.getOwnPropertyDescriptor;var In=Object.getOwnPropertyNames;var Pn=Object.getPrototypeOf,Hn=Object.prototype.hasOwnProperty;var Wn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Rn=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of In(e))!Hn.call(t,i)&&i!==n&&Me(t,i,{get:()=>e[i],enumerable:!(r=jn(e,i))||r.enumerable});return t};var Nn=(t,e,n)=>(n=t!=null?Ln(Pn(t)):{},Rn(e||!t||!t.__esModule?Me(n,"default",{value:t,enumerable:!0}):n,t));var ee=Wn(()=>{});var y;function z(t,e,n){let r=typeof n,i=typeof t;if(r!=="undefined"){if(i!=="undefined"){if(n){if(i==="function"&&r===i)return function(o){return t(n(o))};if(e=t.constructor,e===n.constructor){if(e===Array)return n.concat(t);if(e===Map){var s=new Map(n);for(var u of t)s.set(u[0],u[1]);return s}if(e===Set){u=new Set(n);for(s of t.values())u.add(s);return u}}}return t}return n}return i==="undefined"?e:t}function _t(t,e){return typeof t>"u"?e:t}function W(){return Object.create(null)}function U(t){return typeof t=="string"}function bt(t){return typeof t=="object"}function St(t,e){if(U(e))t=t[e];else for(let n=0;t&&n1?this.addMatcher(t,e):(this.mapper||(this.mapper=new Map),this.mapper.set(t,e),this.cache&&ft(this),this)};y.addMatcher=function(t,e){return typeof t=="object"?this.addReplacer(t,e):t.length<2&&(this.dedupe||this.mapper)?this.addMapper(t,e):(this.matcher||(this.matcher=new Map),this.matcher.set(t,e),this.h+=(this.h?"|":"")+t,this.J=null,this.cache&&ft(this),this)};y.addReplacer=function(t,e){return typeof t=="string"?this.addMatcher(t,e):(this.replacer||(this.replacer=[]),this.replacer.push(t,e),this.cache&&ft(this),this)};y.encode=function(t,e){if(this.cache&&t.length<=this.H)if(this.F){if(this.B.has(t))return this.B.get(t)}else this.F=setTimeout(ft,50,this);this.normalize&&(typeof this.normalize=="function"?t=this.normalize(t):t=Le?t.normalize("NFKD").replace(Le,"").toLowerCase():t.toLowerCase()),this.prepare&&(t=this.prepare(t)),this.numeric&&t.length>3&&(t=t.replace($n,"$1 $2").replace(Kn,"$1 $2").replace(On,"$1 "));let n=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer),r=[],i=W(),s,u,o=this.split||this.split===""?t.split(this.split):[t];for(let h=0,f,c;hthis.maxlength)){if(e){if(i[f])continue;i[f]=1}else{if(s===f)continue;s=f}if(n)r.push(f);else if(!this.filter||(typeof this.filter=="function"?this.filter(f):!this.filter.has(f))){if(this.cache&&f.length<=this.I)if(this.F){var l=this.D.get(f);if(l||l===""){l&&r.push(l);continue}}else this.F=setTimeout(ft,50,this);if(this.stemmer){this.K||(this.K=new RegExp("(?!^)("+this.A+")$"));let D;for(;D!==f&&f.length>2;)D=f,f=f.replace(this.K,a=>this.stemmer.get(a))}if(f&&(this.mapper||this.dedupe&&f.length>1)){l="";for(let D=0,a="",d,p;D1&&(this.J||(this.J=new RegExp("("+this.h+")","g")),f=f.replace(this.J,D=>this.matcher.get(D))),f&&this.replacer)for(l=0;f&&lthis.L&&(this.D.clear(),this.I=this.I/1.1|0)),f){if(f!==c)if(e){if(i[f])continue;i[f]=1}else{if(u===f)continue;u=f}r.push(f)}}}return this.finalize&&(r=this.finalize(r)||r),this.cache&&t.length<=this.H&&(this.B.set(t,r),this.B.size>this.L&&(this.B.clear(),this.H=this.H/1.1|0)),r};function ft(t){t.F=null,t.B.clear(),t.D.clear()}function le(t,e,n){n||(e||typeof t!="object"?typeof e=="object"&&(n=e,e=0):n=t),n&&(t=n.query||t,e=n.limit||e);let r=""+(e||0);n&&(r+=(n.offset||0)+!!n.context+!!n.suggest+(n.resolve!==!1)+(n.resolution||this.resolution)+(n.boost||0)),t=(""+t).toLowerCase(),this.cache||(this.cache=new gt);let i=this.cache.get(t+r);if(!i){let s=n&&n.cache;s&&(n.cache=!1),i=this.search(t,e,n),s&&(n.cache=s),this.cache.set(t+r,i)}return i}function gt(t){this.limit=t&&t!==!0?t:1e3,this.cache=new Map,this.h=""}gt.prototype.set=function(t,e){this.cache.set(this.h=t,e),this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};gt.prototype.get=function(t){let e=this.cache.get(t);return e&&this.h!==t&&(this.cache.delete(t),this.cache.set(this.h=t,e)),e};gt.prototype.remove=function(t){for(let e of this.cache){let n=e[0];e[1].includes(t)&&this.cache.delete(n)}};gt.prototype.clear=function(){this.cache.clear(),this.h=""};var je={normalize:!1,numeric:!1,dedupe:!1},Pt={},ne=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]),Ie=new Map([["ae","a"],["oe","o"],["sh","s"],["kh","k"],["th","t"],["ph","f"],["pf","f"]]),Pe=[/([^aeo])h(.)/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2",/(.)\\1+/g,"$1"],He={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,\\u00DF:2,d:3,t:3,l:4,m:5,n:5,r:6},he={Exact:je,Default:Pt,Normalize:Pt,LatinBalance:{mapper:ne},LatinAdvanced:{mapper:ne,matcher:Ie,replacer:Pe},LatinExtra:{mapper:ne,replacer:Pe.concat([/(?!^)[aeo]/g,""]),matcher:Ie},LatinSoundex:{dedupe:!1,include:{letter:!0},finalize:function(t){for(let n=0;n=u.length)e-=u.length;else{e=u[r?"splice":"slice"](e,n);let o=e.length;if(o&&(i=i.length?i.concat(e):e,n-=o,r&&(t.length-=o),!n))break;e=0}return i}function wt(t){if(!this||this.constructor!==wt)return new wt(t);this.index=t?[t]:[],this.length=t?t.length:0;let e=this;return new Proxy([],{get(n,r){if(r==="length")return e.length;if(r==="push")return function(i){e.index[e.index.length-1].push(i),e.length++};if(r==="pop")return function(){if(e.length)return e.length--,e.index[e.index.length-1].pop()};if(r==="indexOf")return function(i){let s=0;for(let u=0,o,l;u=0)return s+l;s+=o.length}return-1};if(r==="includes")return function(i){for(let s=0;s32?(this.B=Je,this.A=BigInt(t)):(this.B=Ue,this.A=t)}J.prototype.get=function(t){let e=this.index[this.B(t)];return e&&e.get(t)};J.prototype.set=function(t,e){var n=this.B(t);let r=this.index[n];r?(n=r.size,r.set(t,e),(n-=r.size)&&this.size++):(this.index[n]=r=new Map([[t,e]]),this.h.push(r),this.size++)};function V(t=8){if(!this||this.constructor!==V)return new V(t);this.index=W(),this.h=[],this.size=0,t>32?(this.B=Je,this.A=BigInt(t)):(this.B=Ue,this.A=t)}V.prototype.add=function(t){var e=this.B(t);let n=this.index[e];n?(e=n.size,n.add(t),(e-=n.size)&&this.size++):(this.index[e]=n=new Set([t]),this.h.push(n),this.size++)};y=J.prototype;y.has=V.prototype.has=function(t){let e=this.index[this.B(t)];return e&&e.has(t)};y.delete=V.prototype.delete=function(t){let e=this.index[this.B(t)];e&&e.delete(t)&&this.size--};y.clear=V.prototype.clear=function(){this.index=W(),this.h=[],this.size=0};y.values=V.prototype.values=function*(){for(let t=0;t=this.priority*this.priority*3):(re=setTimeout(Jn,0),Re=Date.now()),Rt){let s=this;return new Promise(u=>{setTimeout(function(){u(s[t+"Async"].apply(s,e))},0)})}let i=this[t].apply(this,e);return n=i.then?i:new Promise(s=>s(i)),r&&n.then(r),n}}var nt=0;function at(t={},e){function n(o){function l(h){h=h.data||h;let f=h.id,c=f&&s.h[f];c&&(c(h.msg),delete s.h[f])}if(this.worker=o,this.h=W(),this.worker)return i?this.worker.on("message",l):this.worker.onmessage=l,t.config?new Promise(function(h){nt>1e9&&(nt=0),s.h[++nt]=function(){h(s)},s.worker.postMessage({id:nt,task:"init",factory:r,options:t})}):(this.priority=t.priority||4,this.encoder=e||null,this.worker.postMessage({task:"init",factory:r,options:t}),this)}if(!this||this.constructor!==at)return new at(t);let r=typeof self<"u"?self._factory:typeof window<"u"?window._factory:null;r&&(r=r.toString());let i=typeof window>"u",s=this,u=Vn(r,i,t.worker);return u.then?u.then(function(o){return n.call(s,o)}):n.call(this,u)}it("add");it("append");it("search");it("update");it("remove");it("clear");it("export");it("import");at.prototype.searchCache=le;ce(at.prototype);function it(t){at.prototype[t]=function(){let e=this,n=[].slice.call(arguments);var r=n[n.length-1];let i;return typeof r=="function"&&(i=r,n.pop()),r=new Promise(function(s){t==="export"&&typeof n[0]=="function"&&(n[0]=null),nt>1e9&&(nt=0),e.h[++nt]=s,e.worker.postMessage({task:t,id:nt,args:n})}),i?(r.then(i),this):r}}function Vn(t,e,n){return e?typeof module<"u"?new(ee()).Worker(__dirname+"/worker/node.js"):Promise.resolve().then(()=>Nn(ee(),1)).then(function(r){return new r.Worker(import.meta.dirname+"/node/node.mjs")}):t?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+Un.toString()],{type:"text/javascript"}))):new window.Worker(typeof n=="string"?n:import.meta.url.replace("/worker.js","/worker/worker.js").replace("flexsearch.bundle.module.min.js","module/worker/worker.js").replace("flexsearch.bundle.module.min.mjs","module/worker/worker.js"),{type:"module"})}pt.prototype.add=function(t,e,n){if(bt(t)&&(e=t,t=St(e,this.key)),e&&(t||t===0)){if(!n&&this.reg.has(t))return this.update(t,e);for(let o=0,l;oe?t.slice(n,n+e):t,r?Et.call(this,t):t;let i=[];for(let s=0,u,o;s=o){n-=o;continue}u=u.slice(n,n+e),o=u.length,n=0}if(o>e&&(u=u.slice(0,e),o=e),!i.length&&o>=e)return r?Et.call(this,u):u;if(i.push(u),e-=o,!e)break}return i=i.length>1?[].concat.apply([],i):i[0],r?Et.call(this,i):i}function Jt(t,e,n,r){var i=r[0];if(i[0]&&i[0].query)return t[e].apply(t,i);if(!(e!=="and"&&e!=="not"||t.result.length||t.await||i.suggest))return r.length>1&&(i=r[r.length-1]),(r=i.resolve)?t.await||t.result:t;let s=[],u=0,o=0,l,h,f,c,D;for(e=0;e1&&(n=n[e].apply(n,t.slice(1))),n}j.prototype.or=function(){return Jt(this,"or",Zn,arguments)};function Zn(t,e,n,r,i,s,u){return t.length&&(this.result.length&&t.push(this.result),t.length<2?this.result=t[0]:(this.result=Ve(t,e,n,!1,this.h),n=0)),i&&(this.await=null),i?this.resolve(e,n,r,u):this}j.prototype.and=function(){return Jt(this,"and",Qn,arguments)};function Qn(t,e,n,r,i,s,u){if(!s&&!this.result.length)return i?this.result:this;let o;if(t.length)if(this.result.length&&t.unshift(this.result),t.length<2)this.result=t[0];else{let l=0;for(let h=0,f,c;h1?A.join(" "):A[0];let x;if(A&&E){for(var v=E.length,M=(Q.split?E.replace(Q.split,""):E).length-A.length,T="",N=0,R=0;R-1&&(T=(O?E.substring(0,O):"")+u+E.substring(O,O+H)+o+(O+H=l)break}if(b=ot.length*(s.length-2),a||d||l&&g.length-b>l)if(b=l+b-D*2,k=B-C,a>0&&(k+=a),d>0&&(k+=d),k<=b)m=a?C-(a>0?a:0):C-((b-k)/2|0),F=d?B+(d>0?d:0):m+b,h||(m>0&&g.charAt(m)!==" "&&g.charAt(m-1)!==" "&&(m=g.indexOf(" ",m),m<0&&(m=0)),F=F.length-1){if(I>=F.length){k[x+1]=1,I>=m.length&&(b[x+1]=1);continue}v-=D}if(g=F[I].text,H=d&&A[x])if(H>0){if(g.length>H)if(k[x+1]=1,h)g=g.substring(0,H);else continue;(H-=g.length)||(H=-1),A[x]=H}else{k[x+1]=1;continue}if(v+g.length+1<=l)g=" "+g,B[x]+=g;else if(h)$=l-v-1,$>0&&(g=" "+g.substring(0,$),B[x]+=g),k[x+1]=1;else{k[x+1]=1;continue}}else{if(k[x])continue;if(I-=M,C[I]){v-=D,k[x]=1,b[x]=1;continue}if(I<=0){if(I<0){k[x]=1,b[x]=1;continue}v-=D}if(g=F[I].text,H=a&&E[x])if(H>0){if(g.length>H)if(k[x]=1,h)g=g.substring(g.length-H);else continue;(H-=g.length)||(H=-1),E[x]=H}else{k[x]=1;continue}if(v+g.length+1<=l)g+=" ",B[x]=g+B[x];else if(h)$=g.length+1-(l-v),$>=0&&$=m.length-1||I1?Ve(l,n,r,u,s):(l=l[0])&&n&&l.length>n||r?l.slice(r,n+r):l;else{if(tn||r)&&(l=l.slice(r,n+r));else{i=[];for(let c=0,D;cr)r-=D.length;else if((n&&D.length>n||r)&&(D=D.slice(r,n+r),n-=D.length,r&&(r-=D.length)),i.push(D),!n)break}l=i}}return l}function Ve(t,e,n,r,i){let s=[],u=W(),o;var l=t.length;let h;if(r){for(i=l-1;i>=0;i--)if(h=(r=t[i])&&r.length){for(l=0;l=0;f--){c=t[f];for(let a=0;a1?zt(i,1,0,0,l,h):i[0],E)})}return a?i:new j(i.length>1?zt(i,1,0,0,l,h):i[0],this)}}a||u||!(c=c||this.field)||(U(c)?u=c:(c.constructor===Array&&c.length===1&&(c=c[0]),u=c.field||c.index)),c&&c.constructor!==Array&&(c=[c])}c||(c=this.field);let b;F=(this.worker||this.db)&&!r&&[];for(let E=0,A,v,M;E"u"&&(this.db?F.push(p=this.index.get(this.field[0]).db.enrich(p)):p=Et.call(this,p)),u)return a?d?Nt(t,p,this.index,u,d):p:new j(p,this);i[m]={field:s[m],result:p}}if(g&&this.db&&F.length){let E=this;return Promise.all(F).then(function(A){for(let v=0;v0&&((n&&e>n||r)&&(t=t.slice(r,r+n)),i&&(t=Et.call(this,t))),t):[]):[]}function Et(t){if(!this||!this.store)return t;if(this.db)return this.index.get(this.field[0]).db.enrich(t);let e=Array(t.length);for(let n=0,r;n1?n:n[0]}y.append=function(t,e){return this.add(t,e,!0)};y.update=function(t,e){return this.remove(t).add(t,e)};y.remove=function(t){bt(t)&&(t=St(t,this.key));for(var e of this.index.values())e.remove(t,!0);if(this.reg.has(t)){if(this.tag&&!this.fastupdate)for(let n of this.tag.values())for(let r of n){e=r[0];let i=r[1],s=i.indexOf(t);s>-1&&(i.length>1?i.splice(s,1):n.delete(e))}this.store&&this.store.delete(t),this.reg.delete(t)}return this.cache&&this.cache.remove(t),this};y.clear=function(){let t=[];for(let e of this.index.values()){let n=e.clear();n.then&&t.push(n)}if(this.tag)for(let e of this.tag.values())e.clear();return this.store&&this.store.clear(),this.cache&&this.cache.clear(),t.length?Promise.all(t):this};y.contain=function(t){return this.db?this.index.get(this.field[0]).db.has(t):this.reg.has(t)};y.cleanup=function(){for(let t of this.index.values())t.cleanup();return this};y.get=function(t){return this.db?this.index.get(this.field[0]).db.enrich(t).then(function(e){return e[0]&&e[0].doc||null}):this.store.get(t)||null};y.set=function(t,e){return typeof t=="object"&&(e=t,t=St(e,this.key)),this.store.set(t,e),this};y.searchCache=le;y.export=ei;y.import=ni;ce(pt.prototype);function pe(t,e=0){let n=[],r=[];e&&(e=25e4/e*5e3|0);for(let i of t.entries())r.push(i),r.length===e&&(n.push(r),r=[]);return r.length&&n.push(r),n}function ge(t,e){e||(e=new Map);for(let n=0,r;n2?n[0]:"";if(n=n.length>2?n[2]:n[1],this.worker&&r)return this.index.get(r).import(t);if(e){if(typeof e=="string"&&(e=JSON.parse(e)),r)return this.index.get(r).import(n,e);switch(n){case"reg":this.fastupdate=!1,this.reg=Ye(e,this.reg);for(let i=0,s;i=0&&i.splice(u,1)}}else Tt(this.map,t),this.depth&&Tt(this.ctx,t);e||this.reg.delete(t)}return this.db&&(this.commit_task.push({del:t}),this.M&&Ge(this)),this.cache&&this.cache.remove(t),this};function Tt(t,e){let n=0;var r=typeof e>"u";if(t.constructor===Array){for(let i=0,s,u,o;i=0){if(s.length>1)return s.splice(u,1),1;if(delete t[i],n)return 1;o=1}else{if(o)return 1;n++}}}else for(let i of t.entries())r=i[0],Tt(i[1],e)?n++:t.delete(r);return n}var ii={memory:{resolution:1},performance:{resolution:3,fastupdate:!0,context:{depth:1,resolution:1}},match:{tokenize:"forward"},score:{resolution:9,context:{depth:2,resolution:3}}};Z.prototype.add=function(t,e,n,r){if(e&&(t||t===0)){if(!r&&!n&&this.reg.has(t))return this.update(t,e);r=this.depth,e=this.encoder.encode(e,!r);let h=e.length;if(h){let f=W(),c=W(),D=this.resolution;for(let a=0;a2){for(let p=1,g,m,F,C;p2){for(let p=0,g;pp;s--){u=d.substring(p,s),g=this.rtl?i-1-p:p;var o=this.score?this.score(e,d,a,u,g):Wt(D,h,a,i,g);Y(this,c,u,o,t,n)}break}case"bidirectional":case"reverse":if(i>1){for(o=i-1;o>0;o--){u=d[this.rtl?i-1-o:o]+u;var l=this.score?this.score(e,d,a,u,o):Wt(D,h,a,i,o);Y(this,c,u,l,t,n)}u=""}case"forward":if(i>1){for(o=0;o1&&au;let p=this.score?this.score(e,u,a,d,o-1):Wt(i+(h/2>i?0:1),h,a,s-1,o-1);Y(this,f,l?u:d,p,t,n,l?d:u)}}}}this.fastupdate||this.reg.add(t)}}return this.db&&(this.commit_task.push(n?{ins:t}:{del:t}),this.M&&Ge(this)),this};function Y(t,e,n,r,i,s,u){let o,l;if(!(o=e[n])||u&&!o[u]){if(u?(e=o||(e[n]=W()),e[u]=1,l=t.ctx,(o=l.get(u))?l=o:l.set(u,l=t.keystore?new J(t.keystore):new Map)):(l=t.map,e[n]=1),(o=l.get(n))?l=o:l.set(n,l=o=[]),s){for(let h=0,f;h1?e+(r||0)<=t?n+(i||0):(t-1)/(e+(r||0))*(n+(i||0))+1|0:0}Z.prototype.search=function(t,e,n){if(n||(e||typeof t!="object"?typeof e=="object"&&(n=e,e=0):(n=t,t="")),n&&n.cache)return n.cache=!1,t=this.searchCache(t,e,n),n.cache=!0,t;let r=[],i,s,u,o=0,l,h,f,c,D;n&&(t=n.query||t,e=n.limit||e,o=n.offset||0,s=n.context,u=n.suggest,D=(l=n.resolve)&&n.enrich,f=n.boost,c=n.resolution,h=this.db&&n.tag),typeof l>"u"&&(l=this.resolve),s=this.depth&&s!==!1;let a=this.encoder.encode(t,!s);if(i=a.length,e=e||(l?100:0),i===1)return $e.call(this,a[0],"",e,o,l,D,h);if(i===2&&s&&!u)return $e.call(this,a[1],a[0],e,o,l,D,h);let d=W(),p=0,g;if(s&&(g=a[0],p=1),c||c===0||(c=g?this.N:this.resolution),this.db){if(this.db.search&&(n=this.db.search(this,a,e,o,u,l,D,h),n!==!1))return n;let m=this;return(async function(){for(let F,C;p1)l=zt(t,e,n,r,i,s,u);else if(o===1)return u?fe.call(null,t[0],n,r):new j(t[0],this);return u?l:new j(l,this)}function $e(t,e,n,r,i,s,u){return t=oe(this,t,e,n,r,i,s,u),this.db?t.then(function(o){return i?o||[]:new j(o,this)}):t&&t.length?i?fe.call(this,t,n,r):new j(t,this):i?[]:new j([],this)}function Ke(t,e,n,r){let i=[];if(t&&t.length){if(t.length<=r){e.push(t);return}for(let s=0,u;sn)&&(l=n,n=e,e=l),t.db?t.db.get(e,n,r,i,s,u,o):(t=n?(t=t.ctx.get(n))&&t.get(e):t.map.get(e),t)}function Z(t,e){if(!this||this.constructor!==Z)return new Z(t);if(t){var n=U(t)?t:t.preset;n&&(t=Object.assign({},ii[n],t))}else t={};n=t.context;let r=n===!0?{depth:1}:n||{},i=U(t.encoder)?he[t.encoder]:t.encode||t.encoder||{};this.encoder=i.encode?i:typeof i=="object"?new At(i):{encode:i},this.resolution=t.resolution||9,this.tokenize=n=(n=t.tokenize)&&n!=="default"&&n!=="exact"&&n||"strict",this.depth=n==="strict"&&r.depth||0,this.bidirectional=r.bidirectional!==!1,this.fastupdate=!!t.fastupdate,this.score=t.score||null,(n=t.keystore||0)&&(this.keystore=n),this.map=n?new J(n):new Map,this.ctx=n?new J(n):new Map,this.reg=e||(this.fastupdate?n?new J(n):new Map:n?new V(n):new Set),this.N=r.resolution||3,this.rtl=i.rtl||t.rtl||!1,this.cache=(n=t.cache||null)&&new gt(n),this.resolve=t.resolve!==!1,(n=t.db)&&(this.db=this.mount(n)),this.M=t.commit!==!1,this.commit_task=[],this.commit_timer=null,this.priority=t.priority||4}y=Z.prototype;y.mount=function(t){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),t.mount(this)};y.commit=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.commit(this)};y.destroy=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.destroy()};function Ge(t){t.commit_timer||(t.commit_timer=setTimeout(function(){t.commit_timer=null,t.db.commit(t)},1))}y.clear=function(){return this.map.clear(),this.ctx.clear(),this.reg.clear(),this.cache&&this.cache.clear(),this.db?(this.commit_timer&&clearTimeout(this.commit_timer),this.commit_timer=null,this.commit_task=[],this.db.clear()):this};y.append=function(t,e){return this.add(t,e,!0)};y.contain=function(t){return this.db?this.db.has(t):this.reg.has(t)};y.update=function(t,e){let n=this,r=this.remove(t);return r&&r.then?r.then(()=>n.add(t,e)):this.add(t,e)};y.cleanup=function(){return this.fastupdate?(Tt(this.map),this.depth&&Tt(this.ctx),this):this};y.searchCache=le;y.export=function(t,e,n=0,r=0){let i,s;switch(r){case 0:i="reg",s=Xe(this.reg);break;case 1:i="cfg",s=null;break;case 2:i="map",s=pe(this.map,this.reg.size);break;case 3:i="ctx",s=Ze(this.ctx,this.reg.size);break;default:return}return $t.call(this,t,e,i,s,n,r)};y.import=function(t,e){if(e)switch(typeof e=="string"&&(e=JSON.parse(e)),t=t.split("."),t[t.length-1]==="json"&&t.pop(),t.length===3&&t.shift(),t=t.length>1?t[1]:t[0],t){case"reg":this.fastupdate=!1,this.reg=Ye(e,this.reg);break;case"map":this.map=ge(e,this.map);break;case"ctx":this.ctx=Qe(e,this.ctx)}};y.serialize=function(t=!0){let e="",n="",r="";if(this.reg.size){let s;for(var i of this.reg.keys())s||(s=typeof i),e+=(e?",":"")+(s==="string"?'"'+i+'"':i);e="index.reg=new Set(["+e+"]);",n=ze(this.map,s),n="index.map=new Map(["+n+"]);";for(let u of this.ctx.entries()){i=u[0];let o=ze(u[1],s);o="new Map(["+o+"])",o='["'+i+'",'+o+"]",r+=(r?",":"")+o}r="index.ctx=new Map(["+r+"]);"}return t?"function inject(index){"+e+n+r+"}":e+n+r};ce(Z.prototype);var qe=typeof window<"u"&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Kt=["map","ctx","tag","reg","cfg"],ct=W();function Ut(t,e={}){if(!this||this.constructor!==Ut)return new Ut(t,e);typeof t=="object"&&(e=t,t=t.name),t||console.info("Default storage space was used, because a name was not passed."),this.id="flexsearch"+(t?":"+t.toLowerCase().replace(/[^a-z0-9_\\-]/g,""):""),this.field=e.field?e.field.toLowerCase().replace(/[^a-z0-9_\\-]/g,""):"",this.type=e.type,this.fastupdate=this.support_tag_search=!1,this.db=null,this.h={}}y=Ut.prototype;y.mount=function(t){return t.index?t.mount(this):(t.db=this,this.open())};y.open=function(){if(this.db)return this.db;let t=this;navigator.storage&&navigator.storage.persist&&navigator.storage.persist(),ct[t.id]||(ct[t.id]=[]),ct[t.id].push(t.field);let e=qe.open(t.id,1);return e.onupgradeneeded=function(){let n=t.db=this.result;for(let r=0,i;r=f.length){r-=f.length;continue}let c=n?r+Math.min(f.length-r,n):f.length;for(let D=r;D=s.length?[]:!e&&!n?s:(s=s.slice(n,n+e),r?i.enrich(s):s)})};y.enrich=function(t){typeof t!="object"&&(t=[t]);let e=this.db.transaction("reg","readonly").objectStore("reg"),n=[];for(let r=0;r=0)if(i=1,o.length>1)o.splice(h,1);else{r[u]=[];break}s+=o.length}if(n)break}s?i&&t.update(r):t.delete(),t.continue()}y.remove=function(t){return typeof t!="object"&&(t=[t]),Promise.all([this.transaction("map","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t)}}),this.transaction("ctx","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t)}}),this.transaction("tag","readwrite",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t,!0)}}),this.transaction("reg","readwrite",function(e){for(let n=0;n{t.onsuccess=t.oncomplete=function(){e&&e(this.result),e=null,n(this.result)},t.onerror=t.onblocked=r,t=null})}var tn={Index:Z,Charset:he,Encoder:At,Document:pt,Worker:at,Resolver:j,IndexedDB:Ut,Language:{}};var Li=Object.hasOwnProperty;var un,P,on,ri,st,en,ln,hn,cn,_e,De,Fe,si,fn={},Qt=[],ui=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Yt=Array.isArray;function G(t,e){for(var n in e)t[n]=e[n];return t}function ye(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function de(t,e,n,r,i){var s={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++on,__i:-1,__u:0};return i==null&&P.vnode!=null&&P.vnode(s),s}function xt(t){return t.children}function Zt(t,e){this.props=t,this.context=e}function vt(t,e){if(e==null)return t.__?vt(t.__,t.__i+1):null;for(var n;ee&&st.sort(hn),t=st.shift(),e=st.length,oi(t)}finally{st.length=Xt.__r=0}}function pn(t,e,n,r,i,s,u,o,l,h,f){var c,D,a,d,p,g,m,F=r&&r.__k||Qt,C=e.length;for(l=li(n,e,F,l,C),c=0;c0?u=t.__k[s]=de(u.type,u.props,u.key,u.ref?u.ref:null,u.__v):t.__k[s]=u,l=s+D,u.__=t,u.__b=t.__b+1,o=null,(h=u.__i=hi(u,n,l,c))!=-1&&(c--,(o=n[h])&&(o.__u|=2)),o==null||o.__v==null?(h==-1&&(i>f?D--:il?D--:D++,u.__u|=4))):t.__k[s]=null;if(c)for(s=0;s(f?1:0)){for(i=n-1,s=n+1;i>=0||s=0?i--:s++])!=null&&(2&h.__u)==0&&o==h.key&&l==h.type)return u}return-1}function rn(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||ui.test(e)?n:n+"px"}function Vt(t,e,n,r,i){var s,u;t:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof r=="string"&&(t.style.cssText=r=""),r)for(e in r)n&&e in n||rn(t.style,e,"");if(n)for(e in n)r&&n[e]==r[e]||rn(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")s=e!=(e=e.replace(cn,"$1")),u=e.toLowerCase(),e=u in t||e=="onFocusOut"||e=="onFocusIn"?u.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+s]=n,n?r?n.u=r.u:(n.u=_e,t.addEventListener(e,s?Fe:De,s)):t.removeEventListener(e,s?Fe:De,s);else{if(i=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break t}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function sn(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=_e++;else if(e.t0?t:Yt(t)?t.map(Dn):G({},t)}function fi(t,e,n,r,i,s,u,o,l){var h,f,c,D,a,d,p,g=n.props||fn,m=e.props,F=e.type;if(F=="svg"?i="http://www.w3.org/2000/svg":F=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),s!=null){for(h=0;h"u"?"":document.body?.dataset?.basepath??""}function Ee(t,e){let n=e??gi(),r=t.startsWith("/")?t:"/"+t;return n+r}function q(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function mn(t,e){if(!t)return()=>{};let n=i=>{t.classList.contains("active")&&i.target===t&&(i.preventDefault(),i.stopPropagation(),e())},r=i=>{t.classList.contains("active")&&i.key==="Escape"&&(i.preventDefault(),e())};return t.addEventListener("click",n),document.addEventListener("keydown",r),()=>{t.removeEventListener("click",n),document.removeEventListener("keydown",r)}}function _n(t,e){let n=t.querySelectorAll("[src], [href]");for(let r of Array.from(n)){let i=r.hasAttribute("href")?"href":"src",s=r.getAttribute(i);if(s&&!(s.startsWith("http://")||s.startsWith("https://")||s.startsWith("mailto:")||s.startsWith("tel:")||s.startsWith("#")||s.startsWith("/")||s.startsWith("data:")))try{let u=new URL(s,e).toString();r.setAttribute(i,u)}catch{continue}}}function Gt(t){return t.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}var Ae="basic",te="",yn=8,di=5,qt=30,Di=t=>{let e=[],n=-1,r=-1,i=t.toLowerCase(),s=0;for(let u of i){let o=u.codePointAt(0);o>=12352&&o<=12447||o>=12448&&o<=12543||o>=19968&&o<=40959||o>=44032&&o<=55215||o>=131072&&o<=173791?(n!==-1&&(e.push(i.slice(n,r)),n=-1),e.push(u)):o===32||o===9||o===10||o===13?n!==-1&&(e.push(i.slice(n,r)),n=-1):(n===-1&&(n=s),r=s+1),s+=u.length}return n!==-1&&e.push(i.slice(n)),e},ve=new tn.Document({encode:Di,document:{id:"id",tag:"tags",index:[{field:"title",tokenize:"forward"},{field:"content",tokenize:"forward"},{field:"tags",tokenize:"forward"}]}}),Dt=null,Se=[],xe=[],we=new Map;function Be(t){let e=t.split(/\\s+/),n=[],r=[];for(let i of e)i.startsWith("#")&&i.length>1?n.push(i.substring(1)):i!=="#"&&r.push(i);return{tags:n,query:r.join(" ").trim()}}function Cn(t){let e=t.split(/\\s+/),n=e[e.length-1];return n&&n.startsWith("#")?n.substring(1):null}var An=new DOMParser;async function Fi(t){if(we.has(t))return we.get(t);let e=new URL(Ee(t),window.location.origin).toString();try{let n=await fetch(e);if(!n.ok)return[];let r=await n.text(),i=An.parseFromString(r??"","text/html");_n(i,e);let s=Array.from(i.getElementsByClassName("popover-hint"));return we.set(t,s),s}catch{return[]}}var ke=[];function dt(t){ke.push(t)}function mi(){ke.forEach(t=>t()),ke.length=0}async function _i(){let t=document.querySelectorAll(".search");for(let e of Array.from(t)){let n=e.querySelector(".search-container"),r=e.querySelector(".search-button"),i=e.querySelector(".search-bar"),s=e.querySelector(".search-layout");if(!n||!r||!i||!s)continue;let u=s.getAttribute("data-preview")==="true",o=s.getAttribute("data-field-priority"),l=o?JSON.parse(o):["title","content","tags"],h=s.querySelector(".results-container");h||(h=document.createElement("div"),h.className="results-container",h.setAttribute("role","listbox"),h.setAttribute("aria-label","Search results"),s.appendChild(h));let f=s.querySelector(".preview-container");u&&!f&&(f=document.createElement("div"),f.className="preview-container",s.appendChild(f));let c=document.createElement("div");c.className="tag-suggestions",c.setAttribute("role","listbox"),c.setAttribute("aria-label","Tag suggestions"),c.style.display="none";let D=i.parentElement;D.insertBefore(c,i.nextSibling);let a=document.createElement("span");a.className="ghost-text",a.setAttribute("aria-hidden","true"),D.insertBefore(a,i.nextSibling);let d=-1,p=[],g=!1,m=_=>{if(d<0||d>=p.length){a.textContent="";return}let w=p[d];if(!w.toLowerCase().startsWith(_.toLowerCase())){a.textContent="";return}let L=w.substring(_.length);a.innerHTML="";let S=document.createElement("span");S.style.visibility="hidden",S.textContent=i.value,a.appendChild(S),a.appendChild(document.createTextNode(L))},F=()=>{c.querySelectorAll(".tag-suggestion-item").forEach((L,S)=>{L.classList.toggle("active",S===d)});let w=Cn(i.value)||"";m(w)},C=()=>{g=!1,d=-1,p=[],c.style.display="none",a.textContent=""},B=_=>{let w=i.value,L=w.lastIndexOf("#");L!==-1&&(i.value=w.substring(0,L)+"#"+_+" "),C(),i.focus(),i.dispatchEvent(new Event("input"))},b=_=>{if(be){if(p=_===""?xe.slice(0,10):xe.filter(w=>w.toLowerCase().startsWith(_.toLowerCase())).slice(0,10),p.length===0){C();return}d=0,g=!0,q(c);for(let w=0;w!g||p.length===0?!1:(_==="down"?d=Math.min(d+1,p.length-1):d=Math.max(d-1,0),F(),!0),E=null,A=0,v=null,M=()=>{n.classList.remove("active"),r.setAttribute("aria-expanded","false"),i.value="",q(h),f&&q(f),s.classList.remove("display-results"),Ae="basic",E=null,C(),r.focus()},T=_=>{Ae=_,n.classList.add("active"),r.setAttribute("aria-expanded","true"),i.focus()},N=async _=>{if(q(h),_.length===0){let w=document.createElement("a");w.className="result-card no-match";let L=document.createElement("h3");L.textContent="No results.";let S=document.createElement("p");S.textContent="Try another search term?",w.appendChild(L),w.appendChild(S),h.appendChild(w),E=null,f&&q(f)}else for(let w of _){let L=document.createElement("a");L.className="result-card",L.id=w.slug,L.href=Ee(w.slug);let S=document.createElement("h3");if(S.className="card-title",S.innerHTML=w.title,L.appendChild(S),w.tags.length>0){let K=document.createElement("ul");K.className="tags",K.innerHTML=w.tags.join(""),L.appendChild(K)}let X=document.createElement("p");X.className="card-description",X.innerHTML=w.content,L.appendChild(X),h.appendChild(L)}},R=()=>Array.from(h.querySelectorAll(".result-card:not(.no-match)")),O=()=>{let _=Be(te);return _.query||(_.tags.length>0?_.tags.join(" "):te)},H=async _=>{if(!f||(q(f),!_))return;let w=_.id,L=++A,S=await Fi(w);if(L!==A)return;let X=O(),K=document.createElement("div");K.className="preview-inner";for(let jt of S){let lt=jt.cloneNode(!0);X.trim()!==""&&(lt.innerHTML=yi(X,lt)),K.appendChild(lt)}f.appendChild(K);let Lt=Array.from(f.getElementsByClassName("highlight")).sort((jt,lt)=>lt.innerHTML.length-jt.innerHTML.length);Lt[0]&&Lt[0].scrollIntoView({block:"start"})},$=_=>{E&&E.classList.remove("focus"),E=_,E&&E.classList.add("focus"),v&&clearTimeout(v),v=setTimeout(()=>H(E),150)},Ft=_=>{let w=R();if(w.length===0){$(null);return}let L=Math.min(Math.max(_,0),w.length-1);$(w[L]??null)},Q=()=>{let _=R();if(_.length===0)return;let w=E?_.indexOf(E):-1;Ft(w+1)},Mt=()=>{let _=R();if(_.length===0)return;let w=E?_.indexOf(E):_.length;Ft(w-1)},tt=async _=>{let w=_.target.value;te=w;let L=Cn(w);L!==null?b(L):C();let S=Be(w),X=S.query!==""||S.tags.length>0;if(s.classList.toggle("display-results",X),Ae=S.tags.length>0&&!S.query?"tags":"basic",!X){q(h),f&&q(f),E=null;return}let K;S.query?K=await ve.searchAsync({query:S.query,limit:S.tags.length>0?1e4:yn,index:["title","content"]}):S.tags.length>0?K=await ve.searchAsync({query:S.tags[0],limit:1e4,index:["tags"]}):K=[];let Lt=ht=>{let Bt=K.filter(It=>It.field===ht);return Bt.length===0?[]:[...Bt[0].result]},lt=[...new Set(l.flatMap(ht=>Lt(ht)))].filter(ht=>{if(S.tags.length===0)return!0;let Bt=Se[ht];if(!Bt)return!1;let It=Dt?.[Bt];if(!It)return!1;let Sn=It.tags||[];return S.tags.every(Tn=>Sn.some(Mn=>Mn.toLowerCase()===Tn.toLowerCase()))}),Bn=S.query||(S.tags.length>0?S.tags.join(" "):w),kn=lt.map(ht=>Ei(Bn,ht));await N(kn.slice(0,yn));let bn=R();$(bn[0]??null)},et=_=>{_.stopPropagation(),T("basic")};r.addEventListener("click",et),dt(()=>r.removeEventListener("click",et)),i.addEventListener("input",tt),dt(()=>i.removeEventListener("input",tt));let ut=_=>{if(g){if(_.key==="ArrowDown"){_.preventDefault(),k("down");return}if(_.key==="ArrowUp"){_.preventDefault(),k("up");return}if(_.key==="Tab"){_.preventDefault(),d>=0&&d=0&&di.removeEventListener("keydown",ut));let ot=_=>{_.key==="k"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey?(_.preventDefault(),n.classList.contains("active")?M():T("basic")):_.shiftKey&&(_.ctrlKey||_.metaKey)&&_.key.toLowerCase()==="k"&&(_.preventDefault(),T("tags"),i.value="#",i.dispatchEvent(new Event("input")))};document.addEventListener("keydown",ot),dt(()=>document.removeEventListener("keydown",ot));let x=_=>{let w=_.target.closest(".result-card");!w||w.classList.contains("no-match")||_ instanceof MouseEvent&&(_.altKey||_.ctrlKey||_.metaKey||_.shiftKey)||M()},I=_=>{let w=_.target.closest(".result-card");!w||w.classList.contains("no-match")||$(w)};h.addEventListener("click",x),h.addEventListener("mouseover",I),dt(()=>{h.removeEventListener("click",x),h.removeEventListener("mouseover",I)});let mt=_=>{let w=_.target.closest(".tag-suggestion-item");if(!w)return;let L=w.getAttribute("data-tag");L&&B(L)},Te=_=>{let w=_.target.closest(".tag-suggestion-item");if(!w)return;let L=w.getAttribute("data-index");L!==null&&(d=parseInt(L,10),F())};c.addEventListener("click",mt),c.addEventListener("mouseover",Te),dt(()=>{c.removeEventListener("click",mt),c.removeEventListener("mouseover",Te)});let xn=mn(n,M);dt(xn)}}function wn(t){let e=t.split(/\\s+/).filter(r=>r.trim()!==""),n=e.length;if(n>1)for(let r=1;ri.length-r.length)}function yi(t,e){let n=wn(t).filter(h=>h.trim()!=="");if(n.length===0)return e.innerHTML;let r=An.parseFromString(e.innerHTML,"text/html"),i=n.map(h=>h.replace(/[.*+?^\${}()|[\\]\\\\]/g,"\\\\$&")).join("|");if(i==="")return e.innerHTML;let s=new RegExp(i,"gi"),u=r.createTreeWalker(r.body,NodeFilter.SHOW_TEXT),o=[],l=u.nextNode();for(;l;)o.push(l),l=u.nextNode();for(let h of o){let f=h.nodeValue??"";if(s.lastIndex=0,!s.test(f))continue;s.lastIndex=0;let c=r.createDocumentFragment(),D=0,a;for(;(a=s.exec(f))!==null;){a.index>D&&c.appendChild(r.createTextNode(f.slice(D,a.index)));let d=r.createElement("span");d.className="highlight",d.textContent=a[0],c.appendChild(d),D=a.index+a[0].length}Dl!==""),s=0,u=i.length-1;if(n){let l=D=>r.some(a=>D.toLowerCase().startsWith(a.toLowerCase())),h=i.map(l),f=0,c=0;for(let D=0;Dp+(g?1:0),0);d>=f&&(f=d,c=D)}s=Math.max(c-qt,0),u=Math.min(s+2*qt,i.length-1),i=i.slice(s,u)}let o=i.map(l=>{let h=l;for(let f of r)if(l.toLowerCase().includes(f.toLowerCase())){let c=new RegExp(f.replace(/[.*+?^\${}()|[\\]\\\\]/g,"\\\\$&"),"gi");h=l.replace(c,D=>\`\${D}\`);break}return h}).join(" ");return(s===0?"":"...")+o+(u===i.length-1?"":"...")}function Ci(t,e){return!e||e.length===0||t.length===0?[]:e.map(n=>{let r=Gt(n);return t.some(i=>n.toLowerCase().includes(i.toLowerCase()))?\`
  • #\${r}

  • \`:\`
  • #\${r}

  • \`}).slice(0,di)}function Ei(t,e){let n=Se[e];if(!n||!Dt)return{id:e,slug:"",title:"",content:"",tags:[]};let r=Dt[n];if(!r)return{id:e,slug:n,title:"",content:"",tags:[]};let i=Be(te);return{id:e,slug:n,title:i.tags.length>0&&!i.query?Gt(r.title):En(t,r.title||""),content:En(t,r.content||"",!0),tags:Ci(i.tags,r.tags)}}async function Ai(){if(!Dt)return;let t=0,e=[],n=new Set;for(let r of Object.keys(Dt)){let i=Dt[r];if(i){Se[t]=r;for(let s of i.tags||[])n.add(s);e.push(ve.addAsync(t,{id:t,slug:r,title:i.title||"",content:i.content||"",tags:i.tags||[]})),t++}}await Promise.all(e),xe=[...n].sort()}async function wi(){return await fetchData}var be=!1;async function vi(){be||(Dt=await wi(),await Ai(),be=!0)}async function vn(){mi(),await vi(),await _i()}document.addEventListener("nav",vn);document.addEventListener("render",vn); `; var defaultOptions = { - enablePreview: true + enablePreview: true, + fieldPriority: ["title", "content", "tags"] }; var Search_default = ((userOpts) => { const Search = ({ displayClass, cfg }) => { @@ -96,16 +121,24 @@ var Search_default = ((userOpts) => { const locale = cfg.locale ?? "en-US"; const searchPlaceholder = i18n(locale).components.search.searchBarPlaceholder; return /* @__PURE__ */ jsxs("div", { class: classNames(displayClass, "search"), children: [ - /* @__PURE__ */ jsxs("button", { class: "search-button", children: [ - /* @__PURE__ */ jsxs("svg", { role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 19.9 19.7", children: [ - /* @__PURE__ */ jsx("title", { children: "Search" }), - /* @__PURE__ */ jsxs("g", { class: "search-path", fill: "none", children: [ - /* @__PURE__ */ jsx("path", { "stroke-linecap": "square", d: "M18.5 18.3l-5.4-5.4" }), - /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7" }) - ] }) - ] }), - /* @__PURE__ */ jsx("p", { children: i18n(locale).components.search.title }) - ] }), + /* @__PURE__ */ jsxs( + "button", + { + class: "search-button", + "aria-label": i18n(locale).components.search.title, + "aria-expanded": "false", + children: [ + /* @__PURE__ */ jsxs("svg", { role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 19.9 19.7", children: [ + /* @__PURE__ */ jsx("title", { children: "Search" }), + /* @__PURE__ */ jsxs("g", { class: "search-path", fill: "none", children: [ + /* @__PURE__ */ jsx("path", { "stroke-linecap": "square", d: "M18.5 18.3l-5.4-5.4" }), + /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7" }) + ] }) + ] }), + /* @__PURE__ */ jsx("p", { children: i18n(locale).components.search.title }) + ] + } + ), /* @__PURE__ */ jsx("div", { class: "search-container", children: /* @__PURE__ */ jsxs("div", { class: "search-space", children: [ /* @__PURE__ */ jsx( "input", @@ -118,7 +151,14 @@ var Search_default = ((userOpts) => { placeholder: searchPlaceholder } ), - /* @__PURE__ */ jsx("div", { class: "search-layout", "data-preview": opts.enablePreview }) + /* @__PURE__ */ jsx( + "div", + { + class: "search-layout", + "data-preview": opts.enablePreview, + "data-field-priority": JSON.stringify(opts.fieldPriority) + } + ) ] }) }) ] }); }; diff --git a/dist/index.js.map b/dist/index.js.map index 4fa8089..c53e3d8 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/util/lang.ts","../src/i18n/locales/en-US.ts","../src/i18n/locales/de-DE.ts","../src/i18n/locales/es-ES.ts","../src/i18n/locales/fr-FR.ts","../src/i18n/locales/ja-JP.ts","../src/i18n/locales/zh-CN.ts","../src/i18n/index.ts","../src/components/styles/search.scss","../src/components/scripts/search.inline.ts","../src/components/Search.tsx"],"names":[],"mappings":";;;AAAO,SAAS,UAAA,CACd,iBACG,OAAA,EACK;AACR,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,OAAA,CAAQ,KAAK,YAAY,CAAA;AAAA,EAC3B;AACA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;;;ACRA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACPA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACPA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACPA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACPA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACPA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,oBAAA,EAAsB;AAAA;AACxB;AAEJ,CAAA;;;ACAA,IAAM,OAAA,GAAuC;AAAA,EAC3C,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;AAEO,SAAS,KAAK,MAAA,EAAgB;AACnC,EAAA,OAAO,OAAA,CAAQ,MAAM,CAAA,IAAK,aAAA;AAC5B;;;AClBA,IAAA,cAAA,GAAA,s4MAAA;;;ACAA,IAAA,qBAAA,GAAA,CAAA;AAAA,CAAA;ACeA,IAAM,cAAA,GAAgC;AAAA,EACpC,aAAA,EAAe;AACjB,CAAA;AAEA,IAAO,cAAA,IAAS,CAAC,QAAA,KAAsC;AACrD,EAAA,MAAM,MAAA,GAA0B,CAAC,EAAE,YAAA,EAAc,KAAI,KAA4B;AAC/E,IAAA,MAAM,IAAA,GAAO,EAAE,GAAG,cAAA,EAAgB,GAAG,QAAA,EAAS;AAC9C,IAAA,MAAM,MAAA,GAAS,IAAI,MAAA,IAAU,OAAA;AAC7B,IAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,MAAM,CAAA,CAAE,WAAW,MAAA,CAAO,oBAAA;AAEzD,IAAA,4BACG,KAAA,EAAA,EAAI,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,QAAQ,CAAA,EAC3C,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,QAAA,EAAA,EAAO,OAAM,eAAA,EACZ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,SAAI,IAAA,EAAK,KAAA,EAAM,KAAA,EAAM,4BAAA,EAA6B,SAAQ,eAAA,EACzD,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,WAAM,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,0BACb,IAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAM,aAAA,EAAc,MAAK,MAAA,EAC1B,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,gBAAA,EAAe,QAAA,EAAS,CAAA,EAAE,qBAAA,EAAsB,CAAA;AAAA,gCACrD,QAAA,EAAA,EAAO,EAAA,EAAG,KAAI,EAAA,EAAG,GAAA,EAAI,GAAE,GAAA,EAAI;AAAA,WAAA,EAC9B;AAAA,SAAA,EACF,CAAA;AAAA,4BACC,GAAA,EAAA,EAAG,QAAA,EAAA,IAAA,CAAK,MAAM,CAAA,CAAE,UAAA,CAAW,OAAO,KAAA,EAAM;AAAA,OAAA,EAC3C,CAAA;AAAA,0BACC,KAAA,EAAA,EAAI,KAAA,EAAM,oBACT,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,OAAM,cAAA,EACT,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAa,KAAA;AAAA,YACb,KAAA,EAAM,YAAA;AAAA,YACN,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,MAAA;AAAA,YACL,YAAA,EAAY,iBAAA;AAAA,YACZ,WAAA,EAAa;AAAA;AAAA,SACf;AAAA,4BACC,KAAA,EAAA,EAAI,KAAA,EAAM,eAAA,EAAgB,cAAA,EAAc,KAAK,aAAA,EAAe;AAAA,OAAA,EAC/D,CAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,MAAA,CAAO,cAAA,GAAiB,qBAAA;AACxB,EAAA,MAAA,CAAO,GAAA,GAAM,cAAA;AAEb,EAAA,OAAO,MAAA;AACT,CAAA","file":"index.js","sourcesContent":["export function classNames(\n displayClass?: \"mobile-only\" | \"desktop-only\",\n ...classes: string[]\n): string {\n if (displayClass) {\n classes.push(displayClass);\n }\n return classes.join(\" \");\n}\n","export default {\n components: {\n search: {\n title: \"Search\",\n searchBarPlaceholder: \"Search for something\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Suche\",\n searchBarPlaceholder: \"Suche nach etwas\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Buscar\",\n searchBarPlaceholder: \"Buscar algo\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Recherche\",\n searchBarPlaceholder: \"Rechercher quelque chose\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"検索\",\n searchBarPlaceholder: \"何かを検索\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"搜索\",\n searchBarPlaceholder: \"搜索内容\",\n },\n },\n};\n","import enUS from \"./locales/en-US\";\nimport deDE from \"./locales/de-DE\";\nimport esES from \"./locales/es-ES\";\nimport frFR from \"./locales/fr-FR\";\nimport jaJP from \"./locales/ja-JP\";\nimport zhCN from \"./locales/zh-CN\";\n\nconst locales: Record = {\n \"en-US\": enUS,\n \"de-DE\": deDE,\n \"es-ES\": esES,\n \"fr-FR\": frFR,\n \"ja-JP\": jaJP,\n \"zh-CN\": zhCN,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n",".search {\n min-width: fit-content;\n max-width: 14rem;\n}\n\n@media all and (max-width: 800px) {\n .search {\n flex-grow: 0.3;\n }\n}\n.search > .search-button {\n background-color: transparent;\n border: 1px var(--lightgray) solid;\n border-radius: 4px;\n font-family: inherit;\n font-size: inherit;\n height: 2rem;\n padding: 0 1rem 0 0;\n display: flex;\n align-items: center;\n text-align: inherit;\n cursor: pointer;\n white-space: nowrap;\n width: 100%;\n}\n\n.search > .search-button > p {\n display: inline;\n color: var(--gray);\n text-wrap: unset;\n}\n\n.search > .search-button svg {\n cursor: pointer;\n width: 18px;\n min-width: 18px;\n margin: 0 0.5rem;\n}\n\n.search > .search-button svg .search-path {\n stroke: var(--darkgray);\n stroke-width: 1.5px;\n transition: stroke 0.5s ease;\n}\n\n.search > .search-container {\n position: fixed;\n contain: layout;\n z-index: 999;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n overflow-y: auto;\n display: none;\n backdrop-filter: blur(4px);\n}\n\n.search > .search-container.active {\n display: inline-block;\n}\n\n.search > .search-container > .search-space {\n width: 65%;\n margin-top: 12vh;\n margin-left: auto;\n margin-right: auto;\n}\n\n@media all and not (min-width: 1200px) {\n .search > .search-container > .search-space {\n width: 90%;\n }\n}\n.search > .search-container > .search-space > * {\n width: 100%;\n border-radius: 7px;\n background: var(--light);\n box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16);\n margin-bottom: 2em;\n}\n\n.search > .search-container > .search-space > input {\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n color: var(--dark);\n font-size: 1.1em;\n border: 1px solid var(--lightgray);\n}\n\n.search > .search-container > .search-space > input:focus {\n outline: none;\n}\n\n.search > .search-container > .search-space > .search-layout {\n display: none;\n flex-direction: row;\n border: 1px solid var(--lightgray);\n flex: 0 0 100%;\n box-sizing: border-box;\n}\n\n.search > .search-container > .search-space > .search-layout.display-results {\n display: flex;\n}\n\n.search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n flex: 0 0 min(30%, 450px);\n}\n\n@media all and not (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout[data-preview] .result-card > p.preview {\n display: none;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:first-child {\n border-right: 1px solid var(--lightgray);\n border-top-right-radius: unset;\n border-bottom-right-radius: unset;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:last-child {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n}\n.search > .search-container > .search-space > .search-layout > div {\n height: 63vh;\n border-radius: 5px;\n}\n\n@media all and (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout {\n flex-direction: column;\n }\n .search > .search-container > .search-space > .search-layout > .preview-container {\n display: none !important;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n width: 100%;\n height: auto;\n flex: 0 0 100%;\n }\n}\n.search > .search-container > .search-space > .search-layout .highlight {\n background: color-mix(in srgb, var(--tertiary) 60%, rgba(255, 255, 255, 0));\n border-radius: 5px;\n scroll-margin-top: 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container {\n flex-grow: 1;\n display: block;\n overflow: hidden;\n font-family: inherit;\n color: var(--dark);\n line-height: 1.5em;\n font-weight: 400;\n overflow-y: auto;\n padding: 0 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container .preview-inner {\n margin: 0 auto;\n width: 100%;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container a[role=anchor] {\n background-color: transparent;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container {\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card {\n overflow: hidden;\n padding: 1em;\n cursor: pointer;\n transition: background 0.2s ease;\n border-bottom: 1px solid var(--lightgray);\n width: 100%;\n display: block;\n box-sizing: border-box;\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n text-transform: none;\n text-align: left;\n outline: none;\n font-weight: inherit;\n text-decoration: none;\n color: var(--dark);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:hover,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:focus,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.focus {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > h3 {\n margin: 0;\n color: var(--secondary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags {\n margin-top: 0.45rem;\n margin-bottom: 0;\n padding: 0;\n list-style: none;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags > li {\n display: inline-block;\n margin-right: 0.3rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p {\n border-radius: 8px;\n background-color: var(--highlight);\n padding: 0.2rem 0.4rem;\n margin: 0;\n line-height: 1.4rem;\n font-weight: 700;\n color: var(--secondary);\n font-size: 0.85rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p.match-tag {\n color: var(--tertiary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > p {\n margin-bottom: 0;\n margin-top: 0.5em;\n font-size: 0.9em;\n color: var(--gray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.no-match {\n cursor: default;\n}","var hn=Object.create;var ge=Object.defineProperty;var cn=Object.getOwnPropertyDescriptor;var fn=Object.getOwnPropertyNames;var an=Object.getPrototypeOf,pn=Object.prototype.hasOwnProperty;var Dn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var gn=(t,e,n,u)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of fn(e))!pn.call(t,i)&&i!==n&&ge(t,i,{get:()=>e[i],enumerable:!(u=cn(e,i))||u.enumerable});return t};var dn=(t,e,n)=>(n=t!=null?hn(an(t)):{},gn(e||!t||!t.__esModule?ge(n,\"default\",{value:t,enumerable:!0}):n,t));var Ot=Dn(()=>{});var y;function z(t,e,n){let u=typeof n,i=typeof t;if(u!==\"undefined\"){if(i!==\"undefined\"){if(n){if(i===\"function\"&&u===i)return function(o){return t(n(o))};if(e=t.constructor,e===n.constructor){if(e===Array)return n.concat(t);if(e===Map){var r=new Map(n);for(var s of t)r.set(s[0],s[1]);return r}if(e===Set){s=new Set(n);for(r of t.values())s.add(r);return s}}}return t}return n}return i===\"undefined\"?e:t}function rt(t,e){return typeof t>\"u\"?e:t}function W(){return Object.create(null)}function H(t){return typeof t==\"string\"}function mt(t){return typeof t==\"object\"}function _t(t,e){if(H(e))t=t[e];else for(let n=0;t&&n1?this.addMatcher(t,e):(this.mapper||(this.mapper=new Map),this.mapper.set(t,e),this.cache&&tt(this),this)};y.addMatcher=function(t,e){return typeof t==\"object\"?this.addReplacer(t,e):t.length<2&&(this.dedupe||this.mapper)?this.addMapper(t,e):(this.matcher||(this.matcher=new Map),this.matcher.set(t,e),this.h+=(this.h?\"|\":\"\")+t,this.J=null,this.cache&&tt(this),this)};y.addReplacer=function(t,e){return typeof t==\"string\"?this.addMatcher(t,e):(this.replacer||(this.replacer=[]),this.replacer.push(t,e),this.cache&&tt(this),this)};y.encode=function(t,e){if(this.cache&&t.length<=this.H)if(this.F){if(this.B.has(t))return this.B.get(t)}else this.F=setTimeout(tt,50,this);this.normalize&&(typeof this.normalize==\"function\"?t=this.normalize(t):t=de?t.normalize(\"NFKD\").replace(de,\"\").toLowerCase():t.toLowerCase()),this.prepare&&(t=this.prepare(t)),this.numeric&&t.length>3&&(t=t.replace(_n,\"$1 $2\").replace(yn,\"$1 $2\").replace(mn,\"$1 \"));let n=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer),u=[],i=W(),r,s,o=this.split||this.split===\"\"?t.split(this.split):[t];for(let h=0,f,c;hthis.maxlength)){if(e){if(i[f])continue;i[f]=1}else{if(r===f)continue;r=f}if(n)u.push(f);else if(!this.filter||(typeof this.filter==\"function\"?this.filter(f):!this.filter.has(f))){if(this.cache&&f.length<=this.I)if(this.F){var l=this.D.get(f);if(l||l===\"\"){l&&u.push(l);continue}}else this.F=setTimeout(tt,50,this);if(this.stemmer){this.K||(this.K=new RegExp(\"(?!^)(\"+this.A+\")$\"));let g;for(;g!==f&&f.length>2;)g=f,f=f.replace(this.K,a=>this.stemmer.get(a))}if(f&&(this.mapper||this.dedupe&&f.length>1)){l=\"\";for(let g=0,a=\"\",d,p;g1&&(this.J||(this.J=new RegExp(\"(\"+this.h+\")\",\"g\")),f=f.replace(this.J,g=>this.matcher.get(g))),f&&this.replacer)for(l=0;f&&lthis.L&&(this.D.clear(),this.I=this.I/1.1|0)),f){if(f!==c)if(e){if(i[f])continue;i[f]=1}else{if(s===f)continue;s=f}u.push(f)}}}return this.finalize&&(u=this.finalize(u)||u),this.cache&&t.length<=this.H&&(this.B.set(t,u),this.B.size>this.L&&(this.B.clear(),this.H=this.H/1.1|0)),u};function tt(t){t.F=null,t.B.clear(),t.D.clear()}function Qt(t,e,n){n||(e||typeof t!=\"object\"?typeof e==\"object\"&&(n=e,e=0):n=t),n&&(t=n.query||t,e=n.limit||e);let u=\"\"+(e||0);n&&(u+=(n.offset||0)+!!n.context+!!n.suggest+(n.resolve!==!1)+(n.resolution||this.resolution)+(n.boost||0)),t=(\"\"+t).toLowerCase(),this.cache||(this.cache=new it);let i=this.cache.get(t+u);if(!i){let r=n&&n.cache;r&&(n.cache=!1),i=this.search(t,e,n),r&&(n.cache=r),this.cache.set(t+u,i)}return i}function it(t){this.limit=t&&t!==!0?t:1e3,this.cache=new Map,this.h=\"\"}it.prototype.set=function(t,e){this.cache.set(this.h=t,e),this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};it.prototype.get=function(t){let e=this.cache.get(t);return e&&this.h!==t&&(this.cache.delete(t),this.cache.set(this.h=t,e)),e};it.prototype.remove=function(t){for(let e of this.cache){let n=e[0];e[1].includes(t)&&this.cache.delete(n)}};it.prototype.clear=function(){this.cache.clear(),this.h=\"\"};var Fe={normalize:!1,numeric:!1,dedupe:!1},wt={},$t=new Map([[\"b\",\"p\"],[\"v\",\"f\"],[\"w\",\"f\"],[\"z\",\"s\"],[\"x\",\"s\"],[\"d\",\"t\"],[\"n\",\"m\"],[\"c\",\"k\"],[\"g\",\"k\"],[\"j\",\"k\"],[\"q\",\"k\"],[\"i\",\"e\"],[\"y\",\"e\"],[\"u\",\"o\"]]),me=new Map([[\"ae\",\"a\"],[\"oe\",\"o\"],[\"sh\",\"s\"],[\"kh\",\"k\"],[\"th\",\"t\"],[\"ph\",\"f\"],[\"pf\",\"f\"]]),_e=[/([^aeo])h(.)/g,\"$1$2\",/([aeo])h([^aeo]|$)/g,\"$1$2\",/(.)\\1+/g,\"$1\"],ye={a:\"\",e:\"\",i:\"\",o:\"\",u:\"\",y:\"\",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,\\u00DF:2,d:3,t:3,l:4,m:5,n:5,r:6},Xt={Exact:Fe,Default:wt,Normalize:wt,LatinBalance:{mapper:$t},LatinAdvanced:{mapper:$t,matcher:me,replacer:_e},LatinExtra:{mapper:$t,replacer:_e.concat([/(?!^)[aeo]/g,\"\"]),matcher:me},LatinSoundex:{dedupe:!1,include:{letter:!0},finalize:function(t){for(let n=0;n=s.length)e-=s.length;else{e=s[u?\"splice\":\"slice\"](e,n);let o=e.length;if(o&&(i=i.length?i.concat(e):e,n-=o,u&&(t.length-=o),!n))break;e=0}return i}function ct(t){if(!this||this.constructor!==ct)return new ct(t);this.index=t?[t]:[],this.length=t?t.length:0;let e=this;return new Proxy([],{get(n,u){if(u===\"length\")return e.length;if(u===\"push\")return function(i){e.index[e.index.length-1].push(i),e.length++};if(u===\"pop\")return function(){if(e.length)return e.length--,e.index[e.index.length-1].pop()};if(u===\"indexOf\")return function(i){let r=0;for(let s=0,o,l;s=0)return r+l;r+=o.length}return-1};if(u===\"includes\")return function(i){for(let r=0;r32?(this.B=be,this.A=BigInt(t)):(this.B=ke,this.A=t)}N.prototype.get=function(t){let e=this.index[this.B(t)];return e&&e.get(t)};N.prototype.set=function(t,e){var n=this.B(t);let u=this.index[n];u?(n=u.size,u.set(t,e),(n-=u.size)&&this.size++):(this.index[n]=u=new Map([[t,e]]),this.h.push(u),this.size++)};function O(t=8){if(!this||this.constructor!==O)return new O(t);this.index=W(),this.h=[],this.size=0,t>32?(this.B=be,this.A=BigInt(t)):(this.B=ke,this.A=t)}O.prototype.add=function(t){var e=this.B(t);let n=this.index[e];n?(e=n.size,n.add(t),(e-=n.size)&&this.size++):(this.index[e]=n=new Set([t]),this.h.push(n),this.size++)};y=N.prototype;y.has=O.prototype.has=function(t){let e=this.index[this.B(t)];return e&&e.has(t)};y.delete=O.prototype.delete=function(t){let e=this.index[this.B(t)];e&&e.delete(t)&&this.size--};y.clear=O.prototype.clear=function(){this.index=W(),this.h=[],this.size=0};y.values=O.prototype.values=function*(){for(let t=0;t=this.priority*this.priority*3):(Ut=setTimeout(An,0),Ae=Date.now()),Bt){let r=this;return new Promise(s=>{setTimeout(function(){s(r[t+\"Async\"].apply(r,e))},0)})}let i=this[t].apply(this,e);return n=i.then?i:new Promise(r=>r(i)),u&&n.then(u),n}}var V=0;function et(t={},e){function n(o){function l(h){h=h.data||h;let f=h.id,c=f&&r.h[f];c&&(c(h.msg),delete r.h[f])}if(this.worker=o,this.h=W(),this.worker)return i?this.worker.on(\"message\",l):this.worker.onmessage=l,t.config?new Promise(function(h){V>1e9&&(V=0),r.h[++V]=function(){h(r)},r.worker.postMessage({id:V,task:\"init\",factory:u,options:t})}):(this.priority=t.priority||4,this.encoder=e||null,this.worker.postMessage({task:\"init\",factory:u,options:t}),this)}if(!this||this.constructor!==et)return new et(t);let u=typeof self<\"u\"?self._factory:typeof window<\"u\"?window._factory:null;u&&(u=u.toString());let i=typeof window>\"u\",r=this,s=En(u,i,t.worker);return s.then?s.then(function(o){return n.call(r,o)}):n.call(this,s)}Z(\"add\");Z(\"append\");Z(\"search\");Z(\"update\");Z(\"remove\");Z(\"clear\");Z(\"export\");Z(\"import\");et.prototype.searchCache=Qt;Yt(et.prototype);function Z(t){et.prototype[t]=function(){let e=this,n=[].slice.call(arguments);var u=n[n.length-1];let i;return typeof u==\"function\"&&(i=u,n.pop()),u=new Promise(function(r){t===\"export\"&&typeof n[0]==\"function\"&&(n[0]=null),V>1e9&&(V=0),e.h[++V]=r,e.worker.postMessage({task:t,id:V,args:n})}),i?(u.then(i),this):u}}function En(t,e,n){return e?typeof module<\"u\"?new(Ot()).Worker(__dirname+\"/worker/node.js\"):Promise.resolve().then(()=>dn(Ot(),1)).then(function(u){return new u.Worker(import.meta.dirname+\"/node/node.mjs\")}):t?new window.Worker(URL.createObjectURL(new Blob([\"onmessage=\"+Cn.toString()],{type:\"text/javascript\"}))):new window.Worker(typeof n==\"string\"?n:import.meta.url.replace(\"/worker.js\",\"/worker/worker.js\").replace(\"flexsearch.bundle.module.min.js\",\"module/worker/worker.js\").replace(\"flexsearch.bundle.module.min.mjs\",\"module/worker/worker.js\"),{type:\"module\"})}nt.prototype.add=function(t,e,n){if(mt(t)&&(e=t,t=_t(e,this.key)),e&&(t||t===0)){if(!n&&this.reg.has(t))return this.update(t,e);for(let o=0,l;oe?t.slice(n,n+e):t,u?lt.call(this,t):t;let i=[];for(let r=0,s,o;r=o){n-=o;continue}s=s.slice(n,n+e),o=s.length,n=0}if(o>e&&(s=s.slice(0,e),o=e),!i.length&&o>=e)return u?lt.call(this,s):s;if(i.push(s),e-=o,!e)break}return i=i.length>1?[].concat.apply([],i):i[0],u?lt.call(this,i):i}function jt(t,e,n,u){var i=u[0];if(i[0]&&i[0].query)return t[e].apply(t,i);if(!(e!==\"and\"&&e!==\"not\"||t.result.length||t.await||i.suggest))return u.length>1&&(i=u[u.length-1]),(u=i.resolve)?t.await||t.result:t;let r=[],s=0,o=0,l,h,f,c,g;for(e=0;e1&&(n=n[e].apply(n,t.slice(1))),n}T.prototype.or=function(){return jt(this,\"or\",wn,arguments)};function wn(t,e,n,u,i,r,s){return t.length&&(this.result.length&&t.push(this.result),t.length<2?this.result=t[0]:(this.result=Se(t,e,n,!1,this.h),n=0)),i&&(this.await=null),i?this.resolve(e,n,u,s):this}T.prototype.and=function(){return jt(this,\"and\",xn,arguments)};function xn(t,e,n,u,i,r,s){if(!r&&!this.result.length)return i?this.result:this;let o;if(t.length)if(this.result.length&&t.unshift(this.result),t.length<2)this.result=t[0];else{let l=0;for(let h=0,f,c;h1?C.join(\" \"):C[0];let x;if(C&&v){for(var E=v.length,_=(G.split?v.replace(G.split,\"\"):v).length-C.length,w=\"\",M=0,S=0;S-1&&(w=(L?v.substring(0,L):\"\")+s+v.substring(L,L+j)+o+(L+j=l)break}if(b=Et.length*(r.length-2),a||d||l&&D.length-b>l)if(b=l+b-g*2,k=B-A,a>0&&(k+=a),d>0&&(k+=d),k<=b)m=a?A-(a>0?a:0):A-((b-k)/2|0),F=d?B+(d>0?d:0):m+b,h||(m>0&&D.charAt(m)!==\" \"&&D.charAt(m-1)!==\" \"&&(m=D.indexOf(\" \",m),m<0&&(m=0)),F=F.length-1){if(R>=F.length){k[x+1]=1,R>=m.length&&(b[x+1]=1);continue}E-=g}if(D=F[R].text,j=d&&C[x])if(j>0){if(D.length>j)if(k[x+1]=1,h)D=D.substring(0,j);else continue;(j-=D.length)||(j=-1),C[x]=j}else{k[x+1]=1;continue}if(E+D.length+1<=l)D=\" \"+D,B[x]+=D;else if(h)I=l-E-1,I>0&&(D=\" \"+D.substring(0,I),B[x]+=D),k[x+1]=1;else{k[x+1]=1;continue}}else{if(k[x])continue;if(R-=_,A[R]){E-=g,k[x]=1,b[x]=1;continue}if(R<=0){if(R<0){k[x]=1,b[x]=1;continue}E-=g}if(D=F[R].text,j=a&&v[x])if(j>0){if(D.length>j)if(k[x]=1,h)D=D.substring(D.length-j);else continue;(j-=D.length)||(j=-1),v[x]=j}else{k[x]=1;continue}if(E+D.length+1<=l)D+=\" \",B[x]=D+B[x];else if(h)I=D.length+1-(l-E),I>=0&&I=m.length-1||R1?Se(l,n,u,s,r):(l=l[0])&&n&&l.length>n||u?l.slice(u,n+u):l;else{if(tn||u)&&(l=l.slice(u,n+u));else{i=[];for(let c=0,g;cu)u-=g.length;else if((n&&g.length>n||u)&&(g=g.slice(u,n+u),n-=g.length,u&&(u-=g.length)),i.push(g),!n)break}l=i}}return l}function Se(t,e,n,u,i){let r=[],s=W(),o;var l=t.length;let h;if(u){for(i=l-1;i>=0;i--)if(h=(u=t[i])&&u.length){for(l=0;l=0;f--){c=t[f];for(let a=0;a1?bt(i,1,0,0,l,h):i[0],v)})}return a?i:new T(i.length>1?bt(i,1,0,0,l,h):i[0],this)}}a||s||!(c=c||this.field)||(H(c)?s=c:(c.constructor===Array&&c.length===1&&(c=c[0]),s=c.field||c.index)),c&&c.constructor!==Array&&(c=[c])}c||(c=this.field);let b;F=(this.worker||this.db)&&!u&&[];for(let v=0,C,E,_;v\"u\"&&(this.db?F.push(p=this.index.get(this.field[0]).db.enrich(p)):p=lt.call(this,p)),s)return a?d?kt(t,p,this.index,s,d):p:new T(p,this);i[m]={field:r[m],result:p}}if(D&&this.db&&F.length){let v=this;return Promise.all(F).then(function(C){for(let E=0;E0&&((n&&e>n||u)&&(t=t.slice(u,u+n)),i&&(t=lt.call(this,t))),t):[]):[]}function lt(t){if(!this||!this.store)return t;if(this.db)return this.index.get(this.field[0]).db.enrich(t);let e=Array(t.length);for(let n=0,u;n1?n:n[0]}y.append=function(t,e){return this.add(t,e,!0)};y.update=function(t,e){return this.remove(t).add(t,e)};y.remove=function(t){mt(t)&&(t=_t(t,this.key));for(var e of this.index.values())e.remove(t,!0);if(this.reg.has(t)){if(this.tag&&!this.fastupdate)for(let n of this.tag.values())for(let u of n){e=u[0];let i=u[1],r=i.indexOf(t);r>-1&&(i.length>1?i.splice(r,1):n.delete(e))}this.store&&this.store.delete(t),this.reg.delete(t)}return this.cache&&this.cache.remove(t),this};y.clear=function(){let t=[];for(let e of this.index.values()){let n=e.clear();n.then&&t.push(n)}if(this.tag)for(let e of this.tag.values())e.clear();return this.store&&this.store.clear(),this.cache&&this.cache.clear(),t.length?Promise.all(t):this};y.contain=function(t){return this.db?this.index.get(this.field[0]).db.has(t):this.reg.has(t)};y.cleanup=function(){for(let t of this.index.values())t.cleanup();return this};y.get=function(t){return this.db?this.index.get(this.field[0]).db.enrich(t).then(function(e){return e[0]&&e[0].doc||null}):this.store.get(t)||null};y.set=function(t,e){return typeof t==\"object\"&&(e=t,t=_t(e,this.key)),this.store.set(t,e),this};y.searchCache=Qt;y.export=Mn;y.import=Tn;Yt(nt.prototype);function te(t,e=0){let n=[],u=[];e&&(e=25e4/e*5e3|0);for(let i of t.entries())u.push(i),u.length===e&&(n.push(u),u=[]);return u.length&&n.push(u),n}function ee(t,e){e||(e=new Map);for(let n=0,u;n2?n[0]:\"\";if(n=n.length>2?n[2]:n[1],this.worker&&u)return this.index.get(u).import(t);if(e){if(typeof e==\"string\"&&(e=JSON.parse(e)),u)return this.index.get(u).import(n,e);switch(n){case\"reg\":this.fastupdate=!1,this.reg=je(e,this.reg);for(let i=0,r;i=0&&i.splice(s,1)}}else yt(this.map,t),this.depth&&yt(this.ctx,t);e||this.reg.delete(t)}return this.db&&(this.commit_task.push({del:t}),this.M&&Pe(this)),this.cache&&this.cache.remove(t),this};function yt(t,e){let n=0;var u=typeof e>\"u\";if(t.constructor===Array){for(let i=0,r,s,o;i=0){if(r.length>1)return r.splice(s,1),1;if(delete t[i],n)return 1;o=1}else{if(o)return 1;n++}}}else for(let i of t.entries())u=i[0],yt(i[1],e)?n++:t.delete(u);return n}var Ln={memory:{resolution:1},performance:{resolution:3,fastupdate:!0,context:{depth:1,resolution:1}},match:{tokenize:\"forward\"},score:{resolution:9,context:{depth:2,resolution:3}}};$.prototype.add=function(t,e,n,u){if(e&&(t||t===0)){if(!u&&!n&&this.reg.has(t))return this.update(t,e);u=this.depth,e=this.encoder.encode(e,!u);let h=e.length;if(h){let f=W(),c=W(),g=this.resolution;for(let a=0;a2){for(let p=1,D,m,F,A;p2){for(let p=0,D;pp;r--){s=d.substring(p,r),D=this.rtl?i-1-p:p;var o=this.score?this.score(e,d,a,s,D):vt(g,h,a,i,D);K(this,c,s,o,t,n)}break}case\"bidirectional\":case\"reverse\":if(i>1){for(o=i-1;o>0;o--){s=d[this.rtl?i-1-o:o]+s;var l=this.score?this.score(e,d,a,s,o):vt(g,h,a,i,o);K(this,c,s,l,t,n)}s=\"\"}case\"forward\":if(i>1){for(o=0;o1&&as;let p=this.score?this.score(e,s,a,d,o-1):vt(i+(h/2>i?0:1),h,a,r-1,o-1);K(this,f,l?s:d,p,t,n,l?d:s)}}}}this.fastupdate||this.reg.add(t)}}return this.db&&(this.commit_task.push(n?{ins:t}:{del:t}),this.M&&Pe(this)),this};function K(t,e,n,u,i,r,s){let o,l;if(!(o=e[n])||s&&!o[s]){if(s?(e=o||(e[n]=W()),e[s]=1,l=t.ctx,(o=l.get(s))?l=o:l.set(s,l=t.keystore?new N(t.keystore):new Map)):(l=t.map,e[n]=1),(o=l.get(n))?l=o:l.set(n,l=o=[]),r){for(let h=0,f;h1?e+(u||0)<=t?n+(i||0):(t-1)/(e+(u||0))*(n+(i||0))+1|0:0}$.prototype.search=function(t,e,n){if(n||(e||typeof t!=\"object\"?typeof e==\"object\"&&(n=e,e=0):(n=t,t=\"\")),n&&n.cache)return n.cache=!1,t=this.searchCache(t,e,n),n.cache=!0,t;let u=[],i,r,s,o=0,l,h,f,c,g;n&&(t=n.query||t,e=n.limit||e,o=n.offset||0,r=n.context,s=n.suggest,g=(l=n.resolve)&&n.enrich,f=n.boost,c=n.resolution,h=this.db&&n.tag),typeof l>\"u\"&&(l=this.resolve),r=this.depth&&r!==!1;let a=this.encoder.encode(t,!r);if(i=a.length,e=e||(l?100:0),i===1)return ve.call(this,a[0],\"\",e,o,l,g,h);if(i===2&&r&&!s)return ve.call(this,a[1],a[0],e,o,l,g,h);let d=W(),p=0,D;if(r&&(D=a[0],p=1),c||c===0||(c=D?this.N:this.resolution),this.db){if(this.db.search&&(n=this.db.search(this,a,e,o,s,l,g,h),n!==!1))return n;let m=this;return(async function(){for(let F,A;p1)l=bt(t,e,n,u,i,r,s);else if(o===1)return s?Gt.call(null,t[0],n,u):new T(t[0],this);return s?l:new T(l,this)}function ve(t,e,n,u,i,r,s){return t=Zt(this,t,e,n,u,i,r,s),this.db?t.then(function(o){return i?o||[]:new T(o,this)}):t&&t.length?i?Gt.call(this,t,n,u):new T(t,this):i?[]:new T([],this)}function Be(t,e,n,u){let i=[];if(t&&t.length){if(t.length<=u){e.push(t);return}for(let r=0,s;rn)&&(l=n,n=e,e=l),t.db?t.db.get(e,n,u,i,r,s,o):(t=n?(t=t.ctx.get(n))&&t.get(e):t.map.get(e),t)}function $(t,e){if(!this||this.constructor!==$)return new $(t);if(t){var n=H(t)?t:t.preset;n&&(t=Object.assign({},Ln[n],t))}else t={};n=t.context;let u=n===!0?{depth:1}:n||{},i=H(t.encoder)?Xt[t.encoder]:t.encode||t.encoder||{};this.encoder=i.encode?i:typeof i==\"object\"?new ht(i):{encode:i},this.resolution=t.resolution||9,this.tokenize=n=(n=t.tokenize)&&n!==\"default\"&&n!==\"exact\"&&n||\"strict\",this.depth=n===\"strict\"&&u.depth||0,this.bidirectional=u.bidirectional!==!1,this.fastupdate=!!t.fastupdate,this.score=t.score||null,(n=t.keystore||0)&&(this.keystore=n),this.map=n?new N(n):new Map,this.ctx=n?new N(n):new Map,this.reg=e||(this.fastupdate?n?new N(n):new Map:n?new O(n):new Set),this.N=u.resolution||3,this.rtl=i.rtl||t.rtl||!1,this.cache=(n=t.cache||null)&&new it(n),this.resolve=t.resolve!==!1,(n=t.db)&&(this.db=this.mount(n)),this.M=t.commit!==!1,this.commit_task=[],this.commit_timer=null,this.priority=t.priority||4}y=$.prototype;y.mount=function(t){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),t.mount(this)};y.commit=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.commit(this)};y.destroy=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.destroy()};function Pe(t){t.commit_timer||(t.commit_timer=setTimeout(function(){t.commit_timer=null,t.db.commit(t)},1))}y.clear=function(){return this.map.clear(),this.ctx.clear(),this.reg.clear(),this.cache&&this.cache.clear(),this.db?(this.commit_timer&&clearTimeout(this.commit_timer),this.commit_timer=null,this.commit_task=[],this.db.clear()):this};y.append=function(t,e){return this.add(t,e,!0)};y.contain=function(t){return this.db?this.db.has(t):this.reg.has(t)};y.update=function(t,e){let n=this,u=this.remove(t);return u&&u.then?u.then(()=>n.add(t,e)):this.add(t,e)};y.cleanup=function(){return this.fastupdate?(yt(this.map),this.depth&&yt(this.ctx),this):this};y.searchCache=Qt;y.export=function(t,e,n=0,u=0){let i,r;switch(u){case 0:i=\"reg\",r=Le(this.reg);break;case 1:i=\"cfg\",r=null;break;case 2:i=\"map\",r=te(this.map,this.reg.size);break;case 3:i=\"ctx\",r=Me(this.ctx,this.reg.size);break;default:return}return Mt.call(this,t,e,i,r,n,u)};y.import=function(t,e){if(e)switch(typeof e==\"string\"&&(e=JSON.parse(e)),t=t.split(\".\"),t[t.length-1]===\"json\"&&t.pop(),t.length===3&&t.shift(),t=t.length>1?t[1]:t[0],t){case\"reg\":this.fastupdate=!1,this.reg=je(e,this.reg);break;case\"map\":this.map=ee(e,this.map);break;case\"ctx\":this.ctx=Te(e,this.ctx)}};y.serialize=function(t=!0){let e=\"\",n=\"\",u=\"\";if(this.reg.size){let r;for(var i of this.reg.keys())r||(r=typeof i),e+=(e?\",\":\"\")+(r===\"string\"?'\"'+i+'\"':i);e=\"index.reg=new Set([\"+e+\"]);\",n=we(this.map,r),n=\"index.map=new Map([\"+n+\"]);\";for(let s of this.ctx.entries()){i=s[0];let o=we(s[1],r);o=\"new Map([\"+o+\"])\",o='[\"'+i+'\",'+o+\"]\",u+=(u?\",\":\"\")+o}u=\"index.ctx=new Map([\"+u+\"]);\"}return t?\"function inject(index){\"+e+n+u+\"}\":e+n+u};Yt($.prototype);var Ie=typeof window<\"u\"&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Tt=[\"map\",\"ctx\",\"tag\",\"reg\",\"cfg\"],q=W();function Lt(t,e={}){if(!this||this.constructor!==Lt)return new Lt(t,e);typeof t==\"object\"&&(e=t,t=t.name),t||console.info(\"Default storage space was used, because a name was not passed.\"),this.id=\"flexsearch\"+(t?\":\"+t.toLowerCase().replace(/[^a-z0-9_\\-]/g,\"\"):\"\"),this.field=e.field?e.field.toLowerCase().replace(/[^a-z0-9_\\-]/g,\"\"):\"\",this.type=e.type,this.fastupdate=this.support_tag_search=!1,this.db=null,this.h={}}y=Lt.prototype;y.mount=function(t){return t.index?t.mount(this):(t.db=this,this.open())};y.open=function(){if(this.db)return this.db;let t=this;navigator.storage&&navigator.storage.persist&&navigator.storage.persist(),q[t.id]||(q[t.id]=[]),q[t.id].push(t.field);let e=Ie.open(t.id,1);return e.onupgradeneeded=function(){let n=t.db=this.result;for(let u=0,i;u=f.length){u-=f.length;continue}let c=n?u+Math.min(f.length-u,n):f.length;for(let g=u;g=r.length?[]:!e&&!n?r:(r=r.slice(n,n+e),u?i.enrich(r):r)})};y.enrich=function(t){typeof t!=\"object\"&&(t=[t]);let e=this.db.transaction(\"reg\",\"readonly\").objectStore(\"reg\"),n=[];for(let u=0;u=0)if(i=1,o.length>1)o.splice(h,1);else{u[s]=[];break}r+=o.length}if(n)break}r?i&&t.update(u):t.delete(),t.continue()}y.remove=function(t){return typeof t!=\"object\"&&(t=[t]),Promise.all([this.transaction(\"map\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t)}}),this.transaction(\"ctx\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t)}}),this.transaction(\"tag\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&Kt(n,t,!0)}}),this.transaction(\"reg\",\"readwrite\",function(e){for(let n=0;n{t.onsuccess=t.oncomplete=function(){e&&e(this.result),e=null,n(this.result)},t.onerror=t.onblocked=u,t=null})}var We={Index:$,Charset:Xt,Encoder:ht,Document:nt,Worker:et,Resolver:T,IndexedDB:Lt,Language:{}};var hi=Object.hasOwnProperty;var Oe,P,$e,jn,X,Re,Ke,Ue,Je,se,ie,ue,Pn,Ve={},Wt=[],In=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,zt=Array.isArray;function U(t,e){for(var n in e)t[n]=e[n];return t}function oe(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function ne(t,e,n,u,i){var r={type:t,props:e,key:n,ref:u,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++$e,__i:-1,__u:0};return i==null&&P.vnode!=null&&P.vnode(r),r}function at(t){return t.children}function It(t,e){this.props=t,this.context=e}function ft(t,e){if(e==null)return t.__?ft(t.__,t.__i+1):null;for(var n;ee&&X.sort(Ue),t=X.shift(),e=X.length,Wn(t)}finally{X.length=Rt.__r=0}}function Qe(t,e,n,u,i,r,s,o,l,h,f){var c,g,a,d,p,D,m,F=u&&u.__k||Wt,A=e.length;for(l=Rn(n,e,F,l,A),c=0;c0?s=t.__k[r]=ne(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):t.__k[r]=s,l=r+g,s.__=t,s.__b=t.__b+1,o=null,(h=s.__i=zn(s,n,l,c))!=-1&&(c--,(o=n[h])&&(o.__u|=2)),o==null||o.__v==null?(h==-1&&(i>f?g--:il?g--:g++,s.__u|=4))):t.__k[r]=null;if(c)for(r=0;r(f?1:0)){for(i=n-1,r=n+1;i>=0||r=0?i--:r++])!=null&&(2&h.__u)==0&&o==h.key&&l==h.type)return s}return-1}function He(t,e,n){e[0]==\"-\"?t.setProperty(e,n??\"\"):t[e]=n==null?\"\":typeof n!=\"number\"||In.test(e)?n:n+\"px\"}function Pt(t,e,n,u,i){var r,s;t:if(e==\"style\")if(typeof n==\"string\")t.style.cssText=n;else{if(typeof u==\"string\"&&(t.style.cssText=u=\"\"),u)for(e in u)n&&e in n||He(t.style,e,\"\");if(n)for(e in n)u&&n[e]==u[e]||He(t.style,e,n[e])}else if(e[0]==\"o\"&&e[1]==\"n\")r=e!=(e=e.replace(Je,\"$1\")),s=e.toLowerCase(),e=s in t||e==\"onFocusOut\"||e==\"onFocusIn\"?s.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+r]=n,n?u?n.u=u.u:(n.u=se,t.addEventListener(e,r?ue:ie,r)):t.removeEventListener(e,r?ue:ie,r);else{if(i==\"http://www.w3.org/2000/svg\")e=e.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(e!=\"width\"&&e!=\"height\"&&e!=\"href\"&&e!=\"list\"&&e!=\"form\"&&e!=\"tabIndex\"&&e!=\"download\"&&e!=\"rowSpan\"&&e!=\"colSpan\"&&e!=\"role\"&&e!=\"popover\"&&e in t)try{t[e]=n??\"\";break t}catch{}typeof n==\"function\"||(n==null||n===!1&&e[4]!=\"-\"?t.removeAttribute(e):t.setAttribute(e,e==\"popover\"&&n==1?\"\":n))}}function Ne(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=se++;else if(e.t0?t:zt(t)?t.map(Ge):U({},t)}function Nn(t,e,n,u,i,r,s,o,l){var h,f,c,g,a,d,p,D=n.props||Ve,m=e.props,F=e.type;if(F==\"svg\"?i=\"http://www.w3.org/2000/svg\":F==\"math\"?i=\"http://www.w3.org/1998/Math/MathML\":i||(i=\"http://www.w3.org/1999/xhtml\"),r!=null){for(h=0;h\"u\"?\"\":document.body?.dataset?.basepath??\"\"}function he(t,e){let n=e??Kn(),u=t.startsWith(\"/\")?t:\"/\"+t;return n+u}function Y(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function tn(t,e){if(!t)return()=>{};let n=i=>{t.classList.contains(\"active\")&&i.target===t&&(i.preventDefault(),i.stopPropagation(),e())},u=i=>{t.classList.contains(\"active\")&&i.key===\"Escape\"&&(i.preventDefault(),e())};return t.addEventListener(\"click\",n),document.addEventListener(\"keydown\",u),()=>{t.removeEventListener(\"click\",n),document.removeEventListener(\"keydown\",u)}}function en(t,e){let n=t.querySelectorAll(\"[src], [href]\");for(let u of Array.from(n)){let i=u.hasAttribute(\"href\")?\"href\":\"src\",r=u.getAttribute(i);if(r&&!(r.startsWith(\"http://\")||r.startsWith(\"https://\")||r.startsWith(\"mailto:\")||r.startsWith(\"tel:\")||r.startsWith(\"#\")||r.startsWith(\"/\")||r.startsWith(\"data:\")))try{let s=new URL(r,e).toString();u.setAttribute(i,s)}catch{continue}}}var ut=\"basic\",J=\"\",ce=8,Un=5,Ht=30,Jn=t=>{let e=[],n=-1,u=-1,i=t.toLowerCase(),r=0;for(let s of i){let o=s.codePointAt(0);o>=12352&&o<=12447||o>=12448&&o<=12543||o>=19968&&o<=40959||o>=44032&&o<=55215||o>=131072&&o<=173791?(n!==-1&&(e.push(i.slice(n,u)),n=-1),e.push(s)):o===32||o===9||o===10||o===13?n!==-1&&(e.push(i.slice(n,u)),n=-1):(n===-1&&(n=r),u=r+1),r+=s.length}return n!==-1&&e.push(i.slice(n)),e},ae=new We.Document({encode:Jn,document:{id:\"id\",tag:\"tags\",index:[{field:\"title\",tokenize:\"forward\"},{field:\"content\",tokenize:\"forward\"},{field:\"tags\",tokenize:\"forward\"}]}}),pt=null,rn=[],fe=new Map,sn=new DOMParser;async function Vn(t){if(fe.has(t))return fe.get(t);let e=new URL(he(t),window.location.origin).toString(),n=await fetch(e).then(u=>u.text()).then(u=>{let i=sn.parseFromString(u??\"\",\"text/html\");return en(i,e),Array.from(i.getElementsByClassName(\"popover-hint\"))});return fe.set(t,n),n}var pe=[];function Ct(t){pe.push(t)}function Zn(){pe.forEach(t=>t()),pe.length=0}async function Qn(){let t=document.querySelectorAll(\".search\");for(let e of Array.from(t)){let n=e.querySelector(\".search-container\"),u=e.querySelector(\".search-button\"),i=e.querySelector(\".search-bar\"),r=e.querySelector(\".search-layout\");if(!n||!u||!i||!r)continue;let s=r.getAttribute(\"data-preview\")===\"true\",o=r.querySelector(\".results-container\");o||(o=document.createElement(\"div\"),o.className=\"results-container\",r.appendChild(o));let l=r.querySelector(\".preview-container\");s&&!l&&(l=document.createElement(\"div\"),l.className=\"preview-container\",r.appendChild(l));let h=null,f=0,c=()=>{console.log(\"[Search] hideSearch called, stack:\",new Error().stack),n.classList.remove(\"active\"),i.value=\"\",Y(o),l&&Y(l),r.classList.remove(\"display-results\"),ut=\"basic\",h=null},g=_=>{console.log(\"[Search] showSearch called, type:\",_),ut=_,n.classList.add(\"active\"),console.log(\"[Search] container.classList after add:\",n.classList.toString()),i.focus(),console.log(\"[Search] focus called, container active:\",n.classList.contains(\"active\"))},a=async _=>{if(Y(o),_.length===0)o.innerHTML='

    No results.

    Try another search term?

    ',h=null,l&&Y(l);else for(let w of _){let M=w.tags.length>0?'
      '+w.tags.join(\"\")+\"
    \":\"\",S=document.createElement(\"a\");S.className=\"result-card\",S.id=w.slug,S.href=he(w.slug),S.innerHTML='

    '+w.title+\"

    \"+M+'

    '+w.content+\"

    \",S.addEventListener(\"click\",L=>{L.altKey||L.ctrlKey||L.metaKey||L.shiftKey||c()}),S.addEventListener(\"mouseenter\",()=>{m(S)}),o.appendChild(S)}},d=()=>Array.from(o.querySelectorAll(\".result-card:not(.no-match)\")),p=()=>ut===\"tags\"?J.substring(1).trim():J,D=async _=>{if(!l||(Y(l),!_))return;let w=_.id,M=++f,S=await Vn(w);if(M!==f)return;let L=p();for(let j of S){let I=j.cloneNode(!0);L.trim()!==\"\"&&(I.innerHTML=Xn(L,I)),l.appendChild(I)}},m=_=>{h&&h.classList.remove(\"focus\"),h=_,h&&h.classList.add(\"focus\"),D(h)},F=_=>{let w=d();if(w.length===0){m(null);return}let M=Math.min(Math.max(_,0),w.length-1);m(w[M]??null)},A=()=>{let _=d();if(_.length===0)return;let w=h?_.indexOf(h):-1;F(w+1)},B=()=>{let _=d();if(_.length===0)return;let w=h?_.indexOf(h):_.length;F(w-1)},b=async _=>{if(J=_.target.value,r.classList.toggle(\"display-results\",J!==\"\"),ut=J.startsWith(\"#\")?\"tags\":\"basic\",J===\"\"){Y(o),l&&Y(l),h=null;return}let w=J,M;if(ut===\"tags\"){let I=J.substring(1).trim();M=await ae.searchAsync({query:I,limit:ce,index:[\"tags\"]})}else M=await ae.searchAsync({query:w,limit:ce,index:[\"title\",\"content\"]});let S=new Set;for(let I of M)if(I&&I.result)for(let Dt of I.result)S.add(Dt);let L=[];S.forEach(I=>{L.push(Gn(J,I))}),await a(L.slice(0,ce));let j=d();m(j[0]??null)},k=_=>{console.log(\"[Search] Button click event, target:\",_.target,\"currentTarget:\",_.currentTarget),_.stopPropagation(),g(\"basic\")};u.addEventListener(\"click\",k),Ct(()=>u.removeEventListener(\"click\",k)),i.addEventListener(\"input\",b),Ct(()=>i.removeEventListener(\"input\",b));let v=_=>{if(_.key===\"ArrowUp\"||_.shiftKey&&_.key===\"Tab\"){_.preventDefault(),B();return}if(_.key===\"ArrowDown\"||_.key===\"Tab\"){_.preventDefault(),A();return}if(_.key===\"Enter\"){let w=h;w instanceof HTMLAnchorElement&&(c(),window.location.href=w.href)}};i.addEventListener(\"keydown\",v),Ct(()=>i.removeEventListener(\"keydown\",v));let C=_=>{_.key===\"k\"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey?(_.preventDefault(),n.classList.contains(\"active\")?c():g(\"basic\")):_.shiftKey&&(_.ctrlKey||_.metaKey)&&_.key.toLowerCase()===\"k\"&&(_.preventDefault(),g(\"tags\"),i.value=\"#\")};document.addEventListener(\"keydown\",C),Ct(()=>document.removeEventListener(\"keydown\",C));let E=tn(n,c);Ct(E)}}function on(t){let e=t.split(/\\s+/).filter(u=>u.trim()!==\"\"),n=e.length;if(n>1)for(let u=1;ui.length-u.length)}function Xn(t,e){let n=on(t).filter(h=>h.trim()!==\"\");if(n.length===0)return e.innerHTML;let u=sn.parseFromString(e.innerHTML,\"text/html\"),i=n.map(h=>h.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")).join(\"|\");if(i===\"\")return e.innerHTML;let r=new RegExp(i,\"gi\"),s=u.createTreeWalker(u.body,NodeFilter.SHOW_TEXT),o=[],l=s.nextNode();for(;l;)o.push(l),l=s.nextNode();for(let h of o){let f=h.nodeValue??\"\";if(r.lastIndex=0,!r.test(f))continue;r.lastIndex=0;let c=u.createDocumentFragment(),g=0,a;for(;(a=r.exec(f))!==null;){a.index>g&&c.appendChild(u.createTextNode(f.slice(g,a.index)));let d=u.createElement(\"span\");d.className=\"highlight\",d.textContent=a[0],c.appendChild(d),g=a.index+a[0].length}gl!==\"\"),r=0,s=i.length-1;if(n){let l=g=>u.some(a=>g.toLowerCase().startsWith(a.toLowerCase())),h=i.map(l),f=0,c=0;for(let g=0;gp+(D?1:0),0);d>=f&&(f=d,c=g)}r=Math.max(c-Ht/2,0),s=Math.min(r+Ht,i.length-1)}let o=i.map(l=>{let h=l;for(let f of u)if(l.toLowerCase().includes(f.toLowerCase())){let c=new RegExp(f.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\"),\"gi\");h=l.replace(c,g=>`${g}`);break}return h}).join(\" \");return(r===0?\"\":\"...\")+o+(s===i.length-1?\"\":\"...\")}function Yn(t,e){return!e||ut!==\"tags\"?[]:e.map(n=>n.toLowerCase().includes(t.toLowerCase())?`
  • #${n}

  • `:`
  • #${n}

  • `).slice(0,Un)}function Gn(t,e){let n=rn[e];if(!n||!pt)return{id:e,slug:\"\",title:\"\",content:\"\",tags:[]};let u=pt[n];return u?{id:e,slug:n,title:ut===\"tags\"?u.title:nn(t,u.title||\"\"),content:nn(t,u.content||\"\",!0),tags:Yn(t.substring(1),u.tags)}:{id:e,slug:n,title:\"\",content:\"\",tags:[]}}async function qn(){if(!pt)return;let t=0;for(let e of Object.keys(pt)){let n=pt[e];n&&(rn[t]=e,await ae.addAsync(t,{id:t,slug:e,title:n.title||\"\",content:n.content||\"\",tags:n.tags||[]}),t++)}}async function ti(){return await fetchData}var un=!1;async function ei(){un||(pt=await ti(),await qn(),un=!0)}async function ln(){Zn(),await ei(),await Qn()}document.addEventListener(\"nav\",ln);document.addEventListener(\"render\",ln);\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport { i18n } from \"../i18n\";\nimport style from \"./styles/search.scss\";\n// @ts-expect-error - inline script imported as string by esbuild loader\nimport script from \"./scripts/search.inline.ts\";\n\nexport interface SearchOptions {\n enablePreview: boolean;\n}\n\nconst defaultOptions: SearchOptions = {\n enablePreview: true,\n};\n\nexport default ((userOpts?: Partial) => {\n const Search: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const opts = { ...defaultOptions, ...userOpts };\n const locale = cfg.locale ?? \"en-US\";\n const searchPlaceholder = i18n(locale).components.search.searchBarPlaceholder;\n\n return (\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n };\n\n Search.afterDOMLoaded = script;\n Search.css = style;\n\n return Search;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file +{"version":3,"sources":["../src/util/lang.ts","../src/i18n/locales/en-US.ts","../src/i18n/locales/de-DE.ts","../src/i18n/locales/es-ES.ts","../src/i18n/locales/fr-FR.ts","../src/i18n/locales/ja-JP.ts","../src/i18n/locales/zh-CN.ts","../src/i18n/index.ts","../src/components/styles/search.scss","../src/components/scripts/search.inline.ts","../src/components/Search.tsx"],"names":[],"mappings":";;;AAAO,SAAS,UAAA,CACd,iBACG,OAAA,EACK;AACR,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,OAAA,CAAQ,KAAK,YAAY,CAAA;AAAA,EAC3B;AACA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;;;ACRA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,oBAAA,EAAsB,yBAAA;AAAA,MACtB,SAAA,EAAW,aAAA;AAAA,MACX,aAAA,EAAe,0BAAA;AAAA,MACf,aAAA,EAAe,eAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACXA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,oBAAA,EAAsB,qBAAA;AAAA,MACtB,SAAA,EAAW,mBAAA;AAAA,MACX,aAAA,EAAe,0CAAA;AAAA,MACf,aAAA,EAAe,kBAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACXA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,oBAAA,EAAsB,gBAAA;AAAA,MACtB,SAAA,EAAW,iBAAA;AAAA,MACX,aAAA,EAAe,kDAAA;AAAA,MACf,aAAA,EAAe,sBAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACXA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,oBAAA,EAAsB,6BAAA;AAAA,MACtB,SAAA,EAAW,oBAAA;AAAA,MACX,aAAA,EAAe,0CAAA;AAAA,MACf,aAAA,EAAe,iBAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACXA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,oBAAA,EAAsB,mCAAA;AAAA,MACtB,SAAA,EAAW,oEAAA;AAAA,MACX,aAAA,EACE,sFAAA;AAAA,MACF,aAAA,EAAe,kDAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACZA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,oBAAA,EAAsB,6BAAA;AAAA,MACtB,SAAA,EAAW,gCAAA;AAAA,MACX,aAAA,EAAe,wDAAA;AAAA,MACf,aAAA,EAAe,gCAAA;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;;;ACJA,IAAM,OAAA,GAAuC;AAAA,EAC3C,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;AAEO,SAAS,KAAK,MAAA,EAAgB;AACnC,EAAA,OAAO,OAAA,CAAQ,MAAM,CAAA,IAAK,aAAA;AAC5B;;;AClBA,IAAA,cAAA,GAAA,q9PAAA;;;ACAA,IAAA,qBAAA,GAAA,CAAA;AAAA,CAAA;ACkBA,IAAM,cAAA,GAAgC;AAAA,EACpC,aAAA,EAAe,IAAA;AAAA,EACf,aAAA,EAAe,CAAC,OAAA,EAAS,SAAA,EAAW,MAAM;AAC5C,CAAA;AAEA,IAAO,cAAA,IAAS,CAAC,QAAA,KAAsC;AACrD,EAAA,MAAM,MAAA,GAA0B,CAAC,EAAE,YAAA,EAAc,KAAI,KAA4B;AAC/E,IAAA,MAAM,IAAA,GAAO,EAAE,GAAG,cAAA,EAAgB,GAAG,QAAA,EAAS;AAC9C,IAAA,MAAM,MAAA,GAAS,IAAI,MAAA,IAAU,OAAA;AAC7B,IAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,MAAM,CAAA,CAAE,WAAW,MAAA,CAAO,oBAAA;AAEzD,IAAA,4BACG,KAAA,EAAA,EAAI,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,QAAQ,CAAA,EAC3C,QAAA,EAAA;AAAA,sBAAA,IAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAM,eAAA;AAAA,UACN,YAAA,EAAY,IAAA,CAAK,MAAM,CAAA,CAAE,WAAW,MAAA,CAAO,KAAA;AAAA,UAC3C,eAAA,EAAc,OAAA;AAAA,UAEd,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,SAAI,IAAA,EAAK,KAAA,EAAM,KAAA,EAAM,4BAAA,EAA6B,SAAQ,eAAA,EACzD,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,WAAM,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,8BACb,IAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAM,aAAA,EAAc,MAAK,MAAA,EAC1B,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,MAAA,EAAA,EAAK,gBAAA,EAAe,QAAA,EAAS,CAAA,EAAE,qBAAA,EAAsB,CAAA;AAAA,oCACrD,QAAA,EAAA,EAAO,EAAA,EAAG,KAAI,EAAA,EAAG,GAAA,EAAI,GAAE,GAAA,EAAI;AAAA,eAAA,EAC9B;AAAA,aAAA,EACF,CAAA;AAAA,gCACC,GAAA,EAAA,EAAG,QAAA,EAAA,IAAA,CAAK,MAAM,CAAA,CAAE,UAAA,CAAW,OAAO,KAAA,EAAM;AAAA;AAAA;AAAA,OAC3C;AAAA,0BACC,KAAA,EAAA,EAAI,KAAA,EAAM,oBACT,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,OAAM,cAAA,EACT,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAa,KAAA;AAAA,YACb,KAAA,EAAM,YAAA;AAAA,YACN,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,MAAA;AAAA,YACL,YAAA,EAAY,iBAAA;AAAA,YACZ,WAAA,EAAa;AAAA;AAAA,SACf;AAAA,wBACA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,eAAA;AAAA,YACN,gBAAc,IAAA,CAAK,aAAA;AAAA,YACnB,qBAAA,EAAqB,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,aAAa;AAAA;AAAA;AACvD,OAAA,EACH,CAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,MAAA,CAAO,cAAA,GAAiB,qBAAA;AACxB,EAAA,MAAA,CAAO,GAAA,GAAM,cAAA;AAEb,EAAA,OAAO,MAAA;AACT,CAAA","file":"index.js","sourcesContent":["export function classNames(\n displayClass?: \"mobile-only\" | \"desktop-only\",\n ...classes: string[]\n): string {\n if (displayClass) {\n classes.push(displayClass);\n }\n return classes.join(\" \");\n}\n","export default {\n components: {\n search: {\n title: \"Search\",\n searchBarPlaceholder: \"Search for something...\",\n noResults: \"No results.\",\n noResultsHint: \"Try another search term?\",\n tagFilterHint: \"Filter by tag\",\n noTagsFound: \"No matching tags\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Suche\",\n searchBarPlaceholder: \"Suche nach etwas...\",\n noResults: \"Keine Ergebnisse.\",\n noResultsHint: \"Versuchen Sie einen anderen Suchbegriff?\",\n tagFilterHint: \"Nach Tag filtern\",\n noTagsFound: \"Keine passenden Tags\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Buscar\",\n searchBarPlaceholder: \"Buscar algo...\",\n noResults: \"Sin resultados.\",\n noResultsHint: \"\\u00bfIntentar con otro t\\u00e9rmino de b\\u00fasqueda?\",\n tagFilterHint: \"Filtrar por etiqueta\",\n noTagsFound: \"No se encontraron etiquetas\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"Recherche\",\n searchBarPlaceholder: \"Rechercher quelque chose...\",\n noResults: \"Aucun r\\u00e9sultat.\",\n noResultsHint: \"Essayez un autre terme de recherche\\u00a0?\",\n tagFilterHint: \"Filtrer par tag\",\n noTagsFound: \"Aucun tag correspondant\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"\\u691c\\u7d22\",\n searchBarPlaceholder: \"\\u4f55\\u304b\\u3092\\u691c\\u7d22...\",\n noResults: \"\\u7d50\\u679c\\u304c\\u898b\\u3064\\u304b\\u308a\\u307e\\u305b\\u3093\\u3002\",\n noResultsHint:\n \"\\u5225\\u306e\\u691c\\u7d22\\u8a9e\\u3092\\u304a\\u8a66\\u3057\\u304f\\u3060\\u3055\\u3044\\u3002\",\n tagFilterHint: \"\\u30bf\\u30b0\\u3067\\u30d5\\u30a3\\u30eb\\u30bf\\u30fc\",\n noTagsFound: \"\\u4e00\\u81f4\\u3059\\u308b\\u30bf\\u30b0\\u304c\\u3042\\u308a\\u307e\\u305b\\u3093\",\n },\n },\n};\n","export default {\n components: {\n search: {\n title: \"\\u641c\\u7d22\",\n searchBarPlaceholder: \"\\u641c\\u7d22\\u5185\\u5bb9...\",\n noResults: \"\\u6ca1\\u6709\\u7ed3\\u679c\\u3002\",\n noResultsHint: \"\\u8bf7\\u5c1d\\u8bd5\\u5176\\u4ed6\\u641c\\u7d22\\u8bcd\\u3002\",\n tagFilterHint: \"\\u6309\\u6807\\u7b7e\\u7b5b\\u9009\",\n noTagsFound: \"\\u6ca1\\u6709\\u5339\\u914d\\u7684\\u6807\\u7b7e\",\n },\n },\n};\n","import enUS from \"./locales/en-US\";\nimport deDE from \"./locales/de-DE\";\nimport esES from \"./locales/es-ES\";\nimport frFR from \"./locales/fr-FR\";\nimport jaJP from \"./locales/ja-JP\";\nimport zhCN from \"./locales/zh-CN\";\n\nconst locales: Record = {\n \"en-US\": enUS,\n \"de-DE\": deDE,\n \"es-ES\": esES,\n \"fr-FR\": frFR,\n \"ja-JP\": jaJP,\n \"zh-CN\": zhCN,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n",".search {\n min-width: fit-content;\n max-width: 14rem;\n}\n\n@media all and (max-width: 800px) {\n .search {\n flex-grow: 0.3;\n }\n}\n.search > .search-button {\n background-color: transparent;\n border: 1px var(--lightgray) solid;\n border-radius: 4px;\n font-family: inherit;\n font-size: inherit;\n height: 2rem;\n padding: 0 1rem 0 0;\n display: flex;\n align-items: center;\n text-align: inherit;\n cursor: pointer;\n white-space: nowrap;\n width: 100%;\n}\n\n.search > .search-button > p {\n display: inline;\n color: var(--gray);\n text-wrap: unset;\n}\n\n.search > .search-button svg {\n cursor: pointer;\n width: 18px;\n min-width: 18px;\n margin: 0 0.5rem;\n}\n\n.search > .search-button svg .search-path {\n stroke: var(--darkgray);\n stroke-width: 1.5px;\n transition: stroke 0.5s ease;\n}\n\n.search > .search-container {\n position: fixed;\n contain: layout;\n z-index: var(--search-z-index, 999);\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n overflow-y: auto;\n display: none;\n backdrop-filter: blur(4px);\n}\n\n.search > .search-container.active {\n display: inline-block;\n}\n\n.search > .search-container > .search-space {\n width: 65%;\n margin-top: 12vh;\n margin-left: auto;\n margin-right: auto;\n}\n\n@media all and not (min-width: 1200px) {\n .search > .search-container > .search-space {\n width: 90%;\n }\n}\n.search > .search-container > .search-space > *:not(.ghost-text):not(.tag-suggestions) {\n width: 100%;\n border-radius: 7px;\n background: var(--light);\n box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16);\n margin-bottom: 2em;\n}\n\n.search > .search-container > .search-space > input {\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n color: var(--dark);\n font-size: 1.1em;\n border: 1px solid var(--lightgray);\n}\n\n.search > .search-container > .search-space > input:focus {\n outline: none;\n}\n\n.search > .search-container > .search-space > .search-layout {\n display: none;\n flex-direction: row;\n border: 1px solid var(--lightgray);\n flex: 0 0 100%;\n box-sizing: border-box;\n}\n\n.search > .search-container > .search-space > .search-layout.display-results {\n display: flex;\n}\n\n.search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n flex: 0 0 min(30%, 450px);\n}\n\n@media all and not (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout[data-preview] .result-card > p.preview {\n display: none;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:first-child {\n border-right: 1px solid var(--lightgray);\n border-top-right-radius: unset;\n border-bottom-right-radius: unset;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > div:last-child {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n}\n.search > .search-container > .search-space > .search-layout > div {\n height: 63vh;\n border-radius: 5px;\n}\n\n@media all and (max-width: 800px) {\n .search > .search-container > .search-space > .search-layout {\n flex-direction: column;\n }\n .search > .search-container > .search-space > .search-layout > .preview-container {\n display: none !important;\n }\n .search > .search-container > .search-space > .search-layout[data-preview] > .results-container {\n width: 100%;\n height: auto;\n max-height: 60vh;\n flex: 0 0 100%;\n }\n}\n.search > .search-container > .search-space > .search-layout .highlight {\n background: color-mix(in srgb, var(--tertiary) 60%, rgba(255, 255, 255, 0));\n border-radius: 5px;\n scroll-margin-top: 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container {\n flex-grow: 1;\n display: block;\n overflow: hidden;\n font-family: inherit;\n color: var(--dark);\n line-height: 1.5em;\n font-weight: 400;\n overflow-y: auto;\n padding: 0 2rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container .preview-inner {\n margin: 0 auto;\n width: 100%;\n}\n\n.search > .search-container > .search-space > .search-layout > .preview-container a[role=anchor] {\n background-color: transparent;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container {\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card {\n overflow: hidden;\n padding: 1em;\n cursor: pointer;\n transition: background 0.2s ease;\n border-bottom: 1px solid var(--lightgray);\n width: 100%;\n display: block;\n box-sizing: border-box;\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n text-transform: none;\n text-align: left;\n outline: none;\n font-weight: inherit;\n text-decoration: none;\n color: var(--dark);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:hover,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card:focus,\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.focus {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > h3 {\n margin: 0;\n color: var(--secondary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags {\n margin-top: 0.45rem;\n margin-bottom: 0;\n padding: 0;\n list-style: none;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul.tags > li {\n display: inline-block;\n margin-right: 0.3rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p {\n border-radius: 8px;\n background-color: var(--highlight);\n padding: 0.2rem 0.4rem;\n margin: 0;\n line-height: 1.4rem;\n font-weight: 700;\n color: var(--secondary);\n font-size: 0.85rem;\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > ul > li > p.match-tag {\n color: var(--tertiary);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card > p {\n margin-bottom: 0;\n margin-top: 0.5em;\n font-size: 0.9em;\n color: var(--gray);\n}\n\n.search > .search-container > .search-space > .search-layout > .results-container .result-card.no-match {\n cursor: default;\n}\n\n.search > .search-container > .search-space {\n position: relative;\n}\n\n.search > .search-container > .search-space > .ghost-text {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n box-sizing: border-box;\n padding: 0.5em 1em;\n font-family: var(--bodyFont);\n font-size: 1.1em;\n color: var(--gray);\n opacity: 0.6;\n white-space: pre;\n overflow: hidden;\n height: auto;\n line-height: normal;\n border: 1px solid transparent;\n}\n\n.search > .search-container > .search-space > .tag-suggestions {\n position: absolute;\n top: calc(3.1em + 2px);\n left: 0;\n right: 0;\n z-index: calc(var(--search-z-index, 999) + 1);\n background: var(--light);\n border: 1px solid var(--lightgray);\n border-radius: 5px;\n box-shadow: 0 4px 12px rgba(27, 33, 48, 0.1), 0 2px 6px rgba(27, 33, 48, 0.08);\n max-height: 240px;\n overflow-y: auto;\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item {\n padding: 0.4em 1em;\n cursor: pointer;\n font-family: var(--bodyFont);\n font-size: 0.95em;\n color: var(--dark);\n transition: background 0.15s ease;\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item:hover,\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item.active {\n background: var(--lightgray);\n}\n\n.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item.active {\n color: var(--secondary);\n font-weight: 600;\n}","var Ln=Object.create;var Me=Object.defineProperty;var jn=Object.getOwnPropertyDescriptor;var In=Object.getOwnPropertyNames;var Pn=Object.getPrototypeOf,Hn=Object.prototype.hasOwnProperty;var Wn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Rn=(t,e,n,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of In(e))!Hn.call(t,i)&&i!==n&&Me(t,i,{get:()=>e[i],enumerable:!(r=jn(e,i))||r.enumerable});return t};var Nn=(t,e,n)=>(n=t!=null?Ln(Pn(t)):{},Rn(e||!t||!t.__esModule?Me(n,\"default\",{value:t,enumerable:!0}):n,t));var ee=Wn(()=>{});var y;function z(t,e,n){let r=typeof n,i=typeof t;if(r!==\"undefined\"){if(i!==\"undefined\"){if(n){if(i===\"function\"&&r===i)return function(o){return t(n(o))};if(e=t.constructor,e===n.constructor){if(e===Array)return n.concat(t);if(e===Map){var s=new Map(n);for(var u of t)s.set(u[0],u[1]);return s}if(e===Set){u=new Set(n);for(s of t.values())u.add(s);return u}}}return t}return n}return i===\"undefined\"?e:t}function _t(t,e){return typeof t>\"u\"?e:t}function W(){return Object.create(null)}function U(t){return typeof t==\"string\"}function bt(t){return typeof t==\"object\"}function St(t,e){if(U(e))t=t[e];else for(let n=0;t&&n1?this.addMatcher(t,e):(this.mapper||(this.mapper=new Map),this.mapper.set(t,e),this.cache&&ft(this),this)};y.addMatcher=function(t,e){return typeof t==\"object\"?this.addReplacer(t,e):t.length<2&&(this.dedupe||this.mapper)?this.addMapper(t,e):(this.matcher||(this.matcher=new Map),this.matcher.set(t,e),this.h+=(this.h?\"|\":\"\")+t,this.J=null,this.cache&&ft(this),this)};y.addReplacer=function(t,e){return typeof t==\"string\"?this.addMatcher(t,e):(this.replacer||(this.replacer=[]),this.replacer.push(t,e),this.cache&&ft(this),this)};y.encode=function(t,e){if(this.cache&&t.length<=this.H)if(this.F){if(this.B.has(t))return this.B.get(t)}else this.F=setTimeout(ft,50,this);this.normalize&&(typeof this.normalize==\"function\"?t=this.normalize(t):t=Le?t.normalize(\"NFKD\").replace(Le,\"\").toLowerCase():t.toLowerCase()),this.prepare&&(t=this.prepare(t)),this.numeric&&t.length>3&&(t=t.replace($n,\"$1 $2\").replace(Kn,\"$1 $2\").replace(On,\"$1 \"));let n=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer),r=[],i=W(),s,u,o=this.split||this.split===\"\"?t.split(this.split):[t];for(let h=0,f,c;hthis.maxlength)){if(e){if(i[f])continue;i[f]=1}else{if(s===f)continue;s=f}if(n)r.push(f);else if(!this.filter||(typeof this.filter==\"function\"?this.filter(f):!this.filter.has(f))){if(this.cache&&f.length<=this.I)if(this.F){var l=this.D.get(f);if(l||l===\"\"){l&&r.push(l);continue}}else this.F=setTimeout(ft,50,this);if(this.stemmer){this.K||(this.K=new RegExp(\"(?!^)(\"+this.A+\")$\"));let D;for(;D!==f&&f.length>2;)D=f,f=f.replace(this.K,a=>this.stemmer.get(a))}if(f&&(this.mapper||this.dedupe&&f.length>1)){l=\"\";for(let D=0,a=\"\",d,p;D1&&(this.J||(this.J=new RegExp(\"(\"+this.h+\")\",\"g\")),f=f.replace(this.J,D=>this.matcher.get(D))),f&&this.replacer)for(l=0;f&&lthis.L&&(this.D.clear(),this.I=this.I/1.1|0)),f){if(f!==c)if(e){if(i[f])continue;i[f]=1}else{if(u===f)continue;u=f}r.push(f)}}}return this.finalize&&(r=this.finalize(r)||r),this.cache&&t.length<=this.H&&(this.B.set(t,r),this.B.size>this.L&&(this.B.clear(),this.H=this.H/1.1|0)),r};function ft(t){t.F=null,t.B.clear(),t.D.clear()}function le(t,e,n){n||(e||typeof t!=\"object\"?typeof e==\"object\"&&(n=e,e=0):n=t),n&&(t=n.query||t,e=n.limit||e);let r=\"\"+(e||0);n&&(r+=(n.offset||0)+!!n.context+!!n.suggest+(n.resolve!==!1)+(n.resolution||this.resolution)+(n.boost||0)),t=(\"\"+t).toLowerCase(),this.cache||(this.cache=new gt);let i=this.cache.get(t+r);if(!i){let s=n&&n.cache;s&&(n.cache=!1),i=this.search(t,e,n),s&&(n.cache=s),this.cache.set(t+r,i)}return i}function gt(t){this.limit=t&&t!==!0?t:1e3,this.cache=new Map,this.h=\"\"}gt.prototype.set=function(t,e){this.cache.set(this.h=t,e),this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};gt.prototype.get=function(t){let e=this.cache.get(t);return e&&this.h!==t&&(this.cache.delete(t),this.cache.set(this.h=t,e)),e};gt.prototype.remove=function(t){for(let e of this.cache){let n=e[0];e[1].includes(t)&&this.cache.delete(n)}};gt.prototype.clear=function(){this.cache.clear(),this.h=\"\"};var je={normalize:!1,numeric:!1,dedupe:!1},Pt={},ne=new Map([[\"b\",\"p\"],[\"v\",\"f\"],[\"w\",\"f\"],[\"z\",\"s\"],[\"x\",\"s\"],[\"d\",\"t\"],[\"n\",\"m\"],[\"c\",\"k\"],[\"g\",\"k\"],[\"j\",\"k\"],[\"q\",\"k\"],[\"i\",\"e\"],[\"y\",\"e\"],[\"u\",\"o\"]]),Ie=new Map([[\"ae\",\"a\"],[\"oe\",\"o\"],[\"sh\",\"s\"],[\"kh\",\"k\"],[\"th\",\"t\"],[\"ph\",\"f\"],[\"pf\",\"f\"]]),Pe=[/([^aeo])h(.)/g,\"$1$2\",/([aeo])h([^aeo]|$)/g,\"$1$2\",/(.)\\1+/g,\"$1\"],He={a:\"\",e:\"\",i:\"\",o:\"\",u:\"\",y:\"\",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,\\u00DF:2,d:3,t:3,l:4,m:5,n:5,r:6},he={Exact:je,Default:Pt,Normalize:Pt,LatinBalance:{mapper:ne},LatinAdvanced:{mapper:ne,matcher:Ie,replacer:Pe},LatinExtra:{mapper:ne,replacer:Pe.concat([/(?!^)[aeo]/g,\"\"]),matcher:Ie},LatinSoundex:{dedupe:!1,include:{letter:!0},finalize:function(t){for(let n=0;n=u.length)e-=u.length;else{e=u[r?\"splice\":\"slice\"](e,n);let o=e.length;if(o&&(i=i.length?i.concat(e):e,n-=o,r&&(t.length-=o),!n))break;e=0}return i}function wt(t){if(!this||this.constructor!==wt)return new wt(t);this.index=t?[t]:[],this.length=t?t.length:0;let e=this;return new Proxy([],{get(n,r){if(r===\"length\")return e.length;if(r===\"push\")return function(i){e.index[e.index.length-1].push(i),e.length++};if(r===\"pop\")return function(){if(e.length)return e.length--,e.index[e.index.length-1].pop()};if(r===\"indexOf\")return function(i){let s=0;for(let u=0,o,l;u=0)return s+l;s+=o.length}return-1};if(r===\"includes\")return function(i){for(let s=0;s32?(this.B=Je,this.A=BigInt(t)):(this.B=Ue,this.A=t)}J.prototype.get=function(t){let e=this.index[this.B(t)];return e&&e.get(t)};J.prototype.set=function(t,e){var n=this.B(t);let r=this.index[n];r?(n=r.size,r.set(t,e),(n-=r.size)&&this.size++):(this.index[n]=r=new Map([[t,e]]),this.h.push(r),this.size++)};function V(t=8){if(!this||this.constructor!==V)return new V(t);this.index=W(),this.h=[],this.size=0,t>32?(this.B=Je,this.A=BigInt(t)):(this.B=Ue,this.A=t)}V.prototype.add=function(t){var e=this.B(t);let n=this.index[e];n?(e=n.size,n.add(t),(e-=n.size)&&this.size++):(this.index[e]=n=new Set([t]),this.h.push(n),this.size++)};y=J.prototype;y.has=V.prototype.has=function(t){let e=this.index[this.B(t)];return e&&e.has(t)};y.delete=V.prototype.delete=function(t){let e=this.index[this.B(t)];e&&e.delete(t)&&this.size--};y.clear=V.prototype.clear=function(){this.index=W(),this.h=[],this.size=0};y.values=V.prototype.values=function*(){for(let t=0;t=this.priority*this.priority*3):(re=setTimeout(Jn,0),Re=Date.now()),Rt){let s=this;return new Promise(u=>{setTimeout(function(){u(s[t+\"Async\"].apply(s,e))},0)})}let i=this[t].apply(this,e);return n=i.then?i:new Promise(s=>s(i)),r&&n.then(r),n}}var nt=0;function at(t={},e){function n(o){function l(h){h=h.data||h;let f=h.id,c=f&&s.h[f];c&&(c(h.msg),delete s.h[f])}if(this.worker=o,this.h=W(),this.worker)return i?this.worker.on(\"message\",l):this.worker.onmessage=l,t.config?new Promise(function(h){nt>1e9&&(nt=0),s.h[++nt]=function(){h(s)},s.worker.postMessage({id:nt,task:\"init\",factory:r,options:t})}):(this.priority=t.priority||4,this.encoder=e||null,this.worker.postMessage({task:\"init\",factory:r,options:t}),this)}if(!this||this.constructor!==at)return new at(t);let r=typeof self<\"u\"?self._factory:typeof window<\"u\"?window._factory:null;r&&(r=r.toString());let i=typeof window>\"u\",s=this,u=Vn(r,i,t.worker);return u.then?u.then(function(o){return n.call(s,o)}):n.call(this,u)}it(\"add\");it(\"append\");it(\"search\");it(\"update\");it(\"remove\");it(\"clear\");it(\"export\");it(\"import\");at.prototype.searchCache=le;ce(at.prototype);function it(t){at.prototype[t]=function(){let e=this,n=[].slice.call(arguments);var r=n[n.length-1];let i;return typeof r==\"function\"&&(i=r,n.pop()),r=new Promise(function(s){t===\"export\"&&typeof n[0]==\"function\"&&(n[0]=null),nt>1e9&&(nt=0),e.h[++nt]=s,e.worker.postMessage({task:t,id:nt,args:n})}),i?(r.then(i),this):r}}function Vn(t,e,n){return e?typeof module<\"u\"?new(ee()).Worker(__dirname+\"/worker/node.js\"):Promise.resolve().then(()=>Nn(ee(),1)).then(function(r){return new r.Worker(import.meta.dirname+\"/node/node.mjs\")}):t?new window.Worker(URL.createObjectURL(new Blob([\"onmessage=\"+Un.toString()],{type:\"text/javascript\"}))):new window.Worker(typeof n==\"string\"?n:import.meta.url.replace(\"/worker.js\",\"/worker/worker.js\").replace(\"flexsearch.bundle.module.min.js\",\"module/worker/worker.js\").replace(\"flexsearch.bundle.module.min.mjs\",\"module/worker/worker.js\"),{type:\"module\"})}pt.prototype.add=function(t,e,n){if(bt(t)&&(e=t,t=St(e,this.key)),e&&(t||t===0)){if(!n&&this.reg.has(t))return this.update(t,e);for(let o=0,l;oe?t.slice(n,n+e):t,r?Et.call(this,t):t;let i=[];for(let s=0,u,o;s=o){n-=o;continue}u=u.slice(n,n+e),o=u.length,n=0}if(o>e&&(u=u.slice(0,e),o=e),!i.length&&o>=e)return r?Et.call(this,u):u;if(i.push(u),e-=o,!e)break}return i=i.length>1?[].concat.apply([],i):i[0],r?Et.call(this,i):i}function Jt(t,e,n,r){var i=r[0];if(i[0]&&i[0].query)return t[e].apply(t,i);if(!(e!==\"and\"&&e!==\"not\"||t.result.length||t.await||i.suggest))return r.length>1&&(i=r[r.length-1]),(r=i.resolve)?t.await||t.result:t;let s=[],u=0,o=0,l,h,f,c,D;for(e=0;e1&&(n=n[e].apply(n,t.slice(1))),n}j.prototype.or=function(){return Jt(this,\"or\",Zn,arguments)};function Zn(t,e,n,r,i,s,u){return t.length&&(this.result.length&&t.push(this.result),t.length<2?this.result=t[0]:(this.result=Ve(t,e,n,!1,this.h),n=0)),i&&(this.await=null),i?this.resolve(e,n,r,u):this}j.prototype.and=function(){return Jt(this,\"and\",Qn,arguments)};function Qn(t,e,n,r,i,s,u){if(!s&&!this.result.length)return i?this.result:this;let o;if(t.length)if(this.result.length&&t.unshift(this.result),t.length<2)this.result=t[0];else{let l=0;for(let h=0,f,c;h1?A.join(\" \"):A[0];let x;if(A&&E){for(var v=E.length,M=(Q.split?E.replace(Q.split,\"\"):E).length-A.length,T=\"\",N=0,R=0;R-1&&(T=(O?E.substring(0,O):\"\")+u+E.substring(O,O+H)+o+(O+H=l)break}if(b=ot.length*(s.length-2),a||d||l&&g.length-b>l)if(b=l+b-D*2,k=B-C,a>0&&(k+=a),d>0&&(k+=d),k<=b)m=a?C-(a>0?a:0):C-((b-k)/2|0),F=d?B+(d>0?d:0):m+b,h||(m>0&&g.charAt(m)!==\" \"&&g.charAt(m-1)!==\" \"&&(m=g.indexOf(\" \",m),m<0&&(m=0)),F=F.length-1){if(I>=F.length){k[x+1]=1,I>=m.length&&(b[x+1]=1);continue}v-=D}if(g=F[I].text,H=d&&A[x])if(H>0){if(g.length>H)if(k[x+1]=1,h)g=g.substring(0,H);else continue;(H-=g.length)||(H=-1),A[x]=H}else{k[x+1]=1;continue}if(v+g.length+1<=l)g=\" \"+g,B[x]+=g;else if(h)$=l-v-1,$>0&&(g=\" \"+g.substring(0,$),B[x]+=g),k[x+1]=1;else{k[x+1]=1;continue}}else{if(k[x])continue;if(I-=M,C[I]){v-=D,k[x]=1,b[x]=1;continue}if(I<=0){if(I<0){k[x]=1,b[x]=1;continue}v-=D}if(g=F[I].text,H=a&&E[x])if(H>0){if(g.length>H)if(k[x]=1,h)g=g.substring(g.length-H);else continue;(H-=g.length)||(H=-1),E[x]=H}else{k[x]=1;continue}if(v+g.length+1<=l)g+=\" \",B[x]=g+B[x];else if(h)$=g.length+1-(l-v),$>=0&&$=m.length-1||I1?Ve(l,n,r,u,s):(l=l[0])&&n&&l.length>n||r?l.slice(r,n+r):l;else{if(tn||r)&&(l=l.slice(r,n+r));else{i=[];for(let c=0,D;cr)r-=D.length;else if((n&&D.length>n||r)&&(D=D.slice(r,n+r),n-=D.length,r&&(r-=D.length)),i.push(D),!n)break}l=i}}return l}function Ve(t,e,n,r,i){let s=[],u=W(),o;var l=t.length;let h;if(r){for(i=l-1;i>=0;i--)if(h=(r=t[i])&&r.length){for(l=0;l=0;f--){c=t[f];for(let a=0;a1?zt(i,1,0,0,l,h):i[0],E)})}return a?i:new j(i.length>1?zt(i,1,0,0,l,h):i[0],this)}}a||u||!(c=c||this.field)||(U(c)?u=c:(c.constructor===Array&&c.length===1&&(c=c[0]),u=c.field||c.index)),c&&c.constructor!==Array&&(c=[c])}c||(c=this.field);let b;F=(this.worker||this.db)&&!r&&[];for(let E=0,A,v,M;E\"u\"&&(this.db?F.push(p=this.index.get(this.field[0]).db.enrich(p)):p=Et.call(this,p)),u)return a?d?Nt(t,p,this.index,u,d):p:new j(p,this);i[m]={field:s[m],result:p}}if(g&&this.db&&F.length){let E=this;return Promise.all(F).then(function(A){for(let v=0;v0&&((n&&e>n||r)&&(t=t.slice(r,r+n)),i&&(t=Et.call(this,t))),t):[]):[]}function Et(t){if(!this||!this.store)return t;if(this.db)return this.index.get(this.field[0]).db.enrich(t);let e=Array(t.length);for(let n=0,r;n1?n:n[0]}y.append=function(t,e){return this.add(t,e,!0)};y.update=function(t,e){return this.remove(t).add(t,e)};y.remove=function(t){bt(t)&&(t=St(t,this.key));for(var e of this.index.values())e.remove(t,!0);if(this.reg.has(t)){if(this.tag&&!this.fastupdate)for(let n of this.tag.values())for(let r of n){e=r[0];let i=r[1],s=i.indexOf(t);s>-1&&(i.length>1?i.splice(s,1):n.delete(e))}this.store&&this.store.delete(t),this.reg.delete(t)}return this.cache&&this.cache.remove(t),this};y.clear=function(){let t=[];for(let e of this.index.values()){let n=e.clear();n.then&&t.push(n)}if(this.tag)for(let e of this.tag.values())e.clear();return this.store&&this.store.clear(),this.cache&&this.cache.clear(),t.length?Promise.all(t):this};y.contain=function(t){return this.db?this.index.get(this.field[0]).db.has(t):this.reg.has(t)};y.cleanup=function(){for(let t of this.index.values())t.cleanup();return this};y.get=function(t){return this.db?this.index.get(this.field[0]).db.enrich(t).then(function(e){return e[0]&&e[0].doc||null}):this.store.get(t)||null};y.set=function(t,e){return typeof t==\"object\"&&(e=t,t=St(e,this.key)),this.store.set(t,e),this};y.searchCache=le;y.export=ei;y.import=ni;ce(pt.prototype);function pe(t,e=0){let n=[],r=[];e&&(e=25e4/e*5e3|0);for(let i of t.entries())r.push(i),r.length===e&&(n.push(r),r=[]);return r.length&&n.push(r),n}function ge(t,e){e||(e=new Map);for(let n=0,r;n2?n[0]:\"\";if(n=n.length>2?n[2]:n[1],this.worker&&r)return this.index.get(r).import(t);if(e){if(typeof e==\"string\"&&(e=JSON.parse(e)),r)return this.index.get(r).import(n,e);switch(n){case\"reg\":this.fastupdate=!1,this.reg=Ye(e,this.reg);for(let i=0,s;i=0&&i.splice(u,1)}}else Tt(this.map,t),this.depth&&Tt(this.ctx,t);e||this.reg.delete(t)}return this.db&&(this.commit_task.push({del:t}),this.M&&Ge(this)),this.cache&&this.cache.remove(t),this};function Tt(t,e){let n=0;var r=typeof e>\"u\";if(t.constructor===Array){for(let i=0,s,u,o;i=0){if(s.length>1)return s.splice(u,1),1;if(delete t[i],n)return 1;o=1}else{if(o)return 1;n++}}}else for(let i of t.entries())r=i[0],Tt(i[1],e)?n++:t.delete(r);return n}var ii={memory:{resolution:1},performance:{resolution:3,fastupdate:!0,context:{depth:1,resolution:1}},match:{tokenize:\"forward\"},score:{resolution:9,context:{depth:2,resolution:3}}};Z.prototype.add=function(t,e,n,r){if(e&&(t||t===0)){if(!r&&!n&&this.reg.has(t))return this.update(t,e);r=this.depth,e=this.encoder.encode(e,!r);let h=e.length;if(h){let f=W(),c=W(),D=this.resolution;for(let a=0;a2){for(let p=1,g,m,F,C;p2){for(let p=0,g;pp;s--){u=d.substring(p,s),g=this.rtl?i-1-p:p;var o=this.score?this.score(e,d,a,u,g):Wt(D,h,a,i,g);Y(this,c,u,o,t,n)}break}case\"bidirectional\":case\"reverse\":if(i>1){for(o=i-1;o>0;o--){u=d[this.rtl?i-1-o:o]+u;var l=this.score?this.score(e,d,a,u,o):Wt(D,h,a,i,o);Y(this,c,u,l,t,n)}u=\"\"}case\"forward\":if(i>1){for(o=0;o1&&au;let p=this.score?this.score(e,u,a,d,o-1):Wt(i+(h/2>i?0:1),h,a,s-1,o-1);Y(this,f,l?u:d,p,t,n,l?d:u)}}}}this.fastupdate||this.reg.add(t)}}return this.db&&(this.commit_task.push(n?{ins:t}:{del:t}),this.M&&Ge(this)),this};function Y(t,e,n,r,i,s,u){let o,l;if(!(o=e[n])||u&&!o[u]){if(u?(e=o||(e[n]=W()),e[u]=1,l=t.ctx,(o=l.get(u))?l=o:l.set(u,l=t.keystore?new J(t.keystore):new Map)):(l=t.map,e[n]=1),(o=l.get(n))?l=o:l.set(n,l=o=[]),s){for(let h=0,f;h1?e+(r||0)<=t?n+(i||0):(t-1)/(e+(r||0))*(n+(i||0))+1|0:0}Z.prototype.search=function(t,e,n){if(n||(e||typeof t!=\"object\"?typeof e==\"object\"&&(n=e,e=0):(n=t,t=\"\")),n&&n.cache)return n.cache=!1,t=this.searchCache(t,e,n),n.cache=!0,t;let r=[],i,s,u,o=0,l,h,f,c,D;n&&(t=n.query||t,e=n.limit||e,o=n.offset||0,s=n.context,u=n.suggest,D=(l=n.resolve)&&n.enrich,f=n.boost,c=n.resolution,h=this.db&&n.tag),typeof l>\"u\"&&(l=this.resolve),s=this.depth&&s!==!1;let a=this.encoder.encode(t,!s);if(i=a.length,e=e||(l?100:0),i===1)return $e.call(this,a[0],\"\",e,o,l,D,h);if(i===2&&s&&!u)return $e.call(this,a[1],a[0],e,o,l,D,h);let d=W(),p=0,g;if(s&&(g=a[0],p=1),c||c===0||(c=g?this.N:this.resolution),this.db){if(this.db.search&&(n=this.db.search(this,a,e,o,u,l,D,h),n!==!1))return n;let m=this;return(async function(){for(let F,C;p1)l=zt(t,e,n,r,i,s,u);else if(o===1)return u?fe.call(null,t[0],n,r):new j(t[0],this);return u?l:new j(l,this)}function $e(t,e,n,r,i,s,u){return t=oe(this,t,e,n,r,i,s,u),this.db?t.then(function(o){return i?o||[]:new j(o,this)}):t&&t.length?i?fe.call(this,t,n,r):new j(t,this):i?[]:new j([],this)}function Ke(t,e,n,r){let i=[];if(t&&t.length){if(t.length<=r){e.push(t);return}for(let s=0,u;sn)&&(l=n,n=e,e=l),t.db?t.db.get(e,n,r,i,s,u,o):(t=n?(t=t.ctx.get(n))&&t.get(e):t.map.get(e),t)}function Z(t,e){if(!this||this.constructor!==Z)return new Z(t);if(t){var n=U(t)?t:t.preset;n&&(t=Object.assign({},ii[n],t))}else t={};n=t.context;let r=n===!0?{depth:1}:n||{},i=U(t.encoder)?he[t.encoder]:t.encode||t.encoder||{};this.encoder=i.encode?i:typeof i==\"object\"?new At(i):{encode:i},this.resolution=t.resolution||9,this.tokenize=n=(n=t.tokenize)&&n!==\"default\"&&n!==\"exact\"&&n||\"strict\",this.depth=n===\"strict\"&&r.depth||0,this.bidirectional=r.bidirectional!==!1,this.fastupdate=!!t.fastupdate,this.score=t.score||null,(n=t.keystore||0)&&(this.keystore=n),this.map=n?new J(n):new Map,this.ctx=n?new J(n):new Map,this.reg=e||(this.fastupdate?n?new J(n):new Map:n?new V(n):new Set),this.N=r.resolution||3,this.rtl=i.rtl||t.rtl||!1,this.cache=(n=t.cache||null)&&new gt(n),this.resolve=t.resolve!==!1,(n=t.db)&&(this.db=this.mount(n)),this.M=t.commit!==!1,this.commit_task=[],this.commit_timer=null,this.priority=t.priority||4}y=Z.prototype;y.mount=function(t){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),t.mount(this)};y.commit=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.commit(this)};y.destroy=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.destroy()};function Ge(t){t.commit_timer||(t.commit_timer=setTimeout(function(){t.commit_timer=null,t.db.commit(t)},1))}y.clear=function(){return this.map.clear(),this.ctx.clear(),this.reg.clear(),this.cache&&this.cache.clear(),this.db?(this.commit_timer&&clearTimeout(this.commit_timer),this.commit_timer=null,this.commit_task=[],this.db.clear()):this};y.append=function(t,e){return this.add(t,e,!0)};y.contain=function(t){return this.db?this.db.has(t):this.reg.has(t)};y.update=function(t,e){let n=this,r=this.remove(t);return r&&r.then?r.then(()=>n.add(t,e)):this.add(t,e)};y.cleanup=function(){return this.fastupdate?(Tt(this.map),this.depth&&Tt(this.ctx),this):this};y.searchCache=le;y.export=function(t,e,n=0,r=0){let i,s;switch(r){case 0:i=\"reg\",s=Xe(this.reg);break;case 1:i=\"cfg\",s=null;break;case 2:i=\"map\",s=pe(this.map,this.reg.size);break;case 3:i=\"ctx\",s=Ze(this.ctx,this.reg.size);break;default:return}return $t.call(this,t,e,i,s,n,r)};y.import=function(t,e){if(e)switch(typeof e==\"string\"&&(e=JSON.parse(e)),t=t.split(\".\"),t[t.length-1]===\"json\"&&t.pop(),t.length===3&&t.shift(),t=t.length>1?t[1]:t[0],t){case\"reg\":this.fastupdate=!1,this.reg=Ye(e,this.reg);break;case\"map\":this.map=ge(e,this.map);break;case\"ctx\":this.ctx=Qe(e,this.ctx)}};y.serialize=function(t=!0){let e=\"\",n=\"\",r=\"\";if(this.reg.size){let s;for(var i of this.reg.keys())s||(s=typeof i),e+=(e?\",\":\"\")+(s===\"string\"?'\"'+i+'\"':i);e=\"index.reg=new Set([\"+e+\"]);\",n=ze(this.map,s),n=\"index.map=new Map([\"+n+\"]);\";for(let u of this.ctx.entries()){i=u[0];let o=ze(u[1],s);o=\"new Map([\"+o+\"])\",o='[\"'+i+'\",'+o+\"]\",r+=(r?\",\":\"\")+o}r=\"index.ctx=new Map([\"+r+\"]);\"}return t?\"function inject(index){\"+e+n+r+\"}\":e+n+r};ce(Z.prototype);var qe=typeof window<\"u\"&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Kt=[\"map\",\"ctx\",\"tag\",\"reg\",\"cfg\"],ct=W();function Ut(t,e={}){if(!this||this.constructor!==Ut)return new Ut(t,e);typeof t==\"object\"&&(e=t,t=t.name),t||console.info(\"Default storage space was used, because a name was not passed.\"),this.id=\"flexsearch\"+(t?\":\"+t.toLowerCase().replace(/[^a-z0-9_\\-]/g,\"\"):\"\"),this.field=e.field?e.field.toLowerCase().replace(/[^a-z0-9_\\-]/g,\"\"):\"\",this.type=e.type,this.fastupdate=this.support_tag_search=!1,this.db=null,this.h={}}y=Ut.prototype;y.mount=function(t){return t.index?t.mount(this):(t.db=this,this.open())};y.open=function(){if(this.db)return this.db;let t=this;navigator.storage&&navigator.storage.persist&&navigator.storage.persist(),ct[t.id]||(ct[t.id]=[]),ct[t.id].push(t.field);let e=qe.open(t.id,1);return e.onupgradeneeded=function(){let n=t.db=this.result;for(let r=0,i;r=f.length){r-=f.length;continue}let c=n?r+Math.min(f.length-r,n):f.length;for(let D=r;D=s.length?[]:!e&&!n?s:(s=s.slice(n,n+e),r?i.enrich(s):s)})};y.enrich=function(t){typeof t!=\"object\"&&(t=[t]);let e=this.db.transaction(\"reg\",\"readonly\").objectStore(\"reg\"),n=[];for(let r=0;r=0)if(i=1,o.length>1)o.splice(h,1);else{r[u]=[];break}s+=o.length}if(n)break}s?i&&t.update(r):t.delete(),t.continue()}y.remove=function(t){return typeof t!=\"object\"&&(t=[t]),Promise.all([this.transaction(\"map\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t)}}),this.transaction(\"ctx\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t)}}),this.transaction(\"tag\",\"readwrite\",function(e){e.openCursor().onsuccess=function(){let n=this.result;n&&ie(n,t,!0)}}),this.transaction(\"reg\",\"readwrite\",function(e){for(let n=0;n{t.onsuccess=t.oncomplete=function(){e&&e(this.result),e=null,n(this.result)},t.onerror=t.onblocked=r,t=null})}var tn={Index:Z,Charset:he,Encoder:At,Document:pt,Worker:at,Resolver:j,IndexedDB:Ut,Language:{}};var Li=Object.hasOwnProperty;var un,P,on,ri,st,en,ln,hn,cn,_e,De,Fe,si,fn={},Qt=[],ui=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Yt=Array.isArray;function G(t,e){for(var n in e)t[n]=e[n];return t}function ye(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function de(t,e,n,r,i){var s={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++on,__i:-1,__u:0};return i==null&&P.vnode!=null&&P.vnode(s),s}function xt(t){return t.children}function Zt(t,e){this.props=t,this.context=e}function vt(t,e){if(e==null)return t.__?vt(t.__,t.__i+1):null;for(var n;ee&&st.sort(hn),t=st.shift(),e=st.length,oi(t)}finally{st.length=Xt.__r=0}}function pn(t,e,n,r,i,s,u,o,l,h,f){var c,D,a,d,p,g,m,F=r&&r.__k||Qt,C=e.length;for(l=li(n,e,F,l,C),c=0;c0?u=t.__k[s]=de(u.type,u.props,u.key,u.ref?u.ref:null,u.__v):t.__k[s]=u,l=s+D,u.__=t,u.__b=t.__b+1,o=null,(h=u.__i=hi(u,n,l,c))!=-1&&(c--,(o=n[h])&&(o.__u|=2)),o==null||o.__v==null?(h==-1&&(i>f?D--:il?D--:D++,u.__u|=4))):t.__k[s]=null;if(c)for(s=0;s(f?1:0)){for(i=n-1,s=n+1;i>=0||s=0?i--:s++])!=null&&(2&h.__u)==0&&o==h.key&&l==h.type)return u}return-1}function rn(t,e,n){e[0]==\"-\"?t.setProperty(e,n??\"\"):t[e]=n==null?\"\":typeof n!=\"number\"||ui.test(e)?n:n+\"px\"}function Vt(t,e,n,r,i){var s,u;t:if(e==\"style\")if(typeof n==\"string\")t.style.cssText=n;else{if(typeof r==\"string\"&&(t.style.cssText=r=\"\"),r)for(e in r)n&&e in n||rn(t.style,e,\"\");if(n)for(e in n)r&&n[e]==r[e]||rn(t.style,e,n[e])}else if(e[0]==\"o\"&&e[1]==\"n\")s=e!=(e=e.replace(cn,\"$1\")),u=e.toLowerCase(),e=u in t||e==\"onFocusOut\"||e==\"onFocusIn\"?u.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+s]=n,n?r?n.u=r.u:(n.u=_e,t.addEventListener(e,s?Fe:De,s)):t.removeEventListener(e,s?Fe:De,s);else{if(i==\"http://www.w3.org/2000/svg\")e=e.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(e!=\"width\"&&e!=\"height\"&&e!=\"href\"&&e!=\"list\"&&e!=\"form\"&&e!=\"tabIndex\"&&e!=\"download\"&&e!=\"rowSpan\"&&e!=\"colSpan\"&&e!=\"role\"&&e!=\"popover\"&&e in t)try{t[e]=n??\"\";break t}catch{}typeof n==\"function\"||(n==null||n===!1&&e[4]!=\"-\"?t.removeAttribute(e):t.setAttribute(e,e==\"popover\"&&n==1?\"\":n))}}function sn(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=_e++;else if(e.t0?t:Yt(t)?t.map(Dn):G({},t)}function fi(t,e,n,r,i,s,u,o,l){var h,f,c,D,a,d,p,g=n.props||fn,m=e.props,F=e.type;if(F==\"svg\"?i=\"http://www.w3.org/2000/svg\":F==\"math\"?i=\"http://www.w3.org/1998/Math/MathML\":i||(i=\"http://www.w3.org/1999/xhtml\"),s!=null){for(h=0;h\"u\"?\"\":document.body?.dataset?.basepath??\"\"}function Ee(t,e){let n=e??gi(),r=t.startsWith(\"/\")?t:\"/\"+t;return n+r}function q(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function mn(t,e){if(!t)return()=>{};let n=i=>{t.classList.contains(\"active\")&&i.target===t&&(i.preventDefault(),i.stopPropagation(),e())},r=i=>{t.classList.contains(\"active\")&&i.key===\"Escape\"&&(i.preventDefault(),e())};return t.addEventListener(\"click\",n),document.addEventListener(\"keydown\",r),()=>{t.removeEventListener(\"click\",n),document.removeEventListener(\"keydown\",r)}}function _n(t,e){let n=t.querySelectorAll(\"[src], [href]\");for(let r of Array.from(n)){let i=r.hasAttribute(\"href\")?\"href\":\"src\",s=r.getAttribute(i);if(s&&!(s.startsWith(\"http://\")||s.startsWith(\"https://\")||s.startsWith(\"mailto:\")||s.startsWith(\"tel:\")||s.startsWith(\"#\")||s.startsWith(\"/\")||s.startsWith(\"data:\")))try{let u=new URL(s,e).toString();r.setAttribute(i,u)}catch{continue}}}function Gt(t){return t.replaceAll(\"&\",\"&\").replaceAll(\"<\",\"<\").replaceAll(\">\",\">\").replaceAll('\"',\""\").replaceAll(\"'\",\"'\")}var Ae=\"basic\",te=\"\",yn=8,di=5,qt=30,Di=t=>{let e=[],n=-1,r=-1,i=t.toLowerCase(),s=0;for(let u of i){let o=u.codePointAt(0);o>=12352&&o<=12447||o>=12448&&o<=12543||o>=19968&&o<=40959||o>=44032&&o<=55215||o>=131072&&o<=173791?(n!==-1&&(e.push(i.slice(n,r)),n=-1),e.push(u)):o===32||o===9||o===10||o===13?n!==-1&&(e.push(i.slice(n,r)),n=-1):(n===-1&&(n=s),r=s+1),s+=u.length}return n!==-1&&e.push(i.slice(n)),e},ve=new tn.Document({encode:Di,document:{id:\"id\",tag:\"tags\",index:[{field:\"title\",tokenize:\"forward\"},{field:\"content\",tokenize:\"forward\"},{field:\"tags\",tokenize:\"forward\"}]}}),Dt=null,Se=[],xe=[],we=new Map;function Be(t){let e=t.split(/\\s+/),n=[],r=[];for(let i of e)i.startsWith(\"#\")&&i.length>1?n.push(i.substring(1)):i!==\"#\"&&r.push(i);return{tags:n,query:r.join(\" \").trim()}}function Cn(t){let e=t.split(/\\s+/),n=e[e.length-1];return n&&n.startsWith(\"#\")?n.substring(1):null}var An=new DOMParser;async function Fi(t){if(we.has(t))return we.get(t);let e=new URL(Ee(t),window.location.origin).toString();try{let n=await fetch(e);if(!n.ok)return[];let r=await n.text(),i=An.parseFromString(r??\"\",\"text/html\");_n(i,e);let s=Array.from(i.getElementsByClassName(\"popover-hint\"));return we.set(t,s),s}catch{return[]}}var ke=[];function dt(t){ke.push(t)}function mi(){ke.forEach(t=>t()),ke.length=0}async function _i(){let t=document.querySelectorAll(\".search\");for(let e of Array.from(t)){let n=e.querySelector(\".search-container\"),r=e.querySelector(\".search-button\"),i=e.querySelector(\".search-bar\"),s=e.querySelector(\".search-layout\");if(!n||!r||!i||!s)continue;let u=s.getAttribute(\"data-preview\")===\"true\",o=s.getAttribute(\"data-field-priority\"),l=o?JSON.parse(o):[\"title\",\"content\",\"tags\"],h=s.querySelector(\".results-container\");h||(h=document.createElement(\"div\"),h.className=\"results-container\",h.setAttribute(\"role\",\"listbox\"),h.setAttribute(\"aria-label\",\"Search results\"),s.appendChild(h));let f=s.querySelector(\".preview-container\");u&&!f&&(f=document.createElement(\"div\"),f.className=\"preview-container\",s.appendChild(f));let c=document.createElement(\"div\");c.className=\"tag-suggestions\",c.setAttribute(\"role\",\"listbox\"),c.setAttribute(\"aria-label\",\"Tag suggestions\"),c.style.display=\"none\";let D=i.parentElement;D.insertBefore(c,i.nextSibling);let a=document.createElement(\"span\");a.className=\"ghost-text\",a.setAttribute(\"aria-hidden\",\"true\"),D.insertBefore(a,i.nextSibling);let d=-1,p=[],g=!1,m=_=>{if(d<0||d>=p.length){a.textContent=\"\";return}let w=p[d];if(!w.toLowerCase().startsWith(_.toLowerCase())){a.textContent=\"\";return}let L=w.substring(_.length);a.innerHTML=\"\";let S=document.createElement(\"span\");S.style.visibility=\"hidden\",S.textContent=i.value,a.appendChild(S),a.appendChild(document.createTextNode(L))},F=()=>{c.querySelectorAll(\".tag-suggestion-item\").forEach((L,S)=>{L.classList.toggle(\"active\",S===d)});let w=Cn(i.value)||\"\";m(w)},C=()=>{g=!1,d=-1,p=[],c.style.display=\"none\",a.textContent=\"\"},B=_=>{let w=i.value,L=w.lastIndexOf(\"#\");L!==-1&&(i.value=w.substring(0,L)+\"#\"+_+\" \"),C(),i.focus(),i.dispatchEvent(new Event(\"input\"))},b=_=>{if(be){if(p=_===\"\"?xe.slice(0,10):xe.filter(w=>w.toLowerCase().startsWith(_.toLowerCase())).slice(0,10),p.length===0){C();return}d=0,g=!0,q(c);for(let w=0;w!g||p.length===0?!1:(_===\"down\"?d=Math.min(d+1,p.length-1):d=Math.max(d-1,0),F(),!0),E=null,A=0,v=null,M=()=>{n.classList.remove(\"active\"),r.setAttribute(\"aria-expanded\",\"false\"),i.value=\"\",q(h),f&&q(f),s.classList.remove(\"display-results\"),Ae=\"basic\",E=null,C(),r.focus()},T=_=>{Ae=_,n.classList.add(\"active\"),r.setAttribute(\"aria-expanded\",\"true\"),i.focus()},N=async _=>{if(q(h),_.length===0){let w=document.createElement(\"a\");w.className=\"result-card no-match\";let L=document.createElement(\"h3\");L.textContent=\"No results.\";let S=document.createElement(\"p\");S.textContent=\"Try another search term?\",w.appendChild(L),w.appendChild(S),h.appendChild(w),E=null,f&&q(f)}else for(let w of _){let L=document.createElement(\"a\");L.className=\"result-card\",L.id=w.slug,L.href=Ee(w.slug);let S=document.createElement(\"h3\");if(S.className=\"card-title\",S.innerHTML=w.title,L.appendChild(S),w.tags.length>0){let K=document.createElement(\"ul\");K.className=\"tags\",K.innerHTML=w.tags.join(\"\"),L.appendChild(K)}let X=document.createElement(\"p\");X.className=\"card-description\",X.innerHTML=w.content,L.appendChild(X),h.appendChild(L)}},R=()=>Array.from(h.querySelectorAll(\".result-card:not(.no-match)\")),O=()=>{let _=Be(te);return _.query||(_.tags.length>0?_.tags.join(\" \"):te)},H=async _=>{if(!f||(q(f),!_))return;let w=_.id,L=++A,S=await Fi(w);if(L!==A)return;let X=O(),K=document.createElement(\"div\");K.className=\"preview-inner\";for(let jt of S){let lt=jt.cloneNode(!0);X.trim()!==\"\"&&(lt.innerHTML=yi(X,lt)),K.appendChild(lt)}f.appendChild(K);let Lt=Array.from(f.getElementsByClassName(\"highlight\")).sort((jt,lt)=>lt.innerHTML.length-jt.innerHTML.length);Lt[0]&&Lt[0].scrollIntoView({block:\"start\"})},$=_=>{E&&E.classList.remove(\"focus\"),E=_,E&&E.classList.add(\"focus\"),v&&clearTimeout(v),v=setTimeout(()=>H(E),150)},Ft=_=>{let w=R();if(w.length===0){$(null);return}let L=Math.min(Math.max(_,0),w.length-1);$(w[L]??null)},Q=()=>{let _=R();if(_.length===0)return;let w=E?_.indexOf(E):-1;Ft(w+1)},Mt=()=>{let _=R();if(_.length===0)return;let w=E?_.indexOf(E):_.length;Ft(w-1)},tt=async _=>{let w=_.target.value;te=w;let L=Cn(w);L!==null?b(L):C();let S=Be(w),X=S.query!==\"\"||S.tags.length>0;if(s.classList.toggle(\"display-results\",X),Ae=S.tags.length>0&&!S.query?\"tags\":\"basic\",!X){q(h),f&&q(f),E=null;return}let K;S.query?K=await ve.searchAsync({query:S.query,limit:S.tags.length>0?1e4:yn,index:[\"title\",\"content\"]}):S.tags.length>0?K=await ve.searchAsync({query:S.tags[0],limit:1e4,index:[\"tags\"]}):K=[];let Lt=ht=>{let Bt=K.filter(It=>It.field===ht);return Bt.length===0?[]:[...Bt[0].result]},lt=[...new Set(l.flatMap(ht=>Lt(ht)))].filter(ht=>{if(S.tags.length===0)return!0;let Bt=Se[ht];if(!Bt)return!1;let It=Dt?.[Bt];if(!It)return!1;let Sn=It.tags||[];return S.tags.every(Tn=>Sn.some(Mn=>Mn.toLowerCase()===Tn.toLowerCase()))}),Bn=S.query||(S.tags.length>0?S.tags.join(\" \"):w),kn=lt.map(ht=>Ei(Bn,ht));await N(kn.slice(0,yn));let bn=R();$(bn[0]??null)},et=_=>{_.stopPropagation(),T(\"basic\")};r.addEventListener(\"click\",et),dt(()=>r.removeEventListener(\"click\",et)),i.addEventListener(\"input\",tt),dt(()=>i.removeEventListener(\"input\",tt));let ut=_=>{if(g){if(_.key===\"ArrowDown\"){_.preventDefault(),k(\"down\");return}if(_.key===\"ArrowUp\"){_.preventDefault(),k(\"up\");return}if(_.key===\"Tab\"){_.preventDefault(),d>=0&&d=0&&di.removeEventListener(\"keydown\",ut));let ot=_=>{_.key===\"k\"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey?(_.preventDefault(),n.classList.contains(\"active\")?M():T(\"basic\")):_.shiftKey&&(_.ctrlKey||_.metaKey)&&_.key.toLowerCase()===\"k\"&&(_.preventDefault(),T(\"tags\"),i.value=\"#\",i.dispatchEvent(new Event(\"input\")))};document.addEventListener(\"keydown\",ot),dt(()=>document.removeEventListener(\"keydown\",ot));let x=_=>{let w=_.target.closest(\".result-card\");!w||w.classList.contains(\"no-match\")||_ instanceof MouseEvent&&(_.altKey||_.ctrlKey||_.metaKey||_.shiftKey)||M()},I=_=>{let w=_.target.closest(\".result-card\");!w||w.classList.contains(\"no-match\")||$(w)};h.addEventListener(\"click\",x),h.addEventListener(\"mouseover\",I),dt(()=>{h.removeEventListener(\"click\",x),h.removeEventListener(\"mouseover\",I)});let mt=_=>{let w=_.target.closest(\".tag-suggestion-item\");if(!w)return;let L=w.getAttribute(\"data-tag\");L&&B(L)},Te=_=>{let w=_.target.closest(\".tag-suggestion-item\");if(!w)return;let L=w.getAttribute(\"data-index\");L!==null&&(d=parseInt(L,10),F())};c.addEventListener(\"click\",mt),c.addEventListener(\"mouseover\",Te),dt(()=>{c.removeEventListener(\"click\",mt),c.removeEventListener(\"mouseover\",Te)});let xn=mn(n,M);dt(xn)}}function wn(t){let e=t.split(/\\s+/).filter(r=>r.trim()!==\"\"),n=e.length;if(n>1)for(let r=1;ri.length-r.length)}function yi(t,e){let n=wn(t).filter(h=>h.trim()!==\"\");if(n.length===0)return e.innerHTML;let r=An.parseFromString(e.innerHTML,\"text/html\"),i=n.map(h=>h.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")).join(\"|\");if(i===\"\")return e.innerHTML;let s=new RegExp(i,\"gi\"),u=r.createTreeWalker(r.body,NodeFilter.SHOW_TEXT),o=[],l=u.nextNode();for(;l;)o.push(l),l=u.nextNode();for(let h of o){let f=h.nodeValue??\"\";if(s.lastIndex=0,!s.test(f))continue;s.lastIndex=0;let c=r.createDocumentFragment(),D=0,a;for(;(a=s.exec(f))!==null;){a.index>D&&c.appendChild(r.createTextNode(f.slice(D,a.index)));let d=r.createElement(\"span\");d.className=\"highlight\",d.textContent=a[0],c.appendChild(d),D=a.index+a[0].length}Dl!==\"\"),s=0,u=i.length-1;if(n){let l=D=>r.some(a=>D.toLowerCase().startsWith(a.toLowerCase())),h=i.map(l),f=0,c=0;for(let D=0;Dp+(g?1:0),0);d>=f&&(f=d,c=D)}s=Math.max(c-qt,0),u=Math.min(s+2*qt,i.length-1),i=i.slice(s,u)}let o=i.map(l=>{let h=l;for(let f of r)if(l.toLowerCase().includes(f.toLowerCase())){let c=new RegExp(f.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\"),\"gi\");h=l.replace(c,D=>`${D}`);break}return h}).join(\" \");return(s===0?\"\":\"...\")+o+(u===i.length-1?\"\":\"...\")}function Ci(t,e){return!e||e.length===0||t.length===0?[]:e.map(n=>{let r=Gt(n);return t.some(i=>n.toLowerCase().includes(i.toLowerCase()))?`
  • #${r}

  • `:`
  • #${r}

  • `}).slice(0,di)}function Ei(t,e){let n=Se[e];if(!n||!Dt)return{id:e,slug:\"\",title:\"\",content:\"\",tags:[]};let r=Dt[n];if(!r)return{id:e,slug:n,title:\"\",content:\"\",tags:[]};let i=Be(te);return{id:e,slug:n,title:i.tags.length>0&&!i.query?Gt(r.title):En(t,r.title||\"\"),content:En(t,r.content||\"\",!0),tags:Ci(i.tags,r.tags)}}async function Ai(){if(!Dt)return;let t=0,e=[],n=new Set;for(let r of Object.keys(Dt)){let i=Dt[r];if(i){Se[t]=r;for(let s of i.tags||[])n.add(s);e.push(ve.addAsync(t,{id:t,slug:r,title:i.title||\"\",content:i.content||\"\",tags:i.tags||[]})),t++}}await Promise.all(e),xe=[...n].sort()}async function wi(){return await fetchData}var be=!1;async function vi(){be||(Dt=await wi(),await Ai(),be=!0)}async function vn(){mi(),await vi(),await _i()}document.addEventListener(\"nav\",vn);document.addEventListener(\"render\",vn);\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport { i18n } from \"../i18n\";\nimport style from \"./styles/search.scss\";\n// @ts-expect-error - inline script imported as string by esbuild loader\nimport script from \"./scripts/search.inline.ts\";\n\nexport type SearchField = \"title\" | \"content\" | \"tags\";\n\nexport interface SearchOptions {\n enablePreview: boolean;\n fieldPriority: SearchField[];\n}\n\nconst defaultOptions: SearchOptions = {\n enablePreview: true,\n fieldPriority: [\"title\", \"content\", \"tags\"],\n};\n\nexport default ((userOpts?: Partial) => {\n const Search: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const opts = { ...defaultOptions, ...userOpts };\n const locale = cfg.locale ?? \"en-US\";\n const searchPlaceholder = i18n(locale).components.search.searchBarPlaceholder;\n\n return (\n
    \n \n \n Search\n \n \n \n \n \n

    {i18n(locale).components.search.title}

    \n \n
    \n
    \n \n
    \n
    \n
    \n \n );\n };\n\n Search.afterDOMLoaded = script;\n Search.css = style;\n\n return Search;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file diff --git a/src/components/Search.tsx b/src/components/Search.tsx index c016d25..b810761 100644 --- a/src/components/Search.tsx +++ b/src/components/Search.tsx @@ -9,12 +9,16 @@ import style from "./styles/search.scss"; // @ts-expect-error - inline script imported as string by esbuild loader import script from "./scripts/search.inline.ts"; +export type SearchField = "title" | "content" | "tags"; + export interface SearchOptions { enablePreview: boolean; + fieldPriority: SearchField[]; } const defaultOptions: SearchOptions = { enablePreview: true, + fieldPriority: ["title", "content", "tags"], }; export default ((userOpts?: Partial) => { @@ -25,7 +29,11 @@ export default ((userOpts?: Partial) => { return (
    -
    diff --git a/src/components/index.ts b/src/components/index.ts index 7629a06..4417712 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -1,2 +1,2 @@ export { default as Search } from "./Search"; -export type { SearchOptions } from "./Search"; +export type { SearchOptions, SearchField } from "./Search"; diff --git a/src/components/scripts/search.inline.ts b/src/components/scripts/search.inline.ts index 4af3637..31173a3 100644 --- a/src/components/scripts/search.inline.ts +++ b/src/components/scripts/search.inline.ts @@ -4,6 +4,7 @@ import { normalizeRelativeURLs, registerEscapeHandler, resolveBasePath, + escapeHTML, } from "@quartz-community/utils"; interface Item { @@ -81,7 +82,31 @@ const index = new FlexSearch.Document({ let contentData: Record | null = null; let idDataMap: string[] = []; +let allTags: string[] = []; const fetchContentCache = new Map(); + +function parseSearchQuery(input: string): { tags: string[]; query: string } { + const tokens = input.split(/\s+/); + const tags: string[] = []; + const queryParts: string[] = []; + for (const token of tokens) { + if (token.startsWith("#") && token.length > 1) { + tags.push(token.substring(1)); + } else if (token !== "#") { + queryParts.push(token); + } + } + return { tags, query: queryParts.join(" ").trim() }; +} + +function getCurrentTagToken(input: string): string | null { + const tokens = input.split(/\s+/); + const last = tokens[tokens.length - 1]; + if (last && last.startsWith("#")) { + return last.substring(1); + } + return null; +} const parser = new DOMParser(); async function fetchContent(slug: string): Promise { @@ -89,15 +114,18 @@ async function fetchContent(slug: string): Promise { return fetchContentCache.get(slug) as Element[]; } const targetUrl = new URL(resolveBasePath(slug), window.location.origin).toString(); - const contents = await fetch(targetUrl) - .then((res) => res.text()) - .then((contents) => { - const html = parser.parseFromString(contents ?? "", "text/html"); - normalizeRelativeURLs(html, targetUrl); - return Array.from(html.getElementsByClassName("popover-hint")); - }); - fetchContentCache.set(slug, contents); - return contents; + try { + const res = await fetch(targetUrl); + if (!res.ok) return []; + const text = await res.text(); + const html = parser.parseFromString(text ?? "", "text/html"); + normalizeRelativeURLs(html, targetUrl); + const contents = Array.from(html.getElementsByClassName("popover-hint")); + fetchContentCache.set(slug, contents); + return contents; + } catch { + return []; + } } const cleanupFns: Array<() => void> = []; @@ -116,18 +144,24 @@ async function setupSearch() { for (const searchEl of Array.from(searchElements)) { const container = searchEl.querySelector(".search-container") as HTMLElement | null; - const searchButton = searchEl.querySelector(".search-button"); + const searchButton = searchEl.querySelector(".search-button") as HTMLElement | null; const searchBar = searchEl.querySelector(".search-bar") as HTMLInputElement; const searchLayout = searchEl.querySelector(".search-layout"); if (!container || !searchButton || !searchBar || !searchLayout) continue; const enablePreview = searchLayout.getAttribute("data-preview") === "true"; + const fieldPriorityAttr = searchLayout.getAttribute("data-field-priority"); + const fieldPriority: string[] = fieldPriorityAttr + ? JSON.parse(fieldPriorityAttr) + : ["title", "content", "tags"]; let results = searchLayout.querySelector(".results-container") as HTMLDivElement | null; if (!results) { results = document.createElement("div"); results.className = "results-container"; + results.setAttribute("role", "listbox"); + results.setAttribute("aria-label", "Search results"); searchLayout.appendChild(results); } @@ -138,63 +172,171 @@ async function setupSearch() { searchLayout.appendChild(preview); } + const tagDropdown = document.createElement("div"); + tagDropdown.className = "tag-suggestions"; + tagDropdown.setAttribute("role", "listbox"); + tagDropdown.setAttribute("aria-label", "Tag suggestions"); + tagDropdown.style.display = "none"; + const searchSpace = searchBar.parentElement!; + searchSpace.insertBefore(tagDropdown, searchBar.nextSibling); + + const ghostText = document.createElement("span"); + ghostText.className = "ghost-text"; + ghostText.setAttribute("aria-hidden", "true"); + searchSpace.insertBefore(ghostText, searchBar.nextSibling); + + let tagSuggestionIndex = -1; + let filteredTags: string[] = []; + let tagDropdownVisible = false; + + const updateGhostText = (partial: string) => { + if (tagSuggestionIndex < 0 || tagSuggestionIndex >= filteredTags.length) { + ghostText.textContent = ""; + return; + } + const selectedTag = filteredTags[tagSuggestionIndex]!; + if (!selectedTag.toLowerCase().startsWith(partial.toLowerCase())) { + ghostText.textContent = ""; + return; + } + const completion = selectedTag.substring(partial.length); + ghostText.innerHTML = ""; + const invisible = document.createElement("span"); + invisible.style.visibility = "hidden"; + invisible.textContent = searchBar.value; + ghostText.appendChild(invisible); + ghostText.appendChild(document.createTextNode(completion)); + }; + + const updateTagDropdownHighlight = () => { + const items = tagDropdown.querySelectorAll(".tag-suggestion-item"); + items.forEach((item, i) => { + item.classList.toggle("active", i === tagSuggestionIndex); + }); + const partial = getCurrentTagToken(searchBar.value) || ""; + updateGhostText(partial); + }; + + const hideTagDropdown = () => { + tagDropdownVisible = false; + tagSuggestionIndex = -1; + filteredTags = []; + tagDropdown.style.display = "none"; + ghostText.textContent = ""; + }; + + const acceptTagSuggestion = (tag: string) => { + const value = searchBar.value; + const lastHashIndex = value.lastIndexOf("#"); + if (lastHashIndex !== -1) { + searchBar.value = value.substring(0, lastHashIndex) + "#" + tag + " "; + } + hideTagDropdown(); + searchBar.focus(); + searchBar.dispatchEvent(new Event("input")); + }; + + const showTagDropdown = (partial: string) => { + if (!indexInitialized) return; + filteredTags = + partial === "" + ? allTags.slice(0, 10) + : allTags.filter((t) => t.toLowerCase().startsWith(partial.toLowerCase())).slice(0, 10); + if (filteredTags.length === 0) { + hideTagDropdown(); + return; + } + tagSuggestionIndex = 0; + tagDropdownVisible = true; + removeAllChildren(tagDropdown); + for (let i = 0; i < filteredTags.length; i++) { + const tag = filteredTags[i]!; + const item = document.createElement("div"); + item.className = "tag-suggestion-item" + (i === 0 ? " active" : ""); + item.setAttribute("role", "option"); + item.setAttribute("data-tag", tag); + item.setAttribute("data-index", String(i)); + item.textContent = "#" + tag; + tagDropdown.appendChild(item); + } + tagDropdown.style.display = "block"; + updateGhostText(partial); + }; + + const navigateTagDropdown = (direction: "up" | "down"): boolean => { + if (!tagDropdownVisible || filteredTags.length === 0) return false; + if (direction === "down") { + tagSuggestionIndex = Math.min(tagSuggestionIndex + 1, filteredTags.length - 1); + } else { + tagSuggestionIndex = Math.max(tagSuggestionIndex - 1, 0); + } + updateTagDropdownHighlight(); + return true; + }; + let currentHover: HTMLElement | null = null; let previewToken = 0; + let previewDebounceTimer: ReturnType | null = null; const hideSearch = () => { - console.log("[Search] hideSearch called, stack:", new Error().stack); container.classList.remove("active"); + searchButton.setAttribute("aria-expanded", "false"); searchBar.value = ""; removeAllChildren(results!); if (preview) removeAllChildren(preview); searchLayout.classList.remove("display-results"); searchType = "basic"; currentHover = null; + hideTagDropdown(); + searchButton.focus(); }; const showSearch = (type: SearchType) => { - console.log("[Search] showSearch called, type:", type); searchType = type; container.classList.add("active"); - console.log("[Search] container.classList after add:", container.classList.toString()); + searchButton.setAttribute("aria-expanded", "true"); searchBar.focus(); - console.log( - "[Search] focus called, container active:", - container.classList.contains("active"), - ); }; const displayResults = async (finalResults: any[]) => { removeAllChildren(results); if (finalResults.length === 0) { - results.innerHTML = - '

    No results.

    Try another search term?

    '; + const noMatch = document.createElement("a"); + noMatch.className = "result-card no-match"; + const noMatchTitle = document.createElement("h3"); + noMatchTitle.textContent = "No results."; + const noMatchHint = document.createElement("p"); + noMatchHint.textContent = "Try another search term?"; + noMatch.appendChild(noMatchTitle); + noMatch.appendChild(noMatchHint); + results.appendChild(noMatch); currentHover = null; if (preview) removeAllChildren(preview); } else { for (const item of finalResults) { - const htmlTags = - item.tags.length > 0 ? '
      ' + item.tags.join("") + "
    " : ""; const itemTile = document.createElement("a"); itemTile.className = "result-card"; itemTile.id = item.slug; itemTile.href = resolveBasePath(item.slug); - itemTile.innerHTML = - '

    ' + - item.title + - "

    " + - htmlTags + - '

    ' + - item.content + - "

    "; - itemTile.addEventListener("click", (e) => { - if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) return; - hideSearch(); - }); - itemTile.addEventListener("mouseenter", () => { - setFocus(itemTile); - }); + + const titleEl = document.createElement("h3"); + titleEl.className = "card-title"; + titleEl.innerHTML = item.title; + itemTile.appendChild(titleEl); + + if (item.tags.length > 0) { + const tagList = document.createElement("ul"); + tagList.className = "tags"; + tagList.innerHTML = item.tags.join(""); + itemTile.appendChild(tagList); + } + + const descEl = document.createElement("p"); + descEl.className = "card-description"; + descEl.innerHTML = item.content; + itemTile.appendChild(descEl); + results.appendChild(itemTile); } } @@ -205,7 +347,8 @@ async function setupSearch() { }; const highlightTerm = () => { - return searchType === "tags" ? currentSearchTerm.substring(1).trim() : currentSearchTerm; + const parsed = parseSearchQuery(currentSearchTerm); + return parsed.query || (parsed.tags.length > 0 ? parsed.tags.join(" ") : currentSearchTerm); }; const updatePreview = async (el: HTMLElement | null) => { @@ -217,12 +360,22 @@ async function setupSearch() { const contents = await fetchContent(slug); if (token !== previewToken) return; const term = highlightTerm(); + const previewInner = document.createElement("div"); + previewInner.className = "preview-inner"; for (const contentEl of contents) { const cloned = contentEl.cloneNode(true) as HTMLElement; if (term.trim() !== "") { cloned.innerHTML = highlightHTML(term, cloned); } - preview.appendChild(cloned); + previewInner.appendChild(cloned); + } + preview.appendChild(previewInner); + + const highlights = Array.from(preview.getElementsByClassName("highlight")).sort( + (a, b) => b.innerHTML.length - a.innerHTML.length, + ); + if (highlights[0]) { + highlights[0].scrollIntoView({ block: "start" }); } }; @@ -230,7 +383,8 @@ async function setupSearch() { if (currentHover) currentHover.classList.remove("focus"); currentHover = el; if (currentHover) currentHover.classList.add("focus"); - updatePreview(currentHover); + if (previewDebounceTimer) clearTimeout(previewDebounceTimer); + previewDebounceTimer = setTimeout(() => updatePreview(currentHover), 150); }; const focusByIndex = (index: number) => { @@ -260,61 +414,74 @@ async function setupSearch() { }; const onType = async (e: Event) => { - currentSearchTerm = (e.target as HTMLInputElement).value; - searchLayout.classList.toggle("display-results", currentSearchTerm !== ""); - searchType = currentSearchTerm.startsWith("#") ? "tags" : "basic"; + const inputValue = (e.target as HTMLInputElement).value; + currentSearchTerm = inputValue; - if (currentSearchTerm === "") { + const partialTag = getCurrentTagToken(inputValue); + if (partialTag !== null) { + showTagDropdown(partialTag); + } else { + hideTagDropdown(); + } + + const parsed = parseSearchQuery(inputValue); + const hasContent = parsed.query !== "" || parsed.tags.length > 0; + searchLayout.classList.toggle("display-results", hasContent); + searchType = parsed.tags.length > 0 && !parsed.query ? "tags" : "basic"; + + if (!hasContent) { removeAllChildren(results); if (preview) removeAllChildren(preview); currentHover = null; return; } - const query = currentSearchTerm; let searchResults: any[]; - - if (searchType === "tags") { - const tagQuery = currentSearchTerm.substring(1).trim(); + if (parsed.query) { searchResults = await index.searchAsync({ - query: tagQuery, - limit: numSearchResults, + query: parsed.query, + limit: parsed.tags.length > 0 ? 10000 : numSearchResults, + index: ["title", "content"], + }); + } else if (parsed.tags.length > 0) { + searchResults = await index.searchAsync({ + query: parsed.tags[0], + limit: 10000, index: ["tags"], }); } else { - searchResults = await index.searchAsync({ - query, - limit: numSearchResults, - index: ["title", "content"], - }); + searchResults = []; } - const allIds = new Set(); - for (const fieldResult of searchResults) { - if (fieldResult && fieldResult.result) { - for (const id of fieldResult.result) { - allIds.add(id as number); - } - } - } + const getByField = (field: string): number[] => { + const matched = searchResults.filter((x: any) => x.field === field); + return matched.length === 0 ? [] : ([...matched[0].result] as number[]); + }; - const finalResults: any[] = []; - allIds.forEach((id) => { - finalResults.push(formatForDisplay(currentSearchTerm, id)); + const allIds: Set = new Set(fieldPriority.flatMap((field) => getByField(field))); + + const filteredIds = [...allIds].filter((id) => { + if (parsed.tags.length === 0) return true; + const slug = idDataMap[id]; + if (!slug) return false; + const item = contentData?.[slug]; + if (!item) return false; + const itemTags: string[] = item.tags || []; + return parsed.tags.every((tag) => + itemTags.some((t) => t.toLowerCase() === tag.toLowerCase()), + ); }); + const displayTerm = + parsed.query || (parsed.tags.length > 0 ? parsed.tags.join(" ") : inputValue); + const finalResults = filteredIds.map((id) => formatForDisplay(displayTerm, id)); + await displayResults(finalResults.slice(0, numSearchResults)); const resultElements = getResultElements(); setFocus(resultElements[0] ?? null); }; const onButtonClick = (e: Event) => { - console.log( - "[Search] Button click event, target:", - e.target, - "currentTarget:", - e.currentTarget, - ); e.stopPropagation(); showSearch("basic"); }; @@ -325,6 +492,38 @@ async function setupSearch() { addCleanup(() => searchBar.removeEventListener("input", onType)); const onSearchBarKeydown = (e: KeyboardEvent) => { + if (tagDropdownVisible) { + if (e.key === "ArrowDown") { + e.preventDefault(); + navigateTagDropdown("down"); + return; + } + if (e.key === "ArrowUp") { + e.preventDefault(); + navigateTagDropdown("up"); + return; + } + if (e.key === "Tab") { + e.preventDefault(); + if (tagSuggestionIndex >= 0 && tagSuggestionIndex < filteredTags.length) { + acceptTagSuggestion(filteredTags[tagSuggestionIndex]!); + } + return; + } + if (e.key === "Enter" && !e.isComposing) { + if (tagSuggestionIndex >= 0 && tagSuggestionIndex < filteredTags.length) { + e.preventDefault(); + acceptTagSuggestion(filteredTags[tagSuggestionIndex]!); + return; + } + } + if (e.key === "Escape") { + e.preventDefault(); + hideTagDropdown(); + return; + } + } + if (e.key === "ArrowUp" || (e.shiftKey && e.key === "Tab")) { e.preventDefault(); focusPrevious(); @@ -335,7 +534,7 @@ async function setupSearch() { focusNext(); return; } - if (e.key === "Enter") { + if (e.key === "Enter" && !e.isComposing) { const focused = currentHover; if (focused instanceof HTMLAnchorElement) { hideSearch(); @@ -354,11 +553,56 @@ async function setupSearch() { e.preventDefault(); showSearch("tags"); searchBar.value = "#"; + searchBar.dispatchEvent(new Event("input")); } }; document.addEventListener("keydown", onDocumentKeydown); addCleanup(() => document.removeEventListener("keydown", onDocumentKeydown)); + const onResultsClick = (e: Event) => { + const target = (e.target as HTMLElement).closest(".result-card") as HTMLAnchorElement | null; + if (!target || target.classList.contains("no-match")) return; + if (e instanceof MouseEvent && (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey)) return; + hideSearch(); + }; + const onResultsMouseover = (e: Event) => { + const target = (e.target as HTMLElement).closest(".result-card") as HTMLElement | null; + if (!target || target.classList.contains("no-match")) return; + setFocus(target); + }; + results.addEventListener("click", onResultsClick); + results.addEventListener("mouseover", onResultsMouseover); + addCleanup(() => { + results!.removeEventListener("click", onResultsClick); + results!.removeEventListener("mouseover", onResultsMouseover); + }); + + const onTagDropdownClick = (e: Event) => { + const target = (e.target as HTMLElement).closest( + ".tag-suggestion-item", + ) as HTMLElement | null; + if (!target) return; + const tag = target.getAttribute("data-tag"); + if (tag) acceptTagSuggestion(tag); + }; + const onTagDropdownMouseover = (e: Event) => { + const target = (e.target as HTMLElement).closest( + ".tag-suggestion-item", + ) as HTMLElement | null; + if (!target) return; + const idx = target.getAttribute("data-index"); + if (idx !== null) { + tagSuggestionIndex = parseInt(idx, 10); + updateTagDropdownHighlight(); + } + }; + tagDropdown.addEventListener("click", onTagDropdownClick); + tagDropdown.addEventListener("mouseover", onTagDropdownMouseover); + addCleanup(() => { + tagDropdown.removeEventListener("click", onTagDropdownClick); + tagDropdown.removeEventListener("mouseover", onTagDropdownMouseover); + }); + const cleanupEscapeHandler = registerEscapeHandler(container, hideSearch); addCleanup(cleanupEscapeHandler); } @@ -419,7 +663,9 @@ function highlightHTML(searchTerm: string, el: HTMLElement): string { function highlight(searchTerm: string, text: string, trim?: boolean): string { const tokenizedTerms = tokenizeTerm(searchTerm); - const tokenizedText = text.split(/\s+/).filter((t) => t !== ""); + let tokenizedText = escapeHTML(text) + .split(/\s+/) + .filter((t) => t !== ""); let startIndex = 0; let endIndex = tokenizedText.length - 1; @@ -441,8 +687,9 @@ function highlight(searchTerm: string, text: string, trim?: boolean): string { } } - startIndex = Math.max(bestIndex - contextWindowWords / 2, 0); - endIndex = Math.min(startIndex + contextWindowWords, tokenizedText.length - 1); + startIndex = Math.max(bestIndex - contextWindowWords, 0); + endIndex = Math.min(startIndex + 2 * contextWindowWords, tokenizedText.length - 1); + tokenizedText = tokenizedText.slice(startIndex, endIndex); } const slice = tokenizedText @@ -464,14 +711,15 @@ function highlight(searchTerm: string, text: string, trim?: boolean): string { ); } -function highlightTags(term: string, tags?: string[]): string[] { - if (!tags || searchType !== "tags") return []; +function highlightTags(searchTags: string[], tags?: string[]): string[] { + if (!tags || tags.length === 0 || searchTags.length === 0) return []; return tags .map((tag) => { - if (tag.toLowerCase().includes(term.toLowerCase())) { - return `
  • #${tag}

  • `; + const escaped = escapeHTML(tag); + if (searchTags.some((st) => tag.toLowerCase().includes(st.toLowerCase()))) { + return `
  • #${escaped}

  • `; } else { - return `
  • #${tag}

  • `; + return `
  • #${escaped}

  • `; } }) .slice(0, numTagResults); @@ -498,31 +746,42 @@ function formatForDisplay(term: string, id: number): any { tags: [], }; } + const parsed = parseSearchQuery(currentSearchTerm); return { id: id, slug: slug, - title: searchType === "tags" ? data.title : highlight(term, data.title || ""), + title: + parsed.tags.length > 0 && !parsed.query + ? escapeHTML(data.title) + : highlight(term, data.title || ""), content: highlight(term, data.content || "", true), - tags: highlightTags(term.substring(1), data.tags), + tags: highlightTags(parsed.tags, data.tags), }; } async function fillDocument() { if (!contentData) return; let id = 0; + const promises: Array> = []; + const tagSet = new Set(); for (const slug of Object.keys(contentData)) { const fileData = contentData[slug]; if (!fileData) continue; idDataMap[id] = slug; - await index.addAsync(id, { - id: id, - slug: slug, - title: fileData.title || "", - content: fileData.content || "", - tags: fileData.tags || [], - }); + for (const tag of fileData.tags || []) tagSet.add(tag); + promises.push( + index.addAsync(id, { + id: id, + slug: slug, + title: fileData.title || "", + content: fileData.content || "", + tags: fileData.tags || [], + }), + ); id++; } + await Promise.all(promises); + allTags = [...tagSet].sort(); } async function fetchContentIndex(): Promise> { diff --git a/src/components/styles/search.scss b/src/components/styles/search.scss index b859a50..422e7d2 100644 --- a/src/components/styles/search.scss +++ b/src/components/styles/search.scss @@ -47,7 +47,7 @@ .search > .search-container { position: fixed; contain: layout; - z-index: 999; + z-index: var(--search-z-index, 999); left: 0; top: 0; width: 100vw; @@ -74,7 +74,7 @@ } } -.search > .search-container > .search-space > * { +.search > .search-container > .search-space > *:not(.ghost-text):not(.tag-suggestions) { width: 100%; border-radius: 7px; background: var(--light); @@ -152,6 +152,7 @@ .search > .search-container > .search-space > .search-layout[data-preview] > .results-container { width: 100%; height: auto; + max-height: 60vh; flex: 0 0 100%; } } @@ -311,3 +312,61 @@ .result-card.no-match { cursor: default; } + +.search > .search-container > .search-space { + position: relative; +} + +.search > .search-container > .search-space > .ghost-text { + position: absolute; + top: 0; + left: 0; + right: 0; + pointer-events: none; + box-sizing: border-box; + padding: 0.5em 1em; + font-family: var(--bodyFont); + font-size: 1.1em; + color: var(--gray); + opacity: 0.6; + white-space: pre; + overflow: hidden; + height: auto; + line-height: normal; + border: 1px solid transparent; +} + +.search > .search-container > .search-space > .tag-suggestions { + position: absolute; + top: calc(2.1em + 1em + 2px); + left: 0; + right: 0; + z-index: calc(var(--search-z-index, 999) + 1); + background: var(--light); + border: 1px solid var(--lightgray); + border-radius: 5px; + box-shadow: + 0 4px 12px rgba(27, 33, 48, 0.1), + 0 2px 6px rgba(27, 33, 48, 0.08); + max-height: 240px; + overflow-y: auto; +} + +.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item { + padding: 0.4em 1em; + cursor: pointer; + font-family: var(--bodyFont); + font-size: 0.95em; + color: var(--dark); + transition: background 0.15s ease; +} + +.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item:hover, +.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item.active { + background: var(--lightgray); +} + +.search > .search-container > .search-space > .tag-suggestions > .tag-suggestion-item.active { + color: var(--secondary); + font-weight: 600; +} diff --git a/src/i18n/locales/de-DE.ts b/src/i18n/locales/de-DE.ts index 757ecd5..bc51c90 100644 --- a/src/i18n/locales/de-DE.ts +++ b/src/i18n/locales/de-DE.ts @@ -2,7 +2,11 @@ export default { components: { search: { title: "Suche", - searchBarPlaceholder: "Suche nach etwas", + searchBarPlaceholder: "Suche nach etwas...", + noResults: "Keine Ergebnisse.", + noResultsHint: "Versuchen Sie einen anderen Suchbegriff?", + tagFilterHint: "Nach Tag filtern", + noTagsFound: "Keine passenden Tags", }, }, }; diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts index feb05ea..2fede40 100644 --- a/src/i18n/locales/en-US.ts +++ b/src/i18n/locales/en-US.ts @@ -2,7 +2,11 @@ export default { components: { search: { title: "Search", - searchBarPlaceholder: "Search for something", + searchBarPlaceholder: "Search for something...", + noResults: "No results.", + noResultsHint: "Try another search term?", + tagFilterHint: "Filter by tag", + noTagsFound: "No matching tags", }, }, }; diff --git a/src/i18n/locales/es-ES.ts b/src/i18n/locales/es-ES.ts index 4c81190..9468aa4 100644 --- a/src/i18n/locales/es-ES.ts +++ b/src/i18n/locales/es-ES.ts @@ -2,7 +2,11 @@ export default { components: { search: { title: "Buscar", - searchBarPlaceholder: "Buscar algo", + searchBarPlaceholder: "Buscar algo...", + noResults: "Sin resultados.", + noResultsHint: "\u00bfIntentar con otro t\u00e9rmino de b\u00fasqueda?", + tagFilterHint: "Filtrar por etiqueta", + noTagsFound: "No se encontraron etiquetas", }, }, }; diff --git a/src/i18n/locales/fr-FR.ts b/src/i18n/locales/fr-FR.ts index 6d2671b..c51ec95 100644 --- a/src/i18n/locales/fr-FR.ts +++ b/src/i18n/locales/fr-FR.ts @@ -2,7 +2,11 @@ export default { components: { search: { title: "Recherche", - searchBarPlaceholder: "Rechercher quelque chose", + searchBarPlaceholder: "Rechercher quelque chose...", + noResults: "Aucun r\u00e9sultat.", + noResultsHint: "Essayez un autre terme de recherche\u00a0?", + tagFilterHint: "Filtrer par tag", + noTagsFound: "Aucun tag correspondant", }, }, }; diff --git a/src/i18n/locales/ja-JP.ts b/src/i18n/locales/ja-JP.ts index de398a6..0765b3b 100644 --- a/src/i18n/locales/ja-JP.ts +++ b/src/i18n/locales/ja-JP.ts @@ -1,8 +1,13 @@ export default { components: { search: { - title: "検索", - searchBarPlaceholder: "何かを検索", + title: "\u691c\u7d22", + searchBarPlaceholder: "\u4f55\u304b\u3092\u691c\u7d22...", + noResults: "\u7d50\u679c\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002", + noResultsHint: + "\u5225\u306e\u691c\u7d22\u8a9e\u3092\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002", + tagFilterHint: "\u30bf\u30b0\u3067\u30d5\u30a3\u30eb\u30bf\u30fc", + noTagsFound: "\u4e00\u81f4\u3059\u308b\u30bf\u30b0\u304c\u3042\u308a\u307e\u305b\u3093", }, }, }; diff --git a/src/i18n/locales/zh-CN.ts b/src/i18n/locales/zh-CN.ts index 557a9ed..a9c33de 100644 --- a/src/i18n/locales/zh-CN.ts +++ b/src/i18n/locales/zh-CN.ts @@ -1,8 +1,12 @@ export default { components: { search: { - title: "搜索", - searchBarPlaceholder: "搜索内容", + title: "\u641c\u7d22", + searchBarPlaceholder: "\u641c\u7d22\u5185\u5bb9...", + noResults: "\u6ca1\u6709\u7ed3\u679c\u3002", + noResultsHint: "\u8bf7\u5c1d\u8bd5\u5176\u4ed6\u641c\u7d22\u8bcd\u3002", + tagFilterHint: "\u6309\u6807\u7b7e\u7b5b\u9009", + noTagsFound: "\u6ca1\u6709\u5339\u914d\u7684\u6807\u7b7e", }, }, }; diff --git a/src/index.ts b/src/index.ts index 10edefb..71acedc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,2 +1,2 @@ export { default as Search } from "./components/Search"; -export type { SearchOptions } from "./components/Search"; +export type { SearchOptions, SearchField } from "./components/Search";