@talxis/base-controls 1.2408.1 → 1.2408.3

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 (254) hide show
  1. package/dist/components/DateTime/DateTime.js +133 -1
  2. package/dist/components/DateTime/DateTime.js.map +1 -0
  3. package/dist/components/DateTime/components/Calendar.js +63 -1
  4. package/dist/components/DateTime/components/Calendar.js.map +1 -0
  5. package/dist/components/DateTime/hooks/useDateTime.js +137 -1
  6. package/dist/components/DateTime/hooks/useDateTime.js.map +1 -0
  7. package/dist/components/DateTime/index.js +3 -1
  8. package/dist/components/DateTime/index.js.map +1 -0
  9. package/dist/components/DateTime/styles.js +37 -1
  10. package/dist/components/DateTime/styles.js.map +1 -0
  11. package/dist/components/DateTime/translations.js +23 -1
  12. package/dist/components/DateTime/translations.js.map +1 -0
  13. package/dist/components/Decimal/Decimal.js +200 -1
  14. package/dist/components/Decimal/Decimal.js.map +1 -0
  15. package/dist/components/Decimal/components/ArrowButtons.js +38 -1
  16. package/dist/components/Decimal/components/ArrowButtons.js.map +1 -0
  17. package/dist/components/Decimal/components/styles.js +26 -1
  18. package/dist/components/Decimal/components/styles.js.map +1 -0
  19. package/dist/components/Decimal/index.js +2 -1
  20. package/dist/components/Decimal/index.js.map +1 -0
  21. package/dist/components/Decimal/interfaces.d.ts +1 -1
  22. package/dist/components/Duration/Duration.js +132 -1
  23. package/dist/components/Duration/Duration.js.map +1 -0
  24. package/dist/components/Duration/durationOptions.d.ts +2 -0
  25. package/dist/components/Duration/durationOptions.js +27 -0
  26. package/dist/components/Duration/durationOptions.js.map +1 -0
  27. package/dist/components/Duration/index.js +2 -1
  28. package/dist/components/Duration/index.js.map +1 -0
  29. package/dist/components/Duration/translations.js +31 -1
  30. package/dist/components/Duration/translations.js.map +1 -0
  31. package/dist/components/Grid/Grid.js +30 -1
  32. package/dist/components/Grid/Grid.js.map +1 -0
  33. package/dist/components/Grid/GridContext.js +6 -1
  34. package/dist/components/Grid/GridContext.js.map +1 -0
  35. package/dist/components/Grid/constants.js +4 -1
  36. package/dist/components/Grid/constants.js.map +1 -0
  37. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +85 -1
  38. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -0
  39. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js +12 -1
  40. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js.map +1 -0
  41. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js +23 -1
  42. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js.map +1 -0
  43. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js +11 -1
  44. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js.map +1 -0
  45. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js +82 -1
  46. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js.map +1 -0
  47. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +169 -1
  48. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js.map +1 -0
  49. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +116 -1
  50. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -0
  51. package/dist/components/Grid/core/components/AgGrid/styles.js +91 -1
  52. package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -0
  53. package/dist/components/Grid/core/components/Cell/Commands/Commands.js +29 -1
  54. package/dist/components/Grid/core/components/Cell/Commands/Commands.js.map +1 -0
  55. package/dist/components/Grid/core/components/Cell/Commands/Icon.js +14 -1
  56. package/dist/components/Grid/core/components/Cell/Commands/Icon.js.map +1 -0
  57. package/dist/components/Grid/core/components/Cell/Commands/styles.js +54 -1
  58. package/dist/components/Grid/core/components/Cell/Commands/styles.js.map +1 -0
  59. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js +52 -1
  60. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js.map +1 -0
  61. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +148 -1
  62. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +1 -0
  63. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +139 -1
  64. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +1 -0
  65. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js +49 -1
  66. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js.map +1 -0
  67. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js +27 -1
  68. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js.map +1 -0
  69. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +58 -1
  70. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +1 -0
  71. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +60 -1
  72. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -0
  73. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +26 -1
  74. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js.map +1 -0
  75. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js +19 -1
  76. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js.map +1 -0
  77. package/dist/components/Grid/core/components/ColumnHeader/styles.js +44 -1
  78. package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +1 -0
  79. package/dist/components/Grid/core/components/Component/Component.js +53 -1
  80. package/dist/components/Grid/core/components/Component/Component.js.map +1 -0
  81. package/dist/components/Grid/core/components/Component/controller/useComponentController.js +31 -1
  82. package/dist/components/Grid/core/components/Component/controller/useComponentController.js.map +1 -0
  83. package/dist/components/Grid/core/components/Component/model/Component.js +225 -1
  84. package/dist/components/Grid/core/components/Component/model/Component.js.map +1 -0
  85. package/dist/components/Grid/core/components/Dialog/Constants.js +9 -1
  86. package/dist/components/Grid/core/components/Dialog/Constants.js.map +1 -0
  87. package/dist/components/Grid/core/components/Dialog/Styles.js +61 -1
  88. package/dist/components/Grid/core/components/Dialog/Styles.js.map +1 -0
  89. package/dist/components/Grid/core/components/Dialog/index.js +16 -1
  90. package/dist/components/Grid/core/components/Dialog/index.js.map +1 -0
  91. package/dist/components/Grid/core/components/Dialog/interfaces/index.js +1 -0
  92. package/dist/components/Grid/core/components/Dialog/interfaces/index.js.map +1 -0
  93. package/dist/components/Grid/core/components/Save/Save.js +47 -1
  94. package/dist/components/Grid/core/components/Save/Save.js.map +1 -0
  95. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +39 -1
  96. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -0
  97. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +136 -1
  98. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js.map +1 -0
  99. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js +54 -1
  100. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js.map +1 -0
  101. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js +37 -1
  102. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js.map +1 -0
  103. package/dist/components/Grid/core/components/Save/hooks/useSave.js +45 -1
  104. package/dist/components/Grid/core/components/Save/hooks/useSave.js.map +1 -0
  105. package/dist/components/Grid/core/components/Save/styles.js +44 -1
  106. package/dist/components/Grid/core/components/Save/styles.js.map +1 -0
  107. package/dist/components/Grid/core/controllers/useGridController.js +39 -1
  108. package/dist/components/Grid/core/controllers/useGridController.js.map +1 -0
  109. package/dist/components/Grid/core/enums/ConditionOperator.js +50 -1
  110. package/dist/components/Grid/core/enums/ConditionOperator.js.map +1 -0
  111. package/dist/components/Grid/core/enums/DataType.js +30 -1
  112. package/dist/components/Grid/core/enums/DataType.js.map +1 -0
  113. package/dist/components/Grid/core/hooks/useGridInstance.js +9 -1
  114. package/dist/components/Grid/core/hooks/useGridInstance.js.map +1 -0
  115. package/dist/components/Grid/core/hooks/useRefreshCallback.js +20 -1
  116. package/dist/components/Grid/core/hooks/useRefreshCallback.js.map +1 -0
  117. package/dist/components/Grid/core/hooks/useRerender.js +13 -1
  118. package/dist/components/Grid/core/hooks/useRerender.js.map +1 -0
  119. package/dist/components/Grid/core/model/Grid.js +249 -1
  120. package/dist/components/Grid/core/model/Grid.js.map +1 -0
  121. package/dist/components/Grid/core/model/GridDependency.js +28 -1
  122. package/dist/components/Grid/core/model/GridDependency.js.map +1 -0
  123. package/dist/components/Grid/core/model/Metadata.js +22 -1
  124. package/dist/components/Grid/core/model/Metadata.js.map +1 -0
  125. package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js +25 -1
  126. package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js.map +1 -0
  127. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +190 -1
  128. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js.map +1 -0
  129. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js +50 -1
  130. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js.map +1 -0
  131. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +58 -1
  132. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js.map +1 -0
  133. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +52 -1
  134. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +1 -0
  135. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +125 -1
  136. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +1 -0
  137. package/dist/components/Grid/filtering/components/FilterCallout/styles.js +40 -1
  138. package/dist/components/Grid/filtering/components/FilterCallout/styles.js.map +1 -0
  139. package/dist/components/Grid/filtering/constants.js +51 -1
  140. package/dist/components/Grid/filtering/constants.js.map +1 -0
  141. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js +42 -1
  142. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js.map +1 -0
  143. package/dist/components/Grid/filtering/model/Condition.js +297 -1
  144. package/dist/components/Grid/filtering/model/Condition.js.map +1 -0
  145. package/dist/components/Grid/filtering/model/Filtering.js +78 -1
  146. package/dist/components/Grid/filtering/model/Filtering.js.map +1 -0
  147. package/dist/components/Grid/filtering/utils/FilteringUtilts.js +195 -1
  148. package/dist/components/Grid/filtering/utils/FilteringUtilts.js.map +1 -0
  149. package/dist/components/Grid/index.js +2 -1
  150. package/dist/components/Grid/index.js.map +1 -0
  151. package/dist/components/Grid/paging/components/Paging/Paging.js +63 -1
  152. package/dist/components/Grid/paging/components/Paging/Paging.js.map +1 -0
  153. package/dist/components/Grid/paging/components/Paging/styles.js +41 -1
  154. package/dist/components/Grid/paging/components/Paging/styles.js.map +1 -0
  155. package/dist/components/Grid/paging/controllers/usePagingController.js +23 -1
  156. package/dist/components/Grid/paging/controllers/usePagingController.js.map +1 -0
  157. package/dist/components/Grid/paging/model/Paging.js +56 -1
  158. package/dist/components/Grid/paging/model/Paging.js.map +1 -0
  159. package/dist/components/Grid/selection/controllers/useSelectionController.js +17 -1
  160. package/dist/components/Grid/selection/controllers/useSelectionController.js.map +1 -0
  161. package/dist/components/Grid/selection/model/Selection.js +69 -1
  162. package/dist/components/Grid/selection/model/Selection.js.map +1 -0
  163. package/dist/components/Grid/sorting/Sorting.js +33 -1
  164. package/dist/components/Grid/sorting/Sorting.js.map +1 -0
  165. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +120 -1
  166. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -0
  167. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js +15 -1
  168. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js.map +1 -0
  169. package/dist/components/Grid/sorting/controllers/useColumnSortingController.js +21 -1
  170. package/dist/components/Grid/sorting/controllers/useColumnSortingController.js.map +1 -0
  171. package/dist/components/Grid/translations.js +81 -1
  172. package/dist/components/Grid/translations.js.map +1 -0
  173. package/dist/components/Grid/validation/controllers/useRecordValidationController.js +25 -1
  174. package/dist/components/Grid/validation/controllers/useRecordValidationController.js.map +1 -0
  175. package/dist/components/Grid/validation/model/ColumnValidation.js +84 -1
  176. package/dist/components/Grid/validation/model/ColumnValidation.js.map +1 -0
  177. package/dist/components/Lookup/Lookup.js +201 -1
  178. package/dist/components/Lookup/Lookup.js.map +1 -0
  179. package/dist/components/Lookup/components/RecordCreator.js +37 -1
  180. package/dist/components/Lookup/components/RecordCreator.js.map +1 -0
  181. package/dist/components/Lookup/components/TargetSelector.js +19 -1
  182. package/dist/components/Lookup/components/TargetSelector.js.map +1 -0
  183. package/dist/components/Lookup/hooks/useFetchXml.js +27 -1
  184. package/dist/components/Lookup/hooks/useFetchXml.js.map +1 -0
  185. package/dist/components/Lookup/hooks/useLoadedEntities.js +20 -1
  186. package/dist/components/Lookup/hooks/useLoadedEntities.js.map +1 -0
  187. package/dist/components/Lookup/hooks/useLookup.js +111 -1
  188. package/dist/components/Lookup/hooks/useLookup.js.map +1 -0
  189. package/dist/components/Lookup/index.js +3 -1
  190. package/dist/components/Lookup/index.js.map +1 -0
  191. package/dist/components/Lookup/styles.js +98 -1
  192. package/dist/components/Lookup/styles.js.map +1 -0
  193. package/dist/components/Lookup/translations.js +33 -1
  194. package/dist/components/Lookup/translations.js.map +1 -0
  195. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +74 -1
  196. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -0
  197. package/dist/components/MultiSelectOptionSet/index.js +2 -1
  198. package/dist/components/MultiSelectOptionSet/index.js.map +1 -0
  199. package/dist/components/OptionSet/OptionSet.js +61 -1
  200. package/dist/components/OptionSet/OptionSet.js.map +1 -0
  201. package/dist/components/OptionSet/index.js +2 -1
  202. package/dist/components/OptionSet/index.js.map +1 -0
  203. package/dist/components/TextField/TextField.js +113 -1
  204. package/dist/components/TextField/TextField.js.map +1 -0
  205. package/dist/components/TextField/index.js +2 -1
  206. package/dist/components/TextField/index.js.map +1 -0
  207. package/dist/components/TwoOptions/TwoOptions.js +36 -1
  208. package/dist/components/TwoOptions/TwoOptions.js.map +1 -0
  209. package/dist/components/TwoOptions/index.js +2 -1
  210. package/dist/components/TwoOptions/index.js.map +1 -0
  211. package/dist/constants.js +35 -1
  212. package/dist/constants.js.map +1 -0
  213. package/dist/hooks/index.js +7 -1
  214. package/dist/hooks/index.js.map +1 -0
  215. package/dist/hooks/useControl.js +95 -1
  216. package/dist/hooks/useControl.js.map +1 -0
  217. package/dist/hooks/useControlSizing.js +15 -1
  218. package/dist/hooks/useControlSizing.js.map +1 -0
  219. package/dist/hooks/useControlTheme.js +9 -1
  220. package/dist/hooks/useControlTheme.js.map +1 -0
  221. package/dist/hooks/useFocusIn.js +33 -1
  222. package/dist/hooks/useFocusIn.js.map +1 -0
  223. package/dist/hooks/useInputBasedControl.js +38 -1
  224. package/dist/hooks/useInputBasedControl.js.map +1 -0
  225. package/dist/hooks/useMouseOver.js +23 -1
  226. package/dist/hooks/useMouseOver.js.map +1 -0
  227. package/dist/index.d.ts +1 -1
  228. package/dist/index.js +19 -1
  229. package/dist/index.js.map +1 -0
  230. package/dist/interfaces/index.js +1 -0
  231. package/dist/interfaces/index.js.map +1 -0
  232. package/dist/utils/Numeral.js +64 -1
  233. package/dist/utils/Numeral.js.map +1 -0
  234. package/dist/utils/Theme.js +72 -1
  235. package/dist/utils/Theme.js.map +1 -0
  236. package/dist/utils/index.js +3 -1
  237. package/dist/utils/index.js.map +1 -0
  238. package/package.json +4 -2
  239. package/dist/Grid-b7e6190d.js +0 -1
  240. package/dist/components/DateTime/interfaces.js +0 -1
  241. package/dist/components/Decimal/interfaces.js +0 -1
  242. package/dist/components/Duration/interfaces.js +0 -1
  243. package/dist/components/Grid/core/interfaces/IGridColumn.js +0 -1
  244. package/dist/components/Grid/core/interfaces/IGridContext.js +0 -1
  245. package/dist/components/Grid/interfaces.js +0 -1
  246. package/dist/components/Lookup/interfaces.js +0 -1
  247. package/dist/components/MultiSelectOptionSet/interfaces.js +0 -1
  248. package/dist/components/OptionSet/interfaces.js +0 -1
  249. package/dist/components/TextField/interfaces.js +0 -1
  250. package/dist/components/TwoOptions/interfaces.js +0 -1
  251. package/dist/interfaces/context.js +0 -1
  252. package/dist/interfaces/parameters.js +0 -1
  253. package/dist/interfaces/property.js +0 -1
  254. package/dist/interfaces/theme.js +0 -1
