@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 @@
1
+ {"version":3,"file":"SavedQueryDataProvider.js","sources":["../../../../../src/components/TaskGrid/data-providers/saved-query-data-provider/SavedQueryDataProvider.ts"],"sourcesContent":["import { EventEmitter, IColumn, IEventEmitter, IFetchXmlDataProviderColumn } from \"@talxis/client-libraries\";\nimport { ITaskDataProvider } from \"../task-data-provider\";\nimport { ICustomColumnsDataProvider } from \"../custom-columns-data-provider/CustomColumnsDataProvider\";\nimport { INativeColumns } from \"../../interfaces\";\nimport { ErrorHelper } from \"../../../../utils\";\n\n\nexport interface ICreateUserQueryParams {\n name: string;\n provider: ITaskDataProvider;\n description?: string;\n}\n\nexport interface IUpdateUserQueryParams {\n queryId: string;\n queryMetadata: ISavedQueryMetadata;\n}\n\nexport interface ISavedQueryDataProviderEvents {\n onBeforeUserQueriesDeleted: (queryIds: string[]) => void;\n onAfterUserQueriesDeleted: (result: IDeletedUserQueriesResult) => void;\n onBeforeUserQueryUpdated: (queryId: string) => void;\n onAfterUserQueryUpdated: (result: string | null) => void;\n onBeforeUserQueryCreated: (queryName: string) => void;\n onAfterUserQueryCreated: (result: string | null) => void;\n onError: (error: any, message: string) => void;\n}\n\nexport type IDeletedUserQueriesResult = {success: true; deletedQueryIds: string[]} | {success: false; deletedQueryIds: string[]; errors: {queryId: string; error: any}[]};\n\n\nexport interface ISavedQuery extends ISavedQueryMetadata {\n id: string;\n name: string;\n}\n\nexport interface ISavedQueryMetadata {\n columns: IColumn[]\n sorting?: ComponentFramework.PropertyHelper.DataSetApi.SortStatus[];\n filtering?: ComponentFramework.PropertyHelper.DataSetApi.FilterExpression;\n linking?: ComponentFramework.PropertyHelper.DataSetApi.LinkEntityExposedExpression[];\n isFlatListEnabled?: boolean;\n searchQuery?: string | undefined;\n}\n\nconst REQUIRED_COLUMNS = ['subject', 'parentId', 'stackRank', 'path', 'stateCode'];\n\n/** Strategy interface for loading and persisting system and user-defined saved views (queries). */\nexport interface ISavedQueryStrategy {\n /** Returns the built-in (non-deletable) views. At least one system query must be returned. */\n onGetSystemQueries: () => Promise<ISavedQuery[]>;\n /** Returns views saved by the current user. */\n onGetUserQueries: () => Promise<ISavedQuery[]>;\n /** Deletes the specified user views. Returns a per-query success/failure result. */\n onDeleteUserQueries: (queryIds: string[]) => Promise<IDeletedUserQueriesResult>;\n /** @returns The updated query id, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onUpdateUserQuery: (currentQuery: ISavedQuery) => Promise<string | null>;\n /** @returns The created query id, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onCreateUserQuery: (newQuery: { name: string; description?: string }, currentQuery: ISavedQuery) => Promise<string | null>;\n}\n\n/** Manages system and user-defined saved views and exposes view lifecycle operations. */\nexport interface ISavedQueryDataProvider {\n /** EventEmitter for saved-query lifecycle events (create, update, delete, errors). */\n queryEvents: IEventEmitter<ISavedQueryDataProviderEvents>;\n /** Returns the full list of non-deletable system views. */\n getSystemQueries: () => ISavedQuery[];\n /** Returns the full list of user-created views. */\n getUserQueries: () => ISavedQuery[];\n /** Returns the currently active saved query. Throws if `refresh` has not been called yet. */\n getCurrentQuery: () => ISavedQuery;\n /** Looks up a query by id across system and user queries. Throws if not found. */\n getSavedQuery(id: string): ISavedQuery;\n /** @returns The created query id, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n createUserQuery: (params: ICreateUserQueryParams) => Promise<string | null>;\n /** Returns `true` when the given query id belongs to a user view (as opposed to a system view). */\n isUserQuery: (queryId: string) => boolean;\n /** @returns The updated query id, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n updateUserQuery: (provider: ITaskDataProvider) => Promise<string | null>;\n /** Deletes the specified user views. Returns a per-query success/failure result. */\n deleteUserQueries: (queryIds: string[]) => Promise<IDeletedUserQueriesResult>;\n /** Fetches system and user queries from the strategy and sets the initial active query. */\n refresh: () => Promise<void>;\n /** Ensures all required native columns (subject, parentId, stackRank, path, stateCode) are present in the provided columns array. */\n includeRequiredColumns: (columns: IColumn[]) => void;\n /** Enforces column constraints: subject is never hidden; path column is always read-only. */\n harmonizeColumns: (columns: IColumn[]) => void;\n destroy: () => void;\n}\n\ninterface ISavedQueryDataProviderParameters {\n nativeColumns: INativeColumns;\n customColumnsDataProvider?: ICustomColumnsDataProvider;\n preferredQuery?: Partial<ISavedQuery> & { id: string };\n}\n\nexport class SavedQueryDataProvider implements ISavedQueryDataProvider {\n private _strategy: ISavedQueryStrategy\n private _systemQueries: ISavedQuery[] = [];\n private _currentQuery?: ISavedQuery;\n private _userQueries: ISavedQuery[] = [];\n private _customColumnsDataProvider?: ICustomColumnsDataProvider;\n private _nativeColumns: INativeColumns;\n private _preferredQuery?: Partial<ISavedQuery> & { id: string };\n public queryEvents = new EventEmitter<ISavedQueryDataProviderEvents>();\n\n constructor(strategy: ISavedQueryStrategy, parameters: ISavedQueryDataProviderParameters) {\n this._strategy = strategy;\n this._preferredQuery = parameters.preferredQuery;\n this._nativeColumns = parameters.nativeColumns;\n this._customColumnsDataProvider = parameters.customColumnsDataProvider;\n }\n\n public getSystemQueries(): ISavedQuery[] {\n return this._systemQueries;\n }\n\n public getUserQueries(): ISavedQuery[] {\n return this._userQueries;\n }\n\n public getCurrentQuery(): ISavedQuery {\n if (!this._currentQuery) {\n throw new Error('Current query is not set. Make sure to call refresh() and wait for it to complete before accessing the current query.');\n }\n return this._currentQuery;\n }\n\n public isUserQuery(queryId: string): boolean {\n return this._userQueries.some(q => q.id === queryId);\n }\n\n public getSavedQuery(id: string): ISavedQuery {\n const query = [...this._systemQueries, ...this._userQueries].find(q => q.id === id);\n if (!query) {\n throw new Error(`Query with id ${id} not found. Make sure to call refresh() and wait for it to complete before accessing the saved query.`);\n }\n return {\n ...query,\n ...this._parseSavedQueryMetadata(query)\n }\n }\n\n public async updateUserQuery(provider: ITaskDataProvider): Promise<string | null> {\n this.queryEvents.dispatchEvent('onBeforeUserQueryUpdated', this.getCurrentQuery().id);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const result = await this._strategy.onUpdateUserQuery({\n ...this.getCurrentQuery(),\n ...this._getMetadataForSavedQuery(provider)\n\n });\n this.queryEvents.dispatchEvent('onAfterUserQueryUpdated', result);\n return result;\n },\n onError: (error, message) => this.queryEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async createUserQuery(params: ICreateUserQueryParams): Promise<string | null> {\n const { name, description, provider } = params;\n this.queryEvents.dispatchEvent('onBeforeUserQueryCreated', name);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const result = await this._strategy.onCreateUserQuery({\n name: name,\n description: description,\n }, {\n ...this.getCurrentQuery(),\n ...this._getMetadataForSavedQuery(provider)\n })\n this.queryEvents.dispatchEvent('onAfterUserQueryCreated', result);\n return result;\n },\n onError: (error, message) => this.queryEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async deleteUserQueries(queryIds: string[]): Promise<IDeletedUserQueriesResult> {\n this.queryEvents.dispatchEvent('onBeforeUserQueriesDeleted', queryIds);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const result = await this._strategy.onDeleteUserQueries(queryIds);\n this.queryEvents.dispatchEvent('onAfterUserQueriesDeleted', result);\n return result;\n },\n onError: (error, message) => this.queryEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async destroy() {\n this.queryEvents.clearEventListeners();\n }\n\n public async refresh() {\n const systemQueries = await this._strategy.onGetSystemQueries();\n const userQueries = await this._strategy.onGetUserQueries();\n const allQueries = [...systemQueries, ...userQueries];\n this._systemQueries = systemQueries;\n this._userQueries = userQueries;\n if (this._systemQueries.length === 0) {\n throw new Error('At least one system query is required');\n }\n this._currentQuery = allQueries.find(q => q.id === this._preferredQuery?.id) ?? userQueries[0] ?? systemQueries[0];\n this._currentQuery = {\n ...this._currentQuery,\n //makes sure custom columns from the current query are properly merged with the columns from the custom columns data provider strategy\n ...this._parseSavedQueryMetadata(this._currentQuery)\n }\n this.includeRequiredColumns(this._currentQuery.columns);\n this.harmonizeColumns(this._currentQuery.columns);\n }\n\n private _getMetadataForSavedQuery(provider: ITaskDataProvider): ISavedQueryMetadata {\n return {\n sorting: provider.getSorting(),\n filtering: provider.getFiltering() ?? undefined,\n linking: provider.getLinking(),\n searchQuery: provider.getSearchQuery(),\n isFlatListEnabled: provider.isFlatListEnabled(),\n columns: [\n ...provider.getColumns().map((col: any) => {\n const newCol = {\n name: col.name,\n isHidden: col.isHidden,\n dataType: col.dataType,\n order: col.order,\n visualSizeFactor: col.visualSizeFactor,\n metadata: {}\n }\n this._addPropToMetadataQueryCol(newCol, 'isVirtual', col.isVirtual);\n this._addPropToMetadataQueryCol(newCol, 'autoHeight', col.autoHeight);\n return newCol;\n })\n ]\n }\n }\n\n private _addPropToMetadataQueryCol(col: IFetchXmlDataProviderColumn, propName: keyof IColumn, propValue: any) {\n if (propValue != undefined) {\n (col as any)[propName] = propValue;\n }\n }\n\n private _isCustomColumnResolvable(name: string, customColumnsMap: Map<string, IColumn>): boolean {\n return !this._customColumnsDataProvider!.isCustomColumn(name) ||\n !!customColumnsMap.get(name);\n }\n\n private _parseSavedQueryMetadata(metadata: ISavedQueryMetadata): ISavedQueryMetadata {\n const parsed = metadata;\n if (!this._customColumnsDataProvider) {\n return parsed;\n }\n const customColumnsMap = new Map(this._customColumnsDataProvider.getColumns().map(col => [col.name, col]));\n let columns = parsed.columns.filter(col => this._isCustomColumnResolvable(col.name, customColumnsMap));\n columns = columns.map(col => {\n const customCol = customColumnsMap.get(col.name);\n return customCol ? { ...customCol, ...col, metadata: { ...customCol.metadata, ...col.metadata } } : col;\n })\n return {\n ...parsed,\n sorting: parsed.sorting?.filter(sort => this._isCustomColumnResolvable(sort.name, customColumnsMap)),\n columns: columns,\n filtering: parsed.filtering ? {\n ...parsed.filtering,\n conditions: parsed.filtering.conditions.filter(condition => this._isCustomColumnResolvable(condition.attributeName, customColumnsMap))\n } : undefined\n };\n }\n\n public includeRequiredColumns(columns: IColumn[]) {\n const allQueries = [...this.getSystemQueries(), ...this.getUserQueries()];\n const allQueryColumns = [...new Map(allQueries.flatMap(query => query.columns.map(col => [col.name, col]))).values()];\n for (const requiredColumnName of REQUIRED_COLUMNS) {\n const mappedRequiredColumnName = this._nativeColumns[requiredColumnName as keyof INativeColumns];\n if (!columns.find(col => col.name === mappedRequiredColumnName)) {\n const columnFromQueries = allQueryColumns.find(col => col.name === mappedRequiredColumnName);\n if (!columnFromQueries) {\n throw new Error(`Required column ${mappedRequiredColumnName} is missing from both current query and all available queries`);\n }\n columns.push(columnFromQueries);\n }\n }\n }\n\n public harmonizeColumns(columns: IColumn[]) {\n for (const column of columns) {\n switch (column.name) {\n case this._nativeColumns.subject: {\n column.isHidden = false;\n break;\n }\n case this._nativeColumns.path: {\n column.metadata = {\n ...column.metadata,\n IsValidForUpdate: false\n }\n break;\n }\n }\n }\n }\n}"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { FetchXmlDataProvider } from "@talxis/client-libraries";
2
+ import { IDeletedUserQueriesResult, ISavedQuery, ISavedQueryStrategy } from "./SavedQueryDataProvider";
3
+ interface ITalxisSavedQueryStrategyParameters {
4
+ onGetSystemQueries: () => Promise<ISavedQuery[]>;
5
+ recordId?: string;
6
+ ownerId?: string;
7
+ }
8
+ export declare class TalxisSavedQueryStrategy extends FetchXmlDataProvider implements ISavedQueryStrategy {
9
+ private _recordId?;
10
+ private _onGetSystemQueries;
11
+ constructor(parameters: ITalxisSavedQueryStrategyParameters);
12
+ onGetUserQueries(): Promise<ISavedQuery[]>;
13
+ onGetSystemQueries(): Promise<ISavedQuery[]>;
14
+ onDeleteUserQueries(queryIds: string[]): Promise<IDeletedUserQueriesResult>;
15
+ onUpdateUserQuery(currentQuery: ISavedQuery): Promise<string | null>;
16
+ onCreateUserQuery(newQuery: {
17
+ name: string;
18
+ description?: string;
19
+ }, currentQuery: ISavedQuery): Promise<string | null>;
20
+ }
21
+ export {};
@@ -0,0 +1,97 @@
1
+ import { FetchXmlDataProvider, FetchXmlBuilder } from '@talxis/client-libraries';
2
+ import { ErrorHelper } from '../../../../utils/error-handling/ErrorHelper.js';
3
+
4
+ const FETCH_XML = `
5
+ <fetch count="5000" page="1">
6
+ <entity name="talxis_userquery">
7
+ <attribute name="talxis_userqueryid" />
8
+ <attribute name="talxis_name" />
9
+ <attribute name="talxis_description" />
10
+ <attribute name="talxis_layoutjson" />
11
+ <order attribute="talxis_name" />
12
+ </entity>
13
+ </fetch>
14
+ `;
15
+ const _getFetchXml = (recordId, ownerId) => {
16
+ const fetch = FetchXmlBuilder.fetch.fromXml(FETCH_XML);
17
+ if (recordId || ownerId) {
18
+ const filter = new FetchXmlBuilder.filter("and");
19
+ if (recordId) {
20
+ filter.addCondition(new FetchXmlBuilder.condition("talxis_recordid", FetchXmlBuilder.Operator.Equal, [new FetchXmlBuilder.value(recordId)]));
21
+ }
22
+ if (ownerId) {
23
+ filter.addCondition(new FetchXmlBuilder.condition("ownerid", FetchXmlBuilder.Operator.Equal, [new FetchXmlBuilder.value(ownerId)]));
24
+ }
25
+ fetch.entity.addFilter(filter);
26
+ }
27
+ return fetch.toXml();
28
+ };
29
+ class TalxisSavedQueryStrategy extends FetchXmlDataProvider {
30
+ constructor(parameters) {
31
+ const fetchXml = _getFetchXml(parameters.recordId, parameters.ownerId);
32
+ super({ fetchXml });
33
+ this._recordId = parameters.recordId;
34
+ this._onGetSystemQueries = parameters.onGetSystemQueries;
35
+ }
36
+ async onGetUserQueries() {
37
+ const result = await this.refresh();
38
+ return result.map(r => {
39
+ return {
40
+ id: r.getValue('talxis_userqueryid'),
41
+ name: r.getValue('talxis_name'),
42
+ description: r.getValue('talxis_description'),
43
+ ...JSON.parse(r.getValue('talxis_layoutjson'))
44
+ };
45
+ });
46
+ }
47
+ async onGetSystemQueries() {
48
+ return this._onGetSystemQueries();
49
+ }
50
+ async onDeleteUserQueries(queryIds) {
51
+ const result = await this.deleteRecords(queryIds);
52
+ if (result.success) {
53
+ return {
54
+ success: true,
55
+ deletedQueryIds: queryIds
56
+ };
57
+ }
58
+ else {
59
+ return {
60
+ success: false,
61
+ deletedQueryIds: result.results.filter(r => r.success).map(r => r.recordId),
62
+ errors: result.results.filter(r => !r.success).map(r => ({ queryId: r.recordId, error: r.errorMessage }))
63
+ };
64
+ }
65
+ }
66
+ async onUpdateUserQuery(currentQuery) {
67
+ const record = this.getRecordsMap()[currentQuery.id];
68
+ if (!record) {
69
+ throw new Error(`Query record with id ${currentQuery.id} not found`);
70
+ }
71
+ const { name, id, ...queryMetadata } = currentQuery;
72
+ record.setValue('talxis_layoutjson', JSON.stringify(queryMetadata));
73
+ const result = await record.save();
74
+ if (!result.success) {
75
+ throw new Error(`Failed to update query with id ${currentQuery.id}: ${ErrorHelper.getMessageFromError(result.errors?.map((e) => e.message).join('\n'))}`);
76
+ }
77
+ return currentQuery.id;
78
+ }
79
+ async onCreateUserQuery(newQuery, currentQuery) {
80
+ const userqueryid = `00001111${crypto.randomUUID().substring(8)}`;
81
+ const { name, description } = newQuery;
82
+ const { id, name: queryName, ...queryMetadata } = currentQuery;
83
+ const rawData = {
84
+ 'talxis_userqueryid': userqueryid,
85
+ 'talxis_layoutjson': JSON.stringify(queryMetadata),
86
+ 'talxis_name': name,
87
+ 'talxis_description': description,
88
+ 'talxis_returnedtypecode': this.getEntityName(),
89
+ 'talxis_recordid': this._recordId ?? null,
90
+ };
91
+ const result = await window.Xrm.WebApi.createRecord('talxis_userquery', rawData);
92
+ return result.id;
93
+ }
94
+ }
95
+
96
+ export { TalxisSavedQueryStrategy };
97
+ //# sourceMappingURL=TalxisSavedQueryDataProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TalxisSavedQueryDataProvider.js","sources":["../../../../../src/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.ts"],"sourcesContent":["import { FetchXmlBuilder, FetchXmlDataProvider } from \"@talxis/client-libraries\";\nimport { IDeletedUserQueriesResult, ISavedQuery, ISavedQueryStrategy } from \"./SavedQueryDataProvider\";\nimport { ErrorHelper } from \"../../../../utils/error-handling\";\n\nconst FETCH_XML = `\n<fetch count=\"5000\" page=\"1\">\n <entity name=\"talxis_userquery\">\n <attribute name=\"talxis_userqueryid\" />\n <attribute name=\"talxis_name\" />\n <attribute name=\"talxis_description\" />\n <attribute name=\"talxis_layoutjson\" />\n <order attribute=\"talxis_name\" />\n </entity>\n</fetch>\n`\n\nconst _getFetchXml = (recordId?: string, ownerId?: string) => {\n const fetch = FetchXmlBuilder.fetch.fromXml(FETCH_XML);\n if (recordId || ownerId) {\n const filter = new FetchXmlBuilder.filter(\"and\")\n if (recordId) {\n filter.addCondition(new FetchXmlBuilder.condition(\"talxis_recordid\", FetchXmlBuilder.Operator.Equal, [new FetchXmlBuilder.value(recordId)]))\n }\n if (ownerId) {\n filter.addCondition(new FetchXmlBuilder.condition(\"ownerid\", FetchXmlBuilder.Operator.Equal, [new FetchXmlBuilder.value(ownerId)]))\n }\n fetch.entity.addFilter(filter);\n }\n return fetch.toXml();\n}\n\ninterface ITalxisSavedQueryStrategyParameters {\n onGetSystemQueries: () => Promise<ISavedQuery[]>;\n recordId?: string;\n ownerId?: string;\n}\n\nexport class TalxisSavedQueryStrategy extends FetchXmlDataProvider implements ISavedQueryStrategy {\n private _recordId?: string;\n private _onGetSystemQueries: () => Promise<ISavedQuery[]>;\n\n constructor(parameters: ITalxisSavedQueryStrategyParameters) {\n const fetchXml = _getFetchXml(parameters.recordId, parameters.ownerId);\n super({ fetchXml });\n this._recordId = parameters.recordId;\n this._onGetSystemQueries = parameters.onGetSystemQueries;\n }\n\n public async onGetUserQueries(): Promise<ISavedQuery[]> {\n const result = await this.refresh();\n return result.map(r => {\n return {\n id: r.getValue('talxis_userqueryid'),\n name: r.getValue('talxis_name'),\n description: r.getValue('talxis_description'),\n ...JSON.parse(r.getValue('talxis_layoutjson'))\n }\n });\n }\n\n public async onGetSystemQueries(): Promise<ISavedQuery[]> {\n return this._onGetSystemQueries();\n }\n\n public async onDeleteUserQueries(queryIds: string[]): Promise<IDeletedUserQueriesResult> {\n const result = await this.deleteRecords(queryIds);\n if(result.success) {\n return {\n success: true,\n deletedQueryIds: queryIds\n }\n }\n else {\n return {\n success: false,\n deletedQueryIds: result.results.filter(r => r.success).map(r => r.recordId),\n errors: result.results.filter(r => !r.success).map(r => ({queryId: r.recordId, error: r.errorMessage}))\n }\n }\n }\n\n public async onUpdateUserQuery(currentQuery: ISavedQuery): Promise<string | null> {\n const record = this.getRecordsMap()[currentQuery.id];\n if (!record) {\n throw new Error(`Query record with id ${currentQuery.id} not found`);\n }\n const { name, id, ...queryMetadata } = currentQuery;\n record.setValue('talxis_layoutjson', JSON.stringify(queryMetadata));\n const result = await record.save();\n if (!result.success) {\n throw new Error(`Failed to update query with id ${currentQuery.id}: ${ErrorHelper.getMessageFromError(result.errors?.map((e: any) => e.message).join('\\n'))}`);\n }\n return currentQuery.id;\n }\n\n public async onCreateUserQuery(newQuery: { name: string; description?: string; }, currentQuery: ISavedQuery): Promise<string | null> {\n const userqueryid = `00001111${crypto.randomUUID().substring(8)}`;\n const { name, description } = newQuery;\n const { id, name: queryName, ...queryMetadata } = currentQuery;\n\n const rawData = {\n 'talxis_userqueryid': userqueryid,\n 'talxis_layoutjson': JSON.stringify(queryMetadata),\n 'talxis_name': name,\n 'talxis_description': description,\n 'talxis_returnedtypecode': this.getEntityName(),\n 'talxis_recordid': this._recordId ?? null,\n }\n const result = await window.Xrm.WebApi.createRecord('talxis_userquery', rawData);\n\n return result.id;\n }\n}"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './SavedQueryDataProvider';
2
+ export * from './TalxisSavedQueryDataProvider';
@@ -0,0 +1,3 @@
1
+ export { SavedQueryDataProvider } from './SavedQueryDataProvider.js';
2
+ export { TalxisSavedQueryStrategy } from './TalxisSavedQueryDataProvider.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,213 @@
1
+ /// <reference types="@types/powerapps-component-framework" />
2
+ import { EventEmitter, GetDataEvent, IAvailableColumnOptions, IAvailableRelatedColumn, IColumn, ICommand, IDataProvider, IDataProviderEventListeners, IEventBubbleOptions, IEventEmitter, IRawRecord, IRecord, IRecordSaveOperationResult, IRetrievedData, IRetrieveRecordCommandOptions, MemoryDataProvider } from "@talxis/client-libraries";
3
+ import { IRecordTree } from "./record-tree/RecordTree";
4
+ import { ILocalizationService, ITaskGridLabels } from "../../labels";
5
+ import { INativeColumns } from "../../interfaces";
6
+ export interface IFailedRecord {
7
+ id: string;
8
+ error: any;
9
+ }
10
+ export type IDeleteTasksResult = {
11
+ success: true;
12
+ deletedTaskIds: string[];
13
+ } | {
14
+ success: false;
15
+ deletedTaskIds: string[];
16
+ errors: IFailedRecord[];
17
+ };
18
+ export type IEditTasksResult = {
19
+ success: true;
20
+ updatedRecords: IRawRecord[];
21
+ } | {
22
+ success: false;
23
+ updatedRecords: IRawRecord[];
24
+ errors: IFailedRecord[];
25
+ };
26
+ export interface ITaskDataProviderParameters {
27
+ nativeColumns: INativeColumns;
28
+ localizationService: ILocalizationService<ITaskGridLabels>;
29
+ strategy: ITaskDataProviderStrategy;
30
+ onIsFlatListEnabled: () => boolean;
31
+ }
32
+ /** Strategy interface that handles all data access and mutation operations for tasks. */
33
+ export interface ITaskDataProviderStrategy {
34
+ /**
35
+ * Called once on first load. Must return the initial columns, raw task records, and provider metadata.
36
+ * An empty `ids` array instructs the strategy to fetch all records.
37
+ */
38
+ onGetRawRecords: (ids: string[]) => Promise<IRawRecord[]>;
39
+ /** Called once on first load. Must return the initial columns, raw task records, and entity metadata. */
40
+ onInitialize: (provider: ITaskDataProvider) => Promise<{
41
+ columns: IColumn[];
42
+ rawData: IRawRecord[];
43
+ metadata: any;
44
+ }>;
45
+ /** Returns all columns available for display in the grid (both native and custom). */
46
+ onGetAvailableColumns: (options?: IAvailableColumnOptions) => Promise<IColumn[]>;
47
+ /** Returns linked-entity columns that can be used for filtering and sorting. */
48
+ onGetAvailableRelatedColumns: () => Promise<IAvailableRelatedColumn[]>;
49
+ /** Returns the attribute names that are searched when the user types in the quick-find input. */
50
+ onGetQuickFindColumns: () => string[];
51
+ /** @returns The created task raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */
52
+ onCreateTask(parentTaskId?: string): Promise<IRawRecord | null>;
53
+ /**
54
+ * @returns Result indicating which tasks were deleted and which failed.
55
+ * `success: true` means all tasks were deleted. `success: false` means some or all failed.
56
+ * Throws on unexpected failure.
57
+ */
58
+ onDeleteTasks(taskIds: string[]): Promise<IDeleteTasksResult | null>;
59
+ /** @returns The created template raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */
60
+ onCreateTemplateFromTask(taskId: string): Promise<IRawRecord | null>;
61
+ /** @returns The created task raw records, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */
62
+ onCreateTasksFromTemplate(templateId: string, parentTaskId?: string): Promise<IRawRecord[] | null>;
63
+ /**
64
+ * @returns Result indicating which tasks were updated and which failed, or `null` if the operation was cancelled by the user.
65
+ * `success: true` means all tasks were updated. `success: false` means some or all failed.
66
+ * Throws on unexpected failure.
67
+ */
68
+ onEditTasks(taskIds: string[]): Promise<IEditTasksResult | null>;
69
+ /** Moves a task to a new position relative to another task. Returns the updated raw records, or `null` on cancellation. */
70
+ onMoveTask(movingTaskId: string, movingToTaskId: string, position: 'above' | 'below' | 'child'): Promise<IRawRecord[] | null>;
71
+ /** Persists inline cell edits for the given record. */
72
+ onRecordSave(record: IRecord): Promise<IRecordSaveOperationResult>;
73
+ /** Returns whether the given task record is currently active (non-completed). */
74
+ onIsRecordActive(recordId: string): boolean;
75
+ /** Opens the record detail view. Called when a user clicks a non-subject cell. */
76
+ onOpenDatasetItem(entityReference: ComponentFramework.EntityReference, context?: {
77
+ columnName?: string;
78
+ }): void;
79
+ /** Return `false` to disable task creation (hide the *New* button). Defaults to `true`. */
80
+ onIsTaskAddingEnabled?(): boolean;
81
+ /** Return `false` to disable inline cell editing. Defaults to `true`. */
82
+ onIsTaskEditingEnabled?(): boolean;
83
+ /** Return `false` to disable task deletion (hide the *Delete* button). Defaults to `true`. */
84
+ onIsTaskDeletingEnabled?(): boolean;
85
+ /** When provided, the task tree is scoped to the subtree of the returned task id. */
86
+ onGetRootTaskId?: () => string | undefined;
87
+ }
88
+ export interface ITaskDataProviderEventListener {
89
+ onBeforeTemplateCreated: (taskId: string) => void;
90
+ onAfterTemplateCreated: (record: IRawRecord | null) => void;
91
+ onBeforeTasksDeleted: (taskIds: string[]) => void;
92
+ onAfterTasksDeleted: (result: IDeleteTasksResult | null) => void;
93
+ onBeforeTasksCreated: (parentId?: string) => void;
94
+ onAfterTasksCreated: (records: IRawRecord[] | null, parentId?: string) => void;
95
+ onBeforeTaskMoved: () => void;
96
+ onAfterTaskMoved: (movingFromTaskId: string, movingToTaskId: string, position: 'above' | 'below' | 'child') => void;
97
+ onBeforeTasksEdited: (taskIds: string[]) => void;
98
+ onTaskDataUpdated: (data: IRawRecord[]) => void;
99
+ onAfterTasksEdited: (result: IEditTasksResult | null) => void;
100
+ onRecordTreeUpdated: (updatedParentIds: (string | undefined)[]) => void;
101
+ onError: (error: any, message: string) => void;
102
+ }
103
+ /** Extended data provider interface for task records. Adds task-specific operations on top of `IDataProvider`. */
104
+ export interface ITaskDataProvider extends IDataProvider {
105
+ /** EventEmitter for task lifecycle events (create, delete, edit, move, template, error). */
106
+ taskEvents: IEventEmitter<ITaskDataProviderEventListener>;
107
+ /** Returns the native column name mapping. */
108
+ getNativeColumns(): INativeColumns;
109
+ /** Returns all records regardless of current tree filtering or paging. */
110
+ getAllRecords(): IRecord[];
111
+ /** Returns the underlying strategy cast to the given type. */
112
+ getStrategy<T extends ITaskDataProviderStrategy>(): T;
113
+ /** Fetches raw task records by id via the strategy. Pass an empty array to fetch all. */
114
+ fetchRawRecords(ids: string[]): Promise<IRawRecord[]>;
115
+ /** Returns the current hierarchical record tree built from loaded task data. */
116
+ getRecordTree(): IRecordTree;
117
+ /** Applies updated raw record data in-place and rebuilds the tree if hierarchy changed. */
118
+ updateTaskData(newData: IRawRecord[]): void;
119
+ /**
120
+ * @returns Result indicating which tasks were updated and which failed, or `null` if the operation was cancelled by the user.
121
+ * `success: true` means all tasks were updated. `success: false` means some or all failed — `updatedRecords` still contains the records that succeeded.
122
+ * Throws on unexpected failure.
123
+ */
124
+ editTasks(taskIds: string[]): Promise<IEditTasksResult | null>;
125
+ /** @returns The created task raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */
126
+ createTask(parentTaskId?: string): Promise<IRawRecord | null>;
127
+ /**
128
+ * @returns Result indicating which tasks were deleted and which failed.
129
+ * `success: true` means all tasks were deleted. `success: false` means some or all failed — `deletedTaskIds` still contains the ids that succeeded.
130
+ * Throws on unexpected failure before any deletes could be attempted.
131
+ */
132
+ deleteTasks(taskIds: string[]): Promise<IDeleteTasksResult | null>;
133
+ /** @returns The created template raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */
134
+ createTemplateFromTask(taskId: string): Promise<IRawRecord | null>;
135
+ /** @returns The created task raw records, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */
136
+ createTasksFromTemplate(templateId: string, parentId?: string): Promise<IRawRecord[] | null>;
137
+ /** Returns `true` when the grid is displaying a flat list instead of a tree hierarchy. */
138
+ isFlatListEnabled(): boolean;
139
+ /** Returns `true` when task creation is allowed (from `ITaskDataProviderStrategy.onIsTaskAddingEnabled`). */
140
+ isTaskAddingEnabled(): boolean;
141
+ /** Returns `true` when inline cell editing is allowed (from `ITaskDataProviderStrategy.onIsTaskEditingEnabled`). */
142
+ isTaskEditingEnabled(): boolean;
143
+ /** Returns `true` when task deletion is allowed (from `ITaskDataProviderStrategy.onIsTaskDeletingEnabled`). */
144
+ isTaskDeletingEnabled(): boolean;
145
+ /** Returns the root task id when the tree is scoped to a subtree, or `null` for a full tree. */
146
+ getRootTaskId: () => string | null;
147
+ /** Moves a task to a position relative to another task. Returns the updated raw records, or `null` on cancellation. */
148
+ moveTask(movingTaskId: string, movingToTaskId: string, position: 'above' | 'below' | 'child'): Promise<IRawRecord[] | null>;
149
+ }
150
+ export declare class TaskDataProvider extends MemoryDataProvider implements ITaskDataProvider {
151
+ private _nativeColumns;
152
+ private _localizationService;
153
+ private _hasDataBeenLoaded;
154
+ private _taskTree;
155
+ private _strategy;
156
+ private _onFlatListEnabled;
157
+ readonly taskEvents: EventEmitter<ITaskDataProviderEventListener>;
158
+ constructor(parameters: ITaskDataProviderParameters);
159
+ getStrategy<T extends ITaskDataProviderStrategy>(): T;
160
+ getRootTaskId(): string | null;
161
+ isTaskAddingEnabled(): boolean;
162
+ isTaskEditingEnabled(): boolean;
163
+ isTaskDeletingEnabled(): boolean;
164
+ getRecordTree(): IRecordTree;
165
+ isFlatListEnabled(): boolean;
166
+ getNativeColumns(): INativeColumns;
167
+ fetchRawRecords(ids: string[]): Promise<IRawRecord[]>;
168
+ onGetAvailableColumns(): Promise<IColumn[]>;
169
+ onGetAvailableRelatedColumns(): Promise<IAvailableRelatedColumn[]>;
170
+ retrieveRecordCommand(options?: IRetrieveRecordCommandOptions): Promise<ICommand[]>;
171
+ onRecordSave(record: IRecord): Promise<IRecordSaveOperationResult>;
172
+ updateTaskData(newData: IRawRecord[]): void;
173
+ getGroupedRecordDataProvider(groupedRecordId: string): IDataProvider | null;
174
+ moveTask(movingFromTaskId: string, movingToTaskId: string, position: "above" | "below" | "child"): Promise<IRawRecord[] | null>;
175
+ createTask(parentId?: string): Promise<IRawRecord | null>;
176
+ createTasksFromTemplate(templateId: string, parentId?: string): Promise<IRawRecord[] | null>;
177
+ createTemplateFromTask(taskId: string): Promise<IRawRecord | null>;
178
+ openDatasetItem(entityReference: ComponentFramework.EntityReference, context?: {
179
+ columnName?: string;
180
+ }): void;
181
+ getSorting(): ComponentFramework.PropertyHelper.DataSetApi.SortStatus[];
182
+ getSortedRecordIds(): string[];
183
+ deleteTasks(taskIds: string[]): Promise<IDeleteTasksResult | null>;
184
+ editTasks(taskIds: string[]): Promise<IEditTasksResult | null>;
185
+ isRecordActive(recordId: string): boolean;
186
+ onOpenDatasetItem(entityReference: ComponentFramework.EntityReference): void;
187
+ destroy(): Promise<void>;
188
+ getQuickFindColumns(): IColumn[];
189
+ createGroupedRecordDataProvider(group: IRecord): IDataProvider;
190
+ getPaging(): {
191
+ firstPageNumber: number;
192
+ hasNextPage: boolean;
193
+ hasPreviousPage: boolean;
194
+ lastPageNumber: number;
195
+ pageNumber: number;
196
+ pageSize: number;
197
+ totalResultCount: number;
198
+ loadExactPage: (pageNumber: number) => Promise<IRecord[]>;
199
+ loadNextPage: () => Promise<IRecord[]>;
200
+ loadPreviousPage: () => Promise<IRecord[]>;
201
+ reset: () => void;
202
+ setPageSize: (pageSize: number) => void;
203
+ setPageNumber: (pageNumber: number) => void;
204
+ };
205
+ getRecords(): IRecord[];
206
+ getAllRecords(): IRecord[];
207
+ createNewDataProvider(eventBubbleOptions?: IEventBubbleOptions): IDataProvider;
208
+ refresh(): Promise<IRecord[]>;
209
+ dispatchEvent<K extends keyof IDataProviderEventListeners>(event: K, ...args: Parameters<IDataProviderEventListeners[K]>): boolean;
210
+ getDataSync(pageNumber: number, pageSize: number, previousPageNumber: number, event: GetDataEvent): IRetrievedData;
211
+ private _loadDataFromStrategy;
212
+ private _createTasks;
213
+ }