@revolist/revogrid 4.16.0 → 4.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/cjs/{app-globals-CnL-iuWZ.js → app-globals-D67EXhgK.js} +3 -3
  2. package/dist/cjs/{app-globals-CnL-iuWZ.js.map → app-globals-D67EXhgK.js.map} +1 -1
  3. package/dist/cjs/{cell-renderer-RYPxTSX7.js → cell-renderer-TmNnqu7r.js} +5 -5
  4. package/dist/cjs/{cell-renderer-RYPxTSX7.js.map → cell-renderer-TmNnqu7r.js.map} +1 -1
  5. package/dist/cjs/{column.drag.plugin-CxKQ-GqY.js → column.drag.plugin-pCfjUQwZ.js} +13 -13
  6. package/dist/cjs/column.drag.plugin-pCfjUQwZ.js.map +1 -0
  7. package/dist/cjs/{column.service-urln-gkz.js → column.service-euEyR799.js} +4 -4
  8. package/dist/cjs/{column.service-urln-gkz.js.map → column.service-euEyR799.js.map} +1 -1
  9. package/dist/cjs/{dimension.helpers-BmZOxsgq.js → dimension.helpers-C5PvAWJW.js} +24 -8
  10. package/dist/cjs/dimension.helpers-C5PvAWJW.js.map +1 -0
  11. package/dist/cjs/{edit.utils-Bx3jy_dC.js → edit.utils-T20rr-g4.js} +3 -3
  12. package/dist/cjs/{edit.utils-Bx3jy_dC.js.map → edit.utils-T20rr-g4.js.map} +1 -1
  13. package/dist/cjs/{filter.button-rIn9mDMT.js → filter.button-DSsWNs23.js} +3 -3
  14. package/dist/cjs/{filter.button-rIn9mDMT.js.map → filter.button-DSsWNs23.js.map} +1 -1
  15. package/dist/cjs/{header-cell-renderer-c5sd3ee7.js → header-cell-renderer-BwHvC5YY.js} +4 -4
  16. package/dist/cjs/{header-cell-renderer-c5sd3ee7.js.map → header-cell-renderer-BwHvC5YY.js.map} +1 -1
  17. package/dist/cjs/{index-BbtPQ4Br.js → index-BF1c1pO3.js} +196 -133
  18. package/dist/cjs/index-BF1c1pO3.js.map +1 -0
  19. package/dist/cjs/index.cjs.js +10 -10
  20. package/dist/cjs/loader.cjs.js +3 -3
  21. package/dist/cjs/revo-grid.cjs.entry.js +8 -8
  22. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  23. package/dist/cjs/revo-grid.cjs.js +4 -4
  24. package/dist/cjs/revo-grid.cjs.js.map +1 -1
  25. package/dist/cjs/revo-grid.entry.cjs.js.map +1 -1
  26. package/dist/cjs/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.cjs.js.map +1 -1
  27. package/dist/cjs/revogr-attribution_7.cjs.entry.js +10 -10
  28. package/dist/cjs/revogr-attribution_7.cjs.entry.js.map +1 -1
  29. package/dist/cjs/revogr-clipboard.revogr-edit.revogr-order-editor.entry.cjs.js.map +1 -1
  30. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +5 -5
  31. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
  32. package/dist/cjs/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.cjs.js.map +1 -1
  33. package/dist/cjs/revogr-data_4.cjs.entry.js +10 -10
  34. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  35. package/dist/cjs/revogr-filter-panel.cjs.entry.js +3 -3
  36. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
  37. package/dist/cjs/revogr-filter-panel.entry.cjs.js.map +1 -1
  38. package/dist/cjs/{text-editor-pxAtbkyc.js → text-editor-C6fUGszl.js} +4 -4
  39. package/dist/cjs/{text-editor-pxAtbkyc.js.map → text-editor-C6fUGszl.js.map} +1 -1
  40. package/dist/cjs/{throttle-CQppnhEi.js → throttle-BBq2OiCM.js} +3 -3
  41. package/dist/cjs/{throttle-CQppnhEi.js.map → throttle-BBq2OiCM.js.map} +1 -1
  42. package/dist/cjs/{viewport.store-BrZDEt69.js → viewport.store-BQqAGkuJ.js} +3 -3
  43. package/dist/cjs/{viewport.store-BrZDEt69.js.map → viewport.store-BQqAGkuJ.js.map} +1 -1
  44. package/dist/collection/collection-manifest.json +1 -1
  45. package/dist/collection/components/data/revogr-data-style.css +0 -72
  46. package/dist/collection/components/editors/revogr-edit-style.css +0 -72
  47. package/dist/collection/components/header/revogr-header-style.css +0 -72
  48. package/dist/collection/components/overlay/revogr-overlay-style.css +0 -72
  49. package/dist/collection/components/revoGrid/revo-grid-style.css +3 -75
  50. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +0 -72
  51. package/dist/collection/components/scrollable/revogr-scroll-style.css +0 -72
  52. package/dist/collection/components/selectionFocus/revogr-focus-style.css +0 -72
  53. package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +0 -72
  54. package/dist/collection/plugins/filter/filter.style.css +0 -72
  55. package/dist/collection/plugins/sorting/sorting.func.js +2 -2
  56. package/dist/collection/plugins/sorting/sorting.func.js.map +1 -1
  57. package/dist/collection/plugins/sorting/sorting.plugin.js +3 -3
  58. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  59. package/dist/esm/{app-globals-Bp4Vbqcr.js → app-globals-C3ZHKjnB.js} +3 -3
  60. package/dist/esm/{app-globals-Bp4Vbqcr.js.map → app-globals-C3ZHKjnB.js.map} +1 -1
  61. package/dist/{revo-grid/cell-renderer-C6x60eGs.js → esm/cell-renderer-AeQIe3qD.js} +5 -5
  62. package/dist/{revo-grid/cell-renderer-C6x60eGs.js.map → esm/cell-renderer-AeQIe3qD.js.map} +1 -1
  63. package/dist/esm/{column.drag.plugin-Capa_0kN.js → column.drag.plugin-Dc7h1kmS.js} +13 -13
  64. package/dist/esm/column.drag.plugin-Dc7h1kmS.js.map +1 -0
  65. package/dist/esm/{column.service-QLZCp9EY.js → column.service-DyqJ8oYq.js} +4 -4
  66. package/dist/{revo-grid/column.service-QLZCp9EY.js.map → esm/column.service-DyqJ8oYq.js.map} +1 -1
  67. package/dist/{revo-grid/dimension.helpers-pcKIUO61.js → esm/dimension.helpers-D5lwLPzd.js} +24 -8
  68. package/dist/{revo-grid/dimension.helpers-pcKIUO61.js.map → esm/dimension.helpers-D5lwLPzd.js.map} +1 -1
  69. package/dist/esm/{edit.utils-BBbK2wbv.js → edit.utils-B6bLKSQh.js} +3 -3
  70. package/dist/esm/{edit.utils-BBbK2wbv.js.map → edit.utils-B6bLKSQh.js.map} +1 -1
  71. package/dist/{revo-grid/filter.button-BpZR0kGU.js → esm/filter.button-DmOE7VCJ.js} +3 -3
  72. package/dist/esm/{filter.button-BpZR0kGU.js.map → filter.button-DmOE7VCJ.js.map} +1 -1
  73. package/dist/esm/{header-cell-renderer-AAPG96e2.js → header-cell-renderer-XxSVxgM5.js} +4 -4
  74. package/dist/esm/{header-cell-renderer-AAPG96e2.js.map → header-cell-renderer-XxSVxgM5.js.map} +1 -1
  75. package/dist/esm/{index-gUcGIzDv.js → index-Dyptvvxf.js} +196 -133
  76. package/dist/esm/index-Dyptvvxf.js.map +1 -0
  77. package/dist/esm/index.js +11 -11
  78. package/dist/esm/loader.js +4 -4
  79. package/dist/esm/revo-grid.entry.js +8 -8
  80. package/dist/esm/revo-grid.entry.js.map +1 -1
  81. package/dist/esm/revo-grid.js +5 -5
  82. package/dist/esm/revo-grid.js.map +1 -1
  83. package/dist/esm/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.js.map +1 -1
  84. package/dist/esm/revogr-attribution_7.entry.js +10 -10
  85. package/dist/esm/revogr-attribution_7.entry.js.map +1 -1
  86. package/dist/esm/revogr-clipboard.revogr-edit.revogr-order-editor.entry.js.map +1 -1
  87. package/dist/esm/revogr-clipboard_3.entry.js +5 -5
  88. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  89. package/dist/esm/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.js.map +1 -1
  90. package/dist/esm/revogr-data_4.entry.js +10 -10
  91. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  92. package/dist/esm/revogr-filter-panel.entry.js +3 -3
  93. package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
  94. package/dist/esm/{text-editor-92MGc5Bc.js → text-editor-DlCRmV75.js} +4 -4
  95. package/dist/esm/{text-editor-92MGc5Bc.js.map → text-editor-DlCRmV75.js.map} +1 -1
  96. package/dist/esm/{throttle-Dshl76F1.js → throttle-DcjZyclk.js} +3 -3
  97. package/dist/{revo-grid/throttle-Dshl76F1.js.map → esm/throttle-DcjZyclk.js.map} +1 -1
  98. package/dist/{revo-grid/viewport.store-C89n4AEU.js → esm/viewport.store-2mQugd8S.js} +3 -3
  99. package/dist/{revo-grid/viewport.store-C89n4AEU.js.map → esm/viewport.store-2mQugd8S.js.map} +1 -1
  100. package/dist/revo-grid/{app-globals-Bp4Vbqcr.js → app-globals-C3ZHKjnB.js} +3 -3
  101. package/dist/revo-grid/{app-globals-Bp4Vbqcr.js.map → app-globals-C3ZHKjnB.js.map} +1 -1
  102. package/dist/{esm/cell-renderer-C6x60eGs.js → revo-grid/cell-renderer-AeQIe3qD.js} +5 -5
  103. package/dist/{esm/cell-renderer-C6x60eGs.js.map → revo-grid/cell-renderer-AeQIe3qD.js.map} +1 -1
  104. package/dist/revo-grid/{column.drag.plugin-Capa_0kN.js → column.drag.plugin-Dc7h1kmS.js} +13 -13
  105. package/dist/revo-grid/column.drag.plugin-Dc7h1kmS.js.map +1 -0
  106. package/dist/revo-grid/{column.service-QLZCp9EY.js → column.service-DyqJ8oYq.js} +4 -4
  107. package/dist/{esm/column.service-QLZCp9EY.js.map → revo-grid/column.service-DyqJ8oYq.js.map} +1 -1
  108. package/dist/{esm/dimension.helpers-pcKIUO61.js → revo-grid/dimension.helpers-D5lwLPzd.js} +24 -8
  109. package/dist/{esm/dimension.helpers-pcKIUO61.js.map → revo-grid/dimension.helpers-D5lwLPzd.js.map} +1 -1
  110. package/dist/revo-grid/{edit.utils-BBbK2wbv.js → edit.utils-B6bLKSQh.js} +3 -3
  111. package/dist/revo-grid/{edit.utils-BBbK2wbv.js.map → edit.utils-B6bLKSQh.js.map} +1 -1
  112. package/dist/{esm/filter.button-BpZR0kGU.js → revo-grid/filter.button-DmOE7VCJ.js} +3 -3
  113. package/dist/revo-grid/{filter.button-BpZR0kGU.js.map → filter.button-DmOE7VCJ.js.map} +1 -1
  114. package/dist/revo-grid/{header-cell-renderer-AAPG96e2.js → header-cell-renderer-XxSVxgM5.js} +4 -4
  115. package/dist/revo-grid/{header-cell-renderer-AAPG96e2.js.map → header-cell-renderer-XxSVxgM5.js.map} +1 -1
  116. package/dist/revo-grid/{index-gUcGIzDv.js → index-Dyptvvxf.js} +196 -133
  117. package/dist/revo-grid/index-Dyptvvxf.js.map +1 -0
  118. package/dist/revo-grid/index.esm.js +11 -11
  119. package/dist/revo-grid/revo-grid.entry.esm.js.map +1 -1
  120. package/dist/revo-grid/revo-grid.entry.js +8 -8
  121. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  122. package/dist/revo-grid/revo-grid.esm.js +5 -5
  123. package/dist/revo-grid/revo-grid.esm.js.map +1 -1
  124. package/dist/revo-grid/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.esm.js.map +1 -1
  125. package/dist/revo-grid/revogr-attribution_7.entry.js +10 -10
  126. package/dist/revo-grid/revogr-attribution_7.entry.js.map +1 -1
  127. package/dist/revo-grid/revogr-clipboard.revogr-edit.revogr-order-editor.entry.esm.js.map +1 -1
  128. package/dist/revo-grid/revogr-clipboard_3.entry.js +5 -5
  129. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  130. package/dist/revo-grid/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.esm.js.map +1 -1
  131. package/dist/revo-grid/revogr-data_4.entry.js +10 -10
  132. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  133. package/dist/revo-grid/revogr-filter-panel.entry.esm.js.map +1 -1
  134. package/dist/revo-grid/revogr-filter-panel.entry.js +3 -3
  135. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
  136. package/dist/revo-grid/{text-editor-92MGc5Bc.js → text-editor-DlCRmV75.js} +4 -4
  137. package/dist/revo-grid/{text-editor-92MGc5Bc.js.map → text-editor-DlCRmV75.js.map} +1 -1
  138. package/dist/revo-grid/{throttle-Dshl76F1.js → throttle-DcjZyclk.js} +3 -3
  139. package/dist/{esm/throttle-Dshl76F1.js.map → revo-grid/throttle-DcjZyclk.js.map} +1 -1
  140. package/dist/{esm/viewport.store-C89n4AEU.js → revo-grid/viewport.store-2mQugd8S.js} +3 -3
  141. package/dist/{esm/viewport.store-C89n4AEU.js.map → revo-grid/viewport.store-2mQugd8S.js.map} +1 -1
  142. package/dist/types/stencil-public-runtime.d.ts +12 -5
  143. package/hydrate/index.js +275 -158
  144. package/hydrate/index.mjs +275 -158
  145. package/package.json +4 -4
  146. package/standalone/data.store.js +21 -5
  147. package/standalone/data.store.js.map +1 -1
  148. package/standalone/revo-grid.js +7 -7
  149. package/standalone/revo-grid.js.map +1 -1
  150. package/standalone/revogr-attribution2.js +1 -1
  151. package/standalone/revogr-data2.js +2 -2
  152. package/standalone/revogr-data2.js.map +1 -1
  153. package/standalone/revogr-edit2.js +2 -2
  154. package/standalone/revogr-edit2.js.map +1 -1
  155. package/standalone/revogr-extra2.js +1 -1
  156. package/standalone/revogr-filter-panel.js +2 -2
  157. package/standalone/revogr-filter-panel.js.map +1 -1
  158. package/standalone/revogr-focus2.js +2 -2
  159. package/standalone/revogr-focus2.js.map +1 -1
  160. package/standalone/revogr-header2.js +2 -2
  161. package/standalone/revogr-header2.js.map +1 -1
  162. package/standalone/revogr-overlay-selection2.js +2 -2
  163. package/standalone/revogr-overlay-selection2.js.map +1 -1
  164. package/standalone/revogr-row-headers2.js +1 -1
  165. package/standalone/revogr-scroll-virtual2.js +2 -2
  166. package/standalone/revogr-scroll-virtual2.js.map +1 -1
  167. package/standalone/revogr-temp-range2.js +2 -2
  168. package/standalone/revogr-temp-range2.js.map +1 -1
  169. package/standalone/revogr-viewport-scroll2.js +2 -2
  170. package/standalone/revogr-viewport-scroll2.js.map +1 -1
  171. package/standalone/vnode-converter.js +1 -1
  172. package/dist/cjs/column.drag.plugin-CxKQ-GqY.js.map +0 -1
  173. package/dist/cjs/dimension.helpers-BmZOxsgq.js.map +0 -1
  174. package/dist/cjs/index-BbtPQ4Br.js.map +0 -1
  175. package/dist/esm/column.drag.plugin-Capa_0kN.js.map +0 -1
  176. package/dist/esm/index-gUcGIzDv.js.map +0 -1
  177. package/dist/revo-grid/column.drag.plugin-Capa_0kN.js.map +0 -1
  178. package/dist/revo-grid/index-gUcGIzDv.js.map +0 -1
