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
@@ -1,226 +0,0 @@
1
- import { nothing } from 'lit';
2
- import { ContextProvider } from '@lit-labs/context';
3
- import { StateController } from '../controllers/state.js';
4
- import { DataOperationsController } from '../controllers/data-operation.js';
5
- import { GridDOMController } from '../controllers/dom.js';
6
- import { EventEmitterBase } from '../internal/mixins/event-emitter.js';
7
- import type { ColumnConfiguration, DataPipelineConfiguration, GridSortConfiguration, Keys } from '../internal/types.js';
8
- import type { FilterExpression } from '../operations/filter/types.js';
9
- import type { SortExpression } from '../operations/sort/types.js';
10
- import ApexVirtualizer from './virtualizer.js';
11
- import ApexGridHeaderRow from './header-row.js';
12
- import ApexGridRow from './row.js';
13
- import ApexFilterRow from './filter-row.js';
14
- /**
15
- * Event object for the filtering event of the grid.
16
- */
17
- export interface ApexFilteringEvent<T extends object> {
18
- /**
19
- * The target column for the filter operation.
20
- */
21
- key: Keys<T>;
22
- /**
23
- * The filter expression(s) to apply.
24
- */
25
- expressions: FilterExpression<T>[];
26
- /**
27
- * The type of modification which will be applied to the filter
28
- * state of the column.
29
- *
30
- * @remarks
31
- * `add` - a new filter expression will be added to the state of the column.
32
- * `modify` - an existing filter expression will be modified.
33
- * `remove` - the expression(s) will be removed from the state of the column.
34
- */
35
- type: 'add' | 'modify' | 'remove';
36
- }
37
- /**
38
- * Event object for the filtered event of the grid.
39
- */
40
- export interface ApexFilteredEvent<T extends object> {
41
- /**
42
- * The target column for the filter operation.
43
- */
44
- key: Keys<T>;
45
- /**
46
- * The filter state of the column after the operation.
47
- */
48
- state: FilterExpression<T>[];
49
- }
50
- /**
51
- * Events for the apex-grid.
52
- */
53
- export interface ApexGridEventMap<T extends object> {
54
- /**
55
- * Emitted when sorting is initiated through the UI.
56
- * Returns the sort expression which will be used for the operation.
57
- *
58
- * @remarks
59
- * The event is cancellable which prevents the operation from being applied.
60
- * The expression can be modified prior to the operation running.
61
- *
62
- * @event
63
- */
64
- sorting: CustomEvent<SortExpression<T>>;
65
- /**
66
- * Emitted when a sort operation initiated through the UI has completed.
67
- * Returns the sort expression used for the operation.
68
- *
69
- * @event
70
- */
71
- sorted: CustomEvent<SortExpression<T>>;
72
- /**
73
- * Emitted when filtering is initiated through the UI.
74
- *
75
- * @remarks
76
- * The event is cancellable which prevents the operation from being applied.
77
- * The expression can be modified prior to the operation running.
78
- *
79
- * @event
80
- */
81
- filtering: CustomEvent<ApexFilteringEvent<T>>;
82
- /**
83
- * Emitted when a filter operation initiated through the UI has completed.
84
- * Returns the filter state for the affected column.
85
- *
86
- * @event
87
- */
88
- filtered: CustomEvent<ApexFilteredEvent<T>>;
89
- }
90
- /**
91
- * Apex grid is a web component for displaying data in a tabular format quick and easy.
92
- *
93
- * Out of the box it provides row virtualization, sort and filter operations (client and server side),
94
- * the ability to template cells and headers and column hiding.
95
- *
96
- * @element apex-grid
97
- *
98
- * @fires sorting - Emitted when sorting is initiated through the UI.
99
- * @fires sorted - Emitted when a sort operation initiated through the UI has completed.
100
- * @fires filtering - Emitted when filtering is initiated through the UI.
101
- * @fires filtered - Emitted when a filter operation initiated through the UI has completed.
102
- *
103
- */
104
- export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGridEventMap<T>> {
105
- static get is(): "apex-grid";
106
- static styles: import("lit").CSSResult;
107
- static register(): void;
108
- protected stateController: StateController<T>;
109
- protected DOM: GridDOMController<T>;
110
- protected dataController: DataOperationsController<T>;
111
- protected stateProvider: ContextProvider<{
112
- __context__: StateController<any>;
113
- }>;
114
- protected scrollContainer: ApexVirtualizer;
115
- protected headerRow: ApexGridHeaderRow<T>;
116
- protected filterRow: ApexFilterRow<T>;
117
- protected dataState: Array<T>;
118
- protected _rows: NodeListOf<ApexGridRow<T>>;
119
- /** Column configuration for the grid. */
120
- columns: Array<ColumnConfiguration<T>>;
121
- /** The data source for the grid. */
122
- data: Array<T>;
123
- /**
124
- * Whether the grid will try to "resolve" its column configuration based on the passed
125
- * data source.
126
- *
127
- * @remarks
128
- * This is usually executed on initial rendering in the DOM. It depends on having an existing data source
129
- * to infer the column configuration for the grid.
130
- * Passing an empty data source or having a late bound data source (such as a HTTP request) will usually
131
- * result in empty column configuration for the grid.
132
- *
133
- * This property is ignored if any existing column configuration already exists in the grid.
134
- *
135
- * In a scenario where you want to bind a new data source and still keep the auto-generation behavior,
136
- * make sure to reset the column collection of the grid before passing in the new data source.
137
- *
138
- * @example
139
- * ```typescript
140
- * // assuming autoGenerate is set to true
141
- * grid.columns = [];
142
- * grid.data = [...];
143
- * ```
144
- *
145
- * @attr auto-generate
146
- */
147
- autoGenerate: boolean;
148
- /** Sort configuration property for the grid. */
149
- sortConfiguration: GridSortConfiguration;
150
- /**
151
- * Configuration object which controls remote data operations for the grid.
152
- */
153
- dataPipelineConfiguration: DataPipelineConfiguration<T>;
154
- /**
155
- * Set the sort state for the grid.
156
- */
157
- set sortExpressions(expressions: SortExpression<T>[]);
158
- /**
159
- * Get the sort state for the grid.
160
- */
161
- get sortExpressions(): SortExpression<T>[];
162
- /**
163
- * Set the filter state for the grid.
164
- */
165
- set filterExpressions(expressions: FilterExpression<T>[]);
166
- /**
167
- * Get the filter state for the grid.
168
- */
169
- get filterExpressions(): FilterExpression<T>[];
170
- /**
171
- * Returns the collection of rendered row elements in the grid.
172
- *
173
- * @remarks
174
- * Since the grid has virtualization, this property returns only the currently rendered
175
- * chunk of elements in the DOM.
176
- */
177
- get rows(): ApexGridRow<T>[];
178
- /**
179
- * Returns the state of the data source after sort/filter operations
180
- * have been applied.
181
- */
182
- get dataView(): ReadonlyArray<T>;
183
- /**
184
- * The total number of items in the {@link ApexGrid.dataView} collection.
185
- */
186
- get totalItems(): number;
187
- protected watchColumns(_: ColumnConfiguration<T>[], newConfig?: ColumnConfiguration<T>[]): void;
188
- protected dataChanged(): void;
189
- protected pipeline(): Promise<void>;
190
- /**
191
- * Performs a filter operation in the grid based on the passed expression(s).
192
- */
193
- filter(config: FilterExpression<T> | FilterExpression<T>[]): void;
194
- /**
195
- * Performs a sort operation in the grid based on the passed expression(s).
196
- */
197
- sort(expressions: SortExpression<T> | SortExpression<T>[]): void;
198
- /**
199
- * Resets the current sort state of the control.
200
- */
201
- clearSort(key?: Keys<T>): void;
202
- /**
203
- * Resets the current filter state of the control.
204
- */
205
- clearFilter(key?: Keys<T>): void;
206
- /**
207
- * Returns a {@link ColumnConfiguration} for a given column.
208
- */
209
- getColumn(id: Keys<T> | number): ColumnConfiguration<T> | undefined;
210
- /**
211
- * Updates the column configuration of the grid.
212
- */
213
- updateColumns(columns: ColumnConfiguration<T> | ColumnConfiguration<T>[]): void;
214
- protected bodyClickHandler(event: MouseEvent): void;
215
- protected bodyKeydownHandler(event: KeyboardEvent): void;
216
- protected renderHeaderRow(): import("lit-html").TemplateResult<1>;
217
- protected renderBody(): import("lit-html").TemplateResult<1>;
218
- protected renderFilterRow(): typeof nothing | import("lit-html").TemplateResult<1>;
219
- protected render(): import("lit-html").TemplateResult<1>;
220
- }
221
- declare global {
222
- interface HTMLElementTagNameMap {
223
- [ApexGrid.is]: ApexGrid<object>;
224
- }
225
- }
226
- //# sourceMappingURL=grid.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../src/components/grid.ts"],"names":[],"mappings":"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"}
@@ -1,309 +0,0 @@
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 { html, nothing } from 'lit';
8
- import { ContextProvider } from '@lit-labs/context';
9
- import { eventOptions, property, query, queryAll, state } from 'lit/decorators.js';
10
- import { styleMap } from 'lit/directives/style-map.js';
11
- import { GRID_TAG } from '../internal/tags.js';
12
- import { StateController, gridStateContext } from '../controllers/state.js';
13
- import { DataOperationsController } from '../controllers/data-operation.js';
14
- import { GridDOMController } from '../controllers/dom.js';
15
- import { EventEmitterBase } from '../internal/mixins/event-emitter.js';
16
- import { watch } from '../internal/watch.js';
17
- import { DEFAULT_COLUMN_CONFIG, PIPELINE } from '../internal/constants.js';
18
- import { asArray, autoGenerateColumns, getFilterOperandsFor } from '../internal/utils.js';
19
- import { registerComponent } from '../internal/register.js';
20
- import { styles as bootstrap } from '../styles/grid/themes/light/grid.bootstrap-styles.css.js';
21
- import { styles as fluent } from '../styles/grid/themes/light/grid.fluent-styles.css.js';
22
- import { styles as indigo } from '../styles/grid/themes/light/grid.indigo-styles.css.js';
23
- import { styles as material } from '../styles/grid/themes/light/grid.material-styles.css.js';
24
- import ApexVirtualizer from './virtualizer.js';
25
- import ApexGridHeaderRow from './header-row.js';
26
- import ApexGridRow from './row.js';
27
- import ApexGridCell from './cell.js';
28
- import ApexFilterRow from './filter-row.js';
29
- import { themes } from 'igniteui-webcomponents/theming/theming-decorator.js';
30
- import { defineComponents, IgcButtonComponent, IgcChipComponent, IgcDropdownComponent, IgcInputComponent, IgcIconComponent, } from 'igniteui-webcomponents';
31
- /**
32
- * Apex grid is a web component for displaying data in a tabular format quick and easy.
33
- *
34
- * Out of the box it provides row virtualization, sort and filter operations (client and server side),
35
- * the ability to template cells and headers and column hiding.
36
- *
37
- * @element apex-grid
38
- *
39
- * @fires sorting - Emitted when sorting is initiated through the UI.
40
- * @fires sorted - Emitted when a sort operation initiated through the UI has completed.
41
- * @fires filtering - Emitted when filtering is initiated through the UI.
42
- * @fires filtered - Emitted when a filter operation initiated through the UI has completed.
43
- *
44
- */
45
- let ApexGrid = class ApexGrid extends EventEmitterBase {
46
- constructor() {
47
- super(...arguments);
48
- this.stateController = new StateController(this);
49
- this.DOM = new GridDOMController(this, this.stateController);
50
- this.dataController = new DataOperationsController(this);
51
- this.stateProvider = new ContextProvider(this, {
52
- context: gridStateContext,
53
- initialValue: this.stateController,
54
- });
55
- this.dataState = [];
56
- /** Column configuration for the grid. */
57
- this.columns = [];
58
- /** The data source for the grid. */
59
- this.data = [];
60
- /**
61
- * Whether the grid will try to "resolve" its column configuration based on the passed
62
- * data source.
63
- *
64
- * @remarks
65
- * This is usually executed on initial rendering in the DOM. It depends on having an existing data source
66
- * to infer the column configuration for the grid.
67
- * Passing an empty data source or having a late bound data source (such as a HTTP request) will usually
68
- * result in empty column configuration for the grid.
69
- *
70
- * This property is ignored if any existing column configuration already exists in the grid.
71
- *
72
- * In a scenario where you want to bind a new data source and still keep the auto-generation behavior,
73
- * make sure to reset the column collection of the grid before passing in the new data source.
74
- *
75
- * @example
76
- * ```typescript
77
- * // assuming autoGenerate is set to true
78
- * grid.columns = [];
79
- * grid.data = [...];
80
- * ```
81
- *
82
- * @attr auto-generate
83
- */
84
- this.autoGenerate = false;
85
- /** Sort configuration property for the grid. */
86
- this.sortConfiguration = {
87
- multiple: true,
88
- triState: true,
89
- };
90
- }
91
- static get is() {
92
- return GRID_TAG;
93
- }
94
- static register() {
95
- registerComponent(this, [ApexVirtualizer, ApexGridRow, ApexGridHeaderRow, ApexFilterRow]);
96
- defineComponents(IgcButtonComponent, IgcChipComponent, IgcInputComponent, IgcDropdownComponent, IgcIconComponent);
97
- }
98
- /**
99
- * Set the sort state for the grid.
100
- */
101
- set sortExpressions(expressions) {
102
- if (expressions.length) {
103
- this.sort(expressions);
104
- }
105
- }
106
- /**
107
- * Get the sort state for the grid.
108
- */
109
- get sortExpressions() {
110
- return Array.from(this.stateController.sorting.state.values());
111
- }
112
- /**
113
- * Set the filter state for the grid.
114
- */
115
- set filterExpressions(expressions) {
116
- if (expressions.length) {
117
- this.filter(expressions);
118
- }
119
- }
120
- /**
121
- * Get the filter state for the grid.
122
- */
123
- get filterExpressions() {
124
- return this.stateController.filtering.state.values.reduce((prev, curr) => [...prev, ...curr.all], []);
125
- }
126
- /**
127
- * Returns the collection of rendered row elements in the grid.
128
- *
129
- * @remarks
130
- * Since the grid has virtualization, this property returns only the currently rendered
131
- * chunk of elements in the DOM.
132
- */
133
- get rows() {
134
- return Array.from(this._rows);
135
- }
136
- /**
137
- * Returns the state of the data source after sort/filter operations
138
- * have been applied.
139
- */
140
- get dataView() {
141
- return this.dataState;
142
- }
143
- /**
144
- * The total number of items in the {@link ApexGrid.dataView} collection.
145
- */
146
- get totalItems() {
147
- return this.dataState.length;
148
- }
149
- watchColumns(_, newConfig = []) {
150
- this.columns = newConfig.map(config => ({ ...DEFAULT_COLUMN_CONFIG, ...config }));
151
- }
152
- dataChanged() {
153
- this.dataState = structuredClone(this.data);
154
- autoGenerateColumns(this);
155
- if (this.hasUpdated) {
156
- this.pipeline();
157
- }
158
- }
159
- async pipeline() {
160
- this.dataState = await this.dataController.apply(structuredClone(this.data), this.stateController);
161
- }
162
- /**
163
- * Performs a filter operation in the grid based on the passed expression(s).
164
- */
165
- filter(config) {
166
- this.stateController.filtering.filter(asArray(config).map(each => typeof each.condition === 'string'
167
- ? // XXX: Types
168
- Object.assign(each, {
169
- condition: getFilterOperandsFor(this.getColumn(each.key))[each.condition],
170
- })
171
- : each));
172
- }
173
- /**
174
- * Performs a sort operation in the grid based on the passed expression(s).
175
- */
176
- sort(expressions) {
177
- this.stateController.sorting.sort(expressions);
178
- }
179
- /**
180
- * Resets the current sort state of the control.
181
- */
182
- clearSort(key) {
183
- this.stateController.sorting.reset(key);
184
- this.requestUpdate(PIPELINE);
185
- }
186
- /**
187
- * Resets the current filter state of the control.
188
- */
189
- clearFilter(key) {
190
- this.stateController.filtering.reset(key);
191
- this.requestUpdate(PIPELINE);
192
- }
193
- /**
194
- * Returns a {@link ColumnConfiguration} for a given column.
195
- */
196
- getColumn(id) {
197
- return typeof id === 'number'
198
- ? this.columns.at(id)
199
- : this.columns.find(({ key }) => key === id);
200
- }
201
- /**
202
- * Updates the column configuration of the grid.
203
- */
204
- updateColumns(columns) {
205
- asArray(columns).forEach(column => {
206
- const idx = this.columns.findIndex(original => original.key === column.key);
207
- this.columns[idx] = { ...this.columns[idx], ...column };
208
- });
209
- this.requestUpdate(PIPELINE);
210
- }
211
- bodyClickHandler(event) {
212
- const target = event.composedPath().find(el => el instanceof ApexGridCell);
213
- if (target) {
214
- this.stateController.active = {
215
- column: target.column.key,
216
- row: target.row.index,
217
- };
218
- }
219
- }
220
- bodyKeydownHandler(event) {
221
- if (this.scrollContainer.isSameNode(event.target)) {
222
- this.stateController.navigation.navigate(event);
223
- }
224
- }
225
- renderHeaderRow() {
226
- return html `<apex-grid-header-row
227
- style=${styleMap(this.DOM.columnSizes)}
228
- .columns=${this.columns}
229
- ></apex-grid-header-row>`;
230
- }
231
- renderBody() {
232
- return html `
233
- <apex-virtualizer
234
- .items=${this.dataState}
235
- .renderItem=${this.DOM.rowRenderer}
236
- @click=${this.bodyClickHandler}
237
- @keydown=${this.bodyKeydownHandler}
238
- ></apex-virtualizer>
239
- `;
240
- }
241
- renderFilterRow() {
242
- return this.columns.some(column => column.filter)
243
- ? html `<apex-filter-row style=${styleMap(this.DOM.columnSizes)}></apex-filter-row>`
244
- : nothing;
245
- }
246
- render() {
247
- return html ` ${this.stateController.resizing.renderIndicator()} ${this.renderHeaderRow()}
248
- ${this.renderFilterRow()} ${this.renderBody()}`;
249
- }
250
- };
251
- ApexGrid.styles = bootstrap;
252
- __decorate([
253
- query(ApexVirtualizer.is)
254
- ], ApexGrid.prototype, "scrollContainer", void 0);
255
- __decorate([
256
- query(ApexGridHeaderRow.is)
257
- ], ApexGrid.prototype, "headerRow", void 0);
258
- __decorate([
259
- query(ApexFilterRow.is)
260
- ], ApexGrid.prototype, "filterRow", void 0);
261
- __decorate([
262
- state()
263
- ], ApexGrid.prototype, "dataState", void 0);
264
- __decorate([
265
- queryAll(ApexGridRow.is)
266
- ], ApexGrid.prototype, "_rows", void 0);
267
- __decorate([
268
- property({ attribute: false })
269
- ], ApexGrid.prototype, "columns", void 0);
270
- __decorate([
271
- property({ attribute: false })
272
- ], ApexGrid.prototype, "data", void 0);
273
- __decorate([
274
- property({ type: Boolean, attribute: 'auto-generate' })
275
- ], ApexGrid.prototype, "autoGenerate", void 0);
276
- __decorate([
277
- property({ attribute: false })
278
- ], ApexGrid.prototype, "sortConfiguration", void 0);
279
- __decorate([
280
- property({ attribute: false })
281
- ], ApexGrid.prototype, "dataPipelineConfiguration", void 0);
282
- __decorate([
283
- property({ attribute: false })
284
- ], ApexGrid.prototype, "sortExpressions", null);
285
- __decorate([
286
- property({ attribute: false })
287
- ], ApexGrid.prototype, "filterExpressions", null);
288
- __decorate([
289
- watch('columns')
290
- ], ApexGrid.prototype, "watchColumns", null);
291
- __decorate([
292
- watch('data')
293
- ], ApexGrid.prototype, "dataChanged", null);
294
- __decorate([
295
- watch(PIPELINE)
296
- ], ApexGrid.prototype, "pipeline", null);
297
- __decorate([
298
- eventOptions({ capture: true })
299
- ], ApexGrid.prototype, "bodyClickHandler", null);
300
- ApexGrid = __decorate([
301
- themes({
302
- bootstrap,
303
- fluent,
304
- indigo,
305
- material,
306
- })
307
- ], ApexGrid);
308
- export { ApexGrid };
309
- //# sourceMappingURL=grid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../src/components/grid.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing } from 'lit';\nimport { ContextProvider } from '@lit-labs/context';\nimport { eventOptions, property, query, queryAll, state } from 'lit/decorators.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport { GRID_TAG } from '../internal/tags.js';\nimport { StateController, gridStateContext } from '../controllers/state.js';\nimport { DataOperationsController } from '../controllers/data-operation.js';\nimport { GridDOMController } from '../controllers/dom.js';\nimport { EventEmitterBase } from '../internal/mixins/event-emitter.js';\nimport { watch } from '../internal/watch.js';\nimport { DEFAULT_COLUMN_CONFIG, PIPELINE } from '../internal/constants.js';\nimport { asArray, autoGenerateColumns, getFilterOperandsFor } from '../internal/utils.js';\n\nimport type {\n ColumnConfiguration,\n DataPipelineConfiguration,\n GridSortConfiguration,\n Keys,\n} from '../internal/types.js';\nimport type { FilterExpression } from '../operations/filter/types.js';\nimport type { SortExpression } from '../operations/sort/types.js';\n\nimport { registerComponent } from '../internal/register.js';\n\nimport { styles as bootstrap } from '../styles/grid/themes/light/grid.bootstrap-styles.css.js';\nimport { styles as fluent } from '../styles/grid/themes/light/grid.fluent-styles.css.js';\nimport { styles as indigo } from '../styles/grid/themes/light/grid.indigo-styles.css.js';\nimport { styles as material } from '../styles/grid/themes/light/grid.material-styles.css.js';\n\nimport ApexVirtualizer from './virtualizer.js';\nimport ApexGridHeaderRow from './header-row.js';\nimport ApexGridRow from './row.js';\nimport ApexGridCell from './cell.js';\nimport ApexFilterRow from './filter-row.js';\n\nimport { themes } from 'igniteui-webcomponents/theming/theming-decorator.js';\nimport {\n defineComponents,\n IgcButtonComponent,\n IgcChipComponent,\n IgcDropdownComponent,\n IgcInputComponent,\n IgcIconComponent,\n} from 'igniteui-webcomponents';\n\n/**\n * Event object for the filtering event of the grid.\n */\nexport interface ApexFilteringEvent<T extends object> {\n /**\n * The target column for the filter operation.\n */\n key: Keys<T>;\n\n /**\n * The filter expression(s) to apply.\n */\n expressions: FilterExpression<T>[];\n\n /**\n * The type of modification which will be applied to the filter\n * state of the column.\n *\n * @remarks\n * `add` - a new filter expression will be added to the state of the column.\n * `modify` - an existing filter expression will be modified.\n * `remove` - the expression(s) will be removed from the state of the column.\n */\n type: 'add' | 'modify' | 'remove';\n}\n\n/**\n * Event object for the filtered event of the grid.\n */\nexport interface ApexFilteredEvent<T extends object> {\n /**\n * The target column for the filter operation.\n */\n key: Keys<T>;\n\n /**\n * The filter state of the column after the operation.\n */\n state: FilterExpression<T>[];\n}\n\n/**\n * Events for the apex-grid.\n */\nexport interface ApexGridEventMap<T extends object> {\n /**\n * Emitted when sorting is initiated through the UI.\n * Returns the sort expression which will be used for the operation.\n *\n * @remarks\n * The event is cancellable which prevents the operation from being applied.\n * The expression can be modified prior to the operation running.\n *\n * @event\n */\n sorting: CustomEvent<SortExpression<T>>;\n /**\n * Emitted when a sort operation initiated through the UI has completed.\n * Returns the sort expression used for the operation.\n *\n * @event\n */\n sorted: CustomEvent<SortExpression<T>>;\n /**\n * Emitted when filtering is initiated through the UI.\n *\n * @remarks\n * The event is cancellable which prevents the operation from being applied.\n * The expression can be modified prior to the operation running.\n *\n * @event\n */\n filtering: CustomEvent<ApexFilteringEvent<T>>;\n /**\n * Emitted when a filter operation initiated through the UI has completed.\n * Returns the filter state for the affected column.\n *\n * @event\n */\n filtered: CustomEvent<ApexFilteredEvent<T>>;\n}\n\n/**\n * Apex grid is a web component for displaying data in a tabular format quick and easy.\n *\n * Out of the box it provides row virtualization, sort and filter operations (client and server side),\n * the ability to template cells and headers and column hiding.\n *\n * @element apex-grid\n *\n * @fires sorting - Emitted when sorting is initiated through the UI.\n * @fires sorted - Emitted when a sort operation initiated through the UI has completed.\n * @fires filtering - Emitted when filtering is initiated through the UI.\n * @fires filtered - Emitted when a filter operation initiated through the UI has completed.\n *\n */\n@themes({\n bootstrap,\n fluent,\n indigo,\n material,\n})\nexport class ApexGrid<T extends object> extends EventEmitterBase<ApexGridEventMap<T>> {\n public static get is() {\n return GRID_TAG;\n }\n\n public static override styles = bootstrap;\n\n public static register() {\n registerComponent(this, [ApexVirtualizer, ApexGridRow, ApexGridHeaderRow, ApexFilterRow]);\n defineComponents(\n IgcButtonComponent,\n IgcChipComponent,\n IgcInputComponent,\n IgcDropdownComponent,\n IgcIconComponent,\n );\n }\n\n protected stateController = new StateController<T>(this);\n protected DOM = new GridDOMController<T>(this, this.stateController);\n protected dataController = new DataOperationsController<T>(this);\n\n protected stateProvider = new ContextProvider(this, {\n context: gridStateContext,\n initialValue: this.stateController,\n });\n\n @query(ApexVirtualizer.is)\n protected scrollContainer!: ApexVirtualizer;\n\n @query(ApexGridHeaderRow.is)\n protected headerRow!: ApexGridHeaderRow<T>;\n\n @query(ApexFilterRow.is)\n protected filterRow!: ApexFilterRow<T>;\n\n @state()\n protected dataState: Array<T> = [];\n\n @queryAll(ApexGridRow.is)\n protected _rows!: NodeListOf<ApexGridRow<T>>;\n\n /** Column configuration for the grid. */\n @property({ attribute: false })\n public columns: Array<ColumnConfiguration<T>> = [];\n\n /** The data source for the grid. */\n @property({ attribute: false })\n public data: Array<T> = [];\n\n /**\n * Whether the grid will try to \"resolve\" its column configuration based on the passed\n * data source.\n *\n * @remarks\n * This is usually executed on initial rendering in the DOM. It depends on having an existing data source\n * to infer the column configuration for the grid.\n * Passing an empty data source or having a late bound data source (such as a HTTP request) will usually\n * result in empty column configuration for the grid.\n *\n * This property is ignored if any existing column configuration already exists in the grid.\n *\n * In a scenario where you want to bind a new data source and still keep the auto-generation behavior,\n * make sure to reset the column collection of the grid before passing in the new data source.\n *\n * @example\n * ```typescript\n * // assuming autoGenerate is set to true\n * grid.columns = [];\n * grid.data = [...];\n * ```\n *\n * @attr auto-generate\n */\n @property({ type: Boolean, attribute: 'auto-generate' })\n public autoGenerate = false;\n\n /** Sort configuration property for the grid. */\n @property({ attribute: false })\n public sortConfiguration: GridSortConfiguration = {\n multiple: true,\n triState: true,\n };\n\n /**\n * Configuration object which controls remote data operations for the grid.\n */\n @property({ attribute: false })\n public dataPipelineConfiguration!: DataPipelineConfiguration<T>;\n\n /**\n * Set the sort state for the grid.\n */\n public set sortExpressions(expressions: SortExpression<T>[]) {\n if (expressions.length) {\n this.sort(expressions);\n }\n }\n\n /**\n * Get the sort state for the grid.\n */\n @property({ attribute: false })\n public get sortExpressions(): SortExpression<T>[] {\n return Array.from(this.stateController.sorting.state.values());\n }\n\n /**\n * Set the filter state for the grid.\n */\n public set filterExpressions(expressions: FilterExpression<T>[]) {\n if (expressions.length) {\n this.filter(expressions);\n }\n }\n\n /**\n * Get the filter state for the grid.\n */\n @property({ attribute: false })\n public get filterExpressions(): FilterExpression<T>[] {\n return this.stateController.filtering.state.values.reduce<FilterExpression<T>[]>(\n (prev, curr) => [...prev, ...curr.all],\n [],\n );\n }\n\n /**\n * Returns the collection of rendered row elements in the grid.\n *\n * @remarks\n * Since the grid has virtualization, this property returns only the currently rendered\n * chunk of elements in the DOM.\n */\n public get rows() {\n return Array.from(this._rows);\n }\n\n /**\n * Returns the state of the data source after sort/filter operations\n * have been applied.\n */\n public get dataView(): ReadonlyArray<T> {\n return this.dataState;\n }\n\n /**\n * The total number of items in the {@link ApexGrid.dataView} collection.\n */\n public get totalItems() {\n return this.dataState.length;\n }\n\n @watch('columns')\n protected watchColumns(_: ColumnConfiguration<T>[], newConfig: ColumnConfiguration<T>[] = []) {\n this.columns = newConfig.map(config => ({ ...DEFAULT_COLUMN_CONFIG, ...config }));\n }\n\n @watch('data')\n protected dataChanged() {\n this.dataState = structuredClone(this.data);\n autoGenerateColumns(this);\n\n if (this.hasUpdated) {\n this.pipeline();\n }\n }\n\n @watch(PIPELINE)\n protected async pipeline() {\n this.dataState = await this.dataController.apply(\n structuredClone(this.data),\n this.stateController,\n );\n }\n\n /**\n * Performs a filter operation in the grid based on the passed expression(s).\n */\n public filter(config: FilterExpression<T> | FilterExpression<T>[]) {\n this.stateController.filtering.filter(\n asArray(config).map(each =>\n typeof each.condition === 'string'\n ? // XXX: Types\n Object.assign(each, {\n condition: (getFilterOperandsFor(this.getColumn(each.key)!) as any)[each.condition],\n })\n : each,\n ),\n );\n }\n\n /**\n * Performs a sort operation in the grid based on the passed expression(s).\n */\n public sort(expressions: SortExpression<T> | SortExpression<T>[]) {\n this.stateController.sorting.sort(expressions);\n }\n\n /**\n * Resets the current sort state of the control.\n */\n public clearSort(key?: Keys<T>) {\n this.stateController.sorting.reset(key);\n this.requestUpdate(PIPELINE);\n }\n\n /**\n * Resets the current filter state of the control.\n */\n public clearFilter(key?: Keys<T>) {\n this.stateController.filtering.reset(key);\n this.requestUpdate(PIPELINE);\n }\n\n /**\n * Returns a {@link ColumnConfiguration} for a given column.\n */\n public getColumn(id: Keys<T> | number) {\n return typeof id === 'number'\n ? this.columns.at(id)\n : this.columns.find(({ key }) => key === id);\n }\n\n /**\n * Updates the column configuration of the grid.\n */\n public updateColumns(columns: ColumnConfiguration<T> | ColumnConfiguration<T>[]) {\n asArray(columns).forEach(column => {\n const idx = this.columns.findIndex(original => original.key === column.key);\n this.columns[idx] = { ...this.columns[idx], ...column };\n });\n this.requestUpdate(PIPELINE);\n }\n\n @eventOptions({ capture: true })\n protected bodyClickHandler(event: MouseEvent) {\n const target = event.composedPath().find(el => el instanceof ApexGridCell) as ApexGridCell<T>;\n if (target) {\n this.stateController.active = {\n column: target.column.key,\n row: target.row.index,\n };\n }\n }\n\n protected bodyKeydownHandler(event: KeyboardEvent) {\n if (this.scrollContainer.isSameNode(event.target as HTMLElement)) {\n this.stateController.navigation.navigate(event);\n }\n }\n\n protected renderHeaderRow() {\n return html`<apex-grid-header-row\n style=${styleMap(this.DOM.columnSizes)}\n .columns=${this.columns}\n ></apex-grid-header-row>`;\n }\n\n protected renderBody() {\n return html`\n <apex-virtualizer\n .items=${this.dataState}\n .renderItem=${this.DOM.rowRenderer}\n @click=${this.bodyClickHandler}\n @keydown=${this.bodyKeydownHandler}\n ></apex-virtualizer>\n `;\n }\n\n protected renderFilterRow() {\n return this.columns.some(column => column.filter)\n ? html`<apex-filter-row style=${styleMap(this.DOM.columnSizes)}></apex-filter-row>`\n : nothing;\n }\n\n protected override render() {\n return html` ${this.stateController.resizing.renderIndicator()} ${this.renderHeaderRow()}\n ${this.renderFilterRow()} ${this.renderBody()}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [ApexGrid.is]: ApexGrid<object>;\n }\n}\n"]}
@@ -1,24 +0,0 @@
1
- import { LitElement, PropertyValueMap } from 'lit';
2
- import { StateController } from '../controllers/state.js';
3
- import ApexGridHeader from './header.js';
4
- import type { ColumnConfiguration } from '../internal/types.js';
5
- export default class ApexGridHeaderRow<T extends object> extends LitElement {
6
- #private;
7
- static get is(): "apex-grid-header-row";
8
- static styles: import("lit").CSSResult;
9
- static register(): void;
10
- protected _headers: NodeListOf<ApexGridHeader<T>>;
11
- state: StateController<T>;
12
- columns: Array<ColumnConfiguration<T>>;
13
- get headers(): ApexGridHeader<T>[];
14
- constructor();
15
- connectedCallback(): void;
16
- protected shouldUpdate(props: PropertyValueMap<this> | Map<PropertyKey, this>): boolean;
17
- protected render(): import("lit-html").TemplateResult<1>;
18
- }
19
- declare global {
20
- interface HTMLElementTagNameMap {
21
- [ApexGridHeaderRow.is]: ApexGridHeaderRow<object>;
22
- }
23
- }
24
- //# sourceMappingURL=header-row.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"header-row.d.ts","sourceRoot":"","sources":["../../../src/components/header-row.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAW,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAIlE,OAAO,EAAoB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK5E,OAAO,cAAc,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,UAAU;;IACzE,WAAkB,EAAE,2BAEnB;IACD,OAAuB,MAAM,0BAAU;WAEzB,QAAQ;IAKtB,SAAS,CAAC,QAAQ,EAAG,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAI5C,KAAK,EAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAG3B,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAM;IAEnD,IAAW,OAAO,wBAEjB;;IAOe,iBAAiB;cAcd,YAAY,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,OAAO;cAK7E,MAAM;CAc1B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;KACnD;CACF"}