@talxis/base-controls 1.2603.1 → 1.2604.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/dist/components/DatasetControl/EditColumns/ColumnSelector/ColumnSelector.js +4 -4
  2. package/dist/components/DatasetControl/EditColumns/ColumnSelector/ColumnSelector.js.map +1 -1
  3. package/dist/components/DatasetControl/EditColumns/Selector/Selector.js +2 -2
  4. package/dist/components/DatasetControl/EditColumns/Selector/Selector.js.map +1 -1
  5. package/dist/components/DatasetControl/EditColumns/useEditColumns.js +2 -2
  6. package/dist/components/DatasetControl/EditColumns/useEditColumns.js.map +1 -1
  7. package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js +2 -2
  8. package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js.map +1 -1
  9. package/dist/components/DatasetControl/Header/Header.js +1 -0
  10. package/dist/components/DatasetControl/Header/Header.js.map +1 -1
  11. package/dist/components/DatasetControl/interfaces.d.ts +1 -0
  12. package/dist/components/DatasetControl/useModel.js +3 -3
  13. package/dist/components/DatasetControl/useModel.js.map +1 -1
  14. package/dist/components/Grid/cells/cell/content/CellContent.js +8 -8
  15. package/dist/components/Grid/cells/cell/content/CellContent.js.map +1 -1
  16. package/dist/components/Grid/grid/GridModel.js +1 -1
  17. package/dist/components/Grid/grid/GridModel.js.map +1 -1
  18. package/dist/components/Grid/grid/ag-grid/AgGridModel.js +5 -8
  19. package/dist/components/Grid/grid/ag-grid/AgGridModel.js.map +1 -1
  20. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.js +3 -3
  21. package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.js.map +1 -1
  22. package/dist/components/GridCellRenderer/properties/Property.js +3 -1
  23. package/dist/components/GridCellRenderer/properties/Property.js.map +1 -1
  24. package/dist/components/GridCellRenderer/useModel.js +3 -3
  25. package/dist/components/GridCellRenderer/useModel.js.map +1 -1
  26. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +2 -2
  27. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -1
  28. package/dist/components/NestedControlRenderer/NestedControlRenderer.js +2 -2
  29. package/dist/components/NestedControlRenderer/NestedControlRenderer.js.map +1 -1
  30. package/dist/components/TaskGrid/TaskGrid.d.ts +12 -0
  31. package/dist/components/TaskGrid/TaskGrid.js +75 -0
  32. package/dist/components/TaskGrid/TaskGrid.js.map +1 -0
  33. package/dist/components/TaskGrid/TaskGridDatasetControl.d.ts +81 -0
  34. package/dist/components/TaskGrid/TaskGridDatasetControl.js +335 -0
  35. package/dist/components/TaskGrid/TaskGridDatasetControl.js.map +1 -0
  36. package/dist/components/TaskGrid/TaskGridDatasetControlFactory.d.ts +21 -0
  37. package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js +55 -0
  38. package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js.map +1 -0
  39. package/dist/components/TaskGrid/components/components.d.ts +8 -0
  40. package/dist/components/TaskGrid/components/components.js +11 -0
  41. package/dist/components/TaskGrid/components/components.js.map +1 -0
  42. package/dist/components/TaskGrid/components/grid/Grid.d.ts +2 -0
  43. package/dist/components/TaskGrid/components/grid/Grid.js +42 -0
  44. package/dist/components/TaskGrid/components/grid/Grid.js.map +1 -0
  45. package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/TreeExpandCollapseHeader.d.ts +2 -0
  46. package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/TreeExpandCollapseHeader.js +34 -0
  47. package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/TreeExpandCollapseHeader.js.map +1 -0
  48. package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/index.d.ts +1 -0
  49. package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/index.js +2 -0
  50. package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/index.js.map +1 -0
  51. package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/styles.d.ts +17 -0
  52. package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/styles.js +24 -0
  53. package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/styles.js.map +1 -0
  54. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.d.ts +2 -0
  55. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js +81 -0
  56. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js.map +1 -0
  57. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/index.d.ts +1 -0
  58. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/index.js +2 -0
  59. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/index.js.map +1 -0
  60. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/styles.d.ts +25 -0
  61. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/styles.js +32 -0
  62. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/styles.js.map +1 -0
  63. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.d.ts +2 -0
  64. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js +22 -0
  65. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js.map +1 -0
  66. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/index.d.ts +1 -0
  67. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/index.js +2 -0
  68. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/index.js.map +1 -0
  69. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.d.ts +23 -0
  70. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.js +30 -0
  71. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.js.map +1 -0
  72. package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.d.ts +71 -0
  73. package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js +308 -0
  74. package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js.map +1 -0
  75. package/dist/components/TaskGrid/components/grid/grid-customizer/index.d.ts +1 -0
  76. package/dist/components/TaskGrid/components/grid/grid-customizer/index.js +2 -0
  77. package/dist/components/TaskGrid/components/grid/grid-customizer/index.js.map +1 -0
  78. package/dist/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.d.ts +30 -0
  79. package/dist/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.js +80 -0
  80. package/dist/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.js.map +1 -0
  81. package/dist/components/TaskGrid/components/grid/grid-drag-handler/index.d.ts +1 -0
  82. package/dist/components/TaskGrid/components/grid/grid-drag-handler/index.js +2 -0
  83. package/dist/components/TaskGrid/components/grid/grid-drag-handler/index.js.map +1 -0
  84. package/dist/components/TaskGrid/components/grid/group-cell/GroupCell.d.ts +7 -0
  85. package/dist/components/TaskGrid/components/grid/group-cell/GroupCell.js +70 -0
  86. package/dist/components/TaskGrid/components/grid/group-cell/GroupCell.js.map +1 -0
  87. package/dist/components/TaskGrid/components/grid/group-cell/index.d.ts +1 -0
  88. package/dist/components/TaskGrid/components/grid/group-cell/index.js +2 -0
  89. package/dist/components/TaskGrid/components/grid/group-cell/index.js.map +1 -0
  90. package/dist/components/TaskGrid/components/grid/group-cell/styles.d.ts +35 -0
  91. package/dist/components/TaskGrid/components/grid/group-cell/styles.js +41 -0
  92. package/dist/components/TaskGrid/components/grid/group-cell/styles.js.map +1 -0
  93. package/dist/components/TaskGrid/components/grid/index.d.ts +3 -0
  94. package/dist/components/TaskGrid/components/grid/index.js +4 -0
  95. package/dist/components/TaskGrid/components/grid/index.js.map +1 -0
  96. package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.d.ts +17 -0
  97. package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.js +92 -0
  98. package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.js.map +1 -0
  99. package/dist/components/TaskGrid/components/grid/multi-record-selector/index.d.ts +2 -0
  100. package/dist/components/TaskGrid/components/grid/multi-record-selector/index.js +3 -0
  101. package/dist/components/TaskGrid/components/grid/multi-record-selector/index.js.map +1 -0
  102. package/dist/components/TaskGrid/components/grid/record-selector/RecordSelector.d.ts +10 -0
  103. package/dist/components/TaskGrid/components/grid/record-selector/RecordSelector.js +120 -0
  104. package/dist/components/TaskGrid/components/grid/record-selector/RecordSelector.js.map +1 -0
  105. package/dist/components/TaskGrid/components/grid/record-selector/index.d.ts +1 -0
  106. package/dist/components/TaskGrid/components/grid/record-selector/index.js +2 -0
  107. package/dist/components/TaskGrid/components/grid/record-selector/index.js.map +1 -0
  108. package/dist/components/TaskGrid/components/grid/record-selector/styles.d.ts +54 -0
  109. package/dist/components/TaskGrid/components/grid/record-selector/styles.js +60 -0
  110. package/dist/components/TaskGrid/components/grid/record-selector/styles.js.map +1 -0
  111. package/dist/components/TaskGrid/components/header/Header.d.ts +8 -0
  112. package/dist/components/TaskGrid/components/header/Header.js +148 -0
  113. package/dist/components/TaskGrid/components/header/Header.js.map +1 -0
  114. package/dist/components/TaskGrid/components/header/command-bar/CommandBar.d.ts +2 -0
  115. package/dist/components/TaskGrid/components/header/command-bar/CommandBar.js +9 -0
  116. package/dist/components/TaskGrid/components/header/command-bar/CommandBar.js.map +1 -0
  117. package/dist/components/TaskGrid/components/header/command-bar/index.d.ts +1 -0
  118. package/dist/components/TaskGrid/components/header/command-bar/index.js +2 -0
  119. package/dist/components/TaskGrid/components/header/command-bar/index.js.map +1 -0
  120. package/dist/components/TaskGrid/components/header/edit-columns/CommandBar/CommandBar.d.ts +2 -0
  121. package/dist/components/TaskGrid/components/header/edit-columns/CommandBar/CommandBar.js +23 -0
  122. package/dist/components/TaskGrid/components/header/edit-columns/CommandBar/CommandBar.js.map +1 -0
  123. package/dist/components/TaskGrid/components/header/edit-columns/EditColumns.d.ts +5 -0
  124. package/dist/components/TaskGrid/components/header/edit-columns/EditColumns.js +99 -0
  125. package/dist/components/TaskGrid/components/header/edit-columns/EditColumns.js.map +1 -0
  126. package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/OptionCommandBar.d.ts +2 -0
  127. package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/OptionCommandBar.js +51 -0
  128. package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/OptionCommandBar.js.map +1 -0
  129. package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/styles.d.ts +11 -0
  130. package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/styles.js +18 -0
  131. package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/styles.js.map +1 -0
  132. package/dist/components/TaskGrid/components/header/edit-columns/SortableItemCommandBar/SortableItemCommandBar.d.ts +2 -0
  133. package/dist/components/TaskGrid/components/header/edit-columns/SortableItemCommandBar/SortableItemCommandBar.js +27 -0
  134. package/dist/components/TaskGrid/components/header/edit-columns/SortableItemCommandBar/SortableItemCommandBar.js.map +1 -0
  135. package/dist/components/TaskGrid/components/header/edit-columns/styles.d.ts +8 -0
  136. package/dist/components/TaskGrid/components/header/edit-columns/styles.js +15 -0
  137. package/dist/components/TaskGrid/components/header/edit-columns/styles.js.map +1 -0
  138. package/dist/components/TaskGrid/components/header/edit-columns/useTaskGridEditColumns.d.ts +9 -0
  139. package/dist/components/TaskGrid/components/header/edit-columns/useTaskGridEditColumns.js +9 -0
  140. package/dist/components/TaskGrid/components/header/edit-columns/useTaskGridEditColumns.js.map +1 -0
  141. package/dist/components/TaskGrid/components/header/settings-callout/SettingsCallout.d.ts +1 -0
  142. package/dist/components/TaskGrid/components/header/settings-callout/SettingsCallout.js +24 -0
  143. package/dist/components/TaskGrid/components/header/settings-callout/SettingsCallout.js.map +1 -0
  144. package/dist/components/TaskGrid/components/header/settings-callout/index.d.ts +1 -0
  145. package/dist/components/TaskGrid/components/header/settings-callout/index.js +2 -0
  146. package/dist/components/TaskGrid/components/header/settings-callout/index.js.map +1 -0
  147. package/dist/components/TaskGrid/components/header/settings-callout/styles.d.ts +5 -0
  148. package/dist/components/TaskGrid/components/header/settings-callout/styles.js +12 -0
  149. package/dist/components/TaskGrid/components/header/settings-callout/styles.js.map +1 -0
  150. package/dist/components/TaskGrid/components/header/styles.d.ts +15 -0
  151. package/dist/components/TaskGrid/components/header/styles.js +22 -0
  152. package/dist/components/TaskGrid/components/header/styles.js.map +1 -0
  153. package/dist/components/TaskGrid/components/header/view-switcher/ViewSwitcher.d.ts +1 -0
  154. package/dist/components/TaskGrid/components/header/view-switcher/ViewSwitcher.js +104 -0
  155. package/dist/components/TaskGrid/components/header/view-switcher/ViewSwitcher.js.map +1 -0
  156. package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/CreateViewDialog.d.ts +5 -0
  157. package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/CreateViewDialog.js +66 -0
  158. package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/CreateViewDialog.js.map +1 -0
  159. package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/index.d.ts +1 -0
  160. package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/index.js +2 -0
  161. package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/index.js.map +1 -0
  162. package/dist/components/TaskGrid/components/header/view-switcher/index.d.ts +1 -0
  163. package/dist/components/TaskGrid/components/header/view-switcher/index.js +2 -0
  164. package/dist/components/TaskGrid/components/header/view-switcher/index.js.map +1 -0
  165. package/dist/components/TaskGrid/components/header/view-switcher/styles.d.ts +18 -0
  166. package/dist/components/TaskGrid/components/header/view-switcher/styles.js +24 -0
  167. package/dist/components/TaskGrid/components/header/view-switcher/styles.js.map +1 -0
  168. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManageDialog.d.ts +5 -0
  169. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManageDialog.js +54 -0
  170. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManageDialog.js.map +1 -0
  171. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManager.d.ts +18 -0
  172. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManager.js +95 -0
  173. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManager.js.map +1 -0
  174. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/index.d.ts +1 -0
  175. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/index.js +2 -0
  176. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/index.js.map +1 -0
  177. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/styles.d.ts +18 -0
  178. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/styles.js +25 -0
  179. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/styles.js.map +1 -0
  180. package/dist/components/TaskGrid/components/index.d.ts +1 -0
  181. package/dist/components/TaskGrid/components/index.js +2 -0
  182. package/dist/components/TaskGrid/components/index.js.map +1 -0
  183. package/dist/components/TaskGrid/components/skeleton/Skeleton.d.ts +4 -0
  184. package/dist/components/TaskGrid/components/skeleton/Skeleton.js +32 -0
  185. package/dist/components/TaskGrid/components/skeleton/Skeleton.js.map +1 -0
  186. package/dist/components/TaskGrid/components/skeleton/index.d.ts +1 -0
  187. package/dist/components/TaskGrid/components/skeleton/index.js +2 -0
  188. package/dist/components/TaskGrid/components/skeleton/index.js.map +1 -0
  189. package/dist/components/TaskGrid/components/skeleton/styles.d.ts +92 -0
  190. package/dist/components/TaskGrid/components/skeleton/styles.js +100 -0
  191. package/dist/components/TaskGrid/components/skeleton/styles.js.map +1 -0
  192. package/dist/components/TaskGrid/context.d.ts +22 -0
  193. package/dist/components/TaskGrid/context.js +53 -0
  194. package/dist/components/TaskGrid/context.js.map +1 -0
  195. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/CustomColumnsDataProvider.d.ts +50 -0
  196. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/CustomColumnsDataProvider.js +45 -0
  197. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/CustomColumnsDataProvider.js.map +1 -0
  198. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.d.ts +33 -0
  199. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js +227 -0
  200. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js.map +1 -0
  201. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.d.ts +2 -0
  202. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.js +3 -0
  203. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.js.map +1 -0
  204. package/dist/components/TaskGrid/data-providers/index.d.ts +3 -0
  205. package/dist/components/TaskGrid/data-providers/index.js +6 -0
  206. package/dist/components/TaskGrid/data-providers/index.js.map +1 -0
  207. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/SavedQueryDataProvider.d.ts +125 -0
  208. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/SavedQueryDataProvider.js +192 -0
  209. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/SavedQueryDataProvider.js.map +1 -0
  210. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.d.ts +21 -0
  211. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.js +97 -0
  212. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.js.map +1 -0
  213. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.d.ts +2 -0
  214. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.js +3 -0
  215. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.js.map +1 -0
  216. package/dist/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.d.ts +213 -0
  217. package/dist/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.js +313 -0
  218. package/dist/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.js.map +1 -0
  219. package/dist/components/TaskGrid/data-providers/task-data-provider/index.d.ts +1 -0
  220. package/dist/components/TaskGrid/data-providers/task-data-provider/index.js +2 -0
  221. package/dist/components/TaskGrid/data-providers/task-data-provider/index.js.map +1 -0
  222. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.d.ts +55 -0
  223. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.js +304 -0
  224. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.js.map +1 -0
  225. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/index.d.ts +1 -0
  226. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/index.js +2 -0
  227. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/index.js.map +1 -0
  228. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/patchDataBuilderPrepare.d.ts +5 -0
  229. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/patchDataBuilderPrepare.js +16 -0
  230. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/patchDataBuilderPrepare.js.map +1 -0
  231. package/dist/components/TaskGrid/index.d.ts +3 -0
  232. package/dist/components/TaskGrid/index.js +3 -0
  233. package/dist/components/TaskGrid/index.js.map +1 -0
  234. package/dist/components/TaskGrid/interfaces.d.ts +161 -0
  235. package/dist/components/TaskGrid/labels.d.ts +92 -0
  236. package/dist/components/TaskGrid/labels.js +94 -0
  237. package/dist/components/TaskGrid/labels.js.map +1 -0
  238. package/dist/components/TaskGrid/styles.d.ts +65 -0
  239. package/dist/components/TaskGrid/styles.js +72 -0
  240. package/dist/components/TaskGrid/styles.js.map +1 -0
  241. package/dist/components/index.d.ts +1 -0
  242. package/dist/components/index.js +2 -0
  243. package/dist/components/index.js.map +1 -1
  244. package/dist/hooks/useIsMounted.js +3 -3
  245. package/dist/hooks/useIsMounted.js.map +1 -1
  246. package/dist/hooks/useShouldRemount.js +2 -2
  247. package/dist/hooks/useShouldRemount.js.map +1 -1
  248. package/dist/index.d.ts +640 -34
  249. package/dist/index.js +3 -0
  250. package/dist/index.js.map +1 -1
  251. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js +11 -3
  252. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
  253. package/dist/utils/dataset-control/DatasetControl.js +4 -1
  254. package/dist/utils/dataset-control/DatasetControl.js.map +1 -1
  255. package/dist/utils/error-handling/ErrorHelper.d.ts +7 -0
  256. package/dist/utils/error-handling/ErrorHelper.js +40 -0
  257. package/dist/utils/error-handling/ErrorHelper.js.map +1 -0
  258. package/dist/utils/error-handling/index.d.ts +1 -0
  259. package/dist/utils/error-handling/index.js +2 -0
  260. package/dist/utils/error-handling/index.js.map +1 -0
  261. package/dist/utils/index.d.ts +1 -0
  262. package/dist/utils/index.js +1 -0
  263. package/dist/utils/index.js.map +1 -1
  264. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"file":"FileRenderer.js","sources":["../../../../../src/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { useModel } from \"../../useModel\";\nimport { IFileRendererProps as IFileRendererPropsBase } from \"../../interfaces\";\nimport { Link, SpinnerSize, Image, Icon, ImageFit } from \"@fluentui/react\";\nimport { getFileRendererStyles } from \"./styles\";\nimport { Spinner } from \"@talxis/react-components\";\n\ninterface IFileRendererProps {\n onRenderFile: (props: IFileRendererPropsBase, defaultRender: (props: IFileRendererPropsBase) => React.ReactElement) => React.ReactElement;\n}\n\nexport const FileRenderer = (props: IFileRendererProps) => {\n const model = useModel();\n const styles = useMemo(() => getFileRendererStyles(), [])\n const [isFileDownloading, setIsFileDownloading] = React.useState(false);\n const [thumbnailFailedToLoad, setThumbnailFailedToLoad] = React.useState(false);\n\n const onLinkClick = async (e: React.MouseEvent<HTMLElement | HTMLAnchorElement | HTMLButtonElement, MouseEvent>) => {\n if (model.shouldUsePortalDownload()) {\n e.preventDefault();\n setIsFileDownloading(true);\n await model.downloadPortalFile();\n setIsFileDownloading(false);\n }\n }\n\n const onRenderLoadingPrefix = (props: IFileRendererPropsBase) => {\n const thumbnailUrl = model.getImageThumbnailUrl();\n if (isFileDownloading) {\n return props.onRenderLoading({\n size: SpinnerSize.xSmall,\n styles: {\n circle: styles.spinner\n }\n }, (props) => {\n return <Spinner {...props} />\n })\n }\n else if (thumbnailUrl && !thumbnailFailedToLoad) {\n return props.onRenderImageThumbnail({\n src: thumbnailUrl,\n styles: {\n image: styles.thumbnail\n },\n onLoadingStateChange: (state) => {\n if(state == 2) {\n setThumbnailFailedToLoad(true);\n }\n }\n }, (props) => {\n return <Image {...props} />\n })\n }\n else {\n return props.onRenderFileAttachmentIcon({\n iconName: model.getFileAttachmentIcon()\n }, (props) => {\n return <Icon {...props} />\n })\n }\n }\n\n return props.onRenderFile({\n container: {\n className: styles.fileRendererRoot\n },\n onRenderFileAttachmentIcon: (props, defaultRender) => defaultRender(props),\n onRenderImageThumbnail: (props, defaultRender) => defaultRender(props),\n onRenderLoading: (props, defaultRender) => defaultRender(props),\n onRenderLink: (props, defaultRender) => defaultRender(props)\n\n }, (props) => {\n return <div {...props.container}>\n {onRenderLoadingPrefix(props)}\n {props.onRenderLink({\n ...model.getLinkProps(),\n className: styles.link,\n onClick: onLinkClick,\n }, (props) => {\n return <Link {...props} />\n })}\n </div>\n })\n}"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"FileRenderer.js","sources":["../../../../../src/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { useModel } from \"../../useModel\";\nimport { IFileRendererProps as IFileRendererPropsBase } from \"../../interfaces\";\nimport { Link, SpinnerSize, Image, Icon, ImageFit } from \"@fluentui/react\";\nimport { getFileRendererStyles } from \"./styles\";\nimport { Spinner } from \"@talxis/react-components\";\n\ninterface IFileRendererProps {\n onRenderFile: (props: IFileRendererPropsBase, defaultRender: (props: IFileRendererPropsBase) => React.ReactElement) => React.ReactElement;\n}\n\nexport const FileRenderer = (props: IFileRendererProps) => {\n const model = useModel();\n const styles = useMemo(() => getFileRendererStyles(), [])\n const [isFileDownloading, setIsFileDownloading] = React.useState(false);\n const [thumbnailFailedToLoad, setThumbnailFailedToLoad] = React.useState(false);\n\n const onLinkClick = async (e: React.MouseEvent<HTMLElement | HTMLAnchorElement | HTMLButtonElement, MouseEvent>) => {\n if (model.shouldUsePortalDownload()) {\n e.preventDefault();\n setIsFileDownloading(true);\n await model.downloadPortalFile();\n setIsFileDownloading(false);\n }\n }\n\n const onRenderLoadingPrefix = (props: IFileRendererPropsBase) => {\n const thumbnailUrl = model.getImageThumbnailUrl();\n if (isFileDownloading) {\n return props.onRenderLoading({\n size: SpinnerSize.xSmall,\n styles: {\n circle: styles.spinner\n }\n }, (props) => {\n return <Spinner {...props} />\n })\n }\n else if (thumbnailUrl && !thumbnailFailedToLoad) {\n return props.onRenderImageThumbnail({\n src: thumbnailUrl,\n styles: {\n image: styles.thumbnail\n },\n onLoadingStateChange: (state) => {\n if(state == 2) {\n setThumbnailFailedToLoad(true);\n }\n }\n }, (props) => {\n return <Image {...props} />\n })\n }\n else {\n return props.onRenderFileAttachmentIcon({\n iconName: model.getFileAttachmentIcon()\n }, (props) => {\n return <Icon {...props} />\n })\n }\n }\n\n return props.onRenderFile({\n container: {\n className: styles.fileRendererRoot\n },\n onRenderFileAttachmentIcon: (props, defaultRender) => defaultRender(props),\n onRenderImageThumbnail: (props, defaultRender) => defaultRender(props),\n onRenderLoading: (props, defaultRender) => defaultRender(props),\n onRenderLink: (props, defaultRender) => defaultRender(props)\n\n }, (props) => {\n return <div {...props.container}>\n {onRenderLoadingPrefix(props)}\n {props.onRenderLink({\n ...model.getLinkProps(),\n className: styles.link,\n onClick: onLinkClick,\n }, (props) => {\n return <Link {...props} />\n })}\n </div>\n })\n}"],"names":["React","_jsx","_jsxs"],"mappings":"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"}
