@talxis/base-controls 1.2509.6 → 1.2512.1

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 (502) hide show
  1. package/dist/components/DatasetControl/DatasetControl.d.ts +2 -2
  2. package/dist/components/DatasetControl/DatasetControl.js +78 -57
  3. package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
  4. package/dist/components/DatasetControl/DatasetControlModel.d.ts +16 -0
  5. package/dist/components/DatasetControl/DatasetControlModel.js +32 -0
  6. package/dist/components/DatasetControl/DatasetControlModel.js.map +1 -0
  7. package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.d.ts +3 -0
  8. package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js +166 -0
  9. package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js.map +1 -0
  10. package/dist/components/DatasetControl/Filtering/DatasetColumnFilteringModel.d.ts +15 -0
  11. package/dist/components/DatasetControl/Filtering/DatasetColumnFilteringModel.js +59 -0
  12. package/dist/components/DatasetControl/Filtering/DatasetColumnFilteringModel.js.map +1 -0
  13. package/dist/components/DatasetControl/Filtering/interfaces.d.ts +31 -0
  14. package/dist/components/DatasetControl/Filtering/styles.d.ts +16 -0
  15. package/dist/components/DatasetControl/Filtering/styles.js +23 -0
  16. package/dist/components/DatasetControl/Filtering/styles.js.map +1 -0
  17. package/dist/components/DatasetControl/Filtering/translations.d.ts +154 -0
  18. package/dist/components/DatasetControl/Filtering/translations.js +43 -0
  19. package/dist/components/DatasetControl/Filtering/translations.js.map +1 -0
  20. package/dist/components/DatasetControl/Header/Header.d.ts +5 -0
  21. package/dist/components/DatasetControl/Header/Header.js +79 -0
  22. package/dist/components/DatasetControl/Header/Header.js.map +1 -0
  23. package/dist/components/DatasetControl/Header/styles.d.ts +19 -0
  24. package/dist/components/DatasetControl/Header/styles.js +26 -0
  25. package/dist/components/DatasetControl/Header/styles.js.map +1 -0
  26. package/dist/components/DatasetControl/Pagination/Pagination.d.ts +5 -0
  27. package/dist/components/DatasetControl/Pagination/Pagination.js +93 -0
  28. package/dist/components/DatasetControl/Pagination/Pagination.js.map +1 -0
  29. package/dist/components/DatasetControl/Pagination/PaginationModel.d.ts +10 -0
  30. package/dist/components/DatasetControl/Pagination/PaginationModel.js +45 -0
  31. package/dist/components/DatasetControl/Pagination/PaginationModel.js.map +1 -0
  32. package/dist/components/DatasetControl/Pagination/styles.d.ts +23 -0
  33. package/dist/components/DatasetControl/Pagination/styles.js +29 -0
  34. package/dist/components/DatasetControl/Pagination/styles.js.map +1 -0
  35. package/dist/components/DatasetControl/QuickFind/QuickFind.d.ts +4 -12
  36. package/dist/components/DatasetControl/QuickFind/QuickFind.js +37 -32
  37. package/dist/components/DatasetControl/QuickFind/QuickFind.js.map +1 -1
  38. package/dist/components/DatasetControl/QuickFind/styles.d.ts +1 -1
  39. package/dist/components/DatasetControl/QuickFind/styles.js +2 -2
  40. package/dist/components/DatasetControl/QuickFind/styles.js.map +1 -1
  41. package/dist/components/DatasetControl/index.d.ts +0 -1
  42. package/dist/components/DatasetControl/index.js +0 -2
  43. package/dist/components/DatasetControl/index.js.map +1 -1
  44. package/dist/components/DatasetControl/interfaces.d.ts +68 -23
  45. package/dist/components/DatasetControl/styles.d.ts +4 -11
  46. package/dist/components/DatasetControl/styles.js +5 -11
  47. package/dist/components/DatasetControl/styles.js.map +1 -1
  48. package/dist/components/DatasetControl/translations.d.ts +44 -0
  49. package/dist/components/DatasetControl/translations.js +15 -1
  50. package/dist/components/DatasetControl/translations.js.map +1 -1
  51. package/dist/components/DatasetControl/useModel.d.ts +4 -0
  52. package/dist/components/DatasetControl/useModel.js +9 -0
  53. package/dist/components/DatasetControl/useModel.js.map +1 -0
  54. package/dist/components/Grid/{core/components/Cell → cells/cell}/Cell.d.ts +3 -3
  55. package/dist/components/Grid/cells/cell/Cell.js +231 -0
  56. package/dist/components/Grid/cells/cell/Cell.js.map +1 -0
  57. package/dist/components/Grid/cells/cell/content/CellContent.d.ts +3 -0
  58. package/dist/components/Grid/{core/components/Cell/CellContent → cells/cell/content}/CellContent.js +44 -35
  59. package/dist/components/Grid/cells/cell/content/CellContent.js.map +1 -0
  60. package/dist/components/Grid/{core/components/Cell/CellContent → cells/cell/content}/styles.d.ts +4 -1
  61. package/dist/components/Grid/{core/components/Cell/CellContent → cells/cell/content}/styles.js +8 -3
  62. package/dist/components/Grid/cells/cell/content/styles.js.map +1 -0
  63. package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/Notifications.d.ts +1 -1
  64. package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/Notifications.js +5 -5
  65. package/dist/components/Grid/cells/cell/notifications/Notifications.js.map +1 -0
  66. package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/styles.js +1 -1
  67. package/dist/components/Grid/cells/cell/notifications/styles.js.map +1 -0
  68. package/dist/components/Grid/{core/components/Cell → cells/cell}/styles.d.ts +12 -6
  69. package/dist/components/Grid/{core/components/Cell → cells/cell}/styles.js +14 -20
  70. package/dist/components/Grid/cells/cell/styles.js.map +1 -0
  71. package/dist/components/Grid/cells/selection-cell/SelectionCell.d.ts +8 -0
  72. package/dist/components/Grid/cells/selection-cell/SelectionCell.js +78 -0
  73. package/dist/components/Grid/cells/selection-cell/SelectionCell.js.map +1 -0
  74. package/dist/components/Grid/cells/selection-cell/SelectionCellModel.d.ts +7 -0
  75. package/dist/components/Grid/cells/selection-cell/record-save-error-callout/RecordSaveErrorCallout.d.ts +11 -0
  76. package/dist/components/Grid/cells/selection-cell/record-save-error-callout/RecordSaveErrorCallout.js +19 -0
  77. package/dist/components/Grid/cells/selection-cell/record-save-error-callout/RecordSaveErrorCallout.js.map +1 -0
  78. package/dist/components/Grid/cells/selection-cell/record-save-error-callout/styles.d.ts +17 -0
  79. package/dist/components/Grid/cells/selection-cell/record-save-error-callout/styles.js +24 -0
  80. package/dist/components/Grid/cells/selection-cell/record-save-error-callout/styles.js.map +1 -0
  81. package/dist/components/Grid/cells/selection-cell/styles.d.ts +27 -0
  82. package/dist/components/Grid/cells/selection-cell/styles.js +33 -0
  83. package/dist/components/Grid/cells/selection-cell/styles.js.map +1 -0
  84. package/dist/components/Grid/{core/components/ColumnHeader → column-headers/column-header}/ColumnHeader.d.ts +1 -1
  85. package/dist/components/Grid/column-headers/column-header/ColumnHeader.js +88 -0
  86. package/dist/components/Grid/column-headers/column-header/ColumnHeader.js.map +1 -0
  87. package/dist/components/Grid/{sorting/components/SortingContextualMenu/SortingContextualMenu.d.ts → column-headers/column-header/ColumnHeaderContextualMenu.d.ts} +3 -3
  88. package/dist/components/Grid/column-headers/column-header/ColumnHeaderContextualMenu.js +115 -0
  89. package/dist/components/Grid/column-headers/column-header/ColumnHeaderContextualMenu.js.map +1 -0
  90. package/dist/components/Grid/{filtering/components/FilterCallout → column-headers/column-header}/FilterCallout.d.ts +1 -1
  91. package/dist/components/Grid/column-headers/column-header/FilterCallout.js +107 -0
  92. package/dist/components/Grid/column-headers/column-header/FilterCallout.js.map +1 -0
  93. package/dist/components/Grid/column-headers/column-header/styles.d.ts +84 -0
  94. package/dist/components/Grid/{filtering/components/FilterCallout → column-headers/column-header}/styles.js +20 -11
  95. package/dist/components/Grid/column-headers/column-header/styles.js.map +1 -0
  96. package/dist/components/Grid/column-headers/record-selection-checkbox/RecordSelectionCheckbox.d.ts +2 -0
  97. package/dist/components/Grid/column-headers/record-selection-checkbox/RecordSelectionCheckbox.js +45 -0
  98. package/dist/components/Grid/column-headers/record-selection-checkbox/RecordSelectionCheckbox.js.map +1 -0
  99. package/dist/components/Grid/{core/components/ColumnHeader/components/GlobalCheckbox → column-headers/record-selection-checkbox}/styles.d.ts +1 -3
  100. package/dist/components/Grid/{core/components/ColumnHeader/components/GlobalCheckbox → column-headers/record-selection-checkbox}/styles.js +1 -2
  101. package/dist/components/Grid/column-headers/record-selection-checkbox/styles.js.map +1 -0
  102. package/dist/components/Grid/errors/FullWidthCellRendererError/FullWidthCellRendererError.d.ts +6 -0
  103. package/dist/components/Grid/errors/FullWidthCellRendererError/FullWidthCellRendererError.js +15 -0
  104. package/dist/components/Grid/errors/FullWidthCellRendererError/FullWidthCellRendererError.js.map +1 -0
  105. package/dist/components/Grid/errors/FullWidthCellRendererError/styles.d.ts +6 -0
  106. package/dist/components/Grid/errors/FullWidthCellRendererError/styles.js +13 -0
  107. package/dist/components/Grid/errors/FullWidthCellRendererError/styles.js.map +1 -0
  108. package/dist/components/Grid/{core/components/AgGrid/AgGrid.d.ts → grid/Grid.d.ts} +2 -2
  109. package/dist/components/Grid/grid/Grid.js +64 -0
  110. package/dist/components/Grid/grid/Grid.js.map +1 -0
  111. package/dist/components/Grid/grid/GridContext.d.ts +3 -0
  112. package/dist/components/Grid/grid/GridContext.js.map +1 -0
  113. package/dist/components/Grid/grid/GridModel.d.ts +110 -0
  114. package/dist/components/Grid/grid/GridModel.js +767 -0
  115. package/dist/components/Grid/grid/GridModel.js.map +1 -0
  116. package/dist/components/Grid/{core/components/AgGrid/model/Comparator.d.ts → grid/ValueComparator.d.ts} +1 -1
  117. package/dist/components/Grid/{core/components/AgGrid/model/Comparator.js → grid/ValueComparator.js} +7 -1
  118. package/dist/components/Grid/grid/ValueComparator.js.map +1 -0
  119. package/dist/components/Grid/{core/components/AgGrid/context.d.ts → grid/ag-grid/AgGridContext.d.ts} +2 -2
  120. package/dist/components/Grid/{core/components/AgGrid/context.js → grid/ag-grid/AgGridContext.js} +1 -1
  121. package/dist/components/Grid/grid/ag-grid/AgGridContext.js.map +1 -0
  122. package/dist/components/Grid/grid/ag-grid/AgGridModel.d.ts +90 -0
  123. package/dist/components/Grid/grid/ag-grid/AgGridModel.js +657 -0
  124. package/dist/components/Grid/grid/ag-grid/AgGridModel.js.map +1 -0
  125. package/dist/components/Grid/grid/ag-grid/ServerSideDatasource.d.ts +7 -0
  126. package/dist/components/Grid/grid/ag-grid/ServerSideDatasource.js +38 -0
  127. package/dist/components/Grid/grid/ag-grid/ServerSideDatasource.js.map +1 -0
  128. package/dist/components/Grid/grid/ag-grid/useAgGridInstance.d.ts +2 -0
  129. package/dist/components/Grid/grid/ag-grid/useAgGridInstance.js +9 -0
  130. package/dist/components/Grid/grid/ag-grid/useAgGridInstance.js.map +1 -0
  131. package/dist/components/Grid/{core/components/AgGrid → grid}/styles.d.ts +24 -4
  132. package/dist/components/Grid/{core/components/AgGrid → grid}/styles.js +37 -6
  133. package/dist/components/Grid/grid/styles.js.map +1 -0
  134. package/dist/components/Grid/grid/useGridInstance.d.ts +2 -0
  135. package/dist/components/Grid/{core/hooks → grid}/useGridInstance.js +2 -2
  136. package/dist/components/Grid/grid/useGridInstance.js.map +1 -0
  137. package/dist/components/Grid/index.d.ts +1 -1
  138. package/dist/components/Grid/index.js +1 -1
  139. package/dist/components/Grid/interfaces.d.ts +10 -1
  140. package/dist/components/Grid/loading/full-row/FullRowLoading.d.ts +3 -0
  141. package/dist/components/Grid/loading/full-row/FullRowLoading.js +33 -0
  142. package/dist/components/Grid/loading/full-row/FullRowLoading.js.map +1 -0
  143. package/dist/components/Grid/loading/full-row/styles.d.ts +9 -0
  144. package/dist/components/Grid/loading/full-row/styles.js +16 -0
  145. package/dist/components/Grid/loading/full-row/styles.js.map +1 -0
  146. package/dist/components/Grid/overlays/empty-records/EmptyRecordsOverlay.js +13 -0
  147. package/dist/components/Grid/overlays/empty-records/EmptyRecordsOverlay.js.map +1 -0
  148. package/dist/components/Grid/{core/components/AgGrid/components/EmptyRecordsOverlay → overlays/empty-records}/styles.d.ts +1 -1
  149. package/dist/components/Grid/{core/components/AgGrid/components/EmptyRecordsOverlay → overlays/empty-records}/styles.js +1 -1
  150. package/dist/components/Grid/overlays/empty-records/styles.js.map +1 -0
  151. package/dist/components/Grid/overlays/loading/LoadingOverlay.js.map +1 -0
  152. package/dist/components/Grid/translations.d.ts +21 -177
  153. package/dist/components/Grid/translations.js +6 -48
  154. package/dist/components/Grid/translations.js.map +1 -1
  155. package/dist/components/GridCellRenderer/GridCellRenderer.js +99 -282
  156. package/dist/components/GridCellRenderer/GridCellRenderer.js.map +1 -1
  157. package/dist/components/GridCellRenderer/GridCellRendererModel.d.ts +51 -0
  158. package/dist/components/GridCellRenderer/GridCellRendererModel.js +211 -0
  159. package/dist/components/GridCellRenderer/GridCellRendererModel.js.map +1 -0
  160. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/ColorfulOptionSetValueRenderer.d.ts +9 -0
  161. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/ColorfulOptionSetValueRenderer.js +53 -0
  162. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/ColorfulOptionSetValueRenderer.js.map +1 -0
  163. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/styles.d.ts +20 -0
  164. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/styles.js +29 -0
  165. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/styles.js.map +1 -0
  166. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.d.ts +7 -0
  167. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.js +76 -0
  168. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.js.map +1 -0
  169. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/styles.d.ts +18 -0
  170. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/styles.js +25 -0
  171. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/styles.js.map +1 -0
  172. package/dist/components/GridCellRenderer/ValueRenderer/ValueRenderer.d.ts +3 -0
  173. package/dist/components/GridCellRenderer/ValueRenderer/ValueRenderer.js +52 -0
  174. package/dist/components/GridCellRenderer/ValueRenderer/ValueRenderer.js.map +1 -0
  175. package/dist/components/GridCellRenderer/ValueRenderer/styles.d.ts +1666 -0
  176. package/dist/components/GridCellRenderer/ValueRenderer/styles.js +31 -0
  177. package/dist/components/GridCellRenderer/ValueRenderer/styles.js.map +1 -0
  178. package/dist/components/GridCellRenderer/interfaces.d.ts +53 -42
  179. package/dist/components/GridCellRenderer/properties/Email.d.ts +5 -0
  180. package/dist/components/GridCellRenderer/properties/Email.js +15 -0
  181. package/dist/components/GridCellRenderer/properties/Email.js.map +1 -0
  182. package/dist/components/GridCellRenderer/properties/File.d.ts +19 -0
  183. package/dist/components/GridCellRenderer/properties/File.js +99 -0
  184. package/dist/components/GridCellRenderer/properties/File.js.map +1 -0
  185. package/dist/components/GridCellRenderer/properties/Image.d.ts +4 -0
  186. package/dist/components/GridCellRenderer/properties/Image.js +15 -0
  187. package/dist/components/GridCellRenderer/properties/Image.js.map +1 -0
  188. package/dist/components/GridCellRenderer/properties/Lookup.d.ts +5 -0
  189. package/dist/components/GridCellRenderer/properties/Lookup.js +16 -0
  190. package/dist/components/GridCellRenderer/properties/Lookup.js.map +1 -0
  191. package/dist/components/GridCellRenderer/properties/MultiSelectOptionSet.d.ts +5 -0
  192. package/dist/components/GridCellRenderer/properties/MultiSelectOptionSet.js +11 -0
  193. package/dist/components/GridCellRenderer/properties/MultiSelectOptionSet.js.map +1 -0
  194. package/dist/components/GridCellRenderer/properties/MultilineText.d.ts +4 -0
  195. package/dist/components/GridCellRenderer/properties/MultilineText.js +10 -0
  196. package/dist/components/GridCellRenderer/properties/MultilineText.js.map +1 -0
  197. package/dist/components/GridCellRenderer/properties/OptionSet.d.ts +5 -0
  198. package/dist/components/GridCellRenderer/properties/OptionSet.js +11 -0
  199. package/dist/components/GridCellRenderer/properties/OptionSet.js.map +1 -0
  200. package/dist/components/GridCellRenderer/properties/OptionSetBase.d.ts +7 -0
  201. package/dist/components/GridCellRenderer/properties/OptionSetBase.js +19 -0
  202. package/dist/components/GridCellRenderer/properties/OptionSetBase.js.map +1 -0
  203. package/dist/components/GridCellRenderer/properties/Phone.d.ts +9 -0
  204. package/dist/components/GridCellRenderer/properties/Phone.js +15 -0
  205. package/dist/components/GridCellRenderer/properties/Phone.js.map +1 -0
  206. package/dist/components/GridCellRenderer/properties/Property.d.ts +19 -0
  207. package/dist/components/GridCellRenderer/properties/Property.js +59 -0
  208. package/dist/components/GridCellRenderer/properties/Property.js.map +1 -0
  209. package/dist/components/GridCellRenderer/properties/TwoOptions.d.ts +5 -0
  210. package/dist/components/GridCellRenderer/properties/TwoOptions.js +11 -0
  211. package/dist/components/GridCellRenderer/properties/TwoOptions.js.map +1 -0
  212. package/dist/components/GridCellRenderer/properties/Url.d.ts +5 -0
  213. package/dist/components/GridCellRenderer/properties/Url.js +15 -0
  214. package/dist/components/GridCellRenderer/properties/Url.js.map +1 -0
  215. package/dist/components/GridCellRenderer/styles.d.ts +34 -60
  216. package/dist/components/GridCellRenderer/styles.js +69 -77
  217. package/dist/components/GridCellRenderer/styles.js.map +1 -1
  218. package/dist/components/GridCellRenderer/translations.d.ts +1 -1
  219. package/dist/components/GridCellRenderer/translations.js +30 -32
  220. package/dist/components/GridCellRenderer/translations.js.map +1 -1
  221. package/dist/components/GridCellRenderer/useModel.d.ts +4 -0
  222. package/dist/components/GridCellRenderer/useModel.js +9 -0
  223. package/dist/components/GridCellRenderer/useModel.js.map +1 -0
  224. package/dist/components/GridColumnHeader/GridColumnHeader.d.ts +3 -0
  225. package/dist/components/GridColumnHeader/GridColumnHeader.js +134 -0
  226. package/dist/components/GridColumnHeader/GridColumnHeader.js.map +1 -0
  227. package/dist/components/GridColumnHeader/GridColumnHeaderModel.d.ts +26 -0
  228. package/dist/components/GridColumnHeader/GridColumnHeaderModel.js +85 -0
  229. package/dist/components/GridColumnHeader/GridColumnHeaderModel.js.map +1 -0
  230. package/dist/components/GridColumnHeader/interfaces.d.ts +48 -0
  231. package/dist/components/GridColumnHeader/styles.d.ts +37 -0
  232. package/dist/components/GridColumnHeader/styles.js +55 -0
  233. package/dist/components/GridColumnHeader/styles.js.map +1 -0
  234. package/dist/components/GridColumnHeader/translations.d.ts +26 -0
  235. package/dist/components/GridColumnHeader/translations.js +29 -0
  236. package/dist/components/GridColumnHeader/translations.js.map +1 -0
  237. package/dist/components/GridInlineRibbon/GridInlineRibbon.d.ts +3 -0
  238. package/dist/components/GridInlineRibbon/GridInlineRibbon.js +113 -0
  239. package/dist/components/GridInlineRibbon/GridInlineRibbon.js.map +1 -0
  240. package/dist/components/GridInlineRibbon/GridInlineRibbonModel.d.ts +25 -0
  241. package/dist/components/GridInlineRibbon/GridInlineRibbonModel.js +49 -0
  242. package/dist/components/GridInlineRibbon/GridInlineRibbonModel.js.map +1 -0
  243. package/dist/components/GridInlineRibbon/index.d.ts +2 -0
  244. package/dist/components/GridInlineRibbon/index.js +2 -0
  245. package/dist/components/GridInlineRibbon/interfaces.d.ts +28 -0
  246. package/dist/components/GridInlineRibbon/styles.d.ts +22 -0
  247. package/dist/components/GridInlineRibbon/styles.js +29 -0
  248. package/dist/components/GridInlineRibbon/styles.js.map +1 -0
  249. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +2 -2
  250. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -1
  251. package/dist/components/NestedControlRenderer/NestedControl.d.ts +2 -0
  252. package/dist/components/NestedControlRenderer/NestedControl.js +5 -2
  253. package/dist/components/NestedControlRenderer/NestedControl.js.map +1 -1
  254. package/dist/components/NestedControlRenderer/NestedControlRenderer.js +19 -6
  255. package/dist/components/NestedControlRenderer/NestedControlRenderer.js.map +1 -1
  256. package/dist/components/NestedControlRenderer/index.d.ts +1 -0
  257. package/dist/components/NestedControlRenderer/interfaces.d.ts +4 -0
  258. package/dist/components/NestedControlRenderer/properties/FileProperty.js +1 -1
  259. package/dist/components/NestedControlRenderer/properties/FileProperty.js.map +1 -1
  260. package/dist/components/OptionSet/OptionSet.js +5 -4
  261. package/dist/components/OptionSet/OptionSet.js.map +1 -1
  262. package/dist/components/Ribbon/Ribbon.d.ts +3 -0
  263. package/dist/components/Ribbon/Ribbon.js +118 -0
  264. package/dist/components/Ribbon/Ribbon.js.map +1 -0
  265. package/dist/components/Ribbon/RibbonModel.d.ts +17 -0
  266. package/dist/components/Ribbon/RibbonModel.js +74 -0
  267. package/dist/components/Ribbon/RibbonModel.js.map +1 -0
  268. package/dist/components/Ribbon/interfaces.d.ts +24 -0
  269. package/dist/components/Ribbon/styles.d.ts +16 -0
  270. package/dist/components/Ribbon/styles.js +23 -0
  271. package/dist/components/Ribbon/styles.js.map +1 -0
  272. package/dist/components/TextField/TextField.js.map +1 -1
  273. package/dist/components/index.d.ts +1 -0
  274. package/dist/components/index.js +2 -3
  275. package/dist/components/index.js.map +1 -1
  276. package/dist/hooks/index.d.ts +1 -0
  277. package/dist/hooks/index.js +1 -0
  278. package/dist/hooks/index.js.map +1 -1
  279. package/dist/hooks/useControl.d.ts +1 -0
  280. package/dist/hooks/useControl.js +1 -0
  281. package/dist/hooks/useControl.js.map +1 -1
  282. package/dist/hooks/useEventEmitter.d.ts +2 -0
  283. package/dist/hooks/useEventEmitter.js +23 -0
  284. package/dist/hooks/useEventEmitter.js.map +1 -0
  285. package/dist/hooks/useInputBasedControl.js +2 -1
  286. package/dist/hooks/useInputBasedControl.js.map +1 -1
  287. package/dist/index.d.ts +508 -522
  288. package/dist/index.js +3 -3
  289. package/dist/interfaces/property.d.ts +1 -1
  290. package/dist/utils/BaseControls.d.ts +4 -1
  291. package/dist/utils/BaseControls.js +13 -1
  292. package/dist/utils/BaseControls.js.map +1 -1
  293. package/dist/utils/dataset/adapters/DatasetAdapter.d.ts +51 -40
  294. package/dist/utils/dataset/adapters/DatasetAdapter.js +221 -160
  295. package/dist/utils/dataset/adapters/DatasetAdapter.js.map +1 -1
  296. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.d.ts +60 -28
  297. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js +183 -119
  298. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
  299. package/dist/utils/dataset-control/DatasetControl.d.ts +69 -0
  300. package/dist/utils/dataset-control/DatasetControl.js +171 -0
  301. package/dist/utils/dataset-control/DatasetControl.js.map +1 -0
  302. package/dist/utils/dataset-control/index.d.ts +1 -0
  303. package/dist/utils/dataset-control/index.js +2 -0
  304. package/dist/utils/theme/components/ThemeWrapper.d.ts +1 -1
  305. package/dist/utils/theme/components/ThemeWrapper.js.map +1 -1
  306. package/dist/utils/theme/hooks/useControlTheme.js +2 -1
  307. package/dist/utils/theme/hooks/useControlTheme.js.map +1 -1
  308. package/package.json +9 -5
  309. package/dist/components/DatasetControl/Paging/DatasetPaging.d.ts +0 -3
  310. package/dist/components/DatasetControl/Paging/DatasetPaging.js +0 -69
  311. package/dist/components/DatasetControl/Paging/DatasetPaging.js.map +0 -1
  312. package/dist/components/DatasetControl/Paging/Paging.d.ts +0 -26
  313. package/dist/components/DatasetControl/Paging/Paging.js +0 -80
  314. package/dist/components/DatasetControl/Paging/Paging.js.map +0 -1
  315. package/dist/components/DatasetControl/Paging/index.d.ts +0 -3
  316. package/dist/components/DatasetControl/Paging/index.js +0 -3
  317. package/dist/components/DatasetControl/Paging/index.js.map +0 -1
  318. package/dist/components/DatasetControl/Paging/interfaces.d.ts +0 -16
  319. package/dist/components/DatasetControl/Paging/styles.d.ts +0 -35
  320. package/dist/components/DatasetControl/Paging/styles.js +0 -41
  321. package/dist/components/DatasetControl/Paging/styles.js.map +0 -1
  322. package/dist/components/DatasetControl/Paging/translations.d.ts +0 -38
  323. package/dist/components/DatasetControl/Paging/translations.js +0 -14
  324. package/dist/components/DatasetControl/Paging/translations.js.map +0 -1
  325. package/dist/components/Grid/Grid.d.ts +0 -3
  326. package/dist/components/Grid/Grid.js +0 -37
  327. package/dist/components/Grid/Grid.js.map +0 -1
  328. package/dist/components/Grid/GridContext.d.ts +0 -3
  329. package/dist/components/Grid/GridContext.js.map +0 -1
  330. package/dist/components/Grid/aggregation/Aggregation.d.ts +0 -18
  331. package/dist/components/Grid/aggregation/Aggregation.js +0 -129
  332. package/dist/components/Grid/aggregation/Aggregation.js.map +0 -1
  333. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +0 -203
  334. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +0 -1
  335. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js +0 -12
  336. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js.map +0 -1
  337. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js.map +0 -1
  338. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js.map +0 -1
  339. package/dist/components/Grid/core/components/AgGrid/context.js.map +0 -1
  340. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +0 -52
  341. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +0 -343
  342. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +0 -1
  343. package/dist/components/Grid/core/components/AgGrid/model/Comparator.js.map +0 -1
  344. package/dist/components/Grid/core/components/AgGrid/styles.js.map +0 -1
  345. package/dist/components/Grid/core/components/Cell/Cell.js +0 -158
  346. package/dist/components/Grid/core/components/Cell/Cell.js.map +0 -1
  347. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.d.ts +0 -8
  348. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js.map +0 -1
  349. package/dist/components/Grid/core/components/Cell/CellContent/styles.js.map +0 -1
  350. package/dist/components/Grid/core/components/Cell/Notifications/Notifications.js.map +0 -1
  351. package/dist/components/Grid/core/components/Cell/Notifications/styles.js.map +0 -1
  352. package/dist/components/Grid/core/components/Cell/styles.js.map +0 -1
  353. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +0 -61
  354. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +0 -1
  355. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.d.ts +0 -2
  356. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +0 -50
  357. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js.map +0 -1
  358. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js.map +0 -1
  359. package/dist/components/Grid/core/components/ColumnHeader/styles.d.ts +0 -42
  360. package/dist/components/Grid/core/components/ColumnHeader/styles.js +0 -48
  361. package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +0 -1
  362. package/dist/components/Grid/core/components/Dialog/Constants.d.ts +0 -2
  363. package/dist/components/Grid/core/components/Dialog/Constants.js +0 -9
  364. package/dist/components/Grid/core/components/Dialog/Constants.js.map +0 -1
  365. package/dist/components/Grid/core/components/Dialog/Styles.d.ts +0 -2
  366. package/dist/components/Grid/core/components/Dialog/Styles.js +0 -61
  367. package/dist/components/Grid/core/components/Dialog/Styles.js.map +0 -1
  368. package/dist/components/Grid/core/components/Dialog/index.d.ts +0 -4
  369. package/dist/components/Grid/core/components/Dialog/index.js +0 -16
  370. package/dist/components/Grid/core/components/Dialog/index.js.map +0 -1
  371. package/dist/components/Grid/core/components/Dialog/interfaces/index.d.ts +0 -6
  372. package/dist/components/Grid/core/components/Dialog/interfaces/index.js +0 -2
  373. package/dist/components/Grid/core/components/Save/Save.d.ts +0 -2
  374. package/dist/components/Grid/core/components/Save/Save.js +0 -59
  375. package/dist/components/Grid/core/components/Save/Save.js.map +0 -1
  376. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.d.ts +0 -7
  377. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +0 -73
  378. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +0 -1
  379. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.d.ts +0 -11
  380. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +0 -231
  381. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +0 -1
  382. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.d.ts +0 -39
  383. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js +0 -45
  384. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js.map +0 -1
  385. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.d.ts +0 -31
  386. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js +0 -37
  387. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js.map +0 -1
  388. package/dist/components/Grid/core/components/Save/styles.d.ts +0 -35
  389. package/dist/components/Grid/core/components/Save/styles.js +0 -42
  390. package/dist/components/Grid/core/components/Save/styles.js.map +0 -1
  391. package/dist/components/Grid/core/controllers/useGridController.d.ts +0 -7
  392. package/dist/components/Grid/core/controllers/useGridController.js +0 -29
  393. package/dist/components/Grid/core/controllers/useGridController.js.map +0 -1
  394. package/dist/components/Grid/core/enums/ConditionOperator.d.ts +0 -48
  395. package/dist/components/Grid/core/enums/ConditionOperator.js +0 -52
  396. package/dist/components/Grid/core/enums/ConditionOperator.js.map +0 -1
  397. package/dist/components/Grid/core/enums/DataType.d.ts +0 -25
  398. package/dist/components/Grid/core/enums/DataType.js +0 -30
  399. package/dist/components/Grid/core/enums/DataType.js.map +0 -1
  400. package/dist/components/Grid/core/hooks/useGridInstance.d.ts +0 -2
  401. package/dist/components/Grid/core/hooks/useGridInstance.js.map +0 -1
  402. package/dist/components/Grid/core/hooks/useRefreshCallback.d.ts +0 -2
  403. package/dist/components/Grid/core/hooks/useRefreshCallback.js +0 -20
  404. package/dist/components/Grid/core/hooks/useRefreshCallback.js.map +0 -1
  405. package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +0 -13
  406. package/dist/components/Grid/core/interfaces/IGridContext.d.ts +0 -4
  407. package/dist/components/Grid/core/model/Grid.d.ts +0 -83
  408. package/dist/components/Grid/core/model/Grid.js +0 -528
  409. package/dist/components/Grid/core/model/Grid.js.map +0 -1
  410. package/dist/components/Grid/core/model/GridDependency.d.ts +0 -13
  411. package/dist/components/Grid/core/model/GridDependency.js +0 -28
  412. package/dist/components/Grid/core/model/GridDependency.js.map +0 -1
  413. package/dist/components/Grid/core/services/KeyListener.d.ts +0 -12
  414. package/dist/components/Grid/core/services/KeyListener.js +0 -31
  415. package/dist/components/Grid/core/services/KeyListener.js.map +0 -1
  416. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js +0 -59
  417. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js.map +0 -1
  418. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.d.ts +0 -7
  419. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +0 -56
  420. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js.map +0 -1
  421. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.d.ts +0 -7
  422. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +0 -73
  423. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +0 -1
  424. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.d.ts +0 -7
  425. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.js +0 -90
  426. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.js.map +0 -1
  427. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +0 -48
  428. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +0 -146
  429. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +0 -1
  430. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.d.ts +0 -11
  431. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.js +0 -53
  432. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.js.map +0 -1
  433. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.d.ts +0 -9
  434. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.js +0 -31
  435. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.js.map +0 -1
  436. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.d.ts +0 -10
  437. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.js +0 -294
  438. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.js.map +0 -1
  439. package/dist/components/Grid/filtering/components/FilterCallout/styles.d.ts +0 -35
  440. package/dist/components/Grid/filtering/components/FilterCallout/styles.js.map +0 -1
  441. package/dist/components/Grid/filtering/constants.d.ts +0 -5
  442. package/dist/components/Grid/filtering/constants.js +0 -53
  443. package/dist/components/Grid/filtering/constants.js.map +0 -1
  444. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.d.ts +0 -21
  445. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js +0 -44
  446. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js.map +0 -1
  447. package/dist/components/Grid/filtering/model/Condition.d.ts +0 -49
  448. package/dist/components/Grid/filtering/model/Condition.js +0 -347
  449. package/dist/components/Grid/filtering/model/Condition.js.map +0 -1
  450. package/dist/components/Grid/filtering/model/Filtering.d.ts +0 -11
  451. package/dist/components/Grid/filtering/model/Filtering.js +0 -78
  452. package/dist/components/Grid/filtering/model/Filtering.js.map +0 -1
  453. package/dist/components/Grid/filtering/utils/FilteringUtilts.d.ts +0 -34
  454. package/dist/components/Grid/filtering/utils/FilteringUtilts.js +0 -195
  455. package/dist/components/Grid/filtering/utils/FilteringUtilts.js.map +0 -1
  456. package/dist/components/Grid/selection/model/Selection.d.ts +0 -12
  457. package/dist/components/Grid/selection/model/Selection.js +0 -55
  458. package/dist/components/Grid/selection/model/Selection.js.map +0 -1
  459. package/dist/components/Grid/sorting/Sorting.d.ts +0 -10
  460. package/dist/components/Grid/sorting/Sorting.js +0 -31
  461. package/dist/components/Grid/sorting/Sorting.js.map +0 -1
  462. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +0 -157
  463. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +0 -1
  464. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.d.ts +0 -9
  465. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js +0 -15
  466. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js.map +0 -1
  467. package/dist/components/Grid/sorting/controllers/useColumnSortingController.d.ts +0 -9
  468. package/dist/components/Grid/sorting/controllers/useColumnSortingController.js +0 -22
  469. package/dist/components/Grid/sorting/controllers/useColumnSortingController.js.map +0 -1
  470. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.d.ts +0 -2
  471. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js +0 -11
  472. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js.map +0 -1
  473. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.d.ts +0 -1
  474. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js +0 -2
  475. package/dist/components/GridCellRenderer/OptionSet/OptionSet.d.ts +0 -5
  476. package/dist/components/GridCellRenderer/OptionSet/OptionSet.js +0 -75
  477. package/dist/components/GridCellRenderer/OptionSet/OptionSet.js.map +0 -1
  478. package/dist/components/GridCellRenderer/OptionSet/index.d.ts +0 -1
  479. package/dist/components/GridCellRenderer/OptionSet/index.js +0 -2
  480. package/dist/components/GridCellRenderer/OptionSet/index.js.map +0 -1
  481. package/dist/components/GridCellRenderer/OptionSet/styles.d.ts +0 -20
  482. package/dist/components/GridCellRenderer/OptionSet/styles.js +0 -29
  483. package/dist/components/GridCellRenderer/OptionSet/styles.js.map +0 -1
  484. package/dist/components/GridCellRenderer/RecordCommands/Icon.d.ts +0 -7
  485. package/dist/components/GridCellRenderer/RecordCommands/Icon.js +0 -32
  486. package/dist/components/GridCellRenderer/RecordCommands/Icon.js.map +0 -1
  487. package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.d.ts +0 -13
  488. package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.js +0 -103
  489. package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.js.map +0 -1
  490. package/dist/components/GridCellRenderer/RecordCommands/styles.d.ts +0 -13
  491. package/dist/components/GridCellRenderer/RecordCommands/styles.js +0 -32
  492. package/dist/components/GridCellRenderer/RecordCommands/styles.js.map +0 -1
  493. package/dist/components/GridCellRenderer/useComponentProps.d.ts +0 -6
  494. package/dist/components/GridCellRenderer/useComponentProps.js +0 -10
  495. package/dist/components/GridCellRenderer/useComponentProps.js.map +0 -1
  496. /package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/styles.d.ts +0 -0
  497. /package/dist/components/Grid/{GridContext.js → grid/GridContext.js} +0 -0
  498. /package/dist/components/Grid/{core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.d.ts → overlays/empty-records/EmptyRecordsOverlay.d.ts} +0 -0
  499. /package/dist/components/Grid/{core/components/AgGrid/components/LoadingOverlay → overlays/loading}/LoadingOverlay.d.ts +0 -0
  500. /package/dist/components/Grid/{core/components/AgGrid/components/LoadingOverlay → overlays/loading}/LoadingOverlay.js +0 -0
  501. /package/dist/components/{Grid/core/components/Dialog/interfaces → GridInlineRibbon}/index.js.map +0 -0
  502. /package/dist/{components/GridCellRenderer/DefaultContentRenderer → utils/dataset-control}/index.js.map +0 -0
