apex-grid 1.0.1 → 2.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 (453) hide show
  1. package/LICENSE +76 -5
  2. package/README.md +520 -10
  3. package/components/cell.d.ts +74 -0
  4. package/components/cell.js +376 -0
  5. package/components/cell.js.map +1 -0
  6. package/{dist/src/components → components}/filter-row.d.ts +13 -12
  7. package/components/filter-row.js +396 -0
  8. package/components/filter-row.js.map +1 -0
  9. package/components/grid.d.ts +1173 -0
  10. package/components/grid.js +620 -0
  11. package/components/grid.js.map +1 -0
  12. package/components/header-row.d.ts +43 -0
  13. package/components/header-row.js +205 -0
  14. package/components/header-row.js.map +1 -0
  15. package/{dist/src/components → components}/header.d.ts +11 -5
  16. package/components/header.js +263 -0
  17. package/components/header.js.map +1 -0
  18. package/components/paginator.d.ts +56 -0
  19. package/components/paginator.js +148 -0
  20. package/components/paginator.js.map +1 -0
  21. package/components/row.d.ts +43 -0
  22. package/components/row.js +239 -0
  23. package/components/row.js.map +1 -0
  24. package/components/toolbar.d.ts +60 -0
  25. package/components/toolbar.js +275 -0
  26. package/components/toolbar.js.map +1 -0
  27. package/{dist/src/components → components}/virtualizer.d.ts +2 -3
  28. package/{dist/src/components → components}/virtualizer.js +3 -3
  29. package/components/virtualizer.js.map +1 -0
  30. package/controllers/data-operation.d.ts +31 -0
  31. package/controllers/data-operation.js +53 -0
  32. package/controllers/data-operation.js.map +1 -0
  33. package/controllers/dom.d.ts +55 -0
  34. package/controllers/dom.js +221 -0
  35. package/controllers/dom.js.map +1 -0
  36. package/controllers/editing.d.ts +130 -0
  37. package/controllers/editing.js +197 -0
  38. package/controllers/editing.js.map +1 -0
  39. package/controllers/expansion.d.ts +68 -0
  40. package/controllers/expansion.js +126 -0
  41. package/controllers/expansion.js.map +1 -0
  42. package/{dist/src/controllers → controllers}/filter.d.ts +2 -3
  43. package/controllers/filter.js +105 -0
  44. package/controllers/filter.js.map +1 -0
  45. package/{dist/src/controllers → controllers}/navigation.d.ts +18 -8
  46. package/{dist/src/controllers → controllers}/navigation.js +31 -20
  47. package/controllers/navigation.js.map +1 -0
  48. package/controllers/pagination.d.ts +102 -0
  49. package/controllers/pagination.js +106 -0
  50. package/controllers/pagination.js.map +1 -0
  51. package/controllers/reorder.d.ts +78 -0
  52. package/controllers/reorder.js +124 -0
  53. package/controllers/reorder.js.map +1 -0
  54. package/{dist/src/controllers → controllers}/resize.d.ts +2 -3
  55. package/controllers/resize.js +52 -0
  56. package/controllers/resize.js.map +1 -0
  57. package/controllers/selection.d.ts +109 -0
  58. package/controllers/selection.js +168 -0
  59. package/controllers/selection.js.map +1 -0
  60. package/{dist/src/controllers → controllers}/sort.d.ts +1 -2
  61. package/controllers/sort.js +122 -0
  62. package/controllers/sort.js.map +1 -0
  63. package/controllers/state.d.ts +56 -0
  64. package/controllers/state.js +74 -0
  65. package/controllers/state.js.map +1 -0
  66. package/controllers/tree.d.ts +87 -0
  67. package/controllers/tree.js +0 -0
  68. package/controllers/tree.js.map +1 -0
  69. package/custom-elements.json +6901 -1554
  70. package/{dist/src/define.d.ts → define.d.ts} +0 -1
  71. package/define.js.map +1 -0
  72. package/docs/assets/hierarchy.js +1 -0
  73. package/docs/assets/highlight.css +127 -0
  74. package/docs/assets/icons.js +18 -0
  75. package/docs/assets/icons.svg +1 -0
  76. package/docs/assets/main.js +60 -0
  77. package/docs/assets/navigation.js +1 -0
  78. package/docs/assets/search.js +1 -0
  79. package/docs/assets/style.css +1633 -0
  80. package/docs/classes/ApexGrid.html +371 -0
  81. package/docs/functions/setup.html +22 -0
  82. package/docs/hierarchy.html +1 -0
  83. package/docs/index.html +504 -0
  84. package/docs/interfaces/ApexCellValueChangedEvent.html +11 -0
  85. package/docs/interfaces/ApexCellValueChangingEvent.html +13 -0
  86. package/docs/interfaces/ApexColumnMovedEvent.html +8 -0
  87. package/docs/interfaces/ApexColumnMovingEvent.html +11 -0
  88. package/docs/interfaces/ApexColumnPinnedEvent.html +6 -0
  89. package/docs/interfaces/ApexColumnPinningEvent.html +8 -0
  90. package/docs/interfaces/ApexDetailContext.html +8 -0
  91. package/docs/interfaces/ApexFilteredEvent.html +6 -0
  92. package/docs/interfaces/ApexFilteringEvent.html +12 -0
  93. package/docs/interfaces/ApexGridEventMap.html +68 -0
  94. package/docs/interfaces/ApexHeaderContext.html +6 -0
  95. package/docs/interfaces/ApexPageChangedEvent.html +10 -0
  96. package/docs/interfaces/ApexPageChangingEvent.html +10 -0
  97. package/docs/interfaces/ApexQuickFilterChangedEvent.html +4 -0
  98. package/docs/interfaces/ApexQuickFilterChangingEvent.html +6 -0
  99. package/docs/interfaces/ApexRowEditEndedEvent.html +6 -0
  100. package/docs/interfaces/ApexRowEditStartedEvent.html +4 -0
  101. package/docs/interfaces/ApexRowExpandedEvent.html +8 -0
  102. package/docs/interfaces/ApexRowExpandingEvent.html +11 -0
  103. package/docs/interfaces/ApexRowSelectedEvent.html +8 -0
  104. package/docs/interfaces/ApexRowSelectingEvent.html +11 -0
  105. package/docs/interfaces/ApexTreeRowExpandedEvent.html +8 -0
  106. package/docs/interfaces/ApexTreeRowExpandingEvent.html +10 -0
  107. package/docs/interfaces/BaseApexCellContext.html +16 -0
  108. package/docs/interfaces/BaseApexEditorContext.html +19 -0
  109. package/docs/interfaces/BaseColumnConfiguration.html +83 -0
  110. package/docs/interfaces/BaseColumnSortConfiguration.html +6 -0
  111. package/docs/interfaces/BaseFilterExpression.html +15 -0
  112. package/docs/interfaces/BaseSortExpression.html +12 -0
  113. package/docs/interfaces/CSVExportOptions.html +22 -0
  114. package/docs/interfaces/ColumnFilterConfiguration.html +4 -0
  115. package/docs/interfaces/DataPipelineConfiguration.html +15 -0
  116. package/docs/interfaces/ExportOptions.html +15 -0
  117. package/docs/interfaces/GridEditingConfiguration.html +10 -0
  118. package/docs/interfaces/GridExpansionConfiguration.html +15 -0
  119. package/docs/interfaces/GridSelectionConfiguration.html +11 -0
  120. package/docs/interfaces/GridSortConfiguration.html +6 -0
  121. package/docs/interfaces/GridTreeConfiguration.html +33 -0
  122. package/docs/interfaces/PaginationConfiguration.html +18 -0
  123. package/docs/interfaces/PaginationState.html +10 -0
  124. package/docs/interfaces/XLSXExportOptions.html +17 -0
  125. package/docs/media/package.json +83 -0
  126. package/docs/media/publish.yml +111 -0
  127. package/docs/modules.html +1 -0
  128. package/docs/types/ApexCellContext.html +2 -0
  129. package/docs/types/ApexEditorContext.html +2 -0
  130. package/docs/types/BasePropertyType.html +2 -0
  131. package/docs/types/BaseSortComparer.html +2 -0
  132. package/docs/types/ColumnConfiguration.html +2 -0
  133. package/docs/types/ColumnDropPosition.html +2 -0
  134. package/docs/types/ColumnSortConfiguration.html +2 -0
  135. package/docs/types/DataPipelineHook.html +2 -0
  136. package/docs/types/DataPipelineParams.html +8 -0
  137. package/docs/types/DataType.html +30 -0
  138. package/docs/types/EditMode.html +6 -0
  139. package/docs/types/EditTrigger.html +4 -0
  140. package/docs/types/ExportCellValue.html +5 -0
  141. package/docs/types/ExportSource.html +8 -0
  142. package/docs/types/FilterCriteria.html +6 -0
  143. package/docs/types/FilterExpression.html +2 -0
  144. package/docs/types/Keys.html +2 -0
  145. package/docs/types/PaginationMode.html +6 -0
  146. package/docs/types/PinPosition.html +5 -0
  147. package/docs/types/PropertyType.html +2 -0
  148. package/docs/types/SelectionMode.html +7 -0
  149. package/docs/types/SortComparer.html +2 -0
  150. package/docs/types/SortExpression.html +2 -0
  151. package/docs/types/SortState.html +2 -0
  152. package/docs/types/SortingDirection.html +3 -0
  153. package/index.d.ts +11 -0
  154. package/{dist/src/index.js → index.js} +1 -0
  155. package/index.js.map +1 -0
  156. package/internal/column-types.d.ts +94 -0
  157. package/internal/column-types.js +268 -0
  158. package/internal/column-types.js.map +1 -0
  159. package/{dist/src/internal → internal}/constants.d.ts +0 -1
  160. package/internal/constants.js.map +1 -0
  161. package/internal/export.d.ts +106 -0
  162. package/internal/export.js +122 -0
  163. package/internal/export.js.map +1 -0
  164. package/internal/flip.d.ts +80 -0
  165. package/internal/flip.js +52 -0
  166. package/internal/flip.js.map +1 -0
  167. package/internal/icons.d.ts +24 -0
  168. package/internal/icons.js +134 -0
  169. package/internal/icons.js.map +1 -0
  170. package/{dist/src/internal → internal}/is-defined.d.ts +0 -1
  171. package/internal/is-defined.js.map +1 -0
  172. package/{dist/src/internal → internal}/mixins/event-emitter.d.ts +0 -1
  173. package/internal/mixins/event-emitter.js.map +1 -0
  174. package/{dist/src/internal → internal}/normalize-case.d.ts +0 -1
  175. package/internal/normalize-case.js.map +1 -0
  176. package/{dist/src/internal → internal}/part-map.d.ts +0 -1
  177. package/{dist/src/internal → internal}/part-map.js +1 -1
  178. package/internal/part-map.js.map +1 -0
  179. package/{dist/src/internal → internal}/register.d.ts +3 -4
  180. package/internal/register.js +9 -0
  181. package/internal/register.js.map +1 -0
  182. package/{dist/src/internal → internal}/tags.d.ts +2 -1
  183. package/{dist/src/internal → internal}/tags.js +2 -0
  184. package/internal/tags.js.map +1 -0
  185. package/internal/theming.d.ts +34 -0
  186. package/internal/theming.js +123 -0
  187. package/internal/theming.js.map +1 -0
  188. package/internal/types.d.ts +619 -0
  189. package/internal/types.js.map +1 -0
  190. package/internal/utils.d.ts +29 -0
  191. package/internal/utils.js +75 -0
  192. package/internal/utils.js.map +1 -0
  193. package/{dist/src/internal → internal}/watch.d.ts +0 -1
  194. package/{dist/src/internal → internal}/watch.js +2 -2
  195. package/internal/watch.js.map +1 -0
  196. package/internal/xlsx.d.ts +22 -0
  197. package/internal/xlsx.js +228 -0
  198. package/internal/xlsx.js.map +1 -0
  199. package/{dist/src/operations → operations}/base.d.ts +0 -1
  200. package/operations/base.js.map +1 -0
  201. package/{dist/src/operations → operations}/filter/operands/boolean.d.ts +0 -1
  202. package/{dist/src/operations → operations}/filter/operands/boolean.js +5 -5
  203. package/operations/filter/operands/boolean.js.map +1 -0
  204. package/{dist/src/operations → operations}/filter/operands/number.d.ts +0 -1
  205. package/{dist/src/operations → operations}/filter/operands/number.js +2 -2
  206. package/operations/filter/operands/number.js.map +1 -0
  207. package/{dist/src/operations → operations}/filter/operands/string.d.ts +0 -1
  208. package/{dist/src/operations → operations}/filter/operands/string.js +2 -2
  209. package/operations/filter/operands/string.js.map +1 -0
  210. package/{dist/src/operations → operations}/filter/state.d.ts +1 -2
  211. package/{dist/src/operations → operations}/filter/state.js +3 -4
  212. package/operations/filter/state.js.map +1 -0
  213. package/{dist/src/operations → operations}/filter/tree.d.ts +1 -2
  214. package/{dist/src/operations → operations}/filter/tree.js +5 -6
  215. package/operations/filter/tree.js.map +1 -0
  216. package/{dist/src/operations → operations}/filter/types.d.ts +0 -1
  217. package/operations/filter/types.js.map +1 -0
  218. package/{dist/src/operations → operations}/filter.d.ts +0 -1
  219. package/{dist/src/operations → operations}/filter.js +4 -7
  220. package/operations/filter.js.map +1 -0
  221. package/operations/pagination.d.ts +19 -0
  222. package/operations/pagination.js +12 -0
  223. package/operations/pagination.js.map +1 -0
  224. package/operations/quick-filter.d.ts +21 -0
  225. package/operations/quick-filter.js +26 -0
  226. package/operations/quick-filter.js.map +1 -0
  227. package/{dist/src/operations → operations}/sort/types.d.ts +0 -1
  228. package/operations/sort/types.js.map +1 -0
  229. package/{dist/src/operations → operations}/sort.d.ts +0 -1
  230. package/{dist/src/operations → operations}/sort.js +5 -5
  231. package/operations/sort.js.map +1 -0
  232. package/package.json +25 -83
  233. package/setup.d.ts +58 -0
  234. package/setup.js +29 -0
  235. package/setup.js.map +1 -0
  236. package/{dist/src/styles/body-row/body-row-styles.css.d.ts → styles/_common.css.d.ts} +0 -1
  237. package/styles/_common.css.js +3 -0
  238. package/styles/_common.css.js.map +1 -0
  239. package/{dist/src/styles/body-cell/body-cell-styles.css.d.ts → styles/body-cell/body-cell.css.d.ts} +0 -1
  240. package/styles/body-cell/body-cell.css.js +3 -0
  241. package/styles/body-cell/body-cell.css.js.map +1 -0
  242. package/{dist/src/styles/filter-row/filter-row-styles.css.d.ts → styles/body-row/body-row.css.d.ts} +0 -1
  243. package/styles/body-row/body-row.css.js +3 -0
  244. package/styles/body-row/body-row.css.js.map +1 -0
  245. package/{dist/src/styles/grid/themes/light/grid.fluent-styles.css.d.ts → styles/filter-row/filter-row.css.d.ts} +0 -1
  246. package/styles/filter-row/filter-row.css.js +3 -0
  247. package/styles/filter-row/filter-row.css.js.map +1 -0
  248. package/styles/grid/_grid.base.css.d.ts +1 -0
  249. package/styles/grid/_grid.base.css.js +3 -0
  250. package/styles/grid/_grid.base.css.js.map +1 -0
  251. package/styles/grid/themes/light/grid.bootstrap.css.d.ts +1 -0
  252. package/styles/grid/themes/light/grid.bootstrap.css.js +3 -0
  253. package/styles/grid/themes/light/grid.bootstrap.css.js.map +1 -0
  254. package/styles/grid/themes/light/grid.fluent.css.d.ts +1 -0
  255. package/styles/grid/themes/light/grid.fluent.css.js +3 -0
  256. package/styles/grid/themes/light/grid.fluent.css.js.map +1 -0
  257. package/styles/grid/themes/light/grid.indigo.css.d.ts +1 -0
  258. package/styles/grid/themes/light/grid.indigo.css.js +3 -0
  259. package/styles/grid/themes/light/grid.indigo.css.js.map +1 -0
  260. package/styles/grid/themes/light/grid.material.css.d.ts +1 -0
  261. package/styles/grid/themes/light/grid.material.css.js +3 -0
  262. package/styles/grid/themes/light/grid.material.css.js.map +1 -0
  263. package/styles/header-cell/header-cell.css.d.ts +1 -0
  264. package/styles/header-cell/header-cell.css.js +3 -0
  265. package/styles/header-cell/header-cell.css.js.map +1 -0
  266. package/styles/header-row/header-row.base.css.d.ts +1 -0
  267. package/styles/header-row/header-row.base.css.js +3 -0
  268. package/styles/header-row/header-row.base.css.js.map +1 -0
  269. package/styles/paginator/paginator.css.d.ts +1 -0
  270. package/styles/paginator/paginator.css.js +3 -0
  271. package/styles/paginator/paginator.css.js.map +1 -0
  272. package/styles/toolbar/toolbar.css.d.ts +1 -0
  273. package/styles/toolbar/toolbar.css.js +3 -0
  274. package/styles/toolbar/toolbar.css.js.map +1 -0
  275. package/styles.css +17 -0
  276. package/dist/bundle.js +0 -2194
  277. package/dist/docs/assets/highlight.css +0 -43
  278. package/dist/docs/assets/main.js +0 -58
  279. package/dist/docs/assets/search.js +0 -1
  280. package/dist/docs/assets/style.css +0 -1365
  281. package/dist/docs/classes/ApexGrid.html +0 -327
  282. package/dist/docs/index.html +0 -82
  283. package/dist/docs/interfaces/ApexFilteredEvent.html +0 -104
  284. package/dist/docs/interfaces/ApexFilteringEvent.html +0 -116
  285. package/dist/docs/interfaces/ApexGridEventMap.html +0 -127
  286. package/dist/docs/interfaces/ApexHeaderContext.html +0 -104
  287. package/dist/docs/interfaces/BaseApexCellContext.html +0 -120
  288. package/dist/docs/interfaces/BaseColumnConfiguration.html +0 -196
  289. package/dist/docs/interfaces/BaseColumnSortConfiguration.html +0 -106
  290. package/dist/docs/interfaces/BaseFilterExpression.html +0 -132
  291. package/dist/docs/interfaces/BaseSortExpression.html +0 -124
  292. package/dist/docs/interfaces/ColumnFilterConfiguration.html +0 -92
  293. package/dist/docs/interfaces/DataPipelineConfiguration.html +0 -104
  294. package/dist/docs/interfaces/GridSortConfiguration.html +0 -99
  295. package/dist/docs/modules.html +0 -102
  296. package/dist/docs/types/ApexCellContext.html +0 -74
  297. package/dist/docs/types/BasePropertyType.html +0 -74
  298. package/dist/docs/types/BaseSortComparer.html +0 -89
  299. package/dist/docs/types/ColumnConfiguration.html +0 -74
  300. package/dist/docs/types/ColumnSortConfiguration.html +0 -74
  301. package/dist/docs/types/DataPipelineHook.html +0 -85
  302. package/dist/docs/types/DataPipelineParams.html +0 -87
  303. package/dist/docs/types/DataType.html +0 -67
  304. package/dist/docs/types/FilterCriteria.html +0 -71
  305. package/dist/docs/types/FilterExpression.html +0 -74
  306. package/dist/docs/types/Keys.html +0 -72
  307. package/dist/docs/types/PropertyType.html +0 -74
  308. package/dist/docs/types/SortComparer.html +0 -74
  309. package/dist/docs/types/SortExpression.html +0 -74
  310. package/dist/docs/types/SortState.html +0 -72
  311. package/dist/docs/types/SortingDirection.html +0 -69
  312. package/dist/src/components/cell.d.ts +0 -36
  313. package/dist/src/components/cell.d.ts.map +0 -1
  314. package/dist/src/components/cell.js +0 -55
  315. package/dist/src/components/cell.js.map +0 -1
  316. package/dist/src/components/filter-row.d.ts.map +0 -1
  317. package/dist/src/components/filter-row.js +0 -316
  318. package/dist/src/components/filter-row.js.map +0 -1
  319. package/dist/src/components/grid.d.ts +0 -226
  320. package/dist/src/components/grid.d.ts.map +0 -1
  321. package/dist/src/components/grid.js +0 -309
  322. package/dist/src/components/grid.js.map +0 -1
  323. package/dist/src/components/header-row.d.ts +0 -24
  324. package/dist/src/components/header-row.d.ts.map +0 -1
  325. package/dist/src/components/header-row.js +0 -78
  326. package/dist/src/components/header-row.js.map +0 -1
  327. package/dist/src/components/header.d.ts.map +0 -1
  328. package/dist/src/components/header.js +0 -144
  329. package/dist/src/components/header.js.map +0 -1
  330. package/dist/src/components/row.d.ts +0 -25
  331. package/dist/src/components/row.d.ts.map +0 -1
  332. package/dist/src/components/row.js +0 -68
  333. package/dist/src/components/row.js.map +0 -1
  334. package/dist/src/components/virtualizer.d.ts.map +0 -1
  335. package/dist/src/components/virtualizer.js.map +0 -1
  336. package/dist/src/controllers/data-operation.d.ts +0 -18
  337. package/dist/src/controllers/data-operation.d.ts.map +0 -1
  338. package/dist/src/controllers/data-operation.js +0 -37
  339. package/dist/src/controllers/data-operation.js.map +0 -1
  340. package/dist/src/controllers/dom.d.ts +0 -20
  341. package/dist/src/controllers/dom.d.ts.map +0 -1
  342. package/dist/src/controllers/dom.js +0 -60
  343. package/dist/src/controllers/dom.js.map +0 -1
  344. package/dist/src/controllers/filter.d.ts.map +0 -1
  345. package/dist/src/controllers/filter.js +0 -119
  346. package/dist/src/controllers/filter.js.map +0 -1
  347. package/dist/src/controllers/navigation.d.ts.map +0 -1
  348. package/dist/src/controllers/navigation.js.map +0 -1
  349. package/dist/src/controllers/resize.d.ts.map +0 -1
  350. package/dist/src/controllers/resize.js +0 -70
  351. package/dist/src/controllers/resize.js.map +0 -1
  352. package/dist/src/controllers/sort.d.ts.map +0 -1
  353. package/dist/src/controllers/sort.js +0 -94
  354. package/dist/src/controllers/sort.js.map +0 -1
  355. package/dist/src/controllers/state.d.ts +0 -25
  356. package/dist/src/controllers/state.d.ts.map +0 -1
  357. package/dist/src/controllers/state.js +0 -40
  358. package/dist/src/controllers/state.js.map +0 -1
  359. package/dist/src/define.d.ts.map +0 -1
  360. package/dist/src/define.js.map +0 -1
  361. package/dist/src/index.d.ts +0 -9
  362. package/dist/src/index.d.ts.map +0 -1
  363. package/dist/src/index.js.map +0 -1
  364. package/dist/src/internal/constants.d.ts.map +0 -1
  365. package/dist/src/internal/constants.js.map +0 -1
  366. package/dist/src/internal/icon-registry.d.ts +0 -2
  367. package/dist/src/internal/icon-registry.d.ts.map +0 -1
  368. package/dist/src/internal/icon-registry.js +0 -29
  369. package/dist/src/internal/icon-registry.js.map +0 -1
  370. package/dist/src/internal/is-defined.d.ts.map +0 -1
  371. package/dist/src/internal/is-defined.js.map +0 -1
  372. package/dist/src/internal/mixins/event-emitter.d.ts.map +0 -1
  373. package/dist/src/internal/mixins/event-emitter.js.map +0 -1
  374. package/dist/src/internal/normalize-case.d.ts.map +0 -1
  375. package/dist/src/internal/normalize-case.js.map +0 -1
  376. package/dist/src/internal/part-map.d.ts.map +0 -1
  377. package/dist/src/internal/part-map.js.map +0 -1
  378. package/dist/src/internal/register.d.ts.map +0 -1
  379. package/dist/src/internal/register.js +0 -9
  380. package/dist/src/internal/register.js.map +0 -1
  381. package/dist/src/internal/tags.d.ts.map +0 -1
  382. package/dist/src/internal/tags.js.map +0 -1
  383. package/dist/src/internal/types.d.ts +0 -199
  384. package/dist/src/internal/types.d.ts.map +0 -1
  385. package/dist/src/internal/types.js.map +0 -1
  386. package/dist/src/internal/utils.d.ts +0 -7
  387. package/dist/src/internal/utils.d.ts.map +0 -1
  388. package/dist/src/internal/utils.js +0 -37
  389. package/dist/src/internal/utils.js.map +0 -1
  390. package/dist/src/internal/watch.d.ts.map +0 -1
  391. package/dist/src/internal/watch.js.map +0 -1
  392. package/dist/src/operations/base.d.ts.map +0 -1
  393. package/dist/src/operations/base.js.map +0 -1
  394. package/dist/src/operations/filter/operands/boolean.d.ts.map +0 -1
  395. package/dist/src/operations/filter/operands/boolean.js.map +0 -1
  396. package/dist/src/operations/filter/operands/number.d.ts.map +0 -1
  397. package/dist/src/operations/filter/operands/number.js.map +0 -1
  398. package/dist/src/operations/filter/operands/string.d.ts.map +0 -1
  399. package/dist/src/operations/filter/operands/string.js.map +0 -1
  400. package/dist/src/operations/filter/state.d.ts.map +0 -1
  401. package/dist/src/operations/filter/state.js.map +0 -1
  402. package/dist/src/operations/filter/tree.d.ts.map +0 -1
  403. package/dist/src/operations/filter/tree.js.map +0 -1
  404. package/dist/src/operations/filter/types.d.ts.map +0 -1
  405. package/dist/src/operations/filter/types.js.map +0 -1
  406. package/dist/src/operations/filter.d.ts.map +0 -1
  407. package/dist/src/operations/filter.js.map +0 -1
  408. package/dist/src/operations/sort/types.d.ts.map +0 -1
  409. package/dist/src/operations/sort/types.js.map +0 -1
  410. package/dist/src/operations/sort.d.ts.map +0 -1
  411. package/dist/src/operations/sort.js.map +0 -1
  412. package/dist/src/styles/body-cell/body-cell-styles.css.d.ts.map +0 -1
  413. package/dist/src/styles/body-cell/body-cell-styles.css.js +0 -71
  414. package/dist/src/styles/body-cell/body-cell-styles.css.js.map +0 -1
  415. package/dist/src/styles/body-row/body-row-styles.css.d.ts.map +0 -1
  416. package/dist/src/styles/body-row/body-row-styles.css.js +0 -38
  417. package/dist/src/styles/body-row/body-row-styles.css.js.map +0 -1
  418. package/dist/src/styles/filter-row/filter-row-styles.css.d.ts.map +0 -1
  419. package/dist/src/styles/filter-row/filter-row-styles.css.js +0 -96
  420. package/dist/src/styles/filter-row/filter-row-styles.css.js.map +0 -1
  421. package/dist/src/styles/grid/themes/light/grid.bootstrap-styles.css.d.ts +0 -2
  422. package/dist/src/styles/grid/themes/light/grid.bootstrap-styles.css.d.ts.map +0 -1
  423. package/dist/src/styles/grid/themes/light/grid.bootstrap-styles.css.js +0 -83
  424. package/dist/src/styles/grid/themes/light/grid.bootstrap-styles.css.js.map +0 -1
  425. package/dist/src/styles/grid/themes/light/grid.fluent-styles.css.d.ts.map +0 -1
  426. package/dist/src/styles/grid/themes/light/grid.fluent-styles.css.js +0 -83
  427. package/dist/src/styles/grid/themes/light/grid.fluent-styles.css.js.map +0 -1
  428. package/dist/src/styles/grid/themes/light/grid.indigo-styles.css.d.ts +0 -2
  429. package/dist/src/styles/grid/themes/light/grid.indigo-styles.css.d.ts.map +0 -1
  430. package/dist/src/styles/grid/themes/light/grid.indigo-styles.css.js +0 -83
  431. package/dist/src/styles/grid/themes/light/grid.indigo-styles.css.js.map +0 -1
  432. package/dist/src/styles/grid/themes/light/grid.material-styles.css.d.ts +0 -2
  433. package/dist/src/styles/grid/themes/light/grid.material-styles.css.d.ts.map +0 -1
  434. package/dist/src/styles/grid/themes/light/grid.material-styles.css.js +0 -83
  435. package/dist/src/styles/grid/themes/light/grid.material-styles.css.js.map +0 -1
  436. package/dist/src/styles/header-cell/header-cell-styles.css.d.ts +0 -2
  437. package/dist/src/styles/header-cell/header-cell-styles.css.d.ts.map +0 -1
  438. package/dist/src/styles/header-cell/header-cell-styles.css.js +0 -141
  439. package/dist/src/styles/header-cell/header-cell-styles.css.js.map +0 -1
  440. package/dist/src/styles/header-row/header-row.base-styles.css.d.ts +0 -2
  441. package/dist/src/styles/header-row/header-row.base-styles.css.d.ts.map +0 -1
  442. package/dist/src/styles/header-row/header-row.base-styles.css.js +0 -35
  443. package/dist/src/styles/header-row/header-row.base-styles.css.js.map +0 -1
  444. /package/{dist/src/define.js → define.js} +0 -0
  445. /package/{dist/docs → docs}/.nojekyll +0 -0
  446. /package/{dist/src/internal → internal}/constants.js +0 -0
  447. /package/{dist/src/internal → internal}/is-defined.js +0 -0
  448. /package/{dist/src/internal → internal}/mixins/event-emitter.js +0 -0
  449. /package/{dist/src/internal → internal}/normalize-case.js +0 -0
  450. /package/{dist/src/internal → internal}/types.js +0 -0
  451. /package/{dist/src/operations → operations}/base.js +0 -0
  452. /package/{dist/src/operations → operations}/filter/types.js +0 -0
  453. /package/{dist/src/operations → operations}/sort/types.js +0 -0
