@talxis/base-controls 1.2502.1 → 1.2503.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 (283) hide show
  1. package/dist/components/DatasetControl/DatasetControl.js +21 -34
  2. package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
  3. package/dist/components/DatasetControl/ErrorBoundary.js +33 -0
  4. package/dist/components/DatasetControl/ErrorBoundary.js.map +1 -0
  5. package/dist/components/DatasetControl/QuickFind/QuickFind.d.ts +10 -0
  6. package/dist/components/DatasetControl/QuickFind/QuickFind.js +38 -0
  7. package/dist/components/DatasetControl/QuickFind/QuickFind.js.map +1 -0
  8. package/dist/components/DatasetControl/styles.d.ts +3 -1
  9. package/dist/components/DatasetControl/styles.js +2 -2
  10. package/dist/components/DatasetControl/styles.js.map +1 -1
  11. package/dist/components/DatasetControl/translations.d.ts +8 -0
  12. package/dist/components/DatasetControl/translations.js +3 -1
  13. package/dist/components/DatasetControl/translations.js.map +1 -1
  14. package/dist/components/DateTime/DateTime.js +2 -1
  15. package/dist/components/DateTime/DateTime.js.map +1 -1
  16. package/dist/components/DateTime/components/Calendar.d.ts +2 -1
  17. package/dist/components/DateTime/components/Calendar.js +4 -4
  18. package/dist/components/DateTime/components/Calendar.js.map +1 -1
  19. package/dist/components/DateTime/hooks/useDateTime.js +18 -17
  20. package/dist/components/DateTime/hooks/useDateTime.js.map +1 -1
  21. package/dist/components/Decimal/Decimal.js +5 -1
  22. package/dist/components/Decimal/Decimal.js.map +1 -1
  23. package/dist/components/Duration/Duration.js +49 -26
  24. package/dist/components/Duration/Duration.js.map +1 -1
  25. package/dist/components/Grid/Grid.js +1 -1
  26. package/dist/components/Grid/Grid.js.map +1 -1
  27. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +78 -174
  28. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
  29. package/dist/components/Grid/core/components/AgGrid/context.d.ts +3 -0
  30. package/dist/components/Grid/core/components/AgGrid/context.js +6 -0
  31. package/dist/components/Grid/core/components/AgGrid/context.js.map +1 -0
  32. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +40 -5
  33. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +235 -49
  34. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
  35. package/dist/components/Grid/core/components/AgGrid/model/Comparator.d.ts +9 -0
  36. package/dist/components/Grid/core/components/AgGrid/model/Comparator.js +86 -0
  37. package/dist/components/Grid/core/components/AgGrid/model/Comparator.js.map +1 -0
  38. package/dist/components/Grid/core/components/AgGrid/styles.d.ts +28 -32
  39. package/dist/components/Grid/core/components/AgGrid/styles.js +31 -35
  40. package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -1
  41. package/dist/components/Grid/core/components/Cell/Cell.d.ts +13 -0
  42. package/dist/components/Grid/core/components/Cell/Cell.js +145 -0
  43. package/dist/components/Grid/core/components/Cell/Cell.js.map +1 -0
  44. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.d.ts +3 -0
  45. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js +212 -0
  46. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js.map +1 -0
  47. package/dist/components/Grid/core/components/Cell/CellContent/styles.d.ts +33 -0
  48. package/dist/components/Grid/core/components/Cell/CellContent/styles.js +39 -0
  49. package/dist/components/Grid/core/components/Cell/CellContent/styles.js.map +1 -0
  50. package/dist/components/Grid/core/components/Cell/Commands/Commands.js.map +1 -1
  51. package/dist/components/Grid/core/components/Cell/Notifications/Notifications.d.ts +12 -0
  52. package/dist/components/Grid/core/components/Cell/Notifications/Notifications.js +112 -0
  53. package/dist/components/Grid/core/components/Cell/Notifications/Notifications.js.map +1 -0
  54. package/dist/components/Grid/core/components/Cell/Notifications/styles.d.ts +39 -0
  55. package/dist/components/Grid/core/components/Cell/Notifications/styles.js +46 -0
  56. package/dist/components/Grid/core/components/Cell/Notifications/styles.js.map +1 -0
  57. package/dist/components/Grid/core/components/Cell/styles.d.ts +40 -0
  58. package/dist/components/Grid/core/components/Cell/styles.js +59 -0
  59. package/dist/components/Grid/core/components/Cell/styles.js.map +1 -0
  60. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +3 -2
  61. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -1
  62. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +31 -13
  63. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js.map +1 -1
  64. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.d.ts +3 -2
  65. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js +5 -4
  66. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js.map +1 -1
  67. package/dist/components/Grid/core/components/ColumnHeader/styles.d.ts +3 -1
  68. package/dist/components/Grid/core/components/ColumnHeader/styles.js +4 -2
  69. package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +1 -1
  70. package/dist/components/Grid/core/components/Save/Save.js +5 -6
  71. package/dist/components/Grid/core/components/Save/Save.js.map +1 -1
  72. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +10 -7
  73. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -1
  74. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.d.ts +1 -0
  75. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +26 -7
  76. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +1 -1
  77. package/dist/components/Grid/core/controllers/useGridController.js +8 -2
  78. package/dist/components/Grid/core/controllers/useGridController.js.map +1 -1
  79. package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +2 -0
  80. package/dist/components/Grid/core/model/Grid.d.ts +16 -7
  81. package/dist/components/Grid/core/model/Grid.js +229 -45
  82. package/dist/components/Grid/core/model/Grid.js.map +1 -1
  83. package/dist/components/Grid/core/model/Metadata.d.ts +2 -1
  84. package/dist/components/Grid/core/services/KeyListener.d.ts +2 -0
  85. package/dist/components/Grid/core/services/KeyListener.js +6 -3
  86. package/dist/components/Grid/core/services/KeyListener.js.map +1 -1
  87. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +3 -3
  88. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +1 -1
  89. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +19 -7
  90. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/Component.d.ts +2 -2
  91. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/Component.js +9 -9
  92. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.js.map +1 -0
  93. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/controller/useComponentController.d.ts +2 -2
  94. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/controller/useComponentController.js +1 -1
  95. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.js.map +1 -0
  96. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/model/Component.d.ts +2 -2
  97. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/model/Component.js +15 -19
  98. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.js.map +1 -0
  99. package/dist/components/Grid/filtering/model/Condition.js +1 -1
  100. package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
  101. package/dist/components/Grid/selection/model/Selection.d.ts +3 -4
  102. package/dist/components/Grid/selection/model/Selection.js +8 -26
  103. package/dist/components/Grid/selection/model/Selection.js.map +1 -1
  104. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +1 -1
  105. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -1
  106. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.d.ts +2 -0
  107. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js +11 -0
  108. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js.map +1 -0
  109. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.d.ts +1 -0
  110. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js +2 -0
  111. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js.map +1 -0
  112. package/dist/components/GridCellRenderer/GridCellRenderer.d.ts +3 -0
  113. package/dist/components/GridCellRenderer/GridCellRenderer.js +252 -0
  114. package/dist/components/GridCellRenderer/GridCellRenderer.js.map +1 -0
  115. package/dist/components/GridCellRenderer/OptionSet/OptionSet.d.ts +5 -0
  116. package/dist/components/GridCellRenderer/OptionSet/OptionSet.js +69 -0
  117. package/dist/components/GridCellRenderer/OptionSet/OptionSet.js.map +1 -0
  118. package/dist/components/GridCellRenderer/OptionSet/index.d.ts +1 -0
  119. package/dist/components/GridCellRenderer/OptionSet/index.js +2 -0
  120. package/dist/components/GridCellRenderer/OptionSet/index.js.map +1 -0
  121. package/dist/components/{Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet → GridCellRenderer/OptionSet}/styles.d.ts +10 -12
  122. package/dist/components/GridCellRenderer/OptionSet/styles.js +29 -0
  123. package/dist/components/GridCellRenderer/OptionSet/styles.js.map +1 -0
  124. package/dist/components/GridCellRenderer/index.d.ts +1 -0
  125. package/dist/components/GridCellRenderer/index.js +2 -0
  126. package/dist/components/GridCellRenderer/index.js.map +1 -0
  127. package/dist/components/GridCellRenderer/interfaces.d.ts +53 -0
  128. package/dist/components/GridCellRenderer/styles.d.ts +72 -0
  129. package/dist/components/GridCellRenderer/styles.js +105 -0
  130. package/dist/components/GridCellRenderer/styles.js.map +1 -0
  131. package/dist/components/GridCellRenderer/translations.d.ts +6 -0
  132. package/dist/components/GridCellRenderer/translations.js +11 -0
  133. package/dist/components/GridCellRenderer/translations.js.map +1 -0
  134. package/dist/components/GridCellRenderer/useComponentProps.d.ts +6 -0
  135. package/dist/components/GridCellRenderer/useComponentProps.js +10 -0
  136. package/dist/components/GridCellRenderer/useComponentProps.js.map +1 -0
  137. package/dist/components/Lookup/Lookup.js +8 -3
  138. package/dist/components/Lookup/Lookup.js.map +1 -1
  139. package/dist/components/Lookup/styles.d.ts +19 -7
  140. package/dist/components/Lookup/styles.js +22 -8
  141. package/dist/components/Lookup/styles.js.map +1 -1
  142. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +51 -28
  143. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -1
  144. package/dist/components/NestedControlRenderer/NestedControl.d.ts +86 -0
  145. package/dist/components/NestedControlRenderer/NestedControl.js +456 -0
  146. package/dist/components/NestedControlRenderer/NestedControl.js.map +1 -0
  147. package/dist/components/NestedControlRenderer/NestedControlError.d.ts +4 -0
  148. package/dist/components/NestedControlRenderer/NestedControlError.js +13 -0
  149. package/dist/components/NestedControlRenderer/NestedControlError.js.map +1 -0
  150. package/dist/components/NestedControlRenderer/NestedControlRenderer.d.ts +3 -0
  151. package/dist/components/NestedControlRenderer/NestedControlRenderer.js +194 -0
  152. package/dist/components/NestedControlRenderer/NestedControlRenderer.js.map +1 -0
  153. package/dist/components/NestedControlRenderer/index.d.ts +1 -0
  154. package/dist/components/NestedControlRenderer/index.js +2 -0
  155. package/dist/components/NestedControlRenderer/index.js.map +1 -0
  156. package/dist/components/NestedControlRenderer/interfaces.d.ts +118 -0
  157. package/dist/components/NestedControlRenderer/manifest/Control.d.ts +16 -0
  158. package/dist/components/NestedControlRenderer/manifest/Control.js +40 -0
  159. package/dist/components/NestedControlRenderer/manifest/Control.js.map +1 -0
  160. package/dist/components/NestedControlRenderer/manifest/Manifest.d.ts +5 -0
  161. package/dist/components/NestedControlRenderer/manifest/Manifest.js +12 -0
  162. package/dist/components/NestedControlRenderer/manifest/Manifest.js.map +1 -0
  163. package/dist/components/NestedControlRenderer/manifest/TypeGroup.d.ts +6 -0
  164. package/dist/components/NestedControlRenderer/manifest/TypeGroup.js +13 -0
  165. package/dist/components/NestedControlRenderer/manifest/TypeGroup.js.map +1 -0
  166. package/dist/components/NestedControlRenderer/manifest/index.d.ts +1 -0
  167. package/dist/components/NestedControlRenderer/manifest/index.js +2 -0
  168. package/dist/components/NestedControlRenderer/manifest/index.js.map +1 -0
  169. package/dist/components/NestedControlRenderer/manifest/property/Property.d.ts +16 -0
  170. package/dist/components/NestedControlRenderer/manifest/property/Property.js +34 -0
  171. package/dist/components/NestedControlRenderer/manifest/property/Property.js.map +1 -0
  172. package/dist/components/NestedControlRenderer/manifest/property/Value.d.ts +8 -0
  173. package/dist/components/NestedControlRenderer/manifest/property/Value.js +12 -0
  174. package/dist/components/NestedControlRenderer/manifest/property/Value.js.map +1 -0
  175. package/dist/components/NestedControlRenderer/properties/DateProperty.d.ts +5 -0
  176. package/dist/components/NestedControlRenderer/properties/DateProperty.js +22 -0
  177. package/dist/components/NestedControlRenderer/properties/DateProperty.js.map +1 -0
  178. package/dist/components/NestedControlRenderer/properties/FileProperty.d.ts +5 -0
  179. package/dist/components/NestedControlRenderer/properties/FileProperty.js +16 -0
  180. package/dist/components/NestedControlRenderer/properties/FileProperty.js.map +1 -0
  181. package/dist/components/NestedControlRenderer/properties/LookupProperty.d.ts +6 -0
  182. package/dist/components/NestedControlRenderer/properties/LookupProperty.js +36 -0
  183. package/dist/components/NestedControlRenderer/properties/LookupProperty.js.map +1 -0
  184. package/dist/components/NestedControlRenderer/properties/NumberProperty.d.ts +5 -0
  185. package/dist/components/NestedControlRenderer/properties/NumberProperty.js +17 -0
  186. package/dist/components/NestedControlRenderer/properties/NumberProperty.js.map +1 -0
  187. package/dist/components/NestedControlRenderer/properties/OptionSetProperty.d.ts +5 -0
  188. package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js +23 -0
  189. package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js.map +1 -0
  190. package/dist/components/NestedControlRenderer/properties/Property.d.ts +16 -0
  191. package/dist/components/NestedControlRenderer/properties/Property.js +41 -0
  192. package/dist/components/NestedControlRenderer/properties/Property.js.map +1 -0
  193. package/dist/components/NestedControlRenderer/properties/TextProperty.d.ts +5 -0
  194. package/dist/components/NestedControlRenderer/properties/TextProperty.js +15 -0
  195. package/dist/components/NestedControlRenderer/properties/TextProperty.js.map +1 -0
  196. package/dist/components/NestedControlRenderer/styles.d.ts +14 -0
  197. package/dist/components/NestedControlRenderer/styles.js +21 -0
  198. package/dist/components/NestedControlRenderer/styles.js.map +1 -0
  199. package/dist/components/NestedControlRenderer/translations.d.ts +14 -0
  200. package/dist/components/NestedControlRenderer/translations.js +19 -0
  201. package/dist/components/NestedControlRenderer/translations.js.map +1 -0
  202. package/dist/components/OptionSet/OptionSet.js +3 -3
  203. package/dist/components/OptionSet/OptionSet.js.map +1 -1
  204. package/dist/components/OptionSet/useComboBoxTheme.js +17 -17
  205. package/dist/components/OptionSet/useComboBoxTheme.js.map +1 -1
  206. package/dist/components/TextField/TextField.js.map +1 -1
  207. package/dist/components/TextField/interfaces.d.ts +2 -2
  208. package/dist/components/TwoOptions/TwoOptions.js +2 -1
  209. package/dist/components/TwoOptions/TwoOptions.js.map +1 -1
  210. package/dist/components/index.d.ts +13 -0
  211. package/dist/components/index.js +15 -0
  212. package/dist/components/index.js.map +1 -0
  213. package/dist/hooks/index.d.ts +1 -0
  214. package/dist/hooks/index.js +1 -0
  215. package/dist/hooks/index.js.map +1 -1
  216. package/dist/hooks/useControl.d.ts +1 -7
  217. package/dist/hooks/useControl.js +12 -40
  218. package/dist/hooks/useControl.js.map +1 -1
  219. package/dist/hooks/useControlLabels.d.ts +14 -0
  220. package/dist/hooks/useControlLabels.js +47 -0
  221. package/dist/hooks/useControlLabels.js.map +1 -0
  222. package/dist/hooks/useInputBasedControl.d.ts +2 -1
  223. package/dist/hooks/useInputBasedControl.js +3 -5
  224. package/dist/hooks/useInputBasedControl.js.map +1 -1
  225. package/dist/hooks/usePrevious.d.ts +1 -0
  226. package/dist/index.d.ts +452 -140
  227. package/dist/index.js +7 -2
  228. package/dist/index.js.map +1 -1
  229. package/dist/interfaces/context.d.ts +2 -1
  230. package/dist/interfaces/index.d.ts +1 -1
  231. package/dist/interfaces/property.d.ts +5 -0
  232. package/dist/utils/BaseControls.d.ts +16 -0
  233. package/dist/utils/BaseControls.js +82 -0
  234. package/dist/utils/BaseControls.js.map +1 -0
  235. package/dist/utils/index.d.ts +1 -0
  236. package/dist/utils/index.js +2 -0
  237. package/dist/utils/index.js.map +1 -1
  238. package/dist/utils/theme/ControlTheme.d.ts +1 -1
  239. package/dist/utils/theme/ControlTheme.js +1 -1
  240. package/dist/utils/theme/ControlTheme.js.map +1 -1
  241. package/dist/utils/theme/components/ThemeWrapper.d.ts +9 -0
  242. package/dist/utils/theme/components/ThemeWrapper.js +11 -0
  243. package/dist/utils/theme/components/ThemeWrapper.js.map +1 -0
  244. package/dist/utils/theme/components/index.d.ts +1 -0
  245. package/dist/utils/theme/components/index.js +2 -0
  246. package/dist/utils/theme/components/index.js.map +1 -0
  247. package/dist/utils/theme/hooks/useControlTheme.d.ts +1 -1
  248. package/dist/utils/theme/hooks/useControlTheme.js.map +1 -1
  249. package/dist/utils/theme/index.d.ts +1 -0
  250. package/dist/utils/theme/index.js +1 -0
  251. package/dist/utils/theme/index.js.map +1 -1
  252. package/package.json +3 -3
  253. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.d.ts +0 -10
  254. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +0 -82
  255. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +0 -1
  256. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.d.ts +0 -11
  257. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js +0 -93
  258. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js.map +0 -1
  259. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.d.ts +0 -36
  260. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js +0 -42
  261. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js.map +0 -1
  262. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.d.ts +0 -11
  263. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +0 -221
  264. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +0 -1
  265. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.d.ts +0 -10
  266. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js +0 -49
  267. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js.map +0 -1
  268. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js +0 -27
  269. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js.map +0 -1
  270. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.d.ts +0 -99
  271. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +0 -123
  272. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +0 -1
  273. package/dist/components/Grid/core/components/Component/Component.js.map +0 -1
  274. package/dist/components/Grid/core/components/Component/controller/useComponentController.js.map +0 -1
  275. package/dist/components/Grid/core/components/Component/model/Component.js.map +0 -1
  276. package/dist/components/Grid/core/model/Metadata.js +0 -26
  277. package/dist/components/Grid/core/model/Metadata.js.map +0 -1
  278. package/dist/components/Grid/selection/controllers/useSelectionController.d.ts +0 -11
  279. package/dist/components/Grid/selection/controllers/useSelectionController.js +0 -21
  280. package/dist/components/Grid/selection/controllers/useSelectionController.js.map +0 -1
  281. package/dist/hooks/useRerender.d.ts +0 -1
  282. package/dist/hooks/useRerender.js +0 -9
  283. package/dist/hooks/useRerender.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ import { mergeStyleSets } from '@fluentui/react';
