@talxis/base-controls 1.2501.10 → 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 (294) 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/DateTime/translations.d.ts +1 -1
  22. package/dist/components/Decimal/Decimal.js +5 -1
  23. package/dist/components/Decimal/Decimal.js.map +1 -1
  24. package/dist/components/Duration/Duration.js +49 -26
  25. package/dist/components/Duration/Duration.js.map +1 -1
  26. package/dist/components/Duration/durationOptions.d.ts +1 -1
  27. package/dist/components/Grid/Grid.js +1 -1
  28. package/dist/components/Grid/Grid.js.map +1 -1
  29. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +78 -174
  30. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
  31. package/dist/components/Grid/core/components/AgGrid/context.d.ts +3 -0
  32. package/dist/components/Grid/core/components/AgGrid/context.js +6 -0
  33. package/dist/components/Grid/core/components/AgGrid/context.js.map +1 -0
  34. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +41 -6
  35. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +235 -49
  36. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
  37. package/dist/components/Grid/core/components/AgGrid/model/Comparator.d.ts +9 -0
  38. package/dist/components/Grid/core/components/AgGrid/model/Comparator.js +86 -0
  39. package/dist/components/Grid/core/components/AgGrid/model/Comparator.js.map +1 -0
  40. package/dist/components/Grid/core/components/AgGrid/styles.d.ts +28 -32
  41. package/dist/components/Grid/core/components/AgGrid/styles.js +31 -35
  42. package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -1
  43. package/dist/components/Grid/core/components/Cell/Cell.d.ts +13 -0
  44. package/dist/components/Grid/core/components/Cell/Cell.js +145 -0
  45. package/dist/components/Grid/core/components/Cell/Cell.js.map +1 -0
  46. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.d.ts +3 -0
  47. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js +212 -0
  48. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js.map +1 -0
  49. package/dist/components/Grid/core/components/Cell/CellContent/styles.d.ts +33 -0
  50. package/dist/components/Grid/core/components/Cell/CellContent/styles.js +39 -0
  51. package/dist/components/Grid/core/components/Cell/CellContent/styles.js.map +1 -0
  52. package/dist/components/Grid/core/components/Cell/Commands/Commands.js.map +1 -1
  53. package/dist/components/Grid/core/components/Cell/Notifications/Notifications.d.ts +12 -0
  54. package/dist/components/Grid/core/components/Cell/Notifications/Notifications.js +112 -0
  55. package/dist/components/Grid/core/components/Cell/Notifications/Notifications.js.map +1 -0
  56. package/dist/components/Grid/core/components/Cell/Notifications/styles.d.ts +39 -0
  57. package/dist/components/Grid/core/components/Cell/Notifications/styles.js +46 -0
  58. package/dist/components/Grid/core/components/Cell/Notifications/styles.js.map +1 -0
  59. package/dist/components/Grid/core/components/Cell/styles.d.ts +40 -0
  60. package/dist/components/Grid/core/components/Cell/styles.js +59 -0
  61. package/dist/components/Grid/core/components/Cell/styles.js.map +1 -0
  62. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +3 -2
  63. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -1
  64. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +31 -13
  65. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js.map +1 -1
  66. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.d.ts +3 -2
  67. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js +5 -4
  68. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js.map +1 -1
  69. package/dist/components/Grid/core/components/ColumnHeader/styles.d.ts +3 -1
  70. package/dist/components/Grid/core/components/ColumnHeader/styles.js +4 -2
  71. package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +1 -1
  72. package/dist/components/Grid/core/components/Save/Save.js +5 -6
  73. package/dist/components/Grid/core/components/Save/Save.js.map +1 -1
  74. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +10 -7
  75. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -1
  76. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.d.ts +1 -0
  77. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +26 -7
  78. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +1 -1
  79. package/dist/components/Grid/core/controllers/useGridController.js +8 -2
  80. package/dist/components/Grid/core/controllers/useGridController.js.map +1 -1
  81. package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +2 -0
  82. package/dist/components/Grid/core/model/Grid.d.ts +17 -8
  83. package/dist/components/Grid/core/model/Grid.js +229 -45
  84. package/dist/components/Grid/core/model/Grid.js.map +1 -1
  85. package/dist/components/Grid/core/model/GridDependency.d.ts +1 -1
  86. package/dist/components/Grid/core/model/Metadata.d.ts +3 -2
  87. package/dist/components/Grid/core/services/KeyListener.d.ts +2 -0
  88. package/dist/components/Grid/core/services/KeyListener.js +6 -3
  89. package/dist/components/Grid/core/services/KeyListener.js.map +1 -1
  90. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +3 -3
  91. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +1 -1
  92. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +19 -7
  93. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/Component.d.ts +2 -2
  94. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/Component.js +9 -9
  95. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.js.map +1 -0
  96. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/controller/useComponentController.d.ts +2 -2
  97. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/controller/useComponentController.js +1 -1
  98. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.js.map +1 -0
  99. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/model/Component.d.ts +2 -2
  100. package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/model/Component.js +15 -19
  101. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.js.map +1 -0
  102. package/dist/components/Grid/filtering/model/Condition.d.ts +1 -1
  103. package/dist/components/Grid/filtering/model/Condition.js +1 -1
  104. package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
  105. package/dist/components/Grid/interfaces.d.ts +1 -1
  106. package/dist/components/Grid/selection/model/Selection.d.ts +3 -4
  107. package/dist/components/Grid/selection/model/Selection.js +8 -26
  108. package/dist/components/Grid/selection/model/Selection.js.map +1 -1
  109. package/dist/components/Grid/sorting/Sorting.d.ts +1 -1
  110. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +1 -1
  111. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -1
  112. package/dist/components/Grid/sorting/controllers/useColumnSortingController.d.ts +1 -1
  113. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.d.ts +2 -0
  114. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js +11 -0
  115. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js.map +1 -0
  116. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.d.ts +1 -0
  117. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js +2 -0
  118. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js.map +1 -0
  119. package/dist/components/GridCellRenderer/GridCellRenderer.d.ts +3 -0
  120. package/dist/components/GridCellRenderer/GridCellRenderer.js +252 -0
  121. package/dist/components/GridCellRenderer/GridCellRenderer.js.map +1 -0
  122. package/dist/components/GridCellRenderer/OptionSet/OptionSet.d.ts +5 -0
  123. package/dist/components/GridCellRenderer/OptionSet/OptionSet.js +69 -0
  124. package/dist/components/GridCellRenderer/OptionSet/OptionSet.js.map +1 -0
  125. package/dist/components/GridCellRenderer/OptionSet/index.d.ts +1 -0
  126. package/dist/components/GridCellRenderer/OptionSet/index.js +2 -0
  127. package/dist/components/GridCellRenderer/OptionSet/index.js.map +1 -0
  128. package/dist/components/{Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet → GridCellRenderer/OptionSet}/styles.d.ts +10 -12
  129. package/dist/components/GridCellRenderer/OptionSet/styles.js +29 -0
  130. package/dist/components/GridCellRenderer/OptionSet/styles.js.map +1 -0
  131. package/dist/components/GridCellRenderer/index.d.ts +1 -0
  132. package/dist/components/GridCellRenderer/index.js +2 -0
  133. package/dist/components/GridCellRenderer/index.js.map +1 -0
  134. package/dist/components/GridCellRenderer/interfaces.d.ts +53 -0
  135. package/dist/components/GridCellRenderer/styles.d.ts +72 -0
  136. package/dist/components/GridCellRenderer/styles.js +105 -0
  137. package/dist/components/GridCellRenderer/styles.js.map +1 -0
  138. package/dist/components/GridCellRenderer/translations.d.ts +6 -0
  139. package/dist/components/GridCellRenderer/translations.js +11 -0
  140. package/dist/components/GridCellRenderer/translations.js.map +1 -0
  141. package/dist/components/GridCellRenderer/useComponentProps.d.ts +6 -0
  142. package/dist/components/GridCellRenderer/useComponentProps.js +10 -0
  143. package/dist/components/GridCellRenderer/useComponentProps.js.map +1 -0
  144. package/dist/components/Lookup/Lookup.js +8 -3
  145. package/dist/components/Lookup/Lookup.js.map +1 -1
  146. package/dist/components/Lookup/hooks/useFetchXml.d.ts +1 -1
  147. package/dist/components/Lookup/hooks/useLookup.d.ts +1 -1
  148. package/dist/components/Lookup/interfaces.d.ts +1 -1
  149. package/dist/components/Lookup/styles.d.ts +19 -7
  150. package/dist/components/Lookup/styles.js +22 -8
  151. package/dist/components/Lookup/styles.js.map +1 -1
  152. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +51 -28
  153. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -1
  154. package/dist/components/NestedControlRenderer/NestedControl.d.ts +86 -0
  155. package/dist/components/NestedControlRenderer/NestedControl.js +456 -0
  156. package/dist/components/NestedControlRenderer/NestedControl.js.map +1 -0
  157. package/dist/components/NestedControlRenderer/NestedControlError.d.ts +4 -0
  158. package/dist/components/NestedControlRenderer/NestedControlError.js +13 -0
  159. package/dist/components/NestedControlRenderer/NestedControlError.js.map +1 -0
  160. package/dist/components/NestedControlRenderer/NestedControlRenderer.d.ts +3 -0
  161. package/dist/components/NestedControlRenderer/NestedControlRenderer.js +194 -0
  162. package/dist/components/NestedControlRenderer/NestedControlRenderer.js.map +1 -0
  163. package/dist/components/NestedControlRenderer/index.d.ts +1 -0
  164. package/dist/components/NestedControlRenderer/index.js +2 -0
  165. package/dist/components/NestedControlRenderer/index.js.map +1 -0
  166. package/dist/components/NestedControlRenderer/interfaces.d.ts +118 -0
  167. package/dist/components/NestedControlRenderer/manifest/Control.d.ts +16 -0
  168. package/dist/components/NestedControlRenderer/manifest/Control.js +40 -0
  169. package/dist/components/NestedControlRenderer/manifest/Control.js.map +1 -0
  170. package/dist/components/NestedControlRenderer/manifest/Manifest.d.ts +5 -0
  171. package/dist/components/NestedControlRenderer/manifest/Manifest.js +12 -0
  172. package/dist/components/NestedControlRenderer/manifest/Manifest.js.map +1 -0
  173. package/dist/components/NestedControlRenderer/manifest/TypeGroup.d.ts +6 -0
  174. package/dist/components/NestedControlRenderer/manifest/TypeGroup.js +13 -0
  175. package/dist/components/NestedControlRenderer/manifest/TypeGroup.js.map +1 -0
  176. package/dist/components/NestedControlRenderer/manifest/index.d.ts +1 -0
  177. package/dist/components/NestedControlRenderer/manifest/index.js +2 -0
  178. package/dist/components/NestedControlRenderer/manifest/index.js.map +1 -0
  179. package/dist/components/NestedControlRenderer/manifest/property/Property.d.ts +16 -0
  180. package/dist/components/NestedControlRenderer/manifest/property/Property.js +34 -0
  181. package/dist/components/NestedControlRenderer/manifest/property/Property.js.map +1 -0
  182. package/dist/components/NestedControlRenderer/manifest/property/Value.d.ts +8 -0
  183. package/dist/components/NestedControlRenderer/manifest/property/Value.js +12 -0
  184. package/dist/components/NestedControlRenderer/manifest/property/Value.js.map +1 -0
  185. package/dist/components/NestedControlRenderer/properties/DateProperty.d.ts +5 -0
  186. package/dist/components/NestedControlRenderer/properties/DateProperty.js +22 -0
  187. package/dist/components/NestedControlRenderer/properties/DateProperty.js.map +1 -0
  188. package/dist/components/NestedControlRenderer/properties/FileProperty.d.ts +5 -0
  189. package/dist/components/NestedControlRenderer/properties/FileProperty.js +16 -0
  190. package/dist/components/NestedControlRenderer/properties/FileProperty.js.map +1 -0
  191. package/dist/components/NestedControlRenderer/properties/LookupProperty.d.ts +6 -0
  192. package/dist/components/NestedControlRenderer/properties/LookupProperty.js +36 -0
  193. package/dist/components/NestedControlRenderer/properties/LookupProperty.js.map +1 -0
  194. package/dist/components/NestedControlRenderer/properties/NumberProperty.d.ts +5 -0
  195. package/dist/components/NestedControlRenderer/properties/NumberProperty.js +17 -0
  196. package/dist/components/NestedControlRenderer/properties/NumberProperty.js.map +1 -0
  197. package/dist/components/NestedControlRenderer/properties/OptionSetProperty.d.ts +5 -0
  198. package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js +23 -0
  199. package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js.map +1 -0
  200. package/dist/components/NestedControlRenderer/properties/Property.d.ts +16 -0
  201. package/dist/components/NestedControlRenderer/properties/Property.js +41 -0
  202. package/dist/components/NestedControlRenderer/properties/Property.js.map +1 -0
  203. package/dist/components/NestedControlRenderer/properties/TextProperty.d.ts +5 -0
  204. package/dist/components/NestedControlRenderer/properties/TextProperty.js +15 -0
  205. package/dist/components/NestedControlRenderer/properties/TextProperty.js.map +1 -0
  206. package/dist/components/NestedControlRenderer/styles.d.ts +14 -0
  207. package/dist/components/NestedControlRenderer/styles.js +21 -0
  208. package/dist/components/NestedControlRenderer/styles.js.map +1 -0
  209. package/dist/components/NestedControlRenderer/translations.d.ts +14 -0
  210. package/dist/components/NestedControlRenderer/translations.js +19 -0
  211. package/dist/components/NestedControlRenderer/translations.js.map +1 -0
  212. package/dist/components/OptionSet/OptionSet.js +3 -3
  213. package/dist/components/OptionSet/OptionSet.js.map +1 -1
  214. package/dist/components/OptionSet/useComboBoxTheme.js +17 -17
  215. package/dist/components/OptionSet/useComboBoxTheme.js.map +1 -1
  216. package/dist/components/TextField/TextField.js.map +1 -1
  217. package/dist/components/TextField/interfaces.d.ts +2 -2
  218. package/dist/components/TwoOptions/TwoOptions.js +2 -1
  219. package/dist/components/TwoOptions/TwoOptions.js.map +1 -1
  220. package/dist/components/index.d.ts +13 -0
  221. package/dist/components/index.js +15 -0
  222. package/dist/components/index.js.map +1 -0
  223. package/dist/hooks/index.d.ts +1 -0
  224. package/dist/hooks/index.js +1 -0
  225. package/dist/hooks/index.js.map +1 -1
  226. package/dist/hooks/useControl.d.ts +1 -7
  227. package/dist/hooks/useControl.js +12 -40
  228. package/dist/hooks/useControl.js.map +1 -1
  229. package/dist/hooks/useControlLabels.d.ts +14 -0
  230. package/dist/hooks/useControlLabels.js +47 -0
  231. package/dist/hooks/useControlLabels.js.map +1 -0
  232. package/dist/hooks/useControlSizing.d.ts +1 -1
  233. package/dist/hooks/useInputBasedControl.d.ts +2 -1
  234. package/dist/hooks/useInputBasedControl.js +3 -5
  235. package/dist/hooks/useInputBasedControl.js.map +1 -1
  236. package/dist/hooks/usePrevious.d.ts +1 -0
  237. package/dist/index.d.ts +453 -141
  238. package/dist/index.js +7 -2
  239. package/dist/index.js.map +1 -1
  240. package/dist/interfaces/context.d.ts +3 -2
  241. package/dist/interfaces/index.d.ts +1 -1
  242. package/dist/interfaces/property.d.ts +6 -1
  243. package/dist/utils/BaseControls.d.ts +16 -0
  244. package/dist/utils/BaseControls.js +82 -0
  245. package/dist/utils/BaseControls.js.map +1 -0
  246. package/dist/utils/index.d.ts +1 -0
  247. package/dist/utils/index.js +2 -0
  248. package/dist/utils/index.js.map +1 -1
  249. package/dist/utils/theme/ControlTheme.d.ts +2 -2
  250. package/dist/utils/theme/ControlTheme.js +1 -1
  251. package/dist/utils/theme/ControlTheme.js.map +1 -1
  252. package/dist/utils/theme/components/ThemeWrapper.d.ts +9 -0
  253. package/dist/utils/theme/components/ThemeWrapper.js +11 -0
  254. package/dist/utils/theme/components/ThemeWrapper.js.map +1 -0
  255. package/dist/utils/theme/components/index.d.ts +1 -0
  256. package/dist/utils/theme/components/index.js +2 -0
  257. package/dist/utils/theme/components/index.js.map +1 -0
  258. package/dist/utils/theme/hooks/useControlTheme.d.ts +1 -1
  259. package/dist/utils/theme/hooks/useControlTheme.js.map +1 -1
  260. package/dist/utils/theme/index.d.ts +1 -0
  261. package/dist/utils/theme/index.js +1 -0
  262. package/dist/utils/theme/index.js.map +1 -1
  263. package/package.json +3 -3
  264. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.d.ts +0 -10
  265. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +0 -82
  266. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +0 -1
  267. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.d.ts +0 -11
  268. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js +0 -93
  269. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js.map +0 -1
  270. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.d.ts +0 -36
  271. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js +0 -42
  272. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js.map +0 -1
  273. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.d.ts +0 -11
  274. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +0 -221
  275. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +0 -1
  276. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.d.ts +0 -10
  277. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js +0 -49
  278. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js.map +0 -1
  279. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js +0 -27
  280. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js.map +0 -1
  281. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.d.ts +0 -99
  282. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +0 -123
  283. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +0 -1
  284. package/dist/components/Grid/core/components/Component/Component.js.map +0 -1
  285. package/dist/components/Grid/core/components/Component/controller/useComponentController.js.map +0 -1
  286. package/dist/components/Grid/core/components/Component/model/Component.js.map +0 -1
  287. package/dist/components/Grid/core/model/Metadata.js +0 -26
  288. package/dist/components/Grid/core/model/Metadata.js.map +0 -1
  289. package/dist/components/Grid/selection/controllers/useSelectionController.d.ts +0 -11
  290. package/dist/components/Grid/selection/controllers/useSelectionController.js +0 -21
  291. package/dist/components/Grid/selection/controllers/useSelectionController.js.map +0 -1
  292. package/dist/hooks/useRerender.d.ts +0 -1
  293. package/dist/hooks/useRerender.js +0 -9
  294. package/dist/hooks/useRerender.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeGrid.js","sources":["../../../../../../../../../../src/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport { useGridInstance } from \"../../../../../../hooks/useGridInstance\";\nimport {\n Dataset,\n DataTypes,\n IColumn,\n IDataset,\n IRecordChange,\n MemoryDataProvider,\n} from \"@talxis/client-libraries\";\nimport { DatasetControl } from \"../../../../../../../../DatasetControl\";\nimport { useTheme } from \"@fluentui/react\";\nimport { getChangeGridStyles } from \"./styles\";\n\ninterface IChangeGrid {\n recordChange: IRecordChange;\n onDatasetReady: (dataset: IDataset) => void;\n onDatasetDestroyed: (dataset: IDataset) => void;\n onIsSaving: (value: boolean) => void;\n}\n\nexport const ChangeGrid = (props: IChangeGrid) => {\n const fieldChangesRef = useRef(props.recordChange.columns);\n fieldChangesRef.current = props.recordChange.columns;\n const baseRecord = props.recordChange.record;\n const grid = useGridInstance();\n const changedColumns = fieldChangesRef.current.map((change) => {\n return grid.dataset.columns.find((x) => change.columnName === x.name)!;\n });\n\n const recordPrimaryName = (() => {\n let result;\n const primaryColumn = grid.dataset.columns.find((col) => col.isPrimary);\n if (primaryColumn) {\n result = baseRecord.getFormattedValue(primaryColumn.name);\n } else {\n const firstTextColumn = grid.dataset.columns.find(\n (col) => col.dataType === DataTypes.SingleLineText\n );\n if (firstTextColumn) {\n result = baseRecord.getFormattedValue(firstTextColumn.name);\n }\n }\n return result ?? grid.labels[\"no-name\"]();\n })();\n\n const theme = useTheme();\n const styles = useMemo(() => getChangeGridStyles(theme, recordPrimaryName), [theme, recordPrimaryName]);\n\n useEffect(() => {\n props.onDatasetReady(dataset);\n return () => {\n props.onDatasetDestroyed(dataset);\n grid.pcfContext.factory.requestRender()\n }\n }, []);\n\n const getColumns = (): IColumn[] => {\n const virtualColumns: IColumn[] = [\n {\n name: \"id__virtual\",\n alias: \"id__virtual\",\n visualSizeFactor: 0,\n dataType: DataTypes.SingleLineText,\n displayName: \"\",\n order: 0,\n isHidden: true,\n },\n {\n name: \"valueDesc__virtual\",\n alias: \"valueDesc__virtual\",\n visualSizeFactor: 150,\n dataType: DataTypes.SingleLineText,\n displayName: \"\",\n order: 1,\n },\n ];\n return [...virtualColumns, ...changedColumns];\n };\n\n const getDataset = () => {\n const memoryProvider = new MemoryDataProvider(\n [\n {\n id__virtual: \"original\",\n 'valueDesc__virtual': grid.labels[\"original-value\"](),\n },\n {\n id__virtual: \"new\",\n 'valueDesc__virtual': grid.labels[\"new-value\"](),\n },\n ]\n );\n memoryProvider.setColumns(getColumns());\n memoryProvider.setMetadata({\n PrimaryIdAttribute: \"id__virtual\"\n })\n const dataset = new Dataset(memoryProvider);\n grid.dataset.linking.getLinkedEntities().map(x => dataset.linking.addLinkedEntity(x))\n\n dataset.addEventListener('onRecordLoaded', (record) => {\n const recordId = record.getRecordId();\n changedColumns.map(col => {\n const change = fieldChangesRef.current.find(x => x.columnName === col.name);\n record.expressions?.setCurrencySymbolExpression(col.name, () => baseRecord.getCurrencySymbol?.(col.name) ?? \"\");\n record.expressions?.ui.setCellEditorParametersExpression(col.name, (parameters) => baseRecord.ui.getCellEditorParameters(col.name, parameters))\n if (recordId === 'new') {\n record.expressions?.setValueExpression?.(col.name, () => {\n //this happens if we have removed a change\n if (!change) {\n return baseRecord.getValue(col.name);\n }\n return change.originalValue;\n })\n if(!change) {\n record.setValue(col.name, record.getValue(col.name))\n }\n else {\n record.setValue(col.name, change.currentValue);\n }\n record.expressions?.ui.setNotificationsExpression?.(col.name, () => {\n return [\n {\n uniqueId: \"clear\",\n title: grid.labels[\"saving-discard\"](),\n iconName: \"EraseTool\",\n compact: true,\n messages: [],\n actions: [\n {\n actions: [\n () => {\n baseRecord.clearChanges?.(col.name);\n record.setValue(col.name, baseRecord.getValue(col.name))\n grid.pcfContext.factory.requestRender();\n },\n ],\n },\n ],\n }\n ]\n })\n record.expressions?.setValidationExpression?.(col.name, () => baseRecord.getColumnInfo(col.name))\n }\n else if (recordId === 'original') {\n record.expressions?.setDisabledExpression?.(col.name, () => true);\n record.expressions?.setValueExpression?.(col.name, () => {\n //this happens if we have removed a change\n if (!change) {\n return baseRecord.getValue(col.name);\n }\n return change.originalValue;\n })\n }\n });\n })\n\n dataset.addEventListener('onRecordColumnValueChanged', (record, columnName) => {\n baseRecord.setValue(columnName, record.getValue(columnName)); \n grid.pcfContext.factory.requestRender(); \n })\n dataset.addEventListener('onChangesCleared', () => {\n baseRecord.clearChanges?.();\n grid.pcfContext.factory.requestRender();\n })\n dataset.addEventListener('onRecordSave', async () => {\n props.onIsSaving(true);\n await baseRecord.save();\n baseRecord.clearChanges?.();\n props.onIsSaving(false);\n grid.pcfContext.factory.requestRender();\n })\n return dataset;\n };\n const dataset = useMemo(() => getDataset(), []);\n return (\n <div className={styles.root}>\n <DatasetControl\n context={{\n ...grid.pcfContext,\n parameters: {\n ...grid.pcfContext.parameters,\n Grid: dataset,\n },\n }}\n parameters={{\n Grid: dataset,\n EnablePagination: {\n raw: false,\n },\n EnableFiltering: {\n raw: false,\n },\n EnableEditing: {\n raw: true,\n },\n EnableNavigation: {\n raw: false,\n },\n EnableOptionSetColors: grid.parameters.EnableOptionSetColors,\n EnableSorting: {\n raw: false,\n },\n EnableChangeEditor: {\n raw: false\n },\n SelectableRows: {\n raw: \"none\",\n },\n }}\n />\n </div>\n );\n};\n"],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ChangeGrid.js","sources":["../../../../../../../../../../src/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport { useGridInstance } from \"../../../../../../hooks/useGridInstance\";\nimport {\n Dataset,\n DataTypes,\n IColumn,\n IDataset,\n IRecordChange,\n MemoryDataProvider,\n} from \"@talxis/client-libraries\";\nimport { DatasetControl } from \"../../../../../../../../DatasetControl\";\nimport { useTheme } from \"@fluentui/react\";\nimport { getChangeGridStyles } from \"./styles\";\nimport React from \"react\";\nimport { AgGridContext } from \"../../../../../AgGrid/context\";\n\ninterface IChangeGrid {\n recordChange: IRecordChange;\n onDatasetReady: (dataset: IDataset) => void;\n onDatasetDestroyed: (dataset: IDataset) => void;\n onIsSaving: (value: boolean) => void;\n onRequestRender: () => void;\n}\n\nexport const ChangeGrid = (props: IChangeGrid) => {\n const fieldChangesRef = useRef(props.recordChange.columns);\n fieldChangesRef.current = props.recordChange.columns;\n const baseRecord = props.recordChange.record;\n const grid = useGridInstance();\n const changedColumns = fieldChangesRef.current.map((change) => {\n return grid.dataset.columns.find((x) => change.columnName === x.name)!;\n });\n const agGridContext = React.useContext(AgGridContext);\n\n const recordPrimaryName = (() => {\n let result;\n const primaryColumn = grid.dataset.columns.find((col) => col.isPrimary);\n if (primaryColumn) {\n result = baseRecord.getFormattedValue(primaryColumn.name);\n } else {\n const firstTextColumn = grid.dataset.columns.find(\n (col) => col.dataType === DataTypes.SingleLineText\n );\n if (firstTextColumn) {\n result = baseRecord.getFormattedValue(firstTextColumn.name);\n }\n }\n return result ?? grid.labels[\"no-name\"]();\n })();\n\n const theme = useTheme();\n const styles = useMemo(() => getChangeGridStyles(theme, recordPrimaryName), [theme, recordPrimaryName]);\n\n useEffect(() => {\n props.onDatasetReady(dataset);\n return () => {\n props.onDatasetDestroyed(dataset);\n agGridContext.rerender();\n }\n }, []);\n\n const getColumns = (): IColumn[] => {\n const virtualColumns: IColumn[] = [\n {\n name: \"id__virtual\",\n alias: \"id__virtual\",\n visualSizeFactor: 0,\n dataType: DataTypes.SingleLineText,\n displayName: \"\",\n order: 0,\n isHidden: true,\n },\n {\n name: \"valueDesc__virtual\",\n alias: \"valueDesc__virtual\",\n visualSizeFactor: 150,\n dataType: DataTypes.SingleLineText,\n displayName: \"\",\n order: 1,\n },\n ];\n return [...virtualColumns, ...changedColumns];\n };\n\n const getDataset = () => {\n const memoryProvider = new MemoryDataProvider(\n [\n {\n id__virtual: \"original\",\n 'valueDesc__virtual': grid.labels[\"original-value\"](),\n },\n {\n id__virtual: \"new\",\n 'valueDesc__virtual': grid.labels[\"new-value\"](),\n },\n ]\n );\n memoryProvider.setColumns(getColumns());\n memoryProvider.setMetadata({\n PrimaryIdAttribute: \"id__virtual\"\n })\n const dataset = new Dataset(memoryProvider);\n dataset.isValid = () => {\n return baseRecord.isValid()\n }\n grid.dataset.linking.getLinkedEntities().map(x => dataset.linking.addLinkedEntity(x))\n\n dataset.addEventListener('onRecordLoaded', (record) => {\n const recordId = record.getRecordId();\n record.expressions.ui.setCustomFormattingExpression('valueDesc__virtual', (cellTheme) => {\n return {\n themeOverride: {\n fonts: {\n medium: {\n fontWeight: 600\n }\n }\n }\n }\n })\n changedColumns.map(col => {\n const change = fieldChangesRef.current.find(x => x.columnName === col.name);\n record.expressions?.setCurrencySymbolExpression(col.name, () => baseRecord.getCurrencySymbol?.(col.name) ?? \"\");\n //we need to store the previous values somewhere, in changes?\n //record.expressions?.ui.setCustomFormattingExpression(col.name, (cellTheme) => baseRecord.getColumnInfo(col.name).ui.getCustomFormatting(cellTheme));\n record.expressions?.ui.setControlParametersExpression(col.name, (parameters) => baseRecord.getColumnInfo(col.name).ui.getControlParameters(parameters));\n record.expressions?.ui.setCustomControlsExpression(col.name, (defaultCustomControls) => baseRecord.getColumnInfo(col.name).ui.getCustomControls(defaultCustomControls));\n record.expressions?.ui.setCustomControlComponentExpression(col.name, () => baseRecord.getColumnInfo(col.name).ui.getCustomControlComponent())\n if (recordId === 'new') {\n record.expressions?.setValueExpression?.(col.name, () => {\n //this happens if we have removed a change\n if (!change) {\n return baseRecord.getValue(col.name);\n }\n return change.originalValue;\n })\n if(!change) {\n record.setValue(col.name, record.getValue(col.name))\n }\n else {\n record.setValue(col.name, change.currentValue);\n }\n record.expressions?.ui.setNotificationsExpression?.(col.name, () => {\n return [\n {\n uniqueId: \"clear\",\n title: grid.labels[\"saving-discard\"](),\n iconName: \"EraseTool\",\n compact: true,\n messages: [],\n actions: [\n {\n actions: [\n () => {\n baseRecord.clearChanges?.(col.name);\n record.setValue(col.name, baseRecord.getValue(col.name))\n },\n ],\n },\n ],\n }\n ]\n })\n record.expressions?.setValidationExpression?.(col.name, () => baseRecord.getColumnInfo(col.name))\n }\n else if (recordId === 'original') {\n record.expressions?.setDisabledExpression?.(col.name, () => true);\n record.expressions?.setValueExpression?.(col.name, () => {\n //this happens if we have removed a change\n if (!change) {\n return baseRecord.getValue(col.name);\n }\n return change.originalValue;\n })\n }\n });\n })\n\n dataset.addEventListener('onRecordColumnValueChanged', (record, columnName) => {\n baseRecord.setValue(columnName, record.getValue(columnName)); \n props.onRequestRender(); \n })\n dataset.addEventListener('onChangesCleared', () => {\n baseRecord.clearChanges?.();\n props.onRequestRender();\n })\n dataset.addEventListener('onRecordSave', async () => {\n props.onIsSaving(true);\n await baseRecord.save();\n baseRecord.clearChanges?.();\n props.onIsSaving(false);\n props.onRequestRender();\n })\n return dataset;\n };\n const dataset = useMemo(() => getDataset(), []);\n return (\n <div className={styles.root}>\n <DatasetControl\n context={{\n ...grid.pcfContext,\n parameters: {\n ...grid.pcfContext.parameters,\n Grid: dataset,\n },\n }}\n parameters={{\n Grid: dataset,\n EnablePagination: {\n raw: false,\n },\n EnableFiltering: {\n raw: false,\n },\n EnableEditing: {\n raw: true,\n },\n EnableNavigation: {\n raw: false,\n },\n EnableOptionSetColors: grid.parameters.EnableOptionSetColors,\n EnableSorting: {\n raw: false,\n },\n EnableChangeEditor: {\n raw: false\n },\n SelectableRows: {\n raw: \"none\",\n },\n }}\n />\n </div>\n );\n};\n"],"names":["React","_jsx"],"mappings":"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"}
