@revolist/revogrid 4.26.2 → 4.27.1

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 (130) hide show
  1. package/dist/cjs/{cell-renderer-Cf2Pu4S0.js → cell-renderer-BDIx0xys.js} +3 -3
  2. package/dist/cjs/{column.service-C7p5eC5V.js → column.service-D-ENzqyb.js} +5 -3
  3. package/dist/cjs/{dimension.helpers-CgHhnN1d.js → dimension.helpers-CptesQOZ.js} +52 -8
  4. package/dist/cjs/{edit.utils-rAcGublN.js → edit.utils-CBAbQhGP.js} +1 -1
  5. package/dist/cjs/{header-cell-renderer-DHClfIto.js → header-cell-renderer-B5Y4fdZC.js} +1 -1
  6. package/dist/cjs/{index--FdNLz1Z.js → index-BVESmpqW.js} +1 -1
  7. package/dist/cjs/index.cjs.js +72 -55
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/revo-grid.cjs.entry.js +131 -86
  10. package/dist/cjs/revo-grid.cjs.js +1 -1
  11. package/dist/cjs/revogr-attribution_7.cjs.entry.js +51 -19
  12. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +4 -4
  13. package/dist/cjs/revogr-data_4.cjs.entry.js +21 -15
  14. package/dist/cjs/revogr-filter-panel.cjs.entry.js +9 -9
  15. package/dist/cjs/{column.drag.plugin-CK5HADlW.js → row-resize.plugin-sK9_rcUN.js} +759 -86
  16. package/dist/cjs/{text-editor-F04kTx53.js → text-editor-CJyQaYei.js} +2 -2
  17. package/dist/cjs/{throttle-fV6BUmM7.js → throttle-BsaP4fgu.js} +3 -3
  18. package/dist/cjs/{viewport.store-B4Clk4m9.js → viewport.store-mhsdi61t.js} +1 -1
  19. package/dist/collection/components/data/revogr-data-style.css +11 -0
  20. package/dist/collection/components/data/revogr-data.js +14 -8
  21. package/dist/collection/components/header/revogr-header-style.css +1 -0
  22. package/dist/collection/components/overlay/keyboard.service.js +33 -3
  23. package/dist/collection/components/overlay/revogr-overlay-selection.js +12 -10
  24. package/dist/collection/components/revoGrid/plugin.service.js +2 -2
  25. package/dist/collection/components/revoGrid/revo-grid.js +80 -30
  26. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +24 -13
  27. package/dist/collection/components/revoGrid/viewport.service.js +1 -1
  28. package/dist/collection/plugins/filter/filter.constants.js +9 -0
  29. package/dist/collection/plugins/filter/filter.panel.js +8 -8
  30. package/dist/collection/plugins/filter/filter.plugin.js +109 -10
  31. package/dist/collection/plugins/filter/filter.style.css +2 -0
  32. package/dist/collection/plugins/groupingRow/grouping.const.js +1 -0
  33. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +93 -56
  34. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +1 -1
  35. package/dist/collection/plugins/groupingRow/grouping.service.js +1 -1
  36. package/dist/collection/plugins/groupingRow/grouping.sorting.service.js +58 -0
  37. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +5 -3
  38. package/dist/collection/plugins/index.js +1 -0
  39. package/dist/collection/plugins/row-resize/index.js +6 -0
  40. package/dist/collection/plugins/row-resize/row-resize.plugin.js +416 -0
  41. package/dist/collection/plugins/row-resize/row-resize.types.js +1 -0
  42. package/dist/collection/plugins/row-resize/row-resize.utils.js +55 -0
  43. package/dist/collection/plugins/sorting/sorting.plugin.js +16 -13
  44. package/dist/collection/plugins/wcag/index.js +5 -4
  45. package/dist/collection/serve/controller.js +1 -1
  46. package/dist/collection/services/data.provider.js +8 -2
  47. package/dist/collection/services/dimension.provider.js +17 -1
  48. package/dist/collection/services/local.scroll.timer.js +3 -3
  49. package/dist/collection/services/selection.store.connector.js +4 -2
  50. package/dist/collection/store/dataSource/data.pending.plugin.js +21 -0
  51. package/dist/collection/store/dataSource/data.store.js +25 -3
  52. package/dist/collection/store/dataSource/trimmed.plugin.js +9 -6
  53. package/dist/collection/store/dimension/dimension.trim.plugin.js +1 -3
  54. package/dist/collection/types/events.js +4 -1
  55. package/dist/collection/utils/column.utils.js +1 -1
  56. package/dist/esm/{cell-renderer-11cf-lu3.js → cell-renderer-D9ze8OJw.js} +3 -3
  57. package/dist/esm/{column.service-Cfw3L0PN.js → column.service-pu_fdQ0S.js} +5 -4
  58. package/dist/{revo-grid/dimension.helpers-fl4HSSK9.js → esm/dimension.helpers-Cln9sALu.js} +52 -9
  59. package/dist/{revo-grid/edit.utils-4e9fsqOR.js → esm/edit.utils-3ZbhQCv_.js} +1 -1
  60. package/dist/esm/{header-cell-renderer-Cqtg1ETB.js → header-cell-renderer-YCiVIQ2E.js} +1 -1
  61. package/dist/esm/{index-D24ku9ej.js → index-BvMNbQyq.js} +1 -1
  62. package/dist/esm/index.js +14 -11
  63. package/dist/esm/loader.js +1 -1
  64. package/dist/esm/revo-grid.entry.js +113 -68
  65. package/dist/esm/revo-grid.js +1 -1
  66. package/dist/esm/revogr-attribution_7.entry.js +51 -19
  67. package/dist/esm/revogr-clipboard_3.entry.js +4 -4
  68. package/dist/esm/revogr-data_4.entry.js +21 -15
  69. package/dist/esm/revogr-filter-panel.entry.js +9 -9
  70. package/dist/esm/{column.drag.plugin-DDBKeTGI.js → row-resize.plugin-DBOgjLdE.js} +748 -87
  71. package/dist/{revo-grid/text-editor-DlMnLkRK.js → esm/text-editor-eHtrwvxH.js} +2 -2
  72. package/dist/{revo-grid/throttle-Cpk1LoGk.js → esm/throttle-3rhqdcLy.js} +3 -3
  73. package/dist/{revo-grid/viewport.store-BSXmsiZc.js → esm/viewport.store-DWMKRDSH.js} +1 -1
  74. package/dist/revo-grid/{cell-renderer-11cf-lu3.js → cell-renderer-D9ze8OJw.js} +3 -3
  75. package/dist/revo-grid/{column.service-Cfw3L0PN.js → column.service-pu_fdQ0S.js} +5 -4
  76. package/dist/{esm/dimension.helpers-fl4HSSK9.js → revo-grid/dimension.helpers-Cln9sALu.js} +52 -9
  77. package/dist/{esm/edit.utils-4e9fsqOR.js → revo-grid/edit.utils-3ZbhQCv_.js} +1 -1
  78. package/dist/revo-grid/{header-cell-renderer-Cqtg1ETB.js → header-cell-renderer-YCiVIQ2E.js} +1 -1
  79. package/dist/revo-grid/{index-D24ku9ej.js → index-BvMNbQyq.js} +1 -1
  80. package/dist/revo-grid/index.esm.js +14 -11
  81. package/dist/revo-grid/revo-grid.entry.js +113 -68
  82. package/dist/revo-grid/revo-grid.esm.js +1 -1
  83. package/dist/revo-grid/revogr-attribution_7.entry.js +51 -19
  84. package/dist/revo-grid/revogr-clipboard_3.entry.js +4 -4
  85. package/dist/revo-grid/revogr-data_4.entry.js +21 -15
  86. package/dist/revo-grid/revogr-filter-panel.entry.js +9 -9
  87. package/dist/revo-grid/{column.drag.plugin-DDBKeTGI.js → row-resize.plugin-DBOgjLdE.js} +748 -87
  88. package/dist/{esm/text-editor-DlMnLkRK.js → revo-grid/text-editor-eHtrwvxH.js} +2 -2
  89. package/dist/{esm/throttle-Cpk1LoGk.js → revo-grid/throttle-3rhqdcLy.js} +3 -3
  90. package/dist/{esm/viewport.store-BSXmsiZc.js → revo-grid/viewport.store-DWMKRDSH.js} +1 -1
  91. package/dist/types/components/data/revogr-data.d.ts +1 -0
  92. package/dist/types/components/overlay/keyboard.service.d.ts +6 -0
  93. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +3 -1
  94. package/dist/types/components/revoGrid/revo-grid.d.ts +9 -1
  95. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +3 -1
  96. package/dist/types/components.d.ts +23 -10
  97. package/dist/types/plugins/filter/filter.constants.d.ts +6 -0
  98. package/dist/types/plugins/filter/filter.plugin.d.ts +15 -0
  99. package/dist/types/plugins/groupingRow/grouping.const.d.ts +1 -0
  100. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +5 -7
  101. package/dist/types/plugins/groupingRow/grouping.sorting.service.d.ts +7 -0
  102. package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +9 -0
  103. package/dist/types/plugins/index.d.ts +1 -0
  104. package/dist/types/plugins/row-resize/index.d.ts +3 -0
  105. package/dist/types/plugins/row-resize/row-resize.plugin.d.ts +46 -0
  106. package/dist/types/plugins/row-resize/row-resize.types.d.ts +40 -0
  107. package/dist/types/plugins/row-resize/row-resize.utils.d.ts +14 -0
  108. package/dist/types/plugins/sorting/sorting.plugin.d.ts +5 -0
  109. package/dist/types/services/data.provider.d.ts +2 -0
  110. package/dist/types/services/dimension.provider.d.ts +7 -1
  111. package/dist/types/store/dataSource/data.pending.plugin.d.ts +9 -0
  112. package/dist/types/store/dataSource/data.store.d.ts +10 -0
  113. package/dist/types/store/dataSource/trimmed.plugin.d.ts +5 -0
  114. package/dist/types/types/events.d.ts +1 -1
  115. package/dist/types/types/interfaces.d.ts +3 -1
  116. package/hydrate/index.js +980 -191
  117. package/hydrate/index.mjs +980 -191
  118. package/package.json +1 -1
  119. package/readme.md +4 -1
  120. package/standalone/column.service.js +1 -1
  121. package/standalone/data.store.js +1 -1
  122. package/standalone/dimension.helpers.js +1 -1
  123. package/standalone/index.js +1 -1
  124. package/standalone/local.scroll.timer.js +1 -1
  125. package/standalone/revo-grid.js +1 -1
  126. package/standalone/revogr-data2.js +1 -1
  127. package/standalone/revogr-filter-panel.js +1 -1
  128. package/standalone/revogr-header2.js +1 -1
  129. package/standalone/revogr-overlay-selection2.js +1 -1
  130. package/standalone/revogr-row-headers2.js +1 -1
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import{h as e,proxyCustomElement as r,HTMLElement as t,createEvent as i,Host as o,transformTag as s}from"@stencil/core/internal/client";import{J as n,g as a,K as l,C as h,c as d,L as g,u as c,t as v,r as u,A as m,j as f,I as p,h as b,x as w,y as x,G as y,e as C,d as S,o as k,p as j,f as O,s as z,m as R,v as E,q as P,E as H,i as T,D as L,a as I,n as D,F}from"./column.service.js";import{j as B,i as M,k as N,l as A,b as V,g as $,e as X,D as q,f as U,d as Y,s as G,a as W,h as J}from"./data.store.js";import{d as K}from"./debounce.js";import{R as Z}from"./consts.js";import{g as _}from"./local.scroll.timer.js";import{c as Q,g as ee,a as re}from"./dimension.helpers.js";import"./platform.js";import{j as te,V as ie,k as oe}from"./revogr-row-headers2.js";import{g as se,t as ne}from"./index2.js";import{b as ae,i as le}from"./filter.button.js";import{v as he,F as de,C as ge,H as ce,D as ve,d as ue}from"./revogr-viewport-scroll2.js";import{O as me,d as fe,b as pe}from"./revogr-header2.js";import{g as be}from"./selection.utils.js";import{d as we}from"./revogr-attribution2.js";import{d as xe}from"./revogr-clipboard2.js";import{d as ye}from"./revogr-data2.js";import{o as Ce}from"./revogr-edit2.js";import{d as Se}from"./revogr-extra2.js";import{d as ke}from"./revogr-focus2.js";import{d as je}from"./revogr-order-editor2.js";import{d as Oe}from"./revogr-overlay-selection2.js";import{d as ze}from"./revogr-scroll-virtual2.js";import{d as Re}from"./revogr-temp-range2.js";import{d as Ee}from"./vnode-converter.js";const Pe={primary:"--revo-grid-primary",primaryTransparent:"--revo-grid-primary-transparent",background:"--revo-grid-background",foreground:"--revo-grid-foreground",divider:"--revo-grid-divider",shadow:"--revo-grid-shadow",text:"--revo-grid-text",border:"--revo-grid-border",headerBg:"--revo-grid-header-bg",headerColor:"--revo-grid-header-color",headerBorder:"--revo-grid-header-border",headerFocusedBg:"--revo-grid-header-focused-bg",headerHoverBg:"--revo-grid-header-hover-bg",cellBorder:"--revo-grid-cell-border",cellVerticalBorder:"--revo-grid-cell-vertical-border",focusedBg:"--revo-grid-focused-bg",rowHover:"--revo-grid-row-hover",rowHeadersBg:"--revo-grid-row-headers-bg",rowHeadersColor:"--revo-grid-row-headers-color",cellDisabledBg:"--revo-grid-cell-disabled-bg",filterPanelBg:"--revo-grid-filter-panel-bg",filterPanelBorder:"--revo-grid-filter-panel-border",filterPanelShadow:"--revo-grid-filter-panel-shadow",filterPanelInputBg:"--revo-grid-filter-panel-input-bg",filterPanelDivider:"--revo-grid-filter-panel-divider",filterPanelSelectBorder:"--revo-grid-filter-panel-select-border",filterPanelSelectBorderHover:"--revo-grid-filter-panel-select-border-hover",filterPanelReorderAccent:"--revo-grid-filter-panel-reorder-accent",filterPanelReorderColor:"--revo-grid-filter-panel-reorder-color",filterPanelText:"--revo-grid-filter-panel-text",filterPanelMutedText:"--revo-grid-filter-panel-muted-text",filterPanelFocusRing:"--revo-grid-filter-panel-focus-ring",filterPanelIcon:"--revo-grid-filter-panel-icon",filterPanelIconActive:"--revo-grid-filter-panel-icon-active",filterPanelSelectArrow:"--revo-grid-filter-panel-select-arrow",filterPanelSelectArrowDisabled:"--revo-grid-filter-panel-select-arrow-disabled",fontFamily:"--revo-grid-font-family",fontSize:"--revo-grid-font-size",headerHeight:"--revo-grid-header-height",headerFontSize:"--revo-grid-header-font-size",headerFontWeight:"--revo-grid-header-font-weight",headerTextTransform:"--revo-grid-header-text-transform",headerTextAlign:"--revo-grid-header-text-align",cellTextAlign:"--revo-grid-cell-text-align",headerPadding:"--revo-grid-header-padding",cellPadding:"--revo-grid-cell-padding",selectionBorder:"--revo-grid-selection-border",selectionBg:"--revo-grid-selection-bg",autofillHandleBg:"--revo-grid-autofill-handle-bg",autofillHandleBorder:"--revo-grid-autofill-handle-border",rangeHandleBg:"--revo-grid-range-handle-bg",temporaryRangeBorder:"--revo-grid-temporary-range-border",temporarySelectionBorder:"--revo-grid-temporary-selection-border",headerResizeHover:"--revo-grid-header-resize-hover",buttonText:"--revo-grid-button-text",buttonBg:"--revo-grid-button-bg",buttonSuccessBg:"--revo-grid-button-success-bg",buttonDangerBg:"--revo-grid-button-danger-bg",buttonOutlineBorder:"--revo-grid-button-outline-border",buttonOutlineText:"--revo-grid-button-outline-text"};function He(e){return e}function Te({count:e,originItemSize:r,sizes:t}){const i=Math.max(0,e);let o=i*r;for(let e in t){const s=Number(e);!Number.isInteger(s)||s<0||s>=i||s+""!==e||(o+=t[e]-r)}return o}function Le(){return Object.assign(Object.assign({},{indexes:[],count:0,trimmed:null,sizes:{},positionIndexToItem:{},indexToItem:{},positionIndexes:[]}),{realSize:0,originItemSize:0,renderOffset:0})}class Ie{constructor(e){this.type=e,this.store=B(Le()),this.store.use((e=>{let r=null,t=null;return{set(i,o){switch(i){case"sizes":if(r&&r===o)return void(r=null);t=null;break;case"trimmed":{const i=o;t||(t=e.store.get("sizes")),r=function(e,r){const t={},i=Object.keys(e||{}).map(Number).sort(((e,r)=>e-r)),o=i[i.length-1];let s=0;for(let i=0;i<=o;i++)void 0!==r[i]&&(s++,void 0!==e[i])||void 0!==e[i]&&(t[i-s]=e[i]);return t}(t,i||{}),e.setSizes(r);break}}}}})({store:this.store,setSizes:this.setDimensionSize.bind(this)})),this.store.use((e=>({set(r){switch(r){case"count":case"sizes":case"originItemSize":e.setStore({realSize:Te({count:e.store.get("count"),sizes:e.store.get("sizes"),originItemSize:e.store.get("originItemSize")})})}}}))({store:this.store,setStore:this.setStore.bind(this)}))}getCurrentState(){const e=Le();return n(Object.keys(e),((e,r)=>{const t=this.store.get(r);return e[r]=t,e}),e)}dispose(){M(this.store,Le())}setStore(e){M(this.store,e)}drop(){M(this.store,Object.assign(Object.assign({},{indexes:[],count:0,trimmed:null,sizes:{},positionIndexToItem:{},indexToItem:{},positionIndexes:[]}),{renderOffset:0}))}setDimensionSize(e={}){const r=Q(this.store.get("originItemSize"),e);M(this.store,Object.assign(Object.assign({},r),{sizes:e}))}updateSizesPositionByIndexes(e,r=[]){const t=Object.assign({},this.store.get("sizes"));if(!Object.keys(t).length)return;const i={};r.forEach(((e,r)=>{i[e]||(i[e]=[]),i[e].push(r)}));const o={};e.forEach(((e,r)=>{const s=i[e];if(s&&s.length>0){const e=s.shift();void 0!==e&&e!==r&&"number"==typeof t[e]&&(o[r]=t[e],delete t[e])}})),Object.keys(o).length&&this.setDimensionSize(Object.assign(Object.assign({},t),o))}}class De{constructor(){this.unsubscribe=[],this.store=B({range:null,tempRange:null,tempRangeType:null,focus:null,edit:null,lastCell:null,nextFocus:null}),this.store.on("set",((e,r)=>{"tempRange"!==e||r||this.store.set("tempRangeType",null)}))}onChange(e,r){this.unsubscribe.push(this.store.onChange(e,r))}clearFocus(){M(this.store,{focus:null,range:null,edit:null,tempRange:null})}setFocus(e,r){M(this.store,r?{focus:e,range:a(e,r),edit:null,tempRange:null}:{focus:e})}setNextFocus(e){M(this.store,{nextFocus:e})}setTempArea(e){M(this.store,{tempRange:null==e?void 0:e.area,tempRangeType:null==e?void 0:e.type,edit:null})}clearTemp(){M(this.store,{tempRange:null})}setRangeArea(e){M(this.store,{range:e,edit:null,tempRange:null})}setRange(e,r){const t=a(e,r);this.setRangeArea(t)}setLastCell(e){M(this.store,{lastCell:e})}setEdit(e){const r=this.store.get("focus");M(this.store,r&&"string"==typeof e?{edit:{x:r.x,y:r.y,val:e}}:{edit:null})}dispose(){this.unsubscribe.forEach((e=>e())),this.store.dispose()}}class Fe{constructor(r,t){this.revogrid=r,this.providers=t,this.h=e,this.subscriptions={}}addEventListener(e,r){this.revogrid.addEventListener(e,r),this.subscriptions[e]=r}watch(e,r,{immediate:t}={immediate:!1}){var i;const o=Object.getOwnPropertyDescriptor(this.revogrid,e)||Object.getOwnPropertyDescriptor(this.revogrid.constructor.prototype,e);Object.defineProperty(this.revogrid,e,{configurable:!0,enumerable:null===(i=null==o?void 0:o.enumerable)||void 0===i||i,set(e){var t;if(!1!==r(e))return null===(t=null==o?void 0:o.set)||void 0===t?void 0:t.call(this,e)},get(){var e;return null===(e=null==o?void 0:o.get)||void 0===e?void 0:e.call(this)}}),t&&r((null==o?void 0:o.get)?o.get.call(this.revogrid):null==o?void 0:o.value)}removeEventListener(e){this.revogrid.removeEventListener(e,this.subscriptions[e]),delete this.subscriptions[e]}emit(e,r){const t=new CustomEvent(e,{detail:r,cancelable:!0});return this.revogrid.dispatchEvent(t),t}clearSubscriptions(){for(let e in this.subscriptions)this.removeEventListener(e)}destroy(){this.clearSubscriptions()}}function Be(e,r){for(var t=-1,i=null==e?0:e.length;++t<i&&!1!==r(e[t],t,e););return e}function Me(e,r){return(A(e)?Be:l)(e,function(e){return"function"==typeof e?e:N}(r))}var Ne;!function(e){e.headerClickAutosize="headerClickAutoSize",e.autoSizeOnTextOverlap="autoSizeOnTextOverlap",e.autoSizeAll="autoSizeAll"}(Ne||(Ne={}));class Ae extends Fe{constructor(e,r,t){super(e,r),this.providers=r,this.config=t,this.autoSizeColumns=null,this.dataResolve=null,this.dataReject=null,this.letterBlockSize=(null==t?void 0:t.letterBlockSize)||7,(null==t?void 0:t.preciseSize)&&(this.precsizeCalculationArea=this.initiatePresizeElement(),e.appendChild(this.precsizeCalculationArea));const i=({detail:{source:e}})=>{this.setSource(e)};switch(this.addEventListener("beforecolumnsset",(({detail:{columns:e}})=>{this.columnSet(e)})),null==t?void 0:t.mode){case Ne.autoSizeOnTextOverlap:this.addEventListener("aftersourceset",i),this.addEventListener("afteredit",(({detail:e})=>{this.afteredit(e)}));break;case Ne.autoSizeAll:this.addEventListener("aftersourceset",i),this.addEventListener("afteredit",(({detail:e})=>{this.afterEditAll(e)}));break;default:this.addEventListener("headerdblclick",(({detail:e})=>{const r=h(e.column),t=this.getColumnSize(e.index,r);t&&this.providers.dimension.setCustomSizes(r,{[e.index]:t},!0)}))}}async setSource(e){let r=this.autoSizeColumns;if(this.dataReject&&(this.dataReject(),this.clearPromise()),!r){const e=new Promise(((e,r)=>{this.dataResolve=e,this.dataReject=r}));try{r=await e}catch(e){return}}Me(r,((t,i)=>{const o={};Me(r[i],(r=>{r.size=o[r.index]=e.reduce(((e,t)=>Math.max(e,this.getLength(t[r.prop]))),this.getLength(r.name||""))})),this.providers.dimension.setCustomSizes(i,o,!0)}))}getLength(e){var r;if(!e)return 0;try{const t=""+e;return(null===(r=this.config)||void 0===r?void 0:r.preciseSize)?(this.precsizeCalculationArea.innerText=t,this.precsizeCalculationArea.scrollWidth+30):t.length*this.letterBlockSize+30}catch(e){return 0}}afteredit(e){let r;r=this.isRangeEdit(e)?e.data:{0:{[e.prop]:e.val}},Me(this.autoSizeColumns,((e,t)=>{const i={};Me(e,(e=>{var t;const o=n(r,((r,t)=>void 0===t[e.prop]?r:Math.max(r||0,this.getLength(t[e.prop]))),void 0);o&&(null!==(t=e.size)&&void 0!==t?t:0)<o&&(e.size=i[e.index]=o)})),this.providers.dimension.setCustomSizes(t,i,!0)}))}afterEditAll(e){const r={};this.isRangeEdit(e)?Me(e.data,(e=>Me(e,((e,t)=>r[t]=!0)))):r[e.prop]=!0,Me(this.autoSizeColumns,((e,t)=>{const i={};Me(e,(e=>{if(r[e.prop]){const r=this.getColumnSize(e.index,t);r&&(i[e.index]=r)}})),this.providers.dimension.setCustomSizes(t,i,!0)}))}getColumnSize(e,r){var t,i;const o=null===(i=null===(t=this.autoSizeColumns)||void 0===t?void 0:t[r])||void 0===i?void 0:i[e];return o?n(this.providers.data.stores,((e,r)=>{const t=n(r.store.get("items"),((e,t,i)=>{const s=V(r.store,i);return Math.max(e||0,this.getLength(null==s?void 0:s[o.prop]))}),0);return Math.max(e,t)}),o.size||0):0}columnSet(e){var r;for(let t of d){const i=t,o=e[i];for(let e in o)(o[e].autoSize||(null===(r=this.config)||void 0===r?void 0:r.allColumns))&&(this.autoSizeColumns||(this.autoSizeColumns={}),this.autoSizeColumns[i]||(this.autoSizeColumns[i]={}),this.autoSizeColumns[i][e]=Object.assign(Object.assign({},o[e]),{index:parseInt(e,10)}))}this.dataResolve&&(this.dataResolve(this.autoSizeColumns||{}),this.clearPromise())}clearPromise(){this.dataResolve=null,this.dataReject=null}isRangeEdit(e){return!!e.data}initiatePresizeElement(){var e;const r={position:"absolute",fontSize:"14px",height:"0",width:"0",whiteSpace:"nowrap",top:"0",overflowX:"scroll",display:"block"},t=document.createElement("div");for(let i in r)t.style[i]=null!==(e=r[i])&&void 0!==e?e:"";return t.classList.add("revo-test-container"),t}destroy(){var e;super.destroy(),null===(e=this.precsizeCalculationArea)||void 0===e||e.remove()}}class Ve extends Fe{constructor(e,r){super(e,r),this.providers=r,this.stretchedColumn=null,this.scrollSize=se(document),this.addEventListener("beforecolumnapplied",(({detail:{columns:e}})=>this.applyStretch(e)))}setScroll({type:e,hasScroll:r}){var t;"rgRow"===e&&this.stretchedColumn&&(null===(t=this.stretchedColumn)||void 0===t?void 0:t.initialSize)===this.stretchedColumn.size&&r&&(this.stretchedColumn.size-=this.scrollSize,this.apply(),this.dropChanges())}activateChanges(){this.addEventListener("scrollchange",(({detail:e})=>this.setScroll(e)))}dropChanges(){this.stretchedColumn=null,this.removeEventListener("scrollchange")}apply(){if(!this.stretchedColumn)return;const e="rgCol",r=this.providers.dimension.stores[e].store.get("sizes");this.providers.dimension.setCustomSizes(e,Object.assign(Object.assign({},r),{[this.stretchedColumn.index]:this.stretchedColumn.size}),!0)}applyStretch(e){this.dropChanges();let r=this.revogrid.clientWidth-1;if(Me(e,((e,t)=>{const i=this.providers.dimension.stores[t].store.get("realSize");r-=i})),this.revogrid.rowHeaders){const e=this.providers.data.stores.rgRow.store.get("source").length,t=this.revogrid.rowHeaders,i=te(e,"object"==typeof t?t:void 0);i&&(r-=i)}if(r>0){const t=e.rgCol.length-1,i=e.rgCol[t],o=(null==i?void 0:i.size)||this.revogrid.colSize||0,s=r+o-1;i&&!i.autoSize&&o<s&&(this.stretchedColumn={initialSize:s,index:t,size:s},this.apply(),this.activateChanges())}}}function $e(e){return!!e.applyStretch}const Xe={mime:"text/csv",fileKind:"csv",bom:!0,columnDelimiter:",",rowDelimiter:"\r\n",encoding:""},qe=RegExp('"',"g");class Ue{constructor(e={}){this.options=Object.assign(Object.assign({},Xe),e)}doExport({data:e,headers:r,props:t}){let i=this.options.bom?"\ufeff":"";return(null==r?void 0:r.length)>0&&r.forEach((e=>{e.length&&(i+=this.prepareHeader(e,this.options.columnDelimiter),i+=this.options.rowDelimiter)})),e.forEach(((e,r)=>{r>0&&(i+=this.options.rowDelimiter),c(e)?i+=this.parseCell(v(e),this.options.columnDelimiter):i+=t.map((r=>this.parseCell(e[r],this.options.columnDelimiter))).join(this.options.columnDelimiter)})),i}prepareHeader(e,r){let t="";return t+=e.map((e=>this.parseCell(e,r,!0))).join(r),t}parseCell(e,r,t=!1){let i=e;return"string"!=typeof e&&(i=JSON.stringify(e)),void 0===i?"":""!==i&&(t||["\r",'"',"\n",r].some((e=>i.indexOf(e)>=0)))?`"${i.replace(qe,'""')}"`:i}}var Ye;!function(e){e.csv="csv"}(Ye||(Ye={}));class Ge extends Fe{async exportString(e={},r=Ye.csv){const t=await this.beforeexport();return t?this.formatter(r,e).doExport(t):null}async exportBlob(e={},r=Ye.csv){return await this.getBlob(this.formatter(r,e))}async exportFile(e={},r=Ye.csv){const t=this.formatter(r,e),i=window.URL||window.webkitURL,o=document.createElement("a"),{filename:s,fileKind:n}=t.options,a=`${s}.${n}`,l=await this.getBlob(t),h=l?i.createObjectURL(l):"";o.style.display="none",o.setAttribute("href",h),o.setAttribute("download",a),this.revogrid.appendChild(o),o.dispatchEvent(new MouseEvent("click")),this.revogrid.removeChild(o),await ne(120),i.revokeObjectURL(h)}async getBlob(e){const r=`${e.options.mime};charset=${e.options.encoding}`;if("undefined"!=typeof Blob){const t=await this.beforeexport();return t?new Blob([e.doExport(t)],{type:r}):null}return null}async beforeexport(){let e=await this.getData();const r=this.emit("beforeexport",{data:e});return r.defaultPrevented?null:r.detail.data}async getData(){const e=await this.getSource(),r=[],t=[];d.forEach(((e,i)=>{t.push(this.getColPerSource(e).then((e=>r[i]=e)))})),await Promise.all(t);const i={headers:[],props:[]};for(let e of r)e.headers.forEach(((e,r)=>{i.headers[r]||(i.headers[r]=[]),i.headers[r].push(...e)})),i.props.push(...e.props);return Object.assign({data:e},i)}async getColPerSource(e){const r=await this.revogrid.getColumnStore(e),t=r.get("source"),i=r.get("items"),o=r.get("groupingDepth"),s=r.get("groups"),n=[],a=[];i.forEach((e=>{const r=t[e].prop;n.push(t[e].name||""),a.push(r)}));const l=this.getGroupHeaders(o,s,i);return l.push(n),{headers:l,props:a}}getGroupHeaders(e,r,t){const i=[],o=function(e){return null!=e&&e.length?function(e,r,t,i){var o=e.length;for((t=g(t))<0&&(t=-t>o?0:o+t),(i=void 0===i||i>o?o:g(i))<0&&(i+=o),i=t>i?0:function(e){return e?function(e,r,t){return e==e&&(e=(e=e<=t?e:t)>=0?e:0),e}(g(e),0,4294967295):0}(i);t<i;)e[t++]=r;return e}(e,"",void 0,void 0):[]}(Array(t.length));for(let t=0;t<e;t++){const e=[...o];(i.push(e),r[t])&&r[t].forEach((r=>{const t=r.indexes[0];"number"==typeof t&&(e[t]=r.name)}))}return i}async getSource(){const e=[],r=[];return u.forEach((t=>{const i=[];e.push(i);const o=this.revogrid.getVisibleSource(t).then((e=>i.push(...e)));r.push(o)})),await Promise.all(r),e.reduce(((e,r)=>(e.push(...r),e)),[])}formatter(e,r={}){if(e===Ye.csv)return new Ue(r);throw Error("Unknown format")}}const We=(e,r)=>{if(void 0===e||null===e&&!r)return!0;"string"!=typeof e&&(e=JSON.stringify(e));const t=null==r?void 0:(""+r).toLocaleLowerCase();return 0===(null==t?void 0:t.length)||e.toLocaleLowerCase()===t},Je=(e,r)=>!We(e,r);Je.extra="input",We.extra="input";const Ke=function(e,r){let t;return"number"==typeof e&&null!=r&&(t=parseFloat(null==r?void 0:""+r),e>t)};Ke.extra="input";const Ze=function(e,r){return We(e,r)||Ke(e,r)};Ze.extra="input";const _e=function(e,r){let t;return"number"==typeof e&&null!=r&&(t=parseFloat(""+r),e<t)};_e.extra="input";const Qe=function(e,r){return We(e,r)||_e(e,r)};Qe.extra="input";const er=Object.freeze({null:!0,undefined:!0,emptyString:!0,whitespaceOnlyString:!1,emptyArray:!1,missingProperty:!0}),rr=["null","undefined","emptyString","whitespaceOnlyString","emptyArray","missingProperty"];function tr(e,r){const t=Object.assign({},er);for(const i of[e,r])if(i){for(const e of rr)void 0!==i[e]&&(t[e]=i[e]);void 0!==i.isBlank&&(t.isBlank=i.isBlank)}return t}function ir(e,r){const t=r.blankSemantics;let i;return i=r.hasOwnProperty?null===e?!0===t.null:void 0===e?!0===t.undefined:""===e?!0===t.emptyString:"string"==typeof e&&e.length>0&&""===e.trim()?!0===t.whitespaceOnlyString:!(!Array.isArray(e)||0!==e.length)&&!0===t.emptyArray:!0===t.missingProperty,t.isBlank?t.isBlank(e,r,i):i}const or=(e,r,t)=>ir(t?t.sourceValue:e,function(e,r){return null!=r?r:{model:{},property:"",sourceValue:e,parsedValue:e,hasOwnProperty:!0,blankSemantics:er}}(e,t)),sr=(e,r)=>!(!e||r&&("string"!=typeof e&&(e=JSON.stringify(e)),"string"!=typeof r&&(r=JSON.stringify(r)),0!==e.toLocaleLowerCase().indexOf(r.toLocaleLowerCase())));sr.extra="input";const nr=(e,r)=>!r||!!e&&(!r||("string"!=typeof e&&(e=JSON.stringify(e)),e.toLocaleLowerCase().indexOf((""+r).toLowerCase())>-1)),ar=(e,r)=>!nr(e,r);ar.extra="input",nr.extra="input";const lr={none:()=>!0,empty:or,notEmpty:(e,r,t)=>!or(e,0,t),eq:We,notEq:Je,begins:sr,contains:nr,notContains:ar,eqN:We,neqN:Je,gt:Ke,gte:Ze,lt:_e,lte:Qe},hr={string:["notEmpty","empty","eq","notEq","begins","contains","notContains"],number:["notEmpty","empty","eqN","neqN","gt","gte","lt","lte"],boolean:["notEmpty","empty"],array:["notEmpty","empty"]},dr={none:"None",empty:"Is blank",notEmpty:"Is not blank",eq:"Equal",notEq:"Not equal",begins:"Begins with",contains:"Contains",notContains:"Does not contain",eqN:"=",neqN:"!=",gt:">",gte:">=",lt:"<",lte:"<="},gr="filter",cr="filterconfigchanged",vr="revogr-filter-panel";class ur extends Fe{constructor(r,t,i){var o;super(r,t),this.revogrid=r,this.config=i,this.filterCollection={},this.multiFilterItems={},this.filterByType=Object.assign({},hr),this.filterNameIndexByType=Object.assign({},dr),this.filterFunctionsIndexedByType=Object.assign({},lr),this.filterProp=ae,this.allowDuplicateOperators=!0,i&&this.initConfig(i);const s=this.revogrid.registerVNode.filter((e=>"object"==typeof e&&e.t!==vr));this.revogrid.registerVNode=[...s,e("revogr-filter-panel",{filterNames:this.filterNameIndexByType,filterEntities:this.filterFunctionsIndexedByType,filterCaptions:null===(o=null==i?void 0:i.localization)||void 0===o?void 0:o.captions,onFilterChange:e=>this.onFilterChange(e.detail),onResetChange:e=>this.onFilterReset(e.detail),disableDynamicFiltering:null==i?void 0:i.disableDynamicFiltering,closeOnOutsideClick:null==i?void 0:i.closeFilterPanelOnOutsideClick,allowDuplicateOperators:this.allowDuplicateOperators,ref:e=>this.pop=e}," ",this.extraContent())];const n=async()=>{const e=Object.keys(this.filterCollection);e.length>0&&e.forEach(((e,r)=>{this.multiFilterItems[e]||(this.multiFilterItems[e]=[{id:r,type:this.filterCollection[e].type,value:this.filterCollection[e].value,relation:"and"}])})),0!==Object.keys(this.multiFilterItems).length&&(await ne(),await this.runFiltering(this.multiFilterItems))};this.addEventListener("headerclick",(e=>this.headerclick(e))),this.addEventListener(cr,(({detail:e})=>{if(e){if("object"==typeof e){const r=Object.keys(e),t=!r.includes("multiFilterItems")&&r.includes("allowDuplicateOperators");if(this.initConfig(t?Object.assign(Object.assign({},e),{multiFilterItems:this.multiFilterItems}):e),!e.multiFilterItems||!Object.keys(e.multiFilterItems).length)return t?void n():void this.clearFiltering()}n()}else this.clearFiltering()})),this.addEventListener("aftersourceset",n),this.addEventListener("filter",(({detail:e})=>this.onFilterChange(e)))}beforeshow(e){}extraContent(){return null}initConfig(e){var r;if(this.config=e,this.allowDuplicateOperators=null===(r=e.allowDuplicateOperators)||void 0===r||r,this.pop&&(this.pop.allowDuplicateOperators=this.allowDuplicateOperators),this.multiFilterItems=e.multiFilterItems?Object.assign({},e.multiFilterItems):{},e.customFilters)for(let r in e.customFilters){const t=e.customFilters[r];this.filterByType[t.columnFilterType]||(this.filterByType[t.columnFilterType]=[]),this.filterByType[t.columnFilterType].push(r),this.filterFunctionsIndexedByType[r]=t.func,this.filterNameIndexByType[r]=t.name}e.filterProp&&(this.filterProp=e.filterProp);const t=e.include;if(t){const e={};for(let r in this.filterByType){const i=this.filterByType[r].filter((e=>t.indexOf(e)>-1));i.length&&(e[r]=i)}Object.keys(e).length>0&&(this.filterByType=e)}if(e.collection){const r={};for(const t of Object.keys(e.collection)){const i=e.collection[t];this.filterFunctionsIndexedByType[i.type]&&(r[t]=i)}this.filterCollection=r}else this.filterCollection={};if(e.localization&&e.localization.filterNames){const r=e.localization.filterNames;Object.keys(r).forEach((e=>{null!=this.filterNameIndexByType[e]&&(this.filterNameIndexByType[e]=r[e])}))}}async headerclick(e){var r,t;const i=null===(r=e.detail.originalEvent)||void 0===r?void 0:r.target,o=le(i);if(!o)return;if(e.preventDefault(),!this.pop)return;const s=e.detail.prop,n=await this.pop.getChanges();if((null==n?void 0:n.prop)===s)return void await this.pop.show();const a=(o instanceof HTMLElement?o:i).getBoundingClientRect(),l=Object.assign(Object.assign(Object.assign({},e.detail),this.filterCollection[s]),{x:a.x,y:a.y+a.height,anchorY:a.y,autoCorrect:!0,filterTypes:this.getColumnFilter(e.detail.filter),filterItems:this.multiFilterItems,extraContent:this.extraHyperContent,extraBottomContent:this.extraBottomHyperContent});null===(t=this.beforeshow)||void 0===t||t.call(this,l),this.pop.show(l)}getColumnFilter(e){let r="string";if(!e)return{[r]:this.filterByType[r]};if(this.isValidType(e))r=e;else if("object"==typeof e&&e.length)return e.reduce(((e,r)=>(this.isValidType(r)&&(e[r]=this.filterByType[r]),e)),{});return{[r]:this.filterByType[r]}}isValidType(e){return!("string"!=typeof e||!this.filterByType[e])}async onFilterChange(e){this.multiFilterItems=e,this.runFiltering(this.multiFilterItems)}onFilterReset(e){delete this.multiFilterItems[null!=e?e:""],this.onFilterChange(this.multiFilterItems)}async doFiltering(e,r,t,i){const o=[],s={};t.forEach((e=>{const r=Object.assign({},e),t=i[r.prop];s[r.prop]=r,r[this.filterProp]&&!t&&(delete r[this.filterProp],o.push(r)),!r[this.filterProp]&&t&&(o.push(r),r[this.filterProp]=!0)}));const n=this.getRowFilter(r,i,s),{defaultPrevented:a,detail:l}=this.emit("beforefiltertrimmed",{collection:e,itemsToFilter:n,source:r,filterItems:i});a||(this.providers.data.setTrimmed({[gr]:l.itemsToFilter}),this.providers.column.updateColumns(o),this.emit("afterfilterapply",{multiFilterItems:i,source:r,collection:e}))}async clearFiltering(){this.multiFilterItems={},await this.runFiltering(this.multiFilterItems)}async runFiltering(e){const r={},t=Object.keys(e);for(const i of t)if(e[i].length>0){const t=e[i][0];r[i]={type:t.type,value:t.value}}this.filterCollection=r;const i=this.providers.column.getColumns(),o=this.providers.data.stores.rgRow.store.get("source"),{defaultPrevented:s,detail:n}=this.emit("beforefilterapply",{collection:this.filterCollection,source:o,columns:i,filterItems:this.multiFilterItems});s||this.doFiltering(n.collection,n.source,n.columns,n.filterItems)}getRowFilter(e,r,t){var i,o;const s=Object.keys(r),n={};for(const e of s)n[e]=tr(null===(i=this.config)||void 0===i?void 0:i.blankSemantics,null===(o=t[e])||void 0===o?void 0:o.blankSemantics);const a={};for(let i=0;i<e.length;i++)for(const o of s)this.shouldTrimRow(r[o],o,n[o],t[o],e[i])&&(a[i]=!0);return a}shouldTrimRow(e,r,t,i,o={}){let s=0,n=[];const a=Object.hasOwn(o,r),l=o[r],h=(null==i?void 0:i.cellParser)?i.cellParser(o,i):l,d={model:o,column:i,property:r,sourceValue:l,parsedValue:h,hasOwnProperty:a,blankSemantics:t};for(const[r,t]of e.entries()){const i=this.filterFunctionsIndexedByType[t.type];if("or"===t.relation){if(n=[],i(h,t.value,d))continue;s++}else if(n.push(!i(h,t.value,d)),mr(r,e)){if(fr(n)){n=[];continue}s+=n.length,n=[]}}return s===e.length}}function mr(e,r){const t=r[e+1];return!t||!!t.relation&&"and"!==t.relation}function fr(e){return!e.includes(!0)}function pr(e){for(const r of Object.keys(e||{}))if(null==e?void 0:e[r])return!0;return!1}function br(e,r){return e+""==r+""}function wr(e,r,t){const i=function(e,r){const t=[],i=r=>{(null==e?void 0:e[r])&&!t.some((e=>br(e,r)))&&t.push(r)};return null==r||r.forEach(i),Object.keys(e||{}).forEach(i),t}(e,t);if(i.length<=1)return;const o=i.findIndex((e=>br(e,r)));return o>=0?o+1:void 0}function xr(e,r,t){const i=t?m(e,t):null==e?void 0:e[r];return"number"==typeof i?i:null==i?void 0:(""+i).toLowerCase()}function yr(e){return""===e||null==e}function Cr(e,r){if(e===r)return 0;const t=yr(e),i=yr(r);return t||i?t&&i?0:t?-1:1:e>r?1:-1}function Sr(e,r,t={},i,o,s){const n=Object.keys(t).length>0,a=function(e={},r){const t=[],i=r=>{const i=e[r];"function"!=typeof i||t.some((([e])=>br(e,r)))||t.push([r,i])};return null==r||r.forEach(i),Object.keys(e).forEach(i),t}(t,s);return 0===a.length?n?e:[...Array(e.length).keys()]:function(e,r,t){return r.some((r=>{const i=t[r];return c(i)&&!e.some((([e])=>br(i[f],e)))}))}(a,e,r)?e:function(e,r,t,i,o){return!r.some((e=>c(t[e])))&&!!i&&!!o&&e.every((([e])=>{const r=o[e];return!!i[e]&&!(null==r?void 0:r.cellCompare)}))}(a,e,r,i,o)?function(e,r,t,i,o){const s=t.map((([t])=>{const s=[],n=o[t];for(const i of e)s[i]=xr(r[i],t,n);return{order:i[t],values:s}}));return e.sort(((e,r)=>{for(const{order:t,values:i}of s){const o=Cr(i[e],i[r]);if(o)return"desc"===t?-o:o}return 0}))}(e,r,a,i,o):e.sort(((e,t)=>{const i=r[e],o=r[t];for(const[r,s]of a){if(c(i)&&!br(i[f],r))return e-t;if(c(o)&&!br(o[f],r))return e-t;const n=null==s?void 0:s(r,i,o);if(n)return n}return 0}))}function kr(e,r,t){const i=this.column?m(r,this.column):null==r?void 0:r[e],o=this.column?m(t,this.column):null==t?void 0:t[e];return Cr("number"==typeof i?i:null==i?void 0:(""+i).toLowerCase(),"number"==typeof o?o:null==o?void 0:(""+o).toLowerCase())}function jr(e){return(r,t,i)=>-1*e(r,t,i)}function Or(e){switch(e){case void 0:return"asc";case"asc":return"desc";case"desc":return}}function zr(e,r){var t;const i=(null===(t=null==e?void 0:e.cellCompare)||void 0===t?void 0:t.bind({order:r}))||(null==kr?void 0:kr.bind({column:e,order:r}));return"asc"==r?i:"desc"==r?jr(i):void 0}class Rr extends Fe{constructor(e,r,t){super(e,r),this.revogrid=e,this.sortingPromise=null,this.postponeSort=K(((e,r,t,i,o)=>this.runSorting(e,r,t,i,o)),50),this.applySortingConfig(t),this.addEventListener("sortingconfigchanged",(({detail:e})=>{t=e,this.applySortingConfig(e),this.startSorting(this.sorting,this.sortingFunc,this.sortingColumns,this.sortingOrder)})),this.addEventListener("beforeheaderrender",(({detail:e})=>{var r;const{data:t}=e;t.sortable&&(e.data=Object.assign(Object.assign({},t),{order:null===(r=this.sorting)||void 0===r?void 0:r[t.prop],sortIndex:wr(this.sorting,t.prop,this.sortingOrder)}))})),this.addEventListener("beforeanysource",(({detail:{type:e}})=>{if(pr(this.sorting)&&this.sortingFunc){if(this.emit("beforesourcesortingapply",{type:e,sorting:this.sorting}).defaultPrevented)return;this.startSorting(this.sorting,this.sortingFunc,this.sortingColumns,this.sortingOrder)}})),this.addEventListener("aftercolumnsset",(({detail:{order:e}})=>{if(t)return;const r=this.providers.column.getColumns(),i={},o={},s=[],n={};for(let t in e)if(e[t]){const a=p(r,t),l=zr(a,e[t]);n[t]=e[t],i[t]=l,o[t]=a,s.push(t)}this.sorting=pr(n)?n:void 0,this.sortingFunc=this.sorting?i:void 0,this.sortingColumns=this.sorting?o:void 0,this.sortingOrder=this.sorting?s:void 0})),this.addEventListener("beforeheaderclick",(e=>{var r,t,i,o;e.defaultPrevented||(null===(t=null===(r=e.detail)||void 0===r?void 0:r.column)||void 0===t?void 0:t.sortable)&&this.headerclick(e.detail.column,null===(o=null===(i=e.detail)||void 0===i?void 0:i.originalEvent)||void 0===o?void 0:o.shiftKey)}))}createSortingState(e){var r;return{sorting:e?Object.assign({},this.sorting):{},sortingFunc:e?Object.assign({},this.sortingFunc):{},sortingColumns:e?Object.assign({},this.sortingColumns):{},sortingOrder:e?[...null!==(r=this.sortingOrder)&&void 0!==r?r:[]]:[]}}setSortingState({sorting:e,sortingFunc:r,sortingColumns:t,sortingOrder:i}){this.sorting=pr(e)?e:void 0,this.sortingFunc=this.sorting?r:void 0,this.sortingColumns=this.sorting?t:void 0,this.sortingOrder=this.sorting?i:void 0}setColumnSorting(e,r,t,i,o){e.sorting[r]=t,e.sortingFunc[r]=i,e.sortingColumns[r]=o,e.sortingOrder.some((e=>e+""==r+""))||e.sortingOrder.push(r)}clearColumnSorting(e,r){delete e.sorting[r],delete e.sortingFunc[r],delete e.sortingColumns[r];const t=e.sortingOrder.findIndex((e=>e+""==r+""));t>=0&&e.sortingOrder.splice(t,1)}applySortingConfig(e){var r;if(!e)return;const t=this.createSortingState(e.additive);null===(r=e.columns)||void 0===r||r.forEach((e=>{e.order?this.setColumnSorting(t,e.prop,e.order,zr(e,e.order),e):this.clearColumnSorting(t,e.prop)})),this.setSortingState(t)}resetSortingForStore(e){const r=this.providers.data.stores[e],t=r.store.get("source"),i=r.store.get("proxyItems"),o=Array.from({length:t.length},((e,r)=>r));this.providers.dimension.updateSizesPositionByNewDataIndexes(e,o,i),r.setData({proxyItems:o})}applySortingForStore(e,r,t,i,o,s){const n=this.providers.data.stores[e],a=n.store.get("source"),l=n.store.get("proxyItems"),h=function(e,r){return e.filter((e=>!c(r[e])))}(l,a),d=function(e,r,t){if(t.length===e.length)return t;let i=0;return e.map((e=>c(r[e])?e:t[i++]))}(l,a,Sr([...h],a,t,r,i,o)),g=n.store.get("items");n.setData({proxyItems:d});const v=n.store.get("items");s||this.providers.dimension.updateSizesPositionByNewDataIndexes(e,v,g)}startSorting(e,r,t,i,o){this.sortingPromise||this.revogrid.jobsBeforeRender.push(new Promise((e=>{this.sortingPromise=e}))),"boolean"!=typeof t?this.postponeSort(e,r,t,i,o):this.postponeSort(e,r,void 0,void 0,t)}headerclick(e,r){var t;let i=Or(null===(t=this.sorting)||void 0===t?void 0:t[e.prop]);const o=this.emit("beforesorting",{column:e,order:i,additive:r});if(o.defaultPrevented)return;i=o.detail.order;const s=this.emit("beforesortingapply",{column:o.detail.column,order:i,additive:r});if(s.defaultPrevented)return;const n=zr(s.detail.column,s.detail.order);this.applyHeaderSorting(s.detail.column,s.detail.additive,i,n),this.startSorting(this.sorting,this.sortingFunc,this.sortingColumns,this.sortingOrder)}applyHeaderSorting(e,r,t,i){if(!r)return void this.setSortingState(t?{sorting:{[e.prop]:t},sortingFunc:{[e.prop]:i},sortingColumns:{[e.prop]:e},sortingOrder:[e.prop]}:this.createSortingState());const o=this.createSortingState(!0);t?this.setColumnSorting(o,e.prop,t,i,e):this.clearColumnSorting(o,e.prop),this.setSortingState(o)}runSorting(e,r,t,i,o){var s,n;if("boolean"==typeof t)return this.sort(e,r,void 0,void 0,void 0,t),null===(s=this.sortingPromise)||void 0===s||s.call(this),void(this.sortingPromise=null);this.sort(e,r,t,i,void 0,o),null===(n=this.sortingPromise)||void 0===n||n.call(this),this.sortingPromise=null}sort(e,r,t,i,o=u,s=!1){let n,a,l=o,h=s;if(Array.isArray(t)?(l=t,h="boolean"==typeof i&&i):(n=t,a=Array.isArray(i)?i:void 0),Object.keys(e||{}).length)for(let t of l)this.applySortingForStore(t,e,r,n,a,h);else for(let e of l)this.resetSortingForStore(e);d.forEach((e=>{this.providers.column.dataSources[e].refresh()}));const g={sorting:pr(e)?e:void 0,sortingColumns:n,sortingOrder:a,types:l};this.emit("aftersortingapply",g)}}function Er(e,r){const t=r[e],i=t[C],o={};let s=e+1;const n=r.length;for(;s<n;){const e=r[s];if(c(e)){const r=e[C];if(!r.length||!r.startsWith(i+","))break;e[b]=!1}o[s++]=!0}return t[b]=!1,{trimmed:o}}function Pr(e,r,t){const i=t[e],o=r[i],s=w(o[S]),n={};if(!s)return{trimmed:n};const a=[];o[b]=!0;let l=i+1;const h=r.length;let d=0;for(;l<h;){const e=r[l],t=c(e);if(t){if(!x(s,o,e))break;d||(d=e[y])}(!d||t&&d===e[y])&&(n[l]=!1,a.push(l)),l++}const g={trimmed:n};if(a.length){const r=[...t];r.splice(e+1,0,...a),g.items=r}return g}const Hr="grouping";function Tr(e,r,t){const i=Number.parseInt(e,10),o=r[i];return t?t["number"==typeof o?o:i]:o}function Lr(e,r){const t=Object.assign({},r);return e.forEach(((r,i)=>{c(r)&&(function(e,r,t){var i;const o=null===(i=e[t])||void 0===i?void 0:i[y];if(null==o)return!1;for(let i=t+1;i<e.length;i++){const t=e[i];if(c(t)){if(t[y]<=o)break}else if(!r[i])return!0}return!1}(e,t,i)?delete t[i]:t[i]=!0)})),t}class Ir extends Fe{getStore(e=k){return this.providers.data.stores[e].store}constructor(e,r){super(e,r)}onFocus(e){c(e.detail.model)&&e.preventDefault()}onExpand({virtualIndex:e}){const{source:r}=j(this.getStore().get("source"),this.getStore().get("proxyItems"));let t=this.getStore().get("trimmed")[Hr],i=$(this.getStore(),e);if(P(r[i])){const{trimmed:e}=Er(i,r);t=Object.assign(Object.assign({},t),e),this.revogrid.clearFocus()}else{const{trimmed:i,items:o}=Pr(e,r,this.getStore().get("items"));t=Object.assign(Object.assign({},t),i),o&&X(this.getStore(),o)}this.getStore().set("source",r),this.revogrid.addTrimmed(t,Hr)}setColumnGrouping(e){return!!(null==e?void 0:e.length)&&(e[0][O]=!0,!0)}setColumns({columns:e}){for(let r of d)if(this.setColumnGrouping(e[r]))break}onDrag(e){const{from:r,to:t}=e.detail,i=t-r>=0,{source:o}=j(this.getStore().get("source"),this.getStore().get("proxyItems")),s=this.getStore().get("items");let n=i?r:t;const a=i?t:r;for(;n<a;n++)if(c(o[s[n]]))return void e.preventDefault()}beforeTrimmedApply(e,r){if(r===gr){const r=Lr(this.getStore().get("source"),e);Object.keys(e).forEach((r=>delete e[Number.parseInt(r,10)])),Object.assign(e,r)}}beforeFilterTrimmed(e){return Lr(this.getStore().get("source"),e)}isSortingRunning(){const e=this.providers.plugins.getByClass(Rr);return!!(null==e?void 0:e.sortingPromise)}getCurrentExpandedOptions(){var e;return function(e,r){var t={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&r.indexOf(i)<0&&(t[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(i=Object.getOwnPropertySymbols(e);o<i.length;o++)r.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(t[i[o]]=e[i[o]])}return t}(null!==(e=this.options)&&void 0!==e?e:{},["expandedAll","prevExpanded"])}doSourceUpdate(e){var r,t;const i=this.getStore(),{source:o,prevExpanded:s,oldNewIndexes:n}=j(i.get("source"),i.get("proxyItems"),!0),a=Object.assign({prevExpanded:s},e),{sourceWithGroups:l,depth:h,trimmed:d,oldNewIndexMap:g}=z(o,null!==(t=null===(r=this.options)||void 0===r?void 0:r.props)&&void 0!==t?t:[],a);this.providers.data.setData(l,k,this.revogrid.disableVirtualY,{depth:h,customRenderer:null==e?void 0:e.groupLabelTemplate,cellRenderer:null==e?void 0:e.groupCellTemplate},!0),this.updateTrimmed(d,null!=n?n:{},g,l)}onDataSet(e){var r,t,i;let o={};if(!1!==(null===(r=this.options)||void 0===r?void 0:r.preserveGroupingOnUpdate)){let{prevExpanded:e}=j(this.getStore().get("source"),this.getStore().get("proxyItems"),!0);o=e}const s=e.source.filter((e=>!c(e))),n=Object.assign(Object.assign({},this.options),{prevExpanded:o}),{sourceWithGroups:a,depth:l,trimmed:h,oldNewIndexMap:d}=z(s,null!==(i=null===(t=this.options)||void 0===t?void 0:t.props)&&void 0!==i?i:[],n);e.source=a,this.providers.data.setGrouping({depth:l,customRenderer:n.groupLabelTemplate,cellRenderer:n.groupCellTemplate}),this.updateTrimmed(h,d,void 0,a)}setGrouping(e){var r,t;if(this.clearSubscriptions(),this.options=e,!(null===(t=null===(r=this.options)||void 0===r?void 0:r.props)||void 0===t?void 0:t.length))return void this.clearGrouping();const i=this.getStore(),{source:o}=j(i.get("source"),i.get("proxyItems"));o.length&&this.doSourceUpdate(Object.assign({},e));for(let e of d)if(this.setColumnGrouping(this.providers.column.getColumns(e))){this.providers.column.refreshByType(e);break}this.addEventListener("beforesourceset",(({detail:e})=>{var r,t,i;(null===(t=null===(r=this.options)||void 0===r?void 0:r.props)||void 0===t?void 0:t.length)&&(null===(i=null==e?void 0:e.source)||void 0===i?void 0:i.length)&&(this.isSortingRunning()||this.onDataSet(e))})),this.addEventListener("beforecolumnsset",(({detail:e})=>{this.setColumns(e)})),this.addEventListener("beforetrimmed",(({detail:{trimmed:e,trimmedType:r}})=>this.beforeTrimmedApply(e,r))),this.addEventListener("beforefiltertrimmed",(({detail:e})=>{e.itemsToFilter=this.beforeFilterTrimmed(e.itemsToFilter)})),this.addEventListener("aftersortingapply",(()=>{var e,r;(null===(r=null===(e=this.options)||void 0===e?void 0:e.props)||void 0===r?void 0:r.length)&&this.doSourceUpdate(this.getCurrentExpandedOptions())})),this.addEventListener("beforecellfocus",(e=>this.onFocus(e))),this.addEventListener("roworderchanged",(e=>this.onDrag(e))),this.addEventListener(R,(e=>this.onExpand(e.detail)))}clearGrouping(){d.forEach((e=>{const r=this.providers.column.getColumns(e);let t=!1;r.forEach((e=>{E(e)&&(delete e[O],t=!0)})),t&&this.providers.column.refreshByType(e)}));const{source:e,oldNewIndexes:r}=j(this.getStore().get("source"),this.getStore().get("proxyItems"),!0);this.providers.data.setData(e,k,this.revogrid.disableVirtualY,void 0,!0),this.updateTrimmed(void 0,void 0,r,e)}updateTrimmed(e={},r={},t,i=this.getStore().get("source")){const o=function(e,r,t){const i={};for(let o in e){if(o===Hr)continue;const s=e[o],n={};for(let e in s){if(!s[e])continue;const i=Tr(e,r,t);"number"==typeof i&&(n[i]=!0)}i[o]=n}return i}(this.getStore().get("trimmed"),r,t);for(let e in o)e===gr&&(o[e]=Lr(i,o[e])),this.revogrid.addTrimmed(o[e],e);this.revogrid.addTrimmed(Object.assign({},e),Hr)}}const Dr="column-drag-start";class Fr{constructor(){this.offset=0}renderAutoscroll(e,r){r&&(this.autoscrollEl=document.createElement("div"),this.autoscrollEl.classList.add("drag-auto-scroll-y"),r.appendChild(this.autoscrollEl))}autoscroll(e,r,t="translateX"){this.autoscrollEl&&(this.autoscrollEl.style.transform=`${t}(${Math.min(e+10,r-3)}px)`,this.autoscrollEl.scrollIntoView({block:"nearest",inline:"nearest"}))}start(e,{dataEl:r,gridRect:t,scrollEl:i,gridEl:o},s="left"){o.classList.add(Dr);const n=i.getBoundingClientRect();n&&(this.offset=n[s]-t[s]),this.renderAutoscroll(e,r)}stop(e){var r;e.classList.remove(Dr),this.element&&(this.element.hidden=!0),this.offset=0,null===(r=this.autoscrollEl)||void 0===r||r.remove(),this.autoscrollEl=void 0}showHandler(e,r,t="translateX"){this.element&&(this.offset&&(e=Math.max(e,this.offset)),this.element.style.transform=`${t}(${e=Math.min(e,r)}px)`,this.element.hidden=!1)}render(){const e=this.element=document.createElement("div");return e.classList.add("drag-position-y"),e.hidden=!0,e}}const Br=me,Mr="columndragmousemove",Nr="columndragend",Ar="beforecolumndragend",Vr="columndragstart";class $r extends Fe{constructor(e,r){super(e,r),this.moveFunc=K((e=>this.doMove(e)),5),this.preventHeaderClickAfterDrag=e=>{this.preventNextHeaderClick&&(this.preventNextHeaderClick=!1,e.preventDefault())},this.staticDragData=null,this.dragData=null,this.columnDragMoved=!1,this.preventNextHeaderClick=!1,this.localSubscriptions={},this.orderUi=new Fr,e.appendChild(this.orderUi.render()),e.classList.add("column-draggable"),this.localSubscriptions.mouseleave={target:document,callback:e=>this.onMouseOut(e)},this.localSubscriptions.mouseup={target:document,callback:e=>this.onMouseUp(e)},this.localSubscriptions.mousemove={target:document,callback:e=>this.move(e)},this.addEventListener(Br,(({detail:e})=>this.dragStart(e))),this.revogrid.addEventListener("beforeheaderclick",this.preventHeaderClickAfterDrag,{capture:!0})}dragStart({event:e,data:r}){if(e.defaultPrevented)return;this.preventNextHeaderClick=!1;const{defaultPrevented:t}=fe(this.revogrid,Vr,r);if(t)return;this.clearOrder();const{mouseleave:i,mouseup:o,mousemove:s}=this.localSubscriptions;i.target.addEventListener("mouseleave",i.callback),o.target.addEventListener("mouseup",o.callback);const n=e.target.closest("revogr-header"),a=e.target.closest("revogr-viewport-scroll");if(!n||!a)return;if(H(r)||"rowHeaders"===r.providers.type)return;const l=this.getDimension(r.pin||"rgCol"),h=this.revogrid.getBoundingClientRect(),d=n.getBoundingClientRect(),g=ee(l,Xr(e.x,h.left,d.left-h.left)+(l.renderOffset||0));this.staticDragData={startPos:e.x,startItem:g,pin:r.pin,dataEl:n,scrollEl:a,gridEl:this.revogrid,cols:l},this.dragData=this.getData(this.staticDragData,[]),s.target.addEventListener("mousemove",s.callback),this.orderUi.start(e,Object.assign(Object.assign({},this.dragData),this.staticDragData))}doMove(e){if(!this.staticDragData)return;const r=this.dragData=this.getData(this.staticDragData,[]);if(r&&Math.abs(this.staticDragData.startPos-e.x)>10){const t=Xr(e.x,this.dragData.gridRect.left,this.dragData.scrollOffset),i=ee(this.staticDragData.cols,t+(this.staticDragData.cols.renderOffset||0));if(this.orderUi.autoscroll(t,r.elRect.width),i.itemIndex>=this.staticDragData.cols.count)return;this.orderUi.showHandler(qr(i,this.staticDragData.startItem,this.staticDragData.cols.renderOffset||0,r.scrollOffset),r.gridRect.width)}}move(e){this.staticDragData&&Math.abs(this.staticDragData.startPos-e.x)>10&&(this.columnDragMoved=!0),fe(this.revogrid,Mr,e),this.moveFunc(e)}onMouseOut(e){this.clearOrder()}onMouseUp(e){const r=this.columnDragMoved;if(this.dragData&&this.staticDragData){let r=Xr(e.x,this.dragData.gridRect.left,this.dragData.scrollOffset);r<0&&(r=0);const t=ee(this.staticDragData.cols,r+(this.staticDragData.cols.renderOffset||0)),i=this.providers.column.stores[this.dragData.type].store,o=i.get("source"),s=[...i.get("items")],{defaultPrevented:n}=fe(this.revogrid,Ar,Object.assign(Object.assign({},this.staticDragData),{startPosition:this.staticDragData.startItem,newPosition:t,newItem:o[s[this.staticDragData.startItem.itemIndex]]}));if(!n){const e=[...s],r=s.splice(this.staticDragData.startItem.itemIndex,1);s.splice(t.itemIndex,0,...r),i.set("items",s),this.providers.dimension.updateSizesPositionByNewDataIndexes(this.dragData.type,s,e)}fe(this.revogrid,Nr,this.getData(this.staticDragData,s,o))}r&&(this.preventNextHeaderClick=!!e.target.closest("revogr-header")),this.clearOrder()}clearLocalSubscriptions(){Me(this.localSubscriptions,(({target:e,callback:r},t)=>e.removeEventListener(t,r)))}clearOrder(){this.staticDragData=null,this.dragData=null,this.columnDragMoved=!1,this.clearLocalSubscriptions(),this.orderUi.stop(this.revogrid)}clearSubscriptions(){super.clearSubscriptions(),this.clearLocalSubscriptions(),this.revogrid.removeEventListener("beforeheaderclick",this.preventHeaderClickAfterDrag,{capture:!0})}getData({gridEl:e,dataEl:r,pin:t},i,o=[]){const s=e.getBoundingClientRect(),n=r.getBoundingClientRect(),a=n.left-s.left;return{columns:i.map((e=>o[e])).filter(Boolean),elRect:n,gridRect:s,order:i,type:t||"rgCol",scrollOffset:a}}getDimension(e){return this.providers.dimension.stores[e].getCurrentState()}}function Xr(e,r,t){return e-r-t}function qr(e,r,t,i){return(r.itemIndex>e.itemIndex?e.start:e.end)-t+i}class Ur{get stores(){return this.dataSources}constructor(){this.collection=null,this.dataSources=d.reduce(((e,r)=>(e[r]=new q(r),e)),{})}column(e,r="rgCol"){return this.getColumn(e,r)}getColumn(e,r){return V(this.dataSources[r].store,e)}getRawColumns(){return n(this.dataSources,((e,r,t)=>(e[t]=r.store.get("source"),e)),{rgCol:[],colPinStart:[],colPinEnd:[]})}getColumns(e="all"){const r=this.getRawColumns();return"all"!==e?r[e]:d.reduce(((e,t)=>[...e,...r[t]]),[])}getColumnIndexByProp(e,r){return U(this.dataSources[r].store,e)}getColumnByProp(e){var r;return null===(r=this.collection)||void 0===r?void 0:r.columnByProp[e]}refreshByType(e){this.dataSources[e].refresh()}setColumns(e){return d.forEach((r=>{this.dataSources[r].updateData(e.columns[r],{depth:e.maxLevel,groups:e.columnGrouping[r].reduce(((e,r)=>(e[r.level]||(e[r.level]=[]),e[r.level].push(r),e)),{})})})),this.collection=e,e}updateColumns(e){const r=e.reduce(((e,r)=>{const t=h(r);return e[t]||(e[t]={}),e[t][r.prop]=r,e}),{}),t={};for(const e in r){if(!r.hasOwnProperty(e))continue;const i=e,o=r[i],s=this.dataSources[i].store.get("source");t[i]={};for(let e=0;e<s.length;e++){const r=null==o?void 0:o[s[e].prop];r&&(t[i][e]=r)}}for(const e in t)t.hasOwnProperty(e)&&Y(this.dataSources[e].store,t[e]||{})}updateColumn(e,r){const t=h(e);G(this.dataSources[t].store,{[r]:e})}}class Yr{constructor(e){this.dimensionProvider=e,this.stores=n(u,((e,r)=>(e[r]=new q(r),e)),{})}setData(e,r="rgRow",t=!1,i,o=!1,s=!1){return this.stores[r].updateData([...e],i,o,s),this.dimensionProvider.setData(e.length,r,"rgRow"!==r||t),e}getModel(e,r="rgRow"){return V(this.stores[r].store,e)}changeOrder({rowType:e="rgRow",from:r,to:t}){const i=this.stores[e],o=[...i.store.get("proxyItems")],s=i.store.get("items"),n=o.splice(o.indexOf(s[r]),1),a=s[r<t?t+1:t],l=void 0===a?o.length:o.indexOf(a);o.splice(l,0,...n),i.setData({proxyItems:o});const h=i.store.get("items");this.dimensionProvider.updateSizesPositionByNewDataIndexes(e,h,s)}setCellData({type:e,rowIndex:r,prop:t,val:i},o=!0){const s=this.getModel(r,e);s[t]=i,this.stores[e].setSourceData({[r]:s},o)}setRangeData(e,r){const t={};for(let i in e){const o=t[i]=V(this.stores[r].store,parseInt(i,10));if(o)for(let r in e[i])o[r]=e[i][r]}this.stores[r].setSourceData(t)}refresh(e="all"){T(e)&&this.refreshItems(e),u.forEach((e=>this.refreshItems(e)))}refreshItems(e="rgRow"){const r=this.stores[e].store.get("items");this.stores[e].setData({items:[...r]})}setGrouping({depth:e,customRenderer:r,cellRenderer:t},i="rgRow"){this.stores[i].setData({groupingDepth:e,groupingCustomRenderer:r,groupingCellRenderer:t})}setTrimmed(e,r="rgRow"){const t=this.stores[r];t.addTrimmed(e),this.dimensionProvider.setTrimmed(e,r),"rgRow"===r&&this.dimensionProvider.setData(W(t.store).length,r)}}const Gr=["rgCol"];function Wr(e,r=!1,t=Gr){return!r&&t.includes(e)}class Jr{constructor(e,r){this.viewports=e;const t=K((e=>r.realSizeChanged(e)),Z);this.stores=[...u,...d].reduce(((e,r)=>(e[r]=new Ie(r),e[r].store.onChange("realSize",(()=>t(r))),e)),{})}clearSize(e,r){this.stores[e].drop(),this.viewports.stores[e].setOriginalSizes(this.stores[e].store.get("originItemSize")),this.setItemCount(r,e)}setCustomSizes(e,r,t=!1){let i=r;if(t){const t=this.stores[e].store.get("sizes");i=Object.assign(Object.assign({},t),r)}this.stores[e].setDimensionSize(i),this.setViewPortCoordinate({type:e,force:!0})}setItemCount(e,r){this.viewports.stores[r].setViewport({realCount:e}),this.stores[r].setStore({count:e})}setTrimmed(e,r){const t=J(e);this.stores[r].setStore({trimmed:t}),this.setViewPortCoordinate({type:r,force:!0})}setData(e,r,t=!1){if(this.setItemCount(e,r),t){const e=this.stores[r].getCurrentState();this.viewports.stores[r].setViewport({virtualSize:e.realSize})}this.setViewPortCoordinate({type:r})}applyNewColumns(e,r,t=!1,i=Gr){for(let o of d){t||this.stores[o].drop();const s=e[o],n=!Wr(o,r,i);this.stores[o].setStore({count:s.length});const a=L(s);this.stores[o].setDimensionSize(a);const l={realCount:s.length};n&&(l.virtualSize=this.stores[o].getCurrentState().realSize),this.viewports.stores[o].setViewport(l),this.setViewPortCoordinate({type:o})}}getFullSize(){var e,r;let t=0,i=0;for(let r of d)t+=(null===(e=this.stores[r])||void 0===e?void 0:e.store.get("realSize"))||0;for(let e of u)i+=(null===(r=this.stores[e])||void 0===r?void 0:r.store.get("realSize"))||0;return{y:i,x:t}}setViewPortCoordinate({type:e,coordinate:r=this.viewports.stores[e].lastCoordinate,force:t=!1}){const i=this.stores[e].getCurrentState(),o=this.viewports.stores[e].store,s=o.get("clientSize"),n=o.get("virtualSize"),a=_({contentSize:i.realSize,clientSize:s,virtualSize:n}),l=s&&n?a.getRenderOffset(Math.min(Math.max(0,r),a.logicalScrollSize)):0;this.stores[e].setStore({renderOffset:l}),this.viewports.stores[e].setViewport({renderOffset:l}),this.viewports.stores[e].setViewPortCoordinate(r,i,t)}getViewPortPos(e){const r=this.stores[e.dimension].getCurrentState();return re(r,e.coordinate).start}setSettings(e,r){let t=[];switch(r){case"rgCol":t=d;break;case"rgRow":t=u}for(let r of t)this.stores[r].setStore(e)}updateSizesPositionByNewDataIndexes(e,r,t=[]){this.stores[e].updateSizesPositionByIndexes(r,t),this.setViewPortCoordinate({type:e,force:!0})}}class Kr{constructor(){this.stores=n([...u,...d],((e,r)=>(e[r]=new ie(r),e)),{})}setViewport(e,r){this.stores[e].setViewport(r)}}const Zr="default",_r=new Set([Zr,"material","compact","darkMaterial","darkCompact"]),Qr=Object.freeze({default:Object.freeze({name:"default",colorScheme:"light",defaultRowSize:27,tokens:Object.freeze({}),custom:!1}),material:Object.freeze({name:"material",colorScheme:"light",defaultRowSize:42,tokens:Object.freeze({}),custom:!1}),compact:Object.freeze({name:"compact",colorScheme:"light",defaultRowSize:32,tokens:Object.freeze({}),custom:!1}),darkMaterial:Object.freeze({name:"darkMaterial",colorScheme:"dark",defaultRowSize:42,tokens:Object.freeze({}),custom:!1}),darkCompact:Object.freeze({name:"darkCompact",colorScheme:"dark",defaultRowSize:32,tokens:Object.freeze({}),custom:!1})});function et(e){return _r.has(e)}function rt(e){return"number"==typeof e&&Number.isFinite(e)&&e>0}function tt(e,r){return"light"===e||"dark"===e?e:r}function it(e){return e.includes("dark")?"dark":"light"}function ot(e){if(!e||"object"!=typeof e)return{};const r={};for(const[t,i]of Object.entries(e))Object.hasOwn(Pe,t)&&"string"==typeof i&&i.trim()&&(r[t]=i);return r}class st{get theme(){return this.currentTheme}get rowSize(){return this.customRowSize||this.currentTheme.defaultRowSize}set rowSize(e){this.customRowSize=rt(e)?e:0}constructor(e){this.currentTheme=Object.assign({},Qr.default),this.customThemes=new Map,this.customRowSize=0,this.rowSize=e.rowSize,this.register("default")}setDefinitions(e=[]){const r=new Map;if(Array.isArray(e))for(const t of e){if(!t||"object"!=typeof t)continue;if("string"!=typeof t.name||!t.name.trim())continue;const e=nt(t.name);et(e)||r.set(e,Object.assign(Object.assign({},t),{name:e}))}this.customThemes=r}register(e){const r=nt(e);return et(r)?(this.currentTheme=Object.assign(Object.assign({},Qr[r]),{tokens:{}}),this.currentTheme):this.customThemes.get(r)?(this.currentTheme=this.resolveDefinition(r),this.currentTheme):(this.currentTheme=Object.assign(Object.assign({},Qr.default),{name:r,colorScheme:it(r),tokens:{},custom:!0}),this.currentTheme)}resolveDefinition(e){const r=[],t=new Set;let i=e,o=!0;for(;!et(i);){if(t.has(i)){o=!1;break}t.add(i);const e=this.customThemes.get(i);if(!e){o=!1;break}r.push(e),i=nt(e.extends)}let s=Object.assign(Object.assign({},o&&et(i)?Qr[i]:Qr.default),{tokens:{}});o&&r.reverse();const n=o?r:r.slice(0,1);for(const e of n)s={name:e.name,colorScheme:tt(e.colorScheme,s.colorScheme),defaultRowSize:rt(e.defaultRowSize)?e.defaultRowSize:s.defaultRowSize,tokens:Object.assign(Object.assign({},s.tokens),ot(e.tokens)),custom:!0};return s}}function nt(e){return("string"==typeof e?e.trim():"")||Zr}class at{constructor(e,r){var t;this.config=e;const i=[];let o=0;d.forEach((t=>{const s=e.columnProvider.stores[t].store;if(!s.get("items").length)return;const n={colType:t,position:{x:o,y:1},contentHeight:r,fixWidth:"rgCol"!==t,viewports:e.viewportProvider.stores,dimensions:e.dimensionProvider.stores,rowStores:e.dataProvider.stores,noHorizontalScrollTransfer:e.noHorizontalScrollTransfer,colStore:s,onHeaderresize:e=>this.onColumnResize(t,e,s),onResizeviewport:r=>{var i;const o={clientSize:r.detail.size},s=function(e,r){return"rgCol"===r?e:r}(t,r.detail.dimension),n=d.includes(s)&&Wr(s,e.disableVirtualX,e.virtualX);("rgRow"===s&&!e.disableVirtualY||n)&&(o.virtualSize=r.detail.size),null===(i=e.viewportProvider)||void 0===i||i.setViewport(s,o)}},a=function(e){const r=e.dimensions[e.colType].store,t=r.get("realSize"),i={contentWidth:t,class:e.colType,contentHeight:e.contentHeight,key:e.colType,colType:e.colType,noHorizontalScrollTransfer:e.noHorizontalScrollTransfer,onResizeviewport:e.onResizeviewport,style:e.fixWidth?{minWidth:t+"px"}:void 0},o={colData:W(e.colStore),dimensionCol:r,type:e.colType,groups:e.colStore.get("groups"),groupingDepth:e.colStore.get("groupingDepth"),resizeHandler:"colPinEnd"===e.colType?["l"]:void 0,onHeaderresize:e.onHeaderresize};return{prop:i,type:e.colType,position:e.position,headerProp:o,viewportCol:e.viewports[e.colType].store}}(n),l=this.registerCol(a.position.x,t),h=this.dataViewPort(n).reduce(((r,i)=>{const o=this.registerSegment(i.position,i.lastCell),s=this.registerRow(i.position.y,i.type),n=Object.assign(Object.assign({colType:t},i),{rowSelectionStore:s,selectionStore:o.store,onSetrange:e=>{o.setRangeArea(e.detail)},onSettemprange:e=>o.setTempArea(e.detail),onFocuscell:r=>{o.clearFocus(),e.selectionStoreConnector.focus(o,r.detail)}});return r.push(n),r}),[]);i.push(Object.assign(Object.assign({},a),{columnSelectionStore:l,dataPorts:h})),o++})),this.columns=i,null===(t=this.config.scrollingService)||void 0===t||t.unregister()}onColumnResize(e,{detail:r},t){var i;null===(i=this.config.dimensionProvider)||void 0===i||i.setCustomSizes(e,r,!0);const o={};for(const e of Object.keys(r||{})){const i=r[e],s=parseInt(e,10),n=V(t,s);n&&(o[s]=Object.assign(Object.assign({},n),{size:i}))}this.config.resize(o)}registerSegment(e,r){const t=this.config.selectionStoreConnector.register(e);return t.setLastCell(r),t}registerRow(e,r){return this.config.selectionStoreConnector.registerRow(e,r).store}registerCol(e,r){return this.config.selectionStoreConnector.registerColumn(e,r).store}dataViewPort(e){const r={rowPinStart:ce,rgRow:ge,rowPinEnd:de};let t=0;return u.reduce(((i,o)=>{const s=Object.assign(Object.assign({},e),{position:Object.assign(Object.assign({},e.position),{y:t})}),n=he(s,o,r[o],"rgRow"!==o);return i.push(n),t++,i}),[])}scrollToCell(e){for(let r in e){const t=e[r];"number"==typeof t&&this.config.scrollingService.proxyScroll({dimension:"x"===r?"rgCol":"rgRow",coordinate:t})}}clearFocused(){this.config.selectionStoreConnector.clearAll()}clearEdit(){this.config.selectionStoreConnector.setEdit(!1)}getFocused(){const e=this.config.selectionStoreConnector.focusedStore;if(!e)return null;const r=this.config.selectionStoreConnector.storesXToType[e.position.x],t=this.config.columnProvider.getColumn(e.cell.x,r),i=this.config.selectionStoreConnector.storesYToType[e.position.y];return{column:t,model:this.config.dataProvider.getModel(e.cell.y,i),cell:e.cell,colType:r,rowType:i}}getStoreCoordinateByType(e,r){const t=this.config.selectionStoreConnector.storesByType;if(void 0!==t[e]&&void 0!==t[r])return{x:t[e],y:t[r]}}setFocus(e,r,t,i){var o;const s=this.getStoreCoordinateByType(e,r);s&&(null===(o=this.config.selectionStoreConnector)||void 0===o||o.focusByCell(s,t,i))}getSelectedRange(){const e=this.config.selectionStoreConnector.focusedStore;if(!e)return null;const r=this.config.selectionStoreConnector.storesXToType[e.position.x],t=this.config.selectionStoreConnector.storesYToType[e.position.y],i=e.entity.store.get("range");return i?Object.assign(Object.assign({},i),{colType:r,rowType:t}):null}setEdit(e,r,t,i){var o;const s=this.getStoreCoordinateByType(t,i);s&&(null===(o=this.config.selectionStoreConnector)||void 0===o||o.setEditByCell(s,{x:r,y:e}))}}class lt{constructor(e){this.setViewport=e,this.elements={}}async proxyScroll(e,r,t){var i;let o,s=e;for(let s in t?{}:this.elements)if("rgCol"!==e.dimension||"headerRow"!==s)if(this.isPinnedColumn(r)&&"rgCol"===e.dimension){if(s===r||!e.delta)continue;for(let r of this.elements[s])r.changeScroll&&(o=r.changeScroll(e))}else for(let r of this.elements[s])await(null===(i=r.setScroll)||void 0===i?void 0:i.call(r,e));const n=await o;n&&(s=n),this.setViewport(t&&this.isPinnedColumn(r)?Object.assign(Object.assign({},s),{dimension:r}):s)}async scrollSilentService(e,r){var t;for(let i in this.elements)if(i!==r)if(!d.includes(r)||"headerRow"!==i&&!d.includes(i));else for(let r of this.elements[i])await(null===(t=r.changeScroll)||void 0===t?void 0:t.call(r,e,!0))}isPinnedColumn(e){return!!e&&["colPinStart","colPinEnd"].indexOf(e)>-1}registerElements(e){this.elements=e}registerElement(e,r){this.elements[r]||(this.elements[r]=[]),e?this.elements[r].push(e):this.elements[r]&&delete this.elements[r]}unregister(){this.elements={}}}class ht{constructor(){this.stores={},this.columnStores={},this.rowStores={},this.storesByType={},this.storesXToType={},this.storesYToType={}}get focusedStore(){var e;for(let r in this.stores)for(let t in this.stores[r]){const i=null===(e=this.stores[r][t])||void 0===e?void 0:e.store.get("focus");if(i)return{entity:this.stores[r][t],cell:i,position:{x:parseInt(t,10),y:parseInt(r,10)}}}return null}get edit(){var e;return null===(e=this.focusedStore)||void 0===e?void 0:e.entity.store.get("edit")}get focused(){var e;return null===(e=this.focusedStore)||void 0===e?void 0:e.entity.store.get("focus")}get selectedRange(){var e;return null===(e=this.focusedStore)||void 0===e?void 0:e.entity.store.get("range")}registerColumn(e,r){return this.updateColumnTypeMapping(e,r),this.columnStores[e]||(this.columnStores[e]=new De),this.columnStores[e]}registerRow(e,r){return this.rowStores[e]||(this.rowStores[e]=new De,this.storesByType[r]=e,this.storesYToType[e]=r),this.rowStores[e]}register({x:e,y:r}){this.stores[r]||(this.stores[r]={});let t=this.stores[r][e];return t||(this.stores[r][e]=t=new De,t.onChange("range",(t=>{this.columnStores[e].setRangeArea(t),this.rowStores[r].setRangeArea(t)})),t.store.on("dispose",(()=>this.destroy(e,r))),t)}destroy(e,r){var t,i;if(null===(t=this.columnStores[e])||void 0===t||t.dispose(),null===(i=this.rowStores[r])||void 0===i||i.dispose(),delete this.rowStores[r],delete this.columnStores[e],this.storesXToType[e]){const r=this.storesXToType[e];delete this.storesXToType[e],delete this.storesByType[r]}if(this.storesYToType[r]){const e=this.storesYToType[r];delete this.storesYToType[r],delete this.storesByType[e]}this.stores[r]&&delete this.stores[r][e],Object.keys(this.stores[r]||{}).length||delete this.stores[r]}setEditByCell(e,r){this.focusByCell(e,r,r),this.setEdit("")}beforeNextFocusCell(e){var r;if(!this.focusedStore)return;const t=this.focusedStore.entity.store.get("lastCell"),i=t&&this.getNextStore(e,this.focusedStore.position,t);null===(r=null==i?void 0:i.store)||void 0===r||r.setNextFocus(Object.assign(Object.assign({},e),i.item))}focusByCell(e,r,t){this.focus(this.stores[e.y][e.x],{focus:r,end:t})}focus(e,{focus:r,end:t}){const i=this.getCurrentStorePointer(e);if(!i)return null;const o=e.store.get("lastCell"),s=o&&this.getNextStore(r,i,o);if(null==s?void 0:s.store){const e=Object.assign(Object.assign({},r),s.item);return this.focus(s.store,{focus:e,end:e}),null}return o&&(r=I(r,o),t=I(t,o)),e.setFocus(r,t),r}getCurrentStorePointer(e){let r;for(let t in this.stores)for(let i in this.stores[t]){const o=this.stores[t][i];o!==e?o.clearFocus():r={x:parseInt(i,10),y:parseInt(t,10)}}return r}getNextStore(e,r,t){const i=D(e,t);let o;i&&Object.keys(i).forEach((e=>{var t;const s=e,n=null!==(t=i[s])&&void 0!==t?t:0;let a;switch(s){case"x":a=this.getXStores(r.y);break;case"y":a=this.getYStores(r.x)}if(n>=0)o=a[++r[s]];else{o=a[--r[s]];const e=null==o?void 0:o.store.get("lastCell");e&&(i[s]=e[s]+n)}}));const s=null==o?void 0:o.store.get("lastCell");return(null==s?void 0:s.x)&&(null==s?void 0:s.y)||(o=void 0),{store:o,item:i}}clearAll(){var e;for(let r in this.stores)for(let t in this.stores[r])null===(e=this.stores[r][t])||void 0===e||e.clearFocus()}setEdit(e){this.focusedStore&&this.focusedStore.entity.setEdit(e)}selectAll(){for(let e in this.stores)for(let r in this.stores[e]){const t=this.stores[e][r];if(!t)continue;const i=t.store.get("lastCell");i&&t.setRange({x:0,y:0},{x:i.x-1,y:i.y-1})}}getXStores(e){return this.stores[e]}getYStores(e){const r={};for(let t in this.stores)r[t]=this.stores[t][e];return r}updateColumnTypeMapping(e,r){const t=this.storesXToType[e],i=this.storesByType[r];let o=!1;this.storesByType[r]=e,this.storesXToType[e]=r,t&&t!==r&&(o=!0,this.storesByType[t]===e&&delete this.storesByType[t]),"number"==typeof i&&i!==e&&this.storesXToType[i]===r&&(delete this.storesXToType[i],o=!0),o&&this.clearAll()}}class dt{constructor(){this.parentY=0}start(e,{pos:r,text:t,event:i}){var o;const{top:s}=e.getBoundingClientRect();this.parentY=s,this.text&&(this.text.innerText=t),this.move(r),this.moveTip({x:i.x,y:i.y}),null===(o=this.el)||void 0===o||o.classList.remove("hidden")}end(){var e;null===(e=this.el)||void 0===e||e.classList.add("hidden")}move(e){this.moveElement(e.end-this.parentY)}moveTip({x:e,y:r}){this.draggable&&(this.draggable.style.left=e+"px",this.draggable.style.top=r+"px")}moveElement(e){this.rgRow&&(this.rgRow.style.transform=`translateY(${e}px)`)}}const gt=({ref:r})=>{const t=new dt;return r(t),e("div",{class:"draggable-wrapper hidden",ref:e=>t.el=e},e("div",{class:"draggable",ref:e=>t.draggable=e},e("span",{class:"revo-alt-icon"}),e("span",{ref:e=>t.text=e})),e("div",{class:"drag-position",ref:e=>t.rgRow=e}))};class ct extends Fe{constructor(e,r){super(e,r),e.setAttribute("role","treegrid"),e.setAttribute("aria-keyshortcuts","Enter"),e.setAttribute("aria-multiselectable","true"),e.setAttribute("tabindex","0"),this.addEventListener("beforecolumnsset",(({detail:r})=>{const t=[...r.columns.colPinStart,...r.columns.rgCol,...r.columns.colPinEnd];e.setAttribute("aria-colcount",""+t.length),t.forEach(((e,r)=>{const{columnProperties:t,cellProperties:i}=e;e.columnProperties=(...e)=>{const i=(null==t?void 0:t(...e))||{};return i.role="columnheader",i["aria-colindex"]=""+r,i},e.cellProperties=(...e)=>{const t={role:"gridcell","aria-colindex":""+r,"aria-rowindex":""+e[0].rowIndex,tabindex:-1},o=(null==i?void 0:i(...e))||{};return Object.assign(Object.assign({},t),o)}}))})),this.addEventListener("beforesourceset",(({detail:r})=>{e.setAttribute("aria-rowcount",""+r.source.length)})),this.addEventListener("beforerowrender",(({detail:e})=>{e.node.i=Object.assign(Object.assign({},e.node.i),{role:"row","aria-rowindex":e.item.itemIndex})})),this.addEventListener("afterfocus",(async e=>{if(e.defaultPrevented)return;const r=this.revogrid.querySelector(`revogr-data[type="${e.detail.rowType}"][col-type="${e.detail.colType}"] [data-rgrow="${e.detail.rowIndex}"][data-rgcol="${e.detail.colIndex}"]`);r instanceof HTMLElement&&r.focus()}))}}class vt{constructor(){this.internalPlugins=[]}get(){return[...this.internalPlugins]}add(e){this.internalPlugins.push(e)}addUserPluginsAndCreate(e,r=[],t,i){i&&(((null==t?void 0:t.filter((e=>!r.some((r=>r===e)))))||[]).forEach((e=>{var r,t;const i=this.internalPlugins.findIndex((r=>r instanceof e));-1!==i&&(null===(t=(r=this.internalPlugins[i]).destroy)||void 0===t||t.call(r),this.internalPlugins.splice(i,1))})),null==r||r.forEach((r=>{this.internalPlugins.find((e=>e instanceof r))||this.add(new r(e,i))})))}getByClass(e){return this.internalPlugins.find((r=>r instanceof e))}remove(e){var r,t;const i=this.internalPlugins.indexOf(e);i>-1&&(null===(t=(r=this.internalPlugins[i]).destroy)||void 0===t||t.call(r),this.internalPlugins.splice(i,1))}destroy(){this.internalPlugins.forEach((e=>{var r;return null===(r=e.destroy)||void 0===r?void 0:r.call(e)})),this.internalPlugins=[]}}class ut extends Fe{constructor(e,r){super(e,r),this.isRTLEnabled=!1,this.init()}init(){this.addEventListener("beforecolumnsset",(e=>{this.handleBeforeColumnsSet(e)})),this.addEventListener("aftergridinit",(()=>{this.updateRTLState()})),this.watch("rtl",(e=>{this.isRTLEnabled=e,this.emit("rtlstatechanged",{rtl:this.isRTLEnabled})}),{immediate:!0})}handleBeforeColumnsSet(e){if(!this.isRTLEnabled)return;const r=this.applyRTLTransformationToCollection(e.detail);e.detail.columns=r.columns,e.detail.columnByProp=r.columnByProp,e.detail.columnGrouping=r.columnGrouping}applyRTLTransformationToCollection(e){const r={columns:{rgCol:[],colPinStart:[],colPinEnd:[]},columnByProp:Object.assign({},e.columnByProp),columnGrouping:{rgCol:[],colPinStart:[],colPinEnd:[]},maxLevel:e.maxLevel,sort:Object.assign({},e.sort)};return Object.keys(e.columns).forEach((t=>{const i=t,o=e.columns[i],s=[...o].reverse();r.columns[i]=s,r.columnGrouping[i]=this.applyRTLTransformationToGroups(e.columnGrouping[i],o.length)})),r}applyRTLTransformationToGroups(e,r){return e.map((e=>{const t=e.indexes.map((e=>r-1-e)).reverse();return Object.assign(Object.assign({},e),{indexes:t})})).reverse()}updateRTLState(){const e=this.revogrid;e&&"boolean"==typeof e.rtl&&(this.isRTLEnabled=e.rtl)}getRTLState(){return this.isRTLEnabled}destroy(){super.destroy()}}function mt(e){return Number.isFinite(e)&&e>0?e:100}const ft=r(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.contentsizechanged=i(this,"contentsizechanged",7),this.beforeedit=i(this,"beforeedit",7),this.beforerangeedit=i(this,"beforerangeedit",7),this.afteredit=i(this,"afteredit",7),this.beforeautofill=i(this,"beforeautofill",7),this.beforerange=i(this,"beforerange",7),this.afterfocus=i(this,"afterfocus",7),this.roworderchanged=i(this,"roworderchanged",7),this.beforesorting=i(this,"beforesorting",7),this.beforesourcesortingapply=i(this,"beforesourcesortingapply",7),this.beforesortingapply=i(this,"beforesortingapply",7),this.aftersortingapply=i(this,"aftersortingapply",7),this.rowdragstart=i(this,"rowdragstart",7),this.headerclick=i(this,"headerclick",7),this.beforecellfocus=i(this,"beforecellfocus",7),this.beforefocuslost=i(this,"beforefocuslost",7),this.beforesourceset=i(this,"beforesourceset",7),this.beforeanysource=i(this,"beforeanysource",7),this.aftersourceset=i(this,"aftersourceset",7),this.afteranysource=i(this,"afteranysource",7),this.beforecolumnsgather=i(this,"beforecolumnsgather",7),this.beforecolumnsset=i(this,"beforecolumnsset",7),this.beforecolumnapplied=i(this,"beforecolumnapplied",7),this.aftercolumnsset=i(this,"aftercolumnsset",7),this.beforefilterapply=i(this,"beforefilterapply",7),this.beforefiltertrimmed=i(this,"beforefiltertrimmed",7),this.beforetrimmed=i(this,"beforetrimmed",7),this.aftertrimmed=i(this,"aftertrimmed",7),this.viewportscroll=i(this,"viewportscroll",7),this.beforeexport=i(this,"beforeexport",7),this.beforeeditstart=i(this,"beforeeditstart",7),this.aftercolumnresize=i(this,"aftercolumnresize",7),this.beforerowdefinition=i(this,"beforerowdefinition",7),this.filterconfigchanged=i(this,"filterconfigchanged",7),this.sortingconfigchanged=i(this,"sortingconfigchanged",7),this.rowheaderschanged=i(this,"rowheaderschanged",7),this.beforegridrender=i(this,"beforegridrender",7),this.aftergridrender=i(this,"aftergridrender",7),this.aftergridinit=i(this,"aftergridinit",7),this.additionaldatachanged=i(this,"additionaldatachanged",7),this.afterthemechanged=i(this,"afterthemechanged",7),this.created=i(this,"created",7),this.frameSize=1,this.rowSize=0,this.colSize=100,this.range=!1,this.readonly=!1,this.resize=!1,this.noHorizontalScrollTransfer=!1,this.canFocus=!0,this.useClipboard=!0,this.columns=[],this.source=[],this.pinnedTopSource=[],this.pinnedBottomSource=[],this.rowDefinitions=[],this.editors={},this.applyOnClose=!1,this.plugins=[],this.columnTypes={},this.theme="default",this.themeDefinitions=[],this.rowClass="",this.autoSizeColumn=!1,this.filter=!1,this.canMoveColumns=!1,this.trimmedRows={},this.exporting=!1,this.stretch=!1,this.additionalData={},this.disableVirtualX=!1,this.virtualX=["rgCol"],this.disableVirtualY=!1,this.hideAttribution=!1,this.jobsBeforeRender=[],this.registerVNode=[],this.accessible=!0,this.rtl=!1,this.canDrag=!0,this.extraElements=[],this.pluginService=new vt,this.viewport=null,this.isInited=!1,this.themeStyles={}}async refresh(e="all"){if(!this.dataProvider)throw Error("Not connected");this.dataProvider.refresh(e)}async setDataAt({row:e,col:r,colType:t="rgCol",rowType:i="rgRow",val:o,skipDataUpdate:s=!1}){var n;if(this.dataProvider&&this.columnProvider&&!s){const s=null===(n=this.columnProvider.getColumn(r,t))||void 0===n?void 0:n.prop;void 0!==s&&this.dataProvider.setCellData({type:i,rowIndex:e,prop:s,val:o},!1)}const a=this.element.querySelector(`revogr-data[type="${i}"][col-type="${t}"]`);return null==a?void 0:a.updateCell({row:e,col:r})}async scrollToRow(e=0){if(!this.dimensionProvider)throw Error("Not connected");const r=this.dimensionProvider.getViewPortPos({coordinate:e,dimension:"rgRow"});await this.scrollToCoordinate({y:r})}async scrollToColumnIndex(e=0){if(!this.dimensionProvider)throw Error("Not connected");const r=this.dimensionProvider.getViewPortPos({coordinate:e,dimension:"rgCol"});await this.scrollToCoordinate({x:r})}async scrollToColumnProp(e,r="rgCol"){if(!this.dimensionProvider||!this.columnProvider)throw Error("Not connected");const t=this.columnProvider.getColumnIndexByProp(e,r);if(t<0)return;const i=this.dimensionProvider.getViewPortPos({coordinate:t,dimension:r});await this.scrollToCoordinate({x:i})}async updateColumns(e){var r;null===(r=this.columnProvider)||void 0===r||r.updateColumns(e)}async addTrimmed(e,r="external",t="rgRow"){if(!this.dataProvider)throw Error("Not connected");const i=this.beforetrimmed.emit({trimmed:e,trimmedType:r,type:t});return i.defaultPrevented||(this.dataProvider.setTrimmed({[r]:i.detail.trimmed},t),this.aftertrimmed.emit()),i}async scrollToCoordinate(e){var r;null===(r=this.viewport)||void 0===r||r.scrollToCell(e)}async setCellEdit(e,r,t="rgRow"){var i;const o=p(this.columns,r);if(!o)return;await ne();const s=o.pin||"rgCol";if(!this.columnProvider)throw Error("Not connected");null===(i=this.viewport)||void 0===i||i.setEdit(e,this.columnProvider.getColumnIndexByProp(r,s),s,t)}async setCellsFocus(e={x:0,y:0},r={x:0,y:0},t="rgCol",i="rgRow"){var o;null===(o=this.viewport)||void 0===o||o.setFocus(t,i,e,r)}async getSource(e="rgRow"){if(!this.dataProvider)throw Error("Not connected");return this.dataProvider.stores[e].store.get("source")}async getVisibleSource(e="rgRow"){if(!this.dataProvider)throw Error("Not connected");return W(this.dataProvider.stores[e].store)}async getSourceStore(e="rgRow"){if(!this.dataProvider)throw Error("Not connected");return this.dataProvider.stores[e].store}async getColumnStore(e="rgCol"){if(!this.columnProvider)throw Error("Not connected");return this.columnProvider.stores[e].store}async updateColumnSorting(e,r,t){this.sortingconfigchanged.emit({columns:[{prop:e.prop,order:r,cellCompare:e.cellCompare}],additive:t})}async clearSorting(){this.sortingconfigchanged.emit({columns:[]})}async getColumns(){if(!this.columnProvider)throw Error("Not connected");return this.columnProvider.getColumns()}async clearFocus(){var e,r;const t=null===(e=this.viewport)||void 0===e?void 0:e.getFocused();this.beforefocuslost.emit(t).defaultPrevented||null===(r=this.selectionStoreConnector)||void 0===r||r.clearAll()}async getPlugins(){return this.pluginService.get()}async getFocused(){var e,r;return null!==(r=null===(e=this.viewport)||void 0===e?void 0:e.getFocused())&&void 0!==r?r:null}async getContentSize(){var e;if(!this.dimensionProvider)throw Error("Not connected");return null===(e=this.dimensionProvider)||void 0===e?void 0:e.getFullSize()}async getSelectedRange(){var e,r;return null!==(r=null===(e=this.viewport)||void 0===e?void 0:e.getSelectedRange())&&void 0!==r?r:null}async refreshExtraElements(){var e;null===(e=this.extraService)||void 0===e||e.refresh()}async getProviders(){return this.getPluginData()}mousedownHandle(e){const r=be(e,"screenX"),t=be(e,"screenY");null!==r&&null!==t&&(this.clickTrackForFocusClear=r+t)}async mouseupHandle(e){var r;const t=be(e,"screenX"),i=be(e,"screenY");if(null===t||null===i)return;if(e.defaultPrevented)return;if(Math.abs((null!==(r=this.clickTrackForFocusClear)&&void 0!==r?r:0)-(t+i))>10)return;const o=e.composedPath();o.includes(this.element)||this.element.shadowRoot&&o.includes(this.element.shadowRoot)||await this.clearFocus()}onRowDragStarted(e){var r;const t=this.rowdragstart.emit(e.detail);t.defaultPrevented?e.preventDefault():null===(r=this.orderService)||void 0===r||r.start(this.element,Object.assign(Object.assign({},e.detail),t.detail))}onRowDragEnd(){var e;null===(e=this.orderService)||void 0===e||e.end()}onRowOrderChange(e){var r;null===(r=this.dataProvider)||void 0===r||r.changeOrder(e.detail)}onRowDrag({detail:e}){var r;null===(r=this.orderService)||void 0===r||r.move(e)}onRowMouseMove(e){var r;null===(r=this.orderService)||void 0===r||r.moveTip(e.detail)}async onCellEdit(e){var r;const{defaultPrevented:t,detail:i}=this.beforeedit.emit(e.detail);await ne(),t||(null===(r=this.dataProvider)||void 0===r||r.setCellData(i),this.afteredit.emit(i))}onRangeEdit(e){if(!this.dataProvider)throw Error("Not connected");const{defaultPrevented:r,detail:t}=this.beforerangeedit.emit(e.detail);r?e.preventDefault():(this.dataProvider.setRangeData(t.data,t.type),this.afteredit.emit(t))}onRangeChanged(e){const r=this.beforerange.emit(e.detail);r.defaultPrevented&&e.preventDefault(),this.beforeautofill.emit(r.detail).defaultPrevented&&e.preventDefault()}onRowDropped(e){const{defaultPrevented:r}=this.roworderchanged.emit(e.detail);r&&e.preventDefault()}onHeaderClick(e){const{defaultPrevented:r}=this.headerclick.emit(Object.assign(Object.assign({},e.detail.column),{originalEvent:e.detail.originalEvent}));r&&e.preventDefault()}onCellFocus(e){const{defaultPrevented:r}=this.beforecellfocus.emit(e.detail);this.canFocus&&!r||e.preventDefault()}columnTypesChanged(){this.columnChanged(this.columns)}columnChanged(e=[],r,t="columns",i=!1){if(!this.dimensionProvider||!this.columnProvider)return;const o=i?void 0:this.getColumnFocusRestore(),s=this.beforecolumnsgather.emit({columns:[...e]});if(s.defaultPrevented)return;const n=F(s.detail.columns,0,this.columnTypes),a=this.beforecolumnsset.emit(n);if(a.defaultPrevented)return;this.dimensionProvider.applyNewColumns(a.detail.columns,this.disableVirtualX,i,this.virtualX);const l=this.beforecolumnapplied.emit(n);if(l.defaultPrevented)return;const h=this.columnProvider.setColumns(l.detail);o&&(this.pendingColumnFocusRestore=o);const d={};for(const e of Object.keys(l.detail.sort))d[e]=l.detail.sort[e].order;this.aftercolumnsset.emit({columns:h,order:d})}getColumnFocusRestore(){var e,r,t,i;const o=null===(e=this.viewport)||void 0===e?void 0:e.getFocused(),s=null===(t=null===(r=this.selectionStoreConnector)||void 0===r?void 0:r.focusedStore)||void 0===t?void 0:t.position.x,n=null===(i=null==o?void 0:o.column)||void 0===i?void 0:i.prop;if(o&&void 0!==n&&void 0!==s)return{prop:n,colType:o.colType,colIndex:o.cell.x,prevStoreX:s,rowType:o.rowType,rowIndex:o.cell.y}}restoreColumnFocusAfterRender(){var e,r,t,i;const o=this.pendingColumnFocusRestore;if(!o)return;if(this.pendingColumnFocusRestore=void 0,!this.viewport||!this.columnProvider)return;const s=null!==(r=null===(e=this.columnProvider.getColumnByProp(o.prop))||void 0===e?void 0:e[0])&&void 0!==r?r:p(this.columns,o.prop);if(!s)return;const n=s.pin||"rgCol",a=this.columnProvider.getColumnIndexByProp(o.prop,n);if(a<0)return;if(n===o.colType&&a===o.colIndex&&o.prevStoreX===(null===(i=null===(t=this.selectionStoreConnector)||void 0===t?void 0:t.focusedStore)||void 0===i?void 0:i.position.x))return;const l={x:a,y:o.rowIndex};this.viewport.setFocus(n,o.rowType,l,l)}refreshColumnsOnConfigChange(e,r){e!==r&&this.columnChanged(this.columns)}disableVirtualXChanged(e=!1,r=!1){this.refreshColumnsOnConfigChange(e,r)}virtualXChanged(e=["rgCol"],r=["rgCol"]){this.refreshColumnsOnConfigChange(e,r)}rowSizeChanged(e){this.themeService&&this.dimensionProvider&&(this.themeService.rowSize=e,this.applyTheme(this.theme,!1,!1,"rowSize"))}colSizeChanged(e){this.dimensionProvider&&this.columnProvider&&(this.dimensionProvider.setSettings({originItemSize:mt(e)},"rgCol"),this.columnChanged(this.columns))}themeChanged(e,r,t="theme",i=!1){if(!this.themeService||!this.dimensionProvider)return;if(this.pendingNormalizedTheme===e)return void(this.pendingNormalizedTheme=void 0);const o=nt(e);o!==e&&(this.pendingNormalizedTheme=o,this.theme=o),this.applyTheme(o,i,!0,"theme")}themeDefinitionsChanged(e=[]){this.themeService&&this.dimensionProvider&&(this.themeService.setDefinitions(e),this.applyTheme(this.theme,!1,!0,"themeDefinitions"))}applyTheme(e,r,t,i){var o;const s=this.themeService.register(e),n=this.themeService.rowSize,a=this.appliedThemeRowSize!==n,l=void 0!==this.appliedThemeRowSize;this.appliedThemeRowSize=n,this.themeStyles=this.getThemeStyles(),a&&(null===(o=this.dimensionProvider)||void 0===o||o.setSettings({originItemSize:n},"rgRow"),!r&&l&&this.rowDefChanged(this.rowDefinitions,this.rowDefinitions,i,!0)),t&&this.afterthemechanged.emit(s.name)}getThemeStyles(){const e={"--rg-theme-row-size":this.themeService.rowSize+"px"};for(const[r,t]of Object.entries(this.themeService.theme.tokens)){const i=Pe[r];i&&t&&(e[i]=t)}return e}dataSourceChanged(e=[],r,t){if(!this.dataProvider)return;let i="rgRow";switch(t){case"pinnedBottomSource":i="rowPinEnd";break;case"pinnedTopSource":i="rowPinStart";break;case"source":i="rgRow",e=this.beforesourceset.emit({type:i,source:e}).detail.source}const o=[...this.beforeanysource.emit({type:i,source:e}).detail.source];this.dataProvider.setData(o,i,this.disableVirtualY),"source"===t&&this.aftersourceset.emit({type:i,source:e}),this.afteranysource.emit({type:i,source:e})}disableVirtualYChanged(e=!1,r=!1){e!==r&&this.dataSourceChanged(this.source,this.source,"source")}rowDefChanged(e,r,t,i=!0){if(!this.dimensionProvider||!this.dataProvider)return;const{detail:{vals:o,oldVals:s}}=this.beforerowdefinition.emit({vals:e,oldVals:r}),n=((e=[])=>{const r={};for(const t of e){let e=r[t.type];e||(e=r[t.type]={}),"number"==typeof t.size&&(e.sizes||(e.sizes={}),e.sizes[t.index]=t.size)}return r})(o);if(s){const e=((e=[])=>{const r={};for(const t of e){let e=r[t.type];e||(e=r[t.type]=[]),"number"==typeof t.size&&e.push(t.index)}return r})(s);for(const r in e)if(e.hasOwnProperty(r)){const e=r,t=this.dataProvider.stores[e].store.get("source").length;this.dimensionProvider.clearSize(e,t)}}u.forEach((e=>{var r;const t=n[e];(t||i)&&(null===(r=this.dimensionProvider)||void 0===r||r.setCustomSizes(e,(null==t?void 0:t.sizes)||{}))}))}trimmedRowsChanged(e={}){this.addTrimmed(e)}groupingChanged(e={}){var r;null===(r=this.pluginService.getByClass(Ir))||void 0===r||r.setGrouping(e||{})}applyStretch(e){if(!(this.dimensionProvider&&this.dataProvider&&this.columnProvider&&this.viewportProvider))return;"false"===e&&(e=!1);const r=this.getPluginData();if(!r)return;const t=this.pluginService.getByClass(Ve);"boolean"==typeof e&&e||"true"===e?t?$e(t)&&t.applyStretch(this.columnProvider.getRawColumns()):this.pluginService.add(new Ve(this.element,r)):t&&this.pluginService.remove(t)}applyFilter(e){this.filterconfigchanged.emit(e)}applySorting(e){this.sortingconfigchanged.emit(e)}rowHeadersChange(e){this.rowheaderschanged.emit(e)}registerOutsideVNodes(e=[]){this.extraElements=e}additionalDataChanged(e){this.additionaldatachanged.emit(e)}rtlChanged(){this.columnChanged(this.columns)}pluginsChanged(e=[],r){this.pluginService.addUserPluginsAndCreate(this.element,e,r,this.getPluginData())}setPlugins(){this.removePlugins();const e=this.getPluginData();e&&(this.setCorePlugins(e),this.pluginsChanged(this.plugins))}setCorePlugins(e){this.accessible&&this.pluginService.add(new ct(this.element,e)),this.pluginService.add(new ut(this.element,e)),this.autoSizeColumn&&this.pluginService.add(new Ae(this.element,e,"object"==typeof this.autoSizeColumn?this.autoSizeColumn:void 0)),this.filter&&this.pluginService.add(new ur(this.element,e,"object"==typeof this.filter?this.filter:void 0)),this.exporting&&this.pluginService.add(new Ge(this.element,e)),this.pluginService.add(new Rr(this.element,e)),this.pluginService.add(new Ir(this.element,e)),this.canMoveColumns&&this.pluginService.add(new $r(this.element,e))}getPluginData(){if(this.dimensionProvider&&this.dataProvider&&this.columnProvider&&this.viewportProvider&&this.selectionStoreConnector)return{data:this.dataProvider,column:this.columnProvider,dimension:this.dimensionProvider,viewport:this.viewportProvider,selection:this.selectionStoreConnector,plugins:this.pluginService}}removePlugins(){this.pluginService.destroy()}connectedCallback(){this.isInited&&this.setPlugins(),this.created.emit()}componentWillLoad(){var e;this.viewportProvider=new Kr,this.themeService=new st({rowSize:this.rowSize}),this.themeService.setDefinitions(this.themeDefinitions),this.dimensionProvider=new Jr(this.viewportProvider,{realSizeChanged:e=>this.contentsizechanged.emit(e)}),this.dimensionProvider.setSettings({originItemSize:mt(this.colSize)},"rgCol"),this.columnProvider=new Ur,this.selectionStoreConnector=new ht,this.dataProvider=new Yr(this.dimensionProvider),this.registerOutsideVNodes(this.registerVNode),this.setPlugins(),this.applyStretch(this.stretch),this.themeChanged(this.theme,void 0,void 0,!0),this.columnChanged(this.columns,void 0,void 0,!0),this.dataSourceChanged(this.source,void 0,"source"),this.dataSourceChanged(this.pinnedTopSource,void 0,"pinnedTopSource"),this.dataSourceChanged(this.pinnedBottomSource,void 0,"pinnedBottomSource"),Object.keys(null!==(e=this.trimmedRows)&&void 0!==e?e:{}).length>0&&this.trimmedRowsChanged(this.trimmedRows),this.rowDefChanged(this.rowDefinitions,void 0,void 0,!1),this.grouping&&Object.keys(this.grouping).length>0&&this.groupingChanged(this.grouping),this.scrollingService=new lt((e=>{var r;null===(r=this.dimensionProvider)||void 0===r||r.setViewPortCoordinate({coordinate:e.coordinate,type:e.dimension}),this.viewportscroll.emit(e)})),this.aftergridinit.emit(),this.isInited=!0}componentWillRender(){return!this.beforegridrender.emit().defaultPrevented&&Promise.all(this.jobsBeforeRender)}componentDidRender(){this.restoreColumnFocusAfterRender(),this.aftergridrender.emit()}render(){if(!(this.dimensionProvider&&this.dataProvider&&this.columnProvider&&this.viewportProvider&&this.selectionStoreConnector))return;const r=this.dimensionProvider.stores.rgRow.store.get("realSize");this.viewport=new at({columnProvider:this.columnProvider,dataProvider:this.dataProvider,dimensionProvider:this.dimensionProvider,viewportProvider:this.viewportProvider,scrollingService:this.scrollingService,orderService:this.orderService,selectionStoreConnector:this.selectionStoreConnector,noHorizontalScrollTransfer:this.noHorizontalScrollTransfer,disableVirtualX:this.disableVirtualX,virtualX:this.virtualX,disableVirtualY:this.disableVirtualY,resize:e=>this.aftercolumnresize.emit(e)},r);const t=[];if(this.rowHeaders&&this.viewport.columns.length){const i=this.viewport.columns[0];t.push(e("revogr-row-headers",{additionalData:this.additionalData,height:r,rowClass:this.rowClass,resize:this.resize,dataPorts:i.dataPorts,headerProp:i.headerProp,jobsBeforeRender:this.jobsBeforeRender,rowHeaderColumn:"object"==typeof this.rowHeaders?this.rowHeaders:void 0,onScrollview:({detail:e})=>this.scrollingService.proxyScroll(e,"headerRow"),onRef:({detail:e})=>this.scrollingService.registerElement(e,"headerRow")}))}const i=/Mobi/i.test(navigator.userAgent)||/Android/i.test(navigator.userAgent)||navigator.maxTouchPoints>0,s=[];for(let r of this.viewport.columns){const t=Object.assign(Object.assign({},r.headerProp),{type:r.type,additionalData:this.additionalData,viewportCol:r.viewportCol,selectionStore:r.columnSelectionStore,canResize:this.resize,readonly:this.readonly,columnFilter:!!this.filter}),o=[e("revogr-header",Object.assign({},t,{slot:ce}))];r.dataPorts.forEach((t=>{const s=`${t.type}_${r.type}`,n=e("revogr-overlay-selection",Object.assign({},t,{canDrag:this.canDrag&&t.canDrag,isMobileDevice:i,onSelectall:()=>{var e;return null===(e=this.selectionStoreConnector)||void 0===e?void 0:e.selectAll()},editors:this.editors,readonly:this.readonly,range:this.range,useClipboard:this.useClipboard,applyChangesOnClose:this.applyOnClose,additionalData:this.additionalData,slot:t.slot,onBeforenextvpfocus:e=>{var r;return null===(r=this.selectionStoreConnector)||void 0===r?void 0:r.beforeNextFocusCell(e.detail)},onCanceledit:()=>{var e;return null===(e=this.selectionStoreConnector)||void 0===e?void 0:e.setEdit(!1)},onSetedit:e=>{var r;this.beforeeditstart.emit(e.detail).defaultPrevented?e.preventDefault():null===(r=this.selectionStoreConnector)||void 0===r||r.setEdit(e.detail.val)}}),e("revogr-data",Object.assign({},t,{colType:r.type,key:s,readonly:this.readonly,range:this.range,rowClass:this.rowClass,rowSelectionStore:t.rowSelectionStore,additionalData:this.additionalData,jobsBeforeRender:this.jobsBeforeRender,slot:ve}),e("slot",{name:`data-${r.type}-${t.type}`})),e("revogr-temp-range",{selectionStore:t.selectionStore,dimensionRow:t.dimensionRow,dimensionCol:t.dimensionCol}),e("revogr-focus",{colData:t.colData,dataStore:t.dataStore,focusTemplate:this.focusTemplate,rowType:t.type,colType:r.type,selectionStore:t.selectionStore,dimensionRow:t.dimensionRow,dimensionCol:t.dimensionCol},e("slot",{name:`focus-${r.type}-${t.type}`})));o.push(n)})),s.push(e("revogr-viewport-scroll",Object.assign({},r.prop,{ref:e=>this.scrollingService.registerElement(e,""+r.prop.key),onScrollviewport:e=>{this.scrollingService.proxyScroll(e.detail,""+r.prop.key,this.noHorizontalScrollTransfer&&"rgCol"===e.detail.dimension)},onScrollviewportsilent:e=>this.scrollingService.scrollSilentService(e.detail,""+r.prop.key)}),o))}t.push(s);const n="rgRow",a="rgCol",l=this.viewportProvider.stores,h=this.dimensionProvider.stores,d=e("revogr-scroll-virtual",{class:"vertical",dimension:n,clientSize:l[n].store.get("clientSize"),virtualSize:l[n].store.get("virtualSize"),realSize:h[n].store.get("realSize"),ref:e=>this.scrollingService.registerElement(e,"rowScroll"),onScrollvirtual:e=>this.scrollingService.proxyScroll(e.detail)}),g=e("revogr-scroll-virtual",{class:"horizontal",dimension:a,clientSize:l[a].store.get("clientSize"),virtualSize:l[a].store.get("virtualSize"),realSize:h[a].store.get("realSize"),ref:e=>this.scrollingService.registerElement(e,"colScroll"),onScrollvirtual:e=>this.scrollingService.proxyScroll(e.detail)});return e(o,{dir:this.rtl?"rtl":"ltr","data-rg-theme-scheme":this.themeService.theme.colorScheme,style:this.themeStyles},this.hideAttribution?null:e("revogr-attribution",{class:"attribution"}),e("slot",{name:"header"}),e("div",{class:"main-viewport",onClick:e=>{var r;e.currentTarget===e.target&&(null===(r=this.viewport)||void 0===r||r.clearEdit())}},e("div",{class:"viewports"},e("slot",{name:"viewport"}),t,d,e(gt,{ref:e=>this.orderService=e}))),g,e("revogr-extra",{ref:e=>this.extraService=e,nodes:this.extraElements}),e("slot",{name:"footer"}))}disconnectedCallback(){this.removePlugins()}get element(){return this}static get watchers(){return{columnTypes:[{columnTypesChanged:0}],columns:[{columnChanged:0}],disableVirtualX:[{disableVirtualXChanged:0}],virtualX:[{virtualXChanged:0}],rowSize:[{rowSizeChanged:0}],colSize:[{colSizeChanged:0}],theme:[{themeChanged:0}],themeDefinitions:[{themeDefinitionsChanged:0}],source:[{dataSourceChanged:0}],pinnedBottomSource:[{dataSourceChanged:0}],pinnedTopSource:[{dataSourceChanged:0}],disableVirtualY:[{disableVirtualYChanged:0}],rowDefinitions:[{rowDefChanged:0}],trimmedRows:[{trimmedRowsChanged:0}],grouping:[{groupingChanged:0}],stretch:[{applyStretch:0}],filter:[{applyFilter:0}],sorting:[{applySorting:0}],rowHeaders:[{rowHeadersChange:0}],registerVNode:[{registerOutsideVNodes:0}],additionalData:[{additionalDataChanged:0}],rtl:[{rtlChanged:0}],plugins:[{pluginsChanged:0}]}}static get style(){return"revo-grid:is([theme=default],[theme=dark]),revo-grid:not([theme]){--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 12px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 4px);border:1px solid var(--rg-theme-header-border);font-size:var(--rg-theme-font-size)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-header,revo-grid:not([theme]) .rowHeaders revogr-header{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header,revo-grid:not([theme]) revogr-header{text-align:var(--rg-theme-header-text-align);line-height:var(--rg-theme-header-height);background-color:var(--rg-theme-header-bg)}revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{box-shadow:none}revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow .rgHeaderCell,revo-grid:not([theme]) revogr-header .group-rgRow .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border), -1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header .header-rgRow,revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{text-transform:var(--rg-theme-header-text-transform);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);color:var(--rg-theme-header-color)}revo-grid:is([theme=default],[theme=dark]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow{height:var(--rg-theme-header-height);box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header .rgHeaderCell,revo-grid:not([theme]) revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders,revo-grid:not([theme]) .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:first-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:last-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid var(--rg-theme-header-border)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data revogr-header,revo-grid:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinEnd,revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinEnd revogr-header,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset, 0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-data,revo-grid:not([theme]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=default],[theme=dark]) revogr-data .revo-draggable,revo-grid:not([theme]) revogr-data .revo-draggable{float:left}revo-grid:is([theme=default],[theme=dark]) revogr-data .rgRow,revo-grid:not([theme]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 27px)}revo-grid:is([theme=default],[theme=dark]) revogr-data .rgCell,revo-grid:not([theme]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset}revo-grid:is([theme=material],[theme=darkMaterial]),revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]){--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 50px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header .rgHeaderCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell{padding:var(--rg-theme-header-padding);text-overflow:ellipsis}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header .header-rgRow,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid:is([theme=material],[theme=darkMaterial]) .rowHeaders,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=material],[theme=darkMaterial]) .rowHeaders revogr-data .rgCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data .rgRow,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 42px)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data .rgCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid:is([theme=compact],[theme=darkCompact]){--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 45px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell{padding:var(--rg-theme-header-padding);text-overflow:ellipsis}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid:is([theme=compact],[theme=darkCompact]) .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=compact],[theme=darkCompact]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 32px)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid:is([theme=compact],[theme=darkCompact]) revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid[dir=rtl] .viewports{flex-direction:row-reverse}revo-grid[dir=rtl] revogr-header .rgHeaderCell{text-align:right}revo-grid[dir=rtl] revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] .rowHeaders revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] revogr-filter-panel{direction:rtl}revo-grid[dir=rtl] revo-dropdown .rv-dr-root{text-align:right}revo-grid[dir=rtl] .drag-position{right:0;left:auto}revo-grid[dir=rtl] .drag-auto-scroll-y{right:0;left:auto}revo-grid[dir=rtl] .clipboard{right:0;left:auto}revo-grid[dir=rtl] .draggable{margin-left:-20px;margin-right:0;padding-right:20px;padding-left:5px}revo-grid[dir=rtl] .draggable .revo-alt-icon{right:5px;left:auto}revo-grid[dir=rtl] .focused-cell{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .selection-range{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .resize-handle{right:0;left:auto}revo-grid[dir=rtl] .sort-indicator{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .filter-button{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .group-expand{margin-right:0;margin-left:2px;padding-right:5px;padding-left:0}revo-grid[dir=rtl] .rgCell,revo-grid[dir=rtl] .rgHeaderCell{padding-left:5px;padding-right:5px}revo-grid[dir=rtl] revogr-edit{direction:rtl}revo-grid[dir=rtl] .rgHeaderCell{direction:rtl}revo-grid[dir=rtl] revogr-header,revo-grid[dir=rtl] revogr-data{text-align:right}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders,revo-grid[dir=rtl]:not([theme]) .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:first-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, 1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:last-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-left:1px solid var(--rg-theme-header-border);border-right:none}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data revogr-header,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) revogr-header,revo-grid[dir=rtl]:not([theme]) revogr-header{text-align:right}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) revogr-data,revo-grid[dir=rtl]:not([theme]) revogr-data{text-align:right}.revo-drag-icon{width:11px;opacity:0.8}.revo-drag-icon::before{content:\"::\";display:inline-block}.revo-alt-icon{-webkit-mask-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]){background-color:transparent}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) revogr-header,revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) .rowHeaders{background-color:transparent;color:inherit}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) .rowHeaders revogr-data .rgCell{color:inherit}revo-grid{--rg-theme-primary:var(--revo-grid-primary, #266ae8);--rg-theme-primary-transparent:var( --revo-grid-primary-transparent, rgba(38, 106, 232, 0.9) );--rg-theme-background:var(--revo-grid-background, #fff);--rg-theme-foreground:var(--revo-grid-foreground, black);--rg-theme-divider:var(--revo-grid-divider, gray);--rg-theme-shadow:var(--revo-grid-shadow, rgba(0, 0, 0, 0.15));--rg-theme-text:var(--revo-grid-text, black);--rg-theme-border:var(--revo-grid-border, rgba(0, 0, 0, 0.2));--rg-theme-header-bg:var(--revo-grid-header-bg, #f8f9fa);--rg-theme-header-color:var(--revo-grid-header-color, #000);--rg-theme-header-border:var(--revo-grid-header-border, #cecece);--rg-theme-header-focused-bg:var( --revo-grid-header-focused-bg, var(--rg-theme-focused-bg) );--rg-theme-header-hover-bg:var( --revo-grid-header-hover-bg, var(--rg-theme-row-hover) );--rg-theme-cell-border:var(--revo-grid-cell-border, #e2e3e3);--rg-theme-cell-vertical-border:var( --revo-grid-cell-vertical-border, transparent );--rg-theme-focused-bg:var(--revo-grid-focused-bg, rgba(233, 234, 237, 0.5));--rg-theme-row-hover:var(--revo-grid-row-hover, #f1f1f1);--rg-theme-row-headers-bg:var( --revo-grid-row-headers-bg, var(--rg-theme-header-bg) );--rg-theme-row-headers-color:var( --revo-grid-row-headers-color, var(--rg-theme-header-color) );--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(0, 0, 0, 0.07) );--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #fff);--rg-theme-filter-panel-border:var(--revo-grid-filter-panel-border, #d9d9d9);--rg-theme-filter-panel-shadow:var( --revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15) );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #eaeaeb );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #d9d9d9 );--rg-theme-filter-panel-select-border:var( --revo-grid-filter-panel-select-border, transparent );--rg-theme-filter-panel-select-border-hover:var( --revo-grid-filter-panel-select-border-hover, transparent );--rg-theme-filter-panel-reorder-accent:var( --revo-grid-filter-panel-reorder-accent, #007cb2 );--rg-theme-filter-panel-reorder-color:var( --revo-grid-filter-panel-reorder-color, #6b7280 );--rg-theme-filter-panel-text:var( --revo-grid-filter-panel-text, var(--rg-theme-text) );--rg-theme-filter-panel-muted-text:var( --revo-grid-filter-panel-muted-text, gray );--rg-theme-filter-panel-focus-ring:var( --revo-grid-filter-panel-focus-ring, 0 0 1px 3px rgba(59, 153, 252, 0.7) );--rg-theme-filter-panel-icon:var(--revo-grid-filter-panel-icon, gray);--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #10224a );--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 14px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, center);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0);--rg-theme-selection-border:var(--revo-grid-selection-border, #0d63e8);--rg-theme-selection-bg:var(--revo-grid-selection-bg, transparent);--rg-theme-autofill-handle-bg:var( --revo-grid-autofill-handle-bg, var(--rg-theme-selection-border) );--rg-theme-autofill-handle-border:var( --revo-grid-autofill-handle-border, white );--rg-theme-range-handle-bg:var( --revo-grid-range-handle-bg, rgba(0, 0, 0, 0.2) );--rg-theme-temporary-range-border:var( --revo-grid-temporary-range-border, rgb(255, 94, 0) );--rg-theme-temporary-selection-border:var( --revo-grid-temporary-selection-border, gray );--rg-theme-header-resize-hover:var( --revo-grid-header-resize-hover, deepskyblue );--rg-theme-button-text:var(--revo-grid-button-text, #fff);--rg-theme-button-bg:var(--revo-grid-button-bg, #4545ff);--rg-theme-button-success-bg:var(--revo-grid-button-success-bg, #009037);--rg-theme-button-danger-bg:var(--revo-grid-button-danger-bg, #e0662e);--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #dbdbdb );--rg-theme-button-outline-text:var(--revo-grid-button-outline-text, #000)}revo-grid[data-rg-theme-scheme=dark]{color-scheme:dark;--rg-theme-background:var(--revo-grid-background, #212529);--rg-theme-foreground:var(--revo-grid-foreground, #fff);--rg-theme-text:var(--revo-grid-text, rgba(255, 255, 255, 0.9));--rg-theme-divider:var(--revo-grid-divider, #505050);--rg-theme-border:var( --revo-grid-border, rgba(255, 255, 255, 0.2) );--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #212529);--rg-theme-filter-panel-border:var( --revo-grid-filter-panel-border, #505050 );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #343a40 );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #505050 );--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #fff );--rg-theme-header-bg:var(--revo-grid-header-bg, #343a40);--rg-theme-header-color:var(--revo-grid-header-color, #fff);--rg-theme-header-border:var(--revo-grid-header-border, #505050);--rg-theme-cell-border:var(--revo-grid-cell-border, #424242);--rg-theme-focused-bg:var( --revo-grid-focused-bg, rgba(52, 58, 64, 0.5) );--rg-theme-row-hover:var( --revo-grid-row-hover, rgba(80, 80, 80, 0.5) );--rg-theme-row-headers-bg:var( --revo-grid-row-headers-bg, rgba(52, 58, 64, 0.8) );--rg-theme-row-headers-color:var( --revo-grid-row-headers-color, rgba(255, 255, 255, 0.8) );--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(255, 255, 255, 0.07) );--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #404040 );--rg-theme-button-outline-text:var( --revo-grid-button-outline-text, #d8d8d8 )}revo-grid[data-rg-theme-scheme=light]{color-scheme:light}revo-grid{}revo-grid>*{--revo-grid-primary:var(--rg-theme-primary);--revo-grid-primary-transparent:var(--rg-theme-primary-transparent);--revo-grid-background:var(--rg-theme-background);--revo-grid-foreground:var(--rg-theme-foreground);--revo-grid-divider:var(--rg-theme-divider);--revo-grid-shadow:var(--rg-theme-shadow);--revo-grid-text:var(--rg-theme-text);--revo-grid-border:var(--rg-theme-border);--revo-grid-header-bg:var(--rg-theme-header-bg);--revo-grid-header-color:var(--rg-theme-header-color);--revo-grid-header-border:var(--rg-theme-header-border);--revo-grid-header-focused-bg:var(--rg-theme-header-focused-bg);--revo-grid-header-hover-bg:var(--rg-theme-header-hover-bg);--revo-grid-cell-border:var(--rg-theme-cell-border);--revo-grid-cell-vertical-border:var(--rg-theme-cell-vertical-border);--revo-grid-focused-bg:var(--rg-theme-focused-bg);--revo-grid-row-hover:var(--rg-theme-row-hover);--revo-grid-row-headers-bg:var(--rg-theme-row-headers-bg);--revo-grid-row-headers-color:var(--rg-theme-row-headers-color);--revo-grid-cell-disabled-bg:var(--rg-theme-cell-disabled-bg);--revo-grid-filter-panel-bg:var(--rg-theme-filter-panel-bg);--revo-grid-filter-panel-border:var(--rg-theme-filter-panel-border);--revo-grid-filter-panel-shadow:var(--rg-theme-filter-panel-shadow);--revo-grid-filter-panel-input-bg:var(--rg-theme-filter-panel-input-bg);--revo-grid-filter-panel-divider:var(--rg-theme-filter-panel-divider);--revo-grid-filter-panel-select-border:var(--rg-theme-filter-panel-select-border);--revo-grid-filter-panel-select-border-hover:var(--rg-theme-filter-panel-select-border-hover);--revo-grid-filter-panel-reorder-accent:var(--rg-theme-filter-panel-reorder-accent);--revo-grid-filter-panel-reorder-color:var(--rg-theme-filter-panel-reorder-color);--revo-grid-filter-panel-text:var(--rg-theme-filter-panel-text);--revo-grid-filter-panel-muted-text:var(--rg-theme-filter-panel-muted-text);--revo-grid-filter-panel-focus-ring:var(--rg-theme-filter-panel-focus-ring);--revo-grid-filter-panel-icon:var(--rg-theme-filter-panel-icon);--revo-grid-filter-panel-icon-active:var(--rg-theme-filter-panel-icon-active);--revo-grid-font-family:var(--rg-theme-font-family);--revo-grid-font-size:var(--rg-theme-font-size);--revo-grid-header-height:var(--rg-theme-header-height);--revo-grid-header-font-size:var(--rg-theme-header-font-size);--revo-grid-header-font-weight:var(--rg-theme-header-font-weight);--revo-grid-header-text-transform:var(--rg-theme-header-text-transform);--revo-grid-header-text-align:var(--rg-theme-header-text-align);--revo-grid-cell-text-align:var(--rg-theme-cell-text-align);--revo-grid-header-padding:var(--rg-theme-header-padding);--revo-grid-cell-padding:var(--rg-theme-cell-padding);--revo-grid-selection-border:var(--rg-theme-selection-border);--revo-grid-selection-bg:var(--rg-theme-selection-bg);--revo-grid-autofill-handle-bg:var(--rg-theme-autofill-handle-bg);--revo-grid-autofill-handle-border:var(--rg-theme-autofill-handle-border);--revo-grid-range-handle-bg:var(--rg-theme-range-handle-bg);--revo-grid-temporary-range-border:var(--rg-theme-temporary-range-border);--revo-grid-temporary-selection-border:var(--rg-theme-temporary-selection-border);--revo-grid-header-resize-hover:var(--rg-theme-header-resize-hover);--revo-grid-button-text:var(--rg-theme-button-text);--revo-grid-button-bg:var(--rg-theme-button-bg);--revo-grid-button-success-bg:var(--rg-theme-button-success-bg);--revo-grid-button-danger-bg:var(--rg-theme-button-danger-bg);--revo-grid-button-outline-border:var(--rg-theme-button-outline-border);--revo-grid-button-outline-text:var(--rg-theme-button-outline-text)}revo-grid{direction:ltr !important}revo-grid revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .rgHeaderCell.sortable:hover{background-color:var(--rg-theme-header-hover-bg)}revo-grid revogr-header .rgHeaderCell.focused-cell{background:var(--rg-theme-header-focused-bg)}revo-grid .footer-wrapper revogr-data{box-shadow:0 -1px 0 var(--rg-theme-cell-border)}revo-grid revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 var(--rg-theme-cell-border)}revo-grid revogr-data .rgRow{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-data .rgRow.focused-rgRow{background-color:var(--rg-theme-focused-bg)}revo-grid revogr-data .rgCell{color:var(--rg-theme-text)}revo-grid revogr-data .rgCell.disabled{background-color:var(--rg-theme-cell-disabled-bg)}revo-grid{display:flex !important;height:100%;min-height:300px;background-color:var(--rg-theme-background);font-family:var(--rg-theme-font-family);font-size:var(--rg-theme-font-size);position:relative;color:var(--rg-theme-text);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}revo-grid .attribution{position:absolute;bottom:0;left:0;right:0;z-index:1000;width:0;height:0;border-left:4px solid var(--rg-theme-primary-transparent);border-bottom:4px solid var(--rg-theme-primary-transparent);border-top:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;bottom:0;left:0;background-color:var(--rg-theme-background);padding:4px;border-radius:4px;box-shadow:0 1px 10px var(--rg-theme-border);white-space:nowrap;text-decoration:none;color:var(--rg-theme-text);letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid{display:flex;flex-direction:column;width:100%;height:100%}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:var(--rg-theme-background);border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 var(--rg-theme-shadow);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:var(--rg-theme-foreground);position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}"}},[260,"revo-grid",{rowHeaders:[4,"row-headers"],frameSize:[2,"frame-size"],rowSize:[2,"row-size"],colSize:[2,"col-size"],range:[4],readonly:[4],resize:[4],noHorizontalScrollTransfer:[4,"no-horizontal-scroll-transfer"],canFocus:[4,"can-focus"],useClipboard:[4,"use-clipboard"],columns:[16],source:[16],pinnedTopSource:[16],pinnedBottomSource:[16],rowDefinitions:[16],editors:[16],applyOnClose:[4,"apply-on-close"],plugins:[16],columnTypes:[16],theme:[1537],themeDefinitions:[16],rowClass:[513,"row-class"],autoSizeColumn:[4,"auto-size-column"],filter:[4],sorting:[16],focusTemplate:[16],canMoveColumns:[4,"can-move-columns"],trimmedRows:[16],exporting:[4],grouping:[16],stretch:[8],additionalData:[16],disableVirtualX:[4,"disable-virtual-x"],virtualX:[16],disableVirtualY:[4,"disable-virtual-y"],hideAttribution:[4,"hide-attribution"],jobsBeforeRender:[16],registerVNode:[16],accessible:[4],rtl:[4],canDrag:[4,"can-drag"],refresh:[64],setDataAt:[64],scrollToRow:[64],scrollToColumnIndex:[64],scrollToColumnProp:[64],updateColumns:[64],addTrimmed:[64],scrollToCoordinate:[64],setCellEdit:[64],setCellsFocus:[64],getSource:[64],getVisibleSource:[64],getSourceStore:[64],getColumnStore:[64],updateColumnSorting:[64],clearSorting:[64],getColumns:[64],clearFocus:[64],getPlugins:[64],getFocused:[64],getContentSize:[64],getSelectedRange:[64],refreshExtraElements:[64],getProviders:[64]},[[5,"touchstart","mousedownHandle"],[5,"mousedown","mousedownHandle"],[5,"touchend","mouseupHandle"],[5,"mouseup","mouseupHandle"],[0,"rowdragstartinit","onRowDragStarted"],[0,"rowdragendinit","onRowDragEnd"],[0,"roworderchange","onRowOrderChange"],[0,"rowdragmoveinit","onRowDrag"],[0,"rowdragmousemove","onRowMouseMove"],[0,"celleditapply","onCellEdit"],[0,"rangeeditapply","onRangeEdit"],[0,"selectionchangeinit","onRangeChanged"],[0,"rowdropinit","onRowDropped"],[0,"beforeheaderclick","onHeaderClick"],[0,"beforecellfocusinit","onCellFocus"]],{columnTypes:[{columnTypesChanged:0}],columns:[{columnChanged:0}],disableVirtualX:[{disableVirtualXChanged:0}],virtualX:[{virtualXChanged:0}],rowSize:[{rowSizeChanged:0}],colSize:[{colSizeChanged:0}],theme:[{themeChanged:0}],themeDefinitions:[{themeDefinitionsChanged:0}],source:[{dataSourceChanged:0}],pinnedBottomSource:[{dataSourceChanged:0}],pinnedTopSource:[{dataSourceChanged:0}],disableVirtualY:[{disableVirtualYChanged:0}],rowDefinitions:[{rowDefChanged:0}],trimmedRows:[{trimmedRowsChanged:0}],grouping:[{groupingChanged:0}],stretch:[{applyStretch:0}],filter:[{applyFilter:0}],sorting:[{applySorting:0}],rowHeaders:[{rowHeadersChange:0}],registerVNode:[{registerOutsideVNodes:0}],additionalData:[{additionalDataChanged:0}],rtl:[{rtlChanged:0}],plugins:[{pluginsChanged:0}]}]),pt=ft,bt=function(){"undefined"!=typeof customElements&&["revo-grid","revogr-attribution","revogr-clipboard","revogr-data","revogr-edit","revogr-extra","revogr-focus","revogr-header","revogr-order-editor","revogr-overlay-selection","revogr-row-headers","revogr-scroll-virtual","revogr-temp-range","revogr-viewport-scroll","vnode-html"].forEach((e=>{switch(e){case"revo-grid":customElements.get(s(e))||customElements.define(s(e),ft);break;case"revogr-attribution":customElements.get(s(e))||we();break;case"revogr-clipboard":customElements.get(s(e))||xe();break;case"revogr-data":customElements.get(s(e))||ye();break;case"revogr-edit":customElements.get(s(e))||Ce();break;case"revogr-extra":customElements.get(s(e))||Se();break;case"revogr-focus":customElements.get(s(e))||ke();break;case"revogr-header":customElements.get(s(e))||pe();break;case"revogr-order-editor":customElements.get(s(e))||je();break;case"revogr-overlay-selection":customElements.get(s(e))||Oe();break;case"revogr-row-headers":customElements.get(s(e))||oe();break;case"revogr-scroll-virtual":customElements.get(s(e))||ze();break;case"revogr-temp-range":customElements.get(s(e))||Re();break;case"revogr-viewport-scroll":customElements.get(s(e))||ue();break;case"vnode-html":customElements.get(s(e))||Ee()}}))};export{Ae as A,Fe as B,Ne as C,Ie as D,Ge as E,gr as F,Ir as G,Sr as H,kr as I,jr as J,Or as K,zr as L,pt as RevoGrid,De as S,Ve as a,Ue as b,cr as c,He as d,bt as defineCustomElement,vr as e,ur as f,lr as g,hr as h,$e as i,dr as j,er as k,ir as l,Er as m,Pr as n,Mr as o,Nr as p,Ar as q,tr as r,Vr as s,Pe as t,$r as u,Xr as v,qr as w,Rr as x,pr as y,wr as z}
4
+ import{h as e,proxyCustomElement as t,HTMLElement as r,createEvent as i,Host as o,transformTag as s}from"@stencil/core/internal/client";import{K as n,g as a,L as h,D as l,c as d,M as c,u as g,t as v,r as u,G as m,A as f,j as p,J as b,h as w,x,y,e as C,d as S,o as k,f as j,p as O,s as z,B as R,m as E,v as P,q as H,F as T,i as L,E as M,a as D,n as I,H as F}from"./column.service.js";import{k as B,j as N,l as A,m as V,b as $,g as X,e as q,D as U,f as Y,d as G,s as W,h as J,a as K}from"./data.store.js";import{d as Z}from"./debounce.js";import{R as Q}from"./consts.js";import{g as _}from"./local.scroll.timer.js";import{c as ee,g as te,a as re}from"./dimension.helpers.js";import"./platform.js";import{j as ie,g as oe,V as se,k as ne}from"./revogr-row-headers2.js";import{g as ae,t as he}from"./index2.js";import{b as le,i as de}from"./filter.button.js";import{v as ce,F as ge,C as ve,H as ue,D as me,d as fe}from"./revogr-viewport-scroll2.js";import{O as pe,d as be,b as we}from"./revogr-header2.js";import{g as xe}from"./selection.utils.js";import{d as ye}from"./revogr-attribution2.js";import{d as Ce}from"./revogr-clipboard2.js";import{d as Se}from"./revogr-data2.js";import{o as ke}from"./revogr-edit2.js";import{d as je}from"./revogr-extra2.js";import{d as Oe}from"./revogr-focus2.js";import{d as ze}from"./revogr-order-editor2.js";import{d as Re}from"./revogr-overlay-selection2.js";import{d as Ee}from"./revogr-scroll-virtual2.js";import{d as Pe}from"./revogr-temp-range2.js";import{d as He}from"./vnode-converter.js";const Te={primary:"--revo-grid-primary",primaryTransparent:"--revo-grid-primary-transparent",background:"--revo-grid-background",foreground:"--revo-grid-foreground",divider:"--revo-grid-divider",shadow:"--revo-grid-shadow",text:"--revo-grid-text",border:"--revo-grid-border",headerBg:"--revo-grid-header-bg",headerColor:"--revo-grid-header-color",headerBorder:"--revo-grid-header-border",headerFocusedBg:"--revo-grid-header-focused-bg",headerHoverBg:"--revo-grid-header-hover-bg",cellBorder:"--revo-grid-cell-border",cellVerticalBorder:"--revo-grid-cell-vertical-border",focusedBg:"--revo-grid-focused-bg",rowHover:"--revo-grid-row-hover",rowHeadersBg:"--revo-grid-row-headers-bg",rowHeadersColor:"--revo-grid-row-headers-color",cellDisabledBg:"--revo-grid-cell-disabled-bg",filterPanelBg:"--revo-grid-filter-panel-bg",filterPanelBorder:"--revo-grid-filter-panel-border",filterPanelShadow:"--revo-grid-filter-panel-shadow",filterPanelInputBg:"--revo-grid-filter-panel-input-bg",filterPanelDivider:"--revo-grid-filter-panel-divider",filterPanelSelectBorder:"--revo-grid-filter-panel-select-border",filterPanelSelectBorderHover:"--revo-grid-filter-panel-select-border-hover",filterPanelReorderAccent:"--revo-grid-filter-panel-reorder-accent",filterPanelReorderColor:"--revo-grid-filter-panel-reorder-color",filterPanelText:"--revo-grid-filter-panel-text",filterPanelMutedText:"--revo-grid-filter-panel-muted-text",filterPanelFocusRing:"--revo-grid-filter-panel-focus-ring",filterPanelIcon:"--revo-grid-filter-panel-icon",filterPanelIconActive:"--revo-grid-filter-panel-icon-active",filterPanelSelectArrow:"--revo-grid-filter-panel-select-arrow",filterPanelSelectArrowDisabled:"--revo-grid-filter-panel-select-arrow-disabled",fontFamily:"--revo-grid-font-family",fontSize:"--revo-grid-font-size",headerHeight:"--revo-grid-header-height",headerFontSize:"--revo-grid-header-font-size",headerFontWeight:"--revo-grid-header-font-weight",headerTextTransform:"--revo-grid-header-text-transform",headerTextAlign:"--revo-grid-header-text-align",cellTextAlign:"--revo-grid-cell-text-align",headerPadding:"--revo-grid-header-padding",cellPadding:"--revo-grid-cell-padding",selectionBorder:"--revo-grid-selection-border",selectionBg:"--revo-grid-selection-bg",autofillHandleBg:"--revo-grid-autofill-handle-bg",autofillHandleBorder:"--revo-grid-autofill-handle-border",rangeHandleBg:"--revo-grid-range-handle-bg",temporaryRangeBorder:"--revo-grid-temporary-range-border",temporarySelectionBorder:"--revo-grid-temporary-selection-border",headerResizeHover:"--revo-grid-header-resize-hover",buttonText:"--revo-grid-button-text",buttonBg:"--revo-grid-button-bg",buttonSuccessBg:"--revo-grid-button-success-bg",buttonDangerBg:"--revo-grid-button-danger-bg",buttonOutlineBorder:"--revo-grid-button-outline-border",buttonOutlineText:"--revo-grid-button-outline-text"};function Le(e){return e}function Me({count:e,originItemSize:t,sizes:r}){const i=Math.max(0,e);let o=i*t;for(let e in r){const s=Number(e);!Number.isInteger(s)||s<0||s>=i||s+""!==e||(o+=r[e]-t)}return o}function De(){return Object.assign(Object.assign({},{indexes:[],count:0,trimmed:null,sizes:{},positionIndexToItem:{},indexToItem:{},positionIndexes:[]}),{realSize:0,originItemSize:0,renderOffset:0})}class Ie{constructor(e){this.type=e,this.store=B(De()),this.store.use((e=>{let t=null,r=null;return{set(i,o){switch(i){case"sizes":if(t&&t===o)return void(t=null);r=null;break;case"trimmed":{const i=o;null!=r||(r=e.store.get("sizes")),t=function(e,t){const r={},i=Object.keys(e||{}).map(Number).sort(((e,t)=>e-t)),o=i[i.length-1];let s=0;for(let i=0;i<=o;i++)void 0!==t[i]&&(s++,void 0!==e[i])||void 0!==e[i]&&(r[i-s]=e[i]);return r}(r,i||{}),e.setSizes(t);break}}}}})({store:this.store,setSizes:this.setDimensionSize.bind(this)})),this.store.use((e=>({set(t){switch(t){case"count":case"sizes":case"originItemSize":e.setStore({realSize:Me({count:e.store.get("count"),sizes:e.store.get("sizes"),originItemSize:e.store.get("originItemSize")})})}}}))({store:this.store,setStore:this.setStore.bind(this)}))}getCurrentState(){const e=De();return n(Object.keys(e),((e,t)=>{const r=this.store.get(t);return e[t]=r,e}),e)}dispose(){N(this.store,De())}setStore(e){N(this.store,e)}drop(){N(this.store,Object.assign(Object.assign({},{indexes:[],count:0,trimmed:null,sizes:{},positionIndexToItem:{},indexToItem:{},positionIndexes:[]}),{renderOffset:0}))}setDimensionSize(e={}){const t=ee(this.store.get("originItemSize"),e);N(this.store,Object.assign(Object.assign({},t),{sizes:e}))}updateSizesPositionByIndexes(e,t=[]){const r=Object.assign({},this.store.get("sizes"));if(!Object.keys(r).length)return;const i={};t.forEach(((e,t)=>{i[e]||(i[e]=[]),i[e].push(t)}));const o={};e.forEach(((e,t)=>{const s=i[e];if(s&&s.length>0){const e=s.shift();void 0!==e&&e!==t&&"number"==typeof r[e]&&(o[t]=r[e],delete r[e])}})),Object.keys(o).length&&this.setDimensionSize(Object.assign(Object.assign({},r),o))}}class Fe{constructor(){this.unsubscribe=[],this.store=B({range:null,tempRange:null,tempRangeType:null,focus:null,edit:null,lastCell:null,nextFocus:null}),this.store.on("set",((e,t)=>{"tempRange"!==e||t||this.store.set("tempRangeType",null)}))}onChange(e,t){this.unsubscribe.push(this.store.onChange(e,t))}clearFocus(){N(this.store,{focus:null,range:null,edit:null,tempRange:null})}setFocus(e,t){N(this.store,t?{focus:e,range:a(e,t),edit:null,tempRange:null}:{focus:e})}setNextFocus(e){N(this.store,{nextFocus:e})}setTempArea(e){N(this.store,{tempRange:null==e?void 0:e.area,tempRangeType:null==e?void 0:e.type,edit:null})}clearTemp(){N(this.store,{tempRange:null})}setRangeArea(e){N(this.store,{range:e,edit:null,tempRange:null})}setRange(e,t){const r=a(e,t);this.setRangeArea(r)}setLastCell(e){N(this.store,{lastCell:e})}setEdit(e){const t=this.store.get("focus");N(this.store,t&&"string"==typeof e?{edit:{x:t.x,y:t.y,val:e}}:{edit:null})}dispose(){this.unsubscribe.forEach((e=>e())),this.store.dispose()}}class Be{constructor(t,r){this.revogrid=t,this.providers=r,this.h=e,this.subscriptions={}}addEventListener(e,t){this.revogrid.addEventListener(e,t),this.subscriptions[e]=t}watch(e,t,{immediate:r}={immediate:!1}){var i;const o=Object.getOwnPropertyDescriptor(this.revogrid,e)||Object.getOwnPropertyDescriptor(this.revogrid.constructor.prototype,e);Object.defineProperty(this.revogrid,e,{configurable:!0,enumerable:null===(i=null==o?void 0:o.enumerable)||void 0===i||i,set(e){var r;if(!1!==t(e))return null===(r=null==o?void 0:o.set)||void 0===r?void 0:r.call(this,e)},get(){var e;return null===(e=null==o?void 0:o.get)||void 0===e?void 0:e.call(this)}}),r&&t((null==o?void 0:o.get)?o.get.call(this.revogrid):null==o?void 0:o.value)}removeEventListener(e){this.revogrid.removeEventListener(e,this.subscriptions[e]),delete this.subscriptions[e]}emit(e,t){const r=new CustomEvent(e,{detail:t,cancelable:!0});return this.revogrid.dispatchEvent(r),r}clearSubscriptions(){for(let e in this.subscriptions)this.removeEventListener(e)}destroy(){this.clearSubscriptions()}}function Ne(e,t){for(var r=-1,i=null==e?0:e.length;++r<i&&!1!==t(e[r],r,e););return e}function Ae(e,t){return(V(e)?Ne:h)(e,function(e){return"function"==typeof e?e:A}(t))}var Ve;!function(e){e.headerClickAutosize="headerClickAutoSize",e.autoSizeOnTextOverlap="autoSizeOnTextOverlap",e.autoSizeAll="autoSizeAll"}(Ve||(Ve={}));class $e extends Be{constructor(e,t,r){super(e,t),this.providers=t,this.config=r,this.autoSizeColumns=null,this.dataResolve=null,this.dataReject=null,this.letterBlockSize=(null==r?void 0:r.letterBlockSize)||7,(null==r?void 0:r.preciseSize)&&(this.precsizeCalculationArea=this.initiatePresizeElement(),e.appendChild(this.precsizeCalculationArea));const i=({detail:{source:e}})=>{this.setSource(e)};switch(this.addEventListener("beforecolumnsset",(({detail:{columns:e}})=>{this.columnSet(e)})),null==r?void 0:r.mode){case Ve.autoSizeOnTextOverlap:this.addEventListener("aftersourceset",i),this.addEventListener("afteredit",(({detail:e})=>{this.afteredit(e)}));break;case Ve.autoSizeAll:this.addEventListener("aftersourceset",i),this.addEventListener("afteredit",(({detail:e})=>{this.afterEditAll(e)}));break;default:this.addEventListener("headerdblclick",(({detail:e})=>{const t=l(e.column),r=this.getColumnSize(e.index,t);r&&this.providers.dimension.setCustomSizes(t,{[e.index]:r},!0)}))}}async setSource(e){let t=this.autoSizeColumns;if(this.dataReject&&(this.dataReject(),this.clearPromise()),!t){const e=new Promise(((e,t)=>{this.dataResolve=e,this.dataReject=t}));try{t=await e}catch(e){return}}Ae(t,((r,i)=>{const o={};Ae(t[i],(t=>{t.size=o[t.index]=e.reduce(((e,r)=>Math.max(e,this.getLength(r[t.prop]))),this.getLength(t.name||""))})),this.providers.dimension.setCustomSizes(i,o,!0)}))}getLength(e){var t;if(!e)return 0;try{const r=""+e;return(null===(t=this.config)||void 0===t?void 0:t.preciseSize)?(this.precsizeCalculationArea.innerText=r,this.precsizeCalculationArea.scrollWidth+30):r.length*this.letterBlockSize+30}catch(e){return 0}}afteredit(e){let t;t=this.isRangeEdit(e)?e.data:{0:{[e.prop]:e.val}},Ae(this.autoSizeColumns,((e,r)=>{const i={};Ae(e,(e=>{var r;const o=n(t,((t,r)=>void 0===r[e.prop]?t:Math.max(t||0,this.getLength(r[e.prop]))),void 0);o&&(null!==(r=e.size)&&void 0!==r?r:0)<o&&(e.size=i[e.index]=o)})),this.providers.dimension.setCustomSizes(r,i,!0)}))}afterEditAll(e){const t={};this.isRangeEdit(e)?Ae(e.data,(e=>Ae(e,((e,r)=>t[r]=!0)))):t[e.prop]=!0,Ae(this.autoSizeColumns,((e,r)=>{const i={};Ae(e,(e=>{if(t[e.prop]){const t=this.getColumnSize(e.index,r);t&&(i[e.index]=t)}})),this.providers.dimension.setCustomSizes(r,i,!0)}))}getColumnSize(e,t){var r,i;const o=null===(i=null===(r=this.autoSizeColumns)||void 0===r?void 0:r[t])||void 0===i?void 0:i[e];return o?n(this.providers.data.stores,((e,t)=>{const r=n(t.store.get("items"),((e,r,i)=>{const s=$(t.store,i);return Math.max(e||0,this.getLength(null==s?void 0:s[o.prop]))}),0);return Math.max(e,r)}),o.size||0):0}columnSet(e){var t;for(let r of d){const i=r,o=e[i];for(let e in o)(o[e].autoSize||(null===(t=this.config)||void 0===t?void 0:t.allColumns))&&(this.autoSizeColumns||(this.autoSizeColumns={}),this.autoSizeColumns[i]||(this.autoSizeColumns[i]={}),this.autoSizeColumns[i][e]=Object.assign(Object.assign({},o[e]),{index:parseInt(e,10)}))}this.dataResolve&&(this.dataResolve(this.autoSizeColumns||{}),this.clearPromise())}clearPromise(){this.dataResolve=null,this.dataReject=null}isRangeEdit(e){return!!e.data}initiatePresizeElement(){var e;const t={position:"absolute",fontSize:"14px",height:"0",width:"0",whiteSpace:"nowrap",top:"0",overflowX:"scroll",display:"block"},r=document.createElement("div");for(let i in t)r.style[i]=null!==(e=t[i])&&void 0!==e?e:"";return r.classList.add("revo-test-container"),r}destroy(){var e;super.destroy(),null===(e=this.precsizeCalculationArea)||void 0===e||e.remove()}}class Xe extends Be{constructor(e,t){super(e,t),this.providers=t,this.stretchedColumn=null,this.scrollSize=ae(document),this.addEventListener("beforecolumnapplied",(({detail:{columns:e}})=>this.applyStretch(e)))}setScroll({type:e,hasScroll:t}){var r;"rgRow"===e&&this.stretchedColumn&&(null===(r=this.stretchedColumn)||void 0===r?void 0:r.initialSize)===this.stretchedColumn.size&&t&&(this.stretchedColumn.size-=this.scrollSize,this.apply(),this.dropChanges())}activateChanges(){this.addEventListener("scrollchange",(({detail:e})=>this.setScroll(e)))}dropChanges(){this.stretchedColumn=null,this.removeEventListener("scrollchange")}apply(){if(!this.stretchedColumn)return;const e="rgCol",t=this.providers.dimension.stores[e].store.get("sizes");this.providers.dimension.setCustomSizes(e,Object.assign(Object.assign({},t),{[this.stretchedColumn.index]:this.stretchedColumn.size}),!0)}applyStretch(e){this.dropChanges();let t=this.revogrid.clientWidth-1;if(Ae(e,((e,r)=>{const i=this.providers.dimension.stores[r].store.get("realSize");t-=i})),this.revogrid.rowHeaders){const e=this.providers.data.stores.rgRow.store.get("source").length,r=this.revogrid.rowHeaders,i=ie(e,"object"==typeof r?r:void 0);i&&(t-=i)}if(t>0){const r=e.rgCol.length-1,i=e.rgCol[r],o=(null==i?void 0:i.size)||this.revogrid.colSize||0,s=t+o-1;i&&!i.autoSize&&o<s&&(this.stretchedColumn={initialSize:s,index:r,size:s},this.apply(),this.activateChanges())}}}function qe(e){return!!e.applyStretch}const Ue={mime:"text/csv",fileKind:"csv",bom:!0,columnDelimiter:",",rowDelimiter:"\r\n",encoding:""},Ye=RegExp('"',"g");class Ge{constructor(e={}){this.options=Object.assign(Object.assign({},Ue),e)}doExport({data:e,headers:t,props:r}){let i=this.options.bom?"\ufeff":"";return(null==t?void 0:t.length)>0&&t.forEach((e=>{e.length&&(i+=this.prepareHeader(e,this.options.columnDelimiter),i+=this.options.rowDelimiter)})),e.forEach(((e,t)=>{t>0&&(i+=this.options.rowDelimiter),g(e)?i+=this.parseCell(v(e),this.options.columnDelimiter):i+=r.map((t=>this.parseCell(e[t],this.options.columnDelimiter))).join(this.options.columnDelimiter)})),i}prepareHeader(e,t){let r="";return r+=e.map((e=>this.parseCell(e,t,!0))).join(t),r}parseCell(e,t,r=!1){let i=e;return"string"!=typeof e&&(i=JSON.stringify(e)),void 0===i?"":""!==i&&(r||["\r",'"',"\n",t].some((e=>i.indexOf(e)>=0)))?`"${i.replace(Ye,'""')}"`:i}}var We;!function(e){e.csv="csv"}(We||(We={}));class Je extends Be{async exportString(e={},t=We.csv){const r=await this.beforeexport();return r?this.formatter(t,e).doExport(r):null}async exportBlob(e={},t=We.csv){return await this.getBlob(this.formatter(t,e))}async exportFile(e={},t=We.csv){const r=this.formatter(t,e),i=window.URL||window.webkitURL,o=document.createElement("a"),{filename:s,fileKind:n}=r.options,a=`${s}.${n}`,h=await this.getBlob(r),l=h?i.createObjectURL(h):"";o.style.display="none",o.setAttribute("href",l),o.setAttribute("download",a),this.revogrid.appendChild(o),o.dispatchEvent(new MouseEvent("click")),this.revogrid.removeChild(o),await he(120),i.revokeObjectURL(l)}async getBlob(e){const t=`${e.options.mime};charset=${e.options.encoding}`;if("undefined"!=typeof Blob){const r=await this.beforeexport();return r?new Blob([e.doExport(r)],{type:t}):null}return null}async beforeexport(){let e=await this.getData();const t=this.emit("beforeexport",{data:e});return t.defaultPrevented?null:t.detail.data}async getData(){const e=await this.getSource(),t=[],r=[];d.forEach(((e,i)=>{r.push(this.getColPerSource(e).then((e=>t[i]=e)))})),await Promise.all(r);const i={headers:[],props:[]};for(let e of t)e.headers.forEach(((e,t)=>{i.headers[t]||(i.headers[t]=[]),i.headers[t].push(...e)})),i.props.push(...e.props);return Object.assign({data:e},i)}async getColPerSource(e){const t=await this.revogrid.getColumnStore(e),r=t.get("source"),i=t.get("items"),o=t.get("groupingDepth"),s=t.get("groups"),n=[],a=[];i.forEach((e=>{const t=r[e].prop;n.push(r[e].name||""),a.push(t)}));const h=this.getGroupHeaders(o,s,i);return h.push(n),{headers:h,props:a}}getGroupHeaders(e,t,r){const i=[],o=function(e){return null!=e&&e.length?function(e,t,r,i){var o=e.length;for((r=c(r))<0&&(r=-r>o?0:o+r),(i=void 0===i||i>o?o:c(i))<0&&(i+=o),i=r>i?0:function(e){return e?function(e,t,r){return e==e&&(e=(e=e<=r?e:r)>=0?e:0),e}(c(e),0,4294967295):0}(i);r<i;)e[r++]=t;return e}(e,"",void 0,void 0):[]}(Array(r.length));for(let r=0;r<e;r++){const e=[...o];(i.push(e),t[r])&&t[r].forEach((t=>{const r=t.indexes[0];"number"==typeof r&&(e[r]=t.name)}))}return i}async getSource(){const e=[],t=[];return u.forEach((r=>{const i=[];e.push(i);const o=this.revogrid.getVisibleSource(r).then((e=>i.push(...e)));t.push(o)})),await Promise.all(t),e.reduce(((e,t)=>(e.push(...t),e)),[])}formatter(e,t={}){if(e===We.csv)return new Ge(t);throw Error("Unknown format")}}const Ke=(e,t)=>{if(void 0===e||null===e&&!t)return!0;"string"!=typeof e&&(e=JSON.stringify(e));const r=null==t?void 0:(""+t).toLocaleLowerCase();return 0===(null==r?void 0:r.length)||e.toLocaleLowerCase()===r},Ze=(e,t)=>!Ke(e,t);Ze.extra="input",Ke.extra="input";const Qe=function(e,t){let r;return"number"==typeof e&&null!=t&&(r=parseFloat(null==t?void 0:""+t),e>r)};Qe.extra="input";const _e=function(e,t){return Ke(e,t)||Qe(e,t)};_e.extra="input";const et=function(e,t){let r;return"number"==typeof e&&null!=t&&(r=parseFloat(""+t),e<r)};et.extra="input";const tt=function(e,t){return Ke(e,t)||et(e,t)};tt.extra="input";const rt=Object.freeze({null:!0,undefined:!0,emptyString:!0,whitespaceOnlyString:!1,emptyArray:!1,missingProperty:!0}),it=["null","undefined","emptyString","whitespaceOnlyString","emptyArray","missingProperty"];function ot(e,t){const r=Object.assign({},rt);for(const i of[e,t])if(i){for(const e of it)void 0!==i[e]&&(r[e]=i[e]);void 0!==i.isBlank&&(r.isBlank=i.isBlank)}return r}function st(e,t){const r=t.blankSemantics;let i;return i=t.hasOwnProperty?null===e?!0===r.null:void 0===e?!0===r.undefined:""===e?!0===r.emptyString:"string"==typeof e&&e.length>0&&""===e.trim()?!0===r.whitespaceOnlyString:!(!Array.isArray(e)||0!==e.length)&&!0===r.emptyArray:!0===r.missingProperty,r.isBlank?r.isBlank(e,t,i):i}const nt=(e,t,r)=>st(r?r.sourceValue:e,function(e,t){return null!=t?t:{model:{},property:"",sourceValue:e,parsedValue:e,hasOwnProperty:!0,blankSemantics:rt}}(e,r)),at=(e,t)=>!(!e||t&&("string"!=typeof e&&(e=JSON.stringify(e)),"string"!=typeof t&&(t=JSON.stringify(t)),0!==e.toLocaleLowerCase().indexOf(t.toLocaleLowerCase())));at.extra="input";const ht=(e,t)=>!t||!!e&&(!t||("string"!=typeof e&&(e=JSON.stringify(e)),e.toLocaleLowerCase().indexOf((""+t).toLowerCase())>-1)),lt=(e,t)=>!ht(e,t);lt.extra="input",ht.extra="input";const dt={none:()=>!0,empty:nt,notEmpty:(e,t,r)=>!nt(e,0,r),eq:Ke,notEq:Ze,begins:at,contains:ht,notContains:lt,eqN:Ke,neqN:Ze,gt:Qe,gte:_e,lt:et,lte:tt},ct={string:["notEmpty","empty","eq","notEq","begins","contains","notContains"],number:["notEmpty","empty","eqN","neqN","gt","gte","lt","lte"],boolean:["notEmpty","empty"],array:["notEmpty","empty"]},gt={none:"None",empty:"Is blank",notEmpty:"Is not blank",eq:"Equal",notEq:"Not equal",begins:"Begins with",contains:"Contains",notContains:"Does not contain",eqN:"=",neqN:"!=",gt:">",gte:">=",lt:"<",lte:"<="},vt="filter",ut="filterconfigchanged",mt="revogr-filter-panel";class ft extends Be{constructor(t,r,i){var o;super(t,r),this.revogrid=t,this.config=i,this.filterCollection={},this.multiFilterItems={},this.filterByType=Object.assign({},ct),this.filterNameIndexByType=Object.assign({},gt),this.filterFunctionsIndexedByType=Object.assign({},dt),this.filterProp=le,this.allowDuplicateOperators=!0,this.filteringRunId=0,i&&this.initConfig(i);const s=this.revogrid.registerVNode.filter((e=>"object"==typeof e&&e.t!==mt));this.revogrid.registerVNode=[...s,e("revogr-filter-panel",{filterNames:this.filterNameIndexByType,filterEntities:this.filterFunctionsIndexedByType,filterCaptions:null===(o=null==i?void 0:i.localization)||void 0===o?void 0:o.captions,onFilterChange:e=>this.onFilterChange(e.detail),onResetChange:e=>this.onFilterReset(e.detail),disableDynamicFiltering:null==i?void 0:i.disableDynamicFiltering,closeOnOutsideClick:null==i?void 0:i.closeFilterPanelOnOutsideClick,allowDuplicateOperators:this.allowDuplicateOperators,ref:e=>this.pop=e}," ",this.extraContent())];const n=()=>{const e=Object.keys(this.filterCollection);e.length>0&&e.forEach(((e,t)=>{this.multiFilterItems[e]||(this.multiFilterItems[e]=[{id:t,type:this.filterCollection[e].type,value:this.filterCollection[e].value,relation:"and"}])})),this.hasActiveFilters()?this.runFiltering(this.multiFilterItems):this.cancelFiltering()};this.addEventListener("beforesourceset",(({detail:e})=>{e.source.length>=15e3&&this.hasActiveFilters()&&this.deferFiltering()})),this.addEventListener("headerclick",(e=>this.headerclick(e))),this.addEventListener(ut,(({detail:e})=>{if(e){if("object"==typeof e){const t=Object.keys(e),r=!t.includes("multiFilterItems")&&t.includes("allowDuplicateOperators");if(this.initConfig(r?Object.assign(Object.assign({},e),{multiFilterItems:this.multiFilterItems}):e),!e.multiFilterItems||!Object.keys(e.multiFilterItems).length)return r?void n():void this.clearFiltering()}n()}else this.clearFiltering()})),this.addEventListener("aftersourceset",n),this.addEventListener("filter",(({detail:e})=>this.onFilterChange(e)))}beforeshow(e){}extraContent(){return null}initConfig(e){var t;if(this.config=e,this.allowDuplicateOperators=null===(t=e.allowDuplicateOperators)||void 0===t||t,this.pop&&(this.pop.allowDuplicateOperators=this.allowDuplicateOperators),this.multiFilterItems=e.multiFilterItems?Object.assign({},e.multiFilterItems):{},e.customFilters)for(let t in e.customFilters){const r=e.customFilters[t];this.filterByType[r.columnFilterType]||(this.filterByType[r.columnFilterType]=[]),this.filterByType[r.columnFilterType].push(t),this.filterFunctionsIndexedByType[t]=r.func,this.filterNameIndexByType[t]=r.name}e.filterProp&&(this.filterProp=e.filterProp);const r=e.include;if(r){const e={};for(let t in this.filterByType){const i=this.filterByType[t].filter((e=>r.indexOf(e)>-1));i.length&&(e[t]=i)}Object.keys(e).length>0&&(this.filterByType=e)}if(e.collection){const t={};for(const r of Object.keys(e.collection)){const i=e.collection[r];this.filterFunctionsIndexedByType[i.type]&&(t[r]=i)}this.filterCollection=t}else this.filterCollection={};if(e.localization&&e.localization.filterNames){const t=e.localization.filterNames;Object.keys(t).forEach((e=>{null!=this.filterNameIndexByType[e]&&(this.filterNameIndexByType[e]=t[e])}))}}async headerclick(e){var t,r;const i=null===(t=e.detail.originalEvent)||void 0===t?void 0:t.target,o=de(i);if(!o)return;if(e.preventDefault(),!this.pop)return;const s=e.detail.prop,n=await this.pop.getChanges();if((null==n?void 0:n.prop)===s)return void await this.pop.show();const a=(o instanceof HTMLElement?o:i).getBoundingClientRect(),h=Object.assign(Object.assign(Object.assign({},e.detail),this.filterCollection[s]),{x:a.x,y:a.y+a.height,anchorY:a.y,autoCorrect:!0,filterTypes:this.getColumnFilter(e.detail.filter),filterItems:this.multiFilterItems,extraContent:this.extraHyperContent,extraBottomContent:this.extraBottomHyperContent});null===(r=this.beforeshow)||void 0===r||r.call(this,h),this.pop.show(h)}getColumnFilter(e){let t="string";if(!e)return{[t]:this.filterByType[t]};if(this.isValidType(e))t=e;else if("object"==typeof e&&e.length)return e.reduce(((e,t)=>(this.isValidType(t)&&(e[t]=this.filterByType[t]),e)),{});return{[t]:this.filterByType[t]}}isValidType(e){return!("string"!=typeof e||!this.filterByType[e])}async onFilterChange(e){this.multiFilterItems=e,await this.runFiltering(this.multiFilterItems)}onFilterReset(e){delete this.multiFilterItems[null!=e?e:""],this.onFilterChange(this.multiFilterItems)}async doFiltering(e,t,r,i){const o=this.beginFiltering(),s=[],n={};let a;r.forEach((e=>{const t=Object.assign({},e),r=i[t.prop];n[t.prop]=t,t[this.filterProp]&&!r&&(delete t[this.filterProp],s.push(t)),!t[this.filterProp]&&r&&(s.push(t),t[this.filterProp]=!0)}));const h=Object.keys(i).length>0||this.hasActiveFilters(),l=h&&t.length>=15e3;if(l&&(this.providers.data.setItemsPending(!0),await he()),a=h?l&&this.supportsChunkedFiltering()?await this.getRowFilterInChunks(t,i,n,o):this.getRowFilter(t,i,n):{},!a||o!==this.filteringRunId)return;const{defaultPrevented:d,detail:c}=this.emit("beforefiltertrimmed",{collection:e,itemsToFilter:a,source:t,filterItems:i});d||o!==this.filteringRunId?this.releaseFiltering(o):(this.providers.data.setTrimmed({[vt]:c.itemsToFilter}),this.releaseFiltering(o),this.providers.column.updateColumns(s),this.emit("afterfilterapply",{multiFilterItems:i,source:t,collection:e}))}async clearFiltering(){this.multiFilterItems={},await this.runFiltering(this.multiFilterItems)}async runFiltering(e){const t=this.beginFiltering(),r={},i=Object.keys(e);for(const t of i)if(e[t].length>0){const i=e[t][0];r[t]={type:i.type,value:i.value}}this.filterCollection=r;const o=this.providers.column.getColumns(),s=this.providers.data.stores.rgRow.store.get("source"),{defaultPrevented:n,detail:a}=this.emit("beforefilterapply",{collection:this.filterCollection,source:s,columns:o,filterItems:this.multiFilterItems});n||t!==this.filteringRunId?this.releaseFiltering(t):await this.doFiltering(a.collection,a.source,a.columns,a.filterItems)}hasActiveFilters(){return Object.keys(this.multiFilterItems).length>0||Object.keys(this.filterCollection).length>0}supportsChunkedFiltering(){return this.getRowFilter===ft.prototype.getRowFilter}deferFiltering(){this.beginFiltering(!0)}beginFiltering(e=!1){const t=++this.filteringRunId;return e&&this.providers.data.setItemsPending(!0),t}releaseFiltering(e){e===this.filteringRunId&&this.providers.data.setItemsPending(!1)}cancelFiltering(){this.releaseFiltering(this.beginFiltering())}async getRowFilterInChunks(e,t,r,i){const o={};let s=performance.now();for(let n=0;n<e.length;n+=1e3){if(i!==this.filteringRunId)return;const a=Math.min(n+1e3,e.length),h=this.getRowFilter(e.slice(n,a),t,r);for(const e in h)o[n+Number(e)]=!0;a<e.length&&performance.now()-s>=5&&(await he(),s=performance.now())}return i===this.filteringRunId?o:void 0}destroy(){this.cancelFiltering(),super.destroy()}getRowFilter(e,t,r){var i,o;const s=Object.keys(t),n={};for(const e of s)n[e]=ot(null===(i=this.config)||void 0===i?void 0:i.blankSemantics,null===(o=r[e])||void 0===o?void 0:o.blankSemantics);const a={};for(let i=0;i<e.length;i++)for(const o of s)this.shouldTrimRow(t[o],o,n[o],r[o],e[i])&&(a[i]=!0);return a}shouldTrimRow(e,t,r,i,o={}){let s=0,n=[];const a=Object.hasOwn(o,t),h=o[t],l=(null==i?void 0:i.cellParser)?i.cellParser(o,i):h,d={model:o,column:i,property:t,sourceValue:h,parsedValue:l,hasOwnProperty:a,blankSemantics:r};for(const[t,r]of e.entries()){const i=this.filterFunctionsIndexedByType[r.type];if("or"===r.relation){if(n=[],i(l,r.value,d))continue;s++}else if(n.push(!i(l,r.value,d)),pt(t,e)){if(bt(n)){n=[];continue}s+=n.length,n=[]}}return s===e.length}}function pt(e,t){const r=t[e+1];return!r||!!r.relation&&"and"!==r.relation}function bt(e){return!e.includes(!0)}function wt(e){for(const t of Object.keys(e||{}))if(null==e?void 0:e[t])return!0;return!1}function xt(e,t){return e+""==t+""}function yt(e,t,r){const i=function(e,t){const r=[],i=t=>{(null==e?void 0:e[t])&&!r.some((e=>xt(e,t)))&&r.push(t)};return null==t||t.forEach(i),Object.keys(e||{}).forEach(i),r}(e,r);if(i.length<=1)return;const o=i.findIndex((e=>xt(e,t)));return o>=0?o+1:void 0}function Ct(e,t,r){const i=r?f(e,r):null==e?void 0:e[t];return"number"==typeof i?i:null==i?void 0:(""+i).toLowerCase()}function St(e){return""===e||null==e}function kt(e,t){if(e===t)return 0;const r=St(e),i=St(t);return r||i?r&&i?0:r?-1:1:e>t?1:-1}function jt(e,t,r={},i,o,s){const n=Object.keys(r).length>0,a=function(e={},t){const r=[],i=t=>{const i=e[t];"function"!=typeof i||r.some((([e])=>xt(e,t)))||r.push([t,i])};return null==t||t.forEach(i),Object.keys(e).forEach(i),r}(r,s);return 0===a.length?n?e:[...Array(e.length).keys()]:function(e,t,r){return t.some((t=>{const i=r[t];return g(i)&&!e.some((([e])=>xt(i[p],e)))}))}(a,e,t)?e:function(e,t,r,i,o){return!t.some((e=>g(r[e])))&&!!i&&!!o&&e.every((([e])=>{const t=o[e];return!!i[e]&&!(null==t?void 0:t.cellCompare)}))}(a,e,t,i,o)?function(e,t,r,i,o){const s=r.map((([r])=>{const s=[],n=o[r];for(const i of e)s[i]=Ct(t[i],r,n);return{order:i[r],values:s}}));return e.sort(((e,t)=>{for(const{order:r,values:i}of s){const o=kt(i[e],i[t]);if(o)return"desc"===r?-o:o}return 0}))}(e,t,a,i,o):e.sort(((e,r)=>{const i=t[e],o=t[r];for(const[t,s]of a){if(g(i)&&!xt(i[p],t))return e-r;if(g(o)&&!xt(o[p],t))return e-r;const n=null==s?void 0:s(t,i,o);if(n)return n}return 0}))}function Ot(e,t,r){const i=this.column?f(t,this.column):null==t?void 0:t[e],o=this.column?f(r,this.column):null==r?void 0:r[e];return kt("number"==typeof i?i:null==i?void 0:(""+i).toLowerCase(),"number"==typeof o?o:null==o?void 0:(""+o).toLowerCase())}function zt(e){return(t,r,i)=>-1*e(t,r,i)}function Rt(e){switch(e){case void 0:return"asc";case"asc":return"desc";case"desc":return}}function Et(e,t){var r;const i=(null===(r=null==e?void 0:e.cellCompare)||void 0===r?void 0:r.bind({order:t}))||(null==Ot?void 0:Ot.bind({column:e,order:t}));return"asc"==t?i:"desc"==t?zt(i):void 0}class Pt extends Be{constructor(e,t,r){super(e,t),this.revogrid=e,this.sortingPromise=null,this.postponeSort=Z(((e,t,r,i,o)=>this.runSorting(e,t,r,i,o)),50),this.applySortingConfig(r),this.addEventListener("sortingconfigchanged",(({detail:e})=>{r=e,this.applySortingConfig(e),this.startSorting(this.sorting,this.sortingFunc,this.sortingColumns,this.sortingOrder)})),this.addEventListener("beforeheaderrender",(({detail:e})=>{var t;const{data:r}=e;r.sortable&&(e.data=Object.assign(Object.assign({},r),{order:null===(t=this.sorting)||void 0===t?void 0:t[r.prop],sortIndex:yt(this.sorting,r.prop,this.sortingOrder)}))})),this.addEventListener("beforeanysource",(({detail:{type:e}})=>{if(wt(this.sorting)&&this.sortingFunc){if(this.emit("beforesourcesortingapply",{type:e,sorting:this.sorting}).defaultPrevented)return;this.startSorting(this.sorting,this.sortingFunc,this.sortingColumns,this.sortingOrder)}})),this.addEventListener("aftercolumnsset",(({detail:{order:e}})=>{if(r)return;const t=this.providers.column.getColumns(),i={},o={},s=[],n={};for(let r in e)if(e[r]){const a=b(t,r),h=Et(a,e[r]);n[r]=e[r],i[r]=h,o[r]=a,s.push(r)}this.sorting=wt(n)?n:void 0,this.sortingFunc=this.sorting?i:void 0,this.sortingColumns=this.sorting?o:void 0,this.sortingOrder=this.sorting?s:void 0})),this.addEventListener("beforeheaderclick",(e=>{var t,r,i,o;e.defaultPrevented||(null===(r=null===(t=e.detail)||void 0===t?void 0:t.column)||void 0===r?void 0:r.sortable)&&this.headerclick(e.detail.column,null===(o=null===(i=e.detail)||void 0===i?void 0:i.originalEvent)||void 0===o?void 0:o.shiftKey)}))}createSortingState(e){var t;return{sorting:e?Object.assign({},this.sorting):{},sortingFunc:e?Object.assign({},this.sortingFunc):{},sortingColumns:e?Object.assign({},this.sortingColumns):{},sortingOrder:e?[...null!==(t=this.sortingOrder)&&void 0!==t?t:[]]:[]}}setSortingState({sorting:e,sortingFunc:t,sortingColumns:r,sortingOrder:i}){this.sorting=wt(e)?e:void 0,this.sortingFunc=this.sorting?t:void 0,this.sortingColumns=this.sorting?r:void 0,this.sortingOrder=this.sorting?i:void 0}setColumnSorting(e,t,r,i,o){e.sorting[t]=r,e.sortingFunc[t]=i,e.sortingColumns[t]=o,e.sortingOrder.some((e=>e+""==t+""))||e.sortingOrder.push(t)}clearColumnSorting(e,t){delete e.sorting[t],delete e.sortingFunc[t],delete e.sortingColumns[t];const r=e.sortingOrder.findIndex((e=>e+""==t+""));r>=0&&e.sortingOrder.splice(r,1)}applySortingConfig(e){var t;if(!e)return;const r=this.createSortingState(e.additive);null===(t=e.columns)||void 0===t||t.forEach((e=>{e.order?this.setColumnSorting(r,e.prop,e.order,Et(e,e.order),e):this.clearColumnSorting(r,e.prop)})),this.setSortingState(r)}resetSortingForStore(e){const t=this.providers.data.stores[e],r=t.store.get("source"),i=t.store.get("proxyItems"),o=Array.from({length:r.length},((e,t)=>t));this.providers.dimension.updateSizesPositionByNewDataIndexes(e,o,i),t.setData({proxyItems:o})}applySortingForStore(e,t,r,i,o,s){var n;const a=this.providers.data.stores[e],h=a.store.get("source"),l=a.store.get("proxyItems"),d=function(e,t){return e.filter((e=>!g(t[e])))}(l,h),c=jt([...d],h,r,t,i,o),v=c.length!==l.length?null!==(n=function(e,t){const r=new Map,i=[];e.forEach(((e,t)=>{if(g(e)){const r=e[m];if("number"!=typeof r)return;return i.length=r,void(i[r]=t)}null!=e&&r.set(t,[...i])}));const o={children:new Map,items:[]};for(const e of t){const t=r.get(e);if(!(null==t?void 0:t.length))return;let i=o;for(const e of t){let t=i.children.get(e);t||(t={children:new Map,items:[]},i.children.set(e,t)),i=t}i.items.push(e)}const s=[],n=e=>{e.children.forEach(((e,t)=>{s.push(t),n(e)})),s.push(...e.items)};return n(o),s}(h,c))&&void 0!==n?n:l:c,u=a.store.get("items");a.setData({proxyItems:v});const f=a.store.get("items");s||this.providers.dimension.updateSizesPositionByNewDataIndexes(e,f,u)}startSorting(e,t,r,i,o){this.sortingPromise||this.revogrid.jobsBeforeRender.push(new Promise((e=>{this.sortingPromise=e}))),"boolean"!=typeof r?this.postponeSort(e,t,r,i,o):this.postponeSort(e,t,void 0,void 0,r)}reapplySorting(){wt(this.sorting)&&this.sortingFunc&&this.startSorting(this.sorting,this.sortingFunc,this.sortingColumns,this.sortingOrder)}headerclick(e,t){var r;let i=Rt(null===(r=this.sorting)||void 0===r?void 0:r[e.prop]);const o=this.emit("beforesorting",{column:e,order:i,additive:t});if(o.defaultPrevented)return;i=o.detail.order;const s=this.emit("beforesortingapply",{column:o.detail.column,order:i,additive:t});if(s.defaultPrevented)return;const n=Et(s.detail.column,s.detail.order);this.applyHeaderSorting(s.detail.column,s.detail.additive,i,n),this.startSorting(this.sorting,this.sortingFunc,this.sortingColumns,this.sortingOrder)}applyHeaderSorting(e,t,r,i){if(!t)return void this.setSortingState(r?{sorting:{[e.prop]:r},sortingFunc:{[e.prop]:i},sortingColumns:{[e.prop]:e},sortingOrder:[e.prop]}:this.createSortingState());const o=this.createSortingState(!0);r?this.setColumnSorting(o,e.prop,r,i,e):this.clearColumnSorting(o,e.prop),this.setSortingState(o)}runSorting(e,t,r,i,o){var s,n;if("boolean"==typeof r)return this.sort(e,t,void 0,void 0,void 0,r),null===(s=this.sortingPromise)||void 0===s||s.call(this),void(this.sortingPromise=null);this.sort(e,t,r,i,void 0,o),null===(n=this.sortingPromise)||void 0===n||n.call(this),this.sortingPromise=null}sort(e,t,r,i,o=u,s=!1){let n,a,h=o,l=s;if(Array.isArray(r)?(h=r,l="boolean"==typeof i&&i):(n=r,a=Array.isArray(i)?i:void 0),Object.keys(e||{}).length)for(let r of h)this.applySortingForStore(r,e,t,n,a,l);else for(let e of h)this.resetSortingForStore(e);d.forEach((e=>{this.providers.column.dataSources[e].refresh()}));const c={sorting:wt(e)?e:void 0,sortingColumns:n,sortingOrder:a,types:h};this.emit("aftersortingapply",c)}}function Ht(e,t){const r=t[e],i=r[C],o={};let s=e+1;const n=t.length;for(;s<n;){const e=t[s];if(g(e)){const t=e[C];if(!t.length||!t.startsWith(i+","))break;e[w]=!1}o[s++]=!0}return r[w]=!1,{trimmed:o}}function Tt(e,t,r){const i=r[e],o=t[i],s=x(o[S]),n={};if(!s)return{trimmed:n};const a=[];o[w]=!0;let h=i+1;const l=t.length;let d=0;for(;h<l;){const e=t[h],r=g(e);if(r){if(!y(s,o,e))break;d||(d=e[m])}(!d||r&&d===e[m])&&(n[h]=!1,a.push(h)),h++}const c={trimmed:n};if(a.length){const t=[...r];t.splice(e+1,0,...a),c.items=t}return c}const Lt="grouping";function Mt(e,t,r){const i="number"==typeof e?e:Number.parseInt(e,10),o=t[i];return r?r["number"==typeof o?o:i]:o}function Dt(e,t){const r=Object.assign({},t);return e.forEach(((t,i)=>{g(t)&&(function(e,t,r){var i;const o=null===(i=e[r])||void 0===i?void 0:i[m];if(null==o)return!1;for(let i=r+1;i<e.length;i++){const r=e[i];if(g(r)){if(r[m]<=o)break}else if(!t[i])return!0}return!1}(e,r,i)?delete r[i]:r[i]=!0)})),r}class It extends Be{getStore(e=k){return this.providers.data.stores[e].store}constructor(e,t){super(e,t)}onFocus(e){g(e.detail.model)&&e.preventDefault()}onExpand({virtualIndex:e}){const t=this.getStore(),r=t.get("source");let i=t.get("trimmed")[Lt];const o=X(t,e);if(H(r[o])){const{trimmed:e}=Ht(o,r);i=Object.assign(Object.assign({},i),e),this.revogrid.clearFocus()}else{const{trimmed:o,items:s}=Tt(e,r,t.get("items"));i=Object.assign(Object.assign({},i),o),s&&q(t,s)}t.set("source",r),this.revogrid.addTrimmed(i,Lt)}setColumnGrouping(e){return!!(null==e?void 0:e.length)&&(e[0][j]=!0,!0)}setColumns({columns:e}){for(let t of d)if(this.setColumnGrouping(e[t]))break}onDrag(e){const{from:t,to:r}=e.detail,i=r-t>=0,o=this.getStore().get("source"),s=this.getStore().get("items");let n=i?t:r;const a=i?r:t;for(;n<a;n++)if(g(o[s[n]]))return void e.preventDefault()}beforeTrimmedApply(e,t){if(t===vt){const t=Dt(this.getStore().get("source"),e);Object.keys(e).forEach((t=>delete e[Number.parseInt(t,10)])),Object.assign(e,t)}}beforeFilterTrimmed(e){return Dt(this.getStore().get("source"),e)}isSortingActiveOrPending(e){return!!(null==e?void 0:e.sortingPromise)||wt(null==e?void 0:e.sorting)}doSourceUpdate(e){var t,r;const i=this.getStore(),o=this.providers.plugins.getByClass(Pt),s=i.get("source"),n=this.isSortingActiveOrPending(o)?s.map(((e,t)=>t)):i.get("proxyItems"),{source:a,prevExpanded:h,oldNewIndexes:l}=O(s,n,!0),d=Object.assign({prevExpanded:h},e),{sourceWithGroups:c,depth:g,trimmed:v,oldNewIndexMap:u}=z(a,null!==(r=null===(t=this.options)||void 0===t?void 0:t.props)&&void 0!==r?r:[],d),m=null==e?void 0:e.groupLabelTemplate,f=null==e?void 0:e.groupCellTemplate;this.revogrid.dispatchEvent(new CustomEvent(R)),this.providers.data.setData(c,k,this.revogrid.disableVirtualY,{depth:g,customRenderer:m,cellRenderer:f},!0),this.remapRowDefinitions(null!=l?l:{},u,s,c),this.updateTrimmed(v,null!=l?l:{},u,c),wt(null==o?void 0:o.sorting)&&(null==o||o.reapplySorting())}onDataSet(e){var t,r,i;const o=this.getStore().get("source"),s=this.providers.plugins.getByClass(Pt),n=this.isSortingActiveOrPending(s)?o.map(((e,t)=>t)):this.getStore().get("proxyItems"),{prevExpanded:a,oldNewIndexes:h}=O(o,n,!0);let l={};!1!==(null===(t=this.options)||void 0===t?void 0:t.preserveGroupingOnUpdate)&&(l=a);const d=e.source.filter((e=>!g(e))),c=Object.assign(Object.assign({},this.options),{prevExpanded:l}),{sourceWithGroups:v,depth:u,trimmed:m,oldNewIndexMap:f}=z(d,null!==(i=null===(r=this.options)||void 0===r?void 0:r.props)&&void 0!==i?i:[],c);e.source=v,this.providers.data.setGrouping({depth:u,customRenderer:c.groupLabelTemplate,cellRenderer:c.groupCellTemplate}),queueMicrotask((()=>this.remapRowDefinitions(null!=h?h:{},f,o,v))),this.updateTrimmed(m,f,void 0,v,{filterTrimmedMode:"recompute-after-source-set"})}setGrouping(e){var t,r;if(this.clearSubscriptions(),this.options=e,!(null===(r=null===(t=this.options)||void 0===t?void 0:t.props)||void 0===r?void 0:r.length))return void this.clearGrouping();const i=this.getStore(),{source:o}=O(i.get("source"),i.get("proxyItems"));o.length&&this.doSourceUpdate(Object.assign({},e));for(let e of d)if(this.setColumnGrouping(this.providers.column.getColumns(e))){this.providers.column.refreshByType(e);break}this.addEventListener("beforesourceset",(({detail:e})=>{var t,r,i;(null===(r=null===(t=this.options)||void 0===t?void 0:t.props)||void 0===r?void 0:r.length)&&(null===(i=null==e?void 0:e.source)||void 0===i?void 0:i.length)&&this.onDataSet(e)})),this.addEventListener("beforecolumnsset",(({detail:e})=>{this.setColumns(e)})),this.addEventListener("beforetrimmed",(({detail:{trimmed:e,trimmedType:t}})=>this.beforeTrimmedApply(e,t))),this.addEventListener("beforefiltertrimmed",(({detail:e})=>{e.itemsToFilter=this.beforeFilterTrimmed(e.itemsToFilter)})),this.addEventListener("beforecellfocus",(e=>this.onFocus(e))),this.addEventListener("roworderchanged",(e=>this.onDrag(e))),this.addEventListener(E,(e=>this.onExpand(e.detail)))}clearGrouping(){d.forEach((e=>{const t=this.providers.column.getColumns(e);let r=!1;t.forEach((e=>{P(e)&&(delete e[j],r=!0)})),r&&this.providers.column.refreshByType(e)}));const e=this.getStore(),t=this.providers.plugins.getByClass(Pt),r=e.get("source"),i=this.isSortingActiveOrPending(t)?r.map(((e,t)=>t)):e.get("proxyItems"),{source:o,oldNewIndexes:s}=O(r,i,!0);this.revogrid.dispatchEvent(new CustomEvent(R)),this.providers.data.setData(o,k,this.revogrid.disableVirtualY,void 0,!0),this.remapRowDefinitions(null!=s?s:{},void 0,r,o),this.updateTrimmed(void 0,void 0,s,o),wt(null==t?void 0:t.sorting)&&(null==t||t.reapplySorting())}remapRowDefinitions(e,t,r,i){const o=this.providers.dimension.getRowDefinitions(),s=new Map;null==i||i.forEach(((e,t)=>{const r=e[S];r&&!s.has(r)&&s.set(r,t)}));let n=!1;const a=o.flatMap((i=>{if(i.type!==k)return[i];const o=null==r?void 0:r[i.index],a=null==o?void 0:o[S],h=a?s.get(a):Mt(i.index,e,t);return"number"!=typeof h||h<0?(n=!0,[]):h===i.index?[i]:(n=!0,[Object.assign(Object.assign({},i),{index:h})])}));n&&this.providers.dimension.setRowDefinitions(a)}updateTrimmed(e={},t={},r,i=this.getStore().get("source"),{filterTrimmedMode:o="remap"}={}){const s=function(e,t,r){const i={};for(let o in e){if(o===Lt)continue;const s=e[o],n={};for(let e in s){if(!s[e])continue;const i=Mt(e,t,r);"number"==typeof i&&(n[i]=!0)}i[o]=n}return i}(this.getStore().get("trimmed"),t,r);for(let e in s)"recompute-after-source-set"===o&&e===vt||(e===vt&&(s[e]=Dt(i,s[e])),this.revogrid.addTrimmed(s[e],e));this.revogrid.addTrimmed(Object.assign({},e),Lt)}}const Ft="column-drag-start";class Bt{constructor(){this.offset=0}renderAutoscroll(e,t){t&&(this.autoscrollEl=document.createElement("div"),this.autoscrollEl.classList.add("drag-auto-scroll-y"),t.appendChild(this.autoscrollEl))}autoscroll(e,t,r="translateX"){this.autoscrollEl&&(this.autoscrollEl.style.transform=`${r}(${Math.min(e+10,t-3)}px)`,this.autoscrollEl.scrollIntoView({block:"nearest",inline:"nearest"}))}start(e,{dataEl:t,gridRect:r,scrollEl:i,gridEl:o},s="left"){o.classList.add(Ft);const n=i.getBoundingClientRect();n&&(this.offset=n[s]-r[s]),this.renderAutoscroll(e,t)}stop(e){var t;e.classList.remove(Ft),this.element&&(this.element.hidden=!0),this.offset=0,null===(t=this.autoscrollEl)||void 0===t||t.remove(),this.autoscrollEl=void 0}showHandler(e,t,r="translateX"){this.element&&(this.offset&&(e=Math.max(e,this.offset)),this.element.style.transform=`${r}(${e=Math.min(e,t)}px)`,this.element.hidden=!1)}render(){const e=this.element=document.createElement("div");return e.classList.add("drag-position-y"),e.hidden=!0,e}}const Nt=pe,At="columndragmousemove",Vt="columndragend",$t="beforecolumndragend",Xt="columndragstart";class qt extends Be{constructor(e,t){super(e,t),this.moveFunc=Z((e=>this.doMove(e)),5),this.preventHeaderClickAfterDrag=e=>{this.preventNextHeaderClick&&(this.preventNextHeaderClick=!1,e.preventDefault())},this.staticDragData=null,this.dragData=null,this.columnDragMoved=!1,this.preventNextHeaderClick=!1,this.localSubscriptions={},this.orderUi=new Bt,e.appendChild(this.orderUi.render()),e.classList.add("column-draggable"),this.localSubscriptions.mouseleave={target:document,callback:e=>this.onMouseOut(e)},this.localSubscriptions.mouseup={target:document,callback:e=>this.onMouseUp(e)},this.localSubscriptions.mousemove={target:document,callback:e=>this.move(e)},this.addEventListener(Nt,(({detail:e})=>this.dragStart(e))),this.revogrid.addEventListener("beforeheaderclick",this.preventHeaderClickAfterDrag,{capture:!0})}dragStart({event:e,data:t}){if(e.defaultPrevented)return;this.preventNextHeaderClick=!1;const{defaultPrevented:r}=be(this.revogrid,Xt,t);if(r)return;this.clearOrder();const{mouseleave:i,mouseup:o,mousemove:s}=this.localSubscriptions;i.target.addEventListener("mouseleave",i.callback),o.target.addEventListener("mouseup",o.callback);const n=e.target.closest("revogr-header"),a=e.target.closest("revogr-viewport-scroll");if(!n||!a)return;if(T(t)||"rowHeaders"===t.providers.type)return;const h=this.getDimension(t.pin||"rgCol"),l=this.revogrid.getBoundingClientRect(),d=n.getBoundingClientRect(),c=te(h,Ut(e.x,l.left,d.left-l.left)+(h.renderOffset||0));this.staticDragData={startPos:e.x,startItem:c,pin:t.pin,dataEl:n,scrollEl:a,gridEl:this.revogrid,cols:h},this.dragData=this.getData(this.staticDragData,[]),s.target.addEventListener("mousemove",s.callback),this.orderUi.start(e,Object.assign(Object.assign({},this.dragData),this.staticDragData))}doMove(e){if(!this.staticDragData)return;const t=this.dragData=this.getData(this.staticDragData,[]);if(t&&Math.abs(this.staticDragData.startPos-e.x)>10){const r=Ut(e.x,this.dragData.gridRect.left,this.dragData.scrollOffset),i=te(this.staticDragData.cols,r+(this.staticDragData.cols.renderOffset||0));if(this.orderUi.autoscroll(r,t.elRect.width),i.itemIndex>=this.staticDragData.cols.count)return;this.orderUi.showHandler(Yt(i,this.staticDragData.startItem,this.staticDragData.cols.renderOffset||0,t.scrollOffset),t.gridRect.width)}}move(e){this.staticDragData&&Math.abs(this.staticDragData.startPos-e.x)>10&&(this.columnDragMoved=!0),be(this.revogrid,At,e),this.moveFunc(e)}onMouseOut(e){this.clearOrder()}onMouseUp(e){const t=this.columnDragMoved;if(this.dragData&&this.staticDragData){let t=Ut(e.x,this.dragData.gridRect.left,this.dragData.scrollOffset);t<0&&(t=0);const r=te(this.staticDragData.cols,t+(this.staticDragData.cols.renderOffset||0)),i=this.providers.column.stores[this.dragData.type].store,o=i.get("source"),s=[...i.get("items")],{defaultPrevented:n}=be(this.revogrid,$t,Object.assign(Object.assign({},this.staticDragData),{startPosition:this.staticDragData.startItem,newPosition:r,newItem:o[s[this.staticDragData.startItem.itemIndex]]}));if(!n){const e=[...s],t=s.splice(this.staticDragData.startItem.itemIndex,1);s.splice(r.itemIndex,0,...t),i.set("items",s),this.providers.dimension.updateSizesPositionByNewDataIndexes(this.dragData.type,s,e)}be(this.revogrid,Vt,this.getData(this.staticDragData,s,o))}t&&(this.preventNextHeaderClick=!!e.target.closest("revogr-header")),this.clearOrder()}clearLocalSubscriptions(){Ae(this.localSubscriptions,(({target:e,callback:t},r)=>e.removeEventListener(r,t)))}clearOrder(){this.staticDragData=null,this.dragData=null,this.columnDragMoved=!1,this.clearLocalSubscriptions(),this.orderUi.stop(this.revogrid)}clearSubscriptions(){super.clearSubscriptions(),this.clearLocalSubscriptions(),this.revogrid.removeEventListener("beforeheaderclick",this.preventHeaderClickAfterDrag,{capture:!0})}getData({gridEl:e,dataEl:t,pin:r},i,o=[]){const s=e.getBoundingClientRect(),n=t.getBoundingClientRect(),a=n.left-s.left;return{columns:i.map((e=>o[e])).filter(Boolean),elRect:n,gridRect:s,order:i,type:r||"rgCol",scrollOffset:a}}getDimension(e){return this.providers.dimension.stores[e].getCurrentState()}}function Ut(e,t,r){return e-t-r}function Yt(e,t,r,i){return(t.itemIndex>e.itemIndex?e.start:e.end)-r+i}const Gt=20,Wt=e=>"number"==typeof e&&Number.isFinite(e);function Jt(e={}){const t=Wt(e.minHeight)?Math.max(1,Math.round(e.minHeight)):20;return{minHeight:t,maxHeight:Wt(e.maxHeight)?Math.max(t,Math.round(e.maxHeight)):void 0,fullRow:!0===e.fullRow}}function Kt(e,t){var r;return Math.min(Math.max(Number.isFinite(e)?Math.round(e):t.minHeight,t.minHeight),null!==(r=t.maxHeight)&&void 0!==r?r:1/0)}function Zt({rowType:e,rowIndex:t,rowCount:r,selectedRange:i,selectedRowType:o}){if(!i||o!==e||t<Math.min(i.y,i.y1)||t>Math.max(i.y,i.y1))return t>=0&&t<r?[t]:[];const s=Math.max(0,Math.min(i.y,i.y1));return Array.from({length:Math.max(0,Math.min(r-1,Math.max(i.y,i.y1))-s+1)},((e,t)=>s+t))}function Qt(e,t){return e.reduce(((e,r)=>(e[r]=t,e)),{})}function _t(e,t,r,i){const o=new Set(r),s=new Set,n=e.map((e=>e.type===t&&o.has(e.index)?(s.add(e.index),Object.assign(Object.assign({},e),{size:i})):e));for(const e of o)s.has(e)||n.push({type:t,index:e,size:i});return n}const er="row-resize-handle",tr="beforerowresize",rr="rowresize",ir="afterrowresize",or="rowresizecancel";class sr extends Be{constructor(e,t,r={}){super(e,t),this.enabled=!1,this.appliedDefinitionIndexes=new Map,this.pendingBottomAnchor=!1,this.keepBottomAnchor=!1,this.rowDefinitionRemapQueued=!1,this.pendingSourceCounts=new Map,this.previousBodyCursor="",this.decorateRow=({detail:e})=>{if(!this.enabled||"rowHeaders"!==e.colType&&!this.config.fullRow)return;const t=this.h("div",{key:`row-resize-${e.rowType}-${e.item.itemIndex}`,class:{[er]:!0},"data-row-resize-index":e.item.itemIndex,"aria-hidden":"true",onPointerDown:t=>this.startResize(t,e.rowType,e.item.itemIndex)});e.node.i=[...e.node.i||[],t]},this.cancelForDataChange=()=>this.cancel("data-change"),this.onPointerMove=e=>{const t=this.active;if((null==t?void 0:t.pointerId)===e.pointerId&&(e.preventDefault(),t.lastEvent=e,this.pendingHeight=Kt(t.startHeight+e.clientY-t.startY,this.config),void 0===this.animationFrame)){const e=this.revogrid.ownerDocument.defaultView;this.animationFrame=null==e?void 0:e.requestAnimationFrame((()=>{this.animationFrame=void 0,this.flushPendingResize()}))}},this.onPointerUp=e=>{const t=this.active;if((null==t?void 0:t.pointerId)!==e.pointerId)return;if(e.preventDefault(),t.lastEvent=e,this.pendingHeight=Kt(t.startHeight+e.clientY-t.startY,this.config),this.flushPendingResize(),this.active!==t)return;const r=this.eventDetail(t,e,t.currentHeight);this.finishGesture(),this.commitResize(t),this.emit(ir,r)},this.onPointerCancel=e=>{var t;(null===(t=this.active)||void 0===t?void 0:t.pointerId)===e.pointerId&&(this.active.lastEvent=e,this.cancel("pointercancel"))},this.onKeyDown=e=>{"Escape"===e.key&&this.active&&(e.preventDefault(),this.cancel("escape"))},this.onWindowBlur=()=>this.cancel("blur"),this.updateBottomAnchorState=({detail:e})=>{"rgRow"===e.dimension&&(this.keepBottomAnchor=this.isMainViewportAtBottom(e.coordinate))},this.applyPendingBottomAnchor=()=>{this.pendingBottomAnchor&&(this.pendingBottomAnchor=!1,this.revogrid.scrollToCoordinate({y:this.providers.dimension.stores.rgRow.store.get("realSize")}))},this.scheduleRowDefinitionRemap=()=>{this.rowDefinitionRemapQueued||(this.rowDefinitionRemapQueued=!0,queueMicrotask((()=>{this.rowDefinitionRemapQueued&&(this.pruneRowDefinitions(),this.reapplyRowDefinitionSizes(),this.rowDefinitionRemapQueued=!1)})))},this.reapplyRowDefinitionSizes=()=>{const e=this.providers.dimension.getRowDefinitions();for(const t of u){const r=this.providers.data.stores[t].store.get("items"),i=new Map(e.filter((e=>e.type===t)).map((e=>[e.index,e.size]))),o=this.appliedDefinitionIndexes.get(t);if(!i.size&&!(null==o?void 0:o.size))continue;const s=this.providers.dimension.stores[t].store.get("sizes"),n=Object.assign({},s);for(const e of o||[])delete n[e];const a=new Set;r.forEach(((e,t)=>{const r=i.get(e);void 0!==r&&(n[t]=r,a.add(t))})),this.appliedDefinitionIndexes.set(t,a);const h=Object.keys(n);(h.length!==Object.keys(s).length||h.some((e=>n[e]!==s[e])))&&this.providers.dimension.setCustomSizes(t,n)}},this.config=Jt(r),new.target!==sr&&(this.enabled=!0,this.registerEventListeners())}registerEventListeners(){this.addEventListener("beforerowrender",this.decorateRow),this.addEventListener("beforeanysource",(()=>{this.cancel("data-change"),this.keepBottomAnchor=!1})),this.addEventListener("afteranysource",(({detail:e})=>{this.pendingSourceCounts.set(e.type,e.source.length),this.scheduleRowDefinitionRemap()})),this.addEventListener("beforesourcesortingapply",this.cancelForDataChange),this.addEventListener("beforesortingapply",this.cancelForDataChange),this.addEventListener("sortingconfigchanged",this.cancelForDataChange),this.addEventListener(R,this.cancelForDataChange),this.addEventListener("aftersortingapply",this.scheduleRowDefinitionRemap),this.addEventListener("beforefilterapply",this.cancelForDataChange),this.addEventListener("afterfilterapply",this.scheduleRowDefinitionRemap),this.addEventListener("beforerowdefinition",(()=>{this.cancel("data-change"),this.scheduleRowDefinitionRemap()})),this.addEventListener("afterthemechanged",this.scheduleRowDefinitionRemap),this.addEventListener("aftertrimmed",this.scheduleRowDefinitionRemap),this.addEventListener("roworderchange",this.scheduleRowDefinitionRemap),this.addEventListener(E,(()=>{this.keepBottomAnchor&&(this.pendingBottomAnchor=!0),this.scheduleRowDefinitionRemap()})),this.addEventListener("aftergridrender",this.applyPendingBottomAnchor),this.addEventListener("viewportscroll",this.updateBottomAnchorState),this.addEventListener("rowheaderschanged",(({detail:e})=>{e||this.config.fullRow||this.cancel("row-headers-hidden")}))}syncGridConfig(e=!0){const{plugins:t=[],resizeRow:r}=this.revogrid,i=this.constructor===sr,o=t.some((e=>e!==sr&&e.prototype instanceof sr)),s=!i||!o&&!!r,n=i?Jt("object"==typeof r?r:void 0):this.config;(s!==this.enabled||n.minHeight!==this.config.minHeight||n.maxHeight!==this.config.maxHeight||n.fullRow!==this.config.fullRow)&&(this.cancel("config-change"),this.config=n,s!==this.enabled&&(this.enabled=s,s?this.registerEventListeners():(this.pendingBottomAnchor=!1,this.keepBottomAnchor=!1,this.rowDefinitionRemapQueued=!1,this.pendingSourceCounts.clear(),this.clearSubscriptions())),e&&queueMicrotask((()=>{this.revogrid.refresh()})))}startResize(e,t,r){var i,o;if(!this.enabled||this.active||e.defaultPrevented||!e.isPrimary||"touch"!==e.pointerType&&0!==e.button)return;const s=this.providers.dimension.stores[t].getCurrentState(),n=this.providers.viewport.stores[t],a=re(s,r),h=this.providers.selection.focusedStore,l=Zt({rowType:t,rowIndex:r,rowCount:s.count,selectedRange:this.providers.selection.selectedRange,selectedRowType:h?this.providers.selection.storesYToType[h.position.y]:void 0});if(!l.length)return;const d=l.reduce(((e,t)=>{const r=re(s,t);return e[t]=r.end-r.start,e}),{}),c=a.end-a.start,g={pointerId:e.pointerId,rowType:t,index:r,indexes:l,startY:e.clientY,startHeight:c,currentHeight:c,previousSizes:d,originalCustomSizes:Object.assign({},s.sizes),bottomAnchored:"rgRow"===t&&this.isMainViewportAtBottom(n.lastCoordinate),lastEvent:e};if(this.active=g,this.emit(tr,this.eventDetail(g,e,c)).defaultPrevented)return void(this.active===g&&(this.active=void 0));if(!this.enabled||this.active!==g)return;e.preventDefault(),e.stopPropagation();const v=this.revogrid.ownerDocument;this.previousBodyCursor=(null===(i=v.body)||void 0===i?void 0:i.style.cursor)||"",v.body&&(v.body.style.cursor="row-resize"),v.addEventListener("pointermove",this.onPointerMove,!0),v.addEventListener("pointerup",this.onPointerUp,!0),v.addEventListener("pointercancel",this.onPointerCancel,!0),v.addEventListener("keydown",this.onKeyDown,!0),null===(o=v.defaultView)||void 0===o||o.addEventListener("blur",this.onWindowBlur)}flushPendingResize(){const e=this.active;if(!e||void 0===this.pendingHeight)return;const t=this.pendingHeight;this.pendingHeight=void 0,t!==e.currentHeight&&(this.providers.dimension.setCustomSizes(e.rowType,Qt(e.indexes,t),!0),this.requestBottomAnchor(e),e.currentHeight=t,this.emit(rr,this.eventDetail(e,e.lastEvent,t)))}cancel(e){const t=this.active;if(!t)return;const r=Object.assign({},this.providers.dimension.stores[t.rowType].store.get("sizes"));for(const e of t.indexes)Object.hasOwn(t.originalCustomSizes,e)?r[e]=t.originalCustomSizes[e]:delete r[e];this.providers.dimension.setCustomSizes(t.rowType,r),this.requestBottomAnchor(t);const i=Object.assign(Object.assign({},this.eventDetail(t,t.lastEvent,t.startHeight)),{reason:e});this.finishGesture(),this.emit(or,i)}eventDetail(e,t,r){return{rowType:e.rowType,index:e.index,indexes:[...e.indexes],size:r,previousSizes:Object.assign({},e.previousSizes),originalEvent:t}}commitResize(e){if(e.currentHeight===e.startHeight)return;const t=this.providers.data.stores[e.rowType].store.get("items"),r=e.indexes.reduce(((e,r)=>{const i=t[r];return void 0!==i&&e.push(i),e}),[]);if(r.length){const t=_t(this.providers.dimension.getRowDefinitions(),e.rowType,r,e.currentHeight);this.providers.dimension.setRowDefinitions(t),this.scheduleRowDefinitionRemap(),this.keepBottomAnchor=e.bottomAnchored,this.requestBottomAnchor(e)}}requestBottomAnchor(e){e.bottomAnchored&&(this.pendingBottomAnchor=!0)}isMainViewportAtBottom(e){const t=this.providers.dimension.stores.rgRow.getCurrentState(),r=this.providers.viewport.stores.rgRow.store.state;return t.realSize>r.clientSize&&e>=oe(t,r.virtualSize)}pruneRowDefinitions(){if(!this.pendingSourceCounts.size)return;const e=this.providers.dimension.getRowDefinitions(),t=e.filter((e=>{const t=this.pendingSourceCounts.get(e.type);return void 0===t||e.index<t}));this.pendingSourceCounts.clear(),t.length!==e.length&&this.providers.dimension.setRowDefinitions(t)}finishGesture(){const e=this.revogrid.ownerDocument,t=e.defaultView;void 0!==this.animationFrame&&(null==t||t.cancelAnimationFrame(this.animationFrame)),e.removeEventListener("pointermove",this.onPointerMove,!0),e.removeEventListener("pointerup",this.onPointerUp,!0),e.removeEventListener("pointercancel",this.onPointerCancel,!0),e.removeEventListener("keydown",this.onKeyDown,!0),null==t||t.removeEventListener("blur",this.onWindowBlur),e.body&&(e.body.style.cursor=this.previousBodyCursor),this.animationFrame=void 0,this.pendingHeight=void 0,this.active=void 0}destroy(){this.cancel("destroy"),this.keepBottomAnchor=!1,this.rowDefinitionRemapQueued=!1,this.pendingSourceCounts.clear(),super.destroy()}}class nr{get stores(){return this.dataSources}constructor(){this.collection=null,this.dataSources=d.reduce(((e,t)=>(e[t]=new U(t),e)),{})}column(e,t="rgCol"){return this.getColumn(e,t)}getColumn(e,t){return $(this.dataSources[t].store,e)}getRawColumns(){return n(this.dataSources,((e,t,r)=>(e[r]=t.store.get("source"),e)),{rgCol:[],colPinStart:[],colPinEnd:[]})}getColumns(e="all"){const t=this.getRawColumns();return"all"!==e?t[e]:d.reduce(((e,r)=>[...e,...t[r]]),[])}getColumnIndexByProp(e,t){return Y(this.dataSources[t].store,e)}getColumnByProp(e){var t;return null===(t=this.collection)||void 0===t?void 0:t.columnByProp[e]}refreshByType(e){this.dataSources[e].refresh()}setColumns(e){return d.forEach((t=>{this.dataSources[t].updateData(e.columns[t],{depth:e.maxLevel,groups:e.columnGrouping[t].reduce(((e,t)=>(e[t.level]||(e[t.level]=[]),e[t.level].push(t),e)),{})})})),this.collection=e,e}updateColumns(e){const t=e.reduce(((e,t)=>{const r=l(t);return e[r]||(e[r]={}),e[r][t.prop]=t,e}),{}),r={};for(const e in t){if(!t.hasOwnProperty(e))continue;const i=e,o=t[i],s=this.dataSources[i].store.get("source");r[i]={};for(let e=0;e<s.length;e++){const t=null==o?void 0:o[s[e].prop];t&&(r[i][e]=t)}}for(const e in r)r.hasOwnProperty(e)&&G(this.dataSources[e].store,r[e]||{})}updateColumn(e,t){const r=l(e);W(this.dataSources[r].store,{[t]:e})}}class ar{constructor(e){this.dimensionProvider=e,this.stores=n(u,((e,t)=>(e[t]=new U(t),e)),{})}setData(e,t="rgRow",r=!1,i,o=!1,s=!1){return this.stores[t].updateData([...e],i,o,s),this.dimensionProvider.setData(e.length,t,"rgRow"!==t||r),e}getModel(e,t="rgRow"){return $(this.stores[t].store,e)}changeOrder({rowType:e="rgRow",from:t,to:r}){const i=this.stores[e],o=[...i.store.get("proxyItems")],s=i.store.get("items"),n=o.splice(o.indexOf(s[t]),1),a=s[t<r?r+1:r],h=void 0===a?o.length:o.indexOf(a);o.splice(h,0,...n),i.setData({proxyItems:o});const l=i.store.get("items");this.dimensionProvider.updateSizesPositionByNewDataIndexes(e,l,s)}setCellData({type:e,rowIndex:t,prop:r,val:i},o=!0){const s=this.getModel(t,e);s[r]=i,this.stores[e].setSourceData({[t]:s},o)}setRangeData(e,t){const r={};for(let i in e){const o=r[i]=$(this.stores[t].store,parseInt(i,10));if(o)for(let t in e[i])o[t]=e[i][t]}this.stores[t].setSourceData(r)}refresh(e="all"){L(e)&&this.refreshItems(e),u.forEach((e=>this.refreshItems(e)))}refreshItems(e="rgRow"){const t=this.stores[e].store.get("items");this.stores[e].setData({items:[...t]})}setGrouping({depth:e,customRenderer:t,cellRenderer:r},i="rgRow"){this.stores[i].setData({groupingDepth:e,groupingCustomRenderer:t,groupingCellRenderer:r})}setTrimmed(e,t="rgRow"){const r=this.stores[t];r.addTrimmed(e),this.dimensionProvider.setTrimmed(e,t),"rgRow"===t&&this.dimensionProvider.setData(r.store.get("items").length,t)}setItemsPending(e,t="rgRow"){const r=this.stores[t];r.setItemsPending(e),this.dimensionProvider.setData(r.store.get("items").length,t,"rgRow"!==t)}}const hr=["rgCol"];function lr(e,t=!1,r=hr){return!t&&r.includes(e)}class dr{constructor(e,t){this.viewports=e,this.config=t,this.rowDefinitions=[];const r=Z((e=>this.config.realSizeChanged(e)),Q);this.stores=[...u,...d].reduce(((e,t)=>(e[t]=new Ie(t),e[t].store.onChange("realSize",(()=>r(t))),e)),{})}clearSize(e,t){this.stores[e].drop(),this.viewports.stores[e].setOriginalSizes(this.stores[e].store.get("originItemSize")),this.setItemCount(t,e)}getRowDefinitions(){return this.rowDefinitions}syncRowDefinitions(e){this.rowDefinitions=e}setRowDefinitions(e){var t,r;e!==this.rowDefinitions&&(this.syncRowDefinitions(e),null===(r=(t=this.config).rowDefinitionsChanged)||void 0===r||r.call(t,e))}setCustomSizes(e,t,r=!1){let i=t;if(r){const r=this.stores[e].store.get("sizes");i=Object.assign(Object.assign({},r),t)}this.stores[e].setDimensionSize(i),this.setViewPortCoordinate({type:e,force:!0})}setItemCount(e,t){this.viewports.stores[t].setViewport({realCount:e}),this.stores[t].setStore({count:e})}setTrimmed(e,t){const r=J(e);this.stores[t].setStore({trimmed:r}),this.setViewPortCoordinate({type:t,force:!0})}setData(e,t,r=!1){if(this.setItemCount(e,t),r){const e=this.stores[t].getCurrentState();this.viewports.stores[t].setViewport({virtualSize:e.realSize})}this.setViewPortCoordinate({type:t})}applyNewColumns(e,t,r=!1,i=hr){for(let o of d){r||this.stores[o].drop();const s=e[o],n=!lr(o,t,i);this.stores[o].setStore({count:s.length});const a=M(s);this.stores[o].setDimensionSize(a);const h={realCount:s.length};n&&(h.virtualSize=this.stores[o].getCurrentState().realSize),this.viewports.stores[o].setViewport(h),this.setViewPortCoordinate({type:o})}}getFullSize(){var e,t;let r=0,i=0;for(let t of d)r+=(null===(e=this.stores[t])||void 0===e?void 0:e.store.get("realSize"))||0;for(let e of u)i+=(null===(t=this.stores[e])||void 0===t?void 0:t.store.get("realSize"))||0;return{y:i,x:r}}setViewPortCoordinate({type:e,coordinate:t=this.viewports.stores[e].lastCoordinate,force:r=!1}){const i=this.stores[e].getCurrentState(),o=this.viewports.stores[e].store,s=o.get("clientSize"),n=o.get("virtualSize"),a=_({contentSize:i.realSize,clientSize:s,virtualSize:n}),h=s&&n?a.getRenderOffset(Math.min(Math.max(0,t),a.logicalScrollSize)):0;this.stores[e].setStore({renderOffset:h}),this.viewports.stores[e].setViewport({renderOffset:h}),this.viewports.stores[e].setViewPortCoordinate(t,i,r)}getViewPortPos(e){const t=this.stores[e.dimension].getCurrentState();return re(t,e.coordinate).start}setSettings(e,t){let r=[];switch(t){case"rgCol":r=d;break;case"rgRow":r=u}for(let t of r)this.stores[t].setStore(e)}updateSizesPositionByNewDataIndexes(e,t,r=[]){this.stores[e].updateSizesPositionByIndexes(t,r),this.setViewPortCoordinate({type:e,force:!0})}}class cr{constructor(){this.stores=n([...u,...d],((e,t)=>(e[t]=new se(t),e)),{})}setViewport(e,t){this.stores[e].setViewport(t)}}const gr="default",vr=new Set([gr,"material","compact","darkMaterial","darkCompact"]),ur=Object.freeze({default:Object.freeze({name:"default",colorScheme:"light",defaultRowSize:27,tokens:Object.freeze({}),custom:!1}),material:Object.freeze({name:"material",colorScheme:"light",defaultRowSize:42,tokens:Object.freeze({}),custom:!1}),compact:Object.freeze({name:"compact",colorScheme:"light",defaultRowSize:32,tokens:Object.freeze({}),custom:!1}),darkMaterial:Object.freeze({name:"darkMaterial",colorScheme:"dark",defaultRowSize:42,tokens:Object.freeze({}),custom:!1}),darkCompact:Object.freeze({name:"darkCompact",colorScheme:"dark",defaultRowSize:32,tokens:Object.freeze({}),custom:!1})});function mr(e){return vr.has(e)}function fr(e){return"number"==typeof e&&Number.isFinite(e)&&e>0}function pr(e,t){return"light"===e||"dark"===e?e:t}function br(e){return e.includes("dark")?"dark":"light"}function wr(e){if(!e||"object"!=typeof e)return{};const t={};for(const[r,i]of Object.entries(e))Object.hasOwn(Te,r)&&"string"==typeof i&&i.trim()&&(t[r]=i);return t}class xr{get theme(){return this.currentTheme}get rowSize(){return this.customRowSize||this.currentTheme.defaultRowSize}set rowSize(e){this.customRowSize=fr(e)?e:0}constructor(e){this.currentTheme=Object.assign({},ur.default),this.customThemes=new Map,this.customRowSize=0,this.rowSize=e.rowSize,this.register("default")}setDefinitions(e=[]){const t=new Map;if(Array.isArray(e))for(const r of e){if(!r||"object"!=typeof r)continue;if("string"!=typeof r.name||!r.name.trim())continue;const e=yr(r.name);mr(e)||t.set(e,Object.assign(Object.assign({},r),{name:e}))}this.customThemes=t}register(e){const t=yr(e);return mr(t)?(this.currentTheme=Object.assign(Object.assign({},ur[t]),{tokens:{}}),this.currentTheme):this.customThemes.get(t)?(this.currentTheme=this.resolveDefinition(t),this.currentTheme):(this.currentTheme=Object.assign(Object.assign({},ur.default),{name:t,colorScheme:br(t),tokens:{},custom:!0}),this.currentTheme)}resolveDefinition(e){const t=[],r=new Set;let i=e,o=!0;for(;!mr(i);){if(r.has(i)){o=!1;break}r.add(i);const e=this.customThemes.get(i);if(!e){o=!1;break}t.push(e),i=yr(e.extends)}let s=Object.assign(Object.assign({},o&&mr(i)?ur[i]:ur.default),{tokens:{}});o&&t.reverse();const n=o?t:t.slice(0,1);for(const e of n)s={name:e.name,colorScheme:pr(e.colorScheme,s.colorScheme),defaultRowSize:fr(e.defaultRowSize)?e.defaultRowSize:s.defaultRowSize,tokens:Object.assign(Object.assign({},s.tokens),wr(e.tokens)),custom:!0};return s}}function yr(e){return("string"==typeof e?e.trim():"")||gr}class Cr{constructor(e,t){var r;this.config=e;const i=[];let o=0;d.forEach((r=>{const s=e.columnProvider.stores[r].store;if(!s.get("items").length)return;const n={colType:r,position:{x:o,y:1},contentHeight:t,fixWidth:"rgCol"!==r,viewports:e.viewportProvider.stores,dimensions:e.dimensionProvider.stores,rowStores:e.dataProvider.stores,noHorizontalScrollTransfer:e.noHorizontalScrollTransfer,colStore:s,onHeaderresize:e=>this.onColumnResize(r,e,s),onResizeviewport:t=>{var i;const o={clientSize:t.detail.size},s=function(e,t){return"rgCol"===t?e:t}(r,t.detail.dimension),n=d.includes(s)&&lr(s,e.disableVirtualX,e.virtualX);("rgRow"===s&&!e.disableVirtualY||n)&&(o.virtualSize=t.detail.size),null===(i=e.viewportProvider)||void 0===i||i.setViewport(s,o)}},a=function(e){const t=e.dimensions[e.colType].store,r=t.get("realSize"),i={contentWidth:r,class:e.colType,contentHeight:e.contentHeight,key:e.colType,colType:e.colType,noHorizontalScrollTransfer:e.noHorizontalScrollTransfer,onResizeviewport:e.onResizeviewport,style:e.fixWidth?{minWidth:r+"px"}:void 0},o={colData:K(e.colStore),dimensionCol:t,type:e.colType,groups:e.colStore.get("groups"),groupingDepth:e.colStore.get("groupingDepth"),resizeHandler:"colPinEnd"===e.colType?["l"]:void 0,onHeaderresize:e.onHeaderresize};return{prop:i,type:e.colType,position:e.position,headerProp:o,viewportCol:e.viewports[e.colType].store}}(n),h=this.registerCol(a.position.x,r),l=this.dataViewPort(n).reduce(((t,i)=>{const o=this.registerSegment(i.position,i.lastCell),s=this.registerRow(i.position.y,i.type),n=Object.assign(Object.assign({colType:r},i),{rowSelectionStore:s,selectionStore:o.store,onSetrange:e=>{o.setRangeArea(e.detail)},onSettemprange:e=>o.setTempArea(e.detail),onFocuscell:t=>{o.clearFocus(),e.selectionStoreConnector.focus(o,t.detail)}});return t.push(n),t}),[]);i.push(Object.assign(Object.assign({},a),{columnSelectionStore:h,dataPorts:l})),o++})),this.columns=i,null===(r=this.config.scrollingService)||void 0===r||r.unregister()}onColumnResize(e,{detail:t},r){var i;null===(i=this.config.dimensionProvider)||void 0===i||i.setCustomSizes(e,t,!0);const o={};for(const e of Object.keys(t||{})){const i=t[e],s=Number.parseInt(e,10),n=$(r,s);n&&(o[s]=Object.assign(Object.assign({},n),{size:i}))}this.config.resize(o)}registerSegment(e,t){const r=this.config.selectionStoreConnector.register(e);return r.setLastCell(t),r}registerRow(e,t){return this.config.selectionStoreConnector.registerRow(e,t).store}registerCol(e,t){return this.config.selectionStoreConnector.registerColumn(e,t).store}dataViewPort(e){const t={rowPinStart:ue,rgRow:ve,rowPinEnd:ge};let r=0;return u.reduce(((i,o)=>{const s=Object.assign(Object.assign({},e),{position:Object.assign(Object.assign({},e.position),{y:r})}),n=ce(s,o,t[o],"rgRow"!==o);return i.push(n),r++,i}),[])}scrollToCell(e){for(let t in e){const r=e[t];"number"==typeof r&&this.config.scrollingService.proxyScroll({dimension:"x"===t?"rgCol":"rgRow",coordinate:r})}}clearFocused(){this.config.selectionStoreConnector.clearAll()}clearEdit(){this.config.selectionStoreConnector.setEdit(!1)}getFocused(){const e=this.config.selectionStoreConnector.focusedStore;if(!e)return null;const t=this.config.selectionStoreConnector.storesXToType[e.position.x],r=this.config.columnProvider.getColumn(e.cell.x,t),i=this.config.selectionStoreConnector.storesYToType[e.position.y];return{column:r,model:this.config.dataProvider.getModel(e.cell.y,i),cell:e.cell,colType:t,rowType:i}}getStoreCoordinateByType(e,t){const r=this.config.selectionStoreConnector.storesByType;if(void 0!==r[e]&&void 0!==r[t])return{x:r[e],y:r[t]}}setFocus(e,t,r,i){var o;const s=this.getStoreCoordinateByType(e,t);s&&(null===(o=this.config.selectionStoreConnector)||void 0===o||o.focusByCell(s,r,i))}getSelectedRange(){const e=this.config.selectionStoreConnector.focusedStore;if(!e)return null;const t=this.config.selectionStoreConnector.storesXToType[e.position.x],r=this.config.selectionStoreConnector.storesYToType[e.position.y],i=e.entity.store.get("range");return i?Object.assign(Object.assign({},i),{colType:t,rowType:r}):null}setEdit(e,t,r,i){var o;const s=this.getStoreCoordinateByType(r,i);s&&(null===(o=this.config.selectionStoreConnector)||void 0===o||o.setEditByCell(s,{x:t,y:e}))}}class Sr{constructor(e){this.setViewport=e,this.elements={}}async proxyScroll(e,t,r){let i,o=e;for(const o in r?{}:this.elements)if("rgCol"!==e.dimension||"headerRow"!==o)if(this.isPinnedColumn(t)&&"rgCol"===e.dimension){if(o===t||!e.delta)continue;const r=this.changeScroll(this.elements[o],e);r&&(i=r)}else await this.setScroll(this.elements[o],e);const s=await i;s&&(o=s),this.setViewport(r&&this.isPinnedColumn(t)?Object.assign(Object.assign({},o),{dimension:t}):o)}changeScroll(e,t){let r;for(const i of e)i.changeScroll&&(r=i.changeScroll(t));return r}async setScroll(e,t){var r;for(const i of e)await(null===(r=i.setScroll)||void 0===r?void 0:r.call(i,t))}async scrollSilentService(e,t){var r;for(const i in this.elements)if(i!==t)if(!d.includes(t)||"headerRow"!==i&&!d.includes(i));else for(const t of this.elements[i])await(null===(r=t.changeScroll)||void 0===r?void 0:r.call(t,e,!0))}isPinnedColumn(e){return!!e&&["colPinStart","colPinEnd"].includes(e)}registerElements(e){this.elements=e}registerElement(e,t){this.elements[t]||(this.elements[t]=[]),e?this.elements[t].push(e):this.elements[t]&&delete this.elements[t]}unregister(){this.elements={}}}class kr{constructor(){this.stores={},this.columnStores={},this.rowStores={},this.storesByType={},this.storesXToType={},this.storesYToType={}}get focusedStore(){var e;for(let t in this.stores)for(let r in this.stores[t]){const i=null===(e=this.stores[t][r])||void 0===e?void 0:e.store.get("focus");if(i)return{entity:this.stores[t][r],cell:i,position:{x:parseInt(r,10),y:parseInt(t,10)}}}return null}get edit(){var e;return null===(e=this.focusedStore)||void 0===e?void 0:e.entity.store.get("edit")}get focused(){var e;return null===(e=this.focusedStore)||void 0===e?void 0:e.entity.store.get("focus")}get selectedRange(){var e;return null===(e=this.focusedStore)||void 0===e?void 0:e.entity.store.get("range")}registerColumn(e,t){return this.updateColumnTypeMapping(e,t),this.columnStores[e]||(this.columnStores[e]=new Fe),this.columnStores[e]}registerRow(e,t){return this.rowStores[e]||(this.rowStores[e]=new Fe,this.storesByType[t]=e,this.storesYToType[e]=t),this.rowStores[e]}register({x:e,y:t}){this.stores[t]||(this.stores[t]={});let r=this.stores[t][e];return r||(this.stores[t][e]=r=new Fe,r.onChange("range",(r=>{this.columnStores[e].setRangeArea(r),this.rowStores[t].setRangeArea(r)})),r.store.on("dispose",(()=>this.destroy(e,t))),r)}destroy(e,t){var r,i;if(null===(r=this.columnStores[e])||void 0===r||r.dispose(),null===(i=this.rowStores[t])||void 0===i||i.dispose(),delete this.rowStores[t],delete this.columnStores[e],this.storesXToType[e]){const t=this.storesXToType[e];delete this.storesXToType[e],delete this.storesByType[t]}if(this.storesYToType[t]){const e=this.storesYToType[t];delete this.storesYToType[t],delete this.storesByType[e]}this.stores[t]&&delete this.stores[t][e],Object.keys(this.stores[t]||{}).length||delete this.stores[t]}setEditByCell(e,t){this.focusByCell(e,t,t),this.setEdit("")}beforeNextFocusCell(e){var t;if(!this.focusedStore)return;const r=this.focusedStore.entity.store.get("lastCell"),i=r&&this.getNextStore(e,this.focusedStore.position,r);null===(t=null==i?void 0:i.store)||void 0===t||t.setNextFocus(Object.assign(Object.assign({},e),i.item))}focusByCell(e,t,r){this.focus(this.stores[e.y][e.x],{focus:t,end:r})}focus(e,{focus:t,end:r}){const i=this.getCurrentStorePointer(e);if(!i)return null;const o=e.store.get("lastCell"),s=o&&this.getNextStore(t,i,o);if(null==s?void 0:s.store){const e=Object.assign(Object.assign({},t),s.item);return this.focus(s.store,{focus:e,end:e}),null}return o&&(t=D(t,o),r=D(r,o)),e.setFocus(t,r),t}getCurrentStorePointer(e){let t;for(let r in this.stores)for(let i in this.stores[r]){const o=this.stores[r][i];o!==e?o.clearFocus():t={x:parseInt(i,10),y:parseInt(r,10)}}return t}getNextStore(e,t,r){const i=I(e,r);let o;i&&Object.keys(i).forEach((e=>{var r;const s=e,n=null!==(r=i[s])&&void 0!==r?r:0;let a;switch(s){case"x":a=this.getXStores(t.y);break;case"y":a=this.getYStores(t.x)}if(n>=0)o=a[++t[s]];else{o=a[--t[s]];const e=null==o?void 0:o.store.get("lastCell");e&&(i[s]=e[s]+n)}}));const s=null==o?void 0:o.store.get("lastCell");return(null==s?void 0:s.x)&&(null==s?void 0:s.y)||(o=void 0),{store:o,item:i}}clearAll(){var e;for(let t in this.stores)for(let r in this.stores[t])null===(e=this.stores[t][r])||void 0===e||e.clearFocus()}setEdit(e){this.focusedStore&&this.focusedStore.entity.setEdit(e)}selectAll(){for(let e in this.stores)for(let t in this.stores[e]){const r=this.stores[e][t];if(!r)continue;const i=r.store.get("lastCell");!i||i.x<=0||i.y<=0?r.setRangeArea(null):r.setRange({x:0,y:0},{x:i.x-1,y:i.y-1})}}getXStores(e){return this.stores[e]}getYStores(e){const t={};for(let r in this.stores)t[r]=this.stores[r][e];return t}updateColumnTypeMapping(e,t){const r=this.storesXToType[e],i=this.storesByType[t];let o=!1;this.storesByType[t]=e,this.storesXToType[e]=t,r&&r!==t&&(o=!0,this.storesByType[r]===e&&delete this.storesByType[r]),"number"==typeof i&&i!==e&&this.storesXToType[i]===t&&(delete this.storesXToType[i],o=!0),o&&this.clearAll()}}class jr{constructor(){this.parentY=0}start(e,{pos:t,text:r,event:i}){var o;const{top:s}=e.getBoundingClientRect();this.parentY=s,this.text&&(this.text.innerText=r),this.move(t),this.moveTip({x:i.x,y:i.y}),null===(o=this.el)||void 0===o||o.classList.remove("hidden")}end(){var e;null===(e=this.el)||void 0===e||e.classList.add("hidden")}move(e){this.moveElement(e.end-this.parentY)}moveTip({x:e,y:t}){this.draggable&&(this.draggable.style.left=e+"px",this.draggable.style.top=t+"px")}moveElement(e){this.rgRow&&(this.rgRow.style.transform=`translateY(${e}px)`)}}const Or=({ref:t})=>{const r=new jr;return t(r),e("div",{class:"draggable-wrapper hidden",ref:e=>r.el=e},e("div",{class:"draggable",ref:e=>r.draggable=e},e("span",{class:"revo-alt-icon"}),e("span",{ref:e=>r.text=e})),e("div",{class:"drag-position",ref:e=>r.rgRow=e}))},zr=(e=[])=>{const t={};for(const r of e){let e=t[r.type];e||(e=t[r.type]={}),"number"==typeof r.size&&(e.sizes||(e.sizes={}),e.sizes[r.index]=r.size)}return t},Rr=e=>""+(e+1);class Er extends Be{constructor(e,t){super(e,t),e.setAttribute("role","treegrid"),e.setAttribute("aria-keyshortcuts","Enter"),e.setAttribute("aria-multiselectable","true"),e.setAttribute("tabindex","0"),this.addEventListener("beforecolumnsset",(({detail:t})=>{const r=[...t.columns.colPinStart,...t.columns.rgCol,...t.columns.colPinEnd];e.setAttribute("aria-colcount",""+r.length),r.forEach(((e,t)=>{const{columnProperties:r,cellProperties:i}=e;e.columnProperties=(...e)=>{const i=(null==r?void 0:r(...e))||{};return i.role="columnheader",i["aria-colindex"]=Rr(t),i},e.cellProperties=(...e)=>{const r={role:"gridcell","aria-colindex":Rr(t),"aria-rowindex":Rr(e[0].rowIndex),tabindex:-1},o=(null==i?void 0:i(...e))||{};return Object.assign(Object.assign({},r),o)}}))})),this.addEventListener("beforesourceset",(({detail:t})=>{e.setAttribute("aria-rowcount",""+t.source.length)})),this.addEventListener("beforerowrender",(({detail:e})=>{e.node.o=Object.assign(Object.assign({},e.node.o),{role:"row","aria-rowindex":Rr(e.item.itemIndex)})})),this.addEventListener("afterfocus",(async e=>{if(e.defaultPrevented)return;const t=this.revogrid.querySelector(`revogr-data[type="${e.detail.rowType}"][col-type="${e.detail.colType}"] [data-rgrow="${e.detail.rowIndex}"][data-rgcol="${e.detail.colIndex}"]`);t instanceof HTMLElement&&t.focus()}))}}class Pr{constructor(){this.internalPlugins=[]}get(){return[...this.internalPlugins]}add(e){this.internalPlugins.push(e)}addUserPluginsAndCreate(e,t=[],r,i){i&&(((null==r?void 0:r.filter((e=>!t.includes(e))))||[]).forEach((e=>{var t,r;const i=this.internalPlugins.findIndex((t=>t instanceof e));-1!==i&&(null===(r=(t=this.internalPlugins[i]).destroy)||void 0===r||r.call(t),this.internalPlugins.splice(i,1))})),null==t||t.forEach((t=>{this.internalPlugins.some((e=>e instanceof t))||this.add(new t(e,i))})))}getByClass(e){return this.internalPlugins.find((t=>t instanceof e))}remove(e){var t,r;const i=this.internalPlugins.indexOf(e);i>-1&&(null===(r=(t=this.internalPlugins[i]).destroy)||void 0===r||r.call(t),this.internalPlugins.splice(i,1))}destroy(){this.internalPlugins.forEach((e=>{var t;return null===(t=e.destroy)||void 0===t?void 0:t.call(e)})),this.internalPlugins=[]}}class Hr extends Be{constructor(e,t){super(e,t),this.isRTLEnabled=!1,this.init()}init(){this.addEventListener("beforecolumnsset",(e=>{this.handleBeforeColumnsSet(e)})),this.addEventListener("aftergridinit",(()=>{this.updateRTLState()})),this.watch("rtl",(e=>{this.isRTLEnabled=e,this.emit("rtlstatechanged",{rtl:this.isRTLEnabled})}),{immediate:!0})}handleBeforeColumnsSet(e){if(!this.isRTLEnabled)return;const t=this.applyRTLTransformationToCollection(e.detail);e.detail.columns=t.columns,e.detail.columnByProp=t.columnByProp,e.detail.columnGrouping=t.columnGrouping}applyRTLTransformationToCollection(e){const t={columns:{rgCol:[],colPinStart:[],colPinEnd:[]},columnByProp:Object.assign({},e.columnByProp),columnGrouping:{rgCol:[],colPinStart:[],colPinEnd:[]},maxLevel:e.maxLevel,sort:Object.assign({},e.sort)};return Object.keys(e.columns).forEach((r=>{const i=r,o=e.columns[i],s=[...o].reverse();t.columns[i]=s,t.columnGrouping[i]=this.applyRTLTransformationToGroups(e.columnGrouping[i],o.length)})),t}applyRTLTransformationToGroups(e,t){return e.map((e=>{const r=e.indexes.map((e=>t-1-e)).reverse();return Object.assign(Object.assign({},e),{indexes:r})})).reverse()}updateRTLState(){const e=this.revogrid;e&&"boolean"==typeof e.rtl&&(this.isRTLEnabled=e.rtl)}getRTLState(){return this.isRTLEnabled}destroy(){super.destroy()}}function Tr(e){return Number.isFinite(e)&&e>0?e:100}const Lr=t(class extends r{constructor(e){super(),!1!==e&&this.__registerHost(),this.contentsizechanged=i(this,"contentsizechanged",7),this.beforeedit=i(this,"beforeedit",7),this.beforerangeedit=i(this,"beforerangeedit",7),this.afteredit=i(this,"afteredit",7),this.beforeautofill=i(this,"beforeautofill",7),this.beforerange=i(this,"beforerange",7),this.afterfocus=i(this,"afterfocus",7),this.roworderchanged=i(this,"roworderchanged",7),this.beforesorting=i(this,"beforesorting",7),this.beforesourcesortingapply=i(this,"beforesourcesortingapply",7),this.beforesortingapply=i(this,"beforesortingapply",7),this.aftersortingapply=i(this,"aftersortingapply",7),this.rowdragstart=i(this,"rowdragstart",7),this.headerclick=i(this,"headerclick",7),this.beforecellfocus=i(this,"beforecellfocus",7),this.beforefocuslost=i(this,"beforefocuslost",7),this.beforesourceset=i(this,"beforesourceset",7),this.beforeanysource=i(this,"beforeanysource",7),this.aftersourceset=i(this,"aftersourceset",7),this.afteranysource=i(this,"afteranysource",7),this.beforecolumnsgather=i(this,"beforecolumnsgather",7),this.beforecolumnsset=i(this,"beforecolumnsset",7),this.beforecolumnapplied=i(this,"beforecolumnapplied",7),this.aftercolumnsset=i(this,"aftercolumnsset",7),this.beforefilterapply=i(this,"beforefilterapply",7),this.beforefiltertrimmed=i(this,"beforefiltertrimmed",7),this.beforetrimmed=i(this,"beforetrimmed",7),this.aftertrimmed=i(this,"aftertrimmed",7),this.viewportscroll=i(this,"viewportscroll",7),this.beforeexport=i(this,"beforeexport",7),this.beforeeditstart=i(this,"beforeeditstart",7),this.aftercolumnresize=i(this,"aftercolumnresize",7),this.beforerowdefinition=i(this,"beforerowdefinition",7),this.filterconfigchanged=i(this,"filterconfigchanged",7),this.sortingconfigchanged=i(this,"sortingconfigchanged",7),this.rowheaderschanged=i(this,"rowheaderschanged",7),this.beforegridrender=i(this,"beforegridrender",7),this.aftergridrender=i(this,"aftergridrender",7),this.aftergridinit=i(this,"aftergridinit",7),this.additionaldatachanged=i(this,"additionaldatachanged",7),this.afterthemechanged=i(this,"afterthemechanged",7),this.created=i(this,"created",7),this.frameSize=1,this.rowSize=0,this.colSize=100,this.range=!1,this.readonly=!1,this.resize=!0,this.resizeRow=!1,this.noHorizontalScrollTransfer=!1,this.canFocus=!0,this.useClipboard=!0,this.columns=[],this.source=[],this.pinnedTopSource=[],this.pinnedBottomSource=[],this.rowDefinitions=[],this.editors={},this.applyOnClose=!1,this.plugins=[],this.columnTypes={},this.theme="default",this.themeDefinitions=[],this.rowClass="",this.autoSizeColumn=!1,this.filter=!0,this.canMoveColumns=!0,this.trimmedRows={},this.exporting=!0,this.stretch=!1,this.additionalData={},this.disableVirtualX=!1,this.virtualX=["rgCol"],this.disableVirtualY=!1,this.hideAttribution=!1,this.jobsBeforeRender=[],this.registerVNode=[],this.accessible=!0,this.rtl=!1,this.canDrag=!0,this.extraElements=[],this.pluginService=new Pr,this.viewport=null,this.isInited=!1,this.themeStyles={}}async refresh(e="all"){if(!this.dataProvider)throw Error("Not connected");this.dataProvider.refresh(e)}async setDataAt({row:e,col:t,colType:r="rgCol",rowType:i="rgRow",val:o,skipDataUpdate:s=!1}){var n;if(this.dataProvider&&this.columnProvider&&!s){const s=null===(n=this.columnProvider.getColumn(t,r))||void 0===n?void 0:n.prop;void 0!==s&&this.dataProvider.setCellData({type:i,rowIndex:e,prop:s,val:o},!1)}const a=this.element.querySelector(`revogr-data[type="${i}"][col-type="${r}"]`);return null==a?void 0:a.updateCell({row:e,col:t})}async scrollToRow(e=0){if(!this.dimensionProvider)throw Error("Not connected");const t=this.dimensionProvider.getViewPortPos({coordinate:e,dimension:"rgRow"});await this.scrollToCoordinate({y:t})}async scrollToColumnIndex(e=0){if(!this.dimensionProvider)throw Error("Not connected");const t=this.dimensionProvider.getViewPortPos({coordinate:e,dimension:"rgCol"});await this.scrollToCoordinate({x:t})}async scrollToColumnProp(e,t="rgCol"){if(!this.dimensionProvider||!this.columnProvider)throw Error("Not connected");const r=this.columnProvider.getColumnIndexByProp(e,t);if(r<0)return;const i=this.dimensionProvider.getViewPortPos({coordinate:r,dimension:t});await this.scrollToCoordinate({x:i})}async updateColumns(e){var t;null===(t=this.columnProvider)||void 0===t||t.updateColumns(e)}async addTrimmed(e,t="external",r="rgRow"){if(!this.dataProvider)throw Error("Not connected");const i=this.beforetrimmed.emit({trimmed:e,trimmedType:t,type:r});return i.defaultPrevented||(this.dataProvider.setTrimmed({[t]:i.detail.trimmed},r),this.aftertrimmed.emit()),i}async scrollToCoordinate(e){var t;null===(t=this.viewport)||void 0===t||t.scrollToCell(e)}async setCellEdit(e,t,r="rgRow"){var i;const o=b(this.columns,t);if(!o)return;await he();const s=o.pin||"rgCol";if(!this.columnProvider)throw Error("Not connected");null===(i=this.viewport)||void 0===i||i.setEdit(e,this.columnProvider.getColumnIndexByProp(t,s),s,r)}async setCellsFocus(e={x:0,y:0},t={x:0,y:0},r="rgCol",i="rgRow"){var o;null===(o=this.viewport)||void 0===o||o.setFocus(r,i,e,t)}async getSource(e="rgRow"){if(!this.dataProvider)throw Error("Not connected");return this.dataProvider.stores[e].store.get("source")}async getVisibleSource(e="rgRow"){if(!this.dataProvider)throw Error("Not connected");return K(this.dataProvider.stores[e].store)}async getSourceStore(e="rgRow"){if(!this.dataProvider)throw Error("Not connected");return this.dataProvider.stores[e].store}async getColumnStore(e="rgCol"){if(!this.columnProvider)throw Error("Not connected");return this.columnProvider.stores[e].store}async updateColumnSorting(e,t,r){this.sortingconfigchanged.emit({columns:[{prop:e.prop,order:t,cellCompare:e.cellCompare}],additive:r})}async clearSorting(){this.sortingconfigchanged.emit({columns:[]})}async getColumns(){if(!this.columnProvider)throw Error("Not connected");return this.columnProvider.getColumns()}async clearFocus(){var e,t;const r=null===(e=this.viewport)||void 0===e?void 0:e.getFocused();this.beforefocuslost.emit(r).defaultPrevented||null===(t=this.selectionStoreConnector)||void 0===t||t.clearAll()}async getPlugins(){return this.pluginService.get()}async getFocused(){var e,t;return null!==(t=null===(e=this.viewport)||void 0===e?void 0:e.getFocused())&&void 0!==t?t:null}async getContentSize(){var e;if(!this.dimensionProvider)throw Error("Not connected");return null===(e=this.dimensionProvider)||void 0===e?void 0:e.getFullSize()}async getSelectedRange(){var e,t;return null!==(t=null===(e=this.viewport)||void 0===e?void 0:e.getSelectedRange())&&void 0!==t?t:null}async refreshExtraElements(){var e;null===(e=this.extraService)||void 0===e||e.refresh()}async getProviders(){return this.getPluginData()}mousedownHandle(e){const t=xe(e,"screenX"),r=xe(e,"screenY");null!==t&&null!==r&&(this.clickTrackForFocusClear=t+r)}async mouseupHandle(e){var t;const r=xe(e,"screenX"),i=xe(e,"screenY");if(null===r||null===i)return;if(e.defaultPrevented)return;if(Math.abs((null!==(t=this.clickTrackForFocusClear)&&void 0!==t?t:0)-(r+i))>10)return;const o=e.composedPath();o.includes(this.element)||this.element.shadowRoot&&o.includes(this.element.shadowRoot)||await this.clearFocus()}onRowDragStarted(e){var t;const r=this.rowdragstart.emit(e.detail);r.defaultPrevented?e.preventDefault():null===(t=this.orderService)||void 0===t||t.start(this.element,Object.assign(Object.assign({},e.detail),r.detail))}onRowDragEnd(){var e;null===(e=this.orderService)||void 0===e||e.end()}onRowOrderChange(e){var t;null===(t=this.dataProvider)||void 0===t||t.changeOrder(e.detail)}onRowDrag({detail:e}){var t;null===(t=this.orderService)||void 0===t||t.move(e)}onRowMouseMove(e){var t;null===(t=this.orderService)||void 0===t||t.moveTip(e.detail)}async onCellEdit(e){var t;const{defaultPrevented:r,detail:i}=this.beforeedit.emit(e.detail);await he(),r||(null===(t=this.dataProvider)||void 0===t||t.setCellData(i),this.afteredit.emit(i))}onRangeEdit(e){if(!this.dataProvider)throw Error("Not connected");const{defaultPrevented:t,detail:r}=this.beforerangeedit.emit(e.detail);t?e.preventDefault():(this.dataProvider.setRangeData(r.data,r.type),this.afteredit.emit(r))}onRangeChanged(e){const t=this.beforerange.emit(e.detail);t.defaultPrevented&&e.preventDefault(),this.beforeautofill.emit(t.detail).defaultPrevented&&e.preventDefault()}onRowDropped(e){const{defaultPrevented:t}=this.roworderchanged.emit(e.detail);t&&e.preventDefault()}onHeaderClick(e){const{defaultPrevented:t}=this.headerclick.emit(Object.assign(Object.assign({},e.detail.column),{originalEvent:e.detail.originalEvent}));t&&e.preventDefault()}onCellFocus(e){const{defaultPrevented:t}=this.beforecellfocus.emit(e.detail);this.canFocus&&!t||e.preventDefault()}columnTypesChanged(){this.columnChanged(this.columns)}columnChanged(e=[],t,r="columns",i=!1){if(!this.dimensionProvider||!this.columnProvider)return;const o=i?void 0:this.getColumnFocusRestore(),s=this.beforecolumnsgather.emit({columns:[...e]});if(s.defaultPrevented)return;const n=F(s.detail.columns,0,this.columnTypes),a=this.beforecolumnsset.emit(n);if(a.defaultPrevented)return;this.dimensionProvider.applyNewColumns(a.detail.columns,this.disableVirtualX,i,this.virtualX);const h=this.beforecolumnapplied.emit(n);if(h.defaultPrevented)return;const l=this.columnProvider.setColumns(h.detail);o&&(this.pendingColumnFocusRestore=o);const d={};for(const e of Object.keys(h.detail.sort))d[e]=h.detail.sort[e].order;this.aftercolumnsset.emit({columns:l,order:d})}getColumnFocusRestore(){var e,t,r,i;const o=null===(e=this.viewport)||void 0===e?void 0:e.getFocused(),s=null===(r=null===(t=this.selectionStoreConnector)||void 0===t?void 0:t.focusedStore)||void 0===r?void 0:r.position.x,n=null===(i=null==o?void 0:o.column)||void 0===i?void 0:i.prop;if(o&&void 0!==n&&void 0!==s)return{prop:n,colType:o.colType,colIndex:o.cell.x,prevStoreX:s,rowType:o.rowType,rowIndex:o.cell.y}}restoreColumnFocusAfterRender(){var e,t,r,i;const o=this.pendingColumnFocusRestore;if(!o)return;if(this.pendingColumnFocusRestore=void 0,!this.viewport||!this.columnProvider)return;const s=null!==(t=null===(e=this.columnProvider.getColumnByProp(o.prop))||void 0===e?void 0:e[0])&&void 0!==t?t:b(this.columns,o.prop);if(!s)return;const n=s.pin||"rgCol",a=this.columnProvider.getColumnIndexByProp(o.prop,n);if(a<0)return;if(n===o.colType&&a===o.colIndex&&o.prevStoreX===(null===(i=null===(r=this.selectionStoreConnector)||void 0===r?void 0:r.focusedStore)||void 0===i?void 0:i.position.x))return;const h={x:a,y:o.rowIndex};this.viewport.setFocus(n,o.rowType,h,h)}refreshColumnsOnConfigChange(e,t){e!==t&&this.columnChanged(this.columns)}disableVirtualXChanged(e=!1,t=!1){this.refreshColumnsOnConfigChange(e,t)}virtualXChanged(e=["rgCol"],t=["rgCol"]){this.refreshColumnsOnConfigChange(e,t)}rowSizeChanged(e){this.themeService&&this.dimensionProvider&&(this.themeService.rowSize=e,this.applyTheme(this.theme,!1,!1,"rowSize"))}colSizeChanged(e){this.dimensionProvider&&this.columnProvider&&(this.dimensionProvider.setSettings({originItemSize:Tr(e)},"rgCol"),this.columnChanged(this.columns))}themeChanged(e,t,r="theme",i=!1){if(!this.themeService||!this.dimensionProvider)return;if(this.pendingNormalizedTheme===e)return void(this.pendingNormalizedTheme=void 0);const o=yr(e);o!==e&&(this.pendingNormalizedTheme=o,this.theme=o),this.applyTheme(o,i,!0,"theme")}themeDefinitionsChanged(e=[]){this.themeService&&this.dimensionProvider&&(this.themeService.setDefinitions(e),this.applyTheme(this.theme,!1,!0,"themeDefinitions"))}applyTheme(e,t,r,i){var o;const s=this.themeService.register(e),n=this.themeService.rowSize,a=this.appliedThemeRowSize!==n,h=void 0!==this.appliedThemeRowSize;this.appliedThemeRowSize=n,this.themeStyles=this.getThemeStyles(),a&&(null===(o=this.dimensionProvider)||void 0===o||o.setSettings({originItemSize:n},"rgRow"),!t&&h&&this.rowDefChanged(this.rowDefinitions,this.rowDefinitions,i,!0)),r&&this.afterthemechanged.emit(s.name)}getThemeStyles(){const e={"--rg-theme-row-size":this.themeService.rowSize+"px"};for(const[t,r]of Object.entries(this.themeService.theme.tokens)){const i=Te[t];i&&r&&(e[i]=r)}return e}dataSourceChanged(e=[],t,r){if(!this.dataProvider)return;let i="rgRow";switch(r){case"pinnedBottomSource":i="rowPinEnd";break;case"pinnedTopSource":i="rowPinStart";break;case"source":i="rgRow",e=this.beforesourceset.emit({type:i,source:e}).detail.source}const o=[...this.beforeanysource.emit({type:i,source:e}).detail.source];this.dataProvider.setData(o,i,this.disableVirtualY),"source"===r&&this.aftersourceset.emit({type:i,source:e}),this.afteranysource.emit({type:i,source:e})}disableVirtualYChanged(e=!1,t=!1){e!==t&&this.dataSourceChanged(this.source,this.source,"source")}rowDefChanged(e,t,r,i=!0){if(!this.dimensionProvider||!this.dataProvider)return;const{detail:{vals:o,oldVals:s}}=this.beforerowdefinition.emit({vals:e,oldVals:t});this.dimensionProvider.syncRowDefinitions(o);const n=zr(o),a=zr(s),h=this.dataProvider,l=this.dimensionProvider;u.forEach((e=>{const t=n[e],r=a[e];if(!t&&!r&&!i)return;const o=Object.assign({},l.stores[e].store.get("sizes")),s=(null==t?void 0:t.sizes)||{},d=(null==r?void 0:r.sizes)||{};h.stores[e].store.get("items").forEach(((e,t)=>{Object.hasOwn(d,e)&&o[t]===d[e]&&delete o[t],Object.hasOwn(s,e)&&(o[t]=s[e])})),l.setCustomSizes(e,o)}))}trimmedRowsChanged(e={}){this.addTrimmed(e)}groupingChanged(e={}){var t;null===(t=this.pluginService.getByClass(It))||void 0===t||t.setGrouping(e||{})}applyStretch(e){if(!(this.dimensionProvider&&this.dataProvider&&this.columnProvider&&this.viewportProvider))return;"false"===e&&(e=!1);const t=this.getPluginData();if(!t)return;const r=this.pluginService.getByClass(Xe);"boolean"==typeof e&&e||"true"===e?r?qe(r)&&r.applyStretch(this.columnProvider.getRawColumns()):this.pluginService.add(new Xe(this.element,t)):r&&this.pluginService.remove(r)}applyFilter(e){this.filterconfigchanged.emit(e)}applySorting(e){this.sortingconfigchanged.emit(e)}rowHeadersChange(e){this.rowheaderschanged.emit(e)}resizeRowChanged(){this.syncRowResizeConfig()}registerOutsideVNodes(e=[]){this.extraElements=e}additionalDataChanged(e){this.additionaldatachanged.emit(e)}rtlChanged(){this.columnChanged(this.columns)}pluginsChanged(e=[],t){this.pluginService.addUserPluginsAndCreate(this.element,e,t,this.getPluginData()),this.syncRowResizeConfig()}setPlugins(){this.removePlugins();const e=this.getPluginData();e&&(this.setCorePlugins(e),this.pluginsChanged(this.plugins))}setCorePlugins(e){this.accessible&&this.pluginService.add(new Er(this.element,e)),this.pluginService.add(new Hr(this.element,e)),this.autoSizeColumn&&this.pluginService.add(new $e(this.element,e,"object"==typeof this.autoSizeColumn?this.autoSizeColumn:void 0)),this.filter&&this.pluginService.add(new ft(this.element,e,"object"==typeof this.filter?this.filter:void 0)),this.exporting&&this.pluginService.add(new Je(this.element,e)),this.pluginService.add(new Pt(this.element,e)),this.pluginService.add(new It(this.element,e)),this.pluginService.add(new sr(this.element,e)),this.canMoveColumns&&this.pluginService.add(new qt(this.element,e))}syncRowResizeConfig(){const e=this.pluginService.getByClass(sr);null==e||e.syncGridConfig()}getPluginData(){if(this.dimensionProvider&&this.dataProvider&&this.columnProvider&&this.viewportProvider&&this.selectionStoreConnector)return{data:this.dataProvider,column:this.columnProvider,dimension:this.dimensionProvider,viewport:this.viewportProvider,selection:this.selectionStoreConnector,plugins:this.pluginService}}removePlugins(){this.pluginService.destroy()}connectedCallback(){this.isInited&&this.setPlugins(),this.created.emit()}componentWillLoad(){var e;this.viewportProvider=new cr,this.themeService=new xr({rowSize:this.rowSize}),this.themeService.setDefinitions(this.themeDefinitions),this.dimensionProvider=new dr(this.viewportProvider,{realSizeChanged:e=>this.contentsizechanged.emit(e),rowDefinitionsChanged:e=>{this.rowDefinitions=e}}),this.dimensionProvider.setSettings({originItemSize:Tr(this.colSize)},"rgCol"),this.columnProvider=new nr,this.selectionStoreConnector=new kr,this.dataProvider=new ar(this.dimensionProvider),this.registerOutsideVNodes(this.registerVNode),this.setPlugins(),this.applyStretch(this.stretch),this.themeChanged(this.theme,void 0,void 0,!0),this.columnChanged(this.columns,void 0,void 0,!0),this.dataSourceChanged(this.source,void 0,"source"),this.dataSourceChanged(this.pinnedTopSource,void 0,"pinnedTopSource"),this.dataSourceChanged(this.pinnedBottomSource,void 0,"pinnedBottomSource"),Object.keys(null!==(e=this.trimmedRows)&&void 0!==e?e:{}).length>0&&this.trimmedRowsChanged(this.trimmedRows),this.rowDefChanged(this.rowDefinitions,void 0,void 0,!1),this.grouping&&Object.keys(this.grouping).length>0&&this.groupingChanged(this.grouping),this.scrollingService=new Sr((e=>{var t;null===(t=this.dimensionProvider)||void 0===t||t.setViewPortCoordinate({coordinate:e.coordinate,type:e.dimension}),this.viewportscroll.emit(e)})),this.aftergridinit.emit(),this.isInited=!0}componentWillRender(){return!this.beforegridrender.emit().defaultPrevented&&Promise.all(this.jobsBeforeRender)}componentDidRender(){this.restoreColumnFocusAfterRender(),this.aftergridrender.emit()}render(){if(!(this.dimensionProvider&&this.dataProvider&&this.columnProvider&&this.viewportProvider&&this.selectionStoreConnector))return;const t=this.dimensionProvider.stores.rgRow.store.get("realSize");this.viewport=new Cr({columnProvider:this.columnProvider,dataProvider:this.dataProvider,dimensionProvider:this.dimensionProvider,viewportProvider:this.viewportProvider,scrollingService:this.scrollingService,orderService:this.orderService,selectionStoreConnector:this.selectionStoreConnector,noHorizontalScrollTransfer:this.noHorizontalScrollTransfer,disableVirtualX:this.disableVirtualX,virtualX:this.virtualX,disableVirtualY:this.disableVirtualY,resize:e=>this.aftercolumnresize.emit(e)},t);const r=[];if(this.rowHeaders&&this.viewport.columns.length){const i=this.viewport.columns[0];r.push(e("revogr-row-headers",{additionalData:this.additionalData,height:t,rowClass:this.rowClass,resize:this.resize,dataPorts:i.dataPorts,headerProp:i.headerProp,jobsBeforeRender:this.jobsBeforeRender,rowHeaderColumn:"object"==typeof this.rowHeaders?this.rowHeaders:void 0,onScrollview:({detail:e})=>this.scrollingService.proxyScroll(e,"headerRow"),onRef:({detail:e})=>this.scrollingService.registerElement(e,"headerRow")}))}const i=/Mobi/i.test(navigator.userAgent)||/Android/i.test(navigator.userAgent)||navigator.maxTouchPoints>0,s=[];for(let t of this.viewport.columns){const r=Object.assign(Object.assign({},t.headerProp),{type:t.type,additionalData:this.additionalData,viewportCol:t.viewportCol,selectionStore:t.columnSelectionStore,canResize:this.resize,readonly:this.readonly,columnFilter:!!this.filter}),o=[e("revogr-header",Object.assign({},r,{slot:ue}))];t.dataPorts.forEach((r=>{const s=`${r.type}_${t.type}`,n=e("revogr-overlay-selection",Object.assign({},r,{canDrag:this.canDrag&&r.canDrag,isMobileDevice:i,onSelectall:()=>{var e;return null===(e=this.selectionStoreConnector)||void 0===e?void 0:e.selectAll()},editors:this.editors,readonly:this.readonly,range:this.range,useClipboard:this.useClipboard,applyChangesOnClose:this.applyOnClose,additionalData:this.additionalData,slot:r.slot,onBeforenextvpfocus:e=>{var t;return null===(t=this.selectionStoreConnector)||void 0===t?void 0:t.beforeNextFocusCell(e.detail)},onCanceledit:()=>{var e;return null===(e=this.selectionStoreConnector)||void 0===e?void 0:e.setEdit(!1)},onSetedit:e=>{var t;this.beforeeditstart.emit(e.detail).defaultPrevented?e.preventDefault():null===(t=this.selectionStoreConnector)||void 0===t||t.setEdit(e.detail.val)}}),e("revogr-data",Object.assign({},r,{colType:t.type,key:s,readonly:this.readonly,range:this.range,rowClass:this.rowClass,rowSelectionStore:r.rowSelectionStore,additionalData:this.additionalData,jobsBeforeRender:this.jobsBeforeRender,slot:me}),e("slot",{name:`data-${t.type}-${r.type}`})),e("revogr-temp-range",{selectionStore:r.selectionStore,dimensionRow:r.dimensionRow,dimensionCol:r.dimensionCol}),e("revogr-focus",{colData:r.colData,dataStore:r.dataStore,focusTemplate:this.focusTemplate,rowType:r.type,colType:t.type,selectionStore:r.selectionStore,dimensionRow:r.dimensionRow,dimensionCol:r.dimensionCol},e("slot",{name:`focus-${t.type}-${r.type}`})));o.push(n)})),s.push(e("revogr-viewport-scroll",Object.assign({},t.prop,{ref:e=>this.scrollingService.registerElement(e,""+t.prop.key),onScrollviewport:e=>{this.scrollingService.proxyScroll(e.detail,""+t.prop.key,this.noHorizontalScrollTransfer&&"rgCol"===e.detail.dimension)},onScrollviewportsilent:e=>this.scrollingService.scrollSilentService(e.detail,""+t.prop.key)}),o))}r.push(s);const n="rgRow",a="rgCol",h=this.viewportProvider.stores,l=this.dimensionProvider.stores,d=e("revogr-scroll-virtual",{class:"vertical",dimension:n,clientSize:h[n].store.get("clientSize"),virtualSize:h[n].store.get("virtualSize"),realSize:l[n].store.get("realSize"),ref:e=>this.scrollingService.registerElement(e,"rowScroll"),onScrollvirtual:e=>this.scrollingService.proxyScroll(e.detail)}),c=e("revogr-scroll-virtual",{class:"horizontal",dimension:a,clientSize:h[a].store.get("clientSize"),virtualSize:h[a].store.get("virtualSize"),realSize:l[a].store.get("realSize"),ref:e=>this.scrollingService.registerElement(e,"colScroll"),onScrollvirtual:e=>this.scrollingService.proxyScroll(e.detail)});return e(o,{dir:this.rtl?"rtl":"ltr","data-rg-theme-scheme":this.themeService.theme.colorScheme,style:this.themeStyles},this.hideAttribution?null:e("revogr-attribution",{class:"attribution"}),e("slot",{name:"header"}),e("div",{class:"main-viewport",onClick:e=>{var t;e.currentTarget===e.target&&(null===(t=this.viewport)||void 0===t||t.clearEdit())}},e("div",{class:"viewports"},e("slot",{name:"viewport"}),r,d,e(Or,{ref:e=>this.orderService=e}))),c,e("revogr-extra",{ref:e=>this.extraService=e,nodes:this.extraElements}),e("slot",{name:"footer"}))}disconnectedCallback(){this.removePlugins()}get element(){return this}static get watchers(){return{columnTypes:[{columnTypesChanged:0}],columns:[{columnChanged:0}],disableVirtualX:[{disableVirtualXChanged:0}],virtualX:[{virtualXChanged:0}],rowSize:[{rowSizeChanged:0}],colSize:[{colSizeChanged:0}],theme:[{themeChanged:0}],themeDefinitions:[{themeDefinitionsChanged:0}],source:[{dataSourceChanged:0}],pinnedBottomSource:[{dataSourceChanged:0}],pinnedTopSource:[{dataSourceChanged:0}],disableVirtualY:[{disableVirtualYChanged:0}],rowDefinitions:[{rowDefChanged:0}],trimmedRows:[{trimmedRowsChanged:0}],grouping:[{groupingChanged:0}],stretch:[{applyStretch:0}],filter:[{applyFilter:0}],sorting:[{applySorting:0}],rowHeaders:[{rowHeadersChange:0}],resizeRow:[{resizeRowChanged:0}],registerVNode:[{registerOutsideVNodes:0}],additionalData:[{additionalDataChanged:0}],rtl:[{rtlChanged:0}],plugins:[{pluginsChanged:0}]}}static get style(){return"revo-grid:is([theme=default],[theme=dark]),revo-grid:not([theme]){--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 12px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 4px);border:1px solid var(--rg-theme-header-border);font-size:var(--rg-theme-font-size)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-header,revo-grid:not([theme]) .rowHeaders revogr-header{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header,revo-grid:not([theme]) revogr-header{text-align:var(--rg-theme-header-text-align);line-height:var(--rg-theme-header-height);background-color:var(--rg-theme-header-bg)}revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{box-shadow:none}revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow .rgHeaderCell,revo-grid:not([theme]) revogr-header .group-rgRow .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border), -1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header .header-rgRow,revo-grid:is([theme=default],[theme=dark]) revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{text-transform:var(--rg-theme-header-text-transform);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);color:var(--rg-theme-header-color)}revo-grid:is([theme=default],[theme=dark]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow{height:var(--rg-theme-header-height);box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-header .rgHeaderCell,revo-grid:not([theme]) revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders,revo-grid:not([theme]) .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:first-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:last-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid var(--rg-theme-header-border)}revo-grid:is([theme=default],[theme=dark]) .rowHeaders revogr-data revogr-header,revo-grid:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinEnd,revo-grid:is([theme=default],[theme=dark]) revogr-viewport-scroll.colPinEnd revogr-header,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 var(--rg-theme-header-border) inset}revo-grid:is([theme=default],[theme=dark]) .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset, 0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid:is([theme=default],[theme=dark]) revogr-data,revo-grid:not([theme]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=default],[theme=dark]) revogr-data .revo-draggable,revo-grid:not([theme]) revogr-data .revo-draggable{float:left}revo-grid:is([theme=default],[theme=dark]) revogr-data .rgRow,revo-grid:not([theme]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 27px)}revo-grid:is([theme=default],[theme=dark]) revogr-data .rgCell,revo-grid:not([theme]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset}revo-grid:is([theme=material],[theme=darkMaterial]),revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]){--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 50px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header .rgHeaderCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell{padding:var(--rg-theme-header-padding);text-overflow:ellipsis}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-header .header-rgRow,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid:is([theme=material],[theme=darkMaterial]) .rowHeaders,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=material],[theme=darkMaterial]) .rowHeaders revogr-data .rgCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data .rgRow,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 42px)}revo-grid:is([theme=material],[theme=darkMaterial]) revogr-data .rgCell,revo-grid[theme]:not([theme=default],[theme=dark],[theme=compact],[theme=darkCompact]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid:is([theme=compact],[theme=darkCompact]){--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 45px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header .rgHeaderCell{padding:var(--rg-theme-header-padding);text-overflow:ellipsis}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid:is([theme=compact],[theme=darkCompact]) .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid:is([theme=compact],[theme=darkCompact]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data .rgRow{line-height:var(--rg-theme-row-size, 32px)}revo-grid:is([theme=compact],[theme=darkCompact]) revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid:is([theme=compact],[theme=darkCompact]) revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid[dir=rtl] .viewports{flex-direction:row-reverse}revo-grid[dir=rtl] revogr-header .rgHeaderCell{text-align:right}revo-grid[dir=rtl] revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] .rowHeaders revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] revogr-filter-panel{direction:rtl}revo-grid[dir=rtl] revo-dropdown .rv-dr-root{text-align:right}revo-grid[dir=rtl] .drag-position{right:0;left:auto}revo-grid[dir=rtl] .drag-auto-scroll-y{right:0;left:auto}revo-grid[dir=rtl] .clipboard{right:0;left:auto}revo-grid[dir=rtl] .draggable{margin-left:-20px;margin-right:0;padding-right:20px;padding-left:5px}revo-grid[dir=rtl] .draggable .revo-alt-icon{right:5px;left:auto}revo-grid[dir=rtl] .focused-cell{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .selection-range{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .resize-handle{right:0;left:auto}revo-grid[dir=rtl] .sort-indicator{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .filter-button{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .group-expand{margin-right:0;margin-left:2px;padding-right:5px;padding-left:0}revo-grid[dir=rtl] .rgCell,revo-grid[dir=rtl] .rgHeaderCell{padding-left:5px;padding-right:5px}revo-grid[dir=rtl] revogr-edit{direction:rtl}revo-grid[dir=rtl] .rgHeaderCell{direction:rtl}revo-grid[dir=rtl] revogr-header,revo-grid[dir=rtl] revogr-data{text-align:right}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders,revo-grid[dir=rtl]:not([theme]) .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:first-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, 1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data .rgCell:last-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-left:1px solid var(--rg-theme-header-border);border-right:none}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) .rowHeaders revogr-data revogr-header,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) revogr-header,revo-grid[dir=rtl]:not([theme]) revogr-header{text-align:right}revo-grid[dir=rtl]:is([theme=default],[theme=dark]) revogr-data,revo-grid[dir=rtl]:not([theme]) revogr-data{text-align:right}.revo-drag-icon{width:11px;opacity:0.8}.revo-drag-icon::before{content:\"::\";display:inline-block}.revo-alt-icon{-webkit-mask-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]){background-color:transparent}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) revogr-header,revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) .rowHeaders{background-color:transparent;color:inherit}revo-grid[theme]:is([theme=compact],[theme=darkCompact],[theme=material],[theme=darkMaterial]) .rowHeaders revogr-data .rgCell{color:inherit}revo-grid{--rg-theme-primary:var(--revo-grid-primary, #266ae8);--rg-theme-primary-transparent:var( --revo-grid-primary-transparent, rgba(38, 106, 232, 0.9) );--rg-theme-background:var(--revo-grid-background, #fff);--rg-theme-foreground:var(--revo-grid-foreground, black);--rg-theme-divider:var(--revo-grid-divider, gray);--rg-theme-shadow:var(--revo-grid-shadow, rgba(0, 0, 0, 0.15));--rg-theme-text:var(--revo-grid-text, black);--rg-theme-border:var(--revo-grid-border, rgba(0, 0, 0, 0.2));--rg-theme-header-bg:var(--revo-grid-header-bg, #f8f9fa);--rg-theme-header-color:var(--revo-grid-header-color, #000);--rg-theme-header-border:var(--revo-grid-header-border, #cecece);--rg-theme-header-focused-bg:var( --revo-grid-header-focused-bg, var(--rg-theme-focused-bg) );--rg-theme-header-hover-bg:var( --revo-grid-header-hover-bg, var(--rg-theme-row-hover) );--rg-theme-cell-border:var(--revo-grid-cell-border, #e2e3e3);--rg-theme-cell-vertical-border:var( --revo-grid-cell-vertical-border, transparent );--rg-theme-focused-bg:var(--revo-grid-focused-bg, rgba(233, 234, 237, 0.5));--rg-theme-row-hover:var(--revo-grid-row-hover, #f1f1f1);--rg-theme-row-headers-bg:var( --revo-grid-row-headers-bg, var(--rg-theme-header-bg) );--rg-theme-row-headers-color:var( --revo-grid-row-headers-color, var(--rg-theme-header-color) );--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(0, 0, 0, 0.07) );--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #fff);--rg-theme-filter-panel-border:var(--revo-grid-filter-panel-border, #d9d9d9);--rg-theme-filter-panel-shadow:var( --revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15) );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #eaeaeb );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #d9d9d9 );--rg-theme-filter-panel-select-border:var( --revo-grid-filter-panel-select-border, transparent );--rg-theme-filter-panel-select-border-hover:var( --revo-grid-filter-panel-select-border-hover, transparent );--rg-theme-filter-panel-reorder-accent:var( --revo-grid-filter-panel-reorder-accent, #007cb2 );--rg-theme-filter-panel-reorder-color:var( --revo-grid-filter-panel-reorder-color, #6b7280 );--rg-theme-filter-panel-text:var( --revo-grid-filter-panel-text, var(--rg-theme-text) );--rg-theme-filter-panel-muted-text:var( --revo-grid-filter-panel-muted-text, gray );--rg-theme-filter-panel-focus-ring:var( --revo-grid-filter-panel-focus-ring, 0 0 1px 3px rgba(59, 153, 252, 0.7) );--rg-theme-filter-panel-icon:var(--revo-grid-filter-panel-icon, gray);--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #10224a );--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 14px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, center);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0);--rg-theme-selection-border:var(--revo-grid-selection-border, #0d63e8);--rg-theme-selection-bg:var(--revo-grid-selection-bg, transparent);--rg-theme-autofill-handle-bg:var( --revo-grid-autofill-handle-bg, var(--rg-theme-selection-border) );--rg-theme-autofill-handle-border:var( --revo-grid-autofill-handle-border, white );--rg-theme-range-handle-bg:var( --revo-grid-range-handle-bg, rgba(0, 0, 0, 0.2) );--rg-theme-temporary-range-border:var( --revo-grid-temporary-range-border, rgb(255, 94, 0) );--rg-theme-temporary-selection-border:var( --revo-grid-temporary-selection-border, gray );--rg-theme-header-resize-hover:var( --revo-grid-header-resize-hover, deepskyblue );--rg-theme-button-text:var(--revo-grid-button-text, #fff);--rg-theme-button-bg:var(--revo-grid-button-bg, #4545ff);--rg-theme-button-success-bg:var(--revo-grid-button-success-bg, #009037);--rg-theme-button-danger-bg:var(--revo-grid-button-danger-bg, #e0662e);--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #dbdbdb );--rg-theme-button-outline-text:var(--revo-grid-button-outline-text, #000)}revo-grid[data-rg-theme-scheme=dark]{color-scheme:dark;--rg-theme-background:var(--revo-grid-background, #212529);--rg-theme-foreground:var(--revo-grid-foreground, #fff);--rg-theme-text:var(--revo-grid-text, rgba(255, 255, 255, 0.9));--rg-theme-divider:var(--revo-grid-divider, #505050);--rg-theme-border:var( --revo-grid-border, rgba(255, 255, 255, 0.2) );--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #212529);--rg-theme-filter-panel-border:var( --revo-grid-filter-panel-border, #505050 );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #343a40 );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #505050 );--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #fff );--rg-theme-header-bg:var(--revo-grid-header-bg, #343a40);--rg-theme-header-color:var(--revo-grid-header-color, #fff);--rg-theme-header-border:var(--revo-grid-header-border, #505050);--rg-theme-cell-border:var(--revo-grid-cell-border, #424242);--rg-theme-focused-bg:var( --revo-grid-focused-bg, rgba(52, 58, 64, 0.5) );--rg-theme-row-hover:var( --revo-grid-row-hover, rgba(80, 80, 80, 0.5) );--rg-theme-row-headers-bg:var( --revo-grid-row-headers-bg, rgba(52, 58, 64, 0.8) );--rg-theme-row-headers-color:var( --revo-grid-row-headers-color, rgba(255, 255, 255, 0.8) );--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(255, 255, 255, 0.07) );--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #404040 );--rg-theme-button-outline-text:var( --revo-grid-button-outline-text, #d8d8d8 )}revo-grid[data-rg-theme-scheme=light]{color-scheme:light}revo-grid{}revo-grid>*{--revo-grid-primary:var(--rg-theme-primary);--revo-grid-primary-transparent:var(--rg-theme-primary-transparent);--revo-grid-background:var(--rg-theme-background);--revo-grid-foreground:var(--rg-theme-foreground);--revo-grid-divider:var(--rg-theme-divider);--revo-grid-shadow:var(--rg-theme-shadow);--revo-grid-text:var(--rg-theme-text);--revo-grid-border:var(--rg-theme-border);--revo-grid-header-bg:var(--rg-theme-header-bg);--revo-grid-header-color:var(--rg-theme-header-color);--revo-grid-header-border:var(--rg-theme-header-border);--revo-grid-header-focused-bg:var(--rg-theme-header-focused-bg);--revo-grid-header-hover-bg:var(--rg-theme-header-hover-bg);--revo-grid-cell-border:var(--rg-theme-cell-border);--revo-grid-cell-vertical-border:var(--rg-theme-cell-vertical-border);--revo-grid-focused-bg:var(--rg-theme-focused-bg);--revo-grid-row-hover:var(--rg-theme-row-hover);--revo-grid-row-headers-bg:var(--rg-theme-row-headers-bg);--revo-grid-row-headers-color:var(--rg-theme-row-headers-color);--revo-grid-cell-disabled-bg:var(--rg-theme-cell-disabled-bg);--revo-grid-filter-panel-bg:var(--rg-theme-filter-panel-bg);--revo-grid-filter-panel-border:var(--rg-theme-filter-panel-border);--revo-grid-filter-panel-shadow:var(--rg-theme-filter-panel-shadow);--revo-grid-filter-panel-input-bg:var(--rg-theme-filter-panel-input-bg);--revo-grid-filter-panel-divider:var(--rg-theme-filter-panel-divider);--revo-grid-filter-panel-select-border:var(--rg-theme-filter-panel-select-border);--revo-grid-filter-panel-select-border-hover:var(--rg-theme-filter-panel-select-border-hover);--revo-grid-filter-panel-reorder-accent:var(--rg-theme-filter-panel-reorder-accent);--revo-grid-filter-panel-reorder-color:var(--rg-theme-filter-panel-reorder-color);--revo-grid-filter-panel-text:var(--rg-theme-filter-panel-text);--revo-grid-filter-panel-muted-text:var(--rg-theme-filter-panel-muted-text);--revo-grid-filter-panel-focus-ring:var(--rg-theme-filter-panel-focus-ring);--revo-grid-filter-panel-icon:var(--rg-theme-filter-panel-icon);--revo-grid-filter-panel-icon-active:var(--rg-theme-filter-panel-icon-active);--revo-grid-font-family:var(--rg-theme-font-family);--revo-grid-font-size:var(--rg-theme-font-size);--revo-grid-header-height:var(--rg-theme-header-height);--revo-grid-header-font-size:var(--rg-theme-header-font-size);--revo-grid-header-font-weight:var(--rg-theme-header-font-weight);--revo-grid-header-text-transform:var(--rg-theme-header-text-transform);--revo-grid-header-text-align:var(--rg-theme-header-text-align);--revo-grid-cell-text-align:var(--rg-theme-cell-text-align);--revo-grid-header-padding:var(--rg-theme-header-padding);--revo-grid-cell-padding:var(--rg-theme-cell-padding);--revo-grid-selection-border:var(--rg-theme-selection-border);--revo-grid-selection-bg:var(--rg-theme-selection-bg);--revo-grid-autofill-handle-bg:var(--rg-theme-autofill-handle-bg);--revo-grid-autofill-handle-border:var(--rg-theme-autofill-handle-border);--revo-grid-range-handle-bg:var(--rg-theme-range-handle-bg);--revo-grid-temporary-range-border:var(--rg-theme-temporary-range-border);--revo-grid-temporary-selection-border:var(--rg-theme-temporary-selection-border);--revo-grid-header-resize-hover:var(--rg-theme-header-resize-hover);--revo-grid-button-text:var(--rg-theme-button-text);--revo-grid-button-bg:var(--rg-theme-button-bg);--revo-grid-button-success-bg:var(--rg-theme-button-success-bg);--revo-grid-button-danger-bg:var(--rg-theme-button-danger-bg);--revo-grid-button-outline-border:var(--rg-theme-button-outline-border);--revo-grid-button-outline-text:var(--rg-theme-button-outline-text)}revo-grid{direction:ltr !important}revo-grid revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .rgHeaderCell.sortable:hover{background-color:var(--rg-theme-header-hover-bg)}revo-grid revogr-header .rgHeaderCell.focused-cell{background:var(--rg-theme-header-focused-bg)}revo-grid .footer-wrapper revogr-data{box-shadow:0 -1px 0 var(--rg-theme-cell-border)}revo-grid revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 var(--rg-theme-cell-border)}revo-grid revogr-data .rgRow{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-data .rgRow.focused-rgRow{background-color:var(--rg-theme-focused-bg)}revo-grid revogr-data .rgCell{color:var(--rg-theme-text)}revo-grid revogr-data .rgCell.disabled{background-color:var(--rg-theme-cell-disabled-bg)}revo-grid{display:flex !important;height:100%;min-height:300px;background-color:var(--rg-theme-background);font-family:var(--rg-theme-font-family);font-size:var(--rg-theme-font-size);position:relative;color:var(--rg-theme-text);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}revo-grid .attribution{position:absolute;bottom:0;left:0;right:0;z-index:1000;width:0;height:0;border-left:4px solid var(--rg-theme-primary-transparent);border-bottom:4px solid var(--rg-theme-primary-transparent);border-top:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;bottom:0;left:0;background-color:var(--rg-theme-background);padding:4px;border-radius:4px;box-shadow:0 1px 10px var(--rg-theme-border);white-space:nowrap;text-decoration:none;color:var(--rg-theme-text);letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid{display:flex;flex-direction:column;width:100%;height:100%}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:var(--rg-theme-background);border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 var(--rg-theme-shadow);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:var(--rg-theme-foreground);position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}"}},[260,"revo-grid",{rowHeaders:[4,"row-headers"],frameSize:[2,"frame-size"],rowSize:[2,"row-size"],colSize:[2,"col-size"],range:[4],readonly:[4],resize:[4],resizeRow:[4,"resize-row"],noHorizontalScrollTransfer:[4,"no-horizontal-scroll-transfer"],canFocus:[4,"can-focus"],useClipboard:[4,"use-clipboard"],columns:[16],source:[16],pinnedTopSource:[16],pinnedBottomSource:[16],rowDefinitions:[16],editors:[16],applyOnClose:[4,"apply-on-close"],plugins:[16],columnTypes:[16],theme:[1537],themeDefinitions:[16],rowClass:[513,"row-class"],autoSizeColumn:[4,"auto-size-column"],filter:[4],sorting:[16],focusTemplate:[16],canMoveColumns:[4,"can-move-columns"],trimmedRows:[16],exporting:[4],grouping:[16],stretch:[8],additionalData:[16],disableVirtualX:[4,"disable-virtual-x"],virtualX:[16],disableVirtualY:[4,"disable-virtual-y"],hideAttribution:[4,"hide-attribution"],jobsBeforeRender:[16],registerVNode:[16],accessible:[4],rtl:[4],canDrag:[4,"can-drag"],refresh:[64],setDataAt:[64],scrollToRow:[64],scrollToColumnIndex:[64],scrollToColumnProp:[64],updateColumns:[64],addTrimmed:[64],scrollToCoordinate:[64],setCellEdit:[64],setCellsFocus:[64],getSource:[64],getVisibleSource:[64],getSourceStore:[64],getColumnStore:[64],updateColumnSorting:[64],clearSorting:[64],getColumns:[64],clearFocus:[64],getPlugins:[64],getFocused:[64],getContentSize:[64],getSelectedRange:[64],refreshExtraElements:[64],getProviders:[64]},[[5,"touchstart","mousedownHandle"],[5,"mousedown","mousedownHandle"],[5,"touchend","mouseupHandle"],[5,"mouseup","mouseupHandle"],[0,"rowdragstartinit","onRowDragStarted"],[0,"rowdragendinit","onRowDragEnd"],[0,"roworderchange","onRowOrderChange"],[0,"rowdragmoveinit","onRowDrag"],[0,"rowdragmousemove","onRowMouseMove"],[0,"celleditapply","onCellEdit"],[0,"rangeeditapply","onRangeEdit"],[0,"selectionchangeinit","onRangeChanged"],[0,"rowdropinit","onRowDropped"],[0,"beforeheaderclick","onHeaderClick"],[0,"beforecellfocusinit","onCellFocus"]],{columnTypes:[{columnTypesChanged:0}],columns:[{columnChanged:0}],disableVirtualX:[{disableVirtualXChanged:0}],virtualX:[{virtualXChanged:0}],rowSize:[{rowSizeChanged:0}],colSize:[{colSizeChanged:0}],theme:[{themeChanged:0}],themeDefinitions:[{themeDefinitionsChanged:0}],source:[{dataSourceChanged:0}],pinnedBottomSource:[{dataSourceChanged:0}],pinnedTopSource:[{dataSourceChanged:0}],disableVirtualY:[{disableVirtualYChanged:0}],rowDefinitions:[{rowDefChanged:0}],trimmedRows:[{trimmedRowsChanged:0}],grouping:[{groupingChanged:0}],stretch:[{applyStretch:0}],filter:[{applyFilter:0}],sorting:[{applySorting:0}],rowHeaders:[{rowHeadersChange:0}],resizeRow:[{resizeRowChanged:0}],registerVNode:[{registerOutsideVNodes:0}],additionalData:[{additionalDataChanged:0}],rtl:[{rtlChanged:0}],plugins:[{pluginsChanged:0}]}]),Mr=Lr,Dr=function(){"undefined"!=typeof customElements&&["revo-grid","revogr-attribution","revogr-clipboard","revogr-data","revogr-edit","revogr-extra","revogr-focus","revogr-header","revogr-order-editor","revogr-overlay-selection","revogr-row-headers","revogr-scroll-virtual","revogr-temp-range","revogr-viewport-scroll","vnode-html"].forEach((e=>{switch(e){case"revo-grid":customElements.get(s(e))||customElements.define(s(e),Lr);break;case"revogr-attribution":customElements.get(s(e))||ye();break;case"revogr-clipboard":customElements.get(s(e))||Ce();break;case"revogr-data":customElements.get(s(e))||Se();break;case"revogr-edit":customElements.get(s(e))||ke();break;case"revogr-extra":customElements.get(s(e))||je();break;case"revogr-focus":customElements.get(s(e))||Oe();break;case"revogr-header":customElements.get(s(e))||we();break;case"revogr-order-editor":customElements.get(s(e))||ze();break;case"revogr-overlay-selection":customElements.get(s(e))||Re();break;case"revogr-row-headers":customElements.get(s(e))||ne();break;case"revogr-scroll-virtual":customElements.get(s(e))||Ee();break;case"revogr-temp-range":customElements.get(s(e))||Pe();break;case"revogr-viewport-scroll":customElements.get(s(e))||fe();break;case"vnode-html":customElements.get(s(e))||He()}}))};export{$e as A,Be as B,Ve as C,Ie as D,Je as E,vt as F,It as G,or as H,sr as I,Gt as J,Jt as K,Kt as L,Zt as M,Qt as N,_t as O,Pt as P,wt as Q,er as R,Mr as RevoGrid,Fe as S,yt as T,jt as U,Ot as V,zt as W,Rt as X,Et as Y,Xe as a,Ge as b,ut as c,Le as d,Dr as defineCustomElement,mt as e,ft as f,dt as g,ct as h,qe as i,gt as j,rt as k,st as l,Ht as m,Tt as n,At as o,Vt as p,$t as q,ot as r,Xt as s,Te as t,qt as u,Ut as v,Yt as w,tr as x,rr as y,ir as z}