diff --git a/CHANGELOG.md b/CHANGELOG.md index 107fdb2..3119588 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.2 + +- Cleanup + ## 0.1.1 - Cleanup diff --git a/Documentation/assets/custom.css b/Documentation/assets/custom.css index 1866722..457eb28 100644 --- a/Documentation/assets/custom.css +++ b/Documentation/assets/custom.css @@ -3,11 +3,11 @@ --dark-color-background-secondary: #000; --dark-code-background: #040404; --color-accent: #2463eb; - --light-hl-0: #ffdd00; - --light-hl-1: #ff66ff; - --light-hl-2: #ff4444; - --light-hl-3: #44ffff; - --light-hl-4: #44ff44; + --light-hl-0: #b58900; + --light-hl-1: #d33682; + --light-hl-2: #dc322f; + --light-hl-3: #2aa198; + --light-hl-4: #859900; --dark-hl-0: #ffdd00; --dark-hl-1: #ff66ff; --dark-hl-2: #ff4444; diff --git a/Documentation/assets/icons.js b/Documentation/assets/icons.js index b79c9e8..e88e8ca 100644 --- a/Documentation/assets/icons.js +++ b/Documentation/assets/icons.js @@ -1,15 +1,18 @@ -(function(svg) { - svg.innerHTML = ``; - svg.style.display = 'none'; - if (location.protocol === 'file:') { - if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', updateUseElements); - else updateUseElements() - function updateUseElements() { - document.querySelectorAll('use').forEach(el => { - if (el.getAttribute('href').includes('#icon-')) { - el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#')); - } - }); - } +(function() { + addIcons(); + function addIcons() { + if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); + const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); + svg.innerHTML = `""`; + svg.style.display = "none"; + if (location.protocol === "file:") updateUseElements(); } -})(document.body.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))) \ No newline at end of file + + function updateUseElements() { + document.querySelectorAll("use").forEach(el => { + if (el.getAttribute("href").includes("#icon-")) { + el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); + } + }); + } +})() \ No newline at end of file diff --git a/Documentation/assets/icons.svg b/Documentation/assets/icons.svg index 7dead61..e371b8b 100644 --- a/Documentation/assets/icons.svg +++ b/Documentation/assets/icons.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/Documentation/assets/main.js b/Documentation/assets/main.js index d6f1388..3572881 100644 --- a/Documentation/assets/main.js +++ b/Documentation/assets/main.js @@ -1,8 +1,9 @@ "use strict"; -"use strict";(()=>{var Ce=Object.create;var ne=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Ce(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),y=s.str.charAt(1),p;y in s.node.edges?p=s.node.edges[y]:(p=new t.TokenSet,s.node.edges[y]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(console.log("Show page"),document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){console.log("Scorlling");let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!e.checkVisibility()){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ve(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ne(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ve(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${ce(l.parent,i)}.${d}`);let y=document.createElement("li");y.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,y.append(p),e.appendChild(y)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ne(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var He={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>He[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",fe="mousemove",H="mouseup",J={x:0,y:0},pe=!1,ee=!1,Be=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",fe="touchmove",H="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ee=!1});document.addEventListener("click",t=>{pe&&(t.preventDefault(),t.stopImmediatePropagation(),pe=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(H,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(H,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ye=document.head.appendChild(document.createElement("style"));ye.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ye.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ve(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ve(t.value)})}function ve(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings."}; +"use strict";(()=>{var Pe=Object.create;var ie=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Me.call(t,i)&&i!==n&&ie(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var Ae=(t,e,n)=>(n=t!=null?Pe(Re(t)):{},De(e||!t||!t.__esModule?ie(n,"default",{value:t,enumerable:!0}):n,t));var ue=Fe((ae,le)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ae=="object"?le.exports=n():e.lunr=n()}(this,function(){return t})})()});var se=[];function G(t,e){se.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){se.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!Ve(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function Ve(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var oe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var pe=Ae(ue());async function ce(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=pe.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{ce(e,t)}),ce(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{te(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),He(t,i,r,e)}function He(t,e,n,r){n.addEventListener("input",oe(()=>{Ne(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Be(e,t):i.key=="ArrowUp"?(de(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(de(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),te(t))})}function te(t){t.classList.remove("has-focus")}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=he(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${he(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Be(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),te(e)}}function he(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ee(t.substring(s,o)),`${ee(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var je={"&":"&","<":"<",">":">","'":"'",'"':"""};function ee(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",N="mouseup",J={x:0,y:0},me=!1,ne=!1,qe=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(qe=!0,F="touchstart",ye="touchmove",N="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(N,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});fe();we();})(); /*! Bundled license information: lunr/lunr.js: diff --git a/Documentation/assets/search.js b/Documentation/assets/search.js index c57cda5..231ca6d 100644 --- a/Documentation/assets/search.js +++ b/Documentation/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,H4sIAAAAAAAACs1YXY/jJhT9LzxTjwF/5rHVrLSVtq20Ul+iqPI4ZIatY1vYns4oyn+vADOGhJvJpiN1n3wDl8PhcC7YOSDZ/TOg1fqA/hbtFq0oRm2152iF7r/+PIlmizCaZINWaN9tp4YPd3N79DTuG4RR3VTDwAe0QuiILQqDYZ4rKaoHFwgGxKivJG9HB2aZY5ni16+//3ZGUzVe5EjT7A3hcztyuatq/gYjbMuM9JZxmaamEuL4STT8jKNq/BiOGulKjppKiOP9C6/Pt/uF1x/DUSNdyVFTCXEMe/J9R17N0kBdSRP25BcuH883XLde5JklbxB7D2I3tfUoutaC7AEoh53hEMT2SmaB1lYHKgd2uYO7c22+4Gp77sJuh53p4HLXmguuthQPOxR2k4N7H8adD6Z3gU/330H+AuyegYaMcAHbOVP/ED0PHKgGWnXejPzLJHUSBD7336zKg1e+p6ro3p/IzewfgJvGQb8Ke4ORaLf8Ba0O6JnLQXQtWiEasahEGO0Eb7bqzjTTYlR3+70av5n7/uT12EmVYVLuYoTXMaYkypNis8FrO0J36AadRqA04qVRhNcEkzQqci+LelkM4TUNZDEzOmJFghmOozxNcILjqGQFTuff2fw7xyQiBcUFjqO0SHE5/yYxjqMsY5iQeQShtovZILFBaoKFWqIoxJjQiJTUI5d4S0iBJah2kmEaZQXBJLdBYYJlfKbyytA8mTdPDsyj2tVyWJZriQpGtURZqhVK49QoE6dKCBLFOcWkVC05xVRpVGQUU2IDagNmg8QGqQ0yG+Q2KGxQmmDhXSh+MSZFxArmMS+89ZXA+lS73vp83vI80QtST7U/EYkZZmplZVZgRm3ATOAYV/mYJSEm5MTiBM70XU4gm9uO/9PBhIEWNl1XuJMkoD1114/sPJLC3NMfnXsGW9A/F4g+AFJMs6hIMz8z9zN1KWbBTL8WSQkWLfmweqQxOAk19ahvuGcuR779bG669RpVCB/QX/PN9/a6fDguN9zqgJhpyc2jNA9C52cyP9P5qfuPR8Wgal14GgP4eQjJImxdCEKuohjmNiMOr239JLu2mwaPHQR9gd2D6NTbgMMPktCKw5zB5s1lGcwWfVDhiokRjfU4F9KA1E8nILT4/mWorBOhKbsFph31i6SjR3p5v8xGzcPte6ijyCInIgUgAR/OlHSEjOeJoMH6Y8AhXC5Ds+BSr1VDIU8j9z1Gv19V83nlMHQWl3iuCgl8WqxOcdo3cRc8+egTQDy2nfT559eXiFi+2h0Rl/XPtNJzdoGtFt5WvGPMKw4SMXqABKqYgNW/Db7sy9GDqJf9HlAj2vFumIZe1KKbhru24y99I2oxVu2rNwN0LARUb7pH37WQKy64dv4jwynlxCllW5RkfmbAlnU7jwfknAs8+koO3L9C3vG4K29fjSOXracGg/bZVoXj/l5/tDtjU0eEHFh0L7uaD/4OlDes3MD4BxCDDqAAecmrrTcYIhEQTvJe8oG3fokw6IoNzj5OJ8oTiHyAwDBuuZSehtDVfEHDYdx2k3cjUejcuIAyPlUeBlSKNx+y45Pvsv98tI2vPR9qKXqPN1R+p/JvsDZ+I1qOVuvN8fgvK2lhHHIYAAA="; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,H4sIAAAAAAAACtVY227jNhD9Fz6ziobU1Y8tUmALbFtggb4YRqHIdKKtLRm6pAmM/HtBSow4lsbWJinafdKI1BwezuWI0onV1d8NW61P7K+i3LKV4KzMDoqt2O2XH7tiv2WcdfWerdih2nZ71dwM495De9gzzvJ91jSqYSvGXrhFkTTMY1YX2Z0LRANydsxqVbYOzLjGuMQvX377dUJTD17kKMLoFeFT2ap6l+XqFaawIwPS6xOXaRoqcxx/LvZqwlEPfgxHg7SQo6Eyx/H2SeXTdD+p/GM4GqSFHA2VOY7zNXm9Ihez7KEW0qRr8rOq76cJN6MXeUbBK8QBQey6Mm+LqrQgBwLKYddzmMVGLTNCm1InOoeucgd355b5iGvKczdf7XRlOrjKLc0R15SUmq9Qupoc3Nt53EGYrgKf599B/kxkr4emCuECtqOpvxdHNSOoPbSefDPyT11tHqLAh/k3R+UOte95VMzsD/Bm9nfEm8ZBX4S94awot+qJrU7sUdVNUZVsxYQnvZRxtivUfqvfmf2ynOXV4dAHbVvlnTE3w2N/qLytav1w//SNz/ja5wK8OEg2G762zmbCDFiMccQ4AuUIE0dAjoLxNXAIvSRGfmLiJ5CfZHwtZvxkj+fJJOCS+14cBjzgvpfKhIfDfTTcxxw8SARPuO+FScjT4R587ntRJDnA4AHCTklrBNYIewOTlYhsoEn5HIQHqUB0g8k2A+QZEtvU4xBx4UUJcIitkfQGRgwRYqQ90zku0YRLhDxjgose12GRUWxCnUhhQh2FJtKhH/YR9kMdUPD8WHBI9UgsuNCxTiLBBVhDWENaI7BGaI3IGrE1EmukvYF3EqOdJJqxzyHxZCLRXpJJDBLkmRIx0OOmzOKhvOLAbFpfdeY98CWXevdplHAprCF7Ay+Z4tbSnSaDObYwbUs460ugnWdaE/cmUM1pJ/7rLgOsCSDJPuunFjYM4O6FgGwZM/V/r33AkgIhvZ3we9gO1jOI6AqfKhpgSQOjXSEXkZeEEXaOp85YRcDISDTrPNURwEICKalB8KFiAlhNhE+uK6ZqMgyZE8ejqlu1/dSfPNZrljF+Yn8OJ5HXz5fTy3jiWJ2Y7Efi/pL2FxDDNRiu4XA18y/OQUXfakJZ6S4mfGK1eA53Hm/rAgIsoj/Pexa/eS7zh7oqq65BzKmFFjO/Kyp9qnO4U6G3QZUkVH8eHaHkGFeWuCnhTPgDyrjAHGT+cAYpkvduWPucpUvI94OWrTkTO3EML9dAn/xZMPtV4kRyTAqDZFHoVDPJh5MOfyCxDMp8NjpbS0egiAjRW6Ko1+lahStcvDc3/Ue6w94Jg3WWU9ZyXmJISbFfd+5Swb+rYsV9WdV4b/Fbm7cY/xI5wR8jNVAOp8yvlk+BEnqlLb5ZGosWwQPVy1fb7muDkzdKKxNnvt8Cuy/K9qbpmmORF1XX3JSVejrui7xos/IZrUdJ29Xc7at73DNU3S3umeFnnCNAgSNAVjxguEaLyqDaIY5UpS7meMzqRuHX7pV+o5N0zNpW1SWKoqQqyfYr2ZdH88PKQQqd4MWLgnWsq1w1OKvpuyPWg2KBlZTAXt1mrbItgqIIXg1/rY61alSJW1lSh5sFzNruLJtAbfMquabdqrpGmaCOSIsz0bTbqkNveEHp4mLM9iFDiJScfNDLp33ANf7Bst4+H1WT18UR7YkSjctJ3HDTkvuiVGy13ry8/APz/sGwCBwAAA=="; \ No newline at end of file diff --git a/Documentation/assets/style.css b/Documentation/assets/style.css index 778b949..9d619a6 100644 --- a/Documentation/assets/style.css +++ b/Documentation/assets/style.css @@ -10,6 +10,7 @@ --light-color-text: #222; --light-color-text-aside: #6e6e6e; --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; --light-color-ts-keyword: #056bd6; --light-color-ts-project: #b111c9; @@ -35,6 +36,7 @@ --light-color-ts-set-signature: var(--light-color-ts-accessor); --light-color-ts-type-alias: #d51270; /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; --light-external-icon: url("data:image/svg+xml;utf8,"); --light-color-scheme: light; @@ -50,6 +52,7 @@ --dark-color-text: #f5f5f5; --dark-color-text-aside: #dddddd; --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; --dark-color-ts-keyword: #3399ff; --dark-color-ts-project: #e358ff; @@ -75,6 +78,7 @@ --dark-color-ts-set-signature: var(--dark-color-ts-accessor); --dark-color-ts-type-alias: #ff6492; /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; --dark-external-icon: url("data:image/svg+xml;utf8,"); --dark-color-scheme: dark; @@ -92,6 +96,7 @@ --color-text: var(--light-color-text); --color-text-aside: var(--light-color-text-aside); --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); --color-ts-keyword: var(--light-color-ts-keyword); --color-ts-module: var(--light-color-ts-module); @@ -116,6 +121,7 @@ --color-ts-get-signature: var(--light-color-ts-get-signature); --color-ts-set-signature: var(--light-color-ts-set-signature); --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); --external-icon: var(--light-external-icon); --color-scheme: var(--light-color-scheme); @@ -134,6 +140,7 @@ --color-text: var(--dark-color-text); --color-text-aside: var(--dark-color-text-aside); --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); --color-ts-keyword: var(--dark-color-ts-keyword); --color-ts-module: var(--dark-color-ts-module); @@ -158,6 +165,7 @@ --color-ts-get-signature: var(--dark-color-ts-get-signature); --color-ts-set-signature: var(--dark-color-ts-set-signature); --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); --external-icon: var(--dark-external-icon); --color-scheme: var(--dark-color-scheme); @@ -183,6 +191,7 @@ body { --color-text: var(--light-color-text); --color-text-aside: var(--light-color-text-aside); --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); --color-ts-keyword: var(--light-color-ts-keyword); --color-ts-module: var(--light-color-ts-module); @@ -207,6 +216,7 @@ body { --color-ts-get-signature: var(--light-color-ts-get-signature); --color-ts-set-signature: var(--light-color-ts-set-signature); --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); --external-icon: var(--light-external-icon); --color-scheme: var(--light-color-scheme); @@ -223,6 +233,7 @@ body { --color-text: var(--dark-color-text); --color-text-aside: var(--dark-color-text-aside); --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); --color-ts-keyword: var(--dark-color-ts-keyword); --color-ts-module: var(--dark-color-ts-module); @@ -247,11 +258,17 @@ body { --color-ts-get-signature: var(--dark-color-ts-get-signature); --color-ts-set-signature: var(--dark-color-ts-set-signature); --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); --external-icon: var(--dark-external-icon); --color-scheme: var(--dark-color-scheme); } +*:focus-visible, +.tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); +} + .always-visible, .always-visible .tsd-signatures { display: inherit !important; @@ -266,16 +283,6 @@ h6 { line-height: 1.2; } -h1 > a:not(.link), -h2 > a:not(.link), -h3 > a:not(.link), -h4 > a:not(.link), -h5 > a:not(.link), -h6 > a:not(.link) { - text-decoration: none; - color: var(--color-text); -} - h1 { font-size: 1.875rem; margin: 0.67rem 0; @@ -306,10 +313,6 @@ h6 { margin: 2.33rem 0; } -.uppercase { - text-transform: uppercase; -} - dl, menu, ol, @@ -333,7 +336,7 @@ footer { padding-bottom: 1rem; max-height: 3.5rem; } -.tsd-generator { +footer > p { margin: 0 1em; } @@ -421,6 +424,9 @@ a.external[target="_blank"] { background-repeat: no-repeat; padding-right: 13px; } +a.tsd-anchor-link { + color: var(--color-text); +} code, pre { @@ -580,13 +586,13 @@ dl.tsd-comment-tag-group p { } .tsd-filter-input { display: flex; - width: fit-content; width: -moz-fit-content; + width: fit-content; align-items: center; - user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; + user-select: none; cursor: pointer; } .tsd-filter-input input[type="checkbox"] { @@ -609,11 +615,8 @@ dl.tsd-comment-tag-group p { Don't remove unless you know what you're doing. */ opacity: 0.99; } -.tsd-filter-input input[type="checkbox"]:focus + svg { - transform: scale(0.95); -} -.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { - transform: scale(1); +.tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); } .tsd-checkbox-background { fill: var(--color-accent); @@ -630,13 +633,18 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { stroke: var(--color-accent); } -.tsd-theme-toggle { - padding-top: 0.75rem; +.settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; } -.tsd-theme-toggle > h4 { - display: inline; - vertical-align: middle; - margin-right: 0.75rem; + +.tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; +} + +.tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; } .tsd-hierarchy { @@ -769,6 +777,9 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { padding: 0; max-width: 100%; } +.tsd-navigation .tsd-nav-link { + display: none; +} .tsd-nested-navigation { margin-left: 3rem; } @@ -782,6 +793,15 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { margin-left: -1.5rem; } +.tsd-page-navigation-section { + margin-left: 10px; +} +.tsd-page-navigation-section > summary { + padding: 0.25rem; +} +.tsd-page-navigation-section > div { + margin-left: 20px; +} .tsd-page-navigation ul { padding-left: 1.75rem; } @@ -812,10 +832,10 @@ a.tsd-index-link { } .tsd-accordion-summary, .tsd-accordion-summary a { - user-select: none; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; + user-select: none; cursor: pointer; } @@ -828,8 +848,9 @@ a.tsd-index-link { padding-top: 0; padding-bottom: 0; } -.tsd-index-accordion .tsd-accordion-summary > svg { +.tsd-accordion .tsd-accordion-summary > svg { margin-left: 0.25rem; + vertical-align: text-top; } .tsd-index-content > :not(:first-child) { margin-top: 0.75rem; @@ -877,7 +898,7 @@ a.tsd-index-link { } .tsd-panel-group { - margin: 4rem 0; + margin: 2rem 0; } .tsd-panel-group.tsd-index-group { margin: 2rem 0; @@ -885,6 +906,9 @@ a.tsd-index-link { .tsd-panel-group.tsd-index-group details { margin: 2rem 0; } +.tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; +} #tsd-search { transition: background-color 0.2s; @@ -1034,6 +1058,12 @@ a.tsd-index-link { border-width: 1px 0; transition: background-color 0.1s; } +.tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; +} +.tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; +} .tsd-description .tsd-signatures .tsd-signature { border-width: 1px; } @@ -1347,6 +1377,12 @@ img { .has-menu .tsd-navigation { max-height: 100%; } + #tsd-toolbar-links { + display: none; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } } /* one sidebar */ diff --git a/Documentation/functions/Build.Exec.html b/Documentation/functions/Build.Exec.html index 68df9af..e090a8a 100644 --- a/Documentation/functions/Build.Exec.html +++ b/Documentation/functions/Build.Exec.html @@ -1,10 +1,10 @@ -Exec | @playform/build - v0.1.1
  • The 'Exec' function is an asynchronous function that executes a command and logs the +Exec | @playform/build - v0.1.2

    • The 'Exec' function is an asynchronous function that executes a command and logs the stdout and stderr of the child process.

      -

      Parameters

      • Command: string

        The 'Command' parameter is a string that represents the +

        Parameters

        • Command: string

          The 'Command' parameter is a string that represents the command you want to execute. It can be any valid command that can be executed in a terminal or command prompt.

          -
        • Optional Echo: false | ((Return) => void)

          An optional parameter that controls whether the stdout and stderr -of the child process should be logged. If set to 'false', no logging will occur. If set +

        • OptionalEcho: false | ((Return: any, _Error?: boolean) => Promise<void>)

          An optional parameter that controls whether the stdout and stderr +of the child process should be logged. If set to 'false', no logging will occur. If set to a function, the function will be called with the stdout and stderr data as a parameter for custom logging. If not provided, stdout and stderr will be logged to the console by default.

          -

        Returns Promise<void>

    \ No newline at end of file +

