lsp-grid 1.0.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 (675) hide show
  1. package/README.md +34 -0
  2. package/dist/cjs/app-globals-Bfsg1bDt.js +16 -0
  3. package/dist/cjs/app-globals-Bfsg1bDt.js.map +1 -0
  4. package/dist/cjs/cell-renderer-DtuYp7tj.js +106 -0
  5. package/dist/cjs/cell-renderer-DtuYp7tj.js.map +1 -0
  6. package/dist/cjs/column.drag.plugin-BIptTmfz.js +2554 -0
  7. package/dist/cjs/column.drag.plugin-BIptTmfz.js.map +1 -0
  8. package/dist/cjs/column.service-BnVSAfcu.js +1391 -0
  9. package/dist/cjs/column.service-BnVSAfcu.js.map +1 -0
  10. package/dist/cjs/data.store-CrF4Nf9q.js +3615 -0
  11. package/dist/cjs/data.store-CrF4Nf9q.js.map +1 -0
  12. package/dist/cjs/debounce-DgeyTQM0.js +498 -0
  13. package/dist/cjs/debounce-DgeyTQM0.js.map +1 -0
  14. package/dist/cjs/edit.utils-Bw-E3Fj6.js +118 -0
  15. package/dist/cjs/edit.utils-Bw-E3Fj6.js.map +1 -0
  16. package/dist/cjs/events-D0Syn6ut.js +46 -0
  17. package/dist/cjs/events-D0Syn6ut.js.map +1 -0
  18. package/dist/cjs/filter.button-CaAAXq-6.js +49 -0
  19. package/dist/cjs/filter.button-CaAAXq-6.js.map +1 -0
  20. package/dist/cjs/header-cell-renderer-DhRJqZ-w.js +356 -0
  21. package/dist/cjs/header-cell-renderer-DhRJqZ-w.js.map +1 -0
  22. package/dist/cjs/index-VM40U6Gh.js +2549 -0
  23. package/dist/cjs/index-VM40U6Gh.js.map +1 -0
  24. package/dist/cjs/index.cjs.js +346 -0
  25. package/dist/cjs/index.cjs.js.map +1 -0
  26. package/dist/cjs/loader.cjs.js +19 -0
  27. package/dist/cjs/loader.cjs.js.map +1 -0
  28. package/dist/cjs/revo-grid.cjs.entry.js +2187 -0
  29. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -0
  30. package/dist/cjs/revo-grid.cjs.js +31 -0
  31. package/dist/cjs/revo-grid.cjs.js.map +1 -0
  32. package/dist/cjs/revo-grid.entry.cjs.js.map +1 -0
  33. 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 -0
  34. package/dist/cjs/revogr-attribution_7.cjs.entry.js +1463 -0
  35. package/dist/cjs/revogr-attribution_7.cjs.entry.js.map +1 -0
  36. package/dist/cjs/revogr-clipboard.revogr-edit.revogr-order-editor.entry.cjs.js.map +1 -0
  37. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +456 -0
  38. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -0
  39. package/dist/cjs/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.cjs.js.map +1 -0
  40. package/dist/cjs/revogr-data_4.cjs.entry.js +948 -0
  41. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -0
  42. package/dist/cjs/revogr-filter-panel.cjs.entry.js +382 -0
  43. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -0
  44. package/dist/cjs/revogr-filter-panel.entry.cjs.js.map +1 -0
  45. package/dist/cjs/row-header-utils-DL640c7x.js +420 -0
  46. package/dist/cjs/row-header-utils-DL640c7x.js.map +1 -0
  47. package/dist/cjs/text-editor-DWChyeVV.js +81 -0
  48. package/dist/cjs/text-editor-DWChyeVV.js.map +1 -0
  49. package/dist/cjs/throttle-Bb1Bbfd1.js +278 -0
  50. package/dist/cjs/throttle-Bb1Bbfd1.js.map +1 -0
  51. package/dist/cjs/viewport.helpers-CI6uB8tu.js +59 -0
  52. package/dist/cjs/viewport.helpers-CI6uB8tu.js.map +1 -0
  53. package/dist/collection/collection-manifest.json +28 -0
  54. package/dist/collection/components/attribution/revogr-attribution.js +20 -0
  55. package/dist/collection/components/attribution/revogr-attribution.js.map +1 -0
  56. package/dist/collection/components/clipboard/revogr-clipboard.js +396 -0
  57. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -0
  58. package/dist/collection/components/data/cell-renderer.js +44 -0
  59. package/dist/collection/components/data/cell-renderer.js.map +1 -0
  60. package/dist/collection/components/data/column.service.js +293 -0
  61. package/dist/collection/components/data/column.service.js.map +1 -0
  62. package/dist/collection/components/data/revogr-data-style.css +75 -0
  63. package/dist/collection/components/data/revogr-data.js +697 -0
  64. package/dist/collection/components/data/revogr-data.js.map +1 -0
  65. package/dist/collection/components/data/row-highlight.plugin.js +51 -0
  66. package/dist/collection/components/data/row-highlight.plugin.js.map +1 -0
  67. package/dist/collection/components/data/row-renderer.js +16 -0
  68. package/dist/collection/components/data/row-renderer.js.map +1 -0
  69. package/dist/collection/components/editors/edit.utils.js +13 -0
  70. package/dist/collection/components/editors/edit.utils.js.map +1 -0
  71. package/dist/collection/components/editors/revogr-edit-style.css +16 -0
  72. package/dist/collection/components/editors/revogr-edit.js +346 -0
  73. package/dist/collection/components/editors/revogr-edit.js.map +1 -0
  74. package/dist/collection/components/editors/text-editor.js +74 -0
  75. package/dist/collection/components/editors/text-editor.js.map +1 -0
  76. package/dist/collection/components/extra/revogr-extra.js +125 -0
  77. package/dist/collection/components/extra/revogr-extra.js.map +1 -0
  78. package/dist/collection/components/header/header-cell-renderer.js +34 -0
  79. package/dist/collection/components/header/header-cell-renderer.js.map +1 -0
  80. package/dist/collection/components/header/header-group-renderer.js +25 -0
  81. package/dist/collection/components/header/header-group-renderer.js.map +1 -0
  82. package/dist/collection/components/header/header-renderer.js +61 -0
  83. package/dist/collection/components/header/header-renderer.js.map +1 -0
  84. package/dist/collection/components/header/resizable.directive.js +237 -0
  85. package/dist/collection/components/header/resizable.directive.js.map +1 -0
  86. package/dist/collection/components/header/resizable.element.js +38 -0
  87. package/dist/collection/components/header/resizable.element.js.map +1 -0
  88. package/dist/collection/components/header/revogr-header-style.css +144 -0
  89. package/dist/collection/components/header/revogr-header.js +573 -0
  90. package/dist/collection/components/header/revogr-header.js.map +1 -0
  91. package/dist/collection/components/order/order-renderer.js +50 -0
  92. package/dist/collection/components/order/order-renderer.js.map +1 -0
  93. package/dist/collection/components/order/order-row.service.js +72 -0
  94. package/dist/collection/components/order/order-row.service.js.map +1 -0
  95. package/dist/collection/components/order/revogr-order-editor.js +461 -0
  96. package/dist/collection/components/order/revogr-order-editor.js.map +1 -0
  97. package/dist/collection/components/overlay/autofill.service.js +224 -0
  98. package/dist/collection/components/overlay/autofill.service.js.map +1 -0
  99. package/dist/collection/components/overlay/keyboard.service.js +158 -0
  100. package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
  101. package/dist/collection/components/overlay/revogr-overlay-selection.js +1515 -0
  102. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -0
  103. package/dist/collection/components/overlay/revogr-overlay-style.css +95 -0
  104. package/dist/collection/components/overlay/selection.utils.js +136 -0
  105. package/dist/collection/components/overlay/selection.utils.js.map +1 -0
  106. package/dist/collection/components/revoGrid/grid.helpers.js +33 -0
  107. package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -0
  108. package/dist/collection/components/revoGrid/plugin.service.js +81 -0
  109. package/dist/collection/components/revoGrid/plugin.service.js.map +1 -0
  110. package/dist/collection/components/revoGrid/revo-grid-style.css +567 -0
  111. package/dist/collection/components/revoGrid/revo-grid.js +3671 -0
  112. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -0
  113. package/dist/collection/components/revoGrid/viewport.helpers.js +49 -0
  114. package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -0
  115. package/dist/collection/components/revoGrid/viewport.resize.service.js +55 -0
  116. package/dist/collection/components/revoGrid/viewport.resize.service.js.map +1 -0
  117. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +90 -0
  118. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -0
  119. package/dist/collection/components/revoGrid/viewport.service.js +237 -0
  120. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -0
  121. package/dist/collection/components/rowHeaders/revogr-row-headers.js +291 -0
  122. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -0
  123. package/dist/collection/components/rowHeaders/row-header-render.js +5 -0
  124. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -0
  125. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +69 -0
  126. package/dist/collection/components/scroll/revogr-viewport-scroll.js +601 -0
  127. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -0
  128. package/dist/collection/components/scrollable/autohide-scroll.plugin.js +44 -0
  129. package/dist/collection/components/scrollable/autohide-scroll.plugin.js.map +1 -0
  130. package/dist/collection/components/scrollable/revogr-scroll-style.css +34 -0
  131. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +295 -0
  132. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -0
  133. package/dist/collection/components/selectionFocus/revogr-focus-style.css +7 -0
  134. package/dist/collection/components/selectionFocus/revogr-focus.js +400 -0
  135. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -0
  136. package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +28 -0
  137. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +171 -0
  138. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -0
  139. package/dist/collection/components/vnode/vnode-converter.js +84 -0
  140. package/dist/collection/components/vnode/vnode-converter.js.map +1 -0
  141. package/dist/collection/components/vnode/vnode.utils.js +18 -0
  142. package/dist/collection/components/vnode/vnode.utils.js.map +1 -0
  143. package/dist/collection/global/global.js +19 -0
  144. package/dist/collection/global/global.js.map +1 -0
  145. package/dist/collection/index.js +13 -0
  146. package/dist/collection/index.js.map +1 -0
  147. package/dist/collection/plugins/add-rows-on-paste.plugin.js +40 -0
  148. package/dist/collection/plugins/add-rows-on-paste.plugin.js.map +1 -0
  149. package/dist/collection/plugins/base.plugin.js +90 -0
  150. package/dist/collection/plugins/base.plugin.js.map +1 -0
  151. package/dist/collection/plugins/column.auto-size.plugin.js +225 -0
  152. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -0
  153. package/dist/collection/plugins/column.stretch.plugin.js +96 -0
  154. package/dist/collection/plugins/column.stretch.plugin.js.map +1 -0
  155. package/dist/collection/plugins/dispatcher.js +40 -0
  156. package/dist/collection/plugins/dispatcher.js.map +1 -0
  157. package/dist/collection/plugins/export/csv.js +72 -0
  158. package/dist/collection/plugins/export/csv.js.map +1 -0
  159. package/dist/collection/plugins/export/export.plugin.js +157 -0
  160. package/dist/collection/plugins/export/export.plugin.js.map +1 -0
  161. package/dist/collection/plugins/export/types.js +2 -0
  162. package/dist/collection/plugins/export/types.js.map +1 -0
  163. package/dist/collection/plugins/filter/conditions/equal.js +21 -0
  164. package/dist/collection/plugins/filter/conditions/equal.js.map +1 -0
  165. package/dist/collection/plugins/filter/conditions/number/greaterThan.js +14 -0
  166. package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +1 -0
  167. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +11 -0
  168. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +1 -0
  169. package/dist/collection/plugins/filter/conditions/number/lessThan.js +16 -0
  170. package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +1 -0
  171. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +11 -0
  172. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +1 -0
  173. package/dist/collection/plugins/filter/conditions/set.js +7 -0
  174. package/dist/collection/plugins/filter/conditions/set.js.map +1 -0
  175. package/dist/collection/plugins/filter/conditions/string/beginswith.js +21 -0
  176. package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +1 -0
  177. package/dist/collection/plugins/filter/conditions/string/contains.js +25 -0
  178. package/dist/collection/plugins/filter/conditions/string/contains.js.map +1 -0
  179. package/dist/collection/plugins/filter/filter.button.js +28 -0
  180. package/dist/collection/plugins/filter/filter.button.js.map +1 -0
  181. package/dist/collection/plugins/filter/filter.indexed.js +49 -0
  182. package/dist/collection/plugins/filter/filter.indexed.js.map +1 -0
  183. package/dist/collection/plugins/filter/filter.panel.js +610 -0
  184. package/dist/collection/plugins/filter/filter.panel.js.map +1 -0
  185. package/dist/collection/plugins/filter/filter.plugin.js +388 -0
  186. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -0
  187. package/dist/collection/plugins/filter/filter.style.css +165 -0
  188. package/dist/collection/plugins/filter/filter.types.js +9 -0
  189. package/dist/collection/plugins/filter/filter.types.js.map +1 -0
  190. package/dist/collection/plugins/groupingRow/grouping.const.js +16 -0
  191. package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
  192. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +79 -0
  193. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
  194. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +245 -0
  195. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
  196. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +38 -0
  197. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -0
  198. package/dist/collection/plugins/groupingRow/grouping.row.types.js +2 -0
  199. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -0
  200. package/dist/collection/plugins/groupingRow/grouping.service.js +178 -0
  201. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -0
  202. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +61 -0
  203. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -0
  204. package/dist/collection/plugins/index.js +15 -0
  205. package/dist/collection/plugins/index.js.map +1 -0
  206. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +175 -0
  207. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -0
  208. package/dist/collection/plugins/moveColumn/order-column.handler.js +71 -0
  209. package/dist/collection/plugins/moveColumn/order-column.handler.js.map +1 -0
  210. package/dist/collection/plugins/rtl/rtl.plugin.js +110 -0
  211. package/dist/collection/plugins/rtl/rtl.plugin.js.map +1 -0
  212. package/dist/collection/plugins/sorting/sorting.func.js +82 -0
  213. package/dist/collection/plugins/sorting/sorting.func.js.map +1 -0
  214. package/dist/collection/plugins/sorting/sorting.plugin.js +224 -0
  215. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -0
  216. package/dist/collection/plugins/sorting/sorting.sign.js +9 -0
  217. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -0
  218. package/dist/collection/plugins/sorting/sorting.types.js +2 -0
  219. package/dist/collection/plugins/sorting/sorting.types.js.map +1 -0
  220. package/dist/collection/plugins/wcag/index.js +84 -0
  221. package/dist/collection/plugins/wcag/index.js.map +1 -0
  222. package/dist/collection/serve/controller.js +344 -0
  223. package/dist/collection/serve/data.js +201 -0
  224. package/dist/collection/services/cell.helpers.js +12 -0
  225. package/dist/collection/services/cell.helpers.js.map +1 -0
  226. package/dist/collection/services/column.data.provider.js +119 -0
  227. package/dist/collection/services/column.data.provider.js.map +1 -0
  228. package/dist/collection/services/data.provider.js +89 -0
  229. package/dist/collection/services/data.provider.js.map +1 -0
  230. package/dist/collection/services/dimension.provider.js +176 -0
  231. package/dist/collection/services/dimension.provider.js.map +1 -0
  232. package/dist/collection/services/local.scroll.service.js +124 -0
  233. package/dist/collection/services/local.scroll.service.js.map +1 -0
  234. package/dist/collection/services/local.scroll.timer.js +81 -0
  235. package/dist/collection/services/local.scroll.timer.js.map +1 -0
  236. package/dist/collection/services/selection.store.connector.js +307 -0
  237. package/dist/collection/services/selection.store.connector.js.map +1 -0
  238. package/dist/collection/services/viewport.provider.js +17 -0
  239. package/dist/collection/services/viewport.provider.js.map +1 -0
  240. package/dist/collection/store/dataSource/data.proxy.js +45 -0
  241. package/dist/collection/store/dataSource/data.proxy.js.map +1 -0
  242. package/dist/collection/store/dataSource/data.store.js +144 -0
  243. package/dist/collection/store/dataSource/data.store.js.map +1 -0
  244. package/dist/collection/store/dataSource/index.js +7 -0
  245. package/dist/collection/store/dataSource/index.js.map +1 -0
  246. package/dist/collection/store/dataSource/trimmed.plugin.js +34 -0
  247. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -0
  248. package/dist/collection/store/dimension/dimension.helpers.js +101 -0
  249. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -0
  250. package/dist/collection/store/dimension/dimension.recalculate.plugin.js +35 -0
  251. package/dist/collection/store/dimension/dimension.recalculate.plugin.js.map +1 -0
  252. package/dist/collection/store/dimension/dimension.store.js +109 -0
  253. package/dist/collection/store/dimension/dimension.store.js.map +1 -0
  254. package/dist/collection/store/dimension/dimension.trim.plugin.js +61 -0
  255. package/dist/collection/store/dimension/dimension.trim.plugin.js.map +1 -0
  256. package/dist/collection/store/dimension/index.js +6 -0
  257. package/dist/collection/store/dimension/index.js.map +1 -0
  258. package/dist/collection/store/index.js +17 -0
  259. package/dist/collection/store/index.js.map +1 -0
  260. package/dist/collection/store/selection/index.js +6 -0
  261. package/dist/collection/store/selection/index.js.map +1 -0
  262. package/dist/collection/store/selection/selection.helpers.js +53 -0
  263. package/dist/collection/store/selection/selection.helpers.js.map +1 -0
  264. package/dist/collection/store/selection/selection.store.js +85 -0
  265. package/dist/collection/store/selection/selection.store.js.map +1 -0
  266. package/dist/collection/store/vp/index.js +6 -0
  267. package/dist/collection/store/vp/index.js.map +1 -0
  268. package/dist/collection/store/vp/viewport.helpers.js +251 -0
  269. package/dist/collection/store/vp/viewport.helpers.js.map +1 -0
  270. package/dist/collection/store/vp/viewport.store.js +151 -0
  271. package/dist/collection/store/vp/viewport.store.js.map +1 -0
  272. package/dist/collection/themeManager/theme.compact.js +9 -0
  273. package/dist/collection/themeManager/theme.compact.js.map +1 -0
  274. package/dist/collection/themeManager/theme.default.js +9 -0
  275. package/dist/collection/themeManager/theme.default.js.map +1 -0
  276. package/dist/collection/themeManager/theme.material.js +9 -0
  277. package/dist/collection/themeManager/theme.material.js.map +1 -0
  278. package/dist/collection/themeManager/theme.service.js +53 -0
  279. package/dist/collection/themeManager/theme.service.js.map +1 -0
  280. package/dist/collection/types/dimension.js +2 -0
  281. package/dist/collection/types/dimension.js.map +1 -0
  282. package/dist/collection/types/events.js +118 -0
  283. package/dist/collection/types/events.js.map +1 -0
  284. package/dist/collection/types/index.js +12 -0
  285. package/dist/collection/types/index.js.map +1 -0
  286. package/dist/collection/types/interfaces.js +2 -0
  287. package/dist/collection/types/interfaces.js.map +1 -0
  288. package/dist/collection/types/plugin.js +2 -0
  289. package/dist/collection/types/plugin.js.map +1 -0
  290. package/dist/collection/types/plugin.types.js +2 -0
  291. package/dist/collection/types/plugin.types.js.map +1 -0
  292. package/dist/collection/types/selection.js +2 -0
  293. package/dist/collection/types/selection.js.map +1 -0
  294. package/dist/collection/types/theme.js +2 -0
  295. package/dist/collection/types/theme.js.map +1 -0
  296. package/dist/collection/types/viewport.interfaces.js +2 -0
  297. package/dist/collection/types/viewport.interfaces.js.map +1 -0
  298. package/dist/collection/utils/browser.js +7 -0
  299. package/dist/collection/utils/browser.js.map +1 -0
  300. package/dist/collection/utils/closest.polifill.js +22 -0
  301. package/dist/collection/utils/closest.polifill.js.map +1 -0
  302. package/dist/collection/utils/column.utils.js +153 -0
  303. package/dist/collection/utils/column.utils.js.map +1 -0
  304. package/dist/collection/utils/consts.js +26 -0
  305. package/dist/collection/utils/consts.js.map +1 -0
  306. package/dist/collection/utils/events.js +39 -0
  307. package/dist/collection/utils/events.js.map +1 -0
  308. package/dist/collection/utils/header.utils.js +24 -0
  309. package/dist/collection/utils/header.utils.js.map +1 -0
  310. package/dist/collection/utils/index.js +140 -0
  311. package/dist/collection/utils/index.js.map +1 -0
  312. package/dist/collection/utils/key.codes.js +80 -0
  313. package/dist/collection/utils/key.codes.js.map +1 -0
  314. package/dist/collection/utils/key.utils.js +90 -0
  315. package/dist/collection/utils/key.utils.js.map +1 -0
  316. package/dist/collection/utils/mobile.js +7 -0
  317. package/dist/collection/utils/mobile.js.map +1 -0
  318. package/dist/collection/utils/platform.js +9 -0
  319. package/dist/collection/utils/platform.js.map +1 -0
  320. package/dist/collection/utils/row-header-utils.js +9 -0
  321. package/dist/collection/utils/row-header-utils.js.map +1 -0
  322. package/dist/collection/utils/store.types.js +2 -0
  323. package/dist/collection/utils/store.types.js.map +1 -0
  324. package/dist/collection/utils/store.utils.js +15 -0
  325. package/dist/collection/utils/store.utils.js.map +1 -0
  326. package/dist/esm/app-globals-FBz64o-g.js +14 -0
  327. package/dist/esm/app-globals-FBz64o-g.js.map +1 -0
  328. package/dist/esm/cell-renderer-Ca_PCGjJ.js +98 -0
  329. package/dist/esm/cell-renderer-Ca_PCGjJ.js.map +1 -0
  330. package/dist/esm/column.drag.plugin-BtuUyB-2.js +2528 -0
  331. package/dist/esm/column.drag.plugin-BtuUyB-2.js.map +1 -0
  332. package/dist/esm/column.service-CTqFIQUy.js +1343 -0
  333. package/dist/esm/column.service-CTqFIQUy.js.map +1 -0
  334. package/dist/esm/data.store-B-lvmoFH.js +3553 -0
  335. package/dist/esm/data.store-B-lvmoFH.js.map +1 -0
  336. package/dist/esm/debounce-DTUQ1fY7.js +488 -0
  337. package/dist/esm/debounce-DTUQ1fY7.js.map +1 -0
  338. package/dist/esm/edit.utils-CyCANCLB.js +103 -0
  339. package/dist/esm/edit.utils-CyCANCLB.js.map +1 -0
  340. package/dist/esm/events-CKtYJJSv.js +43 -0
  341. package/dist/esm/events-CKtYJJSv.js.map +1 -0
  342. package/dist/esm/filter.button-CjABZQgg.js +39 -0
  343. package/dist/esm/filter.button-CjABZQgg.js.map +1 -0
  344. package/dist/esm/header-cell-renderer-DnjpJuXq.js +351 -0
  345. package/dist/esm/header-cell-renderer-DnjpJuXq.js.map +1 -0
  346. package/dist/esm/index-BAoInZ4V.js +2519 -0
  347. package/dist/esm/index-BAoInZ4V.js.map +1 -0
  348. package/dist/esm/index.js +181 -0
  349. package/dist/esm/index.js.map +1 -0
  350. package/dist/esm/loader.js +17 -0
  351. package/dist/esm/loader.js.map +1 -0
  352. package/dist/esm/revo-grid.entry.js +2185 -0
  353. package/dist/esm/revo-grid.entry.js.map +1 -0
  354. package/dist/esm/revo-grid.js +27 -0
  355. package/dist/esm/revo-grid.js.map +1 -0
  356. 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 -0
  357. package/dist/esm/revogr-attribution_7.entry.js +1455 -0
  358. package/dist/esm/revogr-attribution_7.entry.js.map +1 -0
  359. package/dist/esm/revogr-clipboard.revogr-edit.revogr-order-editor.entry.js.map +1 -0
  360. package/dist/esm/revogr-clipboard_3.entry.js +452 -0
  361. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -0
  362. package/dist/esm/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.js.map +1 -0
  363. package/dist/esm/revogr-data_4.entry.js +943 -0
  364. package/dist/esm/revogr-data_4.entry.js.map +1 -0
  365. package/dist/esm/revogr-filter-panel.entry.js +380 -0
  366. package/dist/esm/revogr-filter-panel.entry.js.map +1 -0
  367. package/dist/esm/row-header-utils-vnoLGj5A.js +407 -0
  368. package/dist/esm/row-header-utils-vnoLGj5A.js.map +1 -0
  369. package/dist/esm/text-editor-Cp7lwBZi.js +79 -0
  370. package/dist/esm/text-editor-Cp7lwBZi.js.map +1 -0
  371. package/dist/esm/throttle-DiUrHjcY.js +273 -0
  372. package/dist/esm/throttle-DiUrHjcY.js.map +1 -0
  373. package/dist/esm/viewport.helpers-Ch4AQMMg.js +53 -0
  374. package/dist/esm/viewport.helpers-Ch4AQMMg.js.map +1 -0
  375. package/dist/index.cjs.js +1 -0
  376. package/dist/index.d.ts +1 -0
  377. package/dist/index.js +1 -0
  378. package/dist/revo-grid/app-globals-FBz64o-g.js +14 -0
  379. package/dist/revo-grid/app-globals-FBz64o-g.js.map +1 -0
  380. package/dist/revo-grid/cell-renderer-Ca_PCGjJ.js +98 -0
  381. package/dist/revo-grid/cell-renderer-Ca_PCGjJ.js.map +1 -0
  382. package/dist/revo-grid/column.drag.plugin-BtuUyB-2.js +2528 -0
  383. package/dist/revo-grid/column.drag.plugin-BtuUyB-2.js.map +1 -0
  384. package/dist/revo-grid/column.service-CTqFIQUy.js +1343 -0
  385. package/dist/revo-grid/column.service-CTqFIQUy.js.map +1 -0
  386. package/dist/revo-grid/data.store-B-lvmoFH.js +3553 -0
  387. package/dist/revo-grid/data.store-B-lvmoFH.js.map +1 -0
  388. package/dist/revo-grid/debounce-DTUQ1fY7.js +488 -0
  389. package/dist/revo-grid/debounce-DTUQ1fY7.js.map +1 -0
  390. package/dist/revo-grid/edit.utils-CyCANCLB.js +103 -0
  391. package/dist/revo-grid/edit.utils-CyCANCLB.js.map +1 -0
  392. package/dist/revo-grid/events-CKtYJJSv.js +43 -0
  393. package/dist/revo-grid/events-CKtYJJSv.js.map +1 -0
  394. package/dist/revo-grid/filter.button-CjABZQgg.js +39 -0
  395. package/dist/revo-grid/filter.button-CjABZQgg.js.map +1 -0
  396. package/dist/revo-grid/header-cell-renderer-DnjpJuXq.js +351 -0
  397. package/dist/revo-grid/header-cell-renderer-DnjpJuXq.js.map +1 -0
  398. package/dist/revo-grid/index-BAoInZ4V.js +2490 -0
  399. package/dist/revo-grid/index-BAoInZ4V.js.map +1 -0
  400. package/dist/revo-grid/index.esm.js +181 -0
  401. package/dist/revo-grid/index.esm.js.map +1 -0
  402. package/dist/revo-grid/loader.esm.js.map +1 -0
  403. package/dist/revo-grid/revo-grid.entry.esm.js.map +1 -0
  404. package/dist/revo-grid/revo-grid.entry.js +2185 -0
  405. package/dist/revo-grid/revo-grid.entry.js.map +1 -0
  406. package/dist/revo-grid/revo-grid.esm.js +27 -0
  407. package/dist/revo-grid/revo-grid.esm.js.map +1 -0
  408. 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 -0
  409. package/dist/revo-grid/revogr-attribution_7.entry.js +1455 -0
  410. package/dist/revo-grid/revogr-attribution_7.entry.js.map +1 -0
  411. package/dist/revo-grid/revogr-clipboard.revogr-edit.revogr-order-editor.entry.esm.js.map +1 -0
  412. package/dist/revo-grid/revogr-clipboard_3.entry.js +452 -0
  413. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -0
  414. package/dist/revo-grid/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.esm.js.map +1 -0
  415. package/dist/revo-grid/revogr-data_4.entry.js +943 -0
  416. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -0
  417. package/dist/revo-grid/revogr-filter-panel.entry.esm.js.map +1 -0
  418. package/dist/revo-grid/revogr-filter-panel.entry.js +380 -0
  419. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -0
  420. package/dist/revo-grid/row-header-utils-vnoLGj5A.js +407 -0
  421. package/dist/revo-grid/row-header-utils-vnoLGj5A.js.map +1 -0
  422. package/dist/revo-grid/text-editor-Cp7lwBZi.js +79 -0
  423. package/dist/revo-grid/text-editor-Cp7lwBZi.js.map +1 -0
  424. package/dist/revo-grid/throttle-DiUrHjcY.js +273 -0
  425. package/dist/revo-grid/throttle-DiUrHjcY.js.map +1 -0
  426. package/dist/revo-grid/viewport.helpers-Ch4AQMMg.js +53 -0
  427. package/dist/revo-grid/viewport.helpers-Ch4AQMMg.js.map +1 -0
  428. package/dist/types/components/attribution/revogr-attribution.d.ts +12 -0
  429. package/dist/types/components/clipboard/revogr-clipboard.d.ts +89 -0
  430. package/dist/types/components/data/cell-renderer.d.ts +12 -0
  431. package/dist/types/components/data/column.service.d.ts +61 -0
  432. package/dist/types/components/data/revogr-data.d.ts +107 -0
  433. package/dist/types/components/data/row-highlight.plugin.d.ts +10 -0
  434. package/dist/types/components/data/row-renderer.d.ts +12 -0
  435. package/dist/types/components/editors/edit.utils.d.ts +3 -0
  436. package/dist/types/components/editors/revogr-edit.d.ts +63 -0
  437. package/dist/types/components/editors/text-editor.d.ts +43 -0
  438. package/dist/types/components/extra/revogr-extra.d.ts +38 -0
  439. package/dist/types/components/header/header-cell-renderer.d.ts +9 -0
  440. package/dist/types/components/header/header-group-renderer.d.ts +15 -0
  441. package/dist/types/components/header/header-renderer.d.ts +16 -0
  442. package/dist/types/components/header/resizable.directive.d.ts +55 -0
  443. package/dist/types/components/header/resizable.element.d.ts +5 -0
  444. package/dist/types/components/header/revogr-header.d.ts +90 -0
  445. package/dist/types/components/order/order-renderer.d.ts +29 -0
  446. package/dist/types/components/order/order-row.service.d.ts +27 -0
  447. package/dist/types/components/order/revogr-order-editor.d.ts +56 -0
  448. package/dist/types/components/overlay/autofill.service.d.ts +80 -0
  449. package/dist/types/components/overlay/keyboard.service.d.ts +28 -0
  450. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +278 -0
  451. package/dist/types/components/overlay/selection.utils.d.ts +47 -0
  452. package/dist/types/components/revoGrid/grid.helpers.d.ts +17 -0
  453. package/dist/types/components/revoGrid/plugin.service.d.ts +37 -0
  454. package/dist/types/components/revoGrid/revo-grid.d.ts +686 -0
  455. package/dist/types/components/revoGrid/viewport.helpers.d.ts +39 -0
  456. package/dist/types/components/revoGrid/viewport.resize.service.d.ts +17 -0
  457. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +20 -0
  458. package/dist/types/components/revoGrid/viewport.service.d.ts +59 -0
  459. package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +51 -0
  460. package/dist/types/components/rowHeaders/row-header-render.d.ts +9 -0
  461. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +117 -0
  462. package/dist/types/components/scrollable/autohide-scroll.plugin.d.ts +22 -0
  463. package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +43 -0
  464. package/dist/types/components/selectionFocus/revogr-focus.d.ts +58 -0
  465. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +28 -0
  466. package/dist/types/components/vnode/vnode-converter.d.ts +19 -0
  467. package/dist/types/components/vnode/vnode.utils.d.ts +9 -0
  468. package/dist/types/components.d.ts +2583 -0
  469. package/dist/types/global/global.d.ts +1 -0
  470. package/dist/types/index.d.ts +9 -0
  471. package/dist/types/plugins/add-rows-on-paste.plugin.d.ts +14 -0
  472. package/dist/types/plugins/base.plugin.d.ts +51 -0
  473. package/dist/types/plugins/column.auto-size.plugin.d.ts +55 -0
  474. package/dist/types/plugins/column.stretch.plugin.d.ts +20 -0
  475. package/dist/types/plugins/dispatcher.d.ts +20 -0
  476. package/dist/types/plugins/export/csv.d.ts +9 -0
  477. package/dist/types/plugins/export/export.plugin.d.ts +24 -0
  478. package/dist/types/plugins/export/types.d.ts +23 -0
  479. package/dist/types/plugins/filter/conditions/equal.d.ts +4 -0
  480. package/dist/types/plugins/filter/conditions/number/greaterThan.d.ts +3 -0
  481. package/dist/types/plugins/filter/conditions/number/greaterThanOrEqual.d.ts +3 -0
  482. package/dist/types/plugins/filter/conditions/number/lessThan.d.ts +3 -0
  483. package/dist/types/plugins/filter/conditions/number/lessThanOrEqual.d.ts +3 -0
  484. package/dist/types/plugins/filter/conditions/set.d.ts +4 -0
  485. package/dist/types/plugins/filter/conditions/string/beginswith.d.ts +3 -0
  486. package/dist/types/plugins/filter/conditions/string/contains.d.ts +4 -0
  487. package/dist/types/plugins/filter/filter.button.d.ts +14 -0
  488. package/dist/types/plugins/filter/filter.indexed.d.ts +20 -0
  489. package/dist/types/plugins/filter/filter.panel.d.ts +53 -0
  490. package/dist/types/plugins/filter/filter.plugin.d.ts +73 -0
  491. package/dist/types/plugins/filter/filter.types.d.ts +129 -0
  492. package/dist/types/plugins/groupingRow/grouping.const.d.ts +12 -0
  493. package/dist/types/plugins/groupingRow/grouping.row.expand.service.d.ts +15 -0
  494. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +39 -0
  495. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +6 -0
  496. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +103 -0
  497. package/dist/types/plugins/groupingRow/grouping.service.d.ts +36 -0
  498. package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +10 -0
  499. package/dist/types/plugins/index.d.ts +11 -0
  500. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +42 -0
  501. package/dist/types/plugins/moveColumn/order-column.handler.d.ts +16 -0
  502. package/dist/types/plugins/rtl/rtl.plugin.d.ts +37 -0
  503. package/dist/types/plugins/sorting/sorting.func.d.ts +9 -0
  504. package/dist/types/plugins/sorting/sorting.plugin.d.ts +48 -0
  505. package/dist/types/plugins/sorting/sorting.sign.d.ts +6 -0
  506. package/dist/types/plugins/sorting/sorting.types.d.ts +14 -0
  507. package/dist/types/plugins/wcag/index.d.ts +26 -0
  508. package/dist/types/services/cell.helpers.d.ts +2 -0
  509. package/dist/types/services/column.data.provider.d.ts +27 -0
  510. package/dist/types/services/data.provider.d.ts +36 -0
  511. package/dist/types/services/dimension.provider.d.ts +66 -0
  512. package/dist/types/services/local.scroll.service.d.ts +36 -0
  513. package/dist/types/services/local.scroll.timer.d.ts +32 -0
  514. package/dist/types/services/selection.store.connector.d.ts +79 -0
  515. package/dist/types/services/viewport.provider.d.ts +7 -0
  516. package/dist/types/stencil-public-runtime.d.ts +1709 -0
  517. package/dist/types/store/dataSource/data.proxy.d.ts +14 -0
  518. package/dist/types/store/dataSource/data.store.d.ts +74 -0
  519. package/dist/types/store/dataSource/index.d.ts +3 -0
  520. package/dist/types/store/dataSource/trimmed.plugin.d.ts +12 -0
  521. package/dist/types/store/dimension/dimension.helpers.d.ts +24 -0
  522. package/dist/types/store/dimension/dimension.recalculate.plugin.d.ts +9 -0
  523. package/dist/types/store/dimension/dimension.store.d.ts +21 -0
  524. package/dist/types/store/dimension/dimension.trim.plugin.d.ts +13 -0
  525. package/dist/types/store/dimension/index.d.ts +2 -0
  526. package/dist/types/store/index.d.ts +8 -0
  527. package/dist/types/store/selection/index.d.ts +2 -0
  528. package/dist/types/store/selection/selection.helpers.d.ts +6 -0
  529. package/dist/types/store/selection/selection.store.d.ts +22 -0
  530. package/dist/types/store/vp/index.d.ts +7 -0
  531. package/dist/types/store/vp/viewport.helpers.d.ts +54 -0
  532. package/dist/types/store/vp/viewport.store.d.ts +26 -0
  533. package/dist/types/themeManager/theme.compact.d.ts +4 -0
  534. package/dist/types/themeManager/theme.default.d.ts +4 -0
  535. package/dist/types/themeManager/theme.material.d.ts +4 -0
  536. package/dist/types/themeManager/theme.service.d.ts +13 -0
  537. package/dist/types/types/dimension.d.ts +8 -0
  538. package/dist/types/types/events.d.ts +2 -0
  539. package/dist/types/types/index.d.ts +8 -0
  540. package/dist/types/types/interfaces.d.ts +768 -0
  541. package/dist/types/types/plugin.d.ts +9 -0
  542. package/dist/types/types/plugin.types.d.ts +48 -0
  543. package/dist/types/types/selection.d.ts +178 -0
  544. package/dist/types/types/theme.d.ts +7 -0
  545. package/dist/types/types/viewport.interfaces.d.ts +45 -0
  546. package/dist/types/utils/browser.d.ts +1 -0
  547. package/dist/types/utils/closest.polifill.d.ts +0 -0
  548. package/dist/types/utils/column.utils.d.ts +52 -0
  549. package/dist/types/utils/consts.d.ts +22 -0
  550. package/dist/types/utils/events.d.ts +5 -0
  551. package/dist/types/utils/header.utils.d.ts +2 -0
  552. package/dist/types/utils/index.d.ts +32 -0
  553. package/dist/types/utils/key.codes.d.ts +73 -0
  554. package/dist/types/utils/key.utils.d.ts +13 -0
  555. package/dist/types/utils/mobile.d.ts +1 -0
  556. package/dist/types/utils/platform.d.ts +4 -0
  557. package/dist/types/utils/row-header-utils.d.ts +2 -0
  558. package/dist/types/utils/store.types.d.ts +97 -0
  559. package/dist/types/utils/store.utils.d.ts +10 -0
  560. package/hydrate/index.d.ts +273 -0
  561. package/hydrate/index.js +33890 -0
  562. package/hydrate/index.mjs +33882 -0
  563. package/hydrate/package.json +12 -0
  564. package/loader/cdn.js +4 -0
  565. package/loader/index.cjs.js +4 -0
  566. package/loader/index.d.ts +24 -0
  567. package/loader/index.es2017.js +4 -0
  568. package/loader/index.js +5 -0
  569. package/package.json +101 -0
  570. package/react/dist/index.d.ts +6191 -0
  571. package/react/dist/react-datagrid.js +260 -0
  572. package/react/dist/react-datagrid.umd.cjs +272 -0
  573. package/standalone/column.service.js +1345 -0
  574. package/standalone/column.service.js.map +1 -0
  575. package/standalone/consts.js +30 -0
  576. package/standalone/consts.js.map +1 -0
  577. package/standalone/data.store.js +3099 -0
  578. package/standalone/data.store.js.map +1 -0
  579. package/standalone/debounce.js +215 -0
  580. package/standalone/debounce.js.map +1 -0
  581. package/standalone/dimension.helpers.js +229 -0
  582. package/standalone/dimension.helpers.js.map +1 -0
  583. package/standalone/filter.button.js +39 -0
  584. package/standalone/filter.button.js.map +1 -0
  585. package/standalone/index.d.ts +68 -0
  586. package/standalone/index.js +217 -0
  587. package/standalone/index.js.map +1 -0
  588. package/standalone/index2.js +140 -0
  589. package/standalone/index2.js.map +1 -0
  590. package/standalone/local.scroll.timer.js +207 -0
  591. package/standalone/local.scroll.timer.js.map +1 -0
  592. package/standalone/platform.js +90 -0
  593. package/standalone/platform.js.map +1 -0
  594. package/standalone/revo-grid.d.ts +11 -0
  595. package/standalone/revo-grid.js +4884 -0
  596. package/standalone/revo-grid.js.map +1 -0
  597. package/standalone/revogr-attribution.d.ts +11 -0
  598. package/standalone/revogr-attribution.js +12 -0
  599. package/standalone/revogr-attribution.js.map +1 -0
  600. package/standalone/revogr-attribution2.js +32 -0
  601. package/standalone/revogr-attribution2.js.map +1 -0
  602. package/standalone/revogr-clipboard.d.ts +11 -0
  603. package/standalone/revogr-clipboard.js +12 -0
  604. package/standalone/revogr-clipboard.js.map +1 -0
  605. package/standalone/revogr-clipboard2.js +164 -0
  606. package/standalone/revogr-clipboard2.js.map +1 -0
  607. package/standalone/revogr-data.d.ts +11 -0
  608. package/standalone/revogr-data.js +12 -0
  609. package/standalone/revogr-data.js.map +1 -0
  610. package/standalone/revogr-data2.js +378 -0
  611. package/standalone/revogr-data2.js.map +1 -0
  612. package/standalone/revogr-edit.d.ts +11 -0
  613. package/standalone/revogr-edit.js +12 -0
  614. package/standalone/revogr-edit.js.map +1 -0
  615. package/standalone/revogr-edit2.js +334 -0
  616. package/standalone/revogr-edit2.js.map +1 -0
  617. package/standalone/revogr-extra.d.ts +11 -0
  618. package/standalone/revogr-extra.js +12 -0
  619. package/standalone/revogr-extra.js.map +1 -0
  620. package/standalone/revogr-extra2.js +73 -0
  621. package/standalone/revogr-extra2.js.map +1 -0
  622. package/standalone/revogr-filter-panel.d.ts +11 -0
  623. package/standalone/revogr-filter-panel.js +411 -0
  624. package/standalone/revogr-filter-panel.js.map +1 -0
  625. package/standalone/revogr-focus.d.ts +11 -0
  626. package/standalone/revogr-focus.js +12 -0
  627. package/standalone/revogr-focus.js.map +1 -0
  628. package/standalone/revogr-focus2.js +112 -0
  629. package/standalone/revogr-focus2.js.map +1 -0
  630. package/standalone/revogr-header.d.ts +11 -0
  631. package/standalone/revogr-header.js +12 -0
  632. package/standalone/revogr-header.js.map +1 -0
  633. package/standalone/revogr-header2.js +707 -0
  634. package/standalone/revogr-header2.js.map +1 -0
  635. package/standalone/revogr-order-editor.d.ts +11 -0
  636. package/standalone/revogr-order-editor.js +12 -0
  637. package/standalone/revogr-order-editor.js.map +1 -0
  638. package/standalone/revogr-order-editor2.js +201 -0
  639. package/standalone/revogr-order-editor2.js.map +1 -0
  640. package/standalone/revogr-overlay-selection.d.ts +11 -0
  641. package/standalone/revogr-overlay-selection.js +12 -0
  642. package/standalone/revogr-overlay-selection.js.map +1 -0
  643. package/standalone/revogr-overlay-selection2.js +972 -0
  644. package/standalone/revogr-overlay-selection2.js.map +1 -0
  645. package/standalone/revogr-row-headers.d.ts +11 -0
  646. package/standalone/revogr-row-headers.js +12 -0
  647. package/standalone/revogr-row-headers.js.map +1 -0
  648. package/standalone/revogr-row-headers2.js +520 -0
  649. package/standalone/revogr-row-headers2.js.map +1 -0
  650. package/standalone/revogr-scroll-virtual.d.ts +11 -0
  651. package/standalone/revogr-scroll-virtual.js +12 -0
  652. package/standalone/revogr-scroll-virtual.js.map +1 -0
  653. package/standalone/revogr-scroll-virtual2.js +184 -0
  654. package/standalone/revogr-scroll-virtual2.js.map +1 -0
  655. package/standalone/revogr-temp-range.d.ts +11 -0
  656. package/standalone/revogr-temp-range.js +12 -0
  657. package/standalone/revogr-temp-range.js.map +1 -0
  658. package/standalone/revogr-temp-range2.js +93 -0
  659. package/standalone/revogr-temp-range2.js.map +1 -0
  660. package/standalone/revogr-viewport-scroll.d.ts +11 -0
  661. package/standalone/revogr-viewport-scroll.js +12 -0
  662. package/standalone/revogr-viewport-scroll.js.map +1 -0
  663. package/standalone/revogr-viewport-scroll2.js +421 -0
  664. package/standalone/revogr-viewport-scroll2.js.map +1 -0
  665. package/standalone/selection.utils.js +179 -0
  666. package/standalone/selection.utils.js.map +1 -0
  667. package/standalone/throttle.js +75 -0
  668. package/standalone/throttle.js.map +1 -0
  669. package/standalone/toNumber.js +282 -0
  670. package/standalone/toNumber.js.map +1 -0
  671. package/standalone/vnode-converter.js +46 -0
  672. package/standalone/vnode-converter.js.map +1 -0
  673. package/standalone/vnode-html.d.ts +11 -0
  674. package/standalone/vnode-html.js +12 -0
  675. package/standalone/vnode-html.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"file":"revogr-filter-panel.entry.cjs.js","mappings":"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","names":["debounce","isFilterBtn","h","index","AndOrButton","TrashButton","Host"],"sources":["src/utils/closest.polifill.ts","src/plugins/filter/filter.style.scss?tag=revogr-filter-panel","src/plugins/filter/filter.panel.tsx"],"sourcesContent":["(function closest() {\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n ((Element.prototype as unknown) as { msMatchesSelector: (selectors: string) => boolean }).msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n }\r\n\r\n if (!Element.prototype.closest) {\r\n Element.prototype.closest = function (s: string) {\r\n let el: HTMLElement | Element | (Node & ParentNode) | null = this;\r\n\r\n do {\r\n if (Element.prototype.matches.call(el, s)) {\r\n return el;\r\n }\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n }\r\n})();\r\n","revogr-filter-panel {\r\n position: absolute;\r\n display: block;\r\n top: 0;\r\n left: 0;\r\n z-index: 100;\r\n max-height: calc(100% - 80px);\r\n min-width: 250px;\r\n overflow: auto;\r\n\r\n opacity: 1;\r\n transform: none;\r\n background-color: var(--revo-grid-filter-panel-bg, #fff);\r\n border: 1px solid var(--revo-grid-filter-panel-border, #cecece);\r\n transform-origin: 62px 0px;\r\n box-shadow: 0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));\r\n padding: 10px;\r\n border-radius: 8px;\r\n\r\n min-width: 220px;\r\n text-align: left;\r\n\r\n .filter-holder > div {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n label {\r\n font-size: 13px;\r\n display: block;\r\n padding: 8px 0;\r\n }\r\n\r\n select {\r\n width: 100%;\r\n }\r\n\r\n input[type='text'] {\r\n border: 0;\r\n min-height: 34px;\r\n margin: 5px 0;\r\n background: var(--revo-grid-filter-panel-input-bg, #f3f3f3);\r\n border-radius: 5px;\r\n padding: 0 10px;\r\n box-sizing: border-box;\r\n width: 100%;\r\n }\r\n\r\n button {\r\n margin-top: 10px;\r\n margin-right: 5px;\r\n }\r\n\r\n .filter-actions {\r\n text-align: right;\r\n margin-right: -5px;\r\n }\r\n}\r\n\r\n.rgHeaderCell {\r\n &:hover .rv-filter {\r\n transition:\r\n opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,\r\n transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n }\r\n &:hover .rv-filter,\r\n .rv-filter.active {\r\n opacity: 1;\r\n }\r\n\r\n .rv-filter {\r\n $btn-size: 24px;\r\n height: $btn-size;\r\n width: $btn-size;\r\n background: none;\r\n border: 0;\r\n opacity: 0;\r\n visibility: visible;\r\n cursor: pointer;\r\n border-radius: 4px;\r\n\r\n &.active {\r\n color: #10224a;\r\n }\r\n\r\n .filter-img {\r\n $img-size: 11px;\r\n color: gray;\r\n width: $img-size;\r\n }\r\n }\r\n}\r\n\r\n.select-css {\r\n $gradient: 'data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E';\r\n\r\n display: block;\r\n font-family: sans-serif;\r\n line-height: 1.3;\r\n padding: 0.6em 1.4em 0.5em 0.8em;\r\n width: 100%;\r\n max-width: 100%; /* useful when width is set to anything other than 100% */\r\n box-sizing: border-box;\r\n margin: 0;\r\n border: 1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);\r\n box-shadow: transparent;\r\n border-radius: 0.5em;\r\n appearance: none;\r\n background-color: var(--revo-grid-filter-panel-input-bg, #f3f3f3);\r\n background-image: url($gradient);\r\n background-repeat: no-repeat, repeat;\r\n /* arrow icon position (1em from the right, 50% vertical) , then gradient position*/\r\n background-position:\r\n right 0.7em top 50%,\r\n 0 0;\r\n /* icon size, then gradient */\r\n background-size:\r\n 0.65em auto,\r\n 100%;\r\n\r\n /* Hide arrow icon in IE browsers */\r\n &::-ms-expand {\r\n display: none;\r\n }\r\n /* Hover style */\r\n &:hover {\r\n border-color: var(--revo-grid-filter-panel-select-border, #d9d9d9);\r\n }\r\n /* Focus style */\r\n &:focus {\r\n border-color: var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);\r\n box-shadow: 0 0 1px 3px rgba(59, 153, 252, 0.7);\r\n box-shadow: 0 0 0 3px -moz-mac-focusring;\r\n outline: none;\r\n }\r\n\r\n /* Set options to normal weight */\r\n option {\r\n font-weight: normal;\r\n }\r\n\r\n /* Disabled styles */\r\n &:disabled,\r\n &[aria-disabled='true'] {\r\n color: gray;\r\n background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),\r\n linear-gradient(to bottom, #ffffff 0%, #ffffff 100%);\r\n }\r\n\r\n &:disabled:hover,\r\n &[aria-disabled='true'] {\r\n border-color: var(--revo-grid-filter-panel-select-border, #d9d9d9);\r\n }\r\n}\r\n\r\n.multi-filter-list {\r\n margin-top: 5px;\r\n margin-bottom: 5px;\r\n\r\n div {\r\n white-space: nowrap;\r\n }\r\n\r\n .multi-filter-list-action {\r\n display: flex;\r\n\r\n justify-content: space-between;\r\n align-items: center;\r\n }\r\n\r\n .and-or-button {\r\n margin: 0 0 0 10px;\r\n min-width: 58px;\r\n cursor: pointer;\r\n }\r\n .trash-button {\r\n $btn-remove-size: 22px;\r\n margin: 0 0 -2px 6px;\r\n cursor: pointer;\r\n\r\n width: $btn-remove-size;\r\n height: 100%;\r\n font-size: 16px;\r\n\r\n .trash-img {\r\n width: 1em;\r\n }\r\n }\r\n}\r\n\r\n.add-filter-divider {\r\n display: block;\r\n margin: 0 -10px 10px -10px;\r\n\r\n border-bottom: 1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);\r\n height: 10px;\r\n}\r\n\r\n.select-input {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n","// filter.panel.tsx\r\n\r\nimport {\r\n h,\r\n Component,\r\n Event,\r\n EventEmitter,\r\n Host,\r\n Listen,\r\n Method,\r\n Prop,\r\n State,\r\n type VNode,\r\n Element,\r\n} from '@stencil/core';\r\nimport debounce from 'lodash/debounce';\r\n\r\nimport { AndOrButton, isFilterBtn, TrashButton } from './filter.button';\r\nimport '../../utils/closest.polifill';\r\nimport {\r\n FilterCaptions,\r\n LogicFunction,\r\n MultiFilterItem,\r\n ShowData,\r\n} from './filter.types';\r\nimport type { ColumnProp } from '@type';\r\nimport { FilterType } from './filter.indexed';\r\n\r\nconst defaultType: FilterType = 'none';\r\n\r\nconst FILTER_LIST_CLASS = 'multi-filter-list';\r\nconst FILTER_LIST_CLASS_ACTION = 'multi-filter-list-action';\r\nconst FILTER_ID = 'add-filter';\r\n\r\n/**\r\n * Filter panel for editing filters\r\n */\r\n/**\r\n * @internal\r\n */\r\n@Component({\r\n tag: 'revogr-filter-panel',\r\n styleUrl: 'filter.style.scss',\r\n})\r\nexport class FilterPanel {\r\n private filterCaptionsInternal: FilterCaptions = {\r\n title: 'Filter by',\r\n ok: 'Close',\r\n save: 'Save',\r\n // drops the filter\r\n reset: 'Reset',\r\n cancel: 'Cancel',\r\n add: 'Add condition',\r\n placeholder: 'Enter value...',\r\n and: 'and',\r\n or: 'or',\r\n };\r\n\r\n @Element() element!: HTMLElement;\r\n @State() isFilterIdSet = false;\r\n @State() filterId = 0;\r\n @State() currentFilterId = -1;\r\n @State() currentFilterType: FilterType = defaultType;\r\n @State() changes: ShowData | undefined;\r\n @State() filterItems: MultiFilterItem = {};\r\n @Prop() filterNames: Record<string, string> = {};\r\n @Prop() filterEntities: Record<string, LogicFunction> = {};\r\n @Prop() filterCaptions: Partial<FilterCaptions> | undefined;\r\n /**\r\n * Disables dynamic filtering. A way to apply filters on Save only\r\n */\r\n @Prop() disableDynamicFiltering = false;\r\n /**\r\n * If true, closes the filter panel when clicking outside\r\n */\r\n @Prop() closeOnOutsideClick = true;\r\n @Event() filterChange: EventEmitter<MultiFilterItem>;\r\n @Event() resetChange: EventEmitter<ColumnProp>;\r\n\r\n @Listen('mousedown', { target: 'document' }) onMouseDown(e: MouseEvent) {\r\n // click on anything then select drops values to default\r\n if (!this.changes) {\r\n return;\r\n }\r\n const path = e.composedPath();\r\n const select = document.getElementById(FILTER_ID);\r\n if (select instanceof HTMLSelectElement) {\r\n // click on select should be skipped\r\n if (path.includes(select)) {\r\n return;\r\n }\r\n select.value = defaultType;\r\n }\r\n this.currentFilterType = defaultType;\r\n if (this.changes) {\r\n this.changes.type = defaultType;\r\n }\r\n this.currentFilterId = -1;\r\n\r\n const isOutside = !path.includes(this.element);\r\n\r\n if (\r\n e.target instanceof HTMLElement &&\r\n isOutside &&\r\n !isFilterBtn(e.target) &&\r\n this.closeOnOutsideClick\r\n ) {\r\n this.changes = undefined;\r\n }\r\n }\r\n\r\n @Method() async show(newEntity?: ShowData) {\r\n this.changes = newEntity;\r\n this.filterItems = newEntity?.filterItems || {};\r\n if (this.changes) {\r\n this.changes.type = this.changes.type || defaultType;\r\n }\r\n }\r\n\r\n @Method() async getChanges() {\r\n return this.changes;\r\n }\r\n\r\n componentWillRender() {\r\n if (!this.isFilterIdSet) {\r\n this.isFilterIdSet = true;\r\n const filterItems = Object.keys(this.filterItems);\r\n for (const prop of filterItems) {\r\n // we set the proper filterId so there won't be any conflict when removing filters\r\n this.filterId += this.filterItems[prop].length;\r\n }\r\n }\r\n }\r\n\r\n getFilterItemsList() {\r\n const prop = this.changes?.prop;\r\n if (typeof prop === 'undefined') return '';\r\n\r\n const propFilters = this.filterItems[prop] ?? [];\r\n const capts = Object.assign(\r\n this.filterCaptionsInternal,\r\n this.filterCaptions,\r\n );\r\n return (\r\n <div key={this.filterId}>\r\n {propFilters.map((filter, index) => {\r\n let andOrButton;\r\n if (filter.hidden) {\r\n return;\r\n }\r\n\r\n // hide toggle button if there is only one filter and the last one\r\n if (index !== this.filterItems[prop].length - 1) {\r\n andOrButton = (\r\n <div onClick={() => this.toggleFilterAndOr(filter.id)}>\r\n <AndOrButton\r\n text={filter.relation === 'and' ? capts.and : capts.or}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div key={filter.id} class={FILTER_LIST_CLASS}>\r\n <div class={{ 'select-input': true }}>\r\n <select\r\n class=\"select-css select-filter\"\r\n onChange={e => this.onFilterTypeChange(e, prop, index)}\r\n >\r\n {this.renderSelectOptions(\r\n this.filterItems[prop][index].type,\r\n true,\r\n )}\r\n </select>\r\n <div class={FILTER_LIST_CLASS_ACTION}>{andOrButton}</div>\r\n <div onClick={() => this.onRemoveFilter(filter.id)}>\r\n <TrashButton />\r\n </div>\r\n </div>\r\n <div>{this.renderExtra(prop, index)}</div>\r\n </div>\r\n );\r\n })}\r\n\r\n {propFilters.filter(f => !f.hidden).length > 0 ? <div class=\"add-filter-divider\" /> : ''}\r\n </div>\r\n );\r\n }\r\n\r\n private autoCorrect(el?: HTMLElement | null) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n const revoGrid = el.closest('revo-grid');\r\n if (!revoGrid) {\r\n return;\r\n }\r\n\r\n const pos = el.getBoundingClientRect();\r\n const gridPos = revoGrid.getBoundingClientRect();\r\n const maxLeft = gridPos.right - pos.width;\r\n\r\n if (pos.left > maxLeft && el.offsetLeft) {\r\n el.style.left = `${maxLeft - (el.parentElement?.getBoundingClientRect().left ?? 0)}px`;\r\n }\r\n }\r\n\r\n private onFilterTypeChange(e: Event, prop: ColumnProp, index: number) {\r\n if (!(e.target instanceof HTMLSelectElement)) {\r\n return;\r\n }\r\n this.filterItems[prop][index].type = e.target.value as FilterType;\r\n\r\n // this re-renders the input to know if we need extra input\r\n this.filterId++;\r\n\r\n // adding setTimeout will wait for the next tick DOM update then focus on input\r\n setTimeout(() => {\r\n const input = document.getElementById(\r\n 'filter-input-' + this.filterItems[prop][index].id,\r\n );\r\n if (input instanceof HTMLInputElement) {\r\n input.focus();\r\n }\r\n }, 0);\r\n\r\n if (!this.disableDynamicFiltering) {\r\n this.debouncedApplyFilter();\r\n }\r\n }\r\n\r\n private debouncedApplyFilter = debounce(() => {\r\n this.filterChange.emit(this.filterItems);\r\n }, 400);\r\n\r\n private onAddNewFilter(e: Event) {\r\n const el = e.target as HTMLSelectElement;\r\n this.currentFilterType = el.value as FilterType;\r\n this.addNewFilterToProp();\r\n\r\n // reset value after adding new filter\r\n const select = document.getElementById('add-filter') as HTMLSelectElement;\r\n if (select) {\r\n select.value = defaultType;\r\n this.currentFilterType = defaultType;\r\n }\r\n\r\n if (!this.disableDynamicFiltering) {\r\n this.debouncedApplyFilter();\r\n }\r\n }\r\n\r\n private addNewFilterToProp() {\r\n const prop = this.changes?.prop;\r\n if (!(prop || prop === 0)) return;\r\n\r\n if (!this.filterItems[prop]) {\r\n this.filterItems[prop] = [];\r\n }\r\n\r\n if (this.currentFilterType === 'none') return;\r\n\r\n this.filterId++;\r\n this.currentFilterId = this.filterId;\r\n\r\n this.filterItems[prop].push({\r\n id: this.currentFilterId,\r\n type: this.currentFilterType,\r\n value: '',\r\n relation: 'and',\r\n });\r\n\r\n // adding setTimeout will wait for the next tick DOM update then focus on input\r\n setTimeout(() => {\r\n const input = document.getElementById(\r\n 'filter-input-' + this.currentFilterId,\r\n ) as HTMLInputElement;\r\n if (input) input.focus();\r\n }, 0);\r\n }\r\n\r\n private onSave() {\r\n this.filterChange.emit(this.filterItems);\r\n }\r\n\r\n private onCancel() {\r\n this.changes = undefined;\r\n }\r\n\r\n private onReset() {\r\n this.assertChanges();\r\n\r\n this.resetChange.emit(this.changes?.prop);\r\n\r\n // this updates the DOM which is used by getFilterItemsList() key\r\n this.filterId++;\r\n }\r\n\r\n private onRemoveFilter(id: number) {\r\n this.assertChanges();\r\n\r\n // this is for reactivity issues for getFilterItemsList()\r\n this.filterId++;\r\n\r\n const prop = this.changes?.prop;\r\n\r\n const items = this.filterItems[prop ?? ''];\r\n if (!items) return;\r\n\r\n const index = items.findIndex(d => d.id === id);\r\n if (index === -1) return;\r\n items.splice(index, 1);\r\n\r\n // let's remove the prop if no more filters so the filter icon will be removed\r\n if (items.length === 0) delete this.filterItems[prop ?? ''];\r\n\r\n if (!this.disableDynamicFiltering) {\r\n this.debouncedApplyFilter();\r\n }\r\n }\r\n\r\n private toggleFilterAndOr(id: number) {\r\n this.assertChanges();\r\n\r\n // this is for reactivity issues for getFilterItemsList()\r\n this.filterId++;\r\n\r\n const prop = this.changes?.prop;\r\n\r\n const items = this.filterItems[prop ?? ''];\r\n if (!items) return;\r\n\r\n const index = items.findIndex(d => d.id === id);\r\n if (index === -1) return;\r\n\r\n items[index].relation = items[index].relation === 'and' ? 'or' : 'and';\r\n if (!this.disableDynamicFiltering) {\r\n this.debouncedApplyFilter();\r\n }\r\n }\r\n\r\n private assertChanges() {\r\n if (!this.changes) {\r\n throw new Error('Changes required per edit');\r\n }\r\n }\r\n\r\n renderSelectOptions(type: FilterType, isDefaultTypeRemoved = false) {\r\n if (!this.changes) {\r\n return;\r\n }\r\n const options: VNode[] = [];\r\n const prop = this.changes.prop;\r\n\r\n const hidden = new Set<string>();\r\n Object.entries(this.filterItems).forEach(([_, values]) => {\r\n values.forEach((filter) => {\r\n if (filter.hidden) {\r\n hidden.add(filter.type);\r\n }\r\n })\r\n });\r\n\r\n if (!isDefaultTypeRemoved) {\r\n const capts = Object.assign(\r\n this.filterCaptionsInternal,\r\n this.filterCaptions,\r\n );\r\n\r\n options.push(\r\n <option\r\n selected={this.currentFilterType === defaultType}\r\n value={defaultType}\r\n >\r\n {prop && this.filterItems[prop] && this.filterItems[prop].length > 0\r\n ? capts.add\r\n : this.filterNames[defaultType]}\r\n </option>,\r\n );\r\n }\r\n\r\n for (let gIndex in this.changes.filterTypes) {\r\n const group = this.changes.filterTypes[gIndex].filter(k => !hidden.has(k));\r\n if (group.length) {\r\n options.push(\r\n ...group.map(k => (\r\n <option value={k} selected={type === k}>\r\n {this.filterNames[k]}\r\n </option>\r\n )),\r\n );\r\n options.push(<option disabled></option>);\r\n }\r\n }\r\n return options;\r\n }\r\n\r\n renderExtra(prop: ColumnProp, index: number) {\r\n const currentFilter = this.filterItems[prop];\r\n\r\n if (!currentFilter) return '';\r\n\r\n const applyFilter = (value?: any) => {\r\n this.filterItems[prop][index].value = value;\r\n if (!this.disableDynamicFiltering) {\r\n this.debouncedApplyFilter();\r\n }\r\n };\r\n\r\n const focusNext = () => {\r\n const select = document.getElementById('add-filter') as HTMLSelectElement;\r\n if (select) {\r\n select.value = defaultType;\r\n this.currentFilterType = defaultType;\r\n this.addNewFilterToProp();\r\n select.focus();\r\n }\r\n };\r\n\r\n const capts = Object.assign(\r\n this.filterCaptionsInternal,\r\n this.filterCaptions,\r\n );\r\n const extra = this.filterEntities[currentFilter[index].type].extra;\r\n if (typeof extra === 'function') {\r\n return extra(h, {\r\n value: currentFilter[index].value,\r\n filter: currentFilter[index],\r\n prop,\r\n index,\r\n placeholder: capts.placeholder,\r\n onInput: (value: any) => {\r\n applyFilter(value);\r\n },\r\n onFocus: () => {\r\n focusNext();\r\n }\r\n });\r\n }\r\n if (extra !== 'input' && extra !== 'datepicker') {\r\n return '';\r\n }\r\n return (\r\n <input\r\n id={`filter-input-${currentFilter[index].id}`}\r\n placeholder={capts.placeholder}\r\n type={extra === 'datepicker' ? 'date' : 'text'}\r\n value={currentFilter[index].value}\r\n onInput={(e) => {\r\n if (e.target instanceof HTMLInputElement) {\r\n applyFilter(e.target.value);\r\n }\r\n }}\r\n onKeyDown={e => {\r\n if (e.key.toLowerCase() === 'enter') {\r\n const select = document.getElementById('add-filter') as HTMLSelectElement;\r\n if (select) {\r\n focusNext();\r\n }\r\n return;\r\n }\r\n // keep event local, don't escalate farther to dom\r\n e.stopPropagation();\r\n }}\r\n />\r\n );\r\n }\r\n\r\n render() {\r\n if (!this.changes) {\r\n return <Host style={{ display: 'none' }}></Host>;\r\n }\r\n const style = {\r\n display: 'block',\r\n left: `${this.changes.x}px`,\r\n top: `${this.changes.y}px`,\r\n };\r\n\r\n const capts = Object.assign(\r\n this.filterCaptionsInternal,\r\n this.filterCaptions,\r\n );\r\n\r\n return (\r\n <Host\r\n style={style}\r\n ref={el => {\r\n this.changes?.autoCorrect !== false && this.autoCorrect(el);\r\n }}\r\n >\r\n <slot slot=\"header\" />\r\n { this.changes.extraContent?.(this.changes) || '' }\r\n\r\n { this.changes?.hideDefaultFilters !== true && (\r\n [\r\n <label>{capts.title}</label>,\r\n <div class=\"filter-holder\">{this.getFilterItemsList()}</div>,\r\n <div class=\"add-filter\">\r\n <select\r\n id={FILTER_ID}\r\n class=\"select-css\"\r\n onChange={e => this.onAddNewFilter(e)}\r\n >\r\n {this.renderSelectOptions(this.currentFilterType)}\r\n </select>\r\n </div>\r\n ]\r\n )}\r\n\r\n <slot />\r\n <div class=\"filter-actions\">\r\n {this.disableDynamicFiltering && [\r\n <button\r\n id=\"revo-button-save\"\r\n aria-label=\"save\"\r\n class=\"revo-button green\"\r\n onClick={() => this.onSave()}\r\n >\r\n {capts.save}\r\n </button>,\r\n <button\r\n id=\"revo-button-ok\"\r\n aria-label=\"ok\"\r\n class=\"revo-button green\"\r\n onClick={() => this.onCancel()}\r\n >\r\n {capts.cancel}\r\n </button>,\r\n ]}\r\n {!this.disableDynamicFiltering && [\r\n <button\r\n id=\"revo-button-ok\"\r\n aria-label=\"ok\"\r\n class=\"revo-button green\"\r\n onClick={() => this.onCancel()}\r\n >\r\n {capts.ok}\r\n </button>,\r\n\r\n <button\r\n id=\"revo-button-reset\"\r\n aria-label=\"reset\"\r\n class=\"revo-button outline\"\r\n onClick={() => this.onReset()}\r\n >\r\n {capts.reset}\r\n </button>,\r\n ]}\r\n </div>\r\n <slot slot=\"footer\" />\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revogr-filter-panel.entry.cjs.js","sources":["src/utils/closest.polifill.ts","src/plugins/filter/filter.style.scss?tag=revogr-filter-panel","src/plugins/filter/filter.panel.tsx"],"sourcesContent":["(function closest() {\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n ((Element.prototype as unknown) as { msMatchesSelector: (selectors: string) => boolean }).msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n }\r\n\r\n if (!Element.prototype.closest) {\r\n Element.prototype.closest = function (s: string) {\r\n let el: HTMLElement | Element | (Node & ParentNode) | null = this;\r\n\r\n do {\r\n if (Element.prototype.matches.call(el, s)) {\r\n return el;\r\n }\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n }\r\n})();\r\n","revogr-filter-panel {\r\n position: absolute;\r\n display: block;\r\n top: 0;\r\n left: 0;\r\n z-index: 100;\r\n max-height: calc(100% - 80px);\r\n min-width: 250px;\r\n overflow: auto;\r\n\r\n opacity: 1;\r\n transform: none;\r\n background-color: var(--revo-grid-filter-panel-bg, #fff);\r\n border: 1px solid var(--revo-grid-filter-panel-border, #cecece);\r\n transform-origin: 62px 0px;\r\n box-shadow: 0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));\r\n padding: 10px;\r\n border-radius: 8px;\r\n\r\n min-width: 220px;\r\n text-align: left;\r\n\r\n .filter-holder > div {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n label {\r\n font-size: 13px;\r\n display: block;\r\n padding: 8px 0;\r\n }\r\n\r\n select {\r\n width: 100%;\r\n }\r\n\r\n input[type='text'] {\r\n border: 0;\r\n min-height: 34px;\r\n margin: 5px 0;\r\n background: var(--revo-grid-filter-panel-input-bg, #f3f3f3);\r\n border-radius: 5px;\r\n padding: 0 10px;\r\n box-sizing: border-box;\r\n width: 100%;\r\n }\r\n\r\n button {\r\n margin-top: 10px;\r\n margin-right: 5px;\r\n }\r\n\r\n .filter-actions {\r\n text-align: right;\r\n margin-right: -5px;\r\n }\r\n}\r\n\r\n.rgHeaderCell {\r\n &:hover .rv-filter {\r\n transition:\r\n opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,\r\n transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n }\r\n &:hover .rv-filter,\r\n .rv-filter.active {\r\n opacity: 1;\r\n }\r\n\r\n .rv-filter {\r\n $btn-size: 24px;\r\n height: $btn-size;\r\n width: $btn-size;\r\n background: none;\r\n border: 0;\r\n opacity: 0;\r\n visibility: visible;\r\n cursor: pointer;\r\n border-radius: 4px;\r\n\r\n &.active {\r\n color: #10224a;\r\n }\r\n\r\n .filter-img {\r\n $img-size: 11px;\r\n color: gray;\r\n width: $img-size;\r\n }\r\n }\r\n}\r\n\r\n.select-css {\r\n $gradient: 'data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E';\r\n\r\n display: block;\r\n font-family: sans-serif;\r\n line-height: 1.3;\r\n padding: 0.6em 1.4em 0.5em 0.8em;\r\n width: 100%;\r\n max-width: 100%; /* useful when width is set to anything other than 100% */\r\n box-sizing: border-box;\r\n margin: 0;\r\n border: 1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);\r\n box-shadow: transparent;\r\n border-radius: 0.5em;\r\n appearance: none;\r\n background-color: var(--revo-grid-filter-panel-input-bg, #f3f3f3);\r\n background-image: url($gradient);\r\n background-repeat: no-repeat, repeat;\r\n /* arrow icon position (1em from the right, 50% vertical) , then gradient position*/\r\n background-position:\r\n right 0.7em top 50%,\r\n 0 0;\r\n /* icon size, then gradient */\r\n background-size:\r\n 0.65em auto,\r\n 100%;\r\n\r\n /* Hide arrow icon in IE browsers */\r\n &::-ms-expand {\r\n display: none;\r\n }\r\n /* Hover style */\r\n &:hover {\r\n border-color: var(--revo-grid-filter-panel-select-border, #d9d9d9);\r\n }\r\n /* Focus style */\r\n &:focus {\r\n border-color: var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);\r\n box-shadow: 0 0 1px 3px rgba(59, 153, 252, 0.7);\r\n box-shadow: 0 0 0 3px -moz-mac-focusring;\r\n outline: none;\r\n }\r\n\r\n /* Set options to normal weight */\r\n option {\r\n font-weight: normal;\r\n }\r\n\r\n /* Disabled styles */\r\n &:disabled,\r\n &[aria-disabled='true'] {\r\n color: gray;\r\n background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),\r\n linear-gradient(to bottom, #ffffff 0%, #ffffff 100%);\r\n }\r\n\r\n &:disabled:hover,\r\n &[aria-disabled='true'] {\r\n border-color: var(--revo-grid-filter-panel-select-border, #d9d9d9);\r\n }\r\n}\r\n\r\n.multi-filter-list {\r\n margin-top: 5px;\r\n margin-bottom: 5px;\r\n\r\n div {\r\n white-space: nowrap;\r\n }\r\n\r\n .multi-filter-list-action {\r\n display: flex;\r\n\r\n justify-content: space-between;\r\n align-items: center;\r\n }\r\n\r\n .and-or-button {\r\n margin: 0 0 0 10px;\r\n min-width: 58px;\r\n cursor: pointer;\r\n }\r\n .trash-button {\r\n $btn-remove-size: 22px;\r\n margin: 0 0 -2px 6px;\r\n cursor: pointer;\r\n\r\n width: $btn-remove-size;\r\n height: 100%;\r\n font-size: 16px;\r\n\r\n .trash-img {\r\n width: 1em;\r\n }\r\n }\r\n}\r\n\r\n.add-filter-divider {\r\n display: block;\r\n margin: 0 -10px 10px -10px;\r\n\r\n border-bottom: 1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);\r\n height: 10px;\r\n}\r\n\r\n.select-input {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n","// filter.panel.tsx\r\n\r\nimport {\r\n h,\r\n Component,\r\n Event,\r\n EventEmitter,\r\n Host,\r\n Listen,\r\n Method,\r\n Prop,\r\n State,\r\n type VNode,\r\n Element,\r\n} from '@stencil/core';\r\nimport debounce from 'lodash/debounce';\r\n\r\nimport { AndOrButton, isFilterBtn, TrashButton } from './filter.button';\r\nimport '../../utils/closest.polifill';\r\nimport {\r\n FilterCaptions,\r\n LogicFunction,\r\n MultiFilterItem,\r\n ShowData,\r\n} from './filter.types';\r\nimport type { ColumnProp } from '@type';\r\nimport { FilterType } from './filter.indexed';\r\n\r\nconst defaultType: FilterType = 'none';\r\n\r\nconst FILTER_LIST_CLASS = 'multi-filter-list';\r\nconst FILTER_LIST_CLASS_ACTION = 'multi-filter-list-action';\r\nconst FILTER_ID = 'add-filter';\r\n\r\n/**\r\n * Filter panel for editing filters\r\n */\r\n/**\r\n * @internal\r\n */\r\n@Component({\r\n tag: 'revogr-filter-panel',\r\n styleUrl: 'filter.style.scss',\r\n})\r\nexport class FilterPanel {\r\n private filterCaptionsInternal: FilterCaptions = {\r\n title: 'Filter by',\r\n ok: 'Close',\r\n save: 'Save',\r\n // drops the filter\r\n reset: 'Reset',\r\n cancel: 'Cancel',\r\n add: 'Add condition',\r\n placeholder: 'Enter value...',\r\n and: 'and',\r\n or: 'or',\r\n };\r\n\r\n @Element() element!: HTMLElement;\r\n @State() isFilterIdSet = false;\r\n @State() filterId = 0;\r\n @State() currentFilterId = -1;\r\n @State() currentFilterType: FilterType = defaultType;\r\n @State() changes: ShowData | undefined;\r\n @State() filterItems: MultiFilterItem = {};\r\n @Prop() filterNames: Record<string, string> = {};\r\n @Prop() filterEntities: Record<string, LogicFunction> = {};\r\n @Prop() filterCaptions: Partial<FilterCaptions> | undefined;\r\n /**\r\n * Disables dynamic filtering. A way to apply filters on Save only\r\n */\r\n @Prop() disableDynamicFiltering = false;\r\n /**\r\n * If true, closes the filter panel when clicking outside\r\n */\r\n @Prop() closeOnOutsideClick = true;\r\n @Event() filterChange: EventEmitter<MultiFilterItem>;\r\n @Event() resetChange: EventEmitter<ColumnProp>;\r\n\r\n @Listen('mousedown', { target: 'document' }) onMouseDown(e: MouseEvent) {\r\n // click on anything then select drops values to default\r\n if (!this.changes) {\r\n return;\r\n }\r\n const path = e.composedPath();\r\n const select = document.getElementById(FILTER_ID);\r\n if (select instanceof HTMLSelectElement) {\r\n // click on select should be skipped\r\n if (path.includes(select)) {\r\n return;\r\n }\r\n select.value = defaultType;\r\n }\r\n this.currentFilterType = defaultType;\r\n if (this.changes) {\r\n this.changes.type = defaultType;\r\n }\r\n this.currentFilterId = -1;\r\n\r\n const isOutside = !path.includes(this.element);\r\n\r\n if (\r\n e.target instanceof HTMLElement &&\r\n isOutside &&\r\n !isFilterBtn(e.target) &&\r\n this.closeOnOutsideClick\r\n ) {\r\n this.changes = undefined;\r\n }\r\n }\r\n\r\n @Method() async show(newEntity?: ShowData) {\r\n this.changes = newEntity;\r\n this.filterItems = newEntity?.filterItems || {};\r\n if (this.changes) {\r\n this.changes.type = this.changes.type || defaultType;\r\n }\r\n }\r\n\r\n @Method() async getChanges() {\r\n return this.changes;\r\n }\r\n\r\n componentWillRender() {\r\n if (!this.isFilterIdSet) {\r\n this.isFilterIdSet = true;\r\n const filterItems = Object.keys(this.filterItems);\r\n for (const prop of filterItems) {\r\n // we set the proper filterId so there won't be any conflict when removing filters\r\n this.filterId += this.filterItems[prop].length;\r\n }\r\n }\r\n }\r\n\r\n getFilterItemsList() {\r\n const prop = this.changes?.prop;\r\n if (typeof prop === 'undefined') return '';\r\n\r\n const propFilters = this.filterItems[prop] ?? [];\r\n const capts = Object.assign(\r\n this.filterCaptionsInternal,\r\n this.filterCaptions,\r\n );\r\n return (\r\n <div key={this.filterId}>\r\n {propFilters.map((filter, index) => {\r\n let andOrButton;\r\n if (filter.hidden) {\r\n return;\r\n }\r\n\r\n // hide toggle button if there is only one filter and the last one\r\n if (index !== this.filterItems[prop].length - 1) {\r\n andOrButton = (\r\n <div onClick={() => this.toggleFilterAndOr(filter.id)}>\r\n <AndOrButton\r\n text={filter.relation === 'and' ? capts.and : capts.or}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div key={filter.id} class={FILTER_LIST_CLASS}>\r\n <div class={{ 'select-input': true }}>\r\n <select\r\n class=\"select-css select-filter\"\r\n onChange={e => this.onFilterTypeChange(e, prop, index)}\r\n >\r\n {this.renderSelectOptions(\r\n this.filterItems[prop][index].type,\r\n true,\r\n )}\r\n </select>\r\n <div class={FILTER_LIST_CLASS_ACTION}>{andOrButton}</div>\r\n <div onClick={() => this.onRemoveFilter(filter.id)}>\r\n <TrashButton />\r\n </div>\r\n </div>\r\n <div>{this.renderExtra(prop, index)}</div>\r\n </div>\r\n );\r\n })}\r\n\r\n {propFilters.filter(f => !f.hidden).length > 0 ? <div class=\"add-filter-divider\" /> : ''}\r\n </div>\r\n );\r\n }\r\n\r\n private autoCorrect(el?: HTMLElement | null) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n const revoGrid = el.closest('revo-grid');\r\n if (!revoGrid) {\r\n return;\r\n }\r\n\r\n const pos = el.getBoundingClientRect();\r\n const gridPos = revoGrid.getBoundingClientRect();\r\n const maxLeft = gridPos.right - pos.width;\r\n\r\n if (pos.left > maxLeft && el.offsetLeft) {\r\n el.style.left = `${maxLeft - (el.parentElement?.getBoundingClientRect().left ?? 0)}px`;\r\n }\r\n }\r\n\r\n private onFilterTypeChange(e: Event, prop: ColumnProp, index: number) {\r\n if (!(e.target instanceof HTMLSelectElement)) {\r\n return;\r\n }\r\n this.filterItems[prop][index].type = e.target.value as FilterType;\r\n\r\n // this re-renders the input to know if we need extra input\r\n this.filterId++;\r\n\r\n // adding setTimeout will wait for the next tick DOM update then focus on input\r\n setTimeout(() => {\r\n const input = document.getElementById(\r\n 'filter-input-' + this.filterItems[prop][index].id,\r\n );\r\n if (input instanceof HTMLInputElement) {\r\n input.focus();\r\n }\r\n }, 0);\r\n\r\n if (!this.disableDynamicFiltering) {\r\n this.debouncedApplyFilter();\r\n }\r\n }\r\n\r\n private debouncedApplyFilter = debounce(() => {\r\n this.filterChange.emit(this.filterItems);\r\n }, 400);\r\n\r\n private onAddNewFilter(e: Event) {\r\n const el = e.target as HTMLSelectElement;\r\n this.currentFilterType = el.value as FilterType;\r\n this.addNewFilterToProp();\r\n\r\n // reset value after adding new filter\r\n const select = document.getElementById('add-filter') as HTMLSelectElement;\r\n if (select) {\r\n select.value = defaultType;\r\n this.currentFilterType = defaultType;\r\n }\r\n\r\n if (!this.disableDynamicFiltering) {\r\n this.debouncedApplyFilter();\r\n }\r\n }\r\n\r\n private addNewFilterToProp() {\r\n const prop = this.changes?.prop;\r\n if (!(prop || prop === 0)) return;\r\n\r\n if (!this.filterItems[prop]) {\r\n this.filterItems[prop] = [];\r\n }\r\n\r\n if (this.currentFilterType === 'none') return;\r\n\r\n this.filterId++;\r\n this.currentFilterId = this.filterId;\r\n\r\n this.filterItems[prop].push({\r\n id: this.currentFilterId,\r\n type: this.currentFilterType,\r\n value: '',\r\n relation: 'and',\r\n });\r\n\r\n // adding setTimeout will wait for the next tick DOM update then focus on input\r\n setTimeout(() => {\r\n const input = document.getElementById(\r\n 'filter-input-' + this.currentFilterId,\r\n ) as HTMLInputElement;\r\n if (input) input.focus();\r\n }, 0);\r\n }\r\n\r\n private onSave() {\r\n this.filterChange.emit(this.filterItems);\r\n }\r\n\r\n private onCancel() {\r\n this.changes = undefined;\r\n }\r\n\r\n private onReset() {\r\n this.assertChanges();\r\n\r\n this.resetChange.emit(this.changes?.prop);\r\n\r\n // this updates the DOM which is used by getFilterItemsList() key\r\n this.filterId++;\r\n }\r\n\r\n private onRemoveFilter(id: number) {\r\n this.assertChanges();\r\n\r\n // this is for reactivity issues for getFilterItemsList()\r\n this.filterId++;\r\n\r\n const prop = this.changes?.prop;\r\n\r\n const items = this.filterItems[prop ?? ''];\r\n if (!items) return;\r\n\r\n const index = items.findIndex(d => d.id === id);\r\n if (index === -1) return;\r\n items.splice(index, 1);\r\n\r\n // let's remove the prop if no more filters so the filter icon will be removed\r\n if (items.length === 0) delete this.filterItems[prop ?? ''];\r\n\r\n if (!this.disableDynamicFiltering) {\r\n this.debouncedApplyFilter();\r\n }\r\n }\r\n\r\n private toggleFilterAndOr(id: number) {\r\n this.assertChanges();\r\n\r\n // this is for reactivity issues for getFilterItemsList()\r\n this.filterId++;\r\n\r\n const prop = this.changes?.prop;\r\n\r\n const items = this.filterItems[prop ?? ''];\r\n if (!items) return;\r\n\r\n const index = items.findIndex(d => d.id === id);\r\n if (index === -1) return;\r\n\r\n items[index].relation = items[index].relation === 'and' ? 'or' : 'and';\r\n if (!this.disableDynamicFiltering) {\r\n this.debouncedApplyFilter();\r\n }\r\n }\r\n\r\n private assertChanges() {\r\n if (!this.changes) {\r\n throw new Error('Changes required per edit');\r\n }\r\n }\r\n\r\n renderSelectOptions(type: FilterType, isDefaultTypeRemoved = false) {\r\n if (!this.changes) {\r\n return;\r\n }\r\n const options: VNode[] = [];\r\n const prop = this.changes.prop;\r\n\r\n const hidden = new Set<string>();\r\n Object.entries(this.filterItems).forEach(([_, values]) => {\r\n values.forEach((filter) => {\r\n if (filter.hidden) {\r\n hidden.add(filter.type);\r\n }\r\n })\r\n });\r\n\r\n if (!isDefaultTypeRemoved) {\r\n const capts = Object.assign(\r\n this.filterCaptionsInternal,\r\n this.filterCaptions,\r\n );\r\n\r\n options.push(\r\n <option\r\n selected={this.currentFilterType === defaultType}\r\n value={defaultType}\r\n >\r\n {prop && this.filterItems[prop] && this.filterItems[prop].length > 0\r\n ? capts.add\r\n : this.filterNames[defaultType]}\r\n </option>,\r\n );\r\n }\r\n\r\n for (let gIndex in this.changes.filterTypes) {\r\n const group = this.changes.filterTypes[gIndex].filter(k => !hidden.has(k));\r\n if (group.length) {\r\n options.push(\r\n ...group.map(k => (\r\n <option value={k} selected={type === k}>\r\n {this.filterNames[k]}\r\n </option>\r\n )),\r\n );\r\n options.push(<option disabled></option>);\r\n }\r\n }\r\n return options;\r\n }\r\n\r\n renderExtra(prop: ColumnProp, index: number) {\r\n const currentFilter = this.filterItems[prop];\r\n\r\n if (!currentFilter) return '';\r\n\r\n const applyFilter = (value?: any) => {\r\n this.filterItems[prop][index].value = value;\r\n if (!this.disableDynamicFiltering) {\r\n this.debouncedApplyFilter();\r\n }\r\n };\r\n\r\n const focusNext = () => {\r\n const select = document.getElementById('add-filter') as HTMLSelectElement;\r\n if (select) {\r\n select.value = defaultType;\r\n this.currentFilterType = defaultType;\r\n this.addNewFilterToProp();\r\n select.focus();\r\n }\r\n };\r\n\r\n const capts = Object.assign(\r\n this.filterCaptionsInternal,\r\n this.filterCaptions,\r\n );\r\n const extra = this.filterEntities[currentFilter[index].type].extra;\r\n if (typeof extra === 'function') {\r\n return extra(h, {\r\n value: currentFilter[index].value,\r\n filter: currentFilter[index],\r\n prop,\r\n index,\r\n placeholder: capts.placeholder,\r\n onInput: (value: any) => {\r\n applyFilter(value);\r\n },\r\n onFocus: () => {\r\n focusNext();\r\n }\r\n });\r\n }\r\n if (extra !== 'input' && extra !== 'datepicker') {\r\n return '';\r\n }\r\n return (\r\n <input\r\n id={`filter-input-${currentFilter[index].id}`}\r\n placeholder={capts.placeholder}\r\n type={extra === 'datepicker' ? 'date' : 'text'}\r\n value={currentFilter[index].value}\r\n onInput={(e) => {\r\n if (e.target instanceof HTMLInputElement) {\r\n applyFilter(e.target.value);\r\n }\r\n }}\r\n onKeyDown={e => {\r\n if (e.key.toLowerCase() === 'enter') {\r\n const select = document.getElementById('add-filter') as HTMLSelectElement;\r\n if (select) {\r\n focusNext();\r\n }\r\n return;\r\n }\r\n // keep event local, don't escalate farther to dom\r\n e.stopPropagation();\r\n }}\r\n />\r\n );\r\n }\r\n\r\n render() {\r\n if (!this.changes) {\r\n return <Host style={{ display: 'none' }}></Host>;\r\n }\r\n const style = {\r\n display: 'block',\r\n left: `${this.changes.x}px`,\r\n top: `${this.changes.y}px`,\r\n };\r\n\r\n const capts = Object.assign(\r\n this.filterCaptionsInternal,\r\n this.filterCaptions,\r\n );\r\n\r\n return (\r\n <Host\r\n style={style}\r\n ref={el => {\r\n this.changes?.autoCorrect !== false && this.autoCorrect(el);\r\n }}\r\n >\r\n <slot slot=\"header\" />\r\n { this.changes.extraContent?.(this.changes) || '' }\r\n\r\n { this.changes?.hideDefaultFilters !== true && (\r\n [\r\n <label>{capts.title}</label>,\r\n <div class=\"filter-holder\">{this.getFilterItemsList()}</div>,\r\n <div class=\"add-filter\">\r\n <select\r\n id={FILTER_ID}\r\n class=\"select-css\"\r\n onChange={e => this.onAddNewFilter(e)}\r\n >\r\n {this.renderSelectOptions(this.currentFilterType)}\r\n </select>\r\n </div>\r\n ]\r\n )}\r\n\r\n <slot />\r\n <div class=\"filter-actions\">\r\n {this.disableDynamicFiltering && [\r\n <button\r\n id=\"revo-button-save\"\r\n aria-label=\"save\"\r\n class=\"revo-button green\"\r\n onClick={() => this.onSave()}\r\n >\r\n {capts.save}\r\n </button>,\r\n <button\r\n id=\"revo-button-ok\"\r\n aria-label=\"ok\"\r\n class=\"revo-button green\"\r\n onClick={() => this.onCancel()}\r\n >\r\n {capts.cancel}\r\n </button>,\r\n ]}\r\n {!this.disableDynamicFiltering && [\r\n <button\r\n id=\"revo-button-ok\"\r\n aria-label=\"ok\"\r\n class=\"revo-button green\"\r\n onClick={() => this.onCancel()}\r\n >\r\n {capts.ok}\r\n </button>,\r\n\r\n <button\r\n id=\"revo-button-reset\"\r\n aria-label=\"reset\"\r\n class=\"revo-button outline\"\r\n onClick={() => this.onReset()}\r\n >\r\n {capts.reset}\r\n </button>,\r\n ]}\r\n </div>\r\n <slot slot=\"footer\" />\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"names":["debounce","isFilterBtn","h","index","AndOrButton","TrashButton","Host"],"mappings":"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"}
@@ -0,0 +1,420 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ 'use strict';
5
+
6
+ var data_store = require('./data.store-CrF4Nf9q.js');
7
+
8
+ /**
9
+ * Update items based on new scroll position
10
+ * If viewport wasn't changed fully simple recombination of positions
11
+ * Otherwise rebuild viewport items
12
+ */
13
+ function getUpdatedItemsByPosition(pos, // coordinate
14
+ items, realCount, virtualSize, dimension) {
15
+ const activeItem = data_store.getItemByPosition(dimension, pos);
16
+ const firstItem = getFirstItem(items);
17
+ let toUpdate;
18
+ // do simple position recombination if items already present in viewport
19
+ if (firstItem) {
20
+ let changedOffsetStart = activeItem.itemIndex - (firstItem.itemIndex || 0);
21
+ // if item changed
22
+ if (changedOffsetStart) {
23
+ // simple recombination
24
+ toUpdate = recombineByOffset(Math.abs(changedOffsetStart), Object.assign(Object.assign({ positiveDirection: changedOffsetStart > -1 }, dimension), items));
25
+ }
26
+ }
27
+ const maxSizeVirtualSize = getMaxVirtualSize(virtualSize, dimension.realSize, activeItem);
28
+ // if partial recombination add items if revo-viewport has some space left
29
+ if (toUpdate) {
30
+ const extra = addMissingItems(activeItem, realCount, maxSizeVirtualSize, toUpdate, dimension);
31
+ if (extra.length) {
32
+ updateMissingAndRange(toUpdate.items, extra, toUpdate);
33
+ }
34
+ }
35
+ // new collection if no items after replacement full replacement
36
+ if (!toUpdate) {
37
+ const items = getItems({
38
+ firstItemStart: activeItem.start,
39
+ firstItemIndex: activeItem.itemIndex,
40
+ origSize: dimension.originItemSize,
41
+ maxSize: maxSizeVirtualSize,
42
+ maxCount: realCount,
43
+ sizes: dimension.sizes,
44
+ });
45
+ // range now comes from 0 to length - 1
46
+ toUpdate = {
47
+ items,
48
+ start: 0,
49
+ end: items.length - 1,
50
+ };
51
+ }
52
+ return toUpdate;
53
+ }
54
+ // virtual size can differ based on scroll position if some big items are present
55
+ // scroll can be in the middle of item and virtual size will be larger
56
+ // so we need to exclude this part from virtual size hence it's already passed
57
+ function getMaxVirtualSize(virtualSize, realSize, activeItem) {
58
+ return Math.min(virtualSize + (activeItem.end - activeItem.start), realSize);
59
+ }
60
+ function updateMissingAndRange(items, missing, range) {
61
+ items.splice(range.end + 1, 0, ...missing);
62
+ // update range if start larger after recombination
63
+ if (range.start >= range.end &&
64
+ !(range.start === range.end && range.start === 0)) {
65
+ range.start += missing.length;
66
+ }
67
+ range.end += missing.length;
68
+ }
69
+ /**
70
+ * If partial replacement
71
+ * this function adds items if viewport has some space left
72
+ */
73
+ function addMissingItems(firstItem, realCount, virtualSize, existingCollection, dimension) {
74
+ const lastItem = getLastItem(existingCollection);
75
+ const items = getItems({
76
+ sizes: dimension.sizes,
77
+ firstItemStart: lastItem.end,
78
+ firstItemIndex: lastItem.itemIndex + 1,
79
+ origSize: dimension.originItemSize,
80
+ maxSize: virtualSize - (lastItem.end - firstItem.start),
81
+ maxCount: realCount,
82
+ });
83
+ return items;
84
+ }
85
+ /**
86
+ * Get wiewport items parameters
87
+ * caching position and calculating items count in viewport
88
+ */
89
+ function getItems(opt, currentSize = 0) {
90
+ const items = [];
91
+ let index = opt.firstItemIndex;
92
+ let size = currentSize;
93
+ // max size or max count
94
+ while (size <= opt.maxSize && index < opt.maxCount) {
95
+ const newSize = getItemSize(index, opt.sizes, opt.origSize);
96
+ items.push({
97
+ start: opt.firstItemStart + size,
98
+ end: opt.firstItemStart + size + newSize,
99
+ itemIndex: index,
100
+ size: newSize,
101
+ });
102
+ size += newSize;
103
+ index++;
104
+ }
105
+ return items;
106
+ }
107
+ function recombineByOffset(offset, data) {
108
+ var _a, _b;
109
+ const newItems = [...data.items];
110
+ const itemsCount = newItems.length;
111
+ let newRange = {
112
+ start: data.start,
113
+ end: data.end,
114
+ };
115
+ // if offset out of revo-viewport, makes sense whole redraw
116
+ if (offset > itemsCount) {
117
+ return undefined;
118
+ }
119
+ // is direction of scroll positive
120
+ if (data.positiveDirection) {
121
+ // push item to the end
122
+ let lastItem = getLastItem(data);
123
+ let i = newRange.start;
124
+ const length = i + offset;
125
+ for (; i < length; i++) {
126
+ const newIndex = lastItem.itemIndex + 1;
127
+ const size = getItemSize(newIndex, data.sizes, data.originItemSize);
128
+ // if item overlapped limit break a loop
129
+ if (lastItem.end + size > data.realSize) {
130
+ break;
131
+ }
132
+ // new item index to recombine
133
+ let newEnd = i % itemsCount;
134
+ // item should always present, we do not create new item, we recombine them
135
+ if (!newItems[newEnd]) {
136
+ throw new Error('incorrect index');
137
+ }
138
+ // do recombination
139
+ newItems[newEnd] = lastItem = {
140
+ start: lastItem.end,
141
+ end: lastItem.end + size,
142
+ itemIndex: newIndex,
143
+ size: size,
144
+ };
145
+ // update range
146
+ newRange.start++;
147
+ newRange.end = newEnd;
148
+ }
149
+ // direction is negative
150
+ }
151
+ else {
152
+ // push item to the start
153
+ let firstItem = getFirstItem(data);
154
+ const end = newRange.end;
155
+ for (let i = 0; i < offset; i++) {
156
+ const newIndex = ((_a = firstItem === null || firstItem === void 0 ? void 0 : firstItem.itemIndex) !== null && _a !== void 0 ? _a : 0) - 1;
157
+ const size = getItemSize(newIndex, data.sizes, data.originItemSize);
158
+ // new item index to recombine
159
+ let newStart = end - i;
160
+ newStart = (newStart < 0 ? itemsCount + newStart : newStart) % itemsCount;
161
+ // item should always present, we do not create new item, we recombine them
162
+ if (!newItems[newStart]) {
163
+ console.error('incorrect index');
164
+ break;
165
+ }
166
+ // do recombination
167
+ const firstItemStart = (_b = firstItem === null || firstItem === void 0 ? void 0 : firstItem.start) !== null && _b !== void 0 ? _b : 0;
168
+ newItems[newStart] = firstItem = {
169
+ start: firstItemStart - size,
170
+ end: firstItemStart,
171
+ itemIndex: newIndex,
172
+ size: size,
173
+ };
174
+ // update range
175
+ newRange.start = newStart;
176
+ newRange.end--;
177
+ }
178
+ }
179
+ const range = {
180
+ start: (newRange.start < 0 ? itemsCount + newRange.start : newRange.start) %
181
+ itemsCount,
182
+ end: (newRange.end < 0 ? itemsCount + newRange.end : newRange.end) %
183
+ itemsCount,
184
+ };
185
+ return Object.assign({ items: newItems }, range);
186
+ }
187
+ function getItemSize(index, sizes, origSize = 0) {
188
+ if (sizes && sizes[index]) {
189
+ return sizes[index];
190
+ }
191
+ return origSize;
192
+ }
193
+ /**
194
+ * Verify if position is in range of the PositionItem, start and end are included
195
+ */
196
+ function isActiveRange(pos, realSize, first, last) {
197
+ if (!first || !last) {
198
+ return false;
199
+ }
200
+ // if position is in range of first item
201
+ // or position is after first item and last item is the last item in real size
202
+ return ((pos >= first.start && pos <= first.end) ||
203
+ (pos > first.end && last.end === realSize));
204
+ }
205
+ function isActiveRangeOutsideLastItem(pos, virtualSize, firstItem, lastItem) {
206
+ var _a;
207
+ // if no first item, means no items in viewport
208
+ if (!firstItem) {
209
+ return false;
210
+ }
211
+ return virtualSize + pos > ((_a = lastItem === null || lastItem === void 0 ? void 0 : lastItem.end) !== null && _a !== void 0 ? _a : 0);
212
+ }
213
+ function getFirstItem(s) {
214
+ return s.items[s.start];
215
+ }
216
+ function getLastItem(s) {
217
+ return s.items[s.end];
218
+ }
219
+ /**
220
+ * Set items sizes from start index to end
221
+ * @param vpItems
222
+ * @param start
223
+ * @param size
224
+ * @param lastCoordinate
225
+ * @returns
226
+ */
227
+ function setItemSizes(vpItems, initialIndex, size, lastCoordinate) {
228
+ const items = [...vpItems];
229
+ const count = items.length;
230
+ let pos = lastCoordinate;
231
+ let i = 0;
232
+ let start = initialIndex;
233
+ // viewport not inited
234
+ if (!count) {
235
+ return [];
236
+ }
237
+ // loop through array from initial item after recombination
238
+ while (i < count) {
239
+ const item = items[start];
240
+ item.start = pos;
241
+ item.size = size;
242
+ item.end = item.start + size;
243
+ pos = item.end;
244
+ // loop by start index
245
+ start++;
246
+ i++;
247
+ // if start index out of array, reset it
248
+ if (start === count) {
249
+ start = 0;
250
+ }
251
+ }
252
+ return items;
253
+ }
254
+
255
+ /**
256
+ * Viewport store
257
+ * Used for virtualization (process of rendering only visible part of data)
258
+ * Redraws viewport based on position and dimension
259
+ */
260
+ function initialState() {
261
+ return {
262
+ // virtual item information per rendered item
263
+ items: [],
264
+ // virtual dom item order to render
265
+ start: 0,
266
+ end: 0,
267
+ // size of virtual viewport in px
268
+ virtualSize: 0,
269
+ // total number of items
270
+ realCount: 0,
271
+ // size of viewport in px
272
+ clientSize: 0,
273
+ };
274
+ }
275
+ /**
276
+ * Viewport store class
277
+ */
278
+ class ViewportStore {
279
+ get lastCoordinate() {
280
+ return this.lastKnownScroll;
281
+ }
282
+ set lastCoordinate(value) {
283
+ this.lastKnownScroll = value;
284
+ }
285
+ constructor(type) {
286
+ this.type = type;
287
+ // last coordinate for store position restore
288
+ this.lastKnownScroll = 0;
289
+ this.store = data_store.createStore(initialState());
290
+ }
291
+ /**
292
+ * Render viewport based on coordinate
293
+ * It's the main method for draw
294
+ * Use force if you want to re-render viewport
295
+ */
296
+ setViewPortCoordinate(position, dimension, force = false) {
297
+ const viewportSize = this.store.get('virtualSize');
298
+ // no visible data to calculate
299
+ if (!viewportSize) {
300
+ return;
301
+ }
302
+ const frameOffset = 1;
303
+ const singleOffsetInPx = dimension.originItemSize * frameOffset;
304
+ // add offset to virtual size from both sides
305
+ const outsize = singleOffsetInPx * 2;
306
+ // math virtual size is based on visible area + 2 items outside of visible area
307
+ const virtualSize = viewportSize + outsize;
308
+ // expected no scroll if real size less than virtual size, position is 0
309
+ let maxCoordinate = 0;
310
+ // if there is nodes outside of viewport, max coordinate has to be adjusted
311
+ if (dimension.realSize > viewportSize) {
312
+ // max coordinate is real size minus virtual/rendered space
313
+ maxCoordinate = dimension.realSize - viewportSize - singleOffsetInPx;
314
+ }
315
+ let pos = position;
316
+ // limit position to max and min coordinates
317
+ if (pos < 0) {
318
+ pos = 0;
319
+ }
320
+ else if (pos > maxCoordinate) {
321
+ pos = maxCoordinate;
322
+ }
323
+ // store last coordinate for further restore on redraw
324
+ this.lastCoordinate = pos;
325
+ // actual position is less than first item start based on offset
326
+ pos -= singleOffsetInPx;
327
+ pos = pos < 0 ? 0 : pos < maxCoordinate ? pos : maxCoordinate;
328
+ let allItems;
329
+ // if force clear all items and start from 0
330
+ if (force) {
331
+ allItems = {
332
+ items: [],
333
+ start: 0,
334
+ end: 0,
335
+ };
336
+ }
337
+ else {
338
+ allItems = this.getItems();
339
+ }
340
+ const firstItem = getFirstItem(allItems);
341
+ const lastItem = getLastItem(allItems);
342
+ let toUpdate = {};
343
+ // left position changed
344
+ // verify if new position is in range of previously rendered first item
345
+ if (!isActiveRange(pos, dimension.realSize, firstItem, lastItem)) {
346
+ toUpdate = Object.assign(Object.assign({}, toUpdate), getUpdatedItemsByPosition(pos, allItems, this.store.get('realCount'), virtualSize, dimension));
347
+ this.setViewport(Object.assign({}, toUpdate));
348
+ // verify is render area is outside of last item
349
+ }
350
+ else if (isActiveRangeOutsideLastItem(pos, virtualSize, firstItem, lastItem)) {
351
+ const items = [...allItems.items];
352
+ // check is any item missing for fulfill content
353
+ const missing = addMissingItems(firstItem, this.store.get('realCount'), virtualSize + pos - firstItem.start, allItems, {
354
+ sizes: dimension.sizes,
355
+ originItemSize: dimension.originItemSize,
356
+ });
357
+ // update missing items
358
+ if (missing.length) {
359
+ const range = {
360
+ start: this.store.get('start'),
361
+ end: this.store.get('end'),
362
+ };
363
+ updateMissingAndRange(items, missing, range);
364
+ toUpdate = Object.assign(Object.assign(Object.assign({}, toUpdate), { items: [...items] }), range);
365
+ this.setViewport(Object.assign({}, toUpdate));
366
+ }
367
+ }
368
+ }
369
+ /**
370
+ * Set sizes for existing items
371
+ */
372
+ setOriginalSizes(size) {
373
+ const items = this.store.get('items');
374
+ const count = items.length;
375
+ // viewport not inited
376
+ if (!count) {
377
+ return;
378
+ }
379
+ data_store.setStore(this.store, {
380
+ items: setItemSizes(items, this.store.get('start'), size, this.lastCoordinate),
381
+ });
382
+ }
383
+ getItems() {
384
+ return {
385
+ items: this.store.get('items'),
386
+ start: this.store.get('start'),
387
+ end: this.store.get('end'),
388
+ };
389
+ }
390
+ setViewport(data) {
391
+ // drop items on virtual size change, require a new item set
392
+ // drop items on real size change, require a new item set
393
+ if (typeof data.realCount === 'number' || typeof data.virtualSize === 'number') {
394
+ data = Object.assign(Object.assign({}, data), { items: data.items || [] });
395
+ }
396
+ data_store.setStore(this.store, data);
397
+ }
398
+ }
399
+
400
+ const LETTER_BLOCK_SIZE = 10;
401
+ const calculateRowHeaderSize = (itemsLength, rowHeaderColumn, minWidth = 50) => {
402
+ return ((rowHeaderColumn === null || rowHeaderColumn === void 0 ? void 0 : rowHeaderColumn.size) ||
403
+ Math.max((itemsLength.toString().length + 1) * LETTER_BLOCK_SIZE, minWidth));
404
+ };
405
+
406
+ exports.ViewportStore = ViewportStore;
407
+ exports.addMissingItems = addMissingItems;
408
+ exports.calculateRowHeaderSize = calculateRowHeaderSize;
409
+ exports.getFirstItem = getFirstItem;
410
+ exports.getItems = getItems;
411
+ exports.getLastItem = getLastItem;
412
+ exports.getUpdatedItemsByPosition = getUpdatedItemsByPosition;
413
+ exports.isActiveRange = isActiveRange;
414
+ exports.isActiveRangeOutsideLastItem = isActiveRangeOutsideLastItem;
415
+ exports.recombineByOffset = recombineByOffset;
416
+ exports.setItemSizes = setItemSizes;
417
+ exports.updateMissingAndRange = updateMissingAndRange;
418
+ //# sourceMappingURL=row-header-utils-DL640c7x.js.map
419
+
420
+ //# sourceMappingURL=row-header-utils-DL640c7x.js.map