@revolist/revogrid 4.23.5 → 4.23.7
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.
- package/dist/cjs/revogr-data_4.cjs.entry.js +10 -2
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +10 -2
- package/dist/esm/revogr-data_4.entry.js +10 -2
- package/dist/revo-grid/revogr-data_4.entry.js +10 -2
- package/hydrate/index.js +10 -2
- package/hydrate/index.mjs +10 -2
- package/package.json +1 -1
- package/standalone/revogr-viewport-scroll2.js +1 -1
|
@@ -830,9 +830,17 @@ const RevogrViewportScroll = class {
|
|
|
830
830
|
}
|
|
831
831
|
render() {
|
|
832
832
|
var _a, _b;
|
|
833
|
-
const
|
|
833
|
+
const clientHeight = (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : 0;
|
|
834
|
+
// When content fits in the viewport (no scroll needed), don't inflate content-wrapper
|
|
835
|
+
// to clientHeight — that would prevent inner-content-table from shrinking and push
|
|
836
|
+
// rowPinEnd (footer) to the bottom instead of letting it follow the data rows.
|
|
837
|
+
// For large/compressed grids (content > clientHeight), physicalContentHeight handles
|
|
838
|
+
// the browser scroll-size compression correctly.
|
|
839
|
+
const physicalContentHeight = this.contentHeight < clientHeight
|
|
840
|
+
? Math.max(this.contentHeight, 0)
|
|
841
|
+
: throttle.getContentSize(this.contentHeight, clientHeight);
|
|
834
842
|
const physicalContentWidth = throttle.getContentSize(this.contentWidth, 0);
|
|
835
|
-
return (index.h(index.Host, { key: '
|
|
843
|
+
return (index.h(index.Host, { key: '3dd9d29cf26743d7aa4995f51180d56008526e54', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, index.h("div", { key: 'af75428e845044c33eba2fecd1ec04a9177b9b5c', class: "inner-content-table", style: { width: `${physicalContentWidth}px` } }, index.h("div", { key: 'a0149f597588371e1fafe69efc3bd4411379a017', class: "header-wrapper", ref: e => (this.header = e) }, index.h("slot", { key: 'e5d2570bf93897cd97ef702141c83bb8c0e13ee2', name: viewport_helpers.HEADER_SLOT })), index.h("div", { key: 'd1388ff0d721dd8ce925b934bb2128fddc1ac17b', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, index.h("div", { key: 'a306ff56f62279402e2a881a081e3224341d5bdf', class: "content-wrapper", style: { height: `${physicalContentHeight}px` } }, index.h("slot", { key: '898bda8e9429da06c9ff2bd41626ac27f3cde3cc', name: viewport_helpers.CONTENT_SLOT }))), index.h("div", { key: '5e9eba1edd5fca07a964971054a7900e4dd84099', class: "footer-wrapper", ref: e => (this.footer = e) }, index.h("slot", { key: 'f233ad1c23b3f692c45e1db235cfef4704a80726', name: viewport_helpers.FOOTER_SLOT })))));
|
|
836
844
|
}
|
|
837
845
|
/**
|
|
838
846
|
* Extra layer for scroll event monitoring, where MouseWheel event is not passing
|
|
@@ -219,9 +219,17 @@ export class RevogrViewportScroll {
|
|
|
219
219
|
}
|
|
220
220
|
render() {
|
|
221
221
|
var _a, _b;
|
|
222
|
-
const
|
|
222
|
+
const clientHeight = (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : 0;
|
|
223
|
+
// When content fits in the viewport (no scroll needed), don't inflate content-wrapper
|
|
224
|
+
// to clientHeight — that would prevent inner-content-table from shrinking and push
|
|
225
|
+
// rowPinEnd (footer) to the bottom instead of letting it follow the data rows.
|
|
226
|
+
// For large/compressed grids (content > clientHeight), physicalContentHeight handles
|
|
227
|
+
// the browser scroll-size compression correctly.
|
|
228
|
+
const physicalContentHeight = this.contentHeight < clientHeight
|
|
229
|
+
? Math.max(this.contentHeight, 0)
|
|
230
|
+
: getContentSize(this.contentHeight, clientHeight);
|
|
223
231
|
const physicalContentWidth = getContentSize(this.contentWidth, 0);
|
|
224
|
-
return (h(Host, { key: '
|
|
232
|
+
return (h(Host, { key: '3dd9d29cf26743d7aa4995f51180d56008526e54', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, h("div", { key: 'af75428e845044c33eba2fecd1ec04a9177b9b5c', class: "inner-content-table", style: { width: `${physicalContentWidth}px` } }, h("div", { key: 'a0149f597588371e1fafe69efc3bd4411379a017', class: "header-wrapper", ref: e => (this.header = e) }, h("slot", { key: 'e5d2570bf93897cd97ef702141c83bb8c0e13ee2', name: HEADER_SLOT })), h("div", { key: 'd1388ff0d721dd8ce925b934bb2128fddc1ac17b', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, h("div", { key: 'a306ff56f62279402e2a881a081e3224341d5bdf', class: "content-wrapper", style: { height: `${physicalContentHeight}px` } }, h("slot", { key: '898bda8e9429da06c9ff2bd41626ac27f3cde3cc', name: CONTENT_SLOT }))), h("div", { key: '5e9eba1edd5fca07a964971054a7900e4dd84099', class: "footer-wrapper", ref: e => (this.footer = e) }, h("slot", { key: 'f233ad1c23b3f692c45e1db235cfef4704a80726', name: FOOTER_SLOT })))));
|
|
225
233
|
}
|
|
226
234
|
/**
|
|
227
235
|
* Extra layer for scroll event monitoring, where MouseWheel event is not passing
|
|
@@ -828,9 +828,17 @@ const RevogrViewportScroll = class {
|
|
|
828
828
|
}
|
|
829
829
|
render() {
|
|
830
830
|
var _a, _b;
|
|
831
|
-
const
|
|
831
|
+
const clientHeight = (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : 0;
|
|
832
|
+
// When content fits in the viewport (no scroll needed), don't inflate content-wrapper
|
|
833
|
+
// to clientHeight — that would prevent inner-content-table from shrinking and push
|
|
834
|
+
// rowPinEnd (footer) to the bottom instead of letting it follow the data rows.
|
|
835
|
+
// For large/compressed grids (content > clientHeight), physicalContentHeight handles
|
|
836
|
+
// the browser scroll-size compression correctly.
|
|
837
|
+
const physicalContentHeight = this.contentHeight < clientHeight
|
|
838
|
+
? Math.max(this.contentHeight, 0)
|
|
839
|
+
: getContentSize(this.contentHeight, clientHeight);
|
|
832
840
|
const physicalContentWidth = getContentSize(this.contentWidth, 0);
|
|
833
|
-
return (h(Host, { key: '
|
|
841
|
+
return (h(Host, { key: '3dd9d29cf26743d7aa4995f51180d56008526e54', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, h("div", { key: 'af75428e845044c33eba2fecd1ec04a9177b9b5c', class: "inner-content-table", style: { width: `${physicalContentWidth}px` } }, h("div", { key: 'a0149f597588371e1fafe69efc3bd4411379a017', class: "header-wrapper", ref: e => (this.header = e) }, h("slot", { key: 'e5d2570bf93897cd97ef702141c83bb8c0e13ee2', name: HEADER_SLOT })), h("div", { key: 'd1388ff0d721dd8ce925b934bb2128fddc1ac17b', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, h("div", { key: 'a306ff56f62279402e2a881a081e3224341d5bdf', class: "content-wrapper", style: { height: `${physicalContentHeight}px` } }, h("slot", { key: '898bda8e9429da06c9ff2bd41626ac27f3cde3cc', name: CONTENT_SLOT }))), h("div", { key: '5e9eba1edd5fca07a964971054a7900e4dd84099', class: "footer-wrapper", ref: e => (this.footer = e) }, h("slot", { key: 'f233ad1c23b3f692c45e1db235cfef4704a80726', name: FOOTER_SLOT })))));
|
|
834
842
|
}
|
|
835
843
|
/**
|
|
836
844
|
* Extra layer for scroll event monitoring, where MouseWheel event is not passing
|
|
@@ -828,9 +828,17 @@ const RevogrViewportScroll = class {
|
|
|
828
828
|
}
|
|
829
829
|
render() {
|
|
830
830
|
var _a, _b;
|
|
831
|
-
const
|
|
831
|
+
const clientHeight = (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : 0;
|
|
832
|
+
// When content fits in the viewport (no scroll needed), don't inflate content-wrapper
|
|
833
|
+
// to clientHeight — that would prevent inner-content-table from shrinking and push
|
|
834
|
+
// rowPinEnd (footer) to the bottom instead of letting it follow the data rows.
|
|
835
|
+
// For large/compressed grids (content > clientHeight), physicalContentHeight handles
|
|
836
|
+
// the browser scroll-size compression correctly.
|
|
837
|
+
const physicalContentHeight = this.contentHeight < clientHeight
|
|
838
|
+
? Math.max(this.contentHeight, 0)
|
|
839
|
+
: getContentSize(this.contentHeight, clientHeight);
|
|
832
840
|
const physicalContentWidth = getContentSize(this.contentWidth, 0);
|
|
833
|
-
return (h(Host, { key: '
|
|
841
|
+
return (h(Host, { key: '3dd9d29cf26743d7aa4995f51180d56008526e54', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, h("div", { key: 'af75428e845044c33eba2fecd1ec04a9177b9b5c', class: "inner-content-table", style: { width: `${physicalContentWidth}px` } }, h("div", { key: 'a0149f597588371e1fafe69efc3bd4411379a017', class: "header-wrapper", ref: e => (this.header = e) }, h("slot", { key: 'e5d2570bf93897cd97ef702141c83bb8c0e13ee2', name: HEADER_SLOT })), h("div", { key: 'd1388ff0d721dd8ce925b934bb2128fddc1ac17b', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, h("div", { key: 'a306ff56f62279402e2a881a081e3224341d5bdf', class: "content-wrapper", style: { height: `${physicalContentHeight}px` } }, h("slot", { key: '898bda8e9429da06c9ff2bd41626ac27f3cde3cc', name: CONTENT_SLOT }))), h("div", { key: '5e9eba1edd5fca07a964971054a7900e4dd84099', class: "footer-wrapper", ref: e => (this.footer = e) }, h("slot", { key: 'f233ad1c23b3f692c45e1db235cfef4704a80726', name: FOOTER_SLOT })))));
|
|
834
842
|
}
|
|
835
843
|
/**
|
|
836
844
|
* Extra layer for scroll event monitoring, where MouseWheel event is not passing
|
package/hydrate/index.js
CHANGED
|
@@ -21853,9 +21853,17 @@ class RevogrViewportScroll {
|
|
|
21853
21853
|
}
|
|
21854
21854
|
render() {
|
|
21855
21855
|
var _a, _b;
|
|
21856
|
-
const
|
|
21856
|
+
const clientHeight = (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : 0;
|
|
21857
|
+
// When content fits in the viewport (no scroll needed), don't inflate content-wrapper
|
|
21858
|
+
// to clientHeight — that would prevent inner-content-table from shrinking and push
|
|
21859
|
+
// rowPinEnd (footer) to the bottom instead of letting it follow the data rows.
|
|
21860
|
+
// For large/compressed grids (content > clientHeight), physicalContentHeight handles
|
|
21861
|
+
// the browser scroll-size compression correctly.
|
|
21862
|
+
const physicalContentHeight = this.contentHeight < clientHeight
|
|
21863
|
+
? Math.max(this.contentHeight, 0)
|
|
21864
|
+
: getContentSize(this.contentHeight, clientHeight);
|
|
21857
21865
|
const physicalContentWidth = getContentSize(this.contentWidth, 0);
|
|
21858
|
-
return (hAsync(Host, { key: '
|
|
21866
|
+
return (hAsync(Host, { key: '3dd9d29cf26743d7aa4995f51180d56008526e54', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, hAsync("div", { key: 'af75428e845044c33eba2fecd1ec04a9177b9b5c', class: "inner-content-table", style: { width: `${physicalContentWidth}px` } }, hAsync("div", { key: 'a0149f597588371e1fafe69efc3bd4411379a017', class: "header-wrapper", ref: e => (this.header = e) }, hAsync("slot", { key: 'e5d2570bf93897cd97ef702141c83bb8c0e13ee2', name: HEADER_SLOT })), hAsync("div", { key: 'd1388ff0d721dd8ce925b934bb2128fddc1ac17b', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, hAsync("div", { key: 'a306ff56f62279402e2a881a081e3224341d5bdf', class: "content-wrapper", style: { height: `${physicalContentHeight}px` } }, hAsync("slot", { key: '898bda8e9429da06c9ff2bd41626ac27f3cde3cc', name: CONTENT_SLOT }))), hAsync("div", { key: '5e9eba1edd5fca07a964971054a7900e4dd84099', class: "footer-wrapper", ref: e => (this.footer = e) }, hAsync("slot", { key: 'f233ad1c23b3f692c45e1db235cfef4704a80726', name: FOOTER_SLOT })))));
|
|
21859
21867
|
}
|
|
21860
21868
|
/**
|
|
21861
21869
|
* Extra layer for scroll event monitoring, where MouseWheel event is not passing
|
package/hydrate/index.mjs
CHANGED
|
@@ -21851,9 +21851,17 @@ class RevogrViewportScroll {
|
|
|
21851
21851
|
}
|
|
21852
21852
|
render() {
|
|
21853
21853
|
var _a, _b;
|
|
21854
|
-
const
|
|
21854
|
+
const clientHeight = (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : 0;
|
|
21855
|
+
// When content fits in the viewport (no scroll needed), don't inflate content-wrapper
|
|
21856
|
+
// to clientHeight — that would prevent inner-content-table from shrinking and push
|
|
21857
|
+
// rowPinEnd (footer) to the bottom instead of letting it follow the data rows.
|
|
21858
|
+
// For large/compressed grids (content > clientHeight), physicalContentHeight handles
|
|
21859
|
+
// the browser scroll-size compression correctly.
|
|
21860
|
+
const physicalContentHeight = this.contentHeight < clientHeight
|
|
21861
|
+
? Math.max(this.contentHeight, 0)
|
|
21862
|
+
: getContentSize(this.contentHeight, clientHeight);
|
|
21855
21863
|
const physicalContentWidth = getContentSize(this.contentWidth, 0);
|
|
21856
|
-
return (hAsync(Host, { key: '
|
|
21864
|
+
return (hAsync(Host, { key: '3dd9d29cf26743d7aa4995f51180d56008526e54', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, hAsync("div", { key: 'af75428e845044c33eba2fecd1ec04a9177b9b5c', class: "inner-content-table", style: { width: `${physicalContentWidth}px` } }, hAsync("div", { key: 'a0149f597588371e1fafe69efc3bd4411379a017', class: "header-wrapper", ref: e => (this.header = e) }, hAsync("slot", { key: 'e5d2570bf93897cd97ef702141c83bb8c0e13ee2', name: HEADER_SLOT })), hAsync("div", { key: 'd1388ff0d721dd8ce925b934bb2128fddc1ac17b', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, hAsync("div", { key: 'a306ff56f62279402e2a881a081e3224341d5bdf', class: "content-wrapper", style: { height: `${physicalContentHeight}px` } }, hAsync("slot", { key: '898bda8e9429da06c9ff2bd41626ac27f3cde3cc', name: CONTENT_SLOT }))), hAsync("div", { key: '5e9eba1edd5fca07a964971054a7900e4dd84099', class: "footer-wrapper", ref: e => (this.footer = e) }, hAsync("slot", { key: 'f233ad1c23b3f692c45e1db235cfef4704a80726', name: FOOTER_SLOT })))));
|
|
21857
21865
|
}
|
|
21858
21866
|
/**
|
|
21859
21867
|
* Extra layer for scroll event monitoring, where MouseWheel event is not passing
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{proxyCustomElement as
|
|
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}
|