@talxis/base-controls 1.2507.2 → 1.2509.1-alpha.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 (477) hide show
  1. package/dist/components/DatasetControl/DatasetControl.js +59 -55
  2. package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
  3. package/dist/components/DatasetControl/DatasetControlModel.d.ts +37 -0
  4. package/dist/components/DatasetControl/DatasetControlModel.js +110 -0
  5. package/dist/components/DatasetControl/DatasetControlModel.js.map +1 -0
  6. package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.d.ts +3 -0
  7. package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js +166 -0
  8. package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js.map +1 -0
  9. package/dist/components/DatasetControl/Filtering/DatasetColumnFilteringModel.d.ts +16 -0
  10. package/dist/components/DatasetControl/Filtering/DatasetColumnFilteringModel.js +59 -0
  11. package/dist/components/DatasetControl/Filtering/DatasetColumnFilteringModel.js.map +1 -0
  12. package/dist/components/DatasetControl/Filtering/interfaces.d.ts +32 -0
  13. package/dist/components/DatasetControl/Filtering/styles.d.ts +16 -0
  14. package/dist/components/DatasetControl/Filtering/styles.js +23 -0
  15. package/dist/components/DatasetControl/Filtering/styles.js.map +1 -0
  16. package/dist/components/DatasetControl/Filtering/translations.d.ts +154 -0
  17. package/dist/components/DatasetControl/Filtering/translations.js +43 -0
  18. package/dist/components/DatasetControl/Filtering/translations.js.map +1 -0
  19. package/dist/components/DatasetControl/Header/Header.d.ts +5 -0
  20. package/dist/components/DatasetControl/Header/Header.js +89 -0
  21. package/dist/components/DatasetControl/Header/Header.js.map +1 -0
  22. package/dist/components/DatasetControl/Header/styles.d.ts +22 -0
  23. package/dist/components/DatasetControl/Header/styles.js +29 -0
  24. package/dist/components/DatasetControl/Header/styles.js.map +1 -0
  25. package/dist/components/DatasetControl/Pagination/Pagination.d.ts +5 -0
  26. package/dist/components/DatasetControl/Pagination/Pagination.js +91 -0
  27. package/dist/components/DatasetControl/Pagination/Pagination.js.map +1 -0
  28. package/dist/components/DatasetControl/Pagination/PaginationModel.d.ts +10 -0
  29. package/dist/components/DatasetControl/Pagination/PaginationModel.js +42 -0
  30. package/dist/components/DatasetControl/Pagination/PaginationModel.js.map +1 -0
  31. package/dist/components/DatasetControl/Pagination/styles.d.ts +17 -0
  32. package/dist/components/DatasetControl/Pagination/styles.js +23 -0
  33. package/dist/components/DatasetControl/Pagination/styles.js.map +1 -0
  34. package/dist/components/DatasetControl/QuickFind/QuickFind.d.ts +4 -12
  35. package/dist/components/DatasetControl/QuickFind/QuickFind.js +36 -32
  36. package/dist/components/DatasetControl/QuickFind/QuickFind.js.map +1 -1
  37. package/dist/components/DatasetControl/QuickFind/styles.d.ts +1 -1
  38. package/dist/components/DatasetControl/QuickFind/styles.js +2 -2
  39. package/dist/components/DatasetControl/QuickFind/styles.js.map +1 -1
  40. package/dist/components/DatasetControl/index.d.ts +0 -1
  41. package/dist/components/DatasetControl/index.js +0 -2
  42. package/dist/components/DatasetControl/index.js.map +1 -1
  43. package/dist/components/DatasetControl/interfaces.d.ts +54 -20
  44. package/dist/components/DatasetControl/styles.d.ts +4 -11
  45. package/dist/components/DatasetControl/styles.js +5 -11
  46. package/dist/components/DatasetControl/styles.js.map +1 -1
  47. package/dist/components/DatasetControl/translations.d.ts +44 -0
  48. package/dist/components/DatasetControl/translations.js +15 -1
  49. package/dist/components/DatasetControl/translations.js.map +1 -1
  50. package/dist/components/DatasetControl/useModel.d.ts +4 -0
  51. package/dist/components/DatasetControl/useModel.js +9 -0
  52. package/dist/components/DatasetControl/useModel.js.map +1 -0
  53. package/dist/components/DateTime/translations.d.ts +1 -0
  54. package/dist/components/Duration/durationOptions.d.ts +1 -0
  55. package/dist/components/Grid/{core/components/Cell → cells/cell}/Cell.d.ts +3 -3
  56. package/dist/components/Grid/cells/cell/Cell.js +302 -0
  57. package/dist/components/Grid/cells/cell/Cell.js.map +1 -0
  58. package/dist/components/Grid/{core/components/Cell/CellContent → cells/cell/content}/CellContent.d.ts +2 -2
  59. package/dist/components/Grid/{core/components/Cell/CellContent → cells/cell/content}/CellContent.js +41 -32
  60. package/dist/components/Grid/cells/cell/content/CellContent.js.map +1 -0
  61. package/dist/components/Grid/cells/cell/content/styles.js.map +1 -0
  62. package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/Notifications.d.ts +1 -1
  63. package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/Notifications.js +5 -5
  64. package/dist/components/Grid/cells/cell/notifications/Notifications.js.map +1 -0
  65. package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/styles.js +1 -1
  66. package/dist/components/Grid/cells/cell/notifications/styles.js.map +1 -0
  67. package/dist/components/Grid/{core/components/Cell → cells/cell}/styles.d.ts +34 -3
  68. package/dist/components/Grid/cells/cell/styles.js +78 -0
  69. package/dist/components/Grid/cells/cell/styles.js.map +1 -0
  70. package/dist/components/Grid/{core/components/ColumnHeader → column-headers/column-header}/ColumnHeader.d.ts +1 -1
  71. package/dist/components/Grid/column-headers/column-header/ColumnHeader.js +82 -0
  72. package/dist/components/Grid/column-headers/column-header/ColumnHeader.js.map +1 -0
  73. package/dist/components/Grid/{sorting/components/SortingContextualMenu/SortingContextualMenu.d.ts → column-headers/column-header/ColumnHeaderContextualMenu.d.ts} +3 -3
  74. package/dist/components/Grid/column-headers/column-header/ColumnHeaderContextualMenu.js +115 -0
  75. package/dist/components/Grid/column-headers/column-header/ColumnHeaderContextualMenu.js.map +1 -0
  76. package/dist/components/Grid/{filtering/components/FilterCallout → column-headers/column-header}/FilterCallout.d.ts +1 -1
  77. package/dist/components/Grid/column-headers/column-header/FilterCallout.js +103 -0
  78. package/dist/components/Grid/column-headers/column-header/FilterCallout.js.map +1 -0
  79. package/dist/components/Grid/column-headers/column-header/styles.d.ts +84 -0
  80. package/dist/components/Grid/{filtering/components/FilterCallout → column-headers/column-header}/styles.js +20 -11
  81. package/dist/components/Grid/column-headers/column-header/styles.js.map +1 -0
  82. package/dist/components/Grid/column-headers/record-selection-checkbox/RecordSelectionCheckbox.d.ts +2 -0
  83. package/dist/components/Grid/column-headers/record-selection-checkbox/RecordSelectionCheckbox.js +50 -0
  84. package/dist/components/Grid/column-headers/record-selection-checkbox/RecordSelectionCheckbox.js.map +1 -0
  85. package/dist/components/Grid/column-headers/record-selection-checkbox/styles.js.map +1 -0
  86. package/dist/components/Grid/errors/FullWidthCellRendererError/FullWidthCellRendererError.d.ts +6 -0
  87. package/dist/components/Grid/errors/FullWidthCellRendererError/FullWidthCellRendererError.js +15 -0
  88. package/dist/components/Grid/errors/FullWidthCellRendererError/FullWidthCellRendererError.js.map +1 -0
  89. package/dist/components/Grid/errors/FullWidthCellRendererError/styles.d.ts +6 -0
  90. package/dist/components/Grid/errors/FullWidthCellRendererError/styles.js +13 -0
  91. package/dist/components/Grid/errors/FullWidthCellRendererError/styles.js.map +1 -0
  92. package/dist/components/Grid/{core/components/AgGrid/AgGrid.d.ts → grid/Grid.d.ts} +2 -2
  93. package/dist/components/Grid/grid/Grid.js +64 -0
  94. package/dist/components/Grid/grid/Grid.js.map +1 -0
  95. package/dist/components/Grid/grid/GridContext.d.ts +3 -0
  96. package/dist/components/Grid/grid/GridContext.js.map +1 -0
  97. package/dist/components/Grid/grid/GridModel.d.ts +118 -0
  98. package/dist/components/Grid/grid/GridModel.js +787 -0
  99. package/dist/components/Grid/grid/GridModel.js.map +1 -0
  100. package/dist/components/Grid/{core/components/AgGrid/model/Comparator.d.ts → grid/ValueComparator.d.ts} +1 -1
  101. package/dist/components/Grid/{core/components/AgGrid/model/Comparator.js → grid/ValueComparator.js} +7 -1
  102. package/dist/components/Grid/grid/ValueComparator.js.map +1 -0
  103. package/dist/components/Grid/{core/components/AgGrid/context.d.ts → grid/ag-grid/AgGridContext.d.ts} +2 -2
  104. package/dist/components/Grid/{core/components/AgGrid/context.js → grid/ag-grid/AgGridContext.js} +1 -1
  105. package/dist/components/Grid/grid/ag-grid/AgGridContext.js.map +1 -0
  106. package/dist/components/Grid/grid/ag-grid/AgGridModel.d.ts +87 -0
  107. package/dist/components/Grid/grid/ag-grid/AgGridModel.js +554 -0
  108. package/dist/components/Grid/grid/ag-grid/AgGridModel.js.map +1 -0
  109. package/dist/components/Grid/grid/ag-grid/ServerSideDatasource.d.ts +7 -0
  110. package/dist/components/Grid/grid/ag-grid/ServerSideDatasource.js +38 -0
  111. package/dist/components/Grid/grid/ag-grid/ServerSideDatasource.js.map +1 -0
  112. package/dist/components/Grid/grid/ag-grid/useAgGridInstance.d.ts +2 -0
  113. package/dist/components/Grid/grid/ag-grid/useAgGridInstance.js +9 -0
  114. package/dist/components/Grid/grid/ag-grid/useAgGridInstance.js.map +1 -0
  115. package/dist/components/Grid/{core/components/AgGrid → grid}/styles.d.ts +24 -4
  116. package/dist/components/Grid/{core/components/AgGrid → grid}/styles.js +37 -6
  117. package/dist/components/Grid/grid/styles.js.map +1 -0
  118. package/dist/components/Grid/grid/useGridInstance.d.ts +2 -0
  119. package/dist/components/Grid/{core/hooks → grid}/useGridInstance.js +2 -2
  120. package/dist/components/Grid/grid/useGridInstance.js.map +1 -0
  121. package/dist/components/Grid/index.d.ts +1 -1
  122. package/dist/components/Grid/index.js +1 -1
  123. package/dist/components/Grid/interfaces.d.ts +10 -0
  124. package/dist/components/Grid/loading/full-row/FullRowLoading.d.ts +3 -0
  125. package/dist/components/Grid/loading/full-row/FullRowLoading.js +33 -0
  126. package/dist/components/Grid/loading/full-row/FullRowLoading.js.map +1 -0
  127. package/dist/components/Grid/loading/full-row/styles.d.ts +9 -0
  128. package/dist/components/Grid/loading/full-row/styles.js +16 -0
  129. package/dist/components/Grid/loading/full-row/styles.js.map +1 -0
  130. package/dist/components/Grid/overlays/empty-records/EmptyRecordsOverlay.js +13 -0
  131. package/dist/components/Grid/overlays/empty-records/EmptyRecordsOverlay.js.map +1 -0
  132. package/dist/components/Grid/{core/components/AgGrid/components/EmptyRecordsOverlay → overlays/empty-records}/styles.d.ts +1 -1
  133. package/dist/components/Grid/{core/components/AgGrid/components/EmptyRecordsOverlay → overlays/empty-records}/styles.js +1 -1
  134. package/dist/components/Grid/overlays/empty-records/styles.js.map +1 -0
  135. package/dist/components/Grid/overlays/loading/LoadingOverlay.js.map +1 -0
  136. package/dist/components/Grid/translations.d.ts +20 -180
  137. package/dist/components/Grid/translations.js +5 -48
  138. package/dist/components/Grid/translations.js.map +1 -1
  139. package/dist/components/GridCellRenderer/GridCellRenderer.js +99 -282
  140. package/dist/components/GridCellRenderer/GridCellRenderer.js.map +1 -1
  141. package/dist/components/GridCellRenderer/GridCellRendererModel.d.ts +52 -0
  142. package/dist/components/GridCellRenderer/GridCellRendererModel.js +211 -0
  143. package/dist/components/GridCellRenderer/GridCellRendererModel.js.map +1 -0
  144. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/ColorfulOptionSetValueRenderer.d.ts +10 -0
  145. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/ColorfulOptionSetValueRenderer.js +53 -0
  146. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/ColorfulOptionSetValueRenderer.js.map +1 -0
  147. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/styles.d.ts +20 -0
  148. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/styles.js +29 -0
  149. package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/styles.js.map +1 -0
  150. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.d.ts +7 -0
  151. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.js +76 -0
  152. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.js.map +1 -0
  153. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/styles.d.ts +18 -0
  154. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/styles.js +25 -0
  155. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/styles.js.map +1 -0
  156. package/dist/components/GridCellRenderer/ValueRenderer/ValueRenderer.d.ts +3 -0
  157. package/dist/components/GridCellRenderer/ValueRenderer/ValueRenderer.js +52 -0
  158. package/dist/components/GridCellRenderer/ValueRenderer/ValueRenderer.js.map +1 -0
  159. package/dist/components/GridCellRenderer/ValueRenderer/styles.d.ts +1666 -0
  160. package/dist/components/GridCellRenderer/ValueRenderer/styles.js +31 -0
  161. package/dist/components/GridCellRenderer/ValueRenderer/styles.js.map +1 -0
  162. package/dist/components/GridCellRenderer/interfaces.d.ts +54 -42
  163. package/dist/components/GridCellRenderer/properties/Email.d.ts +5 -0
  164. package/dist/components/GridCellRenderer/properties/Email.js +15 -0
  165. package/dist/components/GridCellRenderer/properties/Email.js.map +1 -0
  166. package/dist/components/GridCellRenderer/properties/File.d.ts +20 -0
  167. package/dist/components/GridCellRenderer/properties/File.js +99 -0
  168. package/dist/components/GridCellRenderer/properties/File.js.map +1 -0
  169. package/dist/components/GridCellRenderer/properties/Image.d.ts +4 -0
  170. package/dist/components/GridCellRenderer/properties/Image.js +15 -0
  171. package/dist/components/GridCellRenderer/properties/Image.js.map +1 -0
  172. package/dist/components/GridCellRenderer/properties/Lookup.d.ts +6 -0
  173. package/dist/components/GridCellRenderer/properties/Lookup.js +19 -0
  174. package/dist/components/GridCellRenderer/properties/Lookup.js.map +1 -0
  175. package/dist/components/GridCellRenderer/properties/MultiSelectOptionSet.d.ts +6 -0
  176. package/dist/components/GridCellRenderer/properties/MultiSelectOptionSet.js +11 -0
  177. package/dist/components/GridCellRenderer/properties/MultiSelectOptionSet.js.map +1 -0
  178. package/dist/components/GridCellRenderer/properties/MultilineText.d.ts +4 -0
  179. package/dist/components/GridCellRenderer/properties/MultilineText.js +10 -0
  180. package/dist/components/GridCellRenderer/properties/MultilineText.js.map +1 -0
  181. package/dist/components/GridCellRenderer/properties/OptionSet.d.ts +6 -0
  182. package/dist/components/GridCellRenderer/properties/OptionSet.js +11 -0
  183. package/dist/components/GridCellRenderer/properties/OptionSet.js.map +1 -0
  184. package/dist/components/GridCellRenderer/properties/OptionSetBase.d.ts +8 -0
  185. package/dist/components/GridCellRenderer/properties/OptionSetBase.js +19 -0
  186. package/dist/components/GridCellRenderer/properties/OptionSetBase.js.map +1 -0
  187. package/dist/components/GridCellRenderer/properties/Phone.d.ts +9 -0
  188. package/dist/components/GridCellRenderer/properties/Phone.js +15 -0
  189. package/dist/components/GridCellRenderer/properties/Phone.js.map +1 -0
  190. package/dist/components/GridCellRenderer/properties/Property.d.ts +20 -0
  191. package/dist/components/GridCellRenderer/properties/Property.js +54 -0
  192. package/dist/components/GridCellRenderer/properties/Property.js.map +1 -0
  193. package/dist/components/GridCellRenderer/properties/TwoOptions.d.ts +6 -0
  194. package/dist/components/GridCellRenderer/properties/TwoOptions.js +11 -0
  195. package/dist/components/GridCellRenderer/properties/TwoOptions.js.map +1 -0
  196. package/dist/components/GridCellRenderer/properties/Url.d.ts +5 -0
  197. package/dist/components/GridCellRenderer/properties/Url.js +15 -0
  198. package/dist/components/GridCellRenderer/properties/Url.js.map +1 -0
  199. package/dist/components/GridCellRenderer/styles.d.ts +32 -60
  200. package/dist/components/GridCellRenderer/styles.js +67 -77
  201. package/dist/components/GridCellRenderer/styles.js.map +1 -1
  202. package/dist/components/GridCellRenderer/translations.d.ts +1 -1
  203. package/dist/components/GridCellRenderer/translations.js +30 -32
  204. package/dist/components/GridCellRenderer/translations.js.map +1 -1
  205. package/dist/components/GridCellRenderer/useModel.d.ts +4 -0
  206. package/dist/components/GridCellRenderer/useModel.js +9 -0
  207. package/dist/components/GridCellRenderer/useModel.js.map +1 -0
  208. package/dist/components/GridColumnHeader/GridColumnHeader.d.ts +3 -0
  209. package/dist/components/GridColumnHeader/GridColumnHeader.js +133 -0
  210. package/dist/components/GridColumnHeader/GridColumnHeader.js.map +1 -0
  211. package/dist/components/GridColumnHeader/GridColumnHeaderModel.d.ts +26 -0
  212. package/dist/components/GridColumnHeader/GridColumnHeaderModel.js +87 -0
  213. package/dist/components/GridColumnHeader/GridColumnHeaderModel.js.map +1 -0
  214. package/dist/components/GridColumnHeader/interfaces.d.ts +45 -0
  215. package/dist/components/GridColumnHeader/styles.d.ts +34 -0
  216. package/dist/components/GridColumnHeader/styles.js +52 -0
  217. package/dist/components/GridColumnHeader/styles.js.map +1 -0
  218. package/dist/components/GridColumnHeader/translations.d.ts +26 -0
  219. package/dist/components/GridColumnHeader/translations.js +29 -0
  220. package/dist/components/GridColumnHeader/translations.js.map +1 -0
  221. package/dist/components/Lookup/Lookup.js +39 -14
  222. package/dist/components/Lookup/Lookup.js.map +1 -1
  223. package/dist/components/Lookup/hooks/useFetchXml.d.ts +1 -0
  224. package/dist/components/Lookup/hooks/useLookup.d.ts +1 -0
  225. package/dist/components/Lookup/hooks/useLookup.js +68 -2
  226. package/dist/components/Lookup/hooks/useLookup.js.map +1 -1
  227. package/dist/components/Lookup/interfaces.d.ts +1 -0
  228. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +2 -2
  229. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -1
  230. package/dist/components/NestedControlRenderer/NestedControl.d.ts +3 -0
  231. package/dist/components/NestedControlRenderer/NestedControl.js +5 -2
  232. package/dist/components/NestedControlRenderer/NestedControl.js.map +1 -1
  233. package/dist/components/NestedControlRenderer/NestedControlRenderer.js +11 -6
  234. package/dist/components/NestedControlRenderer/NestedControlRenderer.js.map +1 -1
  235. package/dist/components/NestedControlRenderer/interfaces.d.ts +4 -0
  236. package/dist/components/NestedControlRenderer/properties/FileProperty.js +1 -1
  237. package/dist/components/NestedControlRenderer/properties/FileProperty.js.map +1 -1
  238. package/dist/components/NestedControlRenderer/properties/Property.d.ts +1 -0
  239. package/dist/components/OptionSet/OptionSet.js +5 -4
  240. package/dist/components/OptionSet/OptionSet.js.map +1 -1
  241. package/dist/components/OptionSet/shared.d.ts +1 -0
  242. package/dist/components/Ribbon/Ribbon.d.ts +3 -0
  243. package/dist/components/Ribbon/Ribbon.js +97 -0
  244. package/dist/components/Ribbon/Ribbon.js.map +1 -0
  245. package/dist/components/Ribbon/RibbonModel.d.ts +4 -0
  246. package/dist/components/Ribbon/interfaces.d.ts +19 -0
  247. package/dist/components/Ribbon/styles.d.ts +11 -0
  248. package/dist/components/Ribbon/styles.js +18 -0
  249. package/dist/components/Ribbon/styles.js.map +1 -0
  250. package/dist/components/TextField/TextField.js +1 -1
  251. package/dist/components/TextField/TextField.js.map +1 -1
  252. package/dist/components/index.js +1 -3
  253. package/dist/components/index.js.map +1 -1
  254. package/dist/hooks/useControl.d.ts +1 -0
  255. package/dist/hooks/useControl.js +1 -0
  256. package/dist/hooks/useControl.js.map +1 -1
  257. package/dist/hooks/useControlSizing.d.ts +1 -0
  258. package/dist/hooks/useEventEmitter.d.ts +2 -0
  259. package/dist/hooks/useEventEmitter.js +18 -0
  260. package/dist/hooks/useEventEmitter.js.map +1 -0
  261. package/dist/hooks/useInputBasedControl.js +2 -1
  262. package/dist/hooks/useInputBasedControl.js.map +1 -1
  263. package/dist/index.d.ts +153 -288
  264. package/dist/index.js +1 -3
  265. package/dist/index.js.map +1 -1
  266. package/dist/interfaces/context.d.ts +1 -0
  267. package/dist/interfaces/property.d.ts +2 -1
  268. package/dist/utils/BaseControls.d.ts +2 -1
  269. package/dist/utils/BaseControls.js +5 -1
  270. package/dist/utils/BaseControls.js.map +1 -1
  271. package/dist/utils/dataset/adapters/DatasetAdapter.d.ts +1 -0
  272. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.d.ts +1 -5
  273. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js +4 -49
  274. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
  275. package/dist/utils/theme/ControlTheme.d.ts +1 -0
  276. package/dist/utils/theme/components/ThemeWrapper.d.ts +1 -0
  277. package/dist/utils/theme/hooks/useControlTheme.js +2 -1
  278. package/dist/utils/theme/hooks/useControlTheme.js.map +1 -1
  279. package/package.json +9 -5
  280. package/dist/components/DatasetControl/Paging/DatasetPaging.d.ts +0 -3
  281. package/dist/components/DatasetControl/Paging/DatasetPaging.js +0 -69
  282. package/dist/components/DatasetControl/Paging/DatasetPaging.js.map +0 -1
  283. package/dist/components/DatasetControl/Paging/Paging.d.ts +0 -26
  284. package/dist/components/DatasetControl/Paging/Paging.js +0 -80
  285. package/dist/components/DatasetControl/Paging/Paging.js.map +0 -1
  286. package/dist/components/DatasetControl/Paging/index.d.ts +0 -3
  287. package/dist/components/DatasetControl/Paging/index.js +0 -3
  288. package/dist/components/DatasetControl/Paging/index.js.map +0 -1
  289. package/dist/components/DatasetControl/Paging/interfaces.d.ts +0 -16
  290. package/dist/components/DatasetControl/Paging/styles.d.ts +0 -35
  291. package/dist/components/DatasetControl/Paging/styles.js +0 -41
  292. package/dist/components/DatasetControl/Paging/styles.js.map +0 -1
  293. package/dist/components/DatasetControl/Paging/translations.d.ts +0 -38
  294. package/dist/components/DatasetControl/Paging/translations.js +0 -14
  295. package/dist/components/DatasetControl/Paging/translations.js.map +0 -1
  296. package/dist/components/Grid/Grid.d.ts +0 -3
  297. package/dist/components/Grid/Grid.js +0 -37
  298. package/dist/components/Grid/Grid.js.map +0 -1
  299. package/dist/components/Grid/GridContext.d.ts +0 -3
  300. package/dist/components/Grid/GridContext.js.map +0 -1
  301. package/dist/components/Grid/aggregation/Aggregation.d.ts +0 -18
  302. package/dist/components/Grid/aggregation/Aggregation.js +0 -129
  303. package/dist/components/Grid/aggregation/Aggregation.js.map +0 -1
  304. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +0 -203
  305. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +0 -1
  306. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js +0 -12
  307. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js.map +0 -1
  308. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js.map +0 -1
  309. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js.map +0 -1
  310. package/dist/components/Grid/core/components/AgGrid/context.js.map +0 -1
  311. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +0 -52
  312. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +0 -343
  313. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +0 -1
  314. package/dist/components/Grid/core/components/AgGrid/model/Comparator.js.map +0 -1
  315. package/dist/components/Grid/core/components/AgGrid/styles.js.map +0 -1
  316. package/dist/components/Grid/core/components/Cell/Cell.js +0 -158
  317. package/dist/components/Grid/core/components/Cell/Cell.js.map +0 -1
  318. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js.map +0 -1
  319. package/dist/components/Grid/core/components/Cell/CellContent/styles.js.map +0 -1
  320. package/dist/components/Grid/core/components/Cell/Notifications/Notifications.js.map +0 -1
  321. package/dist/components/Grid/core/components/Cell/Notifications/styles.js.map +0 -1
  322. package/dist/components/Grid/core/components/Cell/styles.js +0 -59
  323. package/dist/components/Grid/core/components/Cell/styles.js.map +0 -1
  324. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +0 -61
  325. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +0 -1
  326. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.d.ts +0 -2
  327. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +0 -50
  328. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js.map +0 -1
  329. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js.map +0 -1
  330. package/dist/components/Grid/core/components/ColumnHeader/styles.d.ts +0 -42
  331. package/dist/components/Grid/core/components/ColumnHeader/styles.js +0 -48
  332. package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +0 -1
  333. package/dist/components/Grid/core/components/Dialog/Constants.d.ts +0 -2
  334. package/dist/components/Grid/core/components/Dialog/Constants.js +0 -9
  335. package/dist/components/Grid/core/components/Dialog/Constants.js.map +0 -1
  336. package/dist/components/Grid/core/components/Dialog/Styles.d.ts +0 -2
  337. package/dist/components/Grid/core/components/Dialog/Styles.js +0 -61
  338. package/dist/components/Grid/core/components/Dialog/Styles.js.map +0 -1
  339. package/dist/components/Grid/core/components/Dialog/index.d.ts +0 -4
  340. package/dist/components/Grid/core/components/Dialog/index.js +0 -16
  341. package/dist/components/Grid/core/components/Dialog/index.js.map +0 -1
  342. package/dist/components/Grid/core/components/Dialog/interfaces/index.d.ts +0 -6
  343. package/dist/components/Grid/core/components/Dialog/interfaces/index.js +0 -2
  344. package/dist/components/Grid/core/components/Dialog/interfaces/index.js.map +0 -1
  345. package/dist/components/Grid/core/components/Save/Save.d.ts +0 -2
  346. package/dist/components/Grid/core/components/Save/Save.js +0 -59
  347. package/dist/components/Grid/core/components/Save/Save.js.map +0 -1
  348. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.d.ts +0 -7
  349. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +0 -73
  350. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +0 -1
  351. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.d.ts +0 -11
  352. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +0 -231
  353. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +0 -1
  354. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.d.ts +0 -39
  355. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js +0 -45
  356. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js.map +0 -1
  357. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.d.ts +0 -31
  358. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js +0 -37
  359. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js.map +0 -1
  360. package/dist/components/Grid/core/components/Save/styles.d.ts +0 -35
  361. package/dist/components/Grid/core/components/Save/styles.js +0 -42
  362. package/dist/components/Grid/core/components/Save/styles.js.map +0 -1
  363. package/dist/components/Grid/core/controllers/useGridController.d.ts +0 -7
  364. package/dist/components/Grid/core/controllers/useGridController.js +0 -29
  365. package/dist/components/Grid/core/controllers/useGridController.js.map +0 -1
  366. package/dist/components/Grid/core/enums/ConditionOperator.d.ts +0 -48
  367. package/dist/components/Grid/core/enums/ConditionOperator.js +0 -52
  368. package/dist/components/Grid/core/enums/ConditionOperator.js.map +0 -1
  369. package/dist/components/Grid/core/enums/DataType.d.ts +0 -25
  370. package/dist/components/Grid/core/enums/DataType.js +0 -30
  371. package/dist/components/Grid/core/enums/DataType.js.map +0 -1
  372. package/dist/components/Grid/core/hooks/useGridInstance.d.ts +0 -2
  373. package/dist/components/Grid/core/hooks/useGridInstance.js.map +0 -1
  374. package/dist/components/Grid/core/hooks/useRefreshCallback.d.ts +0 -2
  375. package/dist/components/Grid/core/hooks/useRefreshCallback.js +0 -20
  376. package/dist/components/Grid/core/hooks/useRefreshCallback.js.map +0 -1
  377. package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +0 -13
  378. package/dist/components/Grid/core/interfaces/IGridContext.d.ts +0 -4
  379. package/dist/components/Grid/core/model/Grid.d.ts +0 -81
  380. package/dist/components/Grid/core/model/Grid.js +0 -513
  381. package/dist/components/Grid/core/model/Grid.js.map +0 -1
  382. package/dist/components/Grid/core/model/GridDependency.d.ts +0 -13
  383. package/dist/components/Grid/core/model/GridDependency.js +0 -28
  384. package/dist/components/Grid/core/model/GridDependency.js.map +0 -1
  385. package/dist/components/Grid/core/services/KeyListener.d.ts +0 -12
  386. package/dist/components/Grid/core/services/KeyListener.js +0 -31
  387. package/dist/components/Grid/core/services/KeyListener.js.map +0 -1
  388. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js +0 -59
  389. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js.map +0 -1
  390. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.d.ts +0 -7
  391. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +0 -56
  392. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js.map +0 -1
  393. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.d.ts +0 -7
  394. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +0 -73
  395. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +0 -1
  396. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.d.ts +0 -7
  397. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.js +0 -90
  398. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.js.map +0 -1
  399. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +0 -48
  400. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +0 -146
  401. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +0 -1
  402. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.d.ts +0 -11
  403. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.js +0 -53
  404. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.js.map +0 -1
  405. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.d.ts +0 -9
  406. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.js +0 -31
  407. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.js.map +0 -1
  408. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.d.ts +0 -10
  409. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.js +0 -294
  410. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.js.map +0 -1
  411. package/dist/components/Grid/filtering/components/FilterCallout/styles.d.ts +0 -35
  412. package/dist/components/Grid/filtering/components/FilterCallout/styles.js.map +0 -1
  413. package/dist/components/Grid/filtering/constants.d.ts +0 -5
  414. package/dist/components/Grid/filtering/constants.js +0 -53
  415. package/dist/components/Grid/filtering/constants.js.map +0 -1
  416. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.d.ts +0 -21
  417. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js +0 -44
  418. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js.map +0 -1
  419. package/dist/components/Grid/filtering/model/Condition.d.ts +0 -49
  420. package/dist/components/Grid/filtering/model/Condition.js +0 -347
  421. package/dist/components/Grid/filtering/model/Condition.js.map +0 -1
  422. package/dist/components/Grid/filtering/model/Filtering.d.ts +0 -11
  423. package/dist/components/Grid/filtering/model/Filtering.js +0 -78
  424. package/dist/components/Grid/filtering/model/Filtering.js.map +0 -1
  425. package/dist/components/Grid/filtering/utils/FilteringUtilts.d.ts +0 -34
  426. package/dist/components/Grid/filtering/utils/FilteringUtilts.js +0 -195
  427. package/dist/components/Grid/filtering/utils/FilteringUtilts.js.map +0 -1
  428. package/dist/components/Grid/selection/model/Selection.d.ts +0 -12
  429. package/dist/components/Grid/selection/model/Selection.js +0 -54
  430. package/dist/components/Grid/selection/model/Selection.js.map +0 -1
  431. package/dist/components/Grid/sorting/Sorting.d.ts +0 -10
  432. package/dist/components/Grid/sorting/Sorting.js +0 -31
  433. package/dist/components/Grid/sorting/Sorting.js.map +0 -1
  434. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +0 -157
  435. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +0 -1
  436. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.d.ts +0 -9
  437. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js +0 -15
  438. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js.map +0 -1
  439. package/dist/components/Grid/sorting/controllers/useColumnSortingController.d.ts +0 -9
  440. package/dist/components/Grid/sorting/controllers/useColumnSortingController.js +0 -22
  441. package/dist/components/Grid/sorting/controllers/useColumnSortingController.js.map +0 -1
  442. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.d.ts +0 -2
  443. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js +0 -11
  444. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js.map +0 -1
  445. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.d.ts +0 -1
  446. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js +0 -2
  447. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js.map +0 -1
  448. package/dist/components/GridCellRenderer/OptionSet/OptionSet.d.ts +0 -5
  449. package/dist/components/GridCellRenderer/OptionSet/OptionSet.js +0 -75
  450. package/dist/components/GridCellRenderer/OptionSet/OptionSet.js.map +0 -1
  451. package/dist/components/GridCellRenderer/OptionSet/index.d.ts +0 -1
  452. package/dist/components/GridCellRenderer/OptionSet/index.js +0 -2
  453. package/dist/components/GridCellRenderer/OptionSet/index.js.map +0 -1
  454. package/dist/components/GridCellRenderer/OptionSet/styles.d.ts +0 -20
  455. package/dist/components/GridCellRenderer/OptionSet/styles.js +0 -29
  456. package/dist/components/GridCellRenderer/OptionSet/styles.js.map +0 -1
  457. package/dist/components/GridCellRenderer/RecordCommands/Icon.d.ts +0 -7
  458. package/dist/components/GridCellRenderer/RecordCommands/Icon.js +0 -32
  459. package/dist/components/GridCellRenderer/RecordCommands/Icon.js.map +0 -1
  460. package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.d.ts +0 -13
  461. package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.js +0 -103
  462. package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.js.map +0 -1
  463. package/dist/components/GridCellRenderer/RecordCommands/styles.d.ts +0 -13
  464. package/dist/components/GridCellRenderer/RecordCommands/styles.js +0 -32
  465. package/dist/components/GridCellRenderer/RecordCommands/styles.js.map +0 -1
  466. package/dist/components/GridCellRenderer/useComponentProps.d.ts +0 -6
  467. package/dist/components/GridCellRenderer/useComponentProps.js +0 -10
  468. package/dist/components/GridCellRenderer/useComponentProps.js.map +0 -1
  469. /package/dist/components/Grid/{core/components/Cell/CellContent → cells/cell/content}/styles.d.ts +0 -0
  470. /package/dist/components/Grid/{core/components/Cell/CellContent → cells/cell/content}/styles.js +0 -0
  471. /package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/styles.d.ts +0 -0
  472. /package/dist/components/Grid/{core/components/ColumnHeader/components/GlobalCheckbox → column-headers/record-selection-checkbox}/styles.d.ts +0 -0
  473. /package/dist/components/Grid/{core/components/ColumnHeader/components/GlobalCheckbox → column-headers/record-selection-checkbox}/styles.js +0 -0
  474. /package/dist/components/Grid/{GridContext.js → grid/GridContext.js} +0 -0
  475. /package/dist/components/Grid/{core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.d.ts → overlays/empty-records/EmptyRecordsOverlay.d.ts} +0 -0
  476. /package/dist/components/Grid/{core/components/AgGrid/components/LoadingOverlay → overlays/loading}/LoadingOverlay.d.ts +0 -0
  477. /package/dist/components/Grid/{core/components/AgGrid/components/LoadingOverlay → overlays/loading}/LoadingOverlay.js +0 -0
