@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,116 @@
1
- import{GridDependency as e}from"../../../model/GridDependency.js";import{DataType as t}from"../../../enums/DataType.js";class AgGrid extends e{constructor(e,t){var i,s;super(e),this._gridApiRef=t,this.initialPageSize=null!==(s=null===(i=e.state)||void 0===i?void 0:i.initialPageSize)&&void 0!==s?s:e.paging.pageSize}get columns(){const e=[];for(const i of this._grid.columns){const s={colId:i.key,field:i.key,headerName:i.displayName,initialWidth:i.width,sortable:i.isSortable,editable:i.isEditable,resizable:i.isResizable,suppressMovable:!!this._grid.props.parameters.ChangeEditorMode||void 0,autoHeaderHeight:!0,suppressSizeToFit:"__checkbox"===i.key,cellClass:this._getCellClassName(i),valueFormatter:e=>e.data.getFormattedValue(i.key),valueGetter:e=>e.data.getValue(i.key),cellRendererParams:{baseColumn:i},cellEditorParams:{baseColumn:i},headerComponentParams:{baseColumn:i},suppressKeyboardEvent:e=>{if("Enter"!==e.event.key||0===e.api.getEditingCells().length)return!1;switch(i.dataType){case t.DATE_AND_TIME_DATE_AND_TIME:case t.DATE_AND_TIME_DATE_ONLY:case t.LOOKUP_OWNER:case t.LOOKUP_SIMPLE:case t.LOOKUP_CUSTOMER:case t.MULTI_SELECT_OPTIONSET:case t.OPTIONSET:case t.TWO_OPTIONS:case t.WHOLE_DURATION:return!0}return!1}};e.push(s)}return e}get maxNumberOfVisibleRecords(){return this.initialPageSize<this._grid.records.length?this.initialPageSize:this._grid.records.length}getTotalColumnsWidth(){if(!this._gridApi)return 0;let e=0;for(const t of this._gridApi.getAllGridColumns())e+=t.getActualWidth();return e}selectRows(){if(!this._gridApi)return;const e=[];this._gridApi.deselectAll(),this._gridApi.forEachNode((t=>{this._grid.dataset.getSelectedRecordIds().includes(t.data.getRecordId())&&e.push(t)})),this._gridApi.setNodesSelected({nodes:e,newValue:!0}),this._gridApi.refreshCells({columns:["__checkbox"],force:!0})}get _gridApi(){return this._gridApiRef.current}_getCellClassName(e){switch(e.dataType){case t.CURRENCY:case t.DECIMAL:case t.WHOLE_NONE:return"talxis-cell-align-right"}return"talxis-cell-align-left"}}export{AgGrid};
1
+ import { GridDependency } from '../../../model/GridDependency.js';
2
+ import { DataType } from '../../../enums/DataType.js';
3
+
4
+ class AgGrid extends GridDependency {
5
+ constructor(grid, gridApiRef) {
6
+ super(grid);
7
+ this._gridApiRef = gridApiRef;
8
+ this.initialPageSize = grid.state?.initialPageSize ?? grid.paging.pageSize;
9
+ }
10
+ get columns() {
11
+ const agColumns = [];
12
+ for (const column of this._grid.columns) {
13
+ const agColumn = {
14
+ colId: column.key,
15
+ field: column.key,
16
+ headerName: column.displayName,
17
+ initialWidth: column.width,
18
+ sortable: column.isSortable,
19
+ editable: column.isEditable,
20
+ resizable: column.isResizable,
21
+ suppressMovable: this._grid.props.parameters.ChangeEditorMode ? true : undefined,
22
+ autoHeaderHeight: true,
23
+ suppressSizeToFit: column.key === '__checkbox',
24
+ cellClass: this._getCellClassName(column),
25
+ valueFormatter: (p) => {
26
+ return p.data.getFormattedValue(column.key);
27
+ },
28
+ valueGetter: (p) => {
29
+ return p.data.getValue(column.key);
30
+ },
31
+ cellRendererParams: {
32
+ baseColumn: column
33
+ },
34
+ cellEditorParams: {
35
+ baseColumn: column,
36
+ },
37
+ headerComponentParams: {
38
+ baseColumn: column
39
+ },
40
+ suppressKeyboardEvent: (params) => {
41
+ if (params.event.key !== 'Enter' || params.api.getEditingCells().length === 0) {
42
+ return false;
43
+ }
44
+ switch (column.dataType) {
45
+ case DataType.DATE_AND_TIME_DATE_AND_TIME:
46
+ case DataType.DATE_AND_TIME_DATE_ONLY:
47
+ case DataType.LOOKUP_OWNER:
48
+ case DataType.LOOKUP_SIMPLE:
49
+ case DataType.LOOKUP_CUSTOMER:
50
+ case DataType.MULTI_SELECT_OPTIONSET:
51
+ case DataType.OPTIONSET:
52
+ case DataType.TWO_OPTIONS:
53
+ case DataType.WHOLE_DURATION: {
54
+ return true;
55
+ }
56
+ }
57
+ return false;
58
+ },
59
+ };
60
+ agColumns.push(agColumn);
61
+ }
62
+ return agColumns;
63
+ }
64
+ get maxNumberOfVisibleRecords() {
65
+ if (this.initialPageSize < this._grid.records.length) {
66
+ return this.initialPageSize;
67
+ }
68
+ return this._grid.records.length;
69
+ }
70
+ getTotalColumnsWidth() {
71
+ if (!this._gridApi) {
72
+ return 0;
73
+ }
74
+ let width = 0;
75
+ for (const column of this._gridApi.getAllGridColumns()) {
76
+ width = width + column.getActualWidth();
77
+ }
78
+ return width;
79
+ }
80
+ selectRows() {
81
+ if (!this._gridApi) {
82
+ return;
83
+ }
84
+ const nodesToSelect = [];
85
+ this._gridApi.deselectAll();
86
+ this._gridApi.forEachNode((node) => {
87
+ if (this._grid.dataset.getSelectedRecordIds().includes(node.data.getRecordId())) {
88
+ nodesToSelect.push(node);
89
+ }
90
+ });
91
+ this._gridApi.setNodesSelected({
92
+ nodes: nodesToSelect,
93
+ newValue: true
94
+ });
95
+ this._gridApi.refreshCells({
96
+ columns: ['__checkbox'],
97
+ force: true
98
+ });
99
+ }
100
+ get _gridApi() {
101
+ return this._gridApiRef.current;
102
+ }
103
+ _getCellClassName(column) {
104
+ switch (column.dataType) {
105
+ case DataType.CURRENCY:
106
+ case DataType.DECIMAL:
107
+ case DataType.WHOLE_NONE: {
108
+ return 'talxis-cell-align-right';
109
+ }
110
+ }
111
+ return 'talxis-cell-align-left';
112
+ }
113
+ }
114
+
115
+ export { AgGrid };
116
+ //# sourceMappingURL=AgGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgGrid.js","sources":["../../../../../../../src/components/Grid/core/components/AgGrid/model/AgGrid.ts"],"sourcesContent":["import { ColDef, GridApi, IRowNode } from \"@ag-grid-community/core\";\nimport { Grid } from \"../../../model/Grid\";\nimport { GridDependency } from \"../../../model/GridDependency\";\nimport { DataType } from \"../../../enums/DataType\";\nimport { IGridColumn } from \"../../../interfaces/IGridColumn\";\n\nexport class AgGrid extends GridDependency {\n private _gridApiRef: React.MutableRefObject<GridApi<ComponentFramework.PropertyHelper.DataSetApi.EntityRecord> | undefined>;\n public readonly initialPageSize: number;\n\n constructor(grid: Grid, gridApiRef: React.MutableRefObject<GridApi<ComponentFramework.PropertyHelper.DataSetApi.EntityRecord> | undefined>) {\n super(grid);\n this._gridApiRef = gridApiRef;\n this.initialPageSize = grid.state?.initialPageSize ?? grid.paging.pageSize;\n }\n public get columns() {\n const agColumns: ColDef[] = [];\n for (const column of this._grid.columns) {\n const agColumn: ColDef = {\n colId: column.key,\n field: column.key,\n headerName: column.displayName,\n initialWidth: column.width,\n sortable: column.isSortable,\n editable: column.isEditable,\n resizable: column.isResizable,\n suppressMovable: this._grid.props.parameters.ChangeEditorMode ? true : undefined,\n autoHeaderHeight: true,\n suppressSizeToFit: column.key === '__checkbox',\n cellClass: this._getCellClassName(column),\n valueFormatter: (p) => {\n return p.data.getFormattedValue(column.key)\n },\n valueGetter: (p) => {\n return p.data.getValue(column.key)\n },\n cellRendererParams: {\n baseColumn: column\n },\n cellEditorParams: {\n baseColumn: column,\n },\n headerComponentParams: {\n baseColumn: column\n }, \n suppressKeyboardEvent: (params) => {\n if (params.event.key !== 'Enter' || params.api.getEditingCells().length === 0) {\n return false;\n }\n switch (column.dataType) {\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY:\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_CUSTOMER:\n case DataType.MULTI_SELECT_OPTIONSET:\n case DataType.OPTIONSET:\n case DataType.TWO_OPTIONS:\n case DataType.WHOLE_DURATION: {\n return true;\n }\n }\n return false;\n },\n }\n agColumns.push(agColumn)\n }\n return agColumns;\n }\n public get maxNumberOfVisibleRecords() {\n if (this.initialPageSize < this._grid.records.length) {\n return this.initialPageSize;\n }\n return this._grid.records.length;\n }\n public getTotalColumnsWidth() {\n if(!this._gridApi) {\n return 0;\n }\n let width = 0;\n for (const column of this._gridApi.getAllGridColumns()) {\n width = width + column.getActualWidth();\n }\n return width;\n }\n public selectRows() {\n if (!this._gridApi) {\n return;\n }\n const nodesToSelect: IRowNode[] = [];\n this._gridApi.deselectAll();\n this._gridApi.forEachNode((node: IRowNode) => {\n if (this._grid.dataset.getSelectedRecordIds().includes(node.data.getRecordId())) {\n nodesToSelect.push(node);\n }\n });\n this._gridApi.setNodesSelected({\n nodes: nodesToSelect,\n newValue: true\n });\n this._gridApi.refreshCells({\n columns: ['__checkbox'],\n force: true\n })\n }\n private get _gridApi() {\n return this._gridApiRef.current;\n }\n private _getCellClassName(column: IGridColumn) {\n switch (column.dataType) {\n case DataType.CURRENCY:\n case DataType.DECIMAL:\n case DataType.WHOLE_NONE: {\n return 'talxis-cell-align-right';\n }\n }\n return 'talxis-cell-align-left';\n }\n}"],"names":[],"mappings":";;;AAMM,MAAO,MAAO,SAAQ,cAAc,CAAA;IAItC,WAAY,CAAA,IAAU,EAAE,UAAkH,EAAA;QACtI,KAAK,CAAC,IAAI,CAAC,CAAC;AACZ,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;KAC9E;AACD,IAAA,IAAW,OAAO,GAAA;QACd,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACrC,YAAA,MAAM,QAAQ,GAAW;gBACrB,KAAK,EAAE,MAAM,CAAC,GAAG;gBACjB,KAAK,EAAE,MAAM,CAAC,GAAG;gBACjB,UAAU,EAAE,MAAM,CAAC,WAAW;gBAC9B,YAAY,EAAE,MAAM,CAAC,KAAK;gBAC1B,QAAQ,EAAE,MAAM,CAAC,UAAU;gBAC3B,QAAQ,EAAE,MAAM,CAAC,UAAU;gBAC3B,SAAS,EAAE,MAAM,CAAC,WAAW;AAC7B,gBAAA,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS;AAChF,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,iBAAiB,EAAE,MAAM,CAAC,GAAG,KAAK,YAAY;AAC9C,gBAAA,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;AACzC,gBAAA,cAAc,EAAE,CAAC,CAAC,KAAI;oBAClB,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;iBAC9C;AACD,gBAAA,WAAW,EAAE,CAAC,CAAC,KAAI;oBACf,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;iBACrC;AACD,gBAAA,kBAAkB,EAAE;AAChB,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;AACD,gBAAA,gBAAgB,EAAE;AACd,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;AACD,gBAAA,qBAAqB,EAAE;AACnB,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;AACD,gBAAA,qBAAqB,EAAE,CAAC,MAAM,KAAI;AAC9B,oBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3E,wBAAA,OAAO,KAAK,CAAC;AAChB,qBAAA;oBACD,QAAQ,MAAM,CAAC,QAAQ;wBACnB,KAAK,QAAQ,CAAC,2BAA2B,CAAC;wBAC1C,KAAK,QAAQ,CAAC,uBAAuB,CAAC;wBACtC,KAAK,QAAQ,CAAC,YAAY,CAAC;wBAC3B,KAAK,QAAQ,CAAC,aAAa,CAAC;wBAC5B,KAAK,QAAQ,CAAC,eAAe,CAAC;wBAC9B,KAAK,QAAQ,CAAC,sBAAsB,CAAC;wBACrC,KAAK,QAAQ,CAAC,SAAS,CAAC;wBACxB,KAAK,QAAQ,CAAC,WAAW,CAAC;AAC1B,wBAAA,KAAK,QAAQ,CAAC,cAAc,EAAE;AAC1B,4BAAA,OAAO,IAAI,CAAC;AACf,yBAAA;AACJ,qBAAA;AACD,oBAAA,OAAO,KAAK,CAAC;iBAChB;aACJ,CAAA;AACD,YAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAC3B,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KACpB;AACD,IAAA,IAAW,yBAAyB,GAAA;QAChC,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;YAClD,OAAO,IAAI,CAAC,eAAe,CAAC;AAC/B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC;IACM,oBAAoB,GAAA;AACvB,QAAA,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,OAAO,CAAC,CAAC;AACZ,SAAA;QACD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE;AACpD,YAAA,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AAC3C,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;IACM,UAAU,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,OAAO;AACV,SAAA;QACD,MAAM,aAAa,GAAe,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAc,KAAI;AACzC,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;AAC7E,gBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,aAAA;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAC3B,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,QAAQ,EAAE,IAAI;AACjB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACvB,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA,CAAC,CAAA;KACL;AACD,IAAA,IAAY,QAAQ,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;KACnC;AACO,IAAA,iBAAiB,CAAC,MAAmB,EAAA;QACzC,QAAQ,MAAM,CAAC,QAAQ;YACnB,KAAK,QAAQ,CAAC,QAAQ,CAAC;YACvB,KAAK,QAAQ,CAAC,OAAO,CAAC;AACtB,YAAA,KAAK,QAAQ,CAAC,UAAU,EAAE;AACtB,gBAAA,OAAO,yBAAyB,CAAC;AACpC,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,wBAAwB,CAAC;KACnC;AACJ;;;;"}
@@ -1 +1,91 @@
1
- import{mergeStyleSets as o}from"@fluentui/react";const e=(o,e)=>e?"100%":`calc(${o} * 42px + var(--height-offset))`,t=(t,a,r)=>o({root:{height:"100%",display:"flex",flexDirection:"column","--height-offset":"64px",':has(.ag-body-horizontal-scroll-viewport[style*="height: 0px"])':{"--height-offset":"45px"},"--ag-borders":"none !important",".ag-root-wrapper":{maxHeight:"100%","--ag-input-focus-border-color":"transparent","--ag-selected-row-background-color":t.palette.themeLighter,"--ag-range-selection-border-color":t.palette.themePrimary,borderBottom:`1px solid ${t.semanticColors.bodyDivider}`,":has(.ag-overlay:not(.ag-hidden) .TALXIS__grid__empty-records), :has(.ag-center-cols-container:empty)":{minHeight:270}},".ag-root-wrapper.ag-layout-normal":{height:e(a,r)},".ag-body":{borderTop:`1px solid ${t.semanticColors.bodyDivider}`},".ag-header-viewport":{backgroundColor:`${t.semanticColors.bodyBackground}`},".ag-center-cols-container":{minWidth:"100%"},".ag-layout-auto-height .ag-center-cols-clipper, .ag-layout-auto-height .ag-center-cols-container, .ag-layout-print .ag-center-cols-clipper, .ag-layout-print .ag-center-cols-container":{minHeight:"42px !important"},".ag-header-cell":{paddingLeft:0,paddingRight:0,backgroundColor:`${t.semanticColors.bodyBackground} !important`},".ag-cell-inline-editing":{overflow:"visible",top:-1,backgroundColor:"transparent","*:not(.ms-ComboBox)>input":{paddingLeft:10},".ms-ComboBox>input":{paddingLeft:2},".talxis__lookupControl":{".ms-BasePicker-itemsWrapper":{padding:0,".ms-CommandBar":{height:"100%"}}},".TALXIS__error-message__root":{display:"none"}},".talxis-cell-align-right":{'[class^="cellContent"]':{justifyContent:"flex-end"},".talxis-cell-text, input":{textAlign:"right"},input:{paddingRight:10}},'.ag-cell-focus:has([data-is-valid="false"])':{border:"1px solid red !important;"}}});export{t as getGridStyles};
1
+ import { mergeStyleSets } from '@fluentui/react';
2
+
3
+ const getGridHeight = (numOfRecords, useContainerAsHeight) => {
4
+ if (useContainerAsHeight) {
5
+ return '100%';
6
+ }
7
+ return `calc(${numOfRecords} * 42px + var(--height-offset))`;
8
+ };
9
+ const getGridStyles = (theme, numOfRecords, useContainerAsHeight) => {
10
+ return mergeStyleSets({
11
+ root: {
12
+ height: '100%',
13
+ display: 'flex',
14
+ flexDirection: 'column',
15
+ '--height-offset': '64px',
16
+ ':has(.ag-body-horizontal-scroll-viewport[style*="height: 0px"])': {
17
+ '--height-offset': '45px'
18
+ },
19
+ '--ag-borders': 'none !important',
20
+ '.ag-root-wrapper': {
21
+ maxHeight: '100%',
22
+ '--ag-input-focus-border-color': 'transparent',
23
+ '--ag-selected-row-background-color': theme.palette.themeLighter,
24
+ '--ag-range-selection-border-color': theme.palette.themePrimary,
25
+ borderBottom: `1px solid ${theme.semanticColors.bodyDivider}`,
26
+ ':has(.ag-overlay:not(.ag-hidden) .TALXIS__grid__empty-records), :has(.ag-center-cols-container:empty)': {
27
+ minHeight: 270
28
+ }
29
+ },
30
+ '.ag-root-wrapper.ag-layout-normal': {
31
+ height: getGridHeight(numOfRecords, useContainerAsHeight)
32
+ },
33
+ '.ag-body': {
34
+ borderTop: `1px solid ${theme.semanticColors.bodyDivider}`
35
+ },
36
+ '.ag-header-viewport': {
37
+ backgroundColor: `${theme.semanticColors.bodyBackground}`
38
+ },
39
+ '.ag-center-cols-container': {
40
+ minWidth: '100%',
41
+ },
42
+ '.ag-layout-auto-height .ag-center-cols-clipper, .ag-layout-auto-height .ag-center-cols-container, .ag-layout-print .ag-center-cols-clipper, .ag-layout-print .ag-center-cols-container': {
43
+ minHeight: '42px !important'
44
+ },
45
+ '.ag-header-cell': {
46
+ paddingLeft: 0,
47
+ paddingRight: 0,
48
+ backgroundColor: `${theme.semanticColors.bodyBackground} !important`
49
+ },
50
+ '.ag-cell-inline-editing': {
51
+ overflow: 'visible',
52
+ top: -1,
53
+ backgroundColor: 'transparent',
54
+ '*:not(.ms-ComboBox)>input': {
55
+ paddingLeft: 10
56
+ },
57
+ '.ms-ComboBox>input': {
58
+ paddingLeft: 2
59
+ },
60
+ '.talxis__lookupControl': {
61
+ '.ms-BasePicker-itemsWrapper': {
62
+ padding: 0,
63
+ '.ms-CommandBar': {
64
+ height: '100%'
65
+ }
66
+ },
67
+ },
68
+ '.TALXIS__error-message__root': {
69
+ display: 'none'
70
+ }
71
+ },
72
+ '.talxis-cell-align-right': {
73
+ '[class^="cellContent"]': {
74
+ justifyContent: 'flex-end',
75
+ },
76
+ '.talxis-cell-text, input': {
77
+ textAlign: 'right'
78
+ },
79
+ 'input': {
80
+ paddingRight: 10
81
+ }
82
+ },
83
+ '.ag-cell-focus:has([data-is-valid="false"])': {
84
+ border: '1px solid red !important;'
85
+ },
86
+ }
87
+ });
88
+ };
89
+
90
+ export { getGridStyles };
91
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":["../../../../../../src/components/Grid/core/components/AgGrid/styles.ts"],"sourcesContent":["import { ITheme, mergeStyleSets } from \"@fluentui/react\";\n\nconst getGridHeight = (numOfRecords: number, useContainerAsHeight: boolean) => {\n if(useContainerAsHeight) {\n return '100%';\n }\n return `calc(${numOfRecords} * 42px + var(--height-offset))`\n}\n\nexport const getGridStyles = (theme: ITheme, numOfRecords: number, useContainerAsHeight: boolean) => {\n return mergeStyleSets({\n root: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n '--height-offset': '64px',\n ':has(.ag-body-horizontal-scroll-viewport[style*=\"height: 0px\"])': {\n '--height-offset': '45px'\n } ,\n '--ag-borders': 'none !important',\n '.ag-root-wrapper': {\n maxHeight: '100%',\n '--ag-input-focus-border-color': 'transparent',\n '--ag-selected-row-background-color': theme.palette.themeLighter,\n '--ag-range-selection-border-color': theme.palette.themePrimary,\n borderBottom: `1px solid ${theme.semanticColors.bodyDivider}`,\n ':has(.ag-overlay:not(.ag-hidden) .TALXIS__grid__empty-records), :has(.ag-center-cols-container:empty)': {\n minHeight: 270\n }\n },\n '.ag-root-wrapper.ag-layout-normal': {\n height: getGridHeight(numOfRecords, useContainerAsHeight)\n },\n '.ag-body': {\n borderTop: `1px solid ${theme.semanticColors.bodyDivider}`\n },\n '.ag-header-viewport': {\n backgroundColor: `${theme.semanticColors.bodyBackground}`\n },\n '.ag-center-cols-container': {\n minWidth: '100%',\n },\n '.ag-layout-auto-height .ag-center-cols-clipper, .ag-layout-auto-height .ag-center-cols-container, .ag-layout-print .ag-center-cols-clipper, .ag-layout-print .ag-center-cols-container': {\n minHeight: '42px !important'\n },\n '.ag-header-cell': {\n paddingLeft: 0,\n paddingRight: 0,\n backgroundColor: `${theme.semanticColors.bodyBackground} !important`\n },\n '.ag-cell-inline-editing': {\n overflow: 'visible',\n top: -1,\n backgroundColor: 'transparent',\n\n '*:not(.ms-ComboBox)>input': {\n paddingLeft: 10\n },\n '.ms-ComboBox>input': {\n paddingLeft: 2\n },\n '.talxis__lookupControl': {\n '.ms-BasePicker-itemsWrapper': {\n padding: 0,\n '.ms-CommandBar': {\n height: '100%'\n }\n },\n },\n '.TALXIS__error-message__root': {\n display: 'none'\n }\n },\n '.talxis-cell-align-right': {\n '[class^=\"cellContent\"]': {\n justifyContent: 'flex-end',\n },\n '.talxis-cell-text, input': {\n textAlign: 'right'\n },\n 'input': {\n paddingRight: 10\n }\n },\n '.ag-cell-focus:has([data-is-valid=\"false\"])': {\n border: '1px solid red !important;'\n },\n }\n })\n}"],"names":[],"mappings":"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"}
@@ -1 +1,29 @@
1
- import{jsx as o,Fragment as t}from"react/jsx-runtime";import{useCommands as r}from"./useCommands.js";import{CommandBar as s}from"@talxis/react-components";import{getCommandsLoadingStyles as e,commandStyles as i}from"./styles.js";import{useTheme as m}from"@fluentui/react";import"tslib";import"react";import"./Icon.js";import"external-svg-loader";import"../../../hooks/useGridInstance.js";import"../../../../GridContext.js";const n=({record:n})=>{const[a]=r(n),l=e(m());return a?(null==a?void 0:a.length)>0?o(s,{className:i.talxisRoot,overflowButtonProps:{styles:{root:i.button,rootHovered:i.button,rootPressed:i.button,rootExpanded:i.button}},styles:{root:i.root},items:[],farItems:a}):o(t,{}):o("div",Object.assign({className:l.loading},{children:Array.from(Array(3).keys()).map((t=>o("div",{className:l.loadingLine},t)))}))};export{n as Commands};
1
+ import { jsx, Fragment } from 'react/jsx-runtime';
2
+ import { useCommands } from './useCommands.js';
3
+ import { CommandBar } from '@talxis/react-components';
4
+ import { getCommandsLoadingStyles, commandStyles } from './styles.js';
5
+ import { useTheme } from '@fluentui/react';
6
+
7
+ const Commands = ({ record }) => {
8
+ const [items] = useCommands(record);
9
+ const loadingStyles = getCommandsLoadingStyles(useTheme());
10
+ if (!items) {
11
+ return jsx("div", { className: loadingStyles.loading, children: Array.from(Array(3).keys()).map((x) => jsx("div", { className: loadingStyles.loadingLine }, x)) });
12
+ }
13
+ if (items?.length > 0) {
14
+ return jsx(CommandBar, { className: commandStyles.talxisRoot, overflowButtonProps: {
15
+ styles: {
16
+ root: commandStyles.button,
17
+ rootHovered: commandStyles.button,
18
+ rootPressed: commandStyles.button,
19
+ rootExpanded: commandStyles.button
20
+ }
21
+ }, styles: {
22
+ root: commandStyles.root,
23
+ }, items: [], farItems: items });
24
+ }
25
+ return jsx(Fragment, {});
26
+ };
27
+
28
+ export { Commands };
29
+ //# sourceMappingURL=Commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Commands.js","sources":["../../../../../../../src/components/Grid/core/components/Cell/Commands/Commands.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useCommands } from './useCommands';\nimport { CommandBar } from \"@talxis/react-components\";\nimport { commandStyles, getCommandsLoadingStyles } from './styles';\nimport { useTheme } from '@fluentui/react';\n\ninterface ICommands {\n record: ComponentFramework.PropertyHelper.DataSetApi.EntityRecord;\n}\n\nexport const Commands = ({ record }: ICommands) => {\n const [items] = useCommands(record);\n const loadingStyles = getCommandsLoadingStyles(useTheme());\n if (!items) {\n return <div className={loadingStyles.loading}>\n {Array.from(Array(3).keys()).map((x) =>\n <div key={x} className={loadingStyles.loadingLine} />\n )}\n </div>\n }\n if (items?.length > 0) {\n return <CommandBar className={commandStyles.talxisRoot} overflowButtonProps={{\n styles: {\n root: commandStyles.button,\n rootHovered: commandStyles.button,\n rootPressed: commandStyles.button,\n rootExpanded: commandStyles.button\n }\n }} styles={{\n root: commandStyles.root,\n\n }} items={[]}\n farItems={items}\n />;\n }\n return <></>;\n};"],"names":["_jsx"],"mappings":";;;;;;MAUa,QAAQ,GAAG,CAAC,EAAE,MAAM,EAAa,KAAI;IAC9C,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AACpC,IAAA,MAAM,aAAa,GAAG,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,EAAE;AACR,QAAA,OAAOA,aAAK,SAAS,EAAE,aAAa,CAAC,OAAO,EACvC,QAAA,EAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAC/BA,GAAa,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,aAAa,CAAC,WAAW,EAAA,EAAvC,CAAC,CAA0C,CACxD,GACC,CAAA;AACT,KAAA;AACD,IAAA,IAAI,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;QACnB,OAAOA,GAAA,CAAC,UAAU,EAAA,EAAC,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,mBAAmB,EAAE;AACzE,gBAAA,MAAM,EAAE;oBACJ,IAAI,EAAE,aAAa,CAAC,MAAM;oBAC1B,WAAW,EAAE,aAAa,CAAC,MAAM;oBACjC,WAAW,EAAE,aAAa,CAAC,MAAM;oBACjC,YAAY,EAAE,aAAa,CAAC,MAAM;AACrC,iBAAA;AACJ,aAAA,EAAE,MAAM,EAAE;gBACP,IAAI,EAAE,aAAa,CAAC,IAAI;aAE3B,EAAE,KAAK,EAAE,EAAE,EACR,QAAQ,EAAE,KAAK,GACjB,CAAC;AACN,KAAA;AACD,IAAA,OAAOA,iBAAK,CAAC;AACjB;;;;"}
@@ -1 +1,14 @@
1
- import{jsx as t}from"react/jsx-runtime";import{memo as o}from"react";import"external-svg-loader";import{commandStyles as r}from"./styles.js";import"@fluentui/react";const e=o((({name:o})=>{var e;const i=(null===(e=window.TALXIS)||void 0===e?void 0:e.Portal)?o:`https://${window.location.host}${window.Xrm.Utility.getGlobalContext().getWebResourceUrl(o)}`;return t("svg",{"data-src":i,className:r.icon})}));export{e as Icon};
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { memo } from 'react';
3
+ import 'external-svg-loader';
4
+ import { commandStyles } from './styles.js';
5
+
6
+ const IconComponent = ({ name }) => {
7
+ //@ts-ignore - types
8
+ const src = !window.TALXIS?.Portal ? `https://${window.location.host}${window.Xrm.Utility.getGlobalContext().getWebResourceUrl(name)}` : name;
9
+ return (jsx("svg", { "data-src": src, className: commandStyles.icon }));
10
+ };
11
+ const Icon = memo(IconComponent);
12
+
13
+ export { Icon };
14
+ //# sourceMappingURL=Icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.js","sources":["../../../../../../../src/components/Grid/core/components/Cell/Commands/Icon.tsx"],"sourcesContent":["import React, { memo, useMemo } from 'react';\nimport 'external-svg-loader';\nimport { commandStyles } from './styles';\n\ninterface IIcon {\n name: string\n}\n\nconst IconComponent = ({ name }: IIcon) => {\n //@ts-ignore - types\n const src = !window.TALXIS?.Portal ? `https://${window.location.host}${window.Xrm.Utility.getGlobalContext().getWebResourceUrl(name)}` : name;\n return (\n <svg data-src={src} className={commandStyles.icon} />\n );\n};\n\nexport const Icon = memo(IconComponent);\n"],"names":["_jsx"],"mappings":";;;;;AAQA,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAS,KAAI;;AAEtC,IAAA,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAW,QAAA,EAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAA,EAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC;IAC9I,QACIA,GAAe,CAAA,KAAA,EAAA,EAAA,UAAA,EAAA,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,IAAI,EAAI,CAAA,EACvD;AACN,CAAC,CAAC;MAEW,IAAI,GAAG,IAAI,CAAC,aAAa;;;;"}
@@ -1 +1,54 @@
1
- import{mergeStyleSets as t,keyframes as i}from"@fluentui/react";const e=t({root:{backgroundColor:"transparent"},talxisRoot:{minWidth:0,flexShrink:1,flexGrow:1},button:{backgroundColor:"transparent"},icon:{width:16,height:16,marginLeft:4,marginRight:4}}),o=i({"0%":{backgroundPosition:"-100px 0"},"100%":{backgroundPosition:"100px 0"}}),a=i=>t({loading:{overflow:"hidden",padding:15,flex:1,display:"grid",alignItems:"center",gridTemplateColumns:"repeat(3, minmax(0px, 100px))",gap:15,justifyContent:"flex-start"},loadingLine:{height:10,borderRadius:5,width:"100%",animation:`${o} 2s infinite`,backgroundSize:"1000px 100%",background:`linear-gradient(to right, color-mix(in oklab, ${i.palette.white}, ${i.palette.black} 8%) 4%, color-mix(in oklab, ${i.palette.white}, ${i.palette.black} 5%) 25%, color-mix(in oklab, ${i.palette.white}, ${i.palette.black} 8%) 36%)`}});export{e as commandStyles,a as getCommandsLoadingStyles};
1
+ import { mergeStyleSets, keyframes } from '@fluentui/react';
2
+
3
+ const commandStyles = mergeStyleSets({
4
+ root: {
5
+ backgroundColor: 'transparent'
6
+ },
7
+ talxisRoot: {
8
+ minWidth: 0,
9
+ flexShrink: 1,
10
+ flexGrow: 1
11
+ },
12
+ button: {
13
+ backgroundColor: 'transparent',
14
+ },
15
+ icon: {
16
+ width: 16,
17
+ height: 16,
18
+ marginLeft: 4,
19
+ marginRight: 4,
20
+ }
21
+ });
22
+ const loadingLineAnimation = keyframes({
23
+ '0%': {
24
+ backgroundPosition: '-100px 0',
25
+ },
26
+ '100%': {
27
+ backgroundPosition: '100px 0'
28
+ }
29
+ });
30
+ const getCommandsLoadingStyles = (theme) => {
31
+ return mergeStyleSets({
32
+ loading: {
33
+ overflow: 'hidden',
34
+ padding: 15,
35
+ flex: 1,
36
+ display: 'grid',
37
+ alignItems: 'center',
38
+ gridTemplateColumns: 'repeat(3, minmax(0px, 100px))',
39
+ gap: 15,
40
+ justifyContent: 'flex-start',
41
+ },
42
+ loadingLine: {
43
+ height: 10,
44
+ borderRadius: 5,
45
+ width: '100%',
46
+ animation: `${loadingLineAnimation} 2s infinite`,
47
+ backgroundSize: '1000px 100%',
48
+ background: `linear-gradient(to right, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 8%) 4%, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 5%) 25%, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 8%) 36%)`
49
+ },
50
+ });
51
+ };
52
+
53
+ export { commandStyles, getCommandsLoadingStyles };
54
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":["../../../../../../../src/components/Grid/core/components/Cell/Commands/styles.ts"],"sourcesContent":["import { ITheme, keyframes, mergeStyleSets } from \"@fluentui/react\";\n\nexport const commandStyles = mergeStyleSets({\n root: {\n backgroundColor: 'transparent'\n },\n talxisRoot: {\n minWidth: 0,\n flexShrink: 1,\n flexGrow: 1\n },\n button: {\n backgroundColor: 'transparent',\n },\n icon: {\n width: 16,\n height: 16,\n marginLeft: 4,\n marginRight: 4,\n }\n});\n\nconst loadingLineAnimation = keyframes({\n '0%': {\n backgroundPosition: '-100px 0',\n },\n '100%': {\n backgroundPosition: '100px 0'\n }\n})\n\nexport const getCommandsLoadingStyles = (theme: ITheme) => {\n return mergeStyleSets({\n loading: {\n overflow: 'hidden',\n padding: 15,\n flex: 1,\n display: 'grid',\n alignItems: 'center',\n gridTemplateColumns: 'repeat(3, minmax(0px, 100px))',\n gap: 15,\n justifyContent: 'flex-start',\n },\n loadingLine: {\n height: 10,\n borderRadius: 5,\n width: '100%',\n animation: `${loadingLineAnimation} 2s infinite`,\n backgroundSize: '1000px 100%',\n background: `linear-gradient(to right, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 8%) 4%, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 5%) 25%, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 8%) 36%)`\n },\n })\n}"],"names":[],"mappings":";;AAEO,MAAM,aAAa,GAAG,cAAc,CAAC;AACxC,IAAA,IAAI,EAAE;AACF,QAAA,eAAe,EAAE,aAAa;AACjC,KAAA;AACD,IAAA,UAAU,EAAE;AACR,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,QAAQ,EAAE,CAAC;AACd,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,eAAe,EAAE,aAAa;AACjC,KAAA;AACD,IAAA,IAAI,EAAE;AACF,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,WAAW,EAAE,CAAC;AACjB,KAAA;AACJ,CAAA,EAAE;AAEH,MAAM,oBAAoB,GAAG,SAAS,CAAC;AACnC,IAAA,IAAI,EAAE;AACF,QAAA,kBAAkB,EAAE,UAAU;AACjC,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,kBAAkB,EAAE,SAAS;AAChC,KAAA;AACJ,CAAA,CAAC,CAAA;AAEW,MAAA,wBAAwB,GAAG,CAAC,KAAa,KAAI;AACtD,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,OAAO,EAAE;AACL,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,mBAAmB,EAAE,+BAA+B;AACpD,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,cAAc,EAAE,YAAY;AAC7B,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,CAAG,EAAA,oBAAoB,CAAc,YAAA,CAAA;AAChD,YAAA,cAAc,EAAE,aAAa;AAC7B,YAAA,UAAU,EAAE,CAAiD,8CAAA,EAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAgC,6BAAA,EAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAC,KAAK,iCAAiC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAK,EAAA,EAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAW,SAAA,CAAA;AAC3Q,SAAA;AACN,KAAA,CAAC,CAAA;AACN;;;;"}
@@ -1 +1,52 @@
1
- import{__awaiter as o}from"tslib";import{jsx as t}from"react/jsx-runtime";import{useState as n,useEffect as e}from"react";import{Icon as r}from"./Icon.js";import{commandStyles as i}from"./styles.js";import{useGridInstance as d}from"../../../hooks/useGridInstance.js";import"external-svg-loader";import"@fluentui/react";import"../../../../GridContext.js";const c=c=>{const m=d(),s=m.dataset,[a,u]=n(null);e((()=>{o(void 0,void 0,void 0,(function*(){u(yield l())}))}),[]);const l=()=>o(void 0,void 0,void 0,(function*(){var o;const n=[];if(!s.retrieveRecordCommand)return[];const e=yield s.retrieveRecordCommand([c.getRecordId()],m.inlineRibbonButtonIds);for(const d of e)d.shouldBeVisible&&n.push({key:d.commandButtonId,text:d.label,"data-id":d.commandButtonId,"data-command":d.commandId,buttonStyles:{root:i.button,rootHovered:i.button,rootPressed:i.button},onClick:o=>{null==o||o.stopPropagation(),d.execute()},onRenderIcon:(null===(o=d.icon)||void 0===o?void 0:o.includes(".svg"))?()=>t(r,{name:d.icon}):void 0,iconProps:d.icon?{iconName:d.icon}:void 0});return n}));return[a]};export{c as useCommands};
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useState, useEffect } from 'react';
3
+ import { Icon } from './Icon.js';
4
+ import { commandStyles } from './styles.js';
5
+ import { useGridInstance } from '../../../hooks/useGridInstance.js';
6
+
7
+ const useCommands = (record) => {
8
+ const grid = useGridInstance();
9
+ const dataset = grid.dataset;
10
+ const [commandBarItems, setCommandBarItems] = useState(null);
11
+ useEffect(() => {
12
+ (async () => {
13
+ setCommandBarItems(await getCommandBarItems());
14
+ })();
15
+ }, []);
16
+ const getCommandBarItems = async () => {
17
+ const items = [];
18
+ if (!dataset.retrieveRecordCommand) {
19
+ return [];
20
+ }
21
+ const commands = await dataset.retrieveRecordCommand([record.getRecordId()], grid.inlineRibbonButtonIds);
22
+ for (const command of commands) {
23
+ if (!command.shouldBeVisible /* || (command.__isInline !== undefined && command.__isInline === false */) {
24
+ continue;
25
+ }
26
+ items.push({
27
+ key: command.commandButtonId,
28
+ text: command.label,
29
+ ["data-id"]: command.commandButtonId,
30
+ ["data-command"]: command.commandId,
31
+ buttonStyles: {
32
+ root: commandStyles.button,
33
+ rootHovered: commandStyles.button,
34
+ rootPressed: commandStyles.button,
35
+ },
36
+ onClick: (e) => {
37
+ e?.stopPropagation();
38
+ command.execute();
39
+ },
40
+ onRenderIcon: command.icon?.includes('.svg') ? () => jsx(Icon, { name: command.icon }) : undefined,
41
+ iconProps: command.icon ? {
42
+ iconName: command.icon
43
+ } : undefined
44
+ });
45
+ }
46
+ return items;
47
+ };
48
+ return [commandBarItems];
49
+ };
50
+
51
+ export { useCommands };
52
+ //# sourceMappingURL=useCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCommands.js","sources":["../../../../../../../src/components/Grid/core/components/Cell/Commands/useCommands.tsx"],"sourcesContent":["import { useState, useEffect } from \"react\";\nimport { ICommandBarItemProps } from \"@fluentui/react\";\nimport { Icon } from './Icon';\nimport React from \"react\";\nimport { commandStyles } from \"./styles\";\nimport { useGridInstance } from \"../../../hooks/useGridInstance\";\n\nexport const useCommands = (record: ComponentFramework.PropertyHelper.DataSetApi.EntityRecord): [\n ICommandBarItemProps[] | null\n] => {\n const grid = useGridInstance();\n const dataset = grid.dataset;\n const [commandBarItems, setCommandBarItems] = useState<ICommandBarItemProps[] | null>(null);\n useEffect(() => {\n (async () => {\n setCommandBarItems(await getCommandBarItems());\n })();\n }, []);\n\n const getCommandBarItems = async () => {\n const items: ICommandBarItemProps[] = [];\n if(!dataset.retrieveRecordCommand) {\n return []\n }\n const commands = await dataset.retrieveRecordCommand([record.getRecordId()], grid.inlineRibbonButtonIds);\n for (const command of commands) {\n if (!command.shouldBeVisible /* || (command.__isInline !== undefined && command.__isInline === false */) {\n continue;\n }\n items.push({\n key: command.commandButtonId,\n text: command.label,\n [\"data-id\"]: command.commandButtonId,\n [\"data-command\"]: command.commandId,\n buttonStyles: {\n root: commandStyles.button,\n rootHovered: commandStyles.button,\n rootPressed: commandStyles.button,\n },\n onClick: (e) => {\n e?.stopPropagation();\n command.execute();\n },\n onRenderIcon: command.icon?.includes('.svg') ? () => <Icon name={command.icon} /> : undefined,\n iconProps: command.icon ? {\n iconName: command.icon\n } : undefined\n });\n }\n return items;\n };\n return [commandBarItems];\n};"],"names":["_jsx"],"mappings":";;;;;;AAOa,MAAA,WAAW,GAAG,CAAC,MAAiE,KAEzF;AACA,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAgC,IAAI,CAAC,CAAC;IAC5F,SAAS,CAAC,MAAK;QACX,CAAC,YAAW;AACR,YAAA,kBAAkB,CAAC,MAAM,kBAAkB,EAAE,CAAC,CAAC;SAClD,GAAG,CAAC;KACR,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,kBAAkB,GAAG,YAAW;QAClC,MAAM,KAAK,GAA2B,EAAE,CAAC;AACzC,QAAA,IAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE;AAC/B,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACzG,QAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,OAAO,CAAC,eAAe,6EAA6E;gBACrG,SAAS;AACZ,aAAA;YACD,KAAK,CAAC,IAAI,CAAC;gBACP,GAAG,EAAE,OAAO,CAAC,eAAe;gBAC5B,IAAI,EAAE,OAAO,CAAC,KAAK;AACnB,gBAAA,CAAC,SAAS,GAAG,OAAO,CAAC,eAAe;AACpC,gBAAA,CAAC,cAAc,GAAG,OAAO,CAAC,SAAS;AACnC,gBAAA,YAAY,EAAE;oBACV,IAAI,EAAE,aAAa,CAAC,MAAM;oBAC1B,WAAW,EAAE,aAAa,CAAC,MAAM;oBACjC,WAAW,EAAE,aAAa,CAAC,MAAM;AACpC,iBAAA;AACD,gBAAA,OAAO,EAAE,CAAC,CAAC,KAAI;oBACX,CAAC,EAAE,eAAe,EAAE,CAAC;oBACrB,OAAO,CAAC,OAAO,EAAE,CAAC;iBACrB;gBACD,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAMA,GAAC,CAAA,IAAI,EAAC,EAAA,IAAI,EAAE,OAAO,CAAC,IAAI,EAAI,CAAA,GAAG,SAAS;AAC7F,gBAAA,SAAS,EAAE,OAAO,CAAC,IAAI,GAAG;oBACtB,QAAQ,EAAE,OAAO,CAAC,IAAI;iBACzB,GAAG,SAAS;AAChB,aAAA,CAAC,CAAC;AACN,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;AACjB,KAAC,CAAC;IACF,OAAO,CAAC,eAAe,CAAC,CAAC;AAC7B;;;;"}
@@ -1 +1,148 @@
1
- import{jsx as e}from"react/jsx-runtime";import*as t from"react";import{DataType as o}from"../../../enums/DataType.js";import{useGridInstance as r}from"../../../hooks/useGridInstance.js";import{useRecordUpdateServiceController as s}from"../../../services/RecordUpdateService/controllers/useRecordUpdateServiceController.js";import{Component as i}from"../../Component/Component.js";import{useTheme as n}from"@fluentui/react";import"../../../../GridContext.js";import"../../../../../DateTime/DateTime.js";import"../../../../../DateTime/styles.js";import"../../../../../DateTime/hooks/useDateTime.js";import"../../../../../../hooks/useInputBasedControl.js";import"../../../../../../hooks/useControl.js";import"fast-deep-equal/es6";import"merge-anything";import"liquidjs";import"../../../../../../hooks/useControlTheme.js";import"../../../../../../utils/Theme.js";import"@fluentui/react-migration-v8-v9";import"../../../../../../hooks/useControlSizing.js";import"dayjs";import"dayjs/plugin/utc";import"dayjs/plugin/customParseFormat";import"../../../../../DateTime/translations.js";import"../../../../../DateTime/components/Calendar.js";import"@fluentui/react/lib/Calendar";import"@talxis/react-components";import"../../../../../Decimal/Decimal.js";import"numeral";import"../../../../../../utils/Numeral.js";import"../../../../../../constants.js";import"../../../../../Decimal/components/ArrowButtons.js";import"../../../../../Decimal/components/styles.js";import"../../../../../Lookup/Lookup.js";import"tslib";import"../../../../../Lookup/hooks/useLookup.js";import"../../../../../Lookup/translations.js";import"../../../../../Lookup/hooks/useFetchXml.js";import"@talxis/client-libraries";import"../../../../../Lookup/components/TargetSelector.js";import"@fluentui/react/lib/Text";import"../../../../../Lookup/styles.js";import"../../../../../Lookup/hooks/useLoadedEntities.js";import"../../../../../../hooks/useMouseOver.js";import"../../../../../Lookup/components/RecordCreator.js";import"../../../../../../hooks/useFocusIn.js";import"../../../../../MultiSelectOptionSet/MultiSelectOptionSet.js";import"../../../../../OptionSet/OptionSet.js";import"../../../../../TextField/TextField.js";import"../../../../../TwoOptions/TwoOptions.js";import"../../../../../Duration/Duration.js";import"../../../../../Duration/translations.js";import"../../Component/controller/useComponentController.js";import"../../Component/model/Component.js";import"../../../../validation/model/ColumnValidation.js";import"validator/es/lib/isEmail";import"validator/es/lib/isURL";import"../../../model/GridDependency.js";const a=a=>{const m=r(),p=a.baseColumn,u=s(),c=t.useRef(!0),l=t.useRef(!1),d=(()=>{const e=m.recordUpdateService.record(a.data.getRecordId()).get();return null!=e?e:a.data})(),O=t.useRef(d.getValue(p.key)),[j,g]=t.useState(O.current);n(),t.useEffect((()=>()=>{c.current=!1,l.current&&u.record(d.getRecordId()).setValue(p.key,T(O.current))}),[]);const T=e=>{var t;switch(p.dataType){case o.TWO_OPTIONS:e=!0===e?"1":"0";break;case o.LOOKUP_SIMPLE:case o.LOOKUP_CUSTOMER:case o.LOOKUP_OWNER:e=null===(t=null==e?void 0:e.map((e=>({entityName:e.entityType,name:e.name,id:e.id}))))||void 0===t?void 0:t[0]}return e};return e(i,{column:p,value:(e=>{if(l.current)return e;switch(p.dataType){case o.TWO_OPTIONS:e="1"===e;break;case o.OPTIONSET:e=e?parseInt(e):null;break;case o.MULTI_SELECT_OPTIONSET:e=e?e.split(",").map((e=>parseInt(e))):null;break;case o.LOOKUP_SIMPLE:case o.LOOKUP_CUSTOMER:case o.LOOKUP_OWNER:e&&!Array.isArray(e)&&(e=[e]),e=null==e?void 0:e.map((e=>({entityType:e.etn,id:e.id.guid,name:e.name})))}return e})(j),formattedValue:d.getFormattedValue(p.key),onNotifyOutputChanged:e=>{if(O.current=e,l.current=!0,c.current){switch(p.dataType){case o.OPTIONSET:case o.DATE_AND_TIME_DATE_ONLY:return void a.stopEditing();case o.LOOKUP_OWNER:case o.LOOKUP_SIMPLE:case o.LOOKUP_CUSTOMER:if((null==e?void 0:e.length)>0)return void a.stopEditing()}g(O.current)}else u.record(d.getRecordId()).setValue(p.key,T(O.current))},onOverrideControlProps:e=>Object.assign(Object.assign({},e),{context:Object.assign(Object.assign({},e.context),{mode:Object.assign(Object.assign({},e.context.mode),{allocatedHeight:41}),fluentDesignLanguage:e.context.fluentDesignLanguage?Object.assign(Object.assign({},e.context.fluentDesignLanguage),{tokenTheme:Object.assign(Object.assign({},e.context.fluentDesignLanguage.tokenTheme),{underlined:!1})}):void 0}),parameters:Object.assign(Object.assign({},e.parameters),{AutoFocus:{raw:!0},EnableNavigation:{raw:!1},IsInlineNewEnabled:{raw:!1}})})})};export{a as EditableCell};
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { DataType } from '../../../enums/DataType.js';
4
+ import { useGridInstance } from '../../../hooks/useGridInstance.js';
5
+ import { useRecordUpdateServiceController } from '../../../services/RecordUpdateService/controllers/useRecordUpdateServiceController.js';
6
+ import { Component } from '../../Component/Component.js';
7
+ import { useTheme } from '@fluentui/react';
8
+
9
+ const EditableCell = (props) => {
10
+ const grid = useGridInstance();
11
+ const column = props.baseColumn;
12
+ const recordUpdateService = useRecordUpdateServiceController();
13
+ const mountedRef = React.useRef(true);
14
+ const hasBeenUpdatedRef = React.useRef(false);
15
+ const record = (() => {
16
+ //this is so we can load the updated record values from state
17
+ const updatedRecord = grid.recordUpdateService.record(props.data.getRecordId()).get();
18
+ return updatedRecord ?? props.data;
19
+ })();
20
+ const valueRef = React.useRef(record.getValue(column.key));
21
+ const [value, setValue] = React.useState(valueRef.current);
22
+ useTheme();
23
+ React.useEffect(() => {
24
+ return () => {
25
+ mountedRef.current = false;
26
+ if (!hasBeenUpdatedRef.current) {
27
+ return;
28
+ }
29
+ recordUpdateService.record(record.getRecordId()).setValue(column.key, getRecordValue(valueRef.current));
30
+ };
31
+ }, []);
32
+ const getComponentValue = (value) => {
33
+ //already is component value;
34
+ if (hasBeenUpdatedRef.current) {
35
+ return value;
36
+ }
37
+ switch (column.dataType) {
38
+ case DataType.TWO_OPTIONS: {
39
+ value = value === '1' ? true : false;
40
+ break;
41
+ }
42
+ case DataType.OPTIONSET: {
43
+ value = value ? parseInt(value) : null;
44
+ break;
45
+ }
46
+ case DataType.MULTI_SELECT_OPTIONSET: {
47
+ value = value ? value.split(',').map((value) => parseInt(value)) : null;
48
+ break;
49
+ }
50
+ case DataType.LOOKUP_SIMPLE:
51
+ case DataType.LOOKUP_CUSTOMER:
52
+ case DataType.LOOKUP_OWNER: {
53
+ if (value && !Array.isArray(value)) {
54
+ value = [value];
55
+ }
56
+ value = value?.map((x) => {
57
+ return {
58
+ entityType: x.etn,
59
+ id: x.id.guid,
60
+ name: x.name
61
+ };
62
+ });
63
+ break;
64
+ }
65
+ }
66
+ return value;
67
+ };
68
+ //this is just so the setValue API in Power Apps accepts the values that come from the components
69
+ const getRecordValue = (value) => {
70
+ switch (column.dataType) {
71
+ case DataType.TWO_OPTIONS: {
72
+ value = value === true ? '1' : '0';
73
+ break;
74
+ }
75
+ case DataType.LOOKUP_SIMPLE:
76
+ case DataType.LOOKUP_CUSTOMER:
77
+ case DataType.LOOKUP_OWNER: {
78
+ value = value?.map((x) => {
79
+ return {
80
+ entityName: x.entityType,
81
+ name: x.name,
82
+ id: x.id
83
+ };
84
+ })?.[0];
85
+ break;
86
+ }
87
+ }
88
+ return value;
89
+ };
90
+ const onNotifyOutputChanged = (value) => {
91
+ valueRef.current = value;
92
+ hasBeenUpdatedRef.current = true;
93
+ if (!mountedRef.current) {
94
+ recordUpdateService.record(record.getRecordId()).setValue(column.key, getRecordValue(valueRef.current));
95
+ return;
96
+ }
97
+ switch (column.dataType) {
98
+ case DataType.OPTIONSET:
99
+ case DataType.DATE_AND_TIME_DATE_ONLY: {
100
+ props.stopEditing();
101
+ return;
102
+ }
103
+ case DataType.LOOKUP_OWNER:
104
+ case DataType.LOOKUP_SIMPLE:
105
+ case DataType.LOOKUP_CUSTOMER: {
106
+ if (value?.length > 0) {
107
+ props.stopEditing();
108
+ return;
109
+ }
110
+ }
111
+ }
112
+ setValue(valueRef.current);
113
+ };
114
+ return jsx(Component, { column: column, value: getComponentValue(value), formattedValue: record.getFormattedValue(column.key), onNotifyOutputChanged: onNotifyOutputChanged, onOverrideControlProps: (props) => {
115
+ return {
116
+ ...props,
117
+ context: {
118
+ ...props.context,
119
+ mode: {
120
+ ...props.context.mode,
121
+ allocatedHeight: 41
122
+ },
123
+ fluentDesignLanguage: props.context.fluentDesignLanguage ? {
124
+ ...props.context.fluentDesignLanguage,
125
+ tokenTheme: {
126
+ ...props.context.fluentDesignLanguage.tokenTheme,
127
+ underlined: false,
128
+ }
129
+ } : undefined
130
+ },
131
+ parameters: {
132
+ ...props.parameters,
133
+ AutoFocus: {
134
+ raw: true
135
+ },
136
+ EnableNavigation: {
137
+ raw: false
138
+ },
139
+ IsInlineNewEnabled: {
140
+ raw: false
141
+ }
142
+ }
143
+ };
144
+ } });
145
+ };
146
+
147
+ export { EditableCell };
148
+ //# sourceMappingURL=EditableCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditableCell.js","sources":["../../../../../../../src/components/Grid/core/components/Cell/EditableCell/EditableCell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { DataType } from '../../../enums/DataType';\nimport { useGridInstance } from '../../../hooks/useGridInstance';\nimport { IGridColumn } from '../../../interfaces/IGridColumn';\nimport { useRecordUpdateServiceController } from '../../../services/RecordUpdateService/controllers/useRecordUpdateServiceController';\nimport { Component } from '../../Component/Component';\nimport { ICellEditorParams } from '@ag-grid-community/core';\nimport { IEntityRecord } from '../../../../interfaces';\nimport { useTheme } from '@fluentui/react';\n\ninterface ICell extends ICellEditorParams {\n baseColumn: IGridColumn;\n data: ComponentFramework.PropertyHelper.DataSetApi.EntityRecord;\n}\n\nexport const EditableCell = (props: ICell) => {\n const grid = useGridInstance();\n const column = props.baseColumn;\n const recordUpdateService = useRecordUpdateServiceController();\n const mountedRef = React.useRef(true);\n const hasBeenUpdatedRef = React.useRef<boolean>(false);\n const record: IEntityRecord = (() => {\n //this is so we can load the updated record values from state\n const updatedRecord = grid.recordUpdateService.record(props.data.getRecordId()).get() as any;\n return updatedRecord ?? props.data;\n })();\n const valueRef = React.useRef(record.getValue(column.key));\n const [value, setValue] = React.useState(valueRef.current);\n const theme = useTheme();\n\n React.useEffect(() => {\n return () => {\n mountedRef.current = false;\n if (!hasBeenUpdatedRef.current) {\n return;\n }\n recordUpdateService.record(record.getRecordId()).setValue(column.key, getRecordValue(valueRef.current))\n }\n }, []);\n\n const getComponentValue = (value: any) => {\n //already is component value;\n if(hasBeenUpdatedRef.current) {\n return value;\n }\n switch(column.dataType) {\n case DataType.TWO_OPTIONS: {\n value = value === '1' ? true : false\n break;\n }\n case DataType.OPTIONSET: {\n value = value ? parseInt(value) : null;\n break;\n\n }\n case DataType.MULTI_SELECT_OPTIONSET: {\n value = value ? value.split(',').map((value: string) => parseInt(value)) : null;\n break;\n }\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_CUSTOMER:\n case DataType.LOOKUP_OWNER: {\n if(value && !Array.isArray(value)) {\n value = [value];\n }\n value = value?.map((x: any) => {\n return {\n entityType: x.etn,\n id: x.id.guid,\n name: x.name\n }\n })\n break;\n }\n }\n return value;\n }\n //this is just so the setValue API in Power Apps accepts the values that come from the components\n const getRecordValue = (value: any) => {\n switch (column.dataType) {\n case DataType.TWO_OPTIONS: {\n value = value === true ? '1' : '0';\n break;\n }\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_CUSTOMER:\n case DataType.LOOKUP_OWNER: {\n value = value?.map((x: any) => {\n return {\n entityName: x.entityType,\n name: x.name,\n id: x.id\n }\n })?.[0];\n break;\n }\n }\n return value;\n }\n\n const onNotifyOutputChanged = (value: any) => {\n valueRef.current = value;\n hasBeenUpdatedRef.current = true;\n if(!mountedRef.current) {\n recordUpdateService.record(record.getRecordId()).setValue(column.key, getRecordValue(valueRef.current))\n return;\n }\n switch(column.dataType) {\n case DataType.OPTIONSET:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n props.stopEditing();\n return;\n }\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_CUSTOMER: {\n if(value?.length > 0) {\n props.stopEditing();\n return;\n }\n }\n }\n setValue(valueRef.current);\n }\n\n return <Component\n column={column}\n value={getComponentValue(value)}\n formattedValue={record.getFormattedValue(column.key)}\n onNotifyOutputChanged={onNotifyOutputChanged}\n onOverrideControlProps={(props) => {\n return {\n ...props,\n context: {\n ...props.context,\n mode: {\n ...props.context.mode,\n allocatedHeight: 41\n },\n fluentDesignLanguage: props.context.fluentDesignLanguage ? {\n ...props.context.fluentDesignLanguage,\n tokenTheme: {\n ...props.context.fluentDesignLanguage.tokenTheme,\n underlined: false,\n }\n } : undefined\n },\n parameters: {\n ...props.parameters,\n AutoFocus: {\n raw: true\n },\n EnableNavigation: {\n raw: false\n },\n IsInlineNewEnabled: {\n raw: false\n }\n }\n }\n }}\n />\n}"],"names":["_jsx"],"mappings":"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"}