2
+
3
+ const getJustifyContent = (columnAlignment) => {
4
+ switch (columnAlignment) {
5
+ case 'left': {
6
+ return 'flex-start';
7
+ }
8
+ case 'center': {
9
+ return 'center';
10
+ }
11
+ case 'right': {
12
+ return 'flex-end';
13
+ }
14
+ }
15
+ };
16
+ const getCellStyles = () => {
17
+ return mergeStyleSets({
18
+ cellRoot: {
19
+ height: '100%',
20
+ width: '100%',
21
+ display: 'flex',
22
+ alignItems: 'center',
23
+ justifyContent: 'center'
24
+ },
25
+ checkbox: {
26
+ marginRight: 0.5
27
+ }
28
+ });
29
+ };
30
+ const getInnerCellStyles = (isEditing, theme, columnAlignment) => {
31
+ return mergeStyleSets({
32
+ innerCellRoot: {
33
+ flex: 1,
34
+ display: 'flex',
35
+ overflow: 'hidden',
36
+ alignItems: 'center',
37
+ height: '100%',
38
+ marginLeft: isEditing ? -1 : undefined,
39
+ marginRight: isEditing ? -1 : undefined,
40
+ },
41
+ shimmerWrapper: {
42
+ height: 10
43
+ },
44
+ shimmerRoot: {
45
+ width: '100%',
46
+ paddingLeft: 10,
47
+ paddingRight: 10
48
+ },
49
+ errorIconRoot: {
50
+ color: `${theme.semanticColors.errorIcon} !important`
51
+ },
52
+ uneditableIconRoot: {
53
+ color: `${theme.semanticColors.bodyText} !important`
54
+ }
55
+ });
56
+ };
57
+
58
+ export { getCellStyles, getInnerCellStyles, getJustifyContent };
59
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":["../../../../../../src/components/Grid/core/components/Cell/styles.ts"],"sourcesContent":["import { ITheme, mergeStyleSets } from \"@fluentui/react\";\nimport { IColumn } from \"@talxis/client-libraries\";\n\nexport const getJustifyContent = (columnAlignment: Required<IColumn['alignment']>) => {\n switch(columnAlignment) {\n case 'left': {\n return 'flex-start'\n }\n case 'center': {\n return 'center'\n }\n case 'right': {\n return 'flex-end'\n }\n }\n}\n\n\nexport const getCellStyles = () => {\n return mergeStyleSets({\n cellRoot: {\n height: '100%',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n checkbox: {\n marginRight: 0.5\n }\n })\n}\n\nexport const getInnerCellStyles = (isEditing: boolean, theme: ITheme, columnAlignment: IColumn['alignment']) => {\n return mergeStyleSets({\n innerCellRoot: {\n flex: 1,\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'center',\n height: '100%',\n marginLeft: isEditing ? - 1 : undefined,\n marginRight: isEditing ? - 1 : undefined,\n },\n\n shimmerWrapper: {\n height: 10\n },\n shimmerRoot: {\n width: '100%',\n paddingLeft: 10,\n paddingRight: 10\n },\n errorIconRoot: {\n color: `${theme.semanticColors.errorIcon} !important`\n },\n uneditableIconRoot: {\n color: `${theme.semanticColors.bodyText} !important`\n }\n })\n}\n\n"],"names":[],"mappings":";;AAGa,MAAA,iBAAiB,GAAG,CAAC,eAA+C,KAAI;AACjF,IAAA,QAAO,eAAe;QAClB,KAAK,MAAM,EAAE;AACT,YAAA,OAAO,YAAY,CAAA;AACtB,SAAA;QACD,KAAK,QAAQ,EAAE;AACX,YAAA,OAAO,QAAQ,CAAA;AAClB,SAAA;QACD,KAAK,OAAO,EAAE;AACV,YAAA,OAAO,UAAU,CAAA;AACpB,SAAA;AACJ,KAAA;AACL,EAAC;AAGM,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,QAAQ,EAAE;AACN,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,cAAc,EAAE,QAAQ;AAC3B,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,WAAW,EAAE,GAAG;AACnB,SAAA;AACJ,KAAA,CAAC,CAAA;AACN,EAAC;AAEY,MAAA,kBAAkB,GAAG,CAAC,SAAkB,EAAE,KAAa,EAAE,eAAqC,KAAI;AAC3G,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,aAAa,EAAE;AACX,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,SAAS,GAAG,CAAE,CAAC,GAAG,SAAS;YACvC,WAAW,EAAE,SAAS,GAAG,CAAE,CAAC,GAAG,SAAS;AAC3C,SAAA;AAED,QAAA,cAAc,EAAE;AACZ,YAAA,MAAM,EAAE,EAAE;AACb,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,YAAY,EAAE,EAAE;AACnB,SAAA;AACD,QAAA,aAAa,EAAE;AACX,YAAA,KAAK,EAAE,CAAG,EAAA,KAAK,CAAC,cAAc,CAAC,SAAS,CAAa,WAAA,CAAA;AACxD,SAAA;AACD,QAAA,kBAAkB,EAAE;AAChB,YAAA,KAAK,EAAE,CAAG,EAAA,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAa,WAAA,CAAA;AACvD,SAAA;AACJ,KAAA,CAAC,CAAA;AACN;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { useState, useRef } from 'react';
2
+ import { useState, useMemo, useRef } from 'react';
3
3
  import { useTheme, CommandBarButton, Icon, Label } from '@fluentui/react';