@@ -1,71 +1,75 @@
1
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { useRef, useMemo } from 'react';
3
3
  import { ThemeProvider } from '@fluentui/react';
4
4
  import { datasetControlTranslations } from './translations.js';
5
- import { getDatasetControlStyles } from './styles.js';
6
- import { QuickFind } from './QuickFind/QuickFind.js';
7
5
  import { useRerender } from '@talxis/react-components';
8
- import { Client } from '@talxis/client-libraries';
9
- import { DatasetPaging } from './Paging/DatasetPaging.js';
6
+ import { DatasetControlModel } from './DatasetControlModel.js';
7
+ import { ModelContext } from './useModel.js';
8
+ import { Pagination } from './Pagination/Pagination.js';
9
+ import { getDatasetControlStyles } from './styles.js';
10
+ import { Header } from './Header/Header.js';
11
+ import { useEventEmitter } from '../../hooks/useEventEmitter.js';
10
12
  import { useControl } from '../../hooks/useControl.js';
11
13
 
12
- const client = new Client();
13
14
  const DatasetControl = (props) => {
14
15
  const { labels, theme } = useControl('DatasetControl', props, datasetControlTranslations);
15
- const rerender = useRerender();
16
- const dataset = props.parameters.Grid;
17
- const injectedContextRef = useRef(props.context);
18
- const styles = useMemo(() => getDatasetControlStyles(theme, props.parameters.Height?.raw), []);
16
+ const propsRef = useRef(props);
17
+ propsRef.current = props;
18
+ const model = useMemo(() => new DatasetControlModel({
19
+ getProps: () => propsRef.current,
20
+ getLabels: () => labels,
21
+ }), []);
19
22
  const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);
