diff --git a/docs/backend_api/assets/hierarchy.js b/docs/backend_api/assets/hierarchy.js index 7836cb59e..b58e1f2fa 100644 --- a/docs/backend_api/assets/hierarchy.js +++ b/docs/backend_api/assets/hierarchy.js @@ -1 +1 @@ -window.hierarchyData = "eJylk91uwyAMhd+Fa7cjdGl+XmWqIiCugkqgAmfSVOXd52y72GUibpA4Fuezjf0SKUbKov9QNxAJ7x4tuRhYeQm1HUHPKHox4l0vngSIhwuj6CvVgliS55D1OmfMbwat1QMGcuQwD9pkStrS8E//Ov/5nCeaPZv9vGUPyuNpMz79ChyYnB8TBs6skVB1ElTXwuXawPtVQn2R0HUKKlm3UFWqvq0gGlmUr9FE2k4zCzuzZCYnVgxNziyE+5nciDKm8dHsx3HPC3FJBzvtB/IHlwGR9NMNFB8Y9lN5pMqoIR75RJ7eMlx8bnt6YFJ5VcqICS1fhmN1bstZiv10+UCp6/oNzPWfkA==" \ No newline at end of file +window.hierarchyData = "eJylk0uOwyAMhu/iNe2UPNokV6mqCIiroBKowBlpVOXudTqzmGUiNiB+gz8b2y+IIVCC7lqUp5uAiHeHhmzwrL2AxXXzakLoYMC7mh2BgIf1A3SyaATM0bHJOJUSpi+NxqgePVmymHqlE0VlqP+n/xz//BxHmhw7+7xlH5SGw+r48CuwYbRuiOjX6NqLqORZ1EUp6laKc1OKS10IWciWl6YSsqxPt0UA38wKWSsiZcaJhY2BMpRDy4ZGq2fC7Uz+ijymdkHvwLUyExeVN+N2IJc4D4iknran8EC/ncpNlUf1YU8R1/7N44XnOq17iE2VR4xo+NDvTJTHMxf7bdOOVJflDVemoSg=" \ No newline at end of file diff --git a/docs/backend_api/assets/main.js b/docs/backend_api/assets/main.js index 4f59cd955..3effabb23 100644 --- a/docs/backend_api/assets/main.js +++ b/docs/backend_api/assets/main.js @@ -1,9 +1,9 @@ "use strict"; -window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse"}; -"use strict";(()=>{var De=Object.create;var le=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var qe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var je=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ne(e))!Be.call(t,i)&&i!==n&&le(t,i,{get:()=>e[i],enumerable:!(r=Fe(e,i))||r.enumerable});return t};var $e=(t,e,n)=>(n=t!=null?De(Ve(t)):{},je(e||!t||!t.__esModule?le(n,"default",{value:t,enumerable:!0}):n,t));var pe=qe((de,he)=>{(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,c],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[c+1]*i[d+1],c+=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 c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,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 de=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse"};var ce=[];function G(t,e){ce.push({selector:e,constructor:t})}var J=class{alwaysVisibleMember=null;constructor(){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){ce.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&&!ze(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 ze(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var ge=$e(pe(),1);async function H(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}async function fe(t,e){if(!window.searchData)return;let n=await H(window.searchData);t.data=n,t.index=ge.Index.load(n.index),e.classList.remove("loading"),e.classList.add("ready")}function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:document.documentElement.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",()=>{fe(e,t)}),fe(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",()=>{re(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),We(t,i,r,e)}function We(t,e,n,r){n.addEventListener("input",ue(()=>{Ue(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Je(e,t):i.key=="ArrowUp"?(me(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(me(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(),re(t))})}function re(t){t.classList.remove("has-focus")}function Ue(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=ye(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${ye(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=c+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function me(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 Je(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),re(e)}}function ye(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(ne(t.substring(s,o)),`${ne(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ne(t.substring(s))),i.join("")}var Ge={"&":"&","<":"<",">":">","'":"'",'"':"""};function ne(t){return t.replace(/[&<>"'"]/g,e=>Ge[e])}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var A="mousedown",Ee="mousemove",B="mouseup",X={x:0,y:0},xe=!1,ie=!1,Xe=!1,D=!1,Le=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Le?"is-mobile":"not-mobile");Le&&"ontouchstart"in document.documentElement&&(Xe=!0,A="touchstart",Ee="touchmove",B="touchend");document.addEventListener(A,t=>{ie=!0,D=!1;let e=A=="touchstart"?t.targetTouches[0]:t;X.y=e.pageY||0,X.x=e.pageX||0});document.addEventListener(Ee,t=>{if(ie&&!D){let e=A=="touchstart"?t.targetTouches[0]:t,n=X.x-(e.pageX||0),r=X.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ie=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var Y=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(A,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,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 se;try{se=localStorage}catch{se={getItem(){return null},setItem(){}}}var C=se;var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var Z=class extends I{key;value;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()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=C.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){C.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 oe=new Map,ae=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;C.setItem(this.key,e.toString())}},K=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(oe.has(i))s=oe.get(i);else{let o=C.getItem(i),a=o?o==="true":this.el.open;s=new ae(i,a),oe.set(i,s)}s.add(this.el)}};function Se(t){let e=C.getItem("tsd-theme")||"os";t.value=e,we(e),t.addEventListener("change",()=>{C.setItem("tsd-theme",t.value),we(t.value)})}function we(t){document.documentElement.dataset.theme=t}var ee;function Ce(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Te),Te())}async function Te(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await H(window.navigationData);ee=document.documentElement.dataset.base,ee.endsWith("/")||(ee+="/"),t.innerHTML="";for(let n of e)Ie(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ie(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='',ke(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 c of t.children)Ie(c,l,i)}else ke(t,r,t.class)}function ke(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=ee+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span"));r.innerHTML='',r.appendChild(document.createElement("span")).textContent=t.text}}var te=document.documentElement.dataset.base;te.endsWith("/")||(te+="/");function Pe(){document.querySelector(".tsd-full-hierarchy")?Ye():document.querySelector(".tsd-hierarchy")&&Ze()}function Ye(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=tt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function Ze(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Qe),Qe())}async function Qe(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await H(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),Ke(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function Ke(t,e,n){let r=e.roots.filter(i=>et(e,i,n));for(let i of r)t.appendChild(Oe(e,i,n))}function Oe(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let l=t.reflections[a],c=s.appendChild(document.createElement("a"));c.textContent=l.name,c.href=te+l.url,c.className=l.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=te+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let l=Oe(t,a,n,r);l&&o.appendChild(l)}}return r.delete(e),s}function et(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function tt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}G(Y,"a[data-toggle]");G(K,".tsd-accordion");G(Z,".tsd-filter-item input[type=checkbox]");var _e=document.getElementById("tsd-theme");_e&&Se(_e);var nt=new J;Object.defineProperty(window,"app",{value:nt});ve();Ce();Pe();})(); +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","search_index_not_available":"The search index is not available","search_no_results_found_for_0":"No results found for {0}","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"}; +"use strict";(()=>{var Je=Object.create;var he=Object.defineProperty;var Ke=Object.getOwnPropertyDescriptor;var Ge=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var Ze=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var et=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ge(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ke(e,i))||r.enumerable});return t};var tt=(t,e,n)=>(n=t!=null?Je(Xe(t)):{},et(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=Ze((me,ge)=>{(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,l],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(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=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 c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,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 l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=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),c=0;c1?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 me=="object"?ge.exports=n():e.lunr=n()}(this,function(){return t})})()});var O,G={getItem(){return null},setItem(){}},K;try{K=localStorage,O=K}catch{K=G,O=G}var S={getItem:t=>O.getItem(t),setItem:(t,e)=>O.setItem(t,e),disableWritingLocalStorage(){O=G},disable(){localStorage.clear(),O=G},enable(){O=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function Y(t,e){pe.push({selector:e,constructor:t})}var X=class{alwaysVisibleMember=null;constructor(){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){pe.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&&!nt(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 nt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=tt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Z="closing",ae="tsd-overlay";function rt(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function it(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Z)&&(t.classList.remove(Z),document.getElementById(ae)?.remove(),t.close(),it())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),rt()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Z),t.classList.add(Z)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;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()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=S.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){S.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),le[`tsd-is-${this.el.name}`]=this.value,this.app.filterChanged(),this.app.updateIndexVisibility()}};var Le=0;async function Se(t,e){if(!window.searchData)return;let n=await R(window.searchData);t.data=n,t.index=Ie.Index.load(n.index),e.innerHTML=""}function _e(){let t=document.getElementById("tsd-search-trigger"),e=document.getElementById("tsd-search"),n=document.getElementById("tsd-search-input"),r=document.getElementById("tsd-search-results"),i=document.getElementById("tsd-search-script"),s=document.getElementById("tsd-search-status");if(!(t&&e&&n&&r&&i&&s))throw new Error("Search controls missing");let o={base:document.documentElement.dataset.base};o.base.endsWith("/")||(o.base+="/"),i.addEventListener("error",()=>{let a=window.translations.search_index_not_available;Pe(s,a)}),i.addEventListener("load",()=>{Se(o,s)}),Se(o,s),st({trigger:t,searchEl:e,results:r,field:n,status:s},o)}function st(t,e){let{field:n,results:r,searchEl:i,status:s,trigger:o}=t;xe(i,{closeOnClick:!0});function a(){Ee(i),n.setSelectionRange(0,n.value.length)}o.addEventListener("click",a),n.addEventListener("input",fe(()=>{ot(r,n,s,e)},200)),n.addEventListener("keydown",l=>{if(r.childElementCount===0||l.ctrlKey||l.metaKey||l.altKey)return;let d=n.getAttribute("aria-activedescendant"),f=d?document.getElementById(d):null;if(f){let p=!1,v=!1;switch(l.key){case"Home":case"End":case"ArrowLeft":case"ArrowRight":v=!0;break;case"ArrowDown":case"ArrowUp":p=l.shiftKey;break}(p||v)&&ke(n)}if(!l.shiftKey)switch(l.key){case"Enter":f?.querySelector("a")?.click();break;case"ArrowUp":Te(r,n,f,-1),l.preventDefault();break;case"ArrowDown":Te(r,n,f,1),l.preventDefault();break}});function c(){ke(n)}n.addEventListener("change",c),n.addEventListener("blur",c),n.addEventListener("click",c),document.body.addEventListener("keydown",l=>{if(l.altKey||l.metaKey||l.shiftKey)return;let d=l.ctrlKey&&l.key==="k",f=!l.ctrlKey&&!ct()&&l.key==="/";(d||f)&&(l.preventDefault(),a())})}function ot(t,e,n,r){if(!r.index||!r.data)return;t.innerHTML="",n.innerHTML="",Le+=1;let i=e.value.trim(),s;if(i){let a=i.split(" ").map(c=>c.length?`*${c}*`:"").join(" ");s=r.index.search(a).filter(({ref:c})=>{let l=r.data.rows[Number(c)].classes;return!l||!we(l)})}else s=[];if(s.length===0&&i){let a=window.translations.search_no_results_found_for_0.replace("{0}",` "${te(i)}" `);Pe(n,a);return}for(let a=0;ac.score-a.score);let o=Math.min(10,s.length);for(let a=0;a`,f=Ce(c.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(f+=` (score: ${s[a].score.toFixed(2)})`),c.parent&&(f=` + ${Ce(c.parent,i)}.${f}`);let p=document.createElement("li");p.id=`tsd-search:${Le}-${a}`,p.role="option",p.ariaSelected="false",p.classList.value=c.classes??"";let v=document.createElement("a");v.tabIndex=-1,v.href=r.base+c.url,v.innerHTML=d+`${f}`,p.append(v),t.appendChild(p)}}function Te(t,e,n,r){let i;if(r===1?i=n?.nextElementSibling||t.firstElementChild:i=n?.previousElementSibling||t.lastElementChild,i!==n){if(!i||i.role!=="option"){console.error("Option missing");return}i.ariaSelected="true",i.scrollIntoView({behavior:"smooth",block:"nearest"}),e.setAttribute("aria-activedescendant",i.id),n?.setAttribute("aria-selected","false")}}function ke(t){let e=t.getAttribute("aria-activedescendant");(e?document.getElementById(e):null)?.setAttribute("aria-selected","false"),t.setAttribute("aria-activedescendant","")}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(te(t.substring(s,o)),`${te(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(te(t.substring(s))),i.join("")}var at={"&":"&","<":"<",">":">","'":"'",'"':"""};function te(t){return t.replace(/[&<>"'"]/g,e=>at[e])}function Pe(t,e){t.innerHTML=e?`
${e}
`:""}var lt=["button","checkbox","file","hidden","image","radio","range","reset","submit"];function ct(){let t=document.activeElement;return t?t.isContentEditable||t.tagName==="TEXTAREA"||t.tagName==="SEARCH"?!0:t.tagName==="INPUT"&&!lt.includes(t.type):!1}var D="mousedown",Oe="mousemove",$="mouseup",ne={x:0,y:0},Qe=!1,ce=!1,ut=!1,F=!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&&(ut=!0,D="touchstart",Oe="touchmove",$="touchend");document.addEventListener(D,t=>{ce=!0,F=!1;let e=D=="touchstart"?t.targetTouches[0]:t;ne.y=e.pageY||0,ne.x=e.pageX||0});document.addEventListener(Oe,t=>{if(ce&&!F){let e=D=="touchstart"?t.targetTouches[0]:t,n=ne.x-(e.pageX||0),r=ne.y-(e.pageY||0);F=Math.sqrt(n*n+r*r)>10}});document.addEventListener($,()=>{ce=!1});document.addEventListener("click",t=>{Qe&&(t.preventDefault(),t.stopImmediatePropagation(),Qe=!1)});var re=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener($,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(D,n=>this.onDocumentPointerDown(n)),document.addEventListener($,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){F||(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(!F&&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 ue=new Map,de=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;S.setItem(this.key,e.toString())}},ie=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(ue.has(i))s=ue.get(i);else{let o=S.getItem(i),a=o?o==="true":this.el.open;s=new de(i,a),ue.set(i,s)}s.add(this.el)}};function He(t){let e=S.getItem("tsd-theme")||"os";t.value=e,Ae(e),t.addEventListener("change",()=>{S.setItem("tsd-theme",t.value),Ae(t.value)})}function Ae(t){document.documentElement.dataset.theme=t}var se;function Fe(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Re),Re())}async function Re(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await R(window.navigationData);se=document.documentElement.dataset.base,se.endsWith("/")||(se+="/"),t.innerHTML="";for(let n of e)Ne(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ne(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='',De(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let c=a.appendChild(document.createElement("ul"));c.className="tsd-nested-navigation";for(let l of t.children)Ne(l,c,i)}else De(t,r,t.class)}function De(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=se+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&(r.classList.add("current"),r.ariaCurrent="page"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=``}r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=``,r.appendChild(document.createElement("span")).textContent=t.text}}var oe=document.documentElement.dataset.base;oe.endsWith("/")||(oe+="/");function Ve(){document.querySelector(".tsd-full-hierarchy")?dt():document.querySelector(".tsd-hierarchy")&&ht()}function dt(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=mt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function ht(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Be),Be())}async function Be(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await R(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),pt(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function pt(t,e,n){let r=e.roots.filter(i=>ft(e,i,n));for(let i of r)t.appendChild($e(e,i,n))}function $e(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let c=t.reflections[a],l=s.appendChild(document.createElement("a"));l.textContent=c.name,l.href=oe+c.url,l.className=c.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=oe+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let c=$e(t,a,n,r);c&&o.appendChild(c)}}return r.delete(e),s}function ft(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function mt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}Y(re,"a[data-toggle]");Y(ie,".tsd-accordion");Y(ee,".tsd-filter-item input[type=checkbox]");var je=document.getElementById("tsd-theme");je&&He(je);var gt=new X;Object.defineProperty(window,"app",{value:gt});_e();Fe();Ve();"virtualKeyboard"in navigator&&(navigator.virtualKeyboard.overlaysContent=!0);})(); /*! Bundled license information: lunr/lunr.js: diff --git a/docs/backend_api/assets/search.js b/docs/backend_api/assets/search.js index e707e53f0..a50336bf6 100644 --- a/docs/backend_api/assets/search.js +++ b/docs/backend_api/assets/search.js @@ -1 +1 @@ -window.searchData = "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"; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/docs/backend_api/assets/style.css b/docs/backend_api/assets/style.css index 7f80f3dc2..7c3fbdb90 100644 --- a/docs/backend_api/assets/style.css +++ b/docs/backend_api/assets/style.css @@ -1,14 +1,33 @@ @layer typedoc { + :root { + --dim-toolbar-contents-height: 2.5rem; + --dim-toolbar-border-bottom-width: 1px; + --dim-header-height: calc( + var(--dim-toolbar-border-bottom-width) + + var(--dim-toolbar-contents-height) + ); + + /* 0rem For mobile; unit is required for calculation in `calc` */ + --dim-container-main-margin-y: 0rem; + + --dim-footer-height: 3.5rem; + + --modal-animation-duration: 0.2s; + } + :root { /* Light */ --light-color-background: #f2f4f8; --light-color-background-secondary: #eff0f1; - --light-color-warning-text: #222; + /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */ + --light-color-background-active: #d6d8da; --light-color-background-warning: #e6e600; + --light-color-warning-text: #222; --light-color-accent: #c5c7c9; - --light-color-active-menu-item: var(--light-color-accent); + --light-color-active-menu-item: var(--light-color-background-active); --light-color-text: #222; - --light-color-text-aside: #6e6e6e; + --light-color-contrast-text: #000; + --light-color-text-aside: #5e5e5e; --light-color-icon-background: var(--light-color-background); --light-color-icon-text: var(--light-color-text); @@ -56,15 +75,20 @@ --light-external-icon: url("data:image/svg+xml;utf8,"); --light-color-scheme: light; + } + :root { /* Dark */ --dark-color-background: #2b2e33; --dark-color-background-secondary: #1e2024; + /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */ + --dark-color-background-active: #5d5d6a; --dark-color-background-warning: #bebe00; --dark-color-warning-text: #222; --dark-color-accent: #9096a2; - --dark-color-active-menu-item: #5d5d6a; + --dark-color-active-menu-item: var(--dark-color-background-active); --dark-color-text: #f5f5f5; + --dark-color-contrast-text: #ffffff; --dark-color-text-aside: #dddddd; --dark-color-icon-background: var(--dark-color-background-secondary); @@ -119,11 +143,13 @@ --color-background-secondary: var( --light-color-background-secondary ); + --color-background-active: var(--light-color-background-active); --color-background-warning: var(--light-color-background-warning); --color-warning-text: var(--light-color-warning-text); --color-accent: var(--light-color-accent); --color-active-menu-item: var(--light-color-active-menu-item); --color-text: var(--light-color-text); + --color-contrast-text: var(--light-color-contrast-text); --color-text-aside: var(--light-color-text-aside); --color-icon-background: var(--light-color-icon-background); @@ -179,11 +205,13 @@ --color-background-secondary: var( --dark-color-background-secondary ); + --color-background-active: var(--dark-color-background-active); --color-background-warning: var(--dark-color-background-warning); --color-warning-text: var(--dark-color-warning-text); --color-accent: var(--dark-color-accent); --color-active-menu-item: var(--dark-color-active-menu-item); --color-text: var(--dark-color-text); + --color-contrast-text: var(--dark-color-contrast-text); --color-text-aside: var(--dark-color-text-aside); --color-icon-background: var(--dark-color-icon-background); @@ -233,23 +261,17 @@ } } - html { - color-scheme: var(--color-scheme); - } - - body { - margin: 0; - } - :root[data-theme="light"] { --color-background: var(--light-color-background); --color-background-secondary: var(--light-color-background-secondary); + --color-background-active: var(--light-color-background-active); --color-background-warning: var(--light-color-background-warning); --color-warning-text: var(--light-color-warning-text); --color-icon-background: var(--light-color-icon-background); --color-accent: var(--light-color-accent); --color-active-menu-item: var(--light-color-active-menu-item); --color-text: var(--light-color-text); + --color-contrast-text: var(--light-color-contrast-text); --color-text-aside: var(--light-color-text-aside); --color-icon-text: var(--light-color-icon-text); @@ -299,12 +321,14 @@ :root[data-theme="dark"] { --color-background: var(--dark-color-background); --color-background-secondary: var(--dark-color-background-secondary); + --color-background-active: var(--dark-color-background-active); --color-background-warning: var(--dark-color-background-warning); --color-warning-text: var(--dark-color-warning-text); --color-icon-background: var(--dark-color-icon-background); --color-accent: var(--dark-color-accent); --color-active-menu-item: var(--dark-color-active-menu-item); --color-text: var(--dark-color-text); + --color-contrast-text: var(--dark-color-contrast-text); --color-text-aside: var(--dark-color-text-aside); --color-icon-text: var(--dark-color-icon-text); @@ -351,6 +375,13 @@ --color-scheme: var(--dark-color-scheme); } + html { + color-scheme: var(--color-scheme); + @media (prefers-reduced-motion: no-preference) { + scroll-behavior: smooth; + } + } + *:focus-visible, .tsd-accordion-summary:focus-visible svg { outline: 2px solid var(--color-focus-outline); @@ -421,16 +452,19 @@ border-top: 1px solid var(--color-accent); padding-top: 1rem; padding-bottom: 1rem; - max-height: 3.5rem; + max-height: var(--dim-footer-height); } footer > p { margin: 0 1em; } .container-main { - margin: 0 auto; + margin: var(--dim-container-main-margin-y) auto; /* toolbar, footer, margin */ - min-height: calc(100vh - 41px - 56px - 4rem); + min-height: calc( + 100svh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); } @keyframes fade-in { @@ -450,29 +484,6 @@ opacity: 0; } } - @keyframes fade-in-delayed { - 0% { - opacity: 0; - } - 33% { - opacity: 0; - } - 100% { - opacity: 1; - } - } - @keyframes fade-out-delayed { - 0% { - opacity: 1; - visibility: visible; - } - 66% { - opacity: 0; - } - 100% { - opacity: 0; - } - } @keyframes pop-in-from-right { from { transform: translate(100%, 0); @@ -492,10 +503,19 @@ } body { background: var(--color-background); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", - Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-family: + -apple-system, + BlinkMacSystemFont, + "Segoe UI", + "Noto Sans", + Helvetica, + Arial, + sans-serif, + "Apple Color Emoji", + "Segoe UI Emoji"; font-size: 16px; color: var(--color-text); + margin: 0; } a { @@ -514,6 +534,9 @@ a.tsd-anchor-link { color: var(--color-text); } + :target { + scroll-margin-block: calc(var(--dim-header-height) + 0.5rem); + } code, pre { @@ -545,7 +568,8 @@ box-sizing: border-box; } pre:hover > button, - pre > button.visible { + pre > button.visible, + pre > button:focus-visible { opacity: 1; } @@ -555,6 +579,52 @@ border-left: 4px solid gray; } + img { + max-width: 100%; + } + + * { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); + } + + *::-webkit-scrollbar { + width: 0.75rem; + } + + *::-webkit-scrollbar-track { + background: var(--color-icon-background); + } + + *::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); + } + + dialog { + border: none; + outline: none; + padding: 0; + background-color: var(--color-background); + } + dialog::backdrop { + display: none; + } + #tsd-overlay { + background-color: rgba(0, 0, 0, 0.5); + position: fixed; + z-index: 9999; + top: 0; + left: 0; + right: 0; + bottom: 0; + animation: fade-in var(--modal-animation-duration) forwards; + } + #tsd-overlay.closing { + animation-name: fade-out; + } + .tsd-typography { line-height: 1.333em; } @@ -629,6 +699,7 @@ .tsd-breadcrumb { margin: 0; + margin-top: 1rem; padding: 0; color: var(--color-text-aside); } @@ -733,7 +804,7 @@ margin-right: 0.5em; border-radius: 0.33em; /* Leaving this at full opacity breaks event listeners on Firefox. - Don't remove unless you know what you're doing. */ + Don't remove unless you know what you're doing. */ opacity: 0.99; } .tsd-filter-input input[type="checkbox"]:focus-visible + svg { @@ -876,7 +947,8 @@ } .tsd-navigation.settings { - margin: 1rem 0; + margin: 0; + margin-bottom: 1rem; } .tsd-navigation > a, .tsd-navigation .tsd-accordion-summary { @@ -898,6 +970,7 @@ .tsd-navigation a.current, .tsd-page-navigation a.current { background: var(--color-active-menu-item); + color: var(--color-contrast-text); } .tsd-navigation a:hover, .tsd-page-navigation a:hover { @@ -931,14 +1004,14 @@ margin-left: -1.5rem; } - .tsd-page-navigation-section { - margin-left: 10px; - } .tsd-page-navigation-section > summary { padding: 0.25rem; } + .tsd-page-navigation-section > summary > svg { + margin-right: 0.25rem; + } .tsd-page-navigation-section > div { - margin-left: 20px; + margin-left: 30px; } .tsd-page-navigation ul { padding-left: 1.75rem; @@ -964,6 +1037,10 @@ .tsd-accordion-summary { list-style-type: none; /* hide marker on non-safari */ outline: none; /* broken on safari, so just hide it */ + display: flex; + align-items: center; + gap: 0.25rem; + box-sizing: border-box; } .tsd-accordion-summary::-webkit-details-marker { display: none; /* hide marker on safari */ @@ -986,27 +1063,21 @@ padding-top: 0; padding-bottom: 0; } - .tsd-accordion .tsd-accordion-summary > svg { - margin-left: 0.25rem; - vertical-align: text-top; - } /* - We need to be careful to target the arrow indicating whether the accordion - is open, but not any other SVGs included in the details element. -*/ - .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h1 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h2 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h3 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h4 > svg:first-child { + * We need to be careful to target the arrow indicating whether the accordion + * is open, but not any other SVGs included in the details element. + */ + .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child { transform: rotate(-90deg); } .tsd-index-content > :not(:first-child) { margin-top: 0.75rem; } - .tsd-index-heading { + .tsd-index-summary { margin-top: 1.5rem; margin-bottom: 0.75rem; + display: flex; + align-content: center; } .tsd-no-select { @@ -1061,117 +1132,104 @@ margin-bottom: 1rem; } - #tsd-search { - transition: background-color 0.2s; + #tsd-search[open] { + animation: fade-in var(--modal-animation-duration) ease-out forwards; } - #tsd-search .title { - position: relative; - z-index: 2; + #tsd-search[open].closing { + animation-name: fade-out; } - #tsd-search .field { - position: absolute; - left: 0; - top: 0; - right: 2.5rem; - height: 100%; + + /* Avoid setting `display` on closed dialog */ + #tsd-search[open] { + display: flex; + flex-direction: column; + padding: 1rem; + width: 32rem; + max-width: 90vw; + max-height: calc(100vh - env(keyboard-inset-height, 0px) - 25vh); + /* Anchor dialog to top */ + margin-top: 10vh; + border-radius: 6px; + will-change: max-height; } - #tsd-search .field input { + #tsd-search-input { box-sizing: border-box; - position: relative; - top: -50px; - z-index: 1; width: 100%; - padding: 0 10px; - opacity: 0; + padding: 0 0.625rem; /* 10px */ outline: 0; - border: 0; - background: transparent; + border: 2px solid var(--color-accent); + background-color: transparent; color: var(--color-text); + border-radius: 4px; + height: 2.5rem; + flex: 0 0 auto; + font-size: 0.875rem; + transition: border-color 0.2s, background-color 0.2s; } - #tsd-search .field label { - position: absolute; - overflow: hidden; - right: -40px; + #tsd-search-input:focus-visible { + background-color: var(--color-background-active); + border-color: transparent; + color: var(--color-contrast-text); } - #tsd-search .field input, - #tsd-search .title, - #tsd-toolbar-links a { - transition: opacity 0.2s; + #tsd-search-input::placeholder { + color: inherit; + opacity: 0.8; } - #tsd-search .results { - position: absolute; - visibility: hidden; - top: 40px; - width: 100%; + #tsd-search-results { margin: 0; padding: 0; list-style: none; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); + flex: 1 1 auto; + display: flex; + flex-direction: column; + overflow-y: auto; } - #tsd-search .results li { + #tsd-search-results:not(:empty) { + margin-top: 0.5rem; + } + #tsd-search-results > li { background-color: var(--color-background); - line-height: initial; - padding: 4px; + line-height: 1.5; + box-sizing: border-box; + border-radius: 4px; } - #tsd-search .results li:nth-child(even) { + #tsd-search-results > li:nth-child(even) { background-color: var(--color-background-secondary); } - #tsd-search .results li.state { - display: none; + #tsd-search-results > li:is(:hover, [aria-selected="true"]) { + background-color: var(--color-background-active); + color: var(--color-contrast-text); } - #tsd-search .results li.current:not(.no-results), - #tsd-search .results li:hover:not(.no-results) { - background-color: var(--color-accent); - } - #tsd-search .results a { + /* It's important that this takes full size of parent `li`, to capture a click on `li` */ + #tsd-search-results > li > a { display: flex; align-items: center; - padding: 0.25rem; + padding: 0.5rem 0.25rem; box-sizing: border-box; + width: 100%; } - #tsd-search .results a:before { - top: 10px; + #tsd-search-results > li > a > .text { + flex: 1 1 auto; + min-width: 0; + overflow-wrap: anywhere; } - #tsd-search .results span.parent { + #tsd-search-results > li > a .parent { color: var(--color-text-aside); - font-weight: normal; } - #tsd-search.has-focus { - background-color: var(--color-accent); + #tsd-search-results > li > a mark { + color: inherit; + background-color: inherit; + font-weight: bold; } - #tsd-search.has-focus .field input { - top: 0; - opacity: 1; + #tsd-search-status { + flex: 1; + display: grid; + place-content: center; + text-align: center; + overflow-wrap: anywhere; } - #tsd-search.has-focus .title, - #tsd-search.has-focus #tsd-toolbar-links a { - z-index: 0; - opacity: 0; - } - #tsd-search.has-focus .results { - visibility: visible; - } - #tsd-search.loading .results li.state.loading { - display: block; - } - #tsd-search.failure .results li.state.failure { - display: block; - } - - #tsd-toolbar-links { - position: absolute; - top: 0; - right: 2rem; - height: 100%; - display: flex; - align-items: center; - justify-content: flex-end; - } - #tsd-toolbar-links a { - margin-left: 1.5rem; - } - #tsd-toolbar-links a:hover { - text-decoration: underline; + #tsd-search-status:not(:empty) { + min-height: 6rem; } .tsd-signature { @@ -1256,78 +1314,52 @@ width: 100%; color: var(--color-text); background: var(--color-background-secondary); - border-bottom: 1px var(--color-accent) solid; + border-bottom: var(--dim-toolbar-border-bottom-width) + var(--color-accent) solid; transition: transform 0.3s ease-in-out; } .tsd-page-toolbar a { color: var(--color-text); - text-decoration: none; } - .tsd-page-toolbar a.title { - font-weight: bold; - } - .tsd-page-toolbar a.title:hover { - text-decoration: underline; - } - .tsd-page-toolbar .tsd-toolbar-contents { + .tsd-toolbar-contents { display: flex; - justify-content: space-between; - height: 2.5rem; + align-items: center; + height: var(--dim-toolbar-contents-height); margin: 0 auto; } - .tsd-page-toolbar .table-cell { - position: relative; - white-space: nowrap; - line-height: 40px; + .tsd-toolbar-contents > .title { + font-weight: bold; + margin-right: auto; } - .tsd-page-toolbar .table-cell:first-child { - width: 100%; - } - .tsd-page-toolbar .tsd-toolbar-icon { - box-sizing: border-box; - line-height: 0; - padding: 12px 0; + #tsd-toolbar-links { + display: flex; + align-items: center; + gap: 1.5rem; + margin-right: 1rem; } .tsd-widget { + box-sizing: border-box; display: inline-block; - overflow: hidden; opacity: 0.8; - height: 40px; - transition: - opacity 0.1s, - background-color 0.2s; - vertical-align: bottom; + height: 2.5rem; + width: 2.5rem; + transition: opacity 0.1s, background-color 0.1s; + text-align: center; cursor: pointer; + border: none; + background-color: transparent; } .tsd-widget:hover { opacity: 0.9; } - .tsd-widget.active { + .tsd-widget:active { opacity: 1; background-color: var(--color-accent); } - .tsd-widget.no-caption { - width: 40px; - } - .tsd-widget.no-caption:before { - margin: 0; - } - - .tsd-widget.options, - .tsd-widget.menu { + #tsd-toolbar-menu-trigger { display: none; } - input[type="checkbox"] + .tsd-widget:before { - background-position: -120px 0; - } - input[type="checkbox"]:checked + .tsd-widget:before { - background-position: -160px 0; - } - - img { - max-width: 100%; - } .tsd-member-summary-name { display: inline-flex; @@ -1341,6 +1373,7 @@ align-items: center; margin-left: 0.5rem; color: var(--color-text); + vertical-align: middle; } .tsd-anchor-icon svg { @@ -1350,7 +1383,8 @@ } .tsd-member-summary-name:hover > .tsd-anchor-icon svg, - .tsd-anchor-link:hover > .tsd-anchor-icon svg { + .tsd-anchor-link:hover > .tsd-anchor-icon svg, + .tsd-anchor-icon:focus-visible svg { visibility: visible; } @@ -1436,41 +1470,26 @@ color: var(--color-text); } - * { - scrollbar-width: thin; - scrollbar-color: var(--color-accent) var(--color-icon-background); - } - - *::-webkit-scrollbar { - width: 0.75rem; - } - - *::-webkit-scrollbar-track { - background: var(--color-icon-background); - } - - *::-webkit-scrollbar-thumb { - background-color: var(--color-accent); - border-radius: 999rem; - border: 0.25rem solid var(--color-icon-background); - } - /* mobile */ @media (max-width: 769px) { - .tsd-widget.options, - .tsd-widget.menu { + #tsd-toolbar-menu-trigger { display: inline-block; + /* temporary fix to vertically align, for compatibility */ + line-height: 2.5; + } + #tsd-toolbar-links { + display: none; } .container-main { display: flex; } - html .col-content { + .col-content { float: none; max-width: 100%; width: 100%; } - html .col-sidebar { + .col-sidebar { position: fixed !important; overflow-y: auto; -webkit-overflow-scrolling: touch; @@ -1485,10 +1504,10 @@ background-color: var(--color-background); transform: translate(100%, 0); } - html .col-sidebar > *:last-child { + .col-sidebar > *:last-child { padding-bottom: 20px; } - html .overlay { + .overlay { content: ""; display: block; position: fixed; @@ -1535,9 +1554,6 @@ .has-menu .tsd-navigation { max-height: 100%; } - #tsd-toolbar-links { - display: none; - } .tsd-navigation .tsd-nav-link { display: flex; } @@ -1549,7 +1565,11 @@ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); grid-template-areas: "sidebar content"; - margin: 2rem auto; + --dim-container-main-margin-y: 2rem; + } + + .tsd-breadcrumb { + margin-top: 0; } .col-sidebar { @@ -1562,11 +1582,15 @@ } @media (min-width: 770px) and (max-width: 1399px) { .col-sidebar { - max-height: calc(100vh - 2rem - 42px); + max-height: calc( + 100vh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); overflow: auto; position: sticky; - top: 42px; - padding-top: 1rem; + top: calc( + var(--dim-header-height) + var(--dim-container-main-margin-y) + ); } .site-menu { margin-top: 1rem; @@ -1576,10 +1600,11 @@ /* two sidebars */ @media (min-width: 1200px) { .container-main { - grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax( - 0, - 20rem - ); + grid-template-columns: + minmax(0, 1fr) minmax(0, 2.5fr) minmax( + 0, + 20rem + ); grid-template-areas: "sidebar content toc"; } @@ -1596,15 +1621,20 @@ } .site-menu { - margin-top: 1rem; + margin-top: 0rem; } .page-menu, .site-menu { - max-height: calc(100vh - 2rem - 42px); + max-height: calc( + 100vh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); overflow: auto; position: sticky; - top: 42px; + top: calc( + var(--dim-header-height) + var(--dim-container-main-margin-y) + ); } } } diff --git a/docs/backend_api/classes/becca_entities_abstract_becca_entity.default.html b/docs/backend_api/classes/becca_entities_abstract_becca_entity.default.html index 257ec2584..5299c1adb 100644 --- a/docs/backend_api/classes/becca_entities_abstract_becca_entity.default.html +++ b/docs/backend_api/classes/becca_entities_abstract_becca_entity.default.html @@ -1,29 +1,29 @@ -default | trilium

Base class for all backend entities.

-

Type Parameters

Hierarchy (View Summary)

Constructors

Properties

blobId?: string
dateCreated?: string
dateModified?: string
isProtected?: boolean
isSynced?: boolean
utcDateCreated: string
utcDateModified?: string

Accessors

Methods

  • Parameters

    • content: string | Buffer<ArrayBufferLike>
    • opts: ContentOpts = {}

    Returns void

diff --git a/docs/backend_api/classes/becca_entities_battachment.default.html b/docs/backend_api/classes/becca_entities_battachment.default.html index 13b07c061..239339d16 100644 --- a/docs/backend_api/classes/becca_entities_battachment.default.html +++ b/docs/backend_api/classes/becca_entities_battachment.default.html @@ -1,56 +1,56 @@ -default | trilium

Attachment represent data related/attached to the note. Conceptually similar to attributes, but intended for +default | trilium

trilium
    Preparing search index...

    Attachment represent data related/attached to the note. Conceptually similar to attributes, but intended for larger amounts of data and generally not accessible to the user.

    -

    Hierarchy (View Summary)

    Constructors

    Properties

    attachmentId?: string
    blobId?: string
    contentLength?: number

    optionally added to the entity

    -
    dateCreated?: string
    dateModified?: string
    isDecrypted?: boolean
    isProtected?: boolean
    isSynced?: boolean
    mime: string
    noteId?: number
    ownerId: string

    either noteId or revisionId to which this attachment belongs

    -
    position?: number
    role: string
    title: string
    type?: "file" | "image"
    utcDateCreated: string
    utcDateModified?: string
    utcDateScheduledForErasureSince?: null | string

    Accessors

    Methods

    • Returns {
          attachmentId: undefined | string;
          blobId: undefined | string;
          contentLength: undefined | number;
          dateModified: undefined | string;
          isDeleted: boolean;
          isProtected: boolean;
          mime: string;
          ownerId: string;
          position: undefined | number;
          role: string;
          title: undefined | string;
          utcDateModified: undefined | string;
          utcDateScheduledForErasureSince: undefined | null | string;
      }

    • Returns {
          attachmentId: undefined | string;
          blobId: undefined | string;
          contentLength: undefined | number;
          dateModified: undefined | string;
          isDeleted: boolean;
          isProtected: boolean;
          mime: string;
          ownerId: string;
          position: undefined | number;
          role: string;
          title: undefined | string;
          utcDateModified: undefined | string;
          utcDateScheduledForErasureSince: undefined | null | string;
      }

    • Mark the entity as (soft) deleted. It will be completely erased later.

      +

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    attachmentId?: string
    blobId?: string
    contentLength?: number

    optionally added to the entity

    +
    dateCreated?: string
    dateModified?: string
    isDecrypted?: boolean
    isProtected?: boolean
    isSynced?: boolean
    mime: string
    noteId?: number
    ownerId: string

    either noteId or revisionId to which this attachment belongs

    +
    position?: number
    role: string
    title: string
    type?: "image" | "file"
    utcDateCreated: string
    utcDateModified?: string
    utcDateScheduledForErasureSince?: null | string

    Accessors

    Methods

    • Returns {
          attachmentId: undefined | string;
          blobId: undefined | string;
          contentLength: undefined | number;
          dateModified: undefined | string;
          isDeleted: boolean;
          isProtected: boolean;
          mime: string;
          ownerId: string;
          position: undefined | number;
          role: string;
          title: undefined | string;
          utcDateModified: undefined | string;
          utcDateScheduledForErasureSince: undefined | null | string;
      }

    • Returns {
          attachmentId: undefined | string;
          blobId: undefined | string;
          contentLength: undefined | number;
          dateModified: undefined | string;
          isDeleted: boolean;
          isProtected: boolean;
          mime: string;
          ownerId: string;
          position: undefined | number;
          role: string;
          title: undefined | string;
          utcDateModified: undefined | string;
          utcDateScheduledForErasureSince: undefined | null | string;
      }

    • Mark the entity as (soft) deleted. It will be completely erased later.

      This is a low-level method, for notes and branches use note.deleteNote() and 'branch.deleteBranch()` instead.

      -

      Parameters

      • deleteId: null | string = null

      Returns void

    • Parameters

      • content: string | Buffer<ArrayBufferLike>
      • Optionalopts: ContentOpts

      Returns void

    +

    Parameters

    • deleteId: null | string = null

    Returns void

    • Parameters

      • content: string | Buffer<ArrayBufferLike>
      • Optionalopts: ContentOpts

      Returns void

    diff --git a/docs/backend_api/classes/becca_entities_battribute.default.html b/docs/backend_api/classes/becca_entities_battribute.default.html index 7ceaf1f7a..69b384d93 100644 --- a/docs/backend_api/classes/becca_entities_battribute.default.html +++ b/docs/backend_api/classes/becca_entities_battribute.default.html @@ -1,53 +1,53 @@ -default | trilium

    Attribute is an abstract concept which has two real uses - label (key - value pair) +default | trilium

    trilium
      Preparing search index...

      Attribute is an abstract concept which has two real uses - label (key - value pair) and relation (representing named relationship between source and target note)

      -

      Hierarchy (View Summary)

      Constructors

      Properties

      attributeId: string
      blobId?: string
      dateCreated?: string
      dateModified?: string
      isInheritable: boolean
      isProtected?: boolean
      isSynced?: boolean
      name: string
      noteId: string
      position: number
      utcDateCreated: string
      utcDateModified?: string
      value: string

      Accessors

      Methods

      • Returns {
            attributeId: string;
            isDeleted: boolean;
            isInheritable: boolean;
            name: string;
            noteId: string;
            position: number;
            type: AttributeType;
            utcDateModified: undefined | string;
            value: string;
        }

      • Mark the entity as (soft) deleted. It will be completely erased later.

        +

      Hierarchy (View Summary)

      Index

      Constructors

      Properties

      attributeId: string
      blobId?: string
      dateCreated?: string
      dateModified?: string
      isInheritable: boolean
      isProtected?: boolean
      isSynced?: boolean
      name: string
      noteId: string
      position: number
      utcDateCreated: string
      utcDateModified?: string
      value: string

      Accessors

      Methods

      • Returns {
            attributeId: string;
            isDeleted: boolean;
            isInheritable: boolean;
            name: string;
            noteId: string;
            position: number;
            type: AttributeType;
            utcDateModified: undefined | string;
            value: string;
        }

      • Mark the entity as (soft) deleted. It will be completely erased later.

        This is a low-level method, for notes and branches use note.deleteNote() and 'branch.deleteBranch()` instead.

        -

        Parameters

        • deleteId: null | string = null

        Returns void

      +

      Parameters

      • deleteId: null | string = null

      Returns void

      diff --git a/docs/backend_api/classes/becca_entities_bblob.default.html b/docs/backend_api/classes/becca_entities_bblob.default.html index 90f26b7e8..25284c5df 100644 --- a/docs/backend_api/classes/becca_entities_bblob.default.html +++ b/docs/backend_api/classes/becca_entities_bblob.default.html @@ -1,34 +1,34 @@ -default | trilium

      Base class for all backend entities.

      -

      Hierarchy (View Summary)

      Constructors

      Properties

      blobId?: string
      content: string | Buffer<ArrayBufferLike>
      contentLength: number
      dateCreated?: string
      dateModified?: string
      isProtected?: boolean
      isSynced?: boolean
      utcDateCreated: string
      utcDateModified?: string

      Accessors

      Methods

      • Returns {
            blobId: undefined | string;
            content: null | string | Buffer<ArrayBufferLike>;
            contentLength: number;
            dateModified: undefined | string;
            utcDateModified: undefined | string;
        }

      diff --git a/docs/backend_api/classes/becca_entities_bbranch.default.html b/docs/backend_api/classes/becca_entities_bbranch.default.html index 201603936..303b55fcd 100644 --- a/docs/backend_api/classes/becca_entities_bbranch.default.html +++ b/docs/backend_api/classes/becca_entities_bbranch.default.html @@ -1,57 +1,57 @@ -default | trilium

      Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple +default | trilium

      trilium
        Preparing search index...

        Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple parents.

        Note that you should not rely on the branch's identity, since it can change easily with a note's move. Always check noteId instead.

        -

        Hierarchy (View Summary)

        Constructors

        Properties

        blobId?: string
        branchId?: string
        dateCreated?: string
        dateModified?: string
        isExpanded: boolean
        isProtected?: boolean
        isSynced?: boolean
        noteId: string
        notePosition: number
        parentNoteId: string
        prefix: null | string
        utcDateCreated: string
        utcDateModified?: string

        Accessors

        • get isWeak(): boolean
        • Branch is weak when its existence should not hinder deletion of its note. +

        Hierarchy (View Summary)

        Index

        Constructors

        Properties

        blobId?: string
        branchId?: string
        dateCreated?: string
        dateModified?: string
        isExpanded: boolean
        isProtected?: boolean
        isSynced?: boolean
        noteId: string
        notePosition: number
        parentNoteId: string
        prefix: null | string
        utcDateCreated: string
        utcDateModified?: string

        Accessors

        • get isWeak(): boolean

          Branch is weak when its existence should not hinder deletion of its note. As a result, note with only weak branches should be immediately deleted. An example is shared or bookmarked clones - they are created automatically and exist for technical reasons, not as user-intended actions. From user perspective, they don't count as real clones and for the purpose of deletion should not act as a clone.

          -

          Returns boolean

        Methods

        • Delete a branch. If this is a last note's branch, delete the note as well.

          +

          Returns boolean

        Methods

        • Delete a branch. If this is a last note's branch, delete the note as well.

          Parameters

          • OptionaldeleteId: string

            optional delete identified

          • OptionaltaskContext: TaskContext

          Returns boolean

          true if note has been deleted, false otherwise

          -
        • Returns {
              branchId: undefined | string;
              isDeleted: boolean;
              isExpanded: boolean;
              noteId: string;
              notePosition: number;
              parentNoteId: string;
              prefix: null | string;
              utcDateModified: undefined | string;
          }

        • Mark the entity as (soft) deleted. It will be completely erased later.

          +
        • Returns {
              branchId: undefined | string;
              isDeleted: boolean;
              isExpanded: boolean;
              noteId: string;
              notePosition: number;
              parentNoteId: string;
              prefix: null | string;
              utcDateModified: undefined | string;
          }

        • Mark the entity as (soft) deleted. It will be completely erased later.

          This is a low-level method, for notes and branches use note.deleteNote() and 'branch.deleteBranch()` instead.

          -

          Parameters

          • deleteId: null | string = null

          Returns void

        +

        Parameters

        • deleteId: null | string = null

        Returns void

        diff --git a/docs/backend_api/classes/becca_entities_betapi_token.default.html b/docs/backend_api/classes/becca_entities_betapi_token.default.html index 354bc3b65..20e0ae420 100644 --- a/docs/backend_api/classes/becca_entities_betapi_token.default.html +++ b/docs/backend_api/classes/becca_entities_betapi_token.default.html @@ -1,4 +1,4 @@ -default | trilium

        EtapiToken is an entity representing token used to authenticate against Trilium REST API from client applications. +default | trilium

        trilium
          Preparing search index...

          EtapiToken is an entity representing token used to authenticate against Trilium REST API from client applications. Used by:

          • Trilium Sender
          • @@ -6,37 +6,37 @@ Used by:

          The format user is presented with is "_". This is also called "authToken" to distinguish it from tokenHash and token.

          -

          Hierarchy (View Summary)

          Constructors

          Properties

          blobId?: string
          dateCreated?: string
          dateModified?: string
          etapiTokenId?: string
          isProtected?: boolean
          isSynced?: boolean
          name: string
          tokenHash: string
          utcDateCreated: string
          utcDateModified?: string

          Accessors

          Methods

          • Returns {
                etapiTokenId: undefined | string;
                isDeleted: boolean;
                name: string;
                tokenHash: string;
                utcDateCreated: string;
                utcDateModified: undefined | string;
            }

          • Mark the entity as (soft) deleted. It will be completely erased later.

            +

          Hierarchy (View Summary)

          Index

          Constructors

          Properties

          blobId?: string
          dateCreated?: string
          dateModified?: string
          etapiTokenId?: string
          isProtected?: boolean
          isSynced?: boolean
          name: string
          tokenHash: string
          utcDateCreated: string
          utcDateModified?: string

          Accessors

          Methods

          • Returns {
                etapiTokenId: undefined | string;
                isDeleted: boolean;
                name: string;
                tokenHash: string;
                utcDateCreated: string;
                utcDateModified: undefined | string;
            }

          • Mark the entity as (soft) deleted. It will be completely erased later.

            This is a low-level method, for notes and branches use note.deleteNote() and 'branch.deleteBranch()` instead.

            -

            Parameters

            • deleteId: null | string = null

            Returns void

          +

          Parameters

          • deleteId: null | string = null

          Returns void

          diff --git a/docs/backend_api/classes/becca_entities_bnote.default.html b/docs/backend_api/classes/becca_entities_bnote.default.html index dfd3fdced..fe135eb4a 100644 --- a/docs/backend_api/classes/becca_entities_bnote.default.html +++ b/docs/backend_api/classes/becca_entities_bnote.default.html @@ -1,191 +1,194 @@ -default | trilium

          Trilium's main entity, which can represent text note, image, code note, file attachment etc.

          -

          Hierarchy (View Summary)

          Constructors

          Properties

          Accessors

          Methods

          __validateTypeName -_getContent -_setContent -addAttribute -addLabel -addRelation -areAllNotePathsArchived -beforeSaving -cloneTo -convertToParentAttachment -decrypt -deleteNote -eraseExcessRevisionSnapshots -generateHash -getAllNotePaths -getAncestorNoteIds -getAncestors -getAttachmentById -getAttachmentByTitle -getAttachments -getAttachmentsByRole -getAttribute -getAttributeCaseInsensitive -getAttributes -getAttributeValue -getBestNotePath -getBestNotePathString -getBranches -getChildBranches -getChildNotes -getContent -getDescendantNoteIds -getDistanceToAncestor -getFileName -getFlatText -getInheritingNotes -getJsonContent -getJsonContentSafely -getLabel -getLabelDefinitions -getLabels -getLabelValue -getLabelValues -getOwnedAttribute -getOwnedAttributes -getOwnedAttributeValue -getOwnedLabel -getOwnedLabels -getOwnedLabelValue -getOwnedLabelValues -getOwnedRelation -getOwnedRelations -getOwnedRelationValue -getParentBranches -getParentNotes -getPojo -getPojoToSave -getRelation -getRelationDefinitions -getRelations -getRelationTarget -getRelationValue -getRevisions -getScriptEnv -getSearchResultNotes -getSortedNotePathRecords -getStrongParentBranches -getSubtree -getSubtreeNoteIds -getSubtreeNotesIncludingTemplated -getTargetRelations -getTitleOrProtected -getUtcDateChanged -hasAncestor -hasAttribute -hasChildren -hasInheritableArchivedLabel -hasLabel -hasOwnedAttribute -hasOwnedLabel -hasOwnedRelation -hasRelation -hasStringContent -init -invalidateSubTree -invalidateThisCache -isContentAvailable -isDescendantOfNote -isEligibleForConversionToAttachment -isHiddenCompletely -isHtml -isImage -isInherited -isInHiddenSubtree -isJavaScript -isJson -isLabelTruthy -isLaunchBarConfig -isOptions -isRoot -isStringNote -markAsDeleted -markAsDeletedSimple -putEntityChange -removeAttribute -removeLabel -removeRelation -save -saveAttachment -saveRevision -searchNoteInSubtree -searchNotesInSubtree -setAttribute -setContent -setJsonContent -setLabel -setRelation -sortChildren -sortParents -toggleAttribute -toggleLabel -toggleRelation -update -updateFromRow -

          Constructors

          Properties

          __flatTextCache: null | string
          blobId?: string
          children: default[]
          contentAndAttachmentsAndRevisionsSize: null | number

          size of the note content, attachment contents and revision contents in bytes

          -
          contentAndAttachmentsSize: null | number

          size of the note content, attachment contents in bytes

          -
          contentSize: null | number

          size of the content in bytes

          -
          dateCreated?: string
          dateModified?: string
          isBeingDeleted: boolean

          set during the deletion operation, before it is completed (removed from becca completely).

          -
          isDecrypted: boolean
          isProtected?: boolean
          isSynced?: boolean
          mime: string
          noteId: string
          ownedAttributes: default[]
          parentBranches: default[]
          parents: default[]
          revisionCount: null | number

          number of note revisions for this note

          -
          targetRelations: default[]
          title: string
          type:
              | "search"
              | "file"
              | "text"
              | "code"
              | "relationMap"
              | "render"
              | "book"
              | "mermaid"
              | "canvas"
              | "image"
              | "noteMap"
              | "launcher"
              | "doc"
              | "contentWidget"
              | "webView"
              | "mindMap"
          utcDateCreated: string
          utcDateModified?: string

          Accessors

          Methods

          • Parameters

            • Optionaltype: null | string
            • Optionalname: null | string

            Returns void

          • Adds a new label to this note. The label attribute is saved and returned.

            Parameters

            • name: string

              name of the label, not including the leading #

            • value: string = ""

              text value of the label; optional

              -
            • isInheritable: boolean = false

            Returns default

          • Adds a new relation to this note. The relation attribute is saved and +

          • isInheritable: boolean = false

          Returns default

          • Adds a new relation to this note. The relation attribute is saved and returned.

            Parameters

            • name: string

              name of the relation, not including the leading ~

              -
            • targetNoteId: string
            • isInheritable: boolean = false

            Returns default

          • Some notes are eligible for conversion into an attachment of its parent, note must have these properties:

            +
          • targetNoteId: string
          • isInheritable: boolean = false

          Returns default

          • Some notes are eligible for conversion into an attachment of its parent, note must have these properties:

            • it has exactly one target relation
            • it has a relation from its parent note
            • @@ -197,36 +200,36 @@ returned.

              Currently, works only for image notes.

              In the future, this functionality might get more generic and some of the requirements relaxed.

            Parameters

            • opts: ConvertOpts = ...

            Returns null | default

            null if note is not eligible for conversion

            -
          • (Soft) delete a note and all its descendants.

            +
          • (Soft) delete a note and all its descendants.

            Parameters

            • deleteId: null | string = null

              optional delete identified

              -
            • taskContext: null | TaskContext = null

            Returns void

          • Gives all possible note paths leading to this note. Paths containing search note are ignored (could form cycles)

            +
          • taskContext: null | TaskContext = null

          Returns void

          • Gives all possible note paths leading to this note. Paths containing search note are ignored (could form cycles)

            Returns string[][]

            array of notePaths (each represented by array of noteIds constituting the particular note path)

            -
          • Parameters

            • type: string

              attribute type (label, relation, etc.)

            • name: string

              attribute name

            Returns null | default

            attribute of the given type and name. If there are more such attributes, first is returned. Returns null if there's no such attribute belonging to this note.

            -
          • Parameters

            • type: string
            • name: string
            • Optionalvalue: null | string

            Returns undefined | default

          • Beware that the method must not create a copy of the array, but actually returns its internal array +

          • Parameters

            • type: string
            • name: string
            • Optionalvalue: null | string

            Returns undefined | default

          • Beware that the method must not create a copy of the array, but actually returns its internal array (for performance reasons)

            Parameters

            • Optionaltype: string

              (optional) attribute type to filter

            • Optionalname: string

              (optional) attribute name to filter

            Returns default[]

            all note's attributes, including inherited ones

            -
          • Parameters

          • Parameters

            • type: string

              attribute type (label, relation, etc.)

            • name: string

              attribute name

            Returns null | string

            attribute value of given type and name or null if no such attribute exists.

            -
          • Returns a note path considered to be the "best"

            -

            Parameters

            • hoistedNoteId: string = 'root'

            Returns string[]

            array of noteIds constituting the particular note path

            -
          • Returns a note path considered to be the "best"

            -

            Parameters

            • hoistedNoteId: string = 'root'

            Returns string

            serialized note path (e.g. 'root/a1h315/js725h')

            -
          • Note content has quite special handling - it's not a separate entity, but a lazily loaded +

          • Returns a note path considered to be the "best"

            +

            Parameters

            • hoistedNoteId: string = "root"

            Returns string[]

            array of noteIds constituting the particular note path

            +
          • Returns a note path considered to be the "best"

            +

            Parameters

            • hoistedNoteId: string = "root"

            Returns string

            serialized note path (e.g. 'root/a1h315/js725h')

            +
          • Note content has quite special handling - it's not a separate entity, but a lazily loaded part of Note entity with its own sync. Reasons behind this hybrid design has been:

            • content can be quite large, and it's not necessary to load it / fill memory for any note access even if we don't need a content, especially for bulk operations like search
            • changes in the note metadata or title should not trigger note content sync (so we keep separate utcDateModified and entity changes records)
            • but to the user note content and title changes are one and the same - single dateModified (so all changes must go through Note and content is not a separate entity)
            -

            Returns string | Buffer<ArrayBufferLike>

          • This is used for:

            • fast searching
            • note similarity evaluation
            • @@ -234,114 +237,114 @@ part of Note entity with its own sync. Reasons behind this hybrid design has bee

            Returns string

            • returns flattened textual representation of note, prefixes and attributes
            -
          • Returns default[]

            returns only notes which are templated, does not include their subtrees in effect returns notes which are influenced by note's non-inheritable attributes

            -
          • Returns any

            valid object or null if the content cannot be parsed as JSON

            -
          • Returns any

            valid object or null if the content cannot be parsed as JSON

            +
          • Parameters

            • Optionalname: string

              label name to filter

            Returns default[]

            all note's labels (attributes with type label), including inherited ones

            -
          • Parameters

            • name: string

              label name

            Returns null | string

            label value if label exists, null otherwise

            -
          • Parameters

            • name: string

              label name to filter

            Returns string[]

            all note's label values, including inherited ones

            -
          • Parameters

            • type: string
            • name: string
            • value: null | string = null

            Returns null | default

            attribute belonging to this specific note (excludes inherited attributes)

            +
          • Parameters

            • type: string
            • name: string
            • value: null | string = null

            Returns null | default

            attribute belonging to this specific note (excludes inherited attributes)

            This method can be significantly faster than the getAttribute()

            -
          • Beware that the method must not create a copy of the array, but actually returns its internal array +

          • Beware that the method must not create a copy of the array, but actually returns its internal array (for performance reasons)

            Parameters

            • type: null | string = null

              (optional) attribute type to filter

            • name: null | string = null

              (optional) attribute name to filter

            • value: null | string = null

              (optional) attribute value to filter

            Returns default[]

            note's "owned" attributes - excluding inherited ones

            -
          • Parameters

          • Parameters

            • type: string

              attribute type (label, relation, etc.)

            • name: string

              attribute name

            Returns null | string

            attribute value of given type and name or null if no such attribute exists.

            -
          • Parameters

            • name: string

              label name to filter

            Returns default[]

            all note's labels (attributes with type label), excluding inherited ones

            -
          • Parameters

            • name: string

              label name

            Returns null | string

            label value if label exists, null otherwise

            -
          • Parameters

            • name: string

              label name to filter

            Returns string[]

            all note's label values, excluding inherited ones

            -
          • Parameters

            • Optionalname: null | string

              relation name to filter

            Returns default[]

            all note's relations (attributes with type relation), excluding inherited ones

            -
          • Parameters

            • name: string

              relation name

            Returns null | string

            relation value if relation exists, null otherwise

            -
          • Parameters

            • Optionalname: string

              relation name to filter

            Returns default[]

            all note's relations (attributes with type relation), including inherited ones

            -
          • Parameters

            • name: string

              relation name

            Returns null | string

            relation value if relation exists, null otherwise

            -
          • Returns null | "frontend" | "backend"

            JS script environment - either "frontend" or "backend"

            -
          • Parameters

            • hoistedNoteId: string = 'root'

            Returns NotePathRecord[]

          • Parameters

            • __namedParameters: { includeArchived?: boolean; includeHidden?: boolean; resolveSearch?: boolean } = {}

            Returns { notes: default[]; relationships: Relationship[] }

          • Parameters

            • __namedParameters: { includeArchived?: boolean; includeHidden?: boolean; resolveSearch?: boolean } = {}

            Returns string[]

            includes the subtree root note as well

            -
          • Parameters

            • type: string
            • name: string
            • value: null | string = null

            Returns boolean

          • Returns null | "frontend" | "backend"

            JS script environment - either "frontend" or "backend"

            +
          • Parameters

            • hoistedNoteId: string = "root"

            Returns NotePathRecord[]

          • Parameters

            • __namedParameters: { includeArchived?: boolean; includeHidden?: boolean; resolveSearch?: boolean } = {}

            Returns { notes: default[]; relationships: Relationship[] }

          • Parameters

            • __namedParameters: { includeArchived?: boolean; includeHidden?: boolean; resolveSearch?: boolean } = {}

            Returns string[]

            includes the subtree root note as well

            +
          • Parameters

            • type: string
            • name: string
            • value: null | string = null

            Returns boolean

          • Parameters

            • name: string

              label name

            • Optionalvalue: string

              label value

            Returns boolean

            true if label exists (including inherited)

            -
          • Parameters

          • Parameters

            • type: string
            • name: string

              attribute name

            • Optionalvalue: string

              attribute value

            Returns boolean

            true if note has an attribute with given type and name (excluding inherited)

            -
          • Parameters

            • name: string

              label name

            • Optionalvalue: string

              label value

            Returns boolean

            true if label exists (excluding inherited)

            -
          • Parameters

            • name: string

              relation name

            • Optionalvalue: string

              relation value

            Returns boolean

            true if relation exists (excluding inherited)

            -
          • Parameters

            • name: string

              relation name

            • Optionalvalue: string

              relation value

            Returns boolean

            true if relation exists (including inherited)

            -
          • Parameters

            • ancestorNoteId: string

            Returns boolean

            true if ancestorNoteId occurs in at least one of the note's paths

            -
          • Parameters

            • opts: ConvertOpts = ...

            Returns boolean

          • Returns boolean

            boolean - true if there's no non-hidden path, note is not cloned to the visible tree

            -
          • Parameters

            • ancestorNoteId: string

            Returns boolean

            true if ancestorNoteId occurs in at least one of the note's paths

            +
          • Parameters

            • opts: ConvertOpts = ...

            Returns boolean

          • Returns boolean

            boolean - true if there's no non-hidden path, note is not cloned to the visible tree

            +
          • Parameters

            • name: string

              label name

            Returns boolean

            true if label exists (including inherited) and does not have "false" value.

            -
          • Returns boolean

            true if this note is the root of the note tree. Root note has "root" noteId

            -
          • Mark the entity as (soft) deleted. It will be completely erased later.

            +
          • Returns boolean

            true if this note is the root of the note tree. Root note has "root" noteId

            +
          • Mark the entity as (soft) deleted. It will be completely erased later.

            This is a low-level method, for notes and branches use note.deleteNote() and 'branch.deleteBranch()` instead.

            -

            Parameters

            • deleteId: null | string = null

            Returns void

          • Removes given attribute name-value pair if it exists.

            Parameters

            • type: string

              attribute type (label, relation, etc.)

            • name: string

              attribute name

            • Optionalvalue: string

              attribute value (optional)

              -

            Returns void

          • Remove label name-value pair, if it exists.

            +

          Returns void

          • Remove label name-value pair, if it exists.

            Parameters

            • name: string

              label name

            • Optionalvalue: string

              label value

              -

            Returns void

          • Remove the relation name-value pair, if it exists.

            +

          Returns void

          • Remove the relation name-value pair, if it exists.

            Parameters

            • name: string

              relation name

            • Optionalvalue: string

              relation value (noteId)

              -

            Returns void

          • Parameters

            • __namedParameters: AttachmentRow
            • matchBy: undefined | "title" | "attachmentId" = "attachmentId"

              choose by which property we detect if to update an existing attachment. Supported values are either 'attachmentId' (default) or 'title'

              -

            Returns default

          • Update's given attribute's value or creates it if it doesn't exist

            +

          Returns default

          • Update's given attribute's value or creates it if it doesn't exist

            Parameters

            • type: AttributeType

              attribute type (label, relation, etc.)

            • name: string

              attribute name

            • Optionalvalue: string

              attribute value (optional)

              -

            Returns void

          • Parameters

            • content: string | Buffer<ArrayBufferLike>
            • opts: ContentOpts = {}

            Returns void

          • Update's given label's value or creates it if it doesn't exist

            +

          Returns void

          • Parameters

            • content: string | Buffer<ArrayBufferLike>
            • opts: ContentOpts = {}

            Returns void

          • Update's given label's value or creates it if it doesn't exist

            Parameters

            • name: string

              label name

            • Optionalvalue: string

              label value

              -

            Returns void

          • Update's given relation's value or creates it if it doesn't exist

            +

          Returns void

          • Update's given relation's value or creates it if it doesn't exist

            Parameters

            • name: string

              relation name

            • Optionalvalue: string

              relation value (noteId)

              -

            Returns void

          • Based on enabled, the attribute is either set or removed.

            +

          Returns void

          • Based on enabled, the attribute is either set or removed.

            Parameters

            • type: AttributeType

              attribute type ('relation', 'label' etc.)

            • enabled: boolean

              toggle On or Off

            • name: string

              attribute name

            • Optionalvalue: string

              attribute value (optional)

              -

            Returns void

          • Based on enabled, label is either set or removed.

            +

          Returns void

          • Based on enabled, label is either set or removed.

            Parameters

            • enabled: boolean

              toggle On or Off

            • name: string

              label name

            • Optionalvalue: string

              label value (optional)

              -

            Returns void

          • Based on enabled, relation is either set or removed.

            +

          Returns void

          • Based on enabled, relation is either set or removed.

            Parameters

            • enabled: boolean

              toggle On or Off

            • name: string

              relation name

            • Optionalvalue: string

              relation value (noteId)

              -

            Returns void

          +

          Returns void

          diff --git a/docs/backend_api/classes/becca_entities_boption.default.html b/docs/backend_api/classes/becca_entities_boption.default.html index 00343c60a..26241d098 100644 --- a/docs/backend_api/classes/becca_entities_boption.default.html +++ b/docs/backend_api/classes/becca_entities_boption.default.html @@ -1,34 +1,34 @@ -default | trilium

          Option represents a name-value pair, either directly configurable by the user or some system property.

          -

          Hierarchy (View Summary)

          Constructors

          Properties

          blobId?: string
          dateCreated?: string
          dateModified?: string
          isProtected?: boolean
          isSynced?: boolean
          name: string
          utcDateCreated: string
          utcDateModified?: string
          value: string

          Accessors

          Methods

          • Returns {
                isSynced: undefined | boolean;
                name: string;
                utcDateModified: undefined | string;
                value: string;
            }

          diff --git a/docs/backend_api/classes/becca_entities_brecent_note.default.html b/docs/backend_api/classes/becca_entities_brecent_note.default.html index e40727288..6fc461eb1 100644 --- a/docs/backend_api/classes/becca_entities_brecent_note.default.html +++ b/docs/backend_api/classes/becca_entities_brecent_note.default.html @@ -1,34 +1,34 @@ -default | trilium

          RecentNote represents recently visited note.

          -

          Hierarchy (View Summary)

          Constructors

          Properties

          blobId?: string
          dateCreated?: string
          dateModified?: string
          isProtected?: boolean
          isSynced?: boolean
          noteId: string
          notePath: string
          utcDateCreated: string
          utcDateModified?: string

          Accessors

          Methods

          diff --git a/docs/backend_api/classes/becca_entities_brevision.default.html b/docs/backend_api/classes/becca_entities_brevision.default.html index 795e1fb8f..57327e86d 100644 --- a/docs/backend_api/classes/becca_entities_brevision.default.html +++ b/docs/backend_api/classes/becca_entities_brevision.default.html @@ -1,57 +1,57 @@ -default | trilium

          Revision represents a snapshot of note's title and content at some point in the past. +default | trilium

          trilium
            Preparing search index...

            Revision represents a snapshot of note's title and content at some point in the past. It's used for seamless note versioning.

            -

            Hierarchy (View Summary)

            Constructors

            Properties

            blobId?: string
            content?: string | Buffer<ArrayBufferLike>
            contentLength?: number
            dateCreated?: string
            dateLastEdited?: string
            dateModified?: string
            isProtected?: boolean
            isSynced?: boolean
            mime: string
            noteId: string
            revisionId?: string
            title: string
            type: string
            utcDateCreated: string
            utcDateLastEdited?: string
            utcDateModified?: string

            Accessors

            Methods

            • Returns {
                  blobId: undefined | string;
                  content: undefined | string | Buffer<ArrayBufferLike>;
                  contentLength: undefined | number;
                  dateCreated: undefined | string;
                  dateLastEdited: undefined | string;
                  isProtected: undefined | boolean;
                  mime: string;
                  noteId: string;
                  revisionId: undefined | string;
                  title: undefined | string;
                  type: string;
                  utcDateCreated: string;
                  utcDateLastEdited: undefined | string;
                  utcDateModified: undefined | string;
              }

            • Returns {
                  blobId: undefined | string;
                  content: undefined | string | Buffer<ArrayBufferLike>;
                  contentLength: undefined | number;
                  dateCreated: undefined | string;
                  dateLastEdited: undefined | string;
                  isProtected: undefined | boolean;
                  mime: string;
                  noteId: string;
                  revisionId: undefined | string;
                  title: undefined | string;
                  type: string;
                  utcDateCreated: string;
                  utcDateLastEdited: undefined | string;
                  utcDateModified: undefined | string;
              }

            • Mark the entity as (soft) deleted. It will be completely erased later.

              +

            Hierarchy (View Summary)

            Index

            Constructors

            Properties

            blobId?: string
            content?: string | Buffer<ArrayBufferLike>
            contentLength?: number
            dateCreated?: string
            dateLastEdited?: string
            dateModified?: string
            isProtected?: boolean
            isSynced?: boolean
            mime: string
            noteId: string
            revisionId?: string
            title: string
            type:
                | "canvas"
                | "code"
                | "search"
                | "image"
                | "text"
                | "file"
                | "noteMap"
                | "launcher"
                | "doc"
                | "contentWidget"
                | "relationMap"
                | "render"
                | "mermaid"
                | "book"
                | "webView"
                | "mindMap"
                | "geoMap"
            utcDateCreated: string
            utcDateLastEdited?: string
            utcDateModified?: string

            Accessors

            Methods

            • Returns {
                  blobId: undefined | string;
                  content: undefined | string | Buffer<ArrayBufferLike>;
                  contentLength: undefined | number;
                  dateCreated: undefined | string;
                  dateLastEdited: undefined | string;
                  isProtected: undefined | boolean;
                  mime: string;
                  noteId: string;
                  revisionId: undefined | string;
                  title: undefined | string;
                  type:
                      | "canvas"
                      | "code"
                      | "search"
                      | "image"
                      | "text"
                      | "file"
                      | "noteMap"
                      | "launcher"
                      | "doc"
                      | "contentWidget"
                      | "relationMap"
                      | "render"
                      | "mermaid"
                      | "book"
                      | "webView"
                      | "mindMap"
                      | "geoMap";
                  utcDateCreated: string;
                  utcDateLastEdited: undefined
                  | string;
                  utcDateModified: undefined | string;
              }

            • Returns {
                  blobId: undefined | string;
                  content: undefined | string | Buffer<ArrayBufferLike>;
                  contentLength: undefined | number;
                  dateCreated: undefined | string;
                  dateLastEdited: undefined | string;
                  isProtected: undefined | boolean;
                  mime: string;
                  noteId: string;
                  revisionId: undefined | string;
                  title: undefined | string;
                  type:
                      | "canvas"
                      | "code"
                      | "search"
                      | "image"
                      | "text"
                      | "file"
                      | "noteMap"
                      | "launcher"
                      | "doc"
                      | "contentWidget"
                      | "relationMap"
                      | "render"
                      | "mermaid"
                      | "book"
                      | "webView"
                      | "mindMap"
                      | "geoMap";
                  utcDateCreated: string;
                  utcDateLastEdited: undefined
                  | string;
                  utcDateModified: undefined | string;
              }

            • Mark the entity as (soft) deleted. It will be completely erased later.

              This is a low-level method, for notes and branches use note.deleteNote() and 'branch.deleteBranch()` instead.

              -

              Parameters

              • deleteId: null | string = null

              Returns void

            • Parameters

              • content: string | Buffer<ArrayBufferLike>
              • opts: ContentOpts = {}

              Returns void

            +

            Parameters

            • deleteId: null | string = null

            Returns void

            • Parameters

              • content: string | Buffer<ArrayBufferLike>
              • opts: ContentOpts = {}

              Returns void

            diff --git a/docs/backend_api/hierarchy.html b/docs/backend_api/hierarchy.html index b2ea24957..7246e1bca 100644 --- a/docs/backend_api/hierarchy.html +++ b/docs/backend_api/hierarchy.html @@ -1 +1 @@ -trilium
            +trilium
            trilium
              Preparing search index...
              diff --git a/docs/backend_api/index.html b/docs/backend_api/index.html index 6c27bd07a..3887f5958 100644 --- a/docs/backend_api/index.html +++ b/docs/backend_api/index.html @@ -1,53 +1,54 @@ -trilium

              trilium

              TriliumNext Notes

              Docker Pulls GitHub Downloads (all assets, all releases)

              +trilium
              trilium
                Preparing search index...

                trilium

                TriliumNext Notes

                GitHub Sponsors Docker Pulls GitHub Downloads (all assets, all releases)

                English | Chinese | Russian | Japanese | Italian | Spanish

                TriliumNext Notes is an open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases.

                -

                See screenshots for quick overview:

                +

                See screenshots for quick overview:

                Trilium Screenshot

                -

                The original Trilium project is in maintenance mode

                -

                There are no special migration steps to migrate from a zadam/Trilium instance to a TriliumNext/Notes instance. Just upgrade your Trilium instance to the latest version and install TriliumNext/Notes as usual

                -

                Versions up to and including v0.90.4 are compatible with the latest zadam/trilium version of v0.63.7. Any later versions of TriliumNext have their sync versions incremented.

                -

                Feel free to join our official conversations. We would love to hear what features, suggestions, or issues you may have!

                +

                The original Trilium project is in maintenance mode

                +

                There are no special migration steps to migrate from a zadam/Trilium instance to a TriliumNext/Notes instance. Just upgrade your Trilium instance to the latest version and install TriliumNext/Notes as usual

                +

                Versions up to and including v0.90.4 are compatible with the latest zadam/trilium version of v0.63.7. Any later versions of TriliumNext have their sync versions incremented.

                +

                Feel free to join our official conversations. We would love to hear what features, suggestions, or issues you may have!

                  -
                • Matrix (For synchronous discussions) +
                • Matrix (For synchronous discussions)
                  • The General Matrix room is also bridged to XMPP
                • -
                • Github Discussions (For Asynchronous discussions)
                • -
                • Wiki (For common how-to questions and user guides)
                • +
                • Github Discussions (For Asynchronous discussions)
                • +
                • Wiki (For common how-to questions and user guides)
                -
                  -
                • Notes can be arranged into arbitrarily deep tree. Single note can be placed into multiple places in the tree (see cloning)
                • -
                • Rich WYSIWYG note editing including e.g. tables, images and math with markdown autoformat
                • -
                • Support for editing notes with source code, including syntax highlighting
                • -
                • Fast and easy navigation between notes, full text search and note hoisting
                • -
                • Seamless note versioning
                • -
                • Note attributes can be used for note organization, querying and advanced scripting
                • -
                • Synchronization with self-hosted sync server +

                  ✨ Check out the following third-party resources/communities for more TriliumNext related goodies:

                  -

                  To use TriliumNext on your desktop machine (Linux, MacOS, and Windows) you have a few options:

                  +

                  To use TriliumNext on your desktop machine (Linux, MacOS, and Windows) you have a few options:

                    -
                  • Download the binary release for your platform from the latest release page, unzip the package and run the trilium executable.
                  • +
                  • Download the binary release for your platform from the latest release page, unzip the package and run the trilium executable.
                  • Access TriliumNext via the web interface of a server installation (see below)
                    • Currently only the latest versions of Chrome & Firefox are supported (and tested).
                    • @@ -55,33 +56,35 @@
                    • (Coming Soon) TriliumNext will also be provided as a Flatpak
                    -

                    Currently when running TriliumNext/Notes on MacOS, you may get the following error:

                    +

                    Currently when running TriliumNext/Notes on MacOS, you may get the following error:

                    Apple could not verify "TriliumNext Notes" is free of malware and may harm your Mac or compromise your privacy.

                    -

                    You will need to run the command on your shell to resolve the error (documented here):

                    +

                    You will need to run the command on your shell to resolve the error (documented here):

                    xattr -c "/path/to/Trilium Next.app"
                     
                    -

                    To use TriliumNext on a mobile device:

                    -
                      -
                    • Use a mobile web browser to access the mobile interface of a server installation (see below)
                    • -
                    • Use of a mobile app is not yet supported (see here) to track mobile improvements.
                    • -
                    -

                    To install TriliumNext on your own server (including via Docker from Dockerhub) follow the server installation docs.

                    -

                    See wiki for complete list of documentation pages.

                    -

                    You can also read Patterns of personal knowledge base to get some inspiration on how you might use TriliumNext.

                    -
                    git clone https://github.com/TriliumNext/Notes.git
                    cd Notes
                    npm install
                    npm run server:start +

                    To use TriliumNext on a mobile device, you can use a mobile web browser to access the mobile interface of a server installation (see below).

                    +

                    If you prefer a native Android app, you can use TriliumDroid. Report bugs and missing features at their repository.

                    +

                    See issue https://github.com/TriliumNext/Notes/issues/72 for more information on mobile app support.

                    +

                    To install TriliumNext on your own server (including via Docker from Dockerhub) follow the server installation docs.

                    +

                    See wiki for complete list of documentation pages.

                    +

                    You can also read Patterns of personal knowledge base to get some inspiration on how you might use TriliumNext.

                    +
                    git clone https://github.com/TriliumNext/Notes.git
                    cd Notes
                    npm install
                    npm run server:start
                    -

                    Head on over to our Docs repo

                    -
                      -
                    • CKEditor 5 - best WYSIWYG editor on the market, very interactive and listening team
                    • -
                    • FancyTree - very feature rich tree library without real competition. TriliumNext Notes would not be the same without it.
                    • -
                    • CodeMirror - code editor with support for huge amount of languages
                    • -
                    • jsPlumb - visual connectivity library without competition. Used in relation maps and link maps
                    • +

                      We are currently transitioning to a new documentation mechanism. +Meanwhile you can still view the archived Docs repository.

                      +
                        +
                      • CKEditor 5 - best WYSIWYG editor on the market, very interactive and listening team
                      • +
                      • FancyTree - very feature rich tree library without real competition. TriliumNext Notes would not be the same without it.
                      • +
                      • CodeMirror - code editor with support for huge amount of languages
                      • +
                      • jsPlumb - visual connectivity library without competition. Used in relation maps and link maps
                      -

                      You can support the original Trilium developer using GitHub Sponsors, PayPal or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2). -Support for the TriliumNext organization will be possible in the near future.

                      -

                      This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

                      -
                +

                Support for the TriliumNext organization will be possible in the near future. For now, you can:

                +
                  +
                • Support continued development on TriliumNext by supporting our developers: eliandoran (See the repository insights for a full list)
                • +
                • Show a token of gratitude to the original Trilium developer (zadam) via PayPal or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
                • +
                +

                This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

                +
                diff --git a/docs/backend_api/interfaces/becca_entities_rows.AttachmentRow.html b/docs/backend_api/interfaces/becca_entities_rows.AttachmentRow.html index 051d71159..a390cfeac 100644 --- a/docs/backend_api/interfaces/becca_entities_rows.AttachmentRow.html +++ b/docs/backend_api/interfaces/becca_entities_rows.AttachmentRow.html @@ -1,14 +1,16 @@ -AttachmentRow | trilium
                interface AttachmentRow {
                    attachmentId?: string;
                    blobId?: string;
                    content?: string | Buffer<ArrayBufferLike>;
                    contentLength?: number;
                    dateModified?: string;
                    isProtected?: boolean;
                    mime: string;
                    ownerId?: string;
                    position?: number;
                    role: string;
                    title: string;
                    utcDateModified?: string;
                    utcDateScheduledForErasureSince?: string;
                }

                Properties

                attachmentId?: string
                blobId?: string
                content?: string | Buffer<ArrayBufferLike>
                contentLength?: number
                dateModified?: string
                isProtected?: boolean
                mime: string
                ownerId?: string
                position?: number
                role: string
                title: string
                utcDateModified?: string
                utcDateScheduledForErasureSince?: string
                +AttachmentRow | trilium
                trilium
                  Preparing search index...

                  Interface AttachmentRow

                  interface AttachmentRow {
                      attachmentId?: string;
                      blobId?: string;
                      content?: string | Buffer<ArrayBufferLike>;
                      contentLength?: number;
                      dateModified?: string;
                      deleteId?: string;
                      isDeleted?: boolean;
                      isProtected?: boolean;
                      mime: string;
                      ownerId?: string;
                      position?: number;
                      role: string;
                      title: string;
                      utcDateModified?: string;
                      utcDateScheduledForErasureSince?: string;
                  }
                  Index

                  Properties

                  attachmentId?: string
                  blobId?: string
                  content?: string | Buffer<ArrayBufferLike>
                  contentLength?: number
                  dateModified?: string
                  deleteId?: string
                  isDeleted?: boolean
                  isProtected?: boolean
                  mime: string
                  ownerId?: string
                  position?: number
                  role: string
                  title: string
                  utcDateModified?: string
                  utcDateScheduledForErasureSince?: string
                  diff --git a/docs/backend_api/interfaces/becca_entities_rows.AttributeRow.html b/docs/backend_api/interfaces/becca_entities_rows.AttributeRow.html index f0e9c027d..475adeb33 100644 --- a/docs/backend_api/interfaces/becca_entities_rows.AttributeRow.html +++ b/docs/backend_api/interfaces/becca_entities_rows.AttributeRow.html @@ -1,9 +1,9 @@ -AttributeRow | trilium
                  interface AttributeRow {
                      attributeId?: string;
                      isInheritable?: boolean;
                      name: string;
                      noteId?: string;
                      position?: null | number;
                      type: AttributeType;
                      utcDateModified?: string;
                      value?: string;
                  }

                  Properties

                  attributeId?: string
                  isInheritable?: boolean
                  name: string
                  noteId?: string
                  position?: null | number
                  utcDateModified?: string
                  value?: string
                  +AttributeRow | trilium
                  trilium
                    Preparing search index...

                    Interface AttributeRow

                    interface AttributeRow {
                        attributeId?: string;
                        isInheritable?: boolean;
                        name: string;
                        noteId?: string;
                        position?: null | number;
                        type: AttributeType;
                        utcDateModified?: string;
                        value?: string;
                    }
                    Index

                    Properties

                    attributeId?: string
                    isInheritable?: boolean
                    name: string
                    noteId?: string
                    position?: null | number
                    utcDateModified?: string
                    value?: string
                    diff --git a/docs/backend_api/interfaces/becca_entities_rows.BlobRow.html b/docs/backend_api/interfaces/becca_entities_rows.BlobRow.html index 0ac3c2ede..feb0bc446 100644 --- a/docs/backend_api/interfaces/becca_entities_rows.BlobRow.html +++ b/docs/backend_api/interfaces/becca_entities_rows.BlobRow.html @@ -1,6 +1,6 @@ -BlobRow | trilium
                    interface BlobRow {
                        blobId: string;
                        content: string | Buffer<ArrayBufferLike>;
                        contentLength: number;
                        dateModified: string;
                        utcDateModified: string;
                    }

                    Properties

                    blobId: string
                    content: string | Buffer<ArrayBufferLike>
                    contentLength: number
                    dateModified: string
                    utcDateModified: string
                    +BlobRow | trilium
                    trilium
                      Preparing search index...
                      interface BlobRow {
                          blobId: string;
                          content: string | Buffer<ArrayBufferLike>;
                          contentLength: number;
                          dateModified: string;
                          utcDateModified: string;
                      }
                      Index

                      Properties

                      blobId: string
                      content: string | Buffer<ArrayBufferLike>
                      contentLength: number
                      dateModified: string
                      utcDateModified: string
                      diff --git a/docs/backend_api/interfaces/becca_entities_rows.BranchRow.html b/docs/backend_api/interfaces/becca_entities_rows.BranchRow.html index 1cd89ccf9..f19ad64ce 100644 --- a/docs/backend_api/interfaces/becca_entities_rows.BranchRow.html +++ b/docs/backend_api/interfaces/becca_entities_rows.BranchRow.html @@ -1,9 +1,9 @@ -BranchRow | trilium
                      interface BranchRow {
                          branchId?: string;
                          isDeleted?: boolean;
                          isExpanded?: boolean;
                          noteId: string;
                          notePosition?: null | number;
                          parentNoteId: string;
                          prefix?: null | string;
                          utcDateModified?: string;
                      }

                      Properties

                      branchId?: string
                      isDeleted?: boolean
                      isExpanded?: boolean
                      noteId: string
                      notePosition?: null | number
                      parentNoteId: string
                      prefix?: null | string
                      utcDateModified?: string
                      +BranchRow | trilium
                      trilium
                        Preparing search index...

                        Interface BranchRow

                        interface BranchRow {
                            branchId?: string;
                            isDeleted?: boolean;
                            isExpanded?: boolean;
                            noteId: string;
                            notePosition?: null | number;
                            parentNoteId: string;
                            prefix?: null | string;
                            utcDateModified?: string;
                        }
                        Index

                        Properties

                        branchId?: string
                        isDeleted?: boolean
                        isExpanded?: boolean
                        noteId: string
                        notePosition?: null | number
                        parentNoteId: string
                        prefix?: null | string
                        utcDateModified?: string
                        diff --git a/docs/backend_api/interfaces/becca_entities_rows.EtapiTokenRow.html b/docs/backend_api/interfaces/becca_entities_rows.EtapiTokenRow.html index c7aef325d..7fe6f9325 100644 --- a/docs/backend_api/interfaces/becca_entities_rows.EtapiTokenRow.html +++ b/docs/backend_api/interfaces/becca_entities_rows.EtapiTokenRow.html @@ -1,7 +1,7 @@ -EtapiTokenRow | trilium
                        interface EtapiTokenRow {
                            etapiTokenId?: string;
                            isDeleted?: boolean;
                            name: string;
                            tokenHash: string;
                            utcDateCreated?: string;
                            utcDateModified?: string;
                        }

                        Properties

                        etapiTokenId?: string
                        isDeleted?: boolean
                        name: string
                        tokenHash: string
                        utcDateCreated?: string
                        utcDateModified?: string
                        +EtapiTokenRow | trilium
                        trilium
                          Preparing search index...

                          Interface EtapiTokenRow

                          interface EtapiTokenRow {
                              etapiTokenId?: string;
                              isDeleted?: boolean;
                              name: string;
                              tokenHash: string;
                              utcDateCreated?: string;
                              utcDateModified?: string;
                          }
                          Index

                          Properties

                          etapiTokenId?: string
                          isDeleted?: boolean
                          name: string
                          tokenHash: string
                          utcDateCreated?: string
                          utcDateModified?: string
                          diff --git a/docs/backend_api/interfaces/becca_entities_rows.NoteRow.html b/docs/backend_api/interfaces/becca_entities_rows.NoteRow.html index a73d80306..c8b329c50 100644 --- a/docs/backend_api/interfaces/becca_entities_rows.NoteRow.html +++ b/docs/backend_api/interfaces/becca_entities_rows.NoteRow.html @@ -1,14 +1,14 @@ -NoteRow | trilium
                          interface NoteRow {
                              blobId: string;
                              content?: string | Buffer<ArrayBufferLike>;
                              dateCreated: string;
                              dateModified: string;
                              deleteId: string;
                              isDeleted: boolean;
                              isProtected: boolean;
                              mime: string;
                              noteId: string;
                              title: string;
                              type:
                                  | "search"
                                  | "file"
                                  | "text"
                                  | "code"
                                  | "relationMap"
                                  | "render"
                                  | "book"
                                  | "mermaid"
                                  | "canvas"
                                  | "image"
                                  | "noteMap"
                                  | "launcher"
                                  | "doc"
                                  | "contentWidget"
                                  | "webView"
                                  | "mindMap";
                              utcDateCreated: string;
                              utcDateModified: string;
                          }

                          Properties

                          blobId: string
                          content?: string | Buffer<ArrayBufferLike>
                          dateCreated: string
                          dateModified: string
                          deleteId: string
                          isDeleted: boolean
                          isProtected: boolean
                          mime: string
                          noteId: string
                          title: string
                          type:
                              | "search"
                              | "file"
                              | "text"
                              | "code"
                              | "relationMap"
                              | "render"
                              | "book"
                              | "mermaid"
                              | "canvas"
                              | "image"
                              | "noteMap"
                              | "launcher"
                              | "doc"
                              | "contentWidget"
                              | "webView"
                              | "mindMap"
                          utcDateCreated: string
                          utcDateModified: string
                          +NoteRow | trilium
                          trilium
                            Preparing search index...
                            interface NoteRow {
                                blobId: string;
                                content?: string | Buffer<ArrayBufferLike>;
                                dateCreated: string;
                                dateModified: string;
                                deleteId: string;
                                isDeleted: boolean;
                                isProtected: boolean;
                                mime: string;
                                noteId: string;
                                title: string;
                                type:
                                    | "canvas"
                                    | "code"
                                    | "search"
                                    | "image"
                                    | "text"
                                    | "file"
                                    | "noteMap"
                                    | "launcher"
                                    | "doc"
                                    | "contentWidget"
                                    | "relationMap"
                                    | "render"
                                    | "mermaid"
                                    | "book"
                                    | "webView"
                                    | "mindMap"
                                    | "geoMap";
                                utcDateCreated: string;
                                utcDateModified: string;
                            }
                            Index

                            Properties

                            blobId: string
                            content?: string | Buffer<ArrayBufferLike>
                            dateCreated: string
                            dateModified: string
                            deleteId: string
                            isDeleted: boolean
                            isProtected: boolean
                            mime: string
                            noteId: string
                            title: string
                            type:
                                | "canvas"
                                | "code"
                                | "search"
                                | "image"
                                | "text"
                                | "file"
                                | "noteMap"
                                | "launcher"
                                | "doc"
                                | "contentWidget"
                                | "relationMap"
                                | "render"
                                | "mermaid"
                                | "book"
                                | "webView"
                                | "mindMap"
                                | "geoMap"
                            utcDateCreated: string
                            utcDateModified: string
                            diff --git a/docs/backend_api/interfaces/becca_entities_rows.OptionRow.html b/docs/backend_api/interfaces/becca_entities_rows.OptionRow.html index 00095a891..d7fdb6448 100644 --- a/docs/backend_api/interfaces/becca_entities_rows.OptionRow.html +++ b/docs/backend_api/interfaces/becca_entities_rows.OptionRow.html @@ -1,11 +1,11 @@ -OptionRow | trilium

                            Database representation of an option.

                            +OptionRow | trilium
                            trilium
                              Preparing search index...

                              Interface OptionRow

                              Database representation of an option.

                              Options are key-value pairs that are used to store information such as user preferences (for example the current theme, sync server information), but also information about the state of the application).

                              -
                              interface OptionRow {
                                  isSynced: boolean;
                                  name: string;
                                  utcDateModified?: string;
                                  value: string;
                              }

                              Properties

                              isSynced: boolean

                              true if the value should be synced across multiple instances (e.g. locale) or false if it should be local-only (e.g. theme).

                              -
                              name: string

                              The name of the option.

                              -
                              utcDateModified?: string
                              value: string

                              The value of the option.

                              -
                              +
                              interface OptionRow {
                                  isSynced: boolean;
                                  name: string;
                                  utcDateModified?: string;
                                  value: string;
                              }
                              Index

                              Properties

                              isSynced: boolean

                              true if the value should be synced across multiple instances (e.g. locale) or false if it should be local-only (e.g. theme).

                              +
                              name: string

                              The name of the option.

                              +
                              utcDateModified?: string
                              value: string

                              The value of the option.

                              +
                              diff --git a/docs/backend_api/interfaces/becca_entities_rows.RecentNoteRow.html b/docs/backend_api/interfaces/becca_entities_rows.RecentNoteRow.html index db4228e96..fa598d2ce 100644 --- a/docs/backend_api/interfaces/becca_entities_rows.RecentNoteRow.html +++ b/docs/backend_api/interfaces/becca_entities_rows.RecentNoteRow.html @@ -1,4 +1,4 @@ -RecentNoteRow | trilium
                              interface RecentNoteRow {
                                  noteId: string;
                                  notePath: string;
                                  utcDateCreated?: string;
                              }

                              Properties

                              noteId: string
                              notePath: string
                              utcDateCreated?: string
                              +RecentNoteRow | trilium
                              trilium
                                Preparing search index...

                                Interface RecentNoteRow

                                interface RecentNoteRow {
                                    noteId: string;
                                    notePath: string;
                                    utcDateCreated?: string;
                                }
                                Index

                                Properties

                                noteId: string
                                notePath: string
                                utcDateCreated?: string
                                diff --git a/docs/backend_api/interfaces/becca_entities_rows.RevisionRow.html b/docs/backend_api/interfaces/becca_entities_rows.RevisionRow.html index 4c1e15835..de1f3133a 100644 --- a/docs/backend_api/interfaces/becca_entities_rows.RevisionRow.html +++ b/docs/backend_api/interfaces/becca_entities_rows.RevisionRow.html @@ -1,14 +1,14 @@ -RevisionRow | trilium
                                interface RevisionRow {
                                    blobId?: string;
                                    contentLength?: number;
                                    dateCreated: string;
                                    dateLastEdited?: string;
                                    isProtected?: boolean;
                                    mime: string;
                                    noteId: string;
                                    revisionId?: string;
                                    title: string;
                                    type: string;
                                    utcDateCreated: string;
                                    utcDateLastEdited?: string;
                                    utcDateModified: string;
                                }

                                Properties

                                blobId?: string
                                contentLength?: number
                                dateCreated: string
                                dateLastEdited?: string
                                isProtected?: boolean
                                mime: string
                                noteId: string
                                revisionId?: string
                                title: string
                                type: string
                                utcDateCreated: string
                                utcDateLastEdited?: string
                                utcDateModified: string
                                +RevisionRow | trilium
                                trilium
                                  Preparing search index...

                                  Interface RevisionRow

                                  interface RevisionRow {
                                      blobId?: string;
                                      contentLength?: number;
                                      dateCreated: string;
                                      dateLastEdited?: string;
                                      isProtected?: boolean;
                                      mime: string;
                                      noteId: string;
                                      revisionId?: string;
                                      title: string;
                                      type:
                                          | "canvas"
                                          | "code"
                                          | "search"
                                          | "image"
                                          | "text"
                                          | "file"
                                          | "noteMap"
                                          | "launcher"
                                          | "doc"
                                          | "contentWidget"
                                          | "relationMap"
                                          | "render"
                                          | "mermaid"
                                          | "book"
                                          | "webView"
                                          | "mindMap"
                                          | "geoMap";
                                      utcDateCreated: string;
                                      utcDateLastEdited?: string;
                                      utcDateModified: string;
                                  }
                                  Index

                                  Properties

                                  blobId?: string
                                  contentLength?: number
                                  dateCreated: string
                                  dateLastEdited?: string
                                  isProtected?: boolean
                                  mime: string
                                  noteId: string
                                  revisionId?: string
                                  title: string
                                  type:
                                      | "canvas"
                                      | "code"
                                      | "search"
                                      | "image"
                                      | "text"
                                      | "file"
                                      | "noteMap"
                                      | "launcher"
                                      | "doc"
                                      | "contentWidget"
                                      | "relationMap"
                                      | "render"
                                      | "mermaid"
                                      | "book"
                                      | "webView"
                                      | "mindMap"
                                      | "geoMap"
                                  utcDateCreated: string
                                  utcDateLastEdited?: string
                                  utcDateModified: string
                                  diff --git a/docs/backend_api/media/README.md b/docs/backend_api/media/README.md index c427d98d0..1ae82efbd 100644 --- a/docs/backend_api/media/README.md +++ b/docs/backend_api/media/README.md @@ -1,6 +1,6 @@ # TriliumNext Notes -![Docker Pulls](https://img.shields.io/docker/pulls/triliumnext/notes) ![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/triliumnext/notes/total) +![GitHub Sponsors](https://img.shields.io/github/sponsors/eliandoran) ![Docker Pulls](https://img.shields.io/docker/pulls/triliumnext/notes) ![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/triliumnext/notes/total) [English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) @@ -37,6 +37,7 @@ Feel free to join our official conversations. We would love to hear what feature * Fast and easy [navigation between notes](https://triliumnext.github.io/Docs/Wiki/note-navigation), full text search and [note hoisting](https://triliumnext.github.io/Docs/Wiki/note-hoisting) * Seamless [note versioning](https://triliumnext.github.io/Docs/Wiki/note-revisions) * Note [attributes](https://triliumnext.github.io/Docs/Wiki/attributes) can be used for note organization, querying and advanced [scripting](https://triliumnext.github.io/Docs/Wiki/scripts) +* Direct OpenID and TOTP integration for more secure login * [Synchronization](https://triliumnext.github.io/Docs/Wiki/synchronization) with self-hosted sync server * there's a [3rd party service for hosting synchronisation server](https://trilium.cc/paid-hosting) * [Sharing](https://triliumnext.github.io/Docs/Wiki/sharing) (publishing) notes to public internet @@ -79,10 +80,11 @@ xattr -c "/path/to/Trilium Next.app" ### Mobile -To use TriliumNext on a mobile device: +To use TriliumNext on a mobile device, you can use a mobile web browser to access the mobile interface of a server installation (see below). -* Use a mobile web browser to access the mobile interface of a server installation (see below) -* Use of a mobile app is not yet supported ([see here](https://github.com/TriliumNext/Notes/issues/72)) to track mobile improvements. +If you prefer a native Android app, you can use [TriliumDroid](https://apt.izzysoft.de/fdroid/index/apk/eu.fliegendewurst.triliumdroid). Report bugs and missing features at [their repository](https://github.com/FliegendeWurst/TriliumDroid). + +See issue https://github.com/TriliumNext/Notes/issues/72 for more information on mobile app support. ### Server @@ -107,7 +109,8 @@ npm run server:start ### Documentation -Head on over to our [Docs repo](https://github.com/TriliumNext/Docs) +We are currently transitioning to a new documentation mechanism. +Meanwhile you can still view the [archived Docs repository](https://github.com/TriliumNext/Docs). ## 👏 Shoutouts @@ -118,8 +121,10 @@ Head on over to our [Docs repo](https://github.com/TriliumNext/Docs) ## 🤝 Support -You can support the original Trilium developer using GitHub Sponsors, [PayPal](https://paypal.me/za4am) or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2). -Support for the TriliumNext organization will be possible in the near future. +Support for the TriliumNext organization will be possible in the near future. For now, you can: +- Support continued development on TriliumNext by supporting our developers: [eliandoran](https://github.com/sponsors/eliandoran) (See the [repository insights]([developers]([url](https://github.com/TriliumNext/Notes/graphs/contributors))) for a full list) +- Show a token of gratitude to the original Trilium developer ([zadam](https://github.com/sponsors/zadam)) via [PayPal](https://paypal.me/za4am) or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2). + ## 🔑 License diff --git a/docs/backend_api/modules.html b/docs/backend_api/modules.html index 9474eb0f2..91b755a6f 100644 --- a/docs/backend_api/modules.html +++ b/docs/backend_api/modules.html @@ -1 +1 @@ -trilium
                                  +trilium
                                  trilium
                                    Preparing search index...
                                    diff --git a/docs/backend_api/modules/becca_entities_abstract_becca_entity.html b/docs/backend_api/modules/becca_entities_abstract_becca_entity.html index 0f74e1eca..5d267b1b3 100644 --- a/docs/backend_api/modules/becca_entities_abstract_becca_entity.html +++ b/docs/backend_api/modules/becca_entities_abstract_becca_entity.html @@ -1 +1 @@ -becca/entities/abstract_becca_entity | trilium

                                    Module becca/entities/abstract_becca_entity

                                    Classes

                                    default
                                    +becca/entities/abstract_becca_entity | trilium
                                    trilium
                                      Preparing search index...

                                      Module becca/entities/abstract_becca_entity

                                      Classes

                                      default
                                      diff --git a/docs/backend_api/modules/becca_entities_battachment.html b/docs/backend_api/modules/becca_entities_battachment.html index 3aaf18d5b..1fac31d3b 100644 --- a/docs/backend_api/modules/becca_entities_battachment.html +++ b/docs/backend_api/modules/becca_entities_battachment.html @@ -1 +1 @@ -becca/entities/battachment | trilium

                                      Module becca/entities/battachment

                                      Classes

                                      default
                                      +becca/entities/battachment | trilium
                                      trilium
                                        Preparing search index...

                                        Module becca/entities/battachment

                                        Classes

                                        default
                                        diff --git a/docs/backend_api/modules/becca_entities_battribute.html b/docs/backend_api/modules/becca_entities_battribute.html index c0c8afd9e..fcb6482c9 100644 --- a/docs/backend_api/modules/becca_entities_battribute.html +++ b/docs/backend_api/modules/becca_entities_battribute.html @@ -1 +1 @@ -becca/entities/battribute | trilium

                                        Module becca/entities/battribute

                                        Classes

                                        default
                                        +becca/entities/battribute | trilium
                                        trilium
                                          Preparing search index...

                                          Module becca/entities/battribute

                                          Classes

                                          default
                                          diff --git a/docs/backend_api/modules/becca_entities_bblob.html b/docs/backend_api/modules/becca_entities_bblob.html index 753ea4928..a92bf4f9f 100644 --- a/docs/backend_api/modules/becca_entities_bblob.html +++ b/docs/backend_api/modules/becca_entities_bblob.html @@ -1 +1 @@ -becca/entities/bblob | trilium

                                          Module becca/entities/bblob

                                          Classes

                                          default
                                          +becca/entities/bblob | trilium
                                          trilium
                                            Preparing search index...

                                            Module becca/entities/bblob

                                            Classes

                                            default
                                            diff --git a/docs/backend_api/modules/becca_entities_bbranch.html b/docs/backend_api/modules/becca_entities_bbranch.html index 91127d8c0..22e909d64 100644 --- a/docs/backend_api/modules/becca_entities_bbranch.html +++ b/docs/backend_api/modules/becca_entities_bbranch.html @@ -1 +1 @@ -becca/entities/bbranch | trilium

                                            Module becca/entities/bbranch

                                            Classes

                                            default
                                            +becca/entities/bbranch | trilium
                                            trilium
                                              Preparing search index...

                                              Module becca/entities/bbranch

                                              Classes

                                              default
                                              diff --git a/docs/backend_api/modules/becca_entities_betapi_token.html b/docs/backend_api/modules/becca_entities_betapi_token.html index f15402d96..85b36e400 100644 --- a/docs/backend_api/modules/becca_entities_betapi_token.html +++ b/docs/backend_api/modules/becca_entities_betapi_token.html @@ -1 +1 @@ -becca/entities/betapi_token | trilium

                                              Module becca/entities/betapi_token

                                              Classes

                                              default
                                              +becca/entities/betapi_token | trilium
                                              trilium
                                                Preparing search index...

                                                Module becca/entities/betapi_token

                                                Classes

                                                default
                                                diff --git a/docs/backend_api/modules/becca_entities_bnote.html b/docs/backend_api/modules/becca_entities_bnote.html index 69812731d..5f38ddaf7 100644 --- a/docs/backend_api/modules/becca_entities_bnote.html +++ b/docs/backend_api/modules/becca_entities_bnote.html @@ -1 +1 @@ -becca/entities/bnote | trilium

                                                Module becca/entities/bnote

                                                Classes

                                                default
                                                +becca/entities/bnote | trilium
                                                trilium
                                                  Preparing search index...

                                                  Module becca/entities/bnote

                                                  Classes

                                                  default
                                                  diff --git a/docs/backend_api/modules/becca_entities_boption.html b/docs/backend_api/modules/becca_entities_boption.html index c4a31d7fc..cbd8f34ad 100644 --- a/docs/backend_api/modules/becca_entities_boption.html +++ b/docs/backend_api/modules/becca_entities_boption.html @@ -1 +1 @@ -becca/entities/boption | trilium

                                                  Module becca/entities/boption

                                                  Classes

                                                  default
                                                  +becca/entities/boption | trilium
                                                  trilium
                                                    Preparing search index...

                                                    Module becca/entities/boption

                                                    Classes

                                                    default
                                                    diff --git a/docs/backend_api/modules/becca_entities_brecent_note.html b/docs/backend_api/modules/becca_entities_brecent_note.html index b05f29ca6..57918a058 100644 --- a/docs/backend_api/modules/becca_entities_brecent_note.html +++ b/docs/backend_api/modules/becca_entities_brecent_note.html @@ -1 +1 @@ -becca/entities/brecent_note | trilium

                                                    Module becca/entities/brecent_note

                                                    Classes

                                                    default
                                                    +becca/entities/brecent_note | trilium
                                                    trilium
                                                      Preparing search index...

                                                      Module becca/entities/brecent_note

                                                      Classes

                                                      default
                                                      diff --git a/docs/backend_api/modules/becca_entities_brevision.html b/docs/backend_api/modules/becca_entities_brevision.html index 13307b607..679d3251e 100644 --- a/docs/backend_api/modules/becca_entities_brevision.html +++ b/docs/backend_api/modules/becca_entities_brevision.html @@ -1 +1 @@ -becca/entities/brevision | trilium

                                                      Module becca/entities/brevision

                                                      Classes

                                                      default
                                                      +becca/entities/brevision | trilium
                                                      trilium
                                                        Preparing search index...

                                                        Module becca/entities/brevision

                                                        Classes

                                                        default
                                                        diff --git a/docs/backend_api/modules/becca_entities_rows.html b/docs/backend_api/modules/becca_entities_rows.html index 83ab95bdc..3e78a38d4 100644 --- a/docs/backend_api/modules/becca_entities_rows.html +++ b/docs/backend_api/modules/becca_entities_rows.html @@ -1 +1 @@ -becca/entities/rows | trilium
                                                        +becca/entities/rows | trilium
                                                        trilium
                                                          Preparing search index...
                                                          diff --git a/docs/backend_api/modules/services_backend_script_api.html b/docs/backend_api/modules/services_backend_script_api.html index 94a7273cf..599ca976b 100644 --- a/docs/backend_api/modules/services_backend_script_api.html +++ b/docs/backend_api/modules/services_backend_script_api.html @@ -1 +1 @@ -services/backend_script_api | trilium

                                                          Module services/backend_script_api

                                                          Variables

                                                          default
                                                          +services/backend_script_api | trilium
                                                          trilium
                                                            Preparing search index...

                                                            Module services/backend_script_api

                                                            Variables

                                                            default
                                                            diff --git a/docs/backend_api/modules/services_sql.html b/docs/backend_api/modules/services_sql.html index f845ae612..917e02a1b 100644 --- a/docs/backend_api/modules/services_sql.html +++ b/docs/backend_api/modules/services_sql.html @@ -1 +1 @@ -services/sql | trilium

                                                            Module services/sql

                                                            Variables

                                                            default
                                                            +services/sql | trilium
                                                            trilium
                                                              Preparing search index...

                                                              Module services/sql

                                                              Variables

                                                              default
                                                              diff --git a/docs/backend_api/types/becca_entities_rows.AttributeType.html b/docs/backend_api/types/becca_entities_rows.AttributeType.html index dd5dac765..4064afcc1 100644 --- a/docs/backend_api/types/becca_entities_rows.AttributeType.html +++ b/docs/backend_api/types/becca_entities_rows.AttributeType.html @@ -1 +1 @@ -AttributeType | trilium
                                                              AttributeType: "label" | "relation" | "label-definition" | "relation-definition"
                                                              +AttributeType | trilium
                                                              trilium
                                                                Preparing search index...

                                                                Type Alias AttributeType

                                                                AttributeType: "label" | "relation" | "label-definition" | "relation-definition"
                                                                diff --git a/docs/backend_api/types/becca_entities_rows.NoteType.html b/docs/backend_api/types/becca_entities_rows.NoteType.html index 718929fff..b23658484 100644 --- a/docs/backend_api/types/becca_entities_rows.NoteType.html +++ b/docs/backend_api/types/becca_entities_rows.NoteType.html @@ -1 +1 @@ -NoteType | trilium
                                                                NoteType: typeof ALLOWED_NOTE_TYPES[number]
                                                                +NoteType | trilium
                                                                trilium
                                                                  Preparing search index...

                                                                  Type Alias NoteType

                                                                  NoteType: typeof ALLOWED_NOTE_TYPES[number]
                                                                  diff --git a/docs/backend_api/variables/becca_entities_rows.ALLOWED_NOTE_TYPES.html b/docs/backend_api/variables/becca_entities_rows.ALLOWED_NOTE_TYPES.html index 2e533747b..9fdcc4e9f 100644 --- a/docs/backend_api/variables/becca_entities_rows.ALLOWED_NOTE_TYPES.html +++ b/docs/backend_api/variables/becca_entities_rows.ALLOWED_NOTE_TYPES.html @@ -1,4 +1,4 @@ -ALLOWED_NOTE_TYPES | trilium

                                                                  Variable ALLOWED_NOTE_TYPESConst

                                                                  ALLOWED_NOTE_TYPES: readonly [
                                                                      "file",
                                                                      "image",
                                                                      "search",
                                                                      "noteMap",
                                                                      "launcher",
                                                                      "doc",
                                                                      "contentWidget",
                                                                      "text",
                                                                      "relationMap",
                                                                      "render",
                                                                      "canvas",
                                                                      "mermaid",
                                                                      "book",
                                                                      "webView",
                                                                      "code",
                                                                      "mindMap",
                                                                  ] = ...

                                                                  There are many different Note types, some of which are entirely opaque to the +ALLOWED_NOTE_TYPES | trilium

                                                                  trilium
                                                                    Preparing search index...

                                                                    Variable ALLOWED_NOTE_TYPESConst

                                                                    ALLOWED_NOTE_TYPES: readonly [
                                                                        "file",
                                                                        "image",
                                                                        "search",
                                                                        "noteMap",
                                                                        "launcher",
                                                                        "doc",
                                                                        "contentWidget",
                                                                        "text",
                                                                        "relationMap",
                                                                        "render",
                                                                        "canvas",
                                                                        "mermaid",
                                                                        "book",
                                                                        "webView",
                                                                        "code",
                                                                        "mindMap",
                                                                        "geoMap",
                                                                    ] = ...

                                                                    There are many different Note types, some of which are entirely opaque to the end user. Those types should be used only for checking against, they are not for direct use.

                                                                    -
                                                                    +
                                                                    diff --git a/docs/backend_api/variables/services_backend_script_api.default.html b/docs/backend_api/variables/services_backend_script_api.default.html index 17130a55a..e9660d620 100644 --- a/docs/backend_api/variables/services_backend_script_api.default.html +++ b/docs/backend_api/variables/services_backend_script_api.default.html @@ -1 +1 @@ -default | trilium
                                                                    default: new (currentNote: default, apiParams: ApiParams) => Api
                                                                    +default | trilium
                                                                    trilium
                                                                      Preparing search index...
                                                                      default: new (currentNote: default, apiParams: ApiParams) => Api
                                                                      diff --git a/docs/backend_api/variables/services_sql.default.html b/docs/backend_api/variables/services_sql.default.html index 7539d0148..d91b7bf1b 100644 --- a/docs/backend_api/variables/services_sql.default.html +++ b/docs/backend_api/variables/services_sql.default.html @@ -1,7 +1,7 @@ -default | trilium
                                                                      default: {
                                                                          copyDatabase: (targetFilePath: string) => Promise<void>;
                                                                          dbConnection: Database;
                                                                          disableSlowQueryLogging: <T>(cb: () => T) => T;
                                                                          execute: (query: string, params?: any) => RunResult;
                                                                          executeMany: (query: string, params: any) => void;
                                                                          executeScript: (query: string) => DatabaseType;
                                                                          fillParamList: (
                                                                              paramIds: string[] | Set<string>,
                                                                              truncate?: boolean,
                                                                          ) => void;
                                                                          getColumn: <T>(query: string, params?: any) => T[];
                                                                          getManyRows: <T>(query: string, params: any) => T[];
                                                                          getMap: <K extends string | number | symbol, V>(
                                                                              query: string,
                                                                              params?: any,
                                                                          ) => Record<K, V>;
                                                                          getRawRows: <T extends {} | unknown[]>(query: string, params?: any) => T[];
                                                                          getRow: <T>(query: string, params?: any) => T;
                                                                          getRowOrNull: <T>(query: string, params?: any) => T | null;
                                                                          getRows: <T>(query: string, params?: any) => T[];
                                                                          getValue: <T>(query: string, params?: any) => T;
                                                                          insert: <T extends {}>(
                                                                              tableName: string,
                                                                              rec: T,
                                                                              replace?: boolean,
                                                                          ) => undefined | null | number | bigint;
                                                                          iterateRows: <T>(query: string, params?: any) => IterableIterator<T>;
                                                                          rebuildIntegrationTestDatabase: () => void;
                                                                          replace: <T extends {}>(tableName: string, rec: T) => number | null;
                                                                          transactional: <T>(
                                                                              func: (statement: Statement<unknown[], unknown>) => T,
                                                                          ) => any;
                                                                          upsert: <T extends {}>(
                                                                              tableName: string,
                                                                              primaryKey: string,
                                                                              rec: T,
                                                                          ) => void;
                                                                      }

                                                                      Type declaration

                                                                      • copyDatabase: (targetFilePath: string) => Promise<void>
                                                                      • dbConnection: Database
                                                                      • disableSlowQueryLogging: <T>(cb: () => T) => T
                                                                      • execute: (query: string, params?: any) => RunResult

                                                                        Execute SQL

                                                                        -
                                                                      • executeMany: (query: string, params: any) => void
                                                                      • executeScript: (query: string) => DatabaseType
                                                                      • fillParamList: (paramIds: string[] | Set<string>, truncate?: boolean) => void
                                                                      • getColumn: <T>(query: string, params?: any) => T[]

                                                                        Get a first column in an array.

                                                                        -
                                                                      • getManyRows: <T>(query: string, params: any) => T[]
                                                                      • getMap: <K extends string | number | symbol, V>(
                                                                            query: string,
                                                                            params?: any,
                                                                        ) => Record<K, V>

                                                                        Get a map of first column mapping to second column.

                                                                        -
                                                                      • getRawRows: <T extends {} | unknown[]>(query: string, params?: any) => T[]
                                                                      • getRow: <T>(query: string, params?: any) => T

                                                                        Get first returned row.

                                                                        -
                                                                      • getRowOrNull: <T>(query: string, params?: any) => T | null
                                                                      • getRows: <T>(query: string, params?: any) => T[]

                                                                        Get all returned rows.

                                                                        -
                                                                      • getValue: <T>(query: string, params?: any) => T

                                                                        Get single value from the given query - first column from first returned row.

                                                                        -
                                                                      • insert: <T extends {}>(
                                                                            tableName: string,
                                                                            rec: T,
                                                                            replace?: boolean,
                                                                        ) => undefined | null | number | bigint
                                                                      • iterateRows: <T>(query: string, params?: any) => IterableIterator<T>
                                                                      • rebuildIntegrationTestDatabase: () => void
                                                                      • replace: <T extends {}>(tableName: string, rec: T) => number | null
                                                                      • transactional: <T>(func: (statement: Statement<unknown[], unknown>) => T) => any
                                                                      • upsert: <T extends {}>(tableName: string, primaryKey: string, rec: T) => void
                                                                      +default | trilium
                                                                      trilium
                                                                        Preparing search index...

                                                                        Variable default

                                                                        default: {
                                                                            copyDatabase: (targetFilePath: string) => Promise<void>;
                                                                            dbConnection: Database;
                                                                            disableSlowQueryLogging: <T>(cb: () => T) => T;
                                                                            execute: (query: string, params?: any) => RunResult;
                                                                            executeMany: (query: string, params: any) => void;
                                                                            executeScript: (query: string) => Database;
                                                                            fillParamList: (
                                                                                paramIds: string[] | Set<string>,
                                                                                truncate?: boolean,
                                                                            ) => void;
                                                                            getColumn: <T>(query: string, params?: any) => T[];
                                                                            getManyRows: <T>(query: string, params: any) => T[];
                                                                            getMap: <K extends string | number | symbol, V>(
                                                                                query: string,
                                                                                params?: any,
                                                                            ) => Record<K, V>;
                                                                            getRawRows: <T extends {} | unknown[]>(query: string, params?: any) => T[];
                                                                            getRow: <T>(query: string, params?: any) => T;
                                                                            getRowOrNull: <T>(query: string, params?: any) => null | T;
                                                                            getRows: <T>(query: string, params?: any) => T[];
                                                                            getValue: <T>(query: string, params?: any) => T;
                                                                            insert: <T extends {}>(
                                                                                tableName: string,
                                                                                rec: T,
                                                                                replace?: boolean,
                                                                            ) => undefined | null | number | bigint;
                                                                            iterateRows: <T>(query: string, params?: any) => IterableIterator<T>;
                                                                            rebuildIntegrationTestDatabase: (dbPath?: string) => void;
                                                                            replace: <T extends {}>(tableName: string, rec: T) => null | number;
                                                                            transactional: <T>(func: (statement: Statement) => T) => T;
                                                                            upsert: <T extends {}>(
                                                                                tableName: string,
                                                                                primaryKey: string,
                                                                                rec: T,
                                                                            ) => void;
                                                                        }

                                                                        Type declaration

                                                                        • copyDatabase: (targetFilePath: string) => Promise<void>
                                                                        • dbConnection: Database
                                                                        • disableSlowQueryLogging: <T>(cb: () => T) => T
                                                                        • execute: (query: string, params?: any) => RunResult

                                                                          Execute SQL

                                                                          +
                                                                        • executeMany: (query: string, params: any) => void
                                                                        • executeScript: (query: string) => Database
                                                                        • fillParamList: (paramIds: string[] | Set<string>, truncate?: boolean) => void
                                                                        • getColumn: <T>(query: string, params?: any) => T[]

                                                                          Get a first column in an array.

                                                                          +
                                                                        • getManyRows: <T>(query: string, params: any) => T[]
                                                                        • getMap: <K extends string | number | symbol, V>(
                                                                              query: string,
                                                                              params?: any,
                                                                          ) => Record<K, V>

                                                                          Get a map of first column mapping to second column.

                                                                          +
                                                                        • getRawRows: <T extends {} | unknown[]>(query: string, params?: any) => T[]
                                                                        • getRow: <T>(query: string, params?: any) => T

                                                                          Get first returned row.

                                                                          +
                                                                        • getRowOrNull: <T>(query: string, params?: any) => null | T
                                                                        • getRows: <T>(query: string, params?: any) => T[]

                                                                          Get all returned rows.

                                                                          +
                                                                        • getValue: <T>(query: string, params?: any) => T

                                                                          Get single value from the given query - first column from first returned row.

                                                                          +
                                                                        • insert: <T extends {}>(
                                                                              tableName: string,
                                                                              rec: T,
                                                                              replace?: boolean,
                                                                          ) => undefined | null | number | bigint
                                                                        • iterateRows: <T>(query: string, params?: any) => IterableIterator<T>
                                                                        • rebuildIntegrationTestDatabase: (dbPath?: string) => void
                                                                        • replace: <T extends {}>(tableName: string, rec: T) => null | number
                                                                        • transactional: <T>(func: (statement: Statement) => T) => T
                                                                        • upsert: <T extends {}>(tableName: string, primaryKey: string, rec: T) => void