@@ -51,7 +51,9 @@ class Property {
51
51
  if (dataset.getSelectedRecordIds().length <= 1) {
52
52
  dataset.setSelectedRecordIds([record.getRecordId()]);
53
53
  }
54
- dataset.openDatasetItem(entityReference);
54
+ dataset.openDatasetItem(entityReference, {
55
+ columnName: this._model.getColumn().name
56
+ });
55
57
  }
56
58
  }
57
59
 
@@ -1 +1 @@
1
- {"version":3,"file":"Property.js","sources":["../../../../src/components/GridCellRenderer/properties/Property.ts"],"sourcesContent":["import { ILinkProps } from \"@fluentui/react\";\nimport { GridCellRendererModel } from \"../GridCellRendererModel\";\n\nexport class Property {\n private _model: GridCellRendererModel;\n\n constructor(model: GridCellRendererModel) {\n this._model = model;\n }\n public getLinkProps(): ILinkProps | null {\n if (this._model.getColumn().isPrimary) {\n return {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: this.getFormattedValue(),\n onClick: () => this.openRecord(this._model.getRecord().getNamedReference()),\n }\n }\n else {\n return null;\n }\n }\n public getFileAttachmentIcon(): string | undefined {\n return undefined;\n }\n public getImageThumbnailUrl(): string | null {\n return null;\n }\n public getColorfulOptionSet(): ComponentFramework.PropertyHelper.OptionMetadata[] | null {\n return null;\n }\n public isMultiline(): boolean {\n return false;\n }\n public async downloadPortalFile() {\n return;\n }\n public isFile(): boolean {\n return false;\n }\n public shouldUsePortalDownload(): boolean {\n return false;\n }\n public getModel() {\n return this._model;\n }\n public getValue(): any {\n return this._model.getValue();\n }\n public getFormattedValue(): string | null {\n return this._model.getFormattedValue().value;\n }\n public openRecord(entityReference: ComponentFramework.EntityReference) {\n const dataset = this._model.getDataset();\n const record = this._model.getRecord();\n if(dataset.getSelectedRecordIds().length <= 1) {\n dataset.setSelectedRecordIds([record.getRecordId()]);\n }\n dataset.openDatasetItem(entityReference)\n }\n}"],"names":[],"mappings":"MAGa,QAAQ,CAAA;AAGjB,IAAA,WAAA,CAAY,KAA4B,EAAA;AACpC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACvB;IACM,YAAY,GAAA;QACf,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE;YACnC,OAAO;AACH,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,GAAG,EAAE,qBAAqB;AAC1B,gBAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE;AAClC,gBAAA,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,iBAAiB,EAAE,CAAC;aAC9E,CAAA;AACJ,SAAA;AACI,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;IACM,qBAAqB,GAAA;AACxB,QAAA,OAAO,SAAS,CAAC;KACpB;IACM,oBAAoB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC;KACf;IACM,oBAAoB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC;KACf;IACM,WAAW,GAAA;AACd,QAAA,OAAO,KAAK,CAAC;KAChB;AACM,IAAA,MAAM,kBAAkB,GAAA;QAC3B,OAAO;KACV;IACM,MAAM,GAAA;AACT,QAAA,OAAO,KAAK,CAAC;KAChB;IACM,uBAAuB,GAAA;AAC1B,QAAA,OAAO,KAAK,CAAC;KAChB;IACM,QAAQ,GAAA;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACM,QAAQ,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACjC;IACM,iBAAiB,GAAA;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC;KAChD;AACM,IAAA,UAAU,CAAC,eAAmD,EAAA;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,IAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3C,OAAO,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACxD,SAAA;AACD,QAAA,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;KAC3C;AACJ;;;;"}
1
+ {"version":3,"file":"Property.js","sources":["../../../../src/components/GridCellRenderer/properties/Property.ts"],"sourcesContent":["import { ILinkProps } from \"@fluentui/react\";\nimport { GridCellRendererModel } from \"../GridCellRendererModel\";\n\nexport class Property {\n private _model: GridCellRendererModel;\n\n constructor(model: GridCellRendererModel) {\n this._model = model;\n }\n public getLinkProps(): ILinkProps | null {\n if (this._model.getColumn().isPrimary) {\n return {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: this.getFormattedValue(),\n onClick: () => this.openRecord(this._model.getRecord().getNamedReference()),\n }\n }\n else {\n return null;\n }\n }\n public getFileAttachmentIcon(): string | undefined {\n return undefined;\n }\n public getImageThumbnailUrl(): string | null {\n return null;\n }\n public getColorfulOptionSet(): ComponentFramework.PropertyHelper.OptionMetadata[] | null {\n return null;\n }\n public isMultiline(): boolean {\n return false;\n }\n public async downloadPortalFile() {\n return;\n }\n public isFile(): boolean {\n return false;\n }\n public shouldUsePortalDownload(): boolean {\n return false;\n }\n public getModel() {\n return this._model;\n }\n public getValue(): any {\n return this._model.getValue();\n }\n public getFormattedValue(): string | null {\n return this._model.getFormattedValue().value;\n }\n public openRecord(entityReference: ComponentFramework.EntityReference) {\n const dataset = this._model.getDataset();\n const record = this._model.getRecord();\n if(dataset.getSelectedRecordIds().length <= 1) {\n dataset.setSelectedRecordIds([record.getRecordId()]);\n }\n dataset.openDatasetItem(entityReference, {\n columnName: this._model.getColumn().name\n });\n }\n}"],"names":[],"mappings":"MAGa,QAAQ,CAAA;AAGjB,IAAA,WAAA,CAAY,KAA4B,EAAA;AACpC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACvB;IACM,YAAY,GAAA;QACf,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE;YACnC,OAAO;AACH,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,GAAG,EAAE,qBAAqB;AAC1B,gBAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE;AAClC,gBAAA,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,iBAAiB,EAAE,CAAC;aAC9E,CAAA;AACJ,SAAA;AACI,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;IACM,qBAAqB,GAAA;AACxB,QAAA,OAAO,SAAS,CAAC;KACpB;IACM,oBAAoB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC;KACf;IACM,oBAAoB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC;KACf;IACM,WAAW,GAAA;AACd,QAAA,OAAO,KAAK,CAAC;KAChB;AACM,IAAA,MAAM,kBAAkB,GAAA;QAC3B,OAAO;KACV;IACM,MAAM,GAAA;AACT,QAAA,OAAO,KAAK,CAAC;KAChB;IACM,uBAAuB,GAAA;AAC1B,QAAA,OAAO,KAAK,CAAC;KAChB;IACM,QAAQ,GAAA;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACM,QAAQ,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACjC;IACM,iBAAiB,GAAA;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC;KAChD;AACM,IAAA,UAAU,CAAC,eAAmD,EAAA;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,IAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3C,OAAO,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACxD,SAAA;AACD,QAAA,OAAO,CAAC,eAAe,CAAC,eAAe,EAAE;YACrC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI;AAC3C,SAAA,CAAC,CAAC;KACN;AACJ;;;;"}
@@ -1,8 +1,8 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
 