20
- useMemo(() => {
21
- if (dataset.isVirtual() || !client.isTalxisPortal()) {
22
- dataset.setInterceptor('__onRequestRender', () => rerender());
23
- }
24
- }, []);
25
- //we need to have a way to customize the init behavior from above
23
+ const rerender = useRerender();
24
+ const styles = useMemo(() => getDatasetControlStyles(props.parameters.Height?.raw), [props.parameters.Height?.raw]);
25
+ const dataset = model.getDataset();
26
+ useEventEmitter(dataset, 'onNewDataLoaded', rerender);
27
+ useEventEmitter(dataset, 'onRenderRequested', rerender);
28
+ useEventEmitter(dataset, 'onBeforeNewDataLoaded', rerender);
26
29
  const componentProps = onOverrideComponentProps({
27
- onDatasetInit: () => {
28
- if (dataset.isVirtual()) {
29
- dataset.paging.loadExactPage(dataset.paging.pageNumber);
30
- }
31
- },
32
- containerProps: {
33
- theme: theme,
34
- className: styles.datasetControlRoot,
35
- },
36
- headerProps: {
37
- headerContainerProps: {
38
- className: styles.headerRoot
39
- },
40
- onRender: (renderQuickFind) => renderQuickFind(),
41
- onGetQuickFindProps: (props) => props
42
- },
43
- onRenderPagination: (props, renderPagination) => renderPagination(props)
30
+ onRender: (props, defaultRender) => defaultRender(props),
44
31
  });