@@ -5,15 +5,21 @@ import { GridContext } from '../../GridContext.js';
5
5
  const useGridController = (gridInstance) => {
6
6
  const grid = gridInstance ?? useContext(GridContext).gridInstance;
7
7
  const [columns, setColumns] = useState(grid.columns);
8
+ const preprocessColumns = (columns) => {
9
+ return columns.map(({ getEntityName, metadata, ...rest }) => rest);
10
+ };
8
11
  //only change columns and records reference if there is a change
9
12
  useEffect(() => {
13
+ if (grid.loading) {
14
+ return;
15
+ }
10
16
  (async () => {
11
17
  const newColumns = await grid.refreshColumns();
12
- if (!deepEqual(newColumns, columns)) {
18
+ if (!deepEqual(preprocessColumns(newColumns), preprocessColumns(columns))) {
13
19
  setColumns(newColumns);
14
20
  }
15
21
  })();
16
- }, [grid.shouldRerender]);
22
+ }, [grid.loading]);
17
23
  return {
18
24
  columns
19
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useGridController.js","sources":["../../../../../src/components/Grid/core/controllers/useGridController.ts"],"sourcesContent":["import { useContext, useEffect, useState } from \"react\"\nimport equal from 'fast-deep-equal/es6';\nimport { Grid } from \"../model/Grid\";\nimport { IGridColumn } from \"../interfaces/IGridColumn\";\nimport { GridContext } from \"../../GridContext\";\n\ninterface IGridController {\n columns: IGridColumn[]\n}\n\nexport const useGridController = (gridInstance?: Grid): IGridController => {\n const grid = gridInstance ?? useContext(GridContext).gridInstance;\n const [columns, setColumns] = useState<IGridColumn[]>(grid.columns);\n\n\n //only change columns and records reference if there is a change\n useEffect(() => {\n (async () => {\n const newColumns = await grid.refreshColumns();\n if(!equal(newColumns, columns)) {\n setColumns(newColumns);\n }\n })();\n }, [grid.shouldRerender]);\n return {\n columns\n }\n}"],"names":["equal"],"mappings":";;;;AAUa,MAAA,iBAAiB,GAAG,CAAC,YAAmB,KAAqB;IACtE,MAAM,IAAI,GAAG,YAAY,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;AAClE,IAAA,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,OAAO,CAAC,CAAC;;IAIpE,SAAS,CAAC,MAAK;QACX,CAAC,YAAW;AACR,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC/C,YAAA,IAAG,CAACA,SAAK,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;gBAC5B,UAAU,CAAC,UAAU,CAAC,CAAC;AAC1B,aAAA;SACJ,GAAG,CAAC;AACT,KAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1B,OAAO;QACH,OAAO;KACV,CAAA;AACL;;;;"}
1
+ {"version":3,"file":"useGridController.js","sources":["../../../../../src/components/Grid/core/controllers/useGridController.ts"],"sourcesContent":["import { useContext, useEffect, useState } from \"react\"\nimport equal from 'fast-deep-equal/es6';\nimport { Grid } from \"../model/Grid\";\nimport { IGridColumn } from \"../interfaces/IGridColumn\";\nimport { GridContext } from \"../../GridContext\";\n\ninterface IGridController {\n columns: IGridColumn[]\n}\n\nexport const useGridController = (gridInstance?: Grid): IGridController => {\n const grid = gridInstance ?? useContext(GridContext).gridInstance;\n const [columns, setColumns] = useState<IGridColumn[]>(grid.columns);\n\n const preprocessColumns = (columns: IGridColumn[]): any[] => {\n return columns.map(({ getEntityName, metadata, ...rest }) => rest);\n };\n \n //only change columns and records reference if there is a change\n useEffect(() => {\n if(grid.loading) {\n return;\n }\n (async () => {\n const newColumns = await grid.refreshColumns();\n if(!equal(preprocessColumns(newColumns), preprocessColumns(columns))) {\n setColumns(newColumns);\n }\n })();\n }, [grid.loading]);\n\n return {\n columns\n }\n}"],"names":["equal"],"mappings":";;;;AAUa,MAAA,iBAAiB,GAAG,CAAC,YAAmB,KAAqB;IACtE,MAAM,IAAI,GAAG,YAAY,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;AAClE,IAAA,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,OAAO,CAAC,CAAC;AAEpE,IAAA,MAAM,iBAAiB,GAAG,CAAC,OAAsB,KAAW;AACxD,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;AACvE,KAAC,CAAC;;IAGF,SAAS,CAAC,MAAK;QACX,IAAG,IAAI,CAAC,OAAO,EAAE;YACb,OAAO;AACV,SAAA;QACD,CAAC,YAAW;AACR,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC/C,YAAA,IAAG,CAACA,SAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE;gBAClE,UAAU,CAAC,UAAU,CAAC,CAAC;AAC1B,aAAA;SACJ,GAAG,CAAC;AACT,KAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnB,OAAO;QACH,OAAO;KACV,CAAA;AACL;;;;"}
@@ -7,4 +7,6 @@ export interface IGridColumn extends IColumn {
7
7
  isFiltered: boolean;
8
8
  isSortedDescending: boolean;
9
9
  isResizable: boolean;
10
+ alignment: IColumn['alignment'];
11
+ getEntityName: () => string;
10
12
  }
