dash-spread-grid 1.2.2__tar.gz → 1.2.4__tar.gz

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.
Files changed (20) hide show
  1. {dash_spread_grid-1.2.2/dash_spread_grid.egg-info → dash_spread_grid-1.2.4}/PKG-INFO +1 -1
  2. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/dash_spread_grid/dash_spread_grid.min.js +1 -1
  3. dash_spread_grid-1.2.4/dash_spread_grid/dash_spread_grid.min.js.map +1 -0
  4. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/dash_spread_grid/package-info.json +1 -1
  5. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4/dash_spread_grid.egg-info}/PKG-INFO +1 -1
  6. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/package.json +1 -1
  7. dash_spread_grid-1.2.2/dash_spread_grid/dash_spread_grid.min.js.map +0 -1
  8. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/LICENSE +0 -0
  9. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/MANIFEST.in +0 -0
  10. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/README.md +0 -0
  11. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/dash_spread_grid/DashSpreadGrid.py +0 -0
  12. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/dash_spread_grid/__init__.py +0 -0
  13. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/dash_spread_grid/_imports_.py +0 -0
  14. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/dash_spread_grid/metadata.json +0 -0
  15. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/dash_spread_grid.egg-info/SOURCES.txt +0 -0
  16. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/dash_spread_grid.egg-info/dependency_links.txt +0 -0
  17. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/dash_spread_grid.egg-info/top_level.txt +0 -0
  18. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/setup.cfg +0 -0
  19. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/setup.py +0 -0
  20. {dash_spread_grid-1.2.2 → dash_spread_grid-1.2.4}/tests/test_usage.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dash_spread_grid
3
- Version: 1.2.2
3
+ Version: 1.2.4
4
4
  Summary: Fast grid for Dash applications
5
5
  Author: Tomasz Rewak <tomasz.rewak@gmail.com>
6
6
  License: MIT