4
4
  import { FilterCallout } from '../../../filtering/components/FilterCallout/FilterCallout.js';
5
5
  import { SortingContextualMenu } from '../../../sorting/components/SortingContextualMenu/SortingContextualMenu.js';
@@ -11,7 +11,8 @@ const ColumnHeader = (props) => {
11
11
  const column = props.baseColumn;
12
12
  const [columnHeaderContextualMenuProps, setColumnHeaderContextualMenuProps] = useState(null);
13
13
  const [filterCalloutProps, setFilterCalloutProps] = useState(null);
14
- const columnHeaderStyles = getColumnHeaderStyles(useTheme());
14
+ const theme = useTheme();
15
+ const columnHeaderStyles = useMemo(() => getColumnHeaderStyles(theme, column.alignment), [theme, column.alignment]);
15
16
  const buttonRef = useRef(null);
16
17
  const onClick = () => {
17
18
  if ((column.isFilterable === false && column.disableSorting)) {
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnHeader.js","sources":["../../../../../../src/components/Grid/core/components/ColumnHeader/ColumnHeader.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { CommandBarButton, Icon, Label, useTheme } from '@fluentui/react';\nimport { FilterCallout, IFilterCallout } from '../../../filtering/components/FilterCallout/FilterCallout';\nimport { IGridColumn } from '../../interfaces/IGridColumn';\nimport { ISortingContextualMenu, SortingContextualMenu } from '../../../sorting/components/SortingContextualMenu/SortingContextualMenu';\nimport { getColumnHeaderStyles } from './styles';\nimport { useGridInstance } from '../../hooks/useGridInstance';\nimport React from 'react';\n\nexport interface IColumnHeader {\n baseColumn: IGridColumn;\n}\n\nexport const ColumnHeader = (props: IColumnHeader) => {\n const grid = useGridInstance();\n const column = props.baseColumn;\n const [columnHeaderContextualMenuProps, setColumnHeaderContextualMenuProps] = useState<ISortingContextualMenu | null>(null);\n const [filterCalloutProps, setFilterCalloutProps] = useState<IFilterCallout | null>(null);\n const columnHeaderStyles = getColumnHeaderStyles(useTheme());\n const buttonRef = useRef<HTMLElement>(null);\n\n const onClick = () => {\n if ((column.isFilterable === false && column.disableSorting)) {\n return;\n }\n setColumnHeaderContextualMenuProps({\n column: column,\n onDismiss: (e, dismissAll, showFilterCallout) => {\n setColumnHeaderContextualMenuProps(null);\n if (!showFilterCallout) {\n return;\n }\n setFilterCalloutProps({\n column: column,\n onDismiss: () => {\n setFilterCalloutProps(null)\n }\n })\n }\n });\n }\n const preventDismissOnEvent = (e: Event | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element> | React.FocusEvent<Element, Element>) => {\n if(e.type !== 'scroll') {\n return false;\n }\n const target = e.target as HTMLElement;\n //check for vertical scroll\n if (target?.classList?.contains('ag-body-viewport') || target?.classList?.contains('ag-body-vertical-scroll-viewport')) {\n return true;\n }\n //ios outputs horizontal scroll if focused in callout btn which would result in dismiss of callout\n if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {\n return true;\n }\n return false;\n }\n return (\n <>\n <CommandBarButton\n elementRef={buttonRef}\n title={column.displayName}\n className={columnHeaderStyles.root}\n onClick={onClick}\n >\n {grid.isEditable && !column.isEditable && column.type !== 'action' && <Icon className={columnHeaderStyles.editIcon} iconName='Uneditable' />}\n <div className={columnHeaderStyles.labelWrapper}>\n <Label className={columnHeaderStyles.label}>{column.displayName}</Label>\n {column.isRequired &&\n <span className={columnHeaderStyles.requiredSymbol}>*</span>\n }\n </div>\n <div className={columnHeaderStyles.filterSortIcons}>\n {column.isSorted && <Icon iconName={column.isSortedDescending ? 'SortDown' : 'SortUp'} />}\n {column.isFiltered && <Icon iconName='Filter' />}\n </div>\n </CommandBarButton>\n {columnHeaderContextualMenuProps &&\n <SortingContextualMenu \n target={buttonRef}\n calloutProps={{\n preventDismissOnEvent: preventDismissOnEvent\n }} \n {...columnHeaderContextualMenuProps} />\n }\n {filterCalloutProps &&\n <FilterCallout preventDismissOnEvent={preventDismissOnEvent} target={buttonRef} {...filterCalloutProps} />\n }\n </>\n )\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnHeader.js","sources":["../../../../../../src/components/Grid/core/components/ColumnHeader/ColumnHeader.tsx"],"sourcesContent":["import { useMemo, useRef, useState } from 'react';\nimport { CommandBarButton, Icon, Label, useTheme } from '@fluentui/react';\nimport { FilterCallout, IFilterCallout } from '../../../filtering/components/FilterCallout/FilterCallout';\nimport { IGridColumn } from '../../interfaces/IGridColumn';\nimport { ISortingContextualMenu, SortingContextualMenu } from '../../../sorting/components/SortingContextualMenu/SortingContextualMenu';\nimport { getColumnHeaderStyles } from './styles';\nimport { useGridInstance } from '../../hooks/useGridInstance';\nimport React from 'react';\n\nexport interface IColumnHeader {\n baseColumn: IGridColumn;\n}\n\nexport const ColumnHeader = (props: IColumnHeader) => {\n const grid = useGridInstance();\n const column = props.baseColumn;\n const [columnHeaderContextualMenuProps, setColumnHeaderContextualMenuProps] = useState<ISortingContextualMenu | null>(null);\n const [filterCalloutProps, setFilterCalloutProps] = useState<IFilterCallout | null>(null);\n const theme = useTheme();\n const columnHeaderStyles = useMemo(() => getColumnHeaderStyles(theme, column.alignment), [theme, column.alignment])\n const buttonRef = useRef<HTMLElement>(null);\n\n const onClick = () => {\n if ((column.isFilterable === false && column.disableSorting)) {\n return;\n }\n setColumnHeaderContextualMenuProps({\n column: column,\n onDismiss: (e, dismissAll, showFilterCallout) => {\n setColumnHeaderContextualMenuProps(null);\n if (!showFilterCallout) {\n return;\n }\n setFilterCalloutProps({\n column: column,\n onDismiss: () => {\n setFilterCalloutProps(null)\n }\n })\n }\n });\n }\n const preventDismissOnEvent = (e: Event | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element> | React.FocusEvent<Element, Element>) => {\n if(e.type !== 'scroll') {\n return false;\n }\n const target = e.target as HTMLElement;\n //check for vertical scroll\n if (target?.classList?.contains('ag-body-viewport') || target?.classList?.contains('ag-body-vertical-scroll-viewport')) {\n return true;\n }\n //ios outputs horizontal scroll if focused in callout btn which would result in dismiss of callout\n if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {\n return true;\n }\n return false;\n }\n return (\n <>\n <CommandBarButton\n elementRef={buttonRef}\n title={column.displayName}\n className={columnHeaderStyles.root}\n onClick={onClick}\n >\n {grid.isEditable && !column.isEditable && column.type !== 'action' && <Icon className={columnHeaderStyles.editIcon} iconName='Uneditable' />}\n <div className={columnHeaderStyles.labelWrapper}>\n <Label className={columnHeaderStyles.label}>{column.displayName}</Label>\n {column.isRequired &&\n <span className={columnHeaderStyles.requiredSymbol}>*</span>\n }\n </div>\n <div className={columnHeaderStyles.filterSortIcons}>\n {column.isSorted && <Icon iconName={column.isSortedDescending ? 'SortDown' : 'SortUp'} />}\n {column.isFiltered && <Icon iconName='Filter' />}\n </div>\n </CommandBarButton>\n {columnHeaderContextualMenuProps &&\n <SortingContextualMenu \n target={buttonRef}\n calloutProps={{\n preventDismissOnEvent: preventDismissOnEvent\n }} \n {...columnHeaderContextualMenuProps} />\n }\n {filterCalloutProps &&\n <FilterCallout preventDismissOnEvent={preventDismissOnEvent} target={buttonRef} {...filterCalloutProps} />\n }\n </>\n )\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -1,30 +1,48 @@
1
1
  import { jsx, Fragment } from 'react/jsx-runtime';
2
- import { useTheme, Checkbox } from '@fluentui/react';
3
- import { useState, useMemo } from 'react';
4
- import { useSelectionController } from '../../../../../selection/controllers/useSelectionController.js';
2
+ import { useTheme, ThemeProvider, Checkbox } from '@fluentui/react';
3
+ import { useContext, useEffect } from 'react';
5
4
  import { useGridInstance } from '../../../../hooks/useGridInstance.js';
6
5
  import { getGlobalCheckboxStyles } from './styles.js';
6
+ import { AgGridContext } from '../../../AgGrid/context.js';
7
+ import { useThemeGenerator, Theming, useRerender } from '@talxis/react-components';
7
8
 
8
9
  const GlobalCheckBox = () => {
9
10
  const grid = useGridInstance();
10
- const theme = useTheme();
11
+ const baseTheme = useTheme();
12
+ const theme = useThemeGenerator(baseTheme.palette.themePrimary, baseTheme.semanticColors.bodyBackground, Theming.GetTextColorForBackground(baseTheme.semanticColors.bodyBackground),
13
+ //@ts-ignore - typings
14
+ grid.pcfContext.fluentDesignLanguage?.v8FluentOverrides);
11
15
  const styles = getGlobalCheckboxStyles(theme);
12
- const selection = useSelectionController();
13
- //TODO: why does useRerender not work?
14
- const [_, rerender] = useState(0);
15
- useMemo(() => {
16
- grid.setRefreshGlobalCheckBox(() => rerender((previous) => previous + 1));
16
+ const selection = grid.selection;
17
+ const agGrid = useContext(AgGridContext);
18
+ const rerender = useRerender();
19
+ const getCheckBoxState = () => {
20
+ if (grid.selection.allRecordsSelected) {
21
+ return 'checked';
22
+ }
23
+ if (grid.dataset.getSelectedRecordIds().length > 0) {
24
+ return 'intermediate';
25
+ }
26
+ return 'unchecked';
27
+ };
28
+ const checkboxState = getCheckBoxState();
29
+ useEffect(() => {
30
+ agGrid.setGlobalCheckBoxRenderer(() => rerender());
17
31
  }, []);
18
32
  if (grid.dataset.sortedRecordIds.length === 0) {
19
33
  return jsx(Fragment, {});
20
34
  }
21
- return (jsx("div", { className: styles.root, children: selection.type === 'multiple' &&
22
- jsx(Checkbox, { checked: selection.allRecordsSelected, indeterminate: selection.selectedRecordIds.length > 0 && !selection.allRecordsSelected, onChange: (e, checked) => {
35
+ return (jsx(ThemeProvider, { theme: theme, className: styles.root, children: selection.type === 'multiple' &&
36
+ jsx(Checkbox, { checked: checkboxState === 'checked', styles: {
37
+ checkbox: styles.checkbox
38
+ }, indeterminate: checkboxState === 'intermediate', onChange: (e, checked) => {
23
39
  if (checked) {
24
40
  selection.selectAll();
25
- return;
26
41
  }
27
- selection.clear();
42
+ else {
43
+ selection.clear();
44
+ }
45
+ agGrid.refreshRowSelection();
28
46
  } }) }));
29
47
  };
30
48
 
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalCheckbox.js","sources":["../../../../../../../../src/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.tsx"],"sourcesContent":["import { Checkbox, useTheme } from \"@fluentui/react\";\nimport React, { useMemo, useState } from \"react\";\nimport { useSelectionController } from \"../../../../../selection/controllers/useSelectionController\";\nimport { useGridInstance } from \"../../../../hooks/useGridInstance\";\nimport { getGlobalCheckboxStyles } from \"./styles\";\nimport { useRerender } from \"../../../../../../../hooks/useRerender\";\n\nexport const GlobalCheckBox = () => {\n const grid = useGridInstance();\n const theme = useTheme();\n const styles = getGlobalCheckboxStyles(theme);\n const selection = useSelectionController();\n //TODO: why does useRerender not work?\n const [_, rerender] = useState(0)\n\n useMemo(() => {\n grid.setRefreshGlobalCheckBox(() => rerender((previous) => previous + 1))\n }, []);\n\n if(grid.dataset.sortedRecordIds.length === 0) {\n return <></>\n }\n return (\n <div className={styles.root}>\n {selection.type === 'multiple' &&\n <Checkbox\n checked={selection.allRecordsSelected}\n indeterminate={selection.selectedRecordIds.length > 0 && !selection.allRecordsSelected}\n onChange={(e, checked) => {\n if(checked) {\n selection.selectAll()\n return;\n }\n selection.clear();\n }} />\n }\n </div>\n )\n};"],"names":["_jsx"],"mappings":";;;;;;;AAOO,MAAM,cAAc,GAAG,MAAK;AAC/B,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;AACzB,IAAA,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAA,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;;IAE3C,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEjC,OAAO,CAAC,MAAK;AACT,QAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,QAAQ,CAAC,CAAC,QAAQ,KAAK,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAA;KAC5E,EAAE,EAAE,CAAC,CAAC;IAEP,IAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,QAAA,OAAOA,iBAAK,CAAA;AACf,KAAA;AACD,IAAA,QACIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAA,QAAA,EACtB,SAAS,CAAC,IAAI,KAAK,UAAU;AAC1B,YAAAA,GAAA,CAAC,QAAQ,EAAA,EACL,OAAO,EAAE,SAAS,CAAC,kBAAkB,EACrC,aAAa,EAAE,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EACtF,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAI;AACrB,oBAAA,IAAG,OAAO,EAAE;wBACR,SAAS,CAAC,SAAS,EAAE,CAAA;wBACrB,OAAO;AACV,qBAAA;oBACD,SAAS,CAAC,KAAK,EAAE,CAAC;iBACrB,EAAA,CAAI,EAEX,CAAA,EACT;AACL;;;;"}
1
+ {"version":3,"file":"GlobalCheckbox.js","sources":["../../../../../../../../src/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.tsx"],"sourcesContent":["import { Checkbox, ThemeProvider, useTheme } from \"@fluentui/react\";\nimport { useContext, useEffect } from \"react\";\nimport { useGridInstance } from \"../../../../hooks/useGridInstance\";\nimport { getGlobalCheckboxStyles } from \"./styles\";\nimport { AgGridContext } from \"../../../AgGrid/context\";\nimport { Theming, useRerender, useThemeGenerator } from \"@talxis/react-components\";\n\n\nexport const GlobalCheckBox = () => {\n const grid = useGridInstance();\n const baseTheme = useTheme();\n const theme = useThemeGenerator(\n baseTheme.palette.themePrimary,\n baseTheme.semanticColors.bodyBackground,\n Theming.GetTextColorForBackground(baseTheme.semanticColors.bodyBackground),\n //@ts-ignore - typings\n grid.pcfContext.fluentDesignLanguage?.v8FluentOverrides\n )\n const styles = getGlobalCheckboxStyles(theme);\n const selection = grid.selection;\n const agGrid = useContext(AgGridContext);\n const rerender = useRerender();\n\n const getCheckBoxState = () => {\n if (grid.selection.allRecordsSelected) {\n return 'checked';\n }\n if (grid.dataset.getSelectedRecordIds().length > 0) {\n return 'intermediate';\n }\n return 'unchecked';\n }\n\n const checkboxState = getCheckBoxState();\n\n useEffect(() => {\n agGrid.setGlobalCheckBoxRenderer(() => rerender())\n }, []);\n\n if (grid.dataset.sortedRecordIds.length === 0) {\n return <></>\n }\n return (\n <ThemeProvider theme={theme} className={styles.root}>\n {selection.type === 'multiple' &&\n <Checkbox\n checked={checkboxState === 'checked'}\n styles={{\n checkbox: styles.checkbox\n }}\n indeterminate={checkboxState === 'intermediate'}\n onChange={(e, checked) => {\n if (checked) {\n selection.selectAll();\n }\n else {\n selection.clear();\n }\n agGrid.refreshRowSelection();\n }} />\n }\n </ThemeProvider>\n )\n};"],"names":["_jsx"],"mappings":";;;;;;;;AAQO,MAAM,cAAc,GAAG,MAAK;AAC/B,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,iBAAiB,CAC3B,SAAS,CAAC,OAAO,CAAC,YAAY,EAC9B,SAAS,CAAC,cAAc,CAAC,cAAc,EACvC,OAAO,CAAC,yBAAyB,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc,CAAC;;AAE1E,IAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,iBAAiB,CAC1D,CAAA;AACD,IAAA,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACjC,IAAA,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;AACzC,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,gBAAgB,GAAG,MAAK;AAC1B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;AACnC,YAAA,OAAO,SAAS,CAAC;AACpB,SAAA;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAChD,YAAA,OAAO,cAAc,CAAC;AACzB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;AACvB,KAAC,CAAA;AAED,IAAA,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,SAAS,CAAC,MAAK;QACX,MAAM,CAAC,yBAAyB,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAA;KACrD,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3C,QAAA,OAAOA,iBAAK,CAAA;AACf,KAAA;AACD,IAAA,QACIA,GAAC,CAAA,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAA,QAAA,EAC9C,SAAS,CAAC,IAAI,KAAK,UAAU;YAC1BA,GAAC,CAAA,QAAQ,IACL,OAAO,EAAE,aAAa,KAAK,SAAS,EACpC,MAAM,EAAE;oBACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC5B,iBAAA,EACD,aAAa,EAAE,aAAa,KAAK,cAAc,EAC/C,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAI;AACrB,oBAAA,IAAI,OAAO,EAAE;wBACT,SAAS,CAAC,SAAS,EAAE,CAAC;AACzB,qBAAA;AACI,yBAAA;wBACD,SAAS,CAAC,KAAK,EAAE,CAAC;AACrB,qBAAA;oBACD,MAAM,CAAC,mBAAmB,EAAE,CAAC;iBAChC,EAAA,CAAI,EAED,CAAA,EACnB;AACL;;;;"}
@@ -7,7 +7,8 @@ export declare const getGlobalCheckboxStyles: (theme: ITheme) => import("@fluent
7
7
  justifyContent: string;
8
8
  height: string;
9
9
  alignItems: string;
10
- position: string;
11
- left: number;
10
+ };
11
+ checkbox: {
12
+ marginRight: number;
12
13
  };
13
14
  }>;
@@ -3,14 +3,15 @@ import { mergeStyleSets } from '@fluentui/react';
3
3
  const getGlobalCheckboxStyles = (theme) => {
4
4
  return mergeStyleSets({
5
5
  root: {
6
- backgroundColor: theme.palette.white,
6
+ backgroundColor: theme.semanticColors.bodyBackground,
7
7
  flexGrow: 1,
8
8
  display: 'flex',
9
9
  justifyContent: 'center',
10
10
  height: '100%',
11
- alignItems: 'center',
12
- position: 'relative',
13
- left: 1
11
+ alignItems: 'center'
12
+ },
13
+ checkbox: {
14
+ marginRight: 0.5
14
15
  }
15
16
  });
16
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../../../../../../../src/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.ts"],"sourcesContent":["import { ITheme, mergeStyleSets } from \"@fluentui/react\"\n\nexport const getGlobalCheckboxStyles = (theme: ITheme) => {\n return mergeStyleSets({\n root: {\n backgroundColor: theme.palette.white,\n flexGrow: 1,\n display: 'flex',\n justifyContent: 'center',\n height: '100%',\n alignItems: 'center',\n position: 'relative',\n left: 1\n }\n });\n}"],"names":[],"mappings":";;AAEa,MAAA,uBAAuB,GAAG,CAAC,KAAa,KAAI;AACrD,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,IAAI,EAAE;AACF,YAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;AACpC,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,IAAI,EAAE,CAAC;AACV,SAAA;AACJ,KAAA,CAAC,CAAC;AACP;;;;"}
1
+ {"version":3,"file":"styles.js","sources":["../../../../../../../../src/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.ts"],"sourcesContent":["import { ITheme, mergeStyleSets } from \"@fluentui/react\"\n\nexport const getGlobalCheckboxStyles = (theme: ITheme) => {\n return mergeStyleSets({\n root: {\n backgroundColor: theme.semanticColors.bodyBackground,\n flexGrow: 1,\n display: 'flex',\n justifyContent: 'center',\n height: '100%',\n alignItems: 'center'\n },\n checkbox: {\n marginRight: 0.5\n }\n });\n}"],"names":[],"mappings":";;AAEa,MAAA,uBAAuB,GAAG,CAAC,KAAa,KAAI;AACrD,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,IAAI,EAAE;AACF,YAAA,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc;AACpD,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,UAAU,EAAE,QAAQ;AACvB,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,WAAW,EAAE,GAAG;AACnB,SAAA;AACJ,KAAA,CAAC,CAAC;AACP;;;;"}
@@ -1,5 +1,6 @@
1
1
  import { ITheme } from "@fluentui/react";
2
- export declare const getColumnHeaderStyles: (theme: ITheme) => import("@fluentui/react").IProcessedStyleSet<{
2
+ import { IColumn } from "@talxis/client-libraries";
3
+ export declare const getColumnHeaderStyles: (theme: ITheme, columnAlignment: Required<IColumn['alignment']>) => import("@fluentui/react").IProcessedStyleSet<{
3
4
  root: {
4
5
  width: string;
5
6
  textAlign: string;
@@ -18,6 +19,7 @@ export declare const getColumnHeaderStyles: (theme: ITheme) => import("@fluentui
18
19
  flex: number;
19
20
  display: string;
20
21
  minWidth: number;
22
+ justifyContent: string | undefined;
21
23
  };
22
24
  label: {
23
25
  overflow: string;
@@ -1,6 +1,7 @@
1
1
  import { mergeStyleSets } from '@fluentui/react';
2
+ import { getJustifyContent } from '../Cell/styles.js';
2
3
 
3
- const getColumnHeaderStyles = (theme) => {
4
+ const getColumnHeaderStyles = (theme, columnAlignment) => {
4
5
  return mergeStyleSets({
5
6
  root: {
6
7
  width: '100%',
@@ -19,7 +20,8 @@ const getColumnHeaderStyles = (theme) => {
19
20
  labelWrapper: {
20
21
  flex: 1,
21
22
  display: 'flex',
22
- minWidth: 0
23
+ minWidth: 0,
24
+ justifyContent: getJustifyContent(columnAlignment)
23
25
  },
24
26
  label: {
25
27
  overflow: 'hidden',
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../../../../../src/components/Grid/core/components/ColumnHeader/styles.ts"],"sourcesContent":["import { ITheme, mergeStyleSets } from \"@fluentui/react\";\n\nexport const getColumnHeaderStyles = (theme: ITheme) => {\n return mergeStyleSets({\n root: {\n width: '100%',\n textAlign: 'left',\n height: 42,\n paddingLeft: 10,\n paddingRight: 10,\n justifyContent: 'flex-start',\n '.ms-Button-flexContainer': {\n justifyContent: 'flex-start',\n width: '100%',\n gap: 2,\n pointerEvents: 'none'\n }\n },\n labelWrapper: {\n flex: 1,\n display: 'flex',\n minWidth: 0\n },\n label: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n cursor: 'pointer',\n },\n requiredSymbol: {\n color: theme.semanticColors.errorIcon,\n position: 'relative',\n top: 4,\n left: 2\n },\n filterSortIcons: {\n display: 'flex',\n gap: 2\n },\n editIcon: {\n marginRight: 3\n }\n })\n}"],"names":[],"mappings":";;AAEa,MAAA,qBAAqB,GAAG,CAAC,KAAa,KAAI;AACnD,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,cAAc,EAAE,YAAY;AAC5B,YAAA,0BAA0B,EAAE;AACxB,gBAAA,cAAc,EAAE,YAAY;AAC5B,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,GAAG,EAAE,CAAC;AACN,gBAAA,aAAa,EAAE,MAAM;AACxB,aAAA;AACJ,SAAA;AACD,QAAA,YAAY,EAAE;AACV,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,CAAC;AACd,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,MAAM,EAAE,SAAS;AACpB,SAAA;AACD,QAAA,cAAc,EAAE;AACZ,YAAA,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS;AACrC,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;AACV,SAAA;AACD,QAAA,eAAe,EAAE;AACb,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,GAAG,EAAE,CAAC;AACT,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,WAAW,EAAE,CAAC;AACjB,SAAA;AACJ,KAAA,CAAC,CAAA;AACN;;;;"}
1
+ {"version":3,"file":"styles.js","sources":["../../../../../../src/components/Grid/core/components/ColumnHeader/styles.ts"],"sourcesContent":["import { ITheme, mergeStyleSets } from \"@fluentui/react\";\nimport { IColumn } from \"@talxis/client-libraries\";\nimport { getJustifyContent } from \"../Cell/styles\";\n\nexport const getColumnHeaderStyles = (theme: ITheme, columnAlignment: Required<IColumn['alignment']>) => {\n return mergeStyleSets({\n root: {\n width: '100%',\n textAlign: 'left',\n height: 42,\n paddingLeft: 10,\n paddingRight: 10,\n justifyContent: 'flex-start',\n '.ms-Button-flexContainer': {\n justifyContent: 'flex-start',\n width: '100%',\n gap: 2,\n pointerEvents: 'none'\n }\n },\n labelWrapper: {\n flex: 1,\n display: 'flex',\n minWidth: 0,\n justifyContent: getJustifyContent(columnAlignment)\n },\n label: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n cursor: 'pointer',\n },\n requiredSymbol: {\n color: theme.semanticColors.errorIcon,\n position: 'relative',\n top: 4,\n left: 2\n },\n filterSortIcons: {\n display: 'flex',\n gap: 2\n },\n editIcon: {\n marginRight: 3\n }\n })\n}"],"names":[],"mappings":";;;MAIa,qBAAqB,GAAG,CAAC,KAAa,EAAE,eAA+C,KAAI;AACpG,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,cAAc,EAAE,YAAY;AAC5B,YAAA,0BAA0B,EAAE;AACxB,gBAAA,cAAc,EAAE,YAAY;AAC5B,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,GAAG,EAAE,CAAC;AACN,gBAAA,aAAa,EAAE,MAAM;AACxB,aAAA;AACJ,SAAA;AACD,QAAA,YAAY,EAAE;AACV,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,cAAc,EAAE,iBAAiB,CAAC,eAAe,CAAC;AACrD,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,MAAM,EAAE,SAAS;AACpB,SAAA;AACD,QAAA,cAAc,EAAE;AACZ,YAAA,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS;AACrC,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;AACV,SAAA;AACD,QAAA,eAAe,EAAE;AACb,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,GAAG,EAAE,CAAC;AACT,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,WAAW,EAAE,CAAC;AACjB,SAAA;AACJ,KAAA,CAAC,CAAA;AACN;;;;"}
@@ -11,7 +11,7 @@ const Save = () => {
11
11
  const styles = getSaveStyles(grid.parameters.EnableChangeEditor?.raw !== false);
12
12
  const [isSaving, setIsSaving] = useState(false);
13
13
  const [changeEditorOpened, setChangeEditorOpened] = useState(false);
14
- const hasInvalidRecords = grid.dataset.hasInvalidChanges?.();
14
+ const isDatasetValid = grid.dataset.isValid() && !grid.dataset.hasInvalidChanges();
15
15
  const isDirty = grid.dataset.isDirty?.();
16
16
  const numOfChanges = Object.keys(grid.dataset.getChanges?.() ?? []).length;
17
17
  const onMessageClick = () => {
@@ -20,7 +20,7 @@ const Save = () => {
20
20
  }
21
21
  setChangeEditorOpened(true);
22
22
  };
23
- return (jsxs(Fragment, { children: [jsx("div", { onClick: onMessageClick, className: `${styles.root} talxis__grid-control__notification-bar`, children: jsx(MessageBar, { messageBarType: !hasInvalidRecords ? MessageBarType.info : MessageBarType.error, actions: jsxs("div", { className: styles.actions, children: [jsx(CommandBarButton, { disabled: hasInvalidRecords || grid.dataset.loading, text: isSaving ? grid.labels["saving-saving"]() : undefined, iconProps: {
23
+ return (jsxs(Fragment, { children: [jsx("div", { onClick: onMessageClick, className: `${styles.root} talxis__grid-control__notification-bar`, children: jsx(MessageBar, { messageBarType: isDatasetValid ? MessageBarType.info : MessageBarType.error, actions: jsxs("div", { className: styles.actions, children: [jsx(CommandBarButton, { disabled: !isDatasetValid || grid.dataset.loading, text: isSaving ? grid.labels["saving-saving"]() : undefined, iconProps: {
24
24
  iconName: 'Save',
25
25
  }, onClick: async (e) => {
26
26
  e.stopPropagation();
@@ -45,14 +45,13 @@ const Save = () => {
45
45
  })()
46
46
  } }) }) }), changeEditorOpened &&
47
47
  jsx(ChangeEditor, { onDismiss: (e, shouldRefresh) => {
48
- //@ts-ignore
49
- if (e?.code === 'Escape') {
50
- return;
51
- }
52
48
  setChangeEditorOpened(false);
53
49
  if (shouldRefresh) {
54
50
  grid.dataset.paging.loadExactPage(grid.dataset.paging.pageNumber);
55
51
  }
52
+ else {
53
+ grid.pcfContext.factory.requestRender();
54
+ }
56
55
  } })] }));
57
56
  };
58
57
 
@@ -1 +1 @@
1
- {"version":3,"file":"Save.js","sources":["../../../../../../src/components/Grid/core/components/Save/Save.tsx"],"sourcesContent":["import { CommandBarButton, MessageBar, MessageBarType } from \"@fluentui/react\";\nimport { useGridInstance } from \"../../hooks/useGridInstance\";\nimport { useState } from 'react';\nimport { getSaveStyles } from \"./styles\";\nimport { ChangeEditor } from \"./components/ChangeEditor/ChangeEditor\";\n\n\nexport const Save = () => {\n const grid = useGridInstance();\n const labels = grid.labels;\n const styles = getSaveStyles(grid.parameters.EnableChangeEditor?.raw !== false);\n const [isSaving, setIsSaving] = useState(false);\n const [changeEditorOpened, setChangeEditorOpened] = useState<boolean>(false);\n const hasInvalidRecords = grid.dataset.hasInvalidChanges?.()\n const isDirty = grid.dataset.isDirty?.();\n const numOfChanges = Object.keys(grid.dataset.getChanges?.() ?? []).length;\n\n const onMessageClick = () => {\n if (!isDirty || isSaving || grid.parameters.EnableChangeEditor?.raw === false) {\n return;\n }\n setChangeEditorOpened(true);\n }\n return (\n <>\n <div onClick={onMessageClick} className={`${styles.root} talxis__grid-control__notification-bar`}>\n <MessageBar\n messageBarType={!hasInvalidRecords ? MessageBarType.info : MessageBarType.error}\n actions={\n <div className={styles.actions}>\n <CommandBarButton\n disabled={hasInvalidRecords || grid.dataset.loading}\n text={isSaving ? grid.labels[\"saving-saving\"]() : undefined}\n iconProps={{\n iconName: 'Save',\n }}\n onClick={async (e) => {\n e.stopPropagation()\n setIsSaving(true);\n await grid.dataset.paging.loadExactPage(grid.paging.pageNumber, true);\n setIsSaving(false);\n }}\n />\n <CommandBarButton\n text={grid.labels['saving-discard-changes']()}\n disabled={isSaving || grid.dataset.loading}\n iconProps={{\n iconName: 'EraseTool'\n }}\n onClick={async (e) => {\n e.stopPropagation();\n if (window.confirm(grid.labels['saving-discard-all-confirmation']())) {\n grid.dataset.clearChanges?.();\n grid.pcfContext.factory.requestRender();\n }\n }}\n />\n </div>\n } isMultiline={false}>\n <span className={styles.notificationText} dangerouslySetInnerHTML={{\n __html: (() => {\n let message = labels[\"saving-changenotification\"]({ numOfChanges: numOfChanges })\n if (grid.parameters.EnableChangeEditor?.raw !== false) {\n message += ` ${grid.labels['saving-clickreview']()}`\n }\n return message;\n })()\n }}></span>\n </MessageBar>\n </div>\n {changeEditorOpened &&\n <ChangeEditor onDismiss={(e, shouldRefresh) => {\n //@ts-ignore\n if (e?.code === 'Escape') {\n return;\n }\n setChangeEditorOpened(false);\n if(shouldRefresh) {\n grid.dataset.paging.loadExactPage(grid.dataset.paging.pageNumber);\n }\n }} />\n }\n </>\n )\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Save.js","sources":["../../../../../../src/components/Grid/core/components/Save/Save.tsx"],"sourcesContent":["import { CommandBarButton, MessageBar, MessageBarType } from \"@fluentui/react\";\nimport { useGridInstance } from \"../../hooks/useGridInstance\";\nimport { useState } from 'react';\nimport { getSaveStyles } from \"./styles\";\nimport { ChangeEditor } from \"./components/ChangeEditor/ChangeEditor\";\n\n\nexport const Save = () => {\n const grid = useGridInstance();\n const labels = grid.labels;\n const styles = getSaveStyles(grid.parameters.EnableChangeEditor?.raw !== false);\n const [isSaving, setIsSaving] = useState(false);\n const [changeEditorOpened, setChangeEditorOpened] = useState<boolean>(false);\n const isDatasetValid = grid.dataset.isValid() && !grid.dataset.hasInvalidChanges();\n const isDirty = grid.dataset.isDirty?.();\n const numOfChanges = Object.keys(grid.dataset.getChanges?.() ?? []).length;\n\n const onMessageClick = () => {\n if (!isDirty || isSaving || grid.parameters.EnableChangeEditor?.raw === false) {\n return;\n }\n setChangeEditorOpened(true);\n }\n return (\n <>\n <div onClick={onMessageClick} className={`${styles.root} talxis__grid-control__notification-bar`}>\n <MessageBar\n messageBarType={isDatasetValid ? MessageBarType.info : MessageBarType.error}\n actions={\n <div className={styles.actions}>\n <CommandBarButton\n disabled={!isDatasetValid || grid.dataset.loading}\n text={isSaving ? grid.labels[\"saving-saving\"]() : undefined}\n iconProps={{\n iconName: 'Save',\n }}\n onClick={async (e) => {\n e.stopPropagation()\n setIsSaving(true);\n await grid.dataset.paging.loadExactPage(grid.paging.pageNumber, true);\n setIsSaving(false);\n }}\n />\n <CommandBarButton\n text={grid.labels['saving-discard-changes']()}\n disabled={isSaving || grid.dataset.loading}\n iconProps={{\n iconName: 'EraseTool'\n }}\n onClick={async (e) => {\n e.stopPropagation();\n if (window.confirm(grid.labels['saving-discard-all-confirmation']())) {\n grid.dataset.clearChanges?.();\n grid.pcfContext.factory.requestRender();\n }\n }}\n />\n </div>\n } isMultiline={false}>\n <span className={styles.notificationText} dangerouslySetInnerHTML={{\n __html: (() => {\n let message = labels[\"saving-changenotification\"]({ numOfChanges: numOfChanges })\n if (grid.parameters.EnableChangeEditor?.raw !== false) {\n message += ` ${grid.labels['saving-clickreview']()}`\n }\n return message;\n })()\n }}></span>\n </MessageBar>\n </div>\n {changeEditorOpened &&\n <ChangeEditor onDismiss={(e, shouldRefresh) => {\n setChangeEditorOpened(false);\n if(shouldRefresh) {\n grid.dataset.paging.loadExactPage(grid.dataset.paging.pageNumber);\n }\n else {\n grid.pcfContext.factory.requestRender();\n }\n }} />\n }\n </>\n )\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -5,6 +5,7 @@ import Dialog from '../../../Dialog/index.js';
5
5
  import { getChangeEditorStyles } from './styles.js';
6
6
  import { ChangeGrid } from './components/ChangeGrid/ChangeGrid.js';
7
7
  import { useState, useRef, useEffect } from 'react';
8
+ import { useRerender } from '@talxis/react-components';
8
9
 
9
10
  const ChangeEditor = (props) => {
10
11
  const grid = useGridInstance();
@@ -14,7 +15,12 @@ const ChangeEditor = (props) => {
14
15
  const styles = getChangeEditorStyles(useTheme());
15
16
  const datasetsRef = useRef(new Set());
16
17
  const shouldRefreshOnDismissRef = useRef(false);
18
+ const rerender = useRerender();
17
19
  const onDismiss = (ev) => {
20
+ //@ts-ignore
21
+ if (ev?.code === 'Escape') {
22
+ return;
23
+ }
18
24
  //do not close the dialog if we have pending save operations
19
25
  if (activeSaveOperationsCount > 0) {
20
26
  return;
@@ -25,10 +31,7 @@ const ChangeEditor = (props) => {
25
31
  if (activeSaveOperationsCount > 0) {
26
32
  return true;
27
33
  }
28
- if ([...datasetsRef.current.values()].find(x => x.hasInvalidChanges?.())) {
29
- return true;
30
- }
31
- return false;
34
+ return !grid.dataset.isValid() || grid.dataset.hasInvalidChanges();
32
35
  };
33
36
  useEffect(() => {
34
37
  return () => {
@@ -53,15 +56,15 @@ const ChangeEditor = (props) => {
53
56
  })
54
57
  }, hidden: false, children: [jsx("div", { className: styles.recordGrids, children: Object.values(recordChanges).map(recordChange => jsx(ChangeGrid, { onDatasetDestroyed: (dataset) => datasetsRef.current.delete(dataset), onDatasetReady: (dataset) => datasetsRef.current.add(dataset), onIsSaving: (value) => {
55
58
  setActiveSaveOperationsCount(count => value ? count + 1 : count - 1);
56
- }, recordChange: recordChange }, recordChange.record.getRecordId())) }), jsxs(DialogFooter, { children: [jsx(PrimaryButton, { className: styles.saveBtn, disabled: isSaveDisabled(), text: activeSaveOperationsCount > 0 ? grid.labels['saving-saving']() : grid.labels['saving-save-all'](), onClick: async () => {
59
+ }, onRequestRender: () => setTimeout(() => rerender(), 0), recordChange: recordChange }, recordChange.record.getRecordId())) }), jsxs(DialogFooter, { children: [jsx(PrimaryButton, { className: styles.saveBtn, disabled: isSaveDisabled(), text: activeSaveOperationsCount > 0 ? grid.labels['saving-saving']() : grid.labels['saving-save-all'](), onClick: async () => {
57
60
  setActiveSaveOperationsCount(count => count + 1);
58
61
  await Promise.all([...datasetsRef.current.values()].map(dataset => dataset.save?.()));
59
62
  grid.dataset.clearChanges?.();
60
63
  setActiveSaveOperationsCount(count => count - 1);
61
- } }), jsx(DefaultButton, { text: grid.labels['saving-discard-all'](), disabled: activeSaveOperationsCount > 0, onClick: async () => {
64
+ } }), jsx(DefaultButton, { text: grid.labels['saving-discard-all'](), disabled: activeSaveOperationsCount > 0, onClick: async (e) => {
62
65
  if (window.confirm(grid.labels['saving-discard-all-confirmation']())) {
63
66
  grid.dataset.clearChanges?.();
64
- grid.pcfContext.factory.requestRender();
67
+ props.onDismiss(e, shouldRefreshOnDismissRef.current);
65
68
  }
66
69
  } })] })] });
67
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeEditor.js","sources":["../../../../../../../../src/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.tsx"],"sourcesContent":["import { DefaultButton, DialogFooter, IDialogProps, PrimaryButton, useTheme } from \"@fluentui/react\";\nimport { useGridInstance } from \"../../../../hooks/useGridInstance\";\nimport Dialog from \"../../../Dialog\";\nimport { getChangeEditorStyles } from \"./styles\";\nimport { ChangeGrid } from \"./components/ChangeGrid/ChangeGrid\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { IDataset } from \"@talxis/client-libraries\";\n\ninterface IChangeDialogProps extends IDialogProps {\n onDismiss: (ev?: React.MouseEvent<HTMLButtonElement>, shoulRefreshGrid?: boolean) => void;\n}\n\nexport const ChangeEditor = (props: IChangeDialogProps) => {\n const grid = useGridInstance();\n const recordChanges = grid.dataset.getChanges?.() ?? [];\n const labels = grid.labels;\n const [activeSaveOperationsCount, setActiveSaveOperationsCount] = useState(0);\n const styles = getChangeEditorStyles(useTheme());\n const datasetsRef = useRef<Set<IDataset>>(new Set());\n const shouldRefreshOnDismissRef = useRef(false);\n\n const onDismiss = (ev?: React.MouseEvent<HTMLButtonElement>) => {\n //do not close the dialog if we have pending save operations\n if (activeSaveOperationsCount > 0) {\n return;\n }\n props.onDismiss?.(ev, shouldRefreshOnDismissRef.current);\n }\n\n const isSaveDisabled = () => {\n if (activeSaveOperationsCount > 0) {\n return true;\n }\n if ([...datasetsRef.current.values()].find(x => x.hasInvalidChanges?.())) {\n return true;\n }\n return false;\n }\n\n useEffect(() => {\n return () => {\n props.onDismiss?.(undefined, shouldRefreshOnDismissRef.current);\n }\n }, []);\n\n useEffect(() => {\n if(activeSaveOperationsCount > 0) {\n shouldRefreshOnDismissRef.current = true;\n }\n }, [activeSaveOperationsCount])\n return <Dialog\n {...props}\n onDismiss={onDismiss}\n width={1000}\n minWidth={'80%'}\n modalProps={{\n isBlocking: true,\n className: styles.root,\n layerProps: {\n eventBubblingEnabled: true\n }\n }}\n dialogContentProps={{\n showCloseButton: true,\n title: labels[\"saving-changepreview-title\"]({\n numOfChanges: Object.keys(recordChanges).length\n })\n }}\n hidden={false}>\n <div className={styles.recordGrids}>\n {Object.values(recordChanges).map(recordChange => <ChangeGrid\n onDatasetDestroyed={(dataset) => datasetsRef.current.delete(dataset)}\n onDatasetReady={(dataset) => datasetsRef.current.add(dataset)}\n onIsSaving={(value) => {\n setActiveSaveOperationsCount(count => value ? count + 1 : count - 1);\n }}\n key={recordChange.record.getRecordId()}\n recordChange={recordChange} />)}\n </div>\n <DialogFooter>\n <PrimaryButton\n className={styles.saveBtn}\n disabled={isSaveDisabled()}\n text={activeSaveOperationsCount > 0 ? grid.labels['saving-saving']() : grid.labels['saving-save-all']()}\n onClick={async () => {\n setActiveSaveOperationsCount(count => count + 1);\n await Promise.all([...datasetsRef.current.values()].map(dataset => dataset.save?.()));\n grid.dataset.clearChanges?.();\n setActiveSaveOperationsCount(count => count - 1);\n }}\n />\n <DefaultButton\n text={grid.labels['saving-discard-all']()}\n disabled={activeSaveOperationsCount > 0}\n onClick={async () => {\n if (window.confirm(grid.labels['saving-discard-all-confirmation']())) {\n grid.dataset.clearChanges?.();\n grid.pcfContext.factory.requestRender();\n }\n }}\n />\n </DialogFooter>\n </Dialog>\n}"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ChangeEditor.js","sources":["../../../../../../../../src/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.tsx"],"sourcesContent":["import { DefaultButton, DialogFooter, IDialogProps, PrimaryButton, useTheme } from \"@fluentui/react\";\nimport { useGridInstance } from \"../../../../hooks/useGridInstance\";\nimport Dialog from \"../../../Dialog\";\nimport { getChangeEditorStyles } from \"./styles\";\nimport { ChangeGrid } from \"./components/ChangeGrid/ChangeGrid\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { IDataset } from \"@talxis/client-libraries\";\nimport { useRerender } from \"@talxis/react-components\";\n\ninterface IChangeDialogProps extends IDialogProps {\n onDismiss: (ev?: React.MouseEvent<HTMLButtonElement>, shoulRefreshGrid?: boolean) => void;\n}\n\nexport const ChangeEditor = (props: IChangeDialogProps) => {\n const grid = useGridInstance();\n const recordChanges = grid.dataset.getChanges?.() ?? [];\n const labels = grid.labels;\n const [activeSaveOperationsCount, setActiveSaveOperationsCount] = useState(0);\n const styles = getChangeEditorStyles(useTheme());\n const datasetsRef = useRef<Set<IDataset>>(new Set());\n const shouldRefreshOnDismissRef = useRef(false);\n const rerender = useRerender();\n\n const onDismiss = (ev?: React.MouseEvent<HTMLButtonElement>) => {\n //@ts-ignore\n if (ev?.code === 'Escape') {\n return;\n }\n //do not close the dialog if we have pending save operations\n if (activeSaveOperationsCount > 0) {\n return;\n }\n props.onDismiss?.(ev, shouldRefreshOnDismissRef.current);\n }\n\n const isSaveDisabled = () => {\n if (activeSaveOperationsCount > 0) {\n return true;\n }\n return !grid.dataset.isValid() || grid.dataset.hasInvalidChanges();\n }\n\n useEffect(() => {\n return () => {\n props.onDismiss?.(undefined, shouldRefreshOnDismissRef.current);\n }\n }, []);\n\n useEffect(() => {\n if (activeSaveOperationsCount > 0) {\n shouldRefreshOnDismissRef.current = true;\n }\n }, [activeSaveOperationsCount])\n return <Dialog\n {...props}\n onDismiss={onDismiss}\n width={1000}\n minWidth={'80%'}\n modalProps={{\n isBlocking: true,\n className: styles.root,\n layerProps: {\n eventBubblingEnabled: true\n }\n }}\n dialogContentProps={{\n showCloseButton: true,\n title: labels[\"saving-changepreview-title\"]({\n numOfChanges: Object.keys(recordChanges).length\n })\n }}\n hidden={false}>\n <div className={styles.recordGrids}>\n {Object.values(recordChanges).map(recordChange => <ChangeGrid\n onDatasetDestroyed={(dataset) => datasetsRef.current.delete(dataset)}\n onDatasetReady={(dataset) => datasetsRef.current.add(dataset)}\n onIsSaving={(value) => {\n setActiveSaveOperationsCount(count => value ? count + 1 : count - 1);\n }}\n onRequestRender={() => setTimeout(() => rerender(), 0)}\n key={recordChange.record.getRecordId()}\n recordChange={recordChange} />)}\n </div>\n <DialogFooter>\n <PrimaryButton\n className={styles.saveBtn}\n disabled={isSaveDisabled()}\n text={activeSaveOperationsCount > 0 ? grid.labels['saving-saving']() : grid.labels['saving-save-all']()}\n onClick={async () => {\n setActiveSaveOperationsCount(count => count + 1);\n await Promise.all([...datasetsRef.current.values()].map(dataset => dataset.save?.()));\n grid.dataset.clearChanges?.();\n setActiveSaveOperationsCount(count => count - 1);\n }}\n />\n <DefaultButton\n text={grid.labels['saving-discard-all']()}\n disabled={activeSaveOperationsCount > 0}\n onClick={async (e) => {\n if (window.confirm(grid.labels['saving-discard-all-confirmation']())) {\n grid.dataset.clearChanges?.();\n props.onDismiss(e as any, shouldRefreshOnDismissRef.current);\n }\n }}\n />\n </DialogFooter>\n </Dialog>\n}"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -5,6 +5,7 @@ interface IChangeGrid {
5
5
  onDatasetReady: (dataset: IDataset) => void;
6
6
  onDatasetDestroyed: (dataset: IDataset) => void;
7
7
  onIsSaving: (value: boolean) => void;
8
+ onRequestRender: () => void;
8
9
  }
9
10
  export declare const ChangeGrid: (props: IChangeGrid) => JSX.Element;
10
11
  export {};
@@ -1,9 +1,10 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { useRef, useMemo, useEffect } from 'react';
2
+ import React__default, { useRef, useMemo, useEffect } from 'react';
3
3
  import { useGridInstance } from '../../../../../../hooks/useGridInstance.js';
4
4
  import { DataTypes, MemoryDataProvider, Dataset } from '@talxis/client-libraries';
5
5
  import { useTheme } from '@fluentui/react';
6
6
  import { getChangeGridStyles } from './styles.js';
7
+ import { AgGridContext } from '../../../../../AgGrid/context.js';
7
8
  import { DatasetControl } from '../../../../../../../../DatasetControl/DatasetControl.js';
8
9
 
9
10
  const ChangeGrid = (props) => {
@@ -14,6 +15,7 @@ const ChangeGrid = (props) => {
14
15
  const changedColumns = fieldChangesRef.current.map((change) => {
15
16
  return grid.dataset.columns.find((x) => change.columnName === x.name);
16
17
  });
18
+ const agGridContext = React__default.useContext(AgGridContext);
17
19
  const recordPrimaryName = (() => {
18
20
  let result;
19
21
  const primaryColumn = grid.dataset.columns.find((col) => col.isPrimary);
@@ -34,7 +36,7 @@ const ChangeGrid = (props) => {
34
36
  props.onDatasetReady(dataset);
35
37
  return () => {
36
38
  props.onDatasetDestroyed(dataset);
37
- grid.pcfContext.factory.requestRender();
39
+ agGridContext.rerender();
38
40
  };
39
41
  }, []);
40
42
  const getColumns = () => {
@@ -75,13 +77,31 @@ const ChangeGrid = (props) => {
75
77
  PrimaryIdAttribute: "id__virtual"
76
78
  });
77
79
  const dataset = new Dataset(memoryProvider);
80
+ dataset.isValid = () => {
81
+ return baseRecord.isValid();
82
+ };
78
83
  grid.dataset.linking.getLinkedEntities().map(x => dataset.linking.addLinkedEntity(x));
79
84
  dataset.addEventListener('onRecordLoaded', (record) => {
80
85
  const recordId = record.getRecordId();
86
+ record.expressions.ui.setCustomFormattingExpression('valueDesc__virtual', (cellTheme) => {
87
+ return {
88
+ themeOverride: {
89
+ fonts: {
90
+ medium: {
91
+ fontWeight: 600
92
+ }
93
+ }
94
+ }
95
+ };
96
+ });
81
97
  changedColumns.map(col => {
82
98
  const change = fieldChangesRef.current.find(x => x.columnName === col.name);
83
99
  record.expressions?.setCurrencySymbolExpression(col.name, () => baseRecord.getCurrencySymbol?.(col.name) ?? "");
84
- record.expressions?.ui.setCellEditorParametersExpression(col.name, (parameters) => baseRecord.ui.getCellEditorParameters(col.name, parameters));
100
+ //we need to store the previous values somewhere, in changes?
101
+ //record.expressions?.ui.setCustomFormattingExpression(col.name, (cellTheme) => baseRecord.getColumnInfo(col.name).ui.getCustomFormatting(cellTheme));
102
+ record.expressions?.ui.setControlParametersExpression(col.name, (parameters) => baseRecord.getColumnInfo(col.name).ui.getControlParameters(parameters));
103
+ record.expressions?.ui.setCustomControlsExpression(col.name, (defaultCustomControls) => baseRecord.getColumnInfo(col.name).ui.getCustomControls(defaultCustomControls));
104
+ record.expressions?.ui.setCustomControlComponentExpression(col.name, () => baseRecord.getColumnInfo(col.name).ui.getCustomControlComponent());
85
105
  if (recordId === 'new') {
86
106
  record.expressions?.setValueExpression?.(col.name, () => {
87
107
  //this happens if we have removed a change
@@ -110,7 +130,6 @@ const ChangeGrid = (props) => {
110
130
  () => {
111
131
  baseRecord.clearChanges?.(col.name);
112
132
  record.setValue(col.name, baseRecord.getValue(col.name));
113
- grid.pcfContext.factory.requestRender();
114
133
  },
115
134
  ],
116
135
  },
@@ -134,18 +153,18 @@ const ChangeGrid = (props) => {
134
153
  });
135
154
  dataset.addEventListener('onRecordColumnValueChanged', (record, columnName) => {
136
155
  baseRecord.setValue(columnName, record.getValue(columnName));
137
- grid.pcfContext.factory.requestRender();
156
+ props.onRequestRender();
138
157
  });
139
158
  dataset.addEventListener('onChangesCleared', () => {
140
159
  baseRecord.clearChanges?.();
141
- grid.pcfContext.factory.requestRender();
160
+ props.onRequestRender();
142
161
  });
143
162
  dataset.addEventListener('onRecordSave', async () => {
144
163
  props.onIsSaving(true);
145
164
  await baseRecord.save();
146
165
  baseRecord.clearChanges?.();
147
166
  props.onIsSaving(false);
148
- grid.pcfContext.factory.requestRender();
167
+ props.onRequestRender();
149
168
  });
150
169
  return dataset;
151
170
  };