@@ -1,13 +1,13 @@
1
- /// <reference types="powerapps-component-framework" />
2
- import { IDataset, IRecord } from "@talxis/client-libraries";
1
+ /// <reference types="@types/powerapps-component-framework" />
2
+ import { Client, IColumn, ICustomColumnControl, IDataset, IRecord } from "@talxis/client-libraries";
3
3
  import { Filtering } from "../../filtering/model/Filtering";
4
4
  import { IGrid } from "../../interfaces";
5
5
  import { Paging } from "../../paging/model/Paging";
6
6
  import { Selection } from "../../selection/model/Selection";
7
7
  import { Sorting } from "../../sorting/Sorting";
8
8
  import { KeyHoldListener } from "../services/KeyListener";
9
- import { Metadata } from "./Metadata";
10
9
  import { IGridColumn } from "../interfaces/IGridColumn";
10
+ import { IBinding } from "../../../NestedControlRenderer/interfaces";
11
11
  export declare class Grid {
12
12
  private _props;
13
13
  private _dataset;
@@ -21,7 +21,8 @@ export declare class Grid {
21
21
  private _maxHeight;
22
22
  private _minHeight;
23
23
  private _initialPageSize;
24
- private _refreshGlobalCheckBox;
24
+ private _usesNestedPcfs;
25
+ private _client;
25
26
  readonly keyHoldListener: KeyHoldListener;
26
27
  constructor(props: IGrid, labels: any, keyHoldListener: KeyHoldListener);
27
28
  get isNavigationEnabled(): boolean;
@@ -36,7 +37,6 @@ export declare class Grid {
36
37
  get columns(): IGridColumn[];
37
38
  get records(): IRecord[];
38
39
  get sorting(): Sorting;
39
- get metadata(): Metadata;
40
40
  get filtering(): Filtering;
41
41
  get selection(): Selection;
42
42
  get paging(): Paging;
@@ -49,15 +49,24 @@ export declare class Grid {
49
49
  get inlineRibbonButtonIds(): string[] | undefined;
50
50
  get rowHeight(): number;
51
51
  get height(): string;
52
- openDatasetItem(entityReference: ComponentFramework.EntityReference): void;
52
+ getClient(): Client;
53
53
  updateDependencies(props: IGrid): void;
54
54
  refreshColumns(): Promise<IGridColumn[]>;
55
- setRefreshGlobalCheckBox(refreshGlobalCheckBox: () => void): void;
56
- refreshGlobalCheckBox(): void;
57
55
  getTotalVisibleColumnsWidth(): number;
56
+ onNotifyOutputChanged(record: IRecord, column: IColumn, editing: boolean, newValue: any, rerenderCell: () => void): void;
57
+ setUsesNestedPcfs(): void;
58
+ getBindings(record: IRecord, column: IColumn, control: ICustomColumnControl): {
59
+ [name: string]: IBinding;
60
+ };
61
+ getControl(column: IColumn, record: IRecord, editing: boolean): Required<ICustomColumnControl>;
62
+ getParameters(record: IRecord, column: IGridColumn, editing: boolean): any;
63
+ getColumnAlignment(column: IColumn): "left" | "right" | "center";
64
+ destroy(): void;
65
+ private _getBindingValue;
58
66
  private _isColumnEditable;
59
67
  private _isColumnRequired;
60
68
  private _isColumnSortable;
61
69
  private _isColumnFilterable;
62
70
  private _getMaxHeight;
71
+ private _getColumnEntityName;
63
72
  }
@@ -1,11 +1,11 @@
1
- import { DataTypes, Constants, Attribute } from '@talxis/client-libraries';
1
+ import { Client, DataTypes, Sanitizer, Constants, Attribute } from '@talxis/client-libraries';
2
2
  import { Filtering } from '../../filtering/model/Filtering.js';
3
3
  import { Paging } from '../../paging/model/Paging.js';
4
4
  import { Selection } from '../../selection/model/Selection.js';
5
5
  import { Sorting } from '../../sorting/Sorting.js';
6
- import { DataType } from '../enums/DataType.js';
7
- import { Metadata } from './Metadata.js';
8
6
  import { CHECKBOX_COLUMN_KEY } from '../../constants.js';
7
+ import { merge } from 'merge-anything';
8
+ import { BaseControls } from '../../../../utils/BaseControls.js';
9
9
 
10
10
  const DEFAULT_ROW_HEIGHT = 42;
11
11
  class Grid {
@@ -16,8 +16,8 @@ class Grid {
16
16
  this._shouldRerender = false;
17
17
  this._records = [];
18
18
  this._minHeight = 150;
19
- //this is temp, should be moved to AgGrid class, useAgGridInstance should also be created, similar to useGridInstance
20
- this._refreshGlobalCheckBox = () => { };
19
+ this._usesNestedPcfs = false;
20
+ this._client = new Client();
21
21
  this._props = props;
22
22
  this._dataset = props.parameters.Grid;
23
23
  this._pcfContext = props.context;
@@ -26,7 +26,6 @@ class Grid {
26
26
  this._dependencies = {
27
27
  filtering: new Filtering(this),
28
28
  selection: new Selection(this),
29
- metadata: new Metadata(this),
30
29
  sorting: new Sorting(this),
31
30
  paging: new Paging(this),
32
31
  };
@@ -71,9 +70,6 @@ class Grid {
71
70
  get sorting() {
72
71
  return this._dependencies.sorting;
73
72
  }
74
- get metadata() {
75
- return this._dependencies.metadata;
76
- }
77
73
  get filtering() {
78
74
  return this._dependencies.filtering;
79
75
  }
@@ -131,21 +127,13 @@ class Grid {
131
127
  }
132
128
  return `${height}px`;
133
129
  }
134
- openDatasetItem(entityReference) {
135
- this._dataset.openDatasetItem(entityReference);
136
- const clickedRecord = this.records.find(x => x.getRecordId() === entityReference.id.guid);
137
- //we need to make sure the item we are opening gets selected in order for the
138
- //OnOpenRecord ribbon scripts to work correctly
139
- //if no record found we have clicked a lookup, no selection should be happening in that case
140
- if (clickedRecord) {
141
- this.selection.toggle(clickedRecord, true, true, true);
142
- }
130
+ getClient() {
131
+ return this._client;
143
132
  }
144
133
  updateDependencies(props) {
145
134
  this._props = props;
146
135
  this._dataset = props.parameters.Grid;
147
136
  this._pcfContext = props.context;
148
- //THIS COULD MAKE GRID STOP WORKING IN POWER APPS!
149
137
  if (this._previousRecordsReference !== this._dataset.records) {
150
138
  this._records = Object.values(this._dataset.records);
151
139
  this._previousRecordsReference = this._dataset.records;
@@ -161,14 +149,16 @@ class Grid {
161
149
  const sorted = this._dataset.sorting?.find(sort => sort.name === column.name);
162
150
  const gridColumn = {
163
151
  ...column,
164
- isEditable: await this._isColumnEditable(column),
165
- isRequired: await this._isColumnRequired(column),
166
- isFilterable: await this._isColumnFilterable(column),
152
+ alignment: this.getColumnAlignment(column),
153
+ isEditable: this._isColumnEditable(column),
154
+ isRequired: this._isColumnRequired(column),
155
+ isFilterable: this._isColumnFilterable(column),
167
156
  disableSorting: !this._isColumnSortable(column),
168
157
  isSortedDescending: sorted?.sortDirection === 1 ? true : false,
169
158
  isResizable: true,
170
159
  isSorted: sorted ? true : false,
171
- isFiltered: false
160
+ isFiltered: false,
161
+ getEntityName: () => this._getColumnEntityName(column.name)
172
162
  };
173
163
  const condition = await this.filtering.condition(gridColumn);
174
164
  gridColumn.isFiltered = condition.isAppliedToDataset;
@@ -179,6 +169,7 @@ class Grid {
179
169
  name: CHECKBOX_COLUMN_KEY,
180
170
  alias: CHECKBOX_COLUMN_KEY,
181
171
  dataType: DataTypes.SingleLineText,
172
+ alignment: 'center',
182
173
  displayName: '',
183
174
  isEditable: false,
184
175
  isFilterable: false,
@@ -190,25 +181,217 @@ class Grid {
190
181
  isSortedDescending: false,
191
182
  order: 0,
192
183
  visualSizeFactor: 45,
184
+ getEntityName: () => this._getColumnEntityName(CHECKBOX_COLUMN_KEY)
193
185
  });
194
186
  }
195
187
  this._columns = gridColumns;
196
188
  return gridColumns;
197
189
  }
198
- setRefreshGlobalCheckBox(refreshGlobalCheckBox) {
199
- this._refreshGlobalCheckBox = refreshGlobalCheckBox;
200
- }
201
- refreshGlobalCheckBox() {
202
- this._refreshGlobalCheckBox();
203
- }
204
190
  getTotalVisibleColumnsWidth() {
205
191
  let totalWidth = 0;
206
192
  this._columns.filter(x => !x.isHidden).map(col => {
207
- totalWidth = totalWidth + col.visualSizeFactor;
193
+ totalWidth = totalWidth + (col.visualSizeFactor ?? 0);
208
194
  });
209
195
  return totalWidth;
210
196
  }
211
- async _isColumnEditable(column) {
197
+ onNotifyOutputChanged(record, column, editing, newValue, rerenderCell) {
198
+ record.setValue(column.name, newValue);
199
+ if (!editing) {
200
+ this.pcfContext.factory.requestRender();
201
+ return;
202
+ }
203
+ setTimeout(() => {
204
+ rerenderCell();
205
+ }, 0);
206
+ }
207
+ setUsesNestedPcfs() {
208
+ this._usesNestedPcfs = true;
209
+ }
210
+ getBindings(record, column, control) {
211
+ const columnInfo = record.getColumnInfo(column.name);
212
+ const bindings = {
213
+ 'value': {
214
+ isStatic: false,
215
+ type: column.dataType,
216
+ value: this._getBindingValue(record, column),
217
+ error: columnInfo.error,
218
+ errorMessage: columnInfo.errorMessage,
219
+ onNotifyOutputChanged: () => { },
220
+ metadata: {
221
+ onOverrideMetadata: () => column.metadata
222
+ }
223
+ },
224
+ 'IsCellCustomizer': {
225
+ isStatic: true,
226
+ type: DataTypes.TwoOptions,
227
+ value: true
228
+ }
229
+ };
230
+ if (control.bindings) {
231
+ Object.entries(control.bindings).map(([name, binding]) => {
232
+ bindings[name] = {
233
+ isStatic: true,
234
+ type: binding.type,
235
+ value: binding.value
236
+ };
237
+ });
238
+ }
239
+ return bindings;
240
+ }
241
+ getControl(column, record, editing) {
242
+ //file and image currently do not support editor, always force cell renderers
243
+ switch (column.dataType) {
244
+ case 'File':
245
+ case 'Image': {
246
+ return {
247
+ name: 'GridCellRenderer',
248
+ appliesTo: 'both',
249
+ bindings: {}
250
+ };
251
+ }
252
+ }
253
+ const defaultControl = {
254
+ name: editing ? BaseControls.GetControlNameForDataType(column.dataType) : 'GridCellRenderer',
255
+ appliesTo: 'both',
256
+ bindings: {}
257
+ };
258
+ const customControls = record.getColumnInfo(column.name).ui.getCustomControls([defaultControl]);
259
+ const appliesToValue = editing ? 'editor' : 'renderer';
260
+ const customControl = customControls.find(control => control.appliesTo === 'both' || control.appliesTo === appliesToValue);
261
+ if (customControl) {
262
+ return merge(defaultControl, customControl);
263
+ }
264
+ return defaultControl;
265
+ }
266
+ getParameters(record, column, editing) {
267
+ const parameters = {
268
+ Dataset: {
269
+ raw: this.dataset,
270
+ type: DataTypes.Object
271
+ },
272
+ Record: {
273
+ raw: record,
274
+ type: DataTypes.Object
275
+ },
276
+ Column: {
277
+ raw: column,
278
+ type: DataTypes.Object
279
+ }
280
+ };
281
+ parameters.EnableNavigation = {
282
+ raw: this.isNavigationEnabled,
283
+ type: DataTypes.TwoOptions
284
+ };
285
+ parameters.ColumnAlignment = {
286
+ raw: column.alignment,
287
+ type: DataTypes.SingleLineText
288
+ };
289
+ parameters.IsPrimaryColumn = {
290
+ raw: column.isPrimary,
291
+ type: DataTypes.TwoOptions
292
+ };
293
+ parameters.ShowErrorMessage = {
294
+ raw: false,
295
+ type: DataTypes.TwoOptions
296
+ };
297
+ parameters.CellType = {
298
+ raw: editing ? 'editor' : 'renderer',
299
+ type: DataTypes.SingleLineText
300
+ };
301
+ if (editing) {
302
+ parameters.AutoFocus = {
303
+ raw: true,
304
+ type: DataTypes.TwoOptions
305
+ };
306
+ }
307
+ switch (column.dataType) {
308
+ case 'Lookup.Customer':
309
+ case 'Lookup.Owner':
310
+ case 'Lookup.Regarding':
311
+ case 'Lookup.Simple': {
312
+ parameters.IsInlineNewEnabled = {
313
+ raw: false,
314
+ type: DataTypes.TwoOptions
315
+ };
316
+ break;
317
+ }
318
+ case 'SingleLine.Email':
319
+ case 'SingleLine.Phone':
320
+ case 'SingleLine.URL': {
321
+ parameters.EnableTypeSuffix = {
322
+ raw: false,
323
+ type: DataTypes.TwoOptions
324
+ };
325
+ break;
326
+ }
327
+ case 'OptionSet':
328
+ case 'TwoOptions':
329
+ case 'MultiSelectPicklist': {
330
+ parameters.EnableOptionSetColors = {
331
+ raw: this.enableOptionSetColors,
332
+ type: DataTypes.TwoOptions
333
+ };
334
+ break;
335
+ }
336
+ }
337
+ return parameters;
338
+ }
339
+ getColumnAlignment(column) {
340
+ if (column.alignment) {
341
+ return column.alignment;
342
+ }
343
+ switch (column.dataType) {
344
+ case DataTypes.WholeNone:
345
+ case DataTypes.Decimal:
346
+ case DataTypes.Currency: {
347
+ return 'right';
348
+ }
349
+ }
350
+ if (column.type === 'action') {
351
+ return 'right';
352
+ }
353
+ return 'left';
354
+ }
355
+ destroy() {
356
+ this._previousRecordsReference = {};
357
+ this._records.length = 0;
358
+ this.keyHoldListener.destroy();
359
+ //@ts-ignore - internal types
360
+ //if any nested PCF has been loaded and we are in Power Apps, do a page refresh to prevent memory leaks
361
+ if (this._usesNestedPcfs && !this._client.isTalxisPortal()) ;
362
+ }
363
+ _getBindingValue(record, column) {
364
+ let value = record.getValue(column.name);
365
+ switch (column.dataType) {
366
+ //getValue always returns string for TwoOptions
367
+ case 'TwoOptions': {
368
+ value = value == '1' ? true : false;
369
+ break;
370
+ }
371
+ //getValue always returns string for OptionSet
372
+ case 'OptionSet': {
373
+ value = value ? parseInt(value) : null;
374
+ break;
375
+ }
376
+ case 'MultiSelectPicklist': {
377
+ value = value ? value.split(',').map((x) => parseInt(x)) : null;
378
+ break;
379
+ }
380
+ case 'Lookup.Simple':
381
+ case 'Lookup.Customer':
382
+ case 'Lookup.Owner':
383
+ case 'Lookup.Regarding': {
384
+ //our implementation returns array, Power Apps returns object
385
+ if (value && !Array.isArray(value)) {
386
+ value = [value];
387
+ }
388
+ value = value?.map((x) => Sanitizer.Lookup.getLookupValue(x));
389
+ break;
390
+ }
391
+ }
392
+ return value;
393
+ }
394
+ _isColumnEditable(column) {
212
395
  //only allow editing if specifically allowed
213
396
  if (!this._props.parameters.EnableEditing?.raw) {
214
397
  return false;
@@ -218,25 +401,21 @@ class Grid {
218
401
  }
219
402
  //these field types do not support editing
220
403
  switch (column.dataType) {
221
- case DataType.FILE:
222
- case DataType.IMAGE: {
404
+ case DataTypes.File:
405
+ case DataTypes.Image: {
223
406
  return false;
224
407
  }
225
408
  }
226
- const attributeName = Attribute.GetNameFromAlias(column.name);
227
- const metadata = await this.metadata.get(column.name);
228
- return metadata.Attributes.get(attributeName)?.attributeDescriptor?.IsValidForUpdate ?? false;
409
+ return column.metadata?.IsValidForUpdate ?? false;
229
410
  }
230
- async _isColumnRequired(column) {
411
+ _isColumnRequired(column) {
231
412
  if (!this.parameters.EnableEditing?.raw) {
232
413
  return false;
233
414
  }
234
415
  if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {
235
416
  return false;
236
417
  }
237
- const metadata = await this.metadata.get(column.name);
238
- const attributeName = Attribute.GetNameFromAlias(column.name);
239
- const requiredLevel = metadata.Attributes.get(attributeName)?.attributeDescriptor?.RequiredLevel;
418
+ const requiredLevel = column.metadata?.RequiredLevel;
240
419
  if (requiredLevel === 1 || requiredLevel === 2) {
241
420
  return true;
242
421
  }
@@ -253,7 +432,7 @@ class Grid {
253
432
  return false;
254
433
  }
255
434
  switch (column.dataType) {
256
- case DataType.IMAGE: {
435
+ case DataTypes.Image: {
257
436
  return false;
258
437
  }
259
438
  }
@@ -262,7 +441,7 @@ class Grid {
262
441
  }
263
442
  return !column.disableSorting;
264
443
  }
265
- async _isColumnFilterable(column) {
444
+ _isColumnFilterable(column) {
266
445
  if (column.name.endsWith('__virtual')) {
267
446
  return false;
268
447
  }
@@ -272,9 +451,7 @@ class Grid {
272
451
  if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {
273
452
  return false;
274
453
  }
275
- const metadata = await this.metadata.get(column.name);
276
- const attributeName = Attribute.GetNameFromAlias(column.name);
277
- return metadata.Attributes.get(attributeName)?.attributeDescriptor?.isFilterable ?? true;
454
+ return column.metadata?.isFilterable ?? true;
278
455
  }
279
456
  _getMaxHeight() {
280
457
  let maxHeight = this._initialPageSize * this.rowHeight;
@@ -283,6 +460,13 @@ class Grid {
283
460
  }
284
461
  return maxHeight;
285
462
  }
463
+ _getColumnEntityName(columnName) {
464
+ const entityAliasName = Attribute.GetLinkedEntityAlias(columnName);
465
+ if (!entityAliasName) {
466
+ return this.dataset.getTargetEntityType();
467
+ }
468
+ return this.dataset.linking.getLinkedEntities().find(x => x.alias === entityAliasName).name;
469
+ }
286
470
  }
287
471
 
288
472
  export { Grid };