@@ -0,0 +1,767 @@
1
+ import { Sorting, TotalRow, Filtering, FieldValue, Grouping, DataProvider, DataTypes, Sanitizer, Type, Formatting } from '@talxis/client-libraries';
2
+ import { merge } from 'merge-anything';
3
+ import { Theming } from '@talxis/react-components';
4
+ import { getTheme } from '@fluentui/react';
5
+ import { CHECKBOX_COLUMN_KEY } from '../constants.js';
6
+ import hotkeys from 'hotkeys-js';
7
+ import { BaseControls } from '../../../utils/BaseControls.js';
8
+
9
+ const DEFAULT_ROW_HEIGHT = 42;
10
+ class GridModel {
11
+ constructor({ onGetProps, labels, theme }) {
12
+ this._nestedProviderPagingLimitNotificationId = null;
13
+ this._cachedGridColumnsMap = new Map();
14
+ this._getProps = onGetProps;
15
+ this._labels = labels;
16
+ this._theme = theme ?? getTheme();
17
+ this.oddRowCellTheme = Theming.GenerateThemeV8(this._theme.palette.themePrimary, this._theme.palette.neutralLighterAlt, this._theme.semanticColors.bodyText);
18
+ this.evenRowCellTheme = Theming.GenerateThemeV8(this._theme.palette.themePrimary, this._theme.palette.white, this._theme.semanticColors.bodyText);
19
+ const provider = this.getDataset().getDataProvider();
20
+ this._sorting = new Sorting(provider);
21
+ this._totalRow = new TotalRow(provider);
22
+ this._filtering = new Filtering(provider, FieldValue);
23
+ this._grouping = new Grouping(provider);
24
+ this._registerEventListeners();
25
+ hotkeys('*', (event, handler) => {
26
+ });
27
+ }
28
+ getDataset() {
29
+ return this._getProps().parameters.Grid;
30
+ }
31
+ getPcfContext() {
32
+ return this._getProps().context;
33
+ }
34
+ getState() {
35
+ return this._getProps().state;
36
+ }
37
+ getParameters() {
38
+ return this._getProps().parameters;
39
+ }
40
+ getLabels() {
41
+ return this._labels;
42
+ }
43
+ isZebraEnabled() {
44
+ return this._getProps().parameters.EnableZebra?.raw !== false;
45
+ }
46
+ isNavigationEnabled() {
47
+ return this.getParameters().EnableNavigation?.raw !== false;
48
+ }
49
+ isAutoSaveEnabled() {
50
+ return this.getParameters().EnableAutoSave?.raw === true;
51
+ }
52
+ isGroupedColumnsPinnedEnabled() {
53
+ return this.getParameters().EnableGroupedColumnsPinning?.raw !== false;
54
+ }
55
+ getInlineRibbonButtonIds() {
56
+ return this.getParameters().InlineRibbonButtonIds?.raw ?? null;
57
+ }
58
+ isEditingEnabled() {
59
+ return this.getParameters().EnableEditing?.raw === true;
60
+ }
61
+ getGroupType() {
62
+ return this.getDataset().getDataProvider().getProperty('groupingType');
63
+ }
64
+ optionSetColorsEnabled() {
65
+ return this.getParameters().EnableOptionSetColors?.raw === true;
66
+ }
67
+ getDefaultExpandedGroupLevel() {
68
+ return this.getParameters().DefaultExpandedGroupLevel?.raw ?? -1;
69
+ }
70
+ getLicenseKey() {
71
+ return this.getParameters().LicenseKey?.raw ?? null;
72
+ }
73
+ getDefaultRowHeight() {
74
+ const height = this.getParameters().RowHeight?.raw;
75
+ if (height) {
76
+ return height;
77
+ }
78
+ return DEFAULT_ROW_HEIGHT;
79
+ }
80
+ getSelectionType() {
81
+ switch (this.getParameters().SelectableRows?.raw) {
82
+ case undefined:
83
+ case null: {
84
+ return 'multiple';
85
+ }
86
+ }
87
+ return this.getParameters().SelectableRows.raw;
88
+ }
89
+ getControl(column, record, editing) {
90
+ editing = record.getSummarizationType() === 'aggregation' ? false : editing;
91
+ //file and image currently do not support editor, always force cell renderers
92
+ switch (column.dataType) {
93
+ case 'File':
94
+ case 'Image': {
95
+ return {
96
+ name: 'GridCellRenderer',
97
+ appliesTo: 'both',
98
+ bindings: {}
99
+ };
100
+ }
101
+ }
102
+ const defaultControl = {
103
+ name: (() => {
104
+ if (record.getSummarizationType() === 'aggregation') {
105
+ return 'GridCellRenderer';
106
+ }
107
+ if (column.name === DataProvider.CONST.RIBBON_BUTTONS_COLUMN_NAME) {
108
+ return BaseControls.GridInlineRibbon;
109
+ }
110
+ if (editing) {
111
+ return BaseControls.GetControlNameForDataType(column.dataType);
112
+ }
113
+ return 'GridCellRenderer';
114
+ })(),
115
+ appliesTo: 'both',
116
+ bindings: {}
117
+ };
118
+ const customControls = record.getColumnInfo(column.name).ui.getCustomControls([defaultControl]);
119
+ const appliesToValue = editing ? 'editor' : 'renderer';
120
+ const customControl = customControls.find(control => control.appliesTo === 'both' || control.appliesTo === appliesToValue);
121
+ if (customControl) {
122
+ return merge(defaultControl, customControl);
123
+ }
124
+ return defaultControl;
125
+ }
126
+ getBindings(record, column, control) {
127
+ const columnInfo = record.getColumnInfo(column.name);
128
+ const bindings = {
129
+ 'value': {
130
+ isStatic: false,
131
+ type: column.dataType,
132
+ value: this.getControlValue(record, column),
133
+ formattedValue: this.getRecordFormattedValue(record, column).value,
134
+ error: columnInfo.error,
135
+ errorMessage: columnInfo.errorMessage,
136
+ onNotifyOutputChanged: () => { },
137
+ metadata: {
138
+ onOverrideMetadata: () => column.metadata
139
+ }
140
+ },
141
+ 'IsCellCustomizer': {
142
+ isStatic: true,
143
+ type: DataTypes.TwoOptions,
144
+ value: true
145
+ }
146
+ };
147
+ if (control.bindings) {
148
+ Object.entries(control.bindings).map(([name, binding]) => {
149
+ bindings[name] = {
150
+ isStatic: true,
151
+ type: binding.type,
152
+ value: binding.value
153
+ };
154
+ });
155
+ }
156
+ return bindings;
157
+ }
158
+ getFieldBindingParameters(record, column, editing) {
159
+ //make sure we have IColumn, not IGridColumn
160
+ column = record.getDataProvider().getColumnsMap()[column.name];
161
+ const summarizationType = record.getDataProvider().getSummarizationType();
162
+ const value = this.getRecordValue(record, column);
163
+ const formattedValue = this.getRecordFormattedValue(record, column);
164
+ const aggregationColumn = record.getDataProvider().getColumnsMap()[column.aggregation?.alias];
165
+ const parameters = {
166
+ Dataset: {
167
+ raw: this.getDataset(),
168
+ type: DataTypes.Object
169
+ },
170
+ Record: {
171
+ raw: record,
172
+ type: DataTypes.Object
173
+ },
174
+ Column: {
175
+ raw: column,
176
+ type: DataTypes.Object
177
+ }
178
+ };
179
+ parameters.AggregatedValue = {
180
+ raw: value.aggregatedValue,
181
+ formatted: formattedValue.aggregatedValue,
182
+ type: aggregationColumn?.dataType ?? DataTypes.Decimal
183
+ };
184
+ parameters.EnableNavigation = {
185
+ raw: (() => {
186
+ if (!this.isNavigationEnabled()) {
187
+ return false;
188
+ }
189
+ if (summarizationType === 'aggregation') {
190
+ return false;
191
+ }
192
+ else if (summarizationType === 'grouping') {
193
+ switch (column.dataType) {
194
+ case DataTypes.LookupCustomer:
195
+ case DataTypes.LookupRegarding:
196
+ case DataTypes.LookupOwner:
197
+ case DataTypes.LookupSimple:
198
+ case DataTypes.File:
199
+ case DataTypes.Image:
200
+ case DataTypes.SingleLineEmail:
201
+ case DataTypes.SingleLineUrl:
202
+ case DataTypes.SingleLinePhone: {
203
+ return true;
204
+ }
205
+ default: {
206
+ return false;
207
+ }
208
+ }
209
+ }
210
+ else {
211
+ return true;
212
+ }
213
+ })(),
214
+ type: DataTypes.TwoOptions
215
+ };
216
+ parameters.ColumnAlignment = {
217
+ raw: column.alignment,
218
+ type: DataTypes.SingleLineText
219
+ };
220
+ parameters.IsPrimaryColumn = {
221
+ raw: column.isPrimary,
222
+ type: DataTypes.TwoOptions
223
+ };
224
+ parameters.ShowErrorMessage = {
225
+ raw: false,
226
+ type: DataTypes.TwoOptions
227
+ };
228
+ parameters.CellType = {
229
+ raw: editing ? 'editor' : 'renderer',
230
+ type: DataTypes.SingleLineText
231
+ };
232
+ parameters.AutoFocus = {
233
+ raw: editing,
234
+ type: DataTypes.TwoOptions
235
+ };
236
+ parameters.AggregationFunction = {
237
+ raw: summarizationType === 'aggregation' ? aggregationColumn?.aggregation?.aggregationFunction : null,
238
+ type: DataTypes.SingleLineText
239
+ };
240
+ parameters.PrefixIcon = {
241
+ raw: null,
242
+ type: DataTypes.SingleLineText
243
+ };
244
+ parameters.SuffixIcon = {
245
+ raw: null,
246
+ type: DataTypes.SingleLineText
247
+ };
248
+ parameters.IsInlineNewEnabled = {
249
+ raw: false,
250
+ type: DataTypes.TwoOptions
251
+ };
252
+ parameters.EnableTypeSuffix = {
253
+ raw: false,
254
+ type: DataTypes.TwoOptions
255
+ };
256
+ parameters.EnableOptionSetColors = {
257
+ raw: this.optionSetColorsEnabled(),
258
+ type: DataTypes.TwoOptions
259
+ };
260
+ parameters.CommandButtonIds = {
261
+ raw: this.getInlineRibbonButtonIds(),
262
+ type: DataTypes.SingleLineText
263
+ };
264
+ parameters.ShouldUnmountWhenOutputChanges = {
265
+ raw: (() => {
266
+ //by default, leave cell editor opened for these types since
267
+ // they can output partial changes as values
268
+ switch (column.dataType) {
269
+ case 'DateAndTime.DateAndTime':
270
+ case 'MultiSelectPicklist': {
271
+ return false;
272
+ }
273
+ default: {
274
+ return true;
275
+ }
276
+ }
277
+ })(),
278
+ type: DataTypes.TwoOptions
279
+ };
280
+ return parameters;
281
+ }
282
+ isColumnExpandable(record, column) {
283
+ const groupBy = record.getDataProvider().grouping.getGroupBys()[0];
284
+ return groupBy?.columnName === column.name;
285
+ }
286
+ getFieldFormatting(record, columnName) {
287
+ const defaultTheme = this.getDefaultCellTheme(record);
288
+ const defaultBackgroundColor = defaultTheme.semanticColors.bodyBackground;
289
+ // Handle checkbox column specifically
290
+ if (columnName === CHECKBOX_COLUMN_KEY || !record) {
291
+ return {
292
+ primaryColor: this._theme.palette.themePrimary,
293
+ backgroundColor: defaultBackgroundColor,
294
+ textColor: Theming.GetTextColorForBackground(defaultBackgroundColor),
295
+ className: '',
296
+ themeOverride: {}
297
+ };
298
+ }
299
+ const customFormatting = record.getColumnInfo(columnName).ui.getCustomFormatting(defaultTheme) ?? {};
300
+ // Prepare the result with defaults
301
+ const result = {
302
+ backgroundColor: customFormatting.backgroundColor ?? defaultBackgroundColor,
303
+ primaryColor: customFormatting.primaryColor ?? this._theme.palette.themePrimary,
304
+ textColor: customFormatting.textColor ?? '',
305
+ className: customFormatting.className ?? '',
306
+ themeOverride: customFormatting.themeOverride ?? {}
307
+ };
308
+ // Apply background-specific adjustments
309
+ if (result.backgroundColor !== defaultBackgroundColor) {
310
+ result.themeOverride = merge({}, {
311
+ fonts: {
312
+ medium: {
313
+ fontWeight: 600
314
+ }
315
+ }
316
+ }, result.themeOverride);
317
+ if (!customFormatting.primaryColor) {
318
+ result.primaryColor = Theming.GetTextColorForBackground(result.backgroundColor);
319
+ }
320
+ }
321
+ // Ensure text color is set
322
+ if (!result.textColor) {
323
+ result.textColor = Theming.GetTextColorForBackground(result.backgroundColor);
324
+ }
325
+ return result;
326
+ }
327
+ getDefaultCellTheme(record) {
328
+ const isEven = record.getIndex() % 2 === 0;
329
+ const summarizationType = record.getDataProvider().getSummarizationType();
330
+ if (summarizationType !== 'none') {
331
+ return this.oddRowCellTheme;
332
+ }
333
+ //child of a group record
334
+ else if (record.getDataProvider().getParentDataProvider()) {
335
+ return this.evenRowCellTheme;
336
+ }
337
+ else if (isEven || !this.isZebraEnabled()) {
338
+ return this.evenRowCellTheme;
339
+ }
340
+ else {
341
+ return this.oddRowCellTheme;
342
+ }
343
+ }
344
+ getGridColumns() {
345
+ this._cachedGridColumnsMap.clear();
346
+ const gridColumns = this.getDataset().columns.map(column => {
347
+ const gridColumn = this.getGridColumnByName(column.name, true);
348
+ this._cachedGridColumnsMap.set(gridColumn.name, gridColumn);
349
+ return gridColumn;
350
+ });
351
+ return gridColumns;
352
+ }
353
+ getColumnByName(columnName) {
354
+ return this.getDataset().getDataProvider().getColumnsMap()[columnName];
355
+ }
356
+ getGridColumnByName(columnName, force) {
357
+ if (!force) {
358
+ const column = this._cachedGridColumnsMap.get(columnName);
359
+ if (!column) {
360
+ throw new Error(`Column with name ${columnName} not found in grid columns cache.`);
361
+ }
362
+ return column;
363
+ }
364
+ else {
365
+ const column = this.getDataset().getColumnsMap()[columnName];
366
+ const sorted = this.getDataset().sorting?.find(sort => sort.name === column.name);
367
+ return {
368
+ ...column,
369
+ alignment: column.alignment,
370
+ isFiltered: this._filtering.getColumnFilter(column.name).isAppliedToDataset(),
371
+ isEditable: this._isColumnEditable(column),
372
+ isRequired: this._isColumnRequired(column),
373
+ canBeGrouped: this._isColumnGroupable(column),
374
+ isFilterable: this._isColumnFilterable(column),
375
+ disableSorting: !this._isColumnSortable(column),
376
+ canBeAggregated: this._canColumnBeAggregated(column),
377
+ isSortedDescending: sorted?.sortDirection === 1 ? true : false,
378
+ isResizable: true,
379
+ isSorted: sorted ? true : false
380
+ };
381
+ }
382
+ }
383
+ getRecordValue(record, column) {
384
+ return this._getRecordValue(record, column, false);
385
+ }
386
+ getRecordFormattedValue(record, column) {
387
+ return this._getRecordValue(record, column, true);
388
+ }
389
+ //returns record value in a form that is compatible with PCF typings
390
+ getControlValue(record, column) {
391
+ const columnName = typeof column === 'string' ? column : column.name;
392
+ column = record.getDataProvider().getColumnsMap()[columnName];
393
+ //can be the aggregated value
394
+ let value = this.getRecordValue(record, column).value;
395
+ switch (column.dataType) {
396
+ //getValue always returns string for TwoOptions
397
+ case 'TwoOptions': {
398
+ if (typeof value === 'string') {
399
+ value = value == '1' ? true : false;
400
+ }
401
+ break;
402
+ }
403
+ //getValue always returns string for OptionSet
404
+ case 'OptionSet': {
405
+ value = value ? parseInt(value) : null;
406
+ break;
407
+ }
408
+ case 'MultiSelectPicklist': {
409
+ value = value ? value.split(',').map((x) => parseInt(x)) : null;
410
+ break;
411
+ }
412
+ case 'Lookup.Simple':
413
+ case 'Lookup.Customer':
414
+ case 'Lookup.Owner':
415
+ case 'Lookup.Regarding': {
416
+ //our implementation returns array, Power Apps returns object
417
+ if (value && !Array.isArray(value)) {
418
+ value = [value];
419
+ }
420
+ value = value?.map((x) => Sanitizer.Lookup.getLookupValue(x));
421
+ break;
422
+ }
423
+ }
424
+ return value;
425
+ }
426
+ isRecordSelectionDisabled(record) {
427
+ const dataProvider = record.getDataProvider();
428
+ const level = dataProvider.getNestingLevel();
429
+ const groupBys = this.getDataset().grouping.getGroupBys();
430
+ if (this.getGroupType() === 'nested' && level < groupBys.length - 1) {
431
+ return true;
432
+ }
433
+ if (dataProvider.getSummarizationType() === 'grouping' && this.getSelectionType() === 'single') {
434
+ return true;
435
+ }
436
+ return false;
437
+ }
438
+ isColumnEditable(columnName, record) {
439
+ let isEditable = true;
440
+ const mainDatasetColumn = this.getDataset().getDataProvider().getColumnsMap()[columnName];
441
+ let column = mainDatasetColumn;
442
+ if (record) {
443
+ column = record.getDataProvider().getColumnsMap()[columnName];
444
+ }
445
+ switch (true) {
446
+ case !this.isEditingEnabled():
447
+ case record?.isSaving():
448
+ case column.oneClickEdit: {
449
+ isEditable = false;
450
+ break;
451
+ }
452
+ }
453
+ switch (column.name) {
454
+ case DataProvider.CONST.CHECKBOX_COLUMN_KEY:
455
+ case DataProvider.CONST.RIBBON_BUTTONS_COLUMN_NAME: {
456
+ isEditable = false;
457
+ break;
458
+ }
459
+ }
460
+ //these field types do not support editing
461
+ switch (column.dataType) {
462
+ case DataTypes.File:
463
+ case DataTypes.Image: {
464
+ isEditable = false;
465
+ break;
466
+ }
467
+ }
468
+ //if the column is not editable, return false
469
+ if (!isEditable) {
470
+ return false;
471
+ }
472
+ else {
473
+ //columns is editable and we are not asking for record
474
+ if (!record) {
475
+ return true;
476
+ }
477
+ //column is editable, but we need to check if the record is editable
478
+ else
479
+ return this._isRecordFieldEditable(record, column);
480
+ }
481
+ }
482
+ addAggregation(columnName, aggregationFunction) {
483
+ this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {
484
+ this._setAggregationDecorator(() => {
485
+ this._totalRow.addAggregation(columnName, aggregationFunction);
486
+ });
487
+ });
488
+ }
489
+ removeAggregation(alias) {
490
+ this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {
491
+ this._setAggregationDecorator(() => {
492
+ this._totalRow.removeAggregation(alias);
493
+ });
494
+ });
495
+ }
496
+ toggleColumnGroup(columnName) {
497
+ this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {
498
+ const column = this.getDataset().getDataProvider().getColumnsMap()[columnName];
499
+ if (column.grouping?.isGrouped) {
500
+ this._grouping.ungroupColumn(column.grouping.alias);
501
+ }
502
+ else {
503
+ this._grouping.groupColumn(column.name);
504
+ }
505
+ this._dataset.refresh();
506
+ });
507
+ }
508
+ getColumnFilter(columnName) {
509
+ return this._filtering.getColumnFilter(columnName);
510
+ }
511
+ removeColumnFilter(columnName, saveToDataset) {
512
+ this._filtering.removeColumnFilter(columnName);
513
+ if (!saveToDataset) {
514
+ return;
515
+ }
516
+ this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {
517
+ const filterExpression = this._filtering.getFilterExpression(Type.And.Value);
518
+ if (!filterExpression) {
519
+ throw new Error('Unexpected error when clearing column filter.');
520
+ }
521
+ this._dataset.filtering.setFilter(filterExpression);
522
+ this._dataset.refresh();
523
+ });
524
+ }
525
+ sortColumn(columnName, descending) {
526
+ this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {
527
+ this._sorting.getColumnSorting(columnName).setSortValue(descending ? 1 : 0, hotkeys.getPressedKeyString().includes('⇧'));
528
+ this._dataset.refresh();
529
+ });
530
+ }
531
+ clearColumnSorting(columnName) {
532
+ this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {
533
+ this._sorting.getColumnSorting(columnName).clear();
534
+ this._dataset.refresh();
535
+ });
536
+ }
537
+ getTotalRow() {
538
+ return this._totalRow;
539
+ }
540
+ getFiltering() {
541
+ return this._filtering;
542
+ }
543
+ isSelectionModifierKeyPressed() {
544
+ const pressedKeys = hotkeys.getPressedKeyString().join(',');
545
+ switch (true) {
546
+ case pressedKeys.includes('⇧'):
547
+ case pressedKeys.includes('ctrl'):
548
+ case pressedKeys.includes('⌘'): {
549
+ return true;
550
+ }
551
+ default: {
552
+ return false;
553
+ }
554
+ }
555
+ }
556
+ getColumnSortingLabel(columnName, descending) {
557
+ const column = this.getDataset().getDataProvider().getColumnsMap()[columnName];
558
+ switch (column.dataType) {
559
+ case DataTypes.WholeNone:
560
+ case DataTypes.Decimal:
561
+ case DataTypes.WholeDuration:
562
+ case DataTypes.Currency: {
563
+ if (!descending) {
564
+ return this._labels['filtersortmenu-sortnumber-a-z']();
565
+ }
566
+ return this._labels['filtersortmenu-sortnumber-z-a']();
567
+ }
568
+ case DataTypes.DateAndTimeDateAndTime:
569
+ case DataTypes.DateAndTimeDateOnly: {
570
+ if (!descending) {
571
+ return this._labels['filtersortmenu-sortdate-a-z']();
572
+ }
573
+ return this._labels['filtersortmenu-sortdate-z-a']();
574
+ }
575
+ case DataTypes.TwoOptions: {
576
+ const options = column.metadata?.OptionSet ?? [];
577
+ if (!descending) {
578
+ return `${options[0].Label} ${this._labels['filtersortmenu-sorttwooption-joint']()} ${options[1].Label}`;
579
+ }
580
+ return `${options[1].Label} ${this._labels['filtersortmenu-sorttwooption-joint']()} ${options[0].Label}`;
581
+ }
582
+ default: {
583
+ if (!descending) {
584
+ return this._labels['filtersortmenu-sorttext-a-z']();
585
+ }
586
+ return this._labels['filtersortmenu-sorttext-z-a']();
587
+ }
588
+ }
589
+ }
590
+ destroy() {
591
+ if (this._nestedProviderPagingLimitNotificationId) {
592
+ window.Xrm.App.clearGlobalNotification(this._nestedProviderPagingLimitNotificationId);
593
+ }
594
+ hotkeys.unbind();
595
+ }
596
+ _getInternalDataProvider() {
597
+ return this.getDataset().getDataProvider();
598
+ }
599
+ _setAggregationDecorator(fn) {
600
+ fn();
601
+ if (this._dataset.grouping.getGroupBys().length > 0) {
602
+ this._dataset.refresh();
603
+ }
604
+ else {
605
+ this._totalRow?.refresh();
606
+ }
607
+ }
608
+ _getRecordValue(record, column, formatted) {
609
+ if (!record) {
610
+ return {
611
+ value: null,
612
+ aggregatedValue: null
613
+ };
614
+ }
615
+ const columnName = typeof column === 'string' ? column : column.name;
616
+ column = record.getDataProvider().getColumnsMap()[columnName];
617
+ if (!column) {
618
+ return {
619
+ value: null,
620
+ aggregatedValue: null
621
+ };
622
+ }
623
+ const method = formatted ? 'getFormattedValue' : 'getValue';
624
+ const groupBy = record.getDataProvider().grouping.getGroupBy(column.grouping?.alias);
625
+ const aggregation = record.getDataProvider().aggregation.getAggregation(column.aggregation?.alias);
626
+ let value = record[method](columnName);
627
+ let aggregatedValue = null;
628
+ if (groupBy) {
629
+ value = record[method](groupBy.alias);
630
+ }
631
+ if (aggregation) {
632
+ aggregatedValue = record[method](aggregation.alias);
633
+ }
634
+ return {
635
+ value: value,
636
+ aggregatedValue: aggregatedValue
637
+ };
638
+ }
639
+ _isRecordFieldEditable(record, column) {
640
+ const columnInfo = record.getColumnInfo(column.name);
641
+ //if editable not defined, return true since column is editable in this case
642
+ return columnInfo?.security.editable ?? true;
643
+ }
644
+ _isColumnRequired(column) {
645
+ if (!this.getParameters().EnableEditing?.raw) {
646
+ return false;
647
+ }
648
+ switch (column.metadata?.RequiredLevel) {
649
+ case 1:
650
+ case 2: {
651
+ return true;
652
+ }
653
+ default: {
654
+ return false;
655
+ }
656
+ }
657
+ }
658
+ _isColumnSortable(column) {
659
+ //sorting enabled by default
660
+ if (this.getParameters().EnableSorting?.raw === false) {
661
+ return false;
662
+ }
663
+ return !column.disableSorting;
664
+ }
665
+ _isColumnFilterable(column) {
666
+ //filtering enabled by default
667
+ if (this.getParameters().EnableFiltering?.raw === false) {
668
+ return false;
669
+ }
670
+ if (!column.metadata?.SupportedFilterConditionOperators || column.metadata.SupportedFilterConditionOperators.length === 0) {
671
+ return false;
672
+ }
673
+ return true;
674
+ }
675
+ _isColumnGroupable(column) {
676
+ //grouping disabled by default
677
+ if (this.getParameters().EnableGrouping?.raw !== true) {
678
+ return false;
679
+ }
680
+ return !!column.metadata?.CanBeGrouped;
681
+ }
682
+ _isColumnEditable(column) {
683
+ //editing disabled by default
684
+ if (this.getParameters().EnableEditing?.raw !== true) {
685
+ return false;
686
+ }
687
+ return !!column.metadata?.IsValidForUpdate;
688
+ }
689
+ _canColumnBeAggregated(column) {
690
+ //aggregations disabled by default
691
+ if (this.getParameters().EnableAggregation?.raw !== true) {
692
+ return false;
693
+ }
694
+ if (!column.metadata?.SupportedAggregations || column.metadata.SupportedAggregations.length === 0) {
695
+ return false;
696
+ }
697
+ return true;
698
+ }
699
+ _registerEventListeners() {
700
+ this._dataset.addEventListener('onRecordColumnValueChanged', (record) => this._autoSaveRecord(record));
701
+ this._dataset.addEventListener('onAfterRecordSaved', () => this._refreshTotalRowOnAutoSave());
702
+ this._dataset.addEventListener('onAfterSaved', () => this._totalRow.refresh());
703
+ this._dataset.addEventListener('onNestedProviderPagingLimitReached', () => this._showNestedProviderPagingLimitNotification());
704
+ this._setGroupingInterceptor();
705
+ }
706
+ //TODO: use control notification instead
707
+ async _showNestedProviderPagingLimitNotification() {
708
+ if (!this._nestedProviderPagingLimitNotificationId) {
709
+ this._nestedProviderPagingLimitNotificationId = await window.Xrm.App.addGlobalNotification({
710
+ level: 4,
711
+ message: this.getLabels()['maximumGroupChildrenLimitReached']({ maxGroupChildren: Formatting.Get().formatInteger(5000) }),
712
+ type: 2
713
+ });
714
+ }
715
+ }
716
+ _autoSaveRecord(record) {
717
+ if (this.isAutoSaveEnabled() && record.isDirty()) {
718
+ record.save();
719
+ }
720
+ }
721
+ _refreshTotalRowOnAutoSave() {
722
+ if (this.isAutoSaveEnabled()) {
723
+ this._totalRow.refresh();
724
+ }
725
+ }
726
+ //this method makes sure that the grouping is only applied to the first grouping column
727
+ //this allows for nested grouping to work correctly
728
+ _setGroupingInterceptor() {
729
+ if (this.getGroupType() === 'flat') {
730
+ return;
731
+ }
732
+ let originalSortedGrouping = [];
733
+ let originalAggregation = [];
734
+ this._dataset.addEventListener('onBeforeNewDataLoaded', () => {
735
+ originalSortedGrouping = this._dataset.grouping.getGroupBys().sort((a, b) => {
736
+ const colA = this._dataset.getDataProvider().getColumnsMap()[a.columnName];
737
+ const colB = this._dataset.getDataProvider().getColumnsMap()[b.columnName];
738
+ return colA.order - colB.order;
739
+ });
740
+ originalAggregation = this._dataset.aggregation.getAggregations();
741
+ if (originalSortedGrouping.length > 1) {
742
+ this._dataset.grouping.clear();
743
+ const groupBy = originalSortedGrouping[0];
744
+ this._dataset.grouping.addGroupBy(groupBy);
745
+ //clear all grouping aggregations except the first one
746
+ for (let i = 1; i < originalSortedGrouping.length; i++) {
747
+ const column = this._dataset.getDataProvider().getColumnsMap()[originalSortedGrouping[i].columnName];
748
+ this._dataset.aggregation.removeAggregation(column?.aggregation?.alias);
749
+ }
750
+ }
751
+ });
752
+ this._dataset.addEventListener('onNewDataLoaded', () => {
753
+ originalSortedGrouping.map((group) => {
754
+ this._dataset.grouping.addGroupBy(group);
755
+ });
756
+ originalAggregation.map((aggr) => {
757
+ this._dataset.aggregation.addAggregation(aggr);
758
+ });
759
+ });
760
+ }
761
+ get _dataset() {
762
+ return this.getDataset();
763
+ }
764
+ }
765
+
766
+ export { GridModel };
767
+ //# sourceMappingURL=GridModel.js.map