@@ -1,2 +1,2 @@
1
- (()=>{"use strict";var __webpack_modules__={353:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(196),react__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__),prop_types__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(64),prop_types__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__),js_spread_grid__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(826);function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o<t;o++)n[o]=e[o];return n}function _iterableToArrayLimit(e,t){var o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var n,r,i,l,s=[],a=!0,c=!1;try{if(i=(o=o.call(e)).next,0===t){if(Object(o)!==o)return;a=!1}else for(;!(a=(n=i.call(o)).done)&&(s.push(n.value),s.length!==t);a=!0);}catch(e){c=!0,r=e}finally{try{if(!a&&null!=o.return&&(l=o.return(),Object(l)!==l))return}finally{if(c)throw r}}return s}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function ownKeys(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(o),!0).forEach((function(t){_defineProperty(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):ownKeys(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function _defineProperty(e,t,o){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==_typeof(t)?t:String(t)}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,t||"default");if("object"!=_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function isString(e){return"string"==typeof e||e instanceof String}function useResolvedFormatting(formatting){return(0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)((function(){var context="{data, rows, columns, row, column, value, newValue, text, string, ctx}";return formatting.map((function(rule){var mappedRule={};if("column"in rule&&(mappedRule.column=rule.column),"row"in rule&&(mappedRule.row=rule.row),"condition"in rule&&(mappedRule.condition=eval("(".concat(context,") => (").concat(rule.condition,")"))),"value"in rule&&(mappedRule.value=eval("(".concat(context,")=> (").concat(rule.value,")"))),"text"in rule&&(mappedRule.text=eval("(".concat(context,") => (").concat(rule.text,")"))),"font"in rule&&(mappedRule.font=eval("(".concat(context,") => (").concat(rule.font,")"))),"style"in rule&&(mappedRule.style=isString(rule.style)?eval("(".concat(context,") => (").concat(rule.style,")")):rule.style),"padding"in rule&&(mappedRule.padding=isString(rule.padding)?eval("(".concat(context,") => (").concat(rule.padding,")")):rule.padding),"draw"in rule&&(mappedRule.draw=eval("(".concat(context,") => {").concat(rule.draw,"}"))),"tooltip"in rule&&(mappedRule.tooltip=eval("(".concat(context,") => (").concat(rule.tooltip,")"))),"edit"in rule)if(rule.edit){var mappedEdit={};"validate"in rule.edit&&(mappedEdit.validate=eval("({string}) => (".concat(rule.edit.validate,")"))),"parse"in rule.edit&&(mappedEdit.parse=eval("(".concat(context,") => (").concat(rule.edit.parse,")"))),"auto_commit"in rule.edit&&(mappedEdit.autoCommit=rule.edit.auto_commit),"toggle"in rule.edit&&(mappedEdit.toggle=rule.edit.toggle),mappedRule.edit=mappedEdit}else mappedRule.edit=rule.edit;return"sort_order"in rule&&(mappedRule.sortOrder=isString(rule.sort_order)?eval("(".concat(context,") => (").concat(rule.sort_order,")")):rule.sort_order),mappedRule}))}),[formatting])}function useResolvedFiltering(filtering){return(0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)((function(){var context="{data, rows, columns, row, column, value, text, expression}";return filtering.map((function(rule){var mappedRule={};return"column"in rule&&(mappedRule.column=rule.column),"row"in rule&&(mappedRule.row=rule.row),"condition"in rule&&(mappedRule.condition=eval("(".concat(context,") => (").concat(rule.condition,")"))),mappedRule}))}),[filtering])}function useResolvedSorting(sorting){return(0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)((function(){return isString(sorting)?sorting:sorting.map((function(rule){var mappedRule={};return"column"in rule&&(mappedRule.column=rule.column),"row"in rule&&(mappedRule.row=rule.row),"comparator"in rule&&(mappedRule.comparator=eval("(lhs, rhs) => (".concat(rule.comparator,")"))),"comparatorAsc"in rule&&(mappedRule.comparatorAsc=eval("(lhs, rhs) => (".concat(rule.comparatorAsc,")"))),"comparatorDesc"in rule&&(mappedRule.comparatorDesc=eval("(lhs, rhs) => (".concat(rule.comparatorDesc,")"))),"by"in rule&&(mappedRule.by=rule.by),mappedRule}))}),[sorting])}function useResolvedDataSelector(dataSelector){return(0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)((function(){return eval("({data, row, column}) => (".concat(dataSelector,")"))}),[dataSelector])}function useResolvedDimension(entries){return(0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)((function(){return entries.map((function(entry){var mappedEntry=_objectSpread({},entry);return"DATA-BLOCK"==entry.type&&("selector"in entry&&(mappedEntry.selector=eval("({data}) => (".concat(entry.selector,")"))),"id"in entry&&(mappedEntry.id=eval("({data, selector}) => (".concat(entry.id,")")))),mappedEntry}))}),[entries])}function DashSpreadGrid(e){var t=e.setProps,o=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0),n=e.data,r=useResolvedDimension(e.columns),i=useResolvedDimension(e.rows),l=useResolvedFormatting(e.formatting),s=useResolvedFiltering(e.filtering),a=useResolvedDataSelector(e.data_selector),c=useResolvedSorting(e.sorting),u=e.pinned_top,d=e.pinned_bottom,p=e.pinned_left,f=e.pinned_right,h=e.selected_cells,_=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({selected_cells:e})}),[t]),m=e.filters,g=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({filters:e})}),[t]),y=e.sort_by,w=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({sort_by:e})}),[t]),b=e.edited_cells,C=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({edited_cells:e})}),[t]),E=e.clicked_cell,v=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({clicked_cell:_objectSpread(_objectSpread({},e),{},{n:o.current++})})}),[t]),R=e.clicked_custom_cell,A=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({clicked_custom_cell:_objectSpread(_objectSpread({},e),{},{n:o.current++})})}),[t]),D=e.column_widths,x=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({column_widths:e})}),[t]),I=e.row_heights,O=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({row_heights:e})}),[t]),M=e.columns_order,k=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({columns_order:e})}),[t]),S=e.rows_order,T=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({rows_order:e})}),[t]),L=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({active_columns:e})}),[t]),B=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({active_rows:e})}),[t]),P=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({hovered_cell:e})}),[t]),K=e.freeze_on_hover,W=_slicedToArray((0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),2),z=W[0],N=W[1];return z&&(0,js_spread_grid__WEBPACK_IMPORTED_MODULE_2__.Z)(z,{data:n,columns:r,rows:i,formatting:l,sorting:c,filtering:s,pinnedTop:u,pinnedBottom:d,pinnedLeft:p,pinnedRight:f,dataSelector:a,selectedCells:h,onSelectedCellsChange:_,editedCells:b,onEditedCellsChange:C,filters:m,onFiltersChange:g,sortBy:y,onSortByChange:w,columnWidths:D,onColumnWidthsChange:x,rowHeights:I,onRowHeightsChange:O,columnsOrder:M,onColumnsOrderChange:k,rowsOrder:S,onRowsOrderChange:T,clickedCell:E,onCellClick:v,clickedCustomCell:R,onCustomCellClick:A,onActiveColumnsChange:L,onActiveRowsChange:B,onHoveredCellChange:P,freezeOnHover:K}),react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div",{ref:N})}DashSpreadGrid.propTypes={setProps:prop_types__WEBPACK_IMPORTED_MODULE_1___default().func,id:prop_types__WEBPACK_IMPORTED_MODULE_1___default().string,data:prop_types__WEBPACK_IMPORTED_MODULE_1___default().any,columns:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,rows:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,formatting:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,filtering:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,sorting:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,data_selector:prop_types__WEBPACK_IMPORTED_MODULE_1___default().string,pinned_top:prop_types__WEBPACK_IMPORTED_MODULE_1___default().number,pinned_bottom:prop_types__WEBPACK_IMPORTED_MODULE_1___default().number,pinned_left:prop_types__WEBPACK_IMPORTED_MODULE_1___default().number,pinned_right:prop_types__WEBPACK_IMPORTED_MODULE_1___default().number,borderWidth:prop_types__WEBPACK_IMPORTED_MODULE_1___default().number,freeze_on_hover:prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool,focusedCell:prop_types__WEBPACK_IMPORTED_MODULE_1___default().object,selected_cells:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,highlightedCells:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,edited_cells:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,filters:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,sort_by:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,column_widths:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,row_heights:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,columns_order:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,rows_order:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,clicked_cell:prop_types__WEBPACK_IMPORTED_MODULE_1___default().object,clicked_custom_cell:prop_types__WEBPACK_IMPORTED_MODULE_1___default().object,active_columns:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,active_rows:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,hovered_cell:prop_types__WEBPACK_IMPORTED_MODULE_1___default().object},DashSpreadGrid.defaultProps={data:[],columns:[{type:"DATA-BLOCK"}],rows:[{type:"HEADER"},{type:"DATA-BLOCK"}],formatting:[],filtering:[],sorting:[],data_selector:"data?.[row.selector]?.[column.selector]",pinned_top:0,pinned_bottom:0,pinned_left:0,pinned_right:0,borderWidth:1,freeze_on_hover:!1,focusedCell:null,selected_cells:[],highlightedCells:[],edited_cells:[],filters:[],sort_by:[],column_widths:[],row_heights:[],columns_order:[],rows_order:[],clicked_cell:null,clicked_custom_cell:null,active_columns:[],active_rows:[],hovered_cell:null};const __WEBPACK_DEFAULT_EXPORT__=DashSpreadGrid},64:e=>{e.exports=window.PropTypes},196:e=>{e.exports=window.React},826:(e,t,o)=>{function n(e){return null===e?"null":Array.isArray(e)?`[${e.map(n).join(",")}]`:"object"==typeof e?(t=e,`{${Object.keys(t).sort().map((e=>`${e}:${n(t[e])}`)).join(",")}}`):JSON.stringify(e);var t}function r(e,t){const o="FILTER"===e.type,n="FILTER"===t.type;return o&&!n||!o&&n?"FILTER":"DATA"}function i(e,t,o,i){return e.map((e=>{const l=n(e.columnId),s=n(e.rowId);if(!o.has(l))return null;if(!i.has(s))return null;const a=o.get(l),c=i.get(s);return{edit:t.resolve(c,a).edit,cell:e,type:r(a,c)}})).filter((e=>e?.edit))}function l(e,t){return Math.round(e*t)/t}function s(e,t,o){const n=e.state.renderState,r=e.canvases[`${t}-${o}`],i=n.sections[t],s=n.sections[o],a=s.columns,c=i.rows,u=n.devicePixelRatio;if(0===c.length||0===a.length)return void(r.parentElement&&r.parentElement.removeChild(r));r.parentElement||e.element.appendChild(r);const d=r.getContext("2d",{alpha:!1}),p=n.scrollRect,f=n.textResolver,h=n.renderFormatResolver,_=n.borderWidth,m=i.showTopBorder,g=i.showBottomBorder,y=s.showLeftBorder,w=s.showRightBorder,b=_/2,C=c.length-1+(m?1:0)+(g?1:0),E=a.length-1+(y?1:0)+(w?1:0),v=c.map((e=>e.height)),R=a.map((e=>e.width)),A=R.reduce(((e,t)=>e+t),0)+E*_,D=v.reduce(((e,t)=>e+t),0)+C*_,x="center"===o?p.left:0,I="middle"===t?p.top:0,O="center"===o?p.width:s.width,M="middle"===t?p.height:i.height,k=R.reduce(((e,t,o)=>{const n=e[o]+t+_;return e.push(n),e}),[y?_:0]),S=v.reduce(((e,t,o)=>{const n=e[o]+t+_;return e.push(n),e}),[m?_:0]),T=k.slice(0,-1),L=S.slice(0,-1),B=Math.max(T.findLastIndex((e=>e<=x)),0),P=T.findLastIndex((e=>e<=x+O)),K=Math.max(L.findLastIndex((e=>e<=I)),0),W=L.findLastIndex((e=>e<=I+M)),z=Math.max(B,y?0:1),N=P+(w?1:0),F=Math.max(K,m?0:1),H=W+(g?1:0),U=Array.from({length:W-K+1},((e,t)=>{const o=c[t+K];return Array.from({length:P-B+1},((e,t)=>{const n=a[t+B];return h.resolve(o,n)}))})),j=(e,t)=>U[e-K][t-B];r.width=Math.round(O*u),r.height=Math.round(M*u),r.style.width=`${O}px`,r.style.height=`${M}px`,r.style.marginLeft=`${x}px`,r.style.marginTop=`${I}px`,r.style.marginRight=A-O-x+"px",r.style.marginBottom=D-M-I+"px",d.fillStyle="#E9E9E9",d.fillRect(0,0,r.width,r.height);const Y=(e,t)=>{d.setTransform(u,0,0,u,(e-x)*u,(t-I)*u)},q=(e,t,o,n)=>{d.beginPath(),d.rect(e,t,o,n),d.clip()};for(let e=B;e<=P;e++)for(let t=K;t<=W;t++){const o=j(t,e);if(!o.render)continue;const n=o.style,r=S[t],i=k[e],s=R[e],a=v[t],c=o.text,p=n.textBaseline||"middle",h=o.padding,m=n.foreground||"black";if(Y(i,r),d.fillStyle=n.background||"white",d.fillRect(0,0,s,a),"draw"in o&&o.draw(d),n.highlight&&(d.fillStyle=n.highlight,d.fillRect(0,0,s,a)),n.corner&&(d.fillStyle=n.corner,d.beginPath(),d.moveTo(s-7,a),d.lineTo(s,a),d.lineTo(s,a-7),d.fill()),c&&"transparent"!==m){d.fillStyle=m,d.font=o.font;const e=f.getFontMetrics(o.font),t="center"==n.textAlign&&f.measureWidth(c,o.font)>s-h.left-h.right?"left":n.textAlign||"left";d.textAlign=t;const r=l("left"===t?h.left:"center"===t?s/2:"right"===t?s-h.right:0,u),i=l("top"===p?e.middle+e.topOffset+h.top:"middle"===p?a/2+e.middle:"bottom"===p?a+e.middle-e.bottomOffset-h.bottom:0,u);d.save(),q(0,2*_,s,a-4*_),d.fillText(c,r,i),d.restore()}}Y(0,0);const $=(e,t,o,n,r)=>{if(!r)return;if(0===r.width)return;const i=r.width/u,l=t===n,s=e-(l?i/2:0),a=t-(l?0:i/2),c=o+(l?i/2:0),p=n+(l?0:i/2);d.strokeStyle=r.color||"black",d.lineWidth=i,r.dash?(d.setLineDash(r.dash.map((e=>e/u))),d.lineDashOffset=l?s:a):d.setLineDash([]),d.beginPath(),d.moveTo(s,a),d.lineTo(c,p),d.stroke()},V=(e,t)=>e?t?e.index>t.index?e:t:e:t;for(let e=F;e<=H;e++){const t=e-1,o=e;for(let e=B;e<=P;e++){const n=V(t>=K?j(t,e).style.borderBottom:null,o<=W?j(o,e).style.borderTop:null);$(k[e]-b,S[o]-b,k[e+1]-b,S[o]-b,n)}}for(let e=z;e<=N;e++){const t=e-1,o=e;for(let e=K;e<=W;e++){const n=V(t>=B?j(e,t).style.borderRight:null,o<=P?j(e,o).style.borderLeft:null);$(k[o]-b,S[e]-b,k[o]-b,S[e+1]-b,n)}}}o.d(t,{Z:()=>Ut});const a={value:({newValue:e})=>e||"",text:({newValue:e})=>e||"Search...",edit:{validate:()=>!0,parse:({string:e})=>e,autoCommit:!0}};function c(e,t,o){return[{column:{type:"DATA"},row:{type:"HEADER"},value:({column:e})=>void 0===e.header?e.id:e.header},{column:{type:"HEADER"},row:{type:"DATA"},value:({row:e})=>void 0===e.header?e.id:e.header},{column:{type:"HEADER"},row:{type:"SPECIAL"},value:""},{column:{type:"SPECIAL"},row:{type:"HEADER"},value:""},{column:{type:"DATA"},row:{type:"FILTER"},...a},{column:{type:"FILTER"},row:{type:"DATA"},...a},{column:{type:"DATA"},row:{type:"DATA"},value:t},...e,...o.map((({columnId:e,rowId:t,direction:n},r)=>({column:{id:e},row:{id:t},text:({value:e,text:t})=>`${o.length>1?r+1:""}${"ASC"===n?"⇣":"⇡"} ${t||e}`})))]}const u=["column","row","condition"];function d(e){return Object.keys(e).length>Object.keys(e).filter((e=>u.includes(e))).length}function p(e,t){const o=[...u,...t];return e.map((e=>function(e,t){const o={};for(const n of t)n in e&&(o[n]=e[n]);return o}(e,o))).filter(d)}function f(e){return p(e,["value","text","edit"])}function h(e,t){return t?e+"99":e+"33"}function _(e,t,o,r,i,l,s,a,c,u,d,f,_){e=p(e,["value","style","text","font","padding","edit","draw"]);const m=o?n(o.columnId):null,g=o?n(o.rowId):null,y=null!==c,w=null!==a||y,b=u+2,C=u+4,E=(e,t,o,n)=>{if(o<0||o>=e.length)return!1;if(n<0||n>=t.length)return!1;const i=e[o],l=t[n];if("DYNAMIC-BLOCK"===i.type)return!1;if("DYNAMIC-BLOCK"===l.type)return!1;const s=i.key,a=l.key;return r.isKeySelected(s,a)},v=(e,t)=>e?[t]:[];return[{column:{type:"DATA"},row:{type:"FILTER"},style:({newValue:e})=>({background:"#FBFBFB",foreground:e?"black":"#cccccc",border:{width:1,color:"gray"}})},{column:{type:"FILTER"},row:{type:"DATA"},style:({newValue:e})=>({background:"#FBFBFB",foreground:e?"black":"#cccccc",border:{width:1,color:"gray"}})},{column:{type:"ANY"},row:{type:"HEADER"},style:{background:"#F5F5F5",border:{width:u,color:"gray"}}},{column:{type:"HEADER"},row:{type:"ANY"},style:{background:"#F5F5F5",border:{width:u,color:"gray"}}},{column:{type:"HEADER"},row:{type:"HEADER"},style:{background:"#E0E0E0"}},...e,...v(t&&!y,{column:{type:"ANY"},row:{id:t?.rowId},style:{highlight:"#81948133"}}),...v(t&&!w,{column:{id:t?.columnId},row:{id:t?.rowId},style:{highlight:"#81948188"}}),{column:{type:"ANY"},row:{type:"ANY"},condition:({rows:e,columns:t,row:o,column:n})=>E(e,t,o.index,n.index),style:({rows:e,columns:t,row:o,column:n,edit:r})=>({...E(e,t,o.index-1,n.index)?{}:{borderTop:{width:b,color:"#596959",index:Number.MAX_SAFE_INTEGER}},...E(e,t,o.index+1,n.index)?{}:{borderBottom:{width:b,color:"#596959",index:Number.MAX_SAFE_INTEGER}},...E(e,t,o.index,n.index-1)?{}:{borderLeft:{width:b,color:"#596959",index:Number.MAX_SAFE_INTEGER}},...E(e,t,o.index,n.index+1)?{}:{borderRight:{width:b,color:"#596959",index:Number.MAX_SAFE_INTEGER}},highlight:h(r?"#798d9c":"#819481",m!==n.key||g!==o.key)})},{column:{type:"ANY"},row:{type:"ANY"},condition:({row:e,column:t})=>i.isKeySelected(e.key,t.key),style:({row:e,column:t})=>({highlight:h("#93a8b8",m!==t.key||g!==e.key)})},...v(!!o,{column:{id:o?.columnId},row:{id:o?.rowId},style:{highlight:"#ffffffaa"}}),...s.map((({columnId:e,rowId:t,direction:o},n)=>({column:{id:e},row:{id:t},style:{highlight:"#0377fc44"}}))),{column:{type:"ANY"},row:{type:"ANY"},condition:({edit:e})=>!!e,style:{corner:"#77777720"}},{column:{type:"ANY"},row:{type:"ANY"},condition:({row:e,column:t})=>l.hasValueByKey(e.key,t.key),style:{corner:"darkgreen"}},...v(a,{column:{id:a},row:{type:"HEADER"},style:{borderRight:{width:C,color:"cornflowerblue"}}}),...v(c,{column:{type:"HEADER"},row:{id:c},style:{borderBottom:{width:C,color:"cornflowerblue"}}}),...v(d&&f,{column:{id:f},row:{type:"ANY"},style:{highlight:"#3a74e055"}}),...v(d&&_,{column:{type:"ANY"},row:{id:_},style:{highlight:"#3a74e055"}})]}function m(e,t){const o=t.filter((e=>"BEGIN"===e.pinned)).length,n=t.filter((e=>"END"===e.pinned)).length,r=t.length-o-n,i=e.filter((e=>"BEGIN"===e.pinned)).length,l=e.filter((e=>"END"===e.pinned)).length,s=e.length-i-l,a=t.slice(0,o),c=t.slice(t.length-n,t.length),u=t.slice(o,t.length-n),d=e.slice(0,i),p=e.slice(e.length-l,e.length),f=e.slice(i,e.length-l),h=o>0,_=i>0,m=r>0||!h,g=!h,y=!(n>0),w=s>0||!_,b=!_,C=!(l>0),E=(e,t,o)=>{if(0===e.length)return 0;const n=t?e.at(0).topWithBorder:e.at(0).top;return(o?e.at(-1).bottomWithBorder:e.at(-1).bottom)-n},v=(e,t,o)=>{if(0===e.length)return 0;const n=t?e.at(0).leftWithBorder:e.at(0).left;return(o?e.at(-1).rightWithBorder:e.at(-1).right)-n};return{top:{rows:a,showTopBorder:!0,showBottomBorder:!0,height:E(a,!0,!0)},bottom:{rows:c,showTopBorder:m,showBottomBorder:!0,height:E(c,m,!0)},middle:{rows:u,showTopBorder:g,showBottomBorder:y,height:E(u,g,y)},left:{columns:d,showLeftBorder:!0,showRightBorder:!0,width:v(d,!0,!0)},right:{columns:p,showLeftBorder:w,showRightBorder:!0,width:v(p,w,!0)},center:{columns:f,showLeftBorder:b,showRightBorder:C,width:v(f,b,C)}}}function g(e,t){return[...e,...t.map((e=>({columnId:e.columnId,rowId:e.rowId,value:e.expression})))]}class y{constructor(e){this.lookup=new Map,e.forEach((e=>{const t=n(e.rowId),o=n(e.columnId);this.lookup.has(t)||this.lookup.set(t,new Map),this.lookup.get(t).set(o,e.value)}))}hasValueByKey(e,t){return this.lookup.has(e)&&this.lookup.get(e).has(t)}getValueByKey(e,t){if(this.hasValueByKey(e,t))return this.lookup.get(e).get(t)}hasValueById(e,t){return this.hasValueByKey(n(e),n(t))}getValueById(e,t){return this.getValueByKey(n(e),n(t))}}function w(e){return new y(e)}class b{constructor(e){this.lookup=new Map,e.forEach((e=>{const t=n(e.rowId),o=n(e.columnId);this.lookup.has(t)||this.lookup.set(t,new Set),this.lookup.get(t).add(o)}))}isKeySelected(e,t){return this.lookup.has(e)&&this.lookup.get(e).has(t)}isIdSelected(e,t){return this.isKeySelected(n(e),n(t))}}function C(e){return new b(e)}function E(e,t){return"function"==typeof e?e(t):e}function v(e,t){return"function"==typeof e?e(t):e}function R(e,t){const o=e.type||"DATA",r="selector"in e?e.selector:"id"in e?e.id:void 0,i="id"in e?e.id:"selector"in e?e.selector:o;return{...e,id:i,selector:r,type:o,key:n(i),header:"header"in e?e.header:i,resizable:!("resizable"in e)||e.resizable,labels:e.labels||[],index:t}}function A(e,t){const o="selector"in e?e.selector:({index:e})=>e,n="id"in e?e.id:({selector:e})=>e,r="header"in e?e.header:()=>`#${t}`;return{...e,id:n,selector:o,type:"DYNAMIC-BLOCK",header:r,labels:e.labels||[],index:t,resizable:!1}}function D(e,t){return"number"==typeof e?l(e,t):e}function x(e,t,o,r,i){const s=new Map(t.map((({columnId:e,width:t})=>[n(e),t])));return e.map(((e,t)=>{if("DYNAMIC-BLOCK"===e.type){const n=A(e,t),i=e.width*e.count+o*(e.count-1);return{...n,count:e.count,width:l(i,r),columnWidth:l(e.width,r)}}{const o=R(e,t),n=s.has(o.key)?s.get(o.key):"width"in e?e.width:"fit";return{...o,width:D(n,r)}}}))}function I(e,t,o,r,i){const s=new Map(t.map((({rowId:e,height:t})=>[n(e),t])));return e.map(((e,t)=>{if("DYNAMIC-BLOCK"===e.type){const n=A(e,t),s="height"in e?e.height:i,a=s*e.count+o*(e.count-1);return{...n,count:e.count,height:l(a,r),rowHeight:l(s,r)}}{const o=R(e,t),n=s.has(o.key)?s.get(o.key):"height"in e?e.height:"fit";return{...o,height:D(n,r)}}}))}function O(e,t,o,n,r){if(e<o){if("DYNAMIC-BLOCK"===r)throw new Error("DYNAMIC-BLOCK should have been unfolded before pinning");return"BEGIN"}if(e>=t-n){if("DYNAMIC-BLOCK"===r)throw new Error("DYNAMIC-BLOCK should have been unfolded before pinning");return"END"}}function M(e,t,o){let n=o;return e.map(((r,i)=>{const l=r.width,s={...r,index:i,width:l,leftWithBorder:n-o,left:n,right:n+l,rightWithBorder:n+l+o,pinned:O(i,e.length,t.left,t.right,r.type)};return n+=s.width+o,s}))}function k(e,t,o){let n=o;return e.map(((r,i)=>{const l=r.height,s={...r,index:i,height:l,topWithBorder:n-o,top:n,bottom:n+l,bottomWithBorder:n+l+o,pinned:O(i,e.length,t.top,t.bottom,r.type)};return n+=s.height+o,s}))}const S="12px Calibri",T={top:2,right:5,bottom:2,left:5};function L(e){return"function"==typeof e?e:()=>e}const B={HEADER:["HEADER"],FILTER:["FILTER"],DATA:["DATA"],CUSTOM:["CUSTOM"],ANY:["HEADER","DATA","FILTER","CUSTOM"],SPECIAL:["HEADER","FILTER","CUSTOM"],NONE:[]};class P{byKey=new Map;byIndex=new Map;byLabel=new Map;byType=new Map}class K{lookup=new P;hasRules=!1;addRule(e,t,o){if(this.hasRules=!0,Array.isArray(e)){for(const n of e)this.addRule(n,t,o);return}if(Array.isArray(t)){for(const n of t)this.addRule(e,n,o);return}const r=e?"id"in e?{key:n(e.id)}:e:{type:"DATA"},i=t?"id"in t?{key:n(t.id)}:t:{type:"DATA"};function l(e,t){e.has(t)||e.set(t,[]),e.get(t).push(o)}function s(e,t){if(e.has(t)||e.set(t,new P),"key"in i)l(e.get(t).byKey,i.key);else if("index"in i)l(e.get(t).byIndex,i.index);else if("label"in i)l(e.get(t).byLabel,i.label);else for(const o of B[i.type||"NONE"])l(e.get(t).byType,o)}if("key"in r)s(this.lookup.byKey,r.key);else if("index"in r)s(this.lookup.byIndex,r.index);else if("label"in r)s(this.lookup.byLabel,r.label);else for(const e of B[r.type||"NONE"])s(this.lookup.byType,e)}getRules(e,t){const o=[];if(!this.hasRules)return o;function n(e){for(const t of e)o.push(t)}function r(e){e.byKey.has(t.key)&&n(e.byKey.get(t.key)),e.byIndex.has(t.index)&&n(e.byIndex.get(t.index)),e.byType.has(t.type)&&n(e.byType.get(t.type));for(const o of t.labels)e.byLabel.has(o)&&n(e.byLabel.get(o))}this.lookup.byKey.has(e.key)&&r(this.lookup.byKey.get(e.key)),this.lookup.byIndex.has(e.index)&&r(this.lookup.byIndex.get(e.index)),this.lookup.byType.has(e.type)&&r(this.lookup.byType.get(e.type));for(const t of e.labels)this.lookup.byLabel.has(t)&&r(this.lookup.byLabel.get(t));return o}}const W=["borderTop","borderRight","borderBottom","borderLeft"],z={validate:()=>!0,parse:({string:e})=>e};function N(e,t){const o={...e};if("border"in o){for(const e of W)o[e]=o.border;delete o.border}for(const e of W)e in o&&(o[e]={...o[e],index:t});return o}function F(e,t){if(!1!==e.edit)return!0===e.edit?"edit"in t?t.edit:z:"edit"in t?{...t.edit,...e.edit}:{...z,...e.edit}}class H{constructor(e){this.rulesLookup=new K;for(const[t,o]of e.entries()){const e={index:t};"condition"in o&&(e.condition=o.condition),"style"in o&&(e.style=L(o.style)),"value"in o&&(e.value=L(o.value)),"text"in o&&(e.text=L(o.text)),"font"in o&&(e.font=L(o.font)),"padding"in o&&(e.padding=L(o.padding)),"edit"in o&&(e.edit=o.edit),"tooltip"in o&&(e.tooltip=L(o.tooltip)),"draw"in o&&(e.draw=o.draw),"sortOrder"in o&&(e.sortOrder=L(o.sortOrder)),this.rulesLookup.addRule(o.column,o.row,e)}}resolve(e,t,o,n,r,i){const l=this.rulesLookup.getRules(r,n).sort(((e,t)=>e.index-t.index)).filter(((e,t,o)=>e.index!==o[t-1]?.index));let s,a,c={data:e,rows:t,columns:o,row:n,column:r},u={},d=T,p=S;i.hasValueByKey(n.key,r.key)&&(c={...c,newValue:i.getValueByKey(n.key,r.key)});for(const e of l)if((!("condition"in e)||e.condition(c))&&("value"in e&&(c={...c,value:e.value(c)}),"style"in e&&(u={...u,...N(e.style(c),e.index)}),"text"in e&&(c={...c,text:e.text(c)}),"font"in e&&(p=e.font(c)),"padding"in e&&(d={...d,...e.padding(c)}),"edit"in e&&(c={...c,edit:F(e,c)}),"tooltip"in e&&(a=e.tooltip(c)),"sortOrder"in e&&(c={...c,sortOrder:e.sortOrder(c)}),"draw"in e)){const t=c;s=o=>e.draw({...t,ctx:o})}const f=function(e){return"text"in e?`${e.text}`:"newValue"in e?`${e.newValue}`:void 0!==e.value?`${e.value}`:""}(c),h={render:!0,style:u,text:f,padding:d,font:p};return"value"in c&&(h.value=c.value),"edit"in c&&void 0!==c.edit&&(h.edit=c.edit),void 0!==a&&(h.tooltip=a),"sortOrder"in c&&(h.sortOrder=c.sortOrder),void 0!==s&&(h.draw=s),h}}function U(e){return new H(e)}class j{constructor(e,t,o,n,r){this.formattingRules=e,this.data=t,this.rows=o,this.columns=n,this.edition=r}resolve(e,t){return this.formattingRules.resolve(this.data,this.rows,this.columns,e,t,this.edition)}}function Y(e,t,o,n,r){return new j(e,t,o,n,r)}function q(e,t,o){const r=new Map;for(const i of e){const e=n(i[t]),l=n(i[o]);r.has(e)||r.set(e,new Map),r.get(e).set(l,i.expression)}return r}function $(e,t,o,n,r,i,l){if(0===e.length)return r;const s=q(e,"columnId","rowId"),a=i.filter((e=>"FILTER"!==e.type&&"DYNAMIC-BLOCK"!==e.type&&s.has(e.key)));return 0===a.length?r:r.filter((e=>{if("DYNAMIC-BLOCK"===e.type)return!0;for(const c of a){if("DYNAMIC-BLOCK"===c.type)continue;const a=o.resolve(n,r,i,e,c,l),u=s.get(c.key);if(!t.resolve(n,r,i,e,c,a.value,a.text,u))return!1}return!0}))}function V(e,t,o,n,r,i,l){if(0===e.length)return i;const s=q(e,"rowId","columnId"),a=r.filter((e=>"FILTER"!==e.type&&"DYNAMIC-BLOCK"!==e.type&&s.has(e.key)));return 0===a.length?i:i.filter((e=>{if("DYNAMIC-BLOCK"===e.type)return!0;for(const c of a){if("DYNAMIC-BLOCK"===c.type)continue;const a=o.resolve(n,r,i,c,e,l),u=s.get(c.key);if(!t.resolve(n,r,i,c,e,a.value,a.text,u))return!1}return!0}))}function G(e,t,o){if("DYNAMIC-BLOCK"!==e.type)return[e.height+o,1];const n=Math.min(t,e.count);return[(e.rowHeight+o)*n,n]}function X(e,t,o){if("DYNAMIC-BLOCK"!==e.type)return[e.width+o,1];const n=Math.min(t,e.count);return[(e.columnWidth+o)*n,n]}function Z(e,t,o,n){let r=0,i=0,l=0,s=0;if(o.top>0){r=n;for(let e=0,i=0;i<o.top;e++){const l=t[e],[s,a]=G(l,o.top-i,n);r+=s,i+=a}}if(o.left>0){l=n;for(let t=0,r=0;r<o.left;t++){const i=e[t],[s,a]=X(i,o.left-r,n);l+=s,r+=a}}if(o.bottom>0){i=n;for(let e=t.length-1,r=0;r<o.bottom;e--){const l=t[e],[s,a]=G(l,o.bottom-r,n);i+=s,r+=a}}if(o.right>0){s=n;for(let t=e.length-1,r=0;r<o.right;t--){const i=e[t],[l,a]=X(i,o.right-r,n);s+=l,r+=a}}return{top:r,bottom:i,left:l,right:s}}function J(e,t){if(0===e.length)return 0;let o=t;for(const n of e)o+=n.height,o+=t;return o}function Q(e,t){if(0===e.length)return 0;let o=t;for(const n of e)o+=n.width,o+=t;return o}function ee(e,t,o){return{width:Q(e,o),height:J(t,o)}}class te{constructor(){this.fontMetrics=new Map,this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d")}measureWidth(e,t){if(!e)return 0;const o=this.context;return o.font=t||S,o.measureText(e).width}measureHeight(e,t){let o=1;for(const t of e)"\n"===t&&o++;return o*this.getFontMetrics(t).height}getFontMetrics(e){const t=e;if(this.fontMetrics.has(t))return this.fontMetrics.get(t);const o=this.context;o.font=e||S;const n=o.measureText("X"),r=(n.actualBoundingBoxDescent-n.actualBoundingBoxAscent)/2,i={topOffset:r+n.fontBoundingBoxAscent,middle:-r,bottomOffset:n.fontBoundingBoxDescent-r,height:n.fontBoundingBoxAscent+n.fontBoundingBoxDescent};return this.fontMetrics.set(t,i),i}}function oe(){return new te}function ne(e,t){return t.top>=e.top&&t.left>=e.left&&t.top+t.height<=e.top+e.height&&t.left+t.width<=e.left+e.width}function re(e,t){const o={top:Math.max(e.top,t.top),left:Math.max(e.left,t.left),width:Math.min(e.left+e.width,t.left+t.width)-Math.max(e.left,t.left),height:Math.min(e.top+e.height,t.top+t.height)-Math.max(e.top,t.top)};return o.width>=0&&o.height>=0?o:{top:e.top,left:e.left,width:0,height:0}}function ie(e,t){return{top:e.top-t,left:e.left-t,width:e.width+2*t,height:e.height+2*t}}function le(e){return e.width*e.height}function se(e,t){return{top:e.top,left:e.left,width:Math.max(0,e.width-t.left-t.right),height:Math.max(0,e.height-t.top-t.bottom)}}const ae=200,ce=400,ue={left:0,top:0,width:0,height:0};function de(e,t,o,n,r){const i=e||ue,l=se({left:0,top:0,...o},n),s=se({...t,...r},n),a=re(l,ie(s,ae)),c=re(l,ie(s,ce));return ne(l,i)&&ne(i,a)?le(i)>2*le(c)?c:i:c}function pe(e,t,o,n,r){if(!e)return null;if(e.x<0||e.y<0||e.x>r.width||e.y>r.height)return null;const i=function(e,t){if(0===e.length)return-1;if(t<e[0].topWithBorder)return-1;if(t>e[e.length-1].bottomWithBorder)return-1;let o=0,n=e.length-1;for(;o<=n;){const r=Math.floor((o+n)/2);if(t<e[r].topWithBorder)n=r-1;else{if(!(t>e[r].bottomWithBorder))return r;o=r+1}}return-1}(t,e.y),l=function(e,t){if(0===e.length)return-1;if(t<e[0].leftWithBorder)return-1;if(t>e[e.length-1].rightWithBorder)return-1;let o=0,n=e.length-1;for(;o<=n;){const r=Math.floor((o+n)/2);if(t<e[r].leftWithBorder)n=r-1;else{if(!(t>e[r].rightWithBorder))return r;o=r+1}}return-1}(o,e.x);return-1===i||-1===l?null:{rowId:t[i].id,columnId:o[l].id}}function fe(e){return e.reduce(((e,t)=>e.set(t.key,t)),new Map)}function he(e,t,o,r,i,l,s,a){if(!e)return[];if(!t)return[];if(!r)return[];if(!o)return[];const c=n(o.columnId),u=n(o.rowId),d=n(r.columnId),p=n(r.rowId);if(!s.has(c))return[];if(!a.has(u))return[];if(!s.has(d))return[];if(!a.has(p))return[];const f=Math.min(s.get(c).index,s.get(d).index),h=Math.max(s.get(c).index,s.get(d).index),_=Math.min(a.get(u).index,a.get(p).index),m=Math.max(a.get(u).index,a.get(p).index);return i.slice(f,h+1).flatMap((e=>l.slice(_,m+1).map((t=>({rowId:t.id,columnId:e.id})))))}function _e(e,t){const o=function(e){return"BEGIN"===e.pinned?"top":"END"===e.pinned?"bottom":"middle"}(t),n=function(e){return"BEGIN"===e.pinned?"left":"END"===e.pinned?"right":"center"}(e);return`${o}-${n}`}function me(e,t,o,r,i){return 0===e.length?null:function(e,t,o,r){if(!e)return null;const i=n(e.columnId),l=n(e.rowId);if(!t.has(i))return null;if(!o.has(l))return null;const s=t.get(i),a=o.get(l),c={width:s.width,height:a.height,section:_e(s,a)};switch(a.pinned){case"BEGIN":c.top=a.top;break;case"END":c.bottom=r.top.height+r.middle.height+r.bottom.height-a.top-a.height;break;default:c.marginTop=a.top-r.top.height}switch(s.pinned){case"BEGIN":c.left=s.left;break;case"END":c.right=r.left.width+r.center.width+r.right.width-s.left-s.width;break;default:c.marginLeft=s.left-r.left.width}return c}(t,o,r,i)}function ge(e,t){return t.every((t=>t.edit.validate({string:e})))}function ye(e){return Array.isArray(e)?e.map(((e,t)=>t)):Object.keys(e)}function we(e){return ye(e)}function be(e){const t=new Set;if(Array.isArray(e))for(const o of e)for(const e of ye(o))t.add(e);else for(const o in e)for(const n of ye(e[o]))t.add(n);return Array.from(t)}function Ce(e,t){if(!e.some((e=>"DATA-BLOCK"===e.type)))return e;const o=[];for(const n of e)if("DATA-BLOCK"===n.type){const e="selector"in n?n.selector({data:t}):be(t),r="id"in n?n.id:({selector:e})=>e;for(const i of e)o.push({...n,id:r({data:t,selector:i}),selector:i,type:"DATA"})}else o.push(n);return o}function Ee(e,t){if(!e.some((e=>"DATA-BLOCK"===e.type)))return e;const o=[];for(const n of e)if("DATA-BLOCK"===n.type){const e="selector"in n?n.selector({data:t}):we(t),r="id"in n?n.id:({selector:e})=>e;for(const i of e)o.push({...n,id:r({data:t,selector:i}),selector:i,type:"DATA"})}else o.push(n);return o}const ve=({text:e,expression:t})=>e.includes(t);class Re{constructor(e){this.rulesLookup=new K;for(const t of e){const e={by:n("by"in t?t.by:"FILTER"),condition:t.condition||ve};this.rulesLookup.addRule(t.column,t.row,e)}}resolve(e,t,o,n,r,i,l,s){const a=this.rulesLookup.getRules(r,n);if(0===a.length)return"DATA"!==n.type||"DATA"!==r.type||!s.has('"FILTER"')||ve({text:l,expression:s.get('"FILTER"')});let c={data:e,rows:t,columns:o,row:n,column:r,value:i,text:l};for(const e of a){if(!s.has(e.by))continue;const t={...c,expression:s.get(e.by)};if(!e.condition(t))return!1}return!0}}function Ae(e){return new Re(e)}function De(e){return p(e,["value","text"])}function xe(e){return p(e,["value","text","font","padding"])}function Ie(e,t,o,n,r,i,s){if(e.every((e=>"number"==typeof e.width)))return e;const a=e=>{if("DYNAMIC-BLOCK"===e.type)return e.width;const i=e.width;if("number"==typeof i)return i;if(r.has(e.key)){const t=r.get(e.key);if("fit-once"===i&&!t.dataOnly)return t.width;if("fit-data-once"===i&&t.dataOnly)return t.width}let l=0;for(const r of t){if("DYNAMIC-BLOCK"===r.type)continue;if("DATA"!==r.type&&"fit-data-once"===i)continue;if("DATA"!==r.type&&"fit-data"===i)continue;const t=n.resolve(r,e),s=t.text,a=t.font,c=t.padding.left+t.padding.right,u=o.measureWidth(s,a)+c;l=Math.max(l,u)}return r.set(e.key,{width:l,dataOnly:"fit-data-once"===i}),l};for(const e of r.keys())i.has(e)||r.delete(e);return e.map((e=>({...e,width:l(a(e),s)})))}function Oe(e,t,o,n,r,i,s){if(t.every((e=>"number"==typeof e.height)))return t;const a=t=>{if("DYNAMIC-BLOCK"===t.type)return t.height;const i=t.height;if("number"==typeof i)return i;if(r.has(t.key)){const e=r.get(t.key);if("fit-once"===i&&!e.dataOnly)return e.height;if("fit-data-once"===i&&e.dataOnly)return e.height}let l=0;for(const r of e){if("DYNAMIC-BLOCK"===r.type)continue;if("DATA"!==r.type&&"fit-data-once"===i)continue;if("DATA"!==r.type&&"fit-data"===i)continue;const e=n.resolve(t,r),s=e.text,a=e.font,c=e.padding.top+e.padding.bottom,u=o.measureHeight(s,a)+c;l=Math.max(l,u)}return r.set(t.key,{height:l,dataOnly:"fit-data-once"===i}),l};for(const e of r.keys())i.has(e)||r.delete(e);return t.map((e=>({...e,height:l(a(e),s)})))}function Me(e){const t=new Set;for(const o of e)"DYNAMIC-BLOCK"!=o.type&&t.add(o.key);return t}function ke(e){return p(e,["value","text"])}function Se(e){return p(e,["value","sortOrder"])}function Te(e,t){return e===t?0:void 0===e.value?1:void 0===t.value||e.value<t.value?-1:e.value>t.value?1:0}function Le(e,t){return e===t?0:void 0===e.value?1:void 0===t.value||e.value>t.value?-1:e.value<t.value?1:0}class Be{constructor(e){this.rulesLookup=new K;for(const t of e){const e=t.comparatorAsc||t.comparator,o=t.comparatorDesc||(t.comparator?(e,o)=>{return-("number"==typeof(n=t.comparator(e,o))?n:n?-1:1);var n}:null),r=e?(t,o)=>e(t,o):(e,t)=>Te(e,t),i=o?(e,t)=>o(e,t):(e,t)=>Le(e,t),l={by:n("by"in t?t.by:"HEADER"),comparatorAsc:r,comparatorDesc:i};this.rulesLookup.addRule(t.column,t.row,l)}}resolve(e,t,o){const n=this.rulesLookup.getRules(e,t);if(0===n.length)return"DATA"!==t.type||"DATA"!==e.type?null:o.has('"HEADER"')?"ASC"===o.get('"HEADER"')?Te:Le:null;if(n.length>1)throw new Error("Multiple sorting rules for the same cell");const r=n[0];return o.has(r.by)?"ASC"===o.get(r.by)?r.comparatorAsc:r.comparatorDesc:null}}function Pe(e){return"manual"===e?null:new Be(e)}function Ke(e,t,o){const r=new Map;for(const i of e){const e=n(i[t]),l=n(i[o]);r.has(e)||r.set(e,new Map),r.get(e).set(l,i.direction)}return r}function We(e,t){e.sort(((e,t)=>{const o=e.comparator(e.cell,t.cell);return"number"==typeof o?o:o?-1:1})),t.push(...e.map((e=>e.entity))),e.length=0}function ze(e,t,o,r,i,l,s){if(0===e.length)return i;if(null===t)return i;const a=Ke(e,"columnId","rowId"),c=new Map(l.filter((e=>"DYNAMIC-BLOCK"!==e.type)).map((e=>[e.key,e]))),u=e.map((e=>n(e.columnId))).filter((e=>c.has(e))).map((e=>c.get(e))).reverse();if(0===u.length)return i;for(const e of u){const n=[],c=[];for(const u of i){if("DYNAMIC-BLOCK"===u.type){We(c,n),n.push(u);continue}const d=t.resolve(e,u,a.get(e.key));if(!d){We(c,n),n.push(u);continue}const p={entity:u,comparator:d,cell:o.resolve(r,i,l,u,e,s)};0!==c.length&&c[0].comparator!==d?(We(c,n),c.push(p)):c.push(p)}We(c,n),i=n}return i}function Ne(e,t,o,r,i,l,s){if(0===e.length)return l;if(null===t)return l;const a=Ke(e,"rowId","columnId"),c=new Map(i.filter((e=>"DYNAMIC-BLOCK"!=e.type)).map((e=>[e.key,e]))),u=e.map((e=>n(e.rowId))).filter((e=>c.has(e))).map((e=>c.get(e))).reverse();if(0===u.length)return l;for(const e of u){const n=[],c=[];for(const u of l){if("DYNAMIC-BLOCK"===u.type){We(c,n),n.push(u);continue}const d=t.resolve(u,e,a.get(e.key));if(!d){We(c,n),n.push(u);continue}const p={entity:u,comparator:d,cell:o.resolve(r,i,l,e,u,s)};0!==c.length&&c[0].comparator!==d?(We(c,n),c.push(p)):c.push(p)}We(c,n),l=n}return l}const Fe=5;function He(e,t,o,r,i,l){if(!r)return null;if(l)return null;const s=t.get(n(r.columnId));if("HEADER"!==o.get(n(r.rowId)).type)return null;if(!s.resizable)return null;if(!i)return null;const a=i.x;return a>=s.right-Fe&&a<=s.right+Fe?s.id:0===s.index||a<s.left-Fe||a>s.left+Fe?null:e[s.index-1].id}function Ue(e,t,o,r,i,l){if(!r)return null;if(l)return null;const s=t.get(n(r.columnId)),a=o.get(n(r.rowId));if("HEADER"!==s.type)return null;if(!a.resizable)return null;if(!i)return null;const c=i.y;return c>=a.bottom-Fe&&c<=a.bottom+Fe?a.id:0===a.index||c<a.top-Fe||c>a.top+Fe?null:e[a.index-1].id}function je(e){return e.map((e=>({columnId:"columnId"in e?e.columnId:"HEADER",rowId:"rowId"in e?e.rowId:"HEADER",direction:e.direction})))}function Ye(e){return e.map((e=>({columnId:"columnId"in e?e.columnId:"FILTER",rowId:"rowId"in e?e.rowId:"FILTER",expression:e.expression})))}function qe(e){return e.filter((e=>"DATA"===e.type)).map((e=>e.id))}function $e(e){return qe(e)}function Ve(e){return qe(e)}function Ge(e){return p(e,["value","text","tooltip"])}function Xe(e,t,o,r){if(!e)return null;const i=n(e.columnId),l=n(e.rowId);if(!o.has(i))return null;if(!r.has(l))return null;const s=r.get(l),a=o.get(i);return t.resolve(s,a).tooltip}function Ze(e,t){return e?{left:t.x+8,top:t.y+20}:null}function Je(e){return e.map((e=>n(e)))}function Qe(e,t){if(!t.length)return e;const o=new Map;for(const[e,n]of t.entries())o.set(n,e);const n=[],r=t.length;let i=0;for(const[t,l]of e.entries())if("DYNAMIC-BLOCK"===l.type)i++,n.push({entry:l,score:[i,0,0]}),i++;else{const e=l.key,s=o.has(e)?o.get(e):r;n.push({entry:l,score:[i,s,t]})}return n.sort(((e,t)=>function(e,t){if(e.length!=t.length)throw new Error("lengths should be the same");for(let o=0;o<e.length;o++){const n=e[o]-t[o];if(0!=n)return n}return 0}(e.score,t.score))).map((e=>e.entry))}function et(e,t){return Qe(e,t)}function tt(e,t){return Qe(e,t)}function ot(e){return e.some((e=>"DYNAMIC-BLOCK"===e.type))}function nt(e){const t=[];for(const[o,n]of e){if(o>n)continue;if(0===t.length){t.push([o,n]);continue}const[e,r]=t[t.length-1];r<o-1?t.push([o,n]):(t.pop(),t.push([e,n]))}return t}function rt(e){return e.reduce(((e,t)=>"DYNAMIC-BLOCK"===t.type?e+t.count:e+1),0)}function it(e,t,o,r,i,l){if(!ot(t))return t;let s=l,a=0,c=0;const u=rt(t),d=r.left+i.left,p=d+r.width,f=[],h=(e,t)=>{f.push(t),s+=t.width+l,a+=e},_=e=>{h(1,e)},m=(t,o,r)=>{for(let i=o;i<=r;i++){const o=t.selector({data:e,index:i}),r=t.id({data:e,selector:o});h(1,{...t,type:"DATA",id:r,key:n(r),selector:o,header:t.header({data:e,selector:o}),width:t.columnWidth})}},g=(e,t)=>{if(t>0){const o="__separator_"+c++;h(t,{...e,type:"SEPARATOR",id:o,key:n(o),header:"",width:t*e.columnWidth+(t-1)*l})}};for(const e of t){if("DYNAMIC-BLOCK"!==e.type){_(e);continue}const{count:t,columnWidth:n}=e,r=n+l,i=o.left-a,c=u-o.right-a,f=Math.floor((d-s)/r),h=Math.floor((p-s)/r),y=nt([[0,i-1],[Math.max(0,i,f),Math.min(t-1,c-1,h)],[c,t-1]]);let w=0;for(const[t,o]of y)g(e,t-w),m(e,t,o),w=o+1;g(e,t-w)}return f}function lt(e,t,o,r,i,l){if(!ot(t))return t;let s=l,a=0,c=0;const u=rt(t),d=r.top+i.top,p=d+r.height,f=[],h=(e,t)=>{f.push(t),s+=t.height+l,a+=e},_=e=>{h(1,e)},m=(t,o,r)=>{for(let i=o;i<=r;i++){const o=t.selector({data:e,index:i}),r=t.id({data:e,selector:o});h(1,{...t,type:"DATA",id:r,key:n(r),selector:o,header:t.header({data:e,selector:o}),height:t.rowHeight})}},g=(e,t)=>{if(t>0){const o="__separator_"+c++;h(t,{...e,type:"SEPARATOR",id:o,key:n(o),header:"",height:t*e.rowHeight+(t-1)*l})}};for(const e of t){if("DYNAMIC-BLOCK"!==e.type){_(e);continue}const{count:t,rowHeight:n}=e,r=n+l,i=o.top-a,c=u-o.bottom-a,f=Math.floor((d-s)/r),h=Math.floor((p-s)/r),y=nt([[0,i-1],[Math.max(0,i,f),Math.min(t-1,c-1,h)],[c,t-1]]);let w=0;for(const[t,o]of y)g(e,t-w),m(e,t,o),w=o+1;g(e,t-w)}return f}function st(e,t,o,n,r,i){const l=e.reduce(((e,t)=>e+function(e){return"DYNAMIC-BLOCK"===e.type?e.count:1}(t)),0),s=t.reduce(((e,t)=>e+function(e){return"DYNAMIC-BLOCK"===e.type?e.count:1}(t)),0),a=Math.min(r,l),c=Math.min(o,s);return{left:a,top:c,right:Math.min(i,l-a),bottom:Math.min(n,s-c)}}function at(e){return{width:e.clientWidth,height:e.clientHeight}}function ct(e){return{left:e.scrollLeft,top:e.scrollTop}}function ut(e,t,o,n,r){if(!e)return null;const i=e.x,l=e.y;return{x:i<=n.left?i:i>=t.width?i+o.left:i>=t.width-n.right?r.width-t.width+i:i+o.left,y:l<=n.top?l:l>=t.height?l+o.top:l>=t.height-n.bottom?r.height-t.height+l:l+o.top}}function dt(e,t,o,r){if(!t)return e;if(!o)return e;if(!r)return e;const i=n(o.columnId),l=r.find((e=>"key"in e&&e.key===i));return"DATA"!==l?.type?e:r}function pt(e,t,o,r){if(!t)return e;if(!o)return e;if(!r)return e;const i=n(o.rowId),l=r.find((e=>"key"in e&&e.key===i));return"DATA"!==l?.type?e:r}function ft(e,t,o,n,r,i){return!!e&&(void 0===o||o<n||o>i-r||!t)}function ht(e,t,o,n){const r=e.position||"BEGIN",i=e.index%1*o;if("BEGIN"===r)return t+i;if("MIDDLE"===r)return t-(n-o)/2+i;if("END"===r)return t-(n-o)+i;throw new Error(`Invalid scroll position: ${r}`)}function _t(e,t,o,n,r,i,l,s,a){if(!ft(e,t,r?.y,i.top,i.bottom,l.height))return null;let c=Math.floor(e.index)+n.top,u=-i.top,d=0;for(const e of o)if("DYNAMIC-BLOCK"===e.type){const t=Math.min(c,e.count);if(u+=(e.rowHeight+a)*t,c-=t,t<e.count){d=e.rowHeight;break}}else{if(0===c){d=e.height;break}u+=e.height+a,c-=1}return ht(e,u,d,s.height-i.top-i.bottom)}function mt(e,t,o,n,r,i,l,s,a){if(!ft(e,t,r?.x,i.left,i.right,l.width))return null;let c=Math.floor(e.index)+n.left,u=-i.left,d=0;for(const e of o)if("DYNAMIC-BLOCK"===e.type){const t=Math.min(c,e.count);if(u+=(e.columnWidth+a)*t,c-=t,t<e.count){d=e.columnWidth;break}}else{if(0===c){d=e.width;break}u+=e.width+a,c-=1}return ht(e,u,d,s.width-i.left-i.right)}function gt(e){return e?"number"==typeof e||"string"==typeof e?[{maxDistance:1/0,scrollSpeed:e}]:0===e.length?[{maxDistance:1/0,scrollSpeed:"smooth"}]:e.sort(((e,t)=>e.maxDistance-t.maxDistance)):[{maxDistance:1/0,scrollSpeed:"smooth"}]}function yt(e,t,o,n,r){return{verticalTarget:e,horizontalTarget:t,verticalSpeed:o,horizontalSpeed:n,clientSizeVersion:r}}function wt(e){return{scrollbarWidth:e.scrollbarWidth||"auto"}}function bt(e,t,o,n,r,i){return{sections:e,devicePixelRatio:t,scrollRect:o,renderFormatResolver:n,borderWidth:r,textResolver:i}}function Ct(e,t){return{inputPlacement:e,isTextValid:t}}function Et(e,t,o){return{resizableColumn:e,resizableRow:t,isReordering:o}}function vt(e,t){return{tooltip:e,tooltipPlacement:t}}function Rt(e){return e.measureHeight("X",S)+T.top+T.bottom}function At(e,t){return!e&&!t||!(!e||!t)&&e.x===t.x&&e.y===t.y}function Dt(e,t){return!e&&!t||!(!e||!t)&&e.width===t.width&&e.height===t.height}function xt(e,t){return!e&&!t||!(!e||!t)&&e.left===t.left&&e.top===t.top}function It(e,t){return!e&&!t||!(!e||!t)&&e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height}function Ot(e,t){return!e&&!t||!(!e||!t)&&n(e.rowId)===n(t.rowId)&&n(e.columnId)===n(t.columnId)}function Mt(e,t){return!e&&!t||!(!e||!t)&&e.scrollbarWidth===t.scrollbarWidth}function kt(e){const t={...e.localOptions,...e.externalOptions},o=e.memory,n=e.state,r=e.element,l=[];function s(e,t,n,r=((e,t)=>e===t)){const i=o[e]&&o[e].dependencies;if(!i||n.some(((e,t)=>e!==i[t]))){const i=o[e]&&o[e].value,s=o[e]&&o[e].version||0,a=t(...n);r(i,a)?o[e]={value:i,dependencies:n,version:s}:(o[e]={value:a,dependencies:n,version:s+1},l.push(e))}return o[e].value}function a(e,t,n){(o[e]&&o[e].value)!==t&&(o[e]={value:t},n(t))}const u=s("devicePixelRatio",(e=>e),[window.devicePixelRatio]),d=s("borderWidth",(e=>e),[t.borderWidth/u]),p=t.data,h=e.input.value,y=s("sortBy",je,[t.sortBy]),b=s("filters",Ye,[t.filters]),R=s("columnWidths",(e=>e),[t.columnWidths]),A=s("rowHeights",(e=>e),[t.rowHeights]),D=s("textResolver",oe,[]),O=s("dataFormatting",c,[t.formatting,t.dataSelector,y]),S=s("editedCellsAndFilters",g,[t.editedCells,b]),T=s("edition",w,[S]),L=s("invokedColumns",E,[t.columns,p]),B=s("invokedRows",v,[t.rows,p]),P=s("mousePosition",(e=>e),[e.mousePosition],At),K=s("unfoldedColumns",Ce,[L,p]),W=s("unfoldedRows",Ee,[B,p]),z=s("dynamicRowHeight",Rt,[D]),N=s("unfilteredColumns",x,[K,R,d,u,150]),F=s("unfilteredRows",I,[W,A,d,u,z]),H=s("unfilteredColumnKeys",Me,[N]),j=s("unfilteredRowKeys",Me,[F]),q=s("columnsOrder",Je,[t.columnsOrder]),G=s("rowsOrder",Je,[t.rowsOrder]),X=s("orderedColumns",et,[N,q]),J=s("orderedRows",tt,[F,G]),Q=s("filterFormatting",De,[O]),te=s("filterFormattingRules",U,[Q]),ne=s("filteringRules",Ae,[t.filtering]),re=s("filteredColumns",V,[b,ne,te,p,J,X,T]),ie=s("filteredRows",$,[b,ne,te,p,J,X,T]),le=s("sortingFormatting",ke,[O]),se=s("sortingFormattingRules",U,[le]),ae=s("sortingRules",Pe,[t.sorting]),ce=s("sortedColumns",Ne,[y,ae,se,p,ie,re,T]),ue=s("sortedRows",ze,[y,ae,se,p,ie,re,T]),_e=t.freezeOnHover&&!l.includes("sortBy")&&!l.includes("filters")&&!l.includes("columnWidths")&&!l.includes("rowHeights"),ye=s("shapedColumns",dt,[ce,_e,n?.hoveredCell,n?.shapedColumns]),we=s("shapedRows",pt,[ue,_e,n?.hoveredCell,n?.shapedRows]),be=s("pinning",st,[ye,we,t.pinnedTop,t.pinnedBottom,t.pinnedLeft,t.pinnedRight]),ve=s("measureFormatting",xe,[O]),Re=s("measureFormattingRules",U,[ve]),Te=s("measureFormatResolver",Y,[Re,p,we,ye,T]),Le=e.columnWidthCache,Be=e.rowHeightCache,Ke=s("measuredColumns",Ie,[ye,we,D,Te,Le,H,u]),We=s("measuredRows",Oe,[ye,we,D,Te,Be,j,u]),Fe=s("fixedSize",Z,[Ke,We,be,d]),qe=s("totalSize",ee,[Ke,We,d]),Qe=s("clientSize",(e=>e),[at(r)],Dt),ot=s("boundingClientSize",(e=>e),[at(r)],Dt),nt=s("scrollOffset",(e=>e),[ct(r)],xt),rt=s("internalMousePosition",ut,[P,Qe,nt,Fe,qe],At),ft=s("scrollRect",de,[n?.renderState?.scrollRect,nt,qe,Fe,ot],It),ht=s("horizontalScrollTarget",mt,[t.horizontalScrollTarget,t.disableScrollOnHover,Ke,be,rt,Fe,qe,Qe,d]),kt=s("verticalScrollTarget",_t,[t.verticalScrollTarget,t.disableScrollOnHover,We,be,rt,Fe,qe,Qe,d]),St=s("horizontalScrollSpeed",gt,[t.horizontalScrollSpeed]),Tt=s("verticalScrollSpeed",gt,[t.verticalScrollSpeed]),Lt=s("staticColumns",it,[p,Ke,be,ft,Fe,d]),Bt=s("staticRows",lt,[p,We,be,ft,Fe,d]),Pt=s("columns",M,[Lt,be,d]),Kt=s("rows",k,[Bt,be,d]),Wt=s("columnLookup",fe,[Pt]),zt=s("rowLookup",fe,[Kt]),Nt=t.focusedCell,Ft=s("sections",m,[Pt,Kt]),Ht=t.selectedCells,Ut=s("hoveredCell",pe,[rt,Kt,Pt,Fe,qe],Ot),jt=e.isReordering,Yt=e.resizingColumn||s("resizableColumn",He,[Pt,Wt,zt,Ut,rt,jt]),qt=e.resizingRow||s("resizableRow",Ue,[Kt,Wt,zt,Ut,rt,jt]),$t=s("highlightedCells",he,[e.isMouseDown,!Yt&&!qt&&!e.didReorder,Nt,Ut,Pt,Kt,Wt,zt]),Vt=s("selection",C,[Ht]),Gt=s("highlight",C,[$t]),Xt=s("renderFormatting",_,[O,Ut,Nt,Vt,Gt,T,y,Yt,qt,t.borderWidth,jt,e.reorderedColumn,e.reorderedRow]),Zt=s("renderFormattingRules",U,[Xt]),Jt=s("renderFormatResolver",Y,[Zt,p,Kt,Pt,T]),Qt=s("sortOrderFormatting",Se,[O]),eo=s("sortOrderFormattingRules",U,[Qt]),to=s("sortOrderFormatResolver",Y,[eo,p,Kt,Pt,T]),oo=s("inputFormatting",f,[O]),no=s("inputFormattingRules",U,[oo]),ro=s("inputFormatResolver",Y,[no,p,Kt,Pt,T]),io=s("editableCells",i,[Ht,ro,Wt,zt]),lo=s("inputPlacement",me,[io,Nt,Wt,zt,Ft]),so=s("isTextValid",ge,[h,io]),ao=s("contextFormatting",Ge,[O]),co=s("contextFormattingRules",U,[ao]),uo=s("contextFormatResolver",Y,[co,p,Kt,Pt,T]),po=s("tooltip",Xe,[Ut,uo,Wt,zt]),fo=s("tooltipPlacement",Ze,[po,P]),ho=s("renderState",bt,[Ft,u,ft,Jt,d,D]),_o=s("inputState",Ct,[lo,so]),mo=s("cursorState",Et,[Yt,qt,e.isReordering]),go=s("tooltipState",vt,[po,fo]),yo=s("scrollState",yt,[kt,ht,Tt,St,o.clientSize.version]),wo=s("styleState",wt,[t.style],Mt),bo=s("activeColumns",$e,[Pt]),Co=s("activeRows",Ve,[Kt]);a("activeColumnsCallback",bo,t.onActiveColumnsChange),a("activeRowsCallback",Co,t.onActiveRowsChange),a("hoveredCellCallback",Ut,t.onHoveredCellChange),t.onStateChange(l),e.state={options:t,edition:T,columns:Pt,rows:Kt,hoveredCell:Ut,focusedCell:Nt,inputFormatResolver:ro,fixedSize:Fe,totalSize:qe,clientSize:Qe,scrollOffset:nt,highlightedCells:$t,columnLookup:Wt,rowLookup:zt,text:h,scrollState:yo,styleState:wo,sortOrderFormatResolver:to,renderState:ho,inputState:_o,cursorState:mo,tooltipState:go,shapedColumns:ye,shapedRows:we}}function St(e,t){const o=new b(t);return[...t,...e.filter((e=>!o.isIdSelected(e.rowId,e.columnId)))]}function Tt(e,t){const o=new b(t);return e.filter((e=>!o.isIdSelected(e.rowId,e.columnId)))}function Lt(e){const t=e.currentTarget;if(!(t instanceof HTMLElement))throw new Error("Element is not an HTMLElement");const o=t.getBoundingClientRect();return{x:e.clientX-o.left,y:e.clientY-o.top}}function Bt(e,t){return e.map((e=>({...e,columnId:"columnId"in e?e.columnId:t,rowId:"rowId"in e?e.rowId:t})))}function Pt(e,t,o){const r=n(t),i=n(o);if(r===i)return null;const l=e.findIndex((e=>e.key===r)),s=e.findIndex((e=>e.key===i));return-1===l||-1===s||l===s?null:[l,s]}function Kt(e){const t=e.element;e.scrollAnimationId&&(cancelAnimationFrame(e.scrollAnimationId),e.scrollAnimationId=null,t.scrollTop=t.scrollTop,t.scrollLeft=t.scrollLeft)}function Wt(e,t,o,n){return e>0?Math.min(e,t*o+n):Math.max(e,-t*o+n)}function zt(e,t,o,n,r,i,l,s,a,c,u){if(null===n)return null;const d=n-o;if(Math.abs(d)<1)return null;if(d<0&&0===o)return null;if(d>0&&o>=i-r-1)return null;const p=function(e,t){const o=Math.abs(t);for(const t of e)if(o<=t.maxDistance)return t.scrollSpeed;return"auto"}(a,d);return u||"auto"===p?{[e]:n,behavior:"auto"}:"number"==typeof p?{[e]:o+Wt(d,p,t,c),behavior:"auto"}:l!==n||s===o?{[e]:n}:null}function Nt(e,t){if(e.errorRendered)return;e.errorRendered=!0;const o=e.element;o.style.backgroundColor="#9f0000",o.style.color="white",o.style.padding="20px",o.style.display="flex",o.style.flexDirection="column",o.style.userSelect="text",o.innerHTML=`\n <div style="font-size: 16px;">\n An error occurred while rendering the grid, please contact the support.\n </div>\n <div style="font-size: 20px; font-weight: bold; padding: 20px 0;">\n ${t.message}\n </div>\n <div style="font-size: 16px; white-space: pre-wrap;">${t.stack}</div>\n `}function Ft(e){if(!e.errorRendered)try{kt(e),e.state.styleState!==e.lastStyleState&&(e.lastStyleState=e.state.styleState,function(e){const t=e.state.styleState,o=e.element,n=`\n max-width: 100vw;\n max-height: 100vh;\n overflow: auto;\n display: grid;\n position: relative;\n grid-template-columns: fit-content(0) fit-content(0) fit-content(0);\n grid-template-rows: fit-content(0) fit-content(0) fit-content(0);\n outline: none;\n user-select: none;\n touch-action: manipulation;\n scrollbar-width: ${t.scrollbarWidth};\n `;o.setAttribute("style",n)}(e)),e.state.renderState!==e.lastRenderState&&(e.lastRenderState=e.state.renderState,function(e){s(e,"top","left"),s(e,"top","center"),s(e,"top","right"),s(e,"middle","left"),s(e,"middle","center"),s(e,"middle","right"),s(e,"bottom","left"),s(e,"bottom","center"),s(e,"bottom","right")}(e)),e.state.inputState!==e.lastInputState&&(e.lastInputState=e.state.inputState,function(e){const t=e.element,o=e.input,n=e.state.inputState,r=n.inputPlacement;if(!r){if(o.parentElement){const e=document.activeElement===o;o.parentElement.removeChild(o),e&&t.focus({preventScroll:!0})}return}const i=e.canvases[r.section];if(o.style.left="left"in r?`${r.left}px`:"0",o.style.top="top"in r?`${r.top}px`:"0",o.style.right="right"in r?`${r.right}px`:"0",o.style.bottom="bottom"in r?`${r.bottom}px`:"0",o.style.marginLeft="marginLeft"in r?`${r.marginLeft}px`:"0",o.style.marginTop="marginTop"in r?`${r.marginTop}px`:"0",o.style.width=`${r.width}px`,o.style.height=`${r.height}px`,o.style.gridArea=i.style.gridArea,o.style.zIndex=i.style.zIndex,o.style.backgroundColor=n.isTextValid?"white":"#eb3434",!o.parentElement){const e=document.activeElement===t;t.appendChild(o),e&&o.focus({preventScroll:!0})}}(e)),e.state.cursorState!==e.lastCursorState&&(e.lastCursorState=e.state.cursorState,function(e){const t=e.element,o=e.state.cursorState;o.isReordering?t.style.cursor="move":o.resizableColumn&&o.resizableRow?t.style.cursor="nwse-resize":o.resizableColumn?t.style.cursor="col-resize":o.resizableRow?t.style.cursor="row-resize":t.style.cursor="default"}(e)),e.state.tooltipState!==e.lastTooltipState&&(e.lastTooltipState=e.state.tooltipState,function(e){const t=e.element,o=e.tooltip,n=e.state.tooltipState,r=n.tooltip,i=n.tooltipPlacement;i?(o.innerHTML!==r&&(o.innerHTML=r),o.style.left=`calc(anchor(left) + ${i.left}px)`,o.style.top=`calc(anchor(top) + ${i.top}px)`,o.parentElement||(t.appendChild(o),o.showPopover({source:t}))):o.parentElement&&o.parentElement.removeChild(o)}(e)),e.state.scrollState!==e.lastScrollState&&(e.lastScrollState=e.state.scrollState,function(e){const t=e.element,o=e.state.scrollState,n=o.verticalTarget,r=o.horizontalTarget;if(null===n&&null===r||!t.isConnected)return void Kt(e);if(e.scrollAnimationId)return;let i=performance.now(),l=null,s=null,a={top:t.scrollTop,left:t.scrollLeft},c=0,u=0;const d=o=>{const n=e.state.scrollState.verticalTarget,r=e.state.scrollState.horizontalTarget;if(null===n&&null===r||!t.isConnected)return void Kt(e);null===n&&(s=null),null===r&&(l=null);const p=(o-i)/1e3;i=o;const f=e.lastScrollClientSizeVersion!==e.state.scrollState.clientSizeVersion;e.lastScrollClientSizeVersion=e.state.scrollState.clientSizeVersion;const h=function(e,t,o,n,r,i){const l=e.element,s=e.state.scrollState,a=s.verticalTarget;return zt("top",t,l.scrollTop,a,l.clientHeight,l.scrollHeight,o?.top,n.top,s.verticalSpeed,r,i)}(e,p,s,a,c,f),_=function(e,t,o,n,r,i){const l=e.element,s=e.state.scrollState,a=s.horizontalTarget;return zt("left",t,l.scrollLeft,a,l.clientWidth,l.scrollWidth,o?.left,n.left,s.horizontalSpeed,r,i)}(e,p,l,a,u,f),m={...s,...l,behavior:"smooth",...h,..._};(h||_)&&t.scrollTo(m),c=h&&"auto"===m.behavior?m.top-t.scrollTop:0,u=_&&"auto"===m.behavior?m.left-t.scrollLeft:0,s=h||s,l=_||l,a={top:t.scrollTop,left:t.scrollLeft},e.scrollAnimationId=requestAnimationFrame(d)};d(i)}(e))}catch(t){Nt(e,t)}}function Ht(e){if("spread-grid-context"in e)return;const t={"top-left":document.createElement("canvas"),"top-center":document.createElement("canvas"),"top-right":document.createElement("canvas"),"middle-left":document.createElement("canvas"),"middle-center":document.createElement("canvas"),"middle-right":document.createElement("canvas"),"bottom-left":document.createElement("canvas"),"bottom-center":document.createElement("canvas"),"bottom-right":document.createElement("canvas")},o=document.createElement("input"),l=document.createElement("div");e.setAttribute("tabindex","0"),e.classList.add("spread-grid"),t["top-left"].setAttribute("style","position: sticky; left: 0; top: 0; z-index: 2; grid-row: 1; grid-column: 1;"),t["top-center"].setAttribute("style","position: sticky; top: 0; z-index: 1; grid-row: 1; grid-column: 2;"),t["top-right"].setAttribute("style","position: sticky; right: 0; top: 0; z-index: 2; grid-row: 1; grid-column: 3;"),t["middle-left"].setAttribute("style","position: sticky; left: 0; z-index: 1; grid-row: 2; grid-column: 1;"),t["middle-center"].setAttribute("style","grid-row: 2; grid-column: 2; z-index: 0;"),t["middle-right"].setAttribute("style","position: sticky; right: 0; z-index: 1; grid-row: 2; grid-column: 3;"),t["bottom-left"].setAttribute("style","position: sticky; left: 0; bottom: 0; z-index: 2; grid-row: 3; grid-column: 1;"),t["bottom-center"].setAttribute("style","position: sticky; bottom: 0; z-index: 1; grid-row: 3; grid-column: 2;"),t["bottom-right"].setAttribute("style","position: sticky; right: 0; bottom: 0; z-index: 2; grid-row: 3; grid-column: 3;"),o.setAttribute("style","position: sticky; z-index: 3; outline: none; border: none; box-shadow: none; padding: 0 5px; font-size: 12px; font-family: Calibri; background-color: white; box-sizing: border-box; opacity: 0; pointer-events: none;"),l.setAttribute("style","pointer-events: none; background-color: white; color: black; border: 1px solid black; padding: 3px 7px; inset: unset; position: absolute; font-size: 12px; font-family: Calibri; "),l.setAttribute("popover","manual"),l.classList.add("spread-grid-tooltip");const s={element:e,canvases:t,input:o,tooltip:l,localOptions:null,externalOptions:{},state:null,memory:{},renderRequested:!1,mousePosition:null,isMouseDown:!1,columnWidthCache:new Map,rowHeightCache:new Map,isReordering:!1,errorRendered:!1,error:null,resizingColumn:null,resizingRow:null,reorderedColumn:null,reorderedRow:null,didReorder:!1,mouseDownPosition:null,mouseDownCell:null,requestNewRender:null,fractionalScrollProgressVertical:0,fractionalScrollProgressHorizontal:0};function a(e,t,o){e.addEventListener(t,(e=>{try{o(e)}catch(e){e.message=`[${t} event]: ${e.message}`,Nt(s,e)}}))}s.requestNewRender=()=>{s.renderRequested||s.errorRendered||(s.renderRequested=!0,requestAnimationFrame((()=>{s.renderRequested=!1,Ft(s)})))},s.localOptions={data:[],columns:[{type:"DATA-BLOCK"}],rows:[{type:"HEADER"},{type:"DATA-BLOCK"}],formatting:[],filtering:[],sorting:[],dataSelector:({data:e,row:t,column:o})=>e?.[t.selector]?.[o.selector],pinnedTop:0,pinnedBottom:0,pinnedLeft:0,pinnedRight:0,borderWidth:1,focusedCell:null,onFocusedCellChange:e=>{s.localOptions.focusedCell=e,s.requestNewRender()},selectedCells:[],onSelectedCellsChange:e=>{s.localOptions.selectedCells=e,s.requestNewRender()},highlightedCells:[],editedCells:[],onEditedCellsChange:e=>{s.localOptions.editedCells=e,s.requestNewRender()},filters:[],onFiltersChange:e=>{s.localOptions.filters=e,s.requestNewRender()},sortBy:[],onSortByChange:e=>{s.localOptions.sortBy=e,s.requestNewRender()},onCellClick:()=>{},onCustomCellClick:()=>{},columnWidths:[],onColumnWidthsChange:e=>{s.localOptions.columnWidths=e,s.requestNewRender()},rowHeights:[],onRowHeightsChange:e=>{s.localOptions.rowHeights=e,s.requestNewRender()},columnsOrder:[],onColumnsOrderChange:e=>{s.localOptions.columnsOrder=e,s.requestNewRender()},rowsOrder:[],onRowsOrderChange:e=>{s.localOptions.rowsOrder=e,s.requestNewRender()},onActiveColumnsChange:()=>{},onActiveRowsChange:()=>{},onHoveredCellChange:()=>{},onStateChange:()=>{},verticalScrollTarget:null,horizontalScrollTarget:null,verticalScrollSpeed:"smooth",horizontalScrollSpeed:"smooth",disableScrollOnHover:!0,freezeOnHover:!1,style:{}},e["spread-grid-context"]=s;const c=e=>{o.value=e,o.dispatchEvent(new Event("input"))},u=e=>{const t=s.state.options.selectedCells,o=s.state.inputFormatResolver,n=s.state.columnLookup,r=s.state.rowLookup,l=s.state.text,a=s.state.inputState.isTextValid,u=s.state.options.onEditedCellsChange,d=s.state.options.onFiltersChange,p=i(t,o,n,r);if(""===l)return;if(!a)return;if(e&&!p.every((e=>e.edit.autoCommit)))return;const f=p.filter((e=>"DATA"===e.type)),h=p.filter((e=>"FILTER"===e.type));var _;_=f.map((e=>({...e.cell,value:e.edit.parse({string:l})}))),u(St(s.state.options.editedCells,_)),(e=>{d(St(Bt(s.state.options.filters,"FILTER"),e))})(h.map((e=>({...e.cell,expression:e.edit.parse({string:l})})))),e||c("")},d=e=>{const t=s.state.options.selectedCells,o=s.state.options.onEditedCellsChange,n=s.state.options.onFiltersChange,r=i(t,s.state.inputFormatResolver,s.state.columnLookup,s.state.rowLookup);var l;e&&!r.every((e=>e.edit.autoCommit))||(l=t,o(Tt(s.state.options.editedCells,l)),(e=>{n(Tt(Bt(s.state.options.filters,"FILTER"),e))})(t))};a(e,"scroll",(e=>{s.requestNewRender()})),a(e,"pointerenter",(e=>{s.mousePosition=Lt(e),s.requestNewRender()})),a(e,"pointermove",(e=>{if(s.mousePosition=Lt(e),s.resizingColumn){const e=s.state.columnLookup.get(n(s.resizingColumn)),t=e.width,o=e.right,r=ut(s.mousePosition,s.state.clientSize,s.state.scrollOffset,s.state.fixedSize,s.state.totalSize),i=Math.max(10,r.x-o+t),l=s.state.options.columnWidths.filter((t=>n(t.columnId)!==e.key)).concat([{columnId:e.id,width:i}]);s.state.options.onColumnWidthsChange(l)}if(s.resizingRow){const e=s.state.rowLookup.get(n(s.resizingRow)),t=e.height,o=e.bottom,r=ut(s.mousePosition,s.state.clientSize,s.state.scrollOffset,s.state.fixedSize,s.state.totalSize),i=Math.max(10,r.y-o+t),l=s.state.options.rowHeights.filter((t=>n(t.rowId)!==e.key)).concat([{rowId:e.id,height:i}]);s.state.options.onRowHeightsChange(l)}if(s.reorderedColumn){const e=s.state.columns,t=s.state.hoveredCell,o=ut(s.mousePosition,s.state.clientSize,s.state.scrollOffset,s.state.fixedSize,s.state.totalSize),n=function(e,t,o,n){if(!o)return null;const r=Pt(e,t,o.columnId);if(!r)return null;const[i,l]=r,s=l<=i?n.x<e[l].leftWithBorder+e[i].width?l:l+1:n.x>e[l].rightWithBorder-e[i].width?l:l-1;if(s===i)return null;const a=e.map((e=>e.id));return a.splice(i,1),a.splice(s,0,t),a}(e,s.reorderedColumn,t,o);n&&(s.didReorder=!0,s.isReordering=!0,s.state.options.onColumnsOrderChange(n))}if(s.reorderedRow){const e=s.state.rows,t=s.state.hoveredCell,o=ut(s.mousePosition,s.state.clientSize,s.state.scrollOffset,s.state.fixedSize,s.state.totalSize),n=function(e,t,o,n){if(!o)return null;const r=Pt(e,t,o.rowId);if(!r)return null;const[i,l]=r,s=l<=i?n.y<e[l].topWithBorder+e[i].height?l:l+1:n.y>e[l].bottomWithBorder-e[i].height?l:l-1;if(s===i)return null;const a=e.map((e=>e.id));return a.splice(i,1),a.splice(s,0,t),a}(e,s.reorderedRow,t,o);n&&(s.didReorder=!0,s.isReordering=!0,s.state.options.onRowsOrderChange(n))}s.requestNewRender()})),a(e,"touchmove",(e=>{(s.resizingColumn||s.resizingRow||s.reorderedColumn||s.reorderedRow)&&(e.preventDefault(),e.stopPropagation())})),a(e,"pointerleave",(()=>{s.mousePosition=null,s.requestNewRender()})),a(e,"pointerdown",(e=>{s.mousePosition=Lt(e),kt(s),c("");const t=s.state.hoveredCell;if(s.isMouseDown=!0,s.didReorder=!1,s.mouseDownPosition=s.mousePosition,s.mouseDownCell=t,s.state.cursorState.resizableColumn&&(s.resizingColumn=s.state.cursorState.resizableColumn),s.state.cursorState.resizableRow&&(s.resizingRow=s.state.cursorState.resizableRow),!s.resizingColumn&&t){const e=s.state.rowLookup.get(n(t.rowId));s.reorderedColumn="HEADER"===e.type?t.columnId:null}if(!s.resizingRow&&t){const e=s.state.columnLookup.get(n(t.columnId));s.reorderedRow="HEADER"===e.type?t.rowId:null}s.resizingColumn||s.resizingRow||s.state.options.onFocusedCellChange(t),e.ctrlKey||s.state.options.onSelectedCellsChange([]),s.requestNewRender()})),a(e,"pointerup",(e=>{s.mousePosition=Lt(e),kt(s),s.isMouseDown=!1,s.isReordering=!1,s.resizingColumn=null,s.resizingRow=null,s.reorderedColumn=null,s.reorderedRow=null,s.state.options.onSelectedCellsChange(St(s.state.options.selectedCells,s.state.highlightedCells)),s.requestNewRender()})),a(e,"pointerdown",(e=>{s.element.setPointerCapture(e.pointerId)})),a(e,"pointerup",(e=>{s.element.releasePointerCapture(e.pointerId)})),a(e,"click",(e=>{s.mousePosition=Lt(e),kt(s);const t=s.state.hoveredCell,o=s.mouseDownCell;if(s.state.cursorState.resizableColumn||s.state.cursorState.resizableRow)return;if(s.didReorder)return;if(null===t)return;if(null===o)return;if(n(t.columnId)!==n(o.columnId))return;if(n(t.rowId)!==n(o.rowId))return;const i=s.state.columnLookup.get(n(t.columnId)),l=s.state.rowLookup.get(n(t.rowId)),a=s.state.options.sortBy,c=s.state.inputFormatResolver.resolve(l,i),u={ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,button:e.button,buttons:e.buttons,detail:e.detail};if(c.edit?.toggle){const e=function(e,t,o,n){const r=n.hasValueByKey(o.key,t.key)?n.getValueByKey(o.key,t.key):e.value,i=e.edit.toggle;return"function"==typeof i?i({value:r}):i[(i.indexOf(r)+1)%i.length]}(c,i,l,s.state.edition),o=r(i,l);"DATA"===o&&s.state.options.onEditedCellsChange(St(s.state.options.editedCells,[{...t,value:e}])),"FILTER"===o&&s.state.options.onFiltersChange(St(Bt(s.state.options.filters,"FILTER"),[{...t,expression:e}]))}else if("DATA"===i.type&&"DATA"===l.type)s.state.options.onCellClick({...s.state.hoveredCell,...u});else if("CUSTOM"===i.type||"CUSTOM"===l.type)s.state.options.onCustomCellClick({...s.state.hoveredCell,...u});else if("HEADER"===i.type||"HEADER"===l.type){const t=s.state.sortOrderFormatResolver.resolve(l,i),o=function(e,t,o,r,i){function l(e){const r="columnId"in e?e.columnId:"HEADER",i="rowId"in e?e.rowId:"HEADER";return t.key===n(r)&&o.key===n(i)}const s=i?i.map((e=>null===e?void 0:e)):["ASC","DESC",void 0],a=e.find(l),c=s.indexOf(a?.direction),u=s[(c+1)%s.length],d=e.indexOf(a)===e.length-1;return[...!r||!d&&a?e.filter((e=>!function(e){const r="columnId"in e?e.columnId:"HEADER",i="rowId"in e?e.rowId:"HEADER";return"HEADER"===t.type&&t.key===n(r)||"HEADER"===o.type&&o.key===n(i)}(e))):e.filter((e=>!l(e))),...u?[{columnId:t.id,rowId:o.id,direction:u}]:[]]}(a,i,l,e.ctrlKey,t.sortOrder);s.state.options.onSortByChange(o),s.state.options.onSelectedCellsChange([])}})),a(e,"dblclick",(e=>{if(s.mousePosition=Lt(e),kt(s),s.state.cursorState.resizableColumn){const e=n(s.state.cursorState.resizableColumn),t=s.state.options.columnWidths.filter((t=>n(t.columnId)!==e));s.state.options.onColumnWidthsChange(t),s.columnWidthCache.delete(e)}if(s.state.cursorState.resizableRow){const e=n(s.state.cursorState.resizableRow),t=s.state.options.rowHeights.filter((t=>n(t.rowId)!==e));s.state.options.onRowHeightsChange(t),s.rowHeightCache.delete(e)}const t=s.state.focusedCell;if(null===t)return;const r=n(t.columnId),i=n(t.rowId),l=s.state.columnLookup,a=s.state.rowLookup,u=s.state.inputFormatResolver;if(!l.has(r))return;if(!a.has(i))return;const d=l.get(r),p=a.get(i),f=u.resolve(p,d),h=f.text;f.edit&&(f.edit.toggle||(c(h),o?.select()))})),a(e,"focus",(()=>{o.parentElement&&o.focus({preventScroll:!0})})),a(e,"keydown",(e=>{kt(s);const t=s.state.focusedCell,o=s.state.columnLookup,r=s.state.rowLookup,i=s.state.options.selectedCells,l=s.state.options.onSelectedCellsChange,a=s.state.options.onFocusedCellChange,p=s.state.options.editedCells,f=s.state.options.onEditedCellsChange,h=s.state.columns,_=s.state.rows,m=s.state.text,g=s.state.inputFormatResolver,y=(e,t)=>{a(e),t.shiftKey?l(St(i,[e])):l([e])},w=(e,r)=>{if(!t)return;const i=n(t.columnId);if(!o.has(i))return;const l=o.get(i).index,s=Math.max(0,Math.min(h.length-1,l+e));if(s===l)return;const a={rowId:t.rowId,columnId:h[s].id};y(a,r)},C=(e,o)=>{if(!t)return;const i=n(t.rowId);if(!r.has(i))return;const l=r.get(i).index,s=Math.max(0,Math.min(_.length-1,l+e));if(s===l)return;const a={rowId:_[s].id,columnId:t.columnId};y(a,o)},E=()=>{e.preventDefault(),e.stopPropagation()};switch(e.key){case"Escape":""!==m?c(""):i.length>1?l([t]):p.length>0?f([]):(a(null),l([]));break;case"Enter":u(!1);break;case"ArrowUp":E(),C(e.ctrlKey?-_.length:-1,e);break;case"ArrowDown":E(),C(e.ctrlKey?_.length:1,e);break;case"ArrowLeft":E(),w(e.ctrlKey?-h.length:-1,e);break;case"ArrowRight":E(),w(e.ctrlKey?h.length:1,e);break;case"Delete":case"Backspace":d(!1);break;case"c":(e=>{if(!e.ctrlKey)return;const t=function(e,t,o,r){const i=new Map(t.map((e=>[e.key,e]))),l=new Map(o.map((e=>[e.key,e]))),s=e.map((e=>({columnKey:n(e.columnId),rowKey:n(e.rowId)}))).filter((e=>i.has(e.columnKey)&&l.has(e.rowKey))),a=new Set(s.map((e=>e.columnKey))),c=new Set(s.map((e=>e.rowKey)));if(0===s.length)return"";const u=new b(e),d=Math.min(...s.map((e=>i.get(e.columnKey).index))),p=Math.max(...s.map((e=>i.get(e.columnKey).index))),f=Math.min(...s.map((e=>l.get(e.rowKey).index))),h=Math.max(...s.map((e=>l.get(e.rowKey).index))),_=[];for(let e=f;e<=h;e++){const n=o[e],i=n.key;if(c.has(i)){for(let e=d;e<=p;e++){const o=t[e],l=o.key;if(a.has(l)){if(u.isKeySelected(i,l)){const e=r.resolve(n,o).text;_.push(e)}e<p&&_.push("\t")}}e<h&&_.push("\n")}}return _.join("")}(i,h,_,g);if(navigator.clipboard)navigator.clipboard.writeText(t);else{const e=document.createElement("textarea");e.value=t,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}})(e)}})),new ResizeObserver((()=>{s.requestNewRender()})).observe(e),a(o,"input",(e=>{kt(s),o.value?(u(!0),o.style.opacity="1",o.style.pointerEvents="auto"):(e.isTrusted&&d(!0),o.style.opacity="0",o.style.pointerEvents="none")})),a(o,"click",(e=>{e.stopPropagation()})),a(o,"dblclick",(e=>{e.stopPropagation()})),a(o,"pointerdown",(e=>{e.stopPropagation()})),a(o,"keydown",(e=>{switch(e.key){case"Enter":case"Escape":break;case"Delete":case"Backspace":case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":""!==o.value&&(e.stopPropagation(),s.requestNewRender());break;default:e.stopPropagation(),s.requestNewRender()}})),a(e,"wheel",(t=>{null===s.state.scrollState.verticalTarget&&null===s.state.scrollState.horizontalTarget||(e.scrollBy({top:t.deltaY,left:t.deltaX,behavior:"auto"}),t.preventDefault(),t.stopPropagation())}))}function Ut(e,t){Ht(e);const o=e["spread-grid-context"];o.externalOptions=t,null===o.state?Ft(o):o.requestNewRender()}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var o=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](o,o.exports,__webpack_require__),o.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var o in t)__webpack_require__.o(t,o)&&!__webpack_require__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var getCurrentScript=function(){var e=document.currentScript;if(!e){for(var t=document.getElementsByTagName("script"),o=[],n=0;n<t.length;n++)o.push(t[n]);e=(o=o.filter((function(e){return!e.async&&!e.text&&!e.textContent}))).slice(-1)[0]}return e},isLocalScript=function(e){return/\/_dash-component-suites\//.test(e.src)},url;if(Object.defineProperty(__webpack_require__,"p",{get:(url=getCurrentScript().src.split("/").slice(0,-1).join("/")+"/",function(){return url})}),"undefined"!=typeof jsonpScriptSrc){var __jsonpScriptSrc__=jsonpScriptSrc;jsonpScriptSrc=function(e){var t=getCurrentScript(),o=isLocalScript(t),n=__jsonpScriptSrc__(e);if(!o)return n;var r=n.split("/"),i=r.slice(-1)[0].split(".");return i.splice(1,0,"v1_2_2m1772169272"),r.splice(-1,1,i.join(".")),r.join("/")}}var __webpack_exports__={};(()=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{DashSpreadGrid:()=>e.Z});var e=__webpack_require__(353)})(),window.dash_spread_grid=__webpack_exports__})();
1
+ (()=>{"use strict";var __webpack_modules__={353:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(196),react__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__),prop_types__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(64),prop_types__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__),js_spread_grid__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(826);function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o<t;o++)n[o]=e[o];return n}function _iterableToArrayLimit(e,t){var o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var n,r,i,l,s=[],a=!0,c=!1;try{if(i=(o=o.call(e)).next,0===t){if(Object(o)!==o)return;a=!1}else for(;!(a=(n=i.call(o)).done)&&(s.push(n.value),s.length!==t);a=!0);}catch(e){c=!0,r=e}finally{try{if(!a&&null!=o.return&&(l=o.return(),Object(l)!==l))return}finally{if(c)throw r}}return s}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function ownKeys(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(o),!0).forEach((function(t){_defineProperty(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):ownKeys(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function _defineProperty(e,t,o){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==_typeof(t)?t:String(t)}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,t||"default");if("object"!=_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function isString(e){return"string"==typeof e||e instanceof String}function useResolvedFormatting(formatting){return(0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)((function(){var context="{data, rows, columns, row, column, value, newValue, text, string, ctx}";return formatting.map((function(rule){var mappedRule={};if("column"in rule&&(mappedRule.column=rule.column),"row"in rule&&(mappedRule.row=rule.row),"condition"in rule&&(mappedRule.condition=eval("(".concat(context,") => (").concat(rule.condition,")"))),"value"in rule&&(mappedRule.value=eval("(".concat(context,")=> (").concat(rule.value,")"))),"text"in rule&&(mappedRule.text=eval("(".concat(context,") => (").concat(rule.text,")"))),"font"in rule&&(mappedRule.font=eval("(".concat(context,") => (").concat(rule.font,")"))),"style"in rule&&(mappedRule.style=isString(rule.style)?eval("(".concat(context,") => (").concat(rule.style,")")):rule.style),"padding"in rule&&(mappedRule.padding=isString(rule.padding)?eval("(".concat(context,") => (").concat(rule.padding,")")):rule.padding),"draw"in rule&&(mappedRule.draw=eval("(".concat(context,") => {").concat(rule.draw,"}"))),"tooltip"in rule&&(mappedRule.tooltip=eval("(".concat(context,") => (").concat(rule.tooltip,")"))),"edit"in rule)if(rule.edit){var mappedEdit={};"validate"in rule.edit&&(mappedEdit.validate=eval("({string}) => (".concat(rule.edit.validate,")"))),"parse"in rule.edit&&(mappedEdit.parse=eval("(".concat(context,") => (").concat(rule.edit.parse,")"))),"auto_commit"in rule.edit&&(mappedEdit.autoCommit=rule.edit.auto_commit),"toggle"in rule.edit&&(mappedEdit.toggle=rule.edit.toggle),mappedRule.edit=mappedEdit}else mappedRule.edit=rule.edit;return"sort_order"in rule&&(mappedRule.sortOrder=isString(rule.sort_order)?eval("(".concat(context,") => (").concat(rule.sort_order,")")):rule.sort_order),mappedRule}))}),[formatting])}function useResolvedFiltering(filtering){return(0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)((function(){var context="{data, rows, columns, row, column, value, text, expression}";return filtering.map((function(rule){var mappedRule={};return"column"in rule&&(mappedRule.column=rule.column),"row"in rule&&(mappedRule.row=rule.row),"condition"in rule&&(mappedRule.condition=eval("(".concat(context,") => (").concat(rule.condition,")"))),mappedRule}))}),[filtering])}function useResolvedSorting(sorting){return(0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)((function(){return isString(sorting)?sorting:sorting.map((function(rule){var mappedRule={};return"column"in rule&&(mappedRule.column=rule.column),"row"in rule&&(mappedRule.row=rule.row),"comparator"in rule&&(mappedRule.comparator=eval("(lhs, rhs) => (".concat(rule.comparator,")"))),"comparatorAsc"in rule&&(mappedRule.comparatorAsc=eval("(lhs, rhs) => (".concat(rule.comparatorAsc,")"))),"comparatorDesc"in rule&&(mappedRule.comparatorDesc=eval("(lhs, rhs) => (".concat(rule.comparatorDesc,")"))),"by"in rule&&(mappedRule.by=rule.by),mappedRule}))}),[sorting])}function useResolvedDataSelector(dataSelector){return(0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)((function(){return eval("({data, row, column}) => (".concat(dataSelector,")"))}),[dataSelector])}function useResolvedDimension(entries){return(0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)((function(){return entries.map((function(entry){var mappedEntry=_objectSpread({},entry);return"DATA-BLOCK"==entry.type&&("selector"in entry&&(mappedEntry.selector=eval("({data}) => (".concat(entry.selector,")"))),"id"in entry&&(mappedEntry.id=eval("({data, selector}) => (".concat(entry.id,")")))),mappedEntry}))}),[entries])}function DashSpreadGrid(e){var t=e.setProps,o=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0),n=e.data,r=useResolvedDimension(e.columns),i=useResolvedDimension(e.rows),l=useResolvedFormatting(e.formatting),s=useResolvedFiltering(e.filtering),a=useResolvedDataSelector(e.data_selector),c=useResolvedSorting(e.sorting),u=e.pinned_top,d=e.pinned_bottom,p=e.pinned_left,f=e.pinned_right,h=e.selected_cells,_=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({selected_cells:e})}),[t]),m=e.filters,g=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({filters:e})}),[t]),y=e.sort_by,w=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({sort_by:e})}),[t]),b=e.edited_cells,C=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({edited_cells:e})}),[t]),E=e.clicked_cell,v=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({clicked_cell:_objectSpread(_objectSpread({},e),{},{n:o.current++})})}),[t]),R=e.clicked_custom_cell,A=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({clicked_custom_cell:_objectSpread(_objectSpread({},e),{},{n:o.current++})})}),[t]),D=e.column_widths,x=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({column_widths:e})}),[t]),I=e.row_heights,O=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({row_heights:e})}),[t]),M=e.columns_order,k=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({columns_order:e})}),[t]),S=e.rows_order,T=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({rows_order:e})}),[t]),L=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({active_columns:e})}),[t]),B=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({active_rows:e})}),[t]),P=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function(e){t({hovered_cell:e})}),[t]),K=e.freeze_on_hover,W=_slicedToArray((0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),2),z=W[0],N=W[1];return z&&(0,js_spread_grid__WEBPACK_IMPORTED_MODULE_2__.Z)(z,{data:n,columns:r,rows:i,formatting:l,sorting:c,filtering:s,pinnedTop:u,pinnedBottom:d,pinnedLeft:p,pinnedRight:f,dataSelector:a,selectedCells:h,onSelectedCellsChange:_,editedCells:b,onEditedCellsChange:C,filters:m,onFiltersChange:g,sortBy:y,onSortByChange:w,columnWidths:D,onColumnWidthsChange:x,rowHeights:I,onRowHeightsChange:O,columnsOrder:M,onColumnsOrderChange:k,rowsOrder:S,onRowsOrderChange:T,clickedCell:E,onCellClick:v,clickedCustomCell:R,onCustomCellClick:A,onActiveColumnsChange:L,onActiveRowsChange:B,onHoveredCellChange:P,freezeOnHover:K}),react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div",{ref:N})}DashSpreadGrid.propTypes={setProps:prop_types__WEBPACK_IMPORTED_MODULE_1___default().func,id:prop_types__WEBPACK_IMPORTED_MODULE_1___default().string,data:prop_types__WEBPACK_IMPORTED_MODULE_1___default().any,columns:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,rows:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,formatting:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,filtering:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,sorting:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,data_selector:prop_types__WEBPACK_IMPORTED_MODULE_1___default().string,pinned_top:prop_types__WEBPACK_IMPORTED_MODULE_1___default().number,pinned_bottom:prop_types__WEBPACK_IMPORTED_MODULE_1___default().number,pinned_left:prop_types__WEBPACK_IMPORTED_MODULE_1___default().number,pinned_right:prop_types__WEBPACK_IMPORTED_MODULE_1___default().number,borderWidth:prop_types__WEBPACK_IMPORTED_MODULE_1___default().number,freeze_on_hover:prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool,focusedCell:prop_types__WEBPACK_IMPORTED_MODULE_1___default().object,selected_cells:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,highlightedCells:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,edited_cells:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,filters:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,sort_by:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,column_widths:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,row_heights:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,columns_order:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,rows_order:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,clicked_cell:prop_types__WEBPACK_IMPORTED_MODULE_1___default().object,clicked_custom_cell:prop_types__WEBPACK_IMPORTED_MODULE_1___default().object,active_columns:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,active_rows:prop_types__WEBPACK_IMPORTED_MODULE_1___default().array,hovered_cell:prop_types__WEBPACK_IMPORTED_MODULE_1___default().object},DashSpreadGrid.defaultProps={data:[],columns:[{type:"DATA-BLOCK"}],rows:[{type:"HEADER"},{type:"DATA-BLOCK"}],formatting:[],filtering:[],sorting:[],data_selector:"data?.[row.selector]?.[column.selector]",pinned_top:0,pinned_bottom:0,pinned_left:0,pinned_right:0,borderWidth:1,freeze_on_hover:!1,focusedCell:null,selected_cells:[],highlightedCells:[],edited_cells:[],filters:[],sort_by:[],column_widths:[],row_heights:[],columns_order:[],rows_order:[],clicked_cell:null,clicked_custom_cell:null,active_columns:[],active_rows:[],hovered_cell:null};const __WEBPACK_DEFAULT_EXPORT__=DashSpreadGrid},64:e=>{e.exports=window.PropTypes},196:e=>{e.exports=window.React},826:(e,t,o)=>{function n(e){return null===e?"null":Array.isArray(e)?`[${e.map(n).join(",")}]`:"object"==typeof e?(t=e,`{${Object.keys(t).sort().map((e=>`${e}:${n(t[e])}`)).join(",")}}`):JSON.stringify(e);var t}function r(e,t){const o="FILTER"===e.type,n="FILTER"===t.type;return o&&!n||!o&&n?"FILTER":"DATA"}function i(e,t,o,i){return e.map((e=>{const l=n(e.columnId),s=n(e.rowId);if(!o.has(l))return null;if(!i.has(s))return null;const a=o.get(l),c=i.get(s);return{edit:t.resolve(c,a).edit,cell:e,type:r(a,c)}})).filter((e=>e?.edit))}function l(e,t){return Math.round(e*t)/t}function s(e,t,o){const n=e.state.renderState,r=e.canvases[`${t}-${o}`],i=n.sections[t],s=n.sections[o],a=s.columns,c=i.rows,u=n.devicePixelRatio;if(0===c.length||0===a.length)return void(r.parentElement&&r.parentElement.removeChild(r));r.parentElement||e.element.appendChild(r);const d=r.getContext("2d",{alpha:!1}),p=n.scrollRect,f=n.textResolver,h=n.renderFormatResolver,_=n.borderWidth,m=i.showTopBorder,g=i.showBottomBorder,y=s.showLeftBorder,w=s.showRightBorder,b=_/2,C=c.length-1+(m?1:0)+(g?1:0),E=a.length-1+(y?1:0)+(w?1:0),v=c.map((e=>e.height)),R=a.map((e=>e.width)),A=R.reduce(((e,t)=>e+t),0)+E*_,D=v.reduce(((e,t)=>e+t),0)+C*_,x="center"===o?p.left:0,I="middle"===t?p.top:0,O="center"===o?p.width:s.width,M="middle"===t?p.height:i.height,k=R.reduce(((e,t,o)=>{const n=e[o]+t+_;return e.push(n),e}),[y?_:0]),S=v.reduce(((e,t,o)=>{const n=e[o]+t+_;return e.push(n),e}),[m?_:0]),T=k.slice(0,-1),L=S.slice(0,-1),B=Math.max(T.findLastIndex((e=>e<=x)),0),P=T.findLastIndex((e=>e<=x+O)),K=Math.max(L.findLastIndex((e=>e<=I)),0),W=L.findLastIndex((e=>e<=I+M)),z=Math.max(B,y?0:1),N=P+(w?1:0),F=Math.max(K,m?0:1),H=W+(g?1:0),U=Array.from({length:W-K+1},((e,t)=>{const o=c[t+K];return Array.from({length:P-B+1},((e,t)=>{const n=a[t+B];return h.resolve(o,n)}))})),j=(e,t)=>U[e-K][t-B];r.width=Math.round(O*u),r.height=Math.round(M*u),r.style.width=`${O}px`,r.style.height=`${M}px`,r.style.marginLeft=`${x}px`,r.style.marginTop=`${I}px`,r.style.marginRight=A-O-x+"px",r.style.marginBottom=D-M-I+"px",d.fillStyle="#E9E9E9",d.fillRect(0,0,r.width,r.height);const Y=(e,t)=>{d.setTransform(u,0,0,u,(e-x)*u,(t-I)*u)},q=(e,t,o,n)=>{d.beginPath(),d.rect(e,t,o,n),d.clip()};for(let e=B;e<=P;e++)for(let t=K;t<=W;t++){const o=j(t,e);if(!o.render)continue;const n=o.style,r=S[t],i=k[e],s=R[e],a=v[t],c=o.text,p=n.textBaseline||"middle",h=o.padding,m=n.foreground||"black";if(Y(i,r),d.fillStyle=n.background||"white",d.fillRect(0,0,s,a),"draw"in o&&o.draw(d),n.highlight&&(d.fillStyle=n.highlight,d.fillRect(0,0,s,a)),n.corner&&(d.fillStyle=n.corner,d.beginPath(),d.moveTo(s-7,a),d.lineTo(s,a),d.lineTo(s,a-7),d.fill()),c&&"transparent"!==m){d.fillStyle=m,d.font=o.font;const e=f.getFontMetrics(o.font),t="center"==n.textAlign&&f.measureWidth(c,o.font)>s-h.left-h.right?"left":n.textAlign||"left";d.textAlign=t;const r=l("left"===t?h.left:"center"===t?s/2:"right"===t?s-h.right:0,u),i=l("top"===p?e.middle+e.topOffset+h.top:"middle"===p?a/2+e.middle:"bottom"===p?a+e.middle-e.bottomOffset-h.bottom:0,u);d.save(),q(0,2*_,s,a-4*_),d.fillText(c,r,i),d.restore()}}Y(0,0);const $=(e,t,o,n,r)=>{if(!r)return;if(0===r.width)return;const i=r.width/u,l=t===n,s=e-(l?i/2:0),a=t-(l?0:i/2),c=o+(l?i/2:0),p=n+(l?0:i/2);d.strokeStyle=r.color||"black",d.lineWidth=i,r.dash?(d.setLineDash(r.dash.map((e=>e/u))),d.lineDashOffset=l?s:a):d.setLineDash([]),d.beginPath(),d.moveTo(s,a),d.lineTo(c,p),d.stroke()},V=(e,t)=>e?t?e.index>t.index?e:t:e:t;for(let e=F;e<=H;e++){const t=e-1,o=e;for(let e=B;e<=P;e++){const n=V(t>=K?j(t,e).style.borderBottom:null,o<=W?j(o,e).style.borderTop:null);$(k[e]-b,S[o]-b,k[e+1]-b,S[o]-b,n)}}for(let e=z;e<=N;e++){const t=e-1,o=e;for(let e=K;e<=W;e++){const n=V(t>=B?j(e,t).style.borderRight:null,o<=P?j(e,o).style.borderLeft:null);$(k[o]-b,S[e]-b,k[o]-b,S[e+1]-b,n)}}}o.d(t,{Z:()=>Ut});const a={value:({newValue:e})=>e||"",text:({newValue:e})=>e||"Search...",edit:{validate:()=>!0,parse:({string:e})=>e,autoCommit:!0}};function c(e,t,o){return[{column:{type:"DATA"},row:{type:"HEADER"},value:({column:e})=>void 0===e.header?e.id:e.header},{column:{type:"HEADER"},row:{type:"DATA"},value:({row:e})=>void 0===e.header?e.id:e.header},{column:{type:"HEADER"},row:{type:"SPECIAL"},value:""},{column:{type:"SPECIAL"},row:{type:"HEADER"},value:""},{column:{type:"DATA"},row:{type:"FILTER"},...a},{column:{type:"FILTER"},row:{type:"DATA"},...a},{column:{type:"DATA"},row:{type:"DATA"},value:t},...e,...o.map((({columnId:e,rowId:t,direction:n},r)=>({column:{id:e},row:{id:t},text:({value:e,text:t})=>`${o.length>1?r+1:""}${"ASC"===n?"⇣":"⇡"} ${t||e}`})))]}const u=["column","row","condition"];function d(e){return Object.keys(e).length>Object.keys(e).filter((e=>u.includes(e))).length}function p(e,t){const o=[...u,...t];return e.map((e=>function(e,t){const o={};for(const n of t)n in e&&(o[n]=e[n]);return o}(e,o))).filter(d)}function f(e){return p(e,["value","text","edit"])}function h(e,t){return t?e+"99":e+"33"}function _(e,t,o,r,i,l,s,a,c,u,d,f,_){e=p(e,["value","style","text","font","padding","edit","draw"]);const m=o?n(o.columnId):null,g=o?n(o.rowId):null,y=null!==c,w=null!==a||y,b=u+2,C=u+4,E=(e,t,o,n)=>{if(o<0||o>=e.length)return!1;if(n<0||n>=t.length)return!1;const i=e[o],l=t[n];if("DYNAMIC-BLOCK"===i.type)return!1;if("DYNAMIC-BLOCK"===l.type)return!1;const s=i.key,a=l.key;return r.isKeySelected(s,a)},v=(e,t)=>e?[t]:[];return[{column:{type:"DATA"},row:{type:"FILTER"},style:({newValue:e})=>({background:"#FBFBFB",foreground:e?"black":"#cccccc",border:{width:1,color:"gray"}})},{column:{type:"FILTER"},row:{type:"DATA"},style:({newValue:e})=>({background:"#FBFBFB",foreground:e?"black":"#cccccc",border:{width:1,color:"gray"}})},{column:{type:"ANY"},row:{type:"HEADER"},style:{background:"#F5F5F5",border:{width:u,color:"gray"}}},{column:{type:"HEADER"},row:{type:"ANY"},style:{background:"#F5F5F5",border:{width:u,color:"gray"}}},{column:{type:"HEADER"},row:{type:"HEADER"},style:{background:"#E0E0E0"}},...e,...v(t&&!y,{column:{type:"ANY"},row:{id:t?.rowId},style:{highlight:"#81948133"}}),...v(t&&!w,{column:{id:t?.columnId},row:{id:t?.rowId},style:{highlight:"#81948188"}}),{column:{type:"ANY"},row:{type:"ANY"},condition:({rows:e,columns:t,row:o,column:n})=>E(e,t,o.index,n.index),style:({rows:e,columns:t,row:o,column:n,edit:r})=>({...E(e,t,o.index-1,n.index)?{}:{borderTop:{width:b,color:"#596959",index:Number.MAX_SAFE_INTEGER}},...E(e,t,o.index+1,n.index)?{}:{borderBottom:{width:b,color:"#596959",index:Number.MAX_SAFE_INTEGER}},...E(e,t,o.index,n.index-1)?{}:{borderLeft:{width:b,color:"#596959",index:Number.MAX_SAFE_INTEGER}},...E(e,t,o.index,n.index+1)?{}:{borderRight:{width:b,color:"#596959",index:Number.MAX_SAFE_INTEGER}},highlight:h(r?"#798d9c":"#819481",m!==n.key||g!==o.key)})},{column:{type:"ANY"},row:{type:"ANY"},condition:({row:e,column:t})=>i.isKeySelected(e.key,t.key),style:({row:e,column:t})=>({highlight:h("#93a8b8",m!==t.key||g!==e.key)})},...v(!!o,{column:{id:o?.columnId},row:{id:o?.rowId},style:{highlight:"#ffffffaa"}}),...s.map((({columnId:e,rowId:t,direction:o},n)=>({column:{id:e},row:{id:t},style:{highlight:"#0377fc44"}}))),{column:{type:"ANY"},row:{type:"ANY"},condition:({edit:e})=>!!e,style:{corner:"#77777720"}},{column:{type:"ANY"},row:{type:"ANY"},condition:({row:e,column:t})=>l.hasValueByKey(e.key,t.key),style:{corner:"darkgreen"}},...v(a,{column:{id:a},row:{type:"HEADER"},style:{borderRight:{width:C,color:"cornflowerblue"}}}),...v(c,{column:{type:"HEADER"},row:{id:c},style:{borderBottom:{width:C,color:"cornflowerblue"}}}),...v(d&&f,{column:{id:f},row:{type:"ANY"},style:{highlight:"#3a74e055"}}),...v(d&&_,{column:{type:"ANY"},row:{id:_},style:{highlight:"#3a74e055"}})]}function m(e,t){const o=t.filter((e=>"BEGIN"===e.pinned)).length,n=t.filter((e=>"END"===e.pinned)).length,r=t.length-o-n,i=e.filter((e=>"BEGIN"===e.pinned)).length,l=e.filter((e=>"END"===e.pinned)).length,s=e.length-i-l,a=t.slice(0,o),c=t.slice(t.length-n,t.length),u=t.slice(o,t.length-n),d=e.slice(0,i),p=e.slice(e.length-l,e.length),f=e.slice(i,e.length-l),h=o>0,_=i>0,m=r>0||!h,g=!h,y=!(n>0),w=s>0||!_,b=!_,C=!(l>0),E=(e,t,o)=>{if(0===e.length)return 0;const n=t?e.at(0).topWithBorder:e.at(0).top;return(o?e.at(-1).bottomWithBorder:e.at(-1).bottom)-n},v=(e,t,o)=>{if(0===e.length)return 0;const n=t?e.at(0).leftWithBorder:e.at(0).left;return(o?e.at(-1).rightWithBorder:e.at(-1).right)-n};return{top:{rows:a,showTopBorder:!0,showBottomBorder:!0,height:E(a,!0,!0)},bottom:{rows:c,showTopBorder:m,showBottomBorder:!0,height:E(c,m,!0)},middle:{rows:u,showTopBorder:g,showBottomBorder:y,height:E(u,g,y)},left:{columns:d,showLeftBorder:!0,showRightBorder:!0,width:v(d,!0,!0)},right:{columns:p,showLeftBorder:w,showRightBorder:!0,width:v(p,w,!0)},center:{columns:f,showLeftBorder:b,showRightBorder:C,width:v(f,b,C)}}}function g(e,t){return[...e,...t.map((e=>({columnId:e.columnId,rowId:e.rowId,value:e.expression})))]}class y{constructor(e){this.lookup=new Map,e.forEach((e=>{const t=n(e.rowId),o=n(e.columnId);this.lookup.has(t)||this.lookup.set(t,new Map),this.lookup.get(t).set(o,e.value)}))}hasValueByKey(e,t){return this.lookup.has(e)&&this.lookup.get(e).has(t)}getValueByKey(e,t){if(this.hasValueByKey(e,t))return this.lookup.get(e).get(t)}hasValueById(e,t){return this.hasValueByKey(n(e),n(t))}getValueById(e,t){return this.getValueByKey(n(e),n(t))}}function w(e){return new y(e)}class b{constructor(e){this.lookup=new Map,e.forEach((e=>{const t=n(e.rowId),o=n(e.columnId);this.lookup.has(t)||this.lookup.set(t,new Set),this.lookup.get(t).add(o)}))}isKeySelected(e,t){return this.lookup.has(e)&&this.lookup.get(e).has(t)}isIdSelected(e,t){return this.isKeySelected(n(e),n(t))}}function C(e){return new b(e)}function E(e,t){return"function"==typeof e?e(t):e}function v(e,t){return"function"==typeof e?e(t):e}function R(e,t){const o=e.type||"DATA",r="selector"in e?e.selector:"id"in e?e.id:void 0,i="id"in e?e.id:"selector"in e?e.selector:o;return{...e,id:i,selector:r,type:o,key:n(i),header:"header"in e?e.header:i,resizable:!("resizable"in e)||e.resizable,labels:e.labels||[],index:t}}function A(e,t){const o="selector"in e?e.selector:({index:e})=>e,n="id"in e?e.id:({selector:e})=>e,r="header"in e?e.header:()=>`#${t}`;return{...e,id:n,selector:o,type:"DYNAMIC-BLOCK",header:r,labels:e.labels||[],index:t,resizable:!1}}function D(e,t){return"number"==typeof e?l(e,t):e}function x(e,t,o,r,i){const s=new Map(t.map((({columnId:e,width:t})=>[n(e),t])));return e.map(((e,t)=>{if("DYNAMIC-BLOCK"===e.type){const n=A(e,t),i=e.width*e.count+o*(e.count-1);return{...n,count:e.count,width:l(i,r),columnWidth:l(e.width,r)}}{const o=R(e,t),n=s.has(o.key)?s.get(o.key):"width"in e?e.width:"fit";return{...o,width:D(n,r)}}}))}function I(e,t,o,r,i){const s=new Map(t.map((({rowId:e,height:t})=>[n(e),t])));return e.map(((e,t)=>{if("DYNAMIC-BLOCK"===e.type){const n=A(e,t),s="height"in e?e.height:i,a=s*e.count+o*(e.count-1);return{...n,count:e.count,height:l(a,r),rowHeight:l(s,r)}}{const o=R(e,t),n=s.has(o.key)?s.get(o.key):"height"in e?e.height:"fit";return{...o,height:D(n,r)}}}))}function O(e,t,o,n,r){if(e<o){if("DYNAMIC-BLOCK"===r)throw new Error("DYNAMIC-BLOCK should have been unfolded before pinning");return"BEGIN"}if(e>=t-n){if("DYNAMIC-BLOCK"===r)throw new Error("DYNAMIC-BLOCK should have been unfolded before pinning");return"END"}}function M(e,t,o){let n=o;return e.map(((r,i)=>{const l=r.width,s={...r,index:i,width:l,leftWithBorder:n-o,left:n,right:n+l,rightWithBorder:n+l+o,pinned:O(i,e.length,t.left,t.right,r.type)};return n+=s.width+o,s}))}function k(e,t,o){let n=o;return e.map(((r,i)=>{const l=r.height,s={...r,index:i,height:l,topWithBorder:n-o,top:n,bottom:n+l,bottomWithBorder:n+l+o,pinned:O(i,e.length,t.top,t.bottom,r.type)};return n+=s.height+o,s}))}const S="12px Calibri",T={top:2,right:5,bottom:2,left:5};function L(e){return"function"==typeof e?e:()=>e}const B={HEADER:["HEADER"],FILTER:["FILTER"],DATA:["DATA"],CUSTOM:["CUSTOM"],ANY:["HEADER","DATA","FILTER","CUSTOM"],SPECIAL:["HEADER","FILTER","CUSTOM"],NONE:[]};class P{byKey=new Map;byIndex=new Map;byLabel=new Map;byType=new Map}class K{lookup=new P;hasRules=!1;addRule(e,t,o){if(this.hasRules=!0,Array.isArray(e)){for(const n of e)this.addRule(n,t,o);return}if(Array.isArray(t)){for(const n of t)this.addRule(e,n,o);return}const r=e?"id"in e?{key:n(e.id)}:e:{type:"DATA"},i=t?"id"in t?{key:n(t.id)}:t:{type:"DATA"};function l(e,t){e.has(t)||e.set(t,[]),e.get(t).push(o)}function s(e,t){if(e.has(t)||e.set(t,new P),"key"in i)l(e.get(t).byKey,i.key);else if("index"in i)l(e.get(t).byIndex,i.index);else if("label"in i)l(e.get(t).byLabel,i.label);else for(const o of B[i.type||"NONE"])l(e.get(t).byType,o)}if("key"in r)s(this.lookup.byKey,r.key);else if("index"in r)s(this.lookup.byIndex,r.index);else if("label"in r)s(this.lookup.byLabel,r.label);else for(const e of B[r.type||"NONE"])s(this.lookup.byType,e)}getRules(e,t){const o=[];if(!this.hasRules)return o;function n(e){for(const t of e)o.push(t)}function r(e){e.byKey.has(t.key)&&n(e.byKey.get(t.key)),e.byIndex.has(t.index)&&n(e.byIndex.get(t.index)),e.byType.has(t.type)&&n(e.byType.get(t.type));for(const o of t.labels)e.byLabel.has(o)&&n(e.byLabel.get(o))}this.lookup.byKey.has(e.key)&&r(this.lookup.byKey.get(e.key)),this.lookup.byIndex.has(e.index)&&r(this.lookup.byIndex.get(e.index)),this.lookup.byType.has(e.type)&&r(this.lookup.byType.get(e.type));for(const t of e.labels)this.lookup.byLabel.has(t)&&r(this.lookup.byLabel.get(t));return o}}const W=["borderTop","borderRight","borderBottom","borderLeft"],z={validate:()=>!0,parse:({string:e})=>e};function N(e,t){const o={...e};if("border"in o){for(const e of W)o[e]=o.border;delete o.border}for(const e of W)e in o&&(o[e]={...o[e],index:t});return o}function F(e,t){if(!1!==e.edit)return!0===e.edit?"edit"in t?t.edit:z:"edit"in t?{...t.edit,...e.edit}:{...z,...e.edit}}class H{constructor(e){this.rulesLookup=new K;for(const[t,o]of e.entries()){const e={index:t};"condition"in o&&(e.condition=o.condition),"style"in o&&(e.style=L(o.style)),"value"in o&&(e.value=L(o.value)),"text"in o&&(e.text=L(o.text)),"font"in o&&(e.font=L(o.font)),"padding"in o&&(e.padding=L(o.padding)),"edit"in o&&(e.edit=o.edit),"tooltip"in o&&(e.tooltip=L(o.tooltip)),"draw"in o&&(e.draw=o.draw),"sortOrder"in o&&(e.sortOrder=L(o.sortOrder)),this.rulesLookup.addRule(o.column,o.row,e)}}resolve(e,t,o,n,r,i){const l=this.rulesLookup.getRules(r,n).sort(((e,t)=>e.index-t.index)).filter(((e,t,o)=>e.index!==o[t-1]?.index));let s,a,c={data:e,rows:t,columns:o,row:n,column:r},u={},d=T,p=S;i.hasValueByKey(n.key,r.key)&&(c={...c,newValue:i.getValueByKey(n.key,r.key)});for(const e of l)if((!("condition"in e)||e.condition(c))&&("value"in e&&(c={...c,value:e.value(c)}),"style"in e&&(u={...u,...N(e.style(c),e.index)}),"text"in e&&(c={...c,text:e.text(c)}),"font"in e&&(p=e.font(c)),"padding"in e&&(d={...d,...e.padding(c)}),"edit"in e&&(c={...c,edit:F(e,c)}),"tooltip"in e&&(a=e.tooltip(c)),"sortOrder"in e&&(c={...c,sortOrder:e.sortOrder(c)}),"draw"in e)){const t=c;s=o=>e.draw({...t,ctx:o})}const f=function(e){return"text"in e?`${e.text}`:"newValue"in e?`${e.newValue}`:void 0!==e.value?`${e.value}`:""}(c),h={render:!0,style:u,text:f,padding:d,font:p};return"value"in c&&(h.value=c.value),"edit"in c&&void 0!==c.edit&&(h.edit=c.edit),void 0!==a&&(h.tooltip=a),"sortOrder"in c&&(h.sortOrder=c.sortOrder),void 0!==s&&(h.draw=s),h}}function U(e){return new H(e)}class j{constructor(e,t,o,n,r){this.formattingRules=e,this.data=t,this.rows=o,this.columns=n,this.edition=r}resolve(e,t){return this.formattingRules.resolve(this.data,this.rows,this.columns,e,t,this.edition)}}function Y(e,t,o,n,r){return new j(e,t,o,n,r)}function q(e,t,o){const r=new Map;for(const i of e){const e=n(i[t]),l=n(i[o]);r.has(e)||r.set(e,new Map),r.get(e).set(l,i.expression)}return r}function $(e,t,o,n,r,i,l){if(0===e.length)return r;const s=q(e,"columnId","rowId"),a=i.filter((e=>"FILTER"!==e.type&&"DYNAMIC-BLOCK"!==e.type&&s.has(e.key)));return 0===a.length?r:r.filter((e=>{if("DYNAMIC-BLOCK"===e.type)return!0;for(const c of a){if("DYNAMIC-BLOCK"===c.type)continue;const a=o.resolve(n,r,i,e,c,l),u=s.get(c.key);if(!t.resolve(n,r,i,e,c,a.value,a.text,u))return!1}return!0}))}function V(e,t,o,n,r,i,l){if(0===e.length)return i;const s=q(e,"rowId","columnId"),a=r.filter((e=>"FILTER"!==e.type&&"DYNAMIC-BLOCK"!==e.type&&s.has(e.key)));return 0===a.length?i:i.filter((e=>{if("DYNAMIC-BLOCK"===e.type)return!0;for(const c of a){if("DYNAMIC-BLOCK"===c.type)continue;const a=o.resolve(n,r,i,c,e,l),u=s.get(c.key);if(!t.resolve(n,r,i,c,e,a.value,a.text,u))return!1}return!0}))}function G(e,t,o){if("DYNAMIC-BLOCK"!==e.type)return[e.height+o,1];const n=Math.min(t,e.count);return[(e.rowHeight+o)*n,n]}function X(e,t,o){if("DYNAMIC-BLOCK"!==e.type)return[e.width+o,1];const n=Math.min(t,e.count);return[(e.columnWidth+o)*n,n]}function Z(e,t,o,n){let r=0,i=0,l=0,s=0;if(o.top>0){r=n;for(let e=0,i=0;i<o.top;e++){const l=t[e],[s,a]=G(l,o.top-i,n);r+=s,i+=a}}if(o.left>0){l=n;for(let t=0,r=0;r<o.left;t++){const i=e[t],[s,a]=X(i,o.left-r,n);l+=s,r+=a}}if(o.bottom>0){i=n;for(let e=t.length-1,r=0;r<o.bottom;e--){const l=t[e],[s,a]=G(l,o.bottom-r,n);i+=s,r+=a}}if(o.right>0){s=n;for(let t=e.length-1,r=0;r<o.right;t--){const i=e[t],[l,a]=X(i,o.right-r,n);s+=l,r+=a}}return{top:r,bottom:i,left:l,right:s}}function J(e,t){if(0===e.length)return 0;let o=t;for(const n of e)o+=n.height,o+=t;return o}function Q(e,t){if(0===e.length)return 0;let o=t;for(const n of e)o+=n.width,o+=t;return o}function ee(e,t,o){return{width:Q(e,o),height:J(t,o)}}class te{constructor(){this.fontMetrics=new Map,this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d")}measureWidth(e,t){if(!e)return 0;const o=this.context;return o.font=t||S,o.measureText(e).width}measureHeight(e,t){let o=1;for(const t of e)"\n"===t&&o++;return o*this.getFontMetrics(t).height}getFontMetrics(e){const t=e;if(this.fontMetrics.has(t))return this.fontMetrics.get(t);const o=this.context;o.font=e||S;const n=o.measureText("X"),r=(n.actualBoundingBoxDescent-n.actualBoundingBoxAscent)/2,i={topOffset:r+n.fontBoundingBoxAscent,middle:-r,bottomOffset:n.fontBoundingBoxDescent-r,height:n.fontBoundingBoxAscent+n.fontBoundingBoxDescent};return this.fontMetrics.set(t,i),i}}function oe(){return new te}function ne(e,t){return t.top>=e.top&&t.left>=e.left&&t.top+t.height<=e.top+e.height&&t.left+t.width<=e.left+e.width}function re(e,t){const o={top:Math.max(e.top,t.top),left:Math.max(e.left,t.left),width:Math.min(e.left+e.width,t.left+t.width)-Math.max(e.left,t.left),height:Math.min(e.top+e.height,t.top+t.height)-Math.max(e.top,t.top)};return o.width>=0&&o.height>=0?o:{top:e.top,left:e.left,width:0,height:0}}function ie(e,t){return{top:e.top-t,left:e.left-t,width:e.width+2*t,height:e.height+2*t}}function le(e){return e.width*e.height}function se(e,t){return{top:e.top,left:e.left,width:Math.max(0,e.width-t.left-t.right),height:Math.max(0,e.height-t.top-t.bottom)}}const ae=200,ce=400,ue={left:0,top:0,width:0,height:0};function de(e,t,o,n,r){const i=e||ue,l=se({left:0,top:0,...o},n),s=se({...t,...r},n),a=re(l,ie(s,ae)),c=re(l,ie(s,ce));return ne(l,i)&&ne(i,a)?le(i)>2*le(c)?c:i:c}function pe(e,t,o,n,r){if(!e)return null;if(e.x<0||e.y<0||e.x>r.width||e.y>r.height)return null;const i=function(e,t){if(0===e.length)return-1;if(t<e[0].topWithBorder)return-1;if(t>e[e.length-1].bottomWithBorder)return-1;let o=0,n=e.length-1;for(;o<=n;){const r=Math.floor((o+n)/2);if(t<e[r].topWithBorder)n=r-1;else{if(!(t>e[r].bottomWithBorder))return r;o=r+1}}return-1}(t,e.y),l=function(e,t){if(0===e.length)return-1;if(t<e[0].leftWithBorder)return-1;if(t>e[e.length-1].rightWithBorder)return-1;let o=0,n=e.length-1;for(;o<=n;){const r=Math.floor((o+n)/2);if(t<e[r].leftWithBorder)n=r-1;else{if(!(t>e[r].rightWithBorder))return r;o=r+1}}return-1}(o,e.x);return-1===i||-1===l?null:{rowId:t[i].id,columnId:o[l].id}}function fe(e){return e.reduce(((e,t)=>e.set(t.key,t)),new Map)}function he(e,t,o,r,i,l,s,a){if(!e)return[];if(!t)return[];if(!r)return[];if(!o)return[];const c=n(o.columnId),u=n(o.rowId),d=n(r.columnId),p=n(r.rowId);if(!s.has(c))return[];if(!a.has(u))return[];if(!s.has(d))return[];if(!a.has(p))return[];const f=Math.min(s.get(c).index,s.get(d).index),h=Math.max(s.get(c).index,s.get(d).index),_=Math.min(a.get(u).index,a.get(p).index),m=Math.max(a.get(u).index,a.get(p).index);return i.slice(f,h+1).flatMap((e=>l.slice(_,m+1).map((t=>({rowId:t.id,columnId:e.id})))))}function _e(e,t){const o=function(e){return"BEGIN"===e.pinned?"top":"END"===e.pinned?"bottom":"middle"}(t),n=function(e){return"BEGIN"===e.pinned?"left":"END"===e.pinned?"right":"center"}(e);return`${o}-${n}`}function me(e,t,o,r,i){return 0===e.length?null:function(e,t,o,r){if(!e)return null;const i=n(e.columnId),l=n(e.rowId);if(!t.has(i))return null;if(!o.has(l))return null;const s=t.get(i),a=o.get(l),c={width:s.width,height:a.height,section:_e(s,a)};switch(a.pinned){case"BEGIN":c.top=a.top;break;case"END":c.bottom=r.top.height+r.middle.height+r.bottom.height-a.top-a.height;break;default:c.marginTop=a.top-r.top.height}switch(s.pinned){case"BEGIN":c.left=s.left;break;case"END":c.right=r.left.width+r.center.width+r.right.width-s.left-s.width;break;default:c.marginLeft=s.left-r.left.width}return c}(t,o,r,i)}function ge(e,t){return t.every((t=>t.edit.validate({string:e})))}function ye(e){return Array.isArray(e)?e.map(((e,t)=>t)):Object.keys(e)}function we(e){return ye(e)}function be(e){const t=new Set;if(Array.isArray(e))for(const o of e)for(const e of ye(o))t.add(e);else for(const o in e)for(const n of ye(e[o]))t.add(n);return Array.from(t)}function Ce(e,t){if(!e.some((e=>"DATA-BLOCK"===e.type)))return e;const o=[];for(const n of e)if("DATA-BLOCK"===n.type){const e="selector"in n?n.selector({data:t}):be(t),r="id"in n?n.id:({selector:e})=>e;for(const i of e)o.push({...n,id:r({data:t,selector:i}),selector:i,type:"DATA"})}else o.push(n);return o}function Ee(e,t){if(!e.some((e=>"DATA-BLOCK"===e.type)))return e;const o=[];for(const n of e)if("DATA-BLOCK"===n.type){const e="selector"in n?n.selector({data:t}):we(t),r="id"in n?n.id:({selector:e})=>e;for(const i of e)o.push({...n,id:r({data:t,selector:i}),selector:i,type:"DATA"})}else o.push(n);return o}const ve=({text:e,expression:t})=>e.includes(t);class Re{constructor(e){this.rulesLookup=new K;for(const t of e){const e={by:n("by"in t?t.by:"FILTER"),condition:t.condition||ve};this.rulesLookup.addRule(t.column,t.row,e)}}resolve(e,t,o,n,r,i,l,s){const a=this.rulesLookup.getRules(r,n);if(0===a.length)return"DATA"!==n.type||"DATA"!==r.type||!s.has('"FILTER"')||ve({text:l,expression:s.get('"FILTER"')});let c={data:e,rows:t,columns:o,row:n,column:r,value:i,text:l};for(const e of a){if(!s.has(e.by))continue;const t={...c,expression:s.get(e.by)};if(!e.condition(t))return!1}return!0}}function Ae(e){return new Re(e)}function De(e){return p(e,["value","text"])}function xe(e){return p(e,["value","text","font","padding"])}function Ie(e,t,o,n,r,i,s){if(e.every((e=>"number"==typeof e.width)))return e;const a=e=>{if("DYNAMIC-BLOCK"===e.type)return e.width;const i=e.width;if("number"==typeof i)return i;if(r.has(e.key)){const t=r.get(e.key);if("fit-once"===i&&!t.dataOnly)return t.width;if("fit-data-once"===i&&t.dataOnly)return t.width}let l=0;for(const r of t){if("DYNAMIC-BLOCK"===r.type)continue;if("DATA"!==r.type&&"fit-data-once"===i)continue;if("DATA"!==r.type&&"fit-data"===i)continue;const t=n.resolve(r,e),s=t.text,a=t.font,c=t.padding.left+t.padding.right,u=o.measureWidth(s,a)+c;l=Math.max(l,u)}return r.set(e.key,{width:l,dataOnly:"fit-data-once"===i}),l};for(const e of r.keys())i.has(e)||r.delete(e);return e.map((e=>({...e,width:l(a(e),s)})))}function Oe(e,t,o,n,r,i,s){if(t.every((e=>"number"==typeof e.height)))return t;const a=t=>{if("DYNAMIC-BLOCK"===t.type)return t.height;const i=t.height;if("number"==typeof i)return i;if(r.has(t.key)){const e=r.get(t.key);if("fit-once"===i&&!e.dataOnly)return e.height;if("fit-data-once"===i&&e.dataOnly)return e.height}let l=0;for(const r of e){if("DYNAMIC-BLOCK"===r.type)continue;if("DATA"!==r.type&&"fit-data-once"===i)continue;if("DATA"!==r.type&&"fit-data"===i)continue;const e=n.resolve(t,r),s=e.text,a=e.font,c=e.padding.top+e.padding.bottom,u=o.measureHeight(s,a)+c;l=Math.max(l,u)}return r.set(t.key,{height:l,dataOnly:"fit-data-once"===i}),l};for(const e of r.keys())i.has(e)||r.delete(e);return t.map((e=>({...e,height:l(a(e),s)})))}function Me(e){const t=new Set;for(const o of e)"DYNAMIC-BLOCK"!=o.type&&t.add(o.key);return t}function ke(e){return p(e,["value","text"])}function Se(e){return p(e,["value","sortOrder"])}function Te(e,t){return e===t?0:void 0===e.value?1:void 0===t.value||e.value<t.value?-1:e.value>t.value?1:0}function Le(e,t){return e===t?0:void 0===e.value?1:void 0===t.value||e.value>t.value?-1:e.value<t.value?1:0}class Be{constructor(e){this.rulesLookup=new K;for(const t of e){const e=t.comparatorAsc||t.comparator,o=t.comparatorDesc||(t.comparator?(e,o)=>{return-("number"==typeof(n=t.comparator(e,o))?n:n?-1:1);var n}:null),r=e?(t,o)=>e(t,o):(e,t)=>Te(e,t),i=o?(e,t)=>o(e,t):(e,t)=>Le(e,t),l={by:n("by"in t?t.by:"HEADER"),comparatorAsc:r,comparatorDesc:i};this.rulesLookup.addRule(t.column,t.row,l)}}resolve(e,t,o){const n=this.rulesLookup.getRules(e,t);if(0===n.length)return"DATA"!==t.type||"DATA"!==e.type?null:o.has('"HEADER"')?"ASC"===o.get('"HEADER"')?Te:Le:null;if(n.length>1)throw new Error("Multiple sorting rules for the same cell");const r=n[0];return o.has(r.by)?"ASC"===o.get(r.by)?r.comparatorAsc:r.comparatorDesc:null}}function Pe(e){return"manual"===e?null:new Be(e)}function Ke(e,t,o){const r=new Map;for(const i of e){const e=n(i[t]),l=n(i[o]);r.has(e)||r.set(e,new Map),r.get(e).set(l,i.direction)}return r}function We(e,t){e.sort(((e,t)=>{const o=e.comparator(e.cell,t.cell);return"number"==typeof o?o:o?-1:1})),t.push(...e.map((e=>e.entity))),e.length=0}function ze(e,t,o,r,i,l,s){if(0===e.length)return i;if(null===t)return i;const a=Ke(e,"columnId","rowId"),c=new Map(l.filter((e=>"DYNAMIC-BLOCK"!==e.type)).map((e=>[e.key,e]))),u=e.map((e=>n(e.columnId))).filter((e=>c.has(e))).map((e=>c.get(e))).reverse();if(0===u.length)return i;for(const e of u){const n=[],c=[];for(const u of i){if("DYNAMIC-BLOCK"===u.type){We(c,n),n.push(u);continue}const d=t.resolve(e,u,a.get(e.key));if(!d){We(c,n),n.push(u);continue}const p={entity:u,comparator:d,cell:o.resolve(r,i,l,u,e,s)};0!==c.length&&c[0].comparator!==d?(We(c,n),c.push(p)):c.push(p)}We(c,n),i=n}return i}function Ne(e,t,o,r,i,l,s){if(0===e.length)return l;if(null===t)return l;const a=Ke(e,"rowId","columnId"),c=new Map(i.filter((e=>"DYNAMIC-BLOCK"!=e.type)).map((e=>[e.key,e]))),u=e.map((e=>n(e.rowId))).filter((e=>c.has(e))).map((e=>c.get(e))).reverse();if(0===u.length)return l;for(const e of u){const n=[],c=[];for(const u of l){if("DYNAMIC-BLOCK"===u.type){We(c,n),n.push(u);continue}const d=t.resolve(u,e,a.get(e.key));if(!d){We(c,n),n.push(u);continue}const p={entity:u,comparator:d,cell:o.resolve(r,i,l,e,u,s)};0!==c.length&&c[0].comparator!==d?(We(c,n),c.push(p)):c.push(p)}We(c,n),l=n}return l}const Fe=5;function He(e,t,o,r,i,l){if(!r)return null;if(l)return null;const s=t.get(n(r.columnId));if("HEADER"!==o.get(n(r.rowId)).type)return null;if(!s.resizable)return null;if(!i)return null;const a=i.x;return a>=s.right-Fe&&a<=s.right+Fe?s.id:0===s.index||a<s.left-Fe||a>s.left+Fe?null:e[s.index-1].id}function Ue(e,t,o,r,i,l){if(!r)return null;if(l)return null;const s=t.get(n(r.columnId)),a=o.get(n(r.rowId));if("HEADER"!==s.type)return null;if(!a.resizable)return null;if(!i)return null;const c=i.y;return c>=a.bottom-Fe&&c<=a.bottom+Fe?a.id:0===a.index||c<a.top-Fe||c>a.top+Fe?null:e[a.index-1].id}function je(e){return e.map((e=>({columnId:"columnId"in e?e.columnId:"HEADER",rowId:"rowId"in e?e.rowId:"HEADER",direction:e.direction})))}function Ye(e){return e.map((e=>({columnId:"columnId"in e?e.columnId:"FILTER",rowId:"rowId"in e?e.rowId:"FILTER",expression:e.expression})))}function qe(e){return e.filter((e=>"DATA"===e.type)).map((e=>e.id))}function $e(e){return qe(e)}function Ve(e){return qe(e)}function Ge(e){return p(e,["value","text","tooltip"])}function Xe(e,t,o,r){if(!e)return null;const i=n(e.columnId),l=n(e.rowId);if(!o.has(i))return null;if(!r.has(l))return null;const s=r.get(l),a=o.get(i);return t.resolve(s,a).tooltip}function Ze(e,t){return e?{left:t.x+8,top:t.y+20}:null}function Je(e){return e.map((e=>n(e)))}function Qe(e,t){if(!t.length)return e;const o=new Map;for(const[e,n]of t.entries())o.set(n,e);const n=[],r=t.length;let i=0;for(const[t,l]of e.entries())if("DYNAMIC-BLOCK"===l.type)i++,n.push({entry:l,score:[i,0,0]}),i++;else{const e=l.key,s=o.has(e)?o.get(e):r;n.push({entry:l,score:[i,s,t]})}return n.sort(((e,t)=>function(e,t){if(e.length!=t.length)throw new Error("lengths should be the same");for(let o=0;o<e.length;o++){const n=e[o]-t[o];if(0!=n)return n}return 0}(e.score,t.score))).map((e=>e.entry))}function et(e,t){return Qe(e,t)}function tt(e,t){return Qe(e,t)}function ot(e){return e.some((e=>"DYNAMIC-BLOCK"===e.type))}function nt(e){const t=[];for(const[o,n]of e){if(o>n)continue;if(0===t.length){t.push([o,n]);continue}const[e,r]=t[t.length-1];r<o-1?t.push([o,n]):(t.pop(),t.push([e,n]))}return t}function rt(e){return e.reduce(((e,t)=>"DYNAMIC-BLOCK"===t.type?e+t.count:e+1),0)}function it(e,t,o,r,i,l){if(!ot(t))return t;let s=l,a=0,c=0;const u=rt(t),d=r.left+i.left,p=d+r.width,f=[],h=(e,t)=>{f.push(t),s+=t.width+l,a+=e},_=e=>{h(1,e)},m=(t,o,r)=>{for(let i=o;i<=r;i++){const o=t.selector({data:e,index:i}),r=t.id({data:e,selector:o});h(1,{...t,type:"DATA",id:r,key:n(r),selector:o,header:t.header({data:e,selector:o}),width:t.columnWidth})}},g=(e,t)=>{if(t>0){const o="__separator_"+c++;h(t,{...e,type:"SEPARATOR",id:o,key:n(o),header:"",width:t*e.columnWidth+(t-1)*l})}};for(const e of t){if("DYNAMIC-BLOCK"!==e.type){_(e);continue}const{count:t,columnWidth:n}=e,r=n+l,i=o.left-a,c=u-o.right-a,f=Math.floor((d-s)/r),h=Math.floor((p-s)/r),y=nt([[0,i-1],[Math.max(0,i,f),Math.min(t-1,c-1,h)],[c,t-1]]);let w=0;for(const[t,o]of y)g(e,t-w),m(e,t,o),w=o+1;g(e,t-w)}return f}function lt(e,t,o,r,i,l){if(!ot(t))return t;let s=l,a=0,c=0;const u=rt(t),d=r.top+i.top,p=d+r.height,f=[],h=(e,t)=>{f.push(t),s+=t.height+l,a+=e},_=e=>{h(1,e)},m=(t,o,r)=>{for(let i=o;i<=r;i++){const o=t.selector({data:e,index:i}),r=t.id({data:e,selector:o});h(1,{...t,type:"DATA",id:r,key:n(r),selector:o,header:t.header({data:e,selector:o}),height:t.rowHeight})}},g=(e,t)=>{if(t>0){const o="__separator_"+c++;h(t,{...e,type:"SEPARATOR",id:o,key:n(o),header:"",height:t*e.rowHeight+(t-1)*l})}};for(const e of t){if("DYNAMIC-BLOCK"!==e.type){_(e);continue}const{count:t,rowHeight:n}=e,r=n+l,i=o.top-a,c=u-o.bottom-a,f=Math.floor((d-s)/r),h=Math.floor((p-s)/r),y=nt([[0,i-1],[Math.max(0,i,f),Math.min(t-1,c-1,h)],[c,t-1]]);let w=0;for(const[t,o]of y)g(e,t-w),m(e,t,o),w=o+1;g(e,t-w)}return f}function st(e,t,o,n,r,i){const l=e.reduce(((e,t)=>e+function(e){return"DYNAMIC-BLOCK"===e.type?e.count:1}(t)),0),s=t.reduce(((e,t)=>e+function(e){return"DYNAMIC-BLOCK"===e.type?e.count:1}(t)),0),a=Math.min(r,l),c=Math.min(o,s);return{left:a,top:c,right:Math.min(i,l-a),bottom:Math.min(n,s-c)}}function at(e){return{width:e.clientWidth,height:e.clientHeight}}function ct(e){return{left:e.scrollLeft,top:e.scrollTop}}function ut(e,t,o,n,r){if(!e)return null;const i=e.x,l=e.y;return{x:i<=n.left?i:i>=t.width?i+o.left:i>=t.width-n.right?r.width-t.width+i:i+o.left,y:l<=n.top?l:l>=t.height?l+o.top:l>=t.height-n.bottom?r.height-t.height+l:l+o.top}}function dt(e,t,o,r){if(!t)return e;if(!o)return e;if(!r)return e;const i=n(o.columnId),l=r.find((e=>"key"in e&&e.key===i));return"DATA"!==l?.type?e:r}function pt(e,t,o,r){if(!t)return e;if(!o)return e;if(!r)return e;const i=n(o.rowId),l=r.find((e=>"key"in e&&e.key===i));return"DATA"!==l?.type?e:r}function ft(e,t,o,n,r,i){return!!e&&(void 0===o||o<n||o>i-r||!t)}function ht(e,t,o,n){const r=e.position||"BEGIN",i=e.index%1*o;if("BEGIN"===r)return t+i;if("MIDDLE"===r)return t-(n-o)/2+i;if("END"===r)return t-(n-o)+i;throw new Error(`Invalid scroll position: ${r}`)}function _t(e,t,o,n,r,i,l,s,a){if(!ft(e,t,r?.y,i.top,i.bottom,l.height))return null;let c=Math.floor(e.index)+n.top,u=-i.top,d=0;for(const e of o)if("DYNAMIC-BLOCK"===e.type){const t=Math.min(c,e.count);if(u+=(e.rowHeight+a)*t,c-=t,t<e.count){d=e.rowHeight;break}}else{if(0===c){d=e.height;break}u+=e.height+a,c-=1}return ht(e,u,d,s.height-i.top-i.bottom)}function mt(e,t,o,n,r,i,l,s,a){if(!ft(e,t,r?.x,i.left,i.right,l.width))return null;let c=Math.floor(e.index)+n.left,u=-i.left,d=0;for(const e of o)if("DYNAMIC-BLOCK"===e.type){const t=Math.min(c,e.count);if(u+=(e.columnWidth+a)*t,c-=t,t<e.count){d=e.columnWidth;break}}else{if(0===c){d=e.width;break}u+=e.width+a,c-=1}return ht(e,u,d,s.width-i.left-i.right)}function gt(e){return e?"number"==typeof e||"string"==typeof e?[{maxDistance:1/0,scrollSpeed:e}]:0===e.length?[{maxDistance:1/0,scrollSpeed:"smooth"}]:e.sort(((e,t)=>e.maxDistance-t.maxDistance)):[{maxDistance:1/0,scrollSpeed:"smooth"}]}function yt(e,t,o,n,r){return{verticalTarget:e,horizontalTarget:t,verticalSpeed:o,horizontalSpeed:n,clientSizeVersion:r}}function wt(e){return{scrollbarWidth:e.scrollbarWidth||"auto"}}function bt(e,t,o,n,r,i){return{sections:e,devicePixelRatio:t,scrollRect:o,renderFormatResolver:n,borderWidth:r,textResolver:i}}function Ct(e,t){return{inputPlacement:e,isTextValid:t}}function Et(e,t,o){return{resizableColumn:e,resizableRow:t,isReordering:o}}function vt(e,t){return{tooltip:e,tooltipPlacement:t}}function Rt(e){return e.measureHeight("X",S)+T.top+T.bottom}function At(e,t){return!e&&!t||!(!e||!t)&&e.x===t.x&&e.y===t.y}function Dt(e,t){return!e&&!t||!(!e||!t)&&e.width===t.width&&e.height===t.height}function xt(e,t){return!e&&!t||!(!e||!t)&&e.left===t.left&&e.top===t.top}function It(e,t){return!e&&!t||!(!e||!t)&&e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height}function Ot(e,t){return!e&&!t||!(!e||!t)&&n(e.rowId)===n(t.rowId)&&n(e.columnId)===n(t.columnId)}function Mt(e,t){return!e&&!t||!(!e||!t)&&e.scrollbarWidth===t.scrollbarWidth}function kt(e){const t={...e.localOptions,...e.externalOptions},o=e.memory,n=e.state,r=e.element,l=[];function s(e,t,n,r=((e,t)=>e===t)){const i=o[e]&&o[e].dependencies;if(!i||n.some(((e,t)=>e!==i[t]))){const i=o[e]&&o[e].value,s=o[e]&&o[e].version||0,a=t(...n);r(i,a)?o[e]={value:i,dependencies:n,version:s}:(o[e]={value:a,dependencies:n,version:s+1},l.push(e))}return o[e].value}function a(e,t,n){(o[e]&&o[e].value)!==t&&(o[e]={value:t},n(t))}const u=s("devicePixelRatio",(e=>e),[window.devicePixelRatio]),d=s("borderWidth",(e=>e),[t.borderWidth/u]),p=t.data,h=e.input.value,y=s("sortBy",je,[t.sortBy]),b=s("filters",Ye,[t.filters]),R=s("columnWidths",(e=>e),[t.columnWidths]),A=s("rowHeights",(e=>e),[t.rowHeights]),D=s("textResolver",oe,[]),O=s("dataFormatting",c,[t.formatting,t.dataSelector,y]),S=s("editedCellsAndFilters",g,[t.editedCells,b]),T=s("edition",w,[S]),L=s("invokedColumns",E,[t.columns,p]),B=s("invokedRows",v,[t.rows,p]),P=s("mousePosition",(e=>e),[e.mousePosition],At),K=s("unfoldedColumns",Ce,[L,p]),W=s("unfoldedRows",Ee,[B,p]),z=s("dynamicRowHeight",Rt,[D]),N=s("unfilteredColumns",x,[K,R,d,u,150]),F=s("unfilteredRows",I,[W,A,d,u,z]),H=s("unfilteredColumnKeys",Me,[N]),j=s("unfilteredRowKeys",Me,[F]),q=s("columnsOrder",Je,[t.columnsOrder]),G=s("rowsOrder",Je,[t.rowsOrder]),X=s("orderedColumns",et,[N,q]),J=s("orderedRows",tt,[F,G]),Q=s("filterFormatting",De,[O]),te=s("filterFormattingRules",U,[Q]),ne=s("filteringRules",Ae,[t.filtering]),re=s("filteredColumns",V,[b,ne,te,p,J,X,T]),ie=s("filteredRows",$,[b,ne,te,p,J,X,T]),le=s("sortingFormatting",ke,[O]),se=s("sortingFormattingRules",U,[le]),ae=s("sortingRules",Pe,[t.sorting]),ce=s("sortedColumns",Ne,[y,ae,se,p,ie,re,T]),ue=s("sortedRows",ze,[y,ae,se,p,ie,re,T]),_e=t.freezeOnHover&&!l.includes("sortBy")&&!l.includes("filters")&&!l.includes("columnWidths")&&!l.includes("columnsOrder"),ye=t.freezeOnHover&&!l.includes("sortBy")&&!l.includes("filters")&&!l.includes("rowHeights")&&!l.includes("rowsOrder"),we=s("shapedColumns",dt,[ce,_e,n?.hoveredCell,n?.shapedColumns]),be=s("shapedRows",pt,[ue,ye,n?.hoveredCell,n?.shapedRows]),ve=s("pinning",st,[we,be,t.pinnedTop,t.pinnedBottom,t.pinnedLeft,t.pinnedRight]),Re=s("measureFormatting",xe,[O]),Te=s("measureFormattingRules",U,[Re]),Le=s("measureFormatResolver",Y,[Te,p,be,we,T]),Be=e.columnWidthCache,Ke=e.rowHeightCache,We=s("measuredColumns",Ie,[we,be,D,Le,Be,H,u]),Fe=s("measuredRows",Oe,[we,be,D,Le,Ke,j,u]),qe=s("fixedSize",Z,[We,Fe,ve,d]),Qe=s("totalSize",ee,[We,Fe,d]),ot=s("clientSize",(e=>e),[at(r)],Dt),nt=s("boundingClientSize",(e=>e),[at(r)],Dt),rt=s("scrollOffset",(e=>e),[ct(r)],xt),ft=s("internalMousePosition",ut,[P,ot,rt,qe,Qe],At),ht=s("scrollRect",de,[n?.renderState?.scrollRect,rt,Qe,qe,nt],It),kt=s("horizontalScrollTarget",mt,[t.horizontalScrollTarget,t.disableScrollOnHover,We,ve,ft,qe,Qe,ot,d]),St=s("verticalScrollTarget",_t,[t.verticalScrollTarget,t.disableScrollOnHover,Fe,ve,ft,qe,Qe,ot,d]),Tt=s("horizontalScrollSpeed",gt,[t.horizontalScrollSpeed]),Lt=s("verticalScrollSpeed",gt,[t.verticalScrollSpeed]),Bt=s("staticColumns",it,[p,We,ve,ht,qe,d]),Pt=s("staticRows",lt,[p,Fe,ve,ht,qe,d]),Kt=s("columns",M,[Bt,ve,d]),Wt=s("rows",k,[Pt,ve,d]),zt=s("columnLookup",fe,[Kt]),Nt=s("rowLookup",fe,[Wt]),Ft=t.focusedCell,Ht=s("sections",m,[Kt,Wt]),Ut=t.selectedCells,jt=s("hoveredCell",pe,[ft,Wt,Kt,qe,Qe],Ot),Yt=e.isReordering,qt=e.resizingColumn||s("resizableColumn",He,[Kt,zt,Nt,jt,ft,Yt]),$t=e.resizingRow||s("resizableRow",Ue,[Wt,zt,Nt,jt,ft,Yt]),Vt=s("highlightedCells",he,[e.isMouseDown,!qt&&!$t&&!e.didReorder,Ft,jt,Kt,Wt,zt,Nt]),Gt=s("selection",C,[Ut]),Xt=s("highlight",C,[Vt]),Zt=s("renderFormatting",_,[O,jt,Ft,Gt,Xt,T,y,qt,$t,t.borderWidth,Yt,e.reorderedColumn,e.reorderedRow]),Jt=s("renderFormattingRules",U,[Zt]),Qt=s("renderFormatResolver",Y,[Jt,p,Wt,Kt,T]),eo=s("sortOrderFormatting",Se,[O]),to=s("sortOrderFormattingRules",U,[eo]),oo=s("sortOrderFormatResolver",Y,[to,p,Wt,Kt,T]),no=s("inputFormatting",f,[O]),ro=s("inputFormattingRules",U,[no]),io=s("inputFormatResolver",Y,[ro,p,Wt,Kt,T]),lo=s("editableCells",i,[Ut,io,zt,Nt]),so=s("inputPlacement",me,[lo,Ft,zt,Nt,Ht]),ao=s("isTextValid",ge,[h,lo]),co=s("contextFormatting",Ge,[O]),uo=s("contextFormattingRules",U,[co]),po=s("contextFormatResolver",Y,[uo,p,Wt,Kt,T]),fo=s("tooltip",Xe,[jt,po,zt,Nt]),ho=s("tooltipPlacement",Ze,[fo,P]),_o=s("renderState",bt,[Ht,u,ht,Qt,d,D]),mo=s("inputState",Ct,[so,ao]),go=s("cursorState",Et,[qt,$t,e.isReordering]),yo=s("tooltipState",vt,[fo,ho]),wo=s("scrollState",yt,[St,kt,Lt,Tt,o.clientSize.version]),bo=s("styleState",wt,[t.style],Mt),Co=s("activeColumns",$e,[Kt]),Eo=s("activeRows",Ve,[Wt]);a("activeColumnsCallback",Co,t.onActiveColumnsChange),a("activeRowsCallback",Eo,t.onActiveRowsChange),a("hoveredCellCallback",jt,t.onHoveredCellChange),t.onStateChange(l),e.state={options:t,edition:T,columns:Kt,rows:Wt,hoveredCell:jt,focusedCell:Ft,inputFormatResolver:io,fixedSize:qe,totalSize:Qe,clientSize:ot,scrollOffset:rt,highlightedCells:Vt,columnLookup:zt,rowLookup:Nt,text:h,scrollState:wo,styleState:bo,sortOrderFormatResolver:oo,renderState:_o,inputState:mo,cursorState:go,tooltipState:yo,shapedColumns:we,shapedRows:be}}function St(e,t){const o=new b(t);return[...t,...e.filter((e=>!o.isIdSelected(e.rowId,e.columnId)))]}function Tt(e,t){const o=new b(t);return e.filter((e=>!o.isIdSelected(e.rowId,e.columnId)))}function Lt(e){const t=e.currentTarget;if(!(t instanceof HTMLElement))throw new Error("Element is not an HTMLElement");const o=t.getBoundingClientRect();return{x:e.clientX-o.left,y:e.clientY-o.top}}function Bt(e,t){return e.map((e=>({...e,columnId:"columnId"in e?e.columnId:t,rowId:"rowId"in e?e.rowId:t})))}function Pt(e,t,o){const r=n(t),i=n(o);if(r===i)return null;const l=e.findIndex((e=>e.key===r)),s=e.findIndex((e=>e.key===i));return-1===l||-1===s||l===s?null:[l,s]}function Kt(e){const t=e.element;e.scrollAnimationId&&(cancelAnimationFrame(e.scrollAnimationId),e.scrollAnimationId=null,t.scrollTop=t.scrollTop,t.scrollLeft=t.scrollLeft)}function Wt(e,t,o,n){return e>0?Math.min(e,t*o+n):Math.max(e,-t*o+n)}function zt(e,t,o,n,r,i,l,s,a,c,u){if(null===n)return null;const d=n-o;if(Math.abs(d)<1)return null;if(d<0&&0===o)return null;if(d>0&&o>=i-r-1)return null;const p=function(e,t){const o=Math.abs(t);for(const t of e)if(o<=t.maxDistance)return t.scrollSpeed;return"auto"}(a,d);return u||"auto"===p?{[e]:n,behavior:"auto"}:"number"==typeof p?{[e]:o+Wt(d,p,t,c),behavior:"auto"}:l!==n||s===o?{[e]:n}:null}function Nt(e,t){if(e.errorRendered)return;e.errorRendered=!0;const o=e.element;o.style.backgroundColor="#9f0000",o.style.color="white",o.style.padding="20px",o.style.display="flex",o.style.flexDirection="column",o.style.userSelect="text",o.innerHTML=`\n <div style="font-size: 16px;">\n An error occurred while rendering the grid, please contact the support.\n </div>\n <div style="font-size: 20px; font-weight: bold; padding: 20px 0;">\n ${t.message}\n </div>\n <div style="font-size: 16px; white-space: pre-wrap;">${t.stack}</div>\n `}function Ft(e){if(!e.errorRendered)try{kt(e),e.state.styleState!==e.lastStyleState&&(e.lastStyleState=e.state.styleState,function(e){const t=e.state.styleState,o=e.element,n=`\n max-width: 100vw;\n max-height: 100vh;\n overflow: auto;\n display: grid;\n position: relative;\n grid-template-columns: fit-content(0) fit-content(0) fit-content(0);\n grid-template-rows: fit-content(0) fit-content(0) fit-content(0);\n outline: none;\n user-select: none;\n touch-action: manipulation;\n scrollbar-width: ${t.scrollbarWidth};\n `;o.setAttribute("style",n)}(e)),e.state.renderState!==e.lastRenderState&&(e.lastRenderState=e.state.renderState,function(e){s(e,"top","left"),s(e,"top","center"),s(e,"top","right"),s(e,"middle","left"),s(e,"middle","center"),s(e,"middle","right"),s(e,"bottom","left"),s(e,"bottom","center"),s(e,"bottom","right")}(e)),e.state.inputState!==e.lastInputState&&(e.lastInputState=e.state.inputState,function(e){const t=e.element,o=e.input,n=e.state.inputState,r=n.inputPlacement;if(!r){if(o.parentElement){const e=document.activeElement===o;o.parentElement.removeChild(o),e&&t.focus({preventScroll:!0})}return}const i=e.canvases[r.section];if(o.style.left="left"in r?`${r.left}px`:"0",o.style.top="top"in r?`${r.top}px`:"0",o.style.right="right"in r?`${r.right}px`:"0",o.style.bottom="bottom"in r?`${r.bottom}px`:"0",o.style.marginLeft="marginLeft"in r?`${r.marginLeft}px`:"0",o.style.marginTop="marginTop"in r?`${r.marginTop}px`:"0",o.style.width=`${r.width}px`,o.style.height=`${r.height}px`,o.style.gridArea=i.style.gridArea,o.style.zIndex=i.style.zIndex,o.style.backgroundColor=n.isTextValid?"white":"#eb3434",!o.parentElement){const e=document.activeElement===t;t.appendChild(o),e&&o.focus({preventScroll:!0})}}(e)),e.state.cursorState!==e.lastCursorState&&(e.lastCursorState=e.state.cursorState,function(e){const t=e.element,o=e.state.cursorState;o.isReordering?t.style.cursor="move":o.resizableColumn&&o.resizableRow?t.style.cursor="nwse-resize":o.resizableColumn?t.style.cursor="col-resize":o.resizableRow?t.style.cursor="row-resize":t.style.cursor="default"}(e)),e.state.tooltipState!==e.lastTooltipState&&(e.lastTooltipState=e.state.tooltipState,function(e){const t=e.element,o=e.tooltip,n=e.state.tooltipState,r=n.tooltip,i=n.tooltipPlacement;i?(o.innerHTML!==r&&(o.innerHTML=r),o.style.left=`calc(anchor(left) + ${i.left}px)`,o.style.top=`calc(anchor(top) + ${i.top}px)`,o.parentElement||(t.appendChild(o),o.showPopover({source:t}))):o.parentElement&&o.parentElement.removeChild(o)}(e)),e.state.scrollState!==e.lastScrollState&&(e.lastScrollState=e.state.scrollState,function(e){const t=e.element,o=e.state.scrollState,n=o.verticalTarget,r=o.horizontalTarget;if(null===n&&null===r||!t.isConnected)return void Kt(e);if(e.scrollAnimationId)return;let i=performance.now(),l=null,s=null,a={top:t.scrollTop,left:t.scrollLeft},c=0,u=0;const d=o=>{const n=e.state.scrollState.verticalTarget,r=e.state.scrollState.horizontalTarget;if(null===n&&null===r||!t.isConnected)return void Kt(e);null===n&&(s=null),null===r&&(l=null);const p=(o-i)/1e3;i=o;const f=e.lastScrollClientSizeVersion!==e.state.scrollState.clientSizeVersion;e.lastScrollClientSizeVersion=e.state.scrollState.clientSizeVersion;const h=function(e,t,o,n,r,i){const l=e.element,s=e.state.scrollState,a=s.verticalTarget;return zt("top",t,l.scrollTop,a,l.clientHeight,l.scrollHeight,o?.top,n.top,s.verticalSpeed,r,i)}(e,p,s,a,c,f),_=function(e,t,o,n,r,i){const l=e.element,s=e.state.scrollState,a=s.horizontalTarget;return zt("left",t,l.scrollLeft,a,l.clientWidth,l.scrollWidth,o?.left,n.left,s.horizontalSpeed,r,i)}(e,p,l,a,u,f),m={...s,...l,behavior:"smooth",...h,..._};(h||_)&&t.scrollTo(m),c=h&&"auto"===m.behavior?m.top-t.scrollTop:0,u=_&&"auto"===m.behavior?m.left-t.scrollLeft:0,s=h||s,l=_||l,a={top:t.scrollTop,left:t.scrollLeft},e.scrollAnimationId=requestAnimationFrame(d)};d(i)}(e))}catch(t){Nt(e,t)}}function Ht(e){if("spread-grid-context"in e)return;const t={"top-left":document.createElement("canvas"),"top-center":document.createElement("canvas"),"top-right":document.createElement("canvas"),"middle-left":document.createElement("canvas"),"middle-center":document.createElement("canvas"),"middle-right":document.createElement("canvas"),"bottom-left":document.createElement("canvas"),"bottom-center":document.createElement("canvas"),"bottom-right":document.createElement("canvas")},o=document.createElement("input"),l=document.createElement("div");e.setAttribute("tabindex","0"),e.classList.add("spread-grid"),t["top-left"].setAttribute("style","position: sticky; left: 0; top: 0; z-index: 2; grid-row: 1; grid-column: 1;"),t["top-center"].setAttribute("style","position: sticky; top: 0; z-index: 1; grid-row: 1; grid-column: 2;"),t["top-right"].setAttribute("style","position: sticky; right: 0; top: 0; z-index: 2; grid-row: 1; grid-column: 3;"),t["middle-left"].setAttribute("style","position: sticky; left: 0; z-index: 1; grid-row: 2; grid-column: 1;"),t["middle-center"].setAttribute("style","grid-row: 2; grid-column: 2; z-index: 0;"),t["middle-right"].setAttribute("style","position: sticky; right: 0; z-index: 1; grid-row: 2; grid-column: 3;"),t["bottom-left"].setAttribute("style","position: sticky; left: 0; bottom: 0; z-index: 2; grid-row: 3; grid-column: 1;"),t["bottom-center"].setAttribute("style","position: sticky; bottom: 0; z-index: 1; grid-row: 3; grid-column: 2;"),t["bottom-right"].setAttribute("style","position: sticky; right: 0; bottom: 0; z-index: 2; grid-row: 3; grid-column: 3;"),o.setAttribute("style","position: sticky; z-index: 3; outline: none; border: none; box-shadow: none; padding: 0 5px; font-size: 12px; font-family: Calibri; background-color: white; box-sizing: border-box; opacity: 0; pointer-events: none;"),l.setAttribute("style","pointer-events: none; background-color: white; color: black; border: 1px solid black; padding: 3px 7px; inset: unset; position: absolute; font-size: 12px; font-family: Calibri; "),l.setAttribute("popover","manual"),l.classList.add("spread-grid-tooltip");const s={element:e,canvases:t,input:o,tooltip:l,localOptions:null,externalOptions:{},state:null,memory:{},renderRequested:!1,mousePosition:null,isMouseDown:!1,columnWidthCache:new Map,rowHeightCache:new Map,isReordering:!1,errorRendered:!1,error:null,resizingColumn:null,resizingRow:null,reorderedColumn:null,reorderedRow:null,didReorder:!1,mouseDownPosition:null,mouseDownCell:null,requestNewRender:null,fractionalScrollProgressVertical:0,fractionalScrollProgressHorizontal:0};function a(e,t,o){e.addEventListener(t,(e=>{try{o(e)}catch(e){e.message=`[${t} event]: ${e.message}`,Nt(s,e)}}))}s.requestNewRender=()=>{s.renderRequested||s.errorRendered||(s.renderRequested=!0,requestAnimationFrame((()=>{s.renderRequested=!1,Ft(s)})))},s.localOptions={data:[],columns:[{type:"DATA-BLOCK"}],rows:[{type:"HEADER"},{type:"DATA-BLOCK"}],formatting:[],filtering:[],sorting:[],dataSelector:({data:e,row:t,column:o})=>e?.[t.selector]?.[o.selector],pinnedTop:0,pinnedBottom:0,pinnedLeft:0,pinnedRight:0,borderWidth:1,focusedCell:null,onFocusedCellChange:e=>{s.localOptions.focusedCell=e,s.requestNewRender()},selectedCells:[],onSelectedCellsChange:e=>{s.localOptions.selectedCells=e,s.requestNewRender()},highlightedCells:[],editedCells:[],onEditedCellsChange:e=>{s.localOptions.editedCells=e,s.requestNewRender()},filters:[],onFiltersChange:e=>{s.localOptions.filters=e,s.requestNewRender()},sortBy:[],onSortByChange:e=>{s.localOptions.sortBy=e,s.requestNewRender()},onCellClick:()=>{},onCustomCellClick:()=>{},columnWidths:[],onColumnWidthsChange:e=>{s.localOptions.columnWidths=e,s.requestNewRender()},rowHeights:[],onRowHeightsChange:e=>{s.localOptions.rowHeights=e,s.requestNewRender()},columnsOrder:[],onColumnsOrderChange:e=>{s.localOptions.columnsOrder=e,s.requestNewRender()},rowsOrder:[],onRowsOrderChange:e=>{s.localOptions.rowsOrder=e,s.requestNewRender()},onActiveColumnsChange:()=>{},onActiveRowsChange:()=>{},onHoveredCellChange:()=>{},onStateChange:()=>{},verticalScrollTarget:null,horizontalScrollTarget:null,verticalScrollSpeed:"smooth",horizontalScrollSpeed:"smooth",disableScrollOnHover:!0,freezeOnHover:!1,style:{}},e["spread-grid-context"]=s;const c=e=>{o.value=e,o.dispatchEvent(new Event("input"))},u=e=>{const t=s.state.options.selectedCells,o=s.state.inputFormatResolver,n=s.state.columnLookup,r=s.state.rowLookup,l=s.state.text,a=s.state.inputState.isTextValid,u=s.state.options.onEditedCellsChange,d=s.state.options.onFiltersChange,p=i(t,o,n,r);if(""===l)return;if(!a)return;if(e&&!p.every((e=>e.edit.autoCommit)))return;const f=p.filter((e=>"DATA"===e.type)),h=p.filter((e=>"FILTER"===e.type));var _;_=f.map((e=>({...e.cell,value:e.edit.parse({string:l})}))),u(St(s.state.options.editedCells,_)),(e=>{d(St(Bt(s.state.options.filters,"FILTER"),e))})(h.map((e=>({...e.cell,expression:e.edit.parse({string:l})})))),e||c("")},d=e=>{const t=s.state.options.selectedCells,o=s.state.options.onEditedCellsChange,n=s.state.options.onFiltersChange,r=i(t,s.state.inputFormatResolver,s.state.columnLookup,s.state.rowLookup);var l;e&&!r.every((e=>e.edit.autoCommit))||(l=t,o(Tt(s.state.options.editedCells,l)),(e=>{n(Tt(Bt(s.state.options.filters,"FILTER"),e))})(t))};a(e,"scroll",(e=>{s.requestNewRender()})),a(e,"pointerenter",(e=>{s.mousePosition=Lt(e),s.requestNewRender()})),a(e,"pointermove",(e=>{if(s.mousePosition=Lt(e),s.resizingColumn){const e=s.state.columnLookup.get(n(s.resizingColumn)),t=e.width,o=e.right,r=ut(s.mousePosition,s.state.clientSize,s.state.scrollOffset,s.state.fixedSize,s.state.totalSize),i=Math.max(10,r.x-o+t),l=s.state.options.columnWidths.filter((t=>n(t.columnId)!==e.key)).concat([{columnId:e.id,width:i}]);s.state.options.onColumnWidthsChange(l)}if(s.resizingRow){const e=s.state.rowLookup.get(n(s.resizingRow)),t=e.height,o=e.bottom,r=ut(s.mousePosition,s.state.clientSize,s.state.scrollOffset,s.state.fixedSize,s.state.totalSize),i=Math.max(10,r.y-o+t),l=s.state.options.rowHeights.filter((t=>n(t.rowId)!==e.key)).concat([{rowId:e.id,height:i}]);s.state.options.onRowHeightsChange(l)}if(s.reorderedColumn){const e=s.state.columns,t=s.state.hoveredCell,o=ut(s.mousePosition,s.state.clientSize,s.state.scrollOffset,s.state.fixedSize,s.state.totalSize),n=function(e,t,o,n){if(!o)return null;const r=Pt(e,t,o.columnId);if(!r)return null;const[i,l]=r,s=l<=i?n.x<e[l].leftWithBorder+e[i].width?l:l+1:n.x>e[l].rightWithBorder-e[i].width?l:l-1;if(s===i)return null;const a=e.map((e=>e.id));return a.splice(i,1),a.splice(s,0,t),a}(e,s.reorderedColumn,t,o);n&&(s.didReorder=!0,s.isReordering=!0,s.state.options.onColumnsOrderChange(n))}if(s.reorderedRow){const e=s.state.rows,t=s.state.hoveredCell,o=ut(s.mousePosition,s.state.clientSize,s.state.scrollOffset,s.state.fixedSize,s.state.totalSize),n=function(e,t,o,n){if(!o)return null;const r=Pt(e,t,o.rowId);if(!r)return null;const[i,l]=r,s=l<=i?n.y<e[l].topWithBorder+e[i].height?l:l+1:n.y>e[l].bottomWithBorder-e[i].height?l:l-1;if(s===i)return null;const a=e.map((e=>e.id));return a.splice(i,1),a.splice(s,0,t),a}(e,s.reorderedRow,t,o);n&&(s.didReorder=!0,s.isReordering=!0,s.state.options.onRowsOrderChange(n))}s.requestNewRender()})),a(e,"touchmove",(e=>{(s.resizingColumn||s.resizingRow||s.reorderedColumn||s.reorderedRow)&&(e.preventDefault(),e.stopPropagation())})),a(e,"pointerleave",(()=>{s.mousePosition=null,s.requestNewRender()})),a(e,"pointerdown",(e=>{s.mousePosition=Lt(e),kt(s),c("");const t=s.state.hoveredCell;if(s.isMouseDown=!0,s.didReorder=!1,s.mouseDownPosition=s.mousePosition,s.mouseDownCell=t,s.state.cursorState.resizableColumn&&(s.resizingColumn=s.state.cursorState.resizableColumn),s.state.cursorState.resizableRow&&(s.resizingRow=s.state.cursorState.resizableRow),!s.resizingColumn&&t){const e=s.state.rowLookup.get(n(t.rowId));s.reorderedColumn="HEADER"===e.type?t.columnId:null}if(!s.resizingRow&&t){const e=s.state.columnLookup.get(n(t.columnId));s.reorderedRow="HEADER"===e.type?t.rowId:null}s.resizingColumn||s.resizingRow||s.state.options.onFocusedCellChange(t),e.ctrlKey||s.state.options.onSelectedCellsChange([]),s.requestNewRender()})),a(e,"pointerup",(e=>{s.mousePosition=Lt(e),kt(s),s.isMouseDown=!1,s.isReordering=!1,s.resizingColumn=null,s.resizingRow=null,s.reorderedColumn=null,s.reorderedRow=null,s.state.options.onSelectedCellsChange(St(s.state.options.selectedCells,s.state.highlightedCells)),s.requestNewRender()})),a(e,"pointerdown",(e=>{s.element.setPointerCapture(e.pointerId)})),a(e,"pointerup",(e=>{s.element.releasePointerCapture(e.pointerId)})),a(e,"click",(e=>{s.mousePosition=Lt(e),kt(s);const t=s.state.hoveredCell,o=s.mouseDownCell;if(s.state.cursorState.resizableColumn||s.state.cursorState.resizableRow)return;if(s.didReorder)return;if(null===t)return;if(null===o)return;if(n(t.columnId)!==n(o.columnId))return;if(n(t.rowId)!==n(o.rowId))return;const i=s.state.columnLookup.get(n(t.columnId)),l=s.state.rowLookup.get(n(t.rowId)),a=s.state.options.sortBy,c=s.state.inputFormatResolver.resolve(l,i),u={ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,button:e.button,buttons:e.buttons,detail:e.detail};if(c.edit?.toggle){const e=function(e,t,o,n){const r=n.hasValueByKey(o.key,t.key)?n.getValueByKey(o.key,t.key):e.value,i=e.edit.toggle;return"function"==typeof i?i({value:r}):i[(i.indexOf(r)+1)%i.length]}(c,i,l,s.state.edition),o=r(i,l);"DATA"===o&&s.state.options.onEditedCellsChange(St(s.state.options.editedCells,[{...t,value:e}])),"FILTER"===o&&s.state.options.onFiltersChange(St(Bt(s.state.options.filters,"FILTER"),[{...t,expression:e}]))}else if("DATA"===i.type&&"DATA"===l.type)s.state.options.onCellClick({...s.state.hoveredCell,...u});else if("CUSTOM"===i.type||"CUSTOM"===l.type)s.state.options.onCustomCellClick({...s.state.hoveredCell,...u});else if("HEADER"===i.type||"HEADER"===l.type){const t=s.state.sortOrderFormatResolver.resolve(l,i),o=function(e,t,o,r,i){function l(e){const r="columnId"in e?e.columnId:"HEADER",i="rowId"in e?e.rowId:"HEADER";return t.key===n(r)&&o.key===n(i)}const s=i?i.map((e=>null===e?void 0:e)):["ASC","DESC",void 0],a=e.find(l),c=s.indexOf(a?.direction),u=s[(c+1)%s.length],d=e.indexOf(a)===e.length-1;return[...!r||!d&&a?e.filter((e=>!function(e){const r="columnId"in e?e.columnId:"HEADER",i="rowId"in e?e.rowId:"HEADER";return"HEADER"===t.type&&t.key===n(r)||"HEADER"===o.type&&o.key===n(i)}(e))):e.filter((e=>!l(e))),...u?[{columnId:t.id,rowId:o.id,direction:u}]:[]]}(a,i,l,e.ctrlKey,t.sortOrder);s.state.options.onSortByChange(o),s.state.options.onSelectedCellsChange([])}})),a(e,"dblclick",(e=>{if(s.mousePosition=Lt(e),kt(s),s.state.cursorState.resizableColumn){const e=n(s.state.cursorState.resizableColumn),t=s.state.options.columnWidths.filter((t=>n(t.columnId)!==e));s.state.options.onColumnWidthsChange(t),s.columnWidthCache.delete(e)}if(s.state.cursorState.resizableRow){const e=n(s.state.cursorState.resizableRow),t=s.state.options.rowHeights.filter((t=>n(t.rowId)!==e));s.state.options.onRowHeightsChange(t),s.rowHeightCache.delete(e)}const t=s.state.focusedCell;if(null===t)return;const r=n(t.columnId),i=n(t.rowId),l=s.state.columnLookup,a=s.state.rowLookup,u=s.state.inputFormatResolver;if(!l.has(r))return;if(!a.has(i))return;const d=l.get(r),p=a.get(i),f=u.resolve(p,d),h=f.text;f.edit&&(f.edit.toggle||(c(h),o?.select()))})),a(e,"focus",(()=>{o.parentElement&&o.focus({preventScroll:!0})})),a(e,"keydown",(e=>{kt(s);const t=s.state.focusedCell,o=s.state.columnLookup,r=s.state.rowLookup,i=s.state.options.selectedCells,l=s.state.options.onSelectedCellsChange,a=s.state.options.onFocusedCellChange,p=s.state.options.editedCells,f=s.state.options.onEditedCellsChange,h=s.state.columns,_=s.state.rows,m=s.state.text,g=s.state.inputFormatResolver,y=(e,t)=>{a(e),t.shiftKey?l(St(i,[e])):l([e])},w=(e,r)=>{if(!t)return;const i=n(t.columnId);if(!o.has(i))return;const l=o.get(i).index,s=Math.max(0,Math.min(h.length-1,l+e));if(s===l)return;const a={rowId:t.rowId,columnId:h[s].id};y(a,r)},C=(e,o)=>{if(!t)return;const i=n(t.rowId);if(!r.has(i))return;const l=r.get(i).index,s=Math.max(0,Math.min(_.length-1,l+e));if(s===l)return;const a={rowId:_[s].id,columnId:t.columnId};y(a,o)},E=()=>{e.preventDefault(),e.stopPropagation()};switch(e.key){case"Escape":""!==m?c(""):i.length>1?l([t]):p.length>0?f([]):(a(null),l([]));break;case"Enter":u(!1);break;case"ArrowUp":E(),C(e.ctrlKey?-_.length:-1,e);break;case"ArrowDown":E(),C(e.ctrlKey?_.length:1,e);break;case"ArrowLeft":E(),w(e.ctrlKey?-h.length:-1,e);break;case"ArrowRight":E(),w(e.ctrlKey?h.length:1,e);break;case"Delete":case"Backspace":d(!1);break;case"c":(e=>{if(!e.ctrlKey)return;const t=function(e,t,o,r){const i=new Map(t.map((e=>[e.key,e]))),l=new Map(o.map((e=>[e.key,e]))),s=e.map((e=>({columnKey:n(e.columnId),rowKey:n(e.rowId)}))).filter((e=>i.has(e.columnKey)&&l.has(e.rowKey))),a=new Set(s.map((e=>e.columnKey))),c=new Set(s.map((e=>e.rowKey)));if(0===s.length)return"";const u=new b(e),d=Math.min(...s.map((e=>i.get(e.columnKey).index))),p=Math.max(...s.map((e=>i.get(e.columnKey).index))),f=Math.min(...s.map((e=>l.get(e.rowKey).index))),h=Math.max(...s.map((e=>l.get(e.rowKey).index))),_=[];for(let e=f;e<=h;e++){const n=o[e],i=n.key;if(c.has(i)){for(let e=d;e<=p;e++){const o=t[e],l=o.key;if(a.has(l)){if(u.isKeySelected(i,l)){const e=r.resolve(n,o).text;_.push(e)}e<p&&_.push("\t")}}e<h&&_.push("\n")}}return _.join("")}(i,h,_,g);if(navigator.clipboard)navigator.clipboard.writeText(t);else{const e=document.createElement("textarea");e.value=t,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}})(e)}})),new ResizeObserver((()=>{s.requestNewRender()})).observe(e),a(o,"input",(e=>{kt(s),o.value?(u(!0),o.style.opacity="1",o.style.pointerEvents="auto"):(e.isTrusted&&d(!0),o.style.opacity="0",o.style.pointerEvents="none")})),a(o,"click",(e=>{e.stopPropagation()})),a(o,"dblclick",(e=>{e.stopPropagation()})),a(o,"pointerdown",(e=>{e.stopPropagation()})),a(o,"keydown",(e=>{switch(e.key){case"Enter":case"Escape":break;case"Delete":case"Backspace":case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":""!==o.value&&(e.stopPropagation(),s.requestNewRender());break;default:e.stopPropagation(),s.requestNewRender()}})),a(e,"wheel",(t=>{null===s.state.scrollState.verticalTarget&&null===s.state.scrollState.horizontalTarget||(e.scrollBy({top:t.deltaY,left:t.deltaX,behavior:"auto"}),t.preventDefault(),t.stopPropagation())}))}function Ut(e,t){Ht(e);const o=e["spread-grid-context"];o.externalOptions=t,null===o.state?Ft(o):o.requestNewRender()}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var o=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](o,o.exports,__webpack_require__),o.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var o in t)__webpack_require__.o(t,o)&&!__webpack_require__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var getCurrentScript=function(){var e=document.currentScript;if(!e){for(var t=document.getElementsByTagName("script"),o=[],n=0;n<t.length;n++)o.push(t[n]);e=(o=o.filter((function(e){return!e.async&&!e.text&&!e.textContent}))).slice(-1)[0]}return e},isLocalScript=function(e){return/\/_dash-component-suites\//.test(e.src)},url;if(Object.defineProperty(__webpack_require__,"p",{get:(url=getCurrentScript().src.split("/").slice(0,-1).join("/")+"/",function(){return url})}),"undefined"!=typeof jsonpScriptSrc){var __jsonpScriptSrc__=jsonpScriptSrc;jsonpScriptSrc=function(e){var t=getCurrentScript(),o=isLocalScript(t),n=__jsonpScriptSrc__(e);if(!o)return n;var r=n.split("/"),i=r.slice(-1)[0].split(".");return i.splice(1,0,"v1_2_4m1778464005"),r.splice(-1,1,i.join(".")),r.join("/")}}var __webpack_exports__={};(()=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{DashSpreadGrid:()=>e.Z});var e=__webpack_require__(353)})(),window.dash_spread_grid=__webpack_exports__})();
2
2
  //# sourceMappingURL=dash_spread_grid.min.js.map