@talxis/base-controls 1.2603.1 → 1.2604.2

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 +74 -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 +643 -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 +9 -6
@@ -0,0 +1,308 @@
1
+ import { DatasetConstants } from '@talxis/client-libraries';
2
+ import { GridDragHandler } from '../grid-drag-handler/GridDragHandler.js';
3
+ import { AddTaskButton } from '../cell-renderers/add-task-button/AddTaskButton.js';
4
+ import { TreeExpandCollapseHeader } from '../cell-headers/tree-expand-collapse-header/TreeExpandCollapseHeader.js';
5
+ import { PercentComplete } from '../cell-renderers/percent-complete/PercentComplete.js';
6
+ import { GroupCell } from '../group-cell/GroupCell.js';
7
+
8
+ const ADD_TASK_COLUMN_NAME = 'addTask';
9
+ class GridCustomizer {
10
+ constructor(parameters) {
11
+ //undefined means we should target top level
12
+ this._onRecordTreeUpdated = (affectedIds) => {
13
+ for (const id of affectedIds) {
14
+ if (!id) {
15
+ this._gridApi.refreshServerSide();
16
+ }
17
+ else {
18
+ const node = this._gridApi.getRowNode(id);
19
+ this._gridApi.refreshServerSide({
20
+ route: this._getPathToParent(node)
21
+ });
22
+ this._gridApi.refreshServerSide({
23
+ route: [...this._getPathToParent(node), id]
24
+ });
25
+ }
26
+ }
27
+ this._gridApi.refreshCells({
28
+ columns: [this._nativeColumns.subject],
29
+ force: true
30
+ });
31
+ this._taskDataProvider.requestRender();
32
+ };
33
+ this._onAfterTasksCreated = (records, parentId) => {
34
+ if (!records || records.length === 0)
35
+ return;
36
+ if (parentId) {
37
+ const parentNode = this._gridApi.getRowNode(parentId);
38
+ if (parentNode && !parentNode.expanded) {
39
+ parentNode.setExpanded(true);
40
+ }
41
+ }
42
+ if (!parentId) {
43
+ this._gridApi.ensureIndexVisible(0);
44
+ }
45
+ };
46
+ this._onAfterTaskDataUpdated = (newData) => {
47
+ const recordIdsSet = new Set(newData.map(item => item[this._taskDataProvider.getMetadata().PrimaryIdAttribute]));
48
+ const nodes = this._gridApi.getRenderedNodes().filter(node => recordIdsSet.has(node.id));
49
+ this._gridApi.refreshCells({
50
+ rowNodes: nodes,
51
+ force: true
52
+ });
53
+ };
54
+ this._datasetControl = parameters.datasetControl;
55
+ this._taskDataProvider = this._datasetControl.getDataProvider();
56
+ this._gridApi = parameters.gridApi;
57
+ this._localizationService = this._datasetControl.getLocalizationService();
58
+ this._nativeColumns = this._datasetControl.getNativeColumns();
59
+ this._strategy = parameters.strategy;
60
+ this._pcfContext = this._datasetControl.getPcfContext();
61
+ this._gridDragHandler = new GridDragHandler({
62
+ gridApi: this._gridApi,
63
+ datasetControl: this._datasetControl
64
+ });
65
+ this._patchGridApi();
66
+ this._registerEventListeners();
67
+ this._gridApi.setGridOption('rowClassRules', this._getRowClassRules());
68
+ this._strategy?.onInitialize?.(this);
69
+ }
70
+ getDatasetControl() {
71
+ return this._datasetControl;
72
+ }
73
+ getGridApi() {
74
+ return this._gridApi;
75
+ }
76
+ getTaskDataProvider() {
77
+ return this._taskDataProvider;
78
+ }
79
+ //makes sure we do not try to register an expression for a column that does not exist
80
+ registerExpressionDecorator(columnName, registrator) {
81
+ if (columnName && this._taskDataProvider.getColumnsMap()[columnName]) {
82
+ registrator();
83
+ }
84
+ }
85
+ _patchGridApi() {
86
+ const originalSetGridOption = this._gridApi.setGridOption.bind(this._gridApi);
87
+ this._gridApi.setGridOption = (key, value) => {
88
+ switch (key) {
89
+ case 'columnDefs': {
90
+ const columnDefs = this._getColumnDefinitions(value);
91
+ originalSetGridOption(key, columnDefs);
92
+ break;
93
+ }
94
+ case 'isServerSideGroupOpenByDefault': {
95
+ originalSetGridOption(key, (params) => this._isServerSideGroupOpenByDefault(params));
96
+ break;
97
+ }
98
+ default: {
99
+ originalSetGridOption(key, value);
100
+ }
101
+ }
102
+ };
103
+ }
104
+ _isServerSideGroupOpenByDefault(params) {
105
+ if (!params.data) {
106
+ return false;
107
+ }
108
+ const matchingRecords = this._taskDataProvider.getRecordTree().getMatchingRecords();
109
+ return !matchingRecords[params.data.getRecordId()];
110
+ }
111
+ _injectAddTaskColumn(columnDefs) {
112
+ if (!columnDefs.find(colDef => colDef.colId === ADD_TASK_COLUMN_NAME)) {
113
+ columnDefs.push({
114
+ colId: ADD_TASK_COLUMN_NAME,
115
+ headerName: '',
116
+ pinned: 'left',
117
+ width: 50,
118
+ resizable: false,
119
+ lockPinned: true,
120
+ lockPosition: true,
121
+ suppressMovable: true,
122
+ suppressSizeToFit: true,
123
+ cellRenderer: AddTaskButton,
124
+ headerComponent: TreeExpandCollapseHeader
125
+ });
126
+ }
127
+ }
128
+ _getColumnDefinitions(columnDefs) {
129
+ this._injectAddTaskColumn(columnDefs);
130
+ for (const colDef of columnDefs) {
131
+ colDef.onCellDoubleClicked = () => { };
132
+ const columnName = colDef.colId;
133
+ switch (columnName) {
134
+ case this._nativeColumns.subject: {
135
+ colDef.cellRenderer = GroupCell;
136
+ colDef.pinned = 'left';
137
+ break;
138
+ }
139
+ case DatasetConstants.CHECKBOX_COLUMN_KEY: {
140
+ colDef.lockPosition = true;
141
+ break;
142
+ }
143
+ case this._nativeColumns.percentComplete: {
144
+ colDef.cellRenderer = PercentComplete;
145
+ break;
146
+ }
147
+ }
148
+ }
149
+ columnDefs.sort((a, b) => this._getColumnPriority(a) - this._getColumnPriority(b));
150
+ columnDefs = this._strategy?.onGetColumnDefinitions?.(columnDefs) ?? columnDefs;
151
+ for (const colDef of columnDefs) {
152
+ colDef.cellRenderer = this._strategy?.onGetCellRenderer?.(colDef) ?? colDef.cellRenderer;
153
+ colDef.cellEditor = this._strategy?.onGetCellEditor?.(colDef) ?? colDef.cellEditor;
154
+ }
155
+ return columnDefs;
156
+ }
157
+ _getColumnPriority(col) {
158
+ if (col.colId === DatasetConstants.CHECKBOX_COLUMN_KEY)
159
+ return 0;
160
+ if (col.colId === ADD_TASK_COLUMN_NAME)
161
+ return 1;
162
+ if (col.field === this._nativeColumns.subject)
163
+ return 2;
164
+ return 3;
165
+ }
166
+ _getRowClassRules() {
167
+ const rules = {
168
+ 'talxis_task-grid_row--drag-over-middle': (params) => {
169
+ return !!params.data?.isActive() && this._getNodeDragOverSection(params.node) === 'middle';
170
+ },
171
+ 'talxis_task-grid_row--drag-over-top': (params) => {
172
+ return this._getNodeDragOverSection(params.node) === 'top';
173
+ },
174
+ 'talxis_task-grid_row--drag-over-bottom': (params) => {
175
+ return this._getNodeDragOverSection(params.node) === 'bottom';
176
+ },
177
+ 'talxis_task-grid_row--inactive': (params) => {
178
+ return !params.data?.isActive();
179
+ },
180
+ 'talxis_task-grid_row--unmatched-parent': (params) => {
181
+ if (params.data) {
182
+ const matchingRecordsMap = this._taskDataProvider.getRecordTree().getMatchingRecords();
183
+ return !matchingRecordsMap[params.data.getRecordId()];
184
+ }
185
+ else {
186
+ return false;
187
+ }
188
+ }
189
+ };
190
+ return this._strategy?.onGetRowClassRules?.(rules) ?? rules;
191
+ }
192
+ _getPathToParent(node) {
193
+ const path = [];
194
+ let parent = node?.parent;
195
+ while (parent) {
196
+ path.push(parent.id);
197
+ parent = parent.parent;
198
+ }
199
+ return path.filter(id => id).reverse();
200
+ }
201
+ _getNodeDragOverSection(node) {
202
+ const pendingDragOperation = this._gridDragHandler.getPendingDragOperation();
203
+ if (!pendingDragOperation) {
204
+ return null;
205
+ }
206
+ else {
207
+ const isCurrentNode = pendingDragOperation.overNode === node;
208
+ const isDraggedNode = pendingDragOperation.draggedNode === pendingDragOperation.overNode;
209
+ if (isCurrentNode && !isDraggedNode) {
210
+ return pendingDragOperation.dragOverSection;
211
+ }
212
+ else {
213
+ return null;
214
+ }
215
+ }
216
+ }
217
+ async _onDragEnd(dragOperation) {
218
+ if (this._isDragOperationAllowed(dragOperation)) {
219
+ this._moveTask(dragOperation);
220
+ }
221
+ }
222
+ _isDragOperationAllowed(dragOperation) {
223
+ const { draggedNode, overNode } = dragOperation;
224
+ // Check if either node is null/undefined
225
+ if (!draggedNode || !overNode) {
226
+ return false;
227
+ }
228
+ if (draggedNode === overNode) {
229
+ return false;
230
+ }
231
+ if (!overNode.data?.isActive() && dragOperation.dragOverSection === 'middle') {
232
+ return false;
233
+ }
234
+ let parent = overNode.parent;
235
+ while (parent) {
236
+ if (parent === draggedNode) {
237
+ return false;
238
+ }
239
+ parent = parent.parent;
240
+ }
241
+ return true;
242
+ }
243
+ _getPositionFromDragOverSection(dragOverSection) {
244
+ switch (dragOverSection) {
245
+ case 'top': {
246
+ return 'above';
247
+ }
248
+ case 'bottom': {
249
+ return 'below';
250
+ }
251
+ case 'middle': {
252
+ return 'child';
253
+ }
254
+ }
255
+ }
256
+ async _moveTask(dragOperation) {
257
+ const { draggedNode, overNode, dragOverSection } = dragOperation;
258
+ const position = this._getPositionFromDragOverSection(dragOverSection);
259
+ this._taskDataProvider.moveTask(draggedNode.id, overNode.id, position);
260
+ }
261
+ _moveInto(movingFromRecordId, movingToRecordId, position) {
262
+ const draggedRecordNode = this._taskDataProvider.getRecordTree().getNode(movingFromRecordId);
263
+ const draggedRecord = this._taskDataProvider.getRecordsMap()[movingFromRecordId];
264
+ const draggedNode = this._gridApi.getRowNode(movingFromRecordId);
265
+ const overNode = this._gridApi.getRowNode(movingToRecordId);
266
+ let addIndex = draggedRecordNode.index;
267
+ //first remove from old location
268
+ this._gridApi.applyServerSideTransaction({
269
+ route: this._getPathToParent(draggedNode),
270
+ remove: [draggedRecord],
271
+ });
272
+ //update the store where dragged parent node is (so the arrow can disappear if needed)
273
+ this._gridApi.applyServerSideTransaction({
274
+ route: this._getPathToParent(draggedNode.parent),
275
+ update: [draggedNode.data],
276
+ });
277
+ //update the store where over node is (so the arrow can appear if needed)
278
+ this._gridApi.applyServerSideTransaction({
279
+ route: this._getPathToParent(overNode),
280
+ update: [overNode.data],
281
+ });
282
+ //then add to new location
283
+ this._gridApi.applyServerSideTransaction({
284
+ // i need to set route to parent of over node
285
+ route: [...this._getPathToParent(overNode), ...(position === 'child' ? [overNode.id] : [])],
286
+ add: [draggedRecord],
287
+ addIndex: addIndex !== null ? addIndex : undefined,
288
+ });
289
+ if (position === 'child') {
290
+ overNode.setExpanded(true);
291
+ }
292
+ this._gridApi.refreshCells({
293
+ columns: [this._nativeColumns.subject],
294
+ force: true
295
+ });
296
+ this._taskDataProvider.clearSelectedRecordIds();
297
+ }
298
+ _registerEventListeners() {
299
+ this._taskDataProvider.taskEvents.addEventListener('onAfterTaskMoved', (movingFromTaskId, movingToTaskId, position) => this._moveInto(movingFromTaskId, movingToTaskId, position));
300
+ this._taskDataProvider.taskEvents.addEventListener('onAfterTasksCreated', (records, parentId) => this._onAfterTasksCreated(records, parentId));
301
+ this._taskDataProvider.taskEvents.addEventListener('onRecordTreeUpdated', (updatedParentIds) => this._onRecordTreeUpdated(updatedParentIds));
302
+ this._taskDataProvider.taskEvents.addEventListener('onTaskDataUpdated', (newData) => this._onAfterTaskDataUpdated(newData));
303
+ this._gridDragHandler.addEventListener('onDragEnd', (dragOperation) => this._onDragEnd(dragOperation));
304
+ }
305
+ }
306
+
307
+ export { ADD_TASK_COLUMN_NAME, GridCustomizer };
308
+ //# sourceMappingURL=GridCustomizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GridCustomizer.js","sources":["../../../../../../src/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.ts"],"sourcesContent":["import { ColDef as ColDefBase, GridApi as GridApiBase, IRowNode, IsServerSideGroupOpenByDefaultParams, RowClassRules as RowClassRulesBase } from \"@ag-grid-community/core\";\nimport { ITaskDataProvider } from \"../../../data-providers/task-data-provider\";\nimport { DatasetConstants, IRawRecord, IRecord } from \"@talxis/client-libraries\";\nimport { GridDragHandler, IDragOperation } from \"../grid-drag-handler\";\nimport { GroupCell } from \"../group-cell\";\nimport { TreeExpandCollapseHeader } from \"../cell-headers/tree-expand-collapse-header\";\nimport { AddTaskButton } from \"../cell-renderers/add-task-button\";\nimport { ILocalizationService, ITaskGridLabels } from \"../../../labels\";\nimport { PercentComplete } from \"../cell-renderers/percent-complete\";\nimport { INativeColumns, ITaskGridDatasetControl } from \"../../../interfaces\";\n\nexport const ADD_TASK_COLUMN_NAME = 'addTask';\n\nexport type ColDef = ColDefBase<IRecord>;\nexport type GridApi = GridApiBase<IRecord>;\nexport type RowClassRules = RowClassRulesBase<IRecord>;\n\n\n/** Strategy interface for deep customization of the AG Grid instance inside TaskGrid. */\nexport interface IGridCustomizerStrategy {\n /** Called once after the grid is ready. Use to call `customizer.registerExpressionDecorator` or perform other one-time setup. */\n onInitialize: (customizer: IGridCustomizer) => void;\n /** Receives the computed column definitions and may return a modified array. */\n onGetColumnDefinitions?: (columnDefs: ColDef[]) => ColDef[];\n /** Receives the default row class rules map and may return an extended or overridden version. */\n onGetRowClassRules?: (rules: RowClassRules) => RowClassRules;\n /** Return a custom cell renderer component for the given column definition, or `undefined` to use the default. */\n onGetCellRenderer?: (colDef: ColDef) => any;\n /** Return a custom cell editor component for the given column definition, or `undefined` to use the default. */\n onGetCellEditor?: (colDef: ColDef) => any;\n /** Receives the raw AG Grid `GridApi` instance, useful if the strategy needs to retain a reference. */\n onRetrieveGridApi?: (gridApi: GridApi) => void;\n}\n\n/** Provides access to the AG Grid instance and the TaskGrid control to code running inside `IGridCustomizerStrategy`. */\nexport interface IGridCustomizer {\n /** Returns the underlying AG Grid `GridApi`. */\n getGridApi(): GridApi;\n /** Returns the `ITaskDataProvider` that backs the grid data layer. */\n getTaskDataProvider(): ITaskDataProvider;\n /** Returns the `ITaskGridDatasetControl` runtime control interface. */\n getDatasetControl(): ITaskGridDatasetControl;\n /**\n * Registers a column-expression decorator only when the given column exists in the current columns map.\n * Prevents errors when registering decorators for columns that may not be present in all views.\n */\n registerExpressionDecorator(columnName: string, registrator: () => void): void;\n}\n\nexport interface IGridCustomizerParameters {\n gridApi: GridApi;\n datasetControl: ITaskGridDatasetControl;\n strategy?: IGridCustomizerStrategy;\n}\n\nexport class GridCustomizer implements IGridCustomizer {\n private _taskDataProvider: ITaskDataProvider;\n private _gridApi: GridApi;\n private _gridDragHandler: GridDragHandler;\n private _localizationService: ILocalizationService<ITaskGridLabels>;\n private _nativeColumns: INativeColumns;\n private _pcfContext: ComponentFramework.Context<any>;\n private _datasetControl: ITaskGridDatasetControl;\n private _strategy?: IGridCustomizerStrategy;\n\n constructor(parameters: IGridCustomizerParameters) {\n this._datasetControl = parameters.datasetControl;\n this._taskDataProvider = this._datasetControl.getDataProvider();\n this._gridApi = parameters.gridApi;\n this._localizationService = this._datasetControl.getLocalizationService();\n this._nativeColumns = this._datasetControl.getNativeColumns();\n this._strategy = parameters.strategy;\n this._pcfContext = this._datasetControl.getPcfContext();\n\n this._gridDragHandler = new GridDragHandler({\n gridApi: this._gridApi,\n datasetControl: this._datasetControl\n });\n this._patchGridApi();\n this._registerEventListeners();\n this._gridApi.setGridOption('rowClassRules', this._getRowClassRules());\n this._strategy?.onInitialize?.(this);\n }\n\n public getDatasetControl(): ITaskGridDatasetControl {\n return this._datasetControl;\n }\n\n public getGridApi(): GridApi {\n return this._gridApi;\n }\n\n public getTaskDataProvider(): ITaskDataProvider {\n return this._taskDataProvider;\n }\n\n //makes sure we do not try to register an expression for a column that does not exist\n public registerExpressionDecorator(columnName: string, registrator: () => void) {\n if (columnName && this._taskDataProvider.getColumnsMap()[columnName]) {\n registrator();\n }\n }\n\n private _patchGridApi() {\n const originalSetGridOption = this._gridApi.setGridOption.bind(this._gridApi);\n this._gridApi.setGridOption = (key: any, value: any): void => {\n switch (key) {\n case 'columnDefs': {\n const columnDefs = this._getColumnDefinitions(value);\n originalSetGridOption(key, columnDefs);\n break;\n }\n case 'isServerSideGroupOpenByDefault': {\n originalSetGridOption(key, (params: IsServerSideGroupOpenByDefaultParams) => this._isServerSideGroupOpenByDefault(params));\n break;\n }\n default: {\n originalSetGridOption(key, value);\n }\n }\n }\n }\n\n private _isServerSideGroupOpenByDefault(params: IsServerSideGroupOpenByDefaultParams) {\n if (!params.data) {\n return false;\n }\n const matchingRecords = this._taskDataProvider.getRecordTree().getMatchingRecords();\n return !matchingRecords[params.data.getRecordId()];\n }\n\n private _injectAddTaskColumn(columnDefs: ColDef[]) {\n if (!columnDefs.find(colDef => colDef.colId === ADD_TASK_COLUMN_NAME)) {\n columnDefs.push({\n colId: ADD_TASK_COLUMN_NAME,\n headerName: '',\n pinned: 'left',\n width: 50,\n resizable: false,\n lockPinned: true,\n lockPosition: true,\n suppressMovable: true,\n suppressSizeToFit: true,\n cellRenderer: AddTaskButton,\n headerComponent: TreeExpandCollapseHeader\n })\n }\n }\n\n private _getColumnDefinitions(columnDefs: ColDef[]) {\n this._injectAddTaskColumn(columnDefs);\n for (const colDef of columnDefs) {\n colDef.onCellDoubleClicked = () => { }\n const columnName = colDef.colId as string;\n switch (columnName) {\n case this._nativeColumns.subject: {\n colDef.cellRenderer = GroupCell;\n colDef.pinned = 'left';\n break;\n }\n case DatasetConstants.CHECKBOX_COLUMN_KEY: {\n colDef.lockPosition = true;\n break;\n }\n case this._nativeColumns.percentComplete: {\n colDef.cellRenderer = PercentComplete;\n break\n }\n }\n }\n\n columnDefs.sort((a, b) => this._getColumnPriority(a) - this._getColumnPriority(b));\n columnDefs = this._strategy?.onGetColumnDefinitions?.(columnDefs) ?? columnDefs;\n for (const colDef of columnDefs) {\n colDef.cellRenderer = this._strategy?.onGetCellRenderer?.(colDef) ?? colDef.cellRenderer;\n colDef.cellEditor = this._strategy?.onGetCellEditor?.(colDef) ?? colDef.cellEditor;\n }\n return columnDefs;\n\n }\n\n private _getColumnPriority(col: ColDef): number {\n if (col.colId === DatasetConstants.CHECKBOX_COLUMN_KEY) return 0;\n if (col.colId === ADD_TASK_COLUMN_NAME) return 1;\n if (col.field === this._nativeColumns.subject) return 2;\n return 3;\n }\n\n private _getRowClassRules(): RowClassRules {\n const rules: RowClassRules = {\n 'talxis_task-grid_row--drag-over-middle': (params) => {\n return !!params.data?.isActive() && this._getNodeDragOverSection(params.node) === 'middle'\n },\n 'talxis_task-grid_row--drag-over-top': (params) => {\n return this._getNodeDragOverSection(params.node) === 'top'\n },\n 'talxis_task-grid_row--drag-over-bottom': (params) => {\n return this._getNodeDragOverSection(params.node) === 'bottom'\n },\n 'talxis_task-grid_row--inactive': (params) => {\n return !params.data?.isActive()\n },\n 'talxis_task-grid_row--unmatched-parent': (params) => {\n if (params.data) {\n const matchingRecordsMap = this._taskDataProvider.getRecordTree().getMatchingRecords();\n return !matchingRecordsMap[params.data!.getRecordId()]\n }\n else {\n return false;\n }\n }\n }\n return this._strategy?.onGetRowClassRules?.(rules) ?? rules;\n }\n\n private _getPathToParent(node: IRowNode<IRecord> | null): string[] {\n const path: string[] = [];\n let parent = node?.parent;\n while (parent) {\n path.push(parent.id!);\n parent = parent.parent;\n }\n return path.filter(id => id).reverse();\n }\n\n //undefined means we should target top level\n private _onRecordTreeUpdated = (affectedIds: (string | undefined)[]) => {\n for (const id of affectedIds) {\n if (!id) {\n this._gridApi.refreshServerSide();\n }\n else {\n const node = this._gridApi.getRowNode(id)!;\n this._gridApi.refreshServerSide({\n route: this._getPathToParent(node)\n });\n this._gridApi.refreshServerSide({\n route: [...this._getPathToParent(node), id]\n })\n }\n }\n this._gridApi.refreshCells({\n columns: [this._nativeColumns.subject],\n force: true\n });\n this._taskDataProvider.requestRender();\n }\n\n private _getNodeDragOverSection(node: IRowNode<IRecord>): IDragOperation['dragOverSection'] | null {\n const pendingDragOperation = this._gridDragHandler.getPendingDragOperation();\n if (!pendingDragOperation) {\n return null;\n }\n else {\n const isCurrentNode = pendingDragOperation.overNode === node;\n const isDraggedNode = pendingDragOperation.draggedNode === pendingDragOperation.overNode;\n if (isCurrentNode && !isDraggedNode) {\n return pendingDragOperation.dragOverSection;\n }\n else {\n return null;\n }\n }\n }\n\n private async _onDragEnd(dragOperation: IDragOperation) {\n if (this._isDragOperationAllowed(dragOperation)) {\n this._moveTask(dragOperation);\n }\n }\n\n private _isDragOperationAllowed(dragOperation: IDragOperation): boolean {\n const { draggedNode, overNode } = dragOperation;\n // Check if either node is null/undefined\n if (!draggedNode || !overNode) {\n return false;\n }\n if (draggedNode === overNode) {\n return false;\n }\n if (!overNode.data?.isActive() && dragOperation.dragOverSection === 'middle') {\n return false;\n }\n\n let parent = overNode.parent;\n while (parent) {\n if (parent === draggedNode) {\n return false;\n }\n parent = parent.parent;\n }\n return true;\n }\n\n private _getPositionFromDragOverSection(dragOverSection: IDragOperation['dragOverSection']): 'above' | 'below' | 'child' {\n switch (dragOverSection) {\n case 'top': {\n return 'above';\n }\n case 'bottom': {\n return 'below';\n }\n case 'middle': {\n return 'child';\n }\n }\n }\n\n private async _moveTask(dragOperation: IDragOperation) {\n const { draggedNode, overNode, dragOverSection } = dragOperation;\n const position = this._getPositionFromDragOverSection(dragOverSection);\n this._taskDataProvider.moveTask(draggedNode.id!, overNode.id!, position);\n }\n\n private _moveInto(movingFromRecordId: string, movingToRecordId: string, position: 'child' | 'above' | 'below') {\n const draggedRecordNode = this._taskDataProvider.getRecordTree().getNode(movingFromRecordId);\n const draggedRecord = this._taskDataProvider.getRecordsMap()[movingFromRecordId];\n const draggedNode = this._gridApi.getRowNode(movingFromRecordId)!;\n const overNode = this._gridApi.getRowNode(movingToRecordId)!;\n\n let addIndex: number | null = draggedRecordNode.index;\n\n //first remove from old location\n this._gridApi.applyServerSideTransaction({\n route: this._getPathToParent(draggedNode),\n remove: [draggedRecord],\n });\n\n //update the store where dragged parent node is (so the arrow can disappear if needed)\n this._gridApi.applyServerSideTransaction({\n route: this._getPathToParent(draggedNode.parent),\n update: [draggedNode.data],\n });\n\n //update the store where over node is (so the arrow can appear if needed)\n this._gridApi.applyServerSideTransaction({\n route: this._getPathToParent(overNode),\n update: [overNode.data],\n });\n //then add to new location\n this._gridApi.applyServerSideTransaction({\n // i need to set route to parent of over node\n route: [...this._getPathToParent(overNode), ...(position === 'child' ? [overNode.id!] : [])],\n add: [draggedRecord],\n addIndex: addIndex !== null ? addIndex : undefined,\n });\n\n if (position === 'child') {\n overNode.setExpanded(true);\n }\n this._gridApi.refreshCells({\n columns: [this._nativeColumns.subject],\n force: true\n });\n this._taskDataProvider.clearSelectedRecordIds();\n }\n\n\n private _onAfterTasksCreated = (records: IRawRecord[] | null, parentId?: string) => {\n if (!records || records.length === 0) return;\n if (parentId) {\n const parentNode = this._gridApi.getRowNode(parentId);\n if (parentNode && !parentNode.expanded) {\n parentNode.setExpanded(true);\n }\n }\n if (!parentId) {\n this._gridApi.ensureIndexVisible(0);\n }\n }\n\n private _onAfterTaskDataUpdated = (newData: IRawRecord[]) => {\n const recordIdsSet = new Set(newData.map(item => item[this._taskDataProvider.getMetadata().PrimaryIdAttribute]));\n const nodes = this._gridApi.getRenderedNodes().filter(node => recordIdsSet.has(node.id!));\n this._gridApi.refreshCells({\n rowNodes: nodes,\n force: true\n })\n }\n\n private _registerEventListeners() {\n this._taskDataProvider.taskEvents.addEventListener('onAfterTaskMoved', (movingFromTaskId, movingToTaskId, position) => this._moveInto(movingFromTaskId, movingToTaskId, position));\n this._taskDataProvider.taskEvents.addEventListener('onAfterTasksCreated', (records, parentId) => this._onAfterTasksCreated(records, parentId));\n this._taskDataProvider.taskEvents.addEventListener('onRecordTreeUpdated', (updatedParentIds) => this._onRecordTreeUpdated(updatedParentIds));\n this._taskDataProvider.taskEvents.addEventListener('onTaskDataUpdated', (newData) => this._onAfterTaskDataUpdated(newData));\n this._gridDragHandler.addEventListener('onDragEnd', (dragOperation) => this._onDragEnd(dragOperation));\n }\n}"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './GridCustomizer';
@@ -0,0 +1,2 @@
1
+ export { ADD_TASK_COLUMN_NAME, GridCustomizer } from './GridCustomizer.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { GridApi, IRowNode } from "@ag-grid-community/core";
2
+ import { EventEmitter, IRecord } from "@talxis/client-libraries";
3
+ import { ITaskGridDatasetControl } from "../../../interfaces";
4
+ interface IGridDragHandlerParameters {
5
+ datasetControl: ITaskGridDatasetControl;
6
+ gridApi: GridApi<IRecord>;
7
+ }
8
+ export interface IDragOperation {
9
+ overNode: IRowNode<IRecord>;
10
+ draggedNode: IRowNode<IRecord>;
11
+ dragOverSection: 'top' | 'middle' | 'bottom';
12
+ }
13
+ interface IGridDragHandlerEvents {
14
+ onDragEnd: (dragOperation: IDragOperation) => void;
15
+ }
16
+ export declare class GridDragHandler extends EventEmitter<IGridDragHandlerEvents> {
17
+ private _gridApi;
18
+ private _dataProvider;
19
+ private _dragOperation;
20
+ private _nativeColumns;
21
+ private _datasetControl;
22
+ constructor(parameters: IGridDragHandlerParameters);
23
+ getPendingDragOperation(): IDragOperation | null;
24
+ private _determineDragOverSection;
25
+ private _onRowDragEnd;
26
+ private _onRowDragMove;
27
+ private _refreshRowClasses;
28
+ private _toggleRowDragging;
29
+ }
30
+ export {};
@@ -0,0 +1,80 @@
1
+ import { EventEmitter } from '@talxis/client-libraries';
2
+
3
+ class GridDragHandler extends EventEmitter {
4
+ constructor(parameters) {
5
+ super();
6
+ this._dragOperation = null;
7
+ this._gridApi = parameters.gridApi;
8
+ this._dataProvider = parameters.datasetControl.getDataProvider();
9
+ this._datasetControl = parameters.datasetControl;
10
+ this._nativeColumns = parameters.datasetControl.getNativeColumns();
11
+ this._gridApi.setGridOption('rowDragEntireRow', true);
12
+ this._gridApi.setGridOption('onRowDragMove', (e) => this._onRowDragMove(e));
13
+ this._gridApi.setGridOption('onRowDragEnd', (e) => this._onRowDragEnd(e));
14
+ this._dataProvider.addEventListener('onBeforeNewDataLoaded', () => this._toggleRowDragging());
15
+ }
16
+ getPendingDragOperation() {
17
+ return this._dragOperation;
18
+ }
19
+ _determineDragOverSection(y, overNode) {
20
+ const { rowHeight, rowTop } = overNode;
21
+ const rowY = y - rowTop;
22
+ const thirdHeight = rowHeight / 3;
23
+ if (rowY <= thirdHeight) {
24
+ return 'top';
25
+ }
26
+ else if (rowY <= 2 * thirdHeight) {
27
+ return 'middle';
28
+ }
29
+ else {
30
+ return 'bottom';
31
+ }
32
+ }
33
+ _onRowDragEnd(e) {
34
+ this.dispatchEvent('onDragEnd', this._dragOperation);
35
+ this._dragOperation = null;
36
+ this._refreshRowClasses(e.overNode);
37
+ }
38
+ _onRowDragMove(e) {
39
+ const { overNode, node, y } = e;
40
+ const dragOverSection = this._determineDragOverSection(y, overNode);
41
+ setTimeout(() => {
42
+ const currentOverNode = this._dragOperation?.overNode;
43
+ if (currentOverNode === overNode && dragOverSection === 'middle' && !overNode?.expanded && this._dataProvider.getRecordTree().hasChildren(overNode.data.getRecordId())) {
44
+ overNode?.setExpanded(true);
45
+ }
46
+ }, 1000);
47
+ if (this._dragOperation && this._dragOperation.overNode !== overNode) {
48
+ // Refresh previous over node to remove drag classes
49
+ this._refreshRowClasses(this._dragOperation.overNode);
50
+ }
51
+ this._dragOperation = {
52
+ overNode: overNode,
53
+ draggedNode: node,
54
+ dragOverSection: dragOverSection
55
+ };
56
+ this._refreshRowClasses(overNode);
57
+ }
58
+ _refreshRowClasses(node) {
59
+ if (!node) {
60
+ return;
61
+ }
62
+ //@ts-ignore - typings - getGroupKeys missing in type
63
+ const keys = [...node.getGroupKeys()].slice(0, -1);
64
+ this._gridApi.applyServerSideTransactionAsync({
65
+ route: keys,
66
+ update: [node.data]
67
+ });
68
+ }
69
+ _toggleRowDragging() {
70
+ const sorting = this._dataProvider.getSorting();
71
+ const isFlatListEnabled = this._dataProvider.isFlatListEnabled();
72
+ const isSortedByNonStackRank = sorting.length > 0 && sorting[0].name !== this._nativeColumns.stackRank;
73
+ const isRowDraggingEnabled = this._datasetControl.isRowDraggingEnabled();
74
+ const canDrag = isRowDraggingEnabled && !isFlatListEnabled && !isSortedByNonStackRank;
75
+ this._gridApi.setGridOption('rowDragEntireRow', canDrag);
76
+ }
77
+ }
78
+
79
+ export { GridDragHandler };
80
+ //# sourceMappingURL=GridDragHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GridDragHandler.js","sources":["../../../../../../src/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.ts"],"sourcesContent":["import { GridApi, IRowNode, RowDragEvent } from \"@ag-grid-community/core\";\nimport { EventEmitter, IRecord } from \"@talxis/client-libraries\";\nimport { ITaskDataProvider } from \"../../../data-providers/task-data-provider\";\nimport { INativeColumns, ITaskGridDatasetControl } from \"../../../interfaces\";\n\ninterface IGridDragHandlerParameters {\n datasetControl: ITaskGridDatasetControl;\n gridApi: GridApi<IRecord>;\n}\n\nexport interface IDragOperation {\n overNode: IRowNode<IRecord>;\n draggedNode: IRowNode<IRecord>;\n dragOverSection: 'top' | 'middle' | 'bottom';\n}\n\ninterface IGridDragHandlerEvents {\n onDragEnd: (dragOperation: IDragOperation) => void;\n}\n\nexport class GridDragHandler extends EventEmitter<IGridDragHandlerEvents> {\n private _gridApi: GridApi<IRecord>;\n private _dataProvider: ITaskDataProvider;\n private _dragOperation: IDragOperation | null = null;\n private _nativeColumns: INativeColumns;\n private _datasetControl: ITaskGridDatasetControl;\n \n constructor(parameters: IGridDragHandlerParameters) {\n super();\n this._gridApi = parameters.gridApi;\n this._dataProvider = parameters.datasetControl.getDataProvider();\n this._datasetControl = parameters.datasetControl;\n this._nativeColumns = parameters.datasetControl.getNativeColumns();\n this._gridApi.setGridOption('rowDragEntireRow', true);\n this._gridApi.setGridOption('onRowDragMove', (e) => this._onRowDragMove(e));\n this._gridApi.setGridOption('onRowDragEnd', (e) => this._onRowDragEnd(e));\n this._dataProvider.addEventListener('onBeforeNewDataLoaded', () => this._toggleRowDragging())\n }\n\n public getPendingDragOperation(): IDragOperation | null {\n return this._dragOperation;\n }\n\n private _determineDragOverSection(y: number, overNode?: IRowNode<IRecord>): IDragOperation['dragOverSection'] {\n const { rowHeight, rowTop } = overNode!;\n const rowY = y - rowTop!;\n const thirdHeight = rowHeight! / 3;\n\n if (rowY <= thirdHeight) {\n return 'top';\n } else if (rowY <= 2 * thirdHeight) {\n return 'middle'\n } else {\n return 'bottom';\n }\n }\n\n private _onRowDragEnd(e: RowDragEvent<IRecord, any>) {\n this.dispatchEvent('onDragEnd', this._dragOperation!);\n this._dragOperation = null;\n this._refreshRowClasses(e.overNode);\n }\n\n\n private _onRowDragMove(e: RowDragEvent<IRecord, any>) {\n const { overNode, node, y } = e;\n const dragOverSection = this._determineDragOverSection(y, overNode);\n setTimeout(() => {\n const currentOverNode = this._dragOperation?.overNode;\n if (currentOverNode === overNode && dragOverSection === 'middle' && !overNode?.expanded && this._dataProvider.getRecordTree().hasChildren(overNode!.data!.getRecordId())) {\n overNode?.setExpanded(true);\n }\n }, 1000);\n if (this._dragOperation && this._dragOperation.overNode !== overNode) {\n // Refresh previous over node to remove drag classes\n this._refreshRowClasses(this._dragOperation.overNode);\n }\n this._dragOperation = {\n overNode: overNode!,\n draggedNode: node,\n dragOverSection: dragOverSection\n };\n this._refreshRowClasses(overNode);\n }\n\n private _refreshRowClasses(node?: IRowNode<IRecord>) {\n if (!node) {\n return;\n }\n //@ts-ignore - typings - getGroupKeys missing in type\n const keys = [...node.getGroupKeys()].slice(0, -1);\n this._gridApi.applyServerSideTransactionAsync({\n route: keys,\n update: [node.data]\n })\n }\n\n private _toggleRowDragging() {\n const sorting = this._dataProvider.getSorting();\n const isFlatListEnabled = this._dataProvider.isFlatListEnabled();\n const isSortedByNonStackRank = sorting.length > 0 && sorting[0].name !== this._nativeColumns.stackRank;\n const isRowDraggingEnabled = this._datasetControl.isRowDraggingEnabled();\n\n const canDrag = isRowDraggingEnabled && !isFlatListEnabled && !isSortedByNonStackRank;\n this._gridApi.setGridOption('rowDragEntireRow', canDrag);\n }\n}"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './GridDragHandler';
@@ -0,0 +1,2 @@
1
+ export { GridDragHandler } from './GridDragHandler.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { ICellProps } from '../../../../Grid/cells/cell/Cell';
2
+ import { IRecord } from "@talxis/client-libraries";
3
+ interface IProps extends ICellProps {
4
+ data: IRecord;
5
+ }
6
+ export declare const GroupCell: (props: IProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,70 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { useRef } from 'react';
4
+ import { Cell } from '../../../../Grid/cells/cell/Cell.js';
5
+ import { getTheme, IconButton } from '@fluentui/react';
6
+ import { useRerender } from '@talxis/react-components';
7
+ import { getGroupCellStyles } from './styles.js';
8
+ import { useTaskDataProvider } from '../../../context.js';
9
+
10
+ const GroupCell = (props) => {
11
+ const provider = useTaskDataProvider();
12
+ const record = props.data;
13
+ const node = props.node;
14
+ const expanded = node.expanded;
15
+ const hasChildren = provider.getRecordTree().hasChildren(record.getRecordId());
16
+ const rerender = useRerender();
17
+ const styles = React.useMemo(() => getGroupCellStyles(getTheme(), expanded), [expanded]);
18
+ const buttonRef = useRef(null);
19
+ React.useEffect(() => {
20
+ node.addEventListener('expandedChanged', rerender);
21
+ return () => node.removeEventListener('expandedChanged', rerender);
22
+ }, []);
23
+ const toggleExpand = React.useCallback((e) => {
24
+ e.stopPropagation();
25
+ e.preventDefault();
26
+ node.setExpanded(!node.expanded);
27
+ }, []);
28
+ React.useEffect(() => {
29
+ buttonRef.current?.addEventListener('click', toggleExpand);
30
+ return () => buttonRef.current?.removeEventListener('click', toggleExpand);
31
+ }, [hasChildren]);
32
+ const getGroupOffset = () => {
33
+ if (provider.isFlatListEnabled()) {
34
+ return 0;
35
+ }
36
+ else {
37
+ const offset = 32;
38
+ const hasChildren = provider.getRecordTree().hasChildren(record?.getRecordId());
39
+ switch (true) {
40
+ case node.level === 0 && provider.getRecordTree().isFlat(): {
41
+ return 0;
42
+ }
43
+ case !hasChildren: {
44
+ return node.level * offset + offset;
45
+ }
46
+ default: {
47
+ return node.level * offset;
48
+ }
49
+ }
50
+ }
51
+ };
52
+ const shouldShowChevron = () => {
53
+ switch (true) {
54
+ case provider.isFlatListEnabled():
55
+ case !hasChildren: {
56
+ return false;
57
+ }
58
+ default: {
59
+ return true;
60
+ }
61
+ }
62
+ };
63
+ return jsxs("div", { style: { paddingLeft: getGroupOffset() }, className: styles.root, children: [shouldShowChevron() &&
64
+ jsx(IconButton, { elementRef: buttonRef, iconProps: {
65
+ iconName: 'ChevronRight'
66
+ }, className: styles.chevronButton }), jsx(Cell, { ...props })] });
67
+ };
68
+
69
+ export { GroupCell };
70
+ //# sourceMappingURL=GroupCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupCell.js","sources":["../../../../../../src/components/TaskGrid/components/grid/group-cell/GroupCell.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Cell, ICellProps } from '../../../../Grid/cells/cell/Cell'\nimport { IRecord } from \"@talxis/client-libraries\";\nimport { getTheme, IconButton } from \"@fluentui/react\";\nimport { useRerender } from '@talxis/react-components';\nimport { getGroupCellStyles } from \"./styles\";\nimport { useRef } from \"react\";\nimport { useTaskDataProvider } from \"../../../context\";\n\ninterface IProps extends ICellProps {\n data: IRecord;\n}\n\nexport const GroupCell = (props: IProps) => {\n const provider = useTaskDataProvider();\n const record = props.data;\n const node = props.node;\n const expanded = node.expanded;\n const hasChildren = provider.getRecordTree().hasChildren(record.getRecordId());\n const rerender = useRerender()\n const styles = React.useMemo(() => getGroupCellStyles(getTheme(), expanded), [expanded]);\n const buttonRef = useRef<HTMLElement>(null);\n\n React.useEffect(() => {\n node.addEventListener('expandedChanged', rerender);\n return () => node.removeEventListener('expandedChanged', rerender)\n }, []);\n\n const toggleExpand = React.useCallback((e) => {\n e.stopPropagation();\n e.preventDefault();\n node.setExpanded(!node.expanded)\n }, []);\n\n React.useEffect(() => {\n buttonRef.current?.addEventListener('click', toggleExpand);\n return () => buttonRef.current?.removeEventListener('click', toggleExpand);\n }, [hasChildren]);\n\n const getGroupOffset = () => {\n if (provider.isFlatListEnabled()) {\n return 0;\n }\n else {\n const offset = 32;\n const hasChildren = provider.getRecordTree().hasChildren(record?.getRecordId());\n switch (true) {\n case node.level === 0 && provider.getRecordTree().isFlat(): {\n return 0;\n }\n case !hasChildren: {\n return node.level * offset + offset;\n }\n default: {\n return node.level * offset\n }\n }\n }\n }\n\n const shouldShowChevron = (): boolean => {\n switch (true) {\n case provider.isFlatListEnabled():\n case !hasChildren: {\n return false;\n }\n default: {\n return true;\n }\n }\n }\n\n return <div style={{ paddingLeft: getGroupOffset() }} className={styles.root}>\n {shouldShowChevron() &&\n <IconButton\n elementRef={buttonRef}\n iconProps={{\n iconName: 'ChevronRight'\n }}\n className={styles.chevronButton}\n />\n }\n <Cell {...props} />\n </div>\n}"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './GroupCell';
@@ -0,0 +1,2 @@
1
+ export { GroupCell } from './GroupCell.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}