3
- const ModelContext = React.createContext({});
3
+ const ModelContext = React__default.createContext({});
4
4
  const useModel = () => {
5
- return React.useContext(ModelContext);
5
+ return React__default.useContext(ModelContext);
6
6
  };
7
7
 
8
8
  export { ModelContext, useModel };
@@ -1 +1 @@
1
- {"version":3,"file":"useModel.js","sources":["../../../src/components/GridCellRenderer/useModel.ts"],"sourcesContent":["import React from \"react\";\nimport { GridCellRendererModel } from \"./GridCellRendererModel\";\n\nexport const ModelContext = React.createContext<GridCellRendererModel>({} as any);\n\nexport const useModel = () => {\n return React.useContext(ModelContext);\n}"],"names":[],"mappings":";;AAGa,MAAA,YAAY,GAAG,KAAK,CAAC,aAAa,CAAwB,EAAS,EAAE;AAE3E,MAAM,QAAQ,GAAG,MAAK;AACzB,IAAA,OAAO,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1C;;;;"}
1
+ {"version":3,"file":"useModel.js","sources":["../../../src/components/GridCellRenderer/useModel.ts"],"sourcesContent":["import React from \"react\";\nimport { GridCellRendererModel } from \"./GridCellRendererModel\";\n\nexport const ModelContext = React.createContext<GridCellRendererModel>({} as any);\n\nexport const useModel = () => {\n return React.useContext(ModelContext);\n}"],"names":["React"],"mappings":";;AAGa,MAAA,YAAY,GAAGA,cAAK,CAAC,aAAa,CAAwB,EAAS,EAAE;AAE3E,MAAM,QAAQ,GAAG,MAAK;AACzB,IAAA,OAAOA,cAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1C;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { ComboBox } from '@talxis/react-components';
3
3
  import { ThemeProvider } from '@fluentui/react';
4
- import React, { useRef, useMemo, useEffect } from 'react';
4
+ import React__default, { useRef, useMemo, useEffect } from 'react';
5
5
  import ReactDOM from 'react-dom';
6
6
  import { ColorfulOptions } from './ColofulOptions/ColorfulOptions.js';
7
7
  import { getIsColorFeatureEnabled, onRenderColorfulOption } from '../OptionSet/shared.js';
@@ -58,7 +58,7 @@ const MultiSelectOptionSet = (props) => {
58
58
  const container = document.createElement('div');
59
59
  container.setAttribute('class', `${className} ${styles.colorfulOptionsWrapper}`);
60
60
  container.onclick = () => componentRef.current?.focus(true);
61
- ReactDOM.render(React.createElement(ColorfulOptions, {
61
+ ReactDOM.render(React__default.createElement(ColorfulOptions, {
62
62
  value: boundValue,
63
63
  context: props.context
64
64
  }), container);
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectOptionSet.js","sources":["../../../src/components/MultiSelectOptionSet/MultiSelectOptionSet.tsx"],"sourcesContent":["\nimport { IMultiSelectOptionSet } from './interfaces';\nimport { useControl } from '../../hooks';\nimport { ComboBox } from \"@talxis/react-components\";\nimport { IComboBox, IComboBoxOption, ThemeProvider } from '@fluentui/react';\nimport { useEffect, useMemo, useRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport React from 'react';\nimport { ColorfulOptions } from './ColofulOptions/ColorfulOptions';\nimport { getIsColorFeatureEnabled, onRenderColorfulOption } from '../OptionSet/shared';\nimport { getComboBoxStyles } from './styles';\n\nexport const MultiSelectOptionSet = (props: IMultiSelectOptionSet) => {\n const { sizing, onNotifyOutputChanged, theme } = useControl('MultiSelectOptionSet', props);\n const ref = useRef<HTMLDivElement>(null);\n const parameters = props.parameters;\n const boundValue = parameters.value;\n const componentRef = useRef<IComboBox>(null);\n const { Options } = parameters.value.attributes;\n const context = props.context;\n const applicationTheme = props.context.fluentDesignLanguage?.applicationTheme;\n const isColorFeatureEnabled = useMemo(() => getIsColorFeatureEnabled(props.parameters.EnableOptionSetColors?.raw, Options), [props.parameters.EnableOptionSetColors?.raw, Options]);\n const comboBoxOptions: IComboBoxOption[] = Options.map(option => ({\n key: option.Value.toString(),\n text: option.Label,\n }));\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n\n const handleChange = (option?: IComboBoxOption | null): void => {\n if (!option) {\n onNotifyOutputChanged({\n value: undefined\n });\n return;\n }\n const optionKey = option.key.toString();\n const updatedSelectedKeys = new Set(boundValue.raw || []);\n if (option.selected) {\n updatedSelectedKeys.add(+optionKey);\n } else {\n updatedSelectedKeys.delete(+optionKey);\n }\n const updatedSelectedKeysArray = Array.from(updatedSelectedKeys);\n\n onNotifyOutputChanged({\n value: updatedSelectedKeysArray.map(key => +key)\n });\n };\n\n const isEmptyValue = () => {\n if (!boundValue.raw) {\n return true;\n }\n if (boundValue.raw.length === 0) {\n return true;\n }\n return false;\n }\n\n const renderColorfulOptions = () => {\n const className = 'talxis__multiSelectOptionSet__colorfulOptions';\n const parent: HTMLDivElement = ref.current?.querySelector('.ms-ComboBox')!;\n const container = document.createElement('div');\n container.setAttribute('class', `${className} ${styles.colorfulOptionsWrapper}`);\n container.onclick = () => componentRef.current?.focus(true);\n\n ReactDOM.render(React.createElement(ColorfulOptions, {\n value: boundValue,\n context: props.context\n }), container);\n\n const existingContainer = parent.querySelector(`:scope>.${className}`);\n if (existingContainer && isEmptyValue()) {\n //clear the container if no values are selected\n parent.removeChild(existingContainer);\n }\n if (!existingContainer) {\n parent.prepend(container);\n }\n else {\n existingContainer.replaceWith(container);\n }\n }\n\n\n useEffect(() => {\n if (parameters.AutoFocus?.raw) {\n componentRef.current?.focus(true);\n }\n }, []);\n\n useEffect(() => {\n if (isColorFeatureEnabled) {\n renderColorfulOptions();\n }\n }, [boundValue.raw]);\n\n const styles = getComboBoxStyles(isColorFeatureEnabled, isEmptyValue(), sizing.width, sizing.height)\n\n const componentProps = onOverrideComponentProps({\n componentRef: componentRef,\n ref: ref,\n options: comboBoxOptions,\n allowFreeInput: true,\n multiSelect: true,\n autoComplete: \"on\",\n autofill: parameters.AutoFocus?.raw === true ? {\n autoFocus: true,\n } : undefined,\n onRenderContainer: (containerProps, defaultRender) => <ThemeProvider theme={props.context.fluentDesignLanguage?.applicationTheme}>{defaultRender?.(containerProps)}</ThemeProvider>,\n onRenderOption: isColorFeatureEnabled ? (option) => onRenderColorfulOption(Options, option, theme) : undefined,\n calloutProps: applicationTheme ? {\n theme: applicationTheme\n } : undefined,\n readOnly: context.mode.isControlDisabled,\n errorMessage: boundValue.errorMessage,\n selectedKey: boundValue.raw ? boundValue.raw.map(key => key.toString()) : null,\n useComboBoxAsMenuWidth: true,\n hideErrorMessage: !parameters.ShowErrorMessage?.raw,\n styles: { root: styles.root, callout: styles.callout },\n clickToCopyProps: parameters.EnableCopyButton?.raw === true ? {\n key: 'copy',\n showOnlyOnHover: true,\n iconProps: {\n iconName: 'Copy'\n }\n } : undefined,\n deleteButtonProps: parameters.EnableDeleteButton?.raw === true ? {\n key: 'delete',\n showOnlyOnHover: true,\n iconProps: {\n iconName: 'Cancel'\n },\n onClick: (e, value) => {\n handleChange(null);\n }\n } : undefined,\n onChange: (e, option) => handleChange(option),\n });\n\n return (\n <ThemeProvider theme={theme} applyTo=\"none\">\n <ComboBox {...componentProps} />\n </ThemeProvider>\n );\n};\n"],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"MultiSelectOptionSet.js","sources":["../../../src/components/MultiSelectOptionSet/MultiSelectOptionSet.tsx"],"sourcesContent":["\nimport { IMultiSelectOptionSet } from './interfaces';\nimport { useControl } from '../../hooks';\nimport { ComboBox } from \"@talxis/react-components\";\nimport { IComboBox, IComboBoxOption, ThemeProvider } from '@fluentui/react';\nimport { useEffect, useMemo, useRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport React from 'react';\nimport { ColorfulOptions } from './ColofulOptions/ColorfulOptions';\nimport { getIsColorFeatureEnabled, onRenderColorfulOption } from '../OptionSet/shared';\nimport { getComboBoxStyles } from './styles';\n\nexport const MultiSelectOptionSet = (props: IMultiSelectOptionSet) => {\n const { sizing, onNotifyOutputChanged, theme } = useControl('MultiSelectOptionSet', props);\n const ref = useRef<HTMLDivElement>(null);\n const parameters = props.parameters;\n const boundValue = parameters.value;\n const componentRef = useRef<IComboBox>(null);\n const { Options } = parameters.value.attributes;\n const context = props.context;\n const applicationTheme = props.context.fluentDesignLanguage?.applicationTheme;\n const isColorFeatureEnabled = useMemo(() => getIsColorFeatureEnabled(props.parameters.EnableOptionSetColors?.raw, Options), [props.parameters.EnableOptionSetColors?.raw, Options]);\n const comboBoxOptions: IComboBoxOption[] = Options.map(option => ({\n key: option.Value.toString(),\n text: option.Label,\n }));\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n\n const handleChange = (option?: IComboBoxOption | null): void => {\n if (!option) {\n onNotifyOutputChanged({\n value: undefined\n });\n return;\n }\n const optionKey = option.key.toString();\n const updatedSelectedKeys = new Set(boundValue.raw || []);\n if (option.selected) {\n updatedSelectedKeys.add(+optionKey);\n } else {\n updatedSelectedKeys.delete(+optionKey);\n }\n const updatedSelectedKeysArray = Array.from(updatedSelectedKeys);\n\n onNotifyOutputChanged({\n value: updatedSelectedKeysArray.map(key => +key)\n });\n };\n\n const isEmptyValue = () => {\n if (!boundValue.raw) {\n return true;\n }\n if (boundValue.raw.length === 0) {\n return true;\n }\n return false;\n }\n\n const renderColorfulOptions = () => {\n const className = 'talxis__multiSelectOptionSet__colorfulOptions';\n const parent: HTMLDivElement = ref.current?.querySelector('.ms-ComboBox')!;\n const container = document.createElement('div');\n container.setAttribute('class', `${className} ${styles.colorfulOptionsWrapper}`);\n container.onclick = () => componentRef.current?.focus(true);\n\n ReactDOM.render(React.createElement(ColorfulOptions, {\n value: boundValue,\n context: props.context\n }), container);\n\n const existingContainer = parent.querySelector(`:scope>.${className}`);\n if (existingContainer && isEmptyValue()) {\n //clear the container if no values are selected\n parent.removeChild(existingContainer);\n }\n if (!existingContainer) {\n parent.prepend(container);\n }\n else {\n existingContainer.replaceWith(container);\n }\n }\n\n\n useEffect(() => {\n if (parameters.AutoFocus?.raw) {\n componentRef.current?.focus(true);\n }\n }, []);\n\n useEffect(() => {\n if (isColorFeatureEnabled) {\n renderColorfulOptions();\n }\n }, [boundValue.raw]);\n\n const styles = getComboBoxStyles(isColorFeatureEnabled, isEmptyValue(), sizing.width, sizing.height)\n\n const componentProps = onOverrideComponentProps({\n componentRef: componentRef,\n ref: ref,\n options: comboBoxOptions,\n allowFreeInput: true,\n multiSelect: true,\n autoComplete: \"on\",\n autofill: parameters.AutoFocus?.raw === true ? {\n autoFocus: true,\n } : undefined,\n onRenderContainer: (containerProps, defaultRender) => <ThemeProvider theme={props.context.fluentDesignLanguage?.applicationTheme}>{defaultRender?.(containerProps)}</ThemeProvider>,\n onRenderOption: isColorFeatureEnabled ? (option) => onRenderColorfulOption(Options, option, theme) : undefined,\n calloutProps: applicationTheme ? {\n theme: applicationTheme\n } : undefined,\n readOnly: context.mode.isControlDisabled,\n errorMessage: boundValue.errorMessage,\n selectedKey: boundValue.raw ? boundValue.raw.map(key => key.toString()) : null,\n useComboBoxAsMenuWidth: true,\n hideErrorMessage: !parameters.ShowErrorMessage?.raw,\n styles: { root: styles.root, callout: styles.callout },\n clickToCopyProps: parameters.EnableCopyButton?.raw === true ? {\n key: 'copy',\n showOnlyOnHover: true,\n iconProps: {\n iconName: 'Copy'\n }\n } : undefined,\n deleteButtonProps: parameters.EnableDeleteButton?.raw === true ? {\n key: 'delete',\n showOnlyOnHover: true,\n iconProps: {\n iconName: 'Cancel'\n },\n onClick: (e, value) => {\n handleChange(null);\n }\n } : undefined,\n onChange: (e, option) => handleChange(option),\n });\n\n return (\n <ThemeProvider theme={theme} applyTo=\"none\">\n <ComboBox {...componentProps} />\n </ThemeProvider>\n );\n};\n"],"names":["React","_jsx"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import React, { forwardRef, useRef, useImperativeHandle, useMemo, useEffect } from 'react';
2
+ import React__default, { forwardRef, useRef, useImperativeHandle, useMemo, useEffect } from 'react';
3
3
  import { NestedControl } from './NestedControl.js';
4
4
  import { getNestedControlStyles } from './styles.js';
5
5
  import { useRerender, Spinner } from '@talxis/react-components';
@@ -108,7 +108,7 @@ const NestedControlRenderer = (props) => {
108
108
  const onRender = (control, defaultRender) => {
109
109
  if (getRef().isBaseControl) {
110
110
  const controlProps = control.getProps();
111
- return ReactDOM.render(React.createElement(getBaseControl(), controlProps), control.getContainer());
111
+ return ReactDOM.render(React__default.createElement(getBaseControl(), controlProps), control.getContainer());
112
112
  }
113
113
  return defaultRender();
114
114
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NestedControlRenderer.js","sources":["../../../src/components/NestedControlRenderer/NestedControlRenderer.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\nimport { NestedControl } from './NestedControl';\nimport { INestedControlRenderer, INestedControlRendererComponentProps, INestedControlRendererParameters } from './interfaces';\nimport { TextField } from '../TextField';\nimport { Decimal } from '../Decimal';\nimport { Duration } from '../Duration';\nimport { TwoOptions } from '../TwoOptions';\nimport { DateTime } from '../DateTime';\nimport { MultiSelectOptionSet } from '../MultiSelectOptionSet';\nimport { Lookup } from '../Lookup';\nimport { OptionSet } from '../OptionSet';\nimport { BaseControls } from '../../utils';\nimport { getNestedControlStyles } from './styles';\nimport { Spinner, useRerender } from '@talxis/react-components';\nimport { MessageBar, MessageBarButton, MessageBarType, Shimmer, SpinnerSize } from '@fluentui/react';\nimport ReactDOM from 'react-dom';\nimport { useControlLabels } from '../../hooks';\nimport { getDefaultNestedControlRendererTranslations } from './translations';\nimport { GridCellRenderer } from '../GridCellRenderer/GridCellRenderer';\nimport { GridColumnHeader } from '../GridColumnHeader/GridColumnHeader';\nimport { Ribbon } from '../Ribbon/Ribbon';\nimport { GridInlineRibbon } from '../GridInlineRibbon/GridInlineRibbon';\n\ninterface IRef {\n control: NestedControl | null;\n props: INestedControlRenderer;\n controlName: string;\n componentProps: INestedControlRendererComponentProps;\n isBaseControl: boolean;\n mounted: boolean;\n controlContainer: HTMLDivElement | null;\n}\n\nexport const NestedControlRenderer = (props: INestedControlRenderer) => {\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n const labels = useControlLabels({\n translations: props.translations,\n languageId : props.context.userSettings.languageId,\n defaultTranslations: getDefaultNestedControlRendererTranslations()\n })\n const rerender = useRerender();\n const isBaseControl = useMemo(() => {\n return BaseControls.IsBaseControl(props.parameters.ControlName);\n }, [props.parameters.ControlName]);\n\n const styles = useMemo(() => getNestedControlStyles(isBaseControl), [isBaseControl]);\n const internalControlRendererRef = useRef<IInternalNestedControlRendererRef>(null);\n const ref = useRef<Partial<IRef>>();\n \n ref.current = {\n ...ref.current,\n props: props,\n isBaseControl: isBaseControl,\n controlName: props.parameters.ControlName \n }\n\n ref.current.componentProps = onOverrideComponentProps({\n rootContainerProps: {},\n controlContainerProps: {},\n messageBarProps: {\n //@ts-ignore - typescript\n messageBarType: MessageBarType.error,\n buttonProps: {\n className: styles.messageBarBtn\n }\n },\n loadingProps: {\n containerProps: {},\n spinnerProps: {\n size: SpinnerSize.xSmall\n },\n shimmerProps: {\n styles: {\n root: styles.shimmerRoot,\n shimmerWrapper: {\n height: 32\n }\n }\n },\n },\n onOverrideRender: (control, isCustomPcfComponent, defaultRender) => defaultRender(),\n onOverrideUnmount: (control, defaultUnmount) => defaultUnmount(),\n onOverrideControlProps: (props) => props,\n });\n\n const getRef = (): IRef => {\n return ref.current as any;\n }\n\n const getBaseControl = (): any => {\n switch (getRef().controlName) {\n case 'TextField':\n return TextField\n case 'OptionSet':\n return OptionSet;\n case 'Lookup':\n return Lookup;\n case 'MultiSelectOptionSet':\n return MultiSelectOptionSet;\n case 'TwoOptions':\n return TwoOptions;\n case 'DateTime':\n return DateTime;\n case 'Decimal':\n return Decimal;\n case 'Duration':\n return Duration;\n case 'GridCellRenderer':\n return GridCellRenderer;\n case 'GridColumnHeader': {\n return GridColumnHeader;\n }\n case 'GridInlineRibbon': {\n return GridInlineRibbon;\n }\n case 'Ribbon': {\n return Ribbon;\n }\n default:\n return GridCellRenderer;\n }\n };\n\n const onRender = (control: NestedControl, defaultRender: () => Promise<void>) => {\n if (getRef().isBaseControl) {\n const controlProps = control.getProps();\n return ReactDOM.render(React.createElement(getBaseControl(), controlProps), control.getContainer());\n }\n return defaultRender();\n }\n\n const onUmount = (control: NestedControl, defaultUnmount: () => void) => {\n if (control.isMountedPcfComponent()) {\n return defaultUnmount();\n }\n return ReactDOM.unmountComponentAtNode(control.getContainer())\n }\n\n const createControlInstance = () => {\n new NestedControl({\n parentPcfContext: getRef().props.context,\n onGetContainerElement: () => getRef().controlContainer!,\n onGetControlName: () => getRef().controlName,\n onGetBindings: () => {\n return getRef().props.parameters.Bindings ?? {};\n },\n callbacks: {\n //onInit could either by sync or async\n onInit: (instance) => {\n getRef().control = instance;\n //if we are already mounted, we need to rerender\n if (getRef().mounted) {\n rerender();\n }\n },\n onControlStateChanged: () => internalControlRendererRef.current?.rerender(),\n onGetControlStates: () => getRef().props.parameters.ControlStates,\n onNotifyOutputChanged: (outputs) => getRef().props.onNotifyOutputChanged?.(outputs)\n },\n overrides: {\n onGetProps: getRef().componentProps.onOverrideControlProps,\n onRender: (control: NestedControl, defaultRender) => {\n getRef().componentProps.onOverrideRender(control, !getRef().isBaseControl, () => {\n onRender(control, defaultRender);\n })\n },\n onUnmount: (control, defaultUnmount) => {\n getRef().componentProps.onOverrideUnmount(control, () => onUmount(control, defaultUnmount))\n },\n onIsLoading: () => getRef().componentProps.onOverrideIsLoading?.()\n },\n })\n\n }\n useMemo(() => {\n createControlInstance();\n }, []);\n\n useEffect(() => {\n const ref = getRef();\n ref.mounted = true;\n ref.controlContainer = internalControlRendererRef.current!.getContainer();\n return () => {\n const ref = getRef();\n ref.control?.unmount();\n ref.controlContainer = null;\n ref.control = null;\n }\n }, []);\n\n useEffect(() => {\n getRef().control?.render();\n })\n\n return <InternalNestedControlRenderer\n ref={internalControlRendererRef}\n labels={labels}\n control={getRef().control ?? undefined}\n parameters={getRef().props.parameters}\n componentProps={getRef().componentProps} />\n}\n\ninterface IInternalNestedControlRendererProps {\n parameters: INestedControlRendererParameters;\n componentProps: INestedControlRendererComponentProps;\n labels: any;\n loadingType?: 'spinner' | 'shimmer';\n control?: NestedControl;\n\n}\n\ninterface IInternalNestedControlRendererRef {\n getContainer: () => HTMLDivElement;\n rerender: () => void;\n}\n\n\nconst InternalNestedControlRenderer = forwardRef<IInternalNestedControlRendererRef, IInternalNestedControlRendererProps>((props, ref) => {\n //once control is defined, it is initialized\n const { control, parameters, componentProps, labels } = props;\n const customControlContainerRef = useRef<HTMLDivElement>(null);\n const errorMessage = control?.getErrorMessage();\n const rerender = useRerender();\n\n useImperativeHandle(ref, () => {\n return {\n getContainer: () => customControlContainerRef.current!,\n rerender: () => rerender()\n }\n })\n\n const renderLoading = () => {\n if (parameters.LoadingType === 'shimmer') {\n return <Shimmer {...componentProps?.loadingProps?.shimmerProps} />\n }\n return <Spinner {...componentProps?.loadingProps?.spinnerProps} />\n }\n\n const onShowErrorDialog = () => {\n if(window.Xrm?.Navigation) {\n window.Xrm.Navigation.openErrorDialog({\n message: errorMessage\n })\n return;\n }\n alert(errorMessage);\n }\n\n return (\n <div {...componentProps.rootContainerProps}>\n {(!control || control.isLoading() || props.componentProps.onOverrideIsLoading?.()) && <div {...componentProps?.loadingProps?.containerProps}>{renderLoading()}</div>\n }\n {errorMessage &&\n <MessageBar messageBarType={MessageBarType.error} isMultiline={false} actions={<div>\n <MessageBarButton className={componentProps.messageBarProps.buttonProps.className} onClick={() => onShowErrorDialog()}>{labels.detail()}</MessageBarButton>\n </div>} {...componentProps?.messageBarProps}>\n {labels.control()} <b>{parameters.ControlName}</b> {labels.failedToLoad()}.\n </MessageBar>\n }\n <div ref={customControlContainerRef} style={errorMessage ? {display: 'none'} : undefined} {...componentProps.controlContainerProps} />\n </div>)\n})\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"NestedControlRenderer.js","sources":["../../../src/components/NestedControlRenderer/NestedControlRenderer.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\nimport { NestedControl } from './NestedControl';\nimport { INestedControlRenderer, INestedControlRendererComponentProps, INestedControlRendererParameters } from './interfaces';\nimport { TextField } from '../TextField';\nimport { Decimal } from '../Decimal';\nimport { Duration } from '../Duration';\nimport { TwoOptions } from '../TwoOptions';\nimport { DateTime } from '../DateTime';\nimport { MultiSelectOptionSet } from '../MultiSelectOptionSet';\nimport { Lookup } from '../Lookup';\nimport { OptionSet } from '../OptionSet';\nimport { BaseControls } from '../../utils';\nimport { getNestedControlStyles } from './styles';\nimport { Spinner, useRerender } from '@talxis/react-components';\nimport { MessageBar, MessageBarButton, MessageBarType, Shimmer, SpinnerSize } from '@fluentui/react';\nimport ReactDOM from 'react-dom';\nimport { useControlLabels } from '../../hooks';\nimport { getDefaultNestedControlRendererTranslations } from './translations';\nimport { GridCellRenderer } from '../GridCellRenderer/GridCellRenderer';\nimport { GridColumnHeader } from '../GridColumnHeader/GridColumnHeader';\nimport { Ribbon } from '../Ribbon/Ribbon';\nimport { GridInlineRibbon } from '../GridInlineRibbon/GridInlineRibbon';\n\ninterface IRef {\n control: NestedControl | null;\n props: INestedControlRenderer;\n controlName: string;\n componentProps: INestedControlRendererComponentProps;\n isBaseControl: boolean;\n mounted: boolean;\n controlContainer: HTMLDivElement | null;\n}\n\nexport const NestedControlRenderer = (props: INestedControlRenderer) => {\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n const labels = useControlLabels({\n translations: props.translations,\n languageId : props.context.userSettings.languageId,\n defaultTranslations: getDefaultNestedControlRendererTranslations()\n })\n const rerender = useRerender();\n const isBaseControl = useMemo(() => {\n return BaseControls.IsBaseControl(props.parameters.ControlName);\n }, [props.parameters.ControlName]);\n\n const styles = useMemo(() => getNestedControlStyles(isBaseControl), [isBaseControl]);\n const internalControlRendererRef = useRef<IInternalNestedControlRendererRef>(null);\n const ref = useRef<Partial<IRef>>();\n \n ref.current = {\n ...ref.current,\n props: props,\n isBaseControl: isBaseControl,\n controlName: props.parameters.ControlName \n }\n\n ref.current.componentProps = onOverrideComponentProps({\n rootContainerProps: {},\n controlContainerProps: {},\n messageBarProps: {\n //@ts-ignore - typescript\n messageBarType: MessageBarType.error,\n buttonProps: {\n className: styles.messageBarBtn\n }\n },\n loadingProps: {\n containerProps: {},\n spinnerProps: {\n size: SpinnerSize.xSmall\n },\n shimmerProps: {\n styles: {\n root: styles.shimmerRoot,\n shimmerWrapper: {\n height: 32\n }\n }\n },\n },\n onOverrideRender: (control, isCustomPcfComponent, defaultRender) => defaultRender(),\n onOverrideUnmount: (control, defaultUnmount) => defaultUnmount(),\n onOverrideControlProps: (props) => props,\n });\n\n const getRef = (): IRef => {\n return ref.current as any;\n }\n\n const getBaseControl = (): any => {\n switch (getRef().controlName) {\n case 'TextField':\n return TextField\n case 'OptionSet':\n return OptionSet;\n case 'Lookup':\n return Lookup;\n case 'MultiSelectOptionSet':\n return MultiSelectOptionSet;\n case 'TwoOptions':\n return TwoOptions;\n case 'DateTime':\n return DateTime;\n case 'Decimal':\n return Decimal;\n case 'Duration':\n return Duration;\n case 'GridCellRenderer':\n return GridCellRenderer;\n case 'GridColumnHeader': {\n return GridColumnHeader;\n }\n case 'GridInlineRibbon': {\n return GridInlineRibbon;\n }\n case 'Ribbon': {\n return Ribbon;\n }\n default:\n return GridCellRenderer;\n }\n };\n\n const onRender = (control: NestedControl, defaultRender: () => Promise<void>) => {\n if (getRef().isBaseControl) {\n const controlProps = control.getProps();\n return ReactDOM.render(React.createElement(getBaseControl(), controlProps), control.getContainer());\n }\n return defaultRender();\n }\n\n const onUmount = (control: NestedControl, defaultUnmount: () => void) => {\n if (control.isMountedPcfComponent()) {\n return defaultUnmount();\n }\n return ReactDOM.unmountComponentAtNode(control.getContainer())\n }\n\n const createControlInstance = () => {\n new NestedControl({\n parentPcfContext: getRef().props.context,\n onGetContainerElement: () => getRef().controlContainer!,\n onGetControlName: () => getRef().controlName,\n onGetBindings: () => {\n return getRef().props.parameters.Bindings ?? {};\n },\n callbacks: {\n //onInit could either by sync or async\n onInit: (instance) => {\n getRef().control = instance;\n //if we are already mounted, we need to rerender\n if (getRef().mounted) {\n rerender();\n }\n },\n onControlStateChanged: () => internalControlRendererRef.current?.rerender(),\n onGetControlStates: () => getRef().props.parameters.ControlStates,\n onNotifyOutputChanged: (outputs) => getRef().props.onNotifyOutputChanged?.(outputs)\n },\n overrides: {\n onGetProps: getRef().componentProps.onOverrideControlProps,\n onRender: (control: NestedControl, defaultRender) => {\n getRef().componentProps.onOverrideRender(control, !getRef().isBaseControl, () => {\n onRender(control, defaultRender);\n })\n },\n onUnmount: (control, defaultUnmount) => {\n getRef().componentProps.onOverrideUnmount(control, () => onUmount(control, defaultUnmount))\n },\n onIsLoading: () => getRef().componentProps.onOverrideIsLoading?.()\n },\n })\n\n }\n useMemo(() => {\n createControlInstance();\n }, []);\n\n useEffect(() => {\n const ref = getRef();\n ref.mounted = true;\n ref.controlContainer = internalControlRendererRef.current!.getContainer();\n return () => {\n const ref = getRef();\n ref.control?.unmount();\n ref.controlContainer = null;\n ref.control = null;\n }\n }, []);\n\n useEffect(() => {\n getRef().control?.render();\n })\n\n return <InternalNestedControlRenderer\n ref={internalControlRendererRef}\n labels={labels}\n control={getRef().control ?? undefined}\n parameters={getRef().props.parameters}\n componentProps={getRef().componentProps} />\n}\n\ninterface IInternalNestedControlRendererProps {\n parameters: INestedControlRendererParameters;\n componentProps: INestedControlRendererComponentProps;\n labels: any;\n loadingType?: 'spinner' | 'shimmer';\n control?: NestedControl;\n\n}\n\ninterface IInternalNestedControlRendererRef {\n getContainer: () => HTMLDivElement;\n rerender: () => void;\n}\n\n\nconst InternalNestedControlRenderer = forwardRef<IInternalNestedControlRendererRef, IInternalNestedControlRendererProps>((props, ref) => {\n //once control is defined, it is initialized\n const { control, parameters, componentProps, labels } = props;\n const customControlContainerRef = useRef<HTMLDivElement>(null);\n const errorMessage = control?.getErrorMessage();\n const rerender = useRerender();\n\n useImperativeHandle(ref, () => {\n return {\n getContainer: () => customControlContainerRef.current!,\n rerender: () => rerender()\n }\n })\n\n const renderLoading = () => {\n if (parameters.LoadingType === 'shimmer') {\n return <Shimmer {...componentProps?.loadingProps?.shimmerProps} />\n }\n return <Spinner {...componentProps?.loadingProps?.spinnerProps} />\n }\n\n const onShowErrorDialog = () => {\n if(window.Xrm?.Navigation) {\n window.Xrm.Navigation.openErrorDialog({\n message: errorMessage\n })\n return;\n }\n alert(errorMessage);\n }\n\n return (\n <div {...componentProps.rootContainerProps}>\n {(!control || control.isLoading() || props.componentProps.onOverrideIsLoading?.()) && <div {...componentProps?.loadingProps?.containerProps}>{renderLoading()}</div>\n }\n {errorMessage &&\n <MessageBar messageBarType={MessageBarType.error} isMultiline={false} actions={<div>\n <MessageBarButton className={componentProps.messageBarProps.buttonProps.className} onClick={() => onShowErrorDialog()}>{labels.detail()}</MessageBarButton>\n </div>} {...componentProps?.messageBarProps}>\n {labels.control()} <b>{parameters.ControlName}</b> {labels.failedToLoad()}.\n </MessageBar>\n }\n <div ref={customControlContainerRef} style={errorMessage ? {display: 'none'} : undefined} {...componentProps.controlContainerProps} />\n </div>)\n})\n"],"names":["React","_jsx","_jsxs"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="@types/powerapps-component-framework" />
2
+ import { ITaskGridLabels } from "./labels";
3
+ import { ITaskGridComponents } from "./components/components";
4
+ import { ITaskGridDescriptor } from "./interfaces";
5
+ interface ITaskGridProps {
6
+ pcfContext: ComponentFramework.Context<any, any>;
7
+ taskGridDescriptor: ITaskGridDescriptor;
8
+ labels?: Partial<ITaskGridLabels>;
9
+ components?: Partial<ITaskGridComponents>;
10
+ }
11
+ export declare const TaskGrid: (props: ITaskGridProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,75 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useEventEmitter } from '../../hooks/useEventEmitter.js';
3
+ import * as React from 'react';
4
+ import { useRef } from 'react';
5
+ import { PcfContext, LocalizationServiceContext, AgGridLicenseKeyContext, TaskGridComponentsContext, DatasetControlContext, TaskDataProviderContext, TaskGridDescriptorContext, RootElementIdContext } from './context.js';
6
+ import { useTheme } from '@fluentui/react';
7
+ import { getDatasetControlStyles } from './styles.js';
8
+ import { TASK_GRID_LABELS, LocalizationService } from './labels.js';
9
+ import { TaskGridDatasetControlFactory } from './TaskGridDatasetControlFactory.js';
10
+ import { Header } from './components/header/Header.js';
11
+ import { TaskGridComponents } from './components/components.js';
12
+ import { Grid } from './components/grid/Grid.js';
13
+ import { DatasetControl } from '../DatasetControl/DatasetControl.js';
14
+
15
+ //serves for keeping track of lifecycle
16
+ const TaskGrid = (props) => {
17
+ const { taskGridDescriptor } = props;
18
+ const stateRef = useRef({});
19
+ const components = { ...TaskGridComponents, ...props.components };
20
+ const pcfContextRef = useRef(props.pcfContext);
21
+ pcfContextRef.current = props.pcfContext;
22
+ const labelsRef = useRef();
23
+ labelsRef.current = { ...TASK_GRID_LABELS, ...props.labels };
24
+ const localizationService = React.useMemo(() => new LocalizationService(() => labelsRef.current), []);
25
+ const [instanceState, setInstanceState] = React.useState(null);
26
+ const createDatasetControlInstance = async () => {
27
+ setInstanceState(null);
28
+ const instance = await TaskGridDatasetControlFactory.createInstance({
29
+ taskGridDescriptor,
30
+ localizationService,
31
+ state: stateRef.current,
32
+ onGetPcfContext: () => pcfContextRef.current,
33
+ });
34
+ setInstanceState(prev => ({ instance, remountKey: (prev?.remountKey ?? 0) + 1 }));
35
+ };
36
+ React.useEffect(() => {
37
+ createDatasetControlInstance();
38
+ }, []);
39
+ if (!instanceState) {
40
+ return components.onRenderSkeleton({
41
+ height: taskGridDescriptor.onGetGridParameters?.().height ?? '400px'
42
+ });
43
+ }
44
+ return (jsx(PcfContext.Provider, { value: pcfContextRef.current, children: jsx(LocalizationServiceContext.Provider, { value: localizationService, children: jsx(AgGridLicenseKeyContext.Provider, { value: taskGridDescriptor.onGetAgGridLicenseKey?.() ?? null, children: jsx(TaskGridComponentsContext.Provider, { value: components, children: jsx(InternalTaskGridDatasetControl, { ...props, datasetControl: instanceState.instance, onRemountRequested: createDatasetControlInstance }, instanceState.remountKey) }) }) }) }));
45
+ };
46
+ const InternalTaskGridDatasetControl = (props) => {
47
+ const { datasetControl, onRemountRequested, taskGridDescriptor } = props;
48
+ const theme = useTheme();
49
+ const styles = React.useMemo(() => getDatasetControlStyles(theme), [theme]);
50
+ const provider = datasetControl.getDataset().getDataProvider();
51
+ const rootElementId = `${datasetControl.getControlId()}-root`;
52
+ useEventEmitter(datasetControl, 'onRemountRequested', onRemountRequested);
53
+ React.useEffect(() => {
54
+ datasetControl.getDataset().refresh();
55
+ }, []);
56
+ return jsx(DatasetControlContext.Provider, { value: datasetControl, children: jsx(TaskDataProviderContext.Provider, { value: provider, children: jsx(TaskGridDescriptorContext.Provider, { value: taskGridDescriptor, children: jsx(RootElementIdContext.Provider, { value: rootElementId, children: jsx(DatasetControl, { onGetDatasetControlInstance: () => datasetControl, onGetControlComponent: Grid, onOverrideComponentProps: (props) => {
57
+ return {
58
+ ...props,
59
+ onRender: (props, defaultRender) => {
60
+ return defaultRender({
61
+ ...props,
62
+ container: {
63
+ ...props.container,
64
+ id: rootElementId,
65
+ className: `${props.container.className} ${styles.datasetControlRoot}`
66
+ },
67
+ onRenderHeader: (props, defaultRender) => jsx(Header, { headerProps: props, defaultRender: defaultRender })
68
+ });
69
+ }
70
+ };
71
+ } }) }) }) }) });
72
+ };
73
+
74
+ export { TaskGrid };
75
+ //# sourceMappingURL=TaskGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskGrid.js","sources":["../../../src/components/TaskGrid/TaskGrid.tsx"],"sourcesContent":["import { useEventEmitter } from \"../../hooks/useEventEmitter\"\nimport { IDatasetControlEvents } from \"../../utils/dataset-control\";\nimport { useRef } from \"react\";\nimport * as React from \"react\";\nimport { AgGridLicenseKeyContext, DatasetControlContext, LocalizationServiceContext, PcfContext, RootElementIdContext, TaskDataProviderContext, TaskGridComponentsContext, TaskGridDescriptorContext, usePcfContext } from \"./context\";\nimport { DatasetControl as DatasetControlRenderer } from \"../DatasetControl\";\nimport { useTheme } from \"@fluentui/react\";\nimport { getDatasetControlStyles } from \"./styles\";\nimport { Grid } from \"./components/grid\";\nimport { ITaskDataProvider } from \"./data-providers/task-data-provider\";\nimport { ITaskGridLabels, LocalizationService } from \"./labels\";\nimport { TASK_GRID_LABELS } from \"./labels\";\nimport { ITaskGridState, TaskGridDatasetControlFactory } from \"./TaskGridDatasetControlFactory\";\nimport { Header } from \"./components/header/Header\";\nimport { ITaskGridComponents, TaskGridComponents } from \"./components/components\";\nimport { ITaskGridDescriptor, ITaskGridDatasetControl } from \"./interfaces\";\n\ninterface ITaskGridProps {\n //should be replaced by Context API in future\n pcfContext: ComponentFramework.Context<any, any>;\n taskGridDescriptor: ITaskGridDescriptor;\n labels?: Partial<ITaskGridLabels>;\n components?: Partial<ITaskGridComponents>;\n}\n\ninterface IInternalTaskGridProps extends ITaskGridProps {\n datasetControl: ITaskGridDatasetControl;\n onRemountRequested: () => void;\n}\n\n//serves for keeping track of lifecycle\nexport const TaskGrid = (props: ITaskGridProps) => {\n const { taskGridDescriptor } = props;\n const stateRef = useRef<ITaskGridState>({});\n const components = { ...TaskGridComponents, ...props.components };\n const pcfContextRef = useRef(props.pcfContext);\n pcfContextRef.current = props.pcfContext;\n const labelsRef = useRef<ITaskGridLabels>();\n labelsRef.current = { ...TASK_GRID_LABELS, ...props.labels };\n const localizationService = React.useMemo(() => new LocalizationService(() => labelsRef.current!), []);\n\n const [instanceState, setInstanceState] = React.useState<{\n instance: ITaskGridDatasetControl;\n remountKey: number;\n } | null>(null);\n\n const createDatasetControlInstance = async () => {\n setInstanceState(null);\n const instance = await TaskGridDatasetControlFactory.createInstance({\n taskGridDescriptor,\n localizationService,\n state: stateRef.current,\n onGetPcfContext: () => pcfContextRef.current!,\n });\n setInstanceState(prev => ({ instance, remountKey: (prev?.remountKey ?? 0) + 1 }));\n };\n\n React.useEffect(() => {\n createDatasetControlInstance();\n }, []);\n\n if (!instanceState) {\n return components.onRenderSkeleton({\n height: taskGridDescriptor.onGetGridParameters?.().height ?? '400px'\n })\n }\n\n return (\n <PcfContext.Provider value={pcfContextRef.current}>\n <LocalizationServiceContext.Provider value={localizationService}>\n <AgGridLicenseKeyContext.Provider value={taskGridDescriptor.onGetAgGridLicenseKey?.() ?? null}>\n <TaskGridComponentsContext.Provider value={components}>\n <InternalTaskGridDatasetControl\n key={instanceState.remountKey}\n {...props}\n datasetControl={instanceState.instance}\n onRemountRequested={createDatasetControlInstance}\n />\n </TaskGridComponentsContext.Provider>\n </AgGridLicenseKeyContext.Provider>\n </LocalizationServiceContext.Provider>\n </PcfContext.Provider>\n );\n}\nconst InternalTaskGridDatasetControl = (props: IInternalTaskGridProps) => {\n const { datasetControl, onRemountRequested, taskGridDescriptor } = props;\n const theme = useTheme();\n const styles = React.useMemo(() => getDatasetControlStyles(theme), [theme]);\n const provider = datasetControl.getDataset().getDataProvider() as ITaskDataProvider;\n const rootElementId = `${datasetControl.getControlId()}-root`;\n\n useEventEmitter<IDatasetControlEvents>(datasetControl, 'onRemountRequested', onRemountRequested);\n\n React.useEffect(() => {\n datasetControl.getDataset().refresh();\n }, []);\n\n return <DatasetControlContext.Provider value={datasetControl}>\n <TaskDataProviderContext.Provider value={provider}>\n <TaskGridDescriptorContext.Provider value={taskGridDescriptor}>\n <RootElementIdContext.Provider value={rootElementId}>\n <DatasetControlRenderer\n onGetDatasetControlInstance={() => datasetControl}\n onGetControlComponent={Grid}\n onOverrideComponentProps={(props) => {\n return {\n ...props,\n onRender: (props, defaultRender) => {\n return defaultRender({\n ...props,\n container: {\n ...props.container,\n id: rootElementId,\n className: `${props.container.className} ${styles.datasetControlRoot}`\n },\n onRenderHeader: (props, defaultRender) => <Header headerProps={props} defaultRender={defaultRender} />\n })\n }\n }\n }} />\n </RootElementIdContext.Provider>\n </TaskGridDescriptorContext.Provider>\n </TaskDataProviderContext.Provider>\n </DatasetControlContext.Provider >\n}"],"names":["_jsx","DatasetControlRenderer"],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /// <reference types="@types/powerapps-component-framework" />
2
+ import { IDatasetControlParameters } from "../DatasetControl";
3
+ import { IDatasetControlEvents } from "../../utils/dataset-control";
4
+ import { IEditColumns } from "../../utils/dataset-control/EditColumns";
5
+ import { IDataset, ICommand, EventEmitter, IDataProvider } from "@talxis/client-libraries";
6
+ import { ITaskDataProvider } from "./data-providers/task-data-provider";
7
+ import { ILocalizationService, ITaskGridLabels } from "./labels";
8
+ import { ISavedQueryDataProvider } from "./data-providers/saved-query-data-provider";
9
+ import { ICustomColumnsDataProvider } from "./data-providers/custom-columns-data-provider/CustomColumnsDataProvider";
10
+ import { ITaskGridDatasetControl, ITaskGridDatasetControlParameters } from "./interfaces";
11
+ export declare class TaskGridDatasetControl extends EventEmitter<IDatasetControlEvents> implements ITaskGridDatasetControl {
12
+ private _dataset;
13
+ private _descriptor;
14
+ private _dataProvider;
15
+ private _templateDataProvider?;
16
+ private _localizationService;
17
+ private _savedQueryDataProvider;
18
+ private _customColumnsDataProvider?;
19
+ private _controlId;
20
+ private _state;
21
+ private _gridParameters;
22
+ private _commands;
23
+ private _getPcfContext;
24
+ private _changeToQueryId;
25
+ constructor(parameters: ITaskGridDatasetControlParameters);
26
+ get editColumns(): IEditColumns;
27
+ getNativeColumns(): import("./interfaces").INativeColumns;
28
+ getLocalizationService(): ILocalizationService<ITaskGridLabels>;
29
+ getControlId(): string;
30
+ isRowDraggingEnabled(): boolean;
31
+ isEditColumnsScopeSelectorEnabled(): boolean;
32
+ isTemplatingEnabled(): boolean;
33
+ isCustomColumnsEnabled(): boolean;
34
+ isHideInactiveTasksToggleVisible(): boolean;
35
+ isCustomColumnCreationEnabled(): boolean;
36
+ isCustomColumnEditingEnabled(): boolean;
37
+ isCustomColumnDeletionEnabled(): boolean;
38
+ isShowHierarchyToggleVisible(): boolean;
39
+ getInactiveTasksVisibility(): boolean;
40
+ isViewManagerEnabled(): boolean;
41
+ isSaveQueryAsNewEnabled(): boolean;
42
+ isSaveQueryChangesEnabled(): boolean;
43
+ isUserQueriesFeatureEnabled(): boolean;
44
+ getSavedQueryDataProvider(): ISavedQueryDataProvider;
45
+ getTemplateDataProvider(): IDataProvider;
46
+ createUserQueryDataProvider(): IDataProvider;
47
+ getCustomColumnsDataProvider(): ICustomColumnsDataProvider;
48
+ toggleFlatList(enabled: boolean): void;
49
+ toggleHideInactiveTasks(hide: boolean): void;
50
+ changeSavedQuery(queryId: string): void;
51
+ setInterceptor(event: any, interceptor: any): void;
52
+ isPaginationVisible(): boolean;
53
+ isRecordCountVisible(): boolean;
54
+ isPageSizeSwitcherVisible(): boolean;
55
+ isQuickFindVisible(): boolean;
56
+ isAutoSaveEnabled(): boolean;
57
+ isRibbonVisible(): boolean;
58
+ getHeight(): string | null;
59
+ getDataset(): IDataset;
60
+ getDataProvider(): ITaskDataProvider;
61
+ getPcfContext(): ComponentFramework.Context<any>;
62
+ getParameters(): IDatasetControlParameters;
63
+ loadCommands(ids: string[]): Promise<void>;
64
+ retrieveRecordCommands(): ICommand[];
65
+ areCommandsLoaded(): boolean;
66
+ isEditColumnsVisible(): boolean;
67
+ isViewSwitcherVisible(): boolean;
68
+ isEditFiltersVisible(): boolean;
69
+ requestEditColumns(): void;
70
+ destroy(): void;
71
+ requestRemount(): void;
72
+ init(): Promise<void>;
73
+ getState(): ComponentFramework.Dictionary;
74
+ saveState(): void;
75
+ private _loadState;
76
+ private _onSelectedRecordsChanged;
77
+ private _onAfterUserQueryCreated;
78
+ private _registerEventListeners;
79
+ private _onError;
80
+ private _onAfterTasksDeleted;
81
+ }