Returns Promise<void>

diff --git a/Documentation/functions/Build.Merge.html b/Documentation/functions/Build.Merge.html index e4217e7..ce9cea2 100644 --- a/Documentation/functions/Build.Merge.html +++ b/Documentation/functions/Build.Merge.html @@ -1 +1 @@ -Merge | @playform/build - v0.1.1
  • Type Parameters

    • Ts extends readonly unknown[]

    Parameters

    • Rest ...objects: Ts

    Returns DeepMergeHKT<Ts, Readonly<{
        DeepMergeArraysURI: "DeepMergeArraysDefaultURI";
        DeepMergeFilterValuesURI: "DeepMergeFilterValuesDefaultURI";
        DeepMergeMapsURI: "DeepMergeMapsDefaultURI";
        DeepMergeOthersURI: "DeepMergeLeafURI";
        DeepMergeRecordsURI: "DeepMergeRecordsDefaultURI";
        DeepMergeSetsURI: "DeepMergeSetsDefaultURI";
    }>, Readonly<{
        key: PropertyKey;
        parents: readonly Readonly<Record<PropertyKey, unknown>>[];
    }>>

\ No newline at end of file +Merge | @playform/build - v0.1.2
  • Type Parameters

    • Ts extends readonly unknown[]

    Parameters

    • Rest...objects: Ts

    Returns DeepMergeHKT<Ts, Readonly<{
        DeepMergeArraysURI: "DeepMergeArraysDefaultURI";
        DeepMergeFilterValuesURI: "DeepMergeFilterValuesDefaultURI";
        DeepMergeMapsURI: "DeepMergeMapsDefaultURI";
        DeepMergeOthersURI: "DeepMergeLeafURI";
        DeepMergeRecordsURI: "DeepMergeRecordsDefaultURI";
        DeepMergeSetsURI: "DeepMergeSetsDefaultURI";
    }>, Readonly<{
        key: PropertyKey;
        parents: readonly Readonly<Record<PropertyKey, unknown>>[];
    }>>

