-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathperspective-viewer-datagrid-D7N7TZ67.js
More file actions
17 lines (17 loc) · 87.3 KB
/
perspective-viewer-datagrid-D7N7TZ67.js
File metadata and controls
17 lines (17 loc) · 87.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import"./chunk-FW4363Y4.js";var K=0,I=0,ae=performance.now();function He(){let e=performance.now(),t=e-ae,r=K,o=I*1e3/t,s=1e3/r,i=I;return K=0,I=0,ae=e,{avg:r,real_fps:o,virtual_fps:s,num_frames:i,elapsed:t}}function We(e){K=(K*I+e)/(I+1),I+=1}var N=new Map;async function Ie(e){return await new Promise(requestAnimationFrame),await N.get(e)?.promise}async function de(e,t){if(N.has(e)&&(await N.get(e)?.promise,N.has(e))){await N.get(e)?.promise;return}N.set(e,Promise.withResolvers());try{return await t()}finally{let r=N.get(e);N.delete(e),r?.resolve(void 0)}}var Ue=navigator.userAgent.toLowerCase().indexOf("firefox")>-1,$e=Ue?5e6:1e7,Ve=":host{position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:scroll;overflow-anchor:none;overscroll-behavior:none;-webkit-overflow-scrolling:touch;}div.rt-virtual-panel{position:absolute;top:0;left:0;right:0;pointer-events:none;}div.rt-scroll-table-clip{position:sticky;contain:strict;overflow-anchor:none;width:100%;height:100%;}slot{position:absolute;overflow:hidden;overflow-anchor:none;}",Fe=":host ::slotted(table){--regular-table--transform-x:0px;--regular-table--transform-y:0px;--regular-table--clip-x:0px;--regular-table--clip-y:0px;}",je="--regular-table--clip-x",qe="--regular-table--clip-y",Je="--regular-table--transform-x",Xe="--regular-table--transform-y",Ye='<div class="rt-virtual-panel"></div><div class="rt-scroll-table-clip"><slot></slot></div>',Ke=class extends HTMLElement{m;n;i;d;A;V;z;P;C;K;s;e;t;xe;Le;table_model;o;r;async draw(e={}){return typeof e.throttle<"u"&&!e.throttle?await ne.call(this,e):await de(this,()=>ne.call(this,e))}async flush(){await Ie(this)}J(){if(!this.r){this.r=[document.createElement("table"),document.createElement("td")],this.r[0].style.visibility="hidden",this.r[0].style.position="absolute";let e=document.createElement("tbody"),t=document.createElement("tr");this.r[1].textContent="X",t.appendChild(this.r[1]),e.appendChild(t),this.r[0].appendChild(e)}this.appendChild(this.r[0]),this.e.row_height=this.r[1].offsetHeight,this.r[0].remove()}Z(){if(this.attachShadow({mode:"open"}),!this.shadowRoot)return;let e=new CSSStyleSheet;e.replaceSync(Ve);let t=new CSSStyleSheet;t.replaceSync(Fe),this.m=t.cssRules[0],this.shadowRoot.adoptedStyleSheets=[e,t],this.shadowRoot.innerHTML=Ye;let[r,o]=this.shadowRoot.children;this.s=o,this.n=r,this.D()}D(){this.s&&(this.i==="both"||this.i==="vertical"?this.s.style.top="0px":this.s.style.removeProperty("top"),this.i==="both"||this.i==="horizontal"?this.s.style.left="0px":this.s.style.removeProperty("left"),this.i!=="both"?this.s.style.contain="none":this.s.style.removeProperty("contain"))}Q(e,t){let{start_row:r,end_row:o}=this.ee(e),{start_col:s,end_col:i}=this.T(t);return{start_col:s,end_col:i,start_row:r,end_row:o}}te({start_col:e,end_col:t,start_row:r,end_row:o}){r=Math.floor(r),o=Math.ceil(o),e=Math.floor(e),t=Math.ceil(t);let s=this.z!==e,i=this.A!==r||this.V!==o||this.P!==t;return this.z=e,this.P=t,this.A=r,this.V=o,{invalid_column:s,invalid_row:i}}B(e,t){if(e)if(this.i==="vertical"||this.i==="none"){let r=0;for(let o of this.e.indices)r+=o||0;this.n.style.width=r.toPrecision(10)+"px"}else{let r=this.ie(t);if(r!==0){let o=this.d.width+r+2;this.n.style.width=o.toPrecision(10)+"px"}else this.n.style.width="1px"}}O(e){let{row_height:t=0}=this.e,r=this.t.column_headers_length*t,o;o=Math.min($e,e*t+r),this.n.style.height=`${o.toPrecision(10)}px`}W(e,t){let r=(this.e.row_height||0)*(e.start_row%1)||0,o=(this.table_model.l||0)+Math.floor(e.start_col);this.e.indices[o]===void 0&&(this.e.indices[o]=t?.[0]?.offsetWidth||0);let s=this.e.indices[o]*(e.start_col%1)||0;this.m.style.setProperty(je,`${s}px`),this.m.style.setProperty(qe,`${r}px`),this.m.style.setProperty(Je,`${-s}px`),this.m.style.setProperty(Xe,`${-r}px`)}T(e){if(this.i==="none"||this.i==="vertical")return{start_col:0,end_col:1/0};{let t=this.se(),r=this.table_model.num_columns()||Math.min(e,Math.ceil(this.d.width/60)),o=t+r+1;return{start_col:t,end_col:o}}}ee(e){let{height:t,containerHeight:r}=this.d,o=this.e.row_height||0,s=this.t.column_headers_length,i=Math.max(1,this.n.offsetHeight-r),l=Math.max(Math.ceil(this.scrollTop),0)/i,a=t/o-s,c=Math.max(0,(e||0)-a)*l,n=Math.max(0,Math.min(c+a,e));return{start_row:c,end_row:n}}se(){let e=this.t.row_headers_length,t=0,r=0,o=0;for(;r<this.scrollLeft;){let s=this.e.indices[t+e];o=this.scrollLeft-r,t+=1,r+=s!==void 0?s:60}return t+=o/(this.e.indices[t+e-1]||60),Math.max(0,t-1)}oe(e){let t=0;if(this.t.row_headers_length>0)for(let s of this.e.indices.slice(0,this.t.row_headers_length))t+=s||0;let r=this.t.row_headers_length,o=e;for(;t<this.d.width&&o>=0;)o--,t+=this.e.indices[o+r]||60;return Math.min(e-1,o+1)}ie(e){let t=this.t.row_headers_length,r=this.oe(e),o=t,s=0;for(;o<r+t;)s+=this.e.indices[o]||60,o++;if(o<this.e.indices.length){let i=0,l=this.t.row_headers_length;for(let a=0;a<l&&a<this.e.indices.length;a++)i+=this.e.indices[a]||0;s+=Math.max(0,(this.e.indices[o]||0)-(this.d.width-(i||0))||0)}return s}};async function ne(e){let t=performance.now();e.cache||this.table_model.ne();let{invalid_viewport:r=!0,preserve_width:o=!1}=e,{num_columns:s,num_rows:i,num_row_headers:l,num_column_headers:a,row_height:c}=await this.table_model.re(this.t);this.e.row_height=c||this.e.row_height,this.e.row_height||this.J(),l!==void 0&&(this.t.row_headers_length=l),a!==void 0&&(this.t.column_headers_length=a);let n=this.i==="none"||this.i==="horizontal",h=this.i==="none"||this.i==="vertical",d=i||0,p=s||0;this.d={width:h?1/0:this.s.clientWidth,height:n?1/0:this.s.clientHeight,containerHeight:n?1/0:this.clientHeight},this.O(d),o||this.B(r,p);let g=this.Q(d,p),{invalid_row:_,invalid_column:f}=this.te(g),m=this.C||f;if(m||_||r){let u=!0;await this.table_model.draw(this.d,this.t,this.K,o,g,p,async y=>{u&&(this.W(g,y),u=!1);for(let k of this.o)await k({detail:this})});let v=this.e.row_height;this.table_model.header.reset_header_cache(),v!==this.e.row_height&&this.O(d),o||this.B(m,p),this.C=!1}else this.W(g);We(performance.now()-t)}var U=new WeakMap,Ge=class{$;b;c;constructor(e){this.$=e,this.b=[],this.c=0}reset(){this.c=0}get(){this.b[this.c]||(this.b[this.c]=document.createElement(this.$));let e=this.b[this.c];return this.c+=1,e}},he=class{e;le;f;table;cells;rows;constructor(e,t,r){this.e=e,this.le=t,this.f=new Ge("span"),this.table=r,this.cells=[],this.rows=[]}num_columns(){return this.w(Math.max(0,this.rows.length-1)).row_container.length}num_rows(){return this.cells.length}He(e,t){U.set(e,t)}_(e){if(!e)return{value:void 0};let t=U.get(e);return t||(t={value:void 0},U.set(e,t)),t}k(e,t){let{tr:r,row_container:o}=this.w(e),s=o[t];return s&&(r.removeChild(s),o.splice(t,1,void 0)),s}p(e,t){if(!(e<0||t<0))return this.cells[e]?.[t]}w(e){let t=this.rows[e];t||(t=this.rows[e]=document.createElement("tr"),this.table.appendChild(t));let r=this.cells[e];return r||(r=this.cells[e]=[]),{tr:t,row_container:r}}S(e="TD",t,r){let{tr:o,row_container:s}=this.w(t),i=s[r];if(!i)if(r<s.length){i=s[r]=document.createElement(e);let l=s.slice(r+1).find(a=>a);o.insertBefore(i,l||null)}else i=s[r]=document.createElement(e),o.appendChild(i);if(i.tagName!==e){let l=document.createElement(e);o.replaceChild(l,i),this.cells[t].splice(r,1,l),i=l}return i}I(e){for(let t=0;t<this.rows.length;t++){let r=this.rows[t],o=this.cells[t];o.length=(Array.isArray(e)?e[t]:e)||0;let s=this.cells[t].filter(l=>l!==void 0).length,i=[];for(let l=s;l<r.children.length;l++)i.push(r.children[l]);for(let l of i)l.remove()}}E(e){let t=[];for(let r=e;r<this.table.children.length;r++)t.push(this.table.children[r]);for(let r of t)r.remove();this.rows.length=e,this.cells.length=e}},Be=!1,Ze=class extends Ke{F;N;X;G;g;register_listeners(){this.addEventListener("mousedown",this.ae.bind(this)),this.addEventListener("scroll",this.L.bind(this),{passive:!0}),this.he()}async L(e){e.stopPropagation(),await this.draw({invalid_viewport:!1,cache:!0}),this.dispatchEvent(new CustomEvent("regular-table-scroll"))}he(){this.addEventListener("mousewheel",this.de.bind(this),{passive:!0}),Be&&(this.addEventListener("touchmove",this.ce.bind(this)),this.addEventListener("touchstart",this.ue.bind(this),{passive:!0}))}de(e){if(!window.hasOwnProperty("safari"))return;let t=e,{clientWidth:r,clientHeight:o,scrollTop:s,scrollLeft:i}=this;t.preventDefault(),t.returnValue=!1;let l=Math.max(1,this.n.offsetHeight-o),a=Math.max(1,this.n.offsetWidth-r);this.scrollTop=Math.max(0,Math.min(l,s+t.deltaY)),this.scrollLeft=Math.max(0,Math.min(a,i+t.deltaX)),this.L(t)}ce(e){e.stopPropagation(),e.preventDefault(),e.returnValue=!1;let{clientWidth:t,clientHeight:r}=this,o=Math.max(1,this.n.offsetHeight-r),s=Math.max(1,this.n.offsetWidth-t);this.scrollTop=Math.min(o,(this.F||0)+((this.X||0)-e.touches[0].pageY)),this.scrollLeft=Math.min(s,(this.N||0)+((this.G||0)-e.touches[0].pageX)),this.L(e)}ue(e){this.X=e.touches[0].pageY,this.G=e.touches[0].pageX,this.F=this.scrollTop,this.N=this.scrollLeft}async me(e){let t=e.target,r=t.classList.contains("rt-column-resize");for(;t.tagName!=="TD"&&t.tagName!=="TH";)if(t=t.parentElement,!this.contains(t))return;let o=U.get(t);if(r&&o){e.stopImmediatePropagation(),e.shiftKey?(this.e.override={},this.e.auto=[],this.e.indices=[]):(delete this.e.override[o.size_key],this.e.auto[o.size_key]=void 0,this.e.indices[o.size_key]=void 0),this.table_model.updateColumnWidthStyles({start_row:0,end_row:0,...this.T(0)},this.t.row_headers_length);for(let s of e.shiftKey?[this.table_model.header.cells[this.table_model.header.cells.length-1],...this.table_model.body.cells]:this.table_model.body.cells)for(let i of e.shiftKey?s:[s[o.virtual_x]])i&&i.classList.remove("rt-cell-clip");await this.draw({cache:!0})}}async fe(e){if(e.button!==0)return;let t=e.target,r=t.classList.contains("rt-column-resize");for(;t.tagName!=="TD"&&t.tagName!=="TH";)if(t=t.parentElement,!this.contains(t))return;let o=U.get(t);r&&o&&(this._e(e,t,o),e.stopImmediatePropagation())}async ae(e){let t=performance.now();this.g&&t-this.g<500?(this.g=t,await this.me(e)):(this.g=t,await this.fe(e))}_e(e,t,r){let{virtual_x:o,size_key:s}=r,i=e.pageX,l=(o||0)+t.colSpan-1,a=this.table_model.header.get_column_header(l),c=this.e.indices[s||0]||0,n=d=>de(this,async()=>await this.pe(d,a,i,c,s||0,l)),h=()=>{document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",h);let d=this.e.override[s||0],p=this.e.indices[s||0]!==d;this.e.indices[s||0]=d,p&&this.draw({cache:!0})};document.addEventListener("mousemove",n),document.addEventListener("mouseup",h)}async pe(e,t,r,o,s,i){await new Promise(requestAnimationFrame);let l=e.pageX-r,a=Math.max(1,o+l);if(this.e.override[s]=a,l<0)await this.draw({preserve_width:!0,throttle:!1,cache:!0});else{this.table_model.updateColumnWidthStyles({start_row:0,end_row:0,...this.T(0)},this.t.row_headers_length);let c=(this.e.auto[s]||0)>a;t.classList.toggle("rt-cell-clip",c);for(let n of this.table_model.body.cells){let h=n[i];h&&h.classList.toggle("rt-cell-clip",c)}}}},Qe=class extends he{a;h;constructor(e,t,r){super(e,t,r),this.a=[],this.h=[]}q(e,t,r){let o=this.S("TH",t,e[t]||0);if(e[t]+=1,o.removeAttribute("colspan"),o.textContent="",r instanceof HTMLElement)o.appendChild(r);else{let i=this.f.get();i.textContent=String(r??""),o.appendChild(i)}let s=this.f.get();return s.className="rt-column-resize",o.appendChild(s),o}be(e,t,r){let o=this._(r);return o.column_header=e,o.value=t,o}we(e,t,r,o){let s=this._(r);if(s.column_header=e,s.value=t,s.size_key=Array.isArray(o)?o[0]:o,!Array.isArray(o)||o.length<=1){let i=this.e.override[s.size_key||0],l=this.e.auto[s.size_key||0]||0;i?r.classList.toggle("rt-cell-clip",l>i):r.classList.remove("rt-cell-clip")}return s}get_column_header(e){return this.S("TH",this.num_rows()-1,e)}draw(e,t,r,o,s,i,l,a,c){let n=t?.length;if(n===0)return;let h,d,p,g;a=typeof a>"u"?n-1:a;for(let _=0;_<n;_++){if(p=t[_]?t[_]:"",this.h[_]=this.h[_]||0,_<a)c&&this.a?.[_]?.[0]?.value===p?(h=this.a[_][1],this.a[_][2]+=1,r===1&&(this.a[_][0].row_header_x=Array.isArray(s)?s[0]:s),h.setAttribute("colspan",String(this.a[_][2]))):(h=this.q(this.h,_,p),d=this.be(t,p,h),this.a[_]=[d,h,1]);else{h=this.q(this.h,_,p),d=this.we(e.length>0?e:t,p,h,s),typeof g>"u"&&(g={th:h,metadata:d});for(let[f]of this.a)f.size_key=d.size_key;h.removeAttribute("colspan")}this.w(_).tr.classList.toggle("rt-autosize",_===a),h.classList.toggle("rt-group-corner",o===void 0),d&&(d.x=typeof o>"u"?o:Math.floor(o),d.column_header_y=_,d.x0=Math.floor(i),d.virtual_x=l,r===1?(d.type="corner",d.row_header_x=Array.isArray(s)?s[0]:s):(d.type="column_header",delete d.row_header_x))}return this.E(this.h.length),g=g||{th:h,metadata:d},g}clean(){this.I(this.h)}reset_header_cache(){this.h=[],this.a=[]}},et=class extends he{Y(e,t,r,o,{column_name:s},{ridx_offset:i},l){let a=this.S(e,t,o),c=this._(a);c.y=t+Math.floor(i);let n=c.size_key=l||0;e==="TD"&&(c.column_header=s);let h=this.e.override[n];if(h){let d=(this.e.auto[n]||0)>h;a.classList.contains("rt-cell-clip")!==d&&a.classList.toggle("rt-cell-clip",d)}else a.classList.remove("rt-cell-clip");return c.value!==r&&(r instanceof HTMLElement?(a.textContent="",a.appendChild(r)):a.textContent=String(r??"")),c.value=r,{td:a,metadata:c}}draw(e,t,r,o=!1,s,i,l,a){let{cidx:c,column_data:n,row_headers:h,column_data_listener_metadata:d}=t,{row_height:p}=r,g,_=[],f=[],m=0,u=[],v=o?r.row_headers_length??1:1,y=Math.floor(r.ridx_offset),k=Math.ceil(r.y1),S=Math.ceil(r.x1),C=s===void 0?s:Math.floor(s),L=i===void 0?void 0:Math.floor(i),x=Math.floor((s??0)-(i??0));for(let E=0;E<v;E++){m=0;let M=c+E;for(let O of n){let b;if(o){let w=O,T=w[E],z=_[E]||1,W=this.p(m-z,M),De=this._(W),le=u[m]||1,Y=this.p(m,M-le),Pe=this._(Y);if(a&&Y&&(Pe.value===T||T===void 0)&&!Y.hasAttribute("rowspan")){let D=u[m]=le+1;Y.setAttribute("colspan",String(D)),this.k(m,M)}else if(a&&W&&De.value===T&&!W.hasAttribute("colspan")){let D=_[E]=z+1;W.setAttribute("rowspan",String(D)),this.k(m,M)}else{b=this.Y("TH",m,T,M,t,r,E);let D=b.td,P=b.metadata;D.style.display="",D.removeAttribute("rowspan"),D.removeAttribute("colspan"),P.type="row_header",P.row_header=w,P.row_header_x=E,P.y0=y,P.y1=k,P.virtual_x=E,L!==void 0&&(P.x0=L),_[E]=1,u[m]=1,f[E]=b}}else{b=this.Y("TD",m,O,c,t,r,l??0);let w=b.metadata;d&&(w.user=d[m]),w.type="body",w.x=C||0,w.x1=S,w.row_header=h?.[m]||[],w.y0=y,w.y1=k,w.dx=x,w.dy=(w.y??0)-y,w.virtual_x=c,L!==void 0&&(w.x0=L),f[0]=b}if(m++,g=b?b.metadata:g,p=p||b?.td.offsetHeight,m*(p??0)>e)break}}return this.E(m),{tds:f,ridx:m,row_height:p}}clean({ridx:e,cidx:t}){this.E(e),this.I(t)}},tt=class{e;l=0;header;body;ge(e,t){let{start_row:r=0,start_col:o=0,end_col:s=0,end_row:i=0}=e,l=this.e.indices[(this.l||0)+Math.floor(e.start_col)]??0;return{viewport_width:0,selected_id:t,ridx_offset:r,sub_cell_offset:l,x0:o,x1:s,y1:i,row_height:this.e.row_height,row_headers_length:this.l}}Me(e,t,r,o,s,i,l,a,c,n){let h=[`${t}`],d=[],p={column_name:h,cidx:0,column_data:e,row_headers:e,first_col:!0},g=Math.floor(l),_=this.body.draw(o,p,{...s,x0:0},!0,void 0,void 0,g,n),f=[];for(let u=0;u<t;u++){let v=this.header.draw(h,Array(r).fill(""),1,void 0,u,l,u,a,c);v&&f.push(v)}for(let u=0;u<f.length;u++){let{th:v}=f[u];s.viewport_width+=this.e.indices[u]||v.offsetWidth}s.row_height=s.row_height||_.row_height;let m=e[0].length;if(!i)for(let u=0;u<t;u++){let{td:v,metadata:y}=_.tds[u]||{},{th:k,metadata:S}=f[u]||{};(v||k)&&d.push([k||v,S||y])}return{cont_body:_,first_col:!1,ye:m,last_cells:d}}ve(e,t,r,o,s,i){let l=0,a=0;for(;this.e.indices.length>s+i+l+1&&a+t.viewport_width<r;)l++,a+=this.e.indices[s+i+l]||0;if(a+t.viewport_width<r){let c=Math.min(o,e.start_col+5);e.end_col=Math.max(1,Math.min(o,c))}else e.end_col=Math.max(1,Math.min(o,e.start_col+l))}Ce(e,t,r,o,s,i,l,a,c,n){let h=t.column_headers?.[e]||[],d=t.data[e],p=t.metadata?.[e],g={column_name:h,cidx:r,column_data:d,column_data_listener_metadata:p,row_headers:t.row_headers,first_col:l},_=e+o,f=r+Math.floor(o),m=this.header.draw(h,h,void 0,_,f,o,r,a,c),u=this.body.draw(s,g,i,!1,_,o,f,n);return{cont_head:m,cont_body:u}}async Te(e,t,r,o,s,i,l,a,c){let n=Math.max(o+Math.floor(c),0),h=structuredClone(e);h.start_col=n,this.ve(h,s,i,l,a,c);let d=await t(Math.floor(h.start_col),Math.floor(h.start_row),Math.ceil(h.end_col),Math.ceil(h.end_row)),p,g;if(typeof d.column_header_merge_depth<"u"&&(p=d.column_header_merge_depth),typeof d.merge_headers<"u"&&(g=d.merge_headers),d.data.length===0)return{column_header_merge_depth:p,merge_headers:g};e.end_col=h.start_col+d.data.length;for(let _=0;_<d.data.length;_++)r.data[o+_]=d.data[_],d.metadata&&r.metadata&&(r.metadata[o+_]=d.metadata[_]),r.column_headers&&d.column_headers?.[_]&&(r.column_headers[o+_]=d.column_headers[_]);return{column_header_merge_depth:p,merge_headers:g}}M(e,t){this.body.clean({ridx:e?.ridx||0,cidx:t}),this.header.clean()}H(){this.body.f.reset(),this.header.f.reset()}},ce=class extends tt{table;u;U;v;Se;constructor(e,t,r){super(),this.e=t,this.clear(r);let[o]=r.children,[s,i]=o.children;this.table=o,this.header=new Qe(t,e,s),this.body=new et(t,e,i)}num_columns(){return this.header.num_columns()}clear(e){e.innerHTML='<table cellspacing="0"><thead></thead><tbody></tbody></table>'}autosize_cells(e,t){let r=this.table.currentCSSZoom??1,o=[];for(let[s,i]of e){let l=s.getBoundingClientRect();o.push({cell:s,metadata:i,box:l})}for(let{metadata:s,box:i}of o)this.e.row_height=t??Math.max(10,Math.min(this.e.row_height??i.height/r,i.height/r)),s?.size_key!==void 0&&(this.e.indices[s.size_key]=i.width/r,i.width/r&&this.e.override[s.size_key]===void 0&&(this.e.auto[s.size_key]=i.width/r))}updateColumnWidthStyles(e,t){let r=[],o;for(o=0;o<t;o++){let s=this.e.override[o],i=this.e.auto[o];if(s!==void 0){let l=o+1;r.push(`thead tr.rt-autosize th:nth-of-type(${l}),`,`tbody th.rt-cell-clip:nth-last-of-type(${t-o})`,`{min-width:${s}px;max-width:${s}px;}`)}else if(i!==void 0){let l=o+1;r.push(`thead tr.rt-autosize th:nth-of-type(${l}),`,`tbody th.rt-cell-clip:nth-last-of-type(${t-o})`,`{min-width:${i}px;}`)}}for(let s=o;s<o+(Math.floor(e.end_col)-Math.floor(e.start_col));s++){let i=this.e.override[s+Math.floor(e.start_col)],l=this.e.auto[s+Math.floor(e.start_col)];if(i!==void 0){let a=s+1;r.push(`thead tr.rt-autosize th:nth-of-type(${a}),`,`tbody td.rt-cell-clip:nth-of-type(${a-o})`,`{min-width:${i}px;max-width:${i}px;}`)}else if(l!==void 0){let a=s+1;r.push(`thead tr.rt-autosize th:nth-of-type(${a}),`,`tbody td.rt-cell-clip:nth-of-type(${a-o})`,`{min-width:${l}px;}`)}}r.length>0?this.Ee(r.join(`
`)):this.u&&this.u.replaceSync("")}Ee(e){if(e===this.U)return;let t=this.table.getRootNode();!t||!t.adoptedStyleSheets||(this.u||(this.u=new CSSStyleSheet,t.adoptedStyleSheets=[...t.adoptedStyleSheets,this.u]),this.u.replaceSync(e),this.U=e)}async re(e){return this.v?this.v:await e.view(0,0,0,0)}ne(){this.v=void 0,this.Se=void 0}async draw(e,t,r,o,s,i,l){let{width:a,height:c}=e,n=this.v=await t.view(Math.floor(s.start_col),Math.floor(s.start_row),Math.ceil(s.end_col),Math.ceil(s.end_row)),{column_header_merge_depth:h,merge_headers:d="both"}=n,p=d==="both"||d==="row",g=d==="both"||d==="column",_=s.start_col??0;if(n.row_headers){let L=0;for(let x of n.row_headers)x.length>L&&(L=x.length);this.l=L;for(let x=0;x<n.row_headers.length;x++)n.row_headers[x].length=this.l||0}t.row_headers_length=n.num_row_headers??n.row_headers?.[0]?.length??0,t.column_headers_length=n.num_column_headers??n.column_headers?.[0]?.length??0;let{view:f,row_headers_length:m,column_headers_length:u}=t,v=this.ge(s,r),y,k=0,S=[],C=!0;if(n.row_headers?.length){let L=this.Me(n.row_headers,m,u,c,v,o,_,h,g,p);y=L.cont_body,C=L.first_col,k=L.ye,S=L.last_cells}try{let L=0,x=i-s.start_col;for(;L<x;){if(!n.data[L]){this.updateColumnWidthStyles(s,t.row_headers_length),await l(S[this.l]);let b=await this.Te(s,f,n,L,v,a,i,k,_);if(b.column_header_merge_depth!==void 0&&(h=b.column_header_merge_depth),b.merge_headers!==void 0&&(d=b.merge_headers),!n.data[L]){this.M(y,k),this.H(),this.updateColumnWidthStyles(s,t.row_headers_length),await l(S[this.l]),this.autosize_cells(S,this.e.row_height);return}}let{cont_head:E,cont_body:M}=this.Ce(L,n,k,_,c,v,C,h,g,p);if(y=M,C=!1,!o)for(let{td:b,metadata:w}of y.tds)S.push([E?.th||b,E?.metadata||w]);let O=this.e.indices[k+Math.floor(_)]||E?.th?.offsetWidth;if(!O){O=0;for(let{td:b}of y.tds)O+=b?.offsetWidth||0}if(v.viewport_width+=O,v.row_height=v.row_height||y.row_height,k++,L++,this.j(v,a)){this.M(y,k),this.updateColumnWidthStyles(s,t.row_headers_length),await l(S[this.l]),v.viewport_width=0,this.autosize_cells(S,this.e.row_height);for(let b=0;b<S.length;b++)v.viewport_width+=this.e.indices[Math.floor(_)+b]||0;if(this.j(v,a)){this.H();return}}}this.M(y,k),this.H(),this.updateColumnWidthStyles(s,t.row_headers_length),await l(S[this.l]),this.autosize_cells(S,this.e.row_height)}finally{this.M(y,k)}}j(e,t){return e.viewport_width-e.sub_cell_offset>t}},rt=["both","horizontal","vertical","none"],ot=class extends Ze{R;constructor(){super(),this.e={auto:[],override:{},indices:[]},this.o=[],this.R=!1}connectedCallback(){this.R||(this.Z(),this.register_listeners(),this.setAttribute("tabindex","0"),this.R=!0,this.table_model=new ce(this.s,this.e,this))}resetAutoSize(e){(!e||e.auto)&&(this.e.auto=[]),(!e||e.override)&&(this.e.override={}),(!e||e.indices)&&(this.e.indices=[]),(!e||e.row_height)&&(this.e.row_height=void 0)}saveColumnSizes(){return structuredClone(this.e.override)}restoreColumnSizes(e){this.e.override=structuredClone(e)}clear(){this.table_model=new ce(this.s,this.e,this)}addStyleListener(e){this.o.push(e);let t=!0;return()=>{if(!t)return;t=!1,this.o=this.o.slice();let r=this.o.indexOf(e);this.o.splice(r,1)}}removeStyleListener(e){let t=this.o.length;this.o=this.o.filter(r=>r!==e),console.assert(this.o.length===t-1,"No listener found")}getMeta(e){if(e!==void 0){if(e instanceof HTMLElement)return U.get(e);if("row_header_x"in e&&e.row_header_x&&e.row_header_x>=0){if(e.row_header_x<this.t.row_headers_length){let t=this.table_model.body.p(e.y,e.row_header_x);return this.getMeta(t)}}else if("column_header_y"in e&&e.column_header_y>=0){if(e.column_header_y<this.t.column_headers_length){let t=this.table_model.header.p(e.column_header_y,e.x);return this.getMeta(t)}}else if("dx"in e)return this.getMeta(this.table_model.body.p(e.dy,e.dx+(this.table_model.l||0)))}}getDrawFPS(){return He()}async scrollToCell(e,t){if(!this.t){console.warn("data listener not configured");return}let r=this.e.row_height||0;this.scrollTop=Math.ceil(r*t);let o=0;for(;e>0;)e--,o+=this.e.indices[e+this.t.row_headers_length]||60;this.scrollLeft=Math.ceil(o),await new Promise(requestAnimationFrame),await this.flush()}setDataListener(e,{virtual_mode:t="both",preserve_state:r=!1}={}){console.assert(rt.indexOf(t)>-1,`Unknown virtual_mode ${t}; valid options are "both" (default), "horizontal", "vertical" or "none"`);let o=this.i!==t;r?(console.assert(!o,"preserve_state called with modified virtual_mode"),this.t.view=e):(this.i=t,this.C=!0,this.t={view:e,row_headers_length:0,column_headers_length:0},o&&this.D())}};document.createElement("regular-table").constructor===HTMLElement&&window.customElements.define("regular-table",ot);var F=class{selected;row;column_names;removeConfigs;insertConfigs;constructor(t,r,o,s,i){this.selected=t,this.row=r,this.column_names=o,this.removeConfigs=s,this.insertConfigs=i}get removeFilters(){return this.removeConfigs.flatMap(t=>t.filter??[])}get insertFilters(){return this.insertConfigs.flatMap(t=>t.filter??[])}};function ie(e,t){return t.type==="body"||t.type==="column_header"||t.type==="corner"?e._column_types[t.x]:e._row_header_types[(t.row_header_x??0)-1]}var A=Symbol("Perspective Column Config");function q(e,t,r=!1){let o=e._config.group_by.length===0&&e._config.split_by.length===0,s=t.children[0],i=r||s?._edit_mode==="EDIT";return o&&i}var st=class{format(e){return e?"true":"false"}},it={float:{format:{style:"decimal",minimumFractionDigits:2,maximumFractionDigits:2}},datetime:{format:{dateStyle:"short",timeStyle:"medium"}},date:{format:{dateStyle:"short"}}},lt=class{_formatters;constructor(){this._formatters=new Map}create_datetime_formatter(e,t){if(t.date_format?.format!=="custom"){let r={timeZone:t.date_format?.timeZone,dateStyle:t.date_format?.dateStyle==="disabled"?void 0:t.date_format?.dateStyle??"short",timeStyle:t.date_format?.timeStyle==="disabled"?void 0:t.date_format?.timeStyle??"medium"};return new Intl.DateTimeFormat(navigator.languages,r)}else{let r={timeZone:t.date_format?.timeZone,hour12:t.date_format?.hour12??!0,fractionalSecondDigits:t.date_format?.fractionalSecondDigits};return t.date_format?.year!=="disabled"&&(r.year=t.date_format?.year??"2-digit"),t.date_format?.month!=="disabled"&&(r.month=t.date_format?.month??"numeric"),t.date_format?.day!=="disabled"&&(r.day=t.date_format?.day??"numeric"),t.date_format?.weekday&&t.date_format?.weekday!=="disabled"&&(r.weekday=t.date_format.weekday),t.date_format?.hour!=="disabled"&&(r.hour=t.date_format?.hour??"numeric"),t.date_format?.minute!=="disabled"&&(r.minute=t.date_format?.minute??"numeric"),t.date_format?.second!=="disabled"&&(r.second=t.date_format?.second??"numeric"),new Intl.DateTimeFormat(navigator.languages,r)}}create_date_formatter(e,t){let r={timeZone:"utc",dateStyle:t.date_format?.dateStyle==="disabled"?void 0:t.date_format?.dateStyle??"short"};return new Intl.DateTimeFormat(navigator.languages,r)}create_number_formatter(e,t){let r=t.number_format??it[e]?.format;return new Intl.NumberFormat(navigator.languages,r)}create_boolean_formatter(e,t){return new st}get(e,t){let r=[e,...Object.values(t.date_format??{}),...Object.values(t.number_format??{})].join("-");return this._formatters.has(r)||(e==="date"?this._formatters.set(r,this.create_date_formatter(e,t)):e==="datetime"?this._formatters.set(r,this.create_datetime_formatter(e,t)):e==="integer"||e==="float"?this._formatters.set(r,this.create_number_formatter(e,t)):e==="boolean"?this._formatters.set(r,this.create_boolean_formatter(e,t)):this._formatters.set(r,!1)),this._formatters.get(r)}},oe=new lt,pe=1;function at(e,t){return oe.get(e,t)}function B(e,t,r={},o=!1){if(t===null)return null;let s=o&&this._table_schema[e]||this._schema[e]||"string",i=r[e]||{};if((s==="integer"||s==="float")&&(i?.number_fg_mode==="bar"||i?.number_fg_mode==="label-bar")){let l=Math.max(0,Math.min(pe,Math.abs(t/i.fg_gradient)*pe)),a=t>=0?"":"justify-self:flex-end;",c=(l*100).toFixed(2);if(i.number_fg_mode==="bar"){let n=this._div_factory.get();return n.className="psp-bar",n.setAttribute("style",`${a}width:${c}%;height:80%;top:10%;pointer-events:none;background:var(--psp-label-bar-color)`),n}else{let n=oe.get(s,i),h=n?n.format(t):t,d=this._div_factory.get();return d.className="psp-bar",d.setAttribute("style",`--label:"${h}";${a}width:${c}%;height:80%;top:10%;pointer-events:none;background:var(--psp-label-bar-color)`),d}}else if(i?.format==="link"&&s==="string"){let l=document.createElement("a");return l.setAttribute("href",t),l.setAttribute("target","_blank"),l.textContent=t,l}else if(i?.format==="bold"&&s==="string"){let l=document.createElement("b");return l.textContent=t,l}else if(i?.format==="italics"&&s==="string"){let l=document.createElement("i");return l.textContent=t,l}else{let l=oe.get(s,i);return l?l.format(t):t}}function*nt(e=[],t,r){let o=r[A]||{};for(let s of e){let i=["TOTAL",...s],l=i[i.length-1],a=i.slice(0,i.length-1).fill(""),c=B.call(this,t[a.length-1],l,o,!0);c instanceof HTMLElement?a=a.concat(c):a=a.concat({toString:()=>c}),a.length=t.length+1,yield a}}function*ct(e=[],t,r){let o=r[A]||{};for(let s of e)yield s.map((i,l)=>B.call(this,t[l],i,o,!0))}function*dt(e=[],t,r){let o=r[A]||{};for(let s of e){let i=[""];for(let l in s)i.push(B.call(this,t[l],s[l],o,!0));yield s}}function ht(e){let t,r,o,s,i;return async function(l,a,c,n,h){let d={},p={start_row:c,start_col:a,end_row:h,end_col:n,id:!0},g=null;if(n-a>0&&h-c>0){this._is_old_viewport=this._last_window?.start_row===c&&this._last_window?.end_row===h&&this._last_window?.start_col===a&&this._last_window?.end_col===n;let[x,E]=await Promise.all([this._view.to_columns_string(p),this._view.num_columns()]);g=E,d=JSON.parse(x);let M=Object.keys(d).filter(b=>b!=="__ROW_PATH__"&&b!=="__ID__"),O=!1;for(let b=0;b<M.length;b++)this._column_paths[p.start_col+b]!==M[b]&&(O=!0,this._column_paths[p.start_col+b]=M[b]);if(O){let[b,w]=await Promise.all([this._view.schema(),this._view.expression_schema()]);this._schema={...b,...w};for(let T=0;T<M.length;T++){let z=M[T].split("|")[this._config.split_by.length];this._is_editable[T+p.start_col]=!!this._table_schema[z],this._column_types[T+p.start_col]=this._schema[z]}}this._last_window=p,this._ids=d.__ID__||Array(h-c).fill(null).map((b,w)=>[w+c]),this._reverse_columns=this._column_paths.slice(a,n).reduce((b,w,T)=>(b.set(w,T),b),new Map),this._reverse_ids=this._ids?.reduce((b,w,T)=>(b.set(w?.join("|"),T),b),new Map)}else this._div_factory.clear(),g=await this._view.num_columns();let _=[],f=[],m=[],u=[],v=e.hasAttribute("settings");for(let x=a;x<Math.min(n,this._column_paths.length);++x){let E=this._column_paths[x],M=E.split("|"),O=d[E]||new Array(h-c).fill(null),b=Math.min(l[A]?.[M[this._config.split_by.length]]?.aggregate_depth||0,this._config.group_by.length);_.push(O.map((w,T)=>(d?.__ROW_PATH__?.[T]?.length??0)<b?"":B.call(this,M[this._config.split_by.length],w,l[A]||{}))),f.push(O),v&&M.push(""),m.push(M),u.push(E)}let y=n-a>0&&h-c>0;y&&(this.last_column_paths=r,this.last_meta=t,this.last_ids=o,this.last_reverse_ids=s,this.last_reverse_columns=i,r=u,t=f,o=this._ids,s=this._reverse_ids,i=this._reverse_columns);let k=d.__ROW_PATH__!==void 0,S=this._config.group_rollup_mode==="flat",C=Array.from((k?S?ct:nt:dt).call(this,d.__ROW_PATH__,this._config.group_by,l)),L=y?C[0]?.length:pt(this._config);return{num_column_headers:this._config.split_by.length+(v?2:1),num_row_headers:L,num_rows:this._num_rows,num_columns:g,row_headers:C,column_headers:m,data:_,metadata:f,column_header_merge_depth:Math.max(0,this._config.split_by.length)}}}function pt(e){return e.group_rollup_mode==="flat"?e.group_by.length:e.group_rollup_mode==="total"||e.group_by.length===0?0:e.group_by.length+1}var _e=new Map,$=null;function we(e){let t=e.startsWith("#")?e.slice(1):e;if(t.length===3||t.length===4){let r=parseInt(t[0]+t[0],16),o=parseInt(t[1]+t[1],16),s=parseInt(t[2]+t[2],16);if(!isNaN(r)&&!isNaN(o)&&!isNaN(s))return[r,o,s]}else if(t.length===6||t.length===8){let r=parseInt(t.slice(0,2),16),o=parseInt(t.slice(2,4),16),s=parseInt(t.slice(4,6),16);if(!isNaN(r)&&!isNaN(o)&&!isNaN(s))return[r,o,s]}return null}function xe(e){let t=e.match(/^rgba?\(\s*([\d.]+)\s*[, ]\s*([\d.]+)\s*[, ]\s*([\d.]+)/i);return t?[Math.round(parseFloat(t[1])),Math.round(parseFloat(t[2])),Math.round(parseFloat(t[3]))]:null}function _t(e){if(!$){let r=document.createElement("canvas");r.width=r.height=1,$=r.getContext("2d")}if(!$)return[0,0,0];$.fillStyle="#000",$.fillStyle=e;let t=$.fillStyle;return we(t)??xe(t)??[0,0,0]}function Z(e){let t=e.trim(),r=_e.get(t);if(r)return r;let o=we(t)??xe(t)??_t(t);return _e.set(t,o),o}function te(e){return Math.max(0,Math.min(255,Math.round(e))).toString(16).padStart(2,"0")}function Ee([e,t,r]){return`#${te(e)}${te(t)}${te(r)}`}function ke([e,t,r]){let o=e/255,s=t/255,i=r/255,l=Math.max(o,s,i),a=Math.min(o,s,i),c=(l+a)/2,n=l-a,h=0,d=0;return n!==0&&(d=c>.5?n/(2-l-a):n/(l+a),l===o?h=((s-i)/n+(s<i?6:0))*60:l===s?h=((i-o)/n+2)*60:h=((o-s)/n+4)*60),[h,d,c]}function se([e,t,r]){let o=(e%360+360)%360/360;if(t===0){let a=Math.round(r*255);return[a,a,a]}let s=r<.5?r*(1+t):r+t-r*t,i=2*r-s,l=a=>(a<0&&(a+=1),a>1&&(a-=1),a<1/6?i+(s-i)*6*a:a<1/2?s:a<2/3?i+(s-i)*(2/3-a)*6:i);return[Math.round(l(o+1/3)*255),Math.round(l(o)*255),Math.round(l(o-1/3)*255)]}function gt(e,t,r=.5){return[Math.round(Math.sqrt(e[0]*e[0]*(1-r)+t[0]*t[0]*r)),Math.round(Math.sqrt(e[1]*e[1]*(1-r)+t[1]*t[1]*r)),Math.round(Math.sqrt(e[2]*e[2]*(1-r)+t[2]*t[2]*r))]}function ge(e,t){return Ee(gt(Z(e),[t[0],t[1],t[2]],.5))}function J([e,t,r,o],s=[255,255,255]){function i(l,a){return((1-o)*(s[l]/255)+o*(a/255))*255}return[i(0,e),i(1,t),i(2,r)]}function X([e,t,r]){return Math.sqrt(e*e*.299+t*t*.587+r*r*.114)>130?"#161616":"#ffffff"}function mt(e){let[t,r,o]=ke(e),[s,i,l]=e,[a,c,n]=se([t-15,r,o]),[h,d,p]=se([t+15,r,o]);return`linear-gradient(to right top,rgb(${a},${c},${n}),rgb(${s},${i},${l}) 50%,rgb(${h},${d},${p}))`}function R(e){let t=Z(e),r=mt(t);return[e,t[0],t[1],t[2],r,`rgba(${t[0]},${t[1]},${t[2]},1)`,`rgba(${t[0]},${t[1]},${t[2]},0)`]}function re(e,t){if(e.length!==t.length)return!0;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!0;return!1}function me(e,t){if(e.length!==t.length)return!0;for(let r=0;r<e.length;r++){if(e[r].length!==t[r].length)return!0;for(let o=0;o<e[r].length;o++)if(e[r][o]!==t[r][o])return!0}return!1}function G(e,t,r){let o=window.getComputedStyle(e).getPropertyValue(t).trim();return o.length>0?o:r}var ut=class{_name;_elements;_index;constructor(e){this._name=e,this._elements=[],this._index=0}clear(){this._index=0}get(){this._elements[this._index]||(this._elements[this._index]=document.createElement(this._name));let e=this._elements[this._index];return this._index+=1,e}};async function ue(e,t,r,o,s={}){let i=await r.get_config();if(this?.model?._config){let x=this.model._config,E=re(x.group_by,i.group_by),M=(x.group_by.length===0||i.group_by.length===0)&&E,O=re(x.split_by,i.split_by),b=re(x.columns,i.columns),w=me(x.filter,i.filter),T=me(x.sort,i.sort),z=x.group_rollup_mode!==i.group_rollup_mode,W=this.model._theme!==o;this._reset_scroll_top=E,this._reset_scroll_left=O,this._reset_select=E||O||w||T||b,this._reset_column_size=z||O||E||b||W||M}let[l,a,c,n,h]=await Promise.all([t.schema(),r.num_rows(),r.schema(),r.expression_schema(),this.parentElement.getEditPort()]),d=Z(G(e,"--psp--background-color","#FFFFFF")),p=R(G(e,"--psp-datagrid--pos-cell--color","#338DCD")),g=R(G(e,"--psp-datagrid--neg-cell--color","#FF5942")),_=R(ge(p[0],d)),f=R(ge(g[0],d)),m=R(G(e,"--psp-active--color","#ff0000")),u={...c,...n},v={...l,...n},y=[],k=[],S=[],C=this._edit_mode||"READ_ONLY";C==="SELECT_ROW_TREE"&&(i.group_by.length===0||i.group_rollup_mode==="flat")&&(C="READ_ONLY",this._edit_mode=C),this._edit_button.dataset.editMode=C;let L=Object.assign(s,{_edit_port:h,_view:r,_table:t,_table_schema:v,_config:i,_num_rows:a,_schema:u,_ids:[],_plugin_background:d,_color:m,_pos_fg_color:p,_neg_fg_color:g,_pos_bg_color:_,_neg_bg_color:f,_column_paths:y,_column_types:S,_theme:o,_is_editable:k,_edit_mode:C,_selection_state:{selected_areas:[],dirty:!1},_row_header_types:i.group_by.map(x=>v[x]),_series_color_map:new Map,_series_color_seed:new Map,_div_factory:s._div_factory||new ut("div")});return e.setDataListener(ht(this.parentElement).bind(L,e),{virtual_mode:window.getComputedStyle(e).getPropertyValue("--datagrid-virtual-mode")?.trim()||"both"}),L}var j=["READ_ONLY","EDIT","SELECT_ROW","SELECT_COLUMN","SELECT_REGION","SELECT_ROW_TREE"];function ft(e){return e?e._config.group_by.length>0&&e._config.group_rollup_mode!=="flat":!1}function Le(e){if(typeof e>"u"){let t=j.indexOf(this._edit_mode);do t=(t+1)%j.length;while(j[t]==="SELECT_ROW_TREE"&&!ft(this.model));e=j[t]}this.parentElement?.setSelection?.(),this._edit_mode=e,this.model&&(this.model._edit_mode=e,this.model._tree_selection_id=void 0,this.model._selection_state={selected_areas:[],dirty:!0}),this._edit_button!==void 0&&(this._edit_button.dataset.editMode=e)}function Se(e){typeof e>"u"&&(e=!this._is_scroll_lock),this._is_scroll_lock=e,this.classList.toggle("sub-cell-scroll-disabled",e),this._scroll_lock!==void 0&&this._scroll_lock.classList.toggle("lock-scroll",e)}function Me(e,t=!1){if(!this._initialized)return;t&&(this._cached_column_sizes=e);let r=this.regular_table,o={...r.saveColumnSizes()},{group_by:s}=this.model._config,i=s?.length>0?s.length+1:0;for(let l of Object.keys(e))if(l==="__ROW_PATH__")o[i-1]=e[l];else{let a=this.model._column_paths.indexOf(l);if(a===-1)continue;o[a+i]=e[l]}r.restoreColumnSizes(o)}function Ce(){if(!this._initialized)return{};if(this._cached_column_sizes){let s=this._cached_column_sizes;return this._cached_column_sizes=void 0,s}let e=this.regular_table.saveColumnSizes(),{group_by:t}=this.model._config,r=t?.length>0?t.length+1:0,o={};for(let s of Object.keys(e)){let i=Number(s);if(e[i]!==void 0){let l=i-r;l>-1?o[this.model._column_paths[l]]=e[i]:l===-1&&(o.__ROW_PATH__=e[i])}}return o}function bt(e,t,r,o){let s=Array.from(t.children[0].children[0].children),i=s.length,l=r.hasAttribute("settings");if(i<=1?s[0]?.removeAttribute("id"):s.forEach((a,c)=>{let n=l?1:0,h=c===i-(n+1)?"psp-column-titles":c===i-n?"psp-column-edit-buttons":null;h?a.setAttribute("id",h):a.removeAttribute("id")}),r.classList.toggle("psp-menu-open",!!o),l&&i>=2){let a=Array.from(s[i-2].children),c=Array.from(s[i-1].children);if(a&&c){s.slice(0,i-2).forEach(n=>{Array.from(n.children).forEach(h=>{h.classList.toggle("psp-menu-open",!1)})});for(let n=0;n<a.length;n++){let h=a[n],d=c[n],p=h.textContent===o;if(h.classList.toggle("psp-menu-open",p),d.classList.toggle("psp-menu-open",p),e._config.columns.length>1)for(let g of t.querySelectorAll("td")){let _=t.getMeta(g);if(!_?.column_header)continue;let f=_.column_header[_.column_header.length-2]===o;g.classList.toggle("psp-menu-open",f)}}}}}function fe(e,t,r,o){let s=e._config.group_by.length-(e._config.group_rollup_mode==="flat"?1:0),i=e._column_settings_selected_column;for(let{element:l,metadata:a}of t.cells){if(!a||a.type==="body"||a.type==="row_header")continue;let c=a.column_header?.[e._config.split_by.length],n=e._config.sort.find(u=>u[0]===c),h=typeof a.x>"u",d=a.type==="corner"&&a.row_header_x===s||!h&&(a.x+1)%e._config.columns.length===0;l.classList.toggle("psp-header-border",d),l.classList.toggle("psp-header-group",!1),l.classList.toggle("psp-header-leaf",!0),l.classList.toggle("psp-is-top",!1),l.classList.toggle("psp-header-corner",h),l.classList.toggle("psp-header-sort-asc",!o&&!!n&&n[1]==="asc"),l.classList.toggle("psp-header-sort-desc",!o&&!!n&&n[1]==="desc"),l.classList.toggle("psp-header-sort-col-asc",!o&&!!n&&n[1]==="col asc"),l.classList.toggle("psp-header-sort-col-desc",!o&&!!n&&n[1]==="col desc"),l.classList.toggle("psp-header-sort-abs-asc",!o&&!!n&&n[1]==="asc abs"),l.classList.toggle("psp-header-sort-abs-desc",!o&&!!n&&n[1]==="desc abs"),l.classList.toggle("psp-header-sort-abs-col-asc",!o&&!!n&&n[1]==="col asc abs"),l.classList.toggle("psp-header-sort-abs-col-desc",!o&&!!n&&n[1]==="col desc abs");let p=ie(e,a),g=p==="integer"||p==="float",_=p==="string",f=p==="date",m=p==="datetime";if(l.classList.toggle("psp-align-right",g),l.classList.toggle("psp-align-left",!g),l.classList.toggle("psp-menu-enabled",(_||g||f||m)&&!h&&a.column_header_y===e._config.split_by.length+1),l.classList.toggle("psp-sort-enabled",(_||g||f||m)&&!h&&a.column_header_y===e._config.split_by.length),l.classList.toggle("psp-is-width-override",r.saveColumnSizes()[a.size_key]!==void 0),e._config.columns.length>1&&i){let u=a.column_header?.[a.column_header.length-2]===i;l.classList.toggle("psp-menu-open",u)}}}var vt={desc:"asc",asc:void 0,"desc abs":"asc abs","asc abs":void 0},yt={desc:"asc",asc:void 0,"desc abs":"asc abs","asc abs":void 0};async function wt(e,t,r,o,s){let i=t.getMeta(s);if(!i?.column_header)return;let l=i.column_header[e._config.split_by.length],a=o.ctrlKey||o.metaKey||o.altKey?xt:Et,c=o.shiftKey,n=a(e,`${l}`,c);await r.restore({sort:n})}function xt(e,t,r){let o=[],s=!1;for(let i of e._config.sort){let[l,a]=i;if(l===t){s=!0;let c=Te(e,t,a,r);c&&o.push(c)}else o.push(i)}return s||o.push([t,r?"desc abs":"desc"]),o}function Et(e,t,r){for(let[o,s]of e._config.sort)if(o===t){let i=Te(e,t,s,r);return i?[i]:[]}return[[t,r?"desc abs":"desc"]]}function Te(e,t,r,o){let s=e._config.split_by.length>0?yt:vt,i=r?s[r]:"desc";if(i)return[t,i]}async function Oe(e,t,r){let o=t.getMeta(r.target);if(!o||o.type!=="row_header")return;let s=r.target.classList.contains("psp-tree-label-collapse");r.shiftKey&&s?e._view.set_depth(o.row_header.filter(i=>i!==void 0).length-2):r.shiftKey?e._view.set_depth(o.row_header.filter(i=>i!==void 0).length-1):s?e._view.collapse(o.y):e._view.expand(o.y),e._num_rows=await e._view.num_rows(),e._num_columns=await e._view.num_columns(),t.draw()}function kt(e,t,r){return async o=>{let s=o;if(s.which!==1)return;let i=s.target;if(i?.tagName!=="A"){for(;i&&i.tagName!=="TD"&&i.tagName!=="TH";)if(i=i.parentElement,!i||!t.contains(i))return;if(i){if(i.classList.contains("psp-tree-label")){e._edit_mode!=="SELECT_ROW_TREE"&&Oe(e,t,s);return}if(i.classList.contains("psp-menu-enabled")){let l=t.getMeta(i)?.column_header?.[e._config.split_by.length];await r.toggleColumnSettings(`${l}`)}else i.classList.contains("psp-sort-enabled")&&wt(e,t,r,s,i)}}}}function Lt(e,t,r){return async o=>{let s=o;if(s.which!==1)return;let i=s.target;if(i?.tagName!=="A"){for(;i&&i.tagName!=="TD"&&i.tagName!=="TH";)if(i=i.parentElement,!i||!t.contains(i))return;i&&i.classList.contains("psp-tree-label")&&e._edit_mode==="SELECT_ROW_TREE"&&Oe(e,t,s)}}}function St(e){return t=>{let r=t;if(r.which!==1)return;let o=r.target;for(;o&&o.tagName!=="TD"&&o.tagName!=="TH";)if(o=o.parentElement,!o||!e.contains(o))return;o&&(o.classList.contains("psp-tree-label")&&r.offsetX<26||o.classList.contains("psp-header-leaf")&&!o.classList.contains("psp-header-corner"))&&r.stopImmediatePropagation()}}function Re(e,t,r){let o=e.getMeta(r);if(!o)return!1;let s=t._schema[t._column_paths[o.x]],i=r.textContent||"",l=t._ids[o.y-o.y0][0];if(s==="float"||s==="integer"){let c=parseFloat(i.replace(/,/g,""));if(isNaN(c))return!1;i=c}else if(s==="date"||s==="datetime"){let c=Date.parse(i);if(isNaN(c))return!1;i=c}else s==="boolean"&&(i=i==="true"?!1:i==="false"?!0:null);let a={__INDEX__:l,[t._column_paths[o.x]]:i};return t._table.update([a],{port_id:t._edit_port,format:null}),!0}function Mt(e,t,r,o){let s=t.getMeta(o.target);if(s?.type==="body"||s?.type==="column_header"){let i=e._is_editable[s.x],l=ie(e,s)==="boolean",a=o.target.classList.contains("psp-null");i&&l&&!a&&Re(t,e,o.target)}}function Ct(e,t,r,o){return s=>{let i=s;if(q(e,r)&&o.has(t)){let l=i.target;l.classList.remove("psp-error");let a=o.get(t);o.delete(t),a.content!==l.textContent&&(Re(t,e,l)||(l.textContent=a.content||"",l.classList.add("psp-error"),l.focus()))}}}function Tt(e,t,r,o){return s=>{let i=s.target,l=t.getMeta(i);if(l?.type==="body"){let a={x:l.x,y:l.y,content:i.textContent||void 0};o.set(t,a)}}}function Ot(e,t,r,o){let s=o.get(r),i=r.getRootNode();if(s){for(let{element:l,metadata:a}of t)if(a.type==="body"&&a.x===s.x&&a.y===s.y){i.activeElement!==l&&l.focus({preventScroll:!0});return}document.activeElement!==document.body&&r.contains(i.activeElement)&&i.activeElement.blur()}}function Rt(e,t){let r=t.get(e);if(!r)return!1;let o=e.getRootNode(),s=e.children[0]?.children[1];if(s)for(let i of s.children)for(let l of i.children){let a=e.getMeta(l);if(a?.type==="body"&&a.x===r.x&&a.y===r.y)return o.activeElement!==l&&l.focus({preventScroll:!0}),!0}return document.activeElement!==document.body&&e.contains(o.activeElement)&&o.activeElement.blur(),!1}function Nt(e){let t;return async function(r,o,s,i,l,a){if(t){await t;return}let c;t=new Promise(h=>c=h);let n=await e(r,o,s,i,l,a);return t=void 0,c(),n}}function be(e){if(e.isContentEditable){let t=e.getRootNode().getSelection()?.getRangeAt(0);if(!t)return 0;let r=t.cloneRange();return r.selectNodeContents(e),r.setEnd(t.endContainer,t.endOffset),r.toString().length}else return e.selectionStart||0}var V=Nt(async function(e,t,r,o,s,i){let l=t.getMeta(o);if(!l||l.type!=="body")return;let a=e._column_paths.length,c=e._num_rows,n=r.get(t);if(!n)return;l.x+s<a&&0<=l.x+s&&(n.x=l.x+s),l.y+i<c&&0<=l.y+i&&(n.y=l.y+i);let h=Math.max(l.x0-10,0),d=Math.min(l.x0+10,a),p=Math.max(l.y0-5,0),g=Math.min(l.y0+10,c),_=l.x0+s,f=l.y0+i;for(;!Rt(t,r)&&_>=h&&_<d&&f>=p&&f<g;)await t.scrollToCell(_,f),r.set(t,n),_+=s,f+=i});function At(e,t,r){let o=t.getMeta(r);return o?.type==="body"&&o.y===e._num_rows-1}function zt(e,t,r,o,s){let i=t.getRootNode().activeElement;switch(s.target.classList.remove("psp-error"),s.key){case"Enter":s.preventDefault(),At(e,t,i)?(i.blur(),o.delete(t)):s.shiftKey?V(e,t,o,i,0,-1):V(e,t,o,i,0,1);break;case"ArrowLeft":be(i)===0&&(s.preventDefault(),V(e,t,o,i,-1,0));break;case"ArrowUp":s.preventDefault(),V(e,t,o,i,0,-1);break;case"ArrowRight":be(i)===(i.textContent?.length||0)&&(s.preventDefault(),V(e,t,o,i,1,0));break;case"ArrowDown":s.preventDefault(),V(e,t,o,i,0,1);break;default:}}function Dt(e,t,r,o){return s=>{let i=s;if(e._edit_mode==="EDIT"){if(!q(e,r))return;zt(e,t,r,o,i)}else console.debug(`Mode ${e._edit_mode} for "keydown" event not yet implemented`)}}function Pt(e,t,r){return o=>{let s=o;if(e._edit_mode==="EDIT"){if(!q(e,r))return;Mt(e,t,r,s)}}}async function Ne({_view:e,_config:t},r,o){let s=t.group_by,i=t.split_by,l=r>=0?r:0,a=l+1,c=await e.to_json({start_row:l,end_row:a}),n=c.map(m=>m.__ROW_PATH__)[0]||[],h=s.map((m,u)=>{let v=n[u];return v?[m,"==",v]:void 0}).filter(m=>m!==void 0),d=s.length>0?o+1:o,p=Object.keys(c[0])[d],g={row:c[0],column_names:[],config:{filter:[]}},_=[];if(p){let m=p.split("|");g.column_names=[m[i.length]],_=i.map((u,v)=>{let y=m[v];return y?[u,"==",y]:void 0}).filter(u=>u!==void 0).filter(([,,u])=>u!=="__ROW_PATH__")}let f=t.filter.concat(h).concat(_);return g.config={filter:f},g}function Ht(e,t,r){return async o=>{let s=o,i=t.getMeta(s.target);if(!i||i.type!=="body")return;let{x:l,y:a}=i,{row:c,column_names:n,config:h}=await Ne(e,a,l);r.dispatchEvent(new CustomEvent("perspective-click",{bubbles:!0,composed:!0,detail:{row:c,column_names:n,config:h}}))}}var Wt="mouse-selected-area",It=(e,t,{className:r=Wt,selected:o=[],onSelect:s}={})=>(e.model._selection_state={selected_areas:o,dirty:!0},t.addEventListener("mousedown",Ut(e,t,r)),t.addEventListener("mouseover",$t(e,t,r)),t.addEventListener("mouseup",Vt(e,t,r,s)),t.addStyleListener(()=>H(e,t,r)),t);function Q(e){return e==="SELECT_ROW_TREE"}var Ut=(e,t,r)=>o=>{let s=o;if(s.button===0&&ee(e.model._edit_mode)){if(Q(e.model._edit_mode))return;e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES={};let i=t.getMeta(s.target);if(i?.type==="body"&&i.x!==void 0&&i.y!==void 0){e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES={x:i.x,y:i.y},e.model._selection_state.old_selected_areas=e.model._selection_state.selected_areas,e.model._selection_state.selected_areas=[];let l={x0:i.x,x1:i.x,y0:i.y,y1:i.y};e.model._selection_state.potential_selection=l,H(e,t,r,e.model._selection_state.selected_areas.concat([l]));return}}e.model._selection_state.selected_areas=[]},$t=(e,t,r)=>o=>{let s=o,i=e.model._edit_mode;if(ee(i)&&!Q(i)&&e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES&&e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x!==void 0){let l=t.getMeta(s.target);if(l?.type==="body"&&l.x!==void 0&&l.y!==void 0){let a={x0:Math.min(l.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),x1:Math.max(l.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),y0:Math.min(l.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y),y1:Math.max(l.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y)};e.model._selection_state.potential_selection=a,H(e,t,r,e.model._selection_state.selected_areas.concat([a]))}}},Vt=(e,t,r,o)=>s=>{let i=s,l=e.model._edit_mode;if(ee(l)){let a=t.getMeta(i.target);if(!a)return;if(Q(l)){if((a.type==="body"||a.type==="row_header")&&a.y!==void 0&&a.y>=0){let c=e.model._selection_state.selected_areas;if(c.length>0&&c[0].y0===a.y)e.model._selection_state.selected_areas=[],e.model._selection_state.dirty=!0,H(e,t,r,[]),o?.(c[0],!0);else{let n={x0:0,x1:0,y0:a.y,y1:a.y};e.model._selection_state.selected_areas=[n],e.model._selection_state.dirty=!0,H(e,t,r),o?.(n,!1)}}e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES={},e.model._selection_state.potential_selection=void 0;return}if((e.model._selection_state.old_selected_areas?.length??0)>0){let c=e.model._selection_state.old_selected_areas[0];if(c.x0===c.x1&&c.y0===c.y1&&a?.type==="body"&&c.x0===a.x&&c.y0===a.y){e.model._selection_state.selected_areas=[],e.model._selection_state.old_selected_areas=[],e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES={},e.model._selection_state.potential_selection=void 0,H(e,t,r,[]);return}}if(e.model._selection_state.old_selected_areas=[],e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES&&e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x!==void 0&&a?.type==="body"&&a.x!==void 0&&a.y!==void 0){let c={x0:Math.min(a.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),x1:Math.max(a.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),y0:Math.min(a.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y),y1:Math.max(a.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y)};e.model._selection_state.selected_areas.push(c),H(e,t,r)}e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES={},e.model._selection_state.potential_selection=void 0}};function ve(e){return e==="SELECT_COLUMN"||e==="SELECT_REGION"}function ye(e){return e==="SELECT_ROW"||e==="SELECT_REGION"||e==="SELECT_ROW_TREE"}function Ft(e,t,{x0:r,x1:o,y0:s,y1:i}){let l={},a=t.model._edit_mode;r!==void 0&&ve(a)&&(l.start_col=r),o!==void 0&&ve(a)&&(l.end_col=o+1),s!==void 0&&ye(a)&&(l.start_row=s),i!==void 0&&ye(a)&&(l.end_row=i+1),e.setSelection(l)}var jt={SELECT_REGION:(e,t)=>t.x0<=e.x&&e.x<=t.x1&&t.y0<=e.y&&e.y<=t.y1,SELECT_ROW:(e,t)=>t.y0<=e.y&&e.y<=t.y1,SELECT_ROW_TREE:(e,t)=>t.y0<=e.y&&e.y<=t.y1,SELECT_COLUMN:(e,t)=>t.x0<=e.x&&e.x<=t.x1};function ee(e){return e==="SELECT_REGION"||e==="SELECT_ROW"||e==="SELECT_COLUMN"||e==="SELECT_ROW_TREE"}var H=(e,t,r,o)=>{let s=e.model._edit_mode;if(ee(s))if(o=e.model._selection_state.selected_areas.slice(0),e.model._selection_state.potential_selection&&o.push(e.model._selection_state.potential_selection),o.length>0)Ft(e.parentElement,e,o[0]),Q(s)||qt(e,t,o,r);else{e.parentElement.setSelection();let i=t.querySelectorAll("tbody td");for(let l of i)l.classList.remove(r)}else if(e.model._selection_state.dirty){e.model._selection_state.dirty=!1;let i=t.querySelectorAll("tbody td, tbody th");for(let l of i)l.classList.remove(r)}},qt=(e,t,r,o)=>{let s=jt[e.model._edit_mode];if(!s||r.length===0)return;let i=t.querySelectorAll("tbody td");for(let l of i){let a=t.getMeta(l);if(!a||a.type!=="body")continue;let c=!1;for(let n of r)n.x0!==void 0&&n.y0!==void 0&&n.x1!==void 0&&n.y1!==void 0&&s(a,n)&&(c=!0,e.model._selection_state.dirty=!0,l.classList.add(o));c||l.classList.remove(o)}};function Jt(e,t,r,o){if(t.length===0)return;let s=e._column_settings_selected_column,i=t.length,l=o.hasAttribute("settings");if(i<=1?t[0]?.row.removeAttribute("id"):t.forEach(({row:n},h)=>{let d=l?1:0,p=h===i-(d+1)?"psp-column-titles":h===i-d?"psp-column-edit-buttons":null;p?n.setAttribute("id",p):n.removeAttribute("id")}),o.classList.toggle("psp-menu-open",!!s),l&&i>=2){let n=t[i-2],h=t[i-1];if(n&&h){t.slice(0,i-2).forEach(({cells:d})=>{d.forEach(({element:p})=>{p.classList.toggle("psp-menu-open",!1)})});for(let d=0;d<n.cells.length;d++){let p=n.cells[d]?.element,g=h.cells[d]?.element;if(!p||!g)continue;let _=p.textContent===s;p.classList.toggle("psp-menu-open",_),g.classList.toggle("psp-menu-open",_)}}}let a=e._config.split_by.length;if(a<t.length){let n=t[a];n&&fe(e,n,r,!1)}let c=e._config.split_by.length+1;if(c<t.length){let n=t[c];n&&fe(e,n,r,!0)}}function Xt(e,t,r){let o=e._config.group_by.length,s=[],i=new Set;for(let l=0;l<t.length;l++){let{row:a,cells:c}=t[l],n=new Set;for(let h=0;h<c.length;h++){let{element:d,metadata:p}=c[h];if(!p)continue;d.style.backgroundColor="";let g=p.type==="corner"&&o>0&&p.row_header_x===o||p.type==="column_header"&&p.x>=0;d.classList.toggle("psp-align-right",!1),d.classList.toggle("psp-align-left",!1),d.classList.toggle("psp-header-group",!0),d.classList.toggle("psp-header-leaf",!1),d.classList.toggle("psp-header-border",g),d.classList.toggle("psp-header-group-corner",p.type==="corner"),d.classList.toggle("psp-color-mode-bar",!1),d.classList.toggle("psp-color-mode-label-bar",!1),d.classList.toggle("psp-header-sort-asc",!1),d.classList.toggle("psp-header-sort-desc",!1),d.classList.toggle("psp-header-sort-col-asc",!1),d.classList.toggle("psp-header-sort-col-desc",!1),d.classList.toggle("psp-sort-enabled",!1);let _=h;for(;s[l]&&s[l][_];++_);n.add(_);let f=d;for(let m=_;m<_+f.colSpan;++m)for(let u=l;u<l+f.rowSpan;++u)s[u]||(s[u]=[]),s[u][m]=!0;f.classList.toggle("psp-is-top",l===0||!i.has(_))}i=n}}function Yt(e,t,r,[,,,,,o,s],[,,,,,i,l],a){let c=e._ids?.[t.dy??0]?.join("|"),n=(a?(t.column_header??[]).slice(0,-1):t.column_header??[]).join("|");if(e.last_reverse_columns?.has(n)&&e.last_reverse_ids?.has(c)){let h=e.last_reverse_ids?.get(c),d=e.last_reverse_columns.get(n);e._is_old_viewport?d!==void 0&&h!==void 0&&e.last_meta?.[d]?.[h]!==void 0&&e.last_meta[d][h]>(t.user??0)?(r.style.setProperty("--pulse--background-color-start",i),r.style.setProperty("--pulse--background-color-end",l),r.style.animationName==="pulse_neg"?r.style.animation="pulse_neg2 0.5s linear":r.style.animation="pulse_neg 0.5s linear"):d!==void 0&&h!==void 0&&e.last_meta?.[d]?.[h]!==void 0&&e.last_meta[d][h]<(t.user??0)?(r.style.setProperty("--pulse--background-color-start",o),r.style.setProperty("--pulse--background-color-end",s),r.style.animationName==="pulse_pos"?r.style.animation="pulse_pos2 0.5s linear":r.style.animation="pulse_pos 0.5s linear"):h!==t.dy&&(r.style.animation=""):r.style.animation=""}else r.style.animation=""}function Kt(e,t,r,o,s){let i=(o.user??0)>0,l=(o.user??0)<0,a;t?.pos_bg_color!==void 0?a=t.pos_bg_color:a=e._pos_bg_color;let c;t?.neg_bg_color!==void 0?c=t.neg_bg_color:c=e._neg_bg_color;let n=i?a:l?c:["",e._plugin_background[0],e._plugin_background[1],e._plugin_background[2],"","",""];{let[g,_,f,m]=n;if(r.style.position="",o._is_hidden_by_aggregate_depth)r.style.animation="",r.style.backgroundColor="";else if(t?.number_bg_mode==="color")r.style.animation="",r.style.backgroundColor=g;else if(t?.number_bg_mode==="gradient"){let u=Math.max(0,Math.min(1,Math.abs((o.user??0)/(t.bg_gradient??1)))),v=e._plugin_background,y=X(J([_,f,m,u],v));r.style.animation="",r.style.color=y,r.style.backgroundColor=`rgba(${_},${f},${m},${u})`}else t?.number_bg_mode==="pulse"?(Yt(e,o,r,a,c,s),r.style.backgroundColor=""):(t?.number_bg_mode==="disabled"||t?.number_bg_mode,r.style.animation="",r.style.backgroundColor="")}let h=t?.pos_fg_color!==void 0?i?t.pos_fg_color:l?t.neg_fg_color:["",e._plugin_background[0],e._plugin_background[1],e._plugin_background[2],"","",""]:i?e._pos_fg_color:l?e._neg_fg_color:["",e._plugin_background[0],e._plugin_background[1],e._plugin_background[2],"","",""],[d,,,,p]=h;if(o._is_hidden_by_aggregate_depth)r.style.backgroundColor="",r.style.color="";else if(t?.number_fg_mode==="disabled")if(t?.number_bg_mode==="color"){let g=e._plugin_background,_=X(J([n[1],n[2],n[3],1],g));r.style.color=_}else t?.number_bg_mode==="gradient"||(r.style.color="");else t?.number_fg_mode==="bar"?(r.style.color="",r.style.position="relative",r.style.setProperty("--psp-label-bar-color",p),r.style.setProperty("--psp-label-bar-bg",d)):t?.number_fg_mode==="label-bar"?(r.style.color="",r.style.setProperty("--psp-label-bar-color",p),r.style.setProperty("--psp-label-bar-bg",d)):(t?.number_fg_mode==="color"||!t?.number_fg_mode)&&(r.style.color=d)}function Gt(e,t,r,o){let s=o.column_header?.[e._config.split_by.length],i=t?.color!==void 0?t.color:e._color,[l,a,c,n]=i;if(o._is_hidden_by_aggregate_depth)r.style.backgroundColor="",r.style.color="";else if(t?.string_color_mode==="foreground"&&o.user!==null)r.style.color=l,r.style.backgroundColor="",t?.format==="link"&&r.children[0]&&(r.children[0].style.color=l);else if(t?.string_color_mode==="background"&&o.user!==null){let h=e._plugin_background,d=X(J([a,c,n,1],h));r.style.color=d,r.style.backgroundColor=l}else if(t?.string_color_mode==="series"&&o.user!==null&&s){e._series_color_map.has(s)||(e._series_color_map.set(s,new Map),e._series_color_seed.set(s,0));let h=e._series_color_map.get(s);if(o.user&&!h.has(o.user)){let C=e._series_color_seed.get(s)??0;h.set(o.user,C),e._series_color_seed.set(s,C+1)}let d=h.get(o.user)??0,[p,g,_]=ke(Z(l)),f=se([p+d*150%360,g,_]),[m,u,v]=f,y=Ee(f),k=e._plugin_background,S=X(J([m,u,v,1],k));r.style.color=S,r.style.backgroundColor=y}else r.style.backgroundColor="",r.style.color=""}function Bt(e,t,r,o){let s=t?.color!==void 0?t.color:e._color,[i,l,a,c]=s;if(o._is_hidden_by_aggregate_depth)r.style.backgroundColor="",r.style.color="";else if(t?.datetime_color_mode==="foreground"&&o.user!==null)r.style.color=i,r.style.backgroundColor="";else if(t?.datetime_color_mode==="background"&&o.user!==null){let n=e._plugin_background,h=X(J([l,a,c,1],n));r.style.color=h,r.style.backgroundColor=i}else r.style.backgroundColor="",r.style.color=""}function Zt(e,t,r,o){if(o._is_hidden_by_aggregate_depth)r.style.backgroundColor="",r.style.color="";else{let[s]=o.user===!0?e._pos_fg_color:o.user===!1?e._neg_fg_color:["",0,0,0,""];r.style.backgroundColor="",r.style.color=s}}function Qt(e,t,r,o){let s=o.value!==void 0&&o.value!==null&&o.value?.toString()?.trim().length>0,i=(o.row_header_x??0)>=e._config.group_by.length,l=t.getMeta({dx:0,dy:(o.y??0)-(o.y0??0)+1}),a=l&&l.row_header&&typeof l.row_header[(o.row_header_x??0)+1]<"u";r.classList.toggle("psp-tree-label",s&&!i),r.classList.toggle("psp-tree-label-expand",s&&!i&&!a),r.classList.toggle("psp-tree-label-collapse",s&&!i&&a),r.classList.toggle("psp-tree-leaf",s&&i)}function er(e,t,r,o,s,i,l){let a=s?e._tree_selection_id:void 0;l.classList.toggle("flat-group-rollup-mode",e._config.group_rollup_mode==="flat");for(let{element:c,metadata:n,isHeader:h}of t){let d=n.column_header?.[e._config.split_by.length],p=ie(e,n),g=d?r[d.toString()]:void 0,_=p==="integer"||p==="float";n._is_hidden_by_aggregate_depth=e._config.group_rollup_mode==="rollup"&&(m=>m===0||m===void 0?!1:m-1<Math.min(e._config.group_by.length,g?.aggregate_depth||0))(n.row_header?.filter(m=>m!==void 0)?.length),_?Kt(e,g,c,n,o):p==="boolean"?Zt(e,g,c,n):p==="string"?Gt(e,g,c,n):p==="date"||p==="datetime"?Bt(e,g,c,n):(c.style.backgroundColor="",c.style.color=""),c.classList.toggle("psp-bool-type",p==="boolean"&&n.user!==null),c.classList.toggle("psp-null",n.value===null),c.classList.toggle("psp-align-right",!h&&_),c.classList.toggle("psp-align-left",h||!_),e._column_settings_selected_column?c.classList.toggle("psp-menu-open",d===e._column_settings_selected_column):c.classList.toggle("psp-menu-open",!1),c.classList.toggle("psp-color-mode-bar",g?.number_fg_mode==="bar"&&_),c.classList.toggle("psp-color-mode-label-bar",g?.number_fg_mode==="label-bar"&&_),h&&Qt(e,l,c,n);let f=c.parentElement;if(f&&(f.dataset.y=String(n.y)),n.type!=="row_header"||n.row_header_x===n.row_header.length-1||n.row_header[n.row_header_x+1]===void 0?(c.dataset.y=String(n.y),n.type!=="row_header"?c.dataset.x=String(n.x):delete c.dataset.x):(delete c.dataset.y,delete c.dataset.x),c.classList.toggle("psp-select-region-inactive",!1),s)if(!a)c.classList.toggle("psp-select-region",!1);else{let m=e._ids[(n.y??0)-(n.y0??0)],u=a.reduce((k,S,C)=>k&&S===m[C],!0),v=m.length===a.length&&u,y=m.length!==a.length&&u;h&&n.type==="row_header"&&n.row_header_x!==void 0&&m[n.row_header_x]?c.classList.toggle("psp-select-region",!1):(c.classList.toggle("psp-select-region",v),c.classList.toggle("psp-select-region-inactive",y))}else c.classList.toggle("psp-select-region",!1);if(!h&&n.type==="body")if(i&&e._is_editable[n.x]){let m=n.column_header?.[e._config.split_by.length]?.toString();m&&p==="string"&&r[m]?.format==="link"?(c.toggleAttribute("contenteditable",!1),c.classList.toggle("boolean-editable",!1)):p==="boolean"?(c.toggleAttribute("contenteditable",!1),c.classList.toggle("boolean-editable",n.user!==null)):(i!==c.hasAttribute("contenteditable")&&c.toggleAttribute("contenteditable",i),c.classList.toggle("boolean-editable",!1))}else c.toggleAttribute("contenteditable",!1),c.classList.toggle("boolean-editable",!1)}}function tr(e,t,r,o,s){return function(){let i=r[A]||{},l=o.hasAttribute("settings"),a=t._edit_mode==="SELECT_ROW_TREE",c=q(t,o),n=q(t,o,!0);e.classList.toggle("edit-mode-allowed",n);let h=[],d=[],p=r.children[0]?.children[1];if(p)for(let _ of p.children)for(let f of _.children){let m=r.getMeta(f);if(m&&(m.type==="body"||m.type==="row_header")){let u=f.tagName==="TH";h.push({element:f,metadata:m,isHeader:u})}}let g=r.children[0]?.children[0];if(g)for(let _ of g.children){let f={row:_,cells:[]};for(let m of _.children){let u=r.getMeta(m);f.cells.push({element:m,metadata:u})}d.push(f)}er(t,h,i,l,a,c,r),Xt(t,d,r),Jt(t,d,r,o),Ot(t,h,r,s)}}async function rr(e){let t=this.parentElement,r=await t.getTable();if(this._initialized)await ue.call(this,this.regular_table,r,e,t.getAttribute("theme"),this.model);else{if(this.innerHTML="",this.shadowRoot?this.shadowRoot.appendChild(this.regular_table):this.appendChild(this.regular_table),this.model=await ue.call(this,this.regular_table,r,e,t.getAttribute("theme")),!this.model)return;let o=this.model,s=this.regular_table,i=async(a,c)=>{if(o._edit_mode!=="SELECT_ROW_TREE")return;if(c)o._tree_selection_id=void 0;else{let g=a.y0-(o._last_window?.start_row??0);g>=0&&g<o._ids.length&&(o._tree_selection_id=o._ids[g])}let{row:n,column_names:h,config:d}=await Ne(o,a.y0,0),p;if(c){if((o._last_insert_configs?.length||0)>0)p=new F(!1,n,[],o._last_insert_configs??[],[]);else throw new Error("Suprious deselect");o._last_insert_configs=void 0}else p=new F(!0,n,h,o._last_insert_configs??[],[d]),o._last_insert_configs=[d];await s.draw({preserve_width:!0}),t.dispatchEvent(new CustomEvent("perspective-global-filter",{bubbles:!0,composed:!0,detail:p}))};It(this,this.regular_table,{className:"psp-select-region",onSelect:i});let l=new WeakMap;this.regular_table.addStyleListener(tr(this,this.model,this.regular_table,t,l)),this.regular_table.addEventListener("click",St(this.regular_table)),this.regular_table.addEventListener("click",Ht(this.model,this.regular_table,t)),this.regular_table.addEventListener("mousedown",kt(this.model,this.regular_table,t)),this.regular_table.addEventListener("dblclick",Lt(this.model,this.regular_table,t)),this.regular_table.addEventListener("click",Pt(this.model,this.regular_table,t)),this.regular_table.addEventListener("focusin",Tt(this.model,this.regular_table,t,l)),this.regular_table.addEventListener("focusout",Ct(this.model,this.regular_table,t,l)),this.regular_table.addEventListener("keydown",Dt(this.model,this.regular_table,t,l)),t.addEventListener("perspective-toggle-column-settings",a=>{let c=a;if(this.isConnected){if(bt(this.model,this.regular_table,t,c.detail.column_name??void 0),!c.detail.open){this.model._column_settings_selected_column=void 0;return}this.model._column_settings_selected_column=c.detail.column_name??void 0}}),this._initialized=!0}}function or(e,t){e=JSON.parse(JSON.stringify(e)),t=JSON.parse(JSON.stringify(t));let r={};if(e.columns)for(let[i,l]of Object.entries(e.columns))l.column_size_override!==void 0&&(r[i]=l.column_size_override,delete l.column_size_override);let o={};if(t)for(let[i,l]of Object.entries(t))o[i]={...l,pos_fg_color:l.pos_fg_color?R(l.pos_fg_color):void 0,neg_fg_color:l.neg_fg_color?R(l.neg_fg_color):void 0,pos_bg_color:l.pos_bg_color?R(l.pos_bg_color):void 0,neg_bg_color:l.neg_bg_color?R(l.neg_bg_color):void 0,color:l.color?R(l.color):void 0};"edit_mode"in e&&e.edit_mode&&(j.indexOf(e.edit_mode)!==-1?Le.call(this,e.edit_mode):console.error("Unknown edit mode "+e.edit_mode)),"scroll_lock"in e&&Se.call(this,e.scroll_lock);let s=this.regular_table;Me.call(this,r,!0),s[A]=o}function sr(){if(this.regular_table){let e={columns:{},scroll_lock:!!this._is_scroll_lock,edit_mode:this._edit_mode},t=Ce.call(this);for(let r of Object.keys(t||{}))e.columns?.[r]||(e.columns=e.columns||{},e.columns[r]={}),e.columns[r].column_size_override=t[r];return JSON.parse(JSON.stringify(e))}return{}}async function ir(e){if(this.parentElement&&await this.activate(e),!this.isConnected||this.offsetParent==null||!this.model)return;let t=Ce.call(this),r=this.regular_table.draw({invalid_columns:!0});this._reset_scroll_top&&(this.regular_table.scrollTop=0,this._reset_scroll_top=!1),this._reset_scroll_left&&(this.regular_table.scrollLeft=0,this._reset_scroll_left=!1),this._reset_select&&(this.regular_table.dispatchEvent(new CustomEvent("psp-deselect-all",{bubbles:!1})),this._reset_select=!1),this._reset_column_size&&(this.regular_table.resetAutoSize(),this._reset_column_size=!1),Me.call(this,t),await r,this._toolbar?.classList.toggle("aggregated",this.model._config.group_by.length>0||this.model._config.split_by.length>0)}function lr(e,t){return e==="integer"||e==="float"?{datagrid_number_style:{fg_gradient:0,pos_fg_color:this.model._pos_fg_color[0],neg_fg_color:this.model._neg_fg_color[0],number_fg_mode:"color",bg_gradient:0,pos_bg_color:this.model._pos_bg_color[0],neg_bg_color:this.model._neg_bg_color[0],number_bg_mode:"disabled"},number_string_format:!0}:e==="date"||e==="datetime"||e==="string"?{[e==="date"||e==="datetime"?"datagrid_datetime_style":"datagrid_string_style"]:{color:this.model._color[0],bg_color:this.model._color[0]}}:null}var ar='regular-table{--psp-datagrid--hover--border-color:var(--psp-inactive--color,#c5c9d080);margin:12px 0 0 12px;padding:0;font-family:inherit;& div[tabindex]{outline:none}&>div{position:absolute;inset:0;overflow:hidden}& th{text-align:center}& thead tr:not(.rt-autosize) th{max-width:0;overflow:hidden}& thead tr:last-child .rt-float,& tbody .rt-float,& thead .rt-integer,& tbody .rt-integer{text-align:right}& tbody th{text-align:left}& span.rt-tree-container{align-items:center;height:100%;display:flex}& thead .rt-string,& tbody .rt-string,& thead .rt-date,& tbody .rt-date,& thead .rt-datetime,& tbody .rt-datetime{text-align:left}& thead tr:last-child th{border-bottom:1px solid #8b868045}& tbody tr:first-child td,& tbody tr:first-child th{border-top:1px solid #0000!important}& th{position:relative}& tr th span.rt-tree-group{border-left:1px solid #eee;height:100%;margin-left:5px;margin-right:15px}& td,& th{white-space:nowrap;height:var(--psp-datagrid--row--height,19px);padding:0 5px}& table *{box-sizing:border-box}& table{color:#666;outline:none;position:absolute}& span.rt-row-header-icon{color:#aaa;font-family:var(--psp-button--font-family);padding-right:4px}& span.rt-column-header-icon{width:10px;font-size:10px;font-family:var(--psp-button--font-family);padding-left:3px;display:inline-block}& span.rt-row-header-icon:hover{color:#1a7da1;text-shadow:0 0 3px #1a7da1}& .rt-selected td{background-color:#eee}& .rt-cell-clip{text-overflow:ellipsis;overflow:hidden}& td span.rt-group-name,& th span.rt-group-name{flex:1;height:100%;margin-right:-5px;padding-left:8px;padding-right:5px}& th span.rt-group-name{text-align:left}& td th span.rt-group-leaf,& th span.rt-group-leaf{height:100%;margin-left:16px}& .rt-column-resize{cursor:col-resize;width:10px;height:100%;position:absolute;top:0;right:0}& a{color:var(--psp-datagrid--pos-cell--color)}& a:visited{color:var(--psp-active--color)}& td.psp-null:after,& th.psp-null:after{content:var(--psp-label--null--content,"-");color:var(--psp-label--null--color,inherit);font-size:var(--psp-label--null--font-size,inherit);vertical-align:middle}}.psp-header-border:not(.psp-is-top):not(.psp-header-leaf){box-shadow:1px 0px var(--psp-inactive--border-color,#8b868045)}.psp-header-group{box-shadow:0px 10px 0 -9px var(--psp-inactive--border-color,#8b868045)}.psp-is-top{box-shadow:5px 4px 0px -4px var(--psp-inactive--border-color,#8b868045)}.psp-is-top.psp-header-group:not(.psp-header-group-corner){box-shadow:5px 4px 0px -4px var(--psp-inactive--border-color,#8b868045), 0px 10px 0 -9px var(--psp-inactive--border-color,#8b868045)}.psp-header-border.psp-header-group{&:not(.psp-is-top):not(.psp-header-group-corner){box-shadow:1px 0px var(--psp-inactive--border-color,#8b868045), 0px 10px 0 -9px var(--psp-inactive--border-color,#8b868045)}}perspective-viewer[settings] tr.rt-autosize .psp-header-leaf.psp-header-border:not(.psp-menu-enabled){box-shadow:1px 0px var(--psp-inactive--border-color,#8b868045)}:host-context(perspective-viewer[settings]) tr.rt-autosize .psp-header-leaf.psp-header-border:not(.psp-menu-enabled){box-shadow:1px 0px var(--psp-inactive--border-color,#8b868045)}.psp-header-leaf.psp-header-border{box-shadow:5px -4px 0px -4px var(--psp-inactive--border-color,#8b868045)}tr:only-child th{box-shadow:none!important}regular-table{& tbody{& tr:hover th.psp-tree-leaf:not(.psp-select-region):not(.psp-select-region-inactive),& tr:hover th.psp-tree-label:not(.psp-select-region):not(.psp-select-region-inactive),& tr:hover td:not(.psp-select-region):not(.psp-select-region-inactive),& tr:hover:after{box-shadow:0px 1px 0px var(--psp-datagrid--hover--border-color,#c5c9d080);border-color:var(--psp-datagrid--hover--border-color,#c5c9d080)!important;&.psp-menu-open{box-shadow:inset -2px 0px 0px var(--psp--color), inset 2px 0px 0px var(--psp--color), 0px 1px 0px var(--psp-datagrid--hover--border-color,#c5c9d080)}}& tr:last-child:hover td:not(.psp-select-region):not(.psp-select-region-inactive).psp-menu-open{box-shadow:inset -2px 0px 0px var(--psp--color), inset 2px 0px 0px var(--psp--color), inset 0px -2px 0px var(--psp--color), 0px 1px 0px var(--psp-datagrid--hover--border-color,#c5c9d080)}& tr:hover+tr th.psp-tree-leaf:not(.psp-select-region):not(.psp-select-region-inactive),& tr:hover+tr th.psp-tree-label:not(.psp-select-region):not(.psp-select-region-inactive),& tr:hover+tr td:not(.psp-select-region):not(.psp-select-region-inactive){border-top-color:#0000}& tr{& th:first-child:not(:empty),& th:first-child:empty+th:not(:empty),& th:first-child:empty~th:empty+th:not(:empty),& td:first-child{border-left-width:1px;border-left-color:#0000}& th:last-child,& td:last-child{border-right-width:0;border-right-color:#0000}}& tr:hover{color:inherit;& th:first-child:not(:empty),& th:first-child:empty+th:not(:empty),& th:first-child:empty~th:empty+th:not(:empty),& td:first-child{border-left-color:var(--psp-datagrid--hover--border-color,#c5c9d080)!important}& th:last-child,& td:last-child{border-right-color:var(--psp-datagrid--hover--border-color,#c5c9d080)!important}}}}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table,:host(:not(.sub-cell-scroll-disabled)) regular-table table{& tbody td,& thead th:not(.rt-group-corner){transform:translate(var(--regular-table--transform-x,0px))}& tbody{transform:translate(0, var(--regular-table--transform-y,0px))}& tbody tr:first-child{& td,& th,&:after{clip-path:polygon(0 var(--regular-table--clip-y,0), 0 200%, 200% 200%, 200% var(--regular-table--clip-y,0))}}& tbody tr td:first-of-type{clip-path:polygon(var(--regular-table--clip-x,0) 0, var(--regular-table--clip-x,0) 200%, 200% 200%, 200% 0)}& tbody tr:first-child td:first-of-type{clip-path:polygon(var(--regular-table--clip-x,0) var(--regular-table--clip-y,0), var(--regular-table--clip-x,0) 200%, 200% 200%, 200% var(--regular-table--clip-y,0))}& thead tr:last-child:after,& tbody tr:not(:first-child):after{transform:translate(var(--regular-table--transform-x,0px))}& tbody tr:hover:first-child:after{clip-path:polygon(0 var(--regular-table--clip-y,0), 0 200%, 200% 200%, 200% var(--regular-table--clip-y,0))}& thead tr th.rt-group-corner+th:not(.rt-group-corner){clip-path:polygon(var(--regular-table--clip-x,0) 0, var(--regular-table--clip-x,0) 200%, 200% 200%, 200% 0)}}regular-table{outline:none;&::-webkit-scrollbar,&::-webkit-scrollbar-corner{background-color:#0000;width:12px;height:12px}&::-webkit-scrollbar-thumb{background-clip:content-box;background:var(--psp--color);border:5.5px solid var(--psp--background-color);min-width:10%;max-width:50%;min-height:10%;max-height:50%}}perspective-viewer,:host{& .psp-menu-enabled{border-radius:3px 3px 0 0;padding:0 6px;font-size:8px}& .psp-menu-enabled:hover,& tr:not(.rt-autosize) th.psp-menu-open{color:var(--psp--background-color);background-color:var(--psp--color);border-bottom-color:var(--psp--color);cursor:pointer}& tr:not(.rt-autosize) th.psp-menu-open{&:before{background-repeat:no-repeat;background-color:var(--psp--color);content:"";width:10px;height:8px;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--psp-icon--column-settings--mask-image);mask-image:var(--psp-icon--column-settings--mask-image);background-color:var(--psp--background-color);margin-right:4px;display:inline-block}}& td.psp-menu-open{box-shadow:inset -2px 0px 0px var(--psp--color), inset 2px 0px 0px var(--psp--color)}& tr:first-child td.psp-menu-open{border-top-color:var(--psp--color)!important}& tr:last-child td.psp-menu-open{box-shadow:inset -2px 0px 0px var(--psp--color), inset 2px 0px 0px var(--psp--color), inset 0px -2px 0px var(--psp--color)}}perspective-viewer,:host-context(perspective-viewer){& regular-table table thead tr:last-child th{border-bottom-width:1px;border-bottom-color:var(--psp-inactive--border-color,#8b868045)}}.psp-sort-enabled:hover{cursor:pointer}regular-table.flat-group-rollup-mode.vertical-row-headers th.psp-tree-label:not(:last-of-type){writing-mode:vertical-lr}.psp-select-region-inactive,:hover .psp-select-region-inactive,:hover th.psp-tree-leaf.psp-select-region-inactive,:hover th.psp-tree-label.psp-select-region-inactive{background-color:var(--psp-inactive--color)!important;color:var(--psp--background-color)!important;border-color:var(--psp--background-color)!important}.psp-error{color:red}td:focus{outline:1px dotted #666}perspective-viewer.dragging,:host-context(perspective-viewer.dragging){& regular-table{pointer-events:none}}.psp-header-border:last-child{border-right-width:0}.psp-header-sort-desc:after{background-repeat:no-repeat;background-color:var(--psp--color);content:"";width:14px;height:11px;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--psp-icon--sort-desc--mask-image);mask-image:var(--psp-icon--sort-desc--mask-image);margin-left:4px;display:inline-block}.psp-header-sort-asc:after{background-repeat:no-repeat;background-color:var(--psp--color);content:"";width:14px;height:11px;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--psp-icon--sort-asc--mask-image);mask-image:var(--psp-icon--sort-asc--mask-image);margin-left:4px;display:inline-block}.psp-header-sort-col-desc:after{background-repeat:no-repeat;background-color:var(--psp--color);content:"";width:14px;height:11px;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--psp-icon--sort-col-desc--mask-image);mask-image:var(--psp-icon--sort-col-desc--mask-image);margin-left:4px;display:inline-block}.psp-header-sort-col-asc:after{background-repeat:no-repeat;background-color:var(--psp--color);content:"";width:14px;height:11px;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--psp-icon--sort-col-asc--mask-image);mask-image:var(--psp-icon--sort-col-asc--mask-image);margin-left:4px;display:inline-block}.psp-header-sort-abs-desc:after{background-repeat:no-repeat;background-color:var(--psp--color);content:"";width:14px;height:11px;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--psp-icon--sort-abs-desc--mask-image);mask-image:var(--psp-icon--sort-abs-desc--mask-image);margin-left:4px;display:inline-block}.psp-header-sort-abs-asc:after{background-repeat:no-repeat;background-color:var(--psp--color);content:"";width:14px;height:11px;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--psp-icon--sort-abs-asc--mask-image);mask-image:var(--psp-icon--sort-abs-asc--mask-image);margin-left:4px;display:inline-block}.psp-header-sort-abs-col-desc:after{background-repeat:no-repeat;background-color:var(--psp--color);content:"";width:14px;height:11px;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--psp-icon--sort-abs-col-desc--mask-image);mask-image:var(--psp-icon--sort-abs-col-desc--mask-image);margin-left:4px;display:inline-block}.psp-header-sort-abs-col-asc:after{background-repeat:no-repeat;background-color:var(--psp--color);content:"";width:14px;height:11px;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:var(--psp-icon--sort-abs-col-asc--mask-image);mask-image:var(--psp-icon--sort-abs-col-asc--mask-image);margin-left:4px;display:inline-block}tbody th:last-of-type{border-right:1px solid var(--psp-inactive--border-color,#8b868045);text-overflow:ellipsis;overflow:hidden}tbody th:empty{background-image:linear-gradient(to right, transparent 9px, var(--psp-inactive--border-color,#eee) 10px, transparent 11px);pointer-events:none;background-repeat:no-repeat;min-width:20px;max-width:20px}regular-table:not(.flat-group-rollup-mode){& .psp-tree-label{min-width:0;max-width:0}& .psp-tree-label:before{color:var(--psp--color);font-family:var(--psp-button--font-family,inherit);padding-right:11px}& .psp-tree-label-expand:before{content:var(--psp-label--tree-expand--content,"+")}& .psp-tree-label-collapse:before{content:var(--psp-label--tree-collapse--content,"-")}& .psp-tree-label-expand,& .psp-tree-label-collapse{cursor:pointer}& .psp-tree-label:hover:before{color:var(--psp-active--color);text-shadow:0px 0px 5px var(--psp-active--color)}}.psp-tree-leaf{padding-left:24px}.psp-align-right{text-align:right}.psp-color-mode-bar{padding:0 2px}.psp-color-mode-label-bar{padding:0 2px;position:relative;& .psp-bar{isolation:isolate;position:unset}& .psp-bar:before{color:#0000;pointer-events:none;content:var(--label);justify-content:flex-end;align-items:center;padding:0 3px;display:inline-flex}& .psp-bar:after{color:var(--psp-label-bar-bg);content:var(--label);mix-blend-mode:difference;justify-content:flex-end;align-items:center;padding:0 5px;display:inline-flex;position:absolute;inset:0}}.psp-label-bar{pointer-events:none;justify-content:flex-end;align-items:center;padding:0;display:flex;inset:0}.psp-label-bar-fill{background:var(--psp-label-bar-color);pointer-events:none;height:80%;position:absolute;top:10%}.psp-label-bar-text{color:var(--psp-label-bar-bg);mix-blend-mode:difference;pointer-events:none;position:relative}.psp-align-left{text-align:left}.psp-positive:not(:focus){color:var(--psp-datagrid--pos-cell--color)}.psp-negative:not(:focus){color:var(--psp-datagrid--neg-cell--color)}regular-table table tbody td{min-width:52px!important}.psp-is-width-override .rt-column-resize,.rt-column-resize:hover{border:1px dashed #999;border-width:1px 1px 0 0}.boolean-editable{cursor:pointer}regular-table table{user-select:none;color:inherit;border-collapse:separate;font-size:1em;& th{font-weight:400}& td,& th{border-color:var(--psp-inactive--border-color,#8b868045);height:var(--psp-datagrid--row--height,23px)}& .psp-header-group{text-overflow:ellipsis}& th.psp-header-leaf{border-bottom-width:0;& span{height:var(--psp-datagrid--row--height,23px);min-height:var(--psp-datagrid--row--height,23px)}}& td,& th.psp-tree-label,& th.psp-tree-label,& th.psp-tree-leaf,& tbody tr:first-child th{border-style:solid;border-width:1px 0 0}& tbody th:empty{background-position:0 -10px}& td.psp-select-region,& th.psp-select-region{background-color:var(--psp--color)!important;color:var(--psp--background-color)!important;border-color:var(--psp--background-color)!important}}regular-table tbody tr:hover td.psp-select-region:not(.psp-select-region-inactive),regular-table tbody tr:hover+tr td.psp-select-region:not(.psp-select-region-inactive){border-color:var(--psp--background-color)!important}regular-table tbody tr:hover{& td.psp-select-region.psp-menu-open{&:not(.psp-select-region-inactive){box-shadow:inset -2px 0px 0px var(--psp--background-color), inset 2px 0px 0px var(--psp--background-color)}}}:host-context(perspective-viewer[settings]) td.psp-select-region.psp-menu-open{box-shadow:inset -2px 0px 0px var(--psp--background-color), inset 2px 0px 0px var(--psp--background-color)}regular-table #psp-column-edit-buttons th:not(.rt-group-corner) span:not(.rt-column-resize):before{content:var(--psp-datagrid--column-edit-button--content,"Edit")}perspective-viewer:not([settings]),:host-context(perspective-viewer:not([settings])){& regular-table #psp-column-edit-buttons:after{content:none}}regular-table table thead tr:last-child:after{box-sizing:border-box;width:10000px;height:var(--psp-datagrid--row--height,23px);content:" ";border-bottom:1px solid var(--psp-inactive--border-color);display:block}regular-table table tbody tr:after{box-sizing:border-box;width:10000px;height:var(--psp-datagrid--row--height,23px);content:" ";border-top:1px solid #0000;display:block}regular-table table tbody tr:not(:first-child):after{border-top:1px solid var(--psp-inactive--border-color)}regular-table table tbody tr:hover:not(:first-child):after,regular-table table tbody tr:hover+tr:after{border-top:1px solid var(--psp-datagrid--hover--border-color)}@keyframes pulse_pos{0%{background-color:var(--pulse--background-color-start,#0080ff80)}to{background-color:var(--pulse--background-color-end,#0080ff00)}}@keyframes pulse_pos2{0%{background-color:var(--pulse--background-color-start,#0080ff80)}to{background-color:var(--pulse--background-color-end,#0080ff00)}}@keyframes pulse_neg{0%{background-color:var(--pulse--background-color-start,#ff190080)}to{background-color:var(--pulse--background-color-end,#ff190000)}}@keyframes pulse_neg2{0%{background-color:var(--pulse--background-color-start,#ff190080)}to{background-color:var(--pulse--background-color-end,#ff190000)}}',nr=class Ae extends HTMLElement{static _global_stylesheet_installed=!1;static _sheet;static renderTarget=window.CSS?.supports&&window.CSS?.supports("selector(:host-context(foo))")?"shadow":"light";regular_table;model;_toolbar;_edit_button;_scroll_lock;_is_scroll_lock;_edit_mode;_initialized;_reset_scroll_top;_reset_scroll_left;_reset_select;_reset_column_size;constructor(){super(),this.regular_table=document.createElement("regular-table"),this.regular_table.part="regular-table",this._is_scroll_lock=!1,this._edit_mode="READ_ONLY";let t=Ae;t._sheet||(t._sheet=new CSSStyleSheet,t._sheet.replaceSync(ar)),t.renderTarget==="shadow"?this.attachShadow({mode:"open"}).adoptedStyleSheets.push(t._sheet):t.renderTarget==="light"&&!t._global_stylesheet_installed&&(t._global_stylesheet_installed=!0,document.adoptedStyleSheets.push(t._sheet))}connectedCallback(){this._toolbar||(this._toolbar=document.createElement("perspective-viewer-datagrid-toolbar"));let t=this.parentElement;t&&t.appendChild(this._toolbar)}disconnectedCallback(){this._toolbar?.parentElement?.removeChild?.(this._toolbar)}async activate(t){return await rr.call(this,t)}get name(){return"Datagrid"}get category(){return"Basic"}get select_mode(){return"toggle"}get min_config_columns(){}get config_column_names(){return["Columns"]}get group_rollups(){return["rollup","flat","total"]}get priority(){return 1}can_render_column_styles(t,r){return t!=="boolean"}column_style_controls(t,r){return lr.call(this,t,r)}async draw(t){return await ir.call(this,t)}async update(t){if(this.model===void 0)await this.draw(t);else if(this.model._config.split_by?.length>0){let r=await t.dimensions();this.model._num_rows=r.num_view_rows,await this.regular_table.draw()}else this.model._num_rows=await t.num_rows(),await this.regular_table.draw()}async render(t){let r=await this.parentElement.getView(),o=await r.to_columns(t),s=await r.column_paths(t),i=t?.end_row!==void 0&&t?.end_row!==null&&t?.start_row!==void 0&&t?.start_row!==null?t.end_row-t.start_row:await r.num_rows(),l="";for(let a=0;a<i;a++){for(let c of s){let n=o[c],h=this.model._schema[c],d=this.regular_table[A],p=c.split("|").at(-1),g=at(h,d?.[p]||{});g?l+=g.format(n[a])+" ":l+=n[a]+" "}l+=`
`}return l.trim()}async resize(t){!this.isConnected||this.offsetParent==null||this._initialized&&await this.regular_table.draw()}async clear(){this.regular_table.resetAutoSize(),this.regular_table.clear()}save(){return sr.call(this)}restore(t,r){return or.call(this,t,r??{})}async restyle(t){this.model?._view&&await this.draw(t)}delete(){this.disconnectedCallback(),this._toolbar=void 0,this.regular_table.table_model&&this.regular_table.resetAutoSize(),this.regular_table.clear()}},cr=':host{height:100%;display:block;position:relative}:host #container{flex-direction:column;justify-content:stretch;align-items:stretch;display:flex;position:absolute;inset:0}:host #toolbar{align-items:stretch;height:100%;display:flex}:host #toolbar .hover-target{cursor:pointer;align-items:center;margin:0;display:inline-flex;&:hover{box-shadow:-4px 0 0 var(--psp--color), 4px 0 0 var(--psp--color);background-color:var(--psp--color)}}:host #slot-container{flex:1;position:relative}#scroll_lock.lock-scroll:before{-webkit-mask-image:var(--psp-toolbar-scroll-lock-active--content)}#scroll_lock:before{-webkit-mask-image:var(--psp-toolbar-scroll-lock--content)}#select_mode:before{content:"highlight_alt"}#edit_mode:before{-webkit-mask-image:""}#edit_mode[data-edit-mode=READ_ONLY]:before{-webkit-mask-image:var(--psp-toolbar-edit-mode-read-only--content)}#edit_mode[data-edit-mode=EDIT]:before{-webkit-mask-image:var(--psp-toolbar-edit-mode-edit--content)}:host(.aggregated) #toolbar #edit_mode[data-edit-mode=EDIT]:before{-webkit-mask-image:var(--psp-toolbar-edit-mode-read-only--content)}#edit_mode[data-edit-mode=SELECT_ROW]:before{-webkit-mask-image:var(--psp-toolbar-edit-mode-select-row--content)}#edit_mode[data-edit-mode=SELECT_COLUMN]:before{-webkit-mask-image:var(--psp-toolbar-edit-mode-select-column--content)}#edit_mode[data-edit-mode=SELECT_REGION]:before{-webkit-mask-image:var(--psp-toolbar-edit-mode-select-region--content)}#edit_mode[data-edit-mode=SELECT_ROW_TREE]:before{-webkit-mask-image:var(--psp-toolbar-edit-mode-select-row-tree--content)}#edit_mode[data-edit-mode=READ_ONLY] span:before{content:var(--psp-label--edit-mode-read-only--content,"Read Only")}#edit_mode[data-edit-mode=EDIT] span:before{content:var(--psp-label--edit-mode-edit--content,"Editable")}#edit_mode[data-edit-mode=SELECT_ROW] span:before{content:var(--psp-label--edit-mode-select-row--content,"Row Select")}#edit_mode[data-edit-mode=SELECT_COLUMN] span:before{content:var(--psp-label--edit-mode-select-column--content,"Column Select")}#edit_mode[data-edit-mode=SELECT_REGION] span:before{content:var(--psp-label--edit-mode-select-region--content,"Region Select")}#edit_mode[data-edit-mode=SELECT_ROW_TREE] span:before{content:var(--psp-label--edit-mode-select-row-tree--content,"Tree Select")}#scroll_lock span:before{content:var(--psp-label--scroll-lock-toggle--content,"Free Scroll")}#scroll_lock.lock-scroll span:before{content:var(--psp-label--scroll-lock-alt-toggle--content,"Align Scroll")}.button:before{content:"";background-color:var(--psp--color);width:21px;height:21px;-webkit-mask-size:cover;mask-size:cover}.button.editable:before,.button.lock-scroll:before{color:inherit}.button{user-select:none;box-sizing:border-box;font-size:var(--label--font-size,.75em);white-space:nowrap;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;width:37px;height:22px;padding:0 5px;display:inline-flex}.button>span{margin:0;padding:0;display:none}.hover-target:focus-within .button,.hover-target:hover .button{background-color:var(--psp--color);color:var(--psp--background-color);opacity:1;cursor:pointer;align-items:center;display:flex;position:relative}.hover-target:focus-within .button:before,.hover-target:hover .button:before{background-color:var(--psp--background-color)}.hover-target:focus-within .button>span,.hover-target:hover .button>span{white-space:pre-wrap;background-color:var(--psp--color);text-align:center;border-radius:0 0 3px 3px;width:35px;height:auto;margin:0;padding:5px;font-size:9px;line-height:1;display:block;position:absolute;top:calc(100% + 3px);left:50%;translate:-50%}',ze=new CSSStyleSheet;ze.replaceSync(cr);var dr=class extends HTMLElement{_initialized=!1;connectedCallback(){if(this._initialized)return;this._initialized=!0,this.setAttribute("slot","statusbar-extra"),this.attachShadow({mode:"open"}),this.shadowRoot.adoptedStyleSheets.push(ze),this.shadowRoot.innerHTML=`
<div id="toolbar">
<span class="hover-target">
<span id="scroll_lock" class="button">
<span></span>
</span>
</span>
<span class="hover-target">
<span id="edit_mode" class="button" data-edit-mode="READ_ONLY">
<span></span>
</span>
</span>
</div>
`;let e=this.parentElement,t=this.previousElementSibling;t._scroll_lock=this.shadowRoot.querySelector("#scroll_lock"),t._scroll_lock.addEventListener("click",()=>Se.call(t)),t._edit_button=this.shadowRoot.querySelector("#edit_mode"),t._edit_button.addEventListener("click",()=>{Le.call(t),t.regular_table.draw(),e.dispatchEvent(new Event("perspective-config-update"))})}};async function hr(){customElements.define("perspective-viewer-datagrid-toolbar",dr),customElements.define("perspective-viewer-datagrid",nr),await customElements.whenDefined("perspective-viewer"),customElements.get("perspective-viewer").registerPlugin("perspective-viewer-datagrid")}hr();export{nr as HTMLPerspectiveViewerDatagridPluginElement,dr as HTMLPerspectiveViewerDatagridToolbarElement,A as PRIVATE_PLUGIN_SYMBOL};
//# sourceMappingURL=perspective-viewer-datagrid-D7N7TZ67.js.map