@revolist/revogrid 4.23.13 → 4.23.14

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 (74) hide show
  1. package/dist/cjs/{cell-renderer-DfUCisis.js → cell-renderer-Dcz022q7.js} +5 -23
  2. package/dist/cjs/{column.drag.plugin-D_Dfhp4f.js → column.drag.plugin-BGLbi1zS.js} +9 -38
  3. package/dist/cjs/{column.service-BNWNiJW3.js → column.service-C1Qvcf5l.js} +23 -62
  4. package/dist/cjs/{filter.button-B9EzJrr1.js → filter.button-w6LWnyhi.js} +0 -16
  5. package/dist/cjs/{header-cell-renderer-DyjOxArm.js → header-cell-renderer-vVr4IWNV.js} +1 -1
  6. package/dist/cjs/index.cjs.js +5 -8
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/revo-grid.cjs.entry.js +6 -6
  9. package/dist/cjs/revo-grid.cjs.js +1 -1
  10. package/dist/cjs/revogr-attribution_7.cjs.entry.js +4 -40
  11. package/dist/cjs/revogr-data_4.cjs.entry.js +6 -14
  12. package/dist/cjs/revogr-filter-panel.cjs.entry.js +68 -119
  13. package/dist/collection/components/data/column.service.js +23 -62
  14. package/dist/collection/components/data/row-renderer.js +2 -15
  15. package/dist/collection/components/overlay/revogr-overlay-selection.js +7 -27
  16. package/dist/collection/components/revoGrid/revo-grid.js +7 -14
  17. package/dist/collection/components/scroll/revogr-viewport-scroll.js +2 -10
  18. package/dist/collection/plugins/filter/filter.button.js +0 -14
  19. package/dist/collection/plugins/filter/filter.panel.js +68 -80
  20. package/dist/collection/plugins/filter/filter.plugin.js +4 -4
  21. package/dist/collection/plugins/filter/filter.style.css +18 -56
  22. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +2 -7
  23. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +2 -30
  24. package/dist/collection/serve/controller.js +0 -1
  25. package/dist/esm/{cell-renderer-CLTRlCa5.js → cell-renderer-BtN-NGCk.js} +5 -23
  26. package/dist/esm/{column.drag.plugin-UNSHSmgo.js → column.drag.plugin-4Ixr4ijU.js} +10 -38
  27. package/dist/esm/{column.service-C6hByxPy.js → column.service-CC_SD8W3.js} +23 -62
  28. package/dist/{revo-grid/filter.button-BFwo1uvz.js → esm/filter.button-C8XTWPU2.js} +1 -15
  29. package/dist/esm/{header-cell-renderer-BMmXRsd_.js → header-cell-renderer-B-LX2sgu.js} +1 -1
  30. package/dist/esm/index.js +6 -6
  31. package/dist/esm/loader.js +1 -1
  32. package/dist/esm/revo-grid.entry.js +6 -6
  33. package/dist/esm/revo-grid.js +1 -1
  34. package/dist/esm/revogr-attribution_7.entry.js +4 -40
  35. package/dist/esm/revogr-data_4.entry.js +6 -14
  36. package/dist/esm/revogr-filter-panel.entry.js +68 -119
  37. package/dist/revo-grid/{cell-renderer-CLTRlCa5.js → cell-renderer-BtN-NGCk.js} +5 -23
  38. package/dist/revo-grid/{column.drag.plugin-UNSHSmgo.js → column.drag.plugin-4Ixr4ijU.js} +10 -38
  39. package/dist/revo-grid/{column.service-C6hByxPy.js → column.service-CC_SD8W3.js} +23 -62
  40. package/dist/{esm/filter.button-BFwo1uvz.js → revo-grid/filter.button-C8XTWPU2.js} +1 -15
  41. package/dist/revo-grid/{header-cell-renderer-BMmXRsd_.js → header-cell-renderer-B-LX2sgu.js} +1 -1
  42. package/dist/revo-grid/index.esm.js +6 -6
  43. package/dist/revo-grid/revo-grid.entry.js +6 -6
  44. package/dist/revo-grid/revo-grid.esm.js +1 -1
  45. package/dist/revo-grid/revogr-attribution_7.entry.js +4 -40
  46. package/dist/revo-grid/revogr-data_4.entry.js +6 -14
  47. package/dist/revo-grid/revogr-filter-panel.entry.js +68 -119
  48. package/dist/types/components/data/column.service.d.ts +1 -10
  49. package/dist/types/components/data/row-renderer.d.ts +1 -1
  50. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +3 -4
  51. package/dist/types/components/revoGrid/revo-grid.d.ts +4 -4
  52. package/dist/types/components.d.ts +14 -14
  53. package/dist/types/plugins/filter/filter.button.d.ts +0 -11
  54. package/dist/types/plugins/filter/filter.panel.d.ts +4 -7
  55. package/dist/types/plugins/filter/filter.plugin.d.ts +0 -1
  56. package/dist/types/plugins/filter/filter.types.d.ts +0 -1
  57. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +0 -4
  58. package/dist/types/types/interfaces.d.ts +0 -8
  59. package/hydrate/index.js +107 -303
  60. package/hydrate/index.mjs +107 -303
  61. package/package.json +1 -1
  62. package/readme.md +1 -20
  63. package/standalone/column.service.js +1 -1
  64. package/standalone/filter.button.js +1 -1
  65. package/standalone/index.js +1 -1
  66. package/standalone/revo-grid.js +1 -1
  67. package/standalone/revogr-data2.js +1 -1
  68. package/standalone/revogr-filter-panel.js +1 -1
  69. package/standalone/revogr-overlay-selection2.js +1 -1
  70. package/standalone/revogr-viewport-scroll2.js +1 -1
  71. package/dist/collection/components/overlay/clipboard.utils.js +0 -26
  72. package/dist/collection/plugins/filter/filter.reorder.js +0 -44
  73. package/dist/types/components/overlay/clipboard.utils.d.ts +0 -3
  74. package/dist/types/plugins/filter/filter.reorder.d.ts +0 -4
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import{h as t,Build as e,proxyCustomElement as o,HTMLElement as i,createEvent as r,Host as n,transformTag as s}from"@stencil/core/internal/client";import{l as a,m as l,h as d,G as c,P as h,O as g,B as p,M as v,u}from"./column.service.js";import{a as C,h as m,g as w,l as L,D as f}from"./consts.js";import{b as x}from"./data.store.js";import"./platform.js";import{d as b}from"./vnode-converter.js";const y=(e,o)=>{var{rowClass:i,index:r,size:n,start:s,depth:a,groupingLevel:l}=e,d=function(t,e){var o={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(o[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(t);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(t,i[r])&&(o[i[r]]=t[i[r]])}return o}(e,["rowClass","index","size","start","depth","groupingLevel"]);const c=Object.assign(Object.assign(Object.assign({},d),{[C]:r}),"number"==typeof l?{"data-level":l}:{});return t("div",Object.assign({},c,{class:`rgRow ${i||""}`,style:{height:`${n}px`,transform:`translateY(${s}px)`,paddingLeft:a?10*a+"px":void 0}}),o)};function E(t,e,o){var i;const r=new CustomEvent(l,{detail:{model:e,virtualIndex:o},cancelable:!0,bubbles:!0});null===(i=t.target)||void 0===i||i.dispatchEvent(r)}const j=e=>{const{model:o,itemIndex:i,hasExpand:r,groupingCustomRenderer:n}=e,s=o[h],l=o[d],g=parseInt(o[c],10)||0;return t(y,Object.assign({},e,{rowClass:"groupingRow",depth:g,expanded:l}),n?t("div",{onClick:t=>E(t,o,i)},n(t,Object.assign(Object.assign({},e),{colType:e.providers.colType,name:s,expanded:l,depth:g}))):r&&[t("button",{class:{[a]:!0},onClick:t=>E(t,o,i)},O(l)),s])},O=(e=!1)=>t("svg",{"aria-hidden":"true",style:{transform:`rotate(${e?0:-90}deg)`},focusable:"false",viewBox:"0 0 448 512"},t("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 R(o){var i;const r=[],n=null===(i=o.schemaModel.column)||void 0===i?void 0:i.cellTemplate;if(n)r.push(n(t,o.schemaModel,o.additionalData));else{if(!o.schemaModel.column)return(null==e?void 0:e.isDev)&&console.error("Investigate column problem.",o.schemaModel),"";o.schemaModel.column.rowDrag&&g(o.schemaModel.column.rowDrag,o.schemaModel)&&r.push(t("span",{class:m,onMouseDown:t=>{var e;return null===(e=o.dragStartCell)||void 0===e?void 0:e.emit({originalEvent:t,model:o.schemaModel})}},t("span",{class:w}))),r.push(`${p(o.schemaModel.model,o.schemaModel.column)}`)}return r}const k=({renderProps:e,cellProps:o})=>{const i=R.bind(null,e);return t("div",Object.assign({},o,{redraw:i}),i())};class D{constructor(){this.currentRange=null}selectionChange(t,e){if(this.currentRange&&e.forEach(((e,o)=>{var i;t&&o>=t.y&&o<=t.y1||e&&e.t instanceof HTMLElement&&e.t.classList.contains(L)&&(e.t.classList.remove(L),(null===(i=e.o)||void 0===i?void 0:i.class.includes(L))&&(e.o.class=e.o.class.replace(L,"")))})),t)for(let o=t.y;o<=t.y1;o++){const t=e.get(o);if(t&&t.t instanceof HTMLElement&&!t.t.classList.contains(L)){const e=t.o=t.o||{};e.class=(e.class||"")+" "+L,t.t.classList.add(L)}}this.currentRange=t}isRowFocused(t){return this.currentRange&&t>=this.currentRange.y&&t<=this.currentRange.y1}}const T=o(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.beforerowrender=r(this,"beforerowrender",7),this.afterrender=r(this,"afterrender",7),this.beforeCellRender=r(this,"beforecellrender",7),this.beforeDataRender=r(this,"beforedatarender",7),this.dragStartCell=r(this,"dragstartcell",7),this.jobsBeforeRender=[],this.renderedRows=new Map}async updateCell(t){var e,o,i;const r=null===(o=null===(e=this.renderedRows.get(t.row))||void 0===e?void 0:e.i)||void 0===o?void 0:o[t.col];if(null===(i=null==r?void 0:r.o)||void 0===i?void 0:i.redraw){const t=await(n=this.element,s=r.o.redraw,new Promise((t=>{const e=document.createElement("vnode-html");n.appendChild(e),e.redraw=s,e.addEventListener("html",(o=>{e.remove(),t(o.detail)}))})));r.t.innerHTML=t.html,r.l=Math.random()}var n,s}onDataStoreChange(){this.onStoreChange()}onColDataChange(){this.onStoreChange()}onStoreChange(){var t,e;null===(t=this.columnService)||void 0===t||t.destroy(),this.columnService=new v(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===(e=this.rangeUnsubscribe)||void 0===e||e.call(this),this.rangeUnsubscribe=this.rowSelectionStore.onChange("range",(t=>this.rowHighlightPlugin.selectionChange(t,this.renderedRows)))}connectedCallback(){this.rowHighlightPlugin=new D,this.onStoreChange()}disconnectedCallback(){var t,e;null===(t=this.columnService)||void 0===t||t.destroy(),null===(e=this.rangeUnsubscribe)||void 0===e||e.call(this)}async componentWillRender(){return this.beforeDataRender.emit({rowType:this.type,colType:this.colType}),Promise.all(this.jobsBeforeRender.map((t=>"function"==typeof t?t():t)))}componentDidRender(){this.afterrender.emit({type:this.type})}render(){if(this.renderedRows=new Map,!this.columnService.columns.length)return;const e=this.viewportRow.get("items");if(!e.length)return;const o=this.viewportCol.get("items");if(!o.length)return;const i=[],r=this.dataStore.get("groupingDepth"),s=this.dataStore.get("groupingCustomRenderer"),a=this.columnService.hasGrouping?r:0,l=this.viewportRow.get("renderOffset")||0,d=this.viewportCol.get("renderOffset")||0;for(let r of e){const e=x(this.dataStore,r.itemIndex);if(u(e)){const n=Object.assign(Object.assign({},r),{start:r.start-l,index:r.itemIndex,model:e,groupingCustomRenderer:s,hasExpand:this.columnService.hasGrouping&&"rowHeaders"!==this.colType,columnItems:o,providers:this.providers});i.push(t(j,Object.assign({},n)));continue}const n=[];for(let e of o){const o=Object.assign(Object.assign({},this.columnService.rowDataModel(r.itemIndex,e.itemIndex)),{providers:this.providers}),i=this.triggerBeforeCellRender(o,r,e);if(i.defaultPrevented)continue;const{detail:{column:s,row:l,model:c}}=i,h={[f]:s.itemIndex,[C]:l.itemIndex,style:{width:`${s.size}px`,transform:`translateX(${s.start-d}px)`,height:l.size?`${l.size}px`:void 0}};a&&!s.itemIndex&&h.style&&(h.style.paddingLeft=10*a+"px");const g=this.columnService.mergeProperties(l.itemIndex,s.itemIndex,h,c),p=t(k,{renderProps:{schemaModel:c,additionalData:this.additionalData,dragStartCell:this.dragStartCell},cellProps:g});n.push(p)}let c=this.rowClass?this.columnService.getRowClass(r.itemIndex,this.rowClass):"";this.rowHighlightPlugin.isRowFocused(r.itemIndex)&&(c+=` ${L}`);const h=t(y,{index:r.itemIndex,rowClass:c,size:r.size,start:r.start-l,groupingLevel:a||void 0},n);this.beforerowrender.emit({node:h,item:r,model:e,colType:this.columnService.type,rowType:this.type}),i.push(h),this.renderedRows.set(r.itemIndex,h)}return t(n,null,t("slot",null),i)}triggerBeforeCellRender(t,e,o){return this.beforeCellRender.emit({column:o,row:e,model:t,rowType:t.type,colType:t.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 z(){"undefined"!=typeof customElements&&["revogr-data","vnode-html"].forEach((t=>{switch(t){case"revogr-data":customElements.get(s(t))||customElements.define(s(t),T);break;case"vnode-html":customElements.get(s(t))||b()}}))}export{k as C,j as G,T as R,O as a,z as d,E as e}
4
+ import{h as t,Build as e,proxyCustomElement as o,HTMLElement as i,createEvent as r,Host as n,transformTag as s}from"@stencil/core/internal/client";import{l as a,m as l,G as d,h as c,P as h,O as g,B as p,M as v,u}from"./column.service.js";import{a as C,h as m,g as w,l as L,D as f}from"./consts.js";import{b as x}from"./data.store.js";import"./platform.js";import{d as b}from"./vnode-converter.js";const y=({rowClass:e,index:o,size:i,start:r,depth:n,groupingLevel:s},a)=>{const l=Object.assign({[C]:o},"number"==typeof s?{"data-level":s}:{});return t("div",Object.assign({},l,{class:`rgRow ${e||""}`,style:{height:`${i}px`,transform:`translateY(${r}px)`,paddingLeft:n?10*n+"px":void 0}}),a)};function E(t,e,o){var i;const r=new CustomEvent(l,{detail:{model:e,virtualIndex:o},cancelable:!0,bubbles:!0});null===(i=t.target)||void 0===i||i.dispatchEvent(r)}const R=e=>{const{model:o,itemIndex:i,hasExpand:r,groupingCustomRenderer:n}=e,s=o[h],l=o[c],g=parseInt(o[d],10)||0;return t(y,Object.assign({},e,{rowClass:"groupingRow",depth:g}),n?t("div",{onClick:t=>E(t,o,i)},n(t,Object.assign(Object.assign({},e),{colType:e.providers.colType,name:s,expanded:l,depth:g}))):r&&[t("button",{class:{[a]:!0},onClick:t=>E(t,o,i)},j(l)),s])},j=(e=!1)=>t("svg",{"aria-hidden":"true",style:{transform:`rotate(${e?0:-90}deg)`},focusable:"false",viewBox:"0 0 448 512"},t("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 k(o){var i;const r=[],n=null===(i=o.schemaModel.column)||void 0===i?void 0:i.cellTemplate;if(n)r.push(n(t,o.schemaModel,o.additionalData));else{if(!o.schemaModel.column)return(null==e?void 0:e.isDev)&&console.error("Investigate column problem.",o.schemaModel),"";o.schemaModel.column.rowDrag&&g(o.schemaModel.column.rowDrag,o.schemaModel)&&r.push(t("span",{class:m,onMouseDown:t=>{var e;return null===(e=o.dragStartCell)||void 0===e?void 0:e.emit({originalEvent:t,model:o.schemaModel})}},t("span",{class:w}))),r.push(`${p(o.schemaModel.model,o.schemaModel.column)}`)}return r}const D=({renderProps:e,cellProps:o})=>{const i=k.bind(null,e);return t("div",Object.assign({},o,{redraw:i}),i())};class O{constructor(){this.currentRange=null}selectionChange(t,e){if(this.currentRange&&e.forEach(((e,o)=>{var i;t&&o>=t.y&&o<=t.y1||e&&e.t instanceof HTMLElement&&e.t.classList.contains(L)&&(e.t.classList.remove(L),(null===(i=e.o)||void 0===i?void 0:i.class.includes(L))&&(e.o.class=e.o.class.replace(L,"")))})),t)for(let o=t.y;o<=t.y1;o++){const t=e.get(o);if(t&&t.t instanceof HTMLElement&&!t.t.classList.contains(L)){const e=t.o=t.o||{};e.class=(e.class||"")+" "+L,t.t.classList.add(L)}}this.currentRange=t}isRowFocused(t){return this.currentRange&&t>=this.currentRange.y&&t<=this.currentRange.y1}}const T=o(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.beforerowrender=r(this,"beforerowrender",7),this.afterrender=r(this,"afterrender",7),this.beforeCellRender=r(this,"beforecellrender",7),this.beforeDataRender=r(this,"beforedatarender",7),this.dragStartCell=r(this,"dragstartcell",7),this.jobsBeforeRender=[],this.renderedRows=new Map}async updateCell(t){var e,o,i;const r=null===(o=null===(e=this.renderedRows.get(t.row))||void 0===e?void 0:e.i)||void 0===o?void 0:o[t.col];if(null===(i=null==r?void 0:r.o)||void 0===i?void 0:i.redraw){const t=await(n=this.element,s=r.o.redraw,new Promise((t=>{const e=document.createElement("vnode-html");n.appendChild(e),e.redraw=s,e.addEventListener("html",(o=>{e.remove(),t(o.detail)}))})));r.t.innerHTML=t.html,r.l=Math.random()}var n,s}onDataStoreChange(){this.onStoreChange()}onColDataChange(){this.onStoreChange()}onStoreChange(){var t,e;null===(t=this.columnService)||void 0===t||t.destroy(),this.columnService=new v(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===(e=this.rangeUnsubscribe)||void 0===e||e.call(this),this.rangeUnsubscribe=this.rowSelectionStore.onChange("range",(t=>this.rowHighlightPlugin.selectionChange(t,this.renderedRows)))}connectedCallback(){this.rowHighlightPlugin=new O,this.onStoreChange()}disconnectedCallback(){var t,e;null===(t=this.columnService)||void 0===t||t.destroy(),null===(e=this.rangeUnsubscribe)||void 0===e||e.call(this)}async componentWillRender(){return this.beforeDataRender.emit({rowType:this.type,colType:this.colType}),Promise.all(this.jobsBeforeRender.map((t=>"function"==typeof t?t():t)))}componentDidRender(){this.afterrender.emit({type:this.type})}render(){if(this.renderedRows=new Map,!this.columnService.columns.length)return;const e=this.viewportRow.get("items");if(!e.length)return;const o=this.viewportCol.get("items");if(!o.length)return;const i=[],r=this.dataStore.get("groupingDepth"),s=this.dataStore.get("groupingCustomRenderer"),a=this.columnService.hasGrouping?r:0,l=this.viewportRow.get("renderOffset")||0,d=this.viewportCol.get("renderOffset")||0;for(let r of e){const e=x(this.dataStore,r.itemIndex);if(u(e)){const n=Object.assign(Object.assign({},r),{start:r.start-l,index:r.itemIndex,model:e,groupingCustomRenderer:s,hasExpand:this.columnService.hasGrouping&&"rowHeaders"!==this.colType,columnItems:o,providers:this.providers});i.push(t(R,Object.assign({},n)));continue}const n=[];for(let e of o){const o=Object.assign(Object.assign({},this.columnService.rowDataModel(r.itemIndex,e.itemIndex)),{providers:this.providers}),i=this.triggerBeforeCellRender(o,r,e);if(i.defaultPrevented)continue;const{detail:{column:s,row:l,model:c}}=i,h={[f]:s.itemIndex,[C]:l.itemIndex,style:{width:`${s.size}px`,transform:`translateX(${s.start-d}px)`,height:l.size?`${l.size}px`:void 0}};a&&!s.itemIndex&&h.style&&(h.style.paddingLeft=10*a+"px");const g=this.columnService.mergeProperties(l.itemIndex,s.itemIndex,h,c),p=t(D,{renderProps:{schemaModel:c,additionalData:this.additionalData,dragStartCell:this.dragStartCell},cellProps:g});n.push(p)}let c=this.rowClass?this.columnService.getRowClass(r.itemIndex,this.rowClass):"";this.rowHighlightPlugin.isRowFocused(r.itemIndex)&&(c+=` ${L}`);const h=t(y,{index:r.itemIndex,rowClass:c,size:r.size,start:r.start-l,groupingLevel:a||void 0},n);this.beforerowrender.emit({node:h,item:r,model:e,colType:this.columnService.type,rowType:this.type}),i.push(h),this.renderedRows.set(r.itemIndex,h)}return t(n,null,t("slot",null),i)}triggerBeforeCellRender(t,e,o){return this.beforeCellRender.emit({column:o,row:e,model:t,rowType:t.type,colType:t.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 M(){"undefined"!=typeof customElements&&["revogr-data","vnode-html"].forEach((t=>{switch(t){case"revogr-data":customElements.get(s(t))||customElements.define(s(t),T);break;case"vnode-html":customElements.get(s(t))||b()}}))}export{D as C,R as G,T as R,j as a,M as d,E as e}
@@ -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 s}from"@stencil/core/internal/client";import{d as n}from"./debounce.js";import{i as l,e as a,f as d,d as c}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 h="text/revogrid-filter-id",u="none",p="add-filter",f=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"},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.debouncedApplyFilter=n((()=>{this.filterChange.emit(this.filterItems)}),400)}onMouseDown(t){if(!this.changes)return;const i=t.composedPath(),r=document.getElementById(p);if(r instanceof HTMLSelectElement){if(i.includes(r))return;r.value=u}this.currentFilterType=u,this.changes&&(this.changes.type=u),this.currentFilterId=-1;const o=!i.includes(this.element);t.target instanceof e&&o&&!l(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:[],s=o.filter((t=>!t.hidden)).length,n=Object.assign(this.filterCaptionsInternal,this.filterCaptions);return r("div",{key:this.filterId},o.map(((t,e)=>{let o;if(t.hidden)return;e!==this.filterItems[i].length-1&&(o=r("div",{onClick:()=>this.toggleFilterAndOr(t.id)},r(a,{text:"and"===t.relation?n.and:n.or})));const l=this.renderExtra(i,e);return r("div",{key:t.id,class:"multi-filter-list"},r("div",{ref:t=>null==t?void 0:t.classList.add("multi-filter-list-row")},s>1?r(d,{dragging:this.draggedFilterId===t.id,dragOver:this.dragOverFilterId===t.id&&this.draggedFilterId!==t.id,onDragStart:e=>this.onFilterDragStart(e,t.id),onDragEnd:()=>this.onFilterDragEnd(),onDragOver:e=>this.onFilterDragOver(e,t.id),onDragLeave:()=>this.onFilterDragLeave(t.id),onDrop:e=>this.onFilterDrop(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)),l?r("div",{class:"filter-extra"},l):""),r("div",{class:"multi-filter-list-action"},o,r("div",{onClick:()=>this.onRemoveFilter(t.id)},r(c,null)))))})),o.filter((t=>!t.hidden)).length>0?r("div",{class:"add-filter-divider"}):"")}autoCorrect(t){var e,i;if(!t)return;const r=t.closest("revo-grid");if(!r)return;const o=t.getBoundingClientRect(),s=r.getBoundingClientRect().right-o.width;o.left>s&&t.offsetLeft&&(t.style.left=s-(null!==(i=null===(e=t.parentElement)||void 0===e?void 0:e.getBoundingClientRect().left)&&void 0!==i?i:0)+"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=document.getElementById("add-filter");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(h,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(h)||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 s=this.filterItems[e];s&&function(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 s=t.map((t=>{var e;return null!==(e=t.relation)&&void 0!==e?e:"and"})),[n]=t.splice(r,1);return t.splice(o,0,n),t.forEach(((e,i)=>{var r;e.relation=i===t.length-1?"and":null!==(r=s[i])&&void 0!==r?r:"and"})),!0}(s,o,i)&&(this.filterId++,this.disableDynamicFiltering||this.debouncedApplyFilter())}onFilterDragEnd(){this.draggedFilterId=void 0,this.dragOverFilterId=void 0}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){if(!this.changes)return;const i=[],o=this.changes.prop,s=new Set;if(Object.keys(this.filterItems).forEach((t=>{this.filterItems[t].forEach((t=>{t.hidden&&s.add(t.type)}))})),!e){const t=Object.assign(this.filterCaptionsInternal,this.filterCaptions);i.push(r("option",{selected:this.currentFilterType===u,value:u},o&&this.filterItems[o]&&this.filterItems[o].length>0?t.add:this.filterNames[u]))}for(let e in this.changes.filterTypes){const o=this.changes.filterTypes[e].filter((t=>!s.has(t)));o.length&&(i.push(...o.map((e=>r("option",{value:e,selected:t===e},this.filterNames[e])))),i.push(r("option",{disabled:!0})))}return i}renderExtra(t,e){const i=this.filterItems[t];if(!i)return"";const o=i=>{this.filterItems[t][e].value=i,this.disableDynamicFiltering||this.debouncedApplyFilter()},s=()=>{const t=document.getElementById("add-filter");t&&(t.value=u,this.currentFilterType=u,this.addNewFilterToProp(),t.focus())},n=Object.assign(this.filterCaptionsInternal,this.filterCaptions),l=this.filterEntities[i[e].type].extra;return"function"==typeof l?l(r,{value:i[e].value,filter:i[e],prop:t,index:e,placeholder:n.placeholder,onInput:t=>{o(t)},onFocus:()=>{s()}}):"input"!==l&&"datepicker"!==l?"":r("input",{id:"filter-input-"+i[e].id,placeholder:n.placeholder,type:"datepicker"===l?"date":"text",value:i[e].value,onInput:t=>{t.target instanceof HTMLInputElement&&o(t.target.value)},onKeyDown:t=>{"enter"!==t.key.toLowerCase()?t.stopPropagation():document.getElementById("add-filter")&&s()}})}render(){var t,e,i,s,n;if(!this.changes)return r(o,{style:{display:"none"}});const l={display:"block",left:this.changes.x+"px",top:this.changes.y+"px"},a=Object.assign(this.filterCaptionsInternal,this.filterCaptions);return r(o,{style:l,ref:t=>{var e;!1!==(null===(e=this.changes)||void 0===e?void 0:e.autoCorrect)&&this.autoCorrect(t)}},r("slot",{slot:"header"}),(null===(e=(t=this.changes).extraContent)||void 0===e?void 0:e.call(t,this.changes))||"",!0!==(null===(i=this.changes)||void 0===i?void 0:i.hideDefaultFilters)&&[r("label",null,a.title),r("div",{class:"filter-holder"},this.getFilterItemsList()),r("div",{class:"add-filter"},r("select",{id:p,class:"select-css",onChange:t=>this.onAddNewFilter(t)},this.renderSelectOptions(this.currentFilterType)))],r("slot",null),(null===(n=(s=this.changes).extraBottomContent)||void 0===n?void 0:n.call(s,this.changes))||"",r("div",{class:"filter-actions"},this.disableDynamicFiltering&&[r("button",{id:"revo-button-save","aria-label":"save",class:"revo-button green",onClick:()=>this.onSave()},a.save),r("button",{id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},a.cancel)],!this.disableDynamicFiltering&&[r("button",{id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},a.ok),r("button",{id:"revo-button-reset","aria-label":"reset",class:"revo-button outline",onClick:()=>this.onReset()},a.reset)]),r("slot",{slot:"footer"}))}get element(){return this}static get style(){return'.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#4545ff;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:#009037}.revo-button.red{background-color:#E0662E}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid #dbdbdb;line-height:30px;background:none;color:#000;box-shadow:none}revo-grid[theme^=dark] .revo-button.outline{border:1px solid #404040;color:#d8d8d8}revogr-filter-panel{position:absolute;display:block;top:0;left:0;z-index:100;max-height:calc(100% - 80px);overflow:auto;opacity:1;transform:none;background-color:var(--revo-grid-filter-panel-bg, #fff);border:1px solid var(--revo-grid-filter-panel-border, #cecece);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));padding:10px;border-radius:8px;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel select{width:100%}revogr-filter-panel input[type=text]{border:0;min-height:34px;margin:5px 0;background:var(--revo-grid-filter-panel-input-bg, #f3f3f3);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-actions{text-align:right;margin-right:-5px}revogr-filter-panel .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{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:#10224a}.rgHeaderCell .rv-filter .filter-img{color:gray;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;border:1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--revo-grid-filter-panel-input-bg, #f3f3f3);background-image: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:hover{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.select-css:focus{border-color:var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);box-shadow:0 0 1px 3px rgba(59, 153, 252, 0.7);box-shadow:0 0 0 3px -moz-mac-focusring;outline:none}.select-css option{font-weight:normal}.select-css:disabled,.select-css[aria-disabled=true]{color:gray;background-image: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"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%)}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.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}.multi-filter-list .multi-filter-list-action{display:flex;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;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(--revo-grid-filter-panel-reorder-color, #6b7280);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-dragging{opacity:0.55}.multi-filter-list .reorder-button.filter-row-drag-over{color:var(--revo-grid-filter-panel-reorder-accent, #007cb2)}.multi-filter-list .reorder-button:active{cursor:grabbing}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);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 .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"],isFilterIdSet:[32],filterId:[32],currentFilterId:[32],currentFilterType:[32],changes:[32],filterItems:[32],draggedFilterId:[32],dragOverFilterId:[32],show:[64],getChanges:[64]},[[5,"mousedown","onMouseDown"]]]),v=f,g=function(){"undefined"!=typeof customElements&&["revogr-filter-panel"].forEach((t=>{"revogr-filter-panel"===t&&(customElements.get(s(t))||customElements.define(s(t),f))}))};export{v as RevogrFilterPanel,g as defineCustomElement}
4
+ import{proxyCustomElement as e,HTMLElement as t,createEvent as i,h as r,Host as o,transformTag as s}from"@stencil/core/internal/client";import{d as l}from"./debounce.js";import{i as n,e as a,d}from"./filter.button.js";Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(e){let t=this;do{if(Element.prototype.matches.call(t,e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null});const c="none",h="add-filter",f=e(class extends t{constructor(e){super(),!1!==e&&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"},this.isFilterIdSet=!1,this.filterId=0,this.currentFilterId=-1,this.currentFilterType=c,this.filterItems={},this.filterNames={},this.filterEntities={},this.disableDynamicFiltering=!1,this.closeOnOutsideClick=!0,this.debouncedApplyFilter=l((()=>{this.filterChange.emit(this.filterItems)}),400)}onMouseDown(e){if(!this.changes)return;const i=e.composedPath(),r=document.getElementById(h);if(r instanceof HTMLSelectElement){if(i.includes(r))return;r.value=c}this.currentFilterType=c,this.changes&&(this.changes.type=c),this.currentFilterId=-1;const o=!i.includes(this.element);e.target instanceof t&&o&&!n(e.target)&&this.closeOnOutsideClick&&(this.changes=void 0)}async show(e){this.changes=e,this.filterItems=(null==e?void 0:e.filterItems)||{},this.changes&&(this.changes.type=this.changes.type||c)}async getChanges(){return this.changes}componentWillRender(){if(!this.isFilterIdSet){this.isFilterIdSet=!0;const e=Object.keys(this.filterItems);for(const t of e)this.filterId+=this.filterItems[t].length}}getFilterItemsList(){var e,t;const i=null===(e=this.changes)||void 0===e?void 0:e.prop;if(void 0===i)return"";const o=null!==(t=this.filterItems[i])&&void 0!==t?t:[],s=Object.assign(this.filterCaptionsInternal,this.filterCaptions);return r("div",{key:this.filterId},o.map(((e,t)=>{let o;if(!e.hidden)return t!==this.filterItems[i].length-1&&(o=r("div",{onClick:()=>this.toggleFilterAndOr(e.id)},r(a,{text:"and"===e.relation?s.and:s.or}))),r("div",{key:e.id,class:"multi-filter-list"},r("div",{class:{"select-input":!0}},r("select",{class:"select-css select-filter",onChange:e=>this.onFilterTypeChange(e,i,t)},this.renderSelectOptions(this.filterItems[i][t].type,!0)),r("div",{class:"multi-filter-list-action"},o),r("div",{onClick:()=>this.onRemoveFilter(e.id)},r(d,null))),r("div",null,this.renderExtra(i,t)))})),o.filter((e=>!e.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&&requestAnimationFrame((()=>this.autoCorrect(this.dialog)))):this.dialog.open&&this.dialog.close())}autoCorrect(e){if(!e)return;const t=e.getBoundingClientRect(),i=Math.max(0,window.innerWidth-t.width),r=Math.max(0,window.innerHeight-t.height);t.left>i&&(e.style.left=i+"px"),t.top>r&&(e.style.top=r+"px")}onDialogMouseDown(e){if(!this.closeOnOutsideClick||e.target!==this.dialog||!this.dialog)return;const t=this.dialog.getBoundingClientRect();e.clientX>=t.left&&e.clientX<=t.right&&e.clientY>=t.top&&e.clientY<=t.bottom||this.onCancel()}onFilterTypeChange(e,t,i){e.target instanceof HTMLSelectElement&&(this.filterItems[t][i].type=e.target.value,this.filterId++,setTimeout((()=>{const e=document.getElementById("filter-input-"+this.filterItems[t][i].id);e instanceof HTMLInputElement&&e.focus()}),0),this.disableDynamicFiltering||this.debouncedApplyFilter())}onAddNewFilter(e){this.currentFilterType=e.target.value,this.addNewFilterToProp();const t=document.getElementById("add-filter");t&&(t.value=c,this.currentFilterType=c),this.disableDynamicFiltering||this.debouncedApplyFilter()}addNewFilterToProp(){var e;const t=null===(e=this.changes)||void 0===e?void 0:e.prop;(t||0===t)&&(this.filterItems[t]||(this.filterItems[t]=[]),"none"!==this.currentFilterType&&(this.filterId++,this.currentFilterId=this.filterId,this.filterItems[t].push({id:this.currentFilterId,type:this.currentFilterType,value:"",relation:"and"}),setTimeout((()=>{const e=document.getElementById("filter-input-"+this.currentFilterId);e&&e.focus()}),0)))}onSave(){this.filterChange.emit(this.filterItems)}onCancel(){this.changes=void 0}onReset(){var e;this.assertChanges(),this.resetChange.emit(null===(e=this.changes)||void 0===e?void 0:e.prop),this.filterId++}onRemoveFilter(e){var t;this.assertChanges(),this.filterId++;const i=null===(t=this.changes)||void 0===t?void 0:t.prop,r=this.filterItems[null!=i?i:""];if(!r)return;const o=r.findIndex((t=>t.id===e));-1!==o&&(r.splice(o,1),0===r.length&&delete this.filterItems[null!=i?i:""],this.disableDynamicFiltering||this.debouncedApplyFilter())}toggleFilterAndOr(e){var t;this.assertChanges(),this.filterId++;const i=null===(t=this.changes)||void 0===t?void 0:t.prop,r=this.filterItems[null!=i?i:""];if(!r)return;const o=r.findIndex((t=>t.id===e));-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(e,t=!1){if(!this.changes)return;const i=[],o=this.changes.prop,s=new Set;if(Object.keys(this.filterItems).forEach((e=>{this.filterItems[e].forEach((e=>{e.hidden&&s.add(e.type)}))})),!t){const e=Object.assign(this.filterCaptionsInternal,this.filterCaptions);i.push(r("option",{selected:this.currentFilterType===c,value:c},o&&this.filterItems[o]&&this.filterItems[o].length>0?e.add:this.filterNames[c]))}for(let t in this.changes.filterTypes){const o=this.changes.filterTypes[t].filter((e=>!s.has(e)));o.length&&(i.push(...o.map((t=>r("option",{value:t,selected:e===t},this.filterNames[t])))),i.push(r("option",{disabled:!0})))}return i}renderExtra(e,t){const i=this.filterItems[e];if(!i)return"";const o=i=>{this.filterItems[e][t].value=i,this.disableDynamicFiltering||this.debouncedApplyFilter()},s=()=>{const e=document.getElementById("add-filter");e&&(e.value=c,this.currentFilterType=c,this.addNewFilterToProp(),e.focus())},l=Object.assign(this.filterCaptionsInternal,this.filterCaptions),n=this.filterEntities[i[t].type].extra;return"function"==typeof n?n(r,{value:i[t].value,filter:i[t],prop:e,index:t,placeholder:l.placeholder,onInput:e=>{o(e)},onFocus:()=>{s()}}):"input"!==n&&"datepicker"!==n?"":r("input",{id:"filter-input-"+i[t].id,placeholder:l.placeholder,type:"datepicker"===n?"date":"text",value:i[t].value,onInput:e=>{e.target instanceof HTMLInputElement&&o(e.target.value)},onKeyDown:e=>{"enter"!==e.key.toLowerCase()?e.stopPropagation():document.getElementById("add-filter")&&s()}})}render(){var e,t,i,s,l,n,a;const d={left:(null!==(t=null===(e=this.changes)||void 0===e?void 0:e.x)&&void 0!==t?t:0)+"px",top:(null!==(s=null===(i=this.changes)||void 0===i?void 0:i.y)&&void 0!==s?s:0)+"px"},c=Object.assign(this.filterCaptionsInternal,this.filterCaptions);return r(o,{key:"9fb424017d080876ff7796237917b4f41f617fe0"},r("dialog",{key:"37b9f870b95f6fe1bd7be359dd7b77ef196e896e",class:"filter-panel-dialog",style:d,ref:e=>this.dialog=e,onCancel:e=>{e.preventDefault(),this.onCancel()},onMouseDown:e=>this.onDialogMouseDown(e)},this.changes&&[r("slot",{key:"76ec505a92d0a7c1ae0bbb5f4cac63555f3416be",slot:"header"}),(null===(n=(l=this.changes).extraContent)||void 0===n?void 0:n.call(l,this.changes))||"",!0!==(null===(a=this.changes)||void 0===a?void 0:a.hideDefaultFilters)&&[r("label",{key:"c6fd82c95f6005f286c7bc90de34956128a83246"},c.title),r("div",{key:"5e7dac36ad79ba1b6072a0053b30aa384ade0dde",class:"filter-holder"},this.getFilterItemsList()),r("div",{key:"d9b6103edbd138d4db845745686ee4c847310a66",class:"add-filter"},r("select",{key:"c1b321f2d19458f95ab3f9188d83d94bebdb688e",id:h,class:"select-css",onChange:e=>this.onAddNewFilter(e)},this.renderSelectOptions(this.currentFilterType)))],r("slot",{key:"1571dcbc5c57651deb42a4046272ff60fa74f5a7"}),r("div",{key:"4aa7dee532336b084542df0209291b4c60378b49",class:"filter-actions"},this.disableDynamicFiltering&&[r("button",{key:"4c1b3054cd1bb7f46877592f00f6634d0f7ecafa",id:"revo-button-save","aria-label":"save",class:"revo-button green",onClick:()=>this.onSave()},c.save),r("button",{key:"f31a568c89be18b1a854cdd7d4726e01db24e338",id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},c.cancel)],!this.disableDynamicFiltering&&[r("button",{key:"5d40e8b1f13f94cff4f5a2e2aefeee8861104a9d",id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},c.ok),r("button",{key:"67eac3abd16f6f6e2ed7089dcfb0d05524ddb7df",id:"revo-button-reset","aria-label":"reset",class:"revo-button outline",onClick:()=>this.onReset()},c.reset)]),r("slot",{key:"b27a9bb3ef814e1e09dca14eda3e332ff34c654c",slot:"footer"})]))}get element(){return this}static get style(){return'.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#4545ff;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:#009037}.revo-button.red{background-color:#E0662E}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid #dbdbdb;line-height:30px;background:none;color:#000;box-shadow:none}revo-grid[theme^=dark] .revo-button.outline{border:1px solid #404040;color:#d8d8d8}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;background-color:var(--revo-grid-filter-panel-bg, #fff);border:1px solid var(--revo-grid-filter-panel-border, #cecece);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));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::backdrop{background:transparent}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;background:var(--revo-grid-filter-panel-input-bg, #f3f3f3);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-panel-dialog .filter-actions{text-align:right;margin-right:-5px}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:#10224a}.rgHeaderCell .rv-filter .filter-img{color:gray;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;border:1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--revo-grid-filter-panel-input-bg, #f3f3f3);background-image: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:hover{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.select-css:focus{border-color:var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);box-shadow:0 0 1px 3px rgba(59, 153, 252, 0.7);box-shadow:0 0 0 3px -moz-mac-focusring;outline:none}.select-css option{font-weight:normal}.select-css:disabled,.select-css[aria-disabled=true]{color:gray;background-image: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"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%)}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-action{display:flex;justify-content:space-between;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;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);height:10px}.select-input{display:flex;justify-content:space-between;align-items:center}'}},[260,"revogr-filter-panel",{filterNames:[16],filterEntities:[16],filterCaptions:[16],disableDynamicFiltering:[4,"disable-dynamic-filtering"],closeOnOutsideClick:[4,"close-on-outside-click"],isFilterIdSet:[32],filterId:[32],currentFilterId:[32],currentFilterType:[32],changes:[32],filterItems:[32],show:[64],getChanges:[64]},[[5,"mousedown","onMouseDown"]]]),p=f,u=function(){"undefined"!=typeof customElements&&["revogr-filter-panel"].forEach((e=>{"revogr-filter-panel"===e&&(customElements.get(s(e))||customElements.define(s(e),f))}))};export{p as RevogrFilterPanel,u as defineCustomElement}
@@ -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 w,e as j,s as O,f as S,v as D}from"./selection.utils.js";import{l as C,m as M,c as R,d as k,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)&&(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&&R(t.code)?this.sv.clearCell():o&&(k(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)))}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=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 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.readonly||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:"ff303c39d59e4ef217421fa11b9a80de07311b07",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:"3cbe4c3ad7d447f779e9e20f73eec2e3107275e0",name:"data"}))}doFocus(t,e,i){const{defaultPrevented:s}=this.beforeFocusCell.emit(this.columnService.getSaveData(t.y,t.x));if(s)return!1;const o=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)}),n=this.applyFocus.emit(o);if(n.defaultPrevented)return!1;const{range:r}=n.detail;return!this.focusCell.emit(Object.assign({focus:{x:r.x,y:r.y},end:{x:r.x1,y:r.y1}},n.detail)).defaultPrevented}triggerRangeEvent(t){const e=this.types.rowType,i=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)}));if(i.defaultPrevented)return!1;const s=this.columnService.getRangeTransformedToProps(i.detail.range,this.dataStore);let o=this.beforeSetRange.emit(s);return!o.defaultPrevented&&(o=this.setRange.emit(Object.assign(Object.assign({},i.detail.range),{type:e})),!o.defaultPrevented&&!o.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),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=""){var e;if(this.canEdit()){const i=this.selectionStore.get("focus");if(!i)return;const s=this.columnService.getSaveData(i.y,i.x);null===(e=this.setEdit)||void 0===e||e.emit(Object.assign(Object.assign({},s),{val:t}))}}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");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){if(!t)return!1;const i=t,s=this.selectionStore.get("focus");if(e&&s){const t=r(s,i);if(t)return this.triggerRangeEvent(t)}return this.doFocus(t,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:#0d63e8;border:1px solid white;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:#0d63e8;border:1px solid white;box-sizing:border-box}revogr-overlay-selection .selection-border-range{position:absolute;pointer-events:none;z-index:9;box-shadow:-1px 0 0 #0d63e8 inset, 1px 0 0 #0d63e8 inset, 0 -1px 0 #0d63e8 inset, 0 1px 0 #0d63e8 inset}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:rgba(0, 0, 0, 0.2)}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 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 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 w,e as j,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)&&(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)))}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=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 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.readonly||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:"d936e8452e84c7a25ecd6502e929f1a5af69467f",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:"cd3525d404aa44fd8d06e7fc459777acb8a9d585",name:"data"}))}doFocus(t,e,i){const{defaultPrevented:s}=this.beforeFocusCell.emit(this.columnService.getSaveData(t.y,t.x));if(s)return!1;const o=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)}),n=this.applyFocus.emit(o);if(n.defaultPrevented)return!1;const{range:r}=n.detail;return!this.focusCell.emit(Object.assign({focus:{x:r.x,y:r.y},end:{x:r.x1,y:r.y1}},n.detail)).defaultPrevented}triggerRangeEvent(t){const e=this.types.rowType,i=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)}));if(i.defaultPrevented)return!1;const s=this.columnService.getRangeTransformedToProps(i.detail.range,this.dataStore);let o=this.beforeSetRange.emit(s);return!o.defaultPrevented&&(o=this.setRange.emit(Object.assign(Object.assign({},i.detail.range),{type:e})),!o.defaultPrevented&&!o.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),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=""){var e;if(this.canEdit()){const i=this.selectionStore.get("focus");if(!i)return;const s=this.columnService.getSaveData(i.y,i.x);null===(e=this.setEdit)||void 0===e||e.emit(Object.assign(Object.assign({},s),{val:t}))}}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;let{changed:o,range:n}=this.columnService.getTransformedDataToApply(i,t);const{defaultPrevented:r}=this.rangeClipboardPaste.emit(Object.assign({data:o,models:j(o,this.dataStore),range:n},this.types));r||null===(e=this.autoFillService)||void 0===e||e.onRangeApply(o,n,n)}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){if(!t)return!1;const i=t,s=this.selectionStore.get("focus");if(e&&s){const t=r(s,i);if(t)return this.triggerRangeEvent(t)}return this.doFocus(t,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:#0d63e8;border:1px solid white;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:#0d63e8;border:1px solid white;box-sizing:border-box}revogr-overlay-selection .selection-border-range{position:absolute;pointer-events:none;z-index:9;box-shadow:-1px 0 0 #0d63e8 inset, 1px 0 0 #0d63e8 inset, 0 -1px 0 #0d63e8 inset, 0 1px 0 #0d63e8 inset}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:rgba(0, 0, 0, 0.2)}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 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}
@@ -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 o,Host as l,transformTag as r}from"@stencil/core/internal/client";import{t as s}from"./throttle.js";import{L as n,a as c,b as a}from"./local.scroll.timer.js";const h="header",d="footer",v="content",w="data";function u(t,e){return{x:t.viewports[t.colType].store.get("realCount"),y:t.viewports[e].store.get("realCount")}}function p(t,e,i,o){return{colData:t.colStore,viewportCol:t.viewports[t.colType].store,viewportRow:t.viewports[e].store,lastCell:u(t,e),slot:i,type:e,canDrag:!o,position:t.position,dataStore:t.rowStores[e].store,dimensionCol:t.dimensions[t.colType].store,dimensionRow:t.dimensions[e].store,style:o?{height:`${t.dimensions[e].store.get("realSize")}px`}:void 0}}class g{constructor(t,e,i){this.resize=e,this.resizeObserver=null,this.previousSize={width:0,height:0},this.apply=s((t=>{var e;const i={width:t.width,height:t.height};null===(e=this.resize)||void 0===e||e.call(this,i,this.previousSize),this.previousSize=i}),40,{leading:!1,trailing:!0});const o=[];i.forEach((t=>{t&&o.push(t)})),this.init(t,o)}init(t,e=[]){const i=this.resizeObserver=new ResizeObserver((e=>{e.length&&this.apply(e[0].target===t?e[0].contentRect:t.getBoundingClientRect())}));i.observe(t),e.forEach((t=>{i.observe(t)}))}destroy(){var t;this.apply.cancel(),null===(t=this.resizeObserver)||void 0===t||t.disconnect(),this.resizeObserver=null}}const f=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.scrollViewport=i(this,"scrollviewport",7),this.resizeViewport=i(this,"resizeviewport",7),this.scrollchange=i(this,"scrollchange",7),this.silentScroll=i(this,"scrollviewportsilent",7),this.contentWidth=0,this.contentHeight=0,this.noHorizontalScrollTransfer=!1}async setScroll(t){var e;this.localScrollTimer.latestScrollUpdate(t.dimension),null===(e=this.localScrollService)||void 0===e||e.setScroll(t)}async changeScroll(t,e=!1){var i,o,l,r;if(!e){if(t.delta){let e=0;switch(t.dimension){case"rgCol":e=this.horizontalScroll.scrollLeft;break;case"rgRow":e=null!==(o=null===(i=this.verticalScroll)||void 0===i?void 0:i.scrollTop)&&void 0!==o?o:0}return null!==(r=null===(l=this.localScrollService)||void 0===l?void 0:l.setScrollByDelta(t,e))&&void 0!==r?r:t}return t}t.coordinate&&this.verticalScroll&&"rgRow"===t.dimension&&(this.verticalScroll.style.transform=`translateY(${-1*t.coordinate}px)`)}mousewheelVertical({detail:t}){this.verticalMouseWheel(t)}mousewheelHorizontal({detail:t}){this.horizontalMouseWheel(t)}scrollApply({detail:{type:t,coordinate:e}}){this.applyOnScroll(t,e,!0)}connectedCallback(){this.verticalMouseWheel=this.onVerticalMouseWheel.bind(this,"rgRow","deltaY"),this.horizontalMouseWheel=this.onHorizontalMouseWheel.bind(this,"rgCol","deltaX"),this.localScrollTimer=new n("ontouchstart"in document.documentElement?0:10),this.localScrollService=new c({runScroll:t=>this.scrollViewport.emit(t),applyScroll:t=>{switch(this.localScrollTimer.setCoordinate(t),t.dimension){case"rgCol":this.horizontalScroll.scrollLeft=t.coordinate;break;case"rgRow":this.verticalScroll&&(this.verticalScroll.scrollTop=t.coordinate,this.verticalScroll.style.transform&&(this.verticalScroll.style.transform=""))}}})}componentDidLoad(){this.resizeService=new g(this.horizontalScroll,(t=>{var e,i,o,l,r,s,n,c;const a={};let h=t.height||0;h&&(h-=(null!==(i=null===(e=this.header)||void 0===e?void 0:e.clientHeight)&&void 0!==i?i:0)+(null!==(l=null===(o=this.footer)||void 0===o?void 0:o.clientHeight)&&void 0!==l?l:0)),a.rgRow={size:h,contentSize:this.contentHeight,scroll:null!==(s=null===(r=this.verticalScroll)||void 0===r?void 0:r.scrollTop)&&void 0!==s?s:0,noScroll:!1};const d=t.width||0;a.rgCol={size:d,contentSize:this.contentWidth,scroll:this.horizontalScroll.scrollLeft,noScroll:"rgCol"!==this.colType},this.setScrollParams({rgRow:h,rgCol:d});const v=["rgCol","rgRow"];for(const t of v){const e=a[t];e&&(this.resizeViewport.emit({dimension:t,size:e.size,rowHeader:this.rowHeader}),e.noScroll||(null===(n=this.localScrollService)||void 0===n||n.scroll(null!==(c=e.scroll)&&void 0!==c?c:0,t,!0),this.setScrollVisibility(t,e.size,e.contentSize)))}}),[this.footer,this.header])}setScrollVisibility(t,e,i){const o=e<i;let l;switch(t){case"rgCol":l=this.horizontalScroll;break;case"rgRow":l=this.verticalScroll}o?null==l||l.classList.add(`scroll-${t}`):null==l||l.classList.remove(`scroll-${t}`),this.scrollchange.emit({type:t,hasScroll:o})}disconnectedCallback(){var t;null===(t=this.resizeService)||void 0===t||t.destroy()}async componentDidRender(){var t,e,i,o;this.setScrollParams({rgRow:null!==(e=null===(t=this.verticalScroll)||void 0===t?void 0:t.clientHeight)&&void 0!==e?e:0,rgCol:this.horizontalScroll.clientWidth}),this.setScrollVisibility("rgRow",null!==(o=null===(i=this.verticalScroll)||void 0===i?void 0:i.clientHeight)&&void 0!==o?o:0,this.contentHeight),this.setScrollVisibility("rgCol",this.horizontalScroll.clientWidth,this.contentWidth)}setScrollParams(t){this.localScrollService.setParams({contentSize:this.contentHeight,clientSize:t.rgRow,virtualSize:0},"rgRow"),this.localScrollService.setParams({contentSize:this.contentWidth,clientSize:t.rgCol,virtualSize:0},"rgCol")}render(){var t,e;const i=null!==(e=null===(t=this.verticalScroll)||void 0===t?void 0:t.clientHeight)&&void 0!==e?e:0,r=this.contentHeight<i?Math.max(this.contentHeight,0):a(this.contentHeight,i),s=a(this.contentWidth,0);return o(l,{key:"3dd9d29cf26743d7aa4995f51180d56008526e54",onWheel:this.horizontalMouseWheel,onScroll:t=>this.applyScroll("rgCol",t)},o("div",{key:"af75428e845044c33eba2fecd1ec04a9177b9b5c",class:"inner-content-table",style:{width:`${s}px`}},o("div",{key:"a0149f597588371e1fafe69efc3bd4411379a017",class:"header-wrapper",ref:t=>this.header=t},o("slot",{key:"e5d2570bf93897cd97ef702141c83bb8c0e13ee2",name:h})),o("div",{key:"d1388ff0d721dd8ce925b934bb2128fddc1ac17b",class:"vertical-inner",ref:t=>this.verticalScroll=t,onWheel:this.verticalMouseWheel,onScroll:t=>this.applyScroll("rgRow",t)},o("div",{key:"a306ff56f62279402e2a881a081e3224341d5bdf",class:"content-wrapper",style:{height:`${r}px`}},o("slot",{key:"898bda8e9429da06c9ff2bd41626ac27f3cde3cc",name:v}))),o("div",{key:"5e9eba1edd5fca07a964971054a7900e4dd84099",class:"footer-wrapper",ref:t=>this.footer=t},o("slot",{key:"f233ad1c23b3f692c45e1db235cfef4704a80726",name:d}))))}async applyScroll(t,i){if(!(i.target instanceof e))return;let o=0;switch(t){case"rgCol":o=i.target.scrollLeft;break;case"rgRow":o=i.target.scrollTop}o<0?this.silentScroll.emit({dimension:t,coordinate:o}):this.applyOnScroll(t,o)}applyOnScroll(t,e,i=!1){const o=()=>{var o;null===(o=this.localScrollService)||void 0===o||o.scroll(e,t,void 0,void 0,i)};this.localScrollTimer.isReady(t,e)?o():this.localScrollTimer.throttleLastScrollUpdate(t,e,(()=>o()))}onVerticalMouseWheel(t,e,i){var o,l,r,s,n,c,a,h;const d=null!==(l=null===(o=this.verticalScroll)||void 0===o?void 0:o.scrollTop)&&void 0!==l?l:0;d+(null!==(s=null===(r=this.verticalScroll)||void 0===r?void 0:r.clientHeight)&&void 0!==s?s:0)>=(null!==(c=null===(n=this.verticalScroll)||void 0===n?void 0:n.scrollHeight)&&void 0!==c?c:0)&&i.deltaY>0||0===d&&i.deltaY<0||null===(a=i.preventDefault)||void 0===a||a.call(i),null===(h=this.localScrollService)||void 0===h||h.scroll(d+i[e],t,void 0,i[e]),this.localScrollTimer.latestScrollUpdate(t)}onHorizontalMouseWheel(t,e,i){var o,l,r,s;if(!i.deltaX)return;const{scrollLeft:n,scrollWidth:c,clientWidth:a}=this.horizontalScroll,h=n+a>=c&&i.deltaX>0,d=0===n&&i.deltaX<0;if(this.noHorizontalScrollTransfer){if(!h&&!d){const r=n+i[e];null===(o=i.preventDefault)||void 0===o||o.call(i),this.horizontalScroll.scrollLeft=r,null===(l=this.localScrollService)||void 0===l||l.scroll(this.horizontalScroll.scrollLeft,t,void 0,i[e]),this.localScrollTimer.latestScrollUpdate(t)}}else h||d||null===(r=i.preventDefault)||void 0===r||r.call(i),null===(s=this.localScrollService)||void 0===s||s.scroll(n+i[e],t,void 0,i[e]),this.localScrollTimer.latestScrollUpdate(t)}get horizontalScroll(){return this}static get style(){return".rowHeaders{z-index:2;font-size:10px;display:flex;height:100%}.rowHeaders revogr-data .rgCell{text-align:center}.rowHeaders .rgCell{padding:0 1em !important;min-width:100%}revogr-viewport-scroll{-ms-overflow-style:none;scrollbar-width:none;overflow-x:auto;overflow-y:hidden;position:relative;z-index:1;height:100%}revogr-viewport-scroll::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll.colPinStart,revogr-viewport-scroll.colPinEnd{z-index:2}revogr-viewport-scroll.colPinEnd:has(.active){overflow:visible}revogr-viewport-scroll.rgCol{flex-grow:1}revogr-viewport-scroll .content-wrapper{overflow:hidden}revogr-viewport-scroll .inner-content-table{display:flex;flex-direction:column;max-height:100%;width:100%;min-width:100%;position:relative;z-index:0}revogr-viewport-scroll .vertical-inner{overflow-y:auto;position:relative;width:100%;flex-grow:1;outline:none;-ms-overflow-style:none;scrollbar-width:none;}revogr-viewport-scroll .vertical-inner::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll .vertical-inner revogr-data,revogr-viewport-scroll .vertical-inner revogr-overlay-selection{height:100%}"}},[260,"revogr-viewport-scroll",{rowHeader:[4,"row-header"],contentWidth:[2,"content-width"],contentHeight:[2,"content-height"],colType:[1,"col-type"],noHorizontalScrollTransfer:[4,"no-horizontal-scroll-transfer"],setScroll:[64],changeScroll:[64],applyScroll:[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]]);function y(){"undefined"!=typeof customElements&&["revogr-viewport-scroll"].forEach((t=>{"revogr-viewport-scroll"===t&&(customElements.get(r(t))||customElements.define(r(t),f))}))}export{v as C,w as D,d as F,h as H,f as R,y as d,p as v}
4
+ import{proxyCustomElement as e,HTMLElement as t,createEvent as i,h as o,Host as l,transformTag as r}from"@stencil/core/internal/client";import{t as s}from"./throttle.js";import{L as n,a,b as c}from"./local.scroll.timer.js";const h="header",d="footer",v="content",w="data";function u(e,t){return{x:e.viewports[e.colType].store.get("realCount"),y:e.viewports[t].store.get("realCount")}}function p(e,t,i,o){return{colData:e.colStore,viewportCol:e.viewports[e.colType].store,viewportRow:e.viewports[t].store,lastCell:u(e,t),slot:i,type:t,canDrag:!o,position:e.position,dataStore:e.rowStores[t].store,dimensionCol:e.dimensions[e.colType].store,dimensionRow:e.dimensions[t].store,style:o?{height:`${e.dimensions[t].store.get("realSize")}px`}:void 0}}class g{constructor(e,t,i){this.resize=t,this.resizeObserver=null,this.previousSize={width:0,height:0},this.apply=s((e=>{var t;const i={width:e.width,height:e.height};null===(t=this.resize)||void 0===t||t.call(this,i,this.previousSize),this.previousSize=i}),40,{leading:!1,trailing:!0});const o=[];i.forEach((e=>{e&&o.push(e)})),this.init(e,o)}init(e,t=[]){const i=this.resizeObserver=new ResizeObserver((t=>{t.length&&this.apply(t[0].target===e?t[0].contentRect:e.getBoundingClientRect())}));i.observe(e),t.forEach((e=>{i.observe(e)}))}destroy(){var e;this.apply.cancel(),null===(e=this.resizeObserver)||void 0===e||e.disconnect(),this.resizeObserver=null}}const f=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.scrollViewport=i(this,"scrollviewport",7),this.resizeViewport=i(this,"resizeviewport",7),this.scrollchange=i(this,"scrollchange",7),this.silentScroll=i(this,"scrollviewportsilent",7),this.contentWidth=0,this.contentHeight=0,this.noHorizontalScrollTransfer=!1}async setScroll(e){var t;this.localScrollTimer.latestScrollUpdate(e.dimension),null===(t=this.localScrollService)||void 0===t||t.setScroll(e)}async changeScroll(e,t=!1){var i,o,l,r;if(!t){if(e.delta){let t=0;switch(e.dimension){case"rgCol":t=this.horizontalScroll.scrollLeft;break;case"rgRow":t=null!==(o=null===(i=this.verticalScroll)||void 0===i?void 0:i.scrollTop)&&void 0!==o?o:0}return null!==(r=null===(l=this.localScrollService)||void 0===l?void 0:l.setScrollByDelta(e,t))&&void 0!==r?r:e}return e}e.coordinate&&this.verticalScroll&&"rgRow"===e.dimension&&(this.verticalScroll.style.transform=`translateY(${-1*e.coordinate}px)`)}mousewheelVertical({detail:e}){this.verticalMouseWheel(e)}mousewheelHorizontal({detail:e}){this.horizontalMouseWheel(e)}scrollApply({detail:{type:e,coordinate:t}}){this.applyOnScroll(e,t,!0)}connectedCallback(){this.verticalMouseWheel=this.onVerticalMouseWheel.bind(this,"rgRow","deltaY"),this.horizontalMouseWheel=this.onHorizontalMouseWheel.bind(this,"rgCol","deltaX"),this.localScrollTimer=new n("ontouchstart"in document.documentElement?0:10),this.localScrollService=new a({runScroll:e=>this.scrollViewport.emit(e),applyScroll:e=>{switch(this.localScrollTimer.setCoordinate(e),e.dimension){case"rgCol":this.horizontalScroll.scrollLeft=e.coordinate;break;case"rgRow":this.verticalScroll&&(this.verticalScroll.scrollTop=e.coordinate,this.verticalScroll.style.transform&&(this.verticalScroll.style.transform=""))}}})}componentDidLoad(){this.resizeService=new g(this.horizontalScroll,(e=>{var t,i,o,l,r,s,n,a;const c={};let h=e.height||0;h&&(h-=(null!==(i=null===(t=this.header)||void 0===t?void 0:t.clientHeight)&&void 0!==i?i:0)+(null!==(l=null===(o=this.footer)||void 0===o?void 0:o.clientHeight)&&void 0!==l?l:0)),c.rgRow={size:h,contentSize:this.contentHeight,scroll:null!==(s=null===(r=this.verticalScroll)||void 0===r?void 0:r.scrollTop)&&void 0!==s?s:0,noScroll:!1};const d=e.width||0;c.rgCol={size:d,contentSize:this.contentWidth,scroll:this.horizontalScroll.scrollLeft,noScroll:"rgCol"!==this.colType},this.setScrollParams({rgRow:h,rgCol:d});const v=["rgCol","rgRow"];for(const e of v){const t=c[e];t&&(this.resizeViewport.emit({dimension:e,size:t.size,rowHeader:this.rowHeader}),t.noScroll||(null===(n=this.localScrollService)||void 0===n||n.scroll(null!==(a=t.scroll)&&void 0!==a?a:0,e,!0),this.setScrollVisibility(e,t.size,t.contentSize)))}}),[this.footer,this.header])}setScrollVisibility(e,t,i){const o=t<i;let l;switch(e){case"rgCol":l=this.horizontalScroll;break;case"rgRow":l=this.verticalScroll}o?null==l||l.classList.add(`scroll-${e}`):null==l||l.classList.remove(`scroll-${e}`),this.scrollchange.emit({type:e,hasScroll:o})}disconnectedCallback(){var e;null===(e=this.resizeService)||void 0===e||e.destroy()}async componentDidRender(){var e,t,i,o;this.setScrollParams({rgRow:null!==(t=null===(e=this.verticalScroll)||void 0===e?void 0:e.clientHeight)&&void 0!==t?t:0,rgCol:this.horizontalScroll.clientWidth}),this.setScrollVisibility("rgRow",null!==(o=null===(i=this.verticalScroll)||void 0===i?void 0:i.clientHeight)&&void 0!==o?o:0,this.contentHeight),this.setScrollVisibility("rgCol",this.horizontalScroll.clientWidth,this.contentWidth)}setScrollParams(e){this.localScrollService.setParams({contentSize:this.contentHeight,clientSize:e.rgRow,virtualSize:0},"rgRow"),this.localScrollService.setParams({contentSize:this.contentWidth,clientSize:e.rgCol,virtualSize:0},"rgCol")}render(){var e,t;const i=c(this.contentHeight,null!==(t=null===(e=this.verticalScroll)||void 0===e?void 0:e.clientHeight)&&void 0!==t?t:0),r=c(this.contentWidth,0);return o(l,{key:"ec8d907976c1d50f7aab3c263be3f0249a274df6",onWheel:this.horizontalMouseWheel,onScroll:e=>this.applyScroll("rgCol",e)},o("div",{key:"e35696a7993ac94261426b45c28d488cdc42b7f0",class:"inner-content-table",style:{width:`${r}px`}},o("div",{key:"a6997451e01eacda1d27d4efa1d74e1748626218",class:"header-wrapper",ref:e=>this.header=e},o("slot",{key:"1d401e87d32d5b1531c2211723b552bbc894f22c",name:h})),o("div",{key:"ceab6f9e812d6ca9a0aa376afcd2562a17f505e0",class:"vertical-inner",ref:e=>this.verticalScroll=e,onWheel:this.verticalMouseWheel,onScroll:e=>this.applyScroll("rgRow",e)},o("div",{key:"a9556578a23d6efddec2e982e863aec064042154",class:"content-wrapper",style:{height:`${i}px`}},o("slot",{key:"0ae01f9736b9740612e75261f6e3abebda533377",name:v}))),o("div",{key:"09c2565d4ed449a43820f92d97b6558fca3758e7",class:"footer-wrapper",ref:e=>this.footer=e},o("slot",{key:"1ffb08ff8138a560cc09d82e3fe22a53e502aafe",name:d}))))}async applyScroll(e,i){if(!(i.target instanceof t))return;let o=0;switch(e){case"rgCol":o=i.target.scrollLeft;break;case"rgRow":o=i.target.scrollTop}o<0?this.silentScroll.emit({dimension:e,coordinate:o}):this.applyOnScroll(e,o)}applyOnScroll(e,t,i=!1){const o=()=>{var o;null===(o=this.localScrollService)||void 0===o||o.scroll(t,e,void 0,void 0,i)};this.localScrollTimer.isReady(e,t)?o():this.localScrollTimer.throttleLastScrollUpdate(e,t,(()=>o()))}onVerticalMouseWheel(e,t,i){var o,l,r,s,n,a,c,h;const d=null!==(l=null===(o=this.verticalScroll)||void 0===o?void 0:o.scrollTop)&&void 0!==l?l:0;d+(null!==(s=null===(r=this.verticalScroll)||void 0===r?void 0:r.clientHeight)&&void 0!==s?s:0)>=(null!==(a=null===(n=this.verticalScroll)||void 0===n?void 0:n.scrollHeight)&&void 0!==a?a:0)&&i.deltaY>0||0===d&&i.deltaY<0||null===(c=i.preventDefault)||void 0===c||c.call(i),null===(h=this.localScrollService)||void 0===h||h.scroll(d+i[t],e,void 0,i[t]),this.localScrollTimer.latestScrollUpdate(e)}onHorizontalMouseWheel(e,t,i){var o,l,r,s;if(!i.deltaX)return;const{scrollLeft:n,scrollWidth:a,clientWidth:c}=this.horizontalScroll,h=n+c>=a&&i.deltaX>0,d=0===n&&i.deltaX<0;if(this.noHorizontalScrollTransfer){if(!h&&!d){const r=n+i[t];null===(o=i.preventDefault)||void 0===o||o.call(i),this.horizontalScroll.scrollLeft=r,null===(l=this.localScrollService)||void 0===l||l.scroll(this.horizontalScroll.scrollLeft,e,void 0,i[t]),this.localScrollTimer.latestScrollUpdate(e)}}else h||d||null===(r=i.preventDefault)||void 0===r||r.call(i),null===(s=this.localScrollService)||void 0===s||s.scroll(n+i[t],e,void 0,i[t]),this.localScrollTimer.latestScrollUpdate(e)}get horizontalScroll(){return this}static get style(){return".rowHeaders{z-index:2;font-size:10px;display:flex;height:100%}.rowHeaders revogr-data .rgCell{text-align:center}.rowHeaders .rgCell{padding:0 1em !important;min-width:100%}revogr-viewport-scroll{-ms-overflow-style:none;scrollbar-width:none;overflow-x:auto;overflow-y:hidden;position:relative;z-index:1;height:100%}revogr-viewport-scroll::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll.colPinStart,revogr-viewport-scroll.colPinEnd{z-index:2}revogr-viewport-scroll.colPinEnd:has(.active){overflow:visible}revogr-viewport-scroll.rgCol{flex-grow:1}revogr-viewport-scroll .content-wrapper{overflow:hidden}revogr-viewport-scroll .inner-content-table{display:flex;flex-direction:column;max-height:100%;width:100%;min-width:100%;position:relative;z-index:0}revogr-viewport-scroll .vertical-inner{overflow-y:auto;position:relative;width:100%;flex-grow:1;outline:none;-ms-overflow-style:none;scrollbar-width:none;}revogr-viewport-scroll .vertical-inner::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll .vertical-inner revogr-data,revogr-viewport-scroll .vertical-inner revogr-overlay-selection{height:100%}"}},[260,"revogr-viewport-scroll",{rowHeader:[4,"row-header"],contentWidth:[2,"content-width"],contentHeight:[2,"content-height"],colType:[1,"col-type"],noHorizontalScrollTransfer:[4,"no-horizontal-scroll-transfer"],setScroll:[64],changeScroll:[64],applyScroll:[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]]);function y(){"undefined"!=typeof customElements&&["revogr-viewport-scroll"].forEach((e=>{"revogr-viewport-scroll"===e&&(customElements.get(r(e))||customElements.define(r(e),f))}))}export{v as C,w as D,d as F,h as H,f as R,y as d,p as v}
@@ -1,26 +0,0 @@
1
- /*!
2
- * Built by Revolist OU ❤️
3
- */
4
- export function getRangeFillClipboardData(data, useClipboard) {
5
- var _a;
6
- if (!isClipboardRangeFillEnabled(useClipboard)) {
7
- return null;
8
- }
9
- const normalized = trimTrailingEmptyClipboardRows(data);
10
- return normalized.length === 1 && ((_a = normalized[0]) === null || _a === void 0 ? void 0 : _a.length) === 1
11
- ? normalized
12
- : null;
13
- }
14
- export function isClipboardRangeFillEnabled(useClipboard) {
15
- return (typeof useClipboard === 'object' && useClipboard.rangeFill === true);
16
- }
17
- function trimTrailingEmptyClipboardRows(data) {
18
- const rows = [...data];
19
- while (rows.length > 1 && isEmptyClipboardRow(rows[rows.length - 1])) {
20
- rows.pop();
21
- }
22
- return rows;
23
- }
24
- function isEmptyClipboardRow(row) {
25
- return !row || row.every(cell => cell === '');
26
- }
@@ -1,44 +0,0 @@
1
- /*!
2
- * Built by Revolist OU ❤️
3
- */
4
- const FILTER_REORDER_MIME = 'text/revogrid-filter-id';
5
- export function setFilterReorderData(dataTransfer, id) {
6
- if (!dataTransfer) {
7
- return;
8
- }
9
- dataTransfer.effectAllowed = 'move';
10
- dataTransfer.setData(FILTER_REORDER_MIME, String(id));
11
- dataTransfer.setData('text/plain', String(id));
12
- }
13
- export function getFilterReorderId(dataTransfer) {
14
- if (!dataTransfer) {
15
- return;
16
- }
17
- const rawId = dataTransfer.getData(FILTER_REORDER_MIME) || dataTransfer.getData('text/plain');
18
- const normalizedId = rawId.trim();
19
- if (!normalizedId) {
20
- return;
21
- }
22
- const id = Number(normalizedId);
23
- return Number.isFinite(id) ? id : undefined;
24
- }
25
- export function moveFilterItem(items, sourceId, targetId) {
26
- if (sourceId === targetId) {
27
- return false;
28
- }
29
- const sourceIndex = items.findIndex(item => item.id === sourceId);
30
- const targetIndex = items.findIndex(item => item.id === targetId);
31
- if (sourceIndex === -1 || targetIndex === -1 || sourceIndex === targetIndex) {
32
- return false;
33
- }
34
- const relationsByPosition = items.map(item => { var _a; return (_a = item.relation) !== null && _a !== void 0 ? _a : 'and'; });
35
- const [movedItem] = items.splice(sourceIndex, 1);
36
- items.splice(targetIndex, 0, movedItem);
37
- items.forEach((item, index) => {
38
- var _a;
39
- item.relation = index === items.length - 1
40
- ? 'and'
41
- : (_a = relationsByPosition[index]) !== null && _a !== void 0 ? _a : 'and';
42
- });
43
- return true;
44
- }
@@ -1,3 +0,0 @@
1
- import type { ClipboardConfig } from "../../types/index";
2
- export declare function getRangeFillClipboardData(data: string[][], useClipboard: boolean | ClipboardConfig): string[][] | null;
3
- export declare function isClipboardRangeFillEnabled(useClipboard: boolean | ClipboardConfig): boolean;
@@ -1,4 +0,0 @@
1
- import type { FilterData } from './filter.types';
2
- export declare function setFilterReorderData(dataTransfer: DataTransfer | null, id: number): void;
3
- export declare function getFilterReorderId(dataTransfer: DataTransfer | null): number | undefined;
4
- export declare function moveFilterItem(items: FilterData[], sourceId: number, targetId: number): boolean;