diff --git a/Documentation/functions/Build.build-1.html b/Documentation/functions/Build.build-1.html index 2849524..e7472dc 100644 --- a/Documentation/functions/Build.build-1.html +++ b/Documentation/functions/Build.build-1.html @@ -1,6 +1,6 @@ -build | @playform/build - v0.1.1
  • Represents a function that processes file patterns.

    +build | @playform/build - v0.1.2
    • Represents a function that processes file patterns.

      Parameters

      • File: string[]

        An array of file patterns to be processed. Each pattern can include wildcards (*) to match multiple files.

        -
      • Optional Option: {
            ESBuild?: string;
            TypeScript?: string;
            Watch?: boolean;
        }

        An optional object that can contain two properties.

        -
        • Optional ESBuild?: string

          A string representing the ESBuild option.

          -
        • Optional TypeScript?: string

          A string representing the TypeScript option.

          -
        • Optional Watch?: boolean

      Returns Promise<void>

    \ No newline at end of file +
  • OptionalOption: {
        ESBuild?: string;
        TypeScript?: string;
        Watch?: boolean;
    }

    An optional object that can contain two properties.

    +
    • OptionalESBuild?: string

      A string representing the ESBuild option.

      +
    • OptionalTypeScript?: string

      A string representing the TypeScript option.

      +
    • OptionalWatch?: boolean