@@ -1 +1 @@
1
- {"file":"revogr-viewport-scroll2.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["src/components/revoGrid/viewport.helpers.ts","src/components/revoGrid/viewport.resize.service.ts","src/components/scroll/revogr-viewport-scroll-style.scss?tag=revogr-viewport-scroll","src/components/scroll/revogr-viewport-scroll.tsx"],"sourcesContent":["/**\n * Collects data for pinned columns in the required @ViewportProps format.\n */\n\nimport type {\n DimensionRows,\n MultiDimensionType,\n SlotType,\n Cell,\n ViewportColumn,\n ColumnRegular,\n DimensionCols,\n ViewportState,\n DimensionSettingsState,\n DataType,\n} from '@type';\nimport type { Observable } from '../../utils';\nimport type { DSourceState } from '../../store';\n/**\n * Represents the slot names for the viewport slots.\n */\nexport const HEADER_SLOT = 'header'; // Slot name for the header slot\nexport const FOOTER_SLOT = 'footer'; // Slot name for the footer slot\nexport const CONTENT_SLOT = 'content'; // Slot name for the content slot\nexport const DATA_SLOT = 'data'; // Slot name for the data slot\n\n/**\n * Returns the last visible cell in the viewport for a given row type.\n * Coordinates are not zero-based and are relative to the viewport.\n * If needed to be zero-based they can be adjusted by subtracting 1.\n */\nexport function getLastCell(\n data: ViewportColumn,\n rowType: MultiDimensionType,\n): Cell {\n // Get the last visible column count from the viewport column data.\n const lastVisibleColumnCount = data.viewports[data.colType].store.get('realCount');\n\n // Get the last visible row count for the given row type from the viewport column data.\n const lastVisibleRowCount = data.viewports[rowType].store.get('realCount');\n\n // Return the last visible cell with the last visible column count and row count.\n return {\n x: lastVisibleColumnCount,\n y: lastVisibleRowCount,\n };\n}\n\n/**\n * Represents the partition of viewport data.\n */\nexport type VPPartition = {\n colData: Observable<DSourceState<ColumnRegular, DimensionCols>>;\n viewportCol: Observable<ViewportState>;\n viewportRow: Observable<ViewportState>;\n lastCell: Cell;\n slot: SlotType;\n type: DimensionRows;\n canDrag: boolean;\n position: Cell;\n dataStore: Observable<DSourceState<DataType, DimensionRows>>;\n dimensionCol: Observable<DimensionSettingsState>;\n dimensionRow: Observable<DimensionSettingsState>;\n style?: { height: string };\n};\n\nexport function viewportDataPartition(\n data: ViewportColumn,\n type: DimensionRows,\n slot: SlotType,\n fixed?: boolean,\n): VPPartition {\n return {\n colData: data.colStore,\n viewportCol: data.viewports[data.colType].store,\n viewportRow: data.viewports[type].store,\n // lastCell is the last real coordinate + 1\n lastCell: getLastCell(data, type),\n slot,\n type,\n canDrag: !fixed,\n position: data.position,\n dataStore: data.rowStores[type].store,\n dimensionCol: data.dimensions[data.colType].store,\n dimensionRow: data.dimensions[type].store,\n style: fixed\n ? { height: `${data.dimensions[type].store.get('realSize')}px` }\n : undefined,\n };\n}\n","import throttle from 'lodash/throttle';\ntype ResizeEntry = {\n width: number;\n height: number;\n};\nexport default class GridResizeService {\n private resizeObserver: ResizeObserver | null = null;\n private previousSize: ResizeEntry = {\n width: 0,\n height: 0,\n };\n readonly apply = throttle(\n (e: { width: number, height: number }) => {\n const entry = {\n width: e.width,\n height: e.height,\n };\n this.resize?.(entry, this.previousSize);\n this.previousSize = entry;\n },\n 40,\n {\n leading: false,\n trailing: true,\n }\n );\n constructor(\n el: HTMLElement,\n private readonly resize: (\n entry: ResizeEntry,\n previousSize: ResizeEntry,\n ) => void,\n elements: (HTMLElement | undefined)[],\n ) {\n const extras: HTMLElement[] = [];\n elements.forEach((element) => {\n if (element) {\n extras.push(element);\n }\n });\n this.init(el, extras);\n }\n\n init(el: HTMLElement, extras: HTMLElement[] = []) {\n const observer = this.resizeObserver = new ResizeObserver((e) => {\n if (e.length) {\n if (e[0].target === el) {\n this.apply(e[0].contentRect);\n } else {\n this.apply(el.getBoundingClientRect());\n }\n }\n });\n observer.observe(el);\n extras.forEach((extra) => {\n observer.observe(extra);\n });\n }\n\n destroy() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n}\n","@mixin noScroll {\n /* Hide scrollbar for IE and Edge */\n -ms-overflow-style: none;\n scrollbar-width: none; /* Firefox */\n /* Hide scrollbar for Chrome, Safari and Opera */\n &::-webkit-scrollbar {\n display: none;\n -webkit-appearance: none;\n }\n}\n\n.rowHeaders {\n z-index: 2;\n font-size: 10px;\n display: flex;\n height: 100%;\n\n revogr-data .rgCell {\n text-align: center;\n }\n\n .rgCell {\n padding: 0 1em !important;\n min-width: 100%;\n }\n}\n\nrevogr-viewport-scroll {\n @include noScroll;\n\n overflow-x: auto;\n overflow-y: hidden;\n position: relative;\n z-index: 1;\n height: 100%;\n\n &.colPinStart,\n &.colPinEnd {\n z-index: 2;\n }\n\n // make sure it would work\n &.colPinEnd:has(.active) {\n overflow: visible;\n }\n\n &.rgCol {\n flex-grow: 1;\n }\n\n .content-wrapper {\n overflow: hidden;\n }\n\n .inner-content-table {\n display: flex;\n flex-direction: column;\n max-height: 100%;\n width: 100%;\n min-width: 100%;\n position: relative;\n z-index: 0;\n }\n\n .vertical-inner {\n overflow-y: auto;\n position: relative;\n width: 100%;\n flex-grow: 1;\n outline: none; // avoid accessibility focus issue\n @include noScroll;\n\n revogr-data,\n revogr-overlay-selection {\n height: 100%;\n }\n }\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Method,\n Element,\n Prop,\n Host,\n Listen,\n} from '@stencil/core';\n\nimport GridResizeService from '../revoGrid/viewport.resize.service';\nimport LocalScrollService from '../../services/local.scroll.service';\nimport { LocalScrollTimer } from '../../services/local.scroll.timer';\nimport {\n CONTENT_SLOT,\n FOOTER_SLOT,\n HEADER_SLOT,\n} from '../revoGrid/viewport.helpers';\nimport type {\n DimensionCols,\n DimensionType,\n ElementScroll,\n ScrollCoordinateEvent,\n ViewPortResizeEvent,\n ViewPortScrollEvent,\n} from '@type';\n\ntype Delta = 'deltaX' | 'deltaY';\ntype LocalScrollEvent = {\n preventDefault(): void;\n} & { [x in Delta]: number };\n\n/**\n * Viewport scroll component for RevoGrid\n * @slot - content\n * @slot header - header\n * @slot footer - footer\n */\n@Component({\n tag: 'revogr-viewport-scroll',\n styleUrl: 'revogr-viewport-scroll-style.scss',\n})\nexport class RevogrViewportScroll implements ElementScroll {\n /**\n * Enable row header\n */\n @Prop() readonly rowHeader: boolean;\n\n /**\n * Width of inner content\n */\n @Prop() contentWidth = 0;\n /**\n * Height of inner content\n */\n @Prop() contentHeight = 0;\n\n @Prop() colType!: DimensionCols | 'rowHeaders';\n\n /**\n * Before scroll event\n */\n @Event({ eventName: 'scrollviewport', bubbles: true })\n scrollViewport: EventEmitter<ViewPortScrollEvent>;\n /**\n * Viewport resize\n */\n @Event({ eventName: 'resizeviewport' })\n resizeViewport: EventEmitter<ViewPortResizeEvent>;\n\n /**\n * Triggered on scroll change, can be used to get information about scroll visibility\n */\n @Event() scrollchange: EventEmitter<{\n type: DimensionType;\n hasScroll: boolean;\n }>;\n\n /**\n * Silently scroll to coordinate\n * Made to align negative coordinates for mobile devices\n */\n @Event({ eventName: 'scrollviewportsilent' })\n silentScroll: EventEmitter<ViewPortScrollEvent>;\n\n @Element() horizontalScroll: HTMLElement;\n\n private verticalScroll?: HTMLElement;\n private header?: HTMLElement;\n private footer?: HTMLElement;\n\n /**\n * Static functions to bind wheel change\n */\n private horizontalMouseWheel: (e: Partial<LocalScrollEvent>) => void;\n private verticalMouseWheel: (e: Partial<LocalScrollEvent>) => void;\n\n private resizeService?: GridResizeService;\n private localScrollService: LocalScrollService;\n private localScrollTimer: LocalScrollTimer;\n\n @Method() async setScroll(e: ViewPortScrollEvent) {\n this.localScrollTimer.latestScrollUpdate(e.dimension);\n this.localScrollService?.setScroll(e);\n }\n\n /**\n * update on delta in case we don't know existing position or external change\n * @param e\n */\n @Method() async changeScroll(e: ViewPortScrollEvent, silent = false) {\n if (silent) {\n if (e.coordinate && this.verticalScroll) {\n switch (e.dimension) {\n // for mobile devices to skip negative scroll loop. only on vertical scroll\n case 'rgRow':\n this.verticalScroll.style.transform = `translateY(${-1 * e.coordinate}px)`;\n break;\n }\n }\n return;\n }\n if (e.delta) {\n switch (e.dimension) {\n case 'rgCol':\n e.coordinate = this.horizontalScroll.scrollLeft + e.delta;\n break;\n case 'rgRow':\n e.coordinate = (this.verticalScroll?.scrollTop ?? 0) + e.delta;\n break;\n }\n this.setScroll(e);\n }\n return e;\n }\n\n /**\n * Dispatch this event to trigger vertical mouse wheel from plugins\n */\n @Listen('mousewheel-vertical') mousewheelVertical({\n detail: e,\n }: CustomEvent<LocalScrollEvent>) {\n this.verticalMouseWheel(e);\n }\n /**\n * Dispatch this event to trigger horizontal mouse wheel from plugins\n */\n @Listen('mousewheel-horizontal') mousewheelHorizontal({\n detail: e,\n }: CustomEvent<LocalScrollEvent>) {\n this.horizontalMouseWheel(e);\n }\n /**\n * Allows to use outside listener\n */\n @Listen('scroll-coordinate') scrollApply({\n detail: { type, coordinate },\n }: CustomEvent<ScrollCoordinateEvent>) {\n this.applyOnScroll(type, coordinate, true);\n }\n\n connectedCallback() {\n /**\n * Bind scroll functions for farther usage\n */\n // allow mousewheel for all devices including mobile\n this.verticalMouseWheel = this.onVerticalMouseWheel.bind(\n this,\n 'rgRow',\n 'deltaY',\n );\n this.horizontalMouseWheel = this.onHorizontalMouseWheel.bind(\n this,\n 'rgCol',\n 'deltaX',\n );\n this.localScrollTimer = new LocalScrollTimer(\n 'ontouchstart' in document.documentElement ? 0 : 10,\n );\n /**\n * Create local scroll service\n */\n this.localScrollService = new LocalScrollService({\n // to improve safari smoothnes on scroll\n // skipAnimationFrame: isSafariDesktop(),\n runScroll: e => this.scrollViewport.emit(e),\n applyScroll: e => {\n this.localScrollTimer.setCoordinate(e);\n switch (e.dimension) {\n case 'rgCol':\n // this will trigger on scroll event\n this.horizontalScroll.scrollLeft = e.coordinate;\n break;\n case 'rgRow':\n if (this.verticalScroll) {\n // this will trigger on scroll event\n this.verticalScroll.scrollTop = e.coordinate;\n // for mobile devices to skip negative scroll loop. only on vertical scroll\n if (this.verticalScroll.style.transform) {\n this.verticalScroll.style.transform = '';\n }\n }\n break;\n }\n },\n });\n }\n\n componentDidLoad() {\n // track viewport resize\n this.resizeService = new GridResizeService(\n this.horizontalScroll,\n (entry) => {\n const els: Partial<\n Record<\n DimensionType,\n {\n size: number;\n contentSize: number;\n scroll: number;\n noScroll: boolean;\n }\n >\n > = {};\n\n let calculatedHeight = entry.height || 0;\n if (calculatedHeight) {\n calculatedHeight -=\n (this.header?.clientHeight ?? 0) +\n (this.footer?.clientHeight ?? 0);\n }\n els.rgRow = {\n size: calculatedHeight,\n contentSize: this.contentHeight,\n scroll: this.verticalScroll?.scrollTop ?? 0,\n noScroll: false,\n };\n const calculatedWidth = entry.width || 0;\n els.rgCol = {\n size: calculatedWidth,\n contentSize: this.contentWidth,\n scroll: this.horizontalScroll.scrollLeft,\n noScroll: this.colType !== 'rgCol',\n };\n // Process changes in order: width first, then height\n const dimensions: DimensionType[] = ['rgCol', 'rgRow'];\n for (const dimension of dimensions) {\n const item = els[dimension];\n if (!item) continue;\n this.resizeViewport.emit({\n dimension,\n size: item.size,\n rowHeader: this.rowHeader,\n });\n if (item.noScroll) {\n continue;\n }\n this.localScrollService?.scroll(item.scroll ?? 0, dimension, true);\n // track scroll visibility on outer element change\n this.setScrollVisibility(dimension, item.size, item.contentSize);\n }\n },\n [this.footer, this.header],\n );\n }\n\n /**\n * Check if scroll present or not per type\n * Trigger this method on inner content size change or on outer element size change\n * If inner content bigger then outer size then scroll is present and mousewheel binding required\n * @param type - dimension type 'rgRow/y' or 'rgCol/x'\n * @param size - outer content size\n * @param innerContentSize - inner content size\n */\n setScrollVisibility(\n type: DimensionType,\n size: number,\n innerContentSize: number,\n ) {\n // test if scroll present\n const hasScroll = size < innerContentSize;\n let el: HTMLElement | undefined;\n // event reference for binding\n switch (type) {\n case 'rgCol':\n el = this.horizontalScroll;\n break;\n case 'rgRow':\n el = this.verticalScroll;\n break;\n }\n // based on scroll visibility assign or remove class and event\n if (hasScroll) {\n el?.classList.add(`scroll-${type}`);\n } else {\n el?.classList.remove(`scroll-${type}`);\n }\n this.scrollchange.emit({ type, hasScroll });\n }\n\n disconnectedCallback() {\n this.resizeService?.destroy();\n }\n\n async componentDidRender() {\n this.localScrollService.setParams(\n {\n contentSize: this.contentHeight,\n clientSize: this.verticalScroll?.clientHeight ?? 0,\n virtualSize: 0,\n },\n 'rgRow',\n );\n\n this.localScrollService.setParams(\n {\n contentSize: this.contentWidth,\n clientSize: this.horizontalScroll.clientWidth,\n virtualSize: 0,\n },\n 'rgCol',\n );\n this.setScrollVisibility(\n 'rgRow',\n this.verticalScroll?.clientHeight ?? 0,\n this.contentHeight,\n );\n this.setScrollVisibility(\n 'rgCol',\n this.horizontalScroll.clientWidth,\n this.contentWidth,\n );\n }\n\n render() {\n return (\n <Host\n onWheel={this.horizontalMouseWheel}\n onScroll={(e: UIEvent) => this.applyScroll('rgCol', e)}\n >\n <div\n class=\"inner-content-table\"\n style={{ width: `${this.contentWidth}px` }}\n >\n <div class=\"header-wrapper\" ref={e => (this.header = e)}>\n <slot name={HEADER_SLOT} />\n </div>\n <div\n class=\"vertical-inner\"\n ref={el => (this.verticalScroll = el)}\n onWheel={this.verticalMouseWheel}\n onScroll={(e: MouseEvent) => this.applyScroll('rgRow', e)}\n >\n <div\n class=\"content-wrapper\"\n style={{ height: `${this.contentHeight}px` }}\n >\n <slot name={CONTENT_SLOT} />\n </div>\n </div>\n <div class=\"footer-wrapper\" ref={e => (this.footer = e)}>\n <slot name={FOOTER_SLOT} />\n </div>\n </div>\n </Host>\n );\n }\n /**\n * Extra layer for scroll event monitoring, where MouseWheel event is not passing\n * We need to trigger scroll event in case there is no mousewheel event\n */\n @Method() async applyScroll(type: DimensionType, e: UIEvent) {\n if (!(e.target instanceof HTMLElement)) {\n return;\n }\n let scroll = 0;\n switch (type) {\n case 'rgCol':\n scroll = e.target.scrollLeft;\n break;\n case 'rgRow':\n scroll = e.target.scrollTop;\n break;\n }\n\n // for mobile devices to skip negative scroll loop\n if (scroll < 0) {\n this.silentScroll.emit({ dimension: type, coordinate: scroll });\n return;\n }\n this.applyOnScroll(type, scroll);\n }\n\n /**\n * Applies change on scroll event only if mousewheel event happened some time ago\n */\n private applyOnScroll(\n type: DimensionType,\n coordinate: number,\n outside = false,\n ) {\n const lastScrollUpdate = () => {\n this.localScrollService?.scroll(\n coordinate,\n type,\n undefined,\n undefined,\n outside,\n );\n };\n // apply after throttling\n if (this.localScrollTimer.isReady(type, coordinate)) {\n lastScrollUpdate();\n } else {\n this.localScrollTimer.throttleLastScrollUpdate(type, coordinate, () => lastScrollUpdate());\n }\n }\n\n /**\n * On vertical mousewheel event\n * @param type\n * @param delta\n * @param e\n */\n private onVerticalMouseWheel(\n type: DimensionType,\n delta: Delta,\n e: LocalScrollEvent,\n ) {\n const scrollTop = this.verticalScroll?.scrollTop ?? 0;\n const clientHeight = this.verticalScroll?.clientHeight ?? 0;\n const scrollHeight = this.verticalScroll?.scrollHeight ?? 0;\n\n // Detect if the user has reached the bottom\n const atBottom = scrollTop + clientHeight >= scrollHeight && e.deltaY > 0;\n const atTop = scrollTop === 0 && e.deltaY < 0;\n if (!atBottom && !atTop) {\n e.preventDefault?.();\n }\n const pos = scrollTop + e[delta];\n this.localScrollService?.scroll(pos, type, undefined, e[delta]);\n this.localScrollTimer.latestScrollUpdate(type);\n }\n\n /**\n * On horizontal mousewheel event\n * @param type\n * @param delta\n * @param e\n */\n private onHorizontalMouseWheel(\n type: DimensionType,\n delta: Delta,\n e: LocalScrollEvent,\n ) {\n if (!e.deltaX) {\n return;\n }\n const { scrollLeft, scrollWidth, clientWidth } = this.horizontalScroll;\n\n // Detect if the user has reached the right end\n const atRight = scrollLeft + clientWidth >= scrollWidth && e.deltaX > 0;\n\n // Detect if the user has reached the left end\n const atLeft = scrollLeft === 0 && e.deltaX < 0;\n if (!atRight && !atLeft) {\n e.preventDefault?.();\n }\n const pos = scrollLeft + e[delta];\n this.localScrollService?.scroll(pos, type, undefined, e[delta]);\n this.localScrollTimer.latestScrollUpdate(type);\n }\n}\n"],"version":3}
1
+ {"file":"revogr-viewport-scroll2.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["src/components/revoGrid/viewport.helpers.ts","src/components/revoGrid/viewport.resize.service.ts","src/components/scroll/revogr-viewport-scroll-style.scss?tag=revogr-viewport-scroll","src/components/scroll/revogr-viewport-scroll.tsx"],"sourcesContent":["/**\n * Collects data for pinned columns in the required @ViewportProps format.\n */\n\nimport type {\n DimensionRows,\n MultiDimensionType,\n SlotType,\n Cell,\n ViewportColumn,\n ColumnRegular,\n DimensionCols,\n ViewportState,\n DimensionSettingsState,\n DataType,\n} from '@type';\nimport type { Observable } from '../../utils';\nimport type { DSourceState } from '../../store';\n/**\n * Represents the slot names for the viewport slots.\n */\nexport const HEADER_SLOT = 'header'; // Slot name for the header slot\nexport const FOOTER_SLOT = 'footer'; // Slot name for the footer slot\nexport const CONTENT_SLOT = 'content'; // Slot name for the content slot\nexport const DATA_SLOT = 'data'; // Slot name for the data slot\n\n/**\n * Returns the last visible cell in the viewport for a given row type.\n * Coordinates are not zero-based and are relative to the viewport.\n * If needed to be zero-based they can be adjusted by subtracting 1.\n */\nexport function getLastCell(\n data: ViewportColumn,\n rowType: MultiDimensionType,\n): Cell {\n // Get the last visible column count from the viewport column data.\n const lastVisibleColumnCount = data.viewports[data.colType].store.get('realCount');\n\n // Get the last visible row count for the given row type from the viewport column data.\n const lastVisibleRowCount = data.viewports[rowType].store.get('realCount');\n\n // Return the last visible cell with the last visible column count and row count.\n return {\n x: lastVisibleColumnCount,\n y: lastVisibleRowCount,\n };\n}\n\n/**\n * Represents the partition of viewport data.\n */\nexport type VPPartition = {\n colData: Observable<DSourceState<ColumnRegular, DimensionCols>>;\n viewportCol: Observable<ViewportState>;\n viewportRow: Observable<ViewportState>;\n lastCell: Cell;\n slot: SlotType;\n type: DimensionRows;\n canDrag: boolean;\n position: Cell;\n dataStore: Observable<DSourceState<DataType, DimensionRows>>;\n dimensionCol: Observable<DimensionSettingsState>;\n dimensionRow: Observable<DimensionSettingsState>;\n style?: { height: string };\n};\n\nexport function viewportDataPartition(\n data: ViewportColumn,\n type: DimensionRows,\n slot: SlotType,\n fixed?: boolean,\n): VPPartition {\n return {\n colData: data.colStore,\n viewportCol: data.viewports[data.colType].store,\n viewportRow: data.viewports[type].store,\n // lastCell is the last real coordinate + 1\n lastCell: getLastCell(data, type),\n slot,\n type,\n canDrag: !fixed,\n position: data.position,\n dataStore: data.rowStores[type].store,\n dimensionCol: data.dimensions[data.colType].store,\n dimensionRow: data.dimensions[type].store,\n style: fixed\n ? { height: `${data.dimensions[type].store.get('realSize')}px` }\n : undefined,\n };\n}\n","import throttle from 'lodash/throttle';\ntype ResizeEntry = {\n width: number;\n height: number;\n};\nexport default class GridResizeService {\n private resizeObserver: ResizeObserver | null = null;\n private previousSize: ResizeEntry = {\n width: 0,\n height: 0,\n };\n readonly apply = throttle(\n (e: { width: number, height: number }) => {\n const entry = {\n width: e.width,\n height: e.height,\n };\n this.resize?.(entry, this.previousSize);\n this.previousSize = entry;\n },\n 40,\n {\n leading: false,\n trailing: true,\n }\n );\n constructor(\n el: HTMLElement,\n private readonly resize: (\n entry: ResizeEntry,\n previousSize: ResizeEntry,\n ) => void,\n elements: (HTMLElement | undefined)[],\n ) {\n const extras: HTMLElement[] = [];\n elements.forEach((element) => {\n if (element) {\n extras.push(element);\n }\n });\n this.init(el, extras);\n }\n\n init(el: HTMLElement, extras: HTMLElement[] = []) {\n const observer = this.resizeObserver = new ResizeObserver((e) => {\n if (e.length) {\n if (e[0].target === el) {\n this.apply(e[0].contentRect);\n } else {\n this.apply(el.getBoundingClientRect());\n }\n }\n });\n observer.observe(el);\n extras.forEach((extra) => {\n observer.observe(extra);\n });\n }\n\n destroy() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n}\n","@mixin noScroll {\n /* Hide scrollbar for IE and Edge */\n -ms-overflow-style: none;\n scrollbar-width: none; /* Firefox */\n /* Hide scrollbar for Chrome, Safari and Opera */\n &::-webkit-scrollbar {\n display: none;\n -webkit-appearance: none;\n }\n}\n\n.rowHeaders {\n z-index: 2;\n font-size: 10px;\n display: flex;\n height: 100%;\n\n revogr-data .rgCell {\n text-align: center;\n }\n\n .rgCell {\n padding: 0 1em !important;\n min-width: 100%;\n }\n}\n\nrevogr-viewport-scroll {\n @include noScroll;\n\n overflow-x: auto;\n overflow-y: hidden;\n position: relative;\n z-index: 1;\n height: 100%;\n\n &.colPinStart,\n &.colPinEnd {\n z-index: 2;\n }\n\n // make sure it would work\n &.colPinEnd:has(.active) {\n overflow: visible;\n }\n\n &.rgCol {\n flex-grow: 1;\n }\n\n .content-wrapper {\n overflow: hidden;\n }\n\n .inner-content-table {\n display: flex;\n flex-direction: column;\n max-height: 100%;\n width: 100%;\n min-width: 100%;\n position: relative;\n z-index: 0;\n }\n\n .vertical-inner {\n overflow-y: auto;\n position: relative;\n width: 100%;\n flex-grow: 1;\n outline: none; // avoid accessibility focus issue\n @include noScroll;\n\n revogr-data,\n revogr-overlay-selection {\n height: 100%;\n }\n }\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Method,\n Element,\n Prop,\n Host,\n Listen,\n} from '@stencil/core';\n\nimport GridResizeService from '../revoGrid/viewport.resize.service';\nimport LocalScrollService from '../../services/local.scroll.service';\nimport { LocalScrollTimer } from '../../services/local.scroll.timer';\nimport {\n CONTENT_SLOT,\n FOOTER_SLOT,\n HEADER_SLOT,\n} from '../revoGrid/viewport.helpers';\nimport type {\n DimensionCols,\n DimensionType,\n ElementScroll,\n ScrollCoordinateEvent,\n ViewPortResizeEvent,\n ViewPortScrollEvent,\n} from '@type';\n\ntype Delta = 'deltaX' | 'deltaY';\ntype LocalScrollEvent = {\n preventDefault(): void;\n} & { [x in Delta]: number };\n\n/**\n * Viewport scroll component for RevoGrid\n * @slot - content\n * @slot header - header\n * @slot footer - footer\n */\n@Component({\n tag: 'revogr-viewport-scroll',\n styleUrl: 'revogr-viewport-scroll-style.scss',\n})\nexport class RevogrViewportScroll implements ElementScroll {\n /**\n * Enable row header\n */\n @Prop() readonly rowHeader: boolean;\n\n /**\n * Width of inner content\n */\n @Prop() contentWidth = 0;\n /**\n * Height of inner content\n */\n @Prop() contentHeight = 0;\n\n @Prop() colType!: DimensionCols | 'rowHeaders';\n\n /**\n * Before scroll event\n */\n @Event({ eventName: 'scrollviewport', bubbles: true })\n scrollViewport: EventEmitter<ViewPortScrollEvent>;\n /**\n * Viewport resize\n */\n @Event({ eventName: 'resizeviewport' })\n resizeViewport: EventEmitter<ViewPortResizeEvent>;\n\n /**\n * Triggered on scroll change, can be used to get information about scroll visibility\n */\n @Event() scrollchange: EventEmitter<{\n type: DimensionType;\n hasScroll: boolean;\n }>;\n\n /**\n * Silently scroll to coordinate\n * Made to align negative coordinates for mobile devices\n */\n @Event({ eventName: 'scrollviewportsilent' })\n silentScroll: EventEmitter<ViewPortScrollEvent>;\n\n @Element() horizontalScroll: HTMLElement;\n\n private verticalScroll?: HTMLElement;\n private header?: HTMLElement;\n private footer?: HTMLElement;\n\n /**\n * Static functions to bind wheel change\n */\n private horizontalMouseWheel: (e: Partial<LocalScrollEvent>) => void;\n private verticalMouseWheel: (e: Partial<LocalScrollEvent>) => void;\n\n private resizeService?: GridResizeService;\n private localScrollService: LocalScrollService;\n private localScrollTimer: LocalScrollTimer;\n\n @Method() async setScroll(e: ViewPortScrollEvent) {\n this.localScrollTimer.latestScrollUpdate(e.dimension);\n this.localScrollService?.setScroll(e);\n }\n\n /**\n * update on delta in case we don't know existing position or external change\n * @param e\n */\n @Method() async changeScroll(e: ViewPortScrollEvent, silent = false) {\n if (silent) {\n if (e.coordinate && this.verticalScroll) {\n switch (e.dimension) {\n // for mobile devices to skip negative scroll loop. only on vertical scroll\n case 'rgRow':\n this.verticalScroll.style.transform = `translateY(${-1 * e.coordinate}px)`;\n break;\n }\n }\n return;\n }\n if (e.delta) {\n switch (e.dimension) {\n case 'rgCol':\n e.coordinate = this.horizontalScroll.scrollLeft + e.delta;\n break;\n case 'rgRow':\n e.coordinate = (this.verticalScroll?.scrollTop ?? 0) + e.delta;\n break;\n }\n this.setScroll(e);\n }\n return e;\n }\n\n /**\n * Dispatch this event to trigger vertical mouse wheel from plugins\n */\n @Listen('mousewheel-vertical') mousewheelVertical({\n detail: e,\n }: CustomEvent<LocalScrollEvent>) {\n this.verticalMouseWheel(e);\n }\n /**\n * Dispatch this event to trigger horizontal mouse wheel from plugins\n */\n @Listen('mousewheel-horizontal') mousewheelHorizontal({\n detail: e,\n }: CustomEvent<LocalScrollEvent>) {\n this.horizontalMouseWheel(e);\n }\n /**\n * Allows to use outside listener\n */\n @Listen('scroll-coordinate') scrollApply({\n detail: { type, coordinate },\n }: CustomEvent<ScrollCoordinateEvent>) {\n this.applyOnScroll(type, coordinate, true);\n }\n\n connectedCallback() {\n /**\n * Bind scroll functions for farther usage\n */\n // allow mousewheel for all devices including mobile\n this.verticalMouseWheel = this.onVerticalMouseWheel.bind(\n this,\n 'rgRow',\n 'deltaY',\n );\n this.horizontalMouseWheel = this.onHorizontalMouseWheel.bind(\n this,\n 'rgCol',\n 'deltaX',\n );\n this.localScrollTimer = new LocalScrollTimer(\n 'ontouchstart' in document.documentElement ? 0 : 10,\n );\n /**\n * Create local scroll service\n */\n this.localScrollService = new LocalScrollService({\n // to improve safari smoothnes on scroll\n // skipAnimationFrame: isSafariDesktop(),\n runScroll: e => this.scrollViewport.emit(e),\n applyScroll: e => {\n this.localScrollTimer.setCoordinate(e);\n switch (e.dimension) {\n case 'rgCol':\n // this will trigger on scroll event\n this.horizontalScroll.scrollLeft = e.coordinate;\n break;\n case 'rgRow':\n if (this.verticalScroll) {\n // this will trigger on scroll event\n this.verticalScroll.scrollTop = e.coordinate;\n // for mobile devices to skip negative scroll loop. only on vertical scroll\n if (this.verticalScroll.style.transform) {\n this.verticalScroll.style.transform = '';\n }\n }\n break;\n }\n },\n });\n }\n\n componentDidLoad() {\n // track viewport resize\n this.resizeService = new GridResizeService(\n this.horizontalScroll,\n (entry) => {\n const els: Partial<\n Record<\n DimensionType,\n {\n size: number;\n contentSize: number;\n scroll: number;\n noScroll: boolean;\n }\n >\n > = {};\n\n let calculatedHeight = entry.height || 0;\n if (calculatedHeight) {\n calculatedHeight -=\n (this.header?.clientHeight ?? 0) +\n (this.footer?.clientHeight ?? 0);\n }\n els.rgRow = {\n size: calculatedHeight,\n contentSize: this.contentHeight,\n scroll: this.verticalScroll?.scrollTop ?? 0,\n noScroll: false,\n };\n const calculatedWidth = entry.width || 0;\n els.rgCol = {\n size: calculatedWidth,\n contentSize: this.contentWidth,\n scroll: this.horizontalScroll.scrollLeft,\n noScroll: this.colType !== 'rgCol',\n };\n // Process changes in order: width first, then height\n const dimensions: DimensionType[] = ['rgCol', 'rgRow'];\n for (const dimension of dimensions) {\n const item = els[dimension];\n if (!item) continue;\n this.resizeViewport.emit({\n dimension,\n size: item.size,\n rowHeader: this.rowHeader,\n });\n if (item.noScroll) {\n continue;\n }\n this.localScrollService?.scroll(item.scroll ?? 0, dimension, true);\n // track scroll visibility on outer element change\n this.setScrollVisibility(dimension, item.size, item.contentSize);\n }\n },\n [this.footer, this.header],\n );\n }\n\n /**\n * Check if scroll present or not per type\n * Trigger this method on inner content size change or on outer element size change\n * If inner content bigger then outer size then scroll is present and mousewheel binding required\n * @param type - dimension type 'rgRow/y' or 'rgCol/x'\n * @param size - outer content size\n * @param innerContentSize - inner content size\n */\n setScrollVisibility(\n type: DimensionType,\n size: number,\n innerContentSize: number,\n ) {\n // test if scroll present\n const hasScroll = size < innerContentSize;\n let el: HTMLElement | undefined;\n // event reference for binding\n switch (type) {\n case 'rgCol':\n el = this.horizontalScroll;\n break;\n case 'rgRow':\n el = this.verticalScroll;\n break;\n }\n // based on scroll visibility assign or remove class and event\n if (hasScroll) {\n el?.classList.add(`scroll-${type}`);\n } else {\n el?.classList.remove(`scroll-${type}`);\n }\n this.scrollchange.emit({ type, hasScroll });\n }\n\n disconnectedCallback() {\n this.resizeService?.destroy();\n }\n\n async componentDidRender() {\n this.localScrollService.setParams(\n {\n contentSize: this.contentHeight,\n clientSize: this.verticalScroll?.clientHeight ?? 0,\n virtualSize: 0,\n },\n 'rgRow',\n );\n\n this.localScrollService.setParams(\n {\n contentSize: this.contentWidth,\n clientSize: this.horizontalScroll.clientWidth,\n virtualSize: 0,\n },\n 'rgCol',\n );\n this.setScrollVisibility(\n 'rgRow',\n this.verticalScroll?.clientHeight ?? 0,\n this.contentHeight,\n );\n this.setScrollVisibility(\n 'rgCol',\n this.horizontalScroll.clientWidth,\n this.contentWidth,\n );\n }\n\n render() {\n return (\n <Host\n onWheel={this.horizontalMouseWheel}\n onScroll={(e: UIEvent) => this.applyScroll('rgCol', e)}\n >\n <div\n class=\"inner-content-table\"\n style={{ width: `${this.contentWidth}px` }}\n >\n <div class=\"header-wrapper\" ref={e => (this.header = e)}>\n <slot name={HEADER_SLOT} />\n </div>\n <div\n class=\"vertical-inner\"\n ref={el => (this.verticalScroll = el)}\n onWheel={this.verticalMouseWheel}\n onScroll={(e: MouseEvent) => this.applyScroll('rgRow', e)}\n >\n <div\n class=\"content-wrapper\"\n style={{ height: `${this.contentHeight}px` }}\n >\n <slot name={CONTENT_SLOT} />\n </div>\n </div>\n <div class=\"footer-wrapper\" ref={e => (this.footer = e)}>\n <slot name={FOOTER_SLOT} />\n </div>\n </div>\n </Host>\n );\n }\n /**\n * Extra layer for scroll event monitoring, where MouseWheel event is not passing\n * We need to trigger scroll event in case there is no mousewheel event\n */\n @Method() async applyScroll(type: DimensionType, e: UIEvent) {\n if (!(e.target instanceof HTMLElement)) {\n return;\n }\n let scroll = 0;\n switch (type) {\n case 'rgCol':\n scroll = e.target.scrollLeft;\n break;\n case 'rgRow':\n scroll = e.target.scrollTop;\n break;\n }\n\n // for mobile devices to skip negative scroll loop\n if (scroll < 0) {\n this.silentScroll.emit({ dimension: type, coordinate: scroll });\n return;\n }\n this.applyOnScroll(type, scroll);\n }\n\n /**\n * Applies change on scroll event only if mousewheel event happened some time ago\n */\n private applyOnScroll(\n type: DimensionType,\n coordinate: number,\n outside = false,\n ) {\n const lastScrollUpdate = () => {\n this.localScrollService?.scroll(\n coordinate,\n type,\n undefined,\n undefined,\n outside,\n );\n };\n // apply after throttling\n if (this.localScrollTimer.isReady(type, coordinate)) {\n lastScrollUpdate();\n } else {\n this.localScrollTimer.throttleLastScrollUpdate(type, coordinate, () => lastScrollUpdate());\n }\n }\n\n /**\n * On vertical mousewheel event\n * @param type\n * @param delta\n * @param e\n */\n private onVerticalMouseWheel(\n type: DimensionType,\n delta: Delta,\n e: LocalScrollEvent,\n ) {\n const scrollTop = this.verticalScroll?.scrollTop ?? 0;\n const clientHeight = this.verticalScroll?.clientHeight ?? 0;\n const scrollHeight = this.verticalScroll?.scrollHeight ?? 0;\n\n // Detect if the user has reached the bottom\n const atBottom = scrollTop + clientHeight >= scrollHeight && e.deltaY > 0;\n const atTop = scrollTop === 0 && e.deltaY < 0;\n if (!atBottom && !atTop) {\n e.preventDefault?.();\n }\n const pos = scrollTop + e[delta];\n this.localScrollService?.scroll(pos, type, undefined, e[delta]);\n this.localScrollTimer.latestScrollUpdate(type);\n }\n\n /**\n * On horizontal mousewheel event\n * @param type\n * @param delta\n * @param e\n */\n private onHorizontalMouseWheel(\n type: DimensionType,\n delta: Delta,\n e: LocalScrollEvent,\n ) {\n if (!e.deltaX) {\n return;\n }\n const { scrollLeft, scrollWidth, clientWidth } = this.horizontalScroll;\n\n // Detect if the user has reached the right end\n const atRight = scrollLeft + clientWidth >= scrollWidth && e.deltaX > 0;\n\n // Detect if the user has reached the left end\n const atLeft = scrollLeft === 0 && e.deltaX < 0;\n if (!atRight && !atLeft) {\n e.preventDefault?.();\n }\n const pos = scrollLeft + e[delta];\n this.localScrollService?.scroll(pos, type, undefined, e[delta]);\n this.localScrollTimer.latestScrollUpdate(type);\n }\n}\n"],"version":3}
@@ -23,7 +23,7 @@ const VNodeToHtml = /*@__PURE__*/ proxyCustomElement(class VNodeToHtml extends H
23
23
  return (h(Host, { key: '11b76ca8a86ebf279add88bbd86ef9eb5149605a', style: { visibility: 'hidden', position: 'absolute' } }, this.vnodes));
24
24
  }
25
25
  get el() { return this; }
26
- }, [0, "vnode-html", {
26
+ }, [256, "vnode-html", {
27
27
  "redraw": [16]
28
28
  }]);
29
29
  function defineCustomElement() {