@perspective-dev/viewer-datagrid 4.0.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/perspective-viewer-datagrid.js +4 -17
- package/dist/cdn/perspective-viewer-datagrid.js.map +4 -4
- package/dist/css/perspective-viewer-datagrid.css +1 -1
- package/dist/esm/color_utils.d.ts +9 -0
- package/dist/esm/custom_elements/datagrid.d.ts +52 -0
- package/dist/esm/custom_elements/toolbar.d.ts +10 -0
- package/dist/esm/data_listener/format_cell.d.ts +8 -0
- package/dist/esm/data_listener/format_tree_header.d.ts +13 -0
- package/dist/esm/data_listener/formatter_cache.d.ts +16 -0
- package/dist/esm/data_listener/index.d.ts +10 -0
- package/dist/esm/event_handlers/click/edit_click.d.ts +3 -0
- package/dist/esm/event_handlers/click.d.ts +7 -0
- package/dist/esm/event_handlers/deselect_all.d.ts +5 -0
- package/dist/esm/event_handlers/dispatch_click.d.ts +3 -0
- package/dist/esm/event_handlers/expand_collapse.d.ts +2 -0
- package/dist/esm/event_handlers/focus.d.ts +5 -0
- package/dist/esm/event_handlers/header_click.d.ts +3 -0
- package/dist/esm/event_handlers/keydown/edit_keydown.d.ts +4 -0
- package/dist/esm/event_handlers/row_select_click.d.ts +4 -0
- package/dist/esm/event_handlers/select_region.d.ts +9 -0
- package/dist/esm/event_handlers/sort.d.ts +7 -0
- package/dist/esm/get_cell_config.d.ts +8 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/model/column_overrides.d.ts +23 -0
- package/dist/esm/model/create.d.ts +3 -0
- package/dist/esm/model/index.d.ts +4 -0
- package/dist/esm/model/toolbar.d.ts +4 -0
- package/dist/esm/perspective-viewer-datagrid.js +3 -3
- package/dist/esm/perspective-viewer-datagrid.js.map +4 -4
- package/dist/esm/plugin/activate.d.ts +6 -0
- package/dist/esm/plugin/column_style_controls.d.ts +28 -0
- package/dist/esm/plugin/draw.d.ts +7 -0
- package/dist/esm/plugin/restore.d.ts +10 -0
- package/dist/esm/plugin/save.d.ts +2 -0
- package/dist/esm/style_handlers/body.d.ts +7 -0
- package/dist/esm/style_handlers/column_header.d.ts +13 -0
- package/dist/esm/style_handlers/consolidated.d.ts +57 -0
- package/dist/esm/style_handlers/editable.d.ts +7 -0
- package/dist/esm/style_handlers/focus.d.ts +16 -0
- package/dist/esm/style_handlers/group_header.d.ts +7 -0
- package/dist/esm/style_handlers/table_cell/boolean.d.ts +7 -0
- package/dist/esm/style_handlers/table_cell/cell_flash.d.ts +3 -0
- package/dist/esm/style_handlers/table_cell/datetime.d.ts +7 -0
- package/dist/esm/style_handlers/table_cell/numeric.d.ts +15 -0
- package/dist/esm/style_handlers/table_cell/row_header.d.ts +4 -0
- package/dist/esm/style_handlers/table_cell/string.d.ts +11 -0
- package/dist/esm/style_handlers/types.d.ts +20 -0
- package/dist/esm/types.d.ts +193 -0
- package/package.json +10 -5
- package/src/less/mitered-headers.less +65 -0
- package/src/less/pro.less +196 -0
- package/src/less/regular_table.less +509 -0
- package/src/less/row-hover.less +88 -0
- package/{index.d.ts → src/less/scrollbar.less} +18 -19
- package/src/less/sub-cell-scroll.less +82 -0
- package/src/less/toolbar.less +201 -0
- package/src/ts/color_utils.ts +70 -0
- package/src/ts/custom_elements/datagrid.ts +250 -0
- package/src/ts/custom_elements/toolbar.ts +75 -0
- package/src/ts/data_listener/format_cell.ts +84 -0
- package/src/ts/data_listener/format_tree_header.ts +82 -0
- package/src/ts/data_listener/formatter_cache.ts +191 -0
- package/src/ts/data_listener/index.ts +242 -0
- package/src/ts/event_handlers/click/edit_click.ts +73 -0
- package/src/ts/event_handlers/click.ts +92 -0
- package/src/ts/event_handlers/deselect_all.ts +28 -0
- package/src/ts/event_handlers/dispatch_click.ts +44 -0
- package/src/ts/event_handlers/expand_collapse.ts +44 -0
- package/src/ts/event_handlers/focus.ts +63 -0
- package/src/ts/event_handlers/header_click.ts +85 -0
- package/src/ts/event_handlers/keydown/edit_keydown.ts +213 -0
- package/src/ts/event_handlers/row_select_click.ts +87 -0
- package/src/ts/event_handlers/select_region.ts +427 -0
- package/src/ts/event_handlers/sort.ts +118 -0
- package/src/ts/get_cell_config.ts +68 -0
- package/src/ts/index.ts +49 -0
- package/src/ts/model/column_overrides.ts +112 -0
- package/src/ts/model/create.ts +247 -0
- package/src/ts/model/index.ts +19 -0
- package/src/ts/model/toolbar.ts +64 -0
- package/src/ts/plugin/activate.ts +235 -0
- package/src/ts/plugin/column_style_controls.ts +76 -0
- package/src/ts/plugin/draw.ts +69 -0
- package/src/ts/plugin/restore.ts +110 -0
- package/src/ts/plugin/save.ts +45 -0
- package/src/ts/style_handlers/body.ts +228 -0
- package/src/ts/style_handlers/column_header.ts +183 -0
- package/src/ts/style_handlers/consolidated.ts +223 -0
- package/src/ts/style_handlers/editable.ts +94 -0
- package/src/ts/style_handlers/focus.ts +106 -0
- package/src/ts/style_handlers/group_header.ts +78 -0
- package/src/ts/style_handlers/table_cell/boolean.ts +39 -0
- package/src/ts/style_handlers/table_cell/cell_flash.ts +75 -0
- package/src/ts/style_handlers/table_cell/datetime.ts +64 -0
- package/src/ts/style_handlers/table_cell/numeric.ts +186 -0
- package/src/ts/style_handlers/table_cell/row_header.ts +53 -0
- package/src/ts/style_handlers/table_cell/string.ts +102 -0
- package/src/ts/style_handlers/types.ts +41 -0
- package/src/ts/types.ts +279 -0
|
@@ -1,19 +1,6 @@
|
|
|
1
|
-
var xe=new WeakMap,Xt=!0,Qr=navigator.userAgent.toLowerCase().indexOf("firefox")>-1,es=Qr?5e6:1e7,Xe=0,Me=0,qt=performance.now();function ts(){let e=performance.now(),t=e-qt,o=Xe,s=Me*1e3/t,r=1e3/o,l=Me;return Xe=0,Me=0,qt=e,{avg:o,real_fps:s,virtual_fps:r,num_frames:l,elapsed:t}}function os(e){Xe=(Xe*Me+e)/(Me+1),Me+=1}var Kt=(e,...t)=>e.map((o,s)=>[o,t[s]]).flat().filter(o=>!!o).join(""),rs=()=>{let e,t=new Promise(o=>{e=o});return t.resolve=e,t},de=new Map;async function ss(e){return await new Promise(requestAnimationFrame),await de.get(e)}async function Vt(e,t){if(de.has(e)&&(await de.get(e),de.has(e))){await de.get(e);return}de.set(e,rs());try{return await t()}finally{let o=de.get(e);de.delete(e),o.resolve()}}var ls=":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%;}div.rt-tree-container{display:flex;align-items:center;height:100%;}slot{position:absolute;overflow:hidden;overflow-anchor:none;}",is=":host ::slotted(table){--regular-table--transform-x:0px;--regular-table--transform-y:0px;--regular-table--clip-x:0px;--regular-table--clip-y:0px;}",ns=class extends HTMLElement{create_shadow_dom(){this.attachShadow({mode:"open"});let e="<slot></slot>";this.shadowRoot.innerHTML=Kt`
|
|
2
|
-
<style>
|
|
3
|
-
|
|
4
|
-
</style>
|
|
5
|
-
<style>
|
|
6
|
-
${is}
|
|
7
|
-
</style>
|
|
8
|
-
<div class="rt-virtual-panel"></div>
|
|
9
|
-
<div class="rt-scroll-table-clip">${e}</div>
|
|
10
|
-
`;let[,t,o,s]=this.shadowRoot.children;this._sub_cell_style=t,this._table_clip=s,this._virtual_panel=o,this._setup_virtual_scroll()}_setup_virtual_scroll(){this._table_clip&&(this._virtual_mode==="both"||this._virtual_mode==="vertical"?this._table_clip.style.top="0px":this._table_clip.style.removeProperty("top"),this._virtual_mode==="both"||this._virtual_mode==="horizontal"?this._table_clip.style.left="0px":this._table_clip.style.removeProperty("left"),this._virtual_mode!=="both"?this._table_clip.style.contain="none":this._table_clip.style.removeProperty("contain"))}_calculate_viewport(e,t){let{start_row:o,end_row:s}=this._calculate_row_range(e),{start_col:r,end_col:l}=this._calculate_column_range(t);return this._nrows=e,{start_col:r,end_col:l,start_row:o,end_row:s}}_calculate_row_range(e){let{height:t}=this._container_size,o=this._column_sizes.row_height||19,s=this._view_cache.config.column_pivots.length,r=Math.max(1,this._virtual_panel.offsetHeight-t),l=Math.max(Math.ceil(this.scrollTop),0)/r,i=t/o-s,n=Math.max(0,(e||0)-i)*l,a=Math.max(0,Math.min(n+i,e));return{start_row:n,end_row:a}}_calc_start_column(){let e=this._view_cache.config.row_pivots.length,t=0,o=0,s=0;for(;o<this.scrollLeft;){let r=this._column_sizes.indices[t+e];s=this.scrollLeft-o,t+=1,o+=r!==void 0?r:60}return t+=s/(this._column_sizes.indices[t+e-1]||60),Math.max(0,t-1)}_calculate_column_range(e){if(this._virtual_mode==="none"||this._virtual_mode==="vertical")return{start_col:0,end_col:1/0};{let t=this._calc_start_column(),o=this.table_model.num_columns()||Math.min(e,Math.ceil(this._container_size.width/60)),s=t+o+1;return{start_col:t,end_col:s}}}_max_scroll_column(e){let t=0;if(this._view_cache.config.row_pivots.length>0)for(let r of this._column_sizes.indices.slice(0,this._view_cache.config.row_pivots.length))t+=r;let o=this._view_cache.config.row_pivots.length,s=e;for(;t<this._container_size.width&&s>=0;)s--,t+=this._column_sizes.indices[s+o]||60;return Math.min(e-1,s+1)}_validate_viewport({start_col:e,end_col:t,start_row:o,end_row:s}){o=Math.floor(o),s=Math.ceil(s),e=Math.floor(e),t=Math.ceil(t);let r=this._start_col!==e,l=this._start_row!==o||this._end_row!==s||this._end_col!==t;return this._start_col=e,this._end_col=t,this._start_row=o,this._end_row=s,{invalid_column:r,invalid_row:l}}_calc_scrollable_column_width(e){let t=this._view_cache.config.row_pivots.length,o=this._max_scroll_column(e),s=t,r=0;for(;s<o+t;)r+=this._column_sizes.indices[s]||60,s++;if(s<this._column_sizes.indices.length){let l=this._column_sizes.indices.slice(0,this._view_cache.config.row_pivots.length).reduce((i,n)=>i+n,0);r+=Math.max(0,this._column_sizes.indices[s]-(this._container_size.width-l)||0)}return r}_update_virtual_panel_width(e,t){if(e)if(this._virtual_mode==="vertical"||this._virtual_mode==="none")this._virtual_panel.style.width=this._column_sizes.indices.reduce((o,s)=>o+s,0)+"px";else{let o=this._calc_scrollable_column_width(t);if(o!==0){let s=this._container_size.width+o+2;this._virtual_panel.style.width=s+"px"}else this._virtual_panel.style.width="1px"}}_update_virtual_panel_height(e){let{row_height:t=19}=this._column_sizes,o=this._view_cache.config.column_pivots.length*t,s;s=Math.min(es,e*t+o),this._virtual_panel.style.height=`${s}px`}async draw(e={}){return typeof e.throttle<"u"&&!e.throttle?await Ft.call(this,e):await Vt(this,()=>Ft.call(this,e))}async _draw_flush(){await ss(this)}update_sub_cell_offset(e){let t=this._column_sizes.row_height*(e.start_row%1)||0,o=this._column_sizes.indices[(this.table_model._row_headers_length||0)+Math.floor(e.start_col)]*(e.start_col%1)||0,s=this._sub_cell_style.sheet?.cssRules[0].style;s&&(s.setProperty("--regular-table--clip-x",`${o}px`),s.setProperty("--regular-table--clip-y",`${t}px`),s.setProperty("--regular-table--transform-x",`-${o}px`),s.setProperty("--regular-table--transform-y",`-${t}px`))}};async function Ft(e){let t=Xt&&performance.now(),{invalid_viewport:o=!0,preserve_width:s=!1}=e,{num_columns:r,num_rows:l,num_row_headers:i,num_column_headers:n,row_height:a}=await this._view_cache.view(0,0,0,0);i!==void 0&&(this._view_cache.row_pivots=Array(i).fill(0)),n!==void 0&&(this._view_cache.column_pivots=Array(n).fill(0)),this._container_size={width:this._virtual_mode==="none"||this._virtual_mode==="vertical"?1/0:this._table_clip.clientWidth,height:this._virtual_mode==="none"||this._virtual_mode==="horizontal"?1/0:this._table_clip.clientHeight},this._update_virtual_panel_height(l),s||this._update_virtual_panel_width(o,r);let c=this._calculate_viewport(l,r),{invalid_row:d,invalid_column:h}=this._validate_viewport(c);if(this._invalid_schema||d||h||o){let p=[],u=!0;for await(let m of this.table_model.draw(this._container_size,this._view_cache,this._selected_id,s,c,r)){m!==void 0&&(p=p.concat(m)),u&&(this.update_sub_cell_offset(c),u=!1),this._is_styling=!0;let E=this._style_callbacks;for(let b of E)await b({detail:this});if(this._is_styling=!1,!this._invalidated&&m!==void 0)break;this._invalidated=!1}this.table_model.autosize_cells(p,a),this.table_model.header.reset_header_cache(),s||this._update_virtual_panel_width(this._invalid_schema||h,r),this._invalid_schema=!1}else this.update_sub_cell_offset(c);Xt&&os(performance.now()-t)}var as=!1,cs=class extends ns{register_listeners(){this.addEventListener("mousedown",this._on_click_or_dblclick.bind(this)),this.addEventListener("scroll",this._on_scroll.bind(this),{passive:!0}),this._register_glitch_scroll_listeners()}async _on_scroll(e){e.stopPropagation(),await this.draw({invalid_viewport:!1}),this.dispatchEvent(new CustomEvent("regular-table-scroll"))}_register_glitch_scroll_listeners(){this.addEventListener("mousewheel",this._on_mousewheel.bind(this),{passive:!0}),as&&(this.addEventListener("touchmove",this._on_touchmove.bind(this)),this.addEventListener("touchstart",this._on_touchstart.bind(this),{passive:!0}))}_on_mousewheel(e){if(!window.safari)return;let{clientWidth:t,clientHeight:o,scrollTop:s,scrollLeft:r}=this;e.preventDefault(),e.returnValue=!1;let l=Math.max(1,this._virtual_panel.offsetHeight-o),i=Math.max(1,this._virtual_panel.offsetWidth-t);this.scrollTop=Math.max(0,Math.min(l,s+e.deltaY)),this.scrollLeft=Math.max(0,Math.min(i,r+e.deltaX)),this._on_scroll(e)}_on_touchmove(e){e.stopPropagation(),e.preventDefault(),e.returnValue=!1;let{clientWidth:t,clientHeight:o}=this,s=Math.max(1,this._virtual_panel.offsetHeight-o),r=Math.max(1,this._virtual_panel.offsetWidth-t);this.scrollTop=Math.min(s,this._memo_scroll_top+(this._memo_touch_startY-e.touches[0].pageY)),this.scrollLeft=Math.min(r,this._memo_scroll_left+(this._memo_touch_startX-e.touches[0].pageX)),this._on_scroll(e)}_on_touchstart(e){this._memo_touch_startY=e.touches[0].pageY,this._memo_touch_startX=e.touches[0].pageX,this._memo_scroll_top=this.scrollTop,this._memo_scroll_left=this.scrollLeft}async _on_dblclick(e){let t=e.target;for(;t.tagName!=="TD"&&t.tagName!=="TH";)if(t=t.parentElement,!this.contains(t))return;let o=e.target.classList.contains("rt-column-resize"),s=xe.get(t);if(o){e.stopImmediatePropagation(),t.style.minWidth="",t.style.maxWidth="",e.shiftKey?(this._column_sizes.override=[],this._column_sizes.auto=[],this._column_sizes.indices=[]):(this._column_sizes.override[s.size_key]=void 0,this._column_sizes.auto[s.size_key]=void 0,this._column_sizes.indices[s.size_key]=void 0);for(let r 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 l of e.shiftKey?r:[r[s._virtual_x]])l&&(l.style.minWidth="",l.style.maxWidth="",l.classList.remove("rt-cell-clip"));await this.draw()}}async _on_click(e){if(e.button!==0)return;let t=e.target;for(;t.tagName!=="TD"&&t.tagName!=="TH";)if(t=t.parentElement,!this.contains(t))return;let o=e.target.classList.contains("rt-column-resize"),s=xe.get(t);o&&(this._on_resize_column(e,t,s),e.stopImmediatePropagation())}async _on_click_or_dblclick(e){let t=performance.now();this._last_clicked_time&&t-this._last_clicked_time<500?(this._last_clicked_time=t,await this._on_dblclick(e)):(this._last_clicked_time=t,await this._on_click(e))}_on_resize_column(e,t,o){let{_virtual_x:s,size_key:r}=o,l=e.pageX,i=s+t.colSpan-1,n=this.table_model.header.get_column_header(i),a=this._column_sizes.indices[r],c=h=>Vt(this,async()=>await this._on_resize_column_move(h,n,l,a,r,i)),d=()=>{document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",d);let h=this._column_sizes.override[r],p=this._column_sizes.indices[r]!==h;this._column_sizes.indices[r]=h,p&&this.draw()};document.addEventListener("mousemove",c),document.addEventListener("mouseup",d)}async _on_resize_column_move(e,t,o,s,r,l){await new Promise(requestAnimationFrame);let i=e.pageX-o,n=Math.max(1,s+i);if(this._column_sizes.override[r]=n,i<0)await this.draw({preserve_width:!0,throttle:!1});else{t.style.minWidth=n+"px",t.style.maxWidth=n+"px";let a=this._column_sizes.auto[r];for(let c of this.table_model.body.cells){let d=c[l];d&&(d.style.maxWidth=d.style.minWidth=n+"px",d.classList.toggle("rt-cell-clip",a>n))}}}},ds=class{constructor(e){this._name=e,this._elements=[],this._index=0}reset(){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}},Jt=class{constructor(e,t,o){this._column_sizes=e,this._container=t,this._span_factory=new ds("span"),this.table=o,this.cells=[],this.rows=[]}num_columns(){return this._get_row(Math.max(0,this.rows.length-1)).row_container.length}num_rows(){return this.cells.length}_set_metadata(e,t){xe.set(e,t)}_get_or_create_metadata(e){if(e===void 0)return{};if(xe.has(e))return xe.get(e);{let t={};return xe.set(e,t),t}}_replace_cell(e,t){let{tr:o,row_container:s}=this._get_row(e),r=s[t];return r&&(o.removeChild(r),s.splice(t,1,void 0)),r}_fetch_cell(e,t){if(!(e<0||t<0))return this.cells[e]?.[t]}_get_row(e){let t=this.rows[e];t||(t=this.rows[e]=document.createElement("tr"),this.table.appendChild(t));let o=this.cells[e];return o||(o=this.cells[e]=[]),{tr:t,row_container:o}}_get_cell(e="TD",t,o){let{tr:s,row_container:r}=this._get_row(t),l=r[o];if(l||(o<r.length?(l=r[o]=document.createElement(e),s.insertBefore(l,r.slice(o+1).find(i=>i))):(l=r[o]=document.createElement(e),s.appendChild(l))),l.tagName!==e){let i=document.createElement(e);s.replaceChild(i,l),this.cells[t].splice(o,1,i),l=i}return l}_clean_columns(e){for(let t=0;t<this.rows.length;t++){let o=this.rows[t],s=this.cells[t];this.cells[t]=s.slice(0,e[t]||e);let r=this.cells[t].filter(l=>l!==void 0).length;for(;o.children[r];)o.removeChild(o.children[r])}}_clean_rows(e){for(;this.table.children[e];)this.table.removeChild(this.table.children[e]);this.rows=this.rows.slice(0,e),this.cells=this.cells.slice(0,e)}},hs=class extends Jt{constructor(...e){super(...e),this._group_header_cache=[],this._offset_cache=[]}_draw_group_th(e,t,o){let s=this._get_cell("TH",t,e[t]||0);if(e[t]+=1,s.removeAttribute("colspan"),s.style.minWidth="0",s.textContent="",o instanceof HTMLElement)s.appendChild(o);else{let l=this._span_factory.get("span");l.textContent=o,s.appendChild(l)}let r=this._span_factory.get("span");return r.className="rt-column-resize",s.appendChild(r),s}_draw_group(e,t,o){let s=this._get_or_create_metadata(o);return s.column_header=e,s.value=t,s.value=t,s}_draw_th(e,t,o,s,r){let l=this._get_or_create_metadata(o);if(l.column_header=e,l.value=t,l.size_key=r.length?r[0]:r,!(r.length>1)){let i=this._column_sizes.override[l.size_key],n=this._column_sizes.auto[l.size_key];i?(o.classList.toggle("rt-cell-clip",n>i),o.style.minWidth=i+"px",o.style.maxWidth=i+"px"):n?(o.classList.remove("rt-cell-clip"),o.style.maxWidth="",o.style.minWidth=n+"px"):(o.style.maxWidth="",o.style.maxWidth="")}return l}get_column_header(e){return this._get_cell("TH",this.num_rows()-1,e)}draw(e,t,o,s,r,l,i,n,a){let c=t?.length;if(c===0)return;let d,h,p,u;n=typeof n>"u"?c-1:n;for(let m=0;m<c;m++){if(p=t[m]?t[m]:"",this._offset_cache[m]=this._offset_cache[m]||0,m<n)a&&this._group_header_cache?.[m]?.[0]?.value===p?(d=this._group_header_cache[m][1],this._group_header_cache[m][2]+=1,o===1&&(this._group_header_cache[m][0].row_header_x=r),d.setAttribute("colspan",this._group_header_cache[m][2])):(d=this._draw_group_th(this._offset_cache,m,p),h=this._draw_group(t,p,d),this._group_header_cache[m]=[h,d,1]);else{d=this._draw_group_th(this._offset_cache,m,p),h=this._draw_th(e||t,p,d,s,r),typeof u>"u"&&(u={th:d,metadata:h});for(let[E]of this._group_header_cache)E.size_key=h.size_key;d.removeAttribute("colspan")}this._get_row(m).tr.classList.toggle("rt-autosize",m===n),d.classList.toggle("rt-group-corner",s===void 0),h&&(h.x=typeof s>"u"?s:Math.floor(s),h.column_header_y=m,h.x0=Math.floor(l),h._virtual_x=i,o===1&&(h.row_header_x=r))}return this._clean_rows(this._offset_cache.length),u=u||{th:d,metadata:h},u}clean(){this._clean_columns(this._offset_cache)}reset_header_cache(){this._offset_cache=[],this._group_header_cache=[]}},fs=class extends Jt{_draw_td(e,t,o,s,{column_name:r},{ridx_offset:l},i){let n=this._get_cell(e,t,s),a=this._get_or_create_metadata(n);a.y=t+Math.floor(l),a.size_key=i,e==="TD"&&(a.column_header=r);let c=this._column_sizes.override[a.size_key];if(c){let d=this._column_sizes.auto[a.size_key];n.classList.toggle("rt-cell-clip",d>c),n.style.minWidth=c+"px",n.style.maxWidth=c+"px"}else n.classList.remove("rt-cell-clip"),n.style.minWidth="",n.style.maxWidth="";return a.value!==o&&(o instanceof HTMLElement?(n.textContent="",n.appendChild(o)):n.textContent=o),a.value=o,{td:n,metadata:a}}draw(e,t,o,s=!1,r,l,i,n){let{cidx:a,column_data:c,row_headers:d,column_data_listener_metadata:h}=t,{row_height:p}=o,u,m=[],E=[],b=0,y=[];for(let S=0;S<(s?o.row_headers_length:1);S++){b=0;for(let T of c){let P=d?.[b],k;if(s){let R=T[S],_=this._fetch_cell(b-(m[S]||1),a+S),v=this._get_or_create_metadata(_),w=this._fetch_cell(b,a+S-(y[b]||1)),x=this._get_or_create_metadata(w);n&&w&&(x.value===R||R===void 0)&&!w.hasAttribute("rowspan")?(y[b]=y[b]?y[b]+1:2,w.setAttribute("colspan",y[b]),this._replace_cell(b,a+S)):n&&_&&v.value===R&&!_.hasAttribute("colspan")?(m[S]=m[S]?m[S]+1:2,_.setAttribute("rowspan",m[S]),this._replace_cell(b,a+S)):(k=this._draw_td("TH",b,R,a+S,t,o,S),k.td.style.display="",k.td.removeAttribute("rowspan"),k.td.removeAttribute("colspan"),k.metadata.row_header=T,k.metadata.row_header_x=S,k.metadata.y0=Math.floor(o.ridx_offset),k.metadata.y1=Math.ceil(o.y1),k.metadata._virtual_x=S,typeof l<"u"&&(k.metadata.x0=Math.floor(l)),m[S]=1,y[b]=1,E[S]=k)}else k=this._draw_td("TD",b,T,a,t,o,i),h&&(k.metadata.user=h[b]),k.metadata.x=typeof r>"u"?r:Math.floor(r),k.metadata.x1=Math.ceil(o.x1),k.metadata.row_header=P||[],k.metadata.y0=Math.floor(o.ridx_offset),k.metadata.y1=Math.ceil(o.y1),k.metadata.dx=Math.floor(r-l),k.metadata.dy=k.metadata.y-Math.floor(k.metadata.y0),k.metadata._virtual_x=a,typeof l<"u"&&(k.metadata.x0=Math.floor(l)),E[0]=k;if(b++,u=k?k.metadata:u,p=p||k?.td.offsetHeight,b*p>e)break}}return this._clean_rows(b),{tds:E,ridx:b,metadata:u,row_height:p}}clean({ridx:e,cidx:t}){this._clean_rows(e),this._clean_columns(t)}},Zt=class{constructor(e,t,o){this.clear(o);let[s]=o.children,[r,l]=s.children;this.table=s,this._column_sizes=t,this.header=new hs(t,e,r),this.body=new fs(t,e,l),this.fragment=document.createDocumentFragment()}num_columns(){return this.header.num_columns()}clear(e){e.innerHTML=Kt`
|
|
11
|
-
<table cellspacing="0">
|
|
12
|
-
<thead></thead>
|
|
13
|
-
<tbody></tbody>
|
|
14
|
-
</table>
|
|
15
|
-
`}autosize_cells(e,t){for(;e.length>0;){let[o,s]=e.pop(),r=o.getBoundingClientRect();if(!r||(this._column_sizes.row_height=t||Math.max(10,Math.min(this._column_sizes.row_height||r.height,r.height)),!s))continue;this._column_sizes.indices[s.size_key]=r.width;let l=this._column_sizes.override[s.size_key]!==void 0;r.width&&!l&&(this._column_sizes.auto[s.size_key]=r.width),o.style.minWidth==="0px"&&(o.style.minWidth=`${r.width}px`)}}async*draw(e,t,o,s,r,l){let{width:i,height:n}=e,{view:a,config:c}=t,{data:d,row_headers:h,column_headers:p,metadata:u,num_row_headers:m,num_column_headers:E,column_header_merge_depth:b,merge_headers:y="both"}=await a(Math.floor(r.start_col),Math.floor(r.start_row),Math.ceil(r.end_col),Math.ceil(r.end_row)),S=y==="both"||y==="row",T=y==="both"||y==="column",{start_row:P=0,start_col:k=0,end_col:R=0,end_row:_=0}=r;h&&(this._row_headers_length=h.reduce((z,W)=>Math.max(z,W.length),0),h=h.map(z=>(z.length=this._row_headers_length,z))),m!==void 0?t.config.row_pivots=Array(m).fill(0):t.config.row_pivots=Array(h?.[0]?.length||0).fill(0),E!==void 0?t.config.column_pivots=Array(E).fill(0):t.config.column_pivots=Array(p?.[0]?.length||0).fill(0);let v=this._column_sizes.indices[(this._row_headers_length||0)+Math.floor(r.start_col)]||0,w={viewport_width:0,selected_id:o,ridx_offset:P,sub_cell_offset:v,x0:k,x1:R,y1:_,row_height:this._column_sizes.row_height,row_headers_length:this._row_headers_length},x,C=0,A=[],N=!0;if(h?.length>0){let z=c.row_pivots.join(","),W={column_name:z,cidx:0,column_data:h,row_headers:h,first_col:N},oe=C+Math.floor(k);x=this.body.draw(n,W,{...w,x0:0},!0,void 0,void 0,oe,S);let H=[];for(let U=0;U<t.config.row_pivots.length;U++){let J=this.header.draw(z,Array(t.config.column_pivots.length).fill(""),1,void 0,U,k,U,b,T);J&&H.push(J)}if(N=!1,w.viewport_width+=H.reduce((U,{th:J},ge)=>U+(this._column_sizes.indices[ge]||J.offsetWidth),0),w.row_height=w.row_height||x.row_height,C=h[0].length,!s)for(let U=0;U<t.config.row_pivots.length;U++){let{td:J,metadata:ge}=x.tds[U]||{},{th:ye,metadata:we}=H[U]||{};(J||ye)&&A.push([ye||J,we||ge])}}try{let z=0,W=l-r.start_col;for(;z<W;){if(!d[z]){let ie=Math.max(r.end_col,0);r.start_col=ie;let ce=0,vt=0;for(;this._column_sizes.indices.length>C+k+ce+1&&vt+w.viewport_width<i;)ce++,vt+=this._column_sizes.indices[C+k+ce];if(vt+w.viewport_width<i){let re=Math.min(l,ie+5);r.end_col=Math.max(1,Math.min(l,re))}else r.end_col=Math.max(1,Math.min(l,ie+ce));let Jr=a(Math.floor(r.start_col),Math.floor(r.start_row),Math.ceil(r.end_col),Math.ceil(r.end_row));yield void 0;let Q=await Jr;if(typeof Q.column_header_merge_depth<"u"&&(b=Q.column_header_merge_depth),typeof Q.merge_headers<"u"&&(y=Q.merge_headers),Q.data.length===0){yield A;return}r.end_col=r.start_col+Q.data.length;for(let re=0;re<Q.data.length;re++)d[z+re]=Q.data[re],Q.metadata&&(u[z+re]=Q.metadata[re]),p&&(p[z+re]=Q.column_headers?.[re])}let oe=p?.[z]||"",H=d[z],U=u?.[z],J={column_name:oe,cidx:C,column_data:H,column_data_listener_metadata:U,row_headers:h,first_col:N},ge=z+k,ye=C+Math.floor(k),we=this.header.draw(void 0,oe,void 0,ge,ye,k,C,b,T);if(x=this.body.draw(n,J,w,!1,ge,k,ye,S),N=!1,!s)for(let{td:ie,metadata:ce}of x.tds)A.push([we?.th||ie,we?.metadata||ce]);let Le=this._column_sizes.indices[C+Math.floor(k)];if(Le?w.viewport_width+=Le:w.viewport_width+=we?.th?.offsetWidth||x.tds.reduce((ie,ce)=>ie+ce.td?.offsetWidth,0),w.row_height=w.row_height||x.row_height,C++,z++,w.viewport_width-w.sub_cell_offset>i){this.body.clean({ridx:x?.ridx||0,cidx:C}),this.header.clean(),yield A,w.viewport_width=0;for(let[ie]of A)w.viewport_width+=ie.offsetWidth;if(w.viewport_width-w.sub_cell_offset>i)return}}this.body.clean({ridx:x?.ridx||0,cidx:C}),this.header.clean(),yield A}finally{this.body.clean({ridx:x?.ridx||0,cidx:C}),this.header.clean(),this.body._span_factory.reset(),this.header._span_factory.reset()}}},ps=["both","horizontal","vertical","none"],_s=class extends cs{constructor(){super(),this._column_sizes={auto:[],override:[],indices:[]},this._style_callbacks=[],this._initialized=!1}connectedCallback(){this._initialized||(this.create_shadow_dom(),this.register_listeners(),this.setAttribute("tabindex","0"),this._initialized=!0,this.table_model=new Zt(this._table_clip,this._column_sizes,this))}_reset_viewport(){this._start_row=void 0,this._end_row=void 0,this._start_col=void 0,this._end_col=void 0}_reset_scroll(){this._column_sizes.indices=[],this.scrollTop=0,this.scrollLeft=0,this._reset_viewport()}_resetAutoSize(){this._column_sizes.auto=[],this._column_sizes.override=[],this._column_sizes.indices=[];for(let e=0;e<this.table_model.header.num_columns();e++){let t=this.table_model.header.get_column_header(e);t.style.minWidth="",t.style.maxWidth=""}}clear(){this.table_model=new Zt(this._table_clip,this._column_sizes,this)}addStyleListener(e){this._style_callbacks=this._style_callbacks.concat(e);let t=!0;return()=>{if(!t)return;t=!1;let o=this._style_callbacks=this._style_callbacks.slice(),s=o.indexOf(e);o.splice(s,1)}}removeStyleListener(e){let t=this._style_callbacks.length;this._style_callbacks=this._style_callbacks.filter(o=>o!==e),console.assert(this._style_callbacks.length===t-1,"No listener found")}invalidate(){if(!this._is_styling)throw new Error("Cannot call `invalidate()` outside of a `StyleListener`");this._invalidated=!0}getMeta(e){if(!(typeof e>"u")){if(e instanceof HTMLElement)return xe.get(e);if(e.row_header_x>=0){if(e.row_header_x<this._view_cache.config.row_pivots.length){let t=this.table_model.body._fetch_cell(e.y,e.row_header_x);return this.getMeta(t)}}else if(e.column_header_y>=0){if(e.column_header_y<this._view_cache.config.column_pivots.length){let t=this.table_model.body._fetch_cell(e.column_header_y,e.y);return this.getMeta(t)}}else return this.getMeta(this.table_model.body._fetch_cell(e.dy,e.dx+this.table_model._row_headers_length))}}getDrawFPS(){return ts()}async scrollToCell(e,t){if(!this._view_cache){console.warn("data listener not configured");return}let o=this._column_sizes.row_height||19,s=this._view_cache.config.column_pivots.length*o,r=(this._table_clip.offsetHeight-s)%o,l=(this._virtual_panel.offsetHeight-r)/this._nrows;this.scrollTop=Math.ceil(l*t);let i=0;for(;e>0;)e--,i+=this._column_sizes.indices[e+this._view_cache.config.row_pivots.length]||60;this.scrollLeft=Math.ceil(i),await new Promise(requestAnimationFrame),await this._draw_flush()}setDataListener(e,{virtual_mode:t="both",preserve_state:o=!1}={}){console.assert(ps.indexOf(t)>-1,`Unknown virtual_mode ${t}; valid options are "both" (default), "horizontal", "vertical" or "none"`);let s=this._virtual_mode!==t;if(o)console.assert(!s,"preserve_state called with modified virtual_mode"),this._view_cache.view=e;else{let r={row_pivots:[],column_pivots:[]};this._virtual_mode=t,this._invalid_schema=!0,this._view_cache={view:e,config:r},s&&this._setup_virtual_scroll()}}__noop_jsdoc_hints(){}};document.createElement("regular-table").constructor===HTMLElement&&window.customElements.define("regular-table",_s);var Y=Symbol("Plugin Symbol");function ms(e){return e.x>=0?this._column_types[e.x]:this._row_header_types[e.row_header_x-1]}function kt(e,t,o){let s=Array.from(e.children[0].children[0].children),r=s.length,l=t.hasAttribute("settings");if(r<=1?s[0]?.removeAttribute("id"):s.forEach((i,n)=>{let a=l?1:0,c=n===r-(a+1)?"psp-column-titles":n===r-a?"psp-column-edit-buttons":null;c?i.setAttribute("id",c):i.removeAttribute("id")}),t.classList.toggle("psp-menu-open",!!o),l&&r>=2){let i=Array.from(s[r-2].children),n=Array.from(s[r-1].children);if(i&&n){s.slice(0,r-2).forEach(a=>{Array.from(a.children).forEach(c=>{c.classList.toggle("psp-menu-open",!1)})});for(let a=0;a<i.length;a++){let c=i[a],d=n[a],h=c.textContent===o;if(c.classList.toggle("psp-menu-open",h),d.classList.toggle("psp-menu-open",h),this._config.columns.length>1)for(let p of e.querySelectorAll("td")){let u=e.getMeta(p),m=u.column_header[u.column_header.length-2]===o;p.classList.toggle("psp-menu-open",m)}}}}}function eo(e,t){let o=Array.from(e.children[0].children[0].children);if(o.length>0){kt.call(this,e,t,this._column_settings_selected_column);let[s]=o.splice(this._config.split_by.length,1);s&&Qt.call(this,e,s,!1);let[r]=o.splice(this._config.split_by.length,1);r&&Qt.call(this,e,r,!0)}}function Qt(e,t,o){let s=e._view_cache.config.row_pivots.length-1;for(let r of t.children){let l=e.getMeta(r),i=l.column_header?.[this._config.split_by.length],n=this._config.sort.find(E=>E[0]===i),a=l.row_header_x===s,c=typeof l.x>"u";a=a||(l.x+1)%this._config.columns.length===0,r.classList.toggle("psp-header-border",a),r.classList.toggle("psp-header-group",!1),r.classList.toggle("psp-header-leaf",!0),r.classList.toggle("psp-is-top",!1),r.classList.toggle("psp-header-corner",c),r.classList.toggle("psp-header-sort-asc",!o&&!!n&&n[1]==="asc"),r.classList.toggle("psp-header-sort-desc",!o&&!!n&&n[1]==="desc"),r.classList.toggle("psp-header-sort-col-asc",!o&&!!n&&n[1]==="col asc"),r.classList.toggle("psp-header-sort-col-desc",!o&&!!n&&n[1]==="col desc"),r.classList.toggle("psp-header-sort-abs-asc",!o&&!!n&&n[1]==="asc abs"),r.classList.toggle("psp-header-sort-abs-desc",!o&&!!n&&n[1]==="desc abs"),r.classList.toggle("psp-header-sort-abs-col-asc",!o&&!!n&&n[1]==="col asc abs"),r.classList.toggle("psp-header-sort-abs-col-desc",!o&&!!n&&n[1]==="col desc abs");let d=ms.call(this,l),h=d==="integer"||d==="float",p=d==="string",u=d==="date",m=d==="datetime";r.classList.toggle("psp-align-right",h),r.classList.toggle("psp-align-left",!h),r.classList.toggle("psp-menu-enabled",(p||h||u||m)&&!c&&l.column_header_y==this._config.split_by.length+1),r.classList.toggle("psp-sort-enabled",(p||h||u||m)&&!c&&l.column_header_y===this._config.split_by.length),r.classList.toggle("psp-is-width-override",e._column_sizes?.override[l.size_key]!==void 0)}}function to(e){let t=e._view_cache.config.row_pivots.length-1,o=Array.from(e.children[0].children[0].children),s=[],r=new Set,l=e.children[0];for(let i=0;i<o.length;i++){let n=l.rows[i],a=new Set;for(let c=0;c<n.cells.length;c++){let d=n.cells[c];d.style.backgroundColor="";let h=e.getMeta(d),p=t>0&&h.row_header_x===t||h.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",p),d.classList.toggle("psp-header-group-corner",typeof h.x>"u"),d.classList.toggle("psp-color-mode-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 u=n.cells[c],m=c,E,b;for(;s[i]&&s[i][m];++m);for(a.add(m),E=m;E<m+u.colSpan;++E)for(b=i;b<i+u.rowSpan;++b)s[b]||(s[b]=[]),s[b][E]=!0;u.classList.toggle("psp-is-top",i===0||!r.has(E))}r=a}}function oo(e,t,[,,,,,o,s],[,,,,,r,l],i){let n=this._ids?.[e.dy]?.join("|"),a=(i?e.column_header.slice(0,-1):e.column_header).join("|");if(this.last_reverse_columns?.has(a)&&this.last_reverse_ids?.has(n)){let c=this.last_reverse_ids?.get(n),d=this.last_reverse_columns.get(a);this._is_old_viewport?this.last_meta?.[d]?.[c]>e.user?(t.style.setProperty("--pulse--background-color-start",r),t.style.setProperty("--pulse--background-color-end",l),t.style.animationName==="pulse_neg"?t.style.animation="pulse_neg2 0.5s linear":t.style.animation="pulse_neg 0.5s linear"):this.last_meta?.[d]?.[c]<e.user?(t.style.setProperty("--pulse--background-color-start",o),t.style.setProperty("--pulse--background-color-end",s),t.style.animationName==="pulse_pos"?t.style.animation="pulse_pos2 0.5s linear":t.style.animation="pulse_pos 0.5s linear"):c!==e.dy&&(t.style.animation=""):t.style.animation=""}else t.style.animation=""}var{min:us,max:bs}=Math,X=(e,t=0,o=1)=>us(bs(t,e),o);var ve=e=>{e._clipped=!1,e._unclipped=e.slice(0);for(let t=0;t<=3;t++)t<3?((e[t]<0||e[t]>255)&&(e._clipped=!0),e[t]=X(e[t],0,255)):t===3&&(e[t]=X(e[t],0,1));return e};var ro={};for(let e of["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"])ro[`[object ${e}]`]=e.toLowerCase();function L(e){return ro[Object.prototype.toString.call(e)]||"object"}var g=(e,t=null)=>e.length>=3?Array.prototype.slice.call(e):L(e[0])=="object"&&t?t.split("").filter(o=>e[0][o]!==void 0).map(o=>e[0][o]):e[0].slice(0);var B=e=>{if(e.length<2)return null;let t=e.length-1;return L(e[t])=="string"?e[t].toLowerCase():null};var{PI:qe,min:Fe,max:Ze}=Math,j=e=>Math.round(e*100)/100,Ie=e=>Math.round(e*100)/100,q=qe*2,Ke=qe/3,so=qe/180,lo=180/qe;function Ve(e){return[...e.slice(0,3).reverse(),...e.slice(3)]}var M={format:{},autodetect:[]};var Et=class{constructor(...t){let o=this;if(L(t[0])==="object"&&t[0].constructor&&t[0].constructor===this.constructor)return t[0];let s=B(t),r=!1;if(!s){r=!0,M.sorted||(M.autodetect=M.autodetect.sort((l,i)=>i.p-l.p),M.sorted=!0);for(let l of M.autodetect)if(s=l.test(...t),s)break}if(M.format[s]){let l=M.format[s].apply(null,r?t:t.slice(0,-1));o._rgb=ve(l)}else throw new Error("unknown format: "+t);o._rgb.length===3&&o._rgb.push(1)}toString(){return L(this.hex)=="function"?this.hex():`[${this._rgb.join(",")}]`}},f=Et;var io="3.1.2";var no=(...e)=>new f(...e);no.version=io;var O=no;var gs={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},he=gs;var ys=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,ws=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,xs=e=>{if(e.match(ys)){(e.length===4||e.length===7)&&(e=e.substr(1)),e.length===3&&(e=e.split(""),e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]);let t=parseInt(e,16),o=t>>16,s=t>>8&255,r=t&255;return[o,s,r,1]}if(e.match(ws)){(e.length===5||e.length===9)&&(e=e.substr(1)),e.length===4&&(e=e.split(""),e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]);let t=parseInt(e,16),o=t>>24&255,s=t>>16&255,r=t>>8&255,l=Math.round((t&255)/255*100)/100;return[o,s,r,l]}throw new Error(`unknown hex color: ${e}`)},Je=xs;var{round:Qe}=Math,vs=(...e)=>{let[t,o,s,r]=g(e,"rgba"),l=B(e)||"auto";r===void 0&&(r=1),l==="auto"&&(l=r<1?"rgba":"rgb"),t=Qe(t),o=Qe(o),s=Qe(s);let n="000000"+(t<<16|o<<8|s).toString(16);n=n.substr(n.length-6);let a="0"+Qe(r*255).toString(16);switch(a=a.substr(a.length-2),l.toLowerCase()){case"rgba":return`#${n}${a}`;case"argb":return`#${a}${n}`;default:return`#${n}`}},et=vs;f.prototype.name=function(){let e=et(this._rgb,"rgb");for(let t of Object.keys(he))if(he[t]===e)return t.toLowerCase();return e};M.format.named=e=>{if(e=e.toLowerCase(),he[e])return Je(he[e]);throw new Error("unknown color name: "+e)};M.autodetect.push({p:5,test:(e,...t)=>{if(!t.length&&L(e)==="string"&&he[e.toLowerCase()])return"named"}});f.prototype.alpha=function(e,t=!1){return e!==void 0&&L(e)==="number"?t?(this._rgb[3]=e,this):new f([this._rgb[0],this._rgb[1],this._rgb[2],e],"rgb"):this._rgb[3]};f.prototype.clipped=function(){return this._rgb._clipped||!1};var $e={Kn:18,labWhitePoint:"d65",Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452,kE:.008856451679035631,kKE:8,kK:903.2962962962963,RefWhiteRGB:{X:.95047,Y:1,Z:1.08883},MtxRGB2XYZ:{m00:.4124564390896922,m01:.21267285140562253,m02:.0193338955823293,m10:.357576077643909,m11:.715152155287818,m12:.11919202588130297,m20:.18043748326639894,m21:.07217499330655958,m22:.9503040785363679},MtxXYZ2RGB:{m00:3.2404541621141045,m01:-.9692660305051868,m02:.055643430959114726,m10:-1.5371385127977166,m11:1.8760108454466942,m12:-.2040259135167538,m20:-.498531409556016,m21:.041556017530349834,m22:1.0572251882231791},As:.9414285350000001,Bs:1.040417467,Cs:1.089532651,MtxAdaptMa:{m00:.8951,m01:-.7502,m02:.0389,m10:.2664,m11:1.7135,m12:-.0685,m20:-.1614,m21:.0367,m22:1.0296},MtxAdaptMaI:{m00:.9869929054667123,m01:.43230526972339456,m02:-.008528664575177328,m10:-.14705425642099013,m11:.5183602715367776,m12:.04004282165408487,m20:.15996265166373125,m21:.0492912282128556,m22:.9684866957875502}},se=$e,ks=new Map([["a",[1.0985,.35585]],["b",[1.0985,.35585]],["c",[.98074,1.18232]],["d50",[.96422,.82521]],["d55",[.95682,.92149]],["d65",[.95047,1.08883]],["e",[1,1,1]],["f2",[.99186,.67393]],["f7",[.95041,1.08747]],["f11",[1.00962,.6435]],["icc",[.96422,.82521]]]);function F(e){let t=ks.get(String(e).toLowerCase());if(!t)throw new Error("unknown Lab illuminant "+e);$e.labWhitePoint=e,$e.Xn=t[0],$e.Zn=t[1]}function fe(){return $e.labWhitePoint}var Es=(...e)=>{e=g(e,"lab");let[t,o,s]=e,[r,l,i]=Ls(t,o,s),[n,a,c]=Mt(r,l,i);return[n,a,c,e.length>3?e[3]:1]},Ls=(e,t,o)=>{let{kE:s,kK:r,kKE:l,Xn:i,Yn:n,Zn:a}=se,c=(e+16)/116,d=.002*t+c,h=c-.005*o,p=d*d*d,u=h*h*h,m=p>s?p:(116*d-16)/r,E=e>l?Math.pow((e+16)/116,3):e/r,b=u>s?u:(116*h-16)/r,y=m*i,S=E*n,T=b*a;return[y,S,T]},Lt=e=>{let t=Math.sign(e);return e=Math.abs(e),(e<=.0031308?e*12.92:1.055*Math.pow(e,1/2.4)-.055)*t},Mt=(e,t,o)=>{let{MtxAdaptMa:s,MtxAdaptMaI:r,MtxXYZ2RGB:l,RefWhiteRGB:i,Xn:n,Yn:a,Zn:c}=se,d=n*s.m00+a*s.m10+c*s.m20,h=n*s.m01+a*s.m11+c*s.m21,p=n*s.m02+a*s.m12+c*s.m22,u=i.X*s.m00+i.Y*s.m10+i.Z*s.m20,m=i.X*s.m01+i.Y*s.m11+i.Z*s.m21,E=i.X*s.m02+i.Y*s.m12+i.Z*s.m22,b=(e*s.m00+t*s.m10+o*s.m20)*(u/d),y=(e*s.m01+t*s.m11+o*s.m21)*(m/h),S=(e*s.m02+t*s.m12+o*s.m22)*(E/p),T=b*r.m00+y*r.m10+S*r.m20,P=b*r.m01+y*r.m11+S*r.m21,k=b*r.m02+y*r.m12+S*r.m22,R=Lt(T*l.m00+P*l.m10+k*l.m20),_=Lt(T*l.m01+P*l.m11+k*l.m21),v=Lt(T*l.m02+P*l.m12+k*l.m22);return[R*255,_*255,v*255]},Ce=Es;var Ms=(...e)=>{let[t,o,s,...r]=g(e,"rgb"),[l,i,n]=St(t,o,s),[a,c,d]=Cs(l,i,n);return[a,c,d,...r.length>0&&r[0]<1?[r[0]]:[]]};function Cs(e,t,o){let{Xn:s,Yn:r,Zn:l,kE:i,kK:n}=se,a=e/s,c=t/r,d=o/l,h=a>i?Math.pow(a,1/3):(n*a+16)/116,p=c>i?Math.pow(c,1/3):(n*c+16)/116,u=d>i?Math.pow(d,1/3):(n*d+16)/116;return[116*p-16,500*(h-p),200*(p-u)]}function Ct(e){let t=Math.sign(e);return e=Math.abs(e),(e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4))*t}var St=(e,t,o)=>{e=Ct(e/255),t=Ct(t/255),o=Ct(o/255);let{MtxRGB2XYZ:s,MtxAdaptMa:r,MtxAdaptMaI:l,Xn:i,Yn:n,Zn:a,As:c,Bs:d,Cs:h}=se,p=e*s.m00+t*s.m10+o*s.m20,u=e*s.m01+t*s.m11+o*s.m21,m=e*s.m02+t*s.m12+o*s.m22,E=i*r.m00+n*r.m10+a*r.m20,b=i*r.m01+n*r.m11+a*r.m21,y=i*r.m02+n*r.m12+a*r.m22,S=p*r.m00+u*r.m10+m*r.m20,T=p*r.m01+u*r.m11+m*r.m21,P=p*r.m02+u*r.m12+m*r.m22;return S*=E/c,T*=b/d,P*=y/h,p=S*l.m00+T*l.m10+P*l.m20,u=S*l.m01+T*l.m11+P*l.m21,m=S*l.m02+T*l.m12+P*l.m22,[p,u,m]},Se=Ms;f.prototype.lab=function(){return Se(this._rgb)};var Ss=(...e)=>new f(...e,"lab");Object.assign(O,{lab:Ss,getLabWhitePoint:fe,setLabWhitePoint:F});M.format.lab=Ce;M.autodetect.push({p:2,test:(...e)=>{if(e=g(e,"lab"),L(e)==="array"&&e.length===3)return"lab"}});f.prototype.darken=function(e=1){let t=this,o=t.lab();return o[0]-=se.Kn*e,new f(o,"lab").alpha(t.alpha(),!0)};f.prototype.brighten=function(e=1){return this.darken(-e)};f.prototype.darker=f.prototype.darken;f.prototype.brighter=f.prototype.brighten;f.prototype.get=function(e){let[t,o]=e.split("."),s=this[t]();if(o){let r=t.indexOf(o)-(t.substr(0,2)==="ok"?2:0);if(r>-1)return s[r];throw new Error(`unknown channel ${o} in mode ${t}`)}else return s};var{pow:Os}=Math,zs=1e-7,As=20;f.prototype.luminance=function(e,t="rgb"){if(e!==void 0&&L(e)==="number"){if(e===0)return new f([0,0,0,this._rgb[3]],"rgb");if(e===1)return new f([255,255,255,this._rgb[3]],"rgb");let o=this.luminance(),s=As,r=(i,n)=>{let a=i.interpolate(n,.5,t),c=a.luminance();return Math.abs(e-c)<zs||!s--?a:c>e?r(i,a):r(a,n)},l=(o>e?r(new f([0,0,0]),this):r(this,new f([255,255,255]))).rgb();return new f([...l,this._rgb[3]])}return Rs(...this._rgb.slice(0,3))};var Rs=(e,t,o)=>(e=Ot(e),t=Ot(t),o=Ot(o),.2126*e+.7152*t+.0722*o),Ot=e=>(e/=255,e<=.03928?e/12.92:Os((e+.055)/1.055,2.4));var D={};var le=(e,t,o=.5,...s)=>{let r=s[0]||"lrgb";if(!D[r]&&!s.length&&(r=Object.keys(D)[0]),!D[r])throw new Error(`interpolation mode ${r} is not defined`);return L(e)!=="object"&&(e=new f(e)),L(t)!=="object"&&(t=new f(t)),D[r](e,t,o).alpha(e.alpha()+o*(t.alpha()-e.alpha()))};f.prototype.mix=f.prototype.interpolate=function(e,t=.5,...o){return le(this,e,t,...o)};f.prototype.premultiply=function(e=!1){let t=this._rgb,o=t[3];return e?(this._rgb=[t[0]*o,t[1]*o,t[2]*o,o],this):new f([t[0]*o,t[1]*o,t[2]*o,o],"rgb")};var{sin:Ns,cos:Ts}=Math,Ps=(...e)=>{let[t,o,s]=g(e,"lch");return isNaN(s)&&(s=0),s=s*so,[t,Ts(s)*o,Ns(s)*o]},tt=Ps;var Ds=(...e)=>{e=g(e,"lch");let[t,o,s]=e,[r,l,i]=tt(t,o,s),[n,a,c]=Ce(r,l,i);return[n,a,c,e.length>3?e[3]:1]},Oe=Ds;var Ws=(...e)=>{let t=Ve(g(e,"hcl"));return Oe(...t)},ao=Ws;var{sqrt:Is,atan2:$s,round:js}=Math,Us=(...e)=>{let[t,o,s]=g(e,"lab"),r=Is(o*o+s*s),l=($s(s,o)*lo+360)%360;return js(r*1e4)===0&&(l=Number.NaN),[t,r,l]},ot=Us;var Gs=(...e)=>{let[t,o,s,...r]=g(e,"rgb"),[l,i,n]=Se(t,o,s),[a,c,d]=ot(l,i,n);return[a,c,d,...r.length>0&&r[0]<1?[r[0]]:[]]},je=Gs;f.prototype.lch=function(){return je(this._rgb)};f.prototype.hcl=function(){return Ve(je(this._rgb))};var Ys=(...e)=>new f(...e,"lch"),Hs=(...e)=>new f(...e,"hcl");Object.assign(O,{lch:Ys,hcl:Hs});M.format.lch=Oe;M.format.hcl=ao;["lch","hcl"].forEach(e=>M.autodetect.push({p:2,test:(...t)=>{if(t=g(t,e),L(t)==="array"&&t.length===3)return e}}));f.prototype.saturate=function(e=1){let t=this,o=t.lch();return o[1]+=se.Kn*e,o[1]<0&&(o[1]=0),new f(o,"lch").alpha(t.alpha(),!0)};f.prototype.desaturate=function(e=1){return this.saturate(-e)};f.prototype.set=function(e,t,o=!1){let[s,r]=e.split("."),l=this[s]();if(r){let i=s.indexOf(r)-(s.substr(0,2)==="ok"?2:0);if(i>-1){if(L(t)=="string")switch(t.charAt(0)){case"+":l[i]+=+t;break;case"-":l[i]+=+t;break;case"*":l[i]*=+t.substr(1);break;case"/":l[i]/=+t.substr(1);break;default:l[i]=+t}else if(L(t)==="number")l[i]=t;else throw new Error("unsupported value for Color.set");let n=new f(l,s);return o?(this._rgb=n._rgb,this):n}throw new Error(`unknown channel ${r} in mode ${s}`)}else return l};f.prototype.tint=function(e=.5,...t){return le(this,"white",e,...t)};f.prototype.shade=function(e=.5,...t){return le(this,"black",e,...t)};var Bs=(e,t,o)=>{let s=e._rgb,r=t._rgb;return new f(s[0]+o*(r[0]-s[0]),s[1]+o*(r[1]-s[1]),s[2]+o*(r[2]-s[2]),"rgb")};D.rgb=Bs;var{sqrt:zt,pow:ze}=Math,Xs=(e,t,o)=>{let[s,r,l]=e._rgb,[i,n,a]=t._rgb;return new f(zt(ze(s,2)*(1-o)+ze(i,2)*o),zt(ze(r,2)*(1-o)+ze(n,2)*o),zt(ze(l,2)*(1-o)+ze(a,2)*o),"rgb")};D.lrgb=Xs;var qs=(e,t,o)=>{let s=e.lab(),r=t.lab();return new f(s[0]+o*(r[0]-s[0]),s[1]+o*(r[1]-s[1]),s[2]+o*(r[2]-s[2]),"lab")};D.lab=qs;var Z=(e,t,o,s)=>{let r,l;s==="hsl"?(r=e.hsl(),l=t.hsl()):s==="hsv"?(r=e.hsv(),l=t.hsv()):s==="hcg"?(r=e.hcg(),l=t.hcg()):s==="hsi"?(r=e.hsi(),l=t.hsi()):s==="lch"||s==="hcl"?(s="hcl",r=e.hcl(),l=t.hcl()):s==="oklch"&&(r=e.oklch().reverse(),l=t.oklch().reverse());let i,n,a,c,d,h;(s.substr(0,1)==="h"||s==="oklch")&&([i,a,d]=r,[n,c,h]=l);let p,u,m,E;return!isNaN(i)&&!isNaN(n)?(n>i&&n-i>180?E=n-(i+360):n<i&&i-n>180?E=n+360-i:E=n-i,u=i+o*E):isNaN(i)?isNaN(n)?u=Number.NaN:(u=n,(d==1||d==0)&&s!="hsv"&&(p=c)):(u=i,(h==1||h==0)&&s!="hsv"&&(p=a)),p===void 0&&(p=a+o*(c-a)),m=d+o*(h-d),s==="oklch"?new f([m,p,u],s):new f([u,p,m],s)};var co=(e,t,o)=>Z(e,t,o,"lch");D.lch=co;D.hcl=co;var Fs=e=>{if(L(e)=="number"&&e>=0&&e<=16777215){let t=e>>16,o=e>>8&255,s=e&255;return[t,o,s,1]}throw new Error("unknown num color: "+e)},ho=Fs;var Zs=(...e)=>{let[t,o,s]=g(e,"rgb");return(t<<16)+(o<<8)+s},fo=Zs;f.prototype.num=function(){return fo(this._rgb)};var Ks=(...e)=>new f(...e,"num");Object.assign(O,{num:Ks});M.format.num=ho;M.autodetect.push({p:5,test:(...e)=>{if(e.length===1&&L(e[0])==="number"&&e[0]>=0&&e[0]<=16777215)return"num"}});var Vs=(e,t,o)=>{let s=e.num(),r=t.num();return new f(s+o*(r-s),"num")};D.num=Vs;var{floor:Js}=Math,Qs=(...e)=>{e=g(e,"hcg");let[t,o,s]=e,r,l,i;s=s*255;let n=o*255;if(o===0)r=l=i=s;else{t===360&&(t=0),t>360&&(t-=360),t<0&&(t+=360),t/=60;let a=Js(t),c=t-a,d=s*(1-o),h=d+n*(1-c),p=d+n*c,u=d+n;switch(a){case 0:[r,l,i]=[u,p,d];break;case 1:[r,l,i]=[h,u,d];break;case 2:[r,l,i]=[d,u,p];break;case 3:[r,l,i]=[d,h,u];break;case 4:[r,l,i]=[p,d,u];break;case 5:[r,l,i]=[u,d,h];break}}return[r,l,i,e.length>3?e[3]:1]},po=Qs;var el=(...e)=>{let[t,o,s]=g(e,"rgb"),r=Fe(t,o,s),l=Ze(t,o,s),i=l-r,n=i*100/255,a=r/(255-i)*100,c;return i===0?c=Number.NaN:(t===l&&(c=(o-s)/i),o===l&&(c=2+(s-t)/i),s===l&&(c=4+(t-o)/i),c*=60,c<0&&(c+=360)),[c,n,a]},_o=el;f.prototype.hcg=function(){return _o(this._rgb)};var tl=(...e)=>new f(...e,"hcg");O.hcg=tl;M.format.hcg=po;M.autodetect.push({p:1,test:(...e)=>{if(e=g(e,"hcg"),L(e)==="array"&&e.length===3)return"hcg"}});var ol=(e,t,o)=>Z(e,t,o,"hcg");D.hcg=ol;var{cos:Ae}=Math,rl=(...e)=>{e=g(e,"hsi");let[t,o,s]=e,r,l,i;return isNaN(t)&&(t=0),isNaN(o)&&(o=0),t>360&&(t-=360),t<0&&(t+=360),t/=360,t<1/3?(i=(1-o)/3,r=(1+o*Ae(q*t)/Ae(Ke-q*t))/3,l=1-(i+r)):t<2/3?(t-=1/3,r=(1-o)/3,l=(1+o*Ae(q*t)/Ae(Ke-q*t))/3,i=1-(r+l)):(t-=2/3,l=(1-o)/3,i=(1+o*Ae(q*t)/Ae(Ke-q*t))/3,r=1-(l+i)),r=X(s*r*3),l=X(s*l*3),i=X(s*i*3),[r*255,l*255,i*255,e.length>3?e[3]:1]},mo=rl;var{min:sl,sqrt:ll,acos:il}=Math,nl=(...e)=>{let[t,o,s]=g(e,"rgb");t/=255,o/=255,s/=255;let r,l=sl(t,o,s),i=(t+o+s)/3,n=i>0?1-l/i:0;return n===0?r=NaN:(r=(t-o+(t-s))/2,r/=ll((t-o)*(t-o)+(t-s)*(o-s)),r=il(r),s>o&&(r=q-r),r/=q),[r*360,n,i]},uo=nl;f.prototype.hsi=function(){return uo(this._rgb)};var al=(...e)=>new f(...e,"hsi");O.hsi=al;M.format.hsi=mo;M.autodetect.push({p:2,test:(...e)=>{if(e=g(e,"hsi"),L(e)==="array"&&e.length===3)return"hsi"}});var cl=(e,t,o)=>Z(e,t,o,"hsi");D.hsi=cl;var dl=(...e)=>{e=g(e,"hsl");let[t,o,s]=e,r,l,i;if(o===0)r=l=i=s*255;else{let n=[0,0,0],a=[0,0,0],c=s<.5?s*(1+o):s+o-s*o,d=2*s-c,h=t/360;n[0]=h+1/3,n[1]=h,n[2]=h-1/3;for(let p=0;p<3;p++)n[p]<0&&(n[p]+=1),n[p]>1&&(n[p]-=1),6*n[p]<1?a[p]=d+(c-d)*6*n[p]:2*n[p]<1?a[p]=c:3*n[p]<2?a[p]=d+(c-d)*(2/3-n[p])*6:a[p]=d;[r,l,i]=[a[0]*255,a[1]*255,a[2]*255]}return e.length>3?[r,l,i,e[3]]:[r,l,i,1]},Ue=dl;var hl=(...e)=>{e=g(e,"rgba");let[t,o,s]=e;t/=255,o/=255,s/=255;let r=Fe(t,o,s),l=Ze(t,o,s),i=(l+r)/2,n,a;return l===r?(n=0,a=Number.NaN):n=i<.5?(l-r)/(l+r):(l-r)/(2-l-r),t==l?a=(o-s)/(l-r):o==l?a=2+(s-t)/(l-r):s==l&&(a=4+(t-o)/(l-r)),a*=60,a<0&&(a+=360),e.length>3&&e[3]!==void 0?[a,n,i,e[3]]:[a,n,i]},rt=hl;f.prototype.hsl=function(){return rt(this._rgb)};var fl=(...e)=>new f(...e,"hsl");O.hsl=fl;M.format.hsl=Ue;M.autodetect.push({p:2,test:(...e)=>{if(e=g(e,"hsl"),L(e)==="array"&&e.length===3)return"hsl"}});var pl=(e,t,o)=>Z(e,t,o,"hsl");D.hsl=pl;var{floor:_l}=Math,ml=(...e)=>{e=g(e,"hsv");let[t,o,s]=e,r,l,i;if(s*=255,o===0)r=l=i=s;else{t===360&&(t=0),t>360&&(t-=360),t<0&&(t+=360),t/=60;let n=_l(t),a=t-n,c=s*(1-o),d=s*(1-o*a),h=s*(1-o*(1-a));switch(n){case 0:[r,l,i]=[s,h,c];break;case 1:[r,l,i]=[d,s,c];break;case 2:[r,l,i]=[c,s,h];break;case 3:[r,l,i]=[c,d,s];break;case 4:[r,l,i]=[h,c,s];break;case 5:[r,l,i]=[s,c,d];break}}return[r,l,i,e.length>3?e[3]:1]},bo=ml;var{min:ul,max:bl}=Math,gl=(...e)=>{e=g(e,"rgb");let[t,o,s]=e,r=ul(t,o,s),l=bl(t,o,s),i=l-r,n,a,c;return c=l/255,l===0?(n=Number.NaN,a=0):(a=i/l,t===l&&(n=(o-s)/i),o===l&&(n=2+(s-t)/i),s===l&&(n=4+(t-o)/i),n*=60,n<0&&(n+=360)),[n,a,c]},go=gl;f.prototype.hsv=function(){return go(this._rgb)};var yl=(...e)=>new f(...e,"hsv");O.hsv=yl;M.format.hsv=bo;M.autodetect.push({p:2,test:(...e)=>{if(e=g(e,"hsv"),L(e)==="array"&&e.length===3)return"hsv"}});var wl=(e,t,o)=>Z(e,t,o,"hsv");D.hsv=wl;function ke(e,t){let o=e.length;Array.isArray(e[0])||(e=[e]),Array.isArray(t[0])||(t=t.map(i=>[i]));let s=t[0].length,r=t[0].map((i,n)=>t.map(a=>a[n])),l=e.map(i=>r.map(n=>Array.isArray(i)?i.reduce((a,c,d)=>a+c*(n[d]||0),0):n.reduce((a,c)=>a+c*i,0)));return o===1&&(l=l[0]),s===1?l.map(i=>i[0]):l}var xl=(...e)=>{e=g(e,"lab");let[t,o,s,...r]=e,[l,i,n]=vl([t,o,s]),[a,c,d]=Mt(l,i,n);return[a,c,d,...r.length>0&&r[0]<1?[r[0]]:[]]};function vl(e){var t=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],o=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],s=ke(o,e);return ke(t,s.map(r=>r**3))}var Re=xl;var kl=(...e)=>{let[t,o,s,...r]=g(e,"rgb"),l=St(t,o,s);return[...El(l),...r.length>0&&r[0]<1?[r[0]]:[]]};function El(e){let t=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],o=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],s=ke(t,e);return ke(o,s.map(r=>Math.cbrt(r)))}var Ne=kl;f.prototype.oklab=function(){return Ne(this._rgb)};var Ll=(...e)=>new f(...e,"oklab");Object.assign(O,{oklab:Ll});M.format.oklab=Re;M.autodetect.push({p:2,test:(...e)=>{if(e=g(e,"oklab"),L(e)==="array"&&e.length===3)return"oklab"}});var Ml=(e,t,o)=>{let s=e.oklab(),r=t.oklab();return new f(s[0]+o*(r[0]-s[0]),s[1]+o*(r[1]-s[1]),s[2]+o*(r[2]-s[2]),"oklab")};D.oklab=Ml;var Cl=(e,t,o)=>Z(e,t,o,"oklch");D.oklch=Cl;var{pow:At,sqrt:Rt,PI:Nt,cos:yo,sin:wo,atan2:Sl}=Math,xo=(e,t="lrgb",o=null)=>{let s=e.length;o||(o=Array.from(new Array(s)).map(()=>1));let r=s/o.reduce(function(h,p){return h+p});if(o.forEach((h,p)=>{o[p]*=r}),e=e.map(h=>new f(h)),t==="lrgb")return Ol(e,o);let l=e.shift(),i=l.get(t),n=[],a=0,c=0;for(let h=0;h<i.length;h++)if(i[h]=(i[h]||0)*o[0],n.push(isNaN(i[h])?0:o[0]),t.charAt(h)==="h"&&!isNaN(i[h])){let p=i[h]/180*Nt;a+=yo(p)*o[0],c+=wo(p)*o[0]}let d=l.alpha()*o[0];e.forEach((h,p)=>{let u=h.get(t);d+=h.alpha()*o[p+1];for(let m=0;m<i.length;m++)if(!isNaN(u[m]))if(n[m]+=o[p+1],t.charAt(m)==="h"){let E=u[m]/180*Nt;a+=yo(E)*o[p+1],c+=wo(E)*o[p+1]}else i[m]+=u[m]*o[p+1]});for(let h=0;h<i.length;h++)if(t.charAt(h)==="h"){let p=Sl(c/n[h],a/n[h])/Nt*180;for(;p<0;)p+=360;for(;p>=360;)p-=360;i[h]=p}else i[h]=i[h]/n[h];return d/=s,new f(i,t).alpha(d>.99999?1:d,!0)},Ol=(e,t)=>{let o=e.length,s=[0,0,0,0];for(let r=0;r<e.length;r++){let l=e[r],i=t[r]/o,n=l._rgb;s[0]+=At(n[0],2)*i,s[1]+=At(n[1],2)*i,s[2]+=At(n[2],2)*i,s[3]+=n[3]*i}return s[0]=Rt(s[0]),s[1]=Rt(s[1]),s[2]=Rt(s[2]),s[3]>.9999999&&(s[3]=1),new f(ve(s))};var{pow:zl}=Math;function Ee(e){let t="rgb",o=O("#ccc"),s=0,r=[0,1],l=[],i=[0,0],n=!1,a=[],c=!1,d=0,h=1,p=!1,u={},m=!0,E=1,b=function(_){if(_=_||["#fff","#000"],_&&L(_)==="string"&&O.brewer&&O.brewer[_.toLowerCase()]&&(_=O.brewer[_.toLowerCase()]),L(_)==="array"){_.length===1&&(_=[_[0],_[0]]),_=_.slice(0);for(let v=0;v<_.length;v++)_[v]=O(_[v]);l.length=0;for(let v=0;v<_.length;v++)l.push(v/(_.length-1))}return k(),a=_},y=function(_){if(n!=null){let v=n.length-1,w=0;for(;w<v&&_>=n[w];)w++;return w-1}return 0},S=_=>_,T=_=>_,P=function(_,v){let w,x;if(v==null&&(v=!1),isNaN(_)||_===null)return o;v?x=_:n&&n.length>2?x=y(_)/(n.length-2):h!==d?x=(_-d)/(h-d):x=1,x=T(x),v||(x=S(x)),E!==1&&(x=zl(x,E)),x=i[0]+x*(1-i[0]-i[1]),x=X(x,0,1);let C=Math.floor(x*1e4);if(m&&u[C])w=u[C];else{if(L(a)==="array")for(let A=0;A<l.length;A++){let N=l[A];if(x<=N){w=a[A];break}if(x>=N&&A===l.length-1){w=a[A];break}if(x>N&&x<l[A+1]){x=(x-N)/(l[A+1]-N),w=O.interpolate(a[A],a[A+1],x,t);break}}else L(a)==="function"&&(w=a(x));m&&(u[C]=w)}return w};var k=()=>u={};b(e);let R=function(_){let v=O(P(_));return c&&v[c]?v[c]():v};return R.classes=function(_){if(_!=null){if(L(_)==="array")n=_,r=[_[0],_[_.length-1]];else{let v=O.analyze(r);_===0?n=[v.min,v.max]:n=O.limits(v,"e",_)}return R}return n},R.domain=function(_){if(!arguments.length)return r;d=_[0],h=_[_.length-1],l=[];let v=a.length;if(_.length===v&&d!==h)for(let w of Array.from(_))l.push((w-d)/(h-d));else{for(let w=0;w<v;w++)l.push(w/(v-1));if(_.length>2){let w=_.map((C,A)=>A/(_.length-1)),x=_.map(C=>(C-d)/(h-d));x.every((C,A)=>w[A]===C)||(T=C=>{if(C<=0||C>=1)return C;let A=0;for(;C>=x[A+1];)A++;let N=(C-x[A])/(x[A+1]-x[A]);return w[A]+N*(w[A+1]-w[A])})}}return r=[d,h],R},R.mode=function(_){return arguments.length?(t=_,k(),R):t},R.range=function(_,v){return b(_,v),R},R.out=function(_){return c=_,R},R.spread=function(_){return arguments.length?(s=_,R):s},R.correctLightness=function(_){return _==null&&(_=!0),p=_,k(),p?S=function(v){let w=P(0,!0).lab()[0],x=P(1,!0).lab()[0],C=w>x,A=P(v,!0).lab()[0],N=w+(x-w)*v,z=A-N,W=0,oe=1,H=20;for(;Math.abs(z)>.01&&H-- >0;)(function(){return C&&(z*=-1),z<0?(W=v,v+=(oe-v)*.5):(oe=v,v+=(W-v)*.5),A=P(v,!0).lab()[0],z=A-N})();return v}:S=v=>v,R},R.padding=function(_){return _!=null?(L(_)==="number"&&(_=[_,_]),i=_,R):i},R.colors=function(_,v){arguments.length<2&&(v="hex");let w=[];if(arguments.length===0)w=a.slice(0);else if(_===1)w=[R(.5)];else if(_>1){let x=r[0],C=r[1]-x;w=Al(0,_,!1).map(A=>R(x+A/(_-1)*C))}else{e=[];let x=[];if(n&&n.length>2)for(let C=1,A=n.length,N=1<=A;N?C<A:C>A;N?C++:C--)x.push((n[C-1]+n[C])*.5);else x=r;w=x.map(C=>R(C))}return O[v]&&(w=w.map(x=>x[v]())),w},R.cache=function(_){return _!=null?(m=_,R):m},R.gamma=function(_){return _!=null?(E=_,R):E},R.nodata=function(_){return _!=null?(o=O(_),R):o},R}function Al(e,t,o){let s=[],r=e<t,l=o?r?t+1:t-1:t;for(let i=e;r?i<l:i>l;r?i++:i--)s.push(i);return s}var Rl=function(e){let t=[1,1];for(let o=1;o<e;o++){let s=[1];for(let r=1;r<=t.length;r++)s[r]=(t[r]||0)+t[r-1];t=s}return t},Nl=function(e){let t,o,s,r;if(e=e.map(l=>new f(l)),e.length===2)[o,s]=e.map(l=>l.lab()),t=function(l){let i=[0,1,2].map(n=>o[n]+l*(s[n]-o[n]));return new f(i,"lab")};else if(e.length===3)[o,s,r]=e.map(l=>l.lab()),t=function(l){let i=[0,1,2].map(n=>(1-l)*(1-l)*o[n]+2*(1-l)*l*s[n]+l*l*r[n]);return new f(i,"lab")};else if(e.length===4){let l;[o,s,r,l]=e.map(i=>i.lab()),t=function(i){let n=[0,1,2].map(a=>(1-i)*(1-i)*(1-i)*o[a]+3*(1-i)*(1-i)*i*s[a]+3*(1-i)*i*i*r[a]+i*i*i*l[a]);return new f(n,"lab")}}else if(e.length>=5){let l,i,n;l=e.map(a=>a.lab()),n=e.length-1,i=Rl(n),t=function(a){let c=1-a,d=[0,1,2].map(h=>l.reduce((p,u,m)=>p+i[m]*c**(n-m)*a**m*u[h],0));return new f(d,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return t},vo=e=>{let t=Nl(e);return t.scale=()=>Ee(t),t};var{round:ko}=Math;f.prototype.rgb=function(e=!0){return e===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(ko)};f.prototype.rgba=function(e=!0){return this._rgb.slice(0,4).map((t,o)=>o<3?e===!1?t:ko(t):t)};var Tl=(...e)=>new f(...e,"rgb");Object.assign(O,{rgb:Tl});M.format.rgb=(...e)=>{let t=g(e,"rgba");return t[3]===void 0&&(t[3]=1),t};M.autodetect.push({p:3,test:(...e)=>{if(e=g(e,"rgba"),L(e)==="array"&&(e.length===3||e.length===4&&L(e[3])=="number"&&e[3]>=0&&e[3]<=1))return"rgb"}});var ee=(e,t,o)=>{if(!ee[o])throw new Error("unknown blend mode "+o);return ee[o](e,t)},pe=e=>(t,o)=>{let s=O(o).rgb(),r=O(t).rgb();return O.rgb(e(s,r))},_e=e=>(t,o)=>{let s=[];return s[0]=e(t[0],o[0]),s[1]=e(t[1],o[1]),s[2]=e(t[2],o[2]),s},Pl=e=>e,Dl=(e,t)=>e*t/255,Wl=(e,t)=>e>t?t:e,Il=(e,t)=>e>t?e:t,$l=(e,t)=>255*(1-(1-e/255)*(1-t/255)),jl=(e,t)=>t<128?2*e*t/255:255*(1-2*(1-e/255)*(1-t/255)),Ul=(e,t)=>255*(1-(1-t/255)/(e/255)),Gl=(e,t)=>e===255?255:(e=255*(t/255)/(1-e/255),e>255?255:e);ee.normal=pe(_e(Pl));ee.multiply=pe(_e(Dl));ee.screen=pe(_e($l));ee.overlay=pe(_e(jl));ee.darken=pe(_e(Wl));ee.lighten=pe(_e(Il));ee.dodge=pe(_e(Gl));ee.burn=pe(_e(Ul));var Eo=ee;var{pow:Yl,sin:Hl,cos:Bl}=Math;function Lo(e=300,t=-1.5,o=1,s=1,r=[0,1]){let l=0,i;L(r)==="array"?i=r[1]-r[0]:(i=0,r=[r,r]);let n=function(a){let c=q*((e+120)/360+t*a),d=Yl(r[0]+i*a,s),p=(l!==0?o[0]+a*l:o)*d*(1-d)/2,u=Bl(c),m=Hl(c),E=d+p*(-.14861*u+1.78277*m),b=d+p*(-.29227*u-.90649*m),y=d+p*(1.97294*u);return O(ve([E*255,b*255,y*255,1]))};return n.start=function(a){return a==null?e:(e=a,n)},n.rotations=function(a){return a==null?t:(t=a,n)},n.gamma=function(a){return a==null?s:(s=a,n)},n.hue=function(a){return a==null?o:(o=a,L(o)==="array"?(l=o[1]-o[0],l===0&&(o=o[1])):l=0,n)},n.lightness=function(a){return a==null?r:(L(a)==="array"?(r=a,i=a[1]-a[0]):(r=[a,a],i=0),n)},n.scale=()=>O.scale(n),n.hue(o),n}var Xl="0123456789abcdef",{floor:ql,random:Fl}=Math,Mo=()=>{let e="#";for(let t=0;t<6;t++)e+=Xl.charAt(ql(Fl()*16));return new f(e,"hex")};var{log:Co,pow:Zl,floor:Kl,abs:Vl}=Math;function Tt(e,t=null){let o={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return L(e)==="object"&&(e=Object.values(e)),e.forEach(s=>{t&&L(s)==="object"&&(s=s[t]),s!=null&&!isNaN(s)&&(o.values.push(s),o.sum+=s,s<o.min&&(o.min=s),s>o.max&&(o.max=s),o.count+=1)}),o.domain=[o.min,o.max],o.limits=(s,r)=>Pt(o,s,r),o}function Pt(e,t="equal",o=7){L(e)=="array"&&(e=Tt(e));let{min:s,max:r}=e,l=e.values.sort((n,a)=>n-a);if(o===1)return[s,r];let i=[];if(t.substr(0,1)==="c"&&(i.push(s),i.push(r)),t.substr(0,1)==="e"){i.push(s);for(let n=1;n<o;n++)i.push(s+n/o*(r-s));i.push(r)}else if(t.substr(0,1)==="l"){if(s<=0)throw new Error("Logarithmic scales are only possible for values > 0");let n=Math.LOG10E*Co(s),a=Math.LOG10E*Co(r);i.push(s);for(let c=1;c<o;c++)i.push(Zl(10,n+c/o*(a-n)));i.push(r)}else if(t.substr(0,1)==="q"){i.push(s);for(let n=1;n<o;n++){let a=(l.length-1)*n/o,c=Kl(a);if(c===a)i.push(l[c]);else{let d=a-c;i.push(l[c]*(1-d)+l[c+1]*d)}}i.push(r)}else if(t.substr(0,1)==="k"){let n,a=l.length,c=new Array(a),d=new Array(o),h=!0,p=0,u=null;u=[],u.push(s);for(let b=1;b<o;b++)u.push(s+b/o*(r-s));for(u.push(r);h;){for(let y=0;y<o;y++)d[y]=0;for(let y=0;y<a;y++){let S=l[y],T=Number.MAX_VALUE,P;for(let k=0;k<o;k++){let R=Vl(u[k]-S);R<T&&(T=R,P=k),d[P]++,c[y]=P}}let b=new Array(o);for(let y=0;y<o;y++)b[y]=null;for(let y=0;y<a;y++)n=c[y],b[n]===null?b[n]=l[y]:b[n]+=l[y];for(let y=0;y<o;y++)b[y]*=1/d[y];h=!1;for(let y=0;y<o;y++)if(b[y]!==u[y]){h=!0;break}u=b,p++,p>200&&(h=!1)}let m={};for(let b=0;b<o;b++)m[b]=[];for(let b=0;b<a;b++)n=c[b],m[n].push(l[b]);let E=[];for(let b=0;b<o;b++)E.push(m[b][0]),E.push(m[b][m[b].length-1]);E=E.sort((b,y)=>b-y),i.push(E[0]);for(let b=1;b<E.length;b+=2){let y=E[b];!isNaN(y)&&i.indexOf(y)===-1&&i.push(y)}}return i}var So=(e,t)=>{e=new f(e),t=new f(t);let o=e.luminance(),s=t.luminance();return o>s?(o+.05)/(s+.05):(s+.05)/(o+.05)};var Oo=.027,Jl=5e-4,Ql=.1,zo=1.14,st=.022,Ao=1.414,No=(e,t)=>{e=new f(e),t=new f(t),e.alpha()<1&&(e=le(t,e,e.alpha(),"rgb"));let o=Ro(...e.rgb()),s=Ro(...t.rgb()),r=o>=st?o:o+Math.pow(st-o,Ao),l=s>=st?s:s+Math.pow(st-s,Ao),i=Math.pow(l,.56)-Math.pow(r,.57),n=Math.pow(l,.65)-Math.pow(r,.62),a=Math.abs(l-r)<Jl?0:r<l?i*zo:n*zo;return(Math.abs(a)<Ql?0:a>0?a-Oo:a+Oo)*100};function Ro(e,t,o){return .2126729*Math.pow(e/255,2.4)+.7151522*Math.pow(t/255,2.4)+.072175*Math.pow(o/255,2.4)}var{sqrt:ne,pow:I,min:ei,max:ti,atan2:To,abs:Po,cos:lt,sin:Do,exp:oi,PI:Wo}=Math;function Io(e,t,o=1,s=1,r=1){var l=function(Le){return 360*Le/(2*Wo)},i=function(Le){return 2*Wo*Le/360};e=new f(e),t=new f(t);let[n,a,c]=Array.from(e.lab()),[d,h,p]=Array.from(t.lab()),u=(n+d)/2,m=ne(I(a,2)+I(c,2)),E=ne(I(h,2)+I(p,2)),b=(m+E)/2,y=.5*(1-ne(I(b,7)/(I(b,7)+I(25,7)))),S=a*(1+y),T=h*(1+y),P=ne(I(S,2)+I(c,2)),k=ne(I(T,2)+I(p,2)),R=(P+k)/2,_=l(To(c,S)),v=l(To(p,T)),w=_>=0?_:_+360,x=v>=0?v:v+360,C=Po(w-x)>180?(w+x+360)/2:(w+x)/2,A=1-.17*lt(i(C-30))+.24*lt(i(2*C))+.32*lt(i(3*C+6))-.2*lt(i(4*C-63)),N=x-w;N=Po(N)<=180?N:x<=w?N+360:N-360,N=2*ne(P*k)*Do(i(N)/2);let z=d-n,W=k-P,oe=1+.015*I(u-50,2)/ne(20+I(u-50,2)),H=1+.045*R,U=1+.015*R*A,J=30*oi(-I((C-275)/25,2)),ye=-(2*ne(I(R,7)/(I(R,7)+I(25,7))))*Do(2*i(J)),we=ne(I(z/(o*oe),2)+I(W/(s*H),2)+I(N/(r*U),2)+ye*(W/(s*H))*(N/(r*U)));return ti(0,ei(100,we))}function $o(e,t,o="lab"){e=new f(e),t=new f(t);let s=e.get(o),r=t.get(o),l=0;for(let i in s){let n=(s[i]||0)-(r[i]||0);l+=n*n}return Math.sqrt(l)}var jo=(...e)=>{try{return new f(...e),!0}catch{return!1}};var Uo={cool(){return Ee([O.hsl(180,1,.9),O.hsl(250,.7,.4)])},hot(){return Ee(["#000","#f00","#ff0","#fff"],[0,.25,.75,1]).mode("rgb")}};var Dt={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},Yo=Object.keys(Dt),Go=new Map(Yo.map(e=>[e.toLowerCase(),e])),ri=typeof Proxy=="function"?new Proxy(Dt,{get(e,t){let o=t.toLowerCase();if(Go.has(o))return e[Go.get(o)]},getOwnPropertyNames(){return Object.getOwnPropertyNames(Yo)}}):Dt,Ho=ri;var si=(...e)=>{e=g(e,"cmyk");let[t,o,s,r]=e,l=e.length>4?e[4]:1;return r===1?[0,0,0,l]:[t>=1?0:255*(1-t)*(1-r),o>=1?0:255*(1-o)*(1-r),s>=1?0:255*(1-s)*(1-r),l]},Bo=si;var{max:Xo}=Math,li=(...e)=>{let[t,o,s]=g(e,"rgb");t=t/255,o=o/255,s=s/255;let r=1-Xo(t,Xo(o,s)),l=r<1?1/(1-r):0,i=(1-t-r)*l,n=(1-o-r)*l,a=(1-s-r)*l;return[i,n,a,r]},qo=li;f.prototype.cmyk=function(){return qo(this._rgb)};var ii=(...e)=>new f(...e,"cmyk");Object.assign(O,{cmyk:ii});M.format.cmyk=Bo;M.autodetect.push({p:2,test:(...e)=>{if(e=g(e,"cmyk"),L(e)==="array"&&e.length===4)return"cmyk"}});var ni=(...e)=>{let t=g(e,"hsla"),o=B(e)||"lsa";return t[0]=j(t[0]||0)+"deg",t[1]=j(t[1]*100)+"%",t[2]=j(t[2]*100)+"%",o==="hsla"||t.length>3&&t[3]<1?(t[3]="/ "+(t.length>3?t[3]:1),o="hsla"):t.length=3,`${o.substr(0,3)}(${t.join(" ")})`},Fo=ni;var ai=(...e)=>{let t=g(e,"lab"),o=B(e)||"lab";return t[0]=j(t[0])+"%",t[1]=j(t[1]),t[2]=j(t[2]),o==="laba"||t.length>3&&t[3]<1?t[3]="/ "+(t.length>3?t[3]:1):t.length=3,`lab(${t.join(" ")})`},Zo=ai;var ci=(...e)=>{let t=g(e,"lch"),o=B(e)||"lab";return t[0]=j(t[0])+"%",t[1]=j(t[1]),t[2]=isNaN(t[2])?"none":j(t[2])+"deg",o==="lcha"||t.length>3&&t[3]<1?t[3]="/ "+(t.length>3?t[3]:1):t.length=3,`lch(${t.join(" ")})`},Ko=ci;var di=(...e)=>{let t=g(e,"lab");return t[0]=j(t[0]*100)+"%",t[1]=Ie(t[1]),t[2]=Ie(t[2]),t.length>3&&t[3]<1?t[3]="/ "+(t.length>3?t[3]:1):t.length=3,`oklab(${t.join(" ")})`},Vo=di;var hi=(...e)=>{let[t,o,s,...r]=g(e,"rgb"),[l,i,n]=Ne(t,o,s),[a,c,d]=ot(l,i,n);return[a,c,d,...r.length>0&&r[0]<1?[r[0]]:[]]},it=hi;var fi=(...e)=>{let t=g(e,"lch");return t[0]=j(t[0]*100)+"%",t[1]=Ie(t[1]),t[2]=isNaN(t[2])?"none":j(t[2])+"deg",t.length>3&&t[3]<1?t[3]="/ "+(t.length>3?t[3]:1):t.length=3,`oklch(${t.join(" ")})`},Jo=fi;var{round:Wt}=Math,pi=(...e)=>{let t=g(e,"rgba"),o=B(e)||"rgb";if(o.substr(0,3)==="hsl")return Fo(rt(t),o);if(o.substr(0,3)==="lab"){let s=fe();F("d50");let r=Zo(Se(t),o);return F(s),r}if(o.substr(0,3)==="lch"){let s=fe();F("d50");let r=Ko(je(t),o);return F(s),r}return o.substr(0,5)==="oklab"?Vo(Ne(t)):o.substr(0,5)==="oklch"?Jo(it(t)):(t[0]=Wt(t[0]),t[1]=Wt(t[1]),t[2]=Wt(t[2]),(o==="rgba"||t.length>3&&t[3]<1)&&(t[3]="/ "+(t.length>3?t[3]:1),o="rgba"),`${o.substr(0,3)}(${t.slice(0,o==="rgb"?3:4).join(" ")})`)},Qo=pi;var _i=(...e)=>{e=g(e,"lch");let[t,o,s,...r]=e,[l,i,n]=tt(t,o,s),[a,c,d]=Re(l,i,n);return[a,c,d,...r.length>0&&r[0]<1?[r[0]]:[]]},nt=_i;var ae=/((?:-?\d+)|(?:-?\d+(?:\.\d+)?)%|none)/.source,te=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%?)|none)/.source,at=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%)|none)/.source,K=/\s*/.source,Pe=/\s+/.source,It=/\s*,\s*/.source,ct=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)(?:deg)?)|none)/.source,De=/\s*(?:\/\s*((?:[01]|[01]?\.\d+)|\d+(?:\.\d+)?%))?/.source,er=new RegExp("^rgba?\\("+K+[ae,ae,ae].join(Pe)+De+"\\)$"),tr=new RegExp("^rgb\\("+K+[ae,ae,ae].join(It)+K+"\\)$"),or=new RegExp("^rgba\\("+K+[ae,ae,ae,te].join(It)+K+"\\)$"),rr=new RegExp("^hsla?\\("+K+[ct,at,at].join(Pe)+De+"\\)$"),sr=new RegExp("^hsl?\\("+K+[ct,at,at].join(It)+K+"\\)$"),lr=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,ir=new RegExp("^lab\\("+K+[te,te,te].join(Pe)+De+"\\)$"),nr=new RegExp("^lch\\("+K+[te,te,ct].join(Pe)+De+"\\)$"),ar=new RegExp("^oklab\\("+K+[te,te,te].join(Pe)+De+"\\)$"),cr=new RegExp("^oklch\\("+K+[te,te,ct].join(Pe)+De+"\\)$"),{round:dr}=Math,Te=e=>e.map((t,o)=>o<=2?X(dr(t),0,255):t),$=(e,t=0,o=100,s=!1)=>(typeof e=="string"&&e.endsWith("%")&&(e=parseFloat(e.substring(0,e.length-1))/100,s?e=t+(e+1)*.5*(o-t):e=t+e*(o-t)),+e),G=(e,t)=>e==="none"?t:e,hr=e=>{if(e=e.toLowerCase().trim(),e==="transparent")return[0,0,0,0];let t;if(M.format.named)try{return M.format.named(e)}catch{}if((t=e.match(er))||(t=e.match(tr))){let o=t.slice(1,4);for(let r=0;r<3;r++)o[r]=+$(G(o[r],0),0,255);o=Te(o);let s=t[4]!==void 0?+$(t[4],0,1):1;return o[3]=s,o}if(t=e.match(or)){let o=t.slice(1,5);for(let s=0;s<4;s++)o[s]=+$(o[s],0,255);return o}if((t=e.match(rr))||(t=e.match(sr))){let o=t.slice(1,4);o[0]=+G(o[0].replace("deg",""),0),o[1]=+$(G(o[1],0),0,100)*.01,o[2]=+$(G(o[2],0),0,100)*.01;let s=Te(Ue(o)),r=t[4]!==void 0?+$(t[4],0,1):1;return s[3]=r,s}if(t=e.match(lr)){let o=t.slice(1,4);o[1]*=.01,o[2]*=.01;let s=Ue(o);for(let r=0;r<3;r++)s[r]=dr(s[r]);return s[3]=+t[4],s}if(t=e.match(ir)){let o=t.slice(1,4);o[0]=$(G(o[0],0),0,100),o[1]=$(G(o[1],0),-125,125,!0),o[2]=$(G(o[2],0),-125,125,!0);let s=fe();F("d50");let r=Te(Ce(o));F(s);let l=t[4]!==void 0?+$(t[4],0,1):1;return r[3]=l,r}if(t=e.match(nr)){let o=t.slice(1,4);o[0]=$(o[0],0,100),o[1]=$(G(o[1],0),0,150,!1),o[2]=+G(o[2].replace("deg",""),0);let s=fe();F("d50");let r=Te(Oe(o));F(s);let l=t[4]!==void 0?+$(t[4],0,1):1;return r[3]=l,r}if(t=e.match(ar)){let o=t.slice(1,4);o[0]=$(G(o[0],0),0,1),o[1]=$(G(o[1],0),-.4,.4,!0),o[2]=$(G(o[2],0),-.4,.4,!0);let s=Te(Re(o)),r=t[4]!==void 0?+$(t[4],0,1):1;return s[3]=r,s}if(t=e.match(cr)){let o=t.slice(1,4);o[0]=$(G(o[0],0),0,1),o[1]=$(G(o[1],0),0,.4,!1),o[2]=+G(o[2].replace("deg",""),0);let s=Te(nt(o)),r=t[4]!==void 0?+$(t[4],0,1):1;return s[3]=r,s}};hr.test=e=>er.test(e)||rr.test(e)||ir.test(e)||nr.test(e)||ar.test(e)||cr.test(e)||tr.test(e)||or.test(e)||sr.test(e)||lr.test(e)||e==="transparent";var $t=hr;f.prototype.css=function(e){return Qo(this._rgb,e)};var mi=(...e)=>new f(...e,"css");O.css=mi;M.format.css=$t;M.autodetect.push({p:5,test:(e,...t)=>{if(!t.length&&L(e)==="string"&&$t.test(e))return"css"}});M.format.gl=(...e)=>{let t=g(e,"rgba");return t[0]*=255,t[1]*=255,t[2]*=255,t};var ui=(...e)=>new f(...e,"gl");O.gl=ui;f.prototype.gl=function(){let e=this._rgb;return[e[0]/255,e[1]/255,e[2]/255,e[3]]};f.prototype.hex=function(e){return et(this._rgb,e)};var bi=(...e)=>new f(...e,"hex");O.hex=bi;M.format.hex=Je;M.autodetect.push({p:4,test:(e,...t)=>{if(!t.length&&L(e)==="string"&&[3,4,5,6,7,8,9].indexOf(e.length)>=0)return"hex"}});var{log:dt}=Math,gi=e=>{let t=e/100,o,s,r;return t<66?(o=255,s=t<6?0:-155.25485562709179-.44596950469579133*(s=t-2)+104.49216199393888*dt(s),r=t<20?0:-254.76935184120902+.8274096064007395*(r=t-10)+115.67994401066147*dt(r)):(o=351.97690566805693+.114206453784165*(o=t-55)-40.25366309332127*dt(o),s=325.4494125711974+.07943456536662342*(s=t-50)-28.0852963507957*dt(s),r=255),[o,s,r,1]},ht=gi;var{round:yi}=Math,wi=(...e)=>{let t=g(e,"rgb"),o=t[0],s=t[2],r=1e3,l=4e4,i=.4,n;for(;l-r>i;){n=(l+r)*.5;let a=ht(n);a[2]/a[0]>=s/o?l=n:r=n}return yi(n)},fr=wi;f.prototype.temp=f.prototype.kelvin=f.prototype.temperature=function(){return fr(this._rgb)};var jt=(...e)=>new f(...e,"temp");Object.assign(O,{temp:jt,kelvin:jt,temperature:jt});M.format.temp=M.format.kelvin=M.format.temperature=ht;f.prototype.oklch=function(){return it(this._rgb)};var xi=(...e)=>new f(...e,"oklch");Object.assign(O,{oklch:xi});M.format.oklch=nt;M.autodetect.push({p:2,test:(...e)=>{if(e=g(e,"oklch"),L(e)==="array"&&e.length===3)return"oklch"}});Object.assign(O,{analyze:Tt,average:xo,bezier:vo,blend:Eo,brewer:Ho,Color:f,colors:he,contrast:So,contrastAPCA:No,cubehelix:Lo,deltaE:Io,distance:$o,input:M,interpolate:le,limits:Pt,mix:le,random:Mo,scale:Ee,scales:Uo,valid:jo});var me=O;function Ut(e,t){return me.mix(e,`rgb(${t[0]},${t[1]},${t[2]})`,.5).hex()}function ue([e,t,o,s],r=[255,255,255]){function l(i,n){return((1-s)*(r[i]/255)+s*(n/255))*255}return[l(0,e),l(1,t),l(2,o)]}function be([e,t,o]){return Math.sqrt(e*e*.299+t*t*.587+o*o*.114)>130?"#161616":"#ffffff"}function vi(e){let[t,o,s]=e.rgb(),[r,l,i]=e.set("hsl.h",(e.get("hsl.h")-15)%360).rgb(),[n,a,c]=e.set("hsl.h",(e.get("hsl.h")+15)%360).rgb();return`linear-gradient(to right top,rgb(${r},${l},${i}),rgb(${t},${o},${s}) 50%,rgb(${n},${a},${c}))`}function V(e){let t=me(e),o=vi(t),s=t.rgb();return[e,...s,o,`rgba(${s[0]},${s[1]},${s[2]},1)`,`rgba(${s[0]},${s[1]},${s[2]},0)`]}function pr(e,t,o,s){let r=o.user>0,l=o.user<0,i;e?.pos_bg_color!==void 0?i=e.pos_bg_color:i=this._pos_bg_color;let n;e?.neg_bg_color!==void 0?n=e.neg_bg_color:n=this._neg_bg_color;let a=r?i:l?n:["",...this._plugin_background,""];{let[m,E,b,y,S]=a;if(t.style.position="",o._is_hidden_by_aggregate_depth)t.style.animation="",t.style.backgroundColor="";else if(e?.number_bg_mode==="color")t.style.animation="",t.style.backgroundColor=m;else if(e?.number_bg_mode==="gradient"){let T=Math.max(0,Math.min(1,Math.abs(o.user/e.bg_gradient))),P=this._plugin_background,k=be(ue([E,b,y,T],P));t.style.animation="",t.style.color=k,t.style.backgroundColor=`rgba(${E},${b},${y},${T})`}else e?.number_bg_mode==="pulse"?(oo.call(this,o,t,i,n,s),t.style.backgroundColor=""):(e?.number_bg_mode==="disabled"||e?.number_bg_mode,t.style.animation="",t.style.backgroundColor="")}let[c,d,h,p,u]=e?.pos_fg_color!==void 0?r?e.pos_fg_color:l?e.neg_fg_color:["",...this._plugin_background,""]:r?this._pos_fg_color:l?this._neg_fg_color:["",...this._plugin_background,""];if(o._is_hidden_by_aggregate_depth)t.style.backgroundColor="",t.style.color="";else if(e?.number_fg_mode==="disabled")if(e?.number_bg_mode==="color"){let m=this._plugin_background,E=be(ue([a[1],a[2],a[3],1],m));t.style.color=E}else e?.number_bg_mode==="gradient"||(t.style.color="");else e?.number_fg_mode==="bar"?(t.style.color="",t.style.position="relative",u!==""&&t.children.length>0&&t.children[0].nodeType===Node.ELEMENT_NODE&&(t.children[0].style.background=u)):(e?.number_fg_mode==="color"||!e?.number_fg_mode)&&(t.style.color=c)}function _r(e,t,o){let s=o.column_header?.[this._config.split_by.length],[r,l,i,n,a]=e?.color!==void 0?e.color:this._color;if(o._is_hidden_by_aggregate_depth)t.style.backgroundColor="",t.style.color="";else if(e?.string_color_mode==="foreground"&&o.user!==null)t.style.color=r,t.style.backgroundColor="",e?.format==="link"&&(t.children[0].style.color=r);else if(e?.string_color_mode==="background"&&o.user!==null){let c=this._plugin_background,d=be(ue([l,i,n,1],c));t.style.color=d,t.style.backgroundColor=r}else if(e?.string_color_mode==="series"&&o.user!==null){this._series_color_map.has(s)||(this._series_color_map.set(s,new Map),this._series_color_seed.set(s,0));let c=this._series_color_map.get(s);if(!c.has(o.user)){let k=this._series_color_seed.get(s);c.set(o.user,k),this._series_color_seed.set(s,k+1)}let d=c.get(o.user),[h,p,u]=me(r).hsl();h=h+d*150%360;let m=me(h,p,u,"hsl"),[E,b,y]=m.rgb(),S=m.hex(),T=this._plugin_background,P=be(ue([E,b,y,1],T));t.style.color=P,t.style.backgroundColor=S}else t.style.backgroundColor="",t.style.color=""}function mr(e,t,o){let s=o.column_header?.[this._config.split_by.length],[r,l,i,n,a]=e?.color!==void 0?e.color:this._color;if(o._is_hidden_by_aggregate_depth)t.style.backgroundColor="",t.style.color="";else if(e?.datetime_color_mode==="foreground"&&o.user!==null)t.style.color=r,t.style.backgroundColor="";else if(e?.datetime_color_mode==="background"&&o.user!==null){let c=this._plugin_background,d=be(ue([l,i,n,1],c));t.style.color=d,t.style.backgroundColor=r}else t.style.backgroundColor="",t.style.color=""}function ur(e,t,o){if(o._is_hidden_by_aggregate_depth)t.style.backgroundColor="",t.style.color="";else{let[s]=o.user===!0?this._pos_fg_color:o.user===!1?this._neg_fg_color:["",0,0,0,""];t.style.backgroundColor="",t.style.color=s}}function br(e,t,o){let s=typeof o.value!=null&&typeof o.value!=null&&o.value?.toString()?.trim().length>0,r=o.row_header_x>=this._config.group_by.length,l=e.getMeta({dx:0,dy:o.y-o.y0+1}),i=l&&l.row_header&&typeof l.row_header[o.row_header_x+1]<"u";t.classList.toggle("psp-tree-label",s&&!r),t.classList.toggle("psp-tree-label-expand",s&&!r&&!i),t.classList.toggle("psp-tree-label-collapse",s&&!r&&i),t.classList.toggle("psp-tree-leaf",s&&r)}function ki(e){return e.x>=0?this._column_types[e.x]:this._row_header_types[e.row_header_x-1]}function gr(e,t){let o=e[Y]||{},s=t.hasAttribute("settings");for(let r of e.children[0].children[1].children)for(let l of r.children){let i=e.getMeta(l),n=i.column_header?.[this._config.split_by.length],a=ki.call(this,i),c=o[n],d=a==="integer"||a==="float";i._is_hidden_by_aggregate_depth=(p=>p===0?!1:p-1<Math.min(this._config.group_by.length,c?.aggregate_depth))(i.row_header?.filter(p=>p!==void 0)?.length),d?pr.call(this,c,l,i,s):a==="boolean"?ur.call(this,c,l,i):a==="string"?_r.call(this,c,l,i):a==="date"||a==="datetime"?mr.call(this,c,l,i):(l.style.backgroundColor="",l.style.color=""),l.classList.toggle("psp-bool-type",a==="boolean"&&i.user!==null);let h=l.tagName==="TH";h&&br.call(this,e,l,i),r.dataset.y=i.y,i.row_header_x===void 0||i.row_header_x===i.row_header.length-1||i.row_header[i.row_header_x+1]===void 0?(l.dataset.y=i.y,l.dataset.x=i.x):(delete l.dataset.y,delete l.dataset.x),l.classList.toggle("psp-null",i.value===null),l.classList.toggle("psp-align-right",!h&&d),l.classList.toggle("psp-align-left",h||!d),l.classList.toggle("psp-color-mode-bar",c?.number_fg_mode==="bar"&&d)}}async function yr(e,t,o,s){let l=e.getMeta(s).column_header[this._config.split_by.length],i=o.ctrlKey||o.metaKet||o.altKey?Ei:Li,n=o.shiftKey,a=i.call(this,l,n);await t.restore({sort:a})}function Ei(e,t){let o=[],s=!1;for(let r of this._config.sort){let[l,i]=r;if(l===e){s=!0;let n=wr.call(this,e,i,t);n&&o.push(n)}else o.push(r)}return s||o.push([e,t?"desc abs":"desc"]),o}function Li(e,t){for(let[o,s]of this._config.sort)if(o===e){let r=wr.call(this,e,s,t);return r?[r]:[]}return[[e,t?"desc abs":"desc"]]}function wr(e,t,o){let r=this._config.split_by.length>0?Ci:Mi,l=t?r[t]:"desc";if(l)return[e,l]}var Mi={desc:"asc",asc:void 0,"desc abs":"asc abs","asc abs":void 0},Ci={desc:"asc",asc:"col desc","desc abs":"asc abs","asc abs":"col desc abs","col desc":"col asc","col asc":void 0,"col desc abs":"col asc abs","col asc abs":void 0};async function xr(e,t){let o=e.getMeta(t.target),s=t.target.classList.contains("psp-tree-label-collapse");t.shiftKey&&s?this._view.set_depth(o.row_header.filter(r=>r!==void 0).length-2):t.shiftKey?this._view.set_depth(o.row_header.filter(r=>r!==void 0).length-1):s?this._view.collapse(o.y):this._view.expand(o.y),this._num_rows=await this._view.num_rows(),this._num_columns=await this._view.num_columns(),e.draw()}async function vr(e,t,o){if(o.which!==1)return;let s=o.target;if(s.tagName!=="A"){for(;s.tagName!=="TD"&&s.tagName!=="TH";)if(s=s.parentElement,!e.contains(s))return;if(s.classList.contains("psp-tree-label")){xr.call(this,e,o);return}if(s.classList.contains("psp-menu-enabled")){let l=e.getMeta(s).column_header?.[this._config.split_by.length];await t.toggleColumnSettings(l)}else s.classList.contains("psp-sort-enabled")&&yr.call(this,e,t,o,s)}}function kr(e,t){if(t.which!==1)return;let o=t.target;for(;o.tagName!=="TD"&&o.tagName!=="TH";)if(o=o.parentElement,!e.contains(o))return;(o.classList.contains("psp-tree-label")&&t.offsetX<26||o.classList.contains("psp-header-leaf")&&!o.classList.contains("psp-header-corner"))&&t.stopImmediatePropagation()}function Er(e,t=!1){let o=this._config.group_by.length===0&&this._config.split_by.length===0,s=e.hasAttribute("selectable"),r=t||e.children[0]?.dataset?.editMode==="EDIT";return o&&!s&&r}function Lr(e,t,o){let s=e[Y]||{},r=Er.call(this,t);o.classList.toggle("edit-mode-allowed",Er.call(this,t,!0));for(let l of e.querySelectorAll("td")){let i=e.getMeta(l),n=this.get_psp_type(i);if(r&&this._is_editable[i.x]){let a=i.column_header[this._config.split_by.length];n==="string"&&s[a]?.format==="link"?(l.toggleAttribute("contenteditable",!1),l.classList.toggle("boolean-editable",!1)):n==="boolean"?(l.toggleAttribute("contenteditable",!1),l.classList.toggle("boolean-editable",i.user!==null)):(r!==l.hasAttribute("contenteditable")&&l.toggleAttribute("contenteditable",r),l.classList.toggle("boolean-editable",!1))}else l.toggleAttribute("contenteditable",!1),l.classList.toggle("boolean-editable",!1)}}var ft=(e,t,o)=>{let s=e.querySelectorAll("td"),r=o.get(e),l=e.getRootNode();if(r){for(let i of s){let n=e.getMeta(i);if(n.x===r.x&&n.y===r.y)return l.activeElement!==i&&i.focus({preventScroll:!0}),!0}document.activeElement!==document.body&&e.contains(l.activeElement)&&l.activeElement.blur()}};function Gt(e,t,o){let s=e.getMeta(o),r=t._schema[t._column_paths[s.x]];if(s){let l=o.textContent,i=t._ids[s.y-s.y0][0];if(r==="float"||r==="integer"){if(l=parseFloat(l.replace(/,/g,"")),isNaN(l))return!1}else if(r==="date"||r==="datetime"){if(l=Date.parse(l),isNaN(l))return!1}else r==="boolean"&&(l=l==="true"?!1:l==="false"?!0:null);let n={__INDEX__:i,[t._column_paths[s.x]]:l};return t._table.update([n],{port_id:t._edit_port}),!0}}function Mr(e,t,o){let s=e.getMeta(o.target);if(typeof s?.x<"u"){let r=this._is_editable[s.x],l=this.get_psp_type(s)==="boolean",i=o.target.classList.contains("psp-null");r&&l&&!i&&Gt(e,this,o.target)}}function Oi(e){let t;return async function(...o){if(t&&await t&&t)return;let s;t=new Promise(r=>s=r),await e.apply(this,o),t=void 0,s()}}function Cr(){if(this.isContentEditable){let e=this.getRootNode().getSelection().getRangeAt(0),t=e.cloneRange();return t.selectNodeContents(this),t.setEnd(e.endContainer,e.endOffset),t.toString().length}else return this.target.selectionStart}var We=Oi(async function(e,t,o,s,r){let l=e.getMeta(o),i=this._column_paths.length,n=this._num_rows,a=t.get(e);if(!a)return;l.x+s<i&&0<=l.x+s&&(a.x=l.x+s),l.y+r<n&&0<=l.y+r&&(a.y=l.y+r);let c=Math.max(l.x0-10,0),d=Math.min(l.x0+10,i),h=Math.max(l.y0-5,0),p=Math.min(l.y0+10,n),u=l.x0+s,m=l.y0+r;for(;!ft(e,void 0,t)&&u>=c&&u<d&&m>=h&&m<p;)await e.scrollToCell(u,m,i,n),t.set(e,a),u+=s,m+=r});function zi(e,t,o){return t.getMeta(o).y===e._num_rows-1}function Sr(e,t,o,s){let r=e.getRootNode().activeElement;switch(s.target.classList.remove("psp-error"),s.key){case"Enter":s.preventDefault(),zi(this,e,r)?(r.blur(),o.delete(e)):s.shiftKey?We.call(this,e,o,r,0,-1):We.call(this,e,o,r,0,1);break;case"ArrowLeft":Cr.call(r)==0&&(s.preventDefault(),We.call(this,e,o,r,-1,0));break;case"ArrowUp":s.preventDefault(),We.call(this,e,o,r,0,-1);break;case"ArrowRight":Cr.call(r)==r.textContent.length&&(s.preventDefault(),We.call(this,e,o,r,1,0));break;case"ArrowDown":s.preventDefault(),We.call(this,e,o,r,0,1);break;default:}}function pt(e,t=!1){let o=this._config.group_by.length===0&&this._config.split_by.length===0,s=e.hasAttribute("selectable"),r=t||e.children[0]._edit_mode==="EDIT";return o&&!s&&r}function Or(e,t,o,s){if(this._edit_mode==="EDIT"){if(!pt.call(this,t))return;Sr.call(this,e,t,o,s)}else console.debug(`Mode ${this._edit_mode} for "keydown" event not yet implemented`)}function zr(e,t,o){if(this._edit_mode==="EDIT"){if(!pt.call(this,t))return;Mr.call(this,e,t,o)}else this._edit_mode==="READ_ONLY"||this._edit_mode==="SELECT_COLUMN"||this._edit_mode==="SELECT_ROW"||this._edit_mode==="SELECT_REGION"||console.debug(`Mode ${this._edit_mode} for "click" event not yet implemented`)}function Ar(e,t,o,s){if(pt.call(this,t)&&o.has(e)){s.target.classList.remove("psp-error");let r=o.get(e);o.delete(e),r.content!==s.target.textContent&&(Gt(e,this,s.target)||(s.target.textContent=r.content,s.target.classList.add("psp-error"),s.target.focus()))}}function Rr(e,t,o,s){let r=e.getMeta(s.target);if(r){let l={x:r.x,y:r.y,content:s.target.textContent};o.set(e,l)}}async function Ge({_view:e,_config:t},o,s){let r=t.group_by,l=t.split_by,i=o>=0?o:0,n=i+1,a=await e.to_json({start_row:i,end_row:n}),d=a.map(y=>y.__ROW_PATH__)[0]||[],h=r.map((y,S)=>{let T=d[S];return T?[y,"==",T]:void 0}).filter(y=>y),p=r.length>0?s+1:s,u=Object.keys(a[0])[p],m={row:a[0]},E=[];if(u){let y=u.split("|");m.column_names=[y[l.length]],E=l.map((S,T)=>{let P=y[T];return P?[S,"==",P]:void 0}).filter(S=>S).filter(([,,S])=>S!=="__ROW_PATH__")}let b=t.filter.concat(h).concat(E);return m.config={filter:b},m}async function Nr(e,t,o,s){let r=e.getMeta(s.target);if(!t.hasAttribute("selectable")||s.handled||s.shiftKey||s.button!==0||(s.stopImmediatePropagation(),!r))return;let l=this._ids?.[r.y-r.y0];if(r&&r.y>=0){let i=o.get(e),n=!!i&&i.reduce((u,m,E)=>u&&m===l[E],!0),a=!!i&&l.length===i.length&&n,c={selected:!a},{row:d,column_names:h,config:p}=await Ge(this,r.y,r.x);a?(o.delete(e),c={...c,row:d,config:{filter:structuredClone(this._config.filter)}}):(o.set(e,l),c={...c,row:d,column_names:h,config:p}),await e.draw({preserve_width:!0}),s.handled=!0,t.dispatchEvent(new CustomEvent("perspective-select",{bubbles:!0,composed:!0,detail:c}))}}function Tr(e,t,o){if(!t.hasAttribute("selectable"))return;let s=o.has(e),r=o.get(e);for(let l of e.querySelectorAll("td"))if(!s)l.classList.toggle("psp-row-selected",!1),l.classList.toggle("psp-row-subselected",!1);else{let i=e.getMeta(l),n=this._ids[i.y-i.y0],a=r.reduce((c,d,h)=>c&&d===n[h],!0);l.classList.toggle("psp-row-selected",n.length===r.length&&a),l.classList.toggle("psp-row-subselected",n.length!==r.length&&a)}for(let l of e.querySelectorAll("tbody th")){let i=e.getMeta(l),n=this._ids[i.y-i.y0];if(!s||n[i.row_header_x])l.classList.toggle("psp-row-selected",!1),l.classList.toggle("psp-row-subselected",!1);else{let a=r.reduce((c,d,h)=>c&&d===n[h],!0);l.classList.toggle("psp-row-selected",n.length===r.length&&a),l.classList.toggle("psp-row-subselected",n.length!==r.length&&a)}}}async function Pr(e,t,o){o.delete(e);for(let s of e.querySelectorAll("td,th"))s.classList.toggle("psp-row-selected",!1),s.classList.toggle("psp-row-subselected",!1)}var Dr={datetime:Intl.DateTimeFormat,date:Intl.DateTimeFormat,integer:Intl.NumberFormat,float:Intl.NumberFormat,boolean:class{format(e){return e?"true":"false"}}},Ri={types:{float:{format:{style:"decimal",minimumFractionDigits:2,maximumFractionDigits:2}},datetime:{format:{dateStyle:"short",timeStyle:"medium"}},date:{format:{dateStyle:"short"}}}},_t=class{constructor(){this._formatters=new Map}create_datetime_formatter(t,o){let s={dateStyle:"short",timeStyle:"medium"};if(o.date_format?.format!=="custom"){let r={...s,timeZone:o.date_format?.timeZone,dateStyle:o.date_format?.dateStyle,timeStyle:o.date_format?.timeStyle};return r.dateStyle==="disabled"?r.dateStyle=void 0:r.dateStyle===void 0&&(r.dateStyle="short"),r.timeStyle==="disabled"?r.timeStyle=void 0:r.timeStyle===void 0&&(r.timeStyle="medium"),new Intl.DateTimeFormat(navigator.languages,r)}else{let r={timeZone:o.date_format?.timeZone,second:o.date_format?.second,minute:o.date_format?.minute,hour:o.date_format?.hour,day:o.date_format?.day,weekday:o.date_format?.weekday,month:o.date_format?.month,year:o.date_format?.year,hour12:o.date_format?.hour12,fractionalSecondDigits:o.date_format?.fractionalSecondDigits};return r.year==="disabled"?r.year=void 0:r.year===void 0&&(r.year="2-digit"),r.month==="disabled"?r.month=void 0:r.month===void 0&&(r.month="numeric"),r.day==="disabled"?r.day=void 0:r.day===void 0&&(r.day="numeric"),r.weekday==="disabled"&&(r.weekday=void 0),r.hour==="disabled"?r.hour=void 0:r.hour===void 0&&(r.hour="numeric"),r.minute==="disabled"?r.minute=void 0:r.minute===void 0&&(r.minute="numeric"),r.second==="disabled"?r.second=void 0:r.second===void 0&&(r.second="numeric"),r.hour12===void 0&&(r.hour12=!0),new Intl.DateTimeFormat(navigator.languages,r)}}create_date_formatter(t,o){let s={dateStyle:o.date_format?.dateStyle,timeZone:"utc"};return s.dateStyle==="disabled"?s.dateStyle=void 0:s.dateStyle===void 0&&(s.dateStyle="short"),new Intl.DateTimeFormat(navigator.languages,s)}create_number_formatter(t,o){let s=Ri.types[t]?.format;return o.number_format!==void 0&&(s=o.number_format),new Dr[t](navigator.languages,s)}create_boolean_formatter(t,o){return new Dr[t](navigator.languages,{})}get(t,o){let s=[t,...Object.values(o.date_format??{}),...Object.values(o.number_format??{})].join("-");return this._formatters.has(s)||(t==="date"?this._formatters.set(s,this.create_date_formatter(t,o)):t==="datetime"?this._formatters.set(s,this.create_datetime_formatter(t,o)):t==="integer"||t==="float"?this._formatters.set(s,this.create_number_formatter(t,o)):t==="boolean"?this._formatters.set(s,this.create_boolean_formatter(t,o)):this._formatters.set(s,!1)),this._formatters.get(s)}};var Ir=new _t,Wr=1;function $r(e,t){return Ir.get(e,t)}function Ye(e,t,o={},s=!1){if(t===null)return null;let r=s&&this._table_schema[e]||this._schema[e]||"string",l=o[e]||{};if((r==="integer"||r==="float")&&l?.number_fg_mode==="bar"){let n=Math.max(0,Math.min(Wr,Math.abs(t/l.fg_gradient)*Wr)),a=this._div_factory.get(),c=t>=0?"left":"right",d=(n*100).toFixed(2);return a.setAttribute("style",`width:calc(${d}% - 4px);position:absolute;${c}:2px;height:80%;top:10%;pointer-events:none;`),a}else if(l?.format==="link"&&r==="string"){let n=document.createElement("a");return n.setAttribute("href",t),n.setAttribute("target","_blank"),n.textContent=t,n}else if(l?.format==="bold"&&r==="string"){let n=document.createElement("b");return n.textContent=t,n}else if(l?.format==="italics"&&r==="string"){let n=document.createElement("i");return n.textContent=t,n}else{let n=Ir.get(r,l);return n?n.format(t):t}}function*jr(e=[],t,o){let s=o[Y];for(let r of e){r=["TOTAL",...r];let l=r[r.length-1];r=r.slice(0,r.length-1).fill("");let i=Ye.call(this,t[r.length-1],l,s,!0);i instanceof HTMLElement?r=r.concat(i):r=r.concat({toString:()=>i}),r.length=t.length+1,yield r}}function*Ur(e=[],t,o){let s=o[Y];for(let r of e){let l=[""];for(let i in r)l.push(Ye.call(this,t[i],r[i],s,!0));yield r}}function Gr(e){let t,o,s,r,l;return async function(n,a,c,d,h){let p={},u={start_row:c,start_col:a,end_row:h,end_col:d,id:!0},m=null;if(d-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===d;let[v,w]=await Promise.all([this._view.to_columns_string(u),this._view.num_columns()]);m=w,p=JSON.parse(v);let C=Object.keys(p).filter(N=>N!=="__ROW_PATH__"&&N!=="__ID__"),A=this._column_paths.length;if(this._column_paths.splice(u.start_col,C.length,...C),this._column_paths.length!==A||A===0){let[N,z]=await Promise.all([this._view.schema(),this._view.expression_schema()]);this._schema={...N,...z};for(let W=0;W<C.length;W++){let H=C[W].split("|")[this._config.split_by.length];this._is_editable[W+u.start_col]=!!this._table_schema[H],this._column_types[W+u.start_col]=this._schema[H]}}this._last_window=u,this._ids=p.__ID__||Array(h-c).fill().map((N,z)=>[z+c]),this._reverse_columns=this._column_paths.slice(a,d).reduce((N,z,W)=>(N.set(z,W),N),new Map),this._reverse_ids=this._ids?.reduce((N,z,W)=>(N.set(z?.join("|"),W),N),new Map)}else this._div_factory.clear(),m=await this._view.num_columns();let E=[],b=[],y=[],S=[],T=e.hasAttribute("settings");for(let v=a;v<Math.min(d,this._column_paths.length);++v){let w=this._column_paths[v],x=w.split("|"),C=p[w]||new Array(h-c).fill(null),A=Math.min(n[Y]?.[x[this._config.split_by.length]]?.aggregate_depth||0,this._config.group_by.length);E.push(C.map((N,z)=>p?.__ROW_PATH__?.[z]?.length<A?"":Ye.call(this,x[this._config.split_by.length],N,n[Y]))),b.push(C),T&&x.push(""),y.push(x),S.push(w)}d-a>0&&h-c>0&&(this.last_column_paths=o,this.last_meta=t,this.last_ids=s,this.last_reverse_ids=r,this.last_reverse_columns=l,o=S,t=b,s=this._ids,r=this._reverse_ids,l=this._reverse_columns);let P=p.__ROW_PATH__!==void 0,k=Array.from((P?jr:Ur).call(this,p.__ROW_PATH__,this._config.group_by,n)),R=k[0]?.length;return{num_column_headers:y[0]?.length||1,num_row_headers:R,num_rows:this._num_rows,num_columns:m,row_headers:k,column_headers:y,data:E,metadata:b,column_header_merge_depth:Math.max(0,this._config.split_by.length)}}}function mt(e,t,o){let s=window.getComputedStyle(e).getPropertyValue(t).trim();return s.length>0?s:o}var Yt=class{constructor(t){this._name=t,this._elements=[],this._index=0}clear(){this._index=0}get(){this._elements[this._index]||(this._elements[this._index]=document.createElement(this._name));let t=this._elements[this._index];return this._index+=1,t}};function Ni(e){return e.x>=0?this._column_types[e.x]:this._row_header_types[e.row_header_x-1]}async function Ht(e,t,o,s={}){let r=await o.get_config();if(this?.model?._config){let _=this.model._config,v=_.group_by.length!==r.group_by.length,w=(_.group_by.length===0||r.group_by.length===0)&&v;if(!v)for(let z in _.group_by)v||=r.group_by[z]!==_.group_by[z];let x=_.split_by.length!==r.split_by.length;if(x)for(let z in _.split_by)x||=r.split_by[z]!==_.split_by[z];let C=_.columns.length!==r.columns.length;if(C)for(let z in _.columns)C||=r.columns[z]!==_.columns[z];let A=_.filter.length!==r.filter.length;if(A)for(let z in _.filter)for(let W in r.filter[z])A||=r.filter[z][W]!==_.filter[z][W];let N=_.sort.length!==r.sort.length;if(N)for(let z in _.sort)for(let W in r.sort[z])N||=r.sort[z][W]!==_.sort[z][W];this._reset_scroll_top=v,this._reset_scroll_left=x,this._reset_select=v||x||A||N||C,this._reset_column_size=x||v||C||w}let[l,i,n,a,c]=await Promise.all([t.schema(),o.num_rows(),o.schema(),o.expression_schema(),this.parentElement.getEditPort()]),d=me(mt(e,"--plugin--background","#FFFFFF")).rgb(),h=V(mt(e,"--rt-pos-cell--color","#338DCD")),p=V(mt(e,"--rt-neg-cell--color","#FF5942")),u=V(Ut(h[0],d)),m=V(Ut(p[0],d)),E=V(mt(e,"--active--color","#ff0000")),b={...n,...a},y={...l,...a},S=[],T=[],P=[],k=this._edit_mode||"READ_ONLY";this._edit_button.dataset.editMode=k;let R=Object.assign(s,{_edit_port:c,_view:o,_table:t,_table_schema:y,_config:r,_num_rows:i,_schema:b,_ids:[],_plugin_background:d,_color:E,_pos_fg_color:h,_neg_fg_color:p,_pos_bg_color:u,_neg_bg_color:m,_column_paths:S,_column_types:P,_is_editable:T,_edit_mode:k,_selection_state:{selected_areas:[],dirty:!1},_row_header_types:r.group_by.map(_=>y[_]),_series_color_map:new Map,_series_color_seed:new Map,get_psp_type:Ni});return R._div_factory=R._div_factory||new Yt("div"),e.setDataListener(Gr(this.parentElement).bind(R,e),{virtual_mode:window.getComputedStyle(e).getPropertyValue("--datagrid-virtual-mode")?.trim()||"both"}),R}async function Yr(e,t,o){let s=e.getMeta(o.target);if(!s)return;let{x:r,y:l}=s,{row:i,column_names:n,config:a}=await Ge(this,l,r);t.dispatchEvent(new CustomEvent("perspective-click",{bubbles:!0,composed:!0,detail:{row:i,column_names:n,config:a}}))}var Ti="mouse-selected-area",Hr=(e,t,{className:o=Ti,selected:s=[]}={})=>(e.model._selection_state={selected_areas:s,dirty:!0},t.addEventListener("mousedown",Pi(e,t,o)),t.addEventListener("mouseover",Di(e,t,o)),t.addEventListener("mouseup",Wi(e,t,o)),t.addStyleListener(()=>He(e,t,o)),t),Pi=(e,t,o)=>s=>{if(s.button===0&&(e.model._edit_mode==="SELECT_REGION"||e.model._edit_mode==="SELECT_ROW"||e.model._edit_mode==="SELECT_COLUMN")){e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES={};let r=t.getMeta(s.target);if(r&&r.x!==void 0&&r.y!==void 0){e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES={x:r.x,y:r.y},e.model._selection_state.old_selected_areas=e.model._selection_state.selected_areas,e.model._selection_state.selected_areas=[];let l={x0:r.x,x1:r.x,y0:r.y,y1:r.y};e.model._selection_state.potential_selection=l,He(e,t,o,e.model._selection_state.selected_areas.concat([l]));return}}e.model._selection_state.selected_areas=[]},Di=(e,t,o)=>s=>{if((e.model._edit_mode==="SELECT_REGION"||e.model._edit_mode==="SELECT_ROW"||e.model._edit_mode==="SELECT_COLUMN")&&e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES&&e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x!==void 0){let r=t.getMeta(s.target);if(r&&r.x!==void 0&&r.y!==void 0){let l={x0:Math.min(r.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),x1:Math.max(r.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),y0:Math.min(r.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y),y1:Math.max(r.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y)};e.model._selection_state.potential_selection=l,He(e,t,o,e.model._selection_state.selected_areas.concat([l]))}}},Wi=(e,t,o)=>s=>{if(e.model._edit_mode==="SELECT_REGION"||e.model._edit_mode==="SELECT_ROW"||e.model._edit_mode==="SELECT_COLUMN"){let r=t.getMeta(s.target);if(e.model._selection_state.old_selected_areas?.length>0){let l=e.model._selection_state.old_selected_areas[0];if(l.x0===l.x1&&l.y0===l.y1&&l.x0===r.x&&l.y0===r.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,He(e,t,o,[]);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&&r.x!==void 0&&r.y!==void 0){let l={x0:Math.min(r.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),x1:Math.max(r.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),y0:Math.min(r.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y),y1:Math.max(r.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y)};e.model._selection_state.selected_areas.push(l),He(e,t,o)}e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES={},e.model._selection_state.potential_selection=void 0}};function Ii(e,t,{x0:o,x1:s,y0:r,y1:l}){let i={},n=t.model._edit_mode;o!==void 0&&["SELECT_COLUMN","SELECT_REGION"].indexOf(n)>-1&&(i.start_col=o),s!==void 0&&["SELECT_COLUMN","SELECT_REGION"].indexOf(n)>-1&&(i.end_col=s+1),r!==void 0&&["SELECT_ROW","SELECT_REGION"].indexOf(n)>-1&&(i.start_row=r),l!==void 0&&["SELECT_ROW","SELECT_REGION"].indexOf(n)>-1&&(i.end_row=l+1),e.setSelection(i)}var He=(e,t,o,s)=>{if(e.model._edit_mode==="SELECT_REGION"||e.model._edit_mode==="SELECT_ROW"||e.model._edit_mode==="SELECT_COLUMN"){s=e.model._selection_state.selected_areas.slice(0),e.model._selection_state.potential_selection&&s.push(e.model._selection_state.potential_selection);let r=t.querySelectorAll("tbody td");if(s.length>0)Ii(e.parentElement,e,s[0]),$i(e,t,s,o);else{e.parentElement.setSelection();for(let l of r)l.classList.remove(o)}}else if(e.model._selection_state.dirty){e.model._selection_state.dirty=!1;let r=t.querySelectorAll("tbody td");for(let l of r)l.classList.remove(o)}},$i=(e,t,o,s)=>{if(e.model._edit_mode==="SELECT_REGION"&&o.length>0){let r=t.querySelectorAll("tbody td");for(let l of r){let i=t.getMeta(l),n=!1;for(let{x0:a,x1:c,y0:d,y1:h}of o)a!==void 0&&d!==void 0&&c!==void 0&&h!==void 0&&a<=i.x&&i.x<=c&&d<=i.y&&i.y<=h&&(n=!0,e.model._selection_state.dirty=!0,l.classList.add(s));n||l.classList.remove(s)}}else if(e.model._edit_mode==="SELECT_ROW"&&o.length>0){let r=t.querySelectorAll("tbody td");for(let l of r){let i=t.getMeta(l),n=!1;for(let{x0:a,x1:c,y0:d,y1:h}of o)a!==void 0&&d!==void 0&&c!==void 0&&h!==void 0&&d<=i.y&&i.y<=h&&(e.model._selection_state.dirty=!0,n=!0,l.classList.add(s));n||l.classList.remove(s)}}else if(e.model._edit_mode==="SELECT_COLUMN"&&o.length>0){let r=t.querySelectorAll("tbody td");for(let l of r){let i=t.getMeta(l),n=!1;for(let{x0:a,x1:c,y0:d,y1:h}of o)a!==void 0&&d!==void 0&&c!==void 0&&h!==void 0&&a<=i.x&&i.x<=c&&(e.model._selection_state.dirty=!0,n=!0,l.classList.add(s));n||l.classList.remove(s)}}};async function Br(e){let t=this.parentElement,o=await t.getTable(!0);if(this._initialized)await Ht.call(this,this.regular_table,o,e,this.model);else{if(this.innerHTML="",this.shadowRoot?this.shadowRoot.appendChild(this.regular_table):this.appendChild(this.regular_table),this.model=await Ht.call(this,this.regular_table,o,e),!this.model)return;Hr(this,this.regular_table,{className:"psp-select-region"}),this.regular_table.addStyleListener(gr.bind(this.model,this.regular_table,t)),this.regular_table.addStyleListener(to.bind(this.model,this.regular_table)),this.regular_table.addStyleListener(eo.bind(this.model,this.regular_table,t)),this.regular_table.addEventListener("click",kr.bind(this.model,this.regular_table));let s=new WeakMap;this.regular_table.addStyleListener(Tr.bind(this.model,this.regular_table,t,s)),this.regular_table.addEventListener("mousedown",Nr.bind(this.model,this.regular_table,t,s)),this.regular_table.addEventListener("psp-deselect-all",Pr.bind(this.model,this.regular_table,t,s)),this.regular_table.addEventListener("click",Yr.bind(this.model,this.regular_table,t)),this.regular_table.addEventListener("mousedown",vr.bind(this.model,this.regular_table,t));let r=new WeakMap;this.regular_table.addStyleListener(Lr.bind(this.model,this.regular_table,t,this)),this.regular_table.addStyleListener(ft.bind(this.model,this.regular_table,t,r)),this.regular_table.addEventListener("click",zr.bind(this.model,this.regular_table,t)),this.regular_table.addEventListener("focusin",Rr.bind(this.model,this.regular_table,t,r)),this.regular_table.addEventListener("focusout",Ar.bind(this.model,this.regular_table,t,r)),this.regular_table.addEventListener("keydown",Or.bind(this.model,this.regular_table,t,r)),t.addEventListener("perspective-toggle-column-settings",l=>{if(this.isConnected){if(kt.call(this.model,this.regular_table,t,l.detail.column_name),!l.detail.open){this.model._column_settings_selected_column=null;return}this.model._column_settings_selected_column=l.detail.column_name}}),this._initialized=!0}}function ut(e,t=!1){if(!this._initialized)return;t&&(this._cached_column_sizes=e);let o={},{group_by:s,columns:r}=this.model._config,l=s?.length>0?s.length+1:0;for(let i of Object.keys(e))if(i==="__ROW_PATH__")o[l-1]=e[i];else{let n=this.model._column_paths.indexOf(i);o[n+l]=e[i]}this.regular_table._column_sizes.override=o}function bt(){if(!this._initialized)return[];if(this._cached_column_sizes){let l=this._cached_column_sizes;return this._cached_column_sizes=void 0,l}let e=this.regular_table._column_sizes.override,{group_by:t,columns:o}=this.model._config,s=t?.length>0?t.length+1:0,r={};for(let l of Object.keys(e))if(e[l]!==void 0){let i=l-s;i>-1?r[this.model._column_paths[i]]=e[l]:i===-1&&(r.__ROW_PATH__=e[l])}return r}var Be=["READ_ONLY","EDIT","SELECT_ROW","SELECT_COLUMN","SELECT_REGION"];function gt(e=void 0){typeof e>"u"&&(e=Be[(Be.indexOf(this._edit_mode)+1)%Be.length]),this.parentElement?.setSelection(),this._edit_mode=e,this.model&&(this.model._edit_mode=e,this.model._selection_state={selected_areas:[],dirty:!0}),this._edit_button!==void 0&&(this._edit_button.dataset.editMode=e),this.dataset.editMode=e}function yt(e=void 0){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 Xr(e,t){e=JSON.parse(JSON.stringify(e)),t=JSON.parse(JSON.stringify(t));let o={};if(e.columns)for(let[l,i]of Object.entries(e.columns))i.column_size_override!==void 0&&(o[l]=i.column_size_override,delete i.column_size_override);let s={};if(t)for(let[l,i]of Object.entries(t))s[l]={...i,pos_fg_color:i.pos_fg_color?V(i.pos_fg_color):void 0,neg_fg_color:i.neg_fg_color?V(i.neg_fg_color):void 0,pos_bg_color:i.pos_bg_color?V(i.pos_bg_color):void 0,neg_bg_color:i.neg_bg_color?V(i.neg_bg_color):void 0,color:i.color?V(i.color):void 0};"edit_mode"in e&&(Be.indexOf(e.edit_mode)!==-1?gt.call(this,e.edit_mode):console.error("Unknown edit mode "+e.edit_mode)),"scroll_lock"in e&&yt.call(this,e.scroll_lock);let r=this.regular_table;ut.call(this,o,!0),r[Y]=s}function qr(){if(this.regular_table){let e={columns:{},scroll_lock:!!this._is_scroll_lock,edit_mode:this._edit_mode},t=bt.call(this);for(let o of Object.keys(t||{}))e.columns[o]||(e.columns[o]={}),e.columns[o].column_size_override=t[o];return JSON.parse(JSON.stringify(e))}return{}}async function Fr(e){if(this.parentElement&&await this.activate(e),!this.isConnected||this.offsetParent==null||!this.model)return;let t=bt.call(this),o=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),ut.call(this,t),await o,this._toolbar.classList.toggle("aggregated",this.model._config.group_by.length>0||this.model._config.split_by.length>0)}function Bt(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 Zr='regular-table{padding:0;margin:12px 0 0 12px;font-family:inherit;--rt-hover--border-color:var(--inactive--color,#c5c9d080);}regular-table div[tabindex]{outline:none;}regular-table>div{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;}regular-table th{text-align:center;}regular-table thead tr:not(.rt-autosize) th{overflow:hidden;max-width:0px;}regular-table thead tr:last-child .rt-float,regular-table tbody .rt-float{text-align:right;}regular-table thead .rt-integer,regular-table tbody .rt-integer{text-align:right;}regular-table tbody th{text-align:left;}regular-table span.rt-tree-container{display:flex;align-items:center;height:100%;}regular-table thead .rt-string,regular-table tbody .rt-string,regular-table thead .rt-date,regular-table tbody .rt-date,regular-table thead .rt-datetime,regular-table tbody .rt-datetime{text-align:left;}regular-table thead tr:last-child th{border-bottom:1px solid#8b868045;}regular-table tbody tr:first-child td,regular-table tbody tr:first-child th{border-top:1px solid transparent!important;}regular-table th{position:relative;}regular-table tr th span.rt-tree-group{margin-left:5px;margin-right:15px;border-left:1px solid#eee;height:100%;}regular-table td,regular-table th{white-space:nowrap;font-size:12px;padding-right:5px;padding-left:5px;padding-top:0px;padding-bottom:0px;height:19px;}regular-table table *{box-sizing:border-box;}regular-table table{position:absolute;color:#666;outline:none;}regular-table span.rt-row-header-icon{color:#aaa;padding-right:4px;font-family:var(--button--font-family);}regular-table span.rt-column-header-icon{font-size:10px;padding-left:3px;display:inline-block;width:10px;font-family:var(--button--font-family);}regular-table span.rt-row-header-icon:hover{color:#1a7da1;text-shadow:0px 0px 3px#1a7da1;}regular-table .rt-selected td{background-color:#eee;}regular-table .rt-cell-clip{overflow:hidden;text-overflow:ellipsis;}regular-table td span.rt-group-name,regular-table th span.rt-group-name{margin-right:-5px;padding-right:5px;padding-left:8px;flex:1;height:100%;}regular-table th span.rt-group-name{text-align:left;}regular-table td th span.rt-group-leaf,regular-table th span.rt-group-leaf{margin-left:16px;height:100%;}regular-table .rt-column-resize{height:100%;width:10px;position:absolute;top:0;right:0;cursor:col-resize;}regular-table a{color:var(--rt-pos-cell--color);}regular-table a:visited{color:var(--active--color);}regular-table td.psp-null:after,regular-table th.psp-null:after{content:var(--null--content,"-");}.psp-header-border:not(.psp-is-top):not(.psp-header-leaf){box-shadow:1px 0px var(--inactive--border-color,#8b868045);}.psp-header-group{box-shadow:0px 10px 0 -9px var(--inactive--border-color,#8b868045);}.psp-is-top{box-shadow:5px 4px 0px -4px var(--inactive--border-color,#8b868045);}.psp-is-top.psp-header-group:not(.psp-header-group-corner){box-shadow:5px 4px 0px -4px var(--inactive--border-color,#8b868045),0px 10px 0 -9px var(--inactive--border-color,#8b868045);}.psp-header-border.psp-header-group:not(.psp-is-top):not(.psp-header-group-corner){box-shadow:1px 0px var(--inactive--border-color,#8b868045),0px 10px 0 -9px var(--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(--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(--inactive--border-color,#8b868045);}.psp-header-leaf.psp-header-border{box-shadow:5px -4px 0px -4px var(--inactive--border-color,#8b868045);}tr:only-child th{box-shadow:none!important;}regular-table tbody tr:hover th.psp-tree-leaf:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover th.psp-tree-label:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover td:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover:after{border-color:var(--rt-hover--border-color,#c5c9d080)!important;box-shadow:0px 1px 0px var(--rt-hover--border-color,#c5c9d080);}regular-table tbody tr:hover th.psp-tree-leaf.psp-menu-open:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover th.psp-tree-label.psp-menu-open:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover td.psp-menu-open:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr.psp-menu-open:hover:after{box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color),0px 1px 0px var(--rt-hover--border-color,#c5c9d080);}regular-table tbody tr:last-child:hover td.psp-menu-open:not(.psp-row-selected):not(.psp-row-subselected){box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color),inset 0px -2px 0px var(--icon--color),0px 1px 0px var(--rt-hover--border-color,#c5c9d080);}regular-table tbody tr:hover+tr th.psp-tree-leaf:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover+tr th.psp-tree-label:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover+tr td:not(.psp-row-selected):not(.psp-row-subselected){border-top-color:transparent;}regular-table tbody tr th:first-child:not(:empty),regular-table tbody tr th:first-child:empty+th:not(:empty),regular-table tbody tr th:first-child:empty~th:empty+th:not(:empty),regular-table tbody tr td:first-child{border-left-width:1px;border-left-color:transparent;}regular-table tbody tr th:last-child,regular-table tbody tr td:last-child{border-right-width:0px;border-right-color:transparent;}regular-table tbody tr:hover{color:inherit;}regular-table tbody tr:hover th:first-child:not(:empty),regular-table tbody tr:hover th:first-child:empty+th:not(:empty),regular-table tbody tr:hover th:first-child:empty~th:empty+th:not(:empty),regular-table tbody tr:hover td:first-child{border-left-color:var(--rt-hover--border-color,#c5c9d080)!important;}regular-table tbody tr:hover th:last-child,regular-table tbody tr:hover td:last-child{border-right-color:var(--rt-hover--border-color,#c5c9d080)!important;}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody td,perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table thead th:not(.rt-group-corner),:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody td,:host(:not(.sub-cell-scroll-disabled)) regular-table table thead th:not(.rt-group-corner){transform:translate(var(--regular-table--transform-x,0px));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody,:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody{transform:translate(0,var(--regular-table--transform-y,0px));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:first-child td,perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:first-child th,perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:first-child:after,:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody tr:first-child td,:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody tr:first-child th,:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody tr:first-child:after{clip-path:polygon(0 var(--regular-table--clip-y,0),0 200%,200% 200%,200% var(--regular-table--clip-y,0));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr td:first-of-type,:host(:not(.sub-cell-scroll-disabled)) regular-table table 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);}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:first-child td:first-of-type,:host(:not(.sub-cell-scroll-disabled)) regular-table table 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));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table thead tr:last-child:after,:host(:not(.sub-cell-scroll-disabled)) regular-table table thead tr:last-child:after{transform:translate(var(--regular-table--transform-x,0px));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:not(:first-child):after,:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody tr:not(:first-child):after{transform:translate(var(--regular-table--transform-x,0px));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:hover:first-child:after,:host(:not(.sub-cell-scroll-disabled)) regular-table table 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));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table thead tr th.rt-group-corner+th:not(.rt-group-corner),:host(:not(.sub-cell-scroll-disabled)) regular-table table 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;}regular-table::-webkit-scrollbar,regular-table::-webkit-scrollbar-corner{background-color:transparent;height:12px;width:12px;}regular-table::-webkit-scrollbar-thumb{background-clip:content-box;background:var(--icon--color);border:5.5px solid var(--plugin--background);max-height:50%;max-width:50%;min-width:10%;min-height:10%;}perspective-viewer:not([settings]) regular-table table tr.rt-autosize+tr th{height:0px;}perspective-viewer:not([settings]) regular-table table tr.rt-autosize+tr th span{display:none;}:host-context(perspective-viewer:not([settings])) regular-table table tr.rt-autosize+tr th{height:0px;}:host-context(perspective-viewer:not([settings])) regular-table table tr.rt-autosize+tr th span{display:none;}perspective-viewer[settings] .psp-menu-enabled{padding:0 6px;font-size:8px;border-radius:3px 3px 0 0;}perspective-viewer[settings] .psp-menu-enabled:hover,perspective-viewer[settings] tr:not(.rt-autosize) th.psp-menu-open{color:var(--plugin--background);background-color:var(--icon--color);border-bottom-color:var(--icon--color);cursor:pointer;}perspective-viewer[settings] tr:not(.rt-autosize) th.psp-menu-open:before{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;height:8px;width:10px;-webkit-mask-image:var(--column-settings-icon--mask-image);mask-image:var(--column-settings-icon--mask-image);margin-right:4px;background-color:var(--plugin--background);}perspective-viewer[settings] td.psp-menu-open{box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color);}perspective-viewer[settings] tr:first-child td.psp-menu-open{border-top-color:var(--icon--color)!important;}perspective-viewer[settings] tr:last-child td.psp-menu-open{box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color),inset 0px -2px 0px var(--icon--color);}:host-context(perspective-viewer[settings]) .psp-menu-enabled{padding:0 6px;font-size:8px;border-radius:3px 3px 0 0;}:host-context(perspective-viewer[settings]) .psp-menu-enabled:hover,:host-context(perspective-viewer[settings]) tr:not(.rt-autosize) th.psp-menu-open{color:var(--plugin--background);background-color:var(--icon--color);border-bottom-color:var(--icon--color);cursor:pointer;}:host-context(perspective-viewer[settings]) tr:not(.rt-autosize) th.psp-menu-open:before{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;height:8px;width:10px;-webkit-mask-image:var(--column-settings-icon--mask-image);mask-image:var(--column-settings-icon--mask-image);margin-right:4px;background-color:var(--plugin--background);}:host-context(perspective-viewer[settings]) td.psp-menu-open{box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color);}:host-context(perspective-viewer[settings]) tr:first-child td.psp-menu-open{border-top-color:var(--icon--color)!important;}:host-context(perspective-viewer[settings]) tr:last-child td.psp-menu-open{box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color),inset 0px -2px 0px var(--icon--color);}perspective-viewer regular-table table thead tr:last-child th{border-bottom-width:1px;border-bottom-color:var(--inactive--border-color,#8b868045);}:host-context(perspective-viewer) regular-table table thead tr:last-child th{border-bottom-width:1px;border-bottom-color:var(--inactive--border-color,#8b868045);}.psp-sort-enabled:hover{cursor:pointer;}.psp-row-selected,:hover .psp-row-selected,:hover th.psp-tree-leaf.psp-row-selected,:hover th.psp-tree-label.psp-row-selected{color:white!important;background-color:var(--selected-row--background-color,#ea7319)!important;border-color:var(--selected-row--background-color,#ea7319)!important;}.psp-row-selected.psp-tree-label:not(:hover):before{color:white;}.psp-row-subselected,:hover .psp-row-subselected,:hover th.psp-tree-leaf.psp-row-subselected,:hover th.psp-tree-label.psp-row-subselected{background:rgba(234,115,25,0.2)!important;}.psp-error{color:red;}td:focus{outline:#666;outline-style:dotted;outline-width:1px;}perspective-viewer.dragging regular-table{pointer-events:none;}:host-context(perspective-viewer.dragging) regular-table{pointer-events:none;}.psp-header-border:last-child{border-right-width:0px;}.psp-header-sort-desc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-desc-icon--mask-image);mask-image:var(--sort-desc-icon--mask-image);}.psp-header-sort-asc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-asc-icon--mask-image);mask-image:var(--sort-asc-icon--mask-image);}.psp-header-sort-col-desc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-col-desc-icon--mask-image);mask-image:var(--sort-col-desc-icon--mask-image);}.psp-header-sort-col-asc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-col-asc-icon--mask-image);mask-image:var(--sort-col-asc-icon--mask-image);}.psp-header-sort-abs-desc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-abs-desc-icon--mask-image);mask-image:var(--sort-abs-desc-icon--mask-image);}.psp-header-sort-abs-asc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-abs-asc-icon--mask-image);mask-image:var(--sort-abs-asc-icon--mask-image);}.psp-header-sort-abs-col-desc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-abs-col-desc-icon--mask-image);mask-image:var(--sort-abs-col-desc-icon--mask-image);}.psp-header-sort-abs-col-asc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-abs-col-asc-icon--mask-image);mask-image:var(--sort-abs-col-asc-icon--mask-image);}tbody th:last-of-type{border-right:1px solid var(--inactive--border-color,#8b868045);overflow:hidden;text-overflow:ellipsis;}tbody th:empty{background-image:linear-gradient(to right,transparent 9px,var(--inactive--border-color,#eee) 10px,transparent 11px);background-repeat:no-repeat;min-width:20px;max-width:20px;pointer-events:none;}.psp-tree-label{max-width:0px;min-width:0px;}.psp-tree-label:before{color:var(--icon--color);font-family:var(--button--font-family,inherit);padding-right:11px;}.psp-tree-label-expand:before{content:var(--tree-label-expand--content,"+");}.psp-tree-label-collapse:before{content:var(--tree-label-collapse--content,"-");}.psp-tree-label-expand,.psp-tree-label-collapse{cursor:pointer;}.psp-tree-label:hover:before{color:var(--active--color);text-shadow:0px 0px 5px var(--active--color);}.psp-tree-leaf{padding-left:24px;}.psp-align-right{text-align:right;}.psp-align-left{text-align:left;}.psp-positive:not(:focus){color:var(--rt-pos-cell--color);}.psp-negative:not(:focus){color:var(--rt-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-bottom-width:0px;border-left-width:0px;}.boolean-editable{cursor:pointer;}regular-table table{user-select:none;color:inherit;border-collapse:separate;}regular-table table th{font-weight:400;}regular-table table td,regular-table table th{border-color:var(--inactive--border-color,#8b868045);height:23px;}regular-table table .psp-header-group{text-overflow:ellipsis;}regular-table table th.psp-header-leaf{border-bottom-width:0px;}regular-table table th.psp-header-leaf span{height:23px;min-height:23px;}regular-table table td,regular-table table th.psp-tree-label,regular-table table th.psp-tree-label,regular-table table th.psp-tree-leaf,regular-table table tbody tr:first-child th{border-style:solid;border-width:0px;border-top-width:1px;}regular-table table tbody th:empty{background-position:0px -10px;}regular-table table td.psp-select-region,regular-table table th.psp-select-region{background-color:var(--icon--color)!important;color:var(--plugin--background)!important;border-color:var(--plugin--background)!important;}regular-table tbody tr:hover td.psp-select-region:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover+tr td.psp-select-region:not(.psp-row-selected):not(.psp-row-subselected){border-color:var(--plugin--background)!important;}regular-table tbody tr:hover td.psp-select-region.psp-menu-open:not(.psp-row-selected):not(.psp-row-subselected){box-shadow:inset -2px 0px 0px var(--plugin--background),inset 2px 0px 0px var(--plugin--background);}:host-context(perspective-viewer[settings]) td.psp-select-region.psp-menu-open{box-shadow:inset -2px 0px 0px var(--plugin--background),inset 2px 0px 0px var(--plugin--background);}regular-table #psp-column-edit-buttons th:not(.rt-group-corner) span:not(.rt-column-resize):before{content:var(--datagrid-column-edit-button--content,"Edit");}perspective-viewer:not([settings]) regular-table #psp-column-edit-buttons:after{content:none;}:host-context(perspective-viewer:not([settings])) regular-table #psp-column-edit-buttons:after{content:none;}regular-table table thead tr:last-child:after{width:10000px;box-sizing:border-box;display:block;height:23px;content:" ";border-bottom:1px solid var(--inactive--border-color);}regular-table table tbody tr:after{width:10000px;box-sizing:border-box;display:block;height:23px;content:" ";border-top:1px solid transparent;}regular-table table tbody tr:not(:first-child):after{border-top:1px solid var(--inactive--border-color);}regular-table table tbody tr:hover:not(:first-child):after{border-top:1px solid var(--rt-hover--border-color);}regular-table table tbody tr:hover+tr:after{border-top:1px solid var(--rt-hover--border-color);}@keyframes pulse_pos{0%{background-color:var(--pulse--background-color-start,rgba(0,128,255,0.5));}100%{background-color:var(--pulse--background-color-end,rgba(0,128,255,0));}}@keyframes pulse_pos2{0%{background-color:var(--pulse--background-color-start,rgba(0,128,255,0.5));}100%{background-color:var(--pulse--background-color-end,rgba(0,128,255,0));}}@keyframes pulse_neg{0%{background-color:var(--pulse--background-color-start,rgba(255,25,0,0.5));}100%{background-color:var(--pulse--background-color-end,rgba(255,25,0,0));}}@keyframes pulse_neg2{0%{background-color:var(--pulse--background-color-start,rgba(255,25,0,0.5));}100%{background-color:var(--pulse--background-color-end,rgba(255,25,0,0));}}';var wt=class e extends HTMLElement{static#t=!1;static#e;static renderTarget=window.CSS?.supports&&window.CSS?.supports("selector(:host-context(foo))")?"shadow":"light";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=e;t.#e||(t.#e=new CSSStyleSheet,t.#e.replaceSync(Zr)),t.renderTarget==="shadow"?this.attachShadow({mode:"open"}).adoptedStyleSheets.push(t.#e):t.renderTarget==="light"&&!t.#t&&(t.#t=!0,document.adoptedStyleSheets.push(t.#e))}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 Br.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 priority(){return 1}can_render_column_styles(t,o){return t!=="boolean"}column_style_controls(t,o){return Bt.call(this,t,o)}async draw(t){return await Fr.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 o=await t.dimensions();this.model._num_rows=o.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 o=await this.parentElement.getView(),s=await o.to_columns(t),r=await o.column_paths(t),l=t.end_row-t.start_row,i="";for(let n=0;n<l;n++){for(let a of r){let c=s[a],d=this.model._schema[a],h=$r(d,this.regular_table[Y][a.split("|").at(-1)]||{});h?i+=h.format(c[n])+" ":i+=c[n]+" "}i+=`
|
|
16
|
-
`}return i.trim()}async resize(){!this.isConnected||this.offsetParent==null||this._initialized&&await this.regular_table.draw()}async clear(){this.regular_table._resetAutoSize(),this.regular_table.clear()}save(){return qr.call(this)}restore(t,o){return Xr.call(this,t,o)}async restyle(t){await this.draw(t)}delete(){this._toolbar=void 0,this.regular_table.table_model&&this.regular_table._resetAutoSize(),this.regular_table.clear()}};var Kr=':host{position:relative;display:block;height:100%;}:host #container{position:absolute;display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;top:0;left:0;right:0;bottom:0;}:host #toolbar{display:flex;align-items:stretch;height:100%;}:host #toolbar .hover-target{margin:0;display:inline-flex;align-items:center;cursor:pointer;}:host #toolbar .hover-target:hover{box-shadow:-4px 0 0 var(--icon--color),4px 0 0 var(--icon--color);background-color:var(--icon--color);}:host #slot-container{flex:1;position:relative;}#scroll_lock.lock-scroll:before{-webkit-mask-image:var(--toolbar-scroll-lock-active--content);}#scroll_lock:before{-webkit-mask-image:var(--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(--toolbar-edit-mode--read-only--content);}#edit_mode[data-edit-mode="EDIT"]:before{-webkit-mask-image:var(--toolbar-edit-mode--edit--content);}:host(.aggregated) #toolbar #edit_mode[data-edit-mode="EDIT"]:before{-webkit-mask-image:var(--toolbar-edit-mode--read-only--content);}#edit_mode[data-edit-mode="SELECT_ROW"]:before{-webkit-mask-image:var(--toolbar-edit-mode--select-row--content);}#edit_mode[data-edit-mode="SELECT_COLUMN"]:before{-webkit-mask-image:var(--toolbar-edit-mode--select-column--content);}#edit_mode[data-edit-mode="SELECT_REGION"]:before{-webkit-mask-image:var(--toolbar-edit-mode--select-region--content);}#edit_mode[data-edit-mode="READ_ONLY"] span:before{content:var(--edit-mode--read-only--content,"Read Only");}#edit_mode[data-edit-mode="EDIT"] span:before{content:var(--edit-mode--edit--content,"Editable");}#edit_mode[data-edit-mode="SELECT_ROW"] span:before{content:var(--edit-mode--select-row--content,"Row Select");}#edit_mode[data-edit-mode="SELECT_COLUMN"] span:before{content:var(--edit-mode--select-column--content,"Column Select");}#edit_mode[data-edit-mode="SELECT_REGION"] span:before{content:var(--edit-mode--select-region--content,"Region Select");}#scroll_lock span:before{content:var(--scroll-lock-toggle--content,"Free Scroll");}#scroll_lock.lock-scroll span:before{content:var(--scroll-lock-alt-toggle--content,"Align Scroll");}.button:before{width:21px;height:21px;content:"";-webkit-mask-size:cover;mask-size:cover;background-color:var(--icon--color);}.button.editable:before,.button.lock-scroll:before{color:inherit;}.button{display:inline-flex;justify-content:center;align-items:center;user-select:none;padding:0 5px;border:1px solid transparent;border-radius:3px;border:1px solid transparent;box-sizing:border-box;display:inline-flex;font-size:var(--label--font-size,0.75em);height:22px;user-select:none;white-space:nowrap;width:37px;}.button>span{display:none;margin:0;padding:0;}.hover-target:focus-within .button,.hover-target:hover .button{position:relative;background-color:var(--icon--color);color:var(--plugin--background);opacity:1;display:flex;align-items:center;cursor:pointer;}.hover-target:focus-within .button:before,.hover-target:hover .button:before{background-color:var(--plugin--background);}.hover-target:focus-within .button>span,.hover-target:hover .button>span{display:block;position:absolute;top:calc(100% + 3px);left:50%;translate:-50%;margin:0;padding:5px;height:auto;white-space:pre-wrap;line-height:1;font-size:9px;background-color:var(--icon--color);width:35px;text-align:center;border-radius:0 0 3px 3px;}';var Vr=new CSSStyleSheet;Vr.replaceSync(Kr);var xt=class extends HTMLElement{connectedCallback(){if(this._initialized)return;this._initialized=!0,this.setAttribute("slot","plugin-settings"),this.attachShadow({mode:"open"}),this.shadowRoot.adoptedStyleSheets.push(Vr),this.shadowRoot.innerHTML=`
|
|
1
|
+
var _e=new WeakMap,It=!0,Yr=navigator.userAgent.toLowerCase().indexOf("firefox")>-1,Xr=Yr?5e6:1e7,Ge=0,ye=0,jt=performance.now();function qr(){let e=performance.now(),t=e-jt,o=Ge,r=ye*1e3/t,n=1e3/o,s=ye;return Ge=0,ye=0,jt=e,{avg:o,real_fps:r,virtual_fps:n,num_frames:s,elapsed:t}}function Kr(e){Ge=(Ge*ye+e)/(ye+1),ye+=1}var ie=new Map;async function Zr(e){return await new Promise(requestAnimationFrame),await ie.get(e)?.promise}async function Gt(e,t){if(ie.has(e)&&(await ie.get(e)?.promise,ie.has(e))){await ie.get(e)?.promise;return}ie.set(e,Promise.withResolvers());try{return await t()}finally{let o=ie.get(e);ie.delete(e),o?.resolve(void 0)}}var Jr=":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%;}div.rt-tree-container{display:flex;align-items:center;height:100%;}slot{position:absolute;overflow:hidden;overflow-anchor:none;}",Qr=":host ::slotted(table){--regular-table--transform-x:0px;--regular-table--transform-y:0px;--regular-table--clip-x:0px;--regular-table--clip-y:0px;}",en="--regular-table--clip-x",tn="--regular-table--clip-y",on="--regular-table--transform-x",rn="--regular-table--transform-y",nn='<div class="rt-virtual-panel"></div><div class="rt-scroll-table-clip"><slot></slot></div>',sn=class extends HTMLElement{u;n;i;a;M;v;T;C;S;K;s;e;t;E;L;table_model;o;async draw(e={}){return typeof e.throttle<"u"&&!e.throttle?await $t.call(this,e):await Gt(this,()=>$t.call(this,e))}async flush(){await Zr(this)}J(){if(this.attachShadow({mode:"open"}),!this.shadowRoot)return;let e=new CSSStyleSheet;e.replaceSync(Jr);let t=new CSSStyleSheet;t.replaceSync(Qr),this.u=t.cssRules[0],this.shadowRoot.adoptedStyleSheets=[e,t],this.shadowRoot.innerHTML=nn;let[o,r]=this.shadowRoot.children;this.s=r,this.n=o,this.P()}P(){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:o,end_row:r}=this.Z(e),{start_col:n,end_col:s}=this.H(t);return{start_col:n,end_col:s,start_row:o,end_row:r}}ee({start_col:e,end_col:t,start_row:o,end_row:r}){o=Math.floor(o),r=Math.ceil(r),e=Math.floor(e),t=Math.ceil(t);let n=this.T!==e,s=this.M!==o||this.v!==r||this.C!==t;return this.T=e,this.C=t,this.M=o,this.v=r,{invalid_column:n,invalid_row:s}}D(e,t){if(e)if(this.i==="vertical"||this.i==="none"){let o=0;for(let r of this.e.indices)o+=r||0;this.n.style.width=o.toPrecision(10)+"px"}else{let o=this.te(t);if(o!==0){let r=this.a.width+o+2;this.n.style.width=r.toPrecision(10)+"px"}else this.n.style.width="1px"}}k(e){let{row_height:t=19}=this.e,o=this.t.column_headers_length*t,r;r=Math.min(Xr,e*t+o),this.n.style.height=`${r.toPrecision(10)}px`}O(e){let t=(this.e.row_height||20)*(e.start_row%1)||0,o=(this.e.indices[(this.table_model.d||0)+Math.floor(e.start_col)]||0)*(e.start_col%1)||0;this.u.style.setProperty(en,`${o}px`),this.u.style.setProperty(tn,`${t}px`),this.u.style.setProperty(on,`${-o}px`),this.u.style.setProperty(rn,`${-t}px`)}H(e){if(this.i==="none"||this.i==="vertical")return{start_col:0,end_col:1/0};{let t=this.ie(),o=this.table_model.num_columns()||Math.min(e,Math.ceil(this.a.width/60)),r=t+o+1;return{start_col:t,end_col:r}}}Z(e){let{height:t,containerHeight:o}=this.a,r=this.e.row_height||19,n=this.t.column_headers_length,s=Math.max(1,this.n.offsetHeight-o),i=Math.max(Math.ceil(this.scrollTop),0)/s,l=t/r-n,a=Math.max(0,(e||0)-l)*i,m=Math.max(0,Math.min(a+l,e));return{start_row:a,end_row:m}}ie(){let e=this.t.row_headers_length,t=0,o=0,r=0;for(;o<this.scrollLeft;){let n=this.e.indices[t+e];r=this.scrollLeft-o,t+=1,o+=n!==void 0?n:60}return t+=r/(this.e.indices[t+e-1]||60),Math.max(0,t-1)}se(e){let t=0;if(this.t.row_headers_length>0)for(let n of this.e.indices.slice(0,this.t.row_headers_length))t+=n||0;let o=this.t.row_headers_length,r=e;for(;t<this.a.width&&r>=0;)r--,t+=this.e.indices[r+o]||60;return Math.min(e-1,r+1)}te(e){let t=this.t.row_headers_length,o=this.se(e),r=t,n=0;for(;r<o+t;)n+=this.e.indices[r]||60,r++;if(r<this.e.indices.length){let s=0,i=this.t.row_headers_length;for(let l=0;l<i&&l<this.e.indices.length;l++)s+=this.e.indices[l]||0;n+=Math.max(0,(this.e.indices[r]||0)-(this.a.width-(s||0))||0)}return n}};async function $t(e){let t=It&&performance.now(),{invalid_viewport:o=!0,preserve_width:r=!1}=e,{num_columns:n,num_rows:s,num_row_headers:i,num_column_headers:l,row_height:a}=await this.t.view(0,0,0,0);this.e.row_height=a||this.e.row_height,i!==void 0&&(this.t.row_headers_length=i),l!==void 0&&(this.t.column_headers_length=l);let m=this.i==="none"||this.i==="horizontal",c=this.i==="none"||this.i==="vertical",d=s||0,p=n||0;this.a={width:c?1/0:this.s.clientWidth,height:m?1/0:this.s.clientHeight,containerHeight:m?1/0:this.clientHeight},this.k(d),r||this.D(o,p);let f=this.Q(d,p);this.table_model.updateColumnWidthStyles(f,this.t.row_headers_length);let{invalid_row:g,invalid_column:y}=this.ee(f),_=this.S||y;if(_||g||o){let b=[],E=!0;for await(let D of this.table_model.draw(this.a,this.t,this.K,r,f,p)){D!==void 0&&b.push(...D),E&&(this.O(f),E=!1),this.L=!0;let A=this.o;for(let k of A)await k({detail:this});if(this.L=!1,!this.E&&D!==void 0)break;this.E=!1}let M=this.e.row_height;this.table_model.autosize_cells(b,a),this.table_model.header.reset_header_cache(),M!==this.e.row_height&&this.k(d),r||this.D(_,p),this.S=!1}else this.O(f);It&&Kr(performance.now()-t)}var ln=!1,an=class extends sn{W;$;I;F;p;register_listeners(){this.addEventListener("mousedown",this.oe.bind(this)),this.addEventListener("scroll",this.R.bind(this),{passive:!0}),this.ne()}async R(e){e.stopPropagation(),await this.draw({invalid_viewport:!1}),this.dispatchEvent(new CustomEvent("regular-table-scroll"))}ne(){this.addEventListener("mousewheel",this.re.bind(this),{passive:!0}),ln&&(this.addEventListener("touchmove",this.le.bind(this)),this.addEventListener("touchstart",this.ae.bind(this),{passive:!0}))}re(e){if(!window.hasOwnProperty("safari"))return;let t=e,{clientWidth:o,clientHeight:r,scrollTop:n,scrollLeft:s}=this;t.preventDefault(),t.returnValue=!1;let i=Math.max(1,this.n.offsetHeight-r),l=Math.max(1,this.n.offsetWidth-o);this.scrollTop=Math.max(0,Math.min(i,n+t.deltaY)),this.scrollLeft=Math.max(0,Math.min(l,s+t.deltaX)),this.R(t)}le(e){e.stopPropagation(),e.preventDefault(),e.returnValue=!1;let{clientWidth:t,clientHeight:o}=this,r=Math.max(1,this.n.offsetHeight-o),n=Math.max(1,this.n.offsetWidth-t);this.scrollTop=Math.min(r,(this.W||0)+((this.I||0)-e.touches[0].pageY)),this.scrollLeft=Math.min(n,(this.$||0)+((this.F||0)-e.touches[0].pageX)),this.R(e)}ae(e){this.I=e.touches[0].pageY,this.F=e.touches[0].pageX,this.W=this.scrollTop,this.$=this.scrollLeft}async he(e){let t=e.target,o=t.classList.contains("rt-column-resize");for(;t.tagName!=="TD"&&t.tagName!=="TH";)if(t=t.parentElement,!this.contains(t))return;let r=_e.get(t);if(o){e.stopImmediatePropagation(),e.shiftKey?(this.e.override={},this.e.auto=[],this.e.indices=[]):(delete this.e.override[r.size_key],this.e.auto[r.size_key]=void 0,this.e.indices[r.size_key]=void 0),this.table_model.updateColumnWidthStyles({start_row:0,end_row:0,...this.H(0)},this.t.row_headers_length);for(let n 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 s of e.shiftKey?n:[n[r.B]])s&&s.classList.remove("rt-cell-clip");await this.draw()}}async de(e){if(e.button!==0)return;let t=e.target,o=t.classList.contains("rt-column-resize");for(;t.tagName!=="TD"&&t.tagName!=="TH";)if(t=t.parentElement,!this.contains(t))return;let r=_e.get(t);o&&(this.ce(e,t,r),e.stopImmediatePropagation())}async oe(e){let t=performance.now();this.p&&t-this.p<500?(this.p=t,await this.he(e)):(this.p=t,await this.de(e))}ce(e,t,o){let{virtual_x:r,size_key:n}=o,s=e.pageX,i=(r||0)+t.colSpan-1,l=this.table_model.header.get_column_header(i),a=this.e.indices[n||0]||0,m=d=>Gt(this,async()=>await this.ue(d,l,s,a,n||0,i)),c=()=>{document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",c);let d=this.e.override[n||0],p=this.e.indices[n||0]!==d;this.e.indices[n||0]=d,p&&this.draw()};document.addEventListener("mousemove",m),document.addEventListener("mouseup",c)}async ue(e,t,o,r,n,s){await new Promise(requestAnimationFrame);let i=e.pageX-o,l=Math.max(1,r+i);if(this.e.override[n]=l,i<0)await this.draw({preserve_width:!0,throttle:!1});else{this.table_model.updateColumnWidthStyles({start_row:0,end_row:0,...this.H(0)},this.t.row_headers_length);let a=(this.e.auto[n]||0)>l;t.classList.toggle("rt-cell-clip",a);for(let m of this.table_model.body.cells){let c=m[s];c&&c.classList.toggle("rt-cell-clip",a)}}}},cn=class{N;b;c;constructor(e){this.N=e,this.b=[],this.c=0}reset(){this.c=0}get(){this.b[this.c]||(this.b[this.c]=document.createElement(this.N));let e=this.b[this.c];return this.c+=1,e}},Ut=class{e;me;m;table;cells;rows;constructor(e,t,o){this.e=e,this.me=t,this.m=new cn("span"),this.table=o,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}Te(e,t){_e.set(e,t)}f(e){if(!e)return{value:void 0};let t=_e.get(e);return t||(t={value:void 0},_e.set(e,t)),t}X(e,t){let{tr:o,row_container:r}=this.w(e),n=r[t];return n&&(o.removeChild(n),r.splice(t,1,void 0)),n}_(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 o=this.cells[e];return o||(o=this.cells[e]=[]),{tr:t,row_container:o}}A(e="TD",t,o){let{tr:r,row_container:n}=this.w(t),s=n[o];if(!s)if(o<n.length){s=n[o]=document.createElement(e);let i=n.slice(o+1).find(l=>l);r.insertBefore(s,i||null)}else s=n[o]=document.createElement(e),r.appendChild(s);if(s.tagName!==e){let i=document.createElement(e);r.replaceChild(i,s),this.cells[t].splice(o,1,i),s=i}return s}G(e){for(let t=0;t<this.rows.length;t++){let o=this.rows[t],r=this.cells[t];r.length=(Array.isArray(e)?e[t]:e)||0;let n=this.cells[t].filter(i=>i!==void 0).length,s=[];for(let i=n;i<o.children.length;i++)s.push(o.children[i]);for(let i of s)i.remove()}}V(e){let t=[];for(let o=e;o<this.table.children.length;o++)t.push(this.table.children[o]);for(let o of t)o.remove();this.rows.length=e,this.cells.length=e}},dn=class extends Ut{r;l;constructor(e,t,o){super(e,t,o),this.r=[],this.l=[]}Y(e,t,o){let r=this.A("TH",t,e[t]||0);if(e[t]+=1,r.removeAttribute("colspan"),r.textContent="",o instanceof HTMLElement)r.appendChild(o);else{let s=this.m.get();s.textContent=String(o??""),r.appendChild(s)}let n=this.m.get();return n.className="rt-column-resize",r.appendChild(n),r}fe(e,t,o){let r=this.f(o);return r.column_header=e,r.value=t,r}_e(e,t,o,r){let n=this.f(o);if(n.column_header=e,n.value=t,n.size_key=Array.isArray(r)?r[0]:r,!Array.isArray(r)||r.length<=1){let s=this.e.override[n.size_key||0],i=this.e.auto[n.size_key||0]||0;s?o.classList.toggle("rt-cell-clip",i>s):o.classList.remove("rt-cell-clip")}return n}get_column_header(e){return this.A("TH",this.num_rows()-1,e)}draw(e,t,o,r,n,s,i,l,a){let m=t?.length;if(m===0)return;let c,d,p,f;l=typeof l>"u"?m-1:l;for(let g=0;g<m;g++){if(p=t[g]?t[g]:"",this.l[g]=this.l[g]||0,g<l)a&&this.r?.[g]?.[0]?.value===p?(c=this.r[g][1],this.r[g][2]+=1,o===1&&(this.r[g][0].row_header_x=Array.isArray(n)?n[0]:n),c.setAttribute("colspan",String(this.r[g][2]))):(c=this.Y(this.l,g,p),d=this.fe(t,p,c),this.r[g]=[d,c,1]);else{c=this.Y(this.l,g,p),d=this._e(e.length>0?e:t,p,c,n),typeof f>"u"&&(f={th:c,metadata:d});for(let[y]of this.r)y.size_key=d.size_key;c.removeAttribute("colspan")}this.w(g).tr.classList.toggle("rt-autosize",g===l),c.classList.toggle("rt-group-corner",r===void 0),d&&(d.x=typeof r>"u"?r:Math.floor(r),d.column_header_y=g,d.x0=Math.floor(s),d.virtual_x=i,o===1&&(d.row_header_x=Array.isArray(n)?n[0]:n))}return this.V(this.l.length),f=f||{th:c,metadata:d},f}clean(){this.G(this.l)}reset_header_cache(){this.l=[],this.r=[]}},mn=class extends Ut{U(e,t,o,r,{column_name:n},{ridx_offset:s},i){let l=this.A(e,t,r),a=this.f(l);a.y=t+Math.floor(s);let m=a.size_key=i||0;e==="TD"&&(a.column_header=n);let c=this.e.override[m];if(c){let d=(this.e.auto[m]||0)>c;l.classList.contains("rt-cell-clip")!==d&&l.classList.toggle("rt-cell-clip",d)}else l.classList.remove("rt-cell-clip");return a.value!==o&&(o instanceof HTMLElement?(l.textContent="",l.appendChild(o)):l.textContent=String(o??"")),a.value=o,{td:l,metadata:a}}draw(e,t,o,r=!1,n,s,i,l){let{cidx:a,column_data:m,row_headers:c,column_data_listener_metadata:d}=t,{row_height:p}=o,f,g=[],y=[],_=0,b=[],E=r?o.row_headers_length??1:1,M=Math.floor(o.ridx_offset),D=Math.ceil(o.y1),A=Math.ceil(o.x1),k=n===void 0?n:Math.floor(n),h=s===void 0?void 0:Math.floor(s),v=Math.floor((n??0)-(s??0));for(let S=0;S<E;S++){_=0;let x=a+S;for(let T of m){let P;if(r){let L=T,N=L[S],z=g[S]||1,J=this._(_-z,x),te=this.f(J),Pe=b[_]||1,be=this._(_,x-Pe),Wt=this.f(be);if(l&&be&&(Wt.value===N||N===void 0)&&!be.hasAttribute("rowspan")){let oe=b[_]=Pe+1;be.setAttribute("colspan",String(oe)),this.X(_,x)}else if(l&&J&&te.value===N&&!J.hasAttribute("colspan")){let oe=g[S]=z+1;J.setAttribute("rowspan",String(oe)),this.X(_,x)}else{P=this.U("TH",_,N,x,t,o,S);let oe=P.td,se=P.metadata;oe.style.display="",oe.removeAttribute("rowspan"),oe.removeAttribute("colspan"),se.row_header=L,se.row_header_x=S,se.y0=M,se.y1=D,se.virtual_x=S,h!==void 0&&(se.x0=h),g[S]=1,b[_]=1,y[S]=P}}else{P=this.U("TD",_,T,a,t,o,i??0);let L=P.metadata;d&&(L.user=d[_]),L.x=k,L.x1=A,L.row_header=c?.[_]||[],L.y0=M,L.y1=D,L.dx=v,L.dy=(L.y??0)-M,L.virtual_x=a,h!==void 0&&(L.x0=h),y[0]=P}if(_++,f=P?P.metadata:f,p=p||P?.td.offsetHeight,_*(p??0)>e)break}}return this.V(_),{tds:y,ridx:_,row_height:p}}clean({ridx:e,cidx:t}){this.V(e),this.G(t)}},pn=class{e;d=0;header;body;pe(e,t){let{start_row:o=0,start_col:r=0,end_col:n=0,end_row:s=0}=e,i=this.e.indices[(this.d||0)+Math.floor(e.start_col)]||0;return{viewport_width:0,selected_id:t,ridx_offset:o,sub_cell_offset:i,x0:r,x1:n,y1:s,row_height:this.e.row_height,row_headers_length:this.d}}be(e,t,o,r,n,s,i,l,a,m){let c=[`${t}`],d=[],p={column_name:c,cidx:0,column_data:e,row_headers:e,first_col:!0},f=Math.floor(i),g=this.body.draw(r,p,{...n,x0:0},!0,void 0,void 0,f,m),y=[];for(let b=0;b<t;b++){let E=this.header.draw(c,Array(o).fill(""),1,void 0,b,i,b,l,a);E&&y.push(E)}for(let b=0;b<y.length;b++){let{th:E}=y[b];n.viewport_width+=this.e.indices[b]||E.offsetWidth}n.row_height=n.row_height||g.row_height;let _=e[0].length;if(!s)for(let b=0;b<t;b++){let{td:E,metadata:M}=g.tds[b]||{},{th:D,metadata:A}=y[b]||{};(E||D)&&d.push([D||E,A||M])}return{cont_body:g,first_col:!1,B:_,last_cells:d}}we(e,t,o,r,n,s){let i=0,l=0;for(;this.e.indices.length>n+s+i+1&&l+t.viewport_width<o;)i++,l+=this.e.indices[n+s+i]||0;if(l+t.viewport_width<o){let a=Math.min(r,e.start_col+5);e.end_col=Math.max(1,Math.min(r,a))}else e.end_col=Math.max(1,Math.min(r,e.start_col+i))}ge(e,t,o,r,n,s,i,l,a,m){let c=t.column_headers?.[e]||[],d=t.data[e],p=t.metadata?.[e],f={column_name:c,cidx:o,column_data:d,column_data_listener_metadata:p,row_headers:t.row_headers,first_col:i},g=e+r,y=o+Math.floor(r),_=this.header.draw(c,c,void 0,g,y,r,o,l,a),b=this.body.draw(n,f,s,!1,g,r,y,m);return{cont_head:_,cont_body:b}}async ye(e,t,o,r,n,s,i,l,a){let m=Math.max(e.end_col,0);e.start_col=m,this.we(e,n,s,i,l,a);let c=await t(Math.floor(e.start_col),Math.floor(e.start_row),Math.ceil(e.end_col),Math.ceil(e.end_row)),d,p;if(typeof c.column_header_merge_depth<"u"&&(d=c.column_header_merge_depth),typeof c.merge_headers<"u"&&(p=c.merge_headers),c.data.length===0)return{column_header_merge_depth:d,merge_headers:p};e.end_col=e.start_col+c.data.length;for(let f=0;f<c.data.length;f++)o.data[r+f]=c.data[f],c.metadata&&o.metadata&&(o.metadata[r+f]=c.metadata[f]),o.column_headers&&c.column_headers?.[f]&&(o.column_headers[r+f]=c.column_headers[f]);return{column_header_merge_depth:d,merge_headers:p}}g(e,t){this.body.clean({ridx:e?.ridx||0,cidx:t}),this.header.clean(),this.body.m.reset(),this.header.m.reset()}},Ft=class extends pn{table;h;j;constructor(e,t,o){super(),this.e=t,this.clear(o);let[r]=o.children,[n,s]=r.children;this.table=r,this.header=new dn(t,e,n),this.body=new mn(t,e,s)}num_columns(){return this.header.num_columns()}clear(e){e.innerHTML='<table cellspacing="0"><thead></thead><tbody></tbody></table>'}autosize_cells(e,t){let o=[];for(let[r,n]of e){let s=r.getBoundingClientRect();o.push({cell:r,metadata:n,box:s})}for(let{metadata:r,box:n}of o)this.e.row_height=t??Math.max(10,Math.min(this.e.row_height??n.height,n.height)),r?.size_key!==void 0&&(this.e.indices[r.size_key]=n.width,n.width&&this.e.override[r.size_key]===void 0&&(this.e.auto[r.size_key]=n.width))}clearWidthStyles(){this.h?.replaceSync("")}updateColumnWidthStyles(e,t){let o=[],r;for(r=0;r<t;r++){let n=this.e.override[r],s=this.e.auto[r];if(n!==void 0){let i=r+1;o.push(`thead tr.rt-autosize th:nth-child(${i}),`,`tbody td.rt-cell-clip:nth-child(${i})`,`{min-width:${n}px;max-width:${n}px;}`)}else if(s!==void 0){let i=r+1;o.push(`thead tr.rt-autosize th:nth-child(${i}),`,`tbody td.rt-cell-clip:nth-child(${i})`,`{min-width:${s}px;max-width:none;}`)}}for(let n=r;n<r+(Math.ceil(e.end_col)-Math.floor(e.start_col));n++){let s=this.e.override[n+Math.floor(e.start_col)],i=this.e.auto[n+Math.floor(e.start_col)];if(s!==void 0){let l=n+1;o.push(`thead tr.rt-autosize th:nth-child(${l}),`,`tbody td.rt-cell-clip:nth-child(${l})`,`{min-width:${s}px;max-width:${s}px;}`)}else if(i!==void 0){let l=n+1;o.push(`thead tr.rt-autosize th:nth-child(${l}),`,`tbody td.rt-cell-clip:nth-child(${l})`,`{min-width:${i}px;max-width:none;}`)}}o.length>0?this.Me(o.join(`
|
|
2
|
+
`)):this.h&&this.h.replaceSync("")}Me(e){if(e===this.j)return;let t=this.table.getRootNode();!t||!t.adoptedStyleSheets||(this.h||(this.h=new CSSStyleSheet,t.adoptedStyleSheets=[...t.adoptedStyleSheets,this.h]),this.h.replaceSync(e),this.j=e)}async*draw(e,t,o,r,n,s){let{width:i,height:l}=e,a=await t.view(Math.floor(n.start_col),Math.floor(n.start_row),Math.ceil(n.end_col),Math.ceil(n.end_row)),{column_header_merge_depth:m,merge_headers:c="both"}=a,d=c==="both"||c==="row",p=c==="both"||c==="column",f=n.start_col??0;if(a.row_headers){let k=0;for(let h of a.row_headers)h.length>k&&(k=h.length);this.d=k;for(let h=0;h<a.row_headers.length;h++)a.row_headers[h].length=this.d||0}t.row_headers_length=a.num_row_headers??a.row_headers?.[0]?.length??0,t.column_headers_length=a.num_column_headers??a.column_headers?.[0]?.length??0;let{view:g,row_headers_length:y,column_headers_length:_}=t,b=this.pe(n,o),E,M=0,D=[],A=!0;if(a.row_headers?.length){let k=this.be(a.row_headers,y,_,l,b,r,f,m,p,d);E=k.cont_body,A=k.first_col,M=k.B,D=k.last_cells}try{let k=0,h=s-n.start_col;for(;k<h;){if(!a.data[k]){yield void 0;let T=await this.ye(n,g,a,k,b,i,s,M,f);if(T.column_header_merge_depth!==void 0&&(m=T.column_header_merge_depth),T.merge_headers!==void 0&&(c=T.merge_headers),!a.data[k]){this.g(E,M),yield D;return}}let{cont_head:v,cont_body:S}=this.ge(k,a,M,f,l,b,A,m,p,d);if(E=S,A=!1,!r)for(let{td:T,metadata:P}of E.tds)D.push([v?.th||T,v?.metadata||P]);let x=this.e.indices[M+Math.floor(f)]||v?.th?.offsetWidth;if(!x){x=0;for(let{td:T}of E.tds)x+=T?.offsetWidth||0}if(b.viewport_width+=x,b.row_height=b.row_height||E.row_height,M++,k++,this.q(b,i)){this.g(E,M),yield D,b.viewport_width=0;for(let[T]of D)b.viewport_width+=T.offsetWidth;if(this.q(b,i))return}}this.g(E,M),yield D}finally{this.g(E,M)}}q(e,t){return e.viewport_width-e.sub_cell_offset>t}},fn=["both","horizontal","vertical","none"],un=class extends an{z;constructor(){super(),this.e={auto:[],override:{},indices:[]},this.o=[],this.z=!1}connectedCallback(){this.z||(this.J(),this.register_listeners(),this.setAttribute("tabindex","0"),this.z=!0,this.table_model=new Ft(this.s,this.e,this))}ve(){this.M=void 0,this.v=void 0,this.T=void 0,this.C=void 0}Ce(){this.e.indices=[],this.scrollTop=0,this.scrollLeft=0,this.ve()}resetAutoSize(){this.e.auto=[],this.e.override={},this.e.indices=[]}saveColumnSizes(){return structuredClone(this.e.override)}restoreColumnSizes(e){this.e.override=structuredClone(e)}clear(){this.table_model=new Ft(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 o=this.o.indexOf(e);this.o.splice(o,1)}}removeStyleListener(e){let t=this.o.length;this.o=this.o.filter(o=>o!==e),console.assert(this.o.length===t-1,"No listener found")}invalidate(){if(!this.L)throw new Error("Cannot call `invalidate()` outside of a `StyleListener`");this.E=!0}getMeta(e){if(!(typeof e>"u")){if(e instanceof HTMLElement)return _e.get(e);if(e.row_header_x>=0){if(e.row_header_x<this.t.row_headers_length){let t=this.table_model.body._(e.y,e.row_header_x);return this.getMeta(t)}}else if(e.column_header_y>=0){if(e.column_header_y<this.t.column_headers_length){let t=this.table_model.body._(e.column_header_y,e.y);return this.getMeta(t)}}else return this.getMeta(this.table_model.body._(e.dy,e.dx+(this.table_model.d||0)))}}getDrawFPS(){return qr()}async scrollToCell(e,t){if(!this.t){console.warn("data listener not configured");return}let o=this.e.row_height||19;this.scrollTop=Math.ceil(o*t);let r=0;for(;e>0;)e--,r+=this.e.indices[e+this.t.row_headers_length]||60;this.scrollLeft=Math.ceil(r),await new Promise(requestAnimationFrame),await this.flush()}setDataListener(e,{virtual_mode:t="both",preserve_state:o=!1}={}){console.assert(fn.indexOf(t)>-1,`Unknown virtual_mode ${t}; valid options are "both" (default), "horizontal", "vertical" or "none"`);let r=this.i!==t;o?(console.assert(!r,"preserve_state called with modified virtual_mode"),this.t.view=e):(this.i=t,this.S=!0,this.t={view:e,row_headers_length:0,column_headers_length:0},r&&this.P())}};document.createElement("regular-table").constructor===HTMLElement&&window.customElements.define("regular-table",un);var $=Symbol("Perspective Column Config");var{min:hn,max:gn}=Math,G=(e,t=0,o=1)=>hn(gn(t,e),o);var ue=e=>{e._clipped=!1,e._unclipped=e.slice(0);for(let t=0;t<=3;t++)t<3?((e[t]<0||e[t]>255)&&(e._clipped=!0),e[t]=G(e[t],0,255)):t===3&&(e[t]=G(e[t],0,1));return e};var Bt={};for(let e of["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"])Bt[`[object ${e}]`]=e.toLowerCase();function C(e){return Bt[Object.prototype.toString.call(e)]||"object"}var w=(e,t=null)=>e.length>=3?Array.prototype.slice.call(e):C(e[0])=="object"&&t?t.split("").filter(o=>e[0][o]!==void 0).map(o=>e[0][o]):e[0].slice(0);var F=e=>{if(e.length<2)return null;let t=e.length-1;return C(e[t])=="string"?e[t].toLowerCase():null};var{PI:Ue,min:Be,max:Ye}=Math,I=e=>Math.round(e*100)/100,De=e=>Math.round(e*100)/100,U=Ue*2,Xe=Ue/3,Yt=Ue/180,Xt=180/Ue;function qe(e){return[...e.slice(0,3).reverse(),...e.slice(3)]}var R={format:{},autodetect:[]};var bt=class{constructor(...t){let o=this;if(C(t[0])==="object"&&t[0].constructor&&t[0].constructor===this.constructor)return t[0];let r=F(t),n=!1;if(!r){n=!0,R.sorted||(R.autodetect=R.autodetect.sort((s,i)=>i.p-s.p),R.sorted=!0);for(let s of R.autodetect)if(r=s.test(...t),r)break}if(R.format[r]){let s=R.format[r].apply(null,n?t:t.slice(0,-1));o._rgb=ue(s)}else throw new Error("unknown format: "+t);o._rgb.length===3&&o._rgb.push(1)}toString(){return C(this.hex)=="function"?this.hex():`[${this._rgb.join(",")}]`}},u=bt;var qt="3.1.2";var Kt=(...e)=>new u(...e);Kt.version=qt;var O=Kt;var bn={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},le=bn;var _n=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,yn=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,wn=e=>{if(e.match(_n)){(e.length===4||e.length===7)&&(e=e.substr(1)),e.length===3&&(e=e.split(""),e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]);let t=parseInt(e,16),o=t>>16,r=t>>8&255,n=t&255;return[o,r,n,1]}if(e.match(yn)){(e.length===5||e.length===9)&&(e=e.substr(1)),e.length===4&&(e=e.split(""),e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]);let t=parseInt(e,16),o=t>>24&255,r=t>>16&255,n=t>>8&255,s=Math.round((t&255)/255*100)/100;return[o,r,n,s]}throw new Error(`unknown hex color: ${e}`)},Ke=wn;var{round:Ze}=Math,vn=(...e)=>{let[t,o,r,n]=w(e,"rgba"),s=F(e)||"auto";n===void 0&&(n=1),s==="auto"&&(s=n<1?"rgba":"rgb"),t=Ze(t),o=Ze(o),r=Ze(r);let l="000000"+(t<<16|o<<8|r).toString(16);l=l.substr(l.length-6);let a="0"+Ze(n*255).toString(16);switch(a=a.substr(a.length-2),s.toLowerCase()){case"rgba":return`#${l}${a}`;case"argb":return`#${a}${l}`;default:return`#${l}`}},Je=vn;u.prototype.name=function(){let e=Je(this._rgb,"rgb");for(let t of Object.keys(le))if(le[t]===e)return t.toLowerCase();return e};R.format.named=e=>{if(e=e.toLowerCase(),le[e])return Ke(le[e]);throw new Error("unknown color name: "+e)};R.autodetect.push({p:5,test:(e,...t)=>{if(!t.length&&C(e)==="string"&&le[e.toLowerCase()])return"named"}});u.prototype.alpha=function(e,t=!1){return e!==void 0&&C(e)==="number"?t?(this._rgb[3]=e,this):new u([this._rgb[0],this._rgb[1],this._rgb[2],e],"rgb"):this._rgb[3]};u.prototype.clipped=function(){return this._rgb._clipped||!1};var Oe={Kn:18,labWhitePoint:"d65",Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452,kE:.008856451679035631,kKE:8,kK:903.2962962962963,RefWhiteRGB:{X:.95047,Y:1,Z:1.08883},MtxRGB2XYZ:{m00:.4124564390896922,m01:.21267285140562253,m02:.0193338955823293,m10:.357576077643909,m11:.715152155287818,m12:.11919202588130297,m20:.18043748326639894,m21:.07217499330655958,m22:.9503040785363679},MtxXYZ2RGB:{m00:3.2404541621141045,m01:-.9692660305051868,m02:.055643430959114726,m10:-1.5371385127977166,m11:1.8760108454466942,m12:-.2040259135167538,m20:-.498531409556016,m21:.041556017530349834,m22:1.0572251882231791},As:.9414285350000001,Bs:1.040417467,Cs:1.089532651,MtxAdaptMa:{m00:.8951,m01:-.7502,m02:.0389,m10:.2664,m11:1.7135,m12:-.0685,m20:-.1614,m21:.0367,m22:1.0296},MtxAdaptMaI:{m00:.9869929054667123,m01:.43230526972339456,m02:-.008528664575177328,m10:-.14705425642099013,m11:.5183602715367776,m12:.04004282165408487,m20:.15996265166373125,m21:.0492912282128556,m22:.9684866957875502}},Q=Oe,xn=new Map([["a",[1.0985,.35585]],["b",[1.0985,.35585]],["c",[.98074,1.18232]],["d50",[.96422,.82521]],["d55",[.95682,.92149]],["d65",[.95047,1.08883]],["e",[1,1,1]],["f2",[.99186,.67393]],["f7",[.95041,1.08747]],["f11",[1.00962,.6435]],["icc",[.96422,.82521]]]);function B(e){let t=xn.get(String(e).toLowerCase());if(!t)throw new Error("unknown Lab illuminant "+e);Oe.labWhitePoint=e,Oe.Xn=t[0],Oe.Zn=t[1]}function ae(){return Oe.labWhitePoint}var En=(...e)=>{e=w(e,"lab");let[t,o,r]=e,[n,s,i]=kn(t,o,r),[l,a,m]=yt(n,s,i);return[l,a,m,e.length>3?e[3]:1]},kn=(e,t,o)=>{let{kE:r,kK:n,kKE:s,Xn:i,Yn:l,Zn:a}=Q,m=(e+16)/116,c=.002*t+m,d=m-.005*o,p=c*c*c,f=d*d*d,g=p>r?p:(116*c-16)/n,y=e>s?Math.pow((e+16)/116,3):e/n,_=f>r?f:(116*d-16)/n,b=g*i,E=y*l,M=_*a;return[b,E,M]},_t=e=>{let t=Math.sign(e);return e=Math.abs(e),(e<=.0031308?e*12.92:1.055*Math.pow(e,1/2.4)-.055)*t},yt=(e,t,o)=>{let{MtxAdaptMa:r,MtxAdaptMaI:n,MtxXYZ2RGB:s,RefWhiteRGB:i,Xn:l,Yn:a,Zn:m}=Q,c=l*r.m00+a*r.m10+m*r.m20,d=l*r.m01+a*r.m11+m*r.m21,p=l*r.m02+a*r.m12+m*r.m22,f=i.X*r.m00+i.Y*r.m10+i.Z*r.m20,g=i.X*r.m01+i.Y*r.m11+i.Z*r.m21,y=i.X*r.m02+i.Y*r.m12+i.Z*r.m22,_=(e*r.m00+t*r.m10+o*r.m20)*(f/c),b=(e*r.m01+t*r.m11+o*r.m21)*(g/d),E=(e*r.m02+t*r.m12+o*r.m22)*(y/p),M=_*n.m00+b*n.m10+E*n.m20,D=_*n.m01+b*n.m11+E*n.m21,A=_*n.m02+b*n.m12+E*n.m22,k=_t(M*s.m00+D*s.m10+A*s.m20),h=_t(M*s.m01+D*s.m11+A*s.m21),v=_t(M*s.m02+D*s.m12+A*s.m22);return[k*255,h*255,v*255]},we=En;var Cn=(...e)=>{let[t,o,r,...n]=w(e,"rgb"),[s,i,l]=vt(t,o,r),[a,m,c]=Mn(s,i,l);return[a,m,c,...n.length>0&&n[0]<1?[n[0]]:[]]};function Mn(e,t,o){let{Xn:r,Yn:n,Zn:s,kE:i,kK:l}=Q,a=e/r,m=t/n,c=o/s,d=a>i?Math.pow(a,1/3):(l*a+16)/116,p=m>i?Math.pow(m,1/3):(l*m+16)/116,f=c>i?Math.pow(c,1/3):(l*c+16)/116;return[116*p-16,500*(d-p),200*(p-f)]}function wt(e){let t=Math.sign(e);return e=Math.abs(e),(e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4))*t}var vt=(e,t,o)=>{e=wt(e/255),t=wt(t/255),o=wt(o/255);let{MtxRGB2XYZ:r,MtxAdaptMa:n,MtxAdaptMaI:s,Xn:i,Yn:l,Zn:a,As:m,Bs:c,Cs:d}=Q,p=e*r.m00+t*r.m10+o*r.m20,f=e*r.m01+t*r.m11+o*r.m21,g=e*r.m02+t*r.m12+o*r.m22,y=i*n.m00+l*n.m10+a*n.m20,_=i*n.m01+l*n.m11+a*n.m21,b=i*n.m02+l*n.m12+a*n.m22,E=p*n.m00+f*n.m10+g*n.m20,M=p*n.m01+f*n.m11+g*n.m21,D=p*n.m02+f*n.m12+g*n.m22;return E*=y/m,M*=_/c,D*=b/d,p=E*s.m00+M*s.m10+D*s.m20,f=E*s.m01+M*s.m11+D*s.m21,g=E*s.m02+M*s.m12+D*s.m22,[p,f,g]},ve=Cn;u.prototype.lab=function(){return ve(this._rgb)};var Sn=(...e)=>new u(...e,"lab");Object.assign(O,{lab:Sn,getLabWhitePoint:ae,setLabWhitePoint:B});R.format.lab=we;R.autodetect.push({p:2,test:(...e)=>{if(e=w(e,"lab"),C(e)==="array"&&e.length===3)return"lab"}});u.prototype.darken=function(e=1){let t=this,o=t.lab();return o[0]-=Q.Kn*e,new u(o,"lab").alpha(t.alpha(),!0)};u.prototype.brighten=function(e=1){return this.darken(-e)};u.prototype.darker=u.prototype.darken;u.prototype.brighter=u.prototype.brighten;u.prototype.get=function(e){let[t,o]=e.split("."),r=this[t]();if(o){let n=t.indexOf(o)-(t.substr(0,2)==="ok"?2:0);if(n>-1)return r[n];throw new Error(`unknown channel ${o} in mode ${t}`)}else return r};var{pow:Ln}=Math,Rn=1e-7,Tn=20;u.prototype.luminance=function(e,t="rgb"){if(e!==void 0&&C(e)==="number"){if(e===0)return new u([0,0,0,this._rgb[3]],"rgb");if(e===1)return new u([255,255,255,this._rgb[3]],"rgb");let o=this.luminance(),r=Tn,n=(i,l)=>{let a=i.interpolate(l,.5,t),m=a.luminance();return Math.abs(e-m)<Rn||!r--?a:m>e?n(i,a):n(a,l)},s=(o>e?n(new u([0,0,0]),this):n(this,new u([255,255,255]))).rgb();return new u([...s,this._rgb[3]])}return Pn(...this._rgb.slice(0,3))};var Pn=(e,t,o)=>(e=xt(e),t=xt(t),o=xt(o),.2126*e+.7152*t+.0722*o),xt=e=>(e/=255,e<=.03928?e/12.92:Ln((e+.055)/1.055,2.4));var H={};var ee=(e,t,o=.5,...r)=>{let n=r[0]||"lrgb";if(!H[n]&&!r.length&&(n=Object.keys(H)[0]),!H[n])throw new Error(`interpolation mode ${n} is not defined`);return C(e)!=="object"&&(e=new u(e)),C(t)!=="object"&&(t=new u(t)),H[n](e,t,o).alpha(e.alpha()+o*(t.alpha()-e.alpha()))};u.prototype.mix=u.prototype.interpolate=function(e,t=.5,...o){return ee(this,e,t,...o)};u.prototype.premultiply=function(e=!1){let t=this._rgb,o=t[3];return e?(this._rgb=[t[0]*o,t[1]*o,t[2]*o,o],this):new u([t[0]*o,t[1]*o,t[2]*o,o],"rgb")};var{sin:Dn,cos:On}=Math,An=(...e)=>{let[t,o,r]=w(e,"lch");return isNaN(r)&&(r=0),r=r*Yt,[t,On(r)*o,Dn(r)*o]},Qe=An;var Nn=(...e)=>{e=w(e,"lch");let[t,o,r]=e,[n,s,i]=Qe(t,o,r),[l,a,m]=we(n,s,i);return[l,a,m,e.length>3?e[3]:1]},xe=Nn;var Hn=(...e)=>{let t=qe(w(e,"hcl"));return xe(...t)},Zt=Hn;var{sqrt:zn,atan2:Vn,round:Wn}=Math,In=(...e)=>{let[t,o,r]=w(e,"lab"),n=zn(o*o+r*r),s=(Vn(r,o)*Xt+360)%360;return Wn(n*1e4)===0&&(s=Number.NaN),[t,n,s]},et=In;var jn=(...e)=>{let[t,o,r,...n]=w(e,"rgb"),[s,i,l]=ve(t,o,r),[a,m,c]=et(s,i,l);return[a,m,c,...n.length>0&&n[0]<1?[n[0]]:[]]},Ae=jn;u.prototype.lch=function(){return Ae(this._rgb)};u.prototype.hcl=function(){return qe(Ae(this._rgb))};var $n=(...e)=>new u(...e,"lch"),Fn=(...e)=>new u(...e,"hcl");Object.assign(O,{lch:$n,hcl:Fn});R.format.lch=xe;R.format.hcl=Zt;["lch","hcl"].forEach(e=>R.autodetect.push({p:2,test:(...t)=>{if(t=w(t,e),C(t)==="array"&&t.length===3)return e}}));u.prototype.saturate=function(e=1){let t=this,o=t.lch();return o[1]+=Q.Kn*e,o[1]<0&&(o[1]=0),new u(o,"lch").alpha(t.alpha(),!0)};u.prototype.desaturate=function(e=1){return this.saturate(-e)};u.prototype.set=function(e,t,o=!1){let[r,n]=e.split("."),s=this[r]();if(n){let i=r.indexOf(n)-(r.substr(0,2)==="ok"?2:0);if(i>-1){if(C(t)=="string")switch(t.charAt(0)){case"+":s[i]+=+t;break;case"-":s[i]+=+t;break;case"*":s[i]*=+t.substr(1);break;case"/":s[i]/=+t.substr(1);break;default:s[i]=+t}else if(C(t)==="number")s[i]=t;else throw new Error("unsupported value for Color.set");let l=new u(s,r);return o?(this._rgb=l._rgb,this):l}throw new Error(`unknown channel ${n} in mode ${r}`)}else return s};u.prototype.tint=function(e=.5,...t){return ee(this,"white",e,...t)};u.prototype.shade=function(e=.5,...t){return ee(this,"black",e,...t)};var Gn=(e,t,o)=>{let r=e._rgb,n=t._rgb;return new u(r[0]+o*(n[0]-r[0]),r[1]+o*(n[1]-r[1]),r[2]+o*(n[2]-r[2]),"rgb")};H.rgb=Gn;var{sqrt:Et,pow:Ee}=Math,Un=(e,t,o)=>{let[r,n,s]=e._rgb,[i,l,a]=t._rgb;return new u(Et(Ee(r,2)*(1-o)+Ee(i,2)*o),Et(Ee(n,2)*(1-o)+Ee(l,2)*o),Et(Ee(s,2)*(1-o)+Ee(a,2)*o),"rgb")};H.lrgb=Un;var Bn=(e,t,o)=>{let r=e.lab(),n=t.lab();return new u(r[0]+o*(n[0]-r[0]),r[1]+o*(n[1]-r[1]),r[2]+o*(n[2]-r[2]),"lab")};H.lab=Bn;var Y=(e,t,o,r)=>{let n,s;r==="hsl"?(n=e.hsl(),s=t.hsl()):r==="hsv"?(n=e.hsv(),s=t.hsv()):r==="hcg"?(n=e.hcg(),s=t.hcg()):r==="hsi"?(n=e.hsi(),s=t.hsi()):r==="lch"||r==="hcl"?(r="hcl",n=e.hcl(),s=t.hcl()):r==="oklch"&&(n=e.oklch().reverse(),s=t.oklch().reverse());let i,l,a,m,c,d;(r.substr(0,1)==="h"||r==="oklch")&&([i,a,c]=n,[l,m,d]=s);let p,f,g,y;return!isNaN(i)&&!isNaN(l)?(l>i&&l-i>180?y=l-(i+360):l<i&&i-l>180?y=l+360-i:y=l-i,f=i+o*y):isNaN(i)?isNaN(l)?f=Number.NaN:(f=l,(c==1||c==0)&&r!="hsv"&&(p=m)):(f=i,(d==1||d==0)&&r!="hsv"&&(p=a)),p===void 0&&(p=a+o*(m-a)),g=c+o*(d-c),r==="oklch"?new u([g,p,f],r):new u([f,p,g],r)};var Jt=(e,t,o)=>Y(e,t,o,"lch");H.lch=Jt;H.hcl=Jt;var Yn=e=>{if(C(e)=="number"&&e>=0&&e<=16777215){let t=e>>16,o=e>>8&255,r=e&255;return[t,o,r,1]}throw new Error("unknown num color: "+e)},Qt=Yn;var Xn=(...e)=>{let[t,o,r]=w(e,"rgb");return(t<<16)+(o<<8)+r},eo=Xn;u.prototype.num=function(){return eo(this._rgb)};var qn=(...e)=>new u(...e,"num");Object.assign(O,{num:qn});R.format.num=Qt;R.autodetect.push({p:5,test:(...e)=>{if(e.length===1&&C(e[0])==="number"&&e[0]>=0&&e[0]<=16777215)return"num"}});var Kn=(e,t,o)=>{let r=e.num(),n=t.num();return new u(r+o*(n-r),"num")};H.num=Kn;var{floor:Zn}=Math,Jn=(...e)=>{e=w(e,"hcg");let[t,o,r]=e,n,s,i;r=r*255;let l=o*255;if(o===0)n=s=i=r;else{t===360&&(t=0),t>360&&(t-=360),t<0&&(t+=360),t/=60;let a=Zn(t),m=t-a,c=r*(1-o),d=c+l*(1-m),p=c+l*m,f=c+l;switch(a){case 0:[n,s,i]=[f,p,c];break;case 1:[n,s,i]=[d,f,c];break;case 2:[n,s,i]=[c,f,p];break;case 3:[n,s,i]=[c,d,f];break;case 4:[n,s,i]=[p,c,f];break;case 5:[n,s,i]=[f,c,d];break}}return[n,s,i,e.length>3?e[3]:1]},to=Jn;var Qn=(...e)=>{let[t,o,r]=w(e,"rgb"),n=Be(t,o,r),s=Ye(t,o,r),i=s-n,l=i*100/255,a=n/(255-i)*100,m;return i===0?m=Number.NaN:(t===s&&(m=(o-r)/i),o===s&&(m=2+(r-t)/i),r===s&&(m=4+(t-o)/i),m*=60,m<0&&(m+=360)),[m,l,a]},oo=Qn;u.prototype.hcg=function(){return oo(this._rgb)};var es=(...e)=>new u(...e,"hcg");O.hcg=es;R.format.hcg=to;R.autodetect.push({p:1,test:(...e)=>{if(e=w(e,"hcg"),C(e)==="array"&&e.length===3)return"hcg"}});var ts=(e,t,o)=>Y(e,t,o,"hcg");H.hcg=ts;var{cos:ke}=Math,os=(...e)=>{e=w(e,"hsi");let[t,o,r]=e,n,s,i;return isNaN(t)&&(t=0),isNaN(o)&&(o=0),t>360&&(t-=360),t<0&&(t+=360),t/=360,t<1/3?(i=(1-o)/3,n=(1+o*ke(U*t)/ke(Xe-U*t))/3,s=1-(i+n)):t<2/3?(t-=1/3,n=(1-o)/3,s=(1+o*ke(U*t)/ke(Xe-U*t))/3,i=1-(n+s)):(t-=2/3,s=(1-o)/3,i=(1+o*ke(U*t)/ke(Xe-U*t))/3,n=1-(s+i)),n=G(r*n*3),s=G(r*s*3),i=G(r*i*3),[n*255,s*255,i*255,e.length>3?e[3]:1]},ro=os;var{min:rs,sqrt:ns,acos:ss}=Math,is=(...e)=>{let[t,o,r]=w(e,"rgb");t/=255,o/=255,r/=255;let n,s=rs(t,o,r),i=(t+o+r)/3,l=i>0?1-s/i:0;return l===0?n=NaN:(n=(t-o+(t-r))/2,n/=ns((t-o)*(t-o)+(t-r)*(o-r)),n=ss(n),r>o&&(n=U-n),n/=U),[n*360,l,i]},no=is;u.prototype.hsi=function(){return no(this._rgb)};var ls=(...e)=>new u(...e,"hsi");O.hsi=ls;R.format.hsi=ro;R.autodetect.push({p:2,test:(...e)=>{if(e=w(e,"hsi"),C(e)==="array"&&e.length===3)return"hsi"}});var as=(e,t,o)=>Y(e,t,o,"hsi");H.hsi=as;var cs=(...e)=>{e=w(e,"hsl");let[t,o,r]=e,n,s,i;if(o===0)n=s=i=r*255;else{let l=[0,0,0],a=[0,0,0],m=r<.5?r*(1+o):r+o-r*o,c=2*r-m,d=t/360;l[0]=d+1/3,l[1]=d,l[2]=d-1/3;for(let p=0;p<3;p++)l[p]<0&&(l[p]+=1),l[p]>1&&(l[p]-=1),6*l[p]<1?a[p]=c+(m-c)*6*l[p]:2*l[p]<1?a[p]=m:3*l[p]<2?a[p]=c+(m-c)*(2/3-l[p])*6:a[p]=c;[n,s,i]=[a[0]*255,a[1]*255,a[2]*255]}return e.length>3?[n,s,i,e[3]]:[n,s,i,1]},Ne=cs;var ds=(...e)=>{e=w(e,"rgba");let[t,o,r]=e;t/=255,o/=255,r/=255;let n=Be(t,o,r),s=Ye(t,o,r),i=(s+n)/2,l,a;return s===n?(l=0,a=Number.NaN):l=i<.5?(s-n)/(s+n):(s-n)/(2-s-n),t==s?a=(o-r)/(s-n):o==s?a=2+(r-t)/(s-n):r==s&&(a=4+(t-o)/(s-n)),a*=60,a<0&&(a+=360),e.length>3&&e[3]!==void 0?[a,l,i,e[3]]:[a,l,i]},tt=ds;u.prototype.hsl=function(){return tt(this._rgb)};var ms=(...e)=>new u(...e,"hsl");O.hsl=ms;R.format.hsl=Ne;R.autodetect.push({p:2,test:(...e)=>{if(e=w(e,"hsl"),C(e)==="array"&&e.length===3)return"hsl"}});var ps=(e,t,o)=>Y(e,t,o,"hsl");H.hsl=ps;var{floor:fs}=Math,us=(...e)=>{e=w(e,"hsv");let[t,o,r]=e,n,s,i;if(r*=255,o===0)n=s=i=r;else{t===360&&(t=0),t>360&&(t-=360),t<0&&(t+=360),t/=60;let l=fs(t),a=t-l,m=r*(1-o),c=r*(1-o*a),d=r*(1-o*(1-a));switch(l){case 0:[n,s,i]=[r,d,m];break;case 1:[n,s,i]=[c,r,m];break;case 2:[n,s,i]=[m,r,d];break;case 3:[n,s,i]=[m,c,r];break;case 4:[n,s,i]=[d,m,r];break;case 5:[n,s,i]=[r,m,c];break}}return[n,s,i,e.length>3?e[3]:1]},so=us;var{min:hs,max:gs}=Math,bs=(...e)=>{e=w(e,"rgb");let[t,o,r]=e,n=hs(t,o,r),s=gs(t,o,r),i=s-n,l,a,m;return m=s/255,s===0?(l=Number.NaN,a=0):(a=i/s,t===s&&(l=(o-r)/i),o===s&&(l=2+(r-t)/i),r===s&&(l=4+(t-o)/i),l*=60,l<0&&(l+=360)),[l,a,m]},io=bs;u.prototype.hsv=function(){return io(this._rgb)};var _s=(...e)=>new u(...e,"hsv");O.hsv=_s;R.format.hsv=so;R.autodetect.push({p:2,test:(...e)=>{if(e=w(e,"hsv"),C(e)==="array"&&e.length===3)return"hsv"}});var ys=(e,t,o)=>Y(e,t,o,"hsv");H.hsv=ys;function he(e,t){let o=e.length;Array.isArray(e[0])||(e=[e]),Array.isArray(t[0])||(t=t.map(i=>[i]));let r=t[0].length,n=t[0].map((i,l)=>t.map(a=>a[l])),s=e.map(i=>n.map(l=>Array.isArray(i)?i.reduce((a,m,c)=>a+m*(l[c]||0),0):l.reduce((a,m)=>a+m*i,0)));return o===1&&(s=s[0]),r===1?s.map(i=>i[0]):s}var ws=(...e)=>{e=w(e,"lab");let[t,o,r,...n]=e,[s,i,l]=vs([t,o,r]),[a,m,c]=yt(s,i,l);return[a,m,c,...n.length>0&&n[0]<1?[n[0]]:[]]};function vs(e){var t=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],o=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],r=he(o,e);return he(t,r.map(n=>n**3))}var Ce=ws;var xs=(...e)=>{let[t,o,r,...n]=w(e,"rgb"),s=vt(t,o,r);return[...Es(s),...n.length>0&&n[0]<1?[n[0]]:[]]};function Es(e){let t=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],o=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],r=he(t,e);return he(o,r.map(n=>Math.cbrt(n)))}var Me=xs;u.prototype.oklab=function(){return Me(this._rgb)};var ks=(...e)=>new u(...e,"oklab");Object.assign(O,{oklab:ks});R.format.oklab=Ce;R.autodetect.push({p:2,test:(...e)=>{if(e=w(e,"oklab"),C(e)==="array"&&e.length===3)return"oklab"}});var Cs=(e,t,o)=>{let r=e.oklab(),n=t.oklab();return new u(r[0]+o*(n[0]-r[0]),r[1]+o*(n[1]-r[1]),r[2]+o*(n[2]-r[2]),"oklab")};H.oklab=Cs;var Ms=(e,t,o)=>Y(e,t,o,"oklch");H.oklch=Ms;var{pow:kt,sqrt:Ct,PI:Mt,cos:lo,sin:ao,atan2:Ss}=Math,co=(e,t="lrgb",o=null)=>{let r=e.length;o||(o=Array.from(new Array(r)).map(()=>1));let n=r/o.reduce(function(d,p){return d+p});if(o.forEach((d,p)=>{o[p]*=n}),e=e.map(d=>new u(d)),t==="lrgb")return Ls(e,o);let s=e.shift(),i=s.get(t),l=[],a=0,m=0;for(let d=0;d<i.length;d++)if(i[d]=(i[d]||0)*o[0],l.push(isNaN(i[d])?0:o[0]),t.charAt(d)==="h"&&!isNaN(i[d])){let p=i[d]/180*Mt;a+=lo(p)*o[0],m+=ao(p)*o[0]}let c=s.alpha()*o[0];e.forEach((d,p)=>{let f=d.get(t);c+=d.alpha()*o[p+1];for(let g=0;g<i.length;g++)if(!isNaN(f[g]))if(l[g]+=o[p+1],t.charAt(g)==="h"){let y=f[g]/180*Mt;a+=lo(y)*o[p+1],m+=ao(y)*o[p+1]}else i[g]+=f[g]*o[p+1]});for(let d=0;d<i.length;d++)if(t.charAt(d)==="h"){let p=Ss(m/l[d],a/l[d])/Mt*180;for(;p<0;)p+=360;for(;p>=360;)p-=360;i[d]=p}else i[d]=i[d]/l[d];return c/=r,new u(i,t).alpha(c>.99999?1:c,!0)},Ls=(e,t)=>{let o=e.length,r=[0,0,0,0];for(let n=0;n<e.length;n++){let s=e[n],i=t[n]/o,l=s._rgb;r[0]+=kt(l[0],2)*i,r[1]+=kt(l[1],2)*i,r[2]+=kt(l[2],2)*i,r[3]+=l[3]*i}return r[0]=Ct(r[0]),r[1]=Ct(r[1]),r[2]=Ct(r[2]),r[3]>.9999999&&(r[3]=1),new u(ue(r))};var{pow:Rs}=Math;function ge(e){let t="rgb",o=O("#ccc"),r=0,n=[0,1],s=[],i=[0,0],l=!1,a=[],m=!1,c=0,d=1,p=!1,f={},g=!0,y=1,_=function(h){if(h=h||["#fff","#000"],h&&C(h)==="string"&&O.brewer&&O.brewer[h.toLowerCase()]&&(h=O.brewer[h.toLowerCase()]),C(h)==="array"){h.length===1&&(h=[h[0],h[0]]),h=h.slice(0);for(let v=0;v<h.length;v++)h[v]=O(h[v]);s.length=0;for(let v=0;v<h.length;v++)s.push(v/(h.length-1))}return A(),a=h},b=function(h){if(l!=null){let v=l.length-1,S=0;for(;S<v&&h>=l[S];)S++;return S-1}return 0},E=h=>h,M=h=>h,D=function(h,v){let S,x;if(v==null&&(v=!1),isNaN(h)||h===null)return o;v?x=h:l&&l.length>2?x=b(h)/(l.length-2):d!==c?x=(h-c)/(d-c):x=1,x=M(x),v||(x=E(x)),y!==1&&(x=Rs(x,y)),x=i[0]+x*(1-i[0]-i[1]),x=G(x,0,1);let T=Math.floor(x*1e4);if(g&&f[T])S=f[T];else{if(C(a)==="array")for(let P=0;P<s.length;P++){let L=s[P];if(x<=L){S=a[P];break}if(x>=L&&P===s.length-1){S=a[P];break}if(x>L&&x<s[P+1]){x=(x-L)/(s[P+1]-L),S=O.interpolate(a[P],a[P+1],x,t);break}}else C(a)==="function"&&(S=a(x));g&&(f[T]=S)}return S};var A=()=>f={};_(e);let k=function(h){let v=O(D(h));return m&&v[m]?v[m]():v};return k.classes=function(h){if(h!=null){if(C(h)==="array")l=h,n=[h[0],h[h.length-1]];else{let v=O.analyze(n);h===0?l=[v.min,v.max]:l=O.limits(v,"e",h)}return k}return l},k.domain=function(h){if(!arguments.length)return n;c=h[0],d=h[h.length-1],s=[];let v=a.length;if(h.length===v&&c!==d)for(let S of Array.from(h))s.push((S-c)/(d-c));else{for(let S=0;S<v;S++)s.push(S/(v-1));if(h.length>2){let S=h.map((T,P)=>P/(h.length-1)),x=h.map(T=>(T-c)/(d-c));x.every((T,P)=>S[P]===T)||(M=T=>{if(T<=0||T>=1)return T;let P=0;for(;T>=x[P+1];)P++;let L=(T-x[P])/(x[P+1]-x[P]);return S[P]+L*(S[P+1]-S[P])})}}return n=[c,d],k},k.mode=function(h){return arguments.length?(t=h,A(),k):t},k.range=function(h,v){return _(h,v),k},k.out=function(h){return m=h,k},k.spread=function(h){return arguments.length?(r=h,k):r},k.correctLightness=function(h){return h==null&&(h=!0),p=h,A(),p?E=function(v){let S=D(0,!0).lab()[0],x=D(1,!0).lab()[0],T=S>x,P=D(v,!0).lab()[0],L=S+(x-S)*v,N=P-L,z=0,J=1,te=20;for(;Math.abs(N)>.01&&te-- >0;)(function(){return T&&(N*=-1),N<0?(z=v,v+=(J-v)*.5):(J=v,v+=(z-v)*.5),P=D(v,!0).lab()[0],N=P-L})();return v}:E=v=>v,k},k.padding=function(h){return h!=null?(C(h)==="number"&&(h=[h,h]),i=h,k):i},k.colors=function(h,v){arguments.length<2&&(v="hex");let S=[];if(arguments.length===0)S=a.slice(0);else if(h===1)S=[k(.5)];else if(h>1){let x=n[0],T=n[1]-x;S=Ts(0,h,!1).map(P=>k(x+P/(h-1)*T))}else{e=[];let x=[];if(l&&l.length>2)for(let T=1,P=l.length,L=1<=P;L?T<P:T>P;L?T++:T--)x.push((l[T-1]+l[T])*.5);else x=n;S=x.map(T=>k(T))}return O[v]&&(S=S.map(x=>x[v]())),S},k.cache=function(h){return h!=null?(g=h,k):g},k.gamma=function(h){return h!=null?(y=h,k):y},k.nodata=function(h){return h!=null?(o=O(h),k):o},k}function Ts(e,t,o){let r=[],n=e<t,s=o?n?t+1:t-1:t;for(let i=e;n?i<s:i>s;n?i++:i--)r.push(i);return r}var Ps=function(e){let t=[1,1];for(let o=1;o<e;o++){let r=[1];for(let n=1;n<=t.length;n++)r[n]=(t[n]||0)+t[n-1];t=r}return t},Ds=function(e){let t,o,r,n;if(e=e.map(s=>new u(s)),e.length===2)[o,r]=e.map(s=>s.lab()),t=function(s){let i=[0,1,2].map(l=>o[l]+s*(r[l]-o[l]));return new u(i,"lab")};else if(e.length===3)[o,r,n]=e.map(s=>s.lab()),t=function(s){let i=[0,1,2].map(l=>(1-s)*(1-s)*o[l]+2*(1-s)*s*r[l]+s*s*n[l]);return new u(i,"lab")};else if(e.length===4){let s;[o,r,n,s]=e.map(i=>i.lab()),t=function(i){let l=[0,1,2].map(a=>(1-i)*(1-i)*(1-i)*o[a]+3*(1-i)*(1-i)*i*r[a]+3*(1-i)*i*i*n[a]+i*i*i*s[a]);return new u(l,"lab")}}else if(e.length>=5){let s,i,l;s=e.map(a=>a.lab()),l=e.length-1,i=Ps(l),t=function(a){let m=1-a,c=[0,1,2].map(d=>s.reduce((p,f,g)=>p+i[g]*m**(l-g)*a**g*f[d],0));return new u(c,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return t},mo=e=>{let t=Ds(e);return t.scale=()=>ge(t),t};var{round:po}=Math;u.prototype.rgb=function(e=!0){return e===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(po)};u.prototype.rgba=function(e=!0){return this._rgb.slice(0,4).map((t,o)=>o<3?e===!1?t:po(t):t)};var Os=(...e)=>new u(...e,"rgb");Object.assign(O,{rgb:Os});R.format.rgb=(...e)=>{let t=w(e,"rgba");return t[3]===void 0&&(t[3]=1),t};R.autodetect.push({p:3,test:(...e)=>{if(e=w(e,"rgba"),C(e)==="array"&&(e.length===3||e.length===4&&C(e[3])=="number"&&e[3]>=0&&e[3]<=1))return"rgb"}});var K=(e,t,o)=>{if(!K[o])throw new Error("unknown blend mode "+o);return K[o](e,t)},ce=e=>(t,o)=>{let r=O(o).rgb(),n=O(t).rgb();return O.rgb(e(r,n))},de=e=>(t,o)=>{let r=[];return r[0]=e(t[0],o[0]),r[1]=e(t[1],o[1]),r[2]=e(t[2],o[2]),r},As=e=>e,Ns=(e,t)=>e*t/255,Hs=(e,t)=>e>t?t:e,zs=(e,t)=>e>t?e:t,Vs=(e,t)=>255*(1-(1-e/255)*(1-t/255)),Ws=(e,t)=>t<128?2*e*t/255:255*(1-2*(1-e/255)*(1-t/255)),Is=(e,t)=>255*(1-(1-t/255)/(e/255)),js=(e,t)=>e===255?255:(e=255*(t/255)/(1-e/255),e>255?255:e);K.normal=ce(de(As));K.multiply=ce(de(Ns));K.screen=ce(de(Vs));K.overlay=ce(de(Ws));K.darken=ce(de(Hs));K.lighten=ce(de(zs));K.dodge=ce(de(js));K.burn=ce(de(Is));var fo=K;var{pow:$s,sin:Fs,cos:Gs}=Math;function uo(e=300,t=-1.5,o=1,r=1,n=[0,1]){let s=0,i;C(n)==="array"?i=n[1]-n[0]:(i=0,n=[n,n]);let l=function(a){let m=U*((e+120)/360+t*a),c=$s(n[0]+i*a,r),p=(s!==0?o[0]+a*s:o)*c*(1-c)/2,f=Gs(m),g=Fs(m),y=c+p*(-.14861*f+1.78277*g),_=c+p*(-.29227*f-.90649*g),b=c+p*(1.97294*f);return O(ue([y*255,_*255,b*255,1]))};return l.start=function(a){return a==null?e:(e=a,l)},l.rotations=function(a){return a==null?t:(t=a,l)},l.gamma=function(a){return a==null?r:(r=a,l)},l.hue=function(a){return a==null?o:(o=a,C(o)==="array"?(s=o[1]-o[0],s===0&&(o=o[1])):s=0,l)},l.lightness=function(a){return a==null?n:(C(a)==="array"?(n=a,i=a[1]-a[0]):(n=[a,a],i=0),l)},l.scale=()=>O.scale(l),l.hue(o),l}var Us="0123456789abcdef",{floor:Bs,random:Ys}=Math,ho=()=>{let e="#";for(let t=0;t<6;t++)e+=Us.charAt(Bs(Ys()*16));return new u(e,"hex")};var{log:go,pow:Xs,floor:qs,abs:Ks}=Math;function St(e,t=null){let o={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return C(e)==="object"&&(e=Object.values(e)),e.forEach(r=>{t&&C(r)==="object"&&(r=r[t]),r!=null&&!isNaN(r)&&(o.values.push(r),o.sum+=r,r<o.min&&(o.min=r),r>o.max&&(o.max=r),o.count+=1)}),o.domain=[o.min,o.max],o.limits=(r,n)=>Lt(o,r,n),o}function Lt(e,t="equal",o=7){C(e)=="array"&&(e=St(e));let{min:r,max:n}=e,s=e.values.sort((l,a)=>l-a);if(o===1)return[r,n];let i=[];if(t.substr(0,1)==="c"&&(i.push(r),i.push(n)),t.substr(0,1)==="e"){i.push(r);for(let l=1;l<o;l++)i.push(r+l/o*(n-r));i.push(n)}else if(t.substr(0,1)==="l"){if(r<=0)throw new Error("Logarithmic scales are only possible for values > 0");let l=Math.LOG10E*go(r),a=Math.LOG10E*go(n);i.push(r);for(let m=1;m<o;m++)i.push(Xs(10,l+m/o*(a-l)));i.push(n)}else if(t.substr(0,1)==="q"){i.push(r);for(let l=1;l<o;l++){let a=(s.length-1)*l/o,m=qs(a);if(m===a)i.push(s[m]);else{let c=a-m;i.push(s[m]*(1-c)+s[m+1]*c)}}i.push(n)}else if(t.substr(0,1)==="k"){let l,a=s.length,m=new Array(a),c=new Array(o),d=!0,p=0,f=null;f=[],f.push(r);for(let _=1;_<o;_++)f.push(r+_/o*(n-r));for(f.push(n);d;){for(let b=0;b<o;b++)c[b]=0;for(let b=0;b<a;b++){let E=s[b],M=Number.MAX_VALUE,D;for(let A=0;A<o;A++){let k=Ks(f[A]-E);k<M&&(M=k,D=A),c[D]++,m[b]=D}}let _=new Array(o);for(let b=0;b<o;b++)_[b]=null;for(let b=0;b<a;b++)l=m[b],_[l]===null?_[l]=s[b]:_[l]+=s[b];for(let b=0;b<o;b++)_[b]*=1/c[b];d=!1;for(let b=0;b<o;b++)if(_[b]!==f[b]){d=!0;break}f=_,p++,p>200&&(d=!1)}let g={};for(let _=0;_<o;_++)g[_]=[];for(let _=0;_<a;_++)l=m[_],g[l].push(s[_]);let y=[];for(let _=0;_<o;_++)y.push(g[_][0]),y.push(g[_][g[_].length-1]);y=y.sort((_,b)=>_-b),i.push(y[0]);for(let _=1;_<y.length;_+=2){let b=y[_];!isNaN(b)&&i.indexOf(b)===-1&&i.push(b)}}return i}var bo=(e,t)=>{e=new u(e),t=new u(t);let o=e.luminance(),r=t.luminance();return o>r?(o+.05)/(r+.05):(r+.05)/(o+.05)};var _o=.027,Zs=5e-4,Js=.1,yo=1.14,ot=.022,wo=1.414,xo=(e,t)=>{e=new u(e),t=new u(t),e.alpha()<1&&(e=ee(t,e,e.alpha(),"rgb"));let o=vo(...e.rgb()),r=vo(...t.rgb()),n=o>=ot?o:o+Math.pow(ot-o,wo),s=r>=ot?r:r+Math.pow(ot-r,wo),i=Math.pow(s,.56)-Math.pow(n,.57),l=Math.pow(s,.65)-Math.pow(n,.62),a=Math.abs(s-n)<Zs?0:n<s?i*yo:l*yo;return(Math.abs(a)<Js?0:a>0?a-_o:a+_o)*100};function vo(e,t,o){return .2126729*Math.pow(e/255,2.4)+.7151522*Math.pow(t/255,2.4)+.072175*Math.pow(o/255,2.4)}var{sqrt:re,pow:V,min:Qs,max:ei,atan2:Eo,abs:ko,cos:rt,sin:Co,exp:ti,PI:Mo}=Math;function So(e,t,o=1,r=1,n=1){var s=function(gt){return 360*gt/(2*Mo)},i=function(gt){return 2*Mo*gt/360};e=new u(e),t=new u(t);let[l,a,m]=Array.from(e.lab()),[c,d,p]=Array.from(t.lab()),f=(l+c)/2,g=re(V(a,2)+V(m,2)),y=re(V(d,2)+V(p,2)),_=(g+y)/2,b=.5*(1-re(V(_,7)/(V(_,7)+V(25,7)))),E=a*(1+b),M=d*(1+b),D=re(V(E,2)+V(m,2)),A=re(V(M,2)+V(p,2)),k=(D+A)/2,h=s(Eo(m,E)),v=s(Eo(p,M)),S=h>=0?h:h+360,x=v>=0?v:v+360,T=ko(S-x)>180?(S+x+360)/2:(S+x)/2,P=1-.17*rt(i(T-30))+.24*rt(i(2*T))+.32*rt(i(3*T+6))-.2*rt(i(4*T-63)),L=x-S;L=ko(L)<=180?L:x<=S?L+360:L-360,L=2*re(D*A)*Co(i(L)/2);let N=c-l,z=A-D,J=1+.015*V(f-50,2)/re(20+V(f-50,2)),te=1+.045*k,Pe=1+.015*k*P,be=30*ti(-V((T-275)/25,2)),oe=-(2*re(V(k,7)/(V(k,7)+V(25,7))))*Co(2*i(be)),se=re(V(N/(o*J),2)+V(z/(r*te),2)+V(L/(n*Pe),2)+oe*(z/(r*te))*(L/(n*Pe)));return ei(0,Qs(100,se))}function Lo(e,t,o="lab"){e=new u(e),t=new u(t);let r=e.get(o),n=t.get(o),s=0;for(let i in r){let l=(r[i]||0)-(n[i]||0);s+=l*l}return Math.sqrt(s)}var Ro=(...e)=>{try{return new u(...e),!0}catch{return!1}};var To={cool(){return ge([O.hsl(180,1,.9),O.hsl(250,.7,.4)])},hot(){return ge(["#000","#f00","#ff0","#fff"],[0,.25,.75,1]).mode("rgb")}};var Rt={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},Do=Object.keys(Rt),Po=new Map(Do.map(e=>[e.toLowerCase(),e])),oi=typeof Proxy=="function"?new Proxy(Rt,{get(e,t){let o=t.toLowerCase();if(Po.has(o))return e[Po.get(o)]},getOwnPropertyNames(){return Object.getOwnPropertyNames(Do)}}):Rt,Oo=oi;var ri=(...e)=>{e=w(e,"cmyk");let[t,o,r,n]=e,s=e.length>4?e[4]:1;return n===1?[0,0,0,s]:[t>=1?0:255*(1-t)*(1-n),o>=1?0:255*(1-o)*(1-n),r>=1?0:255*(1-r)*(1-n),s]},Ao=ri;var{max:No}=Math,ni=(...e)=>{let[t,o,r]=w(e,"rgb");t=t/255,o=o/255,r=r/255;let n=1-No(t,No(o,r)),s=n<1?1/(1-n):0,i=(1-t-n)*s,l=(1-o-n)*s,a=(1-r-n)*s;return[i,l,a,n]},Ho=ni;u.prototype.cmyk=function(){return Ho(this._rgb)};var si=(...e)=>new u(...e,"cmyk");Object.assign(O,{cmyk:si});R.format.cmyk=Ao;R.autodetect.push({p:2,test:(...e)=>{if(e=w(e,"cmyk"),C(e)==="array"&&e.length===4)return"cmyk"}});var ii=(...e)=>{let t=w(e,"hsla"),o=F(e)||"lsa";return t[0]=I(t[0]||0)+"deg",t[1]=I(t[1]*100)+"%",t[2]=I(t[2]*100)+"%",o==="hsla"||t.length>3&&t[3]<1?(t[3]="/ "+(t.length>3?t[3]:1),o="hsla"):t.length=3,`${o.substr(0,3)}(${t.join(" ")})`},zo=ii;var li=(...e)=>{let t=w(e,"lab"),o=F(e)||"lab";return t[0]=I(t[0])+"%",t[1]=I(t[1]),t[2]=I(t[2]),o==="laba"||t.length>3&&t[3]<1?t[3]="/ "+(t.length>3?t[3]:1):t.length=3,`lab(${t.join(" ")})`},Vo=li;var ai=(...e)=>{let t=w(e,"lch"),o=F(e)||"lab";return t[0]=I(t[0])+"%",t[1]=I(t[1]),t[2]=isNaN(t[2])?"none":I(t[2])+"deg",o==="lcha"||t.length>3&&t[3]<1?t[3]="/ "+(t.length>3?t[3]:1):t.length=3,`lch(${t.join(" ")})`},Wo=ai;var ci=(...e)=>{let t=w(e,"lab");return t[0]=I(t[0]*100)+"%",t[1]=De(t[1]),t[2]=De(t[2]),t.length>3&&t[3]<1?t[3]="/ "+(t.length>3?t[3]:1):t.length=3,`oklab(${t.join(" ")})`},Io=ci;var di=(...e)=>{let[t,o,r,...n]=w(e,"rgb"),[s,i,l]=Me(t,o,r),[a,m,c]=et(s,i,l);return[a,m,c,...n.length>0&&n[0]<1?[n[0]]:[]]},nt=di;var mi=(...e)=>{let t=w(e,"lch");return t[0]=I(t[0]*100)+"%",t[1]=De(t[1]),t[2]=isNaN(t[2])?"none":I(t[2])+"deg",t.length>3&&t[3]<1?t[3]="/ "+(t.length>3?t[3]:1):t.length=3,`oklch(${t.join(" ")})`},jo=mi;var{round:Tt}=Math,pi=(...e)=>{let t=w(e,"rgba"),o=F(e)||"rgb";if(o.substr(0,3)==="hsl")return zo(tt(t),o);if(o.substr(0,3)==="lab"){let r=ae();B("d50");let n=Vo(ve(t),o);return B(r),n}if(o.substr(0,3)==="lch"){let r=ae();B("d50");let n=Wo(Ae(t),o);return B(r),n}return o.substr(0,5)==="oklab"?Io(Me(t)):o.substr(0,5)==="oklch"?jo(nt(t)):(t[0]=Tt(t[0]),t[1]=Tt(t[1]),t[2]=Tt(t[2]),(o==="rgba"||t.length>3&&t[3]<1)&&(t[3]="/ "+(t.length>3?t[3]:1),o="rgba"),`${o.substr(0,3)}(${t.slice(0,o==="rgb"?3:4).join(" ")})`)},$o=pi;var fi=(...e)=>{e=w(e,"lch");let[t,o,r,...n]=e,[s,i,l]=Qe(t,o,r),[a,m,c]=Ce(s,i,l);return[a,m,c,...n.length>0&&n[0]<1?[n[0]]:[]]},st=fi;var ne=/((?:-?\d+)|(?:-?\d+(?:\.\d+)?)%|none)/.source,Z=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%?)|none)/.source,it=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%)|none)/.source,X=/\s*/.source,Le=/\s+/.source,Pt=/\s*,\s*/.source,lt=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)(?:deg)?)|none)/.source,Re=/\s*(?:\/\s*((?:[01]|[01]?\.\d+)|\d+(?:\.\d+)?%))?/.source,Fo=new RegExp("^rgba?\\("+X+[ne,ne,ne].join(Le)+Re+"\\)$"),Go=new RegExp("^rgb\\("+X+[ne,ne,ne].join(Pt)+X+"\\)$"),Uo=new RegExp("^rgba\\("+X+[ne,ne,ne,Z].join(Pt)+X+"\\)$"),Bo=new RegExp("^hsla?\\("+X+[lt,it,it].join(Le)+Re+"\\)$"),Yo=new RegExp("^hsl?\\("+X+[lt,it,it].join(Pt)+X+"\\)$"),Xo=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,qo=new RegExp("^lab\\("+X+[Z,Z,Z].join(Le)+Re+"\\)$"),Ko=new RegExp("^lch\\("+X+[Z,Z,lt].join(Le)+Re+"\\)$"),Zo=new RegExp("^oklab\\("+X+[Z,Z,Z].join(Le)+Re+"\\)$"),Jo=new RegExp("^oklch\\("+X+[Z,Z,lt].join(Le)+Re+"\\)$"),{round:Qo}=Math,Se=e=>e.map((t,o)=>o<=2?G(Qo(t),0,255):t),W=(e,t=0,o=100,r=!1)=>(typeof e=="string"&&e.endsWith("%")&&(e=parseFloat(e.substring(0,e.length-1))/100,r?e=t+(e+1)*.5*(o-t):e=t+e*(o-t)),+e),j=(e,t)=>e==="none"?t:e,er=e=>{if(e=e.toLowerCase().trim(),e==="transparent")return[0,0,0,0];let t;if(R.format.named)try{return R.format.named(e)}catch{}if((t=e.match(Fo))||(t=e.match(Go))){let o=t.slice(1,4);for(let n=0;n<3;n++)o[n]=+W(j(o[n],0),0,255);o=Se(o);let r=t[4]!==void 0?+W(t[4],0,1):1;return o[3]=r,o}if(t=e.match(Uo)){let o=t.slice(1,5);for(let r=0;r<4;r++)o[r]=+W(o[r],0,255);return o}if((t=e.match(Bo))||(t=e.match(Yo))){let o=t.slice(1,4);o[0]=+j(o[0].replace("deg",""),0),o[1]=+W(j(o[1],0),0,100)*.01,o[2]=+W(j(o[2],0),0,100)*.01;let r=Se(Ne(o)),n=t[4]!==void 0?+W(t[4],0,1):1;return r[3]=n,r}if(t=e.match(Xo)){let o=t.slice(1,4);o[1]*=.01,o[2]*=.01;let r=Ne(o);for(let n=0;n<3;n++)r[n]=Qo(r[n]);return r[3]=+t[4],r}if(t=e.match(qo)){let o=t.slice(1,4);o[0]=W(j(o[0],0),0,100),o[1]=W(j(o[1],0),-125,125,!0),o[2]=W(j(o[2],0),-125,125,!0);let r=ae();B("d50");let n=Se(we(o));B(r);let s=t[4]!==void 0?+W(t[4],0,1):1;return n[3]=s,n}if(t=e.match(Ko)){let o=t.slice(1,4);o[0]=W(o[0],0,100),o[1]=W(j(o[1],0),0,150,!1),o[2]=+j(o[2].replace("deg",""),0);let r=ae();B("d50");let n=Se(xe(o));B(r);let s=t[4]!==void 0?+W(t[4],0,1):1;return n[3]=s,n}if(t=e.match(Zo)){let o=t.slice(1,4);o[0]=W(j(o[0],0),0,1),o[1]=W(j(o[1],0),-.4,.4,!0),o[2]=W(j(o[2],0),-.4,.4,!0);let r=Se(Ce(o)),n=t[4]!==void 0?+W(t[4],0,1):1;return r[3]=n,r}if(t=e.match(Jo)){let o=t.slice(1,4);o[0]=W(j(o[0],0),0,1),o[1]=W(j(o[1],0),0,.4,!1),o[2]=+j(o[2].replace("deg",""),0);let r=Se(st(o)),n=t[4]!==void 0?+W(t[4],0,1):1;return r[3]=n,r}};er.test=e=>Fo.test(e)||Bo.test(e)||qo.test(e)||Ko.test(e)||Zo.test(e)||Jo.test(e)||Go.test(e)||Uo.test(e)||Yo.test(e)||Xo.test(e)||e==="transparent";var Dt=er;u.prototype.css=function(e){return $o(this._rgb,e)};var ui=(...e)=>new u(...e,"css");O.css=ui;R.format.css=Dt;R.autodetect.push({p:5,test:(e,...t)=>{if(!t.length&&C(e)==="string"&&Dt.test(e))return"css"}});R.format.gl=(...e)=>{let t=w(e,"rgba");return t[0]*=255,t[1]*=255,t[2]*=255,t};var hi=(...e)=>new u(...e,"gl");O.gl=hi;u.prototype.gl=function(){let e=this._rgb;return[e[0]/255,e[1]/255,e[2]/255,e[3]]};u.prototype.hex=function(e){return Je(this._rgb,e)};var gi=(...e)=>new u(...e,"hex");O.hex=gi;R.format.hex=Ke;R.autodetect.push({p:4,test:(e,...t)=>{if(!t.length&&C(e)==="string"&&[3,4,5,6,7,8,9].indexOf(e.length)>=0)return"hex"}});var{log:at}=Math,bi=e=>{let t=e/100,o,r,n;return t<66?(o=255,r=t<6?0:-155.25485562709179-.44596950469579133*(r=t-2)+104.49216199393888*at(r),n=t<20?0:-254.76935184120902+.8274096064007395*(n=t-10)+115.67994401066147*at(n)):(o=351.97690566805693+.114206453784165*(o=t-55)-40.25366309332127*at(o),r=325.4494125711974+.07943456536662342*(r=t-50)-28.0852963507957*at(r),n=255),[o,r,n,1]},ct=bi;var{round:_i}=Math,yi=(...e)=>{let t=w(e,"rgb"),o=t[0],r=t[2],n=1e3,s=4e4,i=.4,l;for(;s-n>i;){l=(s+n)*.5;let a=ct(l);a[2]/a[0]>=r/o?s=l:n=l}return _i(l)},tr=yi;u.prototype.temp=u.prototype.kelvin=u.prototype.temperature=function(){return tr(this._rgb)};var Ot=(...e)=>new u(...e,"temp");Object.assign(O,{temp:Ot,kelvin:Ot,temperature:Ot});R.format.temp=R.format.kelvin=R.format.temperature=ct;u.prototype.oklch=function(){return nt(this._rgb)};var wi=(...e)=>new u(...e,"oklch");Object.assign(O,{oklch:wi});R.format.oklch=st;R.autodetect.push({p:2,test:(...e)=>{if(e=w(e,"oklch"),C(e)==="array"&&e.length===3)return"oklch"}});Object.assign(O,{analyze:St,average:co,bezier:mo,blend:fo,brewer:Oo,Color:u,colors:le,contrast:bo,contrastAPCA:xo,cubehelix:uo,deltaE:So,distance:Lo,input:R,interpolate:ee,limits:Lt,mix:ee,random:ho,scale:ge,scales:To,valid:Ro});var me=O;var At=class{format(t){return t?"true":"false"}},vi={float:{format:{style:"decimal",minimumFractionDigits:2,maximumFractionDigits:2}},datetime:{format:{dateStyle:"short",timeStyle:"medium"}},date:{format:{dateStyle:"short"}}},dt=class{_formatters;constructor(){this._formatters=new Map}create_datetime_formatter(t,o){if(o.date_format?.format!=="custom"){let r={timeZone:o.date_format?.timeZone,dateStyle:o.date_format?.dateStyle==="disabled"?void 0:o.date_format?.dateStyle??"short",timeStyle:o.date_format?.timeStyle==="disabled"?void 0:o.date_format?.timeStyle??"medium"};return new Intl.DateTimeFormat(navigator.languages,r)}else{let r={timeZone:o.date_format?.timeZone,hour12:o.date_format?.hour12??!0,fractionalSecondDigits:o.date_format?.fractionalSecondDigits};return o.date_format?.year!=="disabled"&&(r.year=o.date_format?.year??"2-digit"),o.date_format?.month!=="disabled"&&(r.month=o.date_format?.month??"numeric"),o.date_format?.day!=="disabled"&&(r.day=o.date_format?.day??"numeric"),o.date_format?.weekday&&o.date_format?.weekday!=="disabled"&&(r.weekday=o.date_format.weekday),o.date_format?.hour!=="disabled"&&(r.hour=o.date_format?.hour??"numeric"),o.date_format?.minute!=="disabled"&&(r.minute=o.date_format?.minute??"numeric"),o.date_format?.second!=="disabled"&&(r.second=o.date_format?.second??"numeric"),new Intl.DateTimeFormat(navigator.languages,r)}}create_date_formatter(t,o){let r={timeZone:"utc",dateStyle:o.date_format?.dateStyle==="disabled"?void 0:o.date_format?.dateStyle??"short"};return new Intl.DateTimeFormat(navigator.languages,r)}create_number_formatter(t,o){let r=o.number_format??vi[t]?.format;return new Intl.NumberFormat(navigator.languages,r)}create_boolean_formatter(t,o){return new At}get(t,o){let r=[t,...Object.values(o.date_format??{}),...Object.values(o.number_format??{})].join("-");return this._formatters.has(r)||(t==="date"?this._formatters.set(r,this.create_date_formatter(t,o)):t==="datetime"?this._formatters.set(r,this.create_datetime_formatter(t,o)):t==="integer"||t==="float"?this._formatters.set(r,this.create_number_formatter(t,o)):t==="boolean"?this._formatters.set(r,this.create_boolean_formatter(t,o)):this._formatters.set(r,!1)),this._formatters.get(r)}};var rr=new dt,or=1;function nr(e,t){return rr.get(e,t)}function He(e,t,o={},r=!1){if(t===null)return null;let n=r&&this._table_schema[e]||this._schema[e]||"string",s=o[e]||{};if((n==="integer"||n==="float")&&s?.number_fg_mode==="bar"){let l=Math.max(0,Math.min(or,Math.abs(t/s.fg_gradient)*or)),a=this._div_factory.get(),m=t>=0?"left":"right",c=(l*100).toFixed(2);return a.setAttribute("style",`width:calc(${c}% - 4px);position:absolute;${m}:2px;height:80%;top:10%;pointer-events:none;`),a}else if(s?.format==="link"&&n==="string"){let l=document.createElement("a");return l.setAttribute("href",t),l.setAttribute("target","_blank"),l.textContent=t,l}else if(s?.format==="bold"&&n==="string"){let l=document.createElement("b");return l.textContent=t,l}else if(s?.format==="italics"&&n==="string"){let l=document.createElement("i");return l.textContent=t,l}else{let l=rr.get(n,s);return l?l.format(t):t}}function*sr(e=[],t,o){let r=o[$]||{};for(let n of e){let s=["TOTAL",...n],i=s[s.length-1],l=s.slice(0,s.length-1).fill(""),a=He.call(this,t[l.length-1],i,r,!0);a instanceof HTMLElement?l=l.concat(a):l=l.concat({toString:()=>a}),l.length=t.length+1,yield l}}function*ir(e=[],t,o){let r=o[$]||{};for(let n of e){let s=[""];for(let i in n)s.push(He.call(this,t[i],n[i],r,!0));yield n}}function lr(e){let t,o,r,n,s;return async function(l,a,m,c,d){let p={},f={start_row:m,start_col:a,end_row:d,end_col:c,id:!0},g=null;if(c-a>0&&d-m>0){this._is_old_viewport=this._last_window?.start_row===m&&this._last_window?.end_row===d&&this._last_window?.start_col===a&&this._last_window?.end_col===c;let[v,S]=await Promise.all([this._view.to_columns_string(f),this._view.num_columns()]);g=S,p=JSON.parse(v);let T=Object.keys(p).filter(L=>L!=="__ROW_PATH__"&&L!=="__ID__"),P=!1;for(let L=0;L<T.length;L++)this._column_paths[f.start_col+L]!==T[L]&&(P=!0,this._column_paths[f.start_col+L]=T[L]);if(P){let[L,N]=await Promise.all([this._view.schema(),this._view.expression_schema()]);this._schema={...L,...N};for(let z=0;z<T.length;z++){let te=T[z].split("|")[this._config.split_by.length];this._is_editable[z+f.start_col]=!!this._table_schema[te],this._column_types[z+f.start_col]=this._schema[te]}}this._last_window=f,this._ids=p.__ID__||Array(d-m).fill(null).map((L,N)=>[N+m]),this._reverse_columns=this._column_paths.slice(a,c).reduce((L,N,z)=>(L.set(N,z),L),new Map),this._reverse_ids=this._ids?.reduce((L,N,z)=>(L.set(N?.join("|"),z),L),new Map)}else this._div_factory.clear(),g=await this._view.num_columns();let y=[],_=[],b=[],E=[],M=e.hasAttribute("settings");for(let v=a;v<Math.min(c,this._column_paths.length);++v){let S=this._column_paths[v],x=S.split("|"),T=p[S]||new Array(d-m).fill(null),P=Math.min(l[$]?.[x[this._config.split_by.length]]?.aggregate_depth||0,this._config.group_by.length);y.push(T.map((L,N)=>(p?.__ROW_PATH__?.[N]?.length??0)<P?"":He.call(this,x[this._config.split_by.length],L,l[$]||{}))),_.push(T),M&&x.push(""),b.push(x),E.push(S)}c-a>0&&d-m>0&&(this.last_column_paths=o,this.last_meta=t,this.last_ids=r,this.last_reverse_ids=n,this.last_reverse_columns=s,o=E,t=_,r=this._ids,n=this._reverse_ids,s=this._reverse_columns);let D=p.__ROW_PATH__!==void 0,A=Array.from((D?sr:ir).call(this,p.__ROW_PATH__,this._config.group_by,l)),k=A[0]?.length;return{num_column_headers:this._config.split_by.length+(M?2:1),num_row_headers:k,num_rows:this._num_rows,num_columns:g,row_headers:A,column_headers:b,data:y,metadata:_,column_header_merge_depth:Math.max(0,this._config.split_by.length)}}}function Nt(e,t){return me.mix(e,`rgb(${t[0]},${t[1]},${t[2]})`,.5).hex()}function pe([e,t,o,r],n=[255,255,255]){function s(i,l){return((1-r)*(n[i]/255)+r*(l/255))*255}return[s(0,e),s(1,t),s(2,o)]}function fe([e,t,o]){return Math.sqrt(e*e*.299+t*t*.587+o*o*.114)>130?"#161616":"#ffffff"}function xi(e){let[t,o,r]=e.rgb(),[n,s,i]=e.set("hsl.h",(e.get("hsl.h")-15)%360).rgb(),[l,a,m]=e.set("hsl.h",(e.get("hsl.h")+15)%360).rgb();return`linear-gradient(to right top,rgb(${n},${s},${i}),rgb(${t},${o},${r}) 50%,rgb(${l},${a},${m}))`}function q(e){let t=me(e),o=xi(t),r=t.rgb();return[e,r[0],r[1],r[2],o,`rgba(${r[0]},${r[1]},${r[2]},1)`,`rgba(${r[0]},${r[1]},${r[2]},0)`]}function mt(e,t,o){let r=window.getComputedStyle(e).getPropertyValue(t).trim();return r.length>0?r:o}var Ht=class{_name;_elements;_index;constructor(t){this._name=t,this._elements=[],this._index=0}clear(){this._index=0}get(){this._elements[this._index]||(this._elements[this._index]=document.createElement(this._name));let t=this._elements[this._index];return this._index+=1,t}};function Ei(e){return e.x!==void 0&&e.x>=0?this._column_types[e.x]:this._row_header_types[e.row_header_x-1]}async function pt(e,t,o,r={}){let n=await o.get_config();if(this?.model?._config){let h=this.model._config,v=h.group_by.length!==n.group_by.length,S=(h.group_by.length===0||n.group_by.length===0)&&v;if(!v)for(let N in h.group_by)v||=n.group_by[N]!==h.group_by[N];let x=h.split_by.length!==n.split_by.length;if(x)for(let N in h.split_by)x||=n.split_by[N]!==h.split_by[N];let T=h.columns.length!==n.columns.length;if(T)for(let N in h.columns)T||=n.columns[N]!==h.columns[N];let P=h.filter.length!==n.filter.length;if(P)for(let N in h.filter)for(let z in n.filter[N])P||=n.filter[N][z]!==h.filter[N][z];let L=h.sort.length!==n.sort.length;if(L)for(let N in h.sort)for(let z in n.sort[N])L||=n.sort[N][z]!==h.sort[N][z];this._reset_scroll_top=v,this._reset_scroll_left=x,this._reset_select=v||x||P||L||T,this._reset_column_size=x||v||T||S}let[s,i,l,a,m]=await Promise.all([t.schema(),o.num_rows(),o.schema(),o.expression_schema(),this.parentElement.getEditPort()]),c=me(mt(e,"--plugin--background","#FFFFFF")).rgb(),d=q(mt(e,"--rt-pos-cell--color","#338DCD")),p=q(mt(e,"--rt-neg-cell--color","#FF5942")),f=q(Nt(d[0],c)),g=q(Nt(p[0],c)),y=q(mt(e,"--active--color","#ff0000")),_={...l,...a},b={...s,...a},E=[],M=[],D=[],A=this._edit_mode||"READ_ONLY";this._edit_button.dataset.editMode=A;let k=Object.assign(r,{_edit_port:m,_view:o,_table:t,_table_schema:b,_config:n,_num_rows:i,_schema:_,_ids:[],_plugin_background:c,_color:y,_pos_fg_color:d,_neg_fg_color:p,_pos_bg_color:f,_neg_bg_color:g,_column_paths:E,_column_types:D,_is_editable:M,_edit_mode:A,_selection_state:{selected_areas:[],dirty:!1},_row_header_types:n.group_by.map(h=>b[h]),_series_color_map:new Map,_series_color_seed:new Map,get_psp_type:Ei,_div_factory:r._div_factory||new Ht("div")});return e.setDataListener(lr(this.parentElement).bind(k,e),{virtual_mode:window.getComputedStyle(e).getPropertyValue("--datagrid-virtual-mode")?.trim()||"both"}),k}var ze=["READ_ONLY","EDIT","SELECT_ROW","SELECT_COLUMN","SELECT_REGION"];function Ve(e){typeof e>"u"&&(e=ze[(ze.indexOf(this._edit_mode)+1)%ze.length]),this.parentElement?.setSelection?.(),this._edit_mode=e,this.model&&(this.model._edit_mode=e,this.model._selection_state={selected_areas:[],dirty:!0}),this._edit_button!==void 0&&(this._edit_button.dataset.editMode=e),this.dataset.editMode=e}function We(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 Ie(e,t=!1){if(!this._initialized)return;t&&(this._cached_column_sizes=e);let o={},{group_by:r}=this.model._config,n=r?.length>0?r.length+1:0;for(let s of Object.keys(e))if(s==="__ROW_PATH__")o[n-1]=e[s];else{let i=this.model._column_paths.indexOf(s);o[i+n]=e[s]}this.regular_table.restoreColumnSizes(o)}function je(){if(!this._initialized)return{};if(this._cached_column_sizes){let n=this._cached_column_sizes;return this._cached_column_sizes=void 0,n}let e=this.regular_table.saveColumnSizes(),{group_by:t}=this.model._config,o=t?.length>0?t.length+1:0,r={};for(let n of Object.keys(e)){let s=Number(n);if(e[s]!==void 0){let i=s-o;i>-1?r[this.model._column_paths[i]]=e[s]:i===-1&&(r.__ROW_PATH__=e[s])}}return r}function ar(e,t,o){let r=Array.from(e.children[0].children[0].children),n=r.length,s=t.hasAttribute("settings");if(n<=1?r[0]?.removeAttribute("id"):r.forEach((i,l)=>{let a=s?1:0,m=l===n-(a+1)?"psp-column-titles":l===n-a?"psp-column-edit-buttons":null;m?i.setAttribute("id",m):i.removeAttribute("id")}),t.classList.toggle("psp-menu-open",!!o),s&&n>=2){let i=Array.from(r[n-2].children),l=Array.from(r[n-1].children);if(i&&l){r.slice(0,n-2).forEach(a=>{Array.from(a.children).forEach(m=>{m.classList.toggle("psp-menu-open",!1)})});for(let a=0;a<i.length;a++){let m=i[a],c=l[a],d=m.textContent===o;if(m.classList.toggle("psp-menu-open",d),c.classList.toggle("psp-menu-open",d),this._config.columns.length>1)for(let p of e.querySelectorAll("td")){let f=e.getMeta(p);if(!f?.column_header)continue;let g=f.column_header[f.column_header.length-2]===o;p.classList.toggle("psp-menu-open",g)}}}}}function cr(e,t,o){let r=this._config.group_by.length,n=this._column_settings_selected_column;for(let{element:s,metadata:i}of e.cells){if(!i)continue;let l=i.column_header?.[this._config.split_by.length],a=this._config.sort.find(_=>_[0]===l),m=i.row_header_x===r,c=typeof i.x>"u";m=m||i.x!==void 0&&(i.x+1)%this._config.columns.length===0,s.classList.toggle("psp-header-border",m),s.classList.toggle("psp-header-group",!1),s.classList.toggle("psp-header-leaf",!0),s.classList.toggle("psp-is-top",!1),s.classList.toggle("psp-header-corner",c),s.classList.toggle("psp-header-sort-asc",!o&&!!a&&a[1]==="asc"),s.classList.toggle("psp-header-sort-desc",!o&&!!a&&a[1]==="desc"),s.classList.toggle("psp-header-sort-col-asc",!o&&!!a&&a[1]==="col asc"),s.classList.toggle("psp-header-sort-col-desc",!o&&!!a&&a[1]==="col desc"),s.classList.toggle("psp-header-sort-abs-asc",!o&&!!a&&a[1]==="asc abs"),s.classList.toggle("psp-header-sort-abs-desc",!o&&!!a&&a[1]==="desc abs"),s.classList.toggle("psp-header-sort-abs-col-asc",!o&&!!a&&a[1]==="col asc abs"),s.classList.toggle("psp-header-sort-abs-col-desc",!o&&!!a&&a[1]==="col desc abs");let d=this.get_psp_type(i),p=d==="integer"||d==="float",f=d==="string",g=d==="date",y=d==="datetime";if(s.classList.toggle("psp-align-right",p),s.classList.toggle("psp-align-left",!p),s.classList.toggle("psp-menu-enabled",(f||p||g||y)&&!c&&i.column_header_y===this._config.split_by.length+1),s.classList.toggle("psp-sort-enabled",(f||p||g||y)&&!c&&i.column_header_y===this._config.split_by.length),s.classList.toggle("psp-is-width-override",t.saveColumnSizes()[i.size_key]!==void 0),this._config.columns.length>1&&n){let _=i.column_header?.[i.column_header.length-2]===n;s.classList.toggle("psp-menu-open",_)}}}var ki={desc:"asc",asc:void 0,"desc abs":"asc abs","asc abs":void 0},Ci={desc:"asc",asc:"col desc","desc abs":"asc abs","asc abs":"col desc abs","col desc":"col asc","col asc":void 0,"col desc abs":"col asc abs","col asc abs":void 0};async function dr(e,t,o,r){let n=e.getMeta(r);if(!n?.column_header)return;let s=n.column_header[this._config.split_by.length],i=o.ctrlKey||o.metaKet||o.altKey?Mi:Si,l=o.shiftKey,a=i.call(this,s,l);await t.restore({sort:a})}function Mi(e,t){let o=[],r=!1;for(let n of this._config.sort){let[s,i]=n;if(s===e){r=!0;let l=mr.call(this,e,i,t);l&&o.push(l)}else o.push(n)}return r||o.push([e,t?"desc abs":"desc"]),o}function Si(e,t){for(let[o,r]of this._config.sort)if(o===e){let n=mr.call(this,e,r,t);return n?[n]:[]}return[[e,t?"desc abs":"desc"]]}function mr(e,t,o){let n=this._config.split_by.length>0?Ci:ki,s=t?n[t]:"desc";if(s)return[e,s]}async function pr(e,t){let o=e.getMeta(t.target);if(!o?.row_header)return;let r=t.target.classList.contains("psp-tree-label-collapse");t.shiftKey&&r?this._view.set_depth(o.row_header.filter(n=>n!==void 0).length-2):t.shiftKey?this._view.set_depth(o.row_header.filter(n=>n!==void 0).length-1):r?this._view.collapse(o.y):this._view.expand(o.y),this._num_rows=await this._view.num_rows(),this._num_columns=await this._view.num_columns(),e.draw()}async function fr(e,t,o){if(o.which!==1)return;let r=o.target;if(r?.tagName!=="A"){for(;r&&r.tagName!=="TD"&&r.tagName!=="TH";)if(r=r.parentElement,!r||!e.contains(r))return;if(r){if(r.classList.contains("psp-tree-label")){pr.call(this,e,o);return}if(r.classList.contains("psp-menu-enabled")){let s=e.getMeta(r)?.column_header?.[this._config.split_by.length];await t.toggleColumnSettings(s)}else r.classList.contains("psp-sort-enabled")&&dr.call(this,e,t,o,r)}}}function ur(e,t){if(t.which!==1)return;let o=t.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")&&t.offsetX<26||o.classList.contains("psp-header-leaf")&&!o.classList.contains("psp-header-corner"))&&t.stopImmediatePropagation()}function zt(e,t,o){let r=e.getMeta(o);if(!r)return!1;let n=t._schema[t._column_paths[r.x]],s=o.textContent||"",i=t._ids[r.y-r.y0][0];if(n==="float"||n==="integer"){let a=parseFloat(s.replace(/,/g,""));if(isNaN(a))return!1;s=a}else if(n==="date"||n==="datetime"){let a=Date.parse(s);if(isNaN(a))return!1;s=a}else n==="boolean"&&(s=s==="true"?!1:s==="false"?!0:null);let l={__INDEX__:i,[t._column_paths[r.x]]:s};return t._table.update([l],{port_id:t._edit_port,format:null}),!0}function hr(e,t,o){let r=e.getMeta(o.target);if(typeof r?.x<"u"){let n=this._is_editable[r.x],s=this.get_psp_type(r)==="boolean",i=o.target.classList.contains("psp-null");n&&s&&!i&&zt(e,this,o.target)}}function gr(e,t,o){let r=o.get(t),n=t.getRootNode();if(r){for(let{element:s,metadata:i}of e)if(i.x===r.x&&i.y===r.y){n.activeElement!==s&&s.focus({preventScroll:!0});return}document.activeElement!==document.body&&t.contains(n.activeElement)&&n.activeElement.blur()}}function br(e,t){let o=t.get(e);if(!o)return!1;let r=e.getRootNode(),n=e.children[0]?.children[1];if(n)for(let s of n.children)for(let i of s.children){let l=e.getMeta(i);if(l&&l.x===o.x&&l.y===o.y)return r.activeElement!==i&&i.focus({preventScroll:!0}),!0}return document.activeElement!==document.body&&e.contains(r.activeElement)&&r.activeElement.blur(),!1}function Ri(e){let t;return async function(...o){if(t){await t;return}let r;t=new Promise(s=>r=s);let n=await e.apply(this,o);return t=void 0,r(),n}}function _r(){if(this.isContentEditable){let e=this.getRootNode().getSelection()?.getRangeAt(0);if(!e)return 0;let t=e.cloneRange();return t.selectNodeContents(this),t.setEnd(e.endContainer,e.endOffset),t.toString().length}else return this.selectionStart||0}var Te=Ri(async function(e,t,o,r,n){let s=e.getMeta(o);if(!s)return;let i=this._column_paths.length,l=this._num_rows,a=t.get(e);if(!a)return;s.x+r<i&&0<=s.x+r&&(a.x=s.x+r),s.y+n<l&&0<=s.y+n&&(a.y=s.y+n);let m=Math.max(s.x0-10,0),c=Math.min(s.x0+10,i),d=Math.max(s.y0-5,0),p=Math.min(s.y0+10,l),f=s.x0+r,g=s.y0+n;for(;!br(e,t)&&f>=m&&f<c&&g>=d&&g<p;)await e.scrollToCell(f,g),t.set(e,a),f+=r,g+=n});function Ti(e,t,o){let r=t.getMeta(o);return r!==void 0&&r.y===e._num_rows-1}function yr(e,t,o,r){let n=e.getRootNode().activeElement;switch(r.target.classList.remove("psp-error"),r.key){case"Enter":r.preventDefault(),Ti(this,e,n)?(n.blur(),o.delete(e)):r.shiftKey?Te.call(this,e,o,n,0,-1):Te.call(this,e,o,n,0,1);break;case"ArrowLeft":_r.call(n)===0&&(r.preventDefault(),Te.call(this,e,o,n,-1,0));break;case"ArrowUp":r.preventDefault(),Te.call(this,e,o,n,0,-1);break;case"ArrowRight":_r.call(n)===(n.textContent?.length||0)&&(r.preventDefault(),Te.call(this,e,o,n,1,0));break;case"ArrowDown":r.preventDefault(),Te.call(this,e,o,n,0,1);break;default:}}function ft(e,t=!1){let o=this._config.group_by.length===0&&this._config.split_by.length===0,r=e.hasAttribute("selectable"),n=e.children[0],s=t||n?._edit_mode==="EDIT";return o&&!r&&s}function wr(e,t,o,r){if(this._edit_mode==="EDIT"){if(!ft.call(this,t))return;yr.call(this,e,t,o,r)}else console.debug(`Mode ${this._edit_mode} for "keydown" event not yet implemented`)}function vr(e,t,o){if(this._edit_mode==="EDIT"){if(!ft.call(this,t))return;hr.call(this,e,t,o)}else this._edit_mode==="READ_ONLY"||this._edit_mode==="SELECT_COLUMN"||this._edit_mode==="SELECT_ROW"||this._edit_mode==="SELECT_REGION"||console.debug(`Mode ${this._edit_mode} for "click" event not yet implemented`)}function xr(e,t,o,r){if(ft.call(this,t)&&o.has(e)){let n=r.target;n.classList.remove("psp-error");let s=o.get(e);o.delete(e),s.content!==n.textContent&&(zt(e,this,n)||(n.textContent=s.content||"",n.classList.add("psp-error"),n.focus()))}}function Er(e,t,o,r){let n=r.target,s=e.getMeta(n);if(s){let i={x:s.x,y:s.y,content:n.textContent||void 0};o.set(e,i)}}async function $e({_view:e,_config:t},o,r){let n=t.group_by,s=t.split_by,i=o>=0?o:0,l=i+1,a=await e.to_json({start_row:i,end_row:l}),c=a.map(b=>b.__ROW_PATH__)[0]||[],d=n.map((b,E)=>{let M=c[E];return M?[b,"==",M]:void 0}).filter(b=>b!==void 0),p=n.length>0?r+1:r,f=Object.keys(a[0])[p],g={row:a[0],column_names:[],config:{filter:[]}},y=[];if(f){let b=f.split("|");g.column_names=[b[s.length]],y=s.map((E,M)=>{let D=b[M];return D?[E,"==",D]:void 0}).filter(E=>E!==void 0).filter(([,,E])=>E!=="__ROW_PATH__")}let _=t.filter.concat(d).concat(y);return g.config={filter:_},g}async function kr(e,t,o,r){let n=e.getMeta(r.target);if(!t.hasAttribute("selectable")||r.handled||r.shiftKey||r.button!==0||(r.stopImmediatePropagation(),!n))return;let s=this._ids?.[n.y-n.y0];if(n&&n.y>=0){let i=o.get(e),l=!!i&&i.reduce((f,g,y)=>f&&g===s[y],!0),a=!!i&&s.length===i.length&&l,m={selected:!a,row:{},config:{filter:[]}},{row:c,column_names:d,config:p}=await $e(this,n.y,n.x);a?(o.delete(e),m={...m,row:c,config:{filter:structuredClone(this._config.filter)}}):(o.set(e,s),m={...m,row:c,column_names:d,config:p}),await e.draw({preserve_width:!0}),r.handled=!0,t.dispatchEvent(new CustomEvent("perspective-select",{bubbles:!0,composed:!0,detail:m}))}}async function Cr(e,t,o){o.delete(e);for(let r of e.querySelectorAll("td,th"))r.classList.toggle("psp-row-selected",!1),r.classList.toggle("psp-row-subselected",!1)}async function Mr(e,t,o){let r=e.getMeta(o.target);if(!r)return;let{x:n,y:s}=r,{row:i,column_names:l,config:a}=await $e(this,s,n);t.dispatchEvent(new CustomEvent("perspective-click",{bubbles:!0,composed:!0,detail:{row:i,column_names:l,config:a}}))}var Di="mouse-selected-area",Sr=(e,t,{className:o=Di,selected:r=[]}={})=>(e.model._selection_state={selected_areas:r,dirty:!0},t.addEventListener("mousedown",Oi(e,t,o)),t.addEventListener("mouseover",Ai(e,t,o)),t.addEventListener("mouseup",Ni(e,t,o)),t.addStyleListener(()=>Fe(e,t,o)),t),Oi=(e,t,o)=>r=>{let n=r;if(n.button===0&&(e.model._edit_mode==="SELECT_REGION"||e.model._edit_mode==="SELECT_ROW"||e.model._edit_mode==="SELECT_COLUMN")){e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES={};let s=t.getMeta(n.target);if(s&&s.x!==void 0&&s.y!==void 0){e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES={x:s.x,y:s.y},e.model._selection_state.old_selected_areas=e.model._selection_state.selected_areas,e.model._selection_state.selected_areas=[];let i={x0:s.x,x1:s.x,y0:s.y,y1:s.y};e.model._selection_state.potential_selection=i,Fe(e,t,o,e.model._selection_state.selected_areas.concat([i]));return}}e.model._selection_state.selected_areas=[]},Ai=(e,t,o)=>r=>{let n=r;if((e.model._edit_mode==="SELECT_REGION"||e.model._edit_mode==="SELECT_ROW"||e.model._edit_mode==="SELECT_COLUMN")&&e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES&&e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x!==void 0){let s=t.getMeta(n.target);if(s&&s.x!==void 0&&s.y!==void 0){let i={x0:Math.min(s.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),x1:Math.max(s.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),y0:Math.min(s.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y),y1:Math.max(s.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y)};e.model._selection_state.potential_selection=i,Fe(e,t,o,e.model._selection_state.selected_areas.concat([i]))}}},Ni=(e,t,o)=>r=>{let n=r;if(e.model._edit_mode==="SELECT_REGION"||e.model._edit_mode==="SELECT_ROW"||e.model._edit_mode==="SELECT_COLUMN"){let s=t.getMeta(n.target);if(!s)return;if((e.model._selection_state.old_selected_areas?.length??0)>0){let i=e.model._selection_state.old_selected_areas[0];if(i.x0===i.x1&&i.y0===i.y1&&i.x0===s.x&&i.y0===s.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,Fe(e,t,o,[]);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&&s.x!==void 0&&s.y!==void 0){let i={x0:Math.min(s.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),x1:Math.max(s.x,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.x),y0:Math.min(s.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y),y1:Math.max(s.y,e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES.y)};e.model._selection_state.selected_areas.push(i),Fe(e,t,o)}e.model._selection_state.CURRENT_MOUSEDOWN_COORDINATES={},e.model._selection_state.potential_selection=void 0}};function Hi(e,t,{x0:o,x1:r,y0:n,y1:s}){let i={},l=t.model._edit_mode;o!==void 0&&["SELECT_COLUMN","SELECT_REGION"].indexOf(l)>-1&&(i.start_col=o),r!==void 0&&["SELECT_COLUMN","SELECT_REGION"].indexOf(l)>-1&&(i.end_col=r+1),n!==void 0&&["SELECT_ROW","SELECT_REGION"].indexOf(l)>-1&&(i.start_row=n),s!==void 0&&["SELECT_ROW","SELECT_REGION"].indexOf(l)>-1&&(i.end_row=s+1),e.setSelection(i)}var Fe=(e,t,o,r)=>{if(e.model._edit_mode==="SELECT_REGION"||e.model._edit_mode==="SELECT_ROW"||e.model._edit_mode==="SELECT_COLUMN"){r=e.model._selection_state.selected_areas.slice(0),e.model._selection_state.potential_selection&&r.push(e.model._selection_state.potential_selection);let n=t.querySelectorAll("tbody td");if(r.length>0)Hi(e.parentElement,e,r[0]),zi(e,t,r,o);else{e.parentElement.setSelection();for(let s of n)s.classList.remove(o)}}else if(e.model._selection_state.dirty){e.model._selection_state.dirty=!1;let n=t.querySelectorAll("tbody td");for(let s of n)s.classList.remove(o)}},zi=(e,t,o,r)=>{if(e.model._edit_mode==="SELECT_REGION"&&o.length>0){let n=t.querySelectorAll("tbody td");for(let s of n){let i=t.getMeta(s);if(!i)continue;let l=!1;for(let{x0:a,x1:m,y0:c,y1:d}of o)a!==void 0&&c!==void 0&&m!==void 0&&d!==void 0&&a<=i.x&&i.x<=m&&c<=i.y&&i.y<=d&&(l=!0,e.model._selection_state.dirty=!0,s.classList.add(r));l||s.classList.remove(r)}}else if(e.model._edit_mode==="SELECT_ROW"&&o.length>0){let n=t.querySelectorAll("tbody td");for(let s of n){let i=t.getMeta(s);if(!i)continue;let l=!1;for(let{x0:a,x1:m,y0:c,y1:d}of o)a!==void 0&&c!==void 0&&m!==void 0&&d!==void 0&&c<=i.y&&i.y<=d&&(e.model._selection_state.dirty=!0,l=!0,s.classList.add(r));l||s.classList.remove(r)}}else if(e.model._edit_mode==="SELECT_COLUMN"&&o.length>0){let n=t.querySelectorAll("tbody td");for(let s of n){let i=t.getMeta(s);if(!i)continue;let l=!1;for(let{x0:a,x1:m,y0:c,y1:d}of o)a!==void 0&&c!==void 0&&m!==void 0&&d!==void 0&&a<=i.x&&i.x<=m&&(e.model._selection_state.dirty=!0,l=!0,s.classList.add(r));l||s.classList.remove(r)}}};function Lr(e,t,o){if(e.length===0)return;let r=this._column_settings_selected_column,n=e.length,s=o.hasAttribute("settings");if(n<=1?e[0]?.row.removeAttribute("id"):e.forEach(({row:a},m)=>{let c=s?1:0,d=m===n-(c+1)?"psp-column-titles":m===n-c?"psp-column-edit-buttons":null;d?a.setAttribute("id",d):a.removeAttribute("id")}),o.classList.toggle("psp-menu-open",!!r),s&&n>=2){let a=e[n-2],m=e[n-1];if(a&&m){e.slice(0,n-2).forEach(({cells:c})=>{c.forEach(({element:d})=>{d.classList.toggle("psp-menu-open",!1)})});for(let c=0;c<a.cells.length;c++){let d=a.cells[c]?.element,p=m.cells[c]?.element;if(!d||!p)continue;let f=d.textContent===r;d.classList.toggle("psp-menu-open",f),p.classList.toggle("psp-menu-open",f)}}}let i=this._config.split_by.length;if(i<e.length){let a=e[i];a&&this._styleColumnHeaderRow(a,t,!1)}let l=this._config.split_by.length+1;if(l<e.length){let a=e[l];a&&this._styleColumnHeaderRow(a,t,!0)}}function Rr(e,t){let o=this._config.group_by.length,r=[],n=new Set;for(let s=0;s<e.length;s++){let{row:i,cells:l}=e[s],a=new Set;for(let m=0;m<l.length;m++){let{element:c,metadata:d}=l[m];if(!d)continue;c.style.backgroundColor="";let p=o>0&&d.row_header_x===o||(d.x??-1)>=0;c.classList.toggle("psp-align-right",!1),c.classList.toggle("psp-align-left",!1),c.classList.toggle("psp-header-group",!0),c.classList.toggle("psp-header-leaf",!1),c.classList.toggle("psp-header-border",p),c.classList.toggle("psp-header-group-corner",typeof d.x>"u"),c.classList.toggle("psp-color-mode-bar",!1),c.classList.toggle("psp-header-sort-asc",!1),c.classList.toggle("psp-header-sort-desc",!1),c.classList.toggle("psp-header-sort-col-asc",!1),c.classList.toggle("psp-header-sort-col-desc",!1),c.classList.toggle("psp-sort-enabled",!1);let f=m;for(;r[s]&&r[s][f];++f);a.add(f);let g=c;for(let y=f;y<f+g.colSpan;++y)for(let _=s;_<s+g.rowSpan;++_)r[_]||(r[_]=[]),r[_][y]=!0;g.classList.toggle("psp-is-top",s===0||!n.has(f))}n=a}}function Tr(e,t,[,,,,,o,r],[,,,,,n,s],i){let l=this._ids?.[e.dy??0]?.join("|"),a=(i?(e.column_header??[]).slice(0,-1):e.column_header??[]).join("|");if(this.last_reverse_columns?.has(a)&&this.last_reverse_ids?.has(l)){let m=this.last_reverse_ids?.get(l),c=this.last_reverse_columns.get(a);this._is_old_viewport?c!==void 0&&m!==void 0&&this.last_meta?.[c]?.[m]!==void 0&&this.last_meta[c][m]>(e.user??0)?(t.style.setProperty("--pulse--background-color-start",n),t.style.setProperty("--pulse--background-color-end",s),t.style.animationName==="pulse_neg"?t.style.animation="pulse_neg2 0.5s linear":t.style.animation="pulse_neg 0.5s linear"):c!==void 0&&m!==void 0&&this.last_meta?.[c]?.[m]!==void 0&&this.last_meta[c][m]<(e.user??0)?(t.style.setProperty("--pulse--background-color-start",o),t.style.setProperty("--pulse--background-color-end",r),t.style.animationName==="pulse_pos"?t.style.animation="pulse_pos2 0.5s linear":t.style.animation="pulse_pos 0.5s linear"):m!==e.dy&&(t.style.animation=""):t.style.animation=""}else t.style.animation=""}function Pr(e,t,o,r){let n=(o.user??0)>0,s=(o.user??0)<0,i;e?.pos_bg_color!==void 0?i=e.pos_bg_color:i=this._pos_bg_color;let l;e?.neg_bg_color!==void 0?l=e.neg_bg_color:l=this._neg_bg_color;let a=n?i:s?l:["",this._plugin_background[0],this._plugin_background[1],this._plugin_background[2],"","",""];{let[p,f,g,y]=a;if(t.style.position="",o._is_hidden_by_aggregate_depth)t.style.animation="",t.style.backgroundColor="";else if(e?.number_bg_mode==="color")t.style.animation="",t.style.backgroundColor=p;else if(e?.number_bg_mode==="gradient"){let _=Math.max(0,Math.min(1,Math.abs((o.user??0)/(e.bg_gradient??1)))),b=this._plugin_background,E=fe(pe([f,g,y,_],b));t.style.animation="",t.style.color=E,t.style.backgroundColor=`rgba(${f},${g},${y},${_})`}else e?.number_bg_mode==="pulse"?(Tr.call(this,o,t,i,l,r),t.style.backgroundColor=""):(e?.number_bg_mode==="disabled"||e?.number_bg_mode,t.style.animation="",t.style.backgroundColor="")}let m=e?.pos_fg_color!==void 0?n?e.pos_fg_color:s?e.neg_fg_color:["",this._plugin_background[0],this._plugin_background[1],this._plugin_background[2],"","",""]:n?this._pos_fg_color:s?this._neg_fg_color:["",this._plugin_background[0],this._plugin_background[1],this._plugin_background[2],"","",""],[c,,,,d]=m;if(o._is_hidden_by_aggregate_depth)t.style.backgroundColor="",t.style.color="";else if(e?.number_fg_mode==="disabled")if(e?.number_bg_mode==="color"){let p=this._plugin_background,f=fe(pe([a[1],a[2],a[3],1],p));t.style.color=f}else e?.number_bg_mode==="gradient"||(t.style.color="");else e?.number_fg_mode==="bar"?(t.style.color="",t.style.position="relative",d!==""&&t.children.length>0&&t.children[0].nodeType===Node.ELEMENT_NODE&&(t.children[0].style.background=d)):(e?.number_fg_mode==="color"||!e?.number_fg_mode)&&(t.style.color=c)}function Dr(e,t,o){let r=o.column_header?.[this._config.split_by.length],n=e?.color!==void 0?e.color:this._color,[s,i,l,a]=n;if(o._is_hidden_by_aggregate_depth)t.style.backgroundColor="",t.style.color="";else if(e?.string_color_mode==="foreground"&&o.user!==null)t.style.color=s,t.style.backgroundColor="",e?.format==="link"&&t.children[0]&&(t.children[0].style.color=s);else if(e?.string_color_mode==="background"&&o.user!==null){let m=this._plugin_background,c=fe(pe([i,l,a,1],m));t.style.color=c,t.style.backgroundColor=s}else if(e?.string_color_mode==="series"&&o.user!==null&&r){this._series_color_map.has(r)||(this._series_color_map.set(r,new Map),this._series_color_seed.set(r,0));let m=this._series_color_map.get(r);if(o.user&&!m.has(o.user)){let A=this._series_color_seed.get(r)??0;m.set(o.user,A),this._series_color_seed.set(r,A+1)}let c=m.get(o.user)??0,[d,p,f]=me(s).hsl();d=d+c*150%360;let g=me(d,p,f,"hsl"),[y,_,b]=g.rgb(),E=g.hex(),M=this._plugin_background,D=fe(pe([y,_,b,1],M));t.style.color=D,t.style.backgroundColor=E}else t.style.backgroundColor="",t.style.color=""}function Or(e,t,o){let r=this._color,[n,s,i,l]=r;if(o._is_hidden_by_aggregate_depth)t.style.backgroundColor="",t.style.color="";else if(e?.datetime_color_mode==="foreground"&&o.user!==null)t.style.color=n,t.style.backgroundColor="";else if(e?.datetime_color_mode==="background"&&o.user!==null){let a=this._plugin_background,m=fe(pe([s,i,l,1],a));t.style.color=m,t.style.backgroundColor=n}else t.style.backgroundColor="",t.style.color=""}function Ar(e,t,o){if(o._is_hidden_by_aggregate_depth)t.style.backgroundColor="",t.style.color="";else{let[r]=o.user===!0?this._pos_fg_color:o.user===!1?this._neg_fg_color:["",0,0,0,""];t.style.backgroundColor="",t.style.color=r}}function Nr(e,t,o){let r=o.value!==void 0&&o.value!==null&&o.value?.toString()?.trim().length>0,n=(o.row_header_x??0)>=this._config.group_by.length,s=e.getMeta({dx:0,dy:(o.y??0)-(o.y0??0)+1}),i=s&&s.row_header&&typeof s.row_header[(o.row_header_x??0)+1]<"u";t.classList.toggle("psp-tree-label",r&&!n),t.classList.toggle("psp-tree-label-expand",r&&!n&&!i),t.classList.toggle("psp-tree-label-collapse",r&&!n&&i),t.classList.toggle("psp-tree-leaf",r&&n)}function Vi(e,t){return t.x!==void 0&&t.x>=0?e._column_types[t.x]:e._row_header_types[(t.row_header_x??0)-1]}function Hr(e,t,o,r,n,s,i,l,a){let m=i.has(s),c=i.get(s);for(let{element:d,metadata:p,isHeader:f}of e){let g=p.column_header?.[this._config.split_by.length],y=Vi(this,p),_=g?t[g.toString()]:void 0,b=y==="integer"||y==="float";p._is_hidden_by_aggregate_depth=(M=>M===0||M===void 0?!1:M-1<Math.min(this._config.group_by.length,_?.aggregate_depth||0))(p.row_header?.filter(M=>M!==void 0)?.length),b?Pr.call(this,_,d,p,o):y==="boolean"?Ar.call(this,_,d,p):y==="string"?Dr.call(this,_,d,p):y==="date"||y==="datetime"?Or.call(this,_,d,p):(d.style.backgroundColor="",d.style.color=""),d.classList.toggle("psp-bool-type",y==="boolean"&&p.user!==null),d.classList.toggle("psp-null",p.value===null),d.classList.toggle("psp-align-right",!f&&b),d.classList.toggle("psp-align-left",f||!b),this._column_settings_selected_column?d.classList.toggle("psp-menu-open",g===this._column_settings_selected_column):d.classList.toggle("psp-menu-open",!1),d.classList.toggle("psp-color-mode-bar",_?.number_fg_mode==="bar"&&b),f&&Nr.call(this,s,d,p);let E=d.parentElement;if(E&&(E.dataset.y=String(p.y)),p.row_header_x===void 0||p.row_header_x===p.row_header.length-1||p.row_header[p.row_header_x+1]===void 0?(d.dataset.y=String(p.y),d.dataset.x=String(p.x)):(delete d.dataset.y,delete d.dataset.x),r)if(!m)d.classList.toggle("psp-row-selected",!1),d.classList.toggle("psp-row-subselected",!1);else{let M=this._ids[(p.y??0)-(p.y0??0)],D=c.reduce((k,h,v)=>k&&h===M[v],!0),A=c;f&&p.row_header_x!==void 0&&M[p.row_header_x]?(d.classList.toggle("psp-row-selected",!1),d.classList.toggle("psp-row-subselected",!1)):(d.classList.toggle("psp-row-selected",M.length===A.length&&D),d.classList.toggle("psp-row-subselected",M.length!==A.length&&D))}if(!f&&p.x!==void 0)if(n&&this._is_editable[p.x]){let D=p.column_header?.[this._config.split_by.length]?.toString();D&&y==="string"&&t[D]?.format==="link"?(d.toggleAttribute("contenteditable",!1),d.classList.toggle("boolean-editable",!1)):y==="boolean"?(d.toggleAttribute("contenteditable",!1),d.classList.toggle("boolean-editable",p.user!==null)):(n!==d.hasAttribute("contenteditable")&&d.toggleAttribute("contenteditable",n),d.classList.toggle("boolean-editable",!1))}else d.toggleAttribute("contenteditable",!1),d.classList.toggle("boolean-editable",!1)}}function zr(e,t,o=!1){let r=e._config.group_by.length===0&&e._config.split_by.length===0,n=t.hasAttribute("selectable"),s=t.children[0],i=o||s?.dataset?.editMode==="EDIT";return r&&!n&&i}function Vr(e,t,o){return function(n,s){let i=n[$]||{},l=s.hasAttribute("settings"),a=s.hasAttribute("selectable"),m=zr(this,s),c=zr(this,s,!0);e.classList.toggle("edit-mode-allowed",c);let d=[],p=[],f=n.children[0]?.children[1];if(f)for(let y of f.children)for(let _ of y.children){let b=n.getMeta(_);if(b){let E=_.tagName==="TH";d.push({element:_,metadata:b,isHeader:E})}}let g=n.children[0]?.children[0];if(g)for(let y of g.children){let _={row:y,cells:[]};for(let b of y.children){let E=n.getMeta(b);_.cells.push({element:b,metadata:E})}p.push(_)}this._applyBodyCellStyles(d,i,l,a,m,n,t,o,s),this._applyGroupHeaderStyles(p,n),this._applyColumnHeaderStyles(p,n,s),this._applyFocusStyle(d,n,o)}}function Wr(e){e._applyBodyCellStyles=Hr,e._applyGroupHeaderStyles=Rr,e._applyColumnHeaderStyles=Lr,e._applyFocusStyle=gr,e._styleColumnHeaderRow=cr}async function Ir(e){let t=this.parentElement,o=await t.getTable();if(this._initialized)await pt.call(this,this.regular_table,o,e,this.model);else{if(this.innerHTML="",this.shadowRoot?this.shadowRoot.appendChild(this.regular_table):this.appendChild(this.regular_table),this.model=await pt.call(this,this.regular_table,o,e),!this.model)return;Sr(this,this.regular_table,{className:"psp-select-region"});let r=new WeakMap,n=new WeakMap;Wr(this.model),this.regular_table.addStyleListener(Vr(this,r,n).bind(this.model,this.regular_table,t)),this.regular_table.addEventListener("click",ur.bind(this.model,this.regular_table)),this.regular_table.addEventListener("mousedown",kr.bind(this.model,this.regular_table,t,r)),this.regular_table.addEventListener("psp-deselect-all",Cr.bind(this.model,this.regular_table,t,r)),this.regular_table.addEventListener("click",Mr.bind(this.model,this.regular_table,t)),this.regular_table.addEventListener("mousedown",fr.bind(this.model,this.regular_table,t)),this.regular_table.addEventListener("click",vr.bind(this.model,this.regular_table,t)),this.regular_table.addEventListener("focusin",Er.bind(this.model,this.regular_table,t,n)),this.regular_table.addEventListener("focusout",xr.bind(this.model,this.regular_table,t,n)),this.regular_table.addEventListener("keydown",wr.bind(this.model,this.regular_table,t,n)),t.addEventListener("perspective-toggle-column-settings",s=>{let i=s;if(this.isConnected){if(ar.call(this.model,this.regular_table,t,i.detail.column_name??void 0),!i.detail.open){this.model._column_settings_selected_column=void 0;return}this.model._column_settings_selected_column=i.detail.column_name??void 0}}),this._initialized=!0}}function jr(e,t){e=JSON.parse(JSON.stringify(e)),t=JSON.parse(JSON.stringify(t));let o={};if(e.columns)for(let[s,i]of Object.entries(e.columns))i.column_size_override!==void 0&&(o[s]=i.column_size_override,delete i.column_size_override);let r={};if(t)for(let[s,i]of Object.entries(t))r[s]={...i,pos_fg_color:i.pos_fg_color?q(i.pos_fg_color):void 0,neg_fg_color:i.neg_fg_color?q(i.neg_fg_color):void 0,pos_bg_color:i.pos_bg_color?q(i.pos_bg_color):void 0,neg_bg_color:i.neg_bg_color?q(i.neg_bg_color):void 0,color:i.color?q(i.color):void 0};"edit_mode"in e&&e.edit_mode&&(ze.indexOf(e.edit_mode)!==-1?Ve.call(this,e.edit_mode):console.error("Unknown edit mode "+e.edit_mode)),"scroll_lock"in e&&We.call(this,e.scroll_lock);let n=this.regular_table;Ie.call(this,o,!0),n[$]=r}function $r(){if(this.regular_table){let e={columns:{},scroll_lock:!!this._is_scroll_lock,edit_mode:this._edit_mode},t=je.call(this);for(let o of Object.keys(t||{}))e.columns?.[o]||(e.columns=e.columns||{},e.columns[o]={}),e.columns[o].column_size_override=t[o];return JSON.parse(JSON.stringify(e))}return{}}async function Fr(e){if(this.parentElement&&await this.activate(e),!this.isConnected||this.offsetParent==null||!this.model)return;let t=je.call(this),o=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),Ie.call(this,t),await o,this._toolbar?.classList.toggle("aggregated",this.model._config.group_by.length>0||this.model._config.split_by.length>0)}function Vt(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 Gr='regular-table{padding:0;margin:12px 0 0 12px;font-family:inherit;--rt-hover--border-color:var(--inactive--color,#c5c9d080);}regular-table div[tabindex]{outline:none;}regular-table>div{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;}regular-table th{text-align:center;}regular-table thead tr:not(.rt-autosize) th{overflow:hidden;max-width:0px;}regular-table thead tr:last-child .rt-float,regular-table tbody .rt-float{text-align:right;}regular-table thead .rt-integer,regular-table tbody .rt-integer{text-align:right;}regular-table tbody th{text-align:left;}regular-table span.rt-tree-container{display:flex;align-items:center;height:100%;}regular-table thead .rt-string,regular-table tbody .rt-string,regular-table thead .rt-date,regular-table tbody .rt-date,regular-table thead .rt-datetime,regular-table tbody .rt-datetime{text-align:left;}regular-table thead tr:last-child th{border-bottom:1px solid#8b868045;}regular-table tbody tr:first-child td,regular-table tbody tr:first-child th{border-top:1px solid transparent!important;}regular-table th{position:relative;}regular-table tr th span.rt-tree-group{margin-left:5px;margin-right:15px;border-left:1px solid#eee;height:100%;}regular-table td,regular-table th{white-space:nowrap;font-size:12px;padding-right:5px;padding-left:5px;padding-top:0px;padding-bottom:0px;height:19px;}regular-table table *{box-sizing:border-box;}regular-table table{position:absolute;color:#666;outline:none;}regular-table span.rt-row-header-icon{color:#aaa;padding-right:4px;font-family:var(--button--font-family);}regular-table span.rt-column-header-icon{font-size:10px;padding-left:3px;display:inline-block;width:10px;font-family:var(--button--font-family);}regular-table span.rt-row-header-icon:hover{color:#1a7da1;text-shadow:0px 0px 3px#1a7da1;}regular-table .rt-selected td{background-color:#eee;}regular-table .rt-cell-clip{overflow:hidden;text-overflow:ellipsis;}regular-table td span.rt-group-name,regular-table th span.rt-group-name{margin-right:-5px;padding-right:5px;padding-left:8px;flex:1;height:100%;}regular-table th span.rt-group-name{text-align:left;}regular-table td th span.rt-group-leaf,regular-table th span.rt-group-leaf{margin-left:16px;height:100%;}regular-table .rt-column-resize{height:100%;width:10px;position:absolute;top:0;right:0;cursor:col-resize;}regular-table a{color:var(--rt-pos-cell--color);}regular-table a:visited{color:var(--active--color);}regular-table td.psp-null:after,regular-table th.psp-null:after{content:var(--null--content,"-");}.psp-header-border:not(.psp-is-top):not(.psp-header-leaf){box-shadow:1px 0px var(--inactive--border-color,#8b868045);}.psp-header-group{box-shadow:0px 10px 0 -9px var(--inactive--border-color,#8b868045);}.psp-is-top{box-shadow:5px 4px 0px -4px var(--inactive--border-color,#8b868045);}.psp-is-top.psp-header-group:not(.psp-header-group-corner){box-shadow:5px 4px 0px -4px var(--inactive--border-color,#8b868045),0px 10px 0 -9px var(--inactive--border-color,#8b868045);}.psp-header-border.psp-header-group:not(.psp-is-top):not(.psp-header-group-corner){box-shadow:1px 0px var(--inactive--border-color,#8b868045),0px 10px 0 -9px var(--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(--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(--inactive--border-color,#8b868045);}.psp-header-leaf.psp-header-border{box-shadow:5px -4px 0px -4px var(--inactive--border-color,#8b868045);}tr:only-child th{box-shadow:none!important;}regular-table tbody tr:hover th.psp-tree-leaf:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover th.psp-tree-label:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover td:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover:after{border-color:var(--rt-hover--border-color,#c5c9d080)!important;box-shadow:0px 1px 0px var(--rt-hover--border-color,#c5c9d080);}regular-table tbody tr:hover th.psp-tree-leaf.psp-menu-open:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover th.psp-tree-label.psp-menu-open:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover td.psp-menu-open:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr.psp-menu-open:hover:after{box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color),0px 1px 0px var(--rt-hover--border-color,#c5c9d080);}regular-table tbody tr:last-child:hover td.psp-menu-open:not(.psp-row-selected):not(.psp-row-subselected){box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color),inset 0px -2px 0px var(--icon--color),0px 1px 0px var(--rt-hover--border-color,#c5c9d080);}regular-table tbody tr:hover+tr th.psp-tree-leaf:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover+tr th.psp-tree-label:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover+tr td:not(.psp-row-selected):not(.psp-row-subselected){border-top-color:transparent;}regular-table tbody tr th:first-child:not(:empty),regular-table tbody tr th:first-child:empty+th:not(:empty),regular-table tbody tr th:first-child:empty~th:empty+th:not(:empty),regular-table tbody tr td:first-child{border-left-width:1px;border-left-color:transparent;}regular-table tbody tr th:last-child,regular-table tbody tr td:last-child{border-right-width:0px;border-right-color:transparent;}regular-table tbody tr:hover{color:inherit;}regular-table tbody tr:hover th:first-child:not(:empty),regular-table tbody tr:hover th:first-child:empty+th:not(:empty),regular-table tbody tr:hover th:first-child:empty~th:empty+th:not(:empty),regular-table tbody tr:hover td:first-child{border-left-color:var(--rt-hover--border-color,#c5c9d080)!important;}regular-table tbody tr:hover th:last-child,regular-table tbody tr:hover td:last-child{border-right-color:var(--rt-hover--border-color,#c5c9d080)!important;}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody td,perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table thead th:not(.rt-group-corner),:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody td,:host(:not(.sub-cell-scroll-disabled)) regular-table table thead th:not(.rt-group-corner){transform:translate(var(--regular-table--transform-x,0px));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody,:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody{transform:translate(0,var(--regular-table--transform-y,0px));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:first-child td,perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:first-child th,perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:first-child:after,:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody tr:first-child td,:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody tr:first-child th,:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody tr:first-child:after{clip-path:polygon(0 var(--regular-table--clip-y,0),0 200%,200% 200%,200% var(--regular-table--clip-y,0));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr td:first-of-type,:host(:not(.sub-cell-scroll-disabled)) regular-table table 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);}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:first-child td:first-of-type,:host(:not(.sub-cell-scroll-disabled)) regular-table table 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));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table thead tr:last-child:after,:host(:not(.sub-cell-scroll-disabled)) regular-table table thead tr:last-child:after{transform:translate(var(--regular-table--transform-x,0px));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:not(:first-child):after,:host(:not(.sub-cell-scroll-disabled)) regular-table table tbody tr:not(:first-child):after{transform:translate(var(--regular-table--transform-x,0px));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table tbody tr:hover:first-child:after,:host(:not(.sub-cell-scroll-disabled)) regular-table table 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));}perspective-viewer-datagrid:not(.sub-cell-scroll-disabled) regular-table table thead tr th.rt-group-corner+th:not(.rt-group-corner),:host(:not(.sub-cell-scroll-disabled)) regular-table table 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;}regular-table::-webkit-scrollbar,regular-table::-webkit-scrollbar-corner{background-color:transparent;height:12px;width:12px;}regular-table::-webkit-scrollbar-thumb{background-clip:content-box;background:var(--icon--color);border:5.5px solid var(--plugin--background);max-height:50%;max-width:50%;min-width:10%;min-height:10%;}perspective-viewer .psp-menu-enabled{padding:0 6px;font-size:8px;border-radius:3px 3px 0 0;}perspective-viewer .psp-menu-enabled:hover,perspective-viewer tr:not(.rt-autosize) th.psp-menu-open{color:var(--plugin--background);background-color:var(--icon--color);border-bottom-color:var(--icon--color);cursor:pointer;}perspective-viewer tr:not(.rt-autosize) th.psp-menu-open:before{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;height:8px;width:10px;-webkit-mask-image:var(--column-settings-icon--mask-image);mask-image:var(--column-settings-icon--mask-image);margin-right:4px;background-color:var(--plugin--background);}perspective-viewer td.psp-menu-open{box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color);}perspective-viewer tr:first-child td.psp-menu-open{border-top-color:var(--icon--color)!important;}perspective-viewer tr:last-child td.psp-menu-open{box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color),inset 0px -2px 0px var(--icon--color);}:host .psp-menu-enabled{padding:0 6px;font-size:8px;border-radius:3px 3px 0 0;}:host .psp-menu-enabled:hover,:host tr:not(.rt-autosize) th.psp-menu-open{color:var(--plugin--background);background-color:var(--icon--color);border-bottom-color:var(--icon--color);cursor:pointer;}:host tr:not(.rt-autosize) th.psp-menu-open:before{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;height:8px;width:10px;-webkit-mask-image:var(--column-settings-icon--mask-image);mask-image:var(--column-settings-icon--mask-image);margin-right:4px;background-color:var(--plugin--background);}:host td.psp-menu-open{box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color);}:host tr:first-child td.psp-menu-open{border-top-color:var(--icon--color)!important;}:host tr:last-child td.psp-menu-open{box-shadow:inset -2px 0px 0px var(--icon--color),inset 2px 0px 0px var(--icon--color),inset 0px -2px 0px var(--icon--color);}perspective-viewer regular-table table thead tr:last-child th{border-bottom-width:1px;border-bottom-color:var(--inactive--border-color,#8b868045);}:host-context(perspective-viewer) regular-table table thead tr:last-child th{border-bottom-width:1px;border-bottom-color:var(--inactive--border-color,#8b868045);}.psp-sort-enabled:hover{cursor:pointer;}.psp-row-selected,:hover .psp-row-selected,:hover th.psp-tree-leaf.psp-row-selected,:hover th.psp-tree-label.psp-row-selected{color:white!important;background-color:var(--selected-row--background-color,#ea7319)!important;border-color:var(--selected-row--background-color,#ea7319)!important;}.psp-row-selected.psp-tree-label:not(:hover):before{color:white;}.psp-row-subselected,:hover .psp-row-subselected,:hover th.psp-tree-leaf.psp-row-subselected,:hover th.psp-tree-label.psp-row-subselected{background:rgba(234,115,25,0.2)!important;}.psp-error{color:red;}td:focus{outline:#666;outline-style:dotted;outline-width:1px;}perspective-viewer.dragging regular-table{pointer-events:none;}:host-context(perspective-viewer.dragging) regular-table{pointer-events:none;}.psp-header-border:last-child{border-right-width:0px;}.psp-header-sort-desc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-desc-icon--mask-image);mask-image:var(--sort-desc-icon--mask-image);}.psp-header-sort-asc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-asc-icon--mask-image);mask-image:var(--sort-asc-icon--mask-image);}.psp-header-sort-col-desc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-col-desc-icon--mask-image);mask-image:var(--sort-col-desc-icon--mask-image);}.psp-header-sort-col-asc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-col-asc-icon--mask-image);mask-image:var(--sort-col-asc-icon--mask-image);}.psp-header-sort-abs-desc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-abs-desc-icon--mask-image);mask-image:var(--sort-abs-desc-icon--mask-image);}.psp-header-sort-abs-asc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-abs-asc-icon--mask-image);mask-image:var(--sort-abs-asc-icon--mask-image);}.psp-header-sort-abs-col-desc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-abs-col-desc-icon--mask-image);mask-image:var(--sort-abs-col-desc-icon--mask-image);}.psp-header-sort-abs-col-asc:after{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;width:14px;height:11px;margin-left:4px;-webkit-mask-image:var(--sort-abs-col-asc-icon--mask-image);mask-image:var(--sort-abs-col-asc-icon--mask-image);}tbody th:last-of-type{border-right:1px solid var(--inactive--border-color,#8b868045);overflow:hidden;text-overflow:ellipsis;}tbody th:empty{background-image:linear-gradient(to right,transparent 9px,var(--inactive--border-color,#eee) 10px,transparent 11px);background-repeat:no-repeat;min-width:20px;max-width:20px;pointer-events:none;}.psp-tree-label{max-width:0px;min-width:0px;}.psp-tree-label:before{color:var(--icon--color);font-family:var(--button--font-family,inherit);padding-right:11px;}.psp-tree-label-expand:before{content:var(--tree-label-expand--content,"+");}.psp-tree-label-collapse:before{content:var(--tree-label-collapse--content,"-");}.psp-tree-label-expand,.psp-tree-label-collapse{cursor:pointer;}.psp-tree-label:hover:before{color:var(--active--color);text-shadow:0px 0px 5px var(--active--color);}.psp-tree-leaf{padding-left:24px;}.psp-align-right{text-align:right;}.psp-align-left{text-align:left;}.psp-positive:not(:focus){color:var(--rt-pos-cell--color);}.psp-negative:not(:focus){color:var(--rt-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-bottom-width:0px;border-left-width:0px;}.boolean-editable{cursor:pointer;}regular-table table{user-select:none;color:inherit;border-collapse:separate;}regular-table table th{font-weight:400;}regular-table table td,regular-table table th{border-color:var(--inactive--border-color,#8b868045);height:23px;}regular-table table .psp-header-group{text-overflow:ellipsis;}regular-table table th.psp-header-leaf{border-bottom-width:0px;}regular-table table th.psp-header-leaf span{height:23px;min-height:23px;}regular-table table td,regular-table table th.psp-tree-label,regular-table table th.psp-tree-label,regular-table table th.psp-tree-leaf,regular-table table tbody tr:first-child th{border-style:solid;border-width:0px;border-top-width:1px;}regular-table table tbody th:empty{background-position:0px -10px;}regular-table table td.psp-select-region,regular-table table th.psp-select-region{background-color:var(--icon--color)!important;color:var(--plugin--background)!important;border-color:var(--plugin--background)!important;}regular-table tbody tr:hover td.psp-select-region:not(.psp-row-selected):not(.psp-row-subselected),regular-table tbody tr:hover+tr td.psp-select-region:not(.psp-row-selected):not(.psp-row-subselected){border-color:var(--plugin--background)!important;}regular-table tbody tr:hover td.psp-select-region.psp-menu-open:not(.psp-row-selected):not(.psp-row-subselected){box-shadow:inset -2px 0px 0px var(--plugin--background),inset 2px 0px 0px var(--plugin--background);}:host-context(perspective-viewer[settings]) td.psp-select-region.psp-menu-open{box-shadow:inset -2px 0px 0px var(--plugin--background),inset 2px 0px 0px var(--plugin--background);}regular-table #psp-column-edit-buttons th:not(.rt-group-corner) span:not(.rt-column-resize):before{content:var(--datagrid-column-edit-button--content,"Edit");}perspective-viewer:not([settings]) regular-table #psp-column-edit-buttons:after{content:none;}:host-context(perspective-viewer:not([settings])) regular-table #psp-column-edit-buttons:after{content:none;}regular-table table thead tr:last-child:after{width:10000px;box-sizing:border-box;display:block;height:23px;content:" ";border-bottom:1px solid var(--inactive--border-color);}regular-table table tbody tr:after{width:10000px;box-sizing:border-box;display:block;height:23px;content:" ";border-top:1px solid transparent;}regular-table table tbody tr:not(:first-child):after{border-top:1px solid var(--inactive--border-color);}regular-table table tbody tr:hover:not(:first-child):after{border-top:1px solid var(--rt-hover--border-color);}regular-table table tbody tr:hover+tr:after{border-top:1px solid var(--rt-hover--border-color);}@keyframes pulse_pos{0%{background-color:var(--pulse--background-color-start,rgba(0,128,255,0.5));}100%{background-color:var(--pulse--background-color-end,rgba(0,128,255,0));}}@keyframes pulse_pos2{0%{background-color:var(--pulse--background-color-start,rgba(0,128,255,0.5));}100%{background-color:var(--pulse--background-color-end,rgba(0,128,255,0));}}@keyframes pulse_neg{0%{background-color:var(--pulse--background-color-start,rgba(255,25,0,0.5));}100%{background-color:var(--pulse--background-color-end,rgba(255,25,0,0));}}@keyframes pulse_neg2{0%{background-color:var(--pulse--background-color-start,rgba(255,25,0,0.5));}100%{background-color:var(--pulse--background-color-end,rgba(255,25,0,0));}}';var ut=class e 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=e;t._sheet||(t._sheet=new CSSStyleSheet,t._sheet.replaceSync(Gr)),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 Ir.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 priority(){return 1}can_render_column_styles(t,o){return t!=="boolean"}column_style_controls(t,o){return Vt.call(this,t,o)}async draw(t){return await Fr.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 o=await t.dimensions();this.model._num_rows=o.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(),n=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 m of s){let c=n[m],d=this.model._schema[m],p=this.regular_table[$],f=m.split("|").at(-1),g=nr(d,p?.[f]||{});g?l+=g.format(c[a])+" ":l+=c[a]+" "}l+=`
|
|
3
|
+
`}return l.trim()}async resize(){!this.isConnected||this.offsetParent==null||this._initialized&&await this.regular_table.draw()}async clear(){this.regular_table.resetAutoSize(),this.regular_table.clear()}async save(){return $r.call(this)}async restore(t,o){return jr.call(this,t,o??{})}async restyle(){this.model?._view&&await this.draw(this.model._view)}async delete(){this.disconnectedCallback(),this._toolbar=void 0,this.regular_table.table_model&&this.regular_table.resetAutoSize(),this.regular_table.clear()}};var Ur=':host{position:relative;display:block;height:100%;}:host #container{position:absolute;display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;top:0;left:0;right:0;bottom:0;}:host #toolbar{display:flex;align-items:stretch;height:100%;}:host #toolbar .hover-target{margin:0;display:inline-flex;align-items:center;cursor:pointer;}:host #toolbar .hover-target:hover{box-shadow:-4px 0 0 var(--icon--color),4px 0 0 var(--icon--color);background-color:var(--icon--color);}:host #slot-container{flex:1;position:relative;}#scroll_lock.lock-scroll:before{-webkit-mask-image:var(--toolbar-scroll-lock-active--content);}#scroll_lock:before{-webkit-mask-image:var(--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(--toolbar-edit-mode--read-only--content);}#edit_mode[data-edit-mode="EDIT"]:before{-webkit-mask-image:var(--toolbar-edit-mode--edit--content);}:host(.aggregated) #toolbar #edit_mode[data-edit-mode="EDIT"]:before{-webkit-mask-image:var(--toolbar-edit-mode--read-only--content);}#edit_mode[data-edit-mode="SELECT_ROW"]:before{-webkit-mask-image:var(--toolbar-edit-mode--select-row--content);}#edit_mode[data-edit-mode="SELECT_COLUMN"]:before{-webkit-mask-image:var(--toolbar-edit-mode--select-column--content);}#edit_mode[data-edit-mode="SELECT_REGION"]:before{-webkit-mask-image:var(--toolbar-edit-mode--select-region--content);}#edit_mode[data-edit-mode="READ_ONLY"] span:before{content:var(--edit-mode--read-only--content,"Read Only");}#edit_mode[data-edit-mode="EDIT"] span:before{content:var(--edit-mode--edit--content,"Editable");}#edit_mode[data-edit-mode="SELECT_ROW"] span:before{content:var(--edit-mode--select-row--content,"Row Select");}#edit_mode[data-edit-mode="SELECT_COLUMN"] span:before{content:var(--edit-mode--select-column--content,"Column Select");}#edit_mode[data-edit-mode="SELECT_REGION"] span:before{content:var(--edit-mode--select-region--content,"Region Select");}#scroll_lock span:before{content:var(--scroll-lock-toggle--content,"Free Scroll");}#scroll_lock.lock-scroll span:before{content:var(--scroll-lock-alt-toggle--content,"Align Scroll");}.button:before{width:21px;height:21px;content:"";-webkit-mask-size:cover;mask-size:cover;background-color:var(--icon--color);}.button.editable:before,.button.lock-scroll:before{color:inherit;}.button{display:inline-flex;justify-content:center;align-items:center;user-select:none;padding:0 5px;border:1px solid transparent;border-radius:3px;border:1px solid transparent;box-sizing:border-box;display:inline-flex;font-size:var(--label--font-size,0.75em);height:22px;user-select:none;white-space:nowrap;width:37px;}.button>span{display:none;margin:0;padding:0;}.hover-target:focus-within .button,.hover-target:hover .button{position:relative;background-color:var(--icon--color);color:var(--plugin--background);opacity:1;display:flex;align-items:center;cursor:pointer;}.hover-target:focus-within .button:before,.hover-target:hover .button:before{background-color:var(--plugin--background);}.hover-target:focus-within .button>span,.hover-target:hover .button>span{display:block;position:absolute;top:calc(100% + 3px);left:50%;translate:-50%;margin:0;padding:5px;height:auto;white-space:pre-wrap;line-height:1;font-size:9px;background-color:var(--icon--color);width:35px;text-align:center;border-radius:0 0 3px 3px;}';var Br=new CSSStyleSheet;Br.replaceSync(Ur);var ht=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(Br),this.shadowRoot.innerHTML=`
|
|
17
4
|
<div id="toolbar">
|
|
18
5
|
<span class="hover-target">
|
|
19
6
|
<span id="scroll_lock" class="button">
|
|
@@ -26,7 +13,7 @@ var xe=new WeakMap,Xt=!0,Qr=navigator.userAgent.toLowerCase().indexOf("firefox")
|
|
|
26
13
|
</span>
|
|
27
14
|
</span>
|
|
28
15
|
</div>
|
|
29
|
-
`;let t=this.parentElement,o=this.previousElementSibling;o._scroll_lock=this.shadowRoot.querySelector("#scroll_lock"),o._scroll_lock.addEventListener("click",()=>
|
|
16
|
+
`;let t=this.parentElement,o=this.previousElementSibling;o._scroll_lock=this.shadowRoot.querySelector("#scroll_lock"),o._scroll_lock.addEventListener("click",()=>We.call(o)),o._edit_button=this.shadowRoot.querySelector("#edit_mode"),o._edit_button.addEventListener("click",()=>{Ve.call(o),o.regular_table.draw(),t.dispatchEvent(new Event("perspective-config-update"))})}};async function ji(){customElements.define("perspective-viewer-datagrid-toolbar",ht),customElements.define("perspective-viewer-datagrid",ut),await customElements.whenDefined("perspective-viewer"),customElements.get("perspective-viewer").registerPlugin("perspective-viewer-datagrid")}ji();export{ut as HTMLPerspectiveViewerDatagridPluginElement,ht as HTMLPerspectiveViewerDatagridToolbarElement,$ as PRIVATE_PLUGIN_SYMBOL};
|
|
30
17
|
/*! Bundled license information:
|
|
31
18
|
|
|
32
19
|
chroma-js/src/utils/contrastAPCA.js:
|