Returns Promise<void>

diff --git a/Documentation/functions/Exec.exec.html b/Documentation/functions/Exec.exec.html index 09edecb..9e6b659 100644 --- a/Documentation/functions/Exec.exec.html +++ b/Documentation/functions/Exec.exec.html @@ -1,10 +1,10 @@ -exec | @playform/build - v0.1.1
  • The 'Exec' function is an asynchronous function that executes a command and logs the +exec | @playform/build - v0.1.2

    • The 'Exec' function is an asynchronous function that executes a command and logs the stdout and stderr of the child process.

      -

      Parameters

      • Command: string

        The 'Command' parameter is a string that represents the +

        Parameters

        • Command: string

          The 'Command' parameter is a string that represents the command you want to execute. It can be any valid command that can be executed in a terminal or command prompt.

          -
        • Optional Echo: false | ((Return) => void)

          An optional parameter that controls whether the stdout and stderr -of the child process should be logged. If set to 'false', no logging will occur. If set +

        • OptionalEcho: false | ((Return: any, _Error?: boolean) => Promise<void>)

          An optional parameter that controls whether the stdout and stderr +of the child process should be logged. If set to 'false', no logging will occur. If set to a function, the function will be called with the stdout and stderr data as a parameter for custom logging. If not provided, stdout and stderr will be logged to the console by default.

          -

        Returns Promise<void>

    \ No newline at end of file +