@@ -1 +1,30 @@
1
- var E;!function(E){E.SINGLE_LINE_TEXT="SingleLine.Text",E.SINGLE_LINE_TEXT_AREA="SingleLine.TextArea",E.SINGLE_LINE_EMAIL="SingleLine.Email",E.SINGLE_LINE_PHONE="SingleLine.Phone",E.SINGLE_LINE_URL="SingleLine.URL",E.MULTIPLE="Multiple",E.WHOLE_NONE="Whole.None",E.DECIMAL="Decimal",E.FP="FP",E.DATE_AND_TIME_DATE_AND_TIME="DateAndTime.DateAndTime",E.DATE_AND_TIME_DATE_ONLY="DateAndTime.DateOnly",E.CURRENCY="Currency",E.OPTIONSET="OptionSet",E.MULTI_SELECT_OPTIONSET="MultiSelectPicklist",E.TWO_OPTIONS="TwoOptions",E.LOOKUP_SIMPLE="Lookup.Simple",E.LOOKUP_OWNER="Lookup.Owner",E.LOOKUP_CUSTOMER="Lookup.Customer",E.WHOLE_LANGUAGE="Whole.Language",E.WHOLE_DURATION="Whole.Duration",E.WHOLE_TIMEZONE="Whole.TimeZone",E.FILE="File",E.IMAGE="Image"}(E||(E={}));export{E as DataType};
1
+ var DataType;
2
+ (function (DataType) {
3
+ DataType["SINGLE_LINE_TEXT"] = "SingleLine.Text";
4
+ DataType["SINGLE_LINE_TEXT_AREA"] = "SingleLine.TextArea";
5
+ DataType["SINGLE_LINE_EMAIL"] = "SingleLine.Email";
6
+ DataType["SINGLE_LINE_PHONE"] = "SingleLine.Phone";
7
+ DataType["SINGLE_LINE_URL"] = "SingleLine.URL";
8
+ DataType["MULTIPLE"] = "Multiple";
9
+ DataType["WHOLE_NONE"] = "Whole.None";
10
+ DataType["DECIMAL"] = "Decimal";
11
+ DataType["FP"] = "FP";
12
+ DataType["DATE_AND_TIME_DATE_AND_TIME"] = "DateAndTime.DateAndTime";
13
+ DataType["DATE_AND_TIME_DATE_ONLY"] = "DateAndTime.DateOnly";
14
+ DataType["CURRENCY"] = "Currency";
15
+ DataType["OPTIONSET"] = "OptionSet";
16
+ DataType["MULTI_SELECT_OPTIONSET"] = "MultiSelectPicklist";
17
+ DataType["TWO_OPTIONS"] = "TwoOptions";
18
+ DataType["LOOKUP_SIMPLE"] = "Lookup.Simple";
19
+ DataType["LOOKUP_OWNER"] = "Lookup.Owner";
20
+ DataType["LOOKUP_CUSTOMER"] = "Lookup.Customer";
21
+ // Not supported in pcf dataset - https://learn.microsoft.com/en-us/power-apps/developer/component-framework/manifest-schema-reference/property-set#value-elements-that-are-not-supported
22
+ DataType["WHOLE_LANGUAGE"] = "Whole.Language";
23
+ DataType["WHOLE_DURATION"] = "Whole.Duration";
24
+ DataType["WHOLE_TIMEZONE"] = "Whole.TimeZone";
25
+ DataType["FILE"] = "File";
26
+ DataType["IMAGE"] = "Image";
27
+ })(DataType || (DataType = {}));
28
+
29
+ export { DataType };
30
+ //# sourceMappingURL=DataType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataType.js","sources":["../../../../../src/components/Grid/core/enums/DataType.ts"],"sourcesContent":["export enum DataType {\n SINGLE_LINE_TEXT = 'SingleLine.Text',\n SINGLE_LINE_TEXT_AREA = 'SingleLine.TextArea',\n SINGLE_LINE_EMAIL = 'SingleLine.Email',\n SINGLE_LINE_PHONE = 'SingleLine.Phone',\n SINGLE_LINE_URL = 'SingleLine.URL',\n MULTIPLE = 'Multiple',\n WHOLE_NONE = 'Whole.None',\n DECIMAL = 'Decimal',\n FP = 'FP',\n DATE_AND_TIME_DATE_AND_TIME = 'DateAndTime.DateAndTime',\n DATE_AND_TIME_DATE_ONLY = 'DateAndTime.DateOnly',\n CURRENCY = 'Currency',\n OPTIONSET = 'OptionSet',\n MULTI_SELECT_OPTIONSET = 'MultiSelectPicklist',\n TWO_OPTIONS = 'TwoOptions',\n LOOKUP_SIMPLE = 'Lookup.Simple',\n LOOKUP_OWNER = 'Lookup.Owner',\n LOOKUP_CUSTOMER = 'Lookup.Customer',\n // Not supported in pcf dataset - https://learn.microsoft.com/en-us/power-apps/developer/component-framework/manifest-schema-reference/property-set#value-elements-that-are-not-supported\n WHOLE_LANGUAGE = 'Whole.Language',\n WHOLE_DURATION = 'Whole.Duration',\n WHOLE_TIMEZONE = 'Whole.TimeZone',\n FILE = 'File',\n IMAGE = 'Image',\n }"],"names":[],"mappings":"IAAY,SAyBT;AAzBH,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,kBAAA,CAAA,GAAA,iBAAoC,CAAA;AACpC,IAAA,QAAA,CAAA,uBAAA,CAAA,GAAA,qBAA6C,CAAA;AAC7C,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,kBAAsC,CAAA;AACtC,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,kBAAsC,CAAA;AACtC,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,gBAAkC,CAAA;AAClC,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,QAAA,CAAA,6BAAA,CAAA,GAAA,yBAAuD,CAAA;AACvD,IAAA,QAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAChD,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,QAAA,CAAA,wBAAA,CAAA,GAAA,qBAA8C,CAAA;AAC9C,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;;AAEnC,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAzBS,QAAQ,KAAR,QAAQ,GAyBjB,EAAA,CAAA,CAAA;;;;"}
@@ -1 +1,9 @@
1
- import{useContext as r}from"react";import{GridContext as t}from"../../GridContext.js";const o=()=>r(t).gridInstance;export{o as useGridInstance};
1
+ import { useContext } from 'react';
2
+ import { GridContext } from '../../GridContext.js';
3
+
4
+ const useGridInstance = () => {
5
+ return useContext(GridContext).gridInstance;
6
+ };
7
+
8
+ export { useGridInstance };
9
+ //# sourceMappingURL=useGridInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGridInstance.js","sources":["../../../../../src/components/Grid/core/hooks/useGridInstance.ts"],"sourcesContent":["import { useContext } from \"react\"\nimport { GridContext } from \"../../GridContext\";\nimport { Grid } from \"../model/Grid\";\n\nexport const useGridInstance = (): Grid => {\n return useContext(GridContext).gridInstance;\n}"],"names":[],"mappings":";;;AAIO,MAAM,eAAe,GAAG,MAAW;AACtC,IAAA,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;AAChD;;;;"}
@@ -1 +1,20 @@
1
- import{__awaiter as o}from"tslib";import{useMemo as i,useEffect as d}from"react";const r=(r,e)=>{const t=i((()=>crypto.randomUUID()),[]);d((()=>(o(void 0,void 0,void 0,(function*(){(yield r).addRefreshCallback(t,e)})),()=>{o(void 0,void 0,void 0,(function*(){(yield r).removeRefreshCallback(t)}))})),[])};export{r as useRefreshCallback};
1
+ import { useMemo, useEffect } from 'react';
2
+
3
+ const useRefreshCallback = (model, refreshCallback) => {
4
+ const id = useMemo(() => crypto.randomUUID(), []);
5
+ useEffect(() => {
6
+ (async () => {
7
+ const _model = await model;
8
+ _model.addRefreshCallback(id, refreshCallback);
9
+ })();
10
+ return () => {
11
+ (async () => {
12
+ const _model = await model;
13
+ _model.removeRefreshCallback(id);
14
+ })();
15
+ };
16
+ }, []);
17
+ };
18
+
19
+ export { useRefreshCallback };
20
+ //# sourceMappingURL=useRefreshCallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRefreshCallback.js","sources":["../../../../../src/components/Grid/core/hooks/useRefreshCallback.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { GridDependency } from \"../model/GridDependency\";\n\nexport const useRefreshCallback = (model: GridDependency | Promise<GridDependency>, refreshCallback: () => any) => {\n const id = useMemo(() => crypto.randomUUID(), [])\n useEffect(() => {\n (async () => {\n const _model = await model;\n _model.addRefreshCallback(id, refreshCallback);\n })();\n return () => {\n (async () => {\n const _model = await model;\n _model.removeRefreshCallback(id);\n \n })();\n }\n }, []);\n};"],"names":[],"mappings":";;MAGa,kBAAkB,GAAG,CAAC,KAA+C,EAAE,eAA0B,KAAI;AAC9G,IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;IACjD,SAAS,CAAC,MAAK;QACX,CAAC,YAAW;AACR,YAAA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;AAC3B,YAAA,MAAM,CAAC,kBAAkB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;SAClD,GAAG,CAAC;AACL,QAAA,OAAO,MAAK;YACR,CAAC,YAAW;AACR,gBAAA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;AAC3B,gBAAA,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;aAEpC,GAAG,CAAC;AACT,SAAC,CAAA;KACJ,EAAE,EAAE,CAAC,CAAC;AACX;;;;"}
@@ -1 +1,13 @@
1
- import{__awaiter as o}from"tslib";import{useState as i}from"react";const t=()=>{const[t,r]=i(0);return[t,i=>o(void 0,void 0,void 0,(function*(){yield null==i?void 0:i(),r((o=>o+1))}))]};export{t as useRerender};
1
+ import { useState } from 'react';
2
+
3
+ const useRerender = () => {
4
+ const [rerender, setRerender] = useState(0);
5
+ const renderDecorator = async (fn) => {
6
+ await fn?.();
7
+ setRerender(c => c + 1);
8
+ };
9
+ return [rerender, renderDecorator];
10
+ };
11
+
12
+ export { useRerender };
13
+ //# sourceMappingURL=useRerender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRerender.js","sources":["../../../../../src/components/Grid/core/hooks/useRerender.ts"],"sourcesContent":["import { useEffect, useState } from \"react\"\n\nexport const useRerender = (): [\n number,\n (fn?: () => any | Promise<any>) => void\n] => {\n const [rerender, setRerender] = useState<number>(0);\n\n const renderDecorator = async (fn?: () => any | Promise<any>) => {\n await fn?.();\n setRerender(c => c + 1);\n }\n\n return [rerender, renderDecorator];\n}"],"names":[],"mappings":";;AAEO,MAAM,WAAW,GAAG,MAGvB;IACA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC;AAEpD,IAAA,MAAM,eAAe,GAAG,OAAO,EAA6B,KAAI;QAC5D,MAAM,EAAE,IAAI,CAAC;QACb,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,KAAC,CAAA;AAED,IAAA,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AACvC;;;;"}
@@ -1 +1,249 @@
1
- import{__awaiter as e}from"tslib";import{RIBBON_COLUMN_KEY as t}from"../../constants.js";import{Filtering as i}from"../../filtering/model/Filtering.js";import{Paging as r}from"../../paging/model/Paging.js";import{Selection as s}from"../../selection/model/Selection.js";import{Sorting as n}from"../../sorting/Sorting.js";import{DataType as o}from"../enums/DataType.js";import{RecordUpdateService as a}from"../services/RecordUpdateService/model/RecordUpdateService.js";import{Metadata as d}from"./Metadata.js";import"./GridDependency.js";import"../../filtering/model/Condition.js";import"../enums/ConditionOperator.js";import"../../validation/model/ColumnValidation.js";import"validator/es/lib/isEmail";import"validator/es/lib/isURL";import"dayjs";import"../../filtering/utils/FilteringUtilts.js";import"../../filtering/constants.js";import"fast-deep-equal/es6";import"lodash";import"numeral";import"../../../../utils/Numeral.js";class Grid{constructor(e,t){this._columns=[],this._records=[],this._shouldRerender=!1,this._props=e,this._dataset=e.parameters.Grid,this._pcfContext=e.context,this._labels=t,this._dependencies={recordUpdateService:new a(this),filtering:new i(this),selection:new s(this),metadata:new d(this),sorting:new n(this),paging:new r(this)}}get isNavigationEnabled(){var e;return!1!==(null===(e=this.parameters.EnableNavigation)||void 0===e?void 0:e.raw)}get isEditable(){return!!this._columns.find((e=>e.isEditable))}get parameters(){return this._props.parameters}get error(){return this._dataset.error}get errorMessage(){return this._dataset.errorMessage}get labels(){return this._labels}get dataset(){return this._dataset}get pcfContext(){return this._pcfContext}get props(){return this._props}get columns(){return this._columns}get records(){return this._records}get recordUpdateService(){return this._dependencies.recordUpdateService}get sorting(){return this._dependencies.sorting}get metadata(){return this._dependencies.metadata}get filtering(){return this._dependencies.filtering}get selection(){return this._dependencies.selection}get paging(){return this._dependencies.paging}get shouldRerender(){return this._shouldRerender}get loading(){return this._dataset.loading}get state(){return this._props.state}get useContainerAsHeight(){var e;return!0===(null===(e=this.parameters.UseContainerAsHeight)||void 0===e?void 0:e.raw)}get enableOptionSetColors(){var e;return!0===(null===(e=this.parameters.EnableOptionSetColors)||void 0===e?void 0:e.raw)}get linking(){return this.dataset.linking}get inlineRibbonButtonIds(){var e;const t=null===(e=this.parameters.InlineRibbonButtonIds)||void 0===e?void 0:e.raw;if(t)return t.split(",")}openDatasetItem(e){this._dataset.openDatasetItem(e);const t=this._records.find((t=>t.getRecordId()===e.id.guid));t&&this.selection.toggle(t,!0,!0,!0)}updateDependencies(e){this._props=e,this._dataset=e.parameters.Grid,this._pcfContext=e.context;for(const[e,t]of Object.entries(this._dependencies))t.onDependenciesUpdated();this._shouldRerender=!this.shouldRerender}refreshColumns(){var i,r,s,n,a,d,l;return e(this,void 0,void 0,(function*(){const e=[];for(const u of this._dataset.columns){const p=null===(i=this._dataset.sorting)||void 0===i?void 0:i.find((e=>e.name===u.name)),m=(null===(r=u.name)||void 0===r?void 0:r.includes("."))?u.name.split(".")[0]:null,c=m?u.name.split(".")[1]:u.name,h=m?`${m}.${c}`:c;switch(u.dataType){case o.FILE:case o.IMAGE:if(m)continue}const g={entityAliasName:m,attributeName:c,key:m?`${m}.${c}`:c,isPrimary:u.isPrimary,dataType:u.dataType,displayName:u.displayName,isEditable:u.isEditable,isFilterable:this._isColumnFilterable(u),isRequired:u.isRequired,isSortable:this._isColumnSortable(u),isSorted:!!p,isSortedDescending:1===(null==p?void 0:p.sortDirection),width:(null===(d=null===(a=null===(n=null===(s=this.state)||void 0===s?void 0:s.columnSizing)||void 0===n?void 0:n.columnSizingModel)||void 0===a?void 0:a.find((e=>e.colId===h)))||void 0===d?void 0:d.width)||u.visualSizeFactor,isResizable:null===(l=u.isResizable)||void 0===l||l},v=yield this.filtering.condition(g);g.isFiltered=v.isAppliedToDataset,g.isEditable=yield this._isColumnEditable(g),g.isRequired=yield this._isColumnRequired(g),g.key===t&&(g.isFilterable=!1,g.isSortable=!1),e.push(g)}return void 0!==this.selection.type&&e.unshift({key:"__checkbox",attributeName:"__checkbox",width:45,isResizable:!1}),this._columns=e,e}))}refreshRecords(){const e=[];for(const[t,i]of Object.entries(this._dataset.records))e.push(i);return this._records=e,e}_isColumnEditable(t){var i,r,s;return e(this,void 0,void 0,(function*(){if("boolean"==typeof t.isEditable)return t.isEditable;if(!(null===(i=this._props.parameters.EnableEditing)||void 0===i?void 0:i.raw))return!1;if(t.entityAliasName)return!1;switch(t.dataType){case o.FILE:case o.IMAGE:return!1}const e=yield this._pcfContext.utils.getEntityMetadata(this._dataset.getTargetEntityType(),[t.attributeName]);return null!==(s=null===(r=e.Attributes.get(t.attributeName))||void 0===r?void 0:r.attributeDescriptor.IsValidForUpdate)&&void 0!==s&&s}))}_isColumnRequired(t){var i,r;return e(this,void 0,void 0,(function*(){if("boolean"==typeof t.isRequired)return t.isRequired;if(!(null===(i=this.parameters.EnableEditing)||void 0===i?void 0:i.raw))return!1;const e=yield this.metadata.get(t),s=null===(r=e.Attributes.get(t.attributeName))||void 0===r?void 0:r.attributeDescriptor.RequiredLevel;return 1===s||2===s}))}_isColumnSortable(e){var t;return!1!==(null===(t=this._props.parameters.EnableSorting)||void 0===t?void 0:t.raw)&&(e.dataType!==o.IMAGE&&!e.disableSorting)}_isColumnFilterable(e){var t,i;return!1!==(null===(t=this.props.parameters.EnableFiltering)||void 0===t?void 0:t.raw)&&(null===(i=e.isFilterable)||void 0===i||i)}}export{Grid};
1
+ import { RIBBON_COLUMN_KEY } from '../../constants.js';
2
+ import { Filtering } from '../../filtering/model/Filtering.js';
3
+ import { Paging } from '../../paging/model/Paging.js';
4
+ import { Selection } from '../../selection/model/Selection.js';
5
+ import { Sorting } from '../../sorting/Sorting.js';
6
+ import { DataType } from '../enums/DataType.js';
7
+ import { RecordUpdateService } from '../services/RecordUpdateService/model/RecordUpdateService.js';
8
+ import { Metadata } from './Metadata.js';
9
+
10
+ class Grid {
11
+ constructor(props, labels) {
12
+ this._columns = [];
13
+ this._records = [];
14
+ this._shouldRerender = false;
15
+ this._props = props;
16
+ this._dataset = props.parameters.Grid;
17
+ this._pcfContext = props.context;
18
+ this._labels = labels;
19
+ this._dependencies = {
20
+ recordUpdateService: new RecordUpdateService(this),
21
+ filtering: new Filtering(this),
22
+ selection: new Selection(this),
23
+ metadata: new Metadata(this),
24
+ sorting: new Sorting(this),
25
+ paging: new Paging(this)
26
+ };
27
+ }
28
+ ;
29
+ get isNavigationEnabled() {
30
+ //enabled by default
31
+ return this.parameters.EnableNavigation?.raw !== false;
32
+ }
33
+ get isEditable() {
34
+ return this._columns.find(x => x.isEditable) ? true : false;
35
+ }
36
+ get parameters() {
37
+ return this._props.parameters;
38
+ }
39
+ get error() {
40
+ return this._dataset.error;
41
+ }
42
+ get errorMessage() {
43
+ return this._dataset.errorMessage;
44
+ }
45
+ get labels() {
46
+ return this._labels;
47
+ }
48
+ get dataset() {
49
+ return this._dataset;
50
+ }
51
+ get pcfContext() {
52
+ return this._pcfContext;
53
+ }
54
+ get props() {
55
+ return this._props;
56
+ }
57
+ get columns() {
58
+ return this._columns;
59
+ }
60
+ get records() {
61
+ return this._records;
62
+ }
63
+ get recordUpdateService() {
64
+ return this._dependencies.recordUpdateService;
65
+ }
66
+ get sorting() {
67
+ return this._dependencies.sorting;
68
+ }
69
+ get metadata() {
70
+ return this._dependencies.metadata;
71
+ }
72
+ get filtering() {
73
+ return this._dependencies.filtering;
74
+ }
75
+ get selection() {
76
+ return this._dependencies.selection;
77
+ }
78
+ get paging() {
79
+ return this._dependencies.paging;
80
+ }
81
+ get shouldRerender() {
82
+ return this._shouldRerender;
83
+ }
84
+ get loading() {
85
+ return this._dataset.loading;
86
+ }
87
+ get state() {
88
+ return this._props.state;
89
+ }
90
+ get useContainerAsHeight() {
91
+ return this.parameters.UseContainerAsHeight?.raw === true;
92
+ }
93
+ get enableOptionSetColors() {
94
+ return this.parameters.EnableOptionSetColors?.raw === true;
95
+ }
96
+ get linking() {
97
+ return this.dataset.linking;
98
+ }
99
+ get inlineRibbonButtonIds() {
100
+ const idString = this.parameters.InlineRibbonButtonIds?.raw;
101
+ if (!idString) {
102
+ return undefined;
103
+ }
104
+ return idString.split(',');
105
+ }
106
+ openDatasetItem(entityReference) {
107
+ this._dataset.openDatasetItem(entityReference);
108
+ const clickedRecord = this._records.find(x => x.getRecordId() === entityReference.id.guid);
109
+ //we need to make sure the item we are opening gets selected in order for the
110
+ //OnOpenRecord ribbon scripts to work correctly
111
+ //if no record found we have clicked a lookup, no selection should be happening in that case
112
+ if (clickedRecord) {
113
+ this.selection.toggle(clickedRecord, true, true, true);
114
+ }
115
+ }
116
+ updateDependencies(props) {
117
+ this._props = props;
118
+ this._dataset = props.parameters.Grid;
119
+ this._pcfContext = props.context;
120
+ for (const [key, dependency] of Object.entries(this._dependencies)) {
121
+ dependency.onDependenciesUpdated();
122
+ }
123
+ this._shouldRerender = !this.shouldRerender;
124
+ }
125
+ async refreshColumns() {
126
+ const gridColumns = [];
127
+ for (const column of this._dataset.columns) {
128
+ const sorted = this._dataset.sorting?.find(sort => sort.name === column.name);
129
+ const entityAliasName = column.name?.includes('.') ? column.name.split('.')[0] : null;
130
+ const attributeName = entityAliasName ? column.name.split('.')[1] : column.name;
131
+ const key = entityAliasName ? `${entityAliasName}.${attributeName}` : attributeName;
132
+ switch (column.dataType) {
133
+ case DataType.FILE:
134
+ case DataType.IMAGE: {
135
+ if (entityAliasName) {
136
+ //we do not support file fields with linked entities
137
+ //the getValue API throws an error in Power Apps
138
+ continue;
139
+ }
140
+ }
141
+ }
142
+ const gridColumn = {
143
+ entityAliasName: entityAliasName,
144
+ attributeName: attributeName,
145
+ key: entityAliasName ? `${entityAliasName}.${attributeName}` : attributeName,
146
+ isPrimary: column.isPrimary,
147
+ dataType: column.dataType,
148
+ displayName: column.displayName,
149
+ isEditable: column.isEditable,
150
+ isFilterable: this._isColumnFilterable(column),
151
+ isRequired: column.isRequired,
152
+ isSortable: this._isColumnSortable(column),
153
+ isSorted: sorted ? true : false,
154
+ isSortedDescending: sorted?.sortDirection === 1 ? true : false,
155
+ width: this.state?.columnSizing?.columnSizingModel?.find((x) => x.colId === key)?.width || column.visualSizeFactor,
156
+ isResizable: column.isResizable ?? true,
157
+ };
158
+ const condition = await this.filtering.condition(gridColumn);
159
+ gridColumn.isFiltered = condition.isAppliedToDataset;
160
+ gridColumn.isEditable = await this._isColumnEditable(gridColumn);
161
+ gridColumn.isRequired = await this._isColumnRequired(gridColumn);
162
+ if (gridColumn.key === RIBBON_COLUMN_KEY) {
163
+ gridColumn.isFilterable = false;
164
+ gridColumn.isSortable = false;
165
+ }
166
+ gridColumns.push(gridColumn);
167
+ }
168
+ /* gridColumns.unshift({
169
+ key: RIBBON_COLUMN_KEY,
170
+ attributeName: RIBBON_COLUMN_KEY,
171
+ }) */
172
+ if (this.selection.type !== undefined) {
173
+ gridColumns.unshift({
174
+ key: '__checkbox',
175
+ attributeName: '__checkbox',
176
+ width: 45,
177
+ isResizable: false
178
+ });
179
+ }
180
+ this._columns = gridColumns;
181
+ return gridColumns;
182
+ }
183
+ refreshRecords() {
184
+ const records = [];
185
+ for (const [_, record] of Object.entries(this._dataset.records)) {
186
+ records.push(record);
187
+ }
188
+ this._records = records;
189
+ return records;
190
+ }
191
+ async _isColumnEditable(column) {
192
+ //top priority, overriden through props
193
+ if (typeof column.isEditable === 'boolean') {
194
+ return column.isEditable;
195
+ }
196
+ //only allow editing if specifically allowed
197
+ if (!this._props.parameters.EnableEditing?.raw) {
198
+ return false;
199
+ }
200
+ //we are not supporting editing for linked entities
201
+ if (column.entityAliasName) {
202
+ return false;
203
+ }
204
+ //these field types do not support editing
205
+ switch (column.dataType) {
206
+ case DataType.FILE:
207
+ case DataType.IMAGE: {
208
+ return false;
209
+ }
210
+ }
211
+ const metadata = await this._pcfContext.utils.getEntityMetadata(this._dataset.getTargetEntityType(), [column.attributeName]);
212
+ //IsEditable is not available in Power Apps
213
+ return metadata.Attributes.get(column.attributeName)?.attributeDescriptor.IsValidForUpdate ?? false;
214
+ }
215
+ async _isColumnRequired(column) {
216
+ if (typeof column.isRequired === 'boolean') {
217
+ return column.isRequired;
218
+ }
219
+ if (!this.parameters.EnableEditing?.raw) {
220
+ return false;
221
+ }
222
+ const metadata = await this.metadata.get(column);
223
+ const requiredLevel = metadata.Attributes.get(column.attributeName)?.attributeDescriptor.RequiredLevel;
224
+ if (requiredLevel === 1 || requiredLevel === 2) {
225
+ return true;
226
+ }
227
+ return false;
228
+ }
229
+ _isColumnSortable(column) {
230
+ if (this._props.parameters.EnableSorting?.raw === false) {
231
+ return false;
232
+ }
233
+ switch (column.dataType) {
234
+ case DataType.IMAGE: {
235
+ return false;
236
+ }
237
+ }
238
+ return !column.disableSorting;
239
+ }
240
+ _isColumnFilterable(column) {
241
+ if (this.props.parameters.EnableFiltering?.raw === false) {
242
+ return false;
243
+ }
244
+ return column.isFilterable ?? true;
245
+ }
246
+ }
247
+
248
+ export { Grid };
249
+ //# sourceMappingURL=Grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grid.js","sources":["../../../../../src/components/Grid/core/model/Grid.ts"],"sourcesContent":["import { IDatasetProperty } from \"../../../../interfaces\";\nimport { RIBBON_COLUMN_KEY } from \"../../constants\";\nimport { Filtering } from \"../../filtering/model/Filtering\";\nimport { IEntityColumn, IEntityRecord, IGrid } from \"../../interfaces\";\nimport { Paging } from \"../../paging/model/Paging\";\nimport { Selection } from \"../../selection/model/Selection\";\nimport { Sorting } from \"../../sorting/Sorting\";\nimport { DataType } from \"../enums/DataType\";\nimport { IGridColumn } from \"../interfaces/IGridColumn\";\nimport { RecordUpdateService } from \"../services/RecordUpdateService/model/RecordUpdateService\";\nimport { Metadata } from \"./Metadata\";\n\nexport class Grid {\n private _props: IGrid;\n private _dataset: IDatasetProperty\n private _pcfContext: ComponentFramework.Context<any>;\n private _columns: IGridColumn[] = [];\n private _records: IEntityRecord[] = [];\n //TODO: fix\n private _labels: any;\n private _shouldRerender: boolean = false;\n //TODO: the dependencies might not have fully loaded grid\n //need to make sure that the grid is initialized before creating them\n private _dependencies: {\n recordUpdateService: RecordUpdateService,\n filtering: Filtering,\n sorting: Sorting,\n metadata: Metadata,\n selection: Selection,\n paging: Paging\n };\n constructor(props: IGrid, labels: any) {\n this._props = props;\n this._dataset = props.parameters.Grid;\n this._pcfContext = props.context;\n this._labels = labels;\n\n this._dependencies = {\n recordUpdateService: new RecordUpdateService(this),\n filtering: new Filtering(this),\n selection: new Selection(this),\n metadata: new Metadata(this),\n sorting: new Sorting(this),\n paging: new Paging(this)\n }\n\n };\n public get isNavigationEnabled() {\n //enabled by default\n return this.parameters.EnableNavigation?.raw !== false;\n }\n public get isEditable() {\n return this._columns.find(x => x.isEditable) ? true : false;\n }\n public get parameters() {\n return this._props.parameters\n }\n public get error() {\n return this._dataset.error;\n }\n public get errorMessage() {\n return this._dataset.errorMessage\n }\n public get labels() {\n return this._labels;\n }\n public get dataset() {\n return this._dataset;\n }\n public get pcfContext() {\n return this._pcfContext;\n }\n public get props() {\n return this._props;\n }\n public get columns() {\n return this._columns;\n }\n public get records() {\n return this._records;\n }\n public get recordUpdateService() {\n return this._dependencies.recordUpdateService;\n }\n public get sorting() {\n return this._dependencies.sorting;\n }\n public get metadata() {\n return this._dependencies.metadata;\n }\n public get filtering() {\n return this._dependencies.filtering;\n }\n public get selection() {\n return this._dependencies.selection;\n }\n public get paging() {\n return this._dependencies.paging;\n }\n public get shouldRerender() {\n return this._shouldRerender;\n }\n public get loading() {\n return this._dataset.loading;\n }\n public get state() {\n return this._props.state;\n }\n public get useContainerAsHeight() {\n return this.parameters.UseContainerAsHeight?.raw === true;\n }\n public get enableOptionSetColors() {\n return this.parameters.EnableOptionSetColors?.raw === true;\n }\n public get linking() {\n return this.dataset.linking;\n }\n public get inlineRibbonButtonIds() {\n const idString = this.parameters.InlineRibbonButtonIds?.raw;\n if (!idString) {\n return undefined;\n }\n return idString.split(',');\n }\n\n public openDatasetItem(entityReference: ComponentFramework.EntityReference) {\n this._dataset.openDatasetItem(entityReference);\n const clickedRecord = this._records.find(x => x.getRecordId() === entityReference.id.guid);\n //we need to make sure the item we are opening gets selected in order for the\n //OnOpenRecord ribbon scripts to work correctly\n //if no record found we have clicked a lookup, no selection should be happening in that case\n if (clickedRecord) {\n this.selection.toggle(clickedRecord, true, true, true);\n }\n }\n\n public updateDependencies(props: IGrid): void {\n this._props = props;\n this._dataset = props.parameters.Grid;\n this._pcfContext = props.context;\n for (const [key, dependency] of Object.entries(this._dependencies)) {\n dependency.onDependenciesUpdated()\n }\n this._shouldRerender = !this.shouldRerender;\n }\n public async refreshColumns(): Promise<IGridColumn[]> {\n const gridColumns: IGridColumn[] = [];\n for (const column of this._dataset.columns) {\n const sorted = this._dataset.sorting?.find(sort => sort.name === column.name);\n const entityAliasName = column.name?.includes('.') ? column.name.split('.')[0] : null;\n const attributeName = entityAliasName ? column.name.split('.')[1] : column.name;\n const key = entityAliasName ? `${entityAliasName}.${attributeName}` : attributeName;\n switch (column.dataType) {\n case DataType.FILE:\n case DataType.IMAGE: {\n if (entityAliasName) {\n //we do not support file fields with linked entities\n //the getValue API throws an error in Power Apps\n continue;\n }\n }\n }\n const gridColumn = {\n entityAliasName: entityAliasName,\n attributeName: attributeName,\n key: entityAliasName ? `${entityAliasName}.${attributeName}` : attributeName,\n isPrimary: column.isPrimary,\n dataType: column.dataType as DataType,\n displayName: column.displayName,\n isEditable: column.isEditable,\n isFilterable: this._isColumnFilterable(column),\n isRequired: column.isRequired,\n isSortable: this._isColumnSortable(column),\n isSorted: sorted ? true : false,\n isSortedDescending: sorted?.sortDirection === 1 ? true : false,\n width: this.state?.columnSizing?.columnSizingModel?.find((x: any) => x.colId === key)?.width || column.visualSizeFactor,\n isResizable: column.isResizable ?? true,\n } as IGridColumn;\n\n const condition = await this.filtering.condition(gridColumn);\n gridColumn.isFiltered = condition.isAppliedToDataset;\n gridColumn.isEditable = await this._isColumnEditable(gridColumn);\n gridColumn.isRequired = await this._isColumnRequired(gridColumn);\n\n if (gridColumn.key === RIBBON_COLUMN_KEY) {\n gridColumn.isFilterable = false;\n gridColumn.isSortable = false;\n }\n gridColumns.push(gridColumn);\n }\n/* gridColumns.unshift({\n key: RIBBON_COLUMN_KEY,\n attributeName: RIBBON_COLUMN_KEY,\n }) */\n if (this.selection.type !== undefined) {\n gridColumns.unshift({\n key: '__checkbox',\n attributeName: '__checkbox',\n width: 45,\n isResizable: false\n })\n }\n this._columns = gridColumns;\n return gridColumns;\n }\n\n public refreshRecords(): IEntityRecord[] {\n const records = [];\n for (const [_, record] of Object.entries(this._dataset.records)) {\n records.push(record);\n }\n this._records = records;\n return records\n }\n\n private async _isColumnEditable(column: IGridColumn): Promise<boolean> {\n //top priority, overriden through props\n if (typeof column.isEditable === 'boolean') {\n return column.isEditable\n }\n //only allow editing if specifically allowed\n if (!this._props.parameters.EnableEditing?.raw) {\n return false;\n }\n //we are not supporting editing for linked entities\n if (column.entityAliasName) {\n return false;\n }\n //these field types do not support editing\n switch (column.dataType) {\n case DataType.FILE:\n case DataType.IMAGE: {\n return false;\n }\n }\n const metadata = await this._pcfContext.utils.getEntityMetadata(this._dataset.getTargetEntityType(), [column.attributeName]);\n //IsEditable is not available in Power Apps\n return metadata.Attributes.get(column.attributeName)?.attributeDescriptor.IsValidForUpdate ?? false;\n }\n\n private async _isColumnRequired(column: IGridColumn) {\n if (typeof column.isRequired === 'boolean') {\n return column.isRequired;\n }\n if (!this.parameters.EnableEditing?.raw) {\n return false;\n }\n const metadata = await this.metadata.get(column);\n const requiredLevel = metadata.Attributes.get(column.attributeName)?.attributeDescriptor.RequiredLevel;\n if (requiredLevel === 1 || requiredLevel === 2) {\n return true;\n }\n return false;\n }\n private _isColumnSortable(column: IEntityColumn) {\n if (this._props.parameters.EnableSorting?.raw === false) {\n return false;\n }\n switch (column.dataType) {\n case DataType.IMAGE: {\n return false;\n }\n }\n return !column.disableSorting;\n }\n private _isColumnFilterable(column: IEntityColumn) {\n if (this.props.parameters.EnableFiltering?.raw === false) {\n return false;\n }\n return column.isFilterable ?? true;\n }\n}"],"names":[],"mappings":"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"}
@@ -1 +1,28 @@
1
- class GridDependency{constructor(e){this._refreshCallbacks=new Map,this._grid=e}addRefreshCallback(e,s){this._refreshCallbacks.set(e,s)}removeRefreshCallback(e){this._refreshCallbacks.delete(e)}onDependenciesUpdated(){}_triggerRefreshCallbacks(){for(const e of this._refreshCallbacks.values())e()}get _dataset(){return this._grid.dataset}get _pcfContext(){return this._grid.pcfContext}}export{GridDependency};
1
+ class GridDependency {
2
+ constructor(grid) {
3
+ this._refreshCallbacks = new Map();
4
+ this._grid = grid;
5
+ }
6
+ addRefreshCallback(id, callback) {
7
+ this._refreshCallbacks.set(id, callback);
8
+ }
9
+ removeRefreshCallback(id) {
10
+ this._refreshCallbacks.delete(id);
11
+ }
12
+ onDependenciesUpdated() {
13
+ }
14
+ _triggerRefreshCallbacks() {
15
+ for (const refreshCallback of this._refreshCallbacks.values()) {
16
+ refreshCallback();
17
+ }
18
+ }
19
+ get _dataset() {
20
+ return this._grid.dataset;
21
+ }
22
+ get _pcfContext() {
23
+ return this._grid.pcfContext;
24
+ }
25
+ }
26
+
27
+ export { GridDependency };
28
+ //# sourceMappingURL=GridDependency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GridDependency.js","sources":["../../../../../src/components/Grid/core/model/GridDependency.ts"],"sourcesContent":["import { Grid } from \"./Grid\";\n\nexport class GridDependency {\n protected _grid: Grid;\n protected _refreshCallbacks: Map<string, () => any> = new Map();\n \n constructor(grid: Grid) {\n this._grid = grid;\n }\n\n public addRefreshCallback(id: string, callback: () => any) {\n this._refreshCallbacks.set(id, callback);\n }\n\n public removeRefreshCallback(id: string) {\n this._refreshCallbacks.delete(id);\n }\n\n public onDependenciesUpdated() {\n\n }\n\n protected _triggerRefreshCallbacks() {\n for(const refreshCallback of this._refreshCallbacks.values()) {\n refreshCallback();\n }\n }\n protected get _dataset() {\n return this._grid.dataset;\n }\n protected get _pcfContext() {\n return this._grid.pcfContext;\n }\n}"],"names":[],"mappings":"MAEa,cAAc,CAAA;AAIvB,IAAA,WAAA,CAAY,IAAU,EAAA;AAFZ,QAAA,IAAA,CAAA,iBAAiB,GAA2B,IAAI,GAAG,EAAE,CAAC;AAG5D,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACrB;IAEM,kBAAkB,CAAC,EAAU,EAAE,QAAmB,EAAA;QACrD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;KAC5C;AAEM,IAAA,qBAAqB,CAAC,EAAU,EAAA;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACrC;IAEM,qBAAqB,GAAA;KAE3B;IAES,wBAAwB,GAAA;QAC9B,KAAI,MAAM,eAAe,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE;AAC1D,YAAA,eAAe,EAAE,CAAC;AACrB,SAAA;KACJ;AACD,IAAA,IAAc,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;KAC7B;AACD,IAAA,IAAc,WAAW,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;KAChC;AACJ;;;;"}
@@ -1 +1,22 @@
1
- import{__awaiter as t}from"tslib";import{GridDependency as e}from"./GridDependency.js";class Metadata extends e{get(e){return t(this,void 0,void 0,(function*(){if(e.entityAliasName){const t=this._grid.dataset.linking.getLinkedEntities().find((t=>t.alias===e.entityAliasName));return yield this._grid.pcfContext.utils.getEntityMetadata(t.name,[e.attributeName])}return yield this._grid.pcfContext.utils.getEntityMetadata(this._grid.dataset.getTargetEntityType(),[e.attributeName])}))}getOptions(e){return t(this,void 0,void 0,(function*(){const t=yield this.get(e),i=t.Attributes.get(e.attributeName).attributeDescriptor.OptionSet;return[t.Attributes.get(e.attributeName).DefaultFormValue,i]}))}}export{Metadata};
1
+ import { GridDependency } from './GridDependency.js';
2
+
3
+ class Metadata extends GridDependency {
4
+ async get(column) {
5
+ if (column.entityAliasName) {
6
+ const linkedEntity = this._grid.dataset.linking.getLinkedEntities().find(x => x.alias === column.entityAliasName);
7
+ return await this._grid.pcfContext.utils.getEntityMetadata(linkedEntity.name, [column.attributeName]);
8
+ }
9
+ else {
10
+ return await this._grid.pcfContext.utils.getEntityMetadata(this._grid.dataset.getTargetEntityType(), [column.attributeName]);
11
+ }
12
+ }
13
+ async getOptions(column) {
14
+ const columnMetadata = await this.get(column);
15
+ const options = columnMetadata.Attributes.get(column.attributeName).attributeDescriptor.OptionSet;
16
+ const defaultValue = columnMetadata.Attributes.get(column.attributeName).DefaultFormValue;
17
+ return [defaultValue, options];
18
+ }
19
+ }
20
+
21
+ export { Metadata };
22
+ //# sourceMappingURL=Metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Metadata.js","sources":["../../../../../src/components/Grid/core/model/Metadata.ts"],"sourcesContent":["import { IGridColumn } from \"../interfaces/IGridColumn\";\nimport { GridDependency } from \"./GridDependency\";\n\nexport class Metadata extends GridDependency {\n public async get(column: IGridColumn): Promise<ComponentFramework.PropertyHelper.EntityMetadata> {\n if(column.entityAliasName) {\n const linkedEntity = this._grid.dataset.linking.getLinkedEntities().find(x => x.alias === column.entityAliasName)!;\n return await this._grid.pcfContext.utils.getEntityMetadata(linkedEntity.name, [column.attributeName]);\n }\n else {\n return await this._grid.pcfContext.utils.getEntityMetadata(this._grid.dataset.getTargetEntityType(), [column.attributeName]);\n }\n }\n public async getOptions(column: IGridColumn): Promise<[number | boolean, ComponentFramework.PropertyHelper.OptionMetadata[]]> {\n const columnMetadata = await this.get(column);\n const options = columnMetadata.Attributes.get(column.attributeName).attributeDescriptor.OptionSet as ComponentFramework.PropertyHelper.OptionMetadata[]\n const defaultValue = columnMetadata.Attributes.get(column.attributeName).DefaultFormValue as number | boolean;\n return [defaultValue, options];\n }\n}\n"],"names":[],"mappings":";;AAGM,MAAO,QAAS,SAAQ,cAAc,CAAA;IACjC,MAAM,GAAG,CAAC,MAAmB,EAAA;QAChC,IAAG,MAAM,CAAC,eAAe,EAAE;YACvB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,eAAe,CAAE,CAAC;YACnH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AACzG,SAAA;AACI,aAAA;YACD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChI,SAAA;KACJ;IACM,MAAM,UAAU,CAAC,MAAmB,EAAA;QACvC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9C,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,mBAAmB,CAAC,SAA+D,CAAA;AACvJ,QAAA,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAoC,CAAC;AAC9G,QAAA,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;KAClC;AACJ;;;;"}
@@ -1 +1,25 @@
1
- import{useGridInstance as e}from"../../../hooks/useGridInstance.js";import"react";import"../../../../GridContext.js";const r=()=>{const r=e().recordUpdateService;return{isDirty:r.isDirty,hasInvalidRecords:r.hasInvalidRecords,updatedRecords:[...r.updatedRecords.values()],saveAll:()=>r.saveAll(),clearAll:()=>r.clearAll(),record:e=>{const t=r.record(e);return{get:()=>t.get(),setValue:(e,r)=>{t.setValue(e,r)}}}}};export{r as useRecordUpdateServiceController};
1
+ import { useGridInstance } from '../../../hooks/useGridInstance.js';
2
+
3
+ const useRecordUpdateServiceController = () => {
4
+ const grid = useGridInstance();
5
+ const recordUpdateService = grid.recordUpdateService;
6
+ return {
7
+ isDirty: recordUpdateService.isDirty,
8
+ hasInvalidRecords: recordUpdateService.hasInvalidRecords,
9
+ updatedRecords: [...recordUpdateService.updatedRecords.values()],
10
+ saveAll: () => recordUpdateService.saveAll(),
11
+ clearAll: () => recordUpdateService.clearAll(),
12
+ record: (recordId) => {
13
+ const record = recordUpdateService.record(recordId);
14
+ return {
15
+ get: () => record.get(),
16
+ setValue: (columnName, value) => {
17
+ record.setValue(columnName, value);
18
+ }
19
+ };
20
+ }
21
+ };
22
+ };
23
+
24
+ export { useRecordUpdateServiceController };
25
+ //# sourceMappingURL=useRecordUpdateServiceController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRecordUpdateServiceController.js","sources":["../../../../../../../src/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.ts"],"sourcesContent":["import { useGridInstance } from \"../../../hooks/useGridInstance\";\nimport { IUpdatedRecord } from \"../model/RecordUpdateService\";\n\ninterface IRecordUpdateServiceController {\n isDirty: boolean,\n hasInvalidRecords: boolean\n updatedRecords: IUpdatedRecord[];\n saveAll: () => Promise<boolean>;\n clearAll: () => void,\n record(recordId: string): {\n get: () => IUpdatedRecord | undefined\n setValue: (columnName: string, value: any) => void\n }\n}\n\nexport const useRecordUpdateServiceController = (): IRecordUpdateServiceController => {\n const grid = useGridInstance();\n const recordUpdateService = grid.recordUpdateService;\n \n return {\n isDirty: recordUpdateService.isDirty,\n hasInvalidRecords: recordUpdateService.hasInvalidRecords,\n updatedRecords: [...recordUpdateService.updatedRecords.values()],\n saveAll: () => recordUpdateService.saveAll(),\n clearAll: () => recordUpdateService.clearAll(),\n record: (recordId: string) => {\n const record = recordUpdateService.record(recordId);\n return {\n get: () => record.get(),\n setValue: (columnName: string, value: any) => {\n record.setValue(columnName, value)\n } \n }\n }\n }\n}"],"names":[],"mappings":";;AAeO,MAAM,gCAAgC,GAAG,MAAqC;AACjF,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAErD,OAAO;QACH,OAAO,EAAE,mBAAmB,CAAC,OAAO;QACpC,iBAAiB,EAAE,mBAAmB,CAAC,iBAAiB;QACxD,cAAc,EAAE,CAAC,GAAG,mBAAmB,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;AAChE,QAAA,OAAO,EAAE,MAAM,mBAAmB,CAAC,OAAO,EAAE;AAC5C,QAAA,QAAQ,EAAE,MAAM,mBAAmB,CAAC,QAAQ,EAAE;AAC9C,QAAA,MAAM,EAAE,CAAC,QAAgB,KAAI;YACzB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpD,OAAO;AACH,gBAAA,GAAG,EAAE,MAAM,MAAM,CAAC,GAAG,EAAE;AACvB,gBAAA,QAAQ,EAAE,CAAC,UAAkB,EAAE,KAAU,KAAI;AACzC,oBAAA,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;iBACrC;aACJ,CAAA;SACJ;KACJ,CAAA;AACL;;;;"}