@revolist/revogrid 4.23.23 → 4.23.24

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.
@@ -616,7 +616,7 @@ class GridResizeService {
616
616
  }
617
617
  }
618
618
 
619
- const revogrViewportScrollStyleCss = () => `.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%}`;
619
+ const revogrViewportScrollStyleCss = () => `.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;overscroll-behavior-x:contain;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%}`;
620
620
 
621
621
  const RevogrViewportScroll = class {
622
622
  constructor(hostRef) {
@@ -19,6 +19,7 @@ revogr-viewport-scroll {
19
19
  /* Hide scrollbar for Chrome, Safari and Opera */
20
20
  overflow-x: auto;
21
21
  overflow-y: hidden;
22
+ overscroll-behavior-x: contain;
22
23
  position: relative;
23
24
  z-index: 1;
24
25
  height: 100%;
@@ -614,7 +614,7 @@ class GridResizeService {
614
614
  }
615
615
  }
616
616
 
617
- const revogrViewportScrollStyleCss = () => `.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%}`;
617
+ const revogrViewportScrollStyleCss = () => `.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;overscroll-behavior-x:contain;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%}`;
618
618
 
619
619
  const RevogrViewportScroll = class {
620
620
  constructor(hostRef) {
@@ -614,7 +614,7 @@ class GridResizeService {
614
614
  }
615
615
  }
616
616
 
617
- const revogrViewportScrollStyleCss = () => `.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%}`;
617
+ const revogrViewportScrollStyleCss = () => `.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;overscroll-behavior-x:contain;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%}`;
618
618
 
619
619
  const RevogrViewportScroll = class {
620
620
  constructor(hostRef) {
package/hydrate/index.js CHANGED
@@ -22000,7 +22000,7 @@ class GridResizeService {
22000
22000
  }
22001
22001
  }
22002
22002
 
22003
- const revogrViewportScrollStyleCss = () => `.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%}`;
22003
+ const revogrViewportScrollStyleCss = () => `.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;overscroll-behavior-x:contain;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%}`;
22004
22004
 
22005
22005
  /**
22006
22006
  * Viewport scroll component for RevoGrid
package/hydrate/index.mjs CHANGED
@@ -21998,7 +21998,7 @@ class GridResizeService {
21998
21998
  }
21999
21999
  }
22000
22000
 
22001
- const revogrViewportScrollStyleCss = () => `.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%}`;
22001
+ const revogrViewportScrollStyleCss = () => `.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;overscroll-behavior-x:contain;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%}`;
22002
22002
 
22003
22003
  /**
22004
22004
  * Viewport scroll component for RevoGrid
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revolist/revogrid",
3
- "version": "4.23.23",
3
+ "version": "4.23.24",
4
4
  "type": "module",
5
5
  "description": "Virtual reactive data grid spreadsheet component - RevoGrid.",
6
6
  "license": "MIT",
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import{proxyCustomElement as t,HTMLElement as i,createEvent as e,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,i){return{x:t.viewports[t.colType].store.get("realCount"),y:t.viewports[i].store.get("realCount")}}function p(t,i,e,o){return{colData:t.colStore,viewportCol:t.viewports[t.colType].store,viewportRow:t.viewports[i].store,lastCell:u(t,i),slot:e,type:i,canDrag:!o,position:t.position,dataStore:t.rowStores[i].store,dimensionCol:t.dimensions[t.colType].store,dimensionRow:t.dimensions[i].store,style:o?{height:`${t.dimensions[i].store.get("realSize")}px`}:void 0}}class g{constructor(t,i,e){this.resize=i,this.resizeObserver=null,this.previousSize={width:0,height:0},this.apply=s((t=>{var i;const e={width:t.width,height:t.height};null===(i=this.resize)||void 0===i||i.call(this,e,this.previousSize),this.previousSize=e}),40,{leading:!1,trailing:!0});const o=[];e.forEach((t=>{t&&o.push(t)})),this.init(t,o)}init(t,i=[]){const e=this.resizeObserver=new ResizeObserver((i=>{i.length&&this.apply(i[0].target===t?i[0].contentRect:t.getBoundingClientRect())}));e.observe(t),i.forEach((t=>{e.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 i{constructor(t){super(),!1!==t&&this.__registerHost(),this.scrollViewport=e(this,"scrollviewport",7),this.resizeViewport=e(this,"resizeviewport",7),this.scrollchange=e(this,"scrollchange",7),this.silentScroll=e(this,"scrollviewportsilent",7),this.contentWidth=0,this.contentHeight=0,this.noHorizontalScrollTransfer=!1}async setScroll(t){var i;this.localScrollTimer.latestScrollUpdate(t.dimension),null===(i=this.localScrollService)||void 0===i||i.setScroll(t)}async changeScroll(t,i=!1){var e,o,l,r;if(!i){if(t.delta){let i=0;switch(t.dimension){case"rgCol":i=this.horizontalScroll.scrollLeft;break;case"rgRow":i=null!==(o=null===(e=this.verticalScroll)||void 0===e?void 0:e.scrollTop)&&void 0!==o?o:0}return null!==(r=null===(l=this.localScrollService)||void 0===l?void 0:l.setScrollByDelta(t,i))&&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:i}}){this.applyOnScroll(t,i,!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 i,e,o,l,r,s,n,c;const a={};let h=t.height||0;h&&(h-=(null!==(e=null===(i=this.header)||void 0===i?void 0:i.clientHeight)&&void 0!==e?e: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 i=a[t];i&&(this.resizeViewport.emit({dimension:t,size:i.size,rowHeader:this.rowHeader}),i.noScroll||(null===(n=this.localScrollService)||void 0===n||n.scroll(null!==(c=i.scroll)&&void 0!==c?c:0,t,!0),this.setScrollVisibility(t,i.size,i.contentSize)))}}),[this.footer,this.header])}setScrollVisibility(t,i,e){const o=i<e;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,i,e,o;this.setScrollParams({rgRow:null!==(i=null===(t=this.verticalScroll)||void 0===t?void 0:t.clientHeight)&&void 0!==i?i:0,rgCol:this.horizontalScroll.clientWidth}),this.setScrollVisibility("rgRow",null!==(o=null===(e=this.verticalScroll)||void 0===e?void 0:e.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,i;const e=null!==(i=null===(t=this.verticalScroll)||void 0===t?void 0:t.clientHeight)&&void 0!==i?i:0,r=this.contentHeight<e?Math.max(this.contentHeight,0):a(this.contentHeight,e),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,e){if(!(e.target instanceof i))return;let o=0;switch(t){case"rgCol":o=e.target.scrollLeft;break;case"rgRow":o=e.target.scrollTop}o<0?this.silentScroll.emit({dimension:t,coordinate:o}):this.applyOnScroll(t,o)}applyOnScroll(t,i,e=!1){const o=()=>{var o;null===(o=this.localScrollService)||void 0===o||o.scroll(i,t,void 0,void 0,e),this.localScrollTimer.setCoordinateFromScroll({dimension:t,coordinate:i})};this.localScrollTimer.isReady(t,i)?o():this.localScrollTimer.throttleLastScrollUpdate(t,i,(()=>o()))}onVerticalMouseWheel(t,i,e){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)&&e.deltaY>0||0===d&&e.deltaY<0||null===(a=e.preventDefault)||void 0===a||a.call(e),null===(h=this.localScrollService)||void 0===h||h.scroll(d+e[i],t,void 0,e[i]),this.localScrollTimer.latestScrollUpdate(t)}onHorizontalMouseWheel(t,i,e){var o,l,r,s;if(!e.deltaX)return;const{scrollLeft:n,scrollWidth:c,clientWidth:a}=this.horizontalScroll,h=n+a>=c&&e.deltaX>0,d=0===n&&e.deltaX<0;if(this.noHorizontalScrollTransfer){if(!h&&!d){const r=n+e[i];null===(o=e.preventDefault)||void 0===o||o.call(e),this.horizontalScroll.scrollLeft=r,null===(l=this.localScrollService)||void 0===l||l.scroll(this.horizontalScroll.scrollLeft,t,void 0,e[i]),this.localScrollTimer.latestScrollUpdate(t)}}else h||d||null===(r=e.preventDefault)||void 0===r||r.call(e),null===(s=this.localScrollService)||void 0===s||s.scroll(n+e[i],t,void 0,e[i]),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 i,HTMLElement as t,createEvent as e,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(i,t){return{x:i.viewports[i.colType].store.get("realCount"),y:i.viewports[t].store.get("realCount")}}function p(i,t,e,o){return{colData:i.colStore,viewportCol:i.viewports[i.colType].store,viewportRow:i.viewports[t].store,lastCell:u(i,t),slot:e,type:t,canDrag:!o,position:i.position,dataStore:i.rowStores[t].store,dimensionCol:i.dimensions[i.colType].store,dimensionRow:i.dimensions[t].store,style:o?{height:`${i.dimensions[t].store.get("realSize")}px`}:void 0}}class g{constructor(i,t,e){this.resize=t,this.resizeObserver=null,this.previousSize={width:0,height:0},this.apply=s((i=>{var t;const e={width:i.width,height:i.height};null===(t=this.resize)||void 0===t||t.call(this,e,this.previousSize),this.previousSize=e}),40,{leading:!1,trailing:!0});const o=[];e.forEach((i=>{i&&o.push(i)})),this.init(i,o)}init(i,t=[]){const e=this.resizeObserver=new ResizeObserver((t=>{t.length&&this.apply(t[0].target===i?t[0].contentRect:i.getBoundingClientRect())}));e.observe(i),t.forEach((i=>{e.observe(i)}))}destroy(){var i;this.apply.cancel(),null===(i=this.resizeObserver)||void 0===i||i.disconnect(),this.resizeObserver=null}}const f=i(class extends t{constructor(i){super(),!1!==i&&this.__registerHost(),this.scrollViewport=e(this,"scrollviewport",7),this.resizeViewport=e(this,"resizeviewport",7),this.scrollchange=e(this,"scrollchange",7),this.silentScroll=e(this,"scrollviewportsilent",7),this.contentWidth=0,this.contentHeight=0,this.noHorizontalScrollTransfer=!1}async setScroll(i){var t;this.localScrollTimer.latestScrollUpdate(i.dimension),null===(t=this.localScrollService)||void 0===t||t.setScroll(i)}async changeScroll(i,t=!1){var e,o,l,r;if(!t){if(i.delta){let t=0;switch(i.dimension){case"rgCol":t=this.horizontalScroll.scrollLeft;break;case"rgRow":t=null!==(o=null===(e=this.verticalScroll)||void 0===e?void 0:e.scrollTop)&&void 0!==o?o:0}return null!==(r=null===(l=this.localScrollService)||void 0===l?void 0:l.setScrollByDelta(i,t))&&void 0!==r?r:i}return i}i.coordinate&&this.verticalScroll&&"rgRow"===i.dimension&&(this.verticalScroll.style.transform=`translateY(${-1*i.coordinate}px)`)}mousewheelVertical({detail:i}){this.verticalMouseWheel(i)}mousewheelHorizontal({detail:i}){this.horizontalMouseWheel(i)}scrollApply({detail:{type:i,coordinate:t}}){this.applyOnScroll(i,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 c({runScroll:i=>this.scrollViewport.emit(i),applyScroll:i=>{switch(this.localScrollTimer.setCoordinate(i),i.dimension){case"rgCol":this.horizontalScroll.scrollLeft=i.coordinate;break;case"rgRow":this.verticalScroll&&(this.verticalScroll.scrollTop=i.coordinate,this.verticalScroll.style.transform&&(this.verticalScroll.style.transform=""))}}})}componentDidLoad(){this.resizeService=new g(this.horizontalScroll,(i=>{var t,e,o,l,r,s,n,c;const a={};let h=i.height||0;h&&(h-=(null!==(e=null===(t=this.header)||void 0===t?void 0:t.clientHeight)&&void 0!==e?e: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=i.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 i of v){const t=a[i];t&&(this.resizeViewport.emit({dimension:i,size:t.size,rowHeader:this.rowHeader}),t.noScroll||(null===(n=this.localScrollService)||void 0===n||n.scroll(null!==(c=t.scroll)&&void 0!==c?c:0,i,!0),this.setScrollVisibility(i,t.size,t.contentSize)))}}),[this.footer,this.header])}setScrollVisibility(i,t,e){const o=t<e;let l;switch(i){case"rgCol":l=this.horizontalScroll;break;case"rgRow":l=this.verticalScroll}o?null==l||l.classList.add(`scroll-${i}`):null==l||l.classList.remove(`scroll-${i}`),this.scrollchange.emit({type:i,hasScroll:o})}disconnectedCallback(){var i;null===(i=this.resizeService)||void 0===i||i.destroy()}async componentDidRender(){var i,t,e,o;this.setScrollParams({rgRow:null!==(t=null===(i=this.verticalScroll)||void 0===i?void 0:i.clientHeight)&&void 0!==t?t:0,rgCol:this.horizontalScroll.clientWidth}),this.setScrollVisibility("rgRow",null!==(o=null===(e=this.verticalScroll)||void 0===e?void 0:e.clientHeight)&&void 0!==o?o:0,this.contentHeight),this.setScrollVisibility("rgCol",this.horizontalScroll.clientWidth,this.contentWidth)}setScrollParams(i){this.localScrollService.setParams({contentSize:this.contentHeight,clientSize:i.rgRow,virtualSize:0},"rgRow"),this.localScrollService.setParams({contentSize:this.contentWidth,clientSize:i.rgCol,virtualSize:0},"rgCol")}render(){var i,t;const e=null!==(t=null===(i=this.verticalScroll)||void 0===i?void 0:i.clientHeight)&&void 0!==t?t:0,r=this.contentHeight<e?Math.max(this.contentHeight,0):a(this.contentHeight,e),s=a(this.contentWidth,0);return o(l,{key:"3dd9d29cf26743d7aa4995f51180d56008526e54",onWheel:this.horizontalMouseWheel,onScroll:i=>this.applyScroll("rgCol",i)},o("div",{key:"af75428e845044c33eba2fecd1ec04a9177b9b5c",class:"inner-content-table",style:{width:`${s}px`}},o("div",{key:"a0149f597588371e1fafe69efc3bd4411379a017",class:"header-wrapper",ref:i=>this.header=i},o("slot",{key:"e5d2570bf93897cd97ef702141c83bb8c0e13ee2",name:h})),o("div",{key:"d1388ff0d721dd8ce925b934bb2128fddc1ac17b",class:"vertical-inner",ref:i=>this.verticalScroll=i,onWheel:this.verticalMouseWheel,onScroll:i=>this.applyScroll("rgRow",i)},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:i=>this.footer=i},o("slot",{key:"f233ad1c23b3f692c45e1db235cfef4704a80726",name:d}))))}async applyScroll(i,e){if(!(e.target instanceof t))return;let o=0;switch(i){case"rgCol":o=e.target.scrollLeft;break;case"rgRow":o=e.target.scrollTop}o<0?this.silentScroll.emit({dimension:i,coordinate:o}):this.applyOnScroll(i,o)}applyOnScroll(i,t,e=!1){const o=()=>{var o;null===(o=this.localScrollService)||void 0===o||o.scroll(t,i,void 0,void 0,e),this.localScrollTimer.setCoordinateFromScroll({dimension:i,coordinate:t})};this.localScrollTimer.isReady(i,t)?o():this.localScrollTimer.throttleLastScrollUpdate(i,t,(()=>o()))}onVerticalMouseWheel(i,t,e){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)&&e.deltaY>0||0===d&&e.deltaY<0||null===(a=e.preventDefault)||void 0===a||a.call(e),null===(h=this.localScrollService)||void 0===h||h.scroll(d+e[t],i,void 0,e[t]),this.localScrollTimer.latestScrollUpdate(i)}onHorizontalMouseWheel(i,t,e){var o,l,r,s;if(!e.deltaX)return;const{scrollLeft:n,scrollWidth:c,clientWidth:a}=this.horizontalScroll,h=n+a>=c&&e.deltaX>0,d=0===n&&e.deltaX<0;if(this.noHorizontalScrollTransfer){if(!h&&!d){const r=n+e[t];null===(o=e.preventDefault)||void 0===o||o.call(e),this.horizontalScroll.scrollLeft=r,null===(l=this.localScrollService)||void 0===l||l.scroll(this.horizontalScroll.scrollLeft,i,void 0,e[t]),this.localScrollTimer.latestScrollUpdate(i)}}else h||d||null===(r=e.preventDefault)||void 0===r||r.call(e),null===(s=this.localScrollService)||void 0===s||s.scroll(n+e[t],i,void 0,e[t]),this.localScrollTimer.latestScrollUpdate(i)}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;overscroll-behavior-x:contain;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((i=>{"revogr-viewport-scroll"===i&&(customElements.get(r(i))||customElements.define(r(i),f))}))}export{v as C,w as D,d as F,h as H,f as R,y as d,p as v}