Returns Promise<void>

diff --git a/Documentation/functions/File.file.html b/Documentation/functions/File.file.html index 68bc41a..df25235 100644 --- a/Documentation/functions/File.file.html +++ b/Documentation/functions/File.file.html @@ -1,2 +1,2 @@ -file | @playform/build - v0.1.1
\ No newline at end of file +file | @playform/build - v0.1.2
diff --git a/Documentation/functions/JSON.JSON.html b/Documentation/functions/JSON.JSON.html index 4003de4..2ff0f19 100644 --- a/Documentation/functions/JSON.JSON.html +++ b/Documentation/functions/JSON.JSON.html @@ -1,9 +1,9 @@ -JSON | @playform/build - v0.1.1
  • The function 'JSON' is a TypeScript function that reads a JSON file and returns its +JSON | @playform/build - v0.1.2

    • The function 'JSON' is a TypeScript function that reads a JSON file and returns its parsed content.

      Parameters

      • File: string

        The File parameter is a string that represents the name or path of the JSON file that you want to parse.

        -
      • Optional From: string

        The From parameter is an optional string that represents +

      • OptionalFrom: string

        The From parameter is an optional string that represents the directory path from which the JSON file should be loaded. If From is provided, it will be used as the base directory path. If From is not provided, the current directory will be used as the base directory path.

        -

      Returns Promise<any>

    \ No newline at end of file +

Returns Promise<any>

diff --git a/Documentation/functions/Merge.merge.html b/Documentation/functions/Merge.merge.html index 169cdcf..b293024 100644 --- a/Documentation/functions/Merge.merge.html +++ b/Documentation/functions/Merge.merge.html @@ -1 +1 @@ -merge | @playform/build - v0.1.1
  • Type Parameters

    • Ts extends readonly unknown[]

    Parameters

    • Rest ...objects: Ts

    Returns DeepMergeHKT<Ts, Readonly<{
        DeepMergeArraysURI: "DeepMergeArraysDefaultURI";
        DeepMergeFilterValuesURI: "DeepMergeFilterValuesDefaultURI";
        DeepMergeMapsURI: "DeepMergeMapsDefaultURI";
        DeepMergeOthersURI: "DeepMergeLeafURI";
        DeepMergeRecordsURI: "DeepMergeRecordsDefaultURI";
        DeepMergeSetsURI: "DeepMergeSetsDefaultURI";
    }>, Readonly<{
        key: PropertyKey;
        parents: readonly Readonly<Record<PropertyKey, unknown>>[];
    }>>