45
- useMemo(() => {
46
- //@ts-ignore - private property
47
- injectedContextRef.current = dataset._patchContext(props.context);
48
- }, [props.context]);
49
- useMemo(() => {
50
- componentProps.onDatasetInit();
51
- }, []);
52
- const isQuickFindEnabled = () => {
53
- if (dataset.isVirtual() && props.parameters.EnableQuickFind?.raw) {
54
- return true;
32
+ const isFooterVisible = () => {
33
+ switch (true) {
34
+ case model.isPaginationVisible():
35
+ case model.isRecordCountVisible():
36
+ case model.isPageSizeSwitcherVisible():
37
+ return true;
38
+ default:
39
+ return false;
55
40
  }
56
- return false;
57
41
  };
58
- return (jsxs(ThemeProvider, { ...componentProps.containerProps, children: [isQuickFindEnabled() &&
59
- jsx("div", { ...componentProps.headerProps.headerContainerProps, children: componentProps.headerProps.onRender(() => {
60
- return jsx(Fragment, { children: isQuickFindEnabled() &&
61
- jsx(QuickFind, { dataset: dataset, labels: labels, theme: theme, onGetQuickFindComponentProps: (props) => componentProps.headerProps.onGetQuickFindProps(props) }) });
62
- }) }), props.onGetControlComponent({ ...props, context: injectedContextRef.current }), componentProps.onRenderPagination({
63
- context: injectedContextRef.current, parameters: {
64
- Dataset: dataset,
65
- EnablePagination: props.parameters.EnablePagination,
66
- EnablePageSizeSwitcher: props.parameters.EnablePageSizeSwitcher
67
- }
68
- }, (paginationProps) => jsx(DatasetPaging, { ...paginationProps }))] }));
42
+ const isPaginationVisible = () => {
43
+ return isFooterVisible();
44
+ };
45
+ return jsx(ModelContext.Provider, { value: model, children: componentProps.onRender({
46
+ container: {
47
+ theme: theme,
48
+ className: styles.datasetControlRoot
49
+ },
50
+ onRenderHeader: (props, defaultRender) => defaultRender(props),
51
+ onRenderFooter: (props, defaultRender) => defaultRender(props),
52
+ onRenderControlContainer: (props, defaultRender) => defaultRender(props)
53
+ }, (props) => {
54
+ return jsxs(ThemeProvider, { ...props.container, children: [jsx(Header, { onRenderHeader: props.onRenderHeader }), props.onRenderControlContainer({
55
+ controlContainerProps: {
56
+ className: styles.controlContainer
57
+ },
58
+ }, (props) => {
59
+ return jsx("div", { ...props.controlContainerProps, children: propsRef.current.onGetControlComponent(propsRef.current) });
60
+ }), props.onRenderFooter({
61
+ footerContainerProps: {
62
+ className: styles.footer
63
+ },
64
+ onRenderPagination: (props, defaultRender) => defaultRender(props)
65
+ }, (props) => {
66
+ if (!isFooterVisible()) {
67
+ return jsx(Fragment, {});
68
+ }
69
+ return jsx("div", { ...props.footerContainerProps, children: isPaginationVisible() &&
70
+ jsx(Pagination, { onRenderPagination: props.onRenderPagination }) });
71
+ })] });
72
+ }) });
69
73
  };
70
74
 
71
75
  export { DatasetControl };
@@ -1 +1 @@
1
- {"version":3,"file":"DatasetControl.js","sources":["../../../src/components/DatasetControl/DatasetControl.tsx"],"sourcesContent":["import { useMemo, useRef } from \"react\";\nimport { useControl } from \"../../hooks\";\nimport { ThemeProvider } from \"@fluentui/react\";\nimport { datasetControlTranslations } from \"./translations\";\nimport { getDatasetControlStyles } from \"./styles\";\nimport { IDatasetControl } from \"./interfaces\";\nimport { QuickFind } from \"./QuickFind/QuickFind\";\nimport { useRerender } from \"@talxis/react-components\";\nimport { Client } from \"@talxis/client-libraries\";\nimport { DatasetPaging } from \"./Paging\";\n\nconst client = new Client();\n\nexport const DatasetControl = (props: IDatasetControl) => {\n const { labels, theme } = useControl('DatasetControl', props, datasetControlTranslations);\n const rerender = useRerender();\n const dataset = props.parameters.Grid;\n const injectedContextRef = useRef(props.context);\n const styles = useMemo(() => getDatasetControlStyles(theme, props.parameters.Height?.raw), []);\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n useMemo(() => {\n if (dataset.isVirtual() || !client.isTalxisPortal()) {\n dataset.setInterceptor('__onRequestRender', () => rerender());\n }\n }, []);\n\n //we need to have a way to customize the init behavior from above\n const componentProps = onOverrideComponentProps({\n onDatasetInit: () => {\n if (dataset.isVirtual()) {\n dataset.paging.loadExactPage(dataset.paging.pageNumber);\n }\n },\n containerProps: {\n theme: theme,\n className: styles.datasetControlRoot,\n },\n\n headerProps: {\n headerContainerProps: {\n className: styles.headerRoot\n },\n onRender: (renderQuickFind) => renderQuickFind(),\n onGetQuickFindProps: (props) => props\n },\n onRenderPagination: (props, renderPagination) => renderPagination(props)\n });\n\n useMemo(() => {\n //@ts-ignore - private property\n injectedContextRef.current = dataset._patchContext(props.context);\n }, [props.context]);\n\n useMemo(() => {\n componentProps.onDatasetInit();\n }, []);\n\n const isQuickFindEnabled = () => {\n if (dataset.isVirtual() && props.parameters.EnableQuickFind?.raw) {\n return true;\n }\n return false;\n }\n\n\n return (\n <ThemeProvider {...componentProps.containerProps}>\n {isQuickFindEnabled() &&\n <div {...componentProps.headerProps.headerContainerProps}>\n {componentProps.headerProps.onRender(() => {\n return <>\n {isQuickFindEnabled() &&\n <QuickFind\n dataset={dataset}\n labels={labels}\n theme={theme}\n onGetQuickFindComponentProps={(props) => componentProps.headerProps.onGetQuickFindProps(props)} />\n }\n </>\n })}\n </div>\n }\n {props.onGetControlComponent({ ...props, context: injectedContextRef.current })}\n {componentProps.onRenderPagination({\n context: injectedContextRef.current, parameters: {\n Dataset: dataset,\n EnablePagination: props.parameters.EnablePagination,\n EnablePageSizeSwitcher: props.parameters.EnablePageSizeSwitcher\n }\n }, (paginationProps) => <DatasetPaging {...paginationProps} />)}\n </ThemeProvider>\n )\n}"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"DatasetControl.js","sources":["../../../src/components/DatasetControl/DatasetControl.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport { useControl } from \"../../hooks\";\nimport { ThemeProvider } from \"@fluentui/react\";\nimport { datasetControlTranslations } from \"./translations\";\nimport { IDatasetControl } from \"./interfaces\";\nimport { useRerender } from \"@talxis/react-components\";\nimport { DatasetControlModel } from \"./DatasetControlModel\";\nimport { ModelContext } from \"./useModel\";\nimport { Pagination } from \"./Pagination/Pagination\";\nimport { getDatasetControlStyles } from \"./styles\";\nimport { Header } from \"./Header/Header\";\nimport { useEventEmitter } from \"../../hooks/useEventEmitter\";\nimport { IDataProviderEventListeners } from \"@talxis/client-libraries\";\n\nexport const DatasetControl = (props: IDatasetControl) => {\n const { labels, theme } = useControl('DatasetControl', props, datasetControlTranslations);\n const propsRef = useRef<IDatasetControl>(props);\n propsRef.current = props;\n const model = useMemo(() => new DatasetControlModel({\n getProps: () => propsRef.current,\n getLabels: () => labels,\n }), []);\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n const rerender = useRerender();\n const styles = useMemo(() => getDatasetControlStyles(props.parameters.Height?.raw), [props.parameters.Height?.raw]);\n const dataset = model.getDataset();\n \n useEventEmitter<IDataProviderEventListeners>(dataset, 'onNewDataLoaded', rerender);\n useEventEmitter<IDataProviderEventListeners>(dataset, 'onRenderRequested', rerender);\n useEventEmitter<IDataProviderEventListeners>(dataset, 'onBeforeNewDataLoaded', rerender);\n\n\n const componentProps = onOverrideComponentProps({\n onRender: (props, defaultRender) => defaultRender(props),\n })\n\n const isFooterVisible = () => {\n switch (true) {\n case model.isPaginationVisible():\n case model.isRecordCountVisible():\n case model.isPageSizeSwitcherVisible():\n return true;\n default:\n return false;\n }\n }\n\n const isPaginationVisible = () => {\n return isFooterVisible();\n }\n\n return <ModelContext.Provider value={model}>\n {componentProps.onRender({\n container: {\n theme: theme,\n className: styles.datasetControlRoot\n },\n onRenderHeader: (props, defaultRender) => defaultRender(props),\n onRenderFooter: (props, defaultRender) => defaultRender(props),\n onRenderControlContainer: (props, defaultRender) => defaultRender(props)\n }, (props) => {\n return <ThemeProvider {...props.container}>\n <Header onRenderHeader={props.onRenderHeader} />\n {props.onRenderControlContainer({\n controlContainerProps: {\n className: styles.controlContainer\n },\n\n }, (props) => {\n return <div {...props.controlContainerProps}>\n {propsRef.current.onGetControlComponent(propsRef.current)}\n </div>\n })}\n {props.onRenderFooter({\n footerContainerProps: {\n className: styles.footer\n },\n onRenderPagination: (props, defaultRender) => defaultRender(props)\n }, (props) => {\n if (!isFooterVisible()) {\n return <></>\n }\n return <div {...props.footerContainerProps}>\n {isPaginationVisible() &&\n <Pagination onRenderPagination={props.onRenderPagination} />\n }\n </div>\n })}\n </ThemeProvider>\n })}\n </ModelContext.Provider>\n}"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;AAca,MAAA,cAAc,GAAG,CAAC,KAAsB,KAAI;AACvD,IAAA,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,gBAAgB,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC;AAC1F,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAkB,KAAK,CAAC,CAAC;AAChD,IAAA,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,mBAAmB,CAAC;AAClD,QAAA,QAAQ,EAAE,MAAM,QAAQ,CAAC,OAAO;AAChC,QAAA,SAAS,EAAE,MAAM,MAAM;KACxB,CAAC,EAAE,EAAE,CAAC,CAAC;AACR,IAAA,MAAM,wBAAwB,GAAG,KAAK,CAAC,wBAAwB,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AACtF,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;AAC/B,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACpH,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;AAEnC,IAAA,eAAe,CAA8B,OAAO,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AACnF,IAAA,eAAe,CAA8B,OAAO,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AACrF,IAAA,eAAe,CAA8B,OAAO,EAAE,uBAAuB,EAAE,QAAQ,CAAC,CAAC;IAGzF,MAAM,cAAc,GAAG,wBAAwB,CAAC;QAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;AACzD,KAAA,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,MAAK;AAC3B,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,KAAK,CAAC,mBAAmB,EAAE,CAAC;AACjC,YAAA,KAAK,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAClC,KAAK,KAAK,CAAC,yBAAyB,EAAE;AACpC,gBAAA,OAAO,IAAI,CAAC;AACd,YAAA;AACE,gBAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACH,KAAC,CAAA;IAED,MAAM,mBAAmB,GAAG,MAAK;QAC/B,OAAO,eAAe,EAAE,CAAC;AAC3B,KAAC,CAAA;AAED,IAAA,OAAOA,GAAC,CAAA,YAAY,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,KAAK,EACvC,QAAA,EAAA,cAAc,CAAC,QAAQ,CAAC;AACvB,YAAA,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,MAAM,CAAC,kBAAkB;AACrC,aAAA;YACD,cAAc,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;YAC9D,cAAc,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;YAC9D,wBAAwB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;SACzE,EAAE,CAAC,KAAK,KAAI;YACX,OAAOC,IAAA,CAAC,aAAa,EAAK,EAAA,GAAA,KAAK,CAAC,SAAS,EAAA,QAAA,EAAA,CACvCD,IAAC,MAAM,EAAA,EAAC,cAAc,EAAE,KAAK,CAAC,cAAc,EAAA,CAAI,EAC/C,KAAK,CAAC,wBAAwB,CAAC;AAC9B,wBAAA,qBAAqB,EAAE;4BACrB,SAAS,EAAE,MAAM,CAAC,gBAAgB;AACnC,yBAAA;qBAEF,EAAE,CAAC,KAAK,KAAI;AACX,wBAAA,OAAOA,gBAAS,KAAK,CAAC,qBAAqB,EAAA,QAAA,EACxC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,GACrD,CAAA;AACR,qBAAC,CAAC,EACD,KAAK,CAAC,cAAc,CAAC;AACpB,wBAAA,oBAAoB,EAAE;4BACpB,SAAS,EAAE,MAAM,CAAC,MAAM;AACzB,yBAAA;wBACD,kBAAkB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;qBACnE,EAAE,CAAC,KAAK,KAAI;wBACX,IAAI,CAAC,eAAe,EAAE,EAAE;AACtB,4BAAA,OAAOA,iBAAK,CAAA;AACb,yBAAA;AACD,wBAAA,OAAOA,gBAAS,KAAK,CAAC,oBAAoB,EAAA,QAAA,EACvC,mBAAmB,EAAE;gCACpBA,GAAC,CAAA,UAAU,IAAC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAI,CAAA,EAAA,CAE1D,CAAA;qBACP,CAAC,IACY,CAAA;SACjB,CAAC,GACoB,CAAA;AAC1B;;;;"}
@@ -0,0 +1,37 @@
1
+ import { EventEmitter, ICommand } from "@talxis/client-libraries";
2
+ import { ITranslation } from "../../hooks";
3
+ import { IDatasetControl } from "./interfaces";
4
+ import { datasetControlTranslations } from "./translations";
5
+ type Labels = Required<ITranslation<typeof datasetControlTranslations>>;
6
+ interface IDatasetControlModelDeps {
7
+ getProps: () => IDatasetControl;
8
+ getLabels: () => Labels;
9
+ }
10
+ export interface IDatasetControlModelEvents {
11
+ onRecordCommandsLoaded: () => void;
12
+ }
13
+ export declare class DatasetControlModel extends EventEmitter<IDatasetControlModelEvents> {
14
+ private _getProps;
15
+ private _getLabels;
16
+ private _commands;
17
+ private _commandsLoaded;
18
+ private _debouncedLoadRecordCommands;
19
+ constructor(deps: IDatasetControlModelDeps);
20
+ isPaginationVisible(): boolean;
21
+ isRecordCountVisible(): boolean;
22
+ isPageSizeSwitcherVisible(): boolean;
23
+ isQuickFindVisible(): boolean;
24
+ isAutoSaveEnabled(): boolean;
25
+ isRibbonVisible(): boolean;
26
+ getDataset(): import("@talxis/client-libraries").IDataset;
27
+ getLabels(): Labels;
28
+ getPcfContext(): import("../..").IContext;
29
+ loadCommands(): Promise<void>;
30
+ retrieveRecordCommands(): ICommand[];
31
+ areCommandsLoaded(): boolean;
32
+ private _getParameters;
33
+ private _addEventListeners;
34
+ private _registerInterceptors;
35
+ private _getFilteredCommands;
36
+ }
37
+ export {};
@@ -0,0 +1,110 @@
1
+ import { EventEmitter, DataProvider } from '@talxis/client-libraries';
2
+ import debounce from 'debounce';
3
+
4
+ class DatasetControlModel extends EventEmitter {
5
+ constructor(deps) {
6
+ super();
7
+ this._commands = [];
8
+ this._commandsLoaded = false;
9
+ this._getProps = deps.getProps;
10
+ this._getLabels = deps.getLabels;
11
+ this._registerInterceptors();
12
+ this._debouncedLoadRecordCommands = debounce((ids) => this.loadCommands());
13
+ this.getDataset().paging.loadExactPage(this.getDataset().paging.pageNumber);
14
+ this._addEventListeners();
15
+ }
16
+ isPaginationVisible() {
17
+ return this._getParameters().EnablePagination?.raw ?? true;
18
+ }
19
+ isRecordCountVisible() {
20
+ return this._getParameters().ShowRecordCount?.raw ?? true;
21
+ }
22
+ isPageSizeSwitcherVisible() {
23
+ return this._getParameters().EnablePageSizeSwitcher?.raw ?? true;
24
+ }
25
+ isQuickFindVisible() {
26
+ return this._getParameters().EnableQuickFind?.raw ?? true;
27
+ }
28
+ isAutoSaveEnabled() {
29
+ return this._getParameters().EnableAutoSave?.raw ?? false;
30
+ }
31
+ isRibbonVisible() {
32
+ return this._getParameters().EnableCommandBar?.raw ?? true;
33
+ }
34
+ getDataset() {
35
+ return this._getParameters().Grid;
36
+ }
37
+ getLabels() {
38
+ return this._getLabels();
39
+ }
40
+ getPcfContext() {
41
+ return this._getProps().context;
42
+ }
43
+ async loadCommands() {
44
+ this._commands = await this.getDataset().getCommands();
45
+ this._commands = this._getFilteredCommands(this._commands);
46
+ this._commandsLoaded = true;
47
+ this.dispatchEvent('onRecordCommandsLoaded');
48
+ }
49
+ retrieveRecordCommands() {
50
+ return this._commands;
51
+ }
52
+ areCommandsLoaded() {
53
+ return this._commandsLoaded;
54
+ }
55
+ _getParameters() {
56
+ return this._getProps().parameters;
57
+ }
58
+ _addEventListeners() {
59
+ if (this.isRibbonVisible()) {
60
+ this.getDataset().addEventListener('onRecordsSelected', () => {
61
+ this._debouncedLoadRecordCommands(this.getDataset().getSelectedRecordIds());
62
+ });
63
+ this.getDataset().addEventListener('onRecordColumnValueChanged', () => {
64
+ this._debouncedLoadRecordCommands(this.getDataset().getSelectedRecordIds());
65
+ });
66
+ this.getDataset().addEventListener('onAfterRecordSaved', () => {
67
+ this._debouncedLoadRecordCommands(this.getDataset().getSelectedRecordIds());
68
+ });
69
+ }
70
+ }
71
+ _registerInterceptors() {
72
+ this.getDataset().setInterceptor('__unsavedChangesBlocker', (defaultAction) => {
73
+ if (!this.getDataset().isDirty()) {
74
+ return defaultAction();
75
+ }
76
+ else if (window.confirm(this.getLabels()['saving-discard-all-confirmation']())) {
77
+ //@ts-ignore
78
+ this.getDataset().getDataProvider()['_dirtyRecordIdsSet'].clear();
79
+ //@ts-ignore
80
+ this.getDataset().getDataProvider()['_invalidRecordFieldIdsSet'].clear();
81
+ return defaultAction();
82
+ }
83
+ });
84
+ }
85
+ _getFilteredCommands(commands) {
86
+ return commands.filter(command => {
87
+ switch (true) {
88
+ //these handles are handled by the platform in non-virtual datasets
89
+ case !this.getDataset().isVirtual() && DataProvider.CONST.NATIVE_COMMAND_IDS.includes(command.commandButtonId): {
90
+ return false;
91
+ }
92
+ //no need to display these button when auto save is active
93
+ case this.isAutoSaveEnabled(): {
94
+ switch (command.commandButtonId) {
95
+ case DataProvider.CONST.SAVE_COMMAND_ID:
96
+ case DataProvider.CONST.CLEAR_CHANGES_COMMAND_ID: {
97
+ return false;
98
+ }
99
+ }
100
+ if (command.commandButtonId === DataProvider.CONST.SAVE_COMMAND_ID)
101
+ return false;
102
+ }
103
+ }
104
+ return true;
105
+ });
106
+ }
107
+ }
108
+
109
+ export { DatasetControlModel };
110
+ //# sourceMappingURL=DatasetControlModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatasetControlModel.js","sources":["../../../src/components/DatasetControl/DatasetControlModel.ts"],"sourcesContent":["import { DataProvider, EventEmitter, ICommand } from \"@talxis/client-libraries\";\nimport { ITranslation } from \"../../hooks\";\nimport { IDatasetControl } from \"./interfaces\";\nimport { datasetControlTranslations } from \"./translations\";\nimport debounce from \"debounce\";\n\ntype Labels = Required<ITranslation<typeof datasetControlTranslations>>;\n\ninterface IDatasetControlModelDeps {\n getProps: () => IDatasetControl;\n getLabels: () => Labels;\n}\n\nexport interface IDatasetControlModelEvents {\n onRecordCommandsLoaded: () => void;\n}\n\nexport class DatasetControlModel extends EventEmitter<IDatasetControlModelEvents> {\n private _getProps: () => IDatasetControl;\n private _getLabels: () => Labels;\n private _commands: ICommand[] = [];\n private _commandsLoaded: boolean = false;\n private _debouncedLoadRecordCommands: debounce.DebouncedFunction<(ids: string[]) => void>;\n\n constructor(deps: IDatasetControlModelDeps) {\n super();\n this._getProps = deps.getProps;\n this._getLabels = deps.getLabels;\n this._registerInterceptors();\n this._debouncedLoadRecordCommands = debounce((ids) => this.loadCommands())\n this.getDataset().paging.loadExactPage(this.getDataset().paging.pageNumber);\n this._addEventListeners();\n }\n\n public isPaginationVisible(): boolean {\n return this._getParameters().EnablePagination?.raw ?? true;\n }\n public isRecordCountVisible(): boolean {\n return this._getParameters().ShowRecordCount?.raw ?? true;\n }\n public isPageSizeSwitcherVisible(): boolean {\n return this._getParameters().EnablePageSizeSwitcher?.raw ?? true;\n }\n public isQuickFindVisible(): boolean {\n return this._getParameters().EnableQuickFind?.raw ?? true;\n }\n public isAutoSaveEnabled(): boolean {\n return this._getParameters().EnableAutoSave?.raw ?? false;\n }\n public isRibbonVisible(): boolean {\n return this._getParameters().EnableCommandBar?.raw ?? true;\n }\n public getDataset() {\n return this._getParameters().Grid;\n }\n public getLabels(): Labels {\n return this._getLabels();\n }\n public getPcfContext() {\n return this._getProps().context;\n }\n public async loadCommands() {\n this._commands = await this.getDataset().getCommands();\n this._commands = this._getFilteredCommands(this._commands);\n this._commandsLoaded = true;\n this.dispatchEvent('onRecordCommandsLoaded');\n }\n public retrieveRecordCommands() {\n return this._commands;\n }\n public areCommandsLoaded(): boolean {\n return this._commandsLoaded;\n }\n private _getParameters() {\n return this._getProps().parameters;\n }\n private _addEventListeners() {\n if (this.isRibbonVisible()) {\n this.getDataset().addEventListener('onRecordsSelected', () => {\n this._debouncedLoadRecordCommands(this.getDataset().getSelectedRecordIds());\n })\n this.getDataset().addEventListener('onRecordColumnValueChanged', () => {\n this._debouncedLoadRecordCommands(this.getDataset().getSelectedRecordIds());\n })\n this.getDataset().addEventListener('onAfterRecordSaved', () => {\n this._debouncedLoadRecordCommands(this.getDataset().getSelectedRecordIds());\n })\n }\n }\n private _registerInterceptors() {\n this.getDataset().setInterceptor('__unsavedChangesBlocker', (defaultAction: any) => {\n if (!this.getDataset().isDirty()) {\n return defaultAction();\n }\n else if (window.confirm(this.getLabels()['saving-discard-all-confirmation']())) {\n //@ts-ignore\n this.getDataset().getDataProvider()['_dirtyRecordIdsSet'].clear();\n //@ts-ignore\n this.getDataset().getDataProvider()['_invalidRecordFieldIdsSet'].clear();\n return defaultAction();\n }\n })\n }\n\n private _getFilteredCommands(commands: ICommand[]): ICommand[] {\n return commands.filter(command => {\n switch (true) {\n //these handles are handled by the platform in non-virtual datasets\n case !this.getDataset().isVirtual() && DataProvider.CONST.NATIVE_COMMAND_IDS.includes(command.commandButtonId): {\n return false;\n }\n //no need to display these button when auto save is active\n case this.isAutoSaveEnabled(): {\n switch (command.commandButtonId) {\n case DataProvider.CONST.SAVE_COMMAND_ID:\n case DataProvider.CONST.CLEAR_CHANGES_COMMAND_ID: {\n return false;\n }\n }\n if (command.commandButtonId === DataProvider.CONST.SAVE_COMMAND_ID)\n return false;\n }\n }\n return true;\n })\n }\n\n}"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { IDatasetColumnFiltering } from "./interfaces";
2
+ import React from "react";
3
+ export declare const DatasetColumnFiltering: (props: IDatasetColumnFiltering) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
@@ -0,0 +1,166 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { ThemeProvider, PrimaryButton, DefaultButton } from '@fluentui/react';
3
+ import { datasetColumnFilteringTranslations } from './translations.js';
4
+ import React, { useState, useCallback, useMemo, useEffect } from 'react';
5
+ import { DatasetColumnFilteringModel } from './DatasetColumnFilteringModel.js';
6
+ import { useRerender } from '@talxis/react-components';
7
+ import { getDatasetColumnFilteringStyles } from './styles.js';
8
+ import { useDebouncedCallback } from 'use-debounce';
9
+ import { Type } from '@talxis/client-libraries';
10
+ import { useControl } from '../../../hooks/useControl.js';
11
+ import { OptionSet } from '../../OptionSet/OptionSet.js';
12
+ import { NestedControlRenderer } from '../../NestedControlRenderer/NestedControlRenderer.js';
13
+
14
+ const DatasetColumnFiltering = (props) => {
15
+ const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);
16
+ const { labels, theme, onNotifyOutputChanged } = useControl('DatasetFiltering', props, datasetColumnFilteringTranslations);
17
+ const context = props.context;
18
+ const filtering = props.parameters.Filtering;
19
+ const columnFilter = props.parameters.Filtering.getColumnFilter(props.parameters.ColumnName.raw);
20
+ //automatically create a condition if it's not present
21
+ if (columnFilter.getConditions().length === 0) {
22
+ columnFilter.addCondition();
23
+ }
24
+ //this is the first condition, we assume that the control is used for a single condition
25
+ const condition = columnFilter.getConditions()[0];
26
+ const rerender = useRerender();
27
+ const [shouldRemountValueControl, setShouldRemountValueControl] = useState(false);
28
+ const onOperatorChanged = useCallback(() => {
29
+ setShouldRemountValueControl(true);
30
+ }, []);
31
+ const isClearButtonDisabled = () => {
32
+ if (condition.isValueLoading()) {
33
+ return true;
34
+ }
35
+ return model.getConditionValue().every(value => {
36
+ return value == null;
37
+ });
38
+ };
39
+ const onSave = () => {
40
+ condition.setIsValueRequired(true);
41
+ const result = filtering.getFilterExpression(Type.And.Value);
42
+ if (!result) {
43
+ rerender();
44
+ }
45
+ else {
46
+ onNotifyOutputChanged(result);
47
+ }
48
+ };
49
+ const onClear = () => {
50
+ condition.setValue(null);
51
+ setShouldRemountValueControl(true);
52
+ };
53
+ const debouncedSetConditionControlValue = useDebouncedCallback((value, index) => {
54
+ model.setConditionValue(value, index);
55
+ });
56
+ const model = useMemo(() => {
57
+ condition.addEventListener('onOperatorChanged', onOperatorChanged);
58
+ condition.addEventListener('onValueChanged', rerender);
59
+ return new DatasetColumnFilteringModel(condition, labels);
60
+ }, []);
61
+ const conditionValue = model.getConditionValue();
62
+ const validationResult = condition.getValidationResult();
63
+ const styles = useMemo(() => getDatasetColumnFilteringStyles(), []);
64
+ const componentProps = onOverrideComponentProps({
65
+ onRender: (props, defaultRender) => defaultRender(props),
66
+ });
67
+ useEffect(() => {
68
+ if (shouldRemountValueControl) {
69
+ setShouldRemountValueControl(false);
70
+ }
71
+ }, [shouldRemountValueControl]);
72
+ return componentProps.onRender({
73
+ container: {
74
+ theme: theme,
75
+ className: styles.datasetColumnFilteringRoot
76
+ },
77
+ valueControlsContainer: {
78
+ className: styles.valueControlsContainer
79
+ },
80
+ onRenderConditionOperatorControl: (props, defaultRender) => defaultRender(props),
81
+ onRenderConditionValueControl: (props, defaultRender) => defaultRender(props),
82
+ onRenderButtons: (props, defaultRender) => defaultRender(props),
83
+ }, (props) => {
84
+ return jsxs(ThemeProvider, { ...props.container, children: [props.onRenderConditionOperatorControl({
85
+ context: context,
86
+ //@ts-ignore - typings
87
+ onNotifyOutputChanged: (outputs) => condition.setOperator(outputs.value),
88
+ parameters: {
89
+ value: {
90
+ raw: condition.getOperator(),
91
+ //@ts-ignore - typings
92
+ attributes: {
93
+ Options: model.getOperatorOptionSet()
94
+ }
95
+ }
96
+ },
97
+ }, (props) => jsx(OptionSet, { ...props })), jsx("div", { ...props.valueControlsContainer, children: !shouldRemountValueControl &&
98
+ jsx(Fragment, { children: conditionValue.map((value, index) => {
99
+ return jsx(React.Fragment, { children: props.onRenderConditionValueControl({
100
+ context: context,
101
+ onOverrideComponentProps: (props) => {
102
+ return {
103
+ ...props,
104
+ onOverrideIsLoading: () => condition.isValueLoading()
105
+ };
106
+ },
107
+ parameters: {
108
+ ControlName: model.getControlName(),
109
+ LoadingType: 'shimmer',
110
+ Bindings: {
111
+ value: {
112
+ isStatic: false,
113
+ value: value,
114
+ type: condition.getDataType() ?? 'SingleLine.Text',
115
+ error: validationResult[index].error,
116
+ errorMessage: validationResult[index].errorMessage,
117
+ metadata: {
118
+ onOverrideMetadata: () => {
119
+ return {
120
+ ...condition.getMetadata()
121
+ };
122
+ }
123
+ },
124
+ onNotifyOutputChanged: (value) => debouncedSetConditionControlValue(value, index)
125
+ },
126
+ AutoFocus: {
127
+ isStatic: true,
128
+ value: index === 0 && conditionValue.length === 1,
129
+ type: 'TwoOptions'
130
+ },
131
+ ShowErrorMessage: {
132
+ isStatic: true,
133
+ value: true,
134
+ type: 'TwoOptions'
135
+ },
136
+ ...condition.getBindings()
137
+ }
138
+ }
139
+ }, (props) => {
140
+ if (!model.getControlName()) {
141
+ return jsx(Fragment, {});
142
+ }
143
+ return jsx(NestedControlRenderer, { ...props });
144
+ }) }, index);
145
+ }) }) }), props.onRenderButtons({
146
+ container: {
147
+ className: styles.buttons
148
+ },
149
+ onRenderApplyButton: (props, defaultRender) => defaultRender(props),
150
+ onRenderClearButton: (props, defaultRender) => defaultRender(props)
151
+ }, (props) => {
152
+ return jsxs("div", { ...props.container, children: [props.onRenderApplyButton({
153
+ text: 'Apply',
154
+ disabled: condition.isValueLoading(),
155
+ onClick: onSave,
156
+ }, (props) => jsx(PrimaryButton, { ...props })), props.onRenderClearButton({
157
+ text: 'Clear',
158
+ disabled: isClearButtonDisabled(),
159
+ onClick: onClear
160
+ }, (props) => jsx(DefaultButton, { ...props }))] });
161
+ })] });
162
+ });
163
+ };
164
+
165
+ export { DatasetColumnFiltering };
166
+ //# sourceMappingURL=DatasetColumnFiltering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatasetColumnFiltering.js","sources":["../../../../src/components/DatasetControl/Filtering/DatasetColumnFiltering.tsx"],"sourcesContent":["import { DefaultButton, DirectionalHint, PrimaryButton, ThemeProvider } from \"@fluentui/react\";\nimport { useControl } from \"../../../hooks\"\nimport { OptionSet } from \"../../OptionSet\";\nimport { IDatasetColumnFiltering } from \"./interfaces\";\nimport { datasetColumnFilteringTranslations } from \"./translations\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { DatasetColumnFilteringModel } from \"./DatasetColumnFilteringModel\";\nimport { useRerender } from \"@talxis/react-components\";\nimport { NestedControlRenderer } from \"../../NestedControlRenderer\";\nimport React from \"react\";\nimport { getDatasetColumnFilteringStyles } from \"./styles\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport { Type as FilterType } from \"@talxis/client-libraries\";\n\nexport const DatasetColumnFiltering = (props: IDatasetColumnFiltering) => {\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n const { labels, theme, onNotifyOutputChanged } = useControl('DatasetFiltering', props, datasetColumnFilteringTranslations);\n const context = props.context;\n const filtering = props.parameters.Filtering;\n const columnFilter = props.parameters.Filtering.getColumnFilter(props.parameters.ColumnName.raw!);\n //automatically create a condition if it's not present\n if (columnFilter.getConditions().length === 0) {\n columnFilter.addCondition();\n }\n //this is the first condition, we assume that the control is used for a single condition\n const condition = columnFilter.getConditions()[0];\n const rerender = useRerender();\n const [shouldRemountValueControl, setShouldRemountValueControl] = useState(false);\n\n const onOperatorChanged = useCallback(() => {\n setShouldRemountValueControl(true);\n }, []);\n\n const isClearButtonDisabled = () => {\n if (condition.isValueLoading()) {\n return true;\n }\n return model.getConditionValue().every(value => {\n return value == null;\n });\n }\n const onSave = () => {\n condition.setIsValueRequired(true);\n const result = filtering.getFilterExpression(FilterType.And.Value);\n if (!result) {\n rerender();\n }\n else {\n onNotifyOutputChanged(result)\n }\n }\n\n const onClear = () => {\n condition.setValue(null);\n setShouldRemountValueControl(true);\n }\n\n const debouncedSetConditionControlValue = useDebouncedCallback((value, index) => {\n model.setConditionValue(value, index);\n })\n\n const model = useMemo(() => {\n condition.addEventListener('onOperatorChanged', onOperatorChanged);\n condition.addEventListener('onValueChanged', rerender);\n return new DatasetColumnFilteringModel(condition, labels)\n }, []);\n\n const conditionValue = model.getConditionValue();\n const validationResult = condition.getValidationResult();\n const styles = useMemo(() => getDatasetColumnFilteringStyles(), []);\n\n const componentProps = onOverrideComponentProps({\n onRender: (props, defaultRender) => defaultRender(props),\n })\n\n useEffect(() => {\n if (shouldRemountValueControl) {\n setShouldRemountValueControl(false);\n }\n }, [shouldRemountValueControl])\n\n return componentProps.onRender({\n container: {\n theme: theme,\n className: styles.datasetColumnFilteringRoot\n },\n valueControlsContainer: {\n className: styles.valueControlsContainer\n },\n onRenderConditionOperatorControl: (props, defaultRender) => defaultRender(props),\n onRenderConditionValueControl: (props, defaultRender) => defaultRender(props),\n onRenderButtons: (props, defaultRender) => defaultRender(props),\n\n }, (props) => {\n return <ThemeProvider {...props.container}>\n {props.onRenderConditionOperatorControl({\n context: context,\n //@ts-ignore - typings\n onNotifyOutputChanged: (outputs) => condition.setOperator(outputs.value),\n parameters: {\n value: {\n raw: condition.getOperator(),\n //@ts-ignore - typings\n attributes: {\n Options: model.getOperatorOptionSet()\n }\n }\n },\n }, (props) => <OptionSet {...props} />)}\n <div {...props.valueControlsContainer}>\n {!shouldRemountValueControl &&\n <>\n {\n conditionValue.map((value, index) => {\n return <React.Fragment key={index}>\n {props.onRenderConditionValueControl({\n context: context,\n onOverrideComponentProps: (props) => {\n return {\n ...props,\n onOverrideIsLoading: () => condition.isValueLoading()\n }\n },\n parameters: {\n ControlName: model.getControlName()!,\n LoadingType: 'shimmer',\n Bindings: {\n value: {\n isStatic: false,\n value: value,\n type: condition.getDataType() ?? 'SingleLine.Text',\n error: validationResult[index].error,\n errorMessage: validationResult[index].errorMessage,\n metadata: {\n onOverrideMetadata: () => {\n return {\n ...condition.getMetadata()\n }\n }\n },\n onNotifyOutputChanged: (value) => debouncedSetConditionControlValue(value, index)\n },\n AutoFocus: {\n isStatic: true,\n value: index === 0 && conditionValue.length === 1,\n type: 'TwoOptions'\n },\n ShowErrorMessage: {\n isStatic: true,\n value: true,\n type: 'TwoOptions'\n },\n ...condition.getBindings()\n }\n }\n }, (props) => {\n if (!model.getControlName()) {\n return <></>\n }\n return <NestedControlRenderer {...props} />\n })}\n </React.Fragment>\n })\n }\n </>\n }\n </div>\n {props.onRenderButtons({\n container: {\n className: styles.buttons\n },\n onRenderApplyButton: (props, defaultRender) => defaultRender(props),\n onRenderClearButton: (props, defaultRender) => defaultRender(props)\n }, (props) => {\n return <div {...props.container}>\n {props.onRenderApplyButton({\n text: 'Apply',\n disabled: condition.isValueLoading(),\n onClick: onSave,\n }, (props) => <PrimaryButton {...props} />)}\n {props.onRenderClearButton({\n text: 'Clear',\n disabled: isClearButtonDisabled(),\n onClick: onClear\n }, (props) => <DefaultButton\n {...props} />)}\n </div>\n })}\n </ThemeProvider>\n })\n}"],"names":["FilterType","_jsxs","_jsx","_Fragment"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /// <reference types="@types/powerapps-component-framework" />
2
+ /// <reference types="powerapps-component-framework" />
3
+ import { ITranslation } from "../../../hooks";
4
+ import { datasetColumnFilteringTranslations } from "./translations";
5
+ import { Condition } from '@talxis/client-libraries';
6
+ type Labels = Required<ITranslation<typeof datasetColumnFilteringTranslations>>;
7
+ export declare class DatasetColumnFilteringModel {
8
+ private _condition;
9
+ private _labels;
10
+ constructor(condition: Condition, labels: Labels);
11
+ getOperatorOptionSet(): ComponentFramework.PropertyHelper.OptionMetadata[];
12
+ setConditionValue(value: any, index: number): void;
13
+ getConditionValue(): any[];
14
+ getControlName(): "Decimal" | "TextField" | "OptionSet" | "MultiSelectOptionSet" | "DateTime" | "Duration" | "Lookup" | "TwoOptions" | null;
15
+ }
16
+ export {};
@@ -0,0 +1,59 @@
1
+ import { Operators } from '@talxis/client-libraries';
2
+ import { BaseControls } from '../../../utils/BaseControls.js';
3
+
4
+ class DatasetColumnFilteringModel {
5
+ constructor(condition, labels) {
6
+ this._condition = condition;
7
+ this._labels = labels;
8
+ }
9
+ getOperatorOptionSet() {
10
+ const operators = this._condition.getColumn().metadata?.SupportedFilterConditionOperators ?? [];
11
+ return operators.map(operator => {
12
+ return {
13
+ Value: operator,
14
+ //@ts-ignore - typings
15
+ Label: this._labels[`operator-${operator}`](),
16
+ Color: ''
17
+ };
18
+ });
19
+ }
20
+ setConditionValue(value, index) {
21
+ const operator = this._condition.getOperator();
22
+ if (operator !== Operators.Between.Value && operator !== Operators.NotBetween.Value) {
23
+ this._condition.setValue(value);
24
+ }
25
+ else {
26
+ const values = [this._condition.getControlValue()?.[0] ?? null, this._condition.getControlValue()?.[1] ?? null];
27
+ if (index === 0) {
28
+ values[0] = value;
29
+ }
30
+ else {
31
+ values[1] = value;
32
+ }
33
+ this._condition.setValue(values);
34
+ }
35
+ }
36
+ getConditionValue() {
37
+ const operator = this._condition.getOperator();
38
+ if (operator !== Operators.Between.Value && operator !== Operators.NotBetween.Value) {
39
+ return [this._condition.getControlValue()];
40
+ }
41
+ const value = this._condition.getControlValue();
42
+ if (Array.isArray(value)) {
43
+ return value;
44
+ }
45
+ return [null, null];
46
+ }
47
+ getControlName() {
48
+ const dataType = this._condition.getDataType();
49
+ if (!dataType) {
50
+ return null;
51
+ }
52
+ else {
53
+ return BaseControls.GetControlNameForDataType(dataType);
54
+ }
55
+ }
56
+ }
57
+
58
+ export { DatasetColumnFilteringModel };
59
+ //# sourceMappingURL=DatasetColumnFilteringModel.js.map