@@ -0,0 +1,620 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { ContextProvider } from '@lit/context';
8
+ import { html, nothing } from 'lit';
9
+ import { eventOptions, property, query, queryAll, state } from 'lit/decorators.js';
10
+ import { styleMap } from 'lit/directives/style-map.js';
11
+ import { DataOperationsController } from '../controllers/data-operation.js';
12
+ import { GridDOMController } from '../controllers/dom.js';
13
+ import { gridStateContext, StateController } from '../controllers/state.js';
14
+ import { DEFAULT_COLUMN_CONFIG, PIPELINE } from '../internal/constants.js';
15
+ import { buildCSV, downloadBlob, getColumnLabel, resolveExportColumns, resolveExportRows, resolveExportValue, } from '../internal/export.js';
16
+ import { EventEmitterBase } from '../internal/mixins/event-emitter.js';
17
+ import { registerComponent } from '../internal/register.js';
18
+ import { GRID_TAG } from '../internal/tags.js';
19
+ import { addThemingController } from '../internal/theming.js';
20
+ import { asArray, autoGenerateColumns, getDisplayColumns, getFilterOperandsFor, } from '../internal/utils.js';
21
+ import { watch } from '../internal/watch.js';
22
+ import { buildXLSX } from '../internal/xlsx.js';
23
+ import { styles as bootstrap } from '../styles/grid/themes/light/grid.bootstrap.css.js';
24
+ import { styles as fluent } from '../styles/grid/themes/light/grid.fluent.css.js';
25
+ import { styles as indigo } from '../styles/grid/themes/light/grid.indigo.css.js';
26
+ import { styles as material } from '../styles/grid/themes/light/grid.material.css.js';
27
+ import ApexGridCell from './cell.js';
28
+ import ApexFilterRow from './filter-row.js';
29
+ import ApexGridHeaderRow from './header-row.js';
30
+ import ApexGridPaginator from './paginator.js';
31
+ import ApexGridRow from './row.js';
32
+ import ApexGridToolbar from './toolbar.js';
33
+ import ApexVirtualizer from './virtualizer.js';
34
+ export class ApexGrid extends EventEmitterBase {
35
+ static get tagName() {
36
+ return GRID_TAG;
37
+ }
38
+ static { this.styles = bootstrap; }
39
+ static register() {
40
+ registerComponent(ApexGrid, ApexVirtualizer, ApexGridRow, ApexGridHeaderRow, ApexFilterRow, ApexGridPaginator, ApexGridToolbar);
41
+ }
42
+ get selectedRows() {
43
+ return this.stateController.selection.selectedRows();
44
+ }
45
+ set selectedRows(rows) {
46
+ void this.stateController.selection.replaceSelection(rows);
47
+ }
48
+ selectRow(row) {
49
+ return this.stateController.selection.selectRow(row);
50
+ }
51
+ deselectRow(row) {
52
+ return this.stateController.selection.deselectRow(row);
53
+ }
54
+ toggleRowSelection(row) {
55
+ return this.stateController.selection.toggleRow(row);
56
+ }
57
+ selectAllRows() {
58
+ return this.stateController.selection.selectAll();
59
+ }
60
+ clearSelection() {
61
+ return this.stateController.selection.clear();
62
+ }
63
+ isRowSelected(row) {
64
+ return this.stateController.selection.isSelected(row);
65
+ }
66
+ get expandedRows() {
67
+ return this.stateController.expansion.expandedRows();
68
+ }
69
+ set expandedRows(rows) {
70
+ void this.stateController.expansion.replaceExpansion(rows);
71
+ }
72
+ expandRow(row) {
73
+ return this.stateController.expansion.expandRow(row);
74
+ }
75
+ collapseRow(row) {
76
+ return this.stateController.expansion.collapseRow(row);
77
+ }
78
+ toggleRowExpansion(row) {
79
+ return this.stateController.expansion.toggleRow(row);
80
+ }
81
+ expandAllRows() {
82
+ return this.stateController.expansion.expandAll();
83
+ }
84
+ collapseAllRows() {
85
+ return this.stateController.expansion.collapseAll();
86
+ }
87
+ isRowExpanded(row) {
88
+ return this.stateController.expansion.isExpanded(row);
89
+ }
90
+ toggleTreeRow(row) {
91
+ return this.stateController.tree.toggleRow(row);
92
+ }
93
+ expandTreeRow(row) {
94
+ return this.stateController.tree.expandRow(row);
95
+ }
96
+ collapseTreeRow(row) {
97
+ return this.stateController.tree.collapseRow(row);
98
+ }
99
+ expandAllTreeRows() {
100
+ return this.stateController.tree.expandAll();
101
+ }
102
+ collapseAllTreeRows() {
103
+ return this.stateController.tree.collapseAll();
104
+ }
105
+ isTreeRowExpanded(row) {
106
+ return this.stateController.tree.isExpanded(row);
107
+ }
108
+ set sortExpressions(expressions) {
109
+ if (expressions.length) {
110
+ this.sort(expressions);
111
+ }
112
+ }
113
+ get sortExpressions() {
114
+ return Array.from(this.stateController.sorting.state.values());
115
+ }
116
+ set filterExpressions(expressions) {
117
+ if (expressions.length) {
118
+ this.filter(expressions);
119
+ }
120
+ }
121
+ get filterExpressions() {
122
+ const expressions = [];
123
+ for (const each of this.stateController.filtering.state.values) {
124
+ expressions.push(...each.all);
125
+ }
126
+ return expressions;
127
+ }
128
+ get rows() {
129
+ return Array.from(this._rows);
130
+ }
131
+ get dataView() {
132
+ return this.dataState;
133
+ }
134
+ get displayColumns() {
135
+ return getDisplayColumns(this.columns);
136
+ }
137
+ get totalItems() {
138
+ if (this.pagination?.mode === 'remote') {
139
+ return Math.max(0, this.pagination?.totalItems ?? 0);
140
+ }
141
+ return this.dataState.length;
142
+ }
143
+ get pageItems() {
144
+ if (!this.stateController.pagination.enabled)
145
+ return this.dataState;
146
+ if (this.pagination?.mode === 'remote')
147
+ return this.dataState;
148
+ const { page, pageSize } = this.stateController.pagination;
149
+ if (!pageSize)
150
+ return this.dataState;
151
+ const start = page * pageSize;
152
+ return this.dataState.slice(start, start + pageSize);
153
+ }
154
+ get page() {
155
+ return this.stateController.pagination.page;
156
+ }
157
+ set page(value) {
158
+ this.stateController.pagination.gotoPage(value);
159
+ }
160
+ get pageSize() {
161
+ return this.stateController.pagination.pageSize;
162
+ }
163
+ set pageSize(value) {
164
+ this.stateController.pagination.setPageSize(value);
165
+ }
166
+ get pageCount() {
167
+ return this.stateController.pagination.pageCount;
168
+ }
169
+ watchColumns(_, newConfig = []) {
170
+ this.columns = newConfig.map((config) => ({ ...DEFAULT_COLUMN_CONFIG, ...config }));
171
+ }
172
+ dataChanged() {
173
+ let next = [...this.data];
174
+ autoGenerateColumns(this);
175
+ this.stateController?.tree?.resetForDataChange();
176
+ if (this.stateController?.tree?.enabled) {
177
+ next = this.stateController.tree.process(next);
178
+ }
179
+ this.dataState = next;
180
+ if (this.hasUpdated) {
181
+ this.pipeline();
182
+ }
183
+ }
184
+ async pipeline() {
185
+ this.dataState = await this.dataController.apply([...this.data], this.stateController);
186
+ this.stateController.pagination.reclamp();
187
+ }
188
+ paginationChanged() {
189
+ const ctrl = this.stateController?.pagination;
190
+ if (!ctrl)
191
+ return;
192
+ const next = this.pagination ?? {};
193
+ if (typeof next.pageSize === 'number' && next.pageSize > 0) {
194
+ ctrl.pageSize = next.pageSize;
195
+ }
196
+ if (typeof next.page === 'number') {
197
+ ctrl.page = next.page;
198
+ }
199
+ if (this.hasUpdated) {
200
+ this.pipeline();
201
+ }
202
+ }
203
+ quickFilterChanged() {
204
+ if (this.hasUpdated) {
205
+ this.pipeline();
206
+ }
207
+ }
208
+ constructor() {
209
+ super();
210
+ this.stateController = new StateController(this);
211
+ this.DOM = new GridDOMController(this, this.stateController);
212
+ this.dataController = new DataOperationsController(this);
213
+ this.stateProvider = new ContextProvider(this, {
214
+ context: gridStateContext,
215
+ initialValue: this.stateController,
216
+ });
217
+ this.dataState = [];
218
+ this.columns = [];
219
+ this.data = [];
220
+ this.autoGenerate = false;
221
+ this.sortConfiguration = {
222
+ multiple: true,
223
+ triState: true,
224
+ };
225
+ this.quickFilter = '';
226
+ this.showQuickFilter = false;
227
+ this.showExport = false;
228
+ this.columnReordering = false;
229
+ addThemingController(this, {
230
+ light: { bootstrap, material, fluent, indigo },
231
+ dark: { bootstrap, material, fluent, indigo },
232
+ });
233
+ }
234
+ updated() {
235
+ this.setAttribute('role', this.stateController.tree.enabled ? 'treegrid' : 'grid');
236
+ const hasFilter = this.columns.some((column) => column.filter);
237
+ const headerRows = hasFilter ? 2 : 1;
238
+ this.setAttribute('aria-rowcount', String(headerRows + this.pageItems.length));
239
+ const visibleColumns = this.columns.filter((column) => !column.hidden).length;
240
+ const extras = (this.stateController.selection.showCheckboxColumn ? 1 : 0) +
241
+ (this.stateController.expansion.showToggleColumn ? 1 : 0);
242
+ this.setAttribute('aria-colcount', String(visibleColumns + extras));
243
+ }
244
+ firstUpdated() {
245
+ if (typeof getComputedStyle === 'function' && getComputedStyle(this).display !== 'grid') {
246
+ console.warn('[apex-grid] Host `display` has been overridden. The grid requires ' +
247
+ '`display: grid` for its internal track layout and will not render correctly. ' +
248
+ 'Remove any CSS rule that sets `display` on <apex-grid>. ' +
249
+ 'See: https://github.com/apexcharts/apexgrid#4-size-the-host');
250
+ }
251
+ }
252
+ filter(config) {
253
+ this.stateController.filtering.filter(asArray(config).map((each) => typeof each.condition === 'string'
254
+ ?
255
+ Object.assign(each, {
256
+ condition: getFilterOperandsFor(this.getColumn(each.key))[each.condition],
257
+ })
258
+ : each));
259
+ }
260
+ sort(expressions) {
261
+ this.stateController.sorting.sort(expressions);
262
+ }
263
+ clearSort(key) {
264
+ this.stateController.sorting.reset(key);
265
+ this.requestUpdate(PIPELINE);
266
+ }
267
+ clearFilter(key) {
268
+ this.stateController.filtering.reset(key);
269
+ this.requestUpdate(PIPELINE);
270
+ }
271
+ gotoPage(page) {
272
+ return this.stateController.pagination.gotoPage(page);
273
+ }
274
+ setPageSize(size) {
275
+ return this.stateController.pagination.setPageSize(size);
276
+ }
277
+ nextPage() {
278
+ return this.stateController.pagination.nextPage();
279
+ }
280
+ previousPage() {
281
+ return this.stateController.pagination.previousPage();
282
+ }
283
+ firstPage() {
284
+ return this.stateController.pagination.firstPage();
285
+ }
286
+ lastPage() {
287
+ return this.stateController.pagination.lastPage();
288
+ }
289
+ async setQuickFilter(value) {
290
+ const next = value ?? '';
291
+ if (next === this.quickFilter)
292
+ return false;
293
+ const proceed = this.emitEvent('quickFilterChanging', {
294
+ detail: { value: this.quickFilter, nextValue: next },
295
+ cancelable: true,
296
+ });
297
+ if (!proceed)
298
+ return false;
299
+ this.quickFilter = next;
300
+ this.stateController.pagination.page = 0;
301
+ await this.updateComplete;
302
+ this.emitEvent('quickFilterChanged', { detail: { value: this.quickFilter } });
303
+ return true;
304
+ }
305
+ getColumn(id) {
306
+ return typeof id === 'number'
307
+ ? this.columns.at(id)
308
+ : this.columns.find(({ key }) => key === id);
309
+ }
310
+ updateColumns(columns) {
311
+ const updates = new Map(asArray(columns).map((c) => [c.key, c]));
312
+ if (updates.size === 0)
313
+ return;
314
+ let touched = false;
315
+ const next = this.columns.map((column) => {
316
+ const patch = updates.get(column.key);
317
+ if (!patch)
318
+ return column;
319
+ touched = true;
320
+ return { ...column, ...patch };
321
+ });
322
+ if (!touched)
323
+ return;
324
+ this.columns = next;
325
+ this.requestUpdate(PIPELINE);
326
+ }
327
+ async pinColumn(key, position) {
328
+ const column = this.getColumn(key);
329
+ if (!column)
330
+ return false;
331
+ const previous = column.pinned ?? null;
332
+ const next = position ?? null;
333
+ if (previous === next)
334
+ return false;
335
+ const proceed = this.emitEvent('columnPinning', {
336
+ detail: { key, previous, next },
337
+ cancelable: true,
338
+ });
339
+ if (!proceed)
340
+ return false;
341
+ column.pinned = next ?? undefined;
342
+ this.columns = [...this.columns];
343
+ await this.updateComplete;
344
+ this.emitEvent('columnPinned', { detail: { key, pinned: next } });
345
+ return true;
346
+ }
347
+ unpinColumn(key) {
348
+ return this.pinColumn(key, null);
349
+ }
350
+ get editingCell() {
351
+ const active = this.stateController.editing.activeCell;
352
+ return active ? { rowIndex: active.rowIndex, columnKey: active.columnKey } : null;
353
+ }
354
+ get editingRow() {
355
+ return this.stateController.editing.activeRow?.rowIndex ?? null;
356
+ }
357
+ editCell(rowIndex, columnKey) {
358
+ return this.stateController.editing.editCell(rowIndex, columnKey);
359
+ }
360
+ editRow(rowIndex) {
361
+ return this.stateController.editing.editRow(rowIndex);
362
+ }
363
+ commitEdit() {
364
+ const editing = this.stateController.editing;
365
+ return editing.mode === 'row' ? editing.commitRow() : editing.commitCell();
366
+ }
367
+ cancelEdit() {
368
+ const editing = this.stateController.editing;
369
+ if (editing.mode === 'row') {
370
+ editing.cancelRow();
371
+ }
372
+ else {
373
+ editing.cancelCell();
374
+ }
375
+ }
376
+ exportToCSV(options = {}) {
377
+ const csv = buildCSV(this, options);
378
+ const filename = options.filename;
379
+ if (filename) {
380
+ downloadBlob(`${filename}.csv`, csv, 'text/csv;charset=utf-8;');
381
+ }
382
+ else if (filename === undefined) {
383
+ downloadBlob('data.csv', csv, 'text/csv;charset=utf-8;');
384
+ }
385
+ return csv;
386
+ }
387
+ exportToXLSX(options = {}) {
388
+ const columns = resolveExportColumns(this, options);
389
+ const rows = resolveExportRows(this, options.source);
390
+ const includeHeader = options.includeHeader ?? true;
391
+ const sheet = {
392
+ name: options.sheetName ?? 'Sheet1',
393
+ headers: includeHeader ? columns.map((column) => getColumnLabel(column)) : [],
394
+ rows: rows.map((row) => columns.map((column) => resolveExportValue(column, row, options))),
395
+ };
396
+ const bytes = buildXLSX(sheet);
397
+ const filename = options.filename;
398
+ const mime = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
399
+ if (filename) {
400
+ downloadBlob(`${filename}.xlsx`, bytes, mime);
401
+ }
402
+ else if (filename === undefined) {
403
+ downloadBlob('data.xlsx', bytes, mime);
404
+ }
405
+ return bytes;
406
+ }
407
+ async moveColumn(fromKey, toKey, position = 'before') {
408
+ if (fromKey === toKey)
409
+ return false;
410
+ const fromIndex = this.columns.findIndex((column) => column.key === fromKey);
411
+ const toIndex = this.columns.findIndex((column) => column.key === toKey);
412
+ if (fromIndex < 0 || toIndex < 0)
413
+ return false;
414
+ const source = this.columns[fromIndex];
415
+ const target = this.columns[toIndex];
416
+ if ((source.pinned ?? null) !== (target.pinned ?? null))
417
+ return false;
418
+ const proceed = this.emitEvent('columnMoving', {
419
+ detail: { key: fromKey, fromIndex, toKey, position },
420
+ cancelable: true,
421
+ });
422
+ if (!proceed)
423
+ return false;
424
+ const next = this.columns.slice();
425
+ const [moved] = next.splice(fromIndex, 1);
426
+ let insertIndex = next.findIndex((column) => column.key === toKey);
427
+ if (insertIndex < 0)
428
+ return false;
429
+ if (position === 'after')
430
+ insertIndex += 1;
431
+ next.splice(insertIndex, 0, moved);
432
+ if (next.every((column, index) => column === this.columns[index]))
433
+ return false;
434
+ this.columns = next;
435
+ await this.updateComplete;
436
+ const resolvedIndex = this.columns.findIndex((column) => column.key === fromKey);
437
+ this.emitEvent('columnMoved', {
438
+ detail: { key: fromKey, fromIndex, toIndex: resolvedIndex },
439
+ });
440
+ return true;
441
+ }
442
+ bodyClickHandler(event) {
443
+ const target = event.composedPath().find((el) => el instanceof ApexGridCell);
444
+ if (target) {
445
+ this.stateController.active = {
446
+ column: target.column.key,
447
+ row: target.row.index,
448
+ };
449
+ }
450
+ }
451
+ bodyKeydownHandler(event) {
452
+ if (this.scrollContainer.isSameNode(event.target)) {
453
+ this.stateController.navigation.navigate(event);
454
+ }
455
+ }
456
+ renderHeaderRow() {
457
+ return html `
458
+ <apex-grid-header-row
459
+ style=${styleMap(this.DOM.columnSizes)}
460
+ .columns=${this.DOM.displayColumns}
461
+ .pinOffsets=${this.DOM.pinOffsets}
462
+ ></apex-grid-header-row>
463
+ `;
464
+ }
465
+ renderBody() {
466
+ return html `
467
+ <apex-virtualizer
468
+ .items=${this.pageItems}
469
+ .renderItem=${this.DOM.rowRenderer}
470
+ @click=${this.bodyClickHandler}
471
+ @keydown=${this.bodyKeydownHandler}
472
+ ></apex-virtualizer>
473
+ `;
474
+ }
475
+ renderFilterRow() {
476
+ return this.columns.some((column) => column.filter)
477
+ ? html `<apex-filter-row style=${styleMap(this.DOM.columnSizes)}></apex-filter-row>`
478
+ : nothing;
479
+ }
480
+ renderToolbar() {
481
+ if (!this.showQuickFilter && !this.showExport)
482
+ return nothing;
483
+ return html `<apex-grid-toolbar
484
+ .value=${this.quickFilter}
485
+ .showQuickFilter=${this.showQuickFilter}
486
+ .showExport=${this.showExport}
487
+ @apex-quick-filter=${(event) => {
488
+ event.stopPropagation();
489
+ this.setQuickFilter(event.detail);
490
+ }}
491
+ ></apex-grid-toolbar>`;
492
+ }
493
+ renderPaginator() {
494
+ if (!this.stateController.pagination.enabled)
495
+ return nothing;
496
+ const options = this.pagination?.pageSizeOptions && this.pagination.pageSizeOptions.length > 0
497
+ ? this.pagination.pageSizeOptions
498
+ : [10, 25, 50, 100];
499
+ return html `<apex-grid-paginator .pageSizeOptions=${options}></apex-grid-paginator>`;
500
+ }
501
+ renderLiveRegion() {
502
+ return html `<div
503
+ part="live-region"
504
+ role="status"
505
+ aria-live="polite"
506
+ aria-atomic="true"
507
+ style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;"
508
+ >
509
+ ${this.stateController.announcement}
510
+ </div>`;
511
+ }
512
+ render() {
513
+ return html `
514
+ ${this.stateController.resizing.renderIndicator()}
515
+ ${this.renderToolbar()}
516
+ ${this.renderHeaderRow()}
517
+ ${this.renderFilterRow()}
518
+ ${this.renderBody()}
519
+ ${this.renderPaginator()}
520
+ ${this.renderLiveRegion()}
521
+ `;
522
+ }
523
+ announce(message) {
524
+ this.stateController.setAnnouncement(message);
525
+ }
526
+ }
527
+ __decorate([
528
+ query(ApexVirtualizer.tagName)
529
+ ], ApexGrid.prototype, "scrollContainer", void 0);
530
+ __decorate([
531
+ query(ApexGridHeaderRow.tagName)
532
+ ], ApexGrid.prototype, "headerRow", void 0);
533
+ __decorate([
534
+ query(ApexFilterRow.tagName)
535
+ ], ApexGrid.prototype, "filterRow", void 0);
536
+ __decorate([
537
+ query(ApexGridPaginator.tagName)
538
+ ], ApexGrid.prototype, "paginator", void 0);
539
+ __decorate([
540
+ query(ApexGridToolbar.tagName)
541
+ ], ApexGrid.prototype, "toolbar", void 0);
542
+ __decorate([
543
+ state()
544
+ ], ApexGrid.prototype, "dataState", void 0);
545
+ __decorate([
546
+ queryAll(ApexGridRow.tagName)
547
+ ], ApexGrid.prototype, "_rows", void 0);
548
+ __decorate([
549
+ property({ attribute: false })
550
+ ], ApexGrid.prototype, "columns", void 0);
551
+ __decorate([
552
+ property({ attribute: false })
553
+ ], ApexGrid.prototype, "data", void 0);
554
+ __decorate([
555
+ property({ type: Boolean, attribute: 'auto-generate' })
556
+ ], ApexGrid.prototype, "autoGenerate", void 0);
557
+ __decorate([
558
+ property({ attribute: false })
559
+ ], ApexGrid.prototype, "sortConfiguration", void 0);
560
+ __decorate([
561
+ property({ attribute: false })
562
+ ], ApexGrid.prototype, "dataPipelineConfiguration", void 0);
563
+ __decorate([
564
+ property({ attribute: false })
565
+ ], ApexGrid.prototype, "pagination", void 0);
566
+ __decorate([
567
+ property({ type: String, attribute: 'quick-filter' })
568
+ ], ApexGrid.prototype, "quickFilter", void 0);
569
+ __decorate([
570
+ property({ type: Boolean, attribute: 'show-quick-filter' })
571
+ ], ApexGrid.prototype, "showQuickFilter", void 0);
572
+ __decorate([
573
+ property({ type: Boolean, attribute: 'show-export' })
574
+ ], ApexGrid.prototype, "showExport", void 0);
575
+ __decorate([
576
+ property({ type: Boolean, attribute: 'column-reordering' })
577
+ ], ApexGrid.prototype, "columnReordering", void 0);
578
+ __decorate([
579
+ property({ attribute: false })
580
+ ], ApexGrid.prototype, "editing", void 0);
581
+ __decorate([
582
+ property({ attribute: false })
583
+ ], ApexGrid.prototype, "selection", void 0);
584
+ __decorate([
585
+ property({ attribute: false })
586
+ ], ApexGrid.prototype, "expansion", void 0);
587
+ __decorate([
588
+ property({ attribute: false })
589
+ ], ApexGrid.prototype, "tree", void 0);
590
+ __decorate([
591
+ property({ attribute: false })
592
+ ], ApexGrid.prototype, "sortExpressions", null);
593
+ __decorate([
594
+ property({ attribute: false })
595
+ ], ApexGrid.prototype, "filterExpressions", null);
596
+ __decorate([
597
+ property({ attribute: false })
598
+ ], ApexGrid.prototype, "page", null);
599
+ __decorate([
600
+ property({ attribute: false })
601
+ ], ApexGrid.prototype, "pageSize", null);
602
+ __decorate([
603
+ watch('columns')
604
+ ], ApexGrid.prototype, "watchColumns", null);
605
+ __decorate([
606
+ watch('data')
607
+ ], ApexGrid.prototype, "dataChanged", null);
608
+ __decorate([
609
+ watch(PIPELINE)
610
+ ], ApexGrid.prototype, "pipeline", null);
611
+ __decorate([
612
+ watch('pagination')
613
+ ], ApexGrid.prototype, "paginationChanged", null);
614
+ __decorate([
615
+ watch('quickFilter')
616
+ ], ApexGrid.prototype, "quickFilterChanged", null);
617
+ __decorate([
618
+ eventOptions({ capture: true })
619
+ ], ApexGrid.prototype, "bodyClickHandler", null);
620
+ //# sourceMappingURL=grid.js.map