\ No newline at end of file +merge | @playform/build - v0.1.2
  • Type Parameters

    • Ts extends readonly unknown[]

    Parameters

    • Rest...objects: Ts

    Returns DeepMergeHKT<Ts, Readonly<{
        DeepMergeArraysURI: "DeepMergeArraysDefaultURI";
        DeepMergeFilterValuesURI: "DeepMergeFilterValuesDefaultURI";
        DeepMergeMapsURI: "DeepMergeMapsDefaultURI";
        DeepMergeOthersURI: "DeepMergeLeafURI";
        DeepMergeRecordsURI: "DeepMergeRecordsDefaultURI";
        DeepMergeSetsURI: "DeepMergeSetsDefaultURI";
    }>, Readonly<{
        key: PropertyKey;
        parents: readonly Readonly<Record<PropertyKey, unknown>>[];
    }>>

diff --git a/Documentation/index.html b/Documentation/index.html index 841d415..d307629 100644 --- a/Documentation/index.html +++ b/Documentation/index.html @@ -1,26 +1,33 @@ -@playform/build - v0.1.1

@playform/build - v0.1.1

🌀 Build —

Builds all your TypeScript files into JavaScript.

-

Installation

Add configuration and setup scripts:

-
npm install -D -E @playform/build
-
-

Usage

Through a command line run:

-
npx @playform/build 'Source/**/*.ts'
-
+@playform/build - v0.1.2

@playform/build - v0.1.2

🌀 Build —

Builds all your TypeScript files into JavaScript.

+

Add configuration and setup scripts:

+
npm install -D -E @playform/build
+
+ +

Through a command line run:

+
npx @playform/build 'Source/**/*.ts'
+
+

Help:

-
Usage: Build [options] <File...>

🌀 Build —

Arguments:
File 📝 File —

Options:
-V, --version output the version number
-ES, --ESBuild <File> 📜 ESBuild —
-TS, --TypeScript <File> 📜 TypeScript — (default: "tsconfig.json")
-W --Watch 👁️ Watch —
-h, --help display help for command -
-

or in a package.json file:

-
{
"scripts": {
"Run": "Build 'Source/**/*.ts' --Watch",
"prepublishOnly": "Build 'Source/**/*.ts'"
}
} -
-

📜 ESBuild Configuration

Or with a custom ESBuild config file:

+
Usage: Build [options] <File...>

🌀 Build —

Arguments:
File 📝 File —

Options:
-V, --version output the version number
-ES, --ESBuild <File> 📜 ESBuild —
-TS, --TypeScript <File> 📜 TypeScript — (default: "tsconfig.json")
-W --Watch 👁️ Watch —
-h, --help display help for command +
+ +

Or in a package.json file:

+
{
"scripts": {
"Run": "Build 'Source/**/*.ts' --Watch",
"prepublishOnly": "Build 'Source/**/*.ts'"
}
} +
+ +

Or with a custom ESBuild config file:

package.json

-
{
"scripts": {
"prepublishOnly": "Build 'Source/**/*.ts' --ESBuild ESBuild.ts"
}
} -
+
{
"scripts": {
"prepublishOnly": "Build 'Source/**/*.ts' --ESBuild ESBuild.ts"
}
} +
+

See an example of a configuration file in -ESBuild.ts

-

📜 TypeScript Configuration

tsconfig.json

-
{
"compilerOptions": {
"outDir": "Target"
},
"extends": "@playform/build/tsconfig",
"include": ["Source"]
} -
-

JSConfig Configuration (optional)

jsconfig.json

-
{
"compilerOptions": {
"outDir": "Target"
},
"extends": "@playform/build/jsconfig",
"include": ["Source"]
} -
-
\ No newline at end of file +ESBuild.ts

+

tsconfig.json

+
{
"compilerOptions": {
"outDir": "Target"
},
"extends": "@playform/build/tsconfig",
"include": ["Source"]
} +
+ +

jsconfig.json

+
{
"compilerOptions": {
"outDir": "Target"
},
"extends": "@playform/build/jsconfig",
"include": ["Source"]
} +
+ +
diff --git a/Documentation/interfaces/Build.Interface.html b/Documentation/interfaces/Build.Interface.html index cc1b1d4..ebe596e 100644 --- a/Documentation/interfaces/Build.Interface.html +++ b/Documentation/interfaces/Build.Interface.html @@ -1,6 +1,6 @@ -Interface | @playform/build - v0.1.1
interface Interface ((File, Option?) => Promise<void>)
  • Represents a function that processes file patterns.

    +Interface | @playform/build - v0.1.2
    • Represents a function that processes file patterns.

      Parameters

      • File: string[]

        An array of file patterns to be processed. Each pattern can include wildcards (*) to match multiple files.

        -
      • Optional Option: {
            ESBuild?: string;
            TypeScript?: string;
            Watch?: boolean;
        }

        An optional object that can contain two properties.

        -
        • Optional ESBuild?: string

          A string representing the ESBuild option.

          -
        • Optional TypeScript?: string

          A string representing the TypeScript option.

          -
        • Optional Watch?: boolean

      Returns Promise<void>

    \ No newline at end of file +
  • OptionalOption: {
        ESBuild?: string;
        TypeScript?: string;
        Watch?: boolean;
    }

    An optional object that can contain two properties.

    +
    • OptionalESBuild?: string

      A string representing the ESBuild option.

      +
    • OptionalTypeScript?: string

      A string representing the TypeScript option.

      +
    • OptionalWatch?: boolean

Returns Promise<void>

