diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index be708db9..ad60575a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: "13.x" + node-version: "16.x" - name: NPM install run: npm install - name: ESLINT diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css index 5674cf39..5b255a37 100644 --- a/docs/assets/highlight.css +++ b/docs/assets/highlight.css @@ -1,15 +1,19 @@ :root { - --light-code-background: #FFFFFF; - --dark-code-background: #1E1E1E; + --light-code-background: #ffffff; + --dark-code-background: #1e1e1e; } -@media (prefers-color-scheme: light) { :root { - --code-background: var(--light-code-background); -} } +@media (prefers-color-scheme: light) { + :root { + --code-background: var(--light-code-background); + } +} -@media (prefers-color-scheme: dark) { :root { - --code-background: var(--dark-code-background); -} } +@media (prefers-color-scheme: dark) { + :root { + --code-background: var(--dark-code-background); + } +} :root[data-theme='light'] { --code-background: var(--light-code-background); @@ -19,4 +23,7 @@ --code-background: var(--dark-code-background); } -pre, code { background: var(--code-background); } +pre, +code { + background: var(--code-background); +} diff --git a/docs/assets/main.js b/docs/assets/main.js index 4c8fa615..25758e8b 100644 --- a/docs/assets/main.js +++ b/docs/assets/main.js @@ -1,7 +1,2235 @@ -"use strict"; -"use strict";(()=>{var Se=Object.create;var re=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var Te=Object.getOwnPropertyNames;var ke=Object.getPrototypeOf,Qe=Object.prototype.hasOwnProperty;var Pe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ie=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Te(e))!Qe.call(t,i)&&i!==r&&re(t,i,{get:()=>e[i],enumerable:!(n=we(e,i))||n.enumerable});return t};var Ce=(t,e,r)=>(r=t!=null?Se(ke(t)):{},Ie(e||!t||!t.__esModule?re(r,"default",{value:t,enumerable:!0}):r,t));var ae=Pe((se,oe)=>{(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i0){var d=t.utils.clone(r)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(n.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,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n1&&(oe&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(r+=n[u+1]*i[d+1],u+=2,d+=2);return r},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),r=1,n=0;r0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),y;m in s.node.edges?y=s.node.edges[m]:(y=new t.TokenSet,s.node.edges[m]=y),s.str.length==1&&(y.final=!0),i.push({node:y,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.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(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=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,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},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,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<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 r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,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 r=e.peekLexeme();if(r!=null)switch(r.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 n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.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 r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.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 '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;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 r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;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,r){typeof define=="function"&&define.amd?define(r):typeof se=="object"?oe.exports=r():e.lunr=r()}(this,function(){return t})})()});var ne=[];function G(t,e){ne.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureActivePageVisible(),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){ne.forEach(r=>{e.querySelectorAll(r.selector).forEach(n=>{n.dataset.hasInstance||(new r.constructor({el:n,app:this}),n.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),r=e?.parentElement;for(;r&&!r.classList.contains(".tsd-navigation");)r instanceof HTMLDetailsElement&&(r.open=!0),r=r.parentElement;if(e){let n=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=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 r=e.parentElement;for(;r&&r.tagName!=="SECTION";)r=r.parentElement;if(r&&r.offsetParent==null){this.alwaysVisibleMember=r,r.classList.add("always-visible");let n=document.createElement("p");n.classList.add("warning"),n.textContent="This member is normally hidden due to your filter settings.",r.prepend(n)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let r;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(r),r=setTimeout(()=>{e.classList.remove("visible"),r=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let r;return()=>{clearTimeout(r),r=setTimeout(()=>t(),e)}};var ce=Ce(ae());function de(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("tsd-search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let r=document.querySelector("#tsd-search input"),n=document.querySelector("#tsd-search .results");if(!r||!n)throw new Error("The input field or the result list wrapper was not found");let i=!1;n.addEventListener("mousedown",()=>i=!0),n.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Oe(t,n,r,s)}function Oe(t,e,r,n){r.addEventListener("input",ie(()=>{Re(t,e,r,n)},200));let i=!1;r.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Fe(e,r):s.key=="Escape"?r.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),r.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!r.matches(":focus")&&s.key==="/"&&(r.focus(),s.preventDefault())})}function _e(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=ce.Index.load(window.searchData.index))}function Re(t,e,r,n){if(_e(n,t),!n.index||!n.data)return;e.textContent="";let i=r.value.trim(),s=i?n.index.search(`*${i}*`):[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o${le(l.parent,i)}.${u}`);let d=document.createElement("li");d.classList.value=l.classes??"";let m=document.createElement("a");m.href=n.base+l.url,m.innerHTML=u,d.append(m),e.appendChild(d)}}function ue(t,e){let r=t.querySelector(".current");if(!r)r=t.querySelector(e==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let n=r;if(e===1)do n=n.nextElementSibling??void 0;while(n instanceof HTMLElement&&n.offsetParent==null);else do n=n.previousElementSibling??void 0;while(n instanceof HTMLElement&&n.offsetParent==null);n&&(r.classList.remove("current"),n.classList.add("current"))}}function Fe(t,e){let r=t.querySelector(".current");if(r||(r=t.querySelector("li:first-child")),r){let n=r.querySelector("a");n&&(window.location.href=n.href),e.blur()}}function le(t,e){if(e==="")return t;let r=t.toLocaleLowerCase(),n=e.toLocaleLowerCase(),i=[],s=0,o=r.indexOf(n);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+n.length))}`),s=o+n.length,o=r.indexOf(n,s);return i.push(K(t.substring(s))),i.join("")}var Me={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>Me[e])}var P=class{constructor(e){this.el=e.el,this.app=e.app}};var M="mousedown",fe="mousemove",N="mouseup",J={x:0,y:0},he=!1,ee=!1,De=!1,D=!1,pe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(pe?"is-mobile":"not-mobile");pe&&"ontouchstart"in document.documentElement&&(De=!0,M="touchstart",fe="touchmove",N="touchend");document.addEventListener(M,t=>{ee=!0,D=!1;let e=M=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=M=="touchstart"?t.targetTouches[0]:t,r=J.x-(e.pageX||0),n=J.y-(e.pageY||0);D=Math.sqrt(r*r+n*n)>10}});document.addEventListener(N,()=>{ee=!1});document.addEventListener("click",t=>{he&&(t.preventDefault(),t.stopImmediatePropagation(),he=!1)});var X=class extends P{constructor(r){super(r);this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(M,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(r){if(this.active==r)return;this.active=r,document.documentElement.classList.toggle("has-"+this.className,r),this.el.classList.toggle("active",r);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(r){D||(this.setActive(!0),r.preventDefault())}onDocumentPointerDown(r){if(this.active){if(r.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(r){if(!D&&this.active&&r.target.closest(".col-sidebar")){let n=r.target.closest("a");if(n){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),n.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var me=document.head.appendChild(document.createElement("style"));me.dataset.for="filters";var Y=class extends P{constructor(r){super(r);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),me.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`}fromLocalStorage(){let r=Q.getItem(this.key);return r?r==="true":this.el.checked}setLocalStorage(r){Q.setItem(this.key,r.toString()),this.value=r,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let n=Array.from(r.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);r.style.display=n?"none":"block"})}};var Z=class extends P{constructor(r){super(r);this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update()),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ve(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ye(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ye(t.value)})}function ye(t){document.documentElement.dataset.theme=t}de();G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var ge=document.getElementById("tsd-theme");ge&&ve(ge);var Ae=new U;Object.defineProperty(window,"app",{value:Ae});document.querySelectorAll("summary a").forEach(t=>{t.addEventListener("click",()=>{location.assign(t.href)})});})(); +'use strict'; +'use strict'; +(() => { + var Se = Object.create; + var re = Object.defineProperty; + var we = Object.getOwnPropertyDescriptor; + var Te = Object.getOwnPropertyNames; + var ke = Object.getPrototypeOf, + Qe = Object.prototype.hasOwnProperty; + var Pe = (t, e) => () => ( + e || t((e = { exports: {} }).exports, e), e.exports + ); + var Ie = (t, e, r, n) => { + if ((e && typeof e == 'object') || typeof e == 'function') + for (let i of Te(e)) + !Qe.call(t, i) && + i !== r && + re(t, i, { + get: () => e[i], + enumerable: !(n = we(e, i)) || n.enumerable + }); + return t; + }; + var Ce = (t, e, r) => ( + (r = t != null ? Se(ke(t)) : {}), + Ie( + e || !t || !t.__esModule + ? re(r, 'default', { value: t, enumerable: !0 }) + : r, + t + ) + ); + var ae = Pe((se, oe) => { + (function () { + var t = function (e) { + var r = new t.Builder(); + return ( + r.pipeline.add(t.trimmer, t.stopWordFilter, t.stemmer), + r.searchPipeline.add(t.stemmer), + e.call(r, r), + r.build() + ); + }; + t.version = '2.3.9'; + (t.utils = {}), + (t.utils.warn = (function (e) { + return function (r) { + e.console && console.warn && console.warn(r); + }; + })(this)), + (t.utils.asString = function (e) { + return e == null ? '' : e.toString(); + }), + (t.utils.clone = function (e) { + if (e == null) return e; + for ( + var r = Object.create(null), n = Object.keys(e), i = 0; + i < n.length; + i++ + ) { + var s = n[i], + o = e[s]; + if (Array.isArray(o)) { + r[s] = o.slice(); + continue; + } + if ( + typeof o == 'string' || + typeof o == 'number' || + typeof o == 'boolean' + ) { + r[s] = o; + continue; + } + throw new TypeError( + 'clone is not deep and does not support nested objects' + ); + } + return r; + }), + (t.FieldRef = function (e, r, n) { + (this.docRef = e), + (this.fieldName = r), + (this._stringValue = n); + }), + (t.FieldRef.joiner = '/'), + (t.FieldRef.fromString = function (e) { + var r = e.indexOf(t.FieldRef.joiner); + if (r === -1) throw 'malformed field ref string'; + var n = e.slice(0, r), + i = e.slice(r + 1); + return new t.FieldRef(i, n, e); + }), + (t.FieldRef.prototype.toString = function () { + return ( + this._stringValue == null && + (this._stringValue = + this.fieldName + + t.FieldRef.joiner + + this.docRef), + this._stringValue + ); + }); + (t.Set = function (e) { + if (((this.elements = Object.create(null)), e)) { + this.length = e.length; + for (var r = 0; r < this.length; r++) + this.elements[e[r]] = !0; + } else this.length = 0; + }), + (t.Set.complete = { + intersect: function (e) { + return e; + }, + union: function () { + return this; + }, + contains: function () { + return !0; + } + }), + (t.Set.empty = { + intersect: function () { + return this; + }, + union: function (e) { + return e; + }, + contains: function () { + return !1; + } + }), + (t.Set.prototype.contains = function (e) { + return !!this.elements[e]; + }), + (t.Set.prototype.intersect = function (e) { + var r, + n, + i, + s = []; + if (e === t.Set.complete) return this; + if (e === t.Set.empty) return e; + this.length < e.length + ? ((r = this), (n = e)) + : ((r = e), (n = this)), + (i = Object.keys(r.elements)); + for (var o = 0; o < i.length; o++) { + var a = i[o]; + a in n.elements && s.push(a); + } + return new t.Set(s); + }), + (t.Set.prototype.union = function (e) { + return e === t.Set.complete + ? t.Set.complete + : e === t.Set.empty + ? this + : new t.Set( + Object.keys(this.elements).concat( + Object.keys(e.elements) + ) + ); + }), + (t.idf = function (e, r) { + var n = 0; + for (var i in e) + i != '_index' && (n += Object.keys(e[i]).length); + var s = (r - n + 0.5) / (n + 0.5); + return Math.log(1 + Math.abs(s)); + }), + (t.Token = function (e, r) { + (this.str = e || ''), (this.metadata = r || {}); + }), + (t.Token.prototype.toString = function () { + return this.str; + }), + (t.Token.prototype.update = function (e) { + return (this.str = e(this.str, this.metadata)), this; + }), + (t.Token.prototype.clone = function (e) { + return ( + (e = + e || + function (r) { + return r; + }), + new t.Token(e(this.str, this.metadata), this.metadata) + ); + }); + (t.tokenizer = function (e, r) { + if (e == null || e == null) return []; + if (Array.isArray(e)) + return e.map(function (m) { + return new t.Token( + t.utils.asString(m).toLowerCase(), + t.utils.clone(r) + ); + }); + for ( + var n = e.toString().toLowerCase(), + i = n.length, + s = [], + o = 0, + a = 0; + o <= i; + o++ + ) { + var l = n.charAt(o), + u = o - a; + if (l.match(t.tokenizer.separator) || o == i) { + if (u > 0) { + var d = t.utils.clone(r) || {}; + (d.position = [a, u]), + (d.index = s.length), + s.push(new t.Token(n.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, r) { + r in this.registeredFunctions && + t.utils.warn( + 'Overwriting existing registered function: ' + r + ), + (e.label = r), + (t.Pipeline.registeredFunctions[e.label] = e); + }), + (t.Pipeline.warnIfFunctionNotRegistered = function (e) { + var r = e.label && e.label in this.registeredFunctions; + r || + t.utils.warn( + `Function is not registered with pipeline. This may cause problems when serialising the index. +`, + e + ); + }), + (t.Pipeline.load = function (e) { + var r = new t.Pipeline(); + return ( + e.forEach(function (n) { + var i = t.Pipeline.registeredFunctions[n]; + if (i) r.add(i); + else + throw new Error( + 'Cannot load unregistered function: ' + n + ); + }), + r + ); + }), + (t.Pipeline.prototype.add = function () { + var e = Array.prototype.slice.call(arguments); + e.forEach(function (r) { + t.Pipeline.warnIfFunctionNotRegistered(r), + this._stack.push(r); + }, this); + }), + (t.Pipeline.prototype.after = function (e, r) { + t.Pipeline.warnIfFunctionNotRegistered(r); + var n = this._stack.indexOf(e); + if (n == -1) throw new Error('Cannot find existingFn'); + (n = n + 1), this._stack.splice(n, 0, r); + }), + (t.Pipeline.prototype.before = function (e, r) { + t.Pipeline.warnIfFunctionNotRegistered(r); + var n = this._stack.indexOf(e); + if (n == -1) throw new Error('Cannot find existingFn'); + this._stack.splice(n, 0, r); + }), + (t.Pipeline.prototype.remove = function (e) { + var r = this._stack.indexOf(e); + r != -1 && this._stack.splice(r, 1); + }), + (t.Pipeline.prototype.run = function (e) { + for (var r = this._stack.length, n = 0; n < r; n++) { + for ( + var i = this._stack[n], s = [], o = 0; + o < e.length; + o++ + ) { + var a = i(e[o], o, e); + if (!(a == null || a === '')) + if (Array.isArray(a)) + for (var l = 0; l < a.length; l++) + s.push(a[l]); + else s.push(a); + } + e = s; + } + return e; + }), + (t.Pipeline.prototype.runString = function (e, r) { + var n = new t.Token(e, r); + return this.run([n]).map(function (i) { + return i.toString(); + }); + }), + (t.Pipeline.prototype.reset = function () { + this._stack = []; + }), + (t.Pipeline.prototype.toJSON = function () { + return this._stack.map(function (e) { + return ( + t.Pipeline.warnIfFunctionNotRegistered(e), e.label + ); + }); + }); + (t.Vector = function (e) { + (this._magnitude = 0), (this.elements = e || []); + }), + (t.Vector.prototype.positionForIndex = function (e) { + if (this.elements.length == 0) return 0; + for ( + var r = 0, + n = this.elements.length / 2, + i = n - r, + s = Math.floor(i / 2), + o = this.elements[s * 2]; + i > 1 && (o < e && (r = s), o > e && (n = s), o != e); + + ) + (i = n - r), + (s = r + Math.floor(i / 2)), + (o = this.elements[s * 2]); + if (o == e || o > e) return s * 2; + if (o < e) return (s + 1) * 2; + }), + (t.Vector.prototype.insert = function (e, r) { + this.upsert(e, r, function () { + throw 'duplicate index'; + }); + }), + (t.Vector.prototype.upsert = function (e, r, n) { + this._magnitude = 0; + var i = this.positionForIndex(e); + this.elements[i] == e + ? (this.elements[i + 1] = n(this.elements[i + 1], r)) + : this.elements.splice(i, 0, e, r); + }), + (t.Vector.prototype.magnitude = function () { + if (this._magnitude) return this._magnitude; + for ( + var e = 0, r = this.elements.length, n = 1; + n < r; + n += 2 + ) { + var i = this.elements[n]; + e += i * i; + } + return (this._magnitude = Math.sqrt(e)); + }), + (t.Vector.prototype.dot = function (e) { + for ( + var r = 0, + n = this.elements, + i = e.elements, + s = n.length, + o = i.length, + a = 0, + l = 0, + u = 0, + d = 0; + u < s && d < o; + + ) + (a = n[u]), + (l = i[d]), + a < l + ? (u += 2) + : a > l + ? (d += 2) + : a == l && + ((r += n[u + 1] * i[d + 1]), + (u += 2), + (d += 2)); + return r; + }), + (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), + r = 1, + n = 0; + r < this.elements.length; + r += 2, n++ + ) + e[n] = this.elements[r]; + return e; + }), + (t.Vector.prototype.toJSON = function () { + return this.elements; + }); + (t.stemmer = (function () { + var e = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }, + r = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }, + n = '[^aeiou]', + i = '[aeiouy]', + s = n + '[^aeiouy]*', + o = i + '[aeiou]*', + a = '^(' + s + ')?' + o + s, + l = '^(' + s + ')?' + o + s + '(' + o + ')?$', + u = '^(' + s + ')?' + o + s + o + s, + d = '^(' + s + ')?' + i, + m = new RegExp(a), + y = new RegExp(u), + b = new RegExp(l), + g = new RegExp(d), + E = /^(.+?)(ss|i)es$/, + f = /^(.+?)([^s])s$/, + p = /^(.+?)eed$/, + w = /^(.+?)(ed|ing)$/, + S = /.$/, + k = /(at|bl|iz)$/, + _ = new RegExp('([^aeiouylsz])\\1$'), + B = new RegExp('^' + s + i + '[^aeiouwxy]$'), + A = /^(.+?[^aeiou])y$/, + j = + /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/, + q = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/, + V = + /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/, + $ = /^(.+?)(s|t)(ion)$/, + I = /^(.+?)e$/, + z = /ll$/, + W = new RegExp('^' + s + i + '[^aeiouwxy]$'), + H = function (c) { + var v, C, T, h, x, O, F; + if (c.length < 3) return c; + if ( + ((T = c.substr(0, 1)), + T == 'y' && (c = T.toUpperCase() + c.substr(1)), + (h = E), + (x = f), + h.test(c) + ? (c = c.replace(h, '$1$2')) + : x.test(c) && (c = c.replace(x, '$1$2')), + (h = p), + (x = w), + h.test(c)) + ) { + var L = h.exec(c); + (h = m), + h.test(L[1]) && + ((h = S), (c = c.replace(h, ''))); + } else if (x.test(c)) { + var L = x.exec(c); + (v = L[1]), + (x = g), + x.test(v) && + ((c = v), + (x = k), + (O = _), + (F = B), + x.test(c) + ? (c = c + 'e') + : O.test(c) + ? ((h = S), (c = c.replace(h, ''))) + : F.test(c) && (c = c + 'e')); + } + if (((h = A), h.test(c))) { + var L = h.exec(c); + (v = L[1]), (c = v + 'i'); + } + if (((h = j), h.test(c))) { + var L = h.exec(c); + (v = L[1]), + (C = L[2]), + (h = m), + h.test(v) && (c = v + e[C]); + } + if (((h = q), h.test(c))) { + var L = h.exec(c); + (v = L[1]), + (C = L[2]), + (h = m), + h.test(v) && (c = v + r[C]); + } + if (((h = V), (x = $), h.test(c))) { + var L = h.exec(c); + (v = L[1]), (h = y), h.test(v) && (c = v); + } else if (x.test(c)) { + var L = x.exec(c); + (v = L[1] + L[2]), (x = y), x.test(v) && (c = v); + } + if (((h = I), h.test(c))) { + var L = h.exec(c); + (v = L[1]), + (h = y), + (x = b), + (O = W), + (h.test(v) || (x.test(v) && !O.test(v))) && + (c = v); + } + return ( + (h = z), + (x = y), + h.test(c) && + x.test(c) && + ((h = S), (c = c.replace(h, ''))), + T == 'y' && (c = T.toLowerCase() + c.substr(1)), + c + ); + }; + return function (R) { + return R.update(H); + }; + })()), + t.Pipeline.registerFunction(t.stemmer, 'stemmer'); + (t.generateStopWordFilter = function (e) { + var r = e.reduce(function (n, i) { + return (n[i] = i), n; + }, {}); + return function (n) { + if (n && r[n.toString()] !== n.toString()) return n; + }; + }), + (t.stopWordFilter = t.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'all', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'any', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'do', + 'does', + 'either', + 'else', + 'ever', + 'every', + 'for', + 'from', + 'get', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'in', + 'into', + 'is', + 'it', + 'its', + 'just', + 'least', + 'let', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'only', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'where', + 'which', + 'while', + 'who', + 'whom', + 'why', + 'will', + 'with', + 'would', + 'yet', + 'you', + 'your' + ])), + t.Pipeline.registerFunction(t.stopWordFilter, 'stopWordFilter'); + (t.trimmer = function (e) { + return e.update(function (r) { + return r.replace(/^\W+/, '').replace(/\W+$/, ''); + }); + }), + t.Pipeline.registerFunction(t.trimmer, 'trimmer'); + (t.TokenSet = function () { + (this.final = !1), + (this.edges = {}), + (this.id = t.TokenSet._nextId), + (t.TokenSet._nextId += 1); + }), + (t.TokenSet._nextId = 1), + (t.TokenSet.fromArray = function (e) { + for ( + var r = new t.TokenSet.Builder(), n = 0, i = e.length; + n < i; + n++ + ) + r.insert(e[n]); + return r.finish(), r.root; + }), + (t.TokenSet.fromClause = function (e) { + return 'editDistance' in e + ? t.TokenSet.fromFuzzyString(e.term, e.editDistance) + : t.TokenSet.fromString(e.term); + }), + (t.TokenSet.fromFuzzyString = function (e, r) { + for ( + var n = new t.TokenSet(), + i = [{ node: n, editsRemaining: r, str: e }]; + i.length; + + ) { + var s = i.pop(); + if (s.str.length > 0) { + var o = s.str.charAt(0), + a; + o in s.node.edges + ? (a = s.node.edges[o]) + : ((a = new t.TokenSet()), + (s.node.edges[o] = a)), + s.str.length == 1 && (a.final = !0), + i.push({ + node: a, + editsRemaining: s.editsRemaining, + str: s.str.slice(1) + }); + } + if (s.editsRemaining != 0) { + if ('*' in s.node.edges) var l = s.node.edges['*']; + else { + var l = new t.TokenSet(); + s.node.edges['*'] = l; + } + if ( + (s.str.length == 0 && (l.final = !0), + i.push({ + node: l, + editsRemaining: s.editsRemaining - 1, + str: s.str + }), + s.str.length > 1 && + i.push({ + node: s.node, + editsRemaining: s.editsRemaining - 1, + str: s.str.slice(1) + }), + s.str.length == 1 && (s.node.final = !0), + s.str.length >= 1) + ) { + if ('*' in s.node.edges) + var u = s.node.edges['*']; + else { + var u = new t.TokenSet(); + s.node.edges['*'] = u; + } + s.str.length == 1 && (u.final = !0), + i.push({ + node: u, + editsRemaining: s.editsRemaining - 1, + str: s.str.slice(1) + }); + } + if (s.str.length > 1) { + var d = s.str.charAt(0), + m = s.str.charAt(1), + y; + m in s.node.edges + ? (y = s.node.edges[m]) + : ((y = new t.TokenSet()), + (s.node.edges[m] = y)), + s.str.length == 1 && (y.final = !0), + i.push({ + node: y, + editsRemaining: s.editsRemaining - 1, + str: d + s.str.slice(2) + }); + } + } + } + return n; + }), + (t.TokenSet.fromString = function (e) { + for ( + var r = new t.TokenSet(), n = r, i = 0, s = e.length; + i < s; + i++ + ) { + var o = e[i], + a = i == s - 1; + if (o == '*') (r.edges[o] = r), (r.final = a); + else { + var l = new t.TokenSet(); + (l.final = a), (r.edges[o] = l), (r = l); + } + } + return n; + }), + (t.TokenSet.prototype.toArray = function () { + for ( + var e = [], r = [{ prefix: '', node: this }]; + r.length; + + ) { + var n = r.pop(), + i = Object.keys(n.node.edges), + s = i.length; + n.node.final && (n.prefix.charAt(0), e.push(n.prefix)); + for (var o = 0; o < s; o++) { + var a = i[o]; + r.push({ + prefix: n.prefix.concat(a), + node: n.node.edges[a] + }); + } + } + return e; + }), + (t.TokenSet.prototype.toString = function () { + if (this._str) return this._str; + for ( + var e = this.final ? '1' : '0', + r = Object.keys(this.edges).sort(), + n = r.length, + i = 0; + i < n; + i++ + ) { + var s = r[i], + o = this.edges[s]; + e = e + s + o.id; + } + return e; + }), + (t.TokenSet.prototype.intersect = function (e) { + for ( + var r = new t.TokenSet(), + n = void 0, + i = [{ qNode: e, output: r, node: this }]; + i.length; + + ) { + n = i.pop(); + for ( + var s = Object.keys(n.qNode.edges), + o = s.length, + a = Object.keys(n.node.edges), + l = a.length, + u = 0; + u < o; + u++ + ) + for (var d = s[u], m = 0; m < l; m++) { + var y = a[m]; + if (y == d || d == '*') { + var b = n.node.edges[y], + g = n.qNode.edges[d], + E = b.final && g.final, + f = void 0; + y in n.output.edges + ? ((f = n.output.edges[y]), + (f.final = f.final || E)) + : ((f = new t.TokenSet()), + (f.final = E), + (n.output.edges[y] = f)), + i.push({ + qNode: g, + output: f, + node: b + }); + } + } + } + return r; + }), + (t.TokenSet.Builder = function () { + (this.previousWord = ''), + (this.root = new t.TokenSet()), + (this.uncheckedNodes = []), + (this.minimizedNodes = {}); + }), + (t.TokenSet.Builder.prototype.insert = function (e) { + var r, + n = 0; + if (e < this.previousWord) + throw new Error('Out of order word insertion'); + for ( + var i = 0; + i < e.length && + i < this.previousWord.length && + e[i] == this.previousWord[i]; + i++ + ) + n++; + this.minimize(n), + this.uncheckedNodes.length == 0 + ? (r = this.root) + : (r = + this.uncheckedNodes[ + this.uncheckedNodes.length - 1 + ].child); + for (var i = n; i < e.length; i++) { + var s = new t.TokenSet(), + o = e[i]; + (r.edges[o] = s), + this.uncheckedNodes.push({ + parent: r, + char: o, + child: s + }), + (r = s); + } + (r.final = !0), (this.previousWord = e); + }), + (t.TokenSet.Builder.prototype.finish = function () { + this.minimize(0); + }), + (t.TokenSet.Builder.prototype.minimize = function (e) { + for (var r = this.uncheckedNodes.length - 1; r >= e; r--) { + var n = this.uncheckedNodes[r], + i = n.child.toString(); + i in this.minimizedNodes + ? (n.parent.edges[n.char] = this.minimizedNodes[i]) + : ((n.child._str = i), + (this.minimizedNodes[i] = n.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 (r) { + var n = new t.QueryParser(e, r); + n.parse(); + }); + }), + (t.Index.prototype.query = function (e) { + for ( + var r = new t.Query(this.fields), + n = Object.create(null), + i = Object.create(null), + s = Object.create(null), + o = Object.create(null), + a = Object.create(null), + l = 0; + l < this.fields.length; + l++ + ) + i[this.fields[l]] = new t.Vector(); + e.call(r, r); + for (var l = 0; l < r.clauses.length; l++) { + var u = r.clauses[l], + d = null, + m = t.Set.empty; + u.usePipeline + ? (d = this.pipeline.runString(u.term, { + fields: u.fields + })) + : (d = [u.term]); + for (var y = 0; y < d.length; y++) { + var b = d[y]; + u.term = b; + var g = t.TokenSet.fromClause(u), + E = this.tokenSet.intersect(g).toArray(); + if ( + E.length === 0 && + u.presence === t.Query.presence.REQUIRED + ) { + for (var f = 0; f < u.fields.length; f++) { + var p = u.fields[f]; + o[p] = t.Set.empty; + } + break; + } + for (var w = 0; w < E.length; w++) + for ( + var S = E[w], + k = this.invertedIndex[S], + _ = k._index, + f = 0; + f < u.fields.length; + f++ + ) { + var p = u.fields[f], + B = k[p], + A = Object.keys(B), + j = S + '/' + p, + q = new t.Set(A); + if ( + (u.presence == + t.Query.presence.REQUIRED && + ((m = m.union(q)), + o[p] === void 0 && + (o[p] = t.Set.complete)), + u.presence == + t.Query.presence.PROHIBITED) + ) { + a[p] === void 0 && (a[p] = t.Set.empty), + (a[p] = a[p].union(q)); + continue; + } + if ( + (i[p].upsert( + _, + u.boost, + function (Ee, be) { + return Ee + be; + } + ), + !s[j]) + ) { + for (var V = 0; V < A.length; V++) { + var $ = A[V], + I = new t.FieldRef($, p), + z = B[$], + W; + (W = n[I]) === void 0 + ? (n[I] = new t.MatchData( + S, + p, + z + )) + : W.add(S, p, z); + } + s[j] = !0; + } + } + } + if (u.presence === t.Query.presence.REQUIRED) + for (var f = 0; f < u.fields.length; f++) { + var p = u.fields[f]; + o[p] = o[p].intersect(m); + } + } + for ( + var H = t.Set.complete, R = t.Set.empty, l = 0; + l < this.fields.length; + l++ + ) { + var p = this.fields[l]; + o[p] && (H = H.intersect(o[p])), + a[p] && (R = R.union(a[p])); + } + var c = Object.keys(n), + v = [], + C = Object.create(null); + if (r.isNegated()) { + c = Object.keys(this.fieldVectors); + for (var l = 0; l < c.length; l++) { + var I = c[l], + T = t.FieldRef.fromString(I); + n[I] = new t.MatchData(); + } + } + for (var l = 0; l < c.length; l++) { + var T = t.FieldRef.fromString(c[l]), + h = T.docRef; + if (H.contains(h) && !R.contains(h)) { + var x = this.fieldVectors[T], + O = i[T.fieldName].similarity(x), + F; + if ((F = C[h]) !== void 0) + (F.score += O), F.matchData.combine(n[T]); + else { + var L = { ref: h, score: O, matchData: n[T] }; + (C[h] = L), v.push(L); + } + } + } + return v.sort(function (xe, Le) { + return Le.score - xe.score; + }); + }), + (t.Index.prototype.toJSON = function () { + var e = Object.keys(this.invertedIndex) + .sort() + .map(function (n) { + return [n, this.invertedIndex[n]]; + }, this), + r = Object.keys(this.fieldVectors).map(function (n) { + return [n, this.fieldVectors[n].toJSON()]; + }, this); + return { + version: t.version, + fields: this.fields, + fieldVectors: r, + invertedIndex: e, + pipeline: this.pipeline.toJSON() + }; + }), + (t.Index.load = function (e) { + var r = {}, + n = {}, + i = e.fieldVectors, + s = Object.create(null), + o = e.invertedIndex, + a = new t.TokenSet.Builder(), + l = t.Pipeline.load(e.pipeline); + e.version != t.version && + t.utils.warn( + "Version mismatch when loading serialised index. Current version of lunr '" + + t.version + + "' does not match serialized index '" + + e.version + + "'" + ); + for (var u = 0; u < i.length; u++) { + var d = i[u], + m = d[0], + y = d[1]; + n[m] = new t.Vector(y); + } + for (var u = 0; u < o.length; u++) { + var d = o[u], + b = d[0], + g = d[1]; + a.insert(b), (s[b] = g); + } + return ( + a.finish(), + (r.fields = e.fields), + (r.fieldVectors = n), + (r.invertedIndex = s), + (r.tokenSet = a.root), + (r.pipeline = l), + new t.Index(r) + ); + }); + (t.Builder = function () { + (this._ref = 'id'), + (this._fields = Object.create(null)), + (this._documents = Object.create(null)), + (this.invertedIndex = Object.create(null)), + (this.fieldTermFrequencies = {}), + (this.fieldLengths = {}), + (this.tokenizer = t.tokenizer), + (this.pipeline = new t.Pipeline()), + (this.searchPipeline = new t.Pipeline()), + (this.documentCount = 0), + (this._b = 0.75), + (this._k1 = 1.2), + (this.termIndex = 0), + (this.metadataWhitelist = []); + }), + (t.Builder.prototype.ref = function (e) { + this._ref = e; + }), + (t.Builder.prototype.field = function (e, r) { + if (/\//.test(e)) + throw new RangeError( + "Field '" + e + "' contains illegal character '/'" + ); + this._fields[e] = r || {}; + }), + (t.Builder.prototype.b = function (e) { + e < 0 + ? (this._b = 0) + : e > 1 + ? (this._b = 1) + : (this._b = e); + }), + (t.Builder.prototype.k1 = function (e) { + this._k1 = e; + }), + (t.Builder.prototype.add = function (e, r) { + var n = e[this._ref], + i = Object.keys(this._fields); + (this._documents[n] = r || {}), (this.documentCount += 1); + for (var s = 0; s < i.length; s++) { + var o = i[s], + a = this._fields[o].extractor, + l = a ? a(e) : e[o], + u = this.tokenizer(l, { fields: [o] }), + d = this.pipeline.run(u), + m = new t.FieldRef(n, o), + y = Object.create(null); + (this.fieldTermFrequencies[m] = y), + (this.fieldLengths[m] = 0), + (this.fieldLengths[m] += d.length); + for (var b = 0; b < d.length; b++) { + var g = d[b]; + if ( + (y[g] == null && (y[g] = 0), + (y[g] += 1), + this.invertedIndex[g] == null) + ) { + var E = Object.create(null); + (E._index = this.termIndex), + (this.termIndex += 1); + for (var f = 0; f < i.length; f++) + E[i[f]] = Object.create(null); + this.invertedIndex[g] = E; + } + this.invertedIndex[g][o][n] == null && + (this.invertedIndex[g][o][n] = + Object.create(null)); + for ( + var p = 0; + p < this.metadataWhitelist.length; + p++ + ) { + var w = this.metadataWhitelist[p], + S = g.metadata[w]; + this.invertedIndex[g][o][n][w] == null && + (this.invertedIndex[g][o][n][w] = []), + this.invertedIndex[g][o][n][w].push(S); + } + } + } + }), + (t.Builder.prototype.calculateAverageFieldLengths = + function () { + for ( + var e = Object.keys(this.fieldLengths), + r = e.length, + n = {}, + i = {}, + s = 0; + s < r; + s++ + ) { + var o = t.FieldRef.fromString(e[s]), + a = o.fieldName; + i[a] || (i[a] = 0), + (i[a] += 1), + n[a] || (n[a] = 0), + (n[a] += this.fieldLengths[o]); + } + for ( + var l = Object.keys(this._fields), s = 0; + s < l.length; + s++ + ) { + var u = l[s]; + n[u] = n[u] / i[u]; + } + this.averageFieldLength = n; + }), + (t.Builder.prototype.createFieldVectors = function () { + for ( + var e = {}, + r = Object.keys(this.fieldTermFrequencies), + n = r.length, + i = Object.create(null), + s = 0; + s < n; + s++ + ) { + for ( + var o = t.FieldRef.fromString(r[s]), + a = o.fieldName, + l = this.fieldLengths[o], + u = new t.Vector(), + d = this.fieldTermFrequencies[o], + m = Object.keys(d), + y = m.length, + b = this._fields[a].boost || 1, + g = this._documents[o.docRef].boost || 1, + E = 0; + E < y; + E++ + ) { + var f = m[E], + p = d[f], + w = this.invertedIndex[f]._index, + S, + k, + _; + i[f] === void 0 + ? ((S = t.idf( + this.invertedIndex[f], + this.documentCount + )), + (i[f] = S)) + : (S = i[f]), + (k = + (S * ((this._k1 + 1) * p)) / + (this._k1 * + (1 - + this._b + + this._b * + (l / + this.averageFieldLength[ + a + ])) + + p)), + (k *= b), + (k *= g), + (_ = Math.round(k * 1e3) / 1e3), + u.insert(w, _); + } + e[o] = u; + } + this.fieldVectors = e; + }), + (t.Builder.prototype.createTokenSet = function () { + this.tokenSet = t.TokenSet.fromArray( + Object.keys(this.invertedIndex).sort() + ); + }), + (t.Builder.prototype.build = function () { + return ( + this.calculateAverageFieldLengths(), + this.createFieldVectors(), + this.createTokenSet(), + new t.Index({ + invertedIndex: this.invertedIndex, + fieldVectors: this.fieldVectors, + tokenSet: this.tokenSet, + fields: Object.keys(this._fields), + pipeline: this.searchPipeline + }) + ); + }), + (t.Builder.prototype.use = function (e) { + var r = Array.prototype.slice.call(arguments, 1); + r.unshift(this), e.apply(this, r); + }), + (t.MatchData = function (e, r, n) { + for ( + var i = Object.create(null), + s = Object.keys(n || {}), + o = 0; + o < s.length; + o++ + ) { + var a = s[o]; + i[a] = n[a].slice(); + } + (this.metadata = Object.create(null)), + e !== void 0 && + ((this.metadata[e] = Object.create(null)), + (this.metadata[e][r] = i)); + }), + (t.MatchData.prototype.combine = function (e) { + for ( + var r = Object.keys(e.metadata), n = 0; + n < r.length; + n++ + ) { + var i = r[n], + s = Object.keys(e.metadata[i]); + this.metadata[i] == null && + (this.metadata[i] = Object.create(null)); + for (var o = 0; o < s.length; o++) { + var a = s[o], + l = Object.keys(e.metadata[i][a]); + this.metadata[i][a] == null && + (this.metadata[i][a] = Object.create(null)); + for (var u = 0; u < l.length; u++) { + var d = l[u]; + this.metadata[i][a][d] == null + ? (this.metadata[i][a][d] = + e.metadata[i][a][d]) + : (this.metadata[i][a][d] = this.metadata[ + i + ][a][d].concat(e.metadata[i][a][d])); + } + } + } + }), + (t.MatchData.prototype.add = function (e, r, n) { + if (!(e in this.metadata)) { + (this.metadata[e] = Object.create(null)), + (this.metadata[e][r] = n); + return; + } + if (!(r in this.metadata[e])) { + this.metadata[e][r] = n; + return; + } + for (var i = Object.keys(n), s = 0; s < i.length; s++) { + var o = i[s]; + o in this.metadata[e][r] + ? (this.metadata[e][r][o] = this.metadata[e][r][ + o + ].concat(n[o])) + : (this.metadata[e][r][o] = n[o]); + } + }), + (t.Query = function (e) { + (this.clauses = []), (this.allFields = e); + }), + (t.Query.wildcard = new String('*')), + (t.Query.wildcard.NONE = 0), + (t.Query.wildcard.LEADING = 1), + (t.Query.wildcard.TRAILING = 2), + (t.Query.presence = { + OPTIONAL: 1, + REQUIRED: 2, + PROHIBITED: 3 + }), + (t.Query.prototype.clause = function (e) { + return ( + 'fields' in e || (e.fields = this.allFields), + 'boost' in e || (e.boost = 1), + 'usePipeline' in e || (e.usePipeline = !0), + 'wildcard' in e || (e.wildcard = t.Query.wildcard.NONE), + e.wildcard & t.Query.wildcard.LEADING && + e.term.charAt(0) != t.Query.wildcard && + (e.term = '*' + e.term), + e.wildcard & t.Query.wildcard.TRAILING && + e.term.slice(-1) != t.Query.wildcard && + (e.term = '' + e.term + '*'), + 'presence' in e || + (e.presence = t.Query.presence.OPTIONAL), + this.clauses.push(e), + this + ); + }), + (t.Query.prototype.isNegated = function () { + for (var e = 0; e < this.clauses.length; e++) + if ( + this.clauses[e].presence != + t.Query.presence.PROHIBITED + ) + return !1; + return !0; + }), + (t.Query.prototype.term = function (e, r) { + if (Array.isArray(e)) + return ( + e.forEach(function (i) { + this.term(i, t.utils.clone(r)); + }, this), + this + ); + var n = r || {}; + return (n.term = e.toString()), this.clause(n), this; + }), + (t.QueryParseError = function (e, r, n) { + (this.name = 'QueryParseError'), + (this.message = e), + (this.start = r), + (this.end = n); + }), + (t.QueryParseError.prototype = new Error()), + (t.QueryLexer = function (e) { + (this.lexemes = []), + (this.str = e), + (this.length = e.length), + (this.pos = 0), + (this.start = 0), + (this.escapeCharPositions = []); + }), + (t.QueryLexer.prototype.run = function () { + for (var e = t.QueryLexer.lexText; e; ) e = e(this); + }), + (t.QueryLexer.prototype.sliceString = function () { + for ( + var e = [], r = this.start, n = this.pos, i = 0; + i < this.escapeCharPositions.length; + i++ + ) + (n = this.escapeCharPositions[i]), + e.push(this.str.slice(r, n)), + (r = n + 1); + return ( + e.push(this.str.slice(r, this.pos)), + (this.escapeCharPositions.length = 0), + e.join('') + ); + }), + (t.QueryLexer.prototype.emit = function (e) { + this.lexemes.push({ + type: e, + str: this.sliceString(), + start: this.start, + end: this.pos + }), + (this.start = this.pos); + }), + (t.QueryLexer.prototype.escapeCharacter = function () { + this.escapeCharPositions.push(this.pos - 1), + (this.pos += 1); + }), + (t.QueryLexer.prototype.next = function () { + if (this.pos >= 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, r; + do (e = this.next()), (r = e.charCodeAt(0)); + while (r > 47 && r < 58); + e != t.QueryLexer.EOS && this.backup(); + }), + (t.QueryLexer.prototype.more = function () { + return this.pos < this.length; + }), + (t.QueryLexer.EOS = 'EOS'), + (t.QueryLexer.FIELD = 'FIELD'), + (t.QueryLexer.TERM = 'TERM'), + (t.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'), + (t.QueryLexer.BOOST = 'BOOST'), + (t.QueryLexer.PRESENCE = 'PRESENCE'), + (t.QueryLexer.lexField = function (e) { + return ( + e.backup(), + e.emit(t.QueryLexer.FIELD), + e.ignore(), + t.QueryLexer.lexText + ); + }), + (t.QueryLexer.lexTerm = function (e) { + if ( + (e.width() > 1 && + (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 r = e.next(); + if (r == t.QueryLexer.EOS) return t.QueryLexer.lexEOS; + if (r.charCodeAt(0) == 92) { + e.escapeCharacter(); + continue; + } + if (r == ':') return t.QueryLexer.lexField; + if (r == '~') + return ( + e.backup(), + e.width() > 0 && e.emit(t.QueryLexer.TERM), + t.QueryLexer.lexEditDistance + ); + if (r == '^') + return ( + e.backup(), + e.width() > 0 && e.emit(t.QueryLexer.TERM), + t.QueryLexer.lexBoost + ); + if ( + (r == '+' && e.width() === 1) || + (r == '-' && e.width() === 1) + ) + return ( + e.emit(t.QueryLexer.PRESENCE), + t.QueryLexer.lexText + ); + if (r.match(t.QueryLexer.termSeparator)) + return t.QueryLexer.lexTerm; + } + }), + (t.QueryParser = function (e, r) { + (this.lexer = new t.QueryLexer(e)), + (this.query = r), + (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 r = e.peekLexeme(); + if (r != null) + switch (r.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 n = + 'expected either a field or a term, found ' + + r.type; + throw ( + (r.str.length >= 1 && + (n += " with value '" + r.str + "'"), + new t.QueryParseError(n, r.start, r.end)) + ); + } + }), + (t.QueryParser.parsePresence = function (e) { + var r = e.consumeLexeme(); + if (r != null) { + switch (r.str) { + case '-': + e.currentClause.presence = + t.Query.presence.PROHIBITED; + break; + case '+': + e.currentClause.presence = + t.Query.presence.REQUIRED; + break; + default: + var n = + "unrecognised presence operator'" + + r.str + + "'"; + throw new t.QueryParseError(n, r.start, r.end); + } + var i = e.peekLexeme(); + if (i == null) { + var n = 'expecting term or field, found nothing'; + throw new t.QueryParseError(n, r.start, r.end); + } + switch (i.type) { + case t.QueryLexer.FIELD: + return t.QueryParser.parseField; + case t.QueryLexer.TERM: + return t.QueryParser.parseTerm; + default: + var n = + "expecting term or field, found '" + + i.type + + "'"; + throw new t.QueryParseError(n, i.start, i.end); + } + } + }), + (t.QueryParser.parseField = function (e) { + var r = e.consumeLexeme(); + if (r != null) { + if (e.query.allFields.indexOf(r.str) == -1) { + var n = e.query.allFields + .map(function (o) { + return "'" + o + "'"; + }) + .join(', '), + i = + "unrecognised field '" + + r.str + + "', possible fields: " + + n; + throw new t.QueryParseError(i, r.start, r.end); + } + e.currentClause.fields = [r.str]; + var s = e.peekLexeme(); + if (s == null) { + var i = 'expecting term, found nothing'; + throw new t.QueryParseError(i, r.start, r.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 r = e.consumeLexeme(); + if (r != null) { + (e.currentClause.term = r.str.toLowerCase()), + r.str.indexOf('*') != -1 && + (e.currentClause.usePipeline = !1); + var n = e.peekLexeme(); + if (n == null) { + e.nextClause(); + return; + } + switch (n.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 '" + n.type + "'"; + throw new t.QueryParseError(i, n.start, n.end); + } + } + }), + (t.QueryParser.parseEditDistance = function (e) { + var r = e.consumeLexeme(); + if (r != null) { + var n = parseInt(r.str, 10); + if (isNaN(n)) { + var i = 'edit distance must be numeric'; + throw new t.QueryParseError(i, r.start, r.end); + } + e.currentClause.editDistance = n; + 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 r = e.consumeLexeme(); + if (r != null) { + var n = parseInt(r.str, 10); + if (isNaN(n)) { + var i = 'boost must be numeric'; + throw new t.QueryParseError(i, r.start, r.end); + } + e.currentClause.boost = n; + 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, r) { + typeof define == 'function' && define.amd + ? define(r) + : typeof se == 'object' + ? (oe.exports = r()) + : (e.lunr = r()); + })(this, function () { + return t; + }); + })(); + }); + var ne = []; + function G(t, e) { + ne.push({ selector: e, constructor: t }); + } + var U = class { + constructor() { + this.alwaysVisibleMember = null; + this.createComponents(document.body), + this.ensureActivePageVisible(), + this.ensureFocusedElementVisible(), + this.listenForCodeCopies(), + window.addEventListener('hashchange', () => + this.ensureFocusedElementVisible() + ); + } + createComponents(e) { + ne.forEach((r) => { + e.querySelectorAll(r.selector).forEach((n) => { + n.dataset.hasInstance || + (new r.constructor({ el: n, app: this }), + (n.dataset.hasInstance = String(!0))); + }); + }); + } + filterChanged() { + this.ensureFocusedElementVisible(); + } + ensureActivePageVisible() { + let e = document.querySelector('.tsd-navigation .current'), + r = e?.parentElement; + for (; r && !r.classList.contains('.tsd-navigation'); ) + r instanceof HTMLDetailsElement && (r.open = !0), + (r = r.parentElement); + if (e) { + let n = + e.getBoundingClientRect().top - + document.documentElement.clientHeight / 4; + document.querySelector('.site-menu').scrollTop = 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 r = e.parentElement; + for (; r && r.tagName !== 'SECTION'; ) r = r.parentElement; + if (r && r.offsetParent == null) { + (this.alwaysVisibleMember = r), + r.classList.add('always-visible'); + let n = document.createElement('p'); + n.classList.add('warning'), + (n.textContent = + 'This member is normally hidden due to your filter settings.'), + r.prepend(n); + } + } + listenForCodeCopies() { + document.querySelectorAll('pre > button').forEach((e) => { + let r; + e.addEventListener('click', () => { + e.previousElementSibling instanceof HTMLElement && + navigator.clipboard.writeText( + e.previousElementSibling.innerText.trim() + ), + (e.textContent = 'Copied!'), + e.classList.add('visible'), + clearTimeout(r), + (r = setTimeout(() => { + e.classList.remove('visible'), + (r = setTimeout(() => { + e.textContent = 'Copy'; + }, 100)); + }, 1e3)); + }); + }); + } + }; + var ie = (t, e = 100) => { + let r; + return () => { + clearTimeout(r), (r = setTimeout(() => t(), e)); + }; + }; + var ce = Ce(ae()); + function de() { + let t = document.getElementById('tsd-search'); + if (!t) return; + let e = document.getElementById('tsd-search-script'); + t.classList.add('loading'), + e && + (e.addEventListener('error', () => { + t.classList.remove('loading'), t.classList.add('failure'); + }), + e.addEventListener('load', () => { + t.classList.remove('loading'), t.classList.add('ready'); + }), + window.searchData && t.classList.remove('loading')); + let r = document.querySelector('#tsd-search input'), + n = document.querySelector('#tsd-search .results'); + if (!r || !n) + throw new Error( + 'The input field or the result list wrapper was not found' + ); + let i = !1; + n.addEventListener('mousedown', () => (i = !0)), + n.addEventListener('mouseup', () => { + (i = !1), t.classList.remove('has-focus'); + }), + r.addEventListener('focus', () => t.classList.add('has-focus')), + r.addEventListener('blur', () => { + i || ((i = !1), t.classList.remove('has-focus')); + }); + let s = { base: t.dataset.base + '/' }; + Oe(t, n, r, s); + } + function Oe(t, e, r, n) { + r.addEventListener( + 'input', + ie(() => { + Re(t, e, r, n); + }, 200) + ); + let i = !1; + r.addEventListener('keydown', (s) => { + (i = !0), + s.key == 'Enter' + ? Fe(e, r) + : s.key == 'Escape' + ? r.blur() + : s.key == 'ArrowUp' + ? ue(e, -1) + : s.key === 'ArrowDown' + ? ue(e, 1) + : (i = !1); + }), + r.addEventListener('keypress', (s) => { + i && s.preventDefault(); + }), + document.body.addEventListener('keydown', (s) => { + s.altKey || + s.ctrlKey || + s.metaKey || + (!r.matches(':focus') && + s.key === '/' && + (r.focus(), s.preventDefault())); + }); + } + function _e(t, e) { + t.index || + (window.searchData && + (e.classList.remove('loading'), + e.classList.add('ready'), + (t.data = window.searchData), + (t.index = ce.Index.load(window.searchData.index)))); + } + function Re(t, e, r, n) { + if ((_e(n, t), !n.index || !n.data)) return; + e.textContent = ''; + let i = r.value.trim(), + s = i ? n.index.search(`*${i}*`) : []; + for (let o = 0; o < s.length; o++) { + let a = s[o], + l = n.data.rows[Number(a.ref)], + u = 1; + l.name.toLowerCase().startsWith(i.toLowerCase()) && + (u *= 1 + 1 / (1 + Math.abs(l.name.length - i.length))), + (a.score *= u); + } + s.sort((o, a) => a.score - o.score); + for (let o = 0, a = Math.min(10, s.length); o < a; o++) { + let l = n.data.rows[Number(s[o].ref)], + u = le(l.name, i); + globalThis.DEBUG_SEARCH_WEIGHTS && + (u += ` (score: ${s[o].score.toFixed(2)})`), + l.parent && + (u = `${le(l.parent, i)}.${u}`); + let d = document.createElement('li'); + d.classList.value = l.classes ?? ''; + let m = document.createElement('a'); + (m.href = n.base + l.url), + (m.innerHTML = u), + d.append(m), + e.appendChild(d); + } + } + function ue(t, e) { + let r = t.querySelector('.current'); + if (!r) + (r = t.querySelector(e == 1 ? 'li:first-child' : 'li:last-child')), + r && r.classList.add('current'); + else { + let n = r; + if (e === 1) + do n = n.nextElementSibling ?? void 0; + while (n instanceof HTMLElement && n.offsetParent == null); + else + do n = n.previousElementSibling ?? void 0; + while (n instanceof HTMLElement && n.offsetParent == null); + n && (r.classList.remove('current'), n.classList.add('current')); + } + } + function Fe(t, e) { + let r = t.querySelector('.current'); + if ((r || (r = t.querySelector('li:first-child')), r)) { + let n = r.querySelector('a'); + n && (window.location.href = n.href), e.blur(); + } + } + function le(t, e) { + if (e === '') return t; + let r = t.toLocaleLowerCase(), + n = e.toLocaleLowerCase(), + i = [], + s = 0, + o = r.indexOf(n); + for (; o != -1; ) + i.push( + K(t.substring(s, o)), + `${K(t.substring(o, o + n.length))}` + ), + (s = o + n.length), + (o = r.indexOf(n, s)); + return i.push(K(t.substring(s))), i.join(''); + } + var Me = { + '&': '&', + '<': '<', + '>': '>', + "'": ''', + '"': '"' + }; + function K(t) { + return t.replace(/[&<>"'"]/g, (e) => Me[e]); + } + var P = class { + constructor(e) { + (this.el = e.el), (this.app = e.app); + } + }; + var M = 'mousedown', + fe = 'mousemove', + N = 'mouseup', + J = { x: 0, y: 0 }, + he = !1, + ee = !1, + De = !1, + D = !1, + pe = + /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( + navigator.userAgent + ); + document.documentElement.classList.add(pe ? 'is-mobile' : 'not-mobile'); + pe && + 'ontouchstart' in document.documentElement && + ((De = !0), (M = 'touchstart'), (fe = 'touchmove'), (N = 'touchend')); + document.addEventListener(M, (t) => { + (ee = !0), (D = !1); + let e = M == 'touchstart' ? t.targetTouches[0] : t; + (J.y = e.pageY || 0), (J.x = e.pageX || 0); + }); + document.addEventListener(fe, (t) => { + if (ee && !D) { + let e = M == 'touchstart' ? t.targetTouches[0] : t, + r = J.x - (e.pageX || 0), + n = J.y - (e.pageY || 0); + D = Math.sqrt(r * r + n * n) > 10; + } + }); + document.addEventListener(N, () => { + ee = !1; + }); + document.addEventListener('click', (t) => { + he && (t.preventDefault(), t.stopImmediatePropagation(), (he = !1)); + }); + var X = class extends P { + constructor(r) { + super(r); + (this.className = this.el.dataset.toggle || ''), + this.el.addEventListener(N, (n) => this.onPointerUp(n)), + this.el.addEventListener('click', (n) => n.preventDefault()), + document.addEventListener(M, (n) => + this.onDocumentPointerDown(n) + ), + document.addEventListener(N, (n) => + this.onDocumentPointerUp(n) + ); + } + setActive(r) { + if (this.active == r) return; + (this.active = r), + document.documentElement.classList.toggle( + 'has-' + this.className, + r + ), + this.el.classList.toggle('active', r); + let n = (this.active ? 'to-has-' : 'from-has-') + this.className; + document.documentElement.classList.add(n), + setTimeout( + () => document.documentElement.classList.remove(n), + 500 + ); + } + onPointerUp(r) { + D || (this.setActive(!0), r.preventDefault()); + } + onDocumentPointerDown(r) { + if (this.active) { + if (r.target.closest('.col-sidebar, .tsd-filter-group')) return; + this.setActive(!1); + } + } + onDocumentPointerUp(r) { + if (!D && this.active && r.target.closest('.col-sidebar')) { + let n = r.target.closest('a'); + if (n) { + let i = window.location.href; + i.indexOf('#') != -1 && + (i = i.substring(0, i.indexOf('#'))), + n.href.substring(0, i.length) == i && + setTimeout(() => this.setActive(!1), 250); + } + } + } + }; + var te; + try { + te = localStorage; + } catch { + te = { + getItem() { + return null; + }, + setItem() {} + }; + } + var Q = te; + var me = document.head.appendChild(document.createElement('style')); + me.dataset.for = 'filters'; + var Y = class extends P { + constructor(r) { + super(r); + (this.key = `filter-${this.el.name}`), + (this.value = this.el.checked), + this.el.addEventListener('change', () => { + this.setLocalStorage(this.el.checked); + }), + this.setLocalStorage(this.fromLocalStorage()), + (me.innerHTML += `html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`); + } + fromLocalStorage() { + let r = Q.getItem(this.key); + return r ? r === 'true' : this.el.checked; + } + setLocalStorage(r) { + Q.setItem(this.key, r.toString()), + (this.value = r), + this.handleValueChange(); + } + handleValueChange() { + (this.el.checked = this.value), + document.documentElement.classList.toggle(this.key, this.value), + this.app.filterChanged(), + document.querySelectorAll('.tsd-index-section').forEach((r) => { + r.style.display = 'block'; + let n = Array.from( + r.querySelectorAll('.tsd-index-link') + ).every((i) => i.offsetParent == null); + r.style.display = n ? 'none' : 'block'; + }); + } + }; + var Z = class extends P { + constructor(r) { + super(r); + (this.summary = this.el.querySelector('.tsd-accordion-summary')), + (this.icon = this.summary.querySelector('svg')), + (this.key = `tsd-accordion-${ + this.summary.dataset.key ?? + this.summary.textContent + .trim() + .replace(/\s+/g, '-') + .toLowerCase() + }`); + let n = Q.getItem(this.key); + (this.el.open = n ? n === 'true' : this.el.open), + this.el.addEventListener('toggle', () => this.update()), + this.update(); + } + update() { + (this.icon.style.transform = `rotate(${ + this.el.open ? 0 : -90 + }deg)`), + Q.setItem(this.key, this.el.open.toString()); + } + }; + function ve(t) { + let e = Q.getItem('tsd-theme') || 'os'; + (t.value = e), + ye(e), + t.addEventListener('change', () => { + Q.setItem('tsd-theme', t.value), ye(t.value); + }); + } + function ye(t) { + document.documentElement.dataset.theme = t; + } + de(); + G(X, 'a[data-toggle]'); + G(Z, '.tsd-index-accordion'); + G(Y, '.tsd-filter-item input[type=checkbox]'); + var ge = document.getElementById('tsd-theme'); + ge && ve(ge); + var Ae = new U(); + Object.defineProperty(window, 'app', { value: Ae }); + document.querySelectorAll('summary a').forEach((t) => { + t.addEventListener('click', () => { + location.assign(t.href); + }); + }); +})(); /*! Bundled license information: lunr/lunr.js: diff --git a/docs/assets/search.js b/docs/assets/search.js index 1c9765b7..fed37e14 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1,3 @@ -window.searchData = JSON.parse("{\"rows\":[],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[],\"invertedIndex\":[],\"pipeline\":[]}}"); \ No newline at end of file +window.searchData = JSON.parse( + '{"rows":[],"index":{"version":"2.3.9","fields":["name","comment"],"fieldVectors":[],"invertedIndex":[],"pipeline":[]}}' +); diff --git a/docs/assets/style.css b/docs/assets/style.css index 18b4f8fe..2b14b239 100644 --- a/docs/assets/style.css +++ b/docs/assets/style.css @@ -170,7 +170,7 @@ body { margin: 0; } -:root[data-theme="light"] { +:root[data-theme='light'] { --color-background: var(--light-color-background); --color-background-secondary: var(--light-color-background-secondary); --color-background-warning: var(--light-color-background-warning); @@ -209,7 +209,7 @@ body { --color-scheme: var(--light-color-scheme); } -:root[data-theme="dark"] { +:root[data-theme='dark'] { --color-background: var(--dark-color-background); --color-background-secondary: var(--dark-color-background-secondary); --color-background-warning: var(--dark-color-background-warning); @@ -401,7 +401,7 @@ dd { } body { background: var(--color-background); - font-family: "Segoe UI", sans-serif; + font-family: 'Segoe UI', sans-serif; font-size: 16px; color: var(--color-text); } @@ -413,7 +413,7 @@ a { a:hover { text-decoration: underline; } -a.external[target="_blank"] { +a.external[target='_blank'] { background-image: var(--external-icon); background-position: top 3px right; background-repeat: no-repeat; @@ -422,7 +422,7 @@ a.external[target="_blank"] { code, pre { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; padding: 0.2em; margin: 0; font-size: 0.875rem; @@ -502,7 +502,7 @@ blockquote { display: inline; } .tsd-breadcrumb li:after { - content: " / "; + content: ' / '; } .tsd-comment-tags { @@ -536,7 +536,7 @@ h1 code.tsd-tag:first-of-type { dl.tsd-comment-tag-group dd:before, dl.tsd-comment-tag-group dd:after { - content: " "; + content: ' '; } dl.tsd-comment-tag-group dd pre, dl.tsd-comment-tag-group dd:after { @@ -575,14 +575,14 @@ dl.tsd-comment-tag-group p { -ms-user-select: none; cursor: pointer; } -.tsd-filter-input input[type="checkbox"] { +.tsd-filter-input input[type='checkbox'] { cursor: pointer; position: absolute; width: 1.5em; height: 1.5em; opacity: 0; } -.tsd-filter-input input[type="checkbox"]:disabled { +.tsd-filter-input input[type='checkbox']:disabled { pointer-events: none; } .tsd-filter-input svg { @@ -595,16 +595,16 @@ dl.tsd-comment-tag-group p { Don't remove unless you know what you're doing. */ opacity: 0.99; } -.tsd-filter-input input[type="checkbox"]:focus + svg { +.tsd-filter-input input[type='checkbox']:focus + svg { transform: scale(0.95); } -.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { +.tsd-filter-input input[type='checkbox']:focus:not(:focus-visible) + svg { transform: scale(1); } .tsd-checkbox-background { fill: var(--color-accent); } -input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { +input[type='checkbox']:checked ~ svg .tsd-checkbox-checkmark { stroke: var(--color-text); } .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { @@ -965,7 +965,7 @@ a.tsd-index-link { margin: 0 0 1rem 0; padding: 1rem 0.5rem; border: 1px solid var(--color-accent); - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: auto; } @@ -1092,10 +1092,10 @@ ul.tsd-type-parameter-list h5 { .tsd-widget.menu { display: none; } -input[type="checkbox"] + .tsd-widget:before { +input[type='checkbox'] + .tsd-widget:before { background-position: -120px 0; } -input[type="checkbox"]:checked + .tsd-widget:before { +input[type='checkbox']:checked + .tsd-widget:before { background-position: -160px 0; } @@ -1256,7 +1256,7 @@ img { padding-bottom: 20px; } html .overlay { - content: ""; + content: ''; display: block; position: fixed; z-index: 1023; @@ -1309,7 +1309,7 @@ img { .container-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); - grid-template-areas: "sidebar content"; + grid-template-areas: 'sidebar content'; margin: 2rem auto; } @@ -1338,7 +1338,7 @@ img { @media (min-width: 1200px) { .container-main { grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); - grid-template-areas: "sidebar content toc"; + grid-template-areas: 'sidebar content toc'; } .col-sidebar { diff --git a/package-lock.json b/package-lock.json index 7072a780..f8a07716 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9 +1,2483 @@ { "name": "outsystems-datagrid", - "version": "2.12.1", - "lockfileVersion": 1, + "version": "2.13.0", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "outsystems-datagrid", + "version": "2.13.0", + "license": "BSD-3-Clause", + "dependencies": { + "@types/lodash": "^4.14.194", + "typescript": "^5.0.4" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^4.23.0", + "@typescript-eslint/parser": "^4.23.0", + "eslint": "^7.26.0", + "eslint-config-prettier": "^7.0.0", + "eslint-plugin-prettier": "^3.4.0", + "prettier": "^2.3.0", + "prettier-eslint": "^12.0.0", + "typedoc": "^0.24.8", + "typedoc-plugin-merge-modules": "^4.0.1", + "typedoc-umlclass": "^0.7.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.14.196", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.196.tgz", + "integrity": "sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-sequence-parser": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", + "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", + "dev": true + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-split": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/binary-split/-/binary-split-1.0.5.tgz", + "integrity": "sha512-AQ5fcBrUU5hoIafkEvNKqxT+2xbqlSqAXef6IdCQr5wpHu9E7NGM6rTAlYJYbtxvAvjfx8nJkBy6rNlbPPI+Pw==", + "dev": true, + "dependencies": { + "through2": "^2.0.3" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/dbly-linked-list": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/dbly-linked-list/-/dbly-linked-list-0.3.4.tgz", + "integrity": "sha512-327vOlwspi9i1T3Kc9yZhRUR8qDdgMQ4HmXsFDDCQ/HTc3sNe7gnF5b0UrsnaOJ0rvmG7yBZpK0NoOux9rKYKw==", + "dev": true, + "dependencies": { + "lodash.isequal": "^4.5.0" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/enquirer": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.0.tgz", + "integrity": "sha512-ehu97t6FTYK2I3ZYtnp0BZ9vt0mvEL/cnHBds7Ct6jo9VX1VIkiFhOvVRWh6eblQqd7KOoICIQV+syZ3neXO/Q==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz", + "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", + "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=5.0.0", + "prettier": ">=1.13.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/loglevel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/loglevel-colored-level-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz", + "integrity": "sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "loglevel": "^1.4.1" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/plantuml-encoder": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/plantuml-encoder/-/plantuml-encoder-1.4.0.tgz", + "integrity": "sha512-sxMwpDw/ySY1WB2CE3+IdMuEcWibJ72DDOsXLkSmEaSzwEUaYBT6DWgOfBiHGCux4q433X6+OEFWjlVqp7gL6g==", + "dev": true + }, + "node_modules/plantuml-pipe": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/plantuml-pipe/-/plantuml-pipe-1.5.0.tgz", + "integrity": "sha512-a4brAspbSlQYDdzLtDulB7ZQOGI5JC3Kyk7cTo8kDrM2gOQcarXkP/fN0mR+gD3srS9BMI06rOQKkvhrFpqYzg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "binary-split": "^1.0.5", + "split2": "^4.2.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-eslint": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-12.0.0.tgz", + "integrity": "sha512-N8SGGQwAosISXTNl1E57sBbtnqUGlyRWjcfIUxyD3HF4ynehA9GZ8IfJgiep/OfYvCof/JEpy9ZqSl250Wia7A==", + "dev": true, + "dependencies": { + "@typescript-eslint/parser": "^3.0.0", + "common-tags": "^1.4.0", + "dlv": "^1.1.0", + "eslint": "^7.9.0", + "indent-string": "^4.0.0", + "lodash.merge": "^4.6.0", + "loglevel-colored-level-prefix": "^1.0.0", + "prettier": "^2.0.0", + "pretty-format": "^23.0.1", + "require-relative": "^0.8.7", + "typescript": "^3.9.3", + "vue-eslint-parser": "~7.1.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/prettier-eslint/node_modules/@typescript-eslint/experimental-utils": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz", + "integrity": "sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/typescript-estree": "3.10.1", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/prettier-eslint/node_modules/@typescript-eslint/parser": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.10.1.tgz", + "integrity": "sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==", + "dev": true, + "dependencies": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "3.10.1", + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/typescript-estree": "3.10.1", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/prettier-eslint/node_modules/@typescript-eslint/types": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz", + "integrity": "sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/prettier-eslint/node_modules/@typescript-eslint/typescript-estree": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz", + "integrity": "sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/visitor-keys": "3.10.1", + "debug": "^4.1.1", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/prettier-eslint/node_modules/@typescript-eslint/visitor-keys": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz", + "integrity": "sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/prettier-eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/prettier-eslint/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier-eslint/node_modules/typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-format/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/pretty-format/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-fifo": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/queue-fifo/-/queue-fifo-0.2.6.tgz", + "integrity": "sha512-rwlnZHAaTmWEGKC7ziasK8u4QnZW/uN6kSiG+tHNf/1GA+R32FArZi18s3SYUpKcA0Y6jJoUDn5GT3Anoc2mWw==", + "dev": true, + "dependencies": { + "dbly-linked-list": "0.3.4" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-relative": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", + "integrity": "sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==", + "dev": true + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shiki": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.3.tgz", + "integrity": "sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==", + "dev": true, + "dependencies": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedoc": { + "version": "0.24.8", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.8.tgz", + "integrity": "sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==", + "dev": true, + "dependencies": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.0", + "shiki": "^0.14.1" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 14.14" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x" + } + }, + "node_modules/typedoc-plugin-merge-modules": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/typedoc-plugin-merge-modules/-/typedoc-plugin-merge-modules-4.1.0.tgz", + "integrity": "sha512-0Qax5eSaiP86zX9LlQQWANjtgkMfSHt6/LRDsWXfK45Ifc3lrgjZG4ieE87BMi3p12r/F0qW9sHQRB18tIs0fg==", + "dev": true, + "peerDependencies": { + "typedoc": "0.23.x || 0.24.x" + } + }, + "node_modules/typedoc-umlclass": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/typedoc-umlclass/-/typedoc-umlclass-0.7.1.tgz", + "integrity": "sha512-nHEPjbda1oIZ5lKNMainzi93UB1FyyMNoFWjNlipjK/Adx/RtepJdaGdIrZ8EgtuWGi7pW+xP8jaRmb40vj/9w==", + "dev": true, + "dependencies": { + "plantuml-encoder": "^1.4.0", + "plantuml-pipe": "^1.5.0", + "progress": "^2.0.3", + "queue-fifo": "^0.2.6" + }, + "peerDependencies": { + "typedoc": "0.23.x || 0.24.x" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", + "dev": true + }, + "node_modules/vue-eslint-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.1.1.tgz", + "integrity": "sha512-8FdXi0gieEwh1IprIBafpiJWcApwrU+l2FEj8c1HtHFdNXMd0+2jUSjBVmcQYohf/E72irwAXEXLga6TQcB3FA==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "eslint-scope": "^5.0.0", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.0.1", + "lodash": "^4.17.15" + }, + "engines": { + "node": ">=8.10" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + }, "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, "@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -14,18 +2488,18 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -163,15 +2637,15 @@ "dev": true }, "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", "dev": true }, "@types/lodash": { - "version": "4.14.194", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", - "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==" + "version": "4.14.196", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.196.tgz", + "integrity": "sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==" }, "@typescript-eslint/eslint-plugin": { "version": "4.33.0", @@ -266,7 +2740,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "ajv": { "version": "6.12.6", @@ -293,9 +2768,9 @@ "dev": true }, "ansi-sequence-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", - "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", + "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", "dev": true }, "ansi-styles": { @@ -477,12 +2952,13 @@ "dev": true }, "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.0.tgz", + "integrity": "sha512-ehu97t6FTYK2I3ZYtnp0BZ9vt0mvEL/cnHBds7Ct6jo9VX1VIkiFhOvVRWh6eblQqd7KOoICIQV+syZ3neXO/Q==", "dev": true, "requires": { - "ansi-colors": "^4.1.1" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" } }, "escape-string-regexp": { @@ -568,7 +3044,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz", "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-prettier": { "version": "3.4.1", @@ -630,9 +3107,9 @@ "dev": true }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -682,15 +3159,15 @@ "dev": true }, "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -713,9 +3190,9 @@ "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -750,9 +3227,9 @@ } }, "flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "fs.realpath": { @@ -791,9 +3268,9 @@ } }, "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -837,9 +3314,9 @@ "dev": true }, "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, "import-fresh": { @@ -988,9 +3465,9 @@ "dev": true }, "loglevel": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", "dev": true }, "loglevel-colored-level-prefix": { @@ -1119,17 +3596,17 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, "parent-module": { @@ -1172,13 +3649,13 @@ "dev": true }, "plantuml-pipe": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/plantuml-pipe/-/plantuml-pipe-1.4.0.tgz", - "integrity": "sha512-9FGqUG0TUwZCGFgKU7PyRxlfDqO99iFb7I40Vwk3Akt2SSdxI9Y1yicfZHeW8/3V6/4meVfCSQ/le7ldWdIX0Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/plantuml-pipe/-/plantuml-pipe-1.5.0.tgz", + "integrity": "sha512-a4brAspbSlQYDdzLtDulB7ZQOGI5JC3Kyk7cTo8kDrM2gOQcarXkP/fN0mR+gD3srS9BMI06rOQKkvhrFpqYzg==", "dev": true, "requires": { "binary-split": "^1.0.5", - "split2": "^4.1.0" + "split2": "^4.2.0" } }, "prelude-ls": { @@ -1188,9 +3665,9 @@ "dev": true }, "prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true }, "prettier-eslint": { @@ -1351,9 +3828,9 @@ "dev": true }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "queue-fifo": { @@ -1372,9 +3849,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -1441,9 +3918,9 @@ "dev": true }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -1494,9 +3971,9 @@ } }, "split2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", - "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "dev": true }, "sprintf-js": { @@ -1505,6 +3982,15 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -1516,15 +4002,6 @@ "strip-ansi": "^6.0.1" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -1558,9 +4035,9 @@ } }, "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -1571,9 +4048,9 @@ }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -1667,9 +4144,9 @@ } }, "minimatch": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", - "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -1678,27 +4155,28 @@ } }, "typedoc-plugin-merge-modules": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/typedoc-plugin-merge-modules/-/typedoc-plugin-merge-modules-4.0.1.tgz", - "integrity": "sha512-peuoWT/xcpEO71kNuaTBAS2IVwc8qm5tiIXnJc0vW/Cy9HHoVGkYecarkwtLBl5VmrhZjZN6LQNriqYfgHA1+A==", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/typedoc-plugin-merge-modules/-/typedoc-plugin-merge-modules-4.1.0.tgz", + "integrity": "sha512-0Qax5eSaiP86zX9LlQQWANjtgkMfSHt6/LRDsWXfK45Ifc3lrgjZG4ieE87BMi3p12r/F0qW9sHQRB18tIs0fg==", + "dev": true, + "requires": {} }, "typedoc-umlclass": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/typedoc-umlclass/-/typedoc-umlclass-0.7.0.tgz", - "integrity": "sha512-eJ9Q1tHX5FLRjh3fYQp2FdqkcrTVVkpHC8nynFwPCi1QnKLOmJbudqv6+glywfFjdHotM3xlr9BIONiM1rsr7w==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/typedoc-umlclass/-/typedoc-umlclass-0.7.1.tgz", + "integrity": "sha512-nHEPjbda1oIZ5lKNMainzi93UB1FyyMNoFWjNlipjK/Adx/RtepJdaGdIrZ8EgtuWGi7pW+xP8jaRmb40vj/9w==", "dev": true, "requires": { "plantuml-encoder": "^1.4.0", - "plantuml-pipe": "^1.4.0", + "plantuml-pipe": "^1.5.0", "progress": "^2.0.3", "queue-fifo": "^0.2.6" } }, "typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==" + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==" }, "uri-js": { "version": "4.4.1", @@ -1775,12 +4253,6 @@ "isexe": "^2.0.0" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 2fc61584..2fd7a557 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "outsystems-datagrid", - "version": "2.12.1", + "version": "2.13.0", "description": "OutSystems Data Grid for Reactive Web", "author": "UI Components Team", "license": "BSD-3-Clause", diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ar-AE.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ar-AE.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ar-AE.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ar-AE.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.bg.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.bg.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.bg.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.bg.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ca.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ca.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ca.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ca.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.cs.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.cs.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.cs.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.cs.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.da.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.da.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.da.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.da.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.de-CH.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.de-CH.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.de-CH.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.de-CH.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.de.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.de.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.de.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.de.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.el.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.el.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.el.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.el.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.en-CA.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.en-CA.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.en-CA.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.en-CA.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.en-GB.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.en-GB.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.en-GB.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.en-GB.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.en.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.en.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.en.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.en.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.es-419.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.es-419.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.es-419.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.es-419.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.es-MX.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.es-MX.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.es-MX.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.es-MX.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.es.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.es.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.es.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.es.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.et.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.et.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.et.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.et.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.eu.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.eu.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.eu.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.eu.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.fi.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.fi.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.fi.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.fi.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.fr-CA.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.fr-CA.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.fr-CA.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.fr-CA.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.fr.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.fr.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.fr.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.fr.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.gl.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.gl.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.gl.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.gl.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.he.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.he.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.he.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.he.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.hi.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.hi.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.hi.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.hi.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.hr.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.hr.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.hr.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.hr.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.hu.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.hu.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.hu.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.hu.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.id.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.id.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.id.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.id.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.it.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.it.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.it.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.it.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ja.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ja.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ja.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ja.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.kk.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.kk.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.kk.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.kk.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ko.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ko.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ko.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ko.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.lt.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.lt.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.lt.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.lt.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.lv.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.lv.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.lv.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.lv.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.mn-MN.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.mn-MN.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.mn-MN.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.mn-MN.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.nl.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.nl.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.nl.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.nl.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.no.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.no.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.no.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.no.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.pl.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.pl.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.pl.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.pl.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.pt.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.pt.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.pt.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.pt.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ro.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ro.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ro.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ro.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ru.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ru.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.ru.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.ru.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.sk.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.sk.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.sk.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.sk.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.sl.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.sl.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.sl.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.sl.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.sr.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.sr.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.sr.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.sr.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.sv.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.sv.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.sv.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.sv.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.th.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.th.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.th.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.th.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.tr.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.tr.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.tr.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.tr.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.uk.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.uk.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.uk.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.uk.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.vi.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.vi.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.vi.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.vi.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.zh-HK.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.zh-HK.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.zh-HK.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.zh-HK.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.zh-TW.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.zh-TW.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.zh-TW.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.zh-TW.d.ts diff --git a/src/@types/wijmo-5.20231.888/cultures/wijmo.culture.zh.d.ts b/src/@types/wijmo-5.20231.908/cultures/wijmo.culture.zh.d.ts similarity index 100% rename from src/@types/wijmo-5.20231.888/cultures/wijmo.culture.zh.d.ts rename to src/@types/wijmo-5.20231.908/cultures/wijmo.culture.zh.d.ts diff --git a/src/@types/wijmo-5.20231.888/wijmo.barcode.common.d.ts b/src/@types/wijmo-5.20231.908/wijmo.barcode.common.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.barcode.common.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.barcode.common.d.ts index 8266952e..4285ae99 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.barcode.common.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.barcode.common.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.barcode.composite.d.ts b/src/@types/wijmo-5.20231.908/wijmo.barcode.composite.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.barcode.composite.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.barcode.composite.d.ts index d9fbf8ca..fdd37225 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.barcode.composite.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.barcode.composite.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.barcode.d.ts b/src/@types/wijmo-5.20231.908/wijmo.barcode.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.barcode.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.barcode.d.ts index c1637d59..f6816311 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.barcode.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.barcode.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.barcode.specialized.d.ts b/src/@types/wijmo-5.20231.908/wijmo.barcode.specialized.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.barcode.specialized.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.barcode.specialized.d.ts index e891f15b..395b6dd3 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.barcode.specialized.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.barcode.specialized.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.analytics.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.analytics.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.chart.analytics.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.analytics.d.ts index 456f45b0..df17ba55 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.analytics.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.analytics.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.animation.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.animation.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.chart.animation.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.animation.d.ts index 904bfb7e..0192d8f4 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.animation.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.animation.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.annotation.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.annotation.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.chart.annotation.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.annotation.d.ts index 511bd3a9..8dd99abf 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.annotation.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.annotation.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.chart.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.d.ts index b7925982..9695005c 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. @@ -453,6 +453,7 @@ declare module wijmo.chart { */ addClipRect(clipRect: wijmo.Rect, id: string): any; } + const empty: {}; } declare module wijmo.chart { /** diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.finance.analytics.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.finance.analytics.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.chart.finance.analytics.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.finance.analytics.d.ts index 5a0203b8..fdeac84d 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.finance.analytics.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.finance.analytics.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.finance.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.finance.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.chart.finance.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.finance.d.ts index 6bf9eb1c..07fbe4ee 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.finance.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.finance.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.hierarchical.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.hierarchical.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.chart.hierarchical.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.hierarchical.d.ts index 4cd6a283..f3c05043 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.hierarchical.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.hierarchical.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.interaction.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.interaction.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.chart.interaction.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.interaction.d.ts index c5706af7..f2f6aa30 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.interaction.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.interaction.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.map.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.map.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.chart.map.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.map.d.ts index 05be21fc..5ed87b14 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.map.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.map.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. @@ -203,6 +203,7 @@ declare module wijmo.chart.map { map: FlexMap; render(engine: wijmo.chart.IRenderEngine, t?: SVGTransform, g?: SVGGElement): any; } + const empty: {}; } declare module wijmo.chart.map { /** Base class for map layers. */ diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.radar.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.radar.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.chart.radar.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.radar.d.ts index 24ae195f..ea3d9a24 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.radar.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.radar.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.render.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.render.d.ts similarity index 98% rename from src/@types/wijmo-5.20231.888/wijmo.chart.render.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.render.d.ts index 89417b2d..3eff878d 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.render.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.render.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.chart.webgl.d.ts b/src/@types/wijmo-5.20231.908/wijmo.chart.webgl.d.ts similarity index 98% rename from src/@types/wijmo-5.20231.888/wijmo.chart.webgl.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.chart.webgl.d.ts index de4dca96..02b43a24 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.chart.webgl.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.chart.webgl.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.cloud.d.ts b/src/@types/wijmo-5.20231.908/wijmo.cloud.d.ts similarity index 96% rename from src/@types/wijmo-5.20231.888/wijmo.cloud.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.cloud.d.ts index 357f741b..302d308d 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.cloud.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.cloud.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. @@ -384,21 +384,7 @@ declare module wijmo.cloud { * * {@link Sheet} objects may be created by setting the {@link sheets} * property when creating a {@link GoogleSheet} object or by invoking - * the {@link Sheet} constructor directly. For example: - * - * ```typescript - * import { GoogleSheet, Sheet } from '@grapecity/wijmo.cloud'; - * - * // create a GoogleSheet with three Sheets - * const SHEET_ID_NW = 'XXX'; - * const API_KEY = 'YYY'; - * let gsNWind = new GoogleSheet(SHEET_ID_NW, API_KEY, { - * sheets: [ 'Products', 'Categories', 'Suppliers' ] - * }); - * - * // create an additional Sheet by calling the constructor - * let customers = new Sheet(gsNWind, 'Customers'); - * ``` + * the {@link Sheet} constructor directly. * * The {@link Sheet} class assumes that the data is stored in table * format, where each column has a title (unique string) on the @@ -416,26 +402,9 @@ declare module wijmo.cloud { * * In most applications, the {@link Sheet} objects are used as * data sources for grid controls such as the {@link FlexGrid} - * or {@link MultiRow} grid. For example: - * - * ```typescript - * import { GoogleSheet, Sheet } from '@grapecity/wijmo.cloud'; - * import { FlexGrid } from '@grapecity/wijmo.cloud'; + * or {@link MultiRow} grid. * - * // create a GoogleSheet with three Sheets - * const SHEET_ID_NW = '1qnf-FCONZj_AmOlyNkpIA3mKvP8FQtVOr7K8Awpo360'; - * const API_KEY = 'AIzaSyCvuXEzP57I5CQ9ifZDG2_K8M3nDa1LOPE'; - * let gsNWind = new GoogleSheet(SHEET_ID_NW, API_KEY, { - * sheets: [ 'Products', 'Categories', 'Suppliers' ] - * }); * - * // use a Sheet as an itemsSource for a FlexGrid control: - * let theGrid = new FlexGrid('#theGrid', { - * allowAddNew: true, - * allowDelete: true, - * itemsSource: gsNWind.getSheet('Products'), - * }); - * ``` */ class Sheet extends wijmo.collections.CollectionView { _gSheet: GoogleSheet; @@ -537,17 +506,6 @@ declare module wijmo.cloud { * The sorting, filtering, and paging functions are performed on the * on the client. * - * The code below shows how you can instantiate a {@link GoogleSheet} - * object that loads data from three sheets: - * - * ```typescript - * import { GoogleSheet } from '@grapecity/wijmo.cloud'; - * const SHEET_ID_NW = '1qnf-FCONZj_AmOlyNkpIA3mKvP8FQtVOr7K8Awpo360'; - * const API_KEY = 'AIzaSyCvuXEzP57I5CQ9ifZDG2_K8M3nDa1LOPE'; - * let gsNWind = new GoogleSheet(SHEET_ID_NW, API_KEY, { - * sheets: [ 'Products', 'Categories', 'Suppliers' ] - * }); - * ``` */ class GoogleSheet { _sheetId: string; diff --git a/src/@types/wijmo-5.20231.888/wijmo.d.ts b/src/@types/wijmo-5.20231.908/wijmo.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.d.ts index 37cb2dae..a00ef976 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. @@ -762,6 +762,7 @@ declare module wijmo.collections { */ namesMatch(groupName: any, itemName: any): boolean; } + const empty: {}; } declare module wijmo { /** @@ -962,6 +963,10 @@ declare module wijmo { * @param baseId String to use as a basis for generating the unique id. */ function getUniqueId(baseId: string): string; + /** + * Creates an unique id + */ + function uidGenerator(): string; /** * Converts mouse or touch event arguments into a {@link Point} in page coordinates. */ @@ -2580,7 +2585,7 @@ declare module wijmo { * @param items Array with the items to aggregate. * @param binding Name of the property to aggregate on (in case the items are not simple values). */ - function getAggregate(aggType: Aggregate, items: any[], binding?: string): any; + function getAggregate(aggType: Aggregate, items: any[], binding?: string, sheet?: any): any; } declare module wijmo.collections { /** @@ -3680,7 +3685,7 @@ declare module wijmo.collections { * @param view CollectionView that owns this group. * @return The aggregate value. */ - getAggregate(aggType: wijmo.Aggregate, binding: string, view?: ICollectionView): any; + getAggregate(aggType: wijmo.Aggregate, binding: string, view?: ICollectionView, sheet?: any): any; } } declare module wijmo { diff --git a/src/@types/wijmo-5.20231.888/wijmo.gauge.d.ts b/src/@types/wijmo-5.20231.908/wijmo.gauge.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.gauge.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.gauge.d.ts index 0df0f40b..bfe9afd8 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.gauge.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.gauge.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.cellmaker.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.cellmaker.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.cellmaker.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.cellmaker.d.ts index 7f7e157c..1f1364c4 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.cellmaker.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.cellmaker.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.d.ts index 052e8d1b..7e6f589e 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. @@ -423,6 +423,7 @@ declare module wijmo.grid { private _recycle; _vrb: CellRange; _vru: CellRange; + _uid: string; static readonly _INDEX_KEY = "wj-cell-index"; static readonly _HTML_CELL = "
"; /** @@ -1168,6 +1169,7 @@ declare module wijmo.grid { _tpl: string | ICellTemplateFunction; _szStar: string; _hash: string; + _uid: string; /** * Initializes a new instance of the {@link Column} class. * @@ -1542,6 +1544,7 @@ declare module wijmo.grid { _dirty: boolean; _szMin: number; _szMax: number; + _uid: string; /** * Initializes a new instance of the {@link RowColCollection} class. * @@ -1714,7 +1717,7 @@ declare module wijmo.grid { } } declare module wijmo.grid { - const colHdrAriaAttributes: (cell: HTMLElement, col: Column, gridPanel: GridPanel, g: FlexGrid) => void; + const colHdrAriaAttributes: (cell: HTMLElement, col: Column, gridPanel: GridPanel, g: FlexGrid, isRowHeader?: boolean) => void; } declare module wijmo.grid { /** @@ -1872,6 +1875,7 @@ declare module wijmo.grid { class ColumnGroup extends Column { private _ownerList; private _changeHdl; + private _cgHeight; _rng: CellRange; _curr_header: string | null; protected _cols: ColumnGroupCollection; @@ -1891,6 +1895,10 @@ declare module wijmo.grid { */ readonly columns: ColumnGroupCollection; readonly columnGroups: ColumnGroupCollection; + /** + * Gets or sets the height of {@link ColumnGroup}. + */ + height: number; /** * Gets the value that indicates whether the group contains child columns or not. */ @@ -2215,6 +2223,7 @@ declare module wijmo.grid { _cellPadHorz: number; _cellPadVert: number; _clipToScreen: boolean; + _uid: string; _mouseHdl: _MouseHandler; _edtHdl: _EditHandler; _selHdl: _SelectionHandler; @@ -2928,6 +2937,7 @@ declare module wijmo.grid { * The default value for this property is **true**. */ validateEdits: boolean; + protected _setvalidateEdits(value: boolean): void; /** * Gets or sets the format string used to create the group header content. * @@ -4510,6 +4520,7 @@ declare module wijmo.grid { static _rtlMode: string; private static _getRtlMode; getEmptyRequiredCell(row: number): any; + protected _getEmptyRequiredCell(row: number): any; } } declare module wijmo.grid { @@ -4841,6 +4852,7 @@ declare module wijmo.grid { * @return True if the edit operation finished successfully. */ finishEditing(cancel?: boolean): boolean; + _setSelectionRange(e: any, start: number, end: number, needFocus?: boolean, ignoreScroll?: boolean): boolean; _setCustomEditorValue(value: any): void; _getCustomEditor(g: FlexGrid): any; _setCellError(cell: HTMLElement, error: string): void; @@ -4901,6 +4913,7 @@ declare module wijmo.grid { private _findDuplicateValues; private _removeListBox; private isEqualValue; + protected _selectionChanging(e: CellRangeEventArgs): void; } } declare module wijmo.grid { @@ -4917,6 +4930,7 @@ declare module wijmo.grid { _isComboBox: boolean; _isAutoComplete: boolean; _isInputDateTime: boolean; + _isInputNumber: boolean; _isInputMask: boolean; _updateFocusBnd: any; _keydownBnd: any; diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.detail.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.detail.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.detail.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.detail.d.ts index 680ff8ef..e022b2e3 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.detail.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.detail.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.filter.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.filter.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.filter.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.filter.d.ts index cf6213cc..b285b7d3 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.filter.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.filter.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. @@ -309,6 +309,7 @@ declare module wijmo.grid.filter { apply(value: any): boolean; clear(): void; } + const empty: {}; } declare module wijmo.grid.filter { /** diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.grouppanel.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.grouppanel.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.grouppanel.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.grouppanel.d.ts index d21d4da9..d7ac0284 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.grouppanel.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.grouppanel.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.immutable.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.immutable.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.immutable.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.immutable.d.ts index a2099e08..7d4fd875 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.immutable.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.immutable.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.multirow.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.multirow.d.ts similarity index 98% rename from src/@types/wijmo-5.20231.888/wijmo.grid.multirow.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.multirow.d.ts index c9e90026..9d3946c2 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.multirow.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.multirow.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. @@ -70,6 +70,14 @@ declare module wijmo.grid.multirow { private _getLastRowInHeader; } } +declare module wijmo.grid.multirow { + /** + * Handles the multirow's editing. + */ + class _MultiRowEditHandler extends wijmo.grid._EditHandler { + _selectionChanging(e: wijmo.grid.CellRangeEventArgs): void; + } +} declare module wijmo.grid.multirow { /** * Extends the {@link ObservableArray} class to track layout changes. @@ -459,6 +467,7 @@ declare module wijmo.grid.multirow { private _formatItem; _updateButtonGlyph(): void; _getError(p: wijmo.grid.GridPanel, r: number, c: number, parsing?: boolean): string | null; + _getEmptyRequiredCell(row: number): any; } } declare module wijmo.grid.multirow { diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.pdf.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.pdf.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.pdf.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.pdf.d.ts index 70402671..da93680a 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.pdf.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.pdf.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.search.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.search.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.search.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.search.d.ts index 2e0a5af7..d133974c 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.search.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.search.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.selector.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.selector.d.ts similarity index 96% rename from src/@types/wijmo-5.20231.888/wijmo.grid.selector.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.selector.d.ts index 94f7309b..f4943384 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.selector.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.selector.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. @@ -74,6 +74,7 @@ declare module wijmo.grid.selector { protected _isFixedCol: boolean; protected _isBound: boolean; protected _showCheckAll: boolean; + protected _ariaLabel: string; protected _clickBnd: any; protected _mousedownBnd: any; protected _pressSpaceBnd: any; @@ -97,6 +98,12 @@ declare module wijmo.grid.selector { * The default value for this property is **true**. */ showCheckAll: boolean; + /** + * Gets or sets the aria label property of selector. + * + * The default value for this property is **''**. + */ + ariaLabel: string; /** * Occurs before the value of the {@link column} property changes. */ diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.sheet.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.sheet.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.sheet.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.sheet.d.ts index 36f35c3b..2eb9d342 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.sheet.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.sheet.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. @@ -955,6 +955,7 @@ declare module wijmo.grid.sheet { */ allowAutoFill: boolean; _lastSelMovePos: wijmo.grid.CellRange; + _setvalidateEdits(value: boolean): void; /** * Occurs when current sheet index changed. */ @@ -1084,9 +1085,10 @@ declare module wijmo.grid.sheet { * @param value Value to store in the cell. * @param coerce Whether to change the value automatically to match the column's data type. * @param invalidate Whether to invalidate the FlexSheet to show the change. + * @param isMapKeyValue value passed is already key value of dataMap, don't need re-find. * @return True if the value was stored successfully, false otherwise. */ - setCellData(r: number, c: any, value: any, coerce?: boolean, invalidate?: boolean): boolean; + setCellData(r: number, c: any, value: any, coerce?: boolean, invalidate?: boolean, isMapKeyValue?: boolean): boolean; /** * Overrides the base class method to take into account the function list. */ @@ -1821,9 +1823,10 @@ declare module wijmo.grid.sheet { * @param value The value to store in the cell. * @param coerce A value indicating whether to change the value automatically to match the column's data type. * @param invalidate Whether to invalidate the FlexSheet to show the change. + * @param isMapKeyValue value passed is already key value of dataMap, don't need re-find. * @return Returns true if the value is stored successfully, otherwise false (failed cast). */ - setCellData(r: number, c: any, value: any, coerce?: boolean, invalidate?: boolean): boolean; + setCellData(r: number, c: any, value: any, coerce?: boolean, invalidate?: boolean, isMapKeyValue?: boolean): boolean; _renderCell(row: HTMLElement, r: number, c: number, vrng: wijmo.grid.CellRange, state: boolean, ctr: number): number; private _drkColors; private _darker; @@ -2606,6 +2609,7 @@ declare module wijmo.grid.sheet { * @param currentSheet The {@link Sheet} need get the valid name. */ getValidSheetName(currentSheet: T): string; + getUniqueNameOnInit(): string; _setCurrentIdx(value: number): void; private _moveCurrentTo; _getSheetIndexFrom(sheetName: string): number; diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.transposed.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.transposed.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.transposed.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.transposed.d.ts index 1c8319e3..b44a7205 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.transposed.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.transposed.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.transposedmultirow.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.transposedmultirow.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.transposedmultirow.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.transposedmultirow.d.ts index 1f885e52..86fe6fdd 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.transposedmultirow.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.transposedmultirow.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.grid.xlsx.d.ts b/src/@types/wijmo-5.20231.908/wijmo.grid.xlsx.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.grid.xlsx.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.grid.xlsx.d.ts index 6908f1ae..08e67884 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.grid.xlsx.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.grid.xlsx.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.input.d.ts b/src/@types/wijmo-5.20231.908/wijmo.input.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.input.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.input.d.ts index 1aad1b49..fab4b8d4 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.input.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.input.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. @@ -217,7 +217,7 @@ declare module wijmo.input { private _setSelStartDigits; private _increment; protected _updateBtn(): void; - protected _setText(text: string, truncate?: boolean): void; + _setText(text: string, truncate?: boolean, forceDelete?: boolean): void; protected _keypress(e: KeyboardEvent): void; protected _keydown(e: KeyboardEvent): void; protected _input(): void; @@ -277,6 +277,7 @@ declare module wijmo.input { _oldValue: string; _value: string; _msk: wijmo._MaskProvider; + _fullEdit: boolean; /** * Gets or sets the template used to instantiate {@link InputMask} controls. */ @@ -378,6 +379,7 @@ declare module wijmo.input { _commitText(): void; dispose(): void; refresh(fullUpdate?: boolean): void; + _isGridImeEnabled(): boolean; onGotFocus(e: any): void; } } @@ -646,6 +648,7 @@ declare module wijmo.input { _itemCount: number; _oldSel: HTMLElement | null; _container: HTMLElement | null; + _oldSelectedIndex: number; static _DIDX_KEY: string; static _VTHRESH: number; /** @@ -1204,6 +1207,8 @@ declare module wijmo.input { _updateCheckAllCheckbox(): void; _setIsDisabled(value: boolean): void; _setTabOrder(value: number): void; + tryForceClearDelayAndFilter(): void; + onLostFocus(): void; } } declare module wijmo.input { @@ -2892,11 +2897,7 @@ declare module wijmo.input { * * Use this property to change the default setting if the default does not work well * for the current culture, device, or application. In those cases, try changing - * the value to "number" or "text." - * - * Note that input elements with type "number" prevent selection in Chrome and therefore - * is not recommended. For more details, see this link: - * https://stackoverflow.com/questions/21177489/selectionstart-selectionend-on-input-type-number-no-longer-allowed-in-chrome + * the value to "tel" or "text" */ inputType: string; /** @@ -3134,6 +3135,9 @@ declare module wijmo.input { _bsCollapse: boolean; _fmtItemHandlers: number; _emptyValueAction: boolean; + _oldIndexToBeRestoredOnBlur: null | number; + _restoreComboboxTbxVal: boolean; + _isWheel: boolean; /** * Initializes a new instance of the {@link ComboBox} class. * @@ -3334,7 +3338,7 @@ declare module wijmo.input { * @param fullMatch Whether to look for a full match or just the start of the string. * @return The index of the item, or -1 if not found. */ - indexOf(search: string, fullMatch: boolean): number; + indexOf(search: string, fullMatch: boolean, dry?: boolean): number; /** * Gets the {@link ListBox} control shown in the drop-down. */ @@ -3356,9 +3360,10 @@ declare module wijmo.input { */ onSelectedIndexChanged(e?: wijmo.EventArgs): void; refresh(fullUpdate?: boolean): void; - onLostFocus(e?: wijmo.EventArgs): void; + onLostFocus(e?: wijmo.EventArgs, oldIdxAutoComplete?: number, forceAutoCompleteBlurIdxUpdate?: boolean): void; onIsDroppedDownChanging(e: wijmo.CancelEventArgs): boolean; onIsDroppedDownChanged(e?: wijmo.EventArgs): void; + protected _trySelectionUpdateOnItemsSourceChanged(isSourceChanged: boolean, txtCombo: string): void; protected _setIsDisabled(value: boolean): void; protected _updateBtn(): void; protected _hasItems(): boolean; @@ -3544,6 +3549,7 @@ declare module wijmo.input { onCheckedItemsChanged(e?: wijmo.EventArgs): void; dispose(): void; onIsDroppedDownChanged(e?: wijmo.EventArgs): void; + onLostFocus(): void; protected _createDropDown(): void; isReadOnly: boolean; refresh(fullUpdate?: boolean): void; @@ -3950,6 +3956,7 @@ declare module wijmo.input { * for entering short times (format 't'). */ mask: string; + onLostFocus(): void; /** * Occurs when the value of the {@link value} property changes, either * as a result of user actions or by assignment in code. @@ -4219,6 +4226,7 @@ declare module wijmo.input { onSelectedIndexChanged(e?: wijmo.EventArgs): void; _keydown(e: KeyboardEvent): void; _setText(text: string): void; + onLostFocus(e?: wijmo.EventArgs): void; _itemSourceFunctionCallback(result: any[]): void; onIsDroppedDownChanged(e?: wijmo.EventArgs): void; protected _updateItems(): void; @@ -4226,6 +4234,7 @@ declare module wijmo.input { protected _getItemText(item: any, header: boolean): string; protected _formatListItem(sender: any, e: FormatItemEventArgs): void; private _enclosed; + protected _wheel(e: WheelEvent): void; } } declare module wijmo.input { diff --git a/src/@types/wijmo-5.20231.888/wijmo.nav.d.ts b/src/@types/wijmo-5.20231.908/wijmo.nav.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.nav.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.nav.d.ts index 17da05f1..d9634635 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.nav.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.nav.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.odata.d.ts b/src/@types/wijmo-5.20231.908/wijmo.odata.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.odata.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.odata.d.ts index 545438c0..a063cfb5 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.odata.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.odata.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.olap.d.ts b/src/@types/wijmo-5.20231.908/wijmo.olap.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.olap.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.olap.d.ts index 7d3d1098..4f2e59e5 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.olap.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.olap.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.pdf.d.ts b/src/@types/wijmo-5.20231.908/wijmo.pdf.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.pdf.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.pdf.d.ts index 72b339a5..ad5592d0 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.pdf.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.pdf.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.pdf.security.d.ts b/src/@types/wijmo-5.20231.908/wijmo.pdf.security.d.ts similarity index 98% rename from src/@types/wijmo-5.20231.888/wijmo.pdf.security.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.pdf.security.d.ts index b8afa7d1..228511c9 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.pdf.security.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.pdf.security.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.rest.d.ts b/src/@types/wijmo-5.20231.908/wijmo.rest.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.rest.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.rest.d.ts index 3f462b55..e7529a1a 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.rest.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.rest.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.touch.d.ts b/src/@types/wijmo-5.20231.908/wijmo.touch.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.touch.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.touch.d.ts index 9d63adcd..2a2e6668 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.touch.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.touch.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.undo.d.ts b/src/@types/wijmo-5.20231.908/wijmo.undo.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.undo.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.undo.d.ts index adc01fe8..1ed32634 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.undo.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.undo.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.viewer.d.ts b/src/@types/wijmo-5.20231.908/wijmo.viewer.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.viewer.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.viewer.d.ts index e45c3a4f..776580ae 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.viewer.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.viewer.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/@types/wijmo-5.20231.888/wijmo.xlsx.d.ts b/src/@types/wijmo-5.20231.908/wijmo.xlsx.d.ts similarity index 99% rename from src/@types/wijmo-5.20231.888/wijmo.xlsx.d.ts rename to src/@types/wijmo-5.20231.908/wijmo.xlsx.d.ts index 375ce26f..4d5482a5 100644 --- a/src/@types/wijmo-5.20231.888/wijmo.xlsx.d.ts +++ b/src/@types/wijmo-5.20231.908/wijmo.xlsx.d.ts @@ -1,6 +1,6 @@ /*! * - * Wijmo Library 5.20231.888 + * Wijmo Library 5.20231.908 * http://wijmo.com/ * * Copyright(c) GrapeCity, Inc. All rights reserved. diff --git a/src/OSFramework/DataGrid/Configuration/Column/ColumnConfigAction.ts b/src/OSFramework/DataGrid/Configuration/Column/ColumnConfigAction.ts index c5cccf80..fe25c8eb 100644 --- a/src/OSFramework/DataGrid/Configuration/Column/ColumnConfigAction.ts +++ b/src/OSFramework/DataGrid/Configuration/Column/ColumnConfigAction.ts @@ -4,7 +4,7 @@ namespace OSFramework.DataGrid.Configuration.Column { * Defines the configuration for Action Columns */ export class ColumnConfigAction extends ColumnConfig { - public actionColumnElementType: DataGrid.Enum.ActionColumnElementType; + public actionColumnElementType: DataGrid.Enum.CellTemplateElementType; public extendedClass: string; public url: string; @@ -15,5 +15,16 @@ namespace OSFramework.DataGrid.Configuration.Column { super(config); this.actionColumnElementType = extraConfig.actionColumnElementType; } + + public getProviderConfig(): DataGrid.Types.IColumnProviderConfigs { + const config = super.getProviderConfig(); + if ( + this.actionColumnElementType === + DataGrid.Enum.CellTemplateElementType.Button + ) + config.cssClassAll = 'has-image-or-button'; + + return config; + } } } diff --git a/src/OSFramework/DataGrid/Configuration/Column/ColumnConfigImage.ts b/src/OSFramework/DataGrid/Configuration/Column/ColumnConfigImage.ts new file mode 100644 index 00000000..ed429f2c --- /dev/null +++ b/src/OSFramework/DataGrid/Configuration/Column/ColumnConfigImage.ts @@ -0,0 +1,28 @@ +/// + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +namespace OSFramework.DataGrid.Configuration.Column { + /** + * Defines the configuration for Action Columns + */ + export class ColumnConfigImage extends ColumnConfig { + public actionColumnElementType = + DataGrid.Enum.CellTemplateElementType.Image; + public altText: string; + + constructor( + config: DataGrid.Types.IColumnConfigs, + extraConfig: DataGrid.Types.IImageColumnExtraConfigs + ) { + super(config); + this.altText = extraConfig.altText; + } + + public getProviderConfig(): DataGrid.Types.IColumnProviderConfigs { + const config = super.getProviderConfig(); + config.cssClassAll = 'has-image-or-button'; + + return config; + } + } +} diff --git a/src/OSFramework/DataGrid/Constants.ts b/src/OSFramework/DataGrid/Constants.ts index a6b1020b..4f261672 100644 --- a/src/OSFramework/DataGrid/Constants.ts +++ b/src/OSFramework/DataGrid/Constants.ts @@ -1,5 +1,5 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars namespace OSFramework.DataGrid.Constants { /* OutSystems Data Grid Version */ - export const OSDataGridVersion = '2.12.1'; + export const OSDataGridVersion = '2.13.0'; } diff --git a/src/OSFramework/DataGrid/Enum/ActionColumnType.ts b/src/OSFramework/DataGrid/Enum/CellTemplateElementType.ts similarity index 75% rename from src/OSFramework/DataGrid/Enum/ActionColumnType.ts rename to src/OSFramework/DataGrid/Enum/CellTemplateElementType.ts index bf80fbfd..ed3dbcf2 100644 --- a/src/OSFramework/DataGrid/Enum/ActionColumnType.ts +++ b/src/OSFramework/DataGrid/Enum/CellTemplateElementType.ts @@ -3,8 +3,9 @@ namespace OSFramework.DataGrid.Enum { /** * Internal type definition */ - export enum ActionColumnElementType { + export enum CellTemplateElementType { Button = 'Button', + Image = 'Image', Link = 'Link' } } diff --git a/src/OSFramework/DataGrid/Enum/ColumnType.ts b/src/OSFramework/DataGrid/Enum/ColumnType.ts index 3862ff70..f7d81211 100644 --- a/src/OSFramework/DataGrid/Enum/ColumnType.ts +++ b/src/OSFramework/DataGrid/Enum/ColumnType.ts @@ -13,6 +13,7 @@ namespace OSFramework.DataGrid.Enum { Download = 'Download', Dropdown = 'Dropdown', Group = 'Group', + Image = 'Image', Number = 'Number', Calculated = 'Calculated', Link = 'Link', diff --git a/src/OSFramework/DataGrid/Enum/ErrorMessages.ts b/src/OSFramework/DataGrid/Enum/ErrorMessages.ts index fd6ed730..5f507e69 100644 --- a/src/OSFramework/DataGrid/Enum/ErrorMessages.ts +++ b/src/OSFramework/DataGrid/Enum/ErrorMessages.ts @@ -27,6 +27,7 @@ namespace OSFramework.DataGrid.Enum { ApplyRowValidation = 'It seems you are trying to validate a GroupRow.', SetCurrentPage = 'An error occurred while trying to set current page.', SetCurrentPageServerSidePagination = 'It seems that you have server side pagination turned on. Switch it off and try again.', + SetColumnHeaderTooltip = 'You are trying to use the setGroupHeaderTooltip in a cell that is not a Column Group header.', SetRowAsSelected = 'It seems that one or more of the row numbers you have providing do not exist on the current page.', SuccessMessage = 'Success', UnableToAddRow = 'Unable to add row. Please use ArrangeData action to serialize your data.', diff --git a/src/OSFramework/DataGrid/Event/Column/ColumnEventType.enum.ts b/src/OSFramework/DataGrid/Event/Column/ColumnEventType.enum.ts index 668a7e5a..a4182b9a 100644 --- a/src/OSFramework/DataGrid/Event/Column/ColumnEventType.enum.ts +++ b/src/OSFramework/DataGrid/Event/Column/ColumnEventType.enum.ts @@ -8,6 +8,7 @@ namespace OSFramework.DataGrid.Event.Column { */ export enum ColumnEventType { ActionClick = 'ActionClick', + ImageClick = 'ImageClick', OnCellValueChange = 'OnCellValueChange', OnColumnReorder = 'OnColumnReorder' } diff --git a/src/OSFramework/DataGrid/Event/Column/ColumnEventsManager.ts b/src/OSFramework/DataGrid/Event/Column/ColumnEventsManager.ts index 9ae84911..f9f58aa5 100644 --- a/src/OSFramework/DataGrid/Event/Column/ColumnEventsManager.ts +++ b/src/OSFramework/DataGrid/Event/Column/ColumnEventsManager.ts @@ -28,6 +28,9 @@ namespace OSFramework.DataGrid.Event.Column { case ColumnEventType.ActionClick: event = new ActionColumnClick(); break; + case ColumnEventType.ImageClick: + event = new ImageColumnClick(); + break; case ColumnEventType.OnCellValueChange: event = new OnCellValueChange(); break; @@ -58,6 +61,7 @@ namespace OSFramework.DataGrid.Event.Column { switch (eventType) { case ColumnEventType.ActionClick: + case ColumnEventType.ImageClick: handlerEvent.trigger( this._column.grid.widgetId, // ID of Grid block that was clicked. this._column.widgetId, // ID of Action Column block that was clicked. diff --git a/src/OSFramework/DataGrid/Event/Column/ImageColumnClick.ts b/src/OSFramework/DataGrid/Event/Column/ImageColumnClick.ts new file mode 100644 index 00000000..a116216f --- /dev/null +++ b/src/OSFramework/DataGrid/Event/Column/ImageColumnClick.ts @@ -0,0 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +namespace OSFramework.DataGrid.Event.Column { + export class ImageColumnClick extends AbstractColumnEvent {} +} diff --git a/src/OSFramework/DataGrid/Feature/ExposedFeatures.ts b/src/OSFramework/DataGrid/Feature/ExposedFeatures.ts index 95438d3b..66f60c2b 100644 --- a/src/OSFramework/DataGrid/Feature/ExposedFeatures.ts +++ b/src/OSFramework/DataGrid/Feature/ExposedFeatures.ts @@ -28,6 +28,7 @@ namespace OSFramework.DataGrid.Feature { public sort: IColumnSort; public styling: IStyling; public tabNavigation: ITabNavigation; + public tooltip: ITooltip; public undoStack: IUndoStack; public validationMark: IValidationMark; public view: IView; diff --git a/src/OSFramework/DataGrid/Feature/ITooltip.ts b/src/OSFramework/DataGrid/Feature/ITooltip.ts new file mode 100644 index 00000000..bad1305a --- /dev/null +++ b/src/OSFramework/DataGrid/Feature/ITooltip.ts @@ -0,0 +1,14 @@ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +namespace OSFramework.DataGrid.Feature { + export interface ITooltip { + /** + * Set the Column Group header tooltip content. + * @param {HTMLElement} cell + * @param {string} tooltipContent + */ + setColumnGroupHeaderTooltip( + cell: HTMLElement, + tooltipContent: string + ): void; + } +} diff --git a/src/OSFramework/DataGrid/Grid/AbstractDataSource.ts b/src/OSFramework/DataGrid/Grid/AbstractDataSource.ts index 06bb97e4..91c4f25b 100644 --- a/src/OSFramework/DataGrid/Grid/AbstractDataSource.ts +++ b/src/OSFramework/DataGrid/Grid/AbstractDataSource.ts @@ -273,9 +273,21 @@ namespace OSFramework.DataGrid.Grid { ) { throw new Error(Enum.ErrorMessages.UnableToAddRow); } + const calculatedColumnsBinding = this._parentGrid + .getColumns() + .reduce((array, column) => { + if (column.columnType === Enum.ColumnType.Calculated) + array.push(column.config.binding); + return array; + }, []); let parsedNewItem = _.cloneDeep(this._metadata) || - _.cloneDeep(_.omit(this._ds[0], Enum.RowMetadata.Key)); + _.cloneDeep( + _.omit(this._ds[0], [ + Enum.RowMetadata.Key, + ...calculatedColumnsBinding + ]) + ); parsedNewItem = Object.keys(parsedNewItem).length ? parsedNewItem diff --git a/src/OSFramework/DataGrid/Helper/GlobalEnum.ts b/src/OSFramework/DataGrid/Helper/GlobalEnum.ts new file mode 100644 index 00000000..9a08029e --- /dev/null +++ b/src/OSFramework/DataGrid/Helper/GlobalEnum.ts @@ -0,0 +1,11 @@ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +namespace OSFramework.DataGrid.Helper.GlobalEnum { + export enum HTMLAttributes { + Class = 'class' + } + + export enum HTMLEvent { + MouseOver = 'mouseover', + MouseOut = 'mouseout' + } +} diff --git a/src/OSFramework/DataGrid/Types/index.ts b/src/OSFramework/DataGrid/Types/index.ts index f46b5550..fb055b02 100644 --- a/src/OSFramework/DataGrid/Types/index.ts +++ b/src/OSFramework/DataGrid/Types/index.ts @@ -78,6 +78,7 @@ namespace OSFramework.DataGrid.Types { allowSorting: boolean; cellTemplate?: wijmo.grid.ICellTemplateFunction; collapseTo?: string; + cssClassAll?: string; // eslint-disable-next-line @typescript-eslint/no-explicit-any dataMap?: any; dataMapEditor?: wijmo.grid.DataMapEditor; @@ -150,7 +151,12 @@ namespace OSFramework.DataGrid.Types { export interface IColumnExtraConfigs {} export interface IActionColumnExtraConfigs extends IColumnExtraConfigs { - actionColumnElementType: DataGrid.Enum.ActionColumnElementType; + actionColumnElementType: DataGrid.Enum.CellTemplateElementType; + } + + export interface IImageColumnExtraConfigs + extends IActionColumnExtraConfigs { + altText?: string; } /** diff --git a/src/OutSystems/GridAPI/Auxiliary.ts b/src/OutSystems/GridAPI/Auxiliary.ts index 28df4cfa..e0380fd5 100644 --- a/src/OutSystems/GridAPI/Auxiliary.ts +++ b/src/OutSystems/GridAPI/Auxiliary.ts @@ -63,6 +63,32 @@ namespace OutSystems.GridAPI.Auxiliary { export function GetHashCode(str: string): number { return OSFramework.DataGrid.Helper.GenerateHashCode(str); } + + /** + * Receives a function and its name. Executes it and measures it properly. + * @param functionName Name of the function that will be measured + * @param fn Function that will be measured and executed + * @returns Output of the received function + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + export function MeasurePerformance any>( + functionName: string, + fn: T + ): T { + return ((...args: Parameters): ReturnType => { + OutSystems.GridAPI.Performance.SetMark(functionName); + const result = fn(...args); + + OutSystems.GridAPI.Performance.SetMark(`${functionName}-end`); + OutSystems.GridAPI.Performance.GetMeasure( + `@datagrid-${functionName}`, + functionName, + `${functionName}-end` + ); + + return result; + }) as T; + } } /// Overrides for the old namespace - calls the new one, lets users know this is no longer in use diff --git a/src/OutSystems/GridAPI/GridManager.ts b/src/OutSystems/GridAPI/GridManager.ts index eb6ee448..8f6ac09e 100644 --- a/src/OutSystems/GridAPI/GridManager.ts +++ b/src/OutSystems/GridAPI/GridManager.ts @@ -9,28 +9,20 @@ namespace OutSystems.GridAPI.GridManager { * @param {string} data Data to be set in the data grid in JSON format. If the action ArrangeData is used, metadata will also be present and used to generate the columns of the grid. * @returns {*} {boolean} true if the data was changed in the grid. */ - function setDataInGrid( - grid: OSFramework.DataGrid.Grid.IGrid, - data: string - ): boolean { - Performance.SetMark('GridManager.setDataInGrid'); - - let output = false; - if (grid !== undefined) { - if (grid.isReady && data !== '' && data !== '{}') { - grid.setData(data); + const setDataInGrid = OutSystems.GridAPI.Auxiliary.MeasurePerformance( + 'GridManager.setDataInGrid', + (grid: OSFramework.DataGrid.Grid.IGrid, data: string): boolean => { + let output = false; + if (grid !== undefined) { + if (grid.isReady && data !== '' && data !== '{}') { + grid.setData(data); + } + output = true; } - output = true; - } - Performance.SetMark('GridManager.setDataInGrid-end'); - Performance.GetMeasure( - '@datagrid-GridManager.setDataInGrid', - 'GridManager.setDataInGrid', - 'GridManager.setDataInGrid-end' - ); - return output; - } + return output; + } + ); /** * Function that creates an instance of grid object with the configurations passed. @@ -40,37 +32,29 @@ namespace OutSystems.GridAPI.GridManager { * @param {string} configs configurations for the grid in JSON format. * @returns {*} {Grid.IGrid} instance of the grid. */ - export function CreateGrid( - gridID: string, - configs: string - ): OSFramework.DataGrid.Grid.IGrid { - Performance.SetMark('GridManager.CreateGrid'); - - const _grid = Providers.DataGrid.Wijmo.Grid.GridFactory.MakeGrid( - OSFramework.DataGrid.Enum.GridType.FlexGrid, - gridID, - JSON.parse(configs) - ); - - if (gridMap.has(gridID)) { - throw new Error( - `There is already a grid registered under id:${gridID}` + export const CreateGrid = OutSystems.GridAPI.Auxiliary.MeasurePerformance( + 'GridManager.CreateGrid', + (gridID: string, configs: string): OSFramework.DataGrid.Grid.IGrid => { + const _grid = Providers.DataGrid.Wijmo.Grid.GridFactory.MakeGrid( + OSFramework.DataGrid.Enum.GridType.FlexGrid, + gridID, + JSON.parse(configs) ); - } - gridMap.set(gridID, _grid); - activeGrid = _grid; + if (gridMap.has(gridID)) { + throw new Error( + `There is already a grid registered under id:${gridID}` + ); + } - Events.CheckPendingEvents(gridID); + gridMap.set(gridID, _grid); + activeGrid = _grid; - Performance.SetMark('GridManager.CreateGrid-end'); - Performance.GetMeasure( - '@datagrid-GridManager.CreateGrid', - 'GridManager.CreateGrid', - 'GridManager.CreateGrid-end' - ); - return _grid; - } + Events.CheckPendingEvents(gridID); + + return _grid; + } + ); /** * Function that gets the instance of grid, by a given ID. @@ -80,37 +64,32 @@ namespace OutSystems.GridAPI.GridManager { * @param {boolean} raiseError Will raise errors when there is no object with this uniqueId * @returns {*} {Grid.IGrid} instance of the grid. */ - export function GetGridById( - gridID: string, - raiseError = true - ): OSFramework.DataGrid.Grid.IGrid { - Performance.SetMark('GridManager.GetGridById'); - - let grid: OSFramework.DataGrid.Grid.IGrid; - - //gridID is the UniqueId - if (gridMap.has(gridID)) { - grid = gridMap.get(gridID); - } else { - //Search for last inserted grid containing widgetId - grid = _.findLast( - Array.from(gridMap.values()), - (p) => p && p.equalsToID(gridID) - ); - } + export const GetGridById = OutSystems.GridAPI.Auxiliary.MeasurePerformance( + 'GridManager.GetGridById', + ( + gridID: string, + raiseError = true + ): OSFramework.DataGrid.Grid.IGrid => { + let grid: OSFramework.DataGrid.Grid.IGrid; + + //gridID is the UniqueId + if (gridMap.has(gridID)) { + grid = gridMap.get(gridID); + } else { + //Search for last inserted grid containing widgetId + grid = _.findLast( + Array.from(gridMap.values()), + (p) => p && p.equalsToID(gridID) + ); + } - if (grid === undefined && raiseError) { - throw new Error(`Grid id:${gridID} not found`); - } + if (grid === undefined && raiseError) { + throw new Error(`Grid id:${gridID} not found`); + } - Performance.SetMark('GridManager.GetGridById-end'); - Performance.GetMeasure( - '@datagrid-GridManager.GetGridById', - 'GridManager.GetGridById', - 'GridManager.GetGridById-end' - ); - return grid; - } + return grid; + } + ); /** * Function that returns all Ids of the grids in the page. @@ -168,24 +147,18 @@ namespace OutSystems.GridAPI.GridManager { * @param {string} [data='{}'] Data to be set in the data grid in JSON format. If the action ArrangeData is used, metadata will also be present and used to generate the columns of the grid. * @returns {*} {boolean} true if the grid was initialized. */ - export function InitializeGrid(gridID: string, data = '{}'): boolean { - Performance.SetMark('GridManager.InitializeGrid'); - - let output = false; - const grid = GetGridById(gridID); - - grid.build(); - - output = setDataInGrid(grid, data); - - Performance.SetMark('GridManager.InitializeGrid-end'); - Performance.GetMeasure( - '@datagrid-GridManager.InitializeGrid', + export const InitializeGrid = + OutSystems.GridAPI.Auxiliary.MeasurePerformance( 'GridManager.InitializeGrid', - 'GridManager.InitializeGrid-end' + (gridID: string, data = '{}'): boolean => { + let output = false; + const grid = GetGridById(gridID); + grid.build(); + output = setDataInGrid(grid, data); + + return output; + } ); - return output; - } /** * Function that will mark all changes as saved. @@ -194,30 +167,23 @@ namespace OutSystems.GridAPI.GridManager { * @param {string} gridID ID of the Grid where the change will occur. * @param {boolean} [forceCleanInvalids=false] determines whether or not we should clean the validation marks. */ - export function MarkChangesAsSaved( - gridID: string, - forceCleanInvalids = false - ): string { - Performance.SetMark('GridManager.MarkChangesAsSaved'); - const result = Auxiliary.CreateApiResponse({ - gridID, - errorCode: - OSFramework.DataGrid.Enum.ErrorCodes - .API_FailedMarkChangesAsSaved, - callback: () => { - GetGridById(gridID).clearAllChanges(forceCleanInvalids); - } - }); - - Performance.SetMark('GridManager.MarkChangesAsSaved-end'); - Performance.GetMeasure( - '@datagrid-GridManager.MarkChangesAsSaved', + export const MarkChangesAsSaved = + OutSystems.GridAPI.Auxiliary.MeasurePerformance( 'GridManager.MarkChangesAsSaved', - 'GridManager.MarkChangesAsSaved-end' + (gridID: string, forceCleanInvalids = false): string => { + const result = Auxiliary.CreateApiResponse({ + gridID, + errorCode: + OSFramework.DataGrid.Enum.ErrorCodes + .API_FailedMarkChangesAsSaved, + callback: () => { + GetGridById(gridID).clearAllChanges(forceCleanInvalids); + } + }); + + return result; + } ); - - return result; - } /** * Mark a group of Data Grid lines with given keys (from the KeyBinding field) as saved in the database. * @@ -227,35 +193,31 @@ namespace OutSystems.GridAPI.GridManager { * @param {boolean} [forceCleanInvalids=false] determines whether or not we should clean the validation marks. * @return {*} {string} */ - export function MarkChangesAsSavedByKey( - gridID: string, - rowKeys: string, - forceCleanInvalids = false - ): string { - Performance.SetMark('GridManager.MarkChangesAsSavedByKey'); - const result = Auxiliary.CreateApiResponse({ - gridID, - errorCode: - OSFramework.DataGrid.Enum.ErrorCodes - .API_FailedMarkChangesAsSavedByKey, - callback: () => { - GetGridById(gridID).clearAllChangesByRowKeys( - JSON.parse(rowKeys), - forceCleanInvalids - ); - } - }); - - Performance.SetMark('GridManager.MarkChangesAsSavedByKey-end'); - Performance.GetMeasure( - '@datagrid-GridManager.MarkChangesAsSavedByKey', + export const MarkChangesAsSavedByKey = + OutSystems.GridAPI.Auxiliary.MeasurePerformance( 'GridManager.MarkChangesAsSavedByKey', - 'GridManager.MarkChangesAsSavedByKey-end' + ( + gridID: string, + rowKeys: string, + forceCleanInvalids = false + ): string => { + const result = Auxiliary.CreateApiResponse({ + gridID, + errorCode: + OSFramework.DataGrid.Enum.ErrorCodes + .API_FailedMarkChangesAsSavedByKey, + callback: () => { + GetGridById(gridID).clearAllChangesByRowKeys( + JSON.parse(rowKeys), + forceCleanInvalids + ); + } + }); + + return result; + } ); - return result; - } - /** * Function that will change the data source in the respective grid. * @@ -264,20 +226,15 @@ namespace OutSystems.GridAPI.GridManager { * @param {string} data Data to be set in the data grid in JSON format. If the action ArrangeData is used, metadata will also be present and used to generate the columns of the grid. * @returns {*} {boolean} true if the data was changed in the grid. */ - export function SetGridData(gridID: string, data: string): boolean { - Performance.SetMark('GridManager.SetGridData'); - - const grid = GetGridById(gridID); - const output = setDataInGrid(grid, data); + export const SetGridData = OutSystems.GridAPI.Auxiliary.MeasurePerformance( + 'GridManager.SetGridData', + (gridID: string, data: string): boolean => { + const grid = GetGridById(gridID); + const output = setDataInGrid(grid, data); - Performance.SetMark('GridManager.SetGridData-end'); - Performance.GetMeasure( - '@datagrid-GridManager.SetGridData', - 'GridManager.SetGridData', - 'GridManager.SetGridData-end' - ); - return output; - } + return output; + } + ); /** * Function that will destroy the grid from the page. @@ -285,27 +242,21 @@ namespace OutSystems.GridAPI.GridManager { * @export * @param {string} gridID ID of the Grid to be destroyed. */ - export function RemoveGrid(gridID: string): void { - Performance.SetMark('GridManager.RemoveGrid'); + export const RemoveGrid = OutSystems.GridAPI.Auxiliary.MeasurePerformance( + 'GridManager.RemoveGrid', + (gridID: string): void => { + const grid = GetGridById(gridID); - const grid = GetGridById(gridID); + gridMap.delete(grid.uniqueId); - gridMap.delete(grid.uniqueId); + //Update activeGrid with the most recent one + if (activeGrid.uniqueId === grid.uniqueId) { + activeGrid = Array.from(gridMap.values()).pop(); + } - //Update activeGrid with the most recent one - if (activeGrid.uniqueId === grid.uniqueId) { - activeGrid = Array.from(gridMap.values()).pop(); + grid.dispose(); } - - grid.dispose(); - - Performance.SetMark('GridManager.RemoveGrid-end'); - Performance.GetMeasure( - '@datagrid-GridManager.RemoveGrid', - 'GridManager.RemoveGrid', - 'GridManager.RemoveGrid-end' - ); - } + ); /** * Function that will change the property of a given grid. @@ -315,25 +266,19 @@ namespace OutSystems.GridAPI.GridManager { * @param {string} propertyName name of the property to be changed - some properties of the provider might not work out of be box. * @param {*} propertyValue value to which the property should be changed to. */ - export function ChangeProperty( - gridID: string, - propertyName: string, - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any - propertyValue: any - ): void { - Performance.SetMark('GridManager.ChangeProperty'); - - const grid = GetGridById(gridID); - - grid.changeProperty(propertyName, propertyValue); - - Performance.SetMark('GridManager.ChangeProperty-end'); - Performance.GetMeasure( - '@datagrid-GridManager.ChangeProperty', + export const ChangeProperty = + OutSystems.GridAPI.Auxiliary.MeasurePerformance( 'GridManager.ChangeProperty', - 'GridManager.ChangeProperty-end' + ( + gridID: string, + propertyName: string, + // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any + propertyValue: any + ): void => { + const grid = GetGridById(gridID); + grid.changeProperty(propertyName, propertyValue); + } ); - } /** * Function that clear all changes in grid @@ -341,25 +286,21 @@ namespace OutSystems.GridAPI.GridManager { * @export * @param {string} gridID ID of the Grid where the change will occur. */ - export function ClearChanges(gridID: string): string { - Performance.SetMark('GridManager.ClearChanges'); - const result = Auxiliary.CreateApiResponse({ - gridID, - errorCode: - OSFramework.DataGrid.Enum.ErrorCodes.API_FailedClearChanges, - callback: () => { - GetGridById(gridID).clearChanges(); - } - }); - - Performance.SetMark('GridManager.ClearChanges-end'); - Performance.GetMeasure( - '@datagrid-GridManager.ClearChanges', - 'GridManager.ClearChanges', - 'GridManager.ClearChanges-end' - ); - return result; - } + export const ClearChanges = OutSystems.GridAPI.Auxiliary.MeasurePerformance( + 'GridManager.ClearChanges', + (gridID: string): string => { + const result = Auxiliary.CreateApiResponse({ + gridID, + errorCode: + OSFramework.DataGrid.Enum.ErrorCodes.API_FailedClearChanges, + callback: () => { + GetGridById(gridID).clearChanges(); + } + }); + + return result; + } + ); /** * @@ -367,27 +308,21 @@ namespace OutSystems.GridAPI.GridManager { * @export * @param {string} gridID */ - export function DestroyGrid(gridID: string): void { - Performance.SetMark('GridManager.DestroyGrid'); + export const DestroyGrid = OutSystems.GridAPI.Auxiliary.MeasurePerformance( + 'GridManager.DestroyGrid', + (gridID: string): void => { + const grid = GetGridById(gridID); - const grid = GetGridById(gridID); + gridMap.delete(grid.uniqueId); - gridMap.delete(grid.uniqueId); + //Update activeGrid with the most pecent one + if (activeGrid.uniqueId === grid.uniqueId) { + activeGrid = Array.from(gridMap.values()).pop(); + } - //Update activeGrid with the most pecent one - if (activeGrid.uniqueId === grid.uniqueId) { - activeGrid = Array.from(gridMap.values()).pop(); + grid.dispose(); } - - grid.dispose(); - - Performance.SetMark('GridManager.DestroyGrid-end'); - Performance.GetMeasure( - '@datagrid-GridManager.DestroyGrid', - 'GridManager.DestroyGrid', - 'GridManager.DestroyGrid-end' - ); - } + ); /** * Function responsible for setting up the the date format to be used in all grids. diff --git a/src/Providers/DataGrid/Wijmo/Columns/ActionColumn.ts b/src/Providers/DataGrid/Wijmo/Columns/ActionColumn.ts index ec721a5f..218907a1 100644 --- a/src/Providers/DataGrid/Wijmo/Columns/ActionColumn.ts +++ b/src/Providers/DataGrid/Wijmo/Columns/ActionColumn.ts @@ -36,12 +36,11 @@ namespace Providers.DataGrid.Wijmo.Column { const config = super.getProviderConfig(); // Get the cellTemplate based on the actionColumnElementType - config.cellTemplate = - Helper.ActionColumnFactory.MakeActionColumnCellTemplate( - this.config.actionColumnElementType, - config.binding, - this.handleActionEvent.bind(this) - ); + config.cellTemplate = Helper.CellTemplateFactory.MakeCellTemplate( + this.config.actionColumnElementType, + config.binding, + this.handleActionEvent.bind(this) + ); return config; } diff --git a/src/Providers/DataGrid/Wijmo/Columns/DropdownColumn.ts b/src/Providers/DataGrid/Wijmo/Columns/DropdownColumn.ts index 49c32f0e..a1d4ad41 100644 --- a/src/Providers/DataGrid/Wijmo/Columns/DropdownColumn.ts +++ b/src/Providers/DataGrid/Wijmo/Columns/DropdownColumn.ts @@ -160,65 +160,80 @@ namespace Providers.DataGrid.Wijmo.Column { this.provider.index, false ) ?? ''; - const cellRange = new wijmo.grid.CellRange( - rowNumber, - this.provider.index - ); - // check if current parent cell has an undo action on undo stack - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const existingUndoAction: any = - this.grid.features.undoStack.stack._stack.find( - (data: GridEditAction) => - data.col === column.provider.index && - data.row === rowNumber + // if the child dropdown value is already empty, we don't want register the undo action and trigger cell value change event again + if (column && currentValue !== '') { + // get original value of the child cell + const originalValue = this.grid.features.dirtyMark.getOldValue( + rowNumber, + this.grid.getColumnByIndex(this.provider.index).config + .binding ); - if (existingUndoAction) { - // check if current child cell has an undo action on undo stack - const existingEditActionForColRow = - existingUndoAction?._actions?.find( - (action: GridEditAction) => - action.col === this.provider.index && - action.row === rowNumber - ) ?? false; - - // only add child undo action if it doesn't already exist. we don't want duplicated actions - if (existingEditActionForColRow === false) { - // add new child action into existing parent action in order - existingUndoAction.addChildAction( - new GridEditAction( - this.grid, - new wijmo.grid.CellRangeEventArgs( - this.grid.provider.cells, - cellRange - ) - ) + const cellRange = new wijmo.grid.CellRange( + rowNumber, + this.provider.index + ); + const currentSel = this.grid.provider.selection; + + // filter the parent cell has an undo actions on undo stack + const filteredUndoAction: wijmo.undo.UndoableAction[] = + this.grid.features.undoStack.stack._stack.filter( + (data: GridEditAction) => + data.col === currentSel.leftCol && + data.row === currentSel.topRow ); + + // get the lastest undo action filtered if any + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const existingUndoAction: any = + filteredUndoAction.length > 0 + ? filteredUndoAction[filteredUndoAction.length - 1] + : undefined; + + if (existingUndoAction) { + // check if current child cell has an undo action on undo stack + const existingEditActionForColRow = + existingUndoAction?._actions?.find( + (action: GridEditAction) => + action.col === this.provider.index && + action.row === rowNumber + ) ?? false; + + // only add child undo action if it doesn't already exist. we don't want duplicated actions + if (existingEditActionForColRow === false) { + // add new child action into existing parent action in order + existingUndoAction.addChildAction( + new GridEditAction( + this.grid, + new wijmo.grid.CellRangeEventArgs( + this.grid.provider.cells, + cellRange + ) + ) + ); + } } - } - // always clear the child cell when the parent changes - this.grid.provider.setCellData( - rowNumber, - this.provider.index, - '', - true - ); + // always clear the child cell when the parent changes + this.grid.provider.setCellData( + rowNumber, + this.provider.index, + '', + true + ); - this.grid.features.validationMark.validateCell( - rowNumber, - this, - true - ); + this.grid.features.validationMark.validateCell( + rowNumber, + this, + false + ); - // trigger cell value change event - if (column) { this.columnEvents.trigger( OSFramework.DataGrid.Event.Column.ColumnEventType .OnCellValueChange, '', - currentValue, + originalValue, rowNumber ); } diff --git a/src/Providers/DataGrid/Wijmo/Columns/Factory.ts b/src/Providers/DataGrid/Wijmo/Columns/Factory.ts index 2c8af0fd..530d5f2f 100644 --- a/src/Providers/DataGrid/Wijmo/Columns/Factory.ts +++ b/src/Providers/DataGrid/Wijmo/Columns/Factory.ts @@ -60,6 +60,13 @@ namespace Providers.DataGrid.Wijmo.Column { configs, extraConfigs as OSFramework.DataGrid.Types.IGroupColumnExtraConfigs ); + case OSFramework.DataGrid.Enum.ColumnType.Image: + return new ImageColumn( + grid, + columnID, + configs, + extraConfigs as OSFramework.DataGrid.Types.IImageColumnExtraConfigs + ); case OSFramework.DataGrid.Enum.ColumnType.Number: return new NumberColumn( grid, diff --git a/src/Providers/DataGrid/Wijmo/Columns/ImageColumn.ts b/src/Providers/DataGrid/Wijmo/Columns/ImageColumn.ts new file mode 100644 index 00000000..fc861f2c --- /dev/null +++ b/src/Providers/DataGrid/Wijmo/Columns/ImageColumn.ts @@ -0,0 +1,64 @@ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +namespace Providers.DataGrid.Wijmo.Column { + export class ImageColumn extends AbstractProviderColumn { + constructor( + grid: OSFramework.DataGrid.Grid.IGrid, + columnID: string, + configs: OSFramework.DataGrid.Types.IColumnConfigs, + extraConfig: OSFramework.DataGrid.Types.IImageColumnExtraConfigs + ) { + super( + grid, + columnID, + new OSFramework.DataGrid.Configuration.Column.ColumnConfigImage( + configs, + extraConfig + ) + ); + this._columnEvents = + new OSFramework.DataGrid.Event.Column.ColumnEventsManager(this); + } + + /** Returns all the events associated to the column */ + public get columnEvents(): OSFramework.DataGrid.Event.Column.ColumnEventsManager { + return this._columnEvents; + } + + public get columnType(): OSFramework.DataGrid.Enum.ColumnType { + return OSFramework.DataGrid.Enum.ColumnType.Image; + } + + public get providerType(): wijmo.DataType { + return wijmo.DataType.String; + } + + public getProviderConfig(): OSFramework.DataGrid.Types.IColumnProviderConfigs { + const config = super.getProviderConfig(); + + // Get the cellTemplate based on the actionColumnElementType + config.cellTemplate = Helper.CellTemplateFactory.MakeCellTemplate( + this.config.actionColumnElementType, + config.binding, + this.handleActionEvent.bind(this), + this.config.altText + ); + + return config; + } + + public handleActionEvent(ctx: wijmo.grid.ICellTemplateContext): void { + //Let's clone the line, since we will be removing the metadata info from it. + const clonedDataItem = _.cloneDeep(ctx.item); + this.grid.rowMetadata.clear(clonedDataItem); + + this._columnEvents.trigger( + OSFramework.DataGrid.Event.Column.ColumnEventType.ImageClick, + JSON.stringify( + this.grid.isSingleEntity + ? OSFramework.DataGrid.Helper.Flatten(clonedDataItem) + : clonedDataItem + ) + ); + } + } +} diff --git a/src/Providers/DataGrid/Wijmo/Features/ColumnFreeze.ts b/src/Providers/DataGrid/Wijmo/Features/ColumnFreeze.ts index 1fecdb38..025b139e 100644 --- a/src/Providers/DataGrid/Wijmo/Features/ColumnFreeze.ts +++ b/src/Providers/DataGrid/Wijmo/Features/ColumnFreeze.ts @@ -16,7 +16,7 @@ namespace Providers.DataGrid.Wijmo.Feature { } public build(): void { - // Implementing interface + // Do nothing } public byActiveSelection(): void { diff --git a/src/Providers/DataGrid/Wijmo/Features/FeatureBuilder.ts b/src/Providers/DataGrid/Wijmo/Features/FeatureBuilder.ts index 2b831224..7aee35da 100644 --- a/src/Providers/DataGrid/Wijmo/Features/FeatureBuilder.ts +++ b/src/Providers/DataGrid/Wijmo/Features/FeatureBuilder.ts @@ -206,8 +206,8 @@ namespace Providers.DataGrid.Wijmo.Feature { return this; } - private _makeToolTip(): FeatureBuilder { - this._makeItem(ToolTip); + private _makeTooltip(): FeatureBuilder { + this._features.tooltip = this._makeItem(Tooltip); return this; } @@ -234,7 +234,7 @@ namespace Providers.DataGrid.Wijmo.Feature { ._makeGroupPanel(config.groupPanelId) ._makeCellData() ._makeCellStyle() - ._makeToolTip() + ._makeTooltip() ._makePagination(config.rowsPerPage) ._makeSort(config.allowColumnSort) ._makeGridReorder(config.allowColumnReorder) diff --git a/src/Providers/DataGrid/Wijmo/Features/Styling.ts b/src/Providers/DataGrid/Wijmo/Features/Styling.ts index bddf037c..145688ef 100644 --- a/src/Providers/DataGrid/Wijmo/Features/Styling.ts +++ b/src/Providers/DataGrid/Wijmo/Features/Styling.ts @@ -121,11 +121,22 @@ namespace Providers.DataGrid.Wijmo.Feature { ): void { // validate if column exists const column = this._grid.getColumn(columnID); + // add css class to make exception for the wrap styles + wijmo.addClass( + this._grid.provider.hostElement, + 'has-column-word-wrap' + ); if (column) { column.provider.wordWrap = value; if (dynamicHeight) { - this._grid.provider.autoRowHeights = dynamicHeight; - this._grid.provider.autoSizeRows(); + this._grid.provider.autoRowHeights = true; + //resize data cell. + this._grid.provider.autoSizeRows( + 0, + this._grid.provider.rows.length - 1 + ); + //resize the header. + this._grid.provider.autoSizeRows(0, 0, true); } } else { throw new Error( diff --git a/src/Providers/DataGrid/Wijmo/Features/ToolTip.ts b/src/Providers/DataGrid/Wijmo/Features/ToolTip.ts index 99a684f5..c7e9ab7b 100644 --- a/src/Providers/DataGrid/Wijmo/Features/ToolTip.ts +++ b/src/Providers/DataGrid/Wijmo/Features/ToolTip.ts @@ -1,7 +1,8 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars namespace Providers.DataGrid.Wijmo.Feature { - export class ToolTip + export class Tooltip implements + OSFramework.DataGrid.Feature.ITooltip, OSFramework.DataGrid.Interface.IBuilder, OSFramework.DataGrid.Interface.IDisposable { @@ -10,11 +11,11 @@ namespace Providers.DataGrid.Wijmo.Feature { // eslint-disable-next-line @typescript-eslint/no-explicit-any private _eventMouseOut: any; private _grid: Grid.IGridWijmo; - private _toolTip: wijmo.Tooltip; + private _tooltip: wijmo.Tooltip; constructor(grid: Grid.IGridWijmo) { this._grid = grid; - this._toolTip = new wijmo.Tooltip(); + this._tooltip = new wijmo.Tooltip(); this._eventMouseEnter = this._onMouseEnter.bind(this); this._eventMouseOut = this._onMouseOut.bind(this); } @@ -30,22 +31,31 @@ namespace Providers.DataGrid.Wijmo.Feature { ) { //Check if we do have data available, for instance while using filters that make the Grid without results if (this._grid.provider.rows.length > 0) { - this._setCellToolTip( + this._setCellTooltip( _currTarget, ht.getColumn().binding, ht.row ); } } else if (cellType === wijmo.grid.CellType.ColumnHeader) { - this._setHeaderTooltip(_currTarget, ht.col); + // If the Column Header is from a Group Column, we need to use a different approach that the regular header + if ( + _currTarget.classList.contains( + Helper.Constants.CssClasses.ColumnGroup + ) + ) { + this._setColumnGroupHeaderTooltip(_currTarget); + } else { + this._setHeaderTooltip(_currTarget, ht); + } } } private _onMouseOut(): void { - this._toolTip.hide(); + this._tooltip.hide(); } - private _setCellToolTip( + private _setCellTooltip( cell: HTMLElement, binding: string, row: number @@ -59,12 +69,14 @@ namespace Providers.DataGrid.Wijmo.Feature { binding ); - if (cell.querySelector('div.dg-cell')) { - cell = cell.querySelector('div.dg-cell'); + if (cell.querySelector(Helper.Constants.CssClasses.CellClass)) { + cell = cell.querySelector( + Helper.Constants.CssClasses.CellClass + ); } //Make sure to apply the correct tooltipClass - this._toolTipClass(isInvalid); + this._tooltipClass(isInvalid); //If the cell is valid if (isInvalid === false) { @@ -74,14 +86,14 @@ namespace Providers.DataGrid.Wijmo.Feature { sanitizedValue !== '' ) { //JS asserts the previous declaration as true when they are equal - this._toolTip.show(cell, sanitizedValue); // show tooltip if text is overflow/hidden + this._tooltip.show(cell, sanitizedValue); // show tooltip if text is overflow/hidden } else { - this._toolTip.hide(); + this._tooltip.hide(); } } //Otherwise (If the cell is invalid) else { - this._toolTip.show( + this._tooltip.show( cell, this._grid.features.validationMark.errorMessage( row, @@ -91,14 +103,30 @@ namespace Providers.DataGrid.Wijmo.Feature { } } - private _setHeaderTooltip(cell: HTMLElement, columnNumber: number) { - const column = this._grid.getColumns()[columnNumber]; - const widgetId = column?.widgetId; - let headerTooltip = column?.config.headerTooltip; + private _setColumnGroupHeaderTooltip(cell: HTMLElement) { + // Do nothing if a tooltip is already set for this column + if (this._tooltip.getTooltip(cell)) return; + // Otherwise, the tooltip will be the header text + const headerTooltip = OSFramework.DataGrid.Helper.Sanitize( + cell.innerText + ); + + this._tooltipClass(false); + this._tooltip.show(cell, headerTooltip); + } + + private _setHeaderTooltip( + cell: HTMLElement, + htCell: wijmo.grid.HitTestInfo + ) { const sanitizedValue = OSFramework.DataGrid.Helper.Sanitize( cell.innerText ); + const column = this._grid.getColumn(htCell.getColumn().binding); + const widgetId = column?.widgetId; + let headerTooltip = column?.config.headerTooltip; + if (cell && headerTooltip) { if ( !!document.getElementById(headerTooltip) && @@ -116,19 +144,25 @@ namespace Providers.DataGrid.Wijmo.Feature { headerTooltip = sanitizedValue; } - this._toolTipClass(false); - this._toolTip.show(cell, headerTooltip); + this._tooltipClass(false); + this._tooltip.show(cell, headerTooltip); } - private _toolTipClass(isInvalid: boolean): void { - if (isInvalid === true) this._toolTip.cssClass = 'errorValidation'; - else { - this._toolTip.cssClass = ''; + private _tooltipClass(isInvalid: boolean): void { + if (isInvalid === true) { + this._tooltip.cssClass = + Helper.Constants.CssClasses.TooltipErrorValidation; + } else { + this._tooltip.cssClass = ''; // Implementation of the workaround provided by Wijmo related to ROU-4207 issue. // To be removed after Wijmo fix. if (wijmo.Tooltip._eTip) - wijmo.Tooltip._eTip.setAttribute('class', 'wj-tooltip'); + wijmo.Tooltip._eTip.setAttribute( + OSFramework.DataGrid.Helper.GlobalEnum.HTMLAttributes + .Class, + Helper.Constants.CssClasses.Tooltip + ); } } @@ -136,20 +170,49 @@ namespace Providers.DataGrid.Wijmo.Feature { this._grid.provider.formatItem.addHandler( (s: wijmo.grid.FlexGrid, e: wijmo.grid.FormatItemEventArgs) => { e.cell.removeEventListener( - 'mouseover', + OSFramework.DataGrid.Helper.GlobalEnum.HTMLEvent + .MouseOver, + this._eventMouseEnter + ); + e.cell.addEventListener( + OSFramework.DataGrid.Helper.GlobalEnum.HTMLEvent + .MouseOver, this._eventMouseEnter ); - e.cell.addEventListener('mouseover', this._eventMouseEnter); - e.cell.removeEventListener('mouseout', this._eventMouseOut); - e.cell.addEventListener('mouseout', this._eventMouseOut); + e.cell.removeEventListener( + OSFramework.DataGrid.Helper.GlobalEnum.HTMLEvent + .MouseOut, + this._eventMouseOut + ); + e.cell.addEventListener( + OSFramework.DataGrid.Helper.GlobalEnum.HTMLEvent + .MouseOut, + this._eventMouseOut + ); } ); } public dispose(): void { - this._toolTip.dispose(); - this._toolTip = undefined; + this._tooltip.dispose(); + this._tooltip = undefined; + } + + public setColumnGroupHeaderTooltip( + cell: HTMLElement, + tooltipContent: string + ): void { + if ( + cell.classList.contains(Helper.Constants.CssClasses.ColumnGroup) + ) { + this._tooltip.setTooltip(cell, tooltipContent); + } else { + console.warn( + OSFramework.DataGrid.Enum.ErrorMessages + .SetColumnHeaderTooltip + ); + } } } } diff --git a/src/Providers/DataGrid/Wijmo/Features/ValidationMark.ts b/src/Providers/DataGrid/Wijmo/Features/ValidationMark.ts index dc4bc84b..2a47f8eb 100644 --- a/src/Providers/DataGrid/Wijmo/Features/ValidationMark.ts +++ b/src/Providers/DataGrid/Wijmo/Features/ValidationMark.ts @@ -51,8 +51,12 @@ namespace Providers.DataGrid.Wijmo.Feature { // when a delete event occurs, s.getCellData() always returns an empty string // because of that, we need to verify if a delete event occured and get the right current value - if (!!e.data && !!e.data.key && e.data.key === 'Delete') { - currentValue = e.data.target.textContent; + if ( + !!e.data && + !!e.data.key && + (e.data.key === 'Delete' || e.data.key === 'Backspace') + ) { + currentValue = s.activeCell.textContent; } else { currentValue = s.getCellData(e.row, e.col, true) ?? ''; } @@ -786,6 +790,8 @@ namespace Providers.DataGrid.Wijmo.Feature { currValue, currValue ); + } else { + this._setCellStatus(column, rowNumber, currValue); } } diff --git a/src/Providers/DataGrid/Wijmo/Helper/ActionColumnFactory.ts b/src/Providers/DataGrid/Wijmo/Helper/CellTemplateFactory.ts similarity index 55% rename from src/Providers/DataGrid/Wijmo/Helper/ActionColumnFactory.ts rename to src/Providers/DataGrid/Wijmo/Helper/CellTemplateFactory.ts index 31333aab..14acff22 100644 --- a/src/Providers/DataGrid/Wijmo/Helper/ActionColumnFactory.ts +++ b/src/Providers/DataGrid/Wijmo/Helper/CellTemplateFactory.ts @@ -1,25 +1,34 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars -namespace Providers.DataGrid.Wijmo.Helper.ActionColumnFactory { +namespace Providers.DataGrid.Wijmo.Helper.CellTemplateFactory { /** * Responsable for create the ActionColumn's cellTemplate * @param type ActionColumn Type * @param binding Column binding * @param callback Callback to be invoked in the click event */ - export function MakeActionColumnCellTemplate( - type: OSFramework.DataGrid.Enum.ActionColumnElementType, + export function MakeCellTemplate( + type: OSFramework.DataGrid.Enum.CellTemplateElementType, binding: string, - callback: (item) => void + callback: (item) => void, + altText?: string ): wijmo.grid.ICellTemplateFunction { let cellTemplate: wijmo.grid.ICellTemplateFunction; - const hasFixedText = binding.charAt(0) === '$'; + const hasFixedText = binding.startsWith('$'); const text = hasFixedText ? binding.substring(1) : '${item.' + binding + '}'; + let imgAltText = ''; + if (altText !== undefined) { + const hasFixedAltText = altText.startsWith('$'); + imgAltText = hasFixedAltText + ? altText.substring(1) + : '${item.' + altText + '}'; + } + switch (type) { - case OSFramework.DataGrid.Enum.ActionColumnElementType.Button: + case OSFramework.DataGrid.Enum.CellTemplateElementType.Button: cellTemplate = wijmo.grid.cellmaker.CellMaker.makeButton({ text, click: (e, ctx) => { @@ -27,7 +36,15 @@ namespace Providers.DataGrid.Wijmo.Helper.ActionColumnFactory { } }); break; - case OSFramework.DataGrid.Enum.ActionColumnElementType.Link: { + case OSFramework.DataGrid.Enum.CellTemplateElementType.Image: + cellTemplate = wijmo.grid.cellmaker.CellMaker.makeImage({ + label: imgAltText, + click: (e, ctx) => { + callback(ctx); + } + }); + break; + case OSFramework.DataGrid.Enum.CellTemplateElementType.Link: { cellTemplate = wijmo.grid.cellmaker.CellMaker.makeLink({ text, click: (e, ctx) => { diff --git a/src/Providers/DataGrid/Wijmo/Helper/Constants.ts b/src/Providers/DataGrid/Wijmo/Helper/Constants.ts new file mode 100644 index 00000000..dc18fc3b --- /dev/null +++ b/src/Providers/DataGrid/Wijmo/Helper/Constants.ts @@ -0,0 +1,9 @@ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +namespace Providers.DataGrid.Wijmo.Helper.Constants { + export enum CssClasses { + CellClass = 'div.dg-cell', + ColumnGroup = 'wj-colgroup', + Tooltip = 'wj-tooltip', + TooltipErrorValidation = 'errorValidation' + } +} diff --git a/styles/Grid.css b/styles/Grid.css index 19e36428..08e9ea7d 100644 --- a/styles/Grid.css +++ b/styles/Grid.css @@ -419,6 +419,14 @@ background-color: var(--color-neutral-3); } +.has-column-word-wrap .wj-cell { + padding: 8px; +} + +.has-column-word-wrap .wj-colheaders > .wj-row > .wj-cell::before { + display: none; +} + /**** DATAGRID STYLE CLASSES ****/ * { @@ -1144,9 +1152,9 @@ position: absolute; } -/**** BUTTON STYLE CLASSES ****/ +/**** BUTTON/IMAGE STYLE CLASSES ****/ -.wj-cell:has(button.wj-cell-maker) { +.wj-cell.has-image-or-button:not(.wj-header) { padding-top: 10px !important; padding-bottom: 10px !important; }