@revolist/revogrid 4.26.2 → 4.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/cjs/{cell-renderer-Cf2Pu4S0.js → cell-renderer-C7rdgaov.js} +3 -3
  2. package/dist/cjs/{column.service-C7p5eC5V.js → column.service-Bbml5C2j.js} +3 -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-BljFI6wj.js} +1 -1
  6. package/dist/cjs/{index--FdNLz1Z.js → index-BVESmpqW.js} +1 -1
  7. package/dist/cjs/index.cjs.js +71 -55
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/revo-grid.cjs.entry.js +74 -49
  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-BRQy_qNn.js} +573 -19
  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 +44 -10
  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.row.plugin.js +9 -2
  33. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +1 -1
  34. package/dist/collection/plugins/groupingRow/grouping.service.js +1 -1
  35. package/dist/collection/plugins/index.js +1 -0
  36. package/dist/collection/plugins/row-resize/index.js +6 -0
  37. package/dist/collection/plugins/row-resize/row-resize.plugin.js +385 -0
  38. package/dist/collection/plugins/row-resize/row-resize.types.js +1 -0
  39. package/dist/collection/plugins/row-resize/row-resize.utils.js +55 -0
  40. package/dist/collection/serve/controller.js +1 -1
  41. package/dist/collection/services/data.provider.js +8 -2
  42. package/dist/collection/services/local.scroll.timer.js +3 -3
  43. package/dist/collection/services/selection.store.connector.js +4 -2
  44. package/dist/collection/store/dataSource/data.pending.plugin.js +21 -0
  45. package/dist/collection/store/dataSource/data.store.js +25 -3
  46. package/dist/collection/store/dataSource/trimmed.plugin.js +9 -6
  47. package/dist/collection/store/dimension/dimension.trim.plugin.js +1 -3
  48. package/dist/collection/types/events.js +4 -1
  49. package/dist/collection/utils/column.utils.js +1 -1
  50. package/dist/esm/{cell-renderer-11cf-lu3.js → cell-renderer-BFpmdV8H.js} +3 -3
  51. package/dist/esm/{column.service-Cfw3L0PN.js → column.service-CM-wgGs8.js} +3 -3
  52. package/dist/{revo-grid/dimension.helpers-fl4HSSK9.js → esm/dimension.helpers-Cln9sALu.js} +52 -9
  53. package/dist/{revo-grid/edit.utils-4e9fsqOR.js → esm/edit.utils-3ZbhQCv_.js} +1 -1
  54. package/dist/esm/{header-cell-renderer-Cqtg1ETB.js → header-cell-renderer-Bqh1PrgH.js} +1 -1
  55. package/dist/esm/{index-D24ku9ej.js → index-BvMNbQyq.js} +1 -1
  56. package/dist/esm/index.js +14 -11
  57. package/dist/esm/loader.js +1 -1
  58. package/dist/esm/revo-grid.entry.js +56 -31
  59. package/dist/esm/revo-grid.js +1 -1
  60. package/dist/esm/revogr-attribution_7.entry.js +51 -19
  61. package/dist/esm/revogr-clipboard_3.entry.js +4 -4
  62. package/dist/esm/revogr-data_4.entry.js +21 -15
  63. package/dist/esm/revogr-filter-panel.entry.js +9 -9
  64. package/dist/esm/{column.drag.plugin-DDBKeTGI.js → row-resize.plugin-BRiaHlHA.js} +562 -20
  65. package/dist/{revo-grid/text-editor-DlMnLkRK.js → esm/text-editor-eHtrwvxH.js} +2 -2
  66. package/dist/{revo-grid/throttle-Cpk1LoGk.js → esm/throttle-3rhqdcLy.js} +3 -3
  67. package/dist/{revo-grid/viewport.store-BSXmsiZc.js → esm/viewport.store-DWMKRDSH.js} +1 -1
  68. package/dist/revo-grid/{cell-renderer-11cf-lu3.js → cell-renderer-BFpmdV8H.js} +3 -3
  69. package/dist/revo-grid/{column.service-Cfw3L0PN.js → column.service-CM-wgGs8.js} +3 -3
  70. package/dist/{esm/dimension.helpers-fl4HSSK9.js → revo-grid/dimension.helpers-Cln9sALu.js} +52 -9
  71. package/dist/{esm/edit.utils-4e9fsqOR.js → revo-grid/edit.utils-3ZbhQCv_.js} +1 -1
  72. package/dist/revo-grid/{header-cell-renderer-Cqtg1ETB.js → header-cell-renderer-Bqh1PrgH.js} +1 -1
  73. package/dist/revo-grid/{index-D24ku9ej.js → index-BvMNbQyq.js} +1 -1
  74. package/dist/revo-grid/index.esm.js +14 -11
  75. package/dist/revo-grid/revo-grid.entry.js +56 -31
  76. package/dist/revo-grid/revo-grid.esm.js +1 -1
  77. package/dist/revo-grid/revogr-attribution_7.entry.js +51 -19
  78. package/dist/revo-grid/revogr-clipboard_3.entry.js +4 -4
  79. package/dist/revo-grid/revogr-data_4.entry.js +21 -15
  80. package/dist/revo-grid/revogr-filter-panel.entry.js +9 -9
  81. package/dist/revo-grid/{column.drag.plugin-DDBKeTGI.js → row-resize.plugin-BRiaHlHA.js} +562 -20
  82. package/dist/{esm/text-editor-DlMnLkRK.js → revo-grid/text-editor-eHtrwvxH.js} +2 -2
  83. package/dist/{esm/throttle-Cpk1LoGk.js → revo-grid/throttle-3rhqdcLy.js} +3 -3
  84. package/dist/{esm/viewport.store-BSXmsiZc.js → revo-grid/viewport.store-DWMKRDSH.js} +1 -1
  85. package/dist/types/components/data/revogr-data.d.ts +1 -0
  86. package/dist/types/components/overlay/keyboard.service.d.ts +6 -0
  87. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +3 -1
  88. package/dist/types/components/revoGrid/revo-grid.d.ts +7 -1
  89. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +3 -1
  90. package/dist/types/components.d.ts +23 -10
  91. package/dist/types/plugins/filter/filter.constants.d.ts +6 -0
  92. package/dist/types/plugins/filter/filter.plugin.d.ts +15 -0
  93. package/dist/types/plugins/index.d.ts +1 -0
  94. package/dist/types/plugins/row-resize/index.d.ts +3 -0
  95. package/dist/types/plugins/row-resize/row-resize.plugin.d.ts +44 -0
  96. package/dist/types/plugins/row-resize/row-resize.types.d.ts +40 -0
  97. package/dist/types/plugins/row-resize/row-resize.utils.d.ts +14 -0
  98. package/dist/types/services/data.provider.d.ts +2 -0
  99. package/dist/types/store/dataSource/data.pending.plugin.d.ts +9 -0
  100. package/dist/types/store/dataSource/data.store.d.ts +10 -0
  101. package/dist/types/store/dataSource/trimmed.plugin.d.ts +5 -0
  102. package/dist/types/types/events.d.ts +1 -1
  103. package/dist/types/types/interfaces.d.ts +3 -1
  104. package/hydrate/index.js +734 -85
  105. package/hydrate/index.mjs +734 -85
  106. package/package.json +1 -1
  107. package/readme.md +4 -1
  108. package/standalone/column.service.js +1 -1
  109. package/standalone/data.store.js +1 -1
  110. package/standalone/dimension.helpers.js +1 -1
  111. package/standalone/index.js +1 -1
  112. package/standalone/local.scroll.timer.js +1 -1
  113. package/standalone/revo-grid.js +1 -1
  114. package/standalone/revogr-data2.js +1 -1
  115. package/standalone/revogr-filter-panel.js +1 -1
  116. package/standalone/revogr-header2.js +1 -1
  117. package/standalone/revogr-overlay-selection2.js +1 -1
  118. 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,Build as t,proxyCustomElement as o,HTMLElement as r,createEvent as n,Host as i,transformTag as s}from"@stencil/core/internal/client";import{A as a,v as l,l as d,m as c,j as h,h as p,G as g,P as u,O as v,B as m,M as C,u as w}from"./column.service.js";import{a as L,D as x,C as f,h as b,g as y,l as E}from"./consts.js";import{b as j}from"./data.store.js";import"./platform.js";import{d as R}from"./vnode-converter.js";const O=(t,o)=>{var{rowClass:r,index:n,size:i,start:s,depth:a,groupingLevel:l}=t,d=function(e,t){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(o[r[n]]=e[r[n]])}return o}(t,["rowClass","index","size","start","depth","groupingLevel"]);const c=Object.assign(Object.assign(Object.assign({},d),{[L]:n}),"number"==typeof l?{"data-level":l}:{});return e("div",Object.assign({},c,{class:`rgRow ${r||""}`,style:{height:`${i}px`,transform:`translateY(${s}px)`,paddingLeft:a?10*a+"px":void 0}}),o)};function k(e,t,o){var r;const n=new CustomEvent(c,{detail:{model:t,virtualIndex:o},cancelable:!0,bubbles:!0});null===(r=e.target)||void 0===r||r.dispatchEvent(n)}function D(t,{name:o,expanded:r,depth:n}){const{additionalData:i,columnItems:s,groupingCellRenderer:d,hasExpand:c,itemIndex:p,model:g,providers:u,size:v,start:m,end:C}=t;if(!d)return[];const w=u.viewport.get("renderOffset")||0,b=u.data.get("source"),y={itemIndex:p,size:v,start:m,end:C},E=e=>k(e,g,p);return s.map((t=>{const s=j(u.columns,t.itemIndex);if(!s)return null;const m=l(s),C={prop:s.prop,model:g,data:b,column:s,rowIndex:p,colIndex:t.itemIndex,colType:u.colType,type:u.type,value:a(g,s),providers:u,columnItem:t,rowItem:y,group:{name:o,depth:n,expanded:r,prop:g[h],isLabelColumn:m,canExpand:c,onExpand:E}};return e("div",{key:t.itemIndex,class:{[f]:!0,groupingCell:!0,groupingLabelCell:m},[x]:t.itemIndex,[L]:p,style:{width:`${t.size}px`,transform:`translateX(${t.start-w}px)`,height:v?`${v}px`:void 0}},d(e,C,i))}))}const z=t=>{const{model:o,itemIndex:r,hasExpand:n,groupingCustomRenderer:i,groupingCellRenderer:s}=t,a=o[u],l=o[p],c=parseInt(o[g],10)||0,h={rowClass:"groupingRow",depth:c,expanded:l};return s?e(O,Object.assign({index:t.index,size:t.size,start:t.start},h),D(t,{name:a,expanded:l,depth:c})):e(O,Object.assign({},t,h),i?e("div",{onClick:e=>k(e,o,r)},i(e,Object.assign(Object.assign({},t),{colType:t.providers.colType,name:a,expanded:l,depth:c}))):n&&[e("button",{class:{[d]:!0},onClick:e=>k(e,o,r)},T(l)),String(a)])},T=(t=!1)=>e("svg",{"aria-hidden":"true",style:{transform:`rotate(${t?0:-90}deg)`},focusable:"false",viewBox:"0 0 448 512"},e("path",{fill:"currentColor",d:"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"}));function I(o){var r;const n=[],i=null===(r=o.schemaModel.column)||void 0===r?void 0:r.cellTemplate;if(i)n.push(i(e,o.schemaModel,o.additionalData));else{if(!o.schemaModel.column)return(null==t?void 0:t.isDev)&&console.error("Investigate column problem.",o.schemaModel),"";o.schemaModel.column.rowDrag&&v(o.schemaModel.column.rowDrag,o.schemaModel)&&n.push(e("span",{class:b,onMouseDown:e=>{var t;return null===(t=o.dragStartCell)||void 0===t?void 0:t.emit({originalEvent:e,model:o.schemaModel})}},e("span",{class:y}))),n.push(`${m(o.schemaModel.model,o.schemaModel.column)}`)}return n}const M=({renderProps:t,cellProps:o})=>{const r=I.bind(null,t);return e("div",Object.assign({},o,{redraw:r}),r())};class ${constructor(){this.currentRange=null}selectionChange(e,t){if(this.currentRange&&t.forEach(((t,o)=>{var r;e&&o>=e.y&&o<=e.y1||t&&t.t instanceof HTMLElement&&t.t.classList.contains(E)&&(t.t.classList.remove(E),(null===(r=t.o)||void 0===r?void 0:r.class.includes(E))&&(t.o.class=t.o.class.replace(E,"")))})),e)for(let o=e.y;o<=e.y1;o++){const e=t.get(o);if(e&&e.t instanceof HTMLElement&&!e.t.classList.contains(E)){const t=e.o=e.o||{};t.class=(t.class||"")+" "+E,e.t.classList.add(E)}}this.currentRange=e}isRowFocused(e){return this.currentRange&&e>=this.currentRange.y&&e<=this.currentRange.y1}}const S=o(class extends r{constructor(e){super(),!1!==e&&this.__registerHost(),this.beforerowrender=n(this,"beforerowrender",7),this.afterrender=n(this,"afterrender",7),this.beforeCellRender=n(this,"beforecellrender",7),this.beforeDataRender=n(this,"beforedatarender",7),this.dragStartCell=n(this,"dragstartcell",7),this.jobsBeforeRender=[],this.renderedRows=new Map}async updateCell(e){var t,o,r;const n=null===(o=null===(t=this.renderedRows.get(e.row))||void 0===t?void 0:t.i)||void 0===o?void 0:o[e.col];if(null===(r=null==n?void 0:n.o)||void 0===r?void 0:r.redraw){const e=await(i=this.element,s=n.o.redraw,new Promise((e=>{const t=document.createElement("vnode-html");i.appendChild(t),t.redraw=s,t.addEventListener("html",(o=>{t.remove(),e(o.detail)}))})));n.t.innerHTML=e.html,n.l=Math.random()}var i,s}onDataStoreChange(){this.onStoreChange()}onColDataChange(){this.onStoreChange()}onStoreChange(){var e,t;null===(e=this.columnService)||void 0===e||e.destroy(),this.columnService=new C(this.dataStore,this.colData),this.providers={type:this.type,colType:this.colType,readonly:this.readonly,data:this.dataStore,columns:this.colData,viewport:this.viewportCol,dimension:this.dimensionRow,selection:this.rowSelectionStore},null===(t=this.rangeUnsubscribe)||void 0===t||t.call(this),this.rangeUnsubscribe=this.rowSelectionStore.onChange("range",(e=>this.rowHighlightPlugin.selectionChange(e,this.renderedRows)))}connectedCallback(){this.rowHighlightPlugin=new $,this.onStoreChange()}disconnectedCallback(){var e,t;null===(e=this.columnService)||void 0===e||e.destroy(),null===(t=this.rangeUnsubscribe)||void 0===t||t.call(this)}async componentWillRender(){return this.beforeDataRender.emit({rowType:this.type,colType:this.colType}),Promise.all(this.jobsBeforeRender.map((e=>"function"==typeof e?e():e)))}componentDidRender(){this.afterrender.emit({type:this.type})}render(){if(this.renderedRows=new Map,!this.columnService.columns.length)return;const t=this.viewportRow.get("items");if(!t.length)return;const o=this.viewportCol.get("items");if(!o.length)return;const r=[],n=this.dataStore.get("groupingDepth"),s=this.dataStore.get("groupingCustomRenderer"),a=this.dataStore.get("groupingCellRenderer"),l=this.columnService.hasGrouping?n:0,d=this.viewportRow.get("renderOffset")||0,c=this.viewportCol.get("renderOffset")||0;for(let n of t){const t=j(this.dataStore,n.itemIndex);if(w(t)){const i=Object.assign(Object.assign({},n),{start:n.start-d,index:n.itemIndex,model:t,groupingCustomRenderer:s,groupingCellRenderer:a,additionalData:this.additionalData,hasExpand:this.columnService.hasGrouping&&"rowHeaders"!==this.colType,columnItems:o,providers:this.providers});r.push(e(z,Object.assign({},i)));continue}const i=[];for(let t of o){const o=Object.assign(Object.assign({},this.columnService.rowDataModel(n.itemIndex,t.itemIndex)),{providers:this.providers}),r=this.triggerBeforeCellRender(o,n,t);if(r.defaultPrevented)continue;const{detail:{column:s,row:a,model:d}}=r,h={[x]:s.itemIndex,[L]:a.itemIndex,style:{width:`${s.size}px`,transform:`translateX(${s.start-c}px)`,height:a.size?`${a.size}px`:void 0}};l&&!s.itemIndex&&h.style&&(h.style.paddingLeft=10*l+"px");const p=this.columnService.mergeProperties(a.itemIndex,s.itemIndex,h,d),g=e(M,{renderProps:{schemaModel:d,additionalData:this.additionalData,dragStartCell:this.dragStartCell},cellProps:p});i.push(g)}let h=this.rowClass?this.columnService.getRowClass(n.itemIndex,this.rowClass):"";this.rowHighlightPlugin.isRowFocused(n.itemIndex)&&(h+=` ${E}`);const p=e(O,{index:n.itemIndex,rowClass:h,size:n.size,start:n.start-d,groupingLevel:l||void 0},i);this.beforerowrender.emit({node:p,item:n,model:t,colType:this.columnService.type,rowType:this.type}),r.push(p),this.renderedRows.set(n.itemIndex,p)}return e(i,null,e("slot",null),r)}triggerBeforeCellRender(e,t,o){return this.beforeCellRender.emit({column:o,row:t,model:e,rowType:e.type,colType:e.colType})}get element(){return this}static get watchers(){return{dataStore:[{onDataStoreChange:0}],colData:[{onColDataChange:0}]}}static get style(){return".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}revogr-data{display:block;width:100%;position:relative}revogr-data .rgRow{position:absolute;width:100%;left:0}revogr-data .rgRow.groupingRow{font-weight:600;text-align:left}revogr-data .rgRow.groupingRow .group-expand{width:25px;height:100%;max-height:25px;margin-right:2px;background-color:transparent;border-color:transparent;vertical-align:middle;padding-left:5px;display:inline-flex}revogr-data .rgRow.groupingRow .group-expand svg{width:7px}revogr-data .revo-draggable{border:none;height:32px;display:inline-flex;outline:0;padding:0;font-size:0.8125rem;box-sizing:border-box;align-items:center;white-space:nowrap;vertical-align:middle;justify-content:center;text-decoration:none;width:24px;height:100%;cursor:pointer;display:inline-flex}revogr-data .revo-draggable:hover>.revo-drag-icon{opacity:1;zoom:1.2;font-weight:600}revogr-data .revo-draggable>.revo-drag-icon{pointer-events:none;transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, zoom 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}revogr-data .rgCell{top:0;left:0;position:absolute;box-sizing:border-box;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:none}revogr-data .rgCell.align-center{text-align:center}revogr-data .rgCell.align-left{text-align:left}revogr-data .rgCell.align-right{text-align:right}"}},[260,"revogr-data",{readonly:[4],range:[4],rowClass:[1,"row-class"],additionalData:[8,"additional-data"],rowSelectionStore:[16],viewportRow:[16],viewportCol:[16],dimensionRow:[16],colData:[16],dataStore:[16],type:[513],colType:[513,"col-type"],jobsBeforeRender:[16],providers:[32],updateCell:[64]},void 0,{dataStore:[{onDataStoreChange:0}],colData:[{onColDataChange:0}]}]);function F(){"undefined"!=typeof customElements&&["revogr-data","vnode-html"].forEach((e=>{switch(e){case"revogr-data":customElements.get(s(e))||customElements.define(s(e),S);break;case"vnode-html":customElements.get(s(e))||R()}}))}export{M as C,z as G,S as R,T as a,F as d,k as e,D as r}