diff --git a/Documentation/interfaces/Exec.Interface.html b/Documentation/interfaces/Exec.Interface.html index ba4d39f..c631c6e 100644 --- a/Documentation/interfaces/Exec.Interface.html +++ b/Documentation/interfaces/Exec.Interface.html @@ -1,10 +1,10 @@ -Interface | @playform/build - v0.1.1

Interface Interface

interface Interface ((Command, Echo?) => Promise<void>)
  • The 'Exec' function is an asynchronous function that executes a command and logs the +Interface | @playform/build - v0.1.2

    Interface Interface

    • The 'Exec' function is an asynchronous function that executes a command and logs the stdout and stderr of the child process.

      -

      Parameters

      • Command: string

        The 'Command' parameter is a string that represents the +

        Parameters

        • Command: string

          The 'Command' parameter is a string that represents the command you want to execute. It can be any valid command that can be executed in a terminal or command prompt.

          -
        • Optional Echo: false | ((Return) => void)

          An optional parameter that controls whether the stdout and stderr -of the child process should be logged. If set to 'false', no logging will occur. If set +

        • OptionalEcho: false | ((Return: any, _Error?: boolean) => Promise<void>)

          An optional parameter that controls whether the stdout and stderr +of the child process should be logged. If set to 'false', no logging will occur. If set to a function, the function will be called with the stdout and stderr data as a parameter for custom logging. If not provided, stdout and stderr will be logged to the console by default.

          -

        Returns Promise<void>

    \ No newline at end of file +

Returns Promise<void>

diff --git a/Documentation/interfaces/File.Interface.html b/Documentation/interfaces/File.Interface.html index c79dfb5..655bd68 100644 --- a/Documentation/interfaces/File.Interface.html +++ b/Documentation/interfaces/File.Interface.html @@ -1,2 +1,2 @@ -Interface | @playform/build - v0.1.1

Interface Interface

interface Interface ((Path) => Promise<any>)
\ No newline at end of file +Interface | @playform/build - v0.1.2

Interface Interface

diff --git a/Documentation/interfaces/JSON.Interface.html b/Documentation/interfaces/JSON.Interface.html index d7173a6..e9469ca 100644 --- a/Documentation/interfaces/JSON.Interface.html +++ b/Documentation/interfaces/JSON.Interface.html @@ -1,9 +1,9 @@ -Interface | @playform/build - v0.1.1

Interface Interface

interface Interface ((File, From?) => Promise<any>)
  • The function 'JSON' is a TypeScript function that reads a JSON file and returns its +Interface | @playform/build - v0.1.2

    Interface Interface

    • The function 'JSON' is a TypeScript function that reads a JSON file and returns its parsed content.

      Parameters

      • File: string

        The File parameter is a string that represents the name or path of the JSON file that you want to parse.

        -
      • Optional From: string

        The From parameter is an optional string that represents +

      • OptionalFrom: string

        The From parameter is an optional string that represents the directory path from which the JSON file should be loaded. If From is provided, it will be used as the base directory path. If From is not provided, the current directory will be used as the base directory path.

        -

      Returns Promise<any>

    \ No newline at end of file +

Returns Promise<any>

diff --git a/Documentation/modules/Build.html b/Documentation/modules/Build.html index 3b26408..016fe35 100644 --- a/Documentation/modules/Build.html +++ b/Documentation/modules/Build.html @@ -1,8 +1,8 @@ -Build | @playform/build - v0.1.1

Index

Interfaces

Interface +Build | @playform/build - v0.1.2
\ No newline at end of file +
diff --git a/Documentation/modules/ESBuild.html b/Documentation/modules/ESBuild.html index b98ae7b..d01e824 100644 --- a/Documentation/modules/ESBuild.html +++ b/Documentation/modules/ESBuild.html @@ -1,2 +1,2 @@ -ESBuild | @playform/build - v0.1.1
\ No newline at end of file +ESBuild | @playform/build - v0.1.2
diff --git a/Documentation/modules/Exec.html b/Documentation/modules/Exec.html index d333086..b2be7d8 100644 --- a/Documentation/modules/Exec.html +++ b/Documentation/modules/Exec.html @@ -1,3 +1,3 @@ -Exec | @playform/build - v0.1.1

Index

Interfaces

Interface +Exec | @playform/build - v0.1.2
\ No newline at end of file +
diff --git a/Documentation/modules/File.html b/Documentation/modules/File.html index 6639503..5582cee 100644 --- a/Documentation/modules/File.html +++ b/Documentation/modules/File.html @@ -1,3 +1,3 @@ -File | @playform/build - v0.1.1

Index

Interfaces

Interface +File | @playform/build - v0.1.2
\ No newline at end of file +
diff --git a/Documentation/modules/JSON.html b/Documentation/modules/JSON.html index 22cd74d..54be54a 100644 --- a/Documentation/modules/JSON.html +++ b/Documentation/modules/JSON.html @@ -1,3 +1,3 @@ -JSON | @playform/build - v0.1.1

Index

Interfaces