4
+ import{h as e,Build as t,proxyCustomElement as o,HTMLElement as r,createEvent as n,Host as i,transformTag as s}from"@stencil/core/internal/client";import{A as a,v as l,l as d,m as c,j as h,h as p,G as g,P as u,O as v,B as m,M as C,u as w}from"./column.service.js";import{a as L,D as x,C as f,h as b,g as y,l as E}from"./consts.js";import{b as R}from"./data.store.js";import"./platform.js";import{d as j}from"./vnode-converter.js";const O=(t,o)=>{var{rowClass:r,index:n,size:i,start:s,depth:a,groupingLevel:l}=t,d=function(e,t){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(o[r[n]]=e[r[n]])}return o}(t,["rowClass","index","size","start","depth","groupingLevel"]);const c=Object.assign(Object.assign(Object.assign({},d),{[L]:n}),"number"==typeof l?{"data-level":l}:{});return e("div",Object.assign({},c,{class:`rgRow ${r||""}`,style:{height:`${i}px`,transform:`translateY(${s}px)`,paddingLeft:a?10*a+"px":void 0}}),o)};function k(e,t,o){var r;const n=new CustomEvent(c,{detail:{model:t,virtualIndex:o},cancelable:!0,bubbles:!0});null===(r=e.target)||void 0===r||r.dispatchEvent(n)}function z(t,{name:o,expanded:r,depth:n}){const{additionalData:i,columnItems:s,groupingCellRenderer:d,hasExpand:c,itemIndex:p,model:g,providers:u,size:v,start:m,end:C}=t;if(!d)return[];const w=u.viewport.get("renderOffset")||0,b=u.data.get("source"),y={itemIndex:p,size:v,start:m,end:C},E=e=>k(e,g,p);return s.map((t=>{const s=R(u.columns,t.itemIndex);if(!s)return null;const m=l(s),C={prop:s.prop,model:g,data:b,column:s,rowIndex:p,colIndex:t.itemIndex,colType:u.colType,type:u.type,value:a(g,s),providers:u,columnItem:t,rowItem:y,group:{name:o,depth:n,expanded:r,prop:g[h],isLabelColumn:m,canExpand:c,onExpand:E}};return e("div",{key:t.itemIndex,class:{[f]:!0,groupingCell:!0,groupingLabelCell:m},[x]:t.itemIndex,[L]:p,style:{width:`${t.size}px`,transform:`translateX(${t.start-w}px)`,height:v?`${v}px`:void 0}},d(e,C,i))}))}const D=t=>{const{model:o,itemIndex:r,hasExpand:n,groupingCustomRenderer:i,groupingCellRenderer:s}=t,a=o[u],l=o[p],c=parseInt(o[g],10)||0,h={rowClass:"groupingRow",depth:c,expanded:l};return s?e(O,Object.assign({index:t.index,size:t.size,start:t.start},h),z(t,{name:a,expanded:l,depth:c})):e(O,Object.assign({},t,h),i?e("div",{onClick:e=>k(e,o,r)},i(e,Object.assign(Object.assign({},t),{colType:t.providers.colType,name:a,expanded:l,depth:c}))):n&&[e("button",{type:"button",class:{[d]:!0},onClick:e=>k(e,o,r)},T(l)),String(a)])},T=(t=!1)=>e("svg",{"aria-hidden":"true",style:{transform:`rotate(${t?0:-90}deg)`},focusable:"false",viewBox:"0 0 448 512"},e("path",{fill:"currentColor",d:"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"}));function I(o){var r;const n=[],i=null===(r=o.schemaModel.column)||void 0===r?void 0:r.cellTemplate;if(i)n.push(i(e,o.schemaModel,o.additionalData));else{if(!o.schemaModel.column)return(null==t?void 0:t.isDev)&&console.error("Investigate column problem.",o.schemaModel),"";o.schemaModel.column.rowDrag&&v(o.schemaModel.column.rowDrag,o.schemaModel)&&n.push(e("span",{class:b,onMouseDown:e=>{var t;return null===(t=o.dragStartCell)||void 0===t?void 0:t.emit({originalEvent:e,model:o.schemaModel})}},e("span",{class:y}))),n.push(`${m(o.schemaModel.model,o.schemaModel.column)}`)}return n}const M=({renderProps:t,cellProps:o})=>{const r=I.bind(null,t);return e("div",Object.assign({},o,{redraw:r}),r())};class ${constructor(){this.currentRange=null}selectionChange(e,t){if(this.currentRange&&t.forEach(((t,o)=>{var r;e&&o>=e.y&&o<=e.y1||t&&t.t instanceof HTMLElement&&t.t.classList.contains(E)&&(t.t.classList.remove(E),(null===(r=t.o)||void 0===r?void 0:r.class.includes(E))&&(t.o.class=t.o.class.replace(E,"")))})),e)for(let o=e.y;o<=e.y1;o++){const e=t.get(o);if(e&&e.t instanceof HTMLElement&&!e.t.classList.contains(E)){const t=e.o=e.o||{};t.class=(t.class||"")+" "+E,e.t.classList.add(E)}}this.currentRange=e}isRowFocused(e){return this.currentRange&&e>=this.currentRange.y&&e<=this.currentRange.y1}}const S=o(class extends r{constructor(e){super(),!1!==e&&this.__registerHost(),this.beforerowrender=n(this,"beforerowrender",7),this.afterrender=n(this,"afterrender",7),this.beforeCellRender=n(this,"beforecellrender",7),this.beforeDataRender=n(this,"beforedatarender",7),this.dragStartCell=n(this,"dragstartcell",7),this.jobsBeforeRender=[],this.renderedRows=new Map}async updateCell(e){var t,o,r;const n=null===(o=null===(t=this.renderedRows.get(e.row))||void 0===t?void 0:t.i)||void 0===o?void 0:o[e.col];if(null===(r=null==n?void 0:n.o)||void 0===r?void 0:r.redraw){const e=await(i=this.element,s=n.o.redraw,new Promise((e=>{const t=document.createElement("vnode-html");i.appendChild(t),t.redraw=s,t.addEventListener("html",(o=>{t.remove(),e(o.detail)}))})));n.t.innerHTML=e.html,n.l=Math.random()}var i,s}onDataStoreChange(){this.onStoreChange()}onColDataChange(){this.onStoreChange()}onStoreChange(){var e,t;null===(e=this.columnService)||void 0===e||e.destroy(),this.columnService=new C(this.dataStore,this.colData),this.providers={type:this.type,colType:this.colType,readonly:this.readonly,data:this.dataStore,columns:this.colData,viewport:this.viewportCol,dimension:this.dimensionRow,selection:this.rowSelectionStore},null===(t=this.rangeUnsubscribe)||void 0===t||t.call(this),this.rangeUnsubscribe=this.rowSelectionStore.onChange("range",(e=>this.rowHighlightPlugin.selectionChange(e,this.renderedRows)))}connectedCallback(){this.rowHighlightPlugin=new $,this.onStoreChange()}disconnectedCallback(){var e,t;null===(e=this.columnService)||void 0===e||e.destroy(),null===(t=this.rangeUnsubscribe)||void 0===t||t.call(this)}async componentWillRender(){return this.beforeDataRender.emit({rowType:this.type,colType:this.colType}),Promise.all(this.jobsBeforeRender.map((e=>"function"==typeof e?e():e)))}componentDidRender(){this.afterrender.emit({type:this.type})}render(){if(this.renderedRows=new Map,!this.columnService.columns.length)return;const t=this.viewportRow.get("items");if(!t.length)return;const o=this.viewportCol.get("items");if(!o.length)return;const r=[],n=this.dataStore.get("groupingDepth"),s=this.dataStore.get("groupingCustomRenderer"),a=this.dataStore.get("groupingCellRenderer"),l=this.columnService.hasGrouping?n:0,d=this.viewportRow.get("renderOffset")||0,c=this.viewportCol.get("renderOffset")||0;for(let n of t){const t=R(this.dataStore,n.itemIndex);if(w(t)){const i=Object.assign(Object.assign({},n),{start:n.start-d,index:n.itemIndex,model:t,groupingCustomRenderer:s,groupingCellRenderer:a,additionalData:this.additionalData,hasExpand:this.columnService.hasGrouping&&"rowHeaders"!==this.colType,columnItems:o,providers:this.providers}),l=e(D,Object.assign({},i));this.triggerBeforeRowRender(l,n,t),r.push(l),this.renderedRows.set(n.itemIndex,l);continue}const i=[];for(let t of o){const o=Object.assign(Object.assign({},this.columnService.rowDataModel(n.itemIndex,t.itemIndex)),{providers:this.providers}),r=this.triggerBeforeCellRender(o,n,t);if(r.defaultPrevented)continue;const{detail:{column:s,row:a,model:d}}=r,h={[x]:s.itemIndex,[L]:a.itemIndex,style:{width:`${s.size}px`,transform:`translateX(${s.start-c}px)`,height:a.size?`${a.size}px`:void 0}};l&&!s.itemIndex&&h.style&&(h.style.paddingLeft=10*l+"px");const p=this.columnService.mergeProperties(a.itemIndex,s.itemIndex,h,d),g=e(M,{renderProps:{schemaModel:d,additionalData:this.additionalData,dragStartCell:this.dragStartCell},cellProps:p});i.push(g)}let h=this.rowClass?this.columnService.getRowClass(n.itemIndex,this.rowClass):"";this.rowHighlightPlugin.isRowFocused(n.itemIndex)&&(h+=` ${E}`);const p=e(O,{index:n.itemIndex,rowClass:h,size:n.size,start:n.start-d,groupingLevel:l||void 0},i);this.triggerBeforeRowRender(p,n,t),r.push(p),this.renderedRows.set(n.itemIndex,p)}return e(i,null,e("slot",null),r)}triggerBeforeRowRender(e,t,o){this.beforerowrender.emit({node:e,item:t,model:o,colType:this.colType,rowType:this.type})}triggerBeforeCellRender(e,t,o){return this.beforeCellRender.emit({column:o,row:t,model:e,rowType:e.type,colType:e.colType})}get element(){return this}static get watchers(){return{dataStore:[{onDataStoreChange:0}],colData:[{onColDataChange:0}]}}static get style(){return".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}revogr-data{display:block;width:100%;position:relative}revogr-data .rgRow{position:absolute;width:100%;left:0}revogr-data .rgRow>.row-resize-handle{position:absolute;z-index:2;right:0;bottom:-3px;left:0;height:7px;cursor:row-resize;touch-action:none;user-select:none}revogr-data .rgRow.groupingRow{font-weight:600;text-align:left}revogr-data .rgRow.groupingRow .group-expand{width:25px;height:100%;max-height:25px;margin-right:2px;background-color:transparent;border-color:transparent;vertical-align:middle;padding-left:5px;display:inline-flex}revogr-data .rgRow.groupingRow .group-expand svg{width:7px}revogr-data .revo-draggable{border:none;height:32px;display:inline-flex;outline:0;padding:0;font-size:0.8125rem;box-sizing:border-box;align-items:center;white-space:nowrap;vertical-align:middle;justify-content:center;text-decoration:none;width:24px;height:100%;cursor:pointer;display:inline-flex}revogr-data .revo-draggable:hover>.revo-drag-icon{opacity:1;zoom:1.2;font-weight:600}revogr-data .revo-draggable>.revo-drag-icon{pointer-events:none;transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, zoom 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}revogr-data .rgCell{top:0;left:0;position:absolute;box-sizing:border-box;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:none}revogr-data .rgCell.align-center{text-align:center}revogr-data .rgCell.align-left{text-align:left}revogr-data .rgCell.align-right{text-align:right}"}},[260,"revogr-data",{readonly:[4],range:[4],rowClass:[1,"row-class"],additionalData:[8,"additional-data"],rowSelectionStore:[16],viewportRow:[16],viewportCol:[16],dimensionRow:[16],colData:[16],dataStore:[16],type:[513],colType:[513,"col-type"],jobsBeforeRender:[16],providers:[32],updateCell:[64]},void 0,{dataStore:[{onDataStoreChange:0}],colData:[{onColDataChange:0}]}]);function B(){"undefined"!=typeof customElements&&["revogr-data","vnode-html"].forEach((e=>{switch(e){case"revogr-data":customElements.get(s(e))||customElements.define(s(e),S);break;case"vnode-html":customElements.get(s(e))||j()}}))}export{M as C,D as G,S as R,T as a,B as d,k as e,z as r}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import{proxyCustomElement as t,HTMLElement as e,createEvent as i,h as r,Host as o,transformTag as l}from"@stencil/core/internal/client";import{d as s}from"./debounce.js";import{e as n,f as a,d,i as h}from"./filter.button.js";Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(t){let e=this;do{if(Element.prototype.matches.call(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null});const c="text/revogrid-filter-id";function p(t,e,i){if(e===i)return!1;const r=t.findIndex((t=>t.id===e)),o=t.findIndex((t=>t.id===i));if(-1===r||-1===o||r===o)return!1;const l=t.map((t=>{var e;return null!==(e=t.relation)&&void 0!==e?e:"and"})),[s]=t.splice(r,1);return t.splice(o,0,s),t.forEach(((e,i)=>{var r;e.relation=i===t.length-1?"and":null!==(r=l[i])&&void 0!==r?r:"and"})),!0}const u="none",f="add-filter",g=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.filterChange=i(this,"filterChange",7),this.resetChange=i(this,"resetChange",7),this.filterCaptionsInternal={title:"Filter by",ok:"Close",save:"Save",reset:"Reset",cancel:"Cancel",add:"Add condition",placeholder:"Enter value...",and:"and",or:"or",filterCondition:"Filter condition",removeFilter:"Remove filter",reorderFilter:"Reorder filter"},this.isFilterIdSet=!1,this.filterId=0,this.currentFilterId=-1,this.currentFilterType=u,this.filterItems={},this.filterNames={},this.filterEntities={},this.disableDynamicFiltering=!1,this.closeOnOutsideClick=!0,this.allowDuplicateOperators=!0,this.debouncedApplyFilter=s((()=>{this.filterChange.emit(this.filterItems)}),400)}onMouseDown(t){if(!this.changes)return;const e=t.composedPath(),i=this.getAddFilterSelect();if(i instanceof HTMLSelectElement){if(e.includes(i))return;i.value=u}this.currentFilterType=u,this.changes&&(this.changes.type=u),this.currentFilterId=-1,!e.includes(this.element)&&!this.isOwnFilterButton(t.target)&&this.closeOnOutsideClick&&(this.changes=void 0)}async show(t){this.changes=t,this.filterItems=(null==t?void 0:t.filterItems)||{},this.changes&&(this.changes.type=this.changes.type||u)}async getChanges(){return this.changes}componentWillRender(){if(!this.isFilterIdSet){this.isFilterIdSet=!0;const t=Object.keys(this.filterItems);for(const e of t)this.filterId+=this.filterItems[e].length}}getFilterItemsList(){var t,e;const i=null===(t=this.changes)||void 0===t?void 0:t.prop;if(void 0===i)return"";const o=null!==(e=this.filterItems[i])&&void 0!==e?e:[],l=o.filter((t=>!t.hidden)).length,s=Object.assign(Object.assign({},this.filterCaptionsInternal),this.filterCaptions);return r("div",{key:this.filterId},r("ul",{class:"multi-filter-list-container"},o.map(((t,e)=>{let o;if(t.hidden)return;e!==this.filterItems[i].length-1&&(o=r(n,{text:"and"===t.relation?s.and:s.or,onClick:()=>this.toggleFilterAndOr(t.id)}));const h=this.renderExtra(i,e),c=this.draggedFilterId===t.id,p=this.dragOverFilterId===t.id&&!c,u=l>1;return r("li",{key:t.id,class:"multi-filter-list","aria-label":`${s.filterCondition} ${e+1}`},r("div",{class:{"multi-filter-list-row":!0,"filter-row-drop-active":void 0!==this.draggedFilterId&&!c,"filter-row-dragging":c,"filter-row-drag-over":p}},u?r("button",{type:"button",class:"filter-row-drop-target",tabIndex:-1,"aria-label":`${s.filterCondition} ${e+1}`,onDragOver:e=>this.onFilterDragOver(e,t.id),onDragLeave:()=>this.onFilterDragLeave(t.id),onDrop:e=>this.onFilterDrop(e,i,t.id)}):"",u?r(a,{ariaLabel:s.reorderFilter,dragging:c,dragOver:p,onDragStart:e=>this.onFilterDragStart(e,t.id),onDragEnd:()=>this.onFilterDragEnd(),onKeyDown:e=>this.onFilterReorderKeyDown(e,i,t.id)}):"",r("div",{class:{"select-input":!0}},r("select",{class:"select-css select-filter",onChange:t=>this.onFilterTypeChange(t,i,e)},this.renderSelectOptions(this.filterItems[i][e].type,!0)),h?r("div",{class:"filter-extra"},h):""),r("div",{class:"multi-filter-list-action"},o,r(d,{ariaLabel:s.removeFilter,onClick:()=>this.onRemoveFilter(t.id)}))))}))),o.filter((t=>!t.hidden)).length>0?r("div",{class:"add-filter-divider"}):"")}componentDidRender(){this.syncDialog()}syncDialog(){this.dialog&&(this.changes?(this.dialog.open||this.dialog.show(),!1!==this.changes.autoCorrect&&(this.autoCorrect(this.dialog),requestAnimationFrame((()=>this.autoCorrect(this.dialog))))):this.dialog.open&&this.dialog.close())}autoCorrect(t){var e;if(!t||!this.changes)return;t.style.maxHeight="",t.style.left=this.changes.x+"px",t.style.top=this.changes.y+"px";const i=t.getBoundingClientRect(),r=null!==(e=this.changes.anchorY)&&void 0!==e?e:this.changes.y,o=this.changes.y,l=Math.max(0,r-8),s=Math.max(0,window.innerHeight-o-8),n=i.height>s&&l>s;t.style.maxHeight=Math.max(8,n?l:s)+"px";const a=t.getBoundingClientRect(),d=Math.max(8,window.innerWidth-a.width-8),h=Math.max(8,window.innerHeight-a.height-8),c=Math.min(Math.max(8,this.changes.x),d),p=Math.min(Math.max(8,n?r-a.height:o),h);t.style.left=c+"px",t.style.top=p+"px"}onFilterTypeChange(t,e,i){t.target instanceof HTMLSelectElement&&(this.filterItems[e][i].type=t.target.value,this.filterId++,setTimeout((()=>{const t=document.getElementById("filter-input-"+this.filterItems[e][i].id);t instanceof HTMLInputElement&&t.focus()}),0),this.disableDynamicFiltering||this.debouncedApplyFilter())}onAddNewFilter(t){this.currentFilterType=t.target.value,this.addNewFilterToProp();const e=this.getAddFilterSelect();e&&(e.value=u,this.currentFilterType=u),this.disableDynamicFiltering||this.debouncedApplyFilter()}addNewFilterToProp(){var t;const e=null===(t=this.changes)||void 0===t?void 0:t.prop;(e||0===e)&&(this.filterItems[e]||(this.filterItems[e]=[]),"none"!==this.currentFilterType&&(this.filterId++,this.currentFilterId=this.filterId,this.filterItems[e].push({id:this.currentFilterId,type:this.currentFilterType,value:"",relation:"and"}),setTimeout((()=>{const t=document.getElementById("filter-input-"+this.currentFilterId);t&&t.focus()}),0)))}onSave(){this.filterChange.emit(this.filterItems)}onCancel(){this.changes=void 0}onReset(){var t;this.assertChanges(),this.resetChange.emit(null===(t=this.changes)||void 0===t?void 0:t.prop),this.filterId++}onRemoveFilter(t){var e;this.assertChanges(),this.filterId++;const i=null===(e=this.changes)||void 0===e?void 0:e.prop,r=this.filterItems[null!=i?i:""];if(!r)return;const o=r.findIndex((e=>e.id===t));-1!==o&&(r.splice(o,1),0===r.length&&delete this.filterItems[null!=i?i:""],this.disableDynamicFiltering||this.debouncedApplyFilter())}onFilterDragStart(t,e){this.draggedFilterId=e,function(t,e){t&&(t.effectAllowed="move",t.setData(c,e+""),t.setData("text/plain",e+""))}(t.dataTransfer,e)}onFilterDragOver(t,e){void 0!==this.draggedFilterId&&this.draggedFilterId!==e&&(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="move"),this.dragOverFilterId=e)}onFilterDragLeave(t){this.dragOverFilterId===t&&(this.dragOverFilterId=void 0)}onFilterDrop(t,e,i){var r;t.preventDefault();const o=null!==(r=this.draggedFilterId)&&void 0!==r?r:function(t){if(!t)return;const e=(t.getData(c)||t.getData("text/plain")).trim();if(!e)return;const i=Number(e);return Number.isFinite(i)?i:void 0}(t.dataTransfer);if(this.onFilterDragEnd(),void 0===o)return;const l=this.filterItems[e];l&&p(l,o,i)&&(this.filterId++,this.disableDynamicFiltering||this.debouncedApplyFilter())}onFilterDragEnd(){this.draggedFilterId=void 0,this.dragOverFilterId=void 0}onFilterReorderKeyDown(t,e,i){let r=0;if("ArrowUp"===t.key)r=-1;else{if("ArrowDown"!==t.key)return;r=1}const o=this.filterItems[e];if(!o)return;const l=o.filter((t=>!t.hidden)),s=l.findIndex((t=>t.id===i));if(-1===s)return;t.preventDefault(),t.stopPropagation();const n=l[s+r];n&&p(o,i,n.id)&&(this.filterId++,this.disableDynamicFiltering||this.debouncedApplyFilter())}toggleFilterAndOr(t){var e;this.assertChanges(),this.filterId++;const i=null===(e=this.changes)||void 0===e?void 0:e.prop,r=this.filterItems[null!=i?i:""];if(!r)return;const o=r.findIndex((e=>e.id===t));-1!==o&&(r[o].relation="and"===r[o].relation?"or":"and",this.disableDynamicFiltering||this.debouncedApplyFilter())}assertChanges(){if(!this.changes)throw Error("Changes required per edit")}renderSelectOptions(t,e=!1){var i;if(!this.changes)return;const o=[],l=this.changes.prop;if(void 0===l)return;const s=new Set;Object.keys(this.filterItems).forEach((t=>{this.filterItems[t].forEach((t=>{t.hidden&&s.add(t.type)}))}));const n=new Set((null!==(i=this.filterItems[l])&&void 0!==i?i:[]).filter((t=>!t.hidden)).map((t=>t.type)));if(!e){const t=Object.assign(Object.assign({},this.filterCaptionsInternal),this.filterCaptions);o.push(r("option",{selected:this.currentFilterType===u,value:u},l&&this.filterItems[l]&&this.filterItems[l].length>0?t.add:this.filterNames[u]))}for(let i in this.changes.filterTypes){const l=this.changes.filterTypes[i].filter((i=>!s.has(i)&&(this.allowDuplicateOperators||!n.has(i)||e&&t===i)));l.length&&(o.push(...l.map((e=>r("option",{value:e,selected:t===e},this.filterNames[e])))),o.push(r("option",{disabled:!0})))}return o}renderExtra(t,e){const i=this.filterItems[t];if(!i)return"";const o=i=>{this.filterItems[t][e].value=i,this.disableDynamicFiltering||this.debouncedApplyFilter()},l=()=>{const t=this.getAddFilterSelect();t&&(t.value=u,this.currentFilterType=u,this.addNewFilterToProp(),t.focus())},s=Object.assign(Object.assign({},this.filterCaptionsInternal),this.filterCaptions),n=this.filterEntities[i[e].type].extra;return"function"==typeof n?n(r,{value:i[e].value,filter:i[e],prop:t,index:e,placeholder:s.placeholder,onInput:t=>{o(t)},onFocus:()=>{l()}}):"input"!==n&&"datepicker"!==n?"":r("input",{id:"filter-input-"+i[e].id,placeholder:s.placeholder,type:"datepicker"===n?"date":"text",value:i[e].value,onInput:t=>{t.target instanceof HTMLInputElement&&o(t.target.value)},onKeyDown:t=>{"enter"!==t.key.toLowerCase()?t.stopPropagation():this.getAddFilterSelect()&&l()}})}getAddFilterSelect(){return this.element.querySelector("#"+f)}isOwnFilterButton(t){if(!(t instanceof Element))return!1;if(!h(t))return!1;const e=this.getOwningGrid(this.element),i=this.getOwningGrid(t);return!!e&&e===i}getOwningGrid(t){const e=t.closest("revo-grid");if(e)return e;const i=t.getRootNode();return i instanceof ShadowRoot&&"revo-grid"===i.host.localName?i.host:void 0}render(){var t,e,i,l,s,n,a,d,h;const c={left:(null!==(e=null===(t=this.changes)||void 0===t?void 0:t.x)&&void 0!==e?e:0)+"px",top:(null!==(l=null===(i=this.changes)||void 0===i?void 0:i.y)&&void 0!==l?l:0)+"px"},p=Object.assign(Object.assign({},this.filterCaptionsInternal),this.filterCaptions);return r(o,{key:"8859c452eb08838f65f18efecbdde7f65fda2b49"},r("dialog",{key:"f603067ff0986a9f344cbbf816388d2bbac198bb",class:"filter-panel-dialog",style:c,ref:t=>this.dialog=t,onCancel:t=>{t.preventDefault(),this.onCancel()}},this.changes&&[r("slot",{key:"header-slot",slot:"header"}),(null===(n=(s=this.changes).extraContent)||void 0===n?void 0:n.call(s,this.changes))||"",!0!==(null===(a=this.changes)||void 0===a?void 0:a.hideDefaultFilters)&&[r("label",{key:"filter-title"},p.title),r("div",{key:"filter-holder",class:"filter-holder"},this.getFilterItemsList()),r("div",{key:"add-filter",class:"add-filter"},r("select",{key:"2ec0a66918edf91bdde3962b6ec84c89f6f1c8f1",id:f,class:"select-css",onChange:t=>this.onAddNewFilter(t)},this.renderSelectOptions(this.currentFilterType)))],r("slot",{key:"default-slot"}),(null===(h=(d=this.changes).extraBottomContent)||void 0===h?void 0:h.call(d,this.changes))||"",r("div",{key:"filter-actions",class:"filter-actions"},this.disableDynamicFiltering&&[r("button",{key:"save",id:"revo-button-save","aria-label":"save",class:"revo-button green",onClick:()=>this.onSave()},p.save),r("button",{key:"cancel",id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},p.cancel)],!this.disableDynamicFiltering&&[r("button",{key:"ok",id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},p.ok),r("button",{key:"reset",id:"revo-button-reset","aria-label":"reset",class:"revo-button outline",onClick:()=>this.onReset()},p.reset)]),r("slot",{key:"footer-slot",slot:"footer"})]))}get element(){return this}static get style(){return'.revo-button{position:relative;overflow:hidden;color:var(--rg-theme-button-text);background-color:var(--rg-theme-button-bg);height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:var(--rg-theme-button-success-bg)}.revo-button.red{background-color:var(--rg-theme-button-danger-bg)}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid var(--rg-theme-button-outline-border);line-height:30px;background:none;color:var(--rg-theme-button-outline-text);box-shadow:none}revogr-filter-panel{display:block}revogr-filter-panel .filter-panel-dialog{position:fixed;top:0;left:0;z-index:100;max-height:calc(100vh - 16px);overflow:auto;opacity:1;transform:none;color:var(--rg-theme-filter-panel-text);background-color:var(--rg-theme-filter-panel-bg);border:1px solid var(--rg-theme-filter-panel-border);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--rg-theme-filter-panel-shadow);box-sizing:border-box;padding:10px;border-radius:8px;margin:0;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-panel-dialog .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel .filter-panel-dialog label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel .filter-panel-dialog select{width:100%}revogr-filter-panel .filter-panel-dialog input[type=text]{border:0;min-height:34px;margin:5px 0;color:var(--rg-theme-filter-panel-text);background:var(--rg-theme-filter-panel-input-bg);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-panel-dialog .filter-actions{position:sticky;right:0;bottom:-10px;left:0;z-index:1;text-align:right;margin:10px -10px -10px;padding:0 5px 10px 10px;background:var(--rg-theme-filter-panel-bg);border-top:1px solid var(--rg-theme-filter-panel-divider)}revogr-filter-panel .filter-panel-dialog .filter-actions button{margin-top:10px;margin-right:5px}@keyframes revogr-filter-panel-open{from{opacity:0;transform:translateY(-4px) scale(0.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){revogr-filter-panel .filter-panel-dialog{animation:none}}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px}.rgHeaderCell .rv-filter.active{color:var(--rg-theme-filter-panel-icon-active)}.rgHeaderCell .rv-filter .filter-img{color:var(--rg-theme-filter-panel-icon);width:11px}.select-css{display:block;font-family:sans-serif;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;color:var(--rg-theme-filter-panel-text);border:1px solid var(--rg-theme-filter-panel-select-border);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--rg-theme-filter-panel-input-bg);background-image:var(--revo-grid-filter-panel-select-arrow, url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"));background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css{}.select-css:hover{border-color:var(--rg-theme-filter-panel-select-border)}.select-css{}.select-css:focus{border-color:var(--rg-theme-filter-panel-select-border-hover);box-shadow:var(--rg-theme-filter-panel-focus-ring);outline:none}.select-css{}.select-css option{font-weight:normal}.select-css{}.select-css:disabled,.select-css[aria-disabled=true]{color:var(--rg-theme-filter-panel-muted-text);background-image:var(--revo-grid-filter-panel-select-arrow-disabled, url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"))}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--rg-theme-filter-panel-select-border)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-row{display:flex;align-items:center;gap:6px;position:relative}.multi-filter-list .multi-filter-list-row.filter-row-dragging{opacity:0.65}.multi-filter-list .multi-filter-list-row.filter-row-drag-over::before{content:"";position:absolute;top:-4px;right:0;left:0;z-index:2;height:2px;background:var(--rg-theme-filter-panel-reorder-accent);border-radius:999px;box-shadow:0 0 0 2px var(--rg-theme-filter-panel-bg)}.multi-filter-list .multi-filter-list-row.filter-row-drop-active .filter-row-drop-target{pointer-events:auto}.multi-filter-list .filter-row-drop-target{position:absolute;inset:0;z-index:1;padding:0;pointer-events:none;background:transparent;border:0}.multi-filter-list .multi-filter-list-action{display:flex;align-self:stretch;flex:0 0 auto;justify-content:flex-end;align-items:center}.multi-filter-list .and-or-button{margin:0 0 0 10px;min-width:58px;cursor:pointer}.multi-filter-list .trash-button{margin:0 0 -2px 6px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.multi-filter-list .reorder-button{border:0;background:transparent;color:var(--rg-theme-filter-panel-reorder-color);cursor:grab;font-family:monospace;font-size:12px;letter-spacing:0;line-height:1;padding:6px 2px;transform:scaleX(0.8);width:16px}.multi-filter-list .reorder-button.filter-row-drag-over{color:var(--rg-theme-filter-panel-reorder-accent)}.multi-filter-list .reorder-button:active{cursor:grabbing}.multi-filter-list-container{padding:0;margin:0;list-style:none}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--rg-theme-filter-panel-divider);height:10px}.select-input{display:flex;align-items:center;flex:1 1 auto;gap:6px;min-width:0}.select-input .select-filter,.select-input .filter-extra{flex:1 1 0;min-width:0}.select-input .select-filter{width:auto}.select-input .filter-extra{display:flex}.select-input .filter-extra>*{width:100%}.select-input input[type=text],.select-input input[type=date]{margin:0}'}},[260,"revogr-filter-panel",{filterNames:[16],filterEntities:[16],filterCaptions:[16],disableDynamicFiltering:[4,"disable-dynamic-filtering"],closeOnOutsideClick:[4,"close-on-outside-click"],allowDuplicateOperators:[4,"allow-duplicate-operators"],isFilterIdSet:[32],filterId:[32],currentFilterId:[32],currentFilterType:[32],changes:[32],filterItems:[32],draggedFilterId:[32],dragOverFilterId:[32],show:[64],getChanges:[64]},[[5,"mousedown","onMouseDown"]]]),v=g,b=function(){"undefined"!=typeof customElements&&["revogr-filter-panel"].forEach((t=>{"revogr-filter-panel"===t&&(customElements.get(l(t))||customElements.define(l(t),g))}))};export{v as RevogrFilterPanel,b as defineCustomElement}
4
+ import{proxyCustomElement as t,HTMLElement as e,createEvent as i,h as r,Host as o,transformTag as l}from"@stencil/core/internal/client";import{d as s}from"./debounce.js";import{e as n,f as a,d,i as h}from"./filter.button.js";Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(t){let e=this;do{if(Element.prototype.matches.call(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null});const c="text/revogrid-filter-id";function p(t,e,i){if(e===i)return!1;const r=t.findIndex((t=>t.id===e)),o=t.findIndex((t=>t.id===i));if(-1===r||-1===o||r===o)return!1;const l=t.map((t=>{var e;return null!==(e=t.relation)&&void 0!==e?e:"and"})),[s]=t.splice(r,1);return t.splice(o,0,s),t.forEach(((e,i)=>{var r;e.relation=i===t.length-1?"and":null!==(r=l[i])&&void 0!==r?r:"and"})),!0}const u="none",f="add-filter",g=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.filterChange=i(this,"filterChange",7),this.resetChange=i(this,"resetChange",7),this.filterCaptionsInternal={title:"Filter by",ok:"Close",save:"Save",reset:"Reset",cancel:"Cancel",add:"Add condition",placeholder:"Enter value...",and:"and",or:"or",filterCondition:"Filter condition",removeFilter:"Remove filter",reorderFilter:"Reorder filter"},this.isFilterIdSet=!1,this.filterId=0,this.currentFilterId=-1,this.currentFilterType=u,this.filterItems={},this.filterNames={},this.filterEntities={},this.disableDynamicFiltering=!1,this.closeOnOutsideClick=!0,this.allowDuplicateOperators=!0,this.debouncedApplyFilter=s((()=>{this.filterChange.emit(this.filterItems)}),400)}onMouseDown(t){if(!this.changes)return;const e=t.composedPath(),i=this.getAddFilterSelect();if(i instanceof HTMLSelectElement){if(e.includes(i))return;i.value=u}this.currentFilterType=u,this.changes&&(this.changes.type=u),this.currentFilterId=-1,!e.includes(this.element)&&!this.isOwnFilterButton(t.target)&&this.closeOnOutsideClick&&(this.changes=void 0)}async show(t){this.changes=t,this.filterItems=(null==t?void 0:t.filterItems)||{},this.changes&&(this.changes.type=this.changes.type||u)}async getChanges(){return this.changes}componentWillRender(){if(!this.isFilterIdSet){this.isFilterIdSet=!0;const t=Object.keys(this.filterItems);for(const e of t)this.filterId+=this.filterItems[e].length}}getFilterItemsList(){var t,e;const i=null===(t=this.changes)||void 0===t?void 0:t.prop;if(void 0===i)return"";const o=null!==(e=this.filterItems[i])&&void 0!==e?e:[],l=o.filter((t=>!t.hidden)).length,s=Object.assign(Object.assign({},this.filterCaptionsInternal),this.filterCaptions);return r("div",{key:this.filterId},r("ul",{class:"multi-filter-list-container"},o.map(((t,e)=>{let o;if(t.hidden)return;e!==this.filterItems[i].length-1&&(o=r(n,{text:"and"===t.relation?s.and:s.or,onClick:()=>this.toggleFilterAndOr(t.id)}));const h=this.renderExtra(i,e),c=this.draggedFilterId===t.id,p=this.dragOverFilterId===t.id&&!c,u=l>1;return r("li",{key:t.id,class:"multi-filter-list","aria-label":`${s.filterCondition} ${e+1}`},r("div",{class:{"multi-filter-list-row":!0,"filter-row-drop-active":void 0!==this.draggedFilterId&&!c,"filter-row-dragging":c,"filter-row-drag-over":p}},u?r("button",{type:"button",class:"filter-row-drop-target",tabIndex:-1,"aria-label":`${s.filterCondition} ${e+1}`,onDragOver:e=>this.onFilterDragOver(e,t.id),onDragLeave:()=>this.onFilterDragLeave(t.id),onDrop:e=>this.onFilterDrop(e,i,t.id)}):"",u?r(a,{ariaLabel:s.reorderFilter,dragging:c,dragOver:p,onDragStart:e=>this.onFilterDragStart(e,t.id),onDragEnd:()=>this.onFilterDragEnd(),onKeyDown:e=>this.onFilterReorderKeyDown(e,i,t.id)}):"",r("div",{class:{"select-input":!0}},r("select",{class:"select-css select-filter",onChange:t=>this.onFilterTypeChange(t,i,e)},this.renderSelectOptions(this.filterItems[i][e].type,!0)),h?r("div",{class:"filter-extra"},h):""),r("div",{class:"multi-filter-list-action"},o,r(d,{ariaLabel:s.removeFilter,onClick:()=>this.onRemoveFilter(t.id)}))))}))),o.some((t=>!t.hidden))?r("div",{class:"add-filter-divider"}):"")}componentDidRender(){this.syncDialog()}syncDialog(){this.dialog&&(this.changes?(this.dialog.open||this.dialog.show(),!1!==this.changes.autoCorrect&&(this.autoCorrect(this.dialog),requestAnimationFrame((()=>this.autoCorrect(this.dialog))))):this.dialog.open&&this.dialog.close())}autoCorrect(t){var e;if(!t||!this.changes)return;t.style.maxHeight="",t.style.left=this.changes.x+"px",t.style.top=this.changes.y+"px";const i=t.getBoundingClientRect(),r=null!==(e=this.changes.anchorY)&&void 0!==e?e:this.changes.y,o=this.changes.y,l=Math.max(0,r-8),s=Math.max(0,window.innerHeight-o-8),n=i.height>s&&l>s;t.style.maxHeight=Math.max(8,n?l:s)+"px";const a=t.getBoundingClientRect(),d=Math.max(8,window.innerWidth-a.width-8),h=Math.max(8,window.innerHeight-a.height-8),c=Math.min(Math.max(8,this.changes.x),d),p=Math.min(Math.max(8,n?r-a.height:o),h);t.style.left=c+"px",t.style.top=p+"px"}onFilterTypeChange(t,e,i){t.target instanceof HTMLSelectElement&&(this.filterItems[e][i].type=t.target.value,this.filterId++,setTimeout((()=>{const t=document.getElementById("filter-input-"+this.filterItems[e][i].id);t instanceof HTMLInputElement&&t.focus()}),0),this.disableDynamicFiltering||this.debouncedApplyFilter())}onAddNewFilter(t){this.currentFilterType=t.target.value,this.addNewFilterToProp();const e=this.getAddFilterSelect();e&&(e.value=u,this.currentFilterType=u),this.disableDynamicFiltering||this.debouncedApplyFilter()}addNewFilterToProp(){var t;const e=null===(t=this.changes)||void 0===t?void 0:t.prop;(e||0===e)&&(this.filterItems[e]||(this.filterItems[e]=[]),"none"!==this.currentFilterType&&(this.filterId++,this.currentFilterId=this.filterId,this.filterItems[e].push({id:this.currentFilterId,type:this.currentFilterType,value:"",relation:"and"}),setTimeout((()=>{const t=document.getElementById("filter-input-"+this.currentFilterId);t&&t.focus()}),0)))}onSave(){this.filterChange.emit(this.filterItems)}onCancel(){this.changes=void 0}onReset(){var t;this.assertChanges(),this.resetChange.emit(null===(t=this.changes)||void 0===t?void 0:t.prop),this.filterId++}onRemoveFilter(t){var e;this.assertChanges(),this.filterId++;const i=null===(e=this.changes)||void 0===e?void 0:e.prop,r=this.filterItems[null!=i?i:""];if(!r)return;const o=r.findIndex((e=>e.id===t));-1!==o&&(r.splice(o,1),0===r.length&&delete this.filterItems[null!=i?i:""],this.disableDynamicFiltering||this.debouncedApplyFilter())}onFilterDragStart(t,e){this.draggedFilterId=e,function(t,e){t&&(t.effectAllowed="move",t.setData(c,e+""),t.setData("text/plain",e+""))}(t.dataTransfer,e)}onFilterDragOver(t,e){void 0!==this.draggedFilterId&&this.draggedFilterId!==e&&(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="move"),this.dragOverFilterId=e)}onFilterDragLeave(t){this.dragOverFilterId===t&&(this.dragOverFilterId=void 0)}onFilterDrop(t,e,i){var r;t.preventDefault();const o=null!==(r=this.draggedFilterId)&&void 0!==r?r:function(t){if(!t)return;const e=(t.getData(c)||t.getData("text/plain")).trim();if(!e)return;const i=Number(e);return Number.isFinite(i)?i:void 0}(t.dataTransfer);if(this.onFilterDragEnd(),void 0===o)return;const l=this.filterItems[e];l&&p(l,o,i)&&(this.filterId++,this.disableDynamicFiltering||this.debouncedApplyFilter())}onFilterDragEnd(){this.draggedFilterId=void 0,this.dragOverFilterId=void 0}onFilterReorderKeyDown(t,e,i){let r=0;if("ArrowUp"===t.key)r=-1;else{if("ArrowDown"!==t.key)return;r=1}const o=this.filterItems[e];if(!o)return;const l=o.filter((t=>!t.hidden)),s=l.findIndex((t=>t.id===i));if(-1===s)return;t.preventDefault(),t.stopPropagation();const n=l[s+r];n&&p(o,i,n.id)&&(this.filterId++,this.disableDynamicFiltering||this.debouncedApplyFilter())}toggleFilterAndOr(t){var e;this.assertChanges(),this.filterId++;const i=null===(e=this.changes)||void 0===e?void 0:e.prop,r=this.filterItems[null!=i?i:""];if(!r)return;const o=r.findIndex((e=>e.id===t));-1!==o&&(r[o].relation="and"===r[o].relation?"or":"and",this.disableDynamicFiltering||this.debouncedApplyFilter())}assertChanges(){if(!this.changes)throw Error("Changes required per edit")}renderSelectOptions(t,e=!1){var i;if(!this.changes)return;const o=[],l=this.changes.prop;if(void 0===l)return;const s=new Set;Object.keys(this.filterItems).forEach((t=>{this.filterItems[t].forEach((t=>{t.hidden&&s.add(t.type)}))}));const n=new Set((null!==(i=this.filterItems[l])&&void 0!==i?i:[]).filter((t=>!t.hidden)).map((t=>t.type)));if(!e){const t=Object.assign(Object.assign({},this.filterCaptionsInternal),this.filterCaptions);o.push(r("option",{selected:this.currentFilterType===u,value:u},l&&this.filterItems[l]&&this.filterItems[l].length>0?t.add:this.filterNames[u]))}for(let i in this.changes.filterTypes){const l=this.changes.filterTypes[i].filter((i=>!s.has(i)&&(this.allowDuplicateOperators||!n.has(i)||e&&t===i)));l.length&&(o.push(...l.map((e=>r("option",{value:e,selected:t===e},this.filterNames[e])))),o.push(r("option",{disabled:!0})))}return o}renderExtra(t,e){const i=this.filterItems[t];if(!i)return"";const o=i=>{this.filterItems[t][e].value=i,this.disableDynamicFiltering||this.debouncedApplyFilter()},l=()=>{const t=this.getAddFilterSelect();t&&(t.value=u,this.currentFilterType=u,this.addNewFilterToProp(),t.focus())},s=Object.assign(Object.assign({},this.filterCaptionsInternal),this.filterCaptions),n=this.filterEntities[i[e].type].extra;return"function"==typeof n?n(r,{value:i[e].value,filter:i[e],prop:t,index:e,placeholder:s.placeholder,onInput:t=>{o(t)},onFocus:()=>{l()}}):"input"!==n&&"datepicker"!==n?"":r("input",{id:"filter-input-"+i[e].id,placeholder:s.placeholder,type:"datepicker"===n?"date":"text",value:i[e].value,onInput:t=>{t.target instanceof HTMLInputElement&&o(t.target.value)},onKeyDown:t=>{"enter"!==t.key.toLowerCase()?t.stopPropagation():this.getAddFilterSelect()&&l()}})}getAddFilterSelect(){return this.element.querySelector("#"+f)}isOwnFilterButton(t){if(!(t instanceof Element))return!1;if(!h(t))return!1;const e=this.getOwningGrid(this.element),i=this.getOwningGrid(t);return!!e&&e===i}getOwningGrid(t){const e=t.closest("revo-grid");if(e)return e;const i=t.getRootNode();return i instanceof ShadowRoot&&"revo-grid"===i.host.localName?i.host:void 0}render(){var t,e,i,l,s,n,a,d,h;const c={left:(null!==(e=null===(t=this.changes)||void 0===t?void 0:t.x)&&void 0!==e?e:0)+"px",top:(null!==(l=null===(i=this.changes)||void 0===i?void 0:i.y)&&void 0!==l?l:0)+"px"},p=Object.assign(Object.assign({},this.filterCaptionsInternal),this.filterCaptions);return r(o,{key:"d0e4ebb408750b11b3965da6a25e581733c968e3"},r("dialog",{key:"3df36777c931ec1063e8574169ca880a99dbfe41",class:"filter-panel-dialog",style:c,ref:t=>this.dialog=t,onCancel:t=>{t.preventDefault(),this.onCancel()}},this.changes&&[r("slot",{key:"header-slot",slot:"header"}),(null===(n=(s=this.changes).extraContent)||void 0===n?void 0:n.call(s,this.changes))||"",!0!==(null===(a=this.changes)||void 0===a?void 0:a.hideDefaultFilters)&&[r("label",{key:"filter-title"},p.title),r("div",{key:"filter-holder",class:"filter-holder"},this.getFilterItemsList()),r("div",{key:"add-filter",class:"add-filter"},r("select",{key:"e2a8bd29f2090d3e6c933795427b71ca190b82aa",id:f,class:"select-css",onChange:t=>this.onAddNewFilter(t)},this.renderSelectOptions(this.currentFilterType)))],r("slot",{key:"default-slot"}),(null===(h=(d=this.changes).extraBottomContent)||void 0===h?void 0:h.call(d,this.changes))||"",r("div",{key:"filter-actions",class:"filter-actions"},this.disableDynamicFiltering&&[r("button",{key:"save",type:"button",id:"revo-button-save","aria-label":"save",class:"revo-button green",onClick:()=>this.onSave()},p.save),r("button",{key:"cancel",type:"button",id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},p.cancel)],!this.disableDynamicFiltering&&[r("button",{key:"ok",type:"button",id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},p.ok),r("button",{key:"reset",type:"button",id:"revo-button-reset","aria-label":"reset",class:"revo-button outline",onClick:()=>this.onReset()},p.reset)]),r("slot",{key:"footer-slot",slot:"footer"})]))}get element(){return this}static get style(){return'.revo-button{position:relative;overflow:hidden;color:var(--rg-theme-button-text);background-color:var(--rg-theme-button-bg);height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:var(--rg-theme-button-success-bg)}.revo-button.red{background-color:var(--rg-theme-button-danger-bg)}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid var(--rg-theme-button-outline-border);line-height:30px;background:none;color:var(--rg-theme-button-outline-text);box-shadow:none}revogr-filter-panel{display:block}revogr-filter-panel .filter-panel-dialog{position:fixed;top:0;left:0;z-index:100;max-height:calc(100vh - 16px);overflow:auto;opacity:1;transform:none;color:var(--rg-theme-filter-panel-text);background-color:var(--rg-theme-filter-panel-bg);border:1px solid var(--rg-theme-filter-panel-border);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--rg-theme-filter-panel-shadow);box-sizing:border-box;padding:10px;border-radius:8px;margin:0;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-panel-dialog .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel .filter-panel-dialog label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel .filter-panel-dialog select{width:100%}revogr-filter-panel .filter-panel-dialog input[type=text]{border:0;min-height:34px;margin:5px 0;color:var(--rg-theme-filter-panel-text);background:var(--rg-theme-filter-panel-input-bg);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-panel-dialog .filter-actions{position:sticky;right:0;bottom:-10px;left:0;z-index:1;text-align:right;margin:10px -10px -10px;padding:0 5px 10px 10px;background:var(--rg-theme-filter-panel-bg);border-top:1px solid var(--rg-theme-filter-panel-divider)}revogr-filter-panel .filter-panel-dialog .filter-actions button{margin-top:10px;margin-right:5px}@keyframes revogr-filter-panel-open{from{opacity:0;transform:translateY(-4px) scale(0.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){revogr-filter-panel .filter-panel-dialog{animation:none}}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px;position:relative;z-index:1}.rgHeaderCell .rv-filter.active{color:var(--rg-theme-filter-panel-icon-active)}.rgHeaderCell .rv-filter .filter-img{color:var(--rg-theme-filter-panel-icon);width:11px}.select-css{display:block;font-family:sans-serif;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;color:var(--rg-theme-filter-panel-text);border:1px solid var(--rg-theme-filter-panel-select-border);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--rg-theme-filter-panel-input-bg);background-image:var(--revo-grid-filter-panel-select-arrow, url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"));background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css{}.select-css:hover{border-color:var(--rg-theme-filter-panel-select-border)}.select-css{}.select-css:focus{border-color:var(--rg-theme-filter-panel-select-border-hover);box-shadow:var(--rg-theme-filter-panel-focus-ring);outline:none}.select-css{}.select-css option{font-weight:normal}.select-css{}.select-css:disabled,.select-css[aria-disabled=true]{color:var(--rg-theme-filter-panel-muted-text);background-image:var(--revo-grid-filter-panel-select-arrow-disabled, url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"))}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--rg-theme-filter-panel-select-border)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-row{display:flex;align-items:center;gap:6px;position:relative}.multi-filter-list .multi-filter-list-row.filter-row-dragging{opacity:0.65}.multi-filter-list .multi-filter-list-row.filter-row-drag-over::before{content:"";position:absolute;top:-4px;right:0;left:0;z-index:2;height:2px;background:var(--rg-theme-filter-panel-reorder-accent);border-radius:999px;box-shadow:0 0 0 2px var(--rg-theme-filter-panel-bg)}.multi-filter-list .multi-filter-list-row.filter-row-drop-active .filter-row-drop-target{pointer-events:auto}.multi-filter-list .filter-row-drop-target{position:absolute;inset:0;z-index:1;padding:0;pointer-events:none;background:transparent;border:0}.multi-filter-list .multi-filter-list-action{display:flex;align-self:stretch;flex:0 0 auto;justify-content:flex-end;align-items:center}.multi-filter-list .and-or-button{margin:0 0 0 10px;min-width:58px;cursor:pointer}.multi-filter-list .trash-button{margin:0 0 -2px 6px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.multi-filter-list .reorder-button{border:0;background:transparent;color:var(--rg-theme-filter-panel-reorder-color);cursor:grab;font-family:monospace;font-size:12px;letter-spacing:0;line-height:1;padding:6px 2px;transform:scaleX(0.8);width:16px}.multi-filter-list .reorder-button.filter-row-drag-over{color:var(--rg-theme-filter-panel-reorder-accent)}.multi-filter-list .reorder-button:active{cursor:grabbing}.multi-filter-list-container{padding:0;margin:0;list-style:none}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--rg-theme-filter-panel-divider);height:10px}.select-input{display:flex;align-items:center;flex:1 1 auto;gap:6px;min-width:0}.select-input .select-filter,.select-input .filter-extra{flex:1 1 0;min-width:0}.select-input .select-filter{width:auto}.select-input .filter-extra{display:flex}.select-input .filter-extra>*{width:100%}.select-input input[type=text],.select-input input[type=date]{margin:0}'}},[260,"revogr-filter-panel",{filterNames:[16],filterEntities:[16],filterCaptions:[16],disableDynamicFiltering:[4,"disable-dynamic-filtering"],closeOnOutsideClick:[4,"close-on-outside-click"],allowDuplicateOperators:[4,"allow-duplicate-operators"],isFilterIdSet:[32],filterId:[32],currentFilterId:[32],currentFilterType:[32],changes:[32],filterItems:[32],draggedFilterId:[32],dragOverFilterId:[32],show:[64],getChanges:[64]},[[5,"mousedown","onMouseDown"]]]),v=g,b=function(){"undefined"!=typeof customElements&&["revogr-filter-panel"].forEach((t=>{"revogr-filter-panel"===t&&(customElements.get(l(t))||customElements.define(l(t),g))}))};export{v as RevogrFilterPanel,b as defineCustomElement}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import{h as e,proxyCustomElement as t,HTMLElement as i,createEvent as r,transformTag as s}from"@stencil/core/internal/client";import{M as o,D as n,d as h,H as l,F as a,e as d,f as c}from"./consts.js";import"./platform.js";import{a as u}from"./dimension.helpers.js";import{c as v}from"./filter.button.js";import{Q as g}from"./column.service.js";function p(e,t,i){const r=new CustomEvent(t,{detail:i,cancelable:!0,bubbles:!0});return null==e||e.dispatchEvent(r),r}function b(e,t,i){return e.preventDefault(),p(e.target,t,i)}const f=({column:t})=>{var i;const r={class:null!==(i=null==t?void 0:t.order)&&void 0!==i?i:"sort-off"};return e("span",Object.assign({},{class:"sort-indicator"}),e("i",Object.assign({},r)),(null==t?void 0:t.sortIndex)?e("sup",Object.assign({},{class:"sort-order-index"}),t.sortIndex):null)};var m;!function(e){e.start="resize:start",e.move="resize:move",e.end="resize:end"}(m||(m={}));const z={"resizable-r":{bit:1,cursor:"ew-resize"},"resizable-rb":{bit:3,cursor:"se-resize"},"resizable-b":{bit:2,cursor:"s-resize"},"resizable-lb":{bit:6,cursor:"sw-resize"},"resizable-l":{bit:4,cursor:"w-resize"},"resizable-lt":{bit:12,cursor:"nw-resize"},"resizable-t":{bit:8,cursor:"n-resize"},"resizable-rt":{bit:9,cursor:"ne-resize"}};class x{constructor(e,t){var i,r,s;this.initialProps=e,this.$event=t,this.mouseX=0,this.mouseY=0,this.width=0,this.height=0,this.changeX=0,this.changeY=0,this.disableCalcMap=15,this.props=(s=e,Object.assign(Object.assign({},s),{fitParent:s.fitParent||!1,active:s.active||[],disableAttributes:s.disableAttributes||[],minWidth:s.minWidth||0,minHeight:s.minHeight||0})),this.mouseMoveFunc=this.handleMove.bind(this),this.mouseUpFunc=this.handleUp.bind(this),this.minW=this.props.minWidth,this.minH=this.props.minHeight,this.maxW=null!==(i=this.props.maxWidth)&&void 0!==i?i:0,this.maxH=null!==(r=this.props.maxHeight)&&void 0!==r?r:0,this.parent={width:0,height:0},this.resizeState=0}set(e){this.$el=e,this.props.disableAttributes.forEach((e=>{switch(e){case"l":this.disableCalcMap&=-2;break;case"t":this.disableCalcMap&=-3;break;case"w":this.disableCalcMap&=-5;break;case"h":this.disableCalcMap&=-9}}))}emitEvent(e,t){var i;if(!this.$event)return;const r=null===(i=this.activeResizer)||void 0===i?void 0:i.classList.contains("resizable-l");this.$event(Object.assign({eventName:e,width:this.width+this.changeX*(r?-1:1),height:this.height+this.changeY,changedX:this.changeX,changedY:this.changeY},t))}static isTouchEvent(e){var t;return(null===(t=e.touches)||void 0===t?void 0:t.length)>=0}handleMove(e){var t;if(!this.resizeState)return;let i,r;x.isTouchEvent(e)?(i=e.touches[0].clientY,r=e.touches[0].clientX):(i=e.clientY,r=e.clientX);let s=this.resizeState&z["resizable-r"].bit||this.resizeState&z["resizable-l"].bit;if((this.resizeState&z["resizable-t"].bit||this.resizeState&z["resizable-b"].bit)&&8&this.disableCalcMap){let e=this.changeY+(i-this.mouseY);const t=this.height+e;t<this.minH&&(e=-(this.height-this.minH)),this.maxH&&t>this.maxH&&(e=this.maxH-this.height),this.changeY=e,this.mouseY=i,this.activeResizer&&(this.activeResizer.style.bottom=-this.changeY+"px")}if(s&&4&this.disableCalcMap){const e=null===(t=this.activeResizer)||void 0===t?void 0:t.classList.contains("resizable-l");let i=this.changeX+(r-this.mouseX);const s=this.width+i*(e?-1:1);s<this.minW&&(i=-(this.width-this.minW)),this.maxW&&s>this.maxW&&(i=this.maxW-this.width),this.changeX=i,this.mouseX=r,this.activeResizer&&(e?this.activeResizer.style.left=`${this.changeX}px`:this.activeResizer.style.right=-this.changeX+"px")}this.emitEvent(m.move)}handleDown(e){if(!e.defaultPrevented){e.preventDefault(),this.dropInitial();for(let t in z){const i=e.target;if(this.$el.contains(i)&&(null==i?void 0:i.classList.contains(t))){document.body.style.cursor=z[t].cursor,x.isTouchEvent(e)?this.setInitials(e.touches[0],i):(e.preventDefault&&e.preventDefault(),this.setInitials(e,i)),this.resizeState=z[t].bit,this.emitEvent(m.start);break}}this.bindMove()}}handleUp(e){e.preventDefault(),0!==this.resizeState&&(this.resizeState=0,document.body.style.cursor="",this.emitEvent(m.end)),this.dropInitial(),this.unbindMove()}setInitials({clientX:e,clientY:t},i){var r,s,o,n;const h=getComputedStyle(this.$el);if(this.$el.classList.add("active"),this.activeResizer=i,4&this.disableCalcMap){this.mouseX=e,this.width=this.$el.clientWidth,this.parent.width=null!==(s=null===(r=this.$el.parentElement)||void 0===r?void 0:r.clientWidth)&&void 0!==s?s:0;const t=parseFloat(h.paddingLeft)+parseFloat(h.paddingRight);this.minW=Math.max(t,this.initialProps.minWidth||0),this.initialProps.maxWidth&&(this.maxW=Math.max(this.width,this.initialProps.maxWidth))}if(8&this.disableCalcMap){this.mouseY=t,this.height=this.$el.clientHeight,this.parent.height=null!==(n=null===(o=this.$el.parentElement)||void 0===o?void 0:o.clientHeight)&&void 0!==n?n:0;const e=parseFloat(h.paddingTop)+parseFloat(h.paddingBottom);this.minH=Math.max(e,this.initialProps.minHeight||0),this.initialProps.maxHeight&&(this.maxH=Math.max(this.height,this.initialProps.maxHeight))}}dropInitial(){this.changeX=this.changeY=this.minW=this.minH,this.width=this.height=0,this.activeResizer&&this.activeResizer.removeAttribute("style"),this.$el.classList.remove("active"),this.activeResizer=void 0}bindMove(){document.documentElement.addEventListener("mouseup",this.mouseUpFunc,!0),document.documentElement.addEventListener("touchend",this.mouseUpFunc,!0),document.documentElement.addEventListener("mousemove",this.mouseMoveFunc,!0),document.documentElement.addEventListener("touchmove",this.mouseMoveFunc,!0),document.documentElement.addEventListener("mouseleave",this.mouseUpFunc)}unbindMove(){document.documentElement.removeEventListener("mouseup",this.mouseUpFunc,!0),document.documentElement.removeEventListener("touchend",this.mouseUpFunc,!0),document.documentElement.removeEventListener("mousemove",this.mouseMoveFunc,!0),document.documentElement.removeEventListener("touchmove",this.mouseMoveFunc,!0),document.documentElement.removeEventListener("mouseleave",this.mouseUpFunc)}}const w=(t,i)=>{const r=[],s=t.canResize&&new x(t,(e=>{var i;e.eventName===m.end&&(null===(i=t.onResize)||void 0===i||i.call(t,e))}))||null;if(t.active&&t.canResize)for(let i in t.active)r.push(e("div",{onClick:e=>e.preventDefault(),onDblClick:e=>{var i;e.preventDefault(),null===(i=t.onDblClick)||void 0===i||i.call(t,e)},onMouseDown:e=>null==s?void 0:s.handleDown(e),onTouchStart:e=>null==s?void 0:s.handleDown(e),class:`resizable resizable-${t.active[i]}`}));return e("div",Object.assign({},t,{ref:e=>e&&(null==s?void 0:s.set(e))}),i,r)},C="columnclick",H=({data:t,props:i,additionalData:r},s)=>{let o=(null==t?void 0:t.name)||"",n=i;if((null==t?void 0:t.columnTemplate)&&(o=t.columnTemplate(e,t,r)),null==t?void 0:t.columnProperties){const e=t.columnProperties(t);e&&(n=g(i,e))}const h=Object.assign(Object.assign({},n),{onMouseDown(e){p(e.currentTarget,C,{data:t,event:e})}});return e(w,Object.assign({},h),e("div",{class:"header-content"},o),s)},y=t=>{var i,r,s,d,c,u,g,p,b,m;const z=!!((null===(i=t.data)||void 0===i?void 0:i.sortable)||(null===(r=t.data)||void 0===r?void 0:r.order)||(null===(s=t.data)||void 0===s?void 0:s.sortIndex)),x={[l]:!0,[h]:!!(null===(d=t.data)||void 0===d?void 0:d.sortable)};(null===(c=t.data)||void 0===c?void 0:c.order)&&(x[t.data.order]=!0);const w={key:String(null!==(g=null===(u=t.data)||void 0===u?void 0:u.prop)&&void 0!==g?g:t.column.itemIndex),[n]:t.column.itemIndex,canResize:t.canResize,minWidth:(null===(p=t.data)||void 0===p?void 0:p.minSize)||o,maxWidth:null===(b=t.data)||void 0===b?void 0:b.maxSize,active:t.active||["r"],class:x,style:{width:`${t.column.size}px`,transform:`translateX(${t.column.start-(t.renderOffset||0)}px)`},onResize:t.onResize,onDblClick(e){var i;null===(i=t.onDblClick)||void 0===i||i.call(t,{column:t.data,index:t.column.itemIndex,originalEvent:e,providers:t.data.providers})},onClick(e){!e.defaultPrevented&&t.onClick&&t.onClick({column:t.data,index:t.column.itemIndex,originalEvent:e,providers:t.data.providers})}};return t.range&&t.column.itemIndex>=t.range.x&&t.column.itemIndex<=t.range.x1&&"object"==typeof w.class&&(w.class[a]=!0),e(H,{data:t.data,props:w,additionalData:t.additionalData},z?e(f,{column:t.data}):null,t.canFilter&&!1!==(null===(m=t.data)||void 0===m?void 0:m.filter)?e(v,{column:t.data}):"")},k=t=>{const i={key:`${t.group.name}-${t.group.indexes.join("-")}`,canResize:t.canResize,minWidth:t.group.indexes.length*o,maxWidth:0,active:t.active||["r"],class:{[l]:!0},style:{transform:`translateX(${t.start-(t.renderOffset||0)}px)`,width:t.end-t.start+"px"},onResize:t.onResize};return e(H,{data:Object.assign(Object.assign({},t.group),{prop:"",providers:t.providers,index:t.start}),props:i,additionalData:t.additionalData})},j=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.initialHeaderClick=r(this,"beforeheaderclick",7),this.headerresize=r(this,"headerresize",7),this.beforeResize=r(this,"beforeheaderresize",7),this.headerdblClick=r(this,"headerdblclick",7),this.beforeHeaderRender=r(this,"beforeheaderrender",7),this.beforeGroupHeaderRender=r(this,"beforegroupheaderrender",7),this.afterHeaderRender=r(this,"afterheaderrender",7),this.groupingDepth=0,this.additionalData={}}onResize({width:e},t){this.beforeResize.emit([Object.assign(Object.assign({},this.colData[t]),{size:e||void 0})]).defaultPrevented||this.headerresize.emit({[t]:e||0})}onResizeGroup(e,t,i){const r={},s=e/(i-t+1);for(let e=t;e<=i;e++){const t=u(this.dimensionCol.state,e);r[e]=t.end-t.start+s}this.headerresize.emit(r)}componentDidRender(){this.afterHeaderRender.emit(this.providers)}render(){var t;const i=this.viewportCol.get("items"),r=null===(t=this.selectionStore)||void 0===t?void 0:t.get("range"),{cells:s}=this.renderHeaderColumns(i,r),o=this.renderGroupingColumns();return[e("div",{key:"3cc466db6bc4df0cd61c47a22c3a0473318e5dd8",class:"group-rgRow"},o),e("div",{key:"9742a3fa4d4b75073aef5544806f42386ebffdea",class:`${d} ${c}`},s)]}renderHeaderColumns(t,i){const r=[],s=this.viewportCol.get("renderOffset")||0;for(let e of t){const t={range:i,column:e,data:Object.assign(Object.assign({},this.colData[e.itemIndex]),{index:e.itemIndex,providers:this.providers}),canFilter:!!this.columnFilter,canResize:this.canResize,renderOffset:s,active:this.resizeHandler,additionalData:this.additionalData,onResize:t=>this.onResize(t,e.itemIndex),onDblClick:e=>this.headerdblClick.emit(e),onClick:e=>this.initialHeaderClick.emit(e)},o=this.beforeHeaderRender.emit(t);o.defaultPrevented||r.push(o.detail)}const o=this.getDuplicateHeaderProps(r);return{cells:r.map((t=>e(y,Object.assign({key:this.getHeaderCellKey(t.data,this.type,o)},t))))}}renderGroupingColumns(){const e=this.getVisibleGroupRange();return Array.from({length:this.groupingDepth},((t,i)=>this.renderGroupRow(i,e))).flat()}renderGroupRow(t,i){return[...(this.groups[t]||[]).map((e=>this.renderGroupColumn(e,t,i))).filter((e=>!!e)),e("div",{key:`group-row-${t}`,class:{[d]:!0,group:!0}})]}renderGroupColumn(t,i,r){const s=this.getGroupIndexRange(t),o=this.getGroupBounds(s),n={level:i,providers:this.providers,start:o.start,end:o.end,group:t,renderOffset:this.viewportCol.get("renderOffset")||0,active:this.resizeHandler,canResize:this.canResize,additionalData:this.additionalData,onResize:e=>{var t;return s?this.onResizeGroup(null!==(t=e.changedX)&&void 0!==t?t:0,s.startIndex,s.endIndex):void 0}},h=this.beforeGroupHeaderRender.emit(n);if(h.defaultPrevented)return;const l=this.getGroupIndexRange(h.detail.group);if(!(l&&r&&(a=l.startIndex,d=l.endIndex,c=r,a<=c.end&&d>=c.start)))return;var a,d,c;h.detail.onResize===n.onResize&&(h.detail.onResize=e=>{var t;return this.onResizeGroup(null!==(t=e.changedX)&&void 0!==t?t:0,l.startIndex,l.endIndex)});const u=this.getGroupBounds(l);return h.detail.start===n.start&&(h.detail.start=u.start),h.detail.end===n.end&&(h.detail.end=u.end),e(k,Object.assign({key:this.getGroupHeaderCellKey(h.detail.group,i)},h.detail))}getGroupIndexRange(e){var t;const i=null!==(t=e.indexes[0])&&void 0!==t?t:-1;if(!(i<0))return{startIndex:i,endIndex:e.indexes[e.indexes.length-1]}}getGroupBounds(e){return e?{start:u(this.dimensionCol.state,e.startIndex).start,end:u(this.dimensionCol.state,e.endIndex).end}:{start:0,end:0}}getVisibleGroupRange(){const e=this.viewportCol.get("items");if(e.length)return e.reduce(((e,t)=>({start:Math.min(e.start,t.itemIndex),end:Math.max(e.end,t.itemIndex)})),{start:e[0].itemIndex,end:e[0].itemIndex})}getHeaderCellKey(e,t,i){if(void 0===(null==e?void 0:e.prop))return`${t}-${String(null==e?void 0:e.index)}`;const r=String(e.prop);return i.has(r)?`${t}-${r}-${String(e.index)}`:`${t}-${r}`}getDuplicateHeaderProps(e){const t=new Set,i=new Set;return e.forEach((({data:e})=>{if(void 0!==(null==e?void 0:e.prop)){const r=String(e.prop);t.has(r)?i.add(r):t.add(r)}})),i}getGroupHeaderCellKey(e,t){return`group-${t}-${e.name}-${e.indexes.join("-")}`}get providers(){return{type:this.type,readonly:this.readonly,data:this.colData,viewport:this.viewportCol,dimension:this.dimensionCol,selection:this.selectionStore}}get element(){return this}static get style(){return'@charset "UTF-8";revogr-header{position:relative;z-index:5;display:block}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative;overflow:hidden}revogr-header .rgHeaderCell{position:absolute;box-sizing:border-box;height:100%;z-index:1;display:flex;text-align:var(--rg-theme-header-text-align, center)}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell .sort-indicator{display:inline-flex;align-items:flex-start;gap:1px}revogr-header .rgHeaderCell .sort-indicator i.asc:after,revogr-header .rgHeaderCell .sort-indicator i.desc:after{font-size:13px}revogr-header .rgHeaderCell .sort-indicator i.asc:after{content:"↑"}revogr-header .rgHeaderCell .sort-indicator i.desc:after{content:"↓"}revogr-header .rgHeaderCell .sort-indicator .sort-order-index{font-size:10px;line-height:1;top:0}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:var(--rg-theme-header-resize-hover)}revogr-header .rgHeaderCell .header-content{position:absolute;inset:0;box-sizing:border-box;padding:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell>span:first-of-type{position:relative;z-index:1;margin-left:auto}revogr-header .rgHeaderCell .resizable{display:block;position:absolute;z-index:90;touch-action:none;user-select:none}revogr-header .rgHeaderCell .resizable:hover{background-color:var(--rg-theme-header-resize-hover)}revogr-header .rgHeaderCell>.resizable-r{cursor:ew-resize;width:6px;right:0;top:0;height:100%}revogr-header .rgHeaderCell>.resizable-rb{cursor:se-resize;width:6px;height:6px;right:0;bottom:0}revogr-header .rgHeaderCell>.resizable-b{cursor:s-resize;height:6px;bottom:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-lb{cursor:sw-resize;width:6px;height:6px;left:0;bottom:0}revogr-header .rgHeaderCell>.resizable-l{cursor:w-resize;width:6px;left:0;height:100%;top:0}revogr-header .rgHeaderCell>.resizable-lt{cursor:nw-resize;width:6px;height:6px;left:0;top:0}revogr-header .rgHeaderCell>.resizable-t{cursor:n-resize;height:6px;top:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-rt{cursor:ne-resize;width:6px;height:6px;right:0;top:0}revogr-header .rv-filter{visibility:hidden}'}},[0,"revogr-header",{viewportCol:[16],dimensionCol:[16],selectionStore:[16],groups:[16],groupingDepth:[2,"grouping-depth"],readonly:[4],canResize:[4,"can-resize"],resizeHandler:[16],colData:[16],columnFilter:[4,"column-filter"],type:[1],additionalData:[8,"additional-data"]}]);function O(){"undefined"!=typeof customElements&&["revogr-header"].forEach((e=>{"revogr-header"===e&&(customElements.get(s(e))||customElements.define(s(e),j))}))}export{C as O,j as R,f as S,b as a,O as b,p as d}
4
+ import{h as e,proxyCustomElement as t,HTMLElement as i,createEvent as r,transformTag as s}from"@stencil/core/internal/client";import{M as o,D as n,d as h,H as l,F as a,e as d,f as c}from"./consts.js";import"./platform.js";import{a as u}from"./dimension.helpers.js";import{c as v}from"./filter.button.js";import{Q as g}from"./column.service.js";function p(e,t,i){const r=new CustomEvent(t,{detail:i,cancelable:!0,bubbles:!0});return null==e||e.dispatchEvent(r),r}function b(e,t,i){return e.preventDefault(),p(e.target,t,i)}const f=({column:t})=>{var i;const r={class:null!==(i=null==t?void 0:t.order)&&void 0!==i?i:"sort-off"};return e("span",Object.assign({},{class:"sort-indicator"}),e("i",Object.assign({},r)),(null==t?void 0:t.sortIndex)?e("sup",Object.assign({},{class:"sort-order-index"}),t.sortIndex):null)};var m;!function(e){e.start="resize:start",e.move="resize:move",e.end="resize:end"}(m||(m={}));const z={"resizable-r":{bit:1,cursor:"ew-resize"},"resizable-rb":{bit:3,cursor:"se-resize"},"resizable-b":{bit:2,cursor:"s-resize"},"resizable-lb":{bit:6,cursor:"sw-resize"},"resizable-l":{bit:4,cursor:"w-resize"},"resizable-lt":{bit:12,cursor:"nw-resize"},"resizable-t":{bit:8,cursor:"n-resize"},"resizable-rt":{bit:9,cursor:"ne-resize"}};class x{constructor(e,t){var i,r,s;this.initialProps=e,this.$event=t,this.mouseX=0,this.mouseY=0,this.width=0,this.height=0,this.changeX=0,this.changeY=0,this.disableCalcMap=15,this.props=(s=e,Object.assign(Object.assign({},s),{fitParent:s.fitParent||!1,active:s.active||[],disableAttributes:s.disableAttributes||[],minWidth:s.minWidth||0,minHeight:s.minHeight||0})),this.mouseMoveFunc=this.handleMove.bind(this),this.mouseUpFunc=this.handleUp.bind(this),this.minW=this.props.minWidth,this.minH=this.props.minHeight,this.maxW=null!==(i=this.props.maxWidth)&&void 0!==i?i:0,this.maxH=null!==(r=this.props.maxHeight)&&void 0!==r?r:0,this.parent={width:0,height:0},this.resizeState=0}set(e){this.$el=e,this.props.disableAttributes.forEach((e=>{switch(e){case"l":this.disableCalcMap&=-2;break;case"t":this.disableCalcMap&=-3;break;case"w":this.disableCalcMap&=-5;break;case"h":this.disableCalcMap&=-9}}))}emitEvent(e,t){var i;if(!this.$event)return;const r=null===(i=this.activeResizer)||void 0===i?void 0:i.classList.contains("resizable-l");this.$event(Object.assign({eventName:e,width:this.width+this.changeX*(r?-1:1),height:this.height+this.changeY,changedX:this.changeX,changedY:this.changeY},t))}static isTouchEvent(e){var t;return(null===(t=e.touches)||void 0===t?void 0:t.length)>=0}handleMove(e){var t;if(!this.resizeState)return;let i,r;x.isTouchEvent(e)?(i=e.touches[0].clientY,r=e.touches[0].clientX):(i=e.clientY,r=e.clientX);let s=this.resizeState&z["resizable-r"].bit||this.resizeState&z["resizable-l"].bit;if((this.resizeState&z["resizable-t"].bit||this.resizeState&z["resizable-b"].bit)&&8&this.disableCalcMap){let e=this.changeY+(i-this.mouseY);const t=this.height+e;t<this.minH&&(e=-(this.height-this.minH)),this.maxH&&t>this.maxH&&(e=this.maxH-this.height),this.changeY=e,this.mouseY=i,this.activeResizer&&(this.activeResizer.style.bottom=-this.changeY+"px")}if(s&&4&this.disableCalcMap){const e=null===(t=this.activeResizer)||void 0===t?void 0:t.classList.contains("resizable-l");let i=this.changeX+(r-this.mouseX);const s=this.width+i*(e?-1:1);s<this.minW&&(i=-(this.width-this.minW)),this.maxW&&s>this.maxW&&(i=this.maxW-this.width),this.changeX=i,this.mouseX=r,this.activeResizer&&(e?this.activeResizer.style.left=`${this.changeX}px`:this.activeResizer.style.right=-this.changeX+"px")}this.emitEvent(m.move)}handleDown(e){if(!e.defaultPrevented){e.preventDefault(),this.dropInitial();for(let t in z){const i=e.target;if(this.$el.contains(i)&&(null==i?void 0:i.classList.contains(t))){document.body.style.cursor=z[t].cursor,x.isTouchEvent(e)?this.setInitials(e.touches[0],i):(e.preventDefault&&e.preventDefault(),this.setInitials(e,i)),this.resizeState=z[t].bit,this.emitEvent(m.start);break}}this.bindMove()}}handleUp(e){e.preventDefault(),0!==this.resizeState&&(this.resizeState=0,document.body.style.cursor="",this.emitEvent(m.end)),this.dropInitial(),this.unbindMove()}setInitials({clientX:e,clientY:t},i){var r,s,o,n;const h=getComputedStyle(this.$el);if(this.$el.classList.add("active"),this.activeResizer=i,4&this.disableCalcMap){this.mouseX=e,this.width=this.$el.clientWidth,this.parent.width=null!==(s=null===(r=this.$el.parentElement)||void 0===r?void 0:r.clientWidth)&&void 0!==s?s:0;const t=parseFloat(h.paddingLeft)+parseFloat(h.paddingRight);this.minW=Math.max(t,this.initialProps.minWidth||0),this.initialProps.maxWidth&&(this.maxW=Math.max(this.width,this.initialProps.maxWidth))}if(8&this.disableCalcMap){this.mouseY=t,this.height=this.$el.clientHeight,this.parent.height=null!==(n=null===(o=this.$el.parentElement)||void 0===o?void 0:o.clientHeight)&&void 0!==n?n:0;const e=parseFloat(h.paddingTop)+parseFloat(h.paddingBottom);this.minH=Math.max(e,this.initialProps.minHeight||0),this.initialProps.maxHeight&&(this.maxH=Math.max(this.height,this.initialProps.maxHeight))}}dropInitial(){this.changeX=this.changeY=this.minW=this.minH,this.width=this.height=0,this.activeResizer&&this.activeResizer.removeAttribute("style"),this.$el.classList.remove("active"),this.activeResizer=void 0}bindMove(){document.documentElement.addEventListener("mouseup",this.mouseUpFunc,!0),document.documentElement.addEventListener("touchend",this.mouseUpFunc,!0),document.documentElement.addEventListener("mousemove",this.mouseMoveFunc,!0),document.documentElement.addEventListener("touchmove",this.mouseMoveFunc,!0),document.documentElement.addEventListener("mouseleave",this.mouseUpFunc)}unbindMove(){document.documentElement.removeEventListener("mouseup",this.mouseUpFunc,!0),document.documentElement.removeEventListener("touchend",this.mouseUpFunc,!0),document.documentElement.removeEventListener("mousemove",this.mouseMoveFunc,!0),document.documentElement.removeEventListener("touchmove",this.mouseMoveFunc,!0),document.documentElement.removeEventListener("mouseleave",this.mouseUpFunc)}}const w=(t,i)=>{const r=[],s=t.canResize&&new x(t,(e=>{var i;e.eventName===m.end&&(null===(i=t.onResize)||void 0===i||i.call(t,e))}))||null;if(t.active&&t.canResize)for(let i in t.active)r.push(e("div",{onClick:e=>e.preventDefault(),onDblClick:e=>{var i;e.preventDefault(),null===(i=t.onDblClick)||void 0===i||i.call(t,e)},onMouseDown:e=>null==s?void 0:s.handleDown(e),onTouchStart:e=>null==s?void 0:s.handleDown(e),class:`resizable resizable-${t.active[i]}`}));return e("div",Object.assign({},t,{ref:e=>e&&(null==s?void 0:s.set(e))}),i,r)},C="columnclick",H=({data:t,props:i,additionalData:r},s)=>{let o=(null==t?void 0:t.name)||"",n=i;if((null==t?void 0:t.columnTemplate)&&(o=t.columnTemplate(e,t,r)),null==t?void 0:t.columnProperties){const e=t.columnProperties(t);e&&(n=g(i,e))}const h=Object.assign(Object.assign({},n),{onMouseDown(e){p(e.currentTarget,C,{data:t,event:e})}});return e(w,Object.assign({},h),e("div",{class:"header-content"},o),s)},y=t=>{var i,r,s,d,c,u,g,p,b,m;const z=!!((null===(i=t.data)||void 0===i?void 0:i.sortable)||(null===(r=t.data)||void 0===r?void 0:r.order)||(null===(s=t.data)||void 0===s?void 0:s.sortIndex)),x={[l]:!0,[h]:!!(null===(d=t.data)||void 0===d?void 0:d.sortable)};(null===(c=t.data)||void 0===c?void 0:c.order)&&(x[t.data.order]=!0);const w={key:String(null!==(g=null===(u=t.data)||void 0===u?void 0:u.prop)&&void 0!==g?g:t.column.itemIndex),[n]:t.column.itemIndex,canResize:t.canResize,minWidth:(null===(p=t.data)||void 0===p?void 0:p.minSize)||o,maxWidth:null===(b=t.data)||void 0===b?void 0:b.maxSize,active:t.active||["r"],class:x,style:{width:`${t.column.size}px`,transform:`translateX(${t.column.start-(t.renderOffset||0)}px)`},onResize:t.onResize,onDblClick(e){var i;null===(i=t.onDblClick)||void 0===i||i.call(t,{column:t.data,index:t.column.itemIndex,originalEvent:e,providers:t.data.providers})},onClick(e){!e.defaultPrevented&&t.onClick&&t.onClick({column:t.data,index:t.column.itemIndex,originalEvent:e,providers:t.data.providers})}};return t.range&&t.column.itemIndex>=t.range.x&&t.column.itemIndex<=t.range.x1&&"object"==typeof w.class&&(w.class[a]=!0),e(H,{data:t.data,props:w,additionalData:t.additionalData},z?e(f,{column:t.data}):null,t.canFilter&&!1!==(null===(m=t.data)||void 0===m?void 0:m.filter)?e(v,{column:t.data}):"")},k=t=>{const i={key:`${t.group.name}-${t.group.indexes.join("-")}`,canResize:t.canResize,minWidth:t.group.indexes.length*o,maxWidth:0,active:t.active||["r"],class:{[l]:!0},style:{transform:`translateX(${t.start-(t.renderOffset||0)}px)`,width:t.end-t.start+"px"},onResize:t.onResize};return e(H,{data:Object.assign(Object.assign({},t.group),{prop:"",providers:t.providers,index:t.start}),props:i,additionalData:t.additionalData})},j=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.initialHeaderClick=r(this,"beforeheaderclick",7),this.headerresize=r(this,"headerresize",7),this.beforeResize=r(this,"beforeheaderresize",7),this.headerdblClick=r(this,"headerdblclick",7),this.beforeHeaderRender=r(this,"beforeheaderrender",7),this.beforeGroupHeaderRender=r(this,"beforegroupheaderrender",7),this.afterHeaderRender=r(this,"afterheaderrender",7),this.groupingDepth=0,this.additionalData={}}onResize({width:e},t){this.beforeResize.emit([Object.assign(Object.assign({},this.colData[t]),{size:e||void 0})]).defaultPrevented||this.headerresize.emit({[t]:e||0})}onResizeGroup(e,t,i){const r={},s=e/(i-t+1);for(let e=t;e<=i;e++){const t=u(this.dimensionCol.state,e);r[e]=t.end-t.start+s}this.headerresize.emit(r)}componentDidRender(){this.afterHeaderRender.emit(this.providers)}render(){var t;const i=this.viewportCol.get("items"),r=null===(t=this.selectionStore)||void 0===t?void 0:t.get("range"),{cells:s}=this.renderHeaderColumns(i,r),o=this.renderGroupingColumns();return[e("div",{key:"3cc466db6bc4df0cd61c47a22c3a0473318e5dd8",class:"group-rgRow"},o),e("div",{key:"9742a3fa4d4b75073aef5544806f42386ebffdea",class:`${d} ${c}`},s)]}renderHeaderColumns(t,i){const r=[],s=this.viewportCol.get("renderOffset")||0;for(let e of t){const t={range:i,column:e,data:Object.assign(Object.assign({},this.colData[e.itemIndex]),{index:e.itemIndex,providers:this.providers}),canFilter:!!this.columnFilter,canResize:this.canResize,renderOffset:s,active:this.resizeHandler,additionalData:this.additionalData,onResize:t=>this.onResize(t,e.itemIndex),onDblClick:e=>this.headerdblClick.emit(e),onClick:e=>this.initialHeaderClick.emit(e)},o=this.beforeHeaderRender.emit(t);o.defaultPrevented||r.push(o.detail)}const o=this.getDuplicateHeaderProps(r);return{cells:r.map((t=>e(y,Object.assign({key:this.getHeaderCellKey(t.data,this.type,o)},t))))}}renderGroupingColumns(){const e=this.getVisibleGroupRange();return Array.from({length:this.groupingDepth},((t,i)=>this.renderGroupRow(i,e))).flat()}renderGroupRow(t,i){return[...(this.groups[t]||[]).map((e=>this.renderGroupColumn(e,t,i))).filter((e=>!!e)),e("div",{key:`group-row-${t}`,class:{[d]:!0,group:!0}})]}renderGroupColumn(t,i,r){const s=this.getGroupIndexRange(t),o=this.getGroupBounds(s),n={level:i,providers:this.providers,start:o.start,end:o.end,group:t,renderOffset:this.viewportCol.get("renderOffset")||0,active:this.resizeHandler,canResize:this.canResize,additionalData:this.additionalData,onResize:e=>{var t;return s?this.onResizeGroup(null!==(t=e.changedX)&&void 0!==t?t:0,s.startIndex,s.endIndex):void 0}},h=this.beforeGroupHeaderRender.emit(n);if(h.defaultPrevented)return;const l=this.getGroupIndexRange(h.detail.group);if(!(l&&r&&(a=l.startIndex,d=l.endIndex,c=r,a<=c.end&&d>=c.start)))return;var a,d,c;h.detail.onResize===n.onResize&&(h.detail.onResize=e=>{var t;return this.onResizeGroup(null!==(t=e.changedX)&&void 0!==t?t:0,l.startIndex,l.endIndex)});const u=this.getGroupBounds(l);return h.detail.start===n.start&&(h.detail.start=u.start),h.detail.end===n.end&&(h.detail.end=u.end),e(k,Object.assign({key:this.getGroupHeaderCellKey(h.detail.group,i)},h.detail))}getGroupIndexRange(e){var t;const i=null!==(t=e.indexes[0])&&void 0!==t?t:-1;if(!(i<0))return{startIndex:i,endIndex:e.indexes[e.indexes.length-1]}}getGroupBounds(e){return e?{start:u(this.dimensionCol.state,e.startIndex).start,end:u(this.dimensionCol.state,e.endIndex).end}:{start:0,end:0}}getVisibleGroupRange(){const e=this.viewportCol.get("items");if(e.length)return e.reduce(((e,t)=>({start:Math.min(e.start,t.itemIndex),end:Math.max(e.end,t.itemIndex)})),{start:e[0].itemIndex,end:e[0].itemIndex})}getHeaderCellKey(e,t,i){if(void 0===(null==e?void 0:e.prop))return`${t}-${String(null==e?void 0:e.index)}`;const r=String(e.prop);return i.has(r)?`${t}-${r}-${String(e.index)}`:`${t}-${r}`}getDuplicateHeaderProps(e){const t=new Set,i=new Set;return e.forEach((({data:e})=>{if(void 0!==(null==e?void 0:e.prop)){const r=String(e.prop);t.has(r)?i.add(r):t.add(r)}})),i}getGroupHeaderCellKey(e,t){return`group-${t}-${e.name}-${e.indexes.join("-")}`}get providers(){return{type:this.type,readonly:this.readonly,data:this.colData,viewport:this.viewportCol,dimension:this.dimensionCol,selection:this.selectionStore}}get element(){return this}static get style(){return'@charset "UTF-8";revogr-header{position:relative;z-index:5;display:block}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative;overflow:hidden}revogr-header .rgHeaderCell{position:absolute;box-sizing:border-box;height:100%;z-index:1;display:flex;text-align:var(--rg-theme-header-text-align, center)}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell .sort-indicator{display:inline-flex;align-items:flex-start;gap:1px}revogr-header .rgHeaderCell .sort-indicator i.asc:after,revogr-header .rgHeaderCell .sort-indicator i.desc:after{font-size:13px}revogr-header .rgHeaderCell .sort-indicator i.asc:after{content:"↑"}revogr-header .rgHeaderCell .sort-indicator i.desc:after{content:"↓"}revogr-header .rgHeaderCell .sort-indicator .sort-order-index{font-size:10px;line-height:1;top:0}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:var(--rg-theme-header-resize-hover)}revogr-header .rgHeaderCell .header-content{position:absolute;z-index:0;inset:0;box-sizing:border-box;padding:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell>span:first-of-type{position:relative;z-index:1;margin-left:auto}revogr-header .rgHeaderCell .resizable{display:block;position:absolute;z-index:90;touch-action:none;user-select:none}revogr-header .rgHeaderCell .resizable:hover{background-color:var(--rg-theme-header-resize-hover)}revogr-header .rgHeaderCell>.resizable-r{cursor:ew-resize;width:6px;right:0;top:0;height:100%}revogr-header .rgHeaderCell>.resizable-rb{cursor:se-resize;width:6px;height:6px;right:0;bottom:0}revogr-header .rgHeaderCell>.resizable-b{cursor:s-resize;height:6px;bottom:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-lb{cursor:sw-resize;width:6px;height:6px;left:0;bottom:0}revogr-header .rgHeaderCell>.resizable-l{cursor:w-resize;width:6px;left:0;height:100%;top:0}revogr-header .rgHeaderCell>.resizable-lt{cursor:nw-resize;width:6px;height:6px;left:0;top:0}revogr-header .rgHeaderCell>.resizable-t{cursor:n-resize;height:6px;top:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-rt{cursor:ne-resize;width:6px;height:6px;right:0;top:0}revogr-header .rv-filter{visibility:hidden}'}},[0,"revogr-header",{viewportCol:[16],dimensionCol:[16],selectionStore:[16],groups:[16],groupingDepth:[2,"grouping-depth"],readonly:[4],canResize:[4,"can-resize"],resizeHandler:[16],colData:[16],columnFilter:[4,"column-filter"],type:[1],additionalData:[8,"additional-data"]}]);function O(){"undefined"!=typeof customElements&&["revogr-header"].forEach((e=>{"revogr-header"===e&&(customElements.get(s(e))||customElements.define(s(e),j))}))}export{C as O,j as R,f as S,b as a,O as b,p as d}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import{h as t,proxyCustomElement as e,HTMLElement as i,createEvent as s,Host as o,transformTag as n}from"@stencil/core/internal/client";import{g as r,M as a,z as l,N as h,b as c}from"./column.service.js";import{c as d}from"./platform.js";import{R as u,i as g,j as p,S as v}from"./consts.js";import{b as f,i as b,c as m,a as y,g as x,d as j,e as w,s as O,f as S,v as D}from"./selection.utils.js";import{l as C,m as M,c as k,d as R,f as E,h as A,g as F,j as T,k as P,o as z}from"./revogr-edit2.js";import{t as K}from"./index2.js";import{d as U}from"./debounce.js";import{d as X}from"./revogr-clipboard2.js";import{d as $}from"./revogr-order-editor2.js";const H=[d.TAB,d.ARROW_UP,d.ARROW_DOWN,d.ARROW_LEFT,d.ARROW_RIGHT];class L{constructor(t){this.sv=t}appendPendingEditValue(t){if(C(t)||1!==t.key.length||t.target instanceof HTMLElement&&M(t.target))return!1;const e=this.sv.selectionStore.get("edit");return"string"==typeof(null==e?void 0:e.val)&&(t.preventDefault(),this.sv.selectionStore.set("edit",Object.assign(Object.assign({},e),{val:`${e.val}${t.key}`})),!0)}async keyDown(t,e,i,{range:s,focus:o}){if(i){if(this.appendPendingEditValue(t))return;switch(t.code){case d.ESCAPE:this.sv.cancel();break;case d.TAB:this.keyChangeSelection(t,e)}}else s&&k(t.code)?this.sv.clearCell():o&&(R(t.code)?this.keyChangeSelection(t,e):E(t.key)?this.sv.change():A(t)||F(t)||(T(t)?this.sv.internalPaste():P(t)?e&&this.selectAll(t):C(t)||1!==t.key.length?await this.keyChangeSelection(t,e):this.sv.change(t.key)&&t.preventDefault()))}selectAll(t){const e=this.sv.selectionStore.get("range"),i=this.sv.selectionStore.get("focus");e&&i&&(t.preventDefault(),this.sv.selectAll())}async keyChangeSelection(t,e){const i=this.changeDirectionKey(t,e);if(!i)return!1;await K(u+30);const s=this.sv.selectionStore.get("range"),o=this.sv.selectionStore.get("focus");return this.keyPositionChange(i.changes,s,o,i.isMulti)}keyPositionChange(t,e,i,s=!1){if(!e||!i)return!1;const o=f(e,i,t,s);if(!o)return!1;const n=this.sv.getData();if(s){if([o.start,o.end].some((t=>b(t,n.lastCell)||m(t))))return!1;const t=r(o.start,o.end);return this.sv.range(t)}return this.sv.focus(o.start,t,b(o.start,n.lastCell)?1:m(o.start)?-1:0)}changeDirectionKey(t,e){const i=e&&t.shiftKey;if(H.includes(t.code)&&t.preventDefault(),t.shiftKey&&t.code===d.TAB)return{changes:{x:-1},isMulti:!1};switch(t.code){case d.ARROW_UP:return{changes:{y:-1},isMulti:i};case d.ARROW_DOWN:return{changes:{y:1},isMulti:i};case d.ARROW_LEFT:return{changes:{x:-1},isMulti:i};case d.TAB:case d.ARROW_RIGHT:return{changes:{x:1},isMulti:i}}}}class N{constructor(t){this.sv=t,this.autoFillType=null,this.autoFillInitial=null,this.autoFillStart=null,this.autoFillLast=null}renderAutofill(e,i,s=!1){let o;return o=y(e||Object.assign(Object.assign({},i),{x1:i.x,y1:i.y}),this.sv.dimensionRow.state,this.sv.dimensionCol.state),t("div",{class:{[p]:!0,[g]:s},style:{left:`${o.right}px`,top:`${o.bottom}px`},onMouseDown:t=>this.autoFillHandler(t),onTouchStart:t=>this.autoFillHandler(t)})}autoFillHandler(t,e="AutoFill"){let i=null;t.target instanceof Element&&(i=t.target),i&&(this.selectionStart(i,this.sv.getData(),e),t.preventDefault())}get isAutoFill(){return!!this.autoFillType}selectionMouseMove(t){this.onMouseMoveAutofill||(this.onMouseMoveAutofill=U(((t,e)=>this.doAutofillMouseMove(t,e)),5)),this.isAutoFill&&this.onMouseMoveAutofill(t,this.sv.getData())}getFocus(t,e){return!t&&e&&(t={x:e.x,y:e.y}),t||null}doAutofillMouseMove(t,e){if(!this.autoFillInitial)return;const i=x(t,"clientX",g),s=x(t,"clientY",g);if(null===i||null===s)return;const o=j({x:i,y:s},e);if(this.autoFillLast||this.autoFillLast||(this.autoFillLast=this.autoFillStart),!b(o,e.lastCell))if(this.autoFillLast=o,o.x===this.autoFillInitial.x&&o.y===this.autoFillInitial.y)this.sv.setTempRange(null);else{const t=r(this.autoFillInitial,this.autoFillLast);this.sv.setTempRange({area:t,type:this.autoFillType})}}selectionStart(t,e,i="Selection"){const{top:s,left:o}=t.getBoundingClientRect();this.autoFillInitial=this.getFocus(e.focus,e.range),this.autoFillType=i,this.autoFillStart=j({x:o,y:s},e)}clearAutoFillSelection(t,e){if(this.autoFillInitial)if(this.autoFillInitial=this.getFocus(t,e),"AutoFill"===this.autoFillType){const t=r(this.autoFillInitial,this.autoFillLast);if(t){const{defaultPrevented:i,detail:{range:s}}=this.sv.clearRangeDataApply({range:t});!i&&e?this.applyRangeWithData(s,e):this.sv.setTempRange(null)}}else this.applyRangeOnly(this.autoFillInitial,this.autoFillLast);this.resetAutoFillState()}resetAutoFillState(){this.autoFillType=null,this.autoFillInitial=null,this.autoFillLast=null,this.autoFillStart=null}onRangeApply(t,e,i){this.sv.rangeDataApply({data:t,models:w(t,this.sv.dataStore),type:this.sv.dataStore.get("type"),oldRange:i,newRange:e}),this.sv.setRange(e)}applyRangeWithData(t,e){const i={type:this.sv.dataStore.get("type"),colType:this.sv.columnService.type,newData:{},mapping:{},newRange:t,oldRange:e},{mapping:s,changed:o}=this.sv.columnService.getRangeData(i,this.sv.columnService.columns);i.newData=o,i.mapping=s;let n=this.sv.selectionChanged(i);n.defaultPrevented?this.sv.setTempRange(null):(n=this.sv.rangeCopy(i),n.defaultPrevented?this.sv.setRange(t):this.onRangeApply(i.newData,t,e))}applyRangeOnly(t,e){if(!t||!e)return;const i=r(t,e);this.sv.setRange(i)}}const W=e(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.beforeCopyRegion=s(this,"beforecopyregion",7),this.beforeRegionPaste=s(this,"beforepasteregion",7),this.cellEditApply=s(this,"celleditapply",7),this.beforeFocusCell=s(this,"beforecellfocusinit",7),this.beforeNextViewportFocus=s(this,"beforenextvpfocus",7),this.setEdit=s(this,"setedit",7),this.beforeApplyRange=s(this,"beforeapplyrange",7),this.beforeSetRange=s(this,"beforesetrange",7),this.setRange=s(this,"setrange",7),this.beforeEditRender=s(this,"beforeeditrender",7),this.selectAll=s(this,"selectall",7),this.cancelEdit=s(this,"canceledit",7),this.setTempRange=s(this,"settemprange",7),this.beforeSetTempRange=s(this,"beforesettemprange",7),this.applyFocus=s(this,"applyfocus",7),this.focusCell=s(this,"focuscell",7),this.beforeRangeDataApply=s(this,"beforerangedataapply",7),this.selectionChange=s(this,"selectionchangeinit",7),this.beforeRangeCopyApply=s(this,"beforerangecopyapply",7),this.rangeEditApply=s(this,"rangeeditapply",7),this.rangeClipboardCopy=s(this,"clipboardrangecopy",7),this.rangeClipboardPaste=s(this,"clipboardrangepaste",7),this.beforeKeyDown=s(this,"beforekeydown",7),this.beforeKeyUp=s(this,"beforekeyup",7),this.beforeCellSave=s(this,"beforecellsave",7),this.cellEditDone=s(this,"celledit",7),this.applyChangesOnClose=!1,this.keyboardService=null,this.autoFillService=null,this.unsubscribeSelectionStore=[]}onMouseMove(t){var e;this.selectionStore.get("focus")&&(null===(e=this.autoFillService)||void 0===e||e.selectionMouseMove(t))}onMouseUp(){var t;null===(t=this.autoFillService)||void 0===t||t.clearAutoFillSelection(this.selectionStore.get("focus"),this.selectionStore.get("range"))}onCellDrag(t){var e;null===(e=this.orderEditor)||void 0===e||e.dragStart(t.detail)}onKeyUp(t){this.beforeKeyUp.emit(Object.assign({original:t},this.getData()))}onKeyDown(t){var e;const i=this.beforeKeyDown.emit(Object.assign({original:t},this.getData()));t.defaultPrevented||i.defaultPrevented||null===(e=this.keyboardService)||void 0===e||e.keyDown(t,this.range,!!this.selectionStore.get("edit"),{focus:this.selectionStore.get("focus"),range:this.selectionStore.get("range")})}selectionServiceSet(t){this.unsubscribeSelectionStore.forEach((t=>t())),this.unsubscribeSelectionStore.length=0,this.unsubscribeSelectionStore.push(t.onChange("nextFocus",(t=>t&&this.doFocus(t,t)))),this.keyboardService=new L({selectionStore:t,range:t=>!!t&&this.triggerRangeEvent(t),focus:(t,e,i)=>i?(this.beforeNextViewportFocus.emit(t),!1):this.doFocus(t,t,e),change:t=>this.doEdit(t),cancel:async()=>{var t;await(null===(t=this.revogrEdit)||void 0===t?void 0:t.cancelChanges()),this.closeEdit()},clearCell:()=>!this.readonly&&this.clearCell(),internalPaste:()=>!this.readonly&&this.beforeRegionPaste.emit(),getData:()=>this.getData(),selectAll:()=>this.selectAll.emit()}),this.createAutoFillService()}createAutoFillService(){this.autoFillService=new N({dimensionRow:this.dimensionRow,dimensionCol:this.dimensionCol,columnService:this.columnService,dataStore:this.dataStore,clearRangeDataApply:t=>this.beforeRangeDataApply.emit(Object.assign(Object.assign(Object.assign({},t),this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)})),setTempRange:t=>{const e=this.beforeSetTempRange.emit(Object.assign(Object.assign({tempRange:t},this.getData()),this.types));return e.defaultPrevented?null:this.setTempRange.emit(e.detail.tempRange)},selectionChanged:t=>this.selectionChange.emit(t),rangeCopy:t=>this.beforeRangeCopyApply.emit(t),rangeDataApply:t=>this.rangeEditApply.emit(t),setRange:t=>!!t&&this.triggerRangeEvent(t),getData:()=>this.getData()})}columnServiceSet(){var t;null===(t=this.columnService)||void 0===t||t.destroy(),this.columnService=new a(this.dataStore,this.colData),this.createAutoFillService()}connectedCallback(){this.columnServiceSet(),this.selectionServiceSet(this.selectionStore)}disconnectedCallback(){var t;this.unsubscribeSelectionStore.forEach((t=>t())),this.unsubscribeSelectionStore.length=0,null===(t=this.columnService)||void 0===t||t.destroy()}async componentWillRender(){var t,e;this.selectionStore.get("edit")||await(null===(e=null===(t=this.revogrEdit)||void 0===t?void 0:t.beforeDisconnect)||void 0===e?void 0:e.call(t))}renderRange(e){const i=y(e,this.dimensionRow.state,this.dimensionCol.state),s=O(i);return[t("div",{class:v,style:s},this.isMobileDevice&&t("div",{class:"range-handlers"},t("span",{class:g}),t("span",{class:g})))]}renderEditor(){const e=this.selectionStore.get("edit");if(this.readonly||!e)return null;const i=e.val||l(this.columnService.rowDataModel(e.y,e.x).value),s=Object.assign(Object.assign({},e),this.columnService.getSaveData(e.y,e.x,i)),o=this.beforeEditRender.emit(Object.assign(Object.assign({range:Object.assign(Object.assign({},e),{x1:e.x,y1:e.y})},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)}));if(o.defaultPrevented)return null;const n=y(o.detail.range,o.detail.rowDimension,o.detail.colDimension),r=O(n);return t("revogr-edit",{style:r,ref:t=>this.revogrEdit=t,additionalData:this.additionalData,editCell:s,saveOnClose:this.applyChangesOnClose,onCelleditinit:t=>{this.cellEditDone.emit(t.detail)},column:this.columnService.rowDataModel(e.y,e.x),editor:h(this.columnService.columns[e.x],this.editors)})}onEditCell(t){if(t.defaultPrevented)return;const e=this.beforeCellSave.emit(t.detail);e.defaultPrevented||this.cellEdit(e.detail),e.detail.preventFocus||this.focusNext()}render(){var e;const i=[],s=this.renderEditor();if(s)i.push(s);else{const s=this.selectionStore.get("range"),o=this.selectionStore.get("focus");(s||o)&&this.useClipboard&&i.push(t("revogr-clipboard",{readonly:this.readonly,onCopyregion:t=>this.onCopy(t.detail),onClearregion:()=>!this.readonly&&this.clearCell(),ref:t=>this.clipboard=t,onPasteregion:t=>this.onPaste(t.detail)})),s&&i.push(...this.renderRange(s)),o&&!this.readonly&&this.range&&i.push(null===(e=this.autoFillService)||void 0===e?void 0:e.renderAutofill(s,o,this.isMobileDevice)),this.canDrag&&i.push(t("revogr-order-editor",{ref:t=>this.orderEditor=t,dataStore:this.dataStore,dimensionRow:this.dimensionRow,dimensionCol:this.dimensionCol,parent:this.element,rowType:this.types.rowType,onRowdragstartinit:t=>this.rowDragStart(t)}))}return t(o,{key:"2d8dc4fd40a883fe59b24b2cfac1c370b9f0ac16",class:{mobile:this.isMobileDevice},onDblClick:t=>this.onElementDblClick(t),onMouseDown:t=>this.onElementMouseDown(t),onTouchStart:t=>this.onElementMouseDown(t,!0),onCloseedit:t=>this.closeEdit(t),onCelledit:t=>this.onEditCell(t)},i,t("slot",{key:"8ad5df55904ca6a8b2fb0e69c5f608ec7264a0f1",name:"data"}))}doFocus(t,e,i,s){const{defaultPrevented:o}=this.beforeFocusCell.emit(Object.assign(Object.assign({},this.columnService.getSaveData(t.y,t.x)),{originalEvent:s}));if(o)return!1;const n=Object.assign(Object.assign({range:Object.assign(Object.assign({},t),{x1:e.x,y1:e.y}),next:i},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state),originalEvent:s}),r=this.applyFocus.emit(n);if(r.defaultPrevented)return!1;const{range:a}=r.detail;return!this.focusCell.emit(Object.assign({focus:{x:a.x,y:a.y},end:{x:a.x1,y:a.y1}},r.detail)).defaultPrevented}triggerRangeEvent(t,e){const i=this.types.rowType,s=this.beforeApplyRange.emit(Object.assign(Object.assign({range:Object.assign({},t)},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state),originalEvent:e}));if(s.defaultPrevented)return!1;const o=this.columnService.getRangeTransformedToProps(s.detail.range,this.dataStore);let n=this.beforeSetRange.emit(o);return!n.defaultPrevented&&(n=this.setRange.emit(Object.assign(Object.assign({},s.detail.range),{type:i})),!n.defaultPrevented&&!n.defaultPrevented)}onElementDblClick(t){if(t.defaultPrevented)return;const e=this.getData();S(t,e)&&this.doEdit()}onElementMouseDown(t,e=!1){var i;const s=t.target;if(M(s)||t.defaultPrevented)return;const o=this.getData(),n=S(t,o);n&&(this.focus(n,this.range&&t.shiftKey,t),this.range&&(s&&(null===(i=this.autoFillService)||void 0===i||i.selectionStart(s,this.getData())),e?D(t.touches[0],g)&&t.preventDefault():t.preventDefault()))}doEdit(t=""){if(!this.canEdit())return!1;const e=this.selectionStore.get("focus");if(!e)return!1;const i=this.columnService.getSaveData(e.y,e.x);return!this.setEdit.emit(Object.assign(Object.assign({},i),{val:t})).defaultPrevented}async closeEdit(t){this.cancelEdit.emit(),(null==t?void 0:t.detail)&&await this.focusNext()}cellEdit(t){const e=this.columnService.getSaveData(t.rgRow,t.rgCol,t.val);this.cellEditApply.emit(e)}getRegion(){const t=this.selectionStore.get("focus");let e=this.selectionStore.get("range");return e||(e=r(t,t)),e}onCopy(t){var e;const i=this.getRegion();if(this.beforeCopyRegion.emit(i).defaultPrevented)return!1;let s;if(i){const{data:t,mapping:e}=this.columnService.copyRangeArray(i,this.dataStore),o=this.rangeClipboardCopy.emit(Object.assign({range:i,data:t,mapping:e},this.types));o.defaultPrevented||(s=o.detail.data)}return null===(e=this.clipboard)||void 0===e||e.doCopy(t,s),!0}onPaste(t){var e;const i=this.selectionStore.get("focus"),s=null!==this.selectionStore.get("edit");if(!i||s)return;const o=function(t,e){var i;if(!function(t){return"object"==typeof t&&!0===t.rangeFill}(e))return null;const s=function(t){const e=[...t];for(;e.length>1&&(!(i=e[e.length-1])||i.every((t=>""===t)));)e.pop();var i;return e}(t);return 1===s.length&&1===(null===(i=s[0])||void 0===i?void 0:i.length)?s:null}(t,this.useClipboard),n=o?this.getClipboardPasteTargetRange():null;let{changed:r,range:a}=this.columnService.getTransformedDataToApply({start:i,data:o||t,targetRange:n});const{defaultPrevented:l}=this.rangeClipboardPaste.emit(Object.assign({data:r,models:w(r,this.dataStore),range:a},this.types));l||null===(e=this.autoFillService)||void 0===e||e.onRangeApply(r,a,a)}getClipboardPasteTargetRange(){const t=this.selectionStore.get("range");return t&&!c(t)?t:null}async focusNext(){var t;await(null===(t=this.keyboardService)||void 0===t?void 0:t.keyChangeSelection(new KeyboardEvent("keydown",{code:d.ARROW_DOWN}),this.range))||this.closeEdit()}clearCell(){var t;const e=this.selectionStore.get("range");if(e&&!c(e)){const i=this.columnService.getRangeStaticData(e,"");null===(t=this.autoFillService)||void 0===t||t.onRangeApply(i,e,e)}else if(this.canEdit()){const t=this.selectionStore.get("focus");if(!t)return;const e=this.columnService.getSaveData(t.y,t.x);this.cellEdit({rgRow:t.y,rgCol:t.x,val:"",type:e.type,prop:e.prop})}}rowDragStart({detail:t}){t.text=l(this.columnService.rowDataModel(t.cell.y,t.cell.x).value)}canEdit(){var t;if(this.readonly)return!1;const e=this.selectionStore.get("focus");return e&&!(null===(t=this.columnService)||void 0===t?void 0:t.isReadOnly(e.y,e.x))}get edited(){return this.selectionStore.get("edit")}focus(t,e=!1,i){if(!t)return!1;const s=t,o=this.selectionStore.get("focus");if(e&&o){const t=r(o,s);if(t)return this.triggerRangeEvent(t,i)}return this.doFocus(t,s,void 0,i)}get types(){return{rowType:this.dataStore.get("type"),colType:this.columnService.type}}getData(){return{el:this.element,rows:this.dimensionRow.state,cols:this.dimensionCol.state,lastCell:this.lastCell,focus:this.selectionStore.get("focus"),range:this.selectionStore.get("range"),edit:this.selectionStore.get("edit")}}get element(){return this}static get watchers(){return{selectionStore:[{selectionServiceSet:0}],dimensionRow:[{createAutoFillService:0}],dimensionCol:[{createAutoFillService:0}],dataStore:[{columnServiceSet:0}],colData:[{columnServiceSet:0}]}}static get style(){return'revogr-overlay-selection{display:block;position:relative;width:100%}revogr-overlay-selection .autofill-handle{position:absolute;width:14px;height:14px;margin-left:-13px;margin-top:-13px;z-index:10;cursor:crosshair}revogr-overlay-selection .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:10px;height:10px;background:var(--rg-theme-autofill-handle-bg);border:1px solid var(--rg-theme-autofill-handle-border);box-sizing:border-box}revogr-overlay-selection.mobile .autofill-handle{position:absolute;width:30px;height:30px;margin-left:-29px;margin-top:-29px;z-index:10;cursor:crosshair}revogr-overlay-selection.mobile .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:12px;height:12px;background:var(--rg-theme-autofill-handle-bg);border:1px solid var(--rg-theme-autofill-handle-border);box-sizing:border-box}revogr-overlay-selection .selection-border-range{position:absolute;pointer-events:none;z-index:9;background-color:var(--rg-theme-selection-bg)}revogr-overlay-selection .selection-border-range .range-handlers{height:100%;background-color:transparent;width:75%;max-width:50px;min-width:20px;left:50%;transform:translateX(-50%);position:absolute}revogr-overlay-selection .selection-border-range .range-handlers>span{pointer-events:auto;height:20px;width:20px;position:absolute;left:50%;transform:translateX(-50%)}revogr-overlay-selection .selection-border-range .range-handlers>span:before,revogr-overlay-selection .selection-border-range .range-handlers>span:after{position:absolute;border-radius:5px;width:15px;height:5px;left:50%;transform:translateX(-50%);background-color:var(--rg-theme-range-handle-bg)}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child{top:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child:before{content:"";top:0}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child{bottom:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child:after{content:"";bottom:0}revogr-overlay-selection .selection-border-range{box-shadow:-1px 0 0 var(--rg-theme-selection-border) inset, 1px 0 0 var(--rg-theme-selection-border) inset, 0 -1px 0 var(--rg-theme-selection-border) inset, 0 1px 0 var(--rg-theme-selection-border) inset}revogr-overlay-selection revogr-edit{z-index:10}'}},[260,"revogr-overlay-selection",{readonly:[4],range:[4],canDrag:[4,"can-drag"],useClipboard:[4,"use-clipboard"],selectionStore:[16],dimensionRow:[16],dimensionCol:[16],dataStore:[16],colData:[16],lastCell:[16],editors:[16],applyChangesOnClose:[4,"apply-changes-on-close"],additionalData:[8,"additional-data"],isMobileDevice:[4,"is-mobile-device"]},[[5,"touchmove","onMouseMove"],[5,"mousemove","onMouseMove"],[5,"touchend","onMouseUp"],[5,"mouseup","onMouseUp"],[5,"mouseleave","onMouseUp"],[0,"dragstartcell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]],{selectionStore:[{selectionServiceSet:0}],dimensionRow:[{createAutoFillService:0}],dimensionCol:[{createAutoFillService:0}],dataStore:[{columnServiceSet:0}],colData:[{columnServiceSet:0}]}]);function V(){"undefined"!=typeof customElements&&["revogr-overlay-selection","revogr-clipboard","revogr-edit","revogr-order-editor"].forEach((t=>{switch(t){case"revogr-overlay-selection":customElements.get(n(t))||customElements.define(n(t),W);break;case"revogr-clipboard":customElements.get(n(t))||X();break;case"revogr-edit":customElements.get(n(t))||z();break;case"revogr-order-editor":customElements.get(n(t))||$()}}))}export{W as O,V as d}
4
+ import{h as t,proxyCustomElement as e,HTMLElement as i,createEvent as s,Host as o,transformTag as n}from"@stencil/core/internal/client";import{g as r,M as a,z as l,N as h,b as c}from"./column.service.js";import{c as d}from"./platform.js";import{R as u,i as g,j as v,S as p}from"./consts.js";import{b as f,i as b,c as m,a as y,g as x,d as w,e as j,s as O,f as S,v as C}from"./selection.utils.js";import{l as D,m as M,c as k,d as R,f as E,h as A,g as F,j as P,k as T,o as z}from"./revogr-edit2.js";import{t as K}from"./index2.js";import{d as U}from"./debounce.js";import{d as X}from"./revogr-clipboard2.js";import{d as $}from"./revogr-order-editor2.js";const H=[d.TAB,d.ARROW_UP,d.ARROW_DOWN,d.ARROW_LEFT,d.ARROW_RIGHT];class q{constructor(t){this.sv=t,this.keyChangeQueue=Promise.resolve(!1),this.keyChangeGeneration=0,this.applyingKeyChange=!1}invalidatePendingChanges(){this.applyingKeyChange||(this.keyChangeGeneration+=1)}appendPendingEditValue(t){if(D(t)||1!==t.key.length||t.target instanceof HTMLElement&&M(t.target))return!1;const e=this.sv.selectionStore.get("edit");return"string"==typeof(null==e?void 0:e.val)&&(t.preventDefault(),this.sv.selectionStore.set("edit",Object.assign(Object.assign({},e),{val:`${e.val}${t.key}`})),!0)}async keyDown(t,e,i,{range:s,focus:o}){if(i){if(this.appendPendingEditValue(t))return;switch(t.code){case d.ESCAPE:this.sv.cancel();break;case d.TAB:this.keyChangeSelection(t,e)}}else s&&k(t.code)?this.sv.clearCell():o&&(R(t.code)?this.keyChangeSelection(t,e):E(t.key)?this.sv.change():A(t)||F(t)||(P(t)?this.sv.internalPaste():T(t)?e&&this.selectAll(t):D(t)||1!==t.key.length?await this.keyChangeSelection(t,e):this.sv.change(t.key)&&t.preventDefault()))}selectAll(t){const e=this.sv.selectionStore.get("range"),i=this.sv.selectionStore.get("focus");e&&i&&(t.preventDefault(),this.sv.selectAll())}async keyChangeSelection(t,e){const i=this.changeDirectionKey(t,e);if(!i)return!1;const s=this.keyChangeGeneration;await K(u+30);const o=async()=>{if(s!==this.keyChangeGeneration)return!1;const t=this.sv.selectionStore.get("range"),e=this.sv.selectionStore.get("focus");let o;this.applyingKeyChange=!0;try{o=this.keyPositionChange(i.changes,t,e,i.isMulti)}finally{this.applyingKeyChange=!1}return await new Promise((t=>requestAnimationFrame((()=>{requestAnimationFrame((()=>t()))})))),o},n=this.keyChangeQueue.then(o,o);return this.keyChangeQueue=n.catch((()=>!1)),n}keyPositionChange(t,e,i,s=!1){if(!e||!i)return!1;const o=f(e,i,t,s);if(!o)return!1;const n=this.sv.getData();if(s){if([o.start,o.end].some((t=>b(t,n.lastCell)||m(t))))return!1;const t=r(o.start,o.end);return this.sv.range(t)}return this.sv.focus(o.start,t,b(o.start,n.lastCell)?1:m(o.start)?-1:0)}changeDirectionKey(t,e){const i=e&&t.shiftKey;if(H.includes(t.code)&&t.preventDefault(),t.shiftKey&&t.code===d.TAB)return{changes:{x:-1},isMulti:!1};switch(t.code){case d.ARROW_UP:return{changes:{y:-1},isMulti:i};case d.ARROW_DOWN:return{changes:{y:1},isMulti:i};case d.ARROW_LEFT:return{changes:{x:-1},isMulti:i};case d.TAB:case d.ARROW_RIGHT:return{changes:{x:1},isMulti:i}}}}class L{constructor(t){this.sv=t,this.autoFillType=null,this.autoFillInitial=null,this.autoFillStart=null,this.autoFillLast=null}renderAutofill(e,i,s=!1){let o;return o=y(e||Object.assign(Object.assign({},i),{x1:i.x,y1:i.y}),this.sv.dimensionRow.state,this.sv.dimensionCol.state),t("div",{class:{[v]:!0,[g]:s},style:{left:`${o.right}px`,top:`${o.bottom}px`},onMouseDown:t=>this.autoFillHandler(t),onTouchStart:t=>this.autoFillHandler(t)})}autoFillHandler(t,e="AutoFill"){let i=null;t.target instanceof Element&&(i=t.target),i&&(this.selectionStart(i,this.sv.getData(),e),t.preventDefault())}get isAutoFill(){return!!this.autoFillType}selectionMouseMove(t){this.onMouseMoveAutofill||(this.onMouseMoveAutofill=U(((t,e)=>this.doAutofillMouseMove(t,e)),5)),this.isAutoFill&&this.onMouseMoveAutofill(t,this.sv.getData())}getFocus(t,e){return!t&&e&&(t={x:e.x,y:e.y}),t||null}doAutofillMouseMove(t,e){if(!this.autoFillInitial)return;const i=x(t,"clientX",g),s=x(t,"clientY",g);if(null===i||null===s)return;const o=w({x:i,y:s},e);if(this.autoFillLast||this.autoFillLast||(this.autoFillLast=this.autoFillStart),!b(o,e.lastCell))if(this.autoFillLast=o,o.x===this.autoFillInitial.x&&o.y===this.autoFillInitial.y)this.sv.setTempRange(null);else{const t=r(this.autoFillInitial,this.autoFillLast);this.sv.setTempRange({area:t,type:this.autoFillType})}}selectionStart(t,e,i="Selection"){const{top:s,left:o}=t.getBoundingClientRect();this.autoFillInitial=this.getFocus(e.focus,e.range),this.autoFillType=i,this.autoFillStart=w({x:o,y:s},e)}clearAutoFillSelection(t,e){if(this.autoFillInitial)if(this.autoFillInitial=this.getFocus(t,e),"AutoFill"===this.autoFillType){const t=r(this.autoFillInitial,this.autoFillLast);if(t){const{defaultPrevented:i,detail:{range:s}}=this.sv.clearRangeDataApply({range:t});!i&&e?this.applyRangeWithData(s,e):this.sv.setTempRange(null)}}else this.applyRangeOnly(this.autoFillInitial,this.autoFillLast);this.resetAutoFillState()}resetAutoFillState(){this.autoFillType=null,this.autoFillInitial=null,this.autoFillLast=null,this.autoFillStart=null}onRangeApply(t,e,i){this.sv.rangeDataApply({data:t,models:j(t,this.sv.dataStore),type:this.sv.dataStore.get("type"),oldRange:i,newRange:e}),this.sv.setRange(e)}applyRangeWithData(t,e){const i={type:this.sv.dataStore.get("type"),colType:this.sv.columnService.type,newData:{},mapping:{},newRange:t,oldRange:e},{mapping:s,changed:o}=this.sv.columnService.getRangeData(i,this.sv.columnService.columns);i.newData=o,i.mapping=s;let n=this.sv.selectionChanged(i);n.defaultPrevented?this.sv.setTempRange(null):(n=this.sv.rangeCopy(i),n.defaultPrevented?this.sv.setRange(t):this.onRangeApply(i.newData,t,e))}applyRangeOnly(t,e){if(!t||!e)return;const i=r(t,e);this.sv.setRange(i)}}const N=e(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.beforeCopyRegion=s(this,"beforecopyregion",7),this.beforeRegionPaste=s(this,"beforepasteregion",7),this.cellEditApply=s(this,"celleditapply",7),this.beforeFocusCell=s(this,"beforecellfocusinit",7),this.beforeNextViewportFocus=s(this,"beforenextvpfocus",7),this.setEdit=s(this,"setedit",7),this.beforeApplyRange=s(this,"beforeapplyrange",7),this.beforeSetRange=s(this,"beforesetrange",7),this.setRange=s(this,"setrange",7),this.beforeEditRender=s(this,"beforeeditrender",7),this.selectAll=s(this,"selectall",7),this.cancelEdit=s(this,"canceledit",7),this.setTempRange=s(this,"settemprange",7),this.beforeSetTempRange=s(this,"beforesettemprange",7),this.applyFocus=s(this,"applyfocus",7),this.focusCell=s(this,"focuscell",7),this.beforeRangeDataApply=s(this,"beforerangedataapply",7),this.selectionChange=s(this,"selectionchangeinit",7),this.beforeRangeCopyApply=s(this,"beforerangecopyapply",7),this.rangeEditApply=s(this,"rangeeditapply",7),this.rangeClipboardCopy=s(this,"clipboardrangecopy",7),this.rangeClipboardPaste=s(this,"clipboardrangepaste",7),this.beforeKeyDown=s(this,"beforekeydown",7),this.beforeKeyUp=s(this,"beforekeyup",7),this.beforeCellSave=s(this,"beforecellsave",7),this.cellEditDone=s(this,"celledit",7),this.applyChangesOnClose=!1,this.keyboardService=null,this.autoFillService=null,this.unsubscribeSelectionStore=[]}onMouseMove(t){var e;this.selectionStore.get("focus")&&(null===(e=this.autoFillService)||void 0===e||e.selectionMouseMove(t))}onMouseUp(){var t;null===(t=this.autoFillService)||void 0===t||t.clearAutoFillSelection(this.selectionStore.get("focus"),this.selectionStore.get("range"))}onCellDrag(t){var e;null===(e=this.orderEditor)||void 0===e||e.dragStart(t.detail)}onKeyUp(t){this.beforeKeyUp.emit(Object.assign({original:t},this.getData()))}onKeyDown(t){var e;const i=this.beforeKeyDown.emit(Object.assign({original:t},this.getData()));t.defaultPrevented||i.defaultPrevented||null===(e=this.keyboardService)||void 0===e||e.keyDown(t,this.range,!!this.selectionStore.get("edit"),{focus:this.selectionStore.get("focus"),range:this.selectionStore.get("range")})}selectionServiceSet(t){var e;null===(e=this.keyboardService)||void 0===e||e.invalidatePendingChanges(),this.unsubscribeSelectionStore.forEach((t=>t())),this.unsubscribeSelectionStore.length=0,this.unsubscribeSelectionStore.push(t.onChange("nextFocus",(t=>t&&this.doFocus(t,t)))),this.keyboardService=new q({selectionStore:t,range:t=>!!t&&this.triggerRangeEvent(t),focus:(t,e,i)=>i?(this.beforeNextViewportFocus.emit(t),!1):this.doFocus(t,t,e),change:t=>this.doEdit(t),cancel:async()=>{var t;await(null===(t=this.revogrEdit)||void 0===t?void 0:t.cancelChanges()),this.closeEdit()},clearCell:()=>!this.readonly&&this.clearCell(),internalPaste:()=>!this.readonly&&this.beforeRegionPaste.emit(),getData:()=>this.getData(),selectAll:()=>this.selectAll.emit()}),this.unsubscribeSelectionStore.push(t.onChange("focus",(()=>{var t;return null===(t=this.keyboardService)||void 0===t?void 0:t.invalidatePendingChanges()})),t.onChange("edit",(()=>{var t;return null===(t=this.keyboardService)||void 0===t?void 0:t.invalidatePendingChanges()}))),this.createAutoFillService()}createAutoFillService(){this.autoFillService=new L({dimensionRow:this.dimensionRow,dimensionCol:this.dimensionCol,columnService:this.columnService,dataStore:this.dataStore,clearRangeDataApply:t=>this.beforeRangeDataApply.emit(Object.assign(Object.assign(Object.assign({},t),this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)})),setTempRange:t=>{const e=this.beforeSetTempRange.emit(Object.assign(Object.assign({tempRange:t},this.getData()),this.types));return e.defaultPrevented?null:this.setTempRange.emit(e.detail.tempRange)},selectionChanged:t=>this.selectionChange.emit(t),rangeCopy:t=>this.beforeRangeCopyApply.emit(t),rangeDataApply:t=>this.rangeEditApply.emit(t),setRange:t=>!!t&&this.triggerRangeEvent(t),getData:()=>this.getData()})}columnServiceSet(){var t;null===(t=this.columnService)||void 0===t||t.destroy(),this.columnService=new a(this.dataStore,this.colData),this.createAutoFillService()}connectedCallback(){this.columnServiceSet(),this.selectionServiceSet(this.selectionStore)}disconnectedCallback(){var t,e;null===(t=this.keyboardService)||void 0===t||t.invalidatePendingChanges(),this.unsubscribeSelectionStore.forEach((t=>t())),this.unsubscribeSelectionStore.length=0,null===(e=this.columnService)||void 0===e||e.destroy()}async componentWillRender(){var t,e;this.selectionStore.get("edit")||await(null===(e=null===(t=this.revogrEdit)||void 0===t?void 0:t.beforeDisconnect)||void 0===e?void 0:e.call(t))}renderRange(e){const i=y(e,this.dimensionRow.state,this.dimensionCol.state),s=O(i);return t("div",{class:p,style:s},this.isMobileDevice&&t("div",{class:"range-handlers"},t("span",{class:g}),t("span",{class:g})))}renderEditor(){const e=this.selectionStore.get("edit");if(this.readonly||!e)return null;const i=e.val||l(this.columnService.rowDataModel(e.y,e.x).value),s=Object.assign(Object.assign({},e),this.columnService.getSaveData(e.y,e.x,i)),o=this.beforeEditRender.emit(Object.assign(Object.assign({range:Object.assign(Object.assign({},e),{x1:e.x,y1:e.y})},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)}));if(o.defaultPrevented)return null;const n=y(o.detail.range,o.detail.rowDimension,o.detail.colDimension),r=O(n);return t("revogr-edit",{style:r,ref:t=>this.revogrEdit=t,additionalData:this.additionalData,editCell:s,saveOnClose:this.applyChangesOnClose,onCelleditinit:t=>{this.cellEditDone.emit(t.detail)},column:this.columnService.rowDataModel(e.y,e.x),editor:h(this.columnService.columns[e.x],this.editors)})}onEditCell(t){if(t.defaultPrevented)return;const e=this.beforeCellSave.emit(t.detail);e.defaultPrevented||this.cellEdit(e.detail),e.detail.preventFocus||this.focusNext()}render(){var e;const i=[],s=this.renderEditor();if(s)i.push(s);else{const s=this.selectionStore.get("range"),o=this.selectionStore.get("focus");(s||o)&&this.useClipboard&&i.push(t("revogr-clipboard",{readonly:this.readonly,onCopyregion:t=>this.onCopy(t.detail),onClearregion:()=>!this.readonly&&this.clearCell(),ref:t=>this.clipboard=t,onPasteregion:t=>this.onPaste(t.detail)})),s&&i.push(this.renderRange(s)),o&&!this.readonly&&this.range&&i.push(null===(e=this.autoFillService)||void 0===e?void 0:e.renderAutofill(s,o,this.isMobileDevice)),this.canDrag&&i.push(t("revogr-order-editor",{ref:t=>this.orderEditor=t,dataStore:this.dataStore,dimensionRow:this.dimensionRow,dimensionCol:this.dimensionCol,parent:this.element,rowType:this.types.rowType,onRowdragstartinit:t=>this.rowDragStart(t)}))}return t(o,{key:"230e2122c5c7065c072f02019d616a64949d54d0",class:{mobile:this.isMobileDevice},onDblClick:t=>this.onElementDblClick(t),onMouseDown:t=>this.onElementMouseDown(t),onTouchStart:t=>this.onElementMouseDown(t,!0),onCloseedit:t=>this.closeEdit(t),onCelledit:t=>this.onEditCell(t)},i,t("slot",{key:"47740a79c605258b4024384510358be927d000b7",name:"data"}))}doFocus(t,e,i,s){const{defaultPrevented:o}=this.beforeFocusCell.emit(Object.assign(Object.assign({},this.columnService.getSaveData(t.y,t.x)),{originalEvent:s}));if(o)return!1;const n=Object.assign(Object.assign({range:Object.assign(Object.assign({},t),{x1:e.x,y1:e.y}),next:i},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state),originalEvent:s}),r=this.applyFocus.emit(n);if(r.defaultPrevented)return!1;const{range:a}=r.detail;return!this.focusCell.emit(Object.assign({focus:{x:a.x,y:a.y},end:{x:a.x1,y:a.y1}},r.detail)).defaultPrevented}triggerRangeEvent(t,e){const i=this.types.rowType,s=this.beforeApplyRange.emit(Object.assign(Object.assign({range:Object.assign({},t)},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state),originalEvent:e}));if(s.defaultPrevented)return!1;const o=this.columnService.getRangeTransformedToProps(s.detail.range,this.dataStore);let n=this.beforeSetRange.emit(o);return!n.defaultPrevented&&(n=this.setRange.emit(Object.assign(Object.assign({},s.detail.range),{type:i})),!n.defaultPrevented&&!n.defaultPrevented)}onElementDblClick(t){if(t.defaultPrevented)return;const e=this.getData();S(t,e)&&this.doEdit()}onElementMouseDown(t,e=!1){var i;const s=t.target;if(M(s)||t.defaultPrevented)return;const o=this.getData(),n=S(t,o);n&&(this.focus(n,this.range&&t.shiftKey,t),this.range&&(s&&(null===(i=this.autoFillService)||void 0===i||i.selectionStart(s,this.getData())),e?C(t.touches[0],g)&&t.preventDefault():t.preventDefault()))}doEdit(t=""){if(!this.canEdit())return!1;const e=this.selectionStore.get("focus");if(!e)return!1;const i=this.columnService.getSaveData(e.y,e.x);return!this.setEdit.emit(Object.assign(Object.assign({},i),{val:t})).defaultPrevented}async closeEdit(t){this.cancelEdit.emit(),(null==t?void 0:t.detail)&&await this.focusNext()}cellEdit(t){const e=this.columnService.getSaveData(t.rgRow,t.rgCol,t.val);this.cellEditApply.emit(e)}getRegion(){const t=this.selectionStore.get("focus");let e=this.selectionStore.get("range");return e||(e=r(t,t)),e}onCopy(t){var e;const i=this.getRegion();if(this.beforeCopyRegion.emit(i).defaultPrevented)return!1;let s;if(i){const{data:t,mapping:e}=this.columnService.copyRangeArray(i,this.dataStore),o=this.rangeClipboardCopy.emit(Object.assign({range:i,data:t,mapping:e},this.types));o.defaultPrevented||(s=o.detail.data)}return null===(e=this.clipboard)||void 0===e||e.doCopy(t,s),!0}onPaste(t){var e;const i=this.selectionStore.get("focus"),s=null!==this.selectionStore.get("edit");if(!i||s)return;const o=function(t,e){var i;if(!function(t){return"object"==typeof t&&!0===t.rangeFill}(e))return null;const s=function(t){const e=[...t];for(;e.length>1&&(!(i=e[e.length-1])||i.every((t=>""===t)));)e.pop();var i;return e}(t);return 1===s.length&&1===(null===(i=s[0])||void 0===i?void 0:i.length)?s:null}(t,this.useClipboard),n=o?this.getClipboardPasteTargetRange():null;let{changed:r,range:a}=this.columnService.getTransformedDataToApply({start:i,data:o||t,targetRange:n});const{defaultPrevented:l}=this.rangeClipboardPaste.emit(Object.assign({data:r,models:j(r,this.dataStore),range:a},this.types));l||null===(e=this.autoFillService)||void 0===e||e.onRangeApply(r,a,a)}getClipboardPasteTargetRange(){const t=this.selectionStore.get("range");return t&&!c(t)?t:null}async focusNext(){var t;await(null===(t=this.keyboardService)||void 0===t?void 0:t.keyChangeSelection(new KeyboardEvent("keydown",{code:d.ARROW_DOWN}),this.range))||this.closeEdit()}clearCell(){var t;const e=this.selectionStore.get("range"),i=this.selectionStore.get("focus");if(!e||c(e)&&i){if(this.canEdit()){if(!i)return;const t=this.columnService.getSaveData(i.y,i.x);this.cellEdit({rgRow:i.y,rgCol:i.x,val:"",type:t.type,prop:t.prop})}}else{const i=this.columnService.getRangeStaticData(e,"");null===(t=this.autoFillService)||void 0===t||t.onRangeApply(i,e,e)}}rowDragStart({detail:t}){t.text=l(this.columnService.rowDataModel(t.cell.y,t.cell.x).value)}canEdit(){var t;if(this.readonly)return!1;const e=this.selectionStore.get("focus");return e&&!(null===(t=this.columnService)||void 0===t?void 0:t.isReadOnly(e.y,e.x))}get edited(){return this.selectionStore.get("edit")}focus(t,e=!1,i){if(!t)return!1;const s=t,o=this.selectionStore.get("focus");if(e&&o){const t=r(o,s);if(t)return this.triggerRangeEvent(t,i)}return this.doFocus(t,s,void 0,i)}get types(){return{rowType:this.dataStore.get("type"),colType:this.columnService.type}}getData(){return{el:this.element,rows:this.dimensionRow.state,cols:this.dimensionCol.state,lastCell:this.lastCell,focus:this.selectionStore.get("focus"),range:this.selectionStore.get("range"),edit:this.selectionStore.get("edit")}}get element(){return this}static get watchers(){return{selectionStore:[{selectionServiceSet:0}],dimensionRow:[{createAutoFillService:0}],dimensionCol:[{createAutoFillService:0}],dataStore:[{columnServiceSet:0}],colData:[{columnServiceSet:0}]}}static get style(){return'revogr-overlay-selection{display:block;position:relative;width:100%}revogr-overlay-selection .autofill-handle{position:absolute;width:14px;height:14px;margin-left:-13px;margin-top:-13px;z-index:10;cursor:crosshair}revogr-overlay-selection .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:10px;height:10px;background:var(--rg-theme-autofill-handle-bg);border:1px solid var(--rg-theme-autofill-handle-border);box-sizing:border-box}revogr-overlay-selection.mobile .autofill-handle{position:absolute;width:30px;height:30px;margin-left:-29px;margin-top:-29px;z-index:10;cursor:crosshair}revogr-overlay-selection.mobile .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:12px;height:12px;background:var(--rg-theme-autofill-handle-bg);border:1px solid var(--rg-theme-autofill-handle-border);box-sizing:border-box}revogr-overlay-selection .selection-border-range{position:absolute;pointer-events:none;z-index:9;background-color:var(--rg-theme-selection-bg)}revogr-overlay-selection .selection-border-range .range-handlers{height:100%;background-color:transparent;width:75%;max-width:50px;min-width:20px;left:50%;transform:translateX(-50%);position:absolute}revogr-overlay-selection .selection-border-range .range-handlers>span{pointer-events:auto;height:20px;width:20px;position:absolute;left:50%;transform:translateX(-50%)}revogr-overlay-selection .selection-border-range .range-handlers>span:before,revogr-overlay-selection .selection-border-range .range-handlers>span:after{position:absolute;border-radius:5px;width:15px;height:5px;left:50%;transform:translateX(-50%);background-color:var(--rg-theme-range-handle-bg)}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child{top:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child:before{content:"";top:0}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child{bottom:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child:after{content:"";bottom:0}revogr-overlay-selection .selection-border-range{box-shadow:-1px 0 0 var(--rg-theme-selection-border) inset, 1px 0 0 var(--rg-theme-selection-border) inset, 0 -1px 0 var(--rg-theme-selection-border) inset, 0 1px 0 var(--rg-theme-selection-border) inset}revogr-overlay-selection revogr-edit{z-index:10}'}},[260,"revogr-overlay-selection",{readonly:[4],range:[4],canDrag:[4,"can-drag"],useClipboard:[4,"use-clipboard"],selectionStore:[16],dimensionRow:[16],dimensionCol:[16],dataStore:[16],colData:[16],lastCell:[16],editors:[16],applyChangesOnClose:[4,"apply-changes-on-close"],additionalData:[8,"additional-data"],isMobileDevice:[4,"is-mobile-device"]},[[5,"touchmove","onMouseMove"],[5,"mousemove","onMouseMove"],[5,"touchend","onMouseUp"],[5,"mouseup","onMouseUp"],[5,"mouseleave","onMouseUp"],[0,"dragstartcell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]],{selectionStore:[{selectionServiceSet:0}],dimensionRow:[{createAutoFillService:0}],dimensionCol:[{createAutoFillService:0}],dataStore:[{columnServiceSet:0}],colData:[{columnServiceSet:0}]}]);function W(){"undefined"!=typeof customElements&&["revogr-overlay-selection","revogr-clipboard","revogr-edit","revogr-order-editor"].forEach((t=>{switch(t){case"revogr-overlay-selection":customElements.get(n(t))||customElements.define(n(t),N);break;case"revogr-clipboard":customElements.get(n(t))||X();break;case"revogr-edit":customElements.get(n(t))||z();break;case"revogr-order-editor":customElements.get(n(t))||$()}}))}export{N as O,W as d}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import{proxyCustomElement as t,HTMLElement as e,createEvent as s,h as r,Host as o,transformTag as i}from"@stencil/core/internal/client";import{j as n,i as a,D as c}from"./data.store.js";import{c as l}from"./consts.js";import"./platform.js";import{g as d}from"./dimension.helpers.js";import{H as f,d as m}from"./revogr-viewport-scroll2.js";import{d as u}from"./revogr-data2.js";import{b as h}from"./revogr-header2.js";import{d as v}from"./vnode-converter.js";const b=(t,e,s=50)=>(null==e?void 0:e.size)||Math.max(10*(t.toString().length+1),s);function p(t,e,s=1){return!e||t.realSize<=e?0:Math.max(0,t.realSize-e-t.originItemSize*s)}function j(t,e,s,r=1){return Math.min(Math.max(0,t),p(e,s,r))}function g(t,e,s,r,o){const i=d(o,t),n=I(e);let a;if(n){let t=i.itemIndex-(n.itemIndex||0);t&&(a=x(Math.abs(t),Object.assign(Object.assign({positiveDirection:t>-1},o),e)))}const c=function(t,e,s){return Math.min(t+(s.end-s.start),e)}(r,o.realSize,i);if(a){const t=O(i,s,c,a,o);t.length&&w(a.items,t,a)}if(!a){const t=z({firstItemStart:i.start,firstItemIndex:i.itemIndex,origSize:o.originItemSize,maxSize:c,maxCount:s,sizes:o.sizes});a={items:t,start:0,end:t.length-1}}return a}function w(t,e,s){t.splice(s.end+1,0,...e),s.start>=s.end&&(s.start!==s.end||0!==s.start)&&(s.start+=e.length),s.end+=e.length}function O(t,e,s,r,o){const i=k(r);return z({sizes:o.sizes,firstItemStart:i.end,firstItemIndex:i.itemIndex+1,origSize:o.originItemSize,maxSize:s-(i.end-t.start),maxCount:e})}function z(t,e=0){const s=[];let r=t.firstItemIndex,o=e;for(;o<=t.maxSize&&r<t.maxCount;){const e=S(r,t.sizes,t.origSize);s.push({start:t.firstItemStart+o,end:t.firstItemStart+o+e,itemIndex:r,size:e}),o+=e,r++}return s}function x(t,e){var s,r;const o=[...e.items],i=o.length;let n={start:e.start,end:e.end};if(!(t>i)){if(e.positiveDirection){let s=k(e),r=n.start;const a=r+t;for(;r<a;r++){const t=s.itemIndex+1,a=S(t,e.sizes,e.originItemSize);if(s.end+a>e.realSize)break;let c=r%i;if(!o[c])throw new Error("incorrect index");o[c]=s={start:s.end,end:s.end+a,itemIndex:t,size:a},n.start++,n.end=c}}else{let a=I(e);const c=n.end;for(let l=0;l<t;l++){const t=(null!==(s=null==a?void 0:a.itemIndex)&&void 0!==s?s:0)-1,d=S(t,e.sizes,e.originItemSize);let f=c-l;if(f=(f<0?i+f:f)%i,!o[f]){console.error("incorrect index");break}const m=null!==(r=null==a?void 0:a.start)&&void 0!==r?r:0;o[f]=a={start:m-d,end:m,itemIndex:t,size:d},n.start=f,n.end--}}return Object.assign({items:o},{start:(n.start<0?i+n.start:n.start)%i,end:(n.end<0?i+n.end:n.end)%i})}}function S(t,e,s=0){return"number"==typeof(null==e?void 0:e[t])?e[t]:s}function C(t,e,s,r){return!(!s||!r)&&(t>=s.start&&t<=s.end||t>s.end&&r.end===e)}function y(t,e,s,r){var o;return!!s&&e+t>(null!==(o=null==r?void 0:r.end)&&void 0!==o?o:0)}function I(t){return t.items[t.start]}function k(t){return t.items[t.end]}function E(t,e,s,r){const o=[...t],i=o.length;let n=r,a=0,c=e;if(!i)return[];for(;a<i;){const t=o[c];t.start=n,t.size=s,t.end=t.start+s,n=t.end,c++,a++,c===i&&(c=0)}return o}class M{get lastCoordinate(){return this.lastKnownScroll}set lastCoordinate(t){this.lastKnownScroll=t}constructor(t){this.type=t,this.lastKnownScroll=0,this.store=n({items:[],start:0,end:0,virtualSize:0,realCount:0,clientSize:0,renderOffset:0})}setViewPortCoordinate(t,e,s=!1){const r=this.store.get("virtualSize");if(!r)return;const o=1*e.originItemSize,i=r+2*o,n=p(e,r,1);let a,c=j(t,e,r,1);this.lastCoordinate=c,c-=o,c=c<0?0:c<n?c:n,a=s?{items:[],start:0,end:0}:this.getItems();const l=I(a),d=k(a);let f={};if(C(c,e.realSize,l,d)){if(y(c,i,l,d)){const t=[...a.items],s=O(l,this.store.get("realCount"),i+c-l.start,a,{sizes:e.sizes,originItemSize:e.originItemSize});if(s.length){const e={start:this.store.get("start"),end:this.store.get("end")};w(t,s,e),f=Object.assign(Object.assign(Object.assign({},f),{items:[...t]}),e),this.setViewport(Object.assign({},f))}}}else f=Object.assign(Object.assign({},f),g(c,a,this.store.get("realCount"),i,e)),this.setViewport(Object.assign({},f))}setOriginalSizes(t){const e=this.store.get("items");e.length&&a(this.store,{items:E(e,this.store.get("start"),t,this.lastCoordinate)})}getItems(){return{items:this.store.get("items"),start:this.store.get("start"),end:this.store.get("end")}}setViewport(t){"number"!=typeof t.realCount&&"number"!=typeof t.virtualSize||(t=Object.assign(Object.assign({},t),{items:t.items||[]})),a(this.store,t)}}const D=t=>(e,{rowIndex:s})=>t+s,H=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.scrollViewport=s(this,"scrollview",3),this.elementToScroll=s(this,"ref",3),this.jobsBeforeRender=[]}render(){const t=[],e=new M("colPinStart");let s=1;for(let o of this.dataPorts){const i=o.dataStore.get("items").length,n=new c(o.type,Object.assign({},o.dataStore.state)),a=new c("colPinStart"),l=Object.assign({cellTemplate:D(s)},this.rowHeaderColumn);a.updateData([l]),t.push(r("revogr-data",Object.assign({},o,{colType:"rowHeaders",jobsBeforeRender:this.jobsBeforeRender,rowClass:this.rowClass,dataStore:n.store,colData:a.store,viewportCol:e.store,readonly:!0,range:!1}))),s+=i}const i=b(s,this.rowHeaderColumn);e.setViewport({realCount:1,virtualSize:0,items:[{size:i,start:0,end:i,itemIndex:0}]});const n={contentHeight:this.height,contentWidth:0,style:{minWidth:`${i}px`},colType:"rowHeaders",ref:t=>this.elementToScroll.emit(t),onScrollviewport:t=>this.scrollViewport.emit(t.detail)},a=Object.assign(Object.assign({},this.headerProp),{groups:[],colData:"object"==typeof this.rowHeaderColumn?[this.rowHeaderColumn]:[],viewportCol:e.store,canResize:!1,type:l,slot:f});return r(o,{class:{[l]:!0},key:l},r("revogr-viewport-scroll",Object.assign({key:"c401e82e02e4bdb7afb25f2f49c6776f2e115c81"},n,{"row-header":!0}),r("revogr-header",Object.assign({key:"3c73d27bd96e23a34fc0cf47eda4d2e65751df98"},a)),t))}},[0,"revogr-row-headers",{height:[2],dataPorts:[16],headerProp:[16],rowClass:[1,"row-class"],resize:[4],rowHeaderColumn:[16],additionalData:[8,"additional-data"],jobsBeforeRender:[16]}]);function P(){"undefined"!=typeof customElements&&["revogr-row-headers","revogr-data","revogr-header","revogr-viewport-scroll","vnode-html"].forEach((t=>{switch(t){case"revogr-row-headers":customElements.get(i(t))||customElements.define(i(t),H);break;case"revogr-data":customElements.get(i(t))||u();break;case"revogr-header":customElements.get(i(t))||h();break;case"revogr-viewport-scroll":customElements.get(i(t))||m();break;case"vnode-html":customElements.get(i(t))||v()}}))}export{H as R,M as V,g as a,O as b,j as c,z as d,y as e,I as f,p as g,k as h,C as i,b as j,P as k,x as r,E as s,w as u}
4
+ import{proxyCustomElement as t,HTMLElement as e,createEvent as s,h as r,Host as o,transformTag as i}from"@stencil/core/internal/client";import{k as n,j as a,D as c}from"./data.store.js";import{c as l}from"./consts.js";import"./platform.js";import{g as d}from"./dimension.helpers.js";import{H as f,d as m}from"./revogr-viewport-scroll2.js";import{d as u}from"./revogr-data2.js";import{b as h}from"./revogr-header2.js";import{d as v}from"./vnode-converter.js";const b=(t,e,s=50)=>(null==e?void 0:e.size)||Math.max(10*(t.toString().length+1),s);function p(t,e,s=1){return!e||t.realSize<=e?0:Math.max(0,t.realSize-e-t.originItemSize*s)}function j(t,e,s,r=1){return Math.min(Math.max(0,t),p(e,s,r))}function g(t,e,s,r,o){const i=d(o,t),n=I(e);let a;if(n){let t=i.itemIndex-(n.itemIndex||0);t&&(a=x(Math.abs(t),Object.assign(Object.assign({positiveDirection:t>-1},o),e)))}const c=function(t,e,s){return Math.min(t+(s.end-s.start),e)}(r,o.realSize,i);if(a){const t=O(i,s,c,a,o);t.length&&w(a.items,t,a)}if(!a){const t=z({firstItemStart:i.start,firstItemIndex:i.itemIndex,origSize:o.originItemSize,maxSize:c,maxCount:s,sizes:o.sizes});a={items:t,start:0,end:t.length-1}}return a}function w(t,e,s){t.splice(s.end+1,0,...e),s.start>=s.end&&(s.start!==s.end||0!==s.start)&&(s.start+=e.length),s.end+=e.length}function O(t,e,s,r,o){const i=k(r);return z({sizes:o.sizes,firstItemStart:i.end,firstItemIndex:i.itemIndex+1,origSize:o.originItemSize,maxSize:s-(i.end-t.start),maxCount:e})}function z(t,e=0){const s=[];let r=t.firstItemIndex,o=e;for(;o<=t.maxSize&&r<t.maxCount;){const e=S(r,t.sizes,t.origSize);s.push({start:t.firstItemStart+o,end:t.firstItemStart+o+e,itemIndex:r,size:e}),o+=e,r++}return s}function x(t,e){var s,r;const o=[...e.items],i=o.length;let n={start:e.start,end:e.end};if(!(t>i)){if(e.positiveDirection){let s=k(e),r=n.start;const a=r+t;for(;r<a;r++){const t=s.itemIndex+1,a=S(t,e.sizes,e.originItemSize);if(s.end+a>e.realSize)break;let c=r%i;if(!o[c])throw new Error("incorrect index");o[c]=s={start:s.end,end:s.end+a,itemIndex:t,size:a},n.start++,n.end=c}}else{let a=I(e);const c=n.end;for(let l=0;l<t;l++){const t=(null!==(s=null==a?void 0:a.itemIndex)&&void 0!==s?s:0)-1,d=S(t,e.sizes,e.originItemSize);let f=c-l;if(f=(f<0?i+f:f)%i,!o[f]){console.error("incorrect index");break}const m=null!==(r=null==a?void 0:a.start)&&void 0!==r?r:0;o[f]=a={start:m-d,end:m,itemIndex:t,size:d},n.start=f,n.end--}}return Object.assign({items:o},{start:(n.start<0?i+n.start:n.start)%i,end:(n.end<0?i+n.end:n.end)%i})}}function S(t,e,s=0){return"number"==typeof(null==e?void 0:e[t])?e[t]:s}function C(t,e,s,r){return!(!s||!r)&&(t>=s.start&&t<=s.end||t>s.end&&r.end===e)}function y(t,e,s,r){var o;return!!s&&e+t>(null!==(o=null==r?void 0:r.end)&&void 0!==o?o:0)}function I(t){return t.items[t.start]}function k(t){return t.items[t.end]}function E(t,e,s,r){const o=[...t],i=o.length;let n=r,a=0,c=e;if(!i)return[];for(;a<i;){const t=o[c];t.start=n,t.size=s,t.end=t.start+s,n=t.end,c++,a++,c===i&&(c=0)}return o}class M{get lastCoordinate(){return this.lastKnownScroll}set lastCoordinate(t){this.lastKnownScroll=t}constructor(t){this.type=t,this.lastKnownScroll=0,this.store=n({items:[],start:0,end:0,virtualSize:0,realCount:0,clientSize:0,renderOffset:0})}setViewPortCoordinate(t,e,s=!1){const r=this.store.get("virtualSize");if(!r)return;const o=1*e.originItemSize,i=r+2*o,n=p(e,r,1);let a,c=j(t,e,r,1);this.lastCoordinate=c,c-=o,c=c<0?0:c<n?c:n,a=s?{items:[],start:0,end:0}:this.getItems();const l=I(a),d=k(a);let f={};if(C(c,e.realSize,l,d)){if(y(c,i,l,d)){const t=[...a.items],s=O(l,this.store.get("realCount"),i+c-l.start,a,{sizes:e.sizes,originItemSize:e.originItemSize});if(s.length){const e={start:this.store.get("start"),end:this.store.get("end")};w(t,s,e),f=Object.assign(Object.assign(Object.assign({},f),{items:[...t]}),e),this.setViewport(Object.assign({},f))}}}else f=Object.assign(Object.assign({},f),g(c,a,this.store.get("realCount"),i,e)),this.setViewport(Object.assign({},f))}setOriginalSizes(t){const e=this.store.get("items");e.length&&a(this.store,{items:E(e,this.store.get("start"),t,this.lastCoordinate)})}getItems(){return{items:this.store.get("items"),start:this.store.get("start"),end:this.store.get("end")}}setViewport(t){"number"!=typeof t.realCount&&"number"!=typeof t.virtualSize||(t=Object.assign(Object.assign({},t),{items:t.items||[]})),a(this.store,t)}}const D=t=>(e,{rowIndex:s})=>t+s,H=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.scrollViewport=s(this,"scrollview",3),this.elementToScroll=s(this,"ref",3),this.jobsBeforeRender=[]}render(){const t=[],e=new M("colPinStart");let s=1;for(let o of this.dataPorts){const i=o.dataStore.get("items").length,n=new c(o.type,Object.assign({},o.dataStore.state)),a=new c("colPinStart"),l=Object.assign({cellTemplate:D(s)},this.rowHeaderColumn);a.updateData([l]),t.push(r("revogr-data",Object.assign({},o,{colType:"rowHeaders",jobsBeforeRender:this.jobsBeforeRender,rowClass:this.rowClass,dataStore:n.store,colData:a.store,viewportCol:e.store,readonly:!0,range:!1}))),s+=i}const i=b(s,this.rowHeaderColumn);e.setViewport({realCount:1,virtualSize:0,items:[{size:i,start:0,end:i,itemIndex:0}]});const n={contentHeight:this.height,contentWidth:0,style:{minWidth:`${i}px`},colType:"rowHeaders",ref:t=>this.elementToScroll.emit(t),onScrollviewport:t=>this.scrollViewport.emit(t.detail)},a=Object.assign(Object.assign({},this.headerProp),{groups:[],colData:"object"==typeof this.rowHeaderColumn?[this.rowHeaderColumn]:[],viewportCol:e.store,canResize:!1,type:l,slot:f});return r(o,{class:{[l]:!0},key:l},r("revogr-viewport-scroll",Object.assign({key:"c401e82e02e4bdb7afb25f2f49c6776f2e115c81"},n,{"row-header":!0}),r("revogr-header",Object.assign({key:"3c73d27bd96e23a34fc0cf47eda4d2e65751df98"},a)),t))}},[0,"revogr-row-headers",{height:[2],dataPorts:[16],headerProp:[16],rowClass:[1,"row-class"],resize:[4],rowHeaderColumn:[16],additionalData:[8,"additional-data"],jobsBeforeRender:[16]}]);function P(){"undefined"!=typeof customElements&&["revogr-row-headers","revogr-data","revogr-header","revogr-viewport-scroll","vnode-html"].forEach((t=>{switch(t){case"revogr-row-headers":customElements.get(i(t))||customElements.define(i(t),H);break;case"revogr-data":customElements.get(i(t))||u();break;case"revogr-header":customElements.get(i(t))||h();break;case"revogr-viewport-scroll":customElements.get(i(t))||m();break;case"vnode-html":customElements.get(i(t))||v()}}))}export{H as R,M as V,g as a,O as b,j as c,z as d,y as e,I as f,p as g,k as h,C as i,b as j,P as k,x as r,E as s,w as u}