Interface +JSON | @playform/build - v0.1.2
\ No newline at end of file +
diff --git a/Documentation/modules/Merge.html b/Documentation/modules/Merge.html index 0abf45f..b3b012e 100644 --- a/Documentation/modules/Merge.html +++ b/Documentation/modules/Merge.html @@ -1,2 +1,2 @@ -Merge | @playform/build - v0.1.1
\ No newline at end of file +Merge | @playform/build - v0.1.2
diff --git a/Documentation/variables/Build.Current.html b/Documentation/variables/Build.Current.html index 3a063f4..6f20f6c 100644 --- a/Documentation/variables/Build.Current.html +++ b/Documentation/variables/Build.Current.html @@ -1 +1 @@ -Current | @playform/build - v0.1.1
\ No newline at end of file +Current | @playform/build - v0.1.2
diff --git a/Documentation/variables/Build.Pipe.html b/Documentation/variables/Build.Pipe.html index 9fdb616..caa984d 100644 --- a/Documentation/variables/Build.Pipe.html +++ b/Documentation/variables/Build.Pipe.html @@ -1 +1 @@ -Pipe | @playform/build - v0.1.1
\ No newline at end of file +Pipe | @playform/build - v0.1.2
diff --git a/Documentation/variables/Build.build.html b/Documentation/variables/Build.build.html index c412189..e3daa4d 100644 --- a/Documentation/variables/Build.build.html +++ b/Documentation/variables/Build.build.html @@ -1 +1 @@ -build | @playform/build - v0.1.1
\ No newline at end of file +build | @playform/build - v0.1.2
diff --git a/Documentation/variables/ESBuild.ESBuild.html b/Documentation/variables/ESBuild.ESBuild.html index 396f7b8..8a3eedf 100644 --- a/Documentation/variables/ESBuild.ESBuild.html +++ b/Documentation/variables/ESBuild.ESBuild.html @@ -1 +1 @@ -ESBuild | @playform/build - v0.1.1
\ No newline at end of file +ESBuild | @playform/build - v0.1.2
diff --git a/Source/Function/Exec.ts b/Source/Function/Exec.ts index 6f79df2..966d954 100644 --- a/Source/Function/Exec.ts +++ b/Source/Function/Exec.ts @@ -3,7 +3,10 @@ * */ export default (async ( - ...[Command, Echo = (Return) => console.log(Return)]: Parameters + ...[ + Command, + Echo = async (Return) => console.log(Return), + ]: Parameters ) => { try { const { stdout, stderr } = (await import("child_process")).exec( @@ -11,8 +14,8 @@ export default (async ( ); if (typeof Echo === "function") { - stdout?.on("data", (Data) => Echo(Data)); - stderr?.on("data", (Data) => Echo(Data)); + stdout?.on("data", async (Data) => await Echo(Data.trim())); + stderr?.on("data", async (Data) => await Echo(Data.trim(), true)); } } catch (_Error) { console.log(_Error); diff --git a/Source/Interface/Exec.ts b/Source/Interface/Exec.ts index 24b86d3..a8de39c 100644 --- a/Source/Interface/Exec.ts +++ b/Source/Interface/Exec.ts @@ -20,6 +20,6 @@ export default interface Interface { ( Command: string, // biome-ignore lint/suspicious/noExplicitAny: - Echo?: false | ((Return: any) => void), + Echo?: false | ((Return: any, _Error?: boolean) => Promise), ): Promise; } diff --git a/Target/Class/Build.js b/Target/Class/Build.js index b3460d6..035d5d6 100644 --- a/Target/Class/Build.js +++ b/Target/Class/Build.js @@ -1,2 +1,2 @@ #!/usr/bin/env node -var i=new(await import("commander")).Command().name("Build").version("0.1.1").description("\u{1F300}\u2001Build\u2001\u2014").argument("","\u{1F4DD}\u2001File\u2001\u2014").option("-ES, --ESBuild ","\u{1F4DC}\u2001ESBuild\u2001\u2014").option("-TS, --TypeScript ","\u{1F4DC}\u2001TypeScript\u2001\u2014","tsconfig.json").option("-W --Watch","\u{1F441}\uFE0F\u2001Watch\u2001\u2014").action((await import("../Function/Build.js")).default).parse();export{i as default}; +var i=new(await import("commander")).Command().name("Build").version("0.1.2").description("\u{1F300}\u2001Build\u2001\u2014").argument("","\u{1F4DD}\u2001File\u2001\u2014").option("-ES, --ESBuild ","\u{1F4DC}\u2001ESBuild\u2001\u2014").option("-TS, --TypeScript ","\u{1F4DC}\u2001TypeScript\u2001\u2014","tsconfig.json").option("-W --Watch","\u{1F441}\uFE0F\u2001Watch\u2001\u2014").action((await import("../Function/Build.js")).default).parse();export{i as default}; diff --git a/Target/Function/Exec.js b/Target/Function/Exec.js index 0906154..cddc893 100644 --- a/Target/Function/Exec.js +++ b/Target/Function/Exec.js @@ -1 +1 @@ -var n=async(...[r,t=e=>console.log(e)])=>{try{const{stdout:e,stderr:o}=(await import("child_process")).exec(r);typeof t=="function"&&(e?.on("data",a=>t(a)),o?.on("data",a=>t(a)))}catch(e){console.log(e)}};export{n as default}; +var c=async(...[r,a=async t=>console.log(t)])=>{try{const{stdout:t,stderr:n}=(await import("child_process")).exec(r);typeof a=="function"&&(t?.on("data",async e=>await a(e.trim())),n?.on("data",async e=>await a(e.trim(),!0)))}catch(t){console.log(t)}};export{c as default}; diff --git a/Target/Interface/Exec.d.ts b/Target/Interface/Exec.d.ts index 1d8f966..3159297 100644 --- a/Target/Interface/Exec.d.ts +++ b/Target/Interface/Exec.d.ts @@ -17,5 +17,5 @@ export default interface Interface { * logging. If not provided, stdout and stderr will be logged to the console by default. * */ - (Command: string, Echo?: false | ((Return: any) => void)): Promise; + (Command: string, Echo?: false | ((Return: any, _Error?: boolean) => Promise)): Promise; } diff --git a/package.json b/package.json index d9a1325..985eca4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@playform/build", - "version": "0.1.1", + "version": "0.1.2", "private": false, "description": "🌀 Build —", "keywords": [