@talxis/base-controls 1.2604.2 → 1.2605.2-alpha

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 (248) hide show
  1. package/dist/components/DatasetControl/EditColumns/OptionText/OptionText.js +1 -2
  2. package/dist/components/DatasetControl/EditColumns/OptionText/OptionText.js.map +1 -1
  3. package/dist/components/Lookup/Lookup.js +4 -1
  4. package/dist/components/Lookup/Lookup.js.map +1 -1
  5. package/dist/components/Lookup/hooks/useLookup.d.ts +4 -0
  6. package/dist/components/Lookup/translations.d.ts +4 -0
  7. package/dist/components/Lookup/translations.js +4 -0
  8. package/dist/components/Lookup/translations.js.map +1 -1
  9. package/dist/components/TaskGrid/TaskGrid.js +3 -4
  10. package/dist/components/TaskGrid/TaskGrid.js.map +1 -1
  11. package/dist/components/TaskGrid/TaskGridDatasetControl.d.ts +16 -5
  12. package/dist/components/TaskGrid/TaskGridDatasetControl.js +32 -13
  13. package/dist/components/TaskGrid/TaskGridDatasetControl.js.map +1 -1
  14. package/dist/components/TaskGrid/TaskGridDatasetControlFactory.d.ts +3 -2
  15. package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js +7 -5
  16. package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js.map +1 -1
  17. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js +3 -8
  18. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js.map +1 -1
  19. package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.d.ts +7 -0
  20. package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.js +99 -0
  21. package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.js.map +1 -0
  22. package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/index.d.ts +1 -0
  23. package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/index.js +2 -0
  24. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.d.ts +1 -0
  25. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js +2 -1
  26. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js.map +1 -1
  27. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/index.js +1 -1
  28. package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.d.ts +2 -7
  29. package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js +44 -18
  30. package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js.map +1 -1
  31. package/dist/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.js.map +1 -1
  32. package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.d.ts +13 -0
  33. package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.js +82 -0
  34. package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.js.map +1 -0
  35. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/ColorfulLookupMany.d.ts +5 -0
  36. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/ColorfulLookupMany.js +12 -0
  37. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/ColorfulLookupMany.js.map +1 -0
  38. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.d.ts +2 -0
  39. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.js +13 -0
  40. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.js.map +1 -0
  41. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/MultiValueContainer.d.ts +3 -0
  42. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/MultiValueContainer.js +17 -0
  43. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/MultiValueContainer.js.map +1 -0
  44. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/index.d.ts +1 -0
  45. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/index.js +2 -0
  46. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/Option.d.ts +3 -0
  47. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/Option.js +17 -0
  48. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/Option.js.map +1 -0
  49. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/index.d.ts +1 -0
  50. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/index.js +2 -0
  51. package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider → components/grid/lookup-many/colorful-lookup-many/components/option}/index.js.map +1 -1
  52. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/styles.d.ts +14 -0
  53. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/styles.js +21 -0
  54. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/styles.js.map +1 -0
  55. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/context.d.ts +4 -0
  56. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/context.js +9 -0
  57. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/context.js.map +1 -0
  58. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/index.d.ts +1 -0
  59. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/index.js +2 -0
  60. package/dist/components/TaskGrid/{data-providers/saved-query-data-provider → components/grid/lookup-many/colorful-lookup-many}/index.js.map +1 -1
  61. package/dist/components/TaskGrid/components/grid/lookup-many/components/index.d.ts +10 -0
  62. package/dist/components/TaskGrid/components/grid/lookup-many/components/index.js +15 -0
  63. package/dist/components/TaskGrid/components/grid/lookup-many/components/index.js.map +1 -0
  64. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.d.ts +3 -0
  65. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.js +15 -0
  66. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.js.map +1 -0
  67. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/index.d.ts +1 -0
  68. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/index.js +2 -0
  69. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/index.js.map +1 -0
  70. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/styles.d.ts +18 -0
  71. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/styles.js +24 -0
  72. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/styles.js.map +1 -0
  73. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/MultiValueLabel.d.ts +3 -0
  74. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/MultiValueLabel.js +21 -0
  75. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/MultiValueLabel.js.map +1 -0
  76. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/index.d.ts +1 -0
  77. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/index.js +2 -0
  78. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/index.js.map +1 -0
  79. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/styles.d.ts +15 -0
  80. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/styles.js +22 -0
  81. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/styles.js.map +1 -0
  82. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/MultiValueRemove.d.ts +3 -0
  83. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/MultiValueRemove.js +18 -0
  84. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/MultiValueRemove.js.map +1 -0
  85. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/styles.d.ts +22 -0
  86. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/styles.js +28 -0
  87. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/styles.js.map +1 -0
  88. package/dist/components/TaskGrid/components/grid/lookup-many/context.d.ts +4 -0
  89. package/dist/components/TaskGrid/components/grid/lookup-many/context.js +9 -0
  90. package/dist/components/TaskGrid/components/grid/lookup-many/context.js.map +1 -0
  91. package/dist/components/TaskGrid/components/grid/lookup-many/index.d.ts +4 -0
  92. package/dist/components/TaskGrid/components/grid/lookup-many/index.js +5 -0
  93. package/dist/components/TaskGrid/components/grid/lookup-many/index.js.map +1 -0
  94. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/PeopleLookupMany.d.ts +5 -0
  95. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/PeopleLookupMany.js +12 -0
  96. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/PeopleLookupMany.js.map +1 -0
  97. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.d.ts +2 -0
  98. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.js +13 -0
  99. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.js.map +1 -0
  100. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/MultiValueLabel.d.ts +3 -0
  101. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/MultiValueLabel.js +17 -0
  102. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/MultiValueLabel.js.map +1 -0
  103. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/index.d.ts +1 -0
  104. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/index.js +2 -0
  105. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/index.js.map +1 -0
  106. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/styles.d.ts +5 -0
  107. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/styles.js +6 -0
  108. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/styles.js.map +1 -0
  109. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/Option.d.ts +3 -0
  110. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/Option.js +16 -0
  111. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/Option.js.map +1 -0
  112. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/index.d.ts +1 -0
  113. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/index.js +2 -0
  114. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/index.js.map +1 -0
  115. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/styles.d.ts +10 -0
  116. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/styles.js +11 -0
  117. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/styles.js.map +1 -0
  118. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/context.d.ts +4 -0
  119. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/context.js +9 -0
  120. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/context.js.map +1 -0
  121. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/index.d.ts +1 -0
  122. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/index.js +2 -0
  123. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/index.js.map +1 -0
  124. package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.d.ts +1 -0
  125. package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.js +27 -14
  126. package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.js.map +1 -1
  127. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/MultiValueContainer.d.ts +3 -0
  128. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/MultiValueContainer.js +13 -0
  129. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/MultiValueContainer.js.map +1 -0
  130. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/styles.d.ts +18 -0
  131. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/styles.js +24 -0
  132. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/styles.js.map +1 -0
  133. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.d.ts +3 -0
  134. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.js +19 -0
  135. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.js.map +1 -0
  136. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/styles.d.ts +12 -0
  137. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/styles.js +19 -0
  138. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/styles.js.map +1 -0
  139. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/MultiValueRemove.d.ts +3 -0
  140. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/MultiValueRemove.js +16 -0
  141. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/MultiValueRemove.js.map +1 -0
  142. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/styles.d.ts +22 -0
  143. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/styles.js +28 -0
  144. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/styles.js.map +1 -0
  145. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/option/Option.d.ts +3 -0
  146. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/option/styles.d.ts +16 -0
  147. package/dist/components/TaskGrid/components/grid/multi-record-selector/styles.d.ts +3 -0
  148. package/dist/components/TaskGrid/components/grid/multi-record-selector/styles.js +15 -0
  149. package/dist/components/TaskGrid/components/grid/multi-record-selector/styles.js.map +1 -0
  150. package/dist/components/TaskGrid/components/header/Header.js +5 -4
  151. package/dist/components/TaskGrid/components/header/Header.js.map +1 -1
  152. package/dist/components/TaskGrid/components/header/edit-columns/EditColumns.js.map +1 -1
  153. package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/CreateViewDialog.js.map +1 -1
  154. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManager.js.map +1 -1
  155. package/dist/components/TaskGrid/context.d.ts +5 -4
  156. package/dist/components/TaskGrid/context.js.map +1 -1
  157. package/dist/components/TaskGrid/extensions/LexoRank.d.ts +7 -0
  158. package/dist/components/TaskGrid/extensions/dataverse/DataverseCustomColumnsStrategy.d.ts +69 -0
  159. package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js → extensions/dataverse/DataverseCustomColumnsStrategy.js} +35 -3
  160. package/dist/components/TaskGrid/extensions/dataverse/DataverseCustomColumnsStrategy.js.map +1 -0
  161. package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.d.ts +20 -0
  162. package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.js +42 -0
  163. package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.js.map +1 -0
  164. package/dist/components/TaskGrid/extensions/dataverse/DataverseSavedQueryStrategy.d.ts +49 -0
  165. package/dist/components/TaskGrid/{data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.js → extensions/dataverse/DataverseSavedQueryStrategy.js} +37 -15
  166. package/dist/components/TaskGrid/extensions/dataverse/DataverseSavedQueryStrategy.js.map +1 -0
  167. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.d.ts +100 -0
  168. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.js +145 -0
  169. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.js.map +1 -0
  170. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.d.ts +122 -0
  171. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.js +453 -0
  172. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.js.map +1 -0
  173. package/dist/components/TaskGrid/extensions/dataverse/index.d.ts +5 -0
  174. package/dist/components/TaskGrid/extensions/dataverse/index.js +6 -0
  175. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.d.ts +49 -0
  176. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.js +145 -0
  177. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.js.map +1 -0
  178. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlDataProviderFactory.d.ts +11 -0
  179. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlDataProviderFactory.js +16 -0
  180. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlDataProviderFactory.js.map +1 -0
  181. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.d.ts +2 -0
  182. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.js +29 -0
  183. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.js.map +1 -0
  184. package/dist/components/TaskGrid/interfaces.d.ts +30 -12
  185. package/dist/components/TaskGrid/labels.d.ts +1 -15
  186. package/dist/components/TaskGrid/labels.js +2 -16
  187. package/dist/components/TaskGrid/labels.js.map +1 -1
  188. package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider → providers/custom-columns}/CustomColumnsDataProvider.d.ts +5 -1
  189. package/dist/components/TaskGrid/providers/custom-columns/CustomColumnsDataProvider.js.map +1 -0
  190. package/dist/components/TaskGrid/providers/custom-columns/index.d.ts +1 -0
  191. package/dist/components/TaskGrid/providers/custom-columns/index.js +2 -0
  192. package/dist/components/TaskGrid/providers/custom-columns/index.js.map +1 -0
  193. package/dist/components/TaskGrid/providers/index.d.ts +3 -0
  194. package/dist/components/TaskGrid/providers/index.js +4 -0
  195. package/dist/components/TaskGrid/providers/index.js.map +1 -0
  196. package/dist/components/TaskGrid/{data-providers/saved-query-data-provider → providers/saved-query}/SavedQueryDataProvider.d.ts +13 -8
  197. package/dist/components/TaskGrid/{data-providers/saved-query-data-provider → providers/saved-query}/SavedQueryDataProvider.js +87 -50
  198. package/dist/components/TaskGrid/providers/saved-query/SavedQueryDataProvider.js.map +1 -0
  199. package/dist/components/TaskGrid/providers/saved-query/index.d.ts +1 -0
  200. package/dist/components/TaskGrid/providers/saved-query/index.js +2 -0
  201. package/dist/components/TaskGrid/providers/saved-query/index.js.map +1 -0
  202. package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/TaskDataProvider.d.ts +15 -22
  203. package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/TaskDataProvider.js +35 -26
  204. package/dist/components/TaskGrid/providers/task/TaskDataProvider.js.map +1 -0
  205. package/dist/components/TaskGrid/providers/task/index.js.map +1 -0
  206. package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/RecordTree.js +2 -0
  207. package/dist/components/TaskGrid/providers/task/record-tree/RecordTree.js.map +1 -0
  208. package/dist/components/TaskGrid/providers/task/record-tree/index.js.map +1 -0
  209. package/dist/components/TaskGrid/providers/task/record-tree/patchDataBuilderPrepare.js.map +1 -0
  210. package/dist/index.d.ts +177 -165
  211. package/dist/index.js +1 -0
  212. package/dist/index.js.map +1 -1
  213. package/dist/utils/index.d.ts +1 -0
  214. package/dist/utils/index.js +1 -0
  215. package/dist/utils/index.js.map +1 -1
  216. package/dist/utils/localization/LocalizationService.d.ts +15 -0
  217. package/dist/utils/localization/LocalizationService.js +17 -0
  218. package/dist/utils/localization/LocalizationService.js.map +1 -0
  219. package/dist/utils/localization/index.d.ts +1 -0
  220. package/dist/utils/localization/index.js +2 -0
  221. package/dist/utils/localization/index.js.map +1 -0
  222. package/package.json +5 -4
  223. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/CustomColumnsDataProvider.js.map +0 -1
  224. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.d.ts +0 -33
  225. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js.map +0 -1
  226. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.d.ts +0 -2
  227. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.js +0 -3
  228. package/dist/components/TaskGrid/data-providers/index.d.ts +0 -3
  229. package/dist/components/TaskGrid/data-providers/index.js +0 -6
  230. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/SavedQueryDataProvider.js.map +0 -1
  231. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.d.ts +0 -21
  232. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.js.map +0 -1
  233. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.d.ts +0 -2
  234. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.js +0 -3
  235. package/dist/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.js.map +0 -1
  236. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.js.map +0 -1
  237. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/patchDataBuilderPrepare.js.map +0 -1
  238. /package/dist/components/TaskGrid/{data-providers/task-data-provider → components/grid/cell-renderers/lookup-many}/index.js.map +0 -0
  239. /package/dist/components/TaskGrid/{data-providers/task-data-provider/record-tree → components/grid/lookup-many/colorful-lookup-many/components/multi-value-container}/index.js.map +0 -0
  240. /package/dist/components/TaskGrid/{data-providers → extensions/dataverse}/index.js.map +0 -0
  241. /package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider → providers/custom-columns}/CustomColumnsDataProvider.js +0 -0
  242. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/index.d.ts +0 -0
  243. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/index.js +0 -0
  244. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/RecordTree.d.ts +0 -0
  245. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/index.d.ts +0 -0
  246. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/index.js +0 -0
  247. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/patchDataBuilderPrepare.d.ts +0 -0
  248. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/patchDataBuilderPrepare.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"labels.js","sources":["../../../src/components/TaskGrid/labels.ts"],"sourcesContent":["import { Liquid } from \"liquidjs\";\n\nexport interface ITaskGridLabels {\n name: string;\n no: string;\n yes: string;\n ok: string;\n confirm: string;\n confirmation: string;\n myViews: string;\n systemViews: string;\n saveAsNew: string;\n saveExisting: string;\n manageViews: string;\n deleteView: string;\n cancel: string;\n save: string;\n loading: string;\n reordering: string;\n search: string;\n editColumns: string;\n allTasks: string;\n new: string;\n bulkEdit: string;\n settings: string;\n 'reorderingTaskDialog.text.children': string;\n 'reorderingTaskDialog.text.above': string;\n 'reorderingTaskDialog.text.below': string;\n 'reorderingTaskTemplateDialog.text.children': string;\n 'reorderingTaskTemplateDialog.text.topLevel': string;\n 'reorderingTaskDialog.manyChildrenWarning': string;\n creatingTemplateFromTasks: string;\n creatingTasksFromTemplate: string;\n templateCreatedSuccessfully: string;\n description: string;\n noTaskTemplates: string;\n addChild: string;\n addCustomColumn: string;\n confirmColumnDelete: string;\n confirmColumnEdit: string;\n loadingTemplates: string;\n taskFromTemplate: string;\n templateFromTask: string;\n loadingMilestones: string;\n chooseExisting: string;\n noMilestones: string;\n loadingContracts: string;\n createFromContract: string;\n noContracts: string;\n createManually: string;\n newRecord: string;\n filterByKeyword: string;\n deleteSelected: string;\n showHierarchy: string;\n 'confirmDialog.deleteSelectedRows.text': string;\n topLevel: string;\n canNotDeleteCompleted: string;\n canNotDeletedRecordsWithChild: string;\n canNotEditCompletedTask: string;\n selectMaximumOneTask: string;\n hideInactiveTasks: string;\n successfulOperationDialogTitle: string;\n warningDialogTitle: string;\n informationDialogTitle: string;\n couldNotFindRecord: string;\n wrongBaseRecord: string;\n fillRecordId: string;\n fillEntityName: string;\n fillFetchXml: string;\n myTemplates: string;\n publicTemplates: string;\n updatingTasks: string;\n deletingTasks: string;\n deletingTasksError: string;\n noRecordsFound: string;\n unexpectedErrorOccurred: string;\n deletingUserQueriesError: string;\n}\n\nexport interface ILocalizationService<T> {\n getLocalizedString: (key: keyof T, variables?: {[key: string]: string}) => string;\n}\n\nexport const TASK_GRID_LABELS: ITaskGridLabels = {\n name: 'Name',\n no: 'No',\n yes: 'Yes',\n ok: 'Ok',\n confirm: 'Confirm',\n confirmation: 'Confirmation',\n myViews: 'My views',\n systemViews: 'System views',\n saveAsNew: 'Save as new view',\n saveExisting: 'Save changes to current view',\n manageViews: 'Manage views',\n deleteView: \"Are you sure you want to delete this view? You can't undo this action.\",\n cancel: 'Cancel',\n save: 'Save',\n loading: 'Loading...',\n reordering: 'Reordering',\n search: 'Search',\n editColumns: 'Edit columns',\n allTasks: 'All Tasks',\n new: 'New',\n bulkEdit: 'Edit',\n settings: 'Settings',\n 'reorderingTaskDialog.text.children': 'Do you want to make \"{{ baseRecord }}\" children of \"{{ overBaseRecord }}\"?',\n 'reorderingTaskDialog.text.above': 'Do you want to move \"{{ baseRecord }}\" above \"{{ overBaseRecord }}\"?',\n 'reorderingTaskDialog.text.below': 'Do you want to move \"{{ baseRecord }}\" below \"{{ overBaseRecord }}\"?',\n 'reorderingTaskTemplateDialog.text.children': 'Do you want to make \"{{ baseRecord }}\" children of \"{{ overBaseRecord }}\"?',\n 'reorderingTaskTemplateDialog.text.topLevel': 'Do you want to make \"{{ baseRecord }}\" top-level template?',\n 'reorderingTaskDialog.manyChildrenWarning': 'You are about to move {{ numberOfRecords }} records. Do you wish to continue?',\n creatingTemplateFromTasks: 'Creating template from task...',\n creatingTasksFromTemplate: 'Creating tasks from template...',\n templateCreatedSuccessfully: 'Template was created successfully.',\n description: 'Description',\n noTaskTemplates: 'No task templates',\n addChild: 'Add Child',\n addCustomColumn: 'Create Custom Column',\n confirmColumnDelete: 'Do you want to delete the selected column?',\n confirmColumnEdit: 'To edit the column, all data needs to be reloaded. Do you want to continue?',\n loadingTemplates: 'Loading templates...',\n taskFromTemplate: 'Task From Template',\n templateFromTask: 'Template From Task',\n loadingMilestones: 'Loading milestones...',\n chooseExisting: 'Choose existing',\n noMilestones: 'No milestones',\n loadingContracts: 'Loading contracts...',\n createFromContract: 'Create from contract',\n noContracts: 'No contracts',\n createManually: 'Create manually',\n newRecord: 'New Record',\n filterByKeyword: 'Filter by keyword',\n deleteSelected: 'Delete',\n showHierarchy: 'Show hierarchy',\n 'confirmDialog.deleteSelectedRows.text': 'Are you sure you want to delete selected rows?',\n topLevel: 'Top-level',\n canNotDeleteCompleted: \"You can't delete completed one.\",\n canNotDeletedRecordsWithChild: \"You can't delete records with children.\",\n canNotEditCompletedTask: \"You can't edit completed task.\",\n selectMaximumOneTask: 'Select maximum one task.',\n hideInactiveTasks: 'Hide inactive tasks',\n successfulOperationDialogTitle: 'Success',\n warningDialogTitle: 'Warning',\n informationDialogTitle: 'Information',\n couldNotFindRecord: 'Could not find base record from the fetch xml!',\n wrongBaseRecord: 'Base record has to be task or task template entity!',\n fillRecordId: 'Fill record id to retrieve base records!',\n fillEntityName: 'Fill entity name to retrieve base records!',\n fillFetchXml: 'Fill fetch xml to retrieve base records!',\n myTemplates: 'My Templates',\n publicTemplates: 'Public Templates',\n updatingTasks: 'Updating task...',\n deletingTasks: 'Deleting task...',\n deletingTasksError: 'Some tasks could not be deleted due to following reasons:',\n deletingUserQueriesError: 'Some views could not be deleted due to following reasons:',\n noRecordsFound: 'No records found.',\n unexpectedErrorOccurred: 'Unexpected error occurred.',\n}\n\nexport class LocalizationService<T extends { [K in keyof T]: string }> implements ILocalizationService<T> {\n private _getLabels: () => T;\n private _liquidEngine: Liquid;\n\n constructor(getLabels: () => T) {\n this._getLabels = getLabels;\n this._liquidEngine = new Liquid();\n }\n\n public getLocalizedString(key: keyof T, variables?: {[key: string]: string}): string {\n const labels = this._getLabels();\n if(variables) {\n return this._liquidEngine.parseAndRenderSync(labels[key] as unknown as string, variables);\n }\n return labels[key];\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"labels.js","sources":["../../../src/components/TaskGrid/labels.ts"],"sourcesContent":["export interface ITaskGridLabels {\n name: string;\n no: string;\n yes: string;\n ok: string;\n confirm: string;\n confirmation: string;\n myViews: string;\n systemViews: string;\n saveAsNew: string;\n saveExisting: string;\n manageViews: string;\n deleteView: string;\n cancel: string;\n save: string;\n loading: string;\n reordering: string;\n search: string;\n editColumns: string;\n allTasks: string;\n new: string;\n bulkEdit: string;\n settings: string;\n 'reorderingTaskDialog.text.children': string;\n 'reorderingTaskDialog.text.above': string;\n 'reorderingTaskDialog.text.below': string;\n 'reorderingTaskTemplateDialog.text.children': string;\n 'reorderingTaskTemplateDialog.text.topLevel': string;\n 'reorderingTaskDialog.manyChildrenWarning': string;\n creatingTemplateFromTasks: string;\n creatingTasksFromTemplate: string;\n templateCreatedSuccessfully: string;\n description: string;\n noTaskTemplates: string;\n path: string;\n addChild: string;\n addCustomColumn: string;\n confirmColumnDelete: string;\n confirmColumnEdit: string;\n loadingTemplates: string;\n taskFromTemplate: string;\n templateFromTask: string;\n loadingMilestones: string;\n chooseExisting: string;\n noMilestones: string;\n loadingContracts: string;\n createFromContract: string;\n noContracts: string;\n createManually: string;\n newRecord: string;\n filterByKeyword: string;\n deleteSelected: string;\n showHierarchy: string;\n 'confirmDialog.deleteSelectedRows.text': string;\n topLevel: string;\n canNotDeleteCompleted: string;\n canNotDeletedRecordsWithChild: string;\n canNotEditCompletedTask: string;\n selectMaximumOneTask: string;\n hideInactiveTasks: string;\n successfulOperationDialogTitle: string;\n warningDialogTitle: string;\n informationDialogTitle: string;\n couldNotFindRecord: string;\n wrongBaseRecord: string;\n fillRecordId: string;\n fillEntityName: string;\n fillFetchXml: string;\n myTemplates: string;\n publicTemplates: string;\n updatingTasks: string;\n deletingTasks: string;\n deletingTasksError: string;\n noRecordsFound: string;\n unexpectedErrorOccurred: string;\n deletingUserQueriesError: string;\n}\n\nexport const TASK_GRID_LABELS: ITaskGridLabels = {\n name: 'Name',\n no: 'No',\n yes: 'Yes',\n ok: 'Ok',\n path: 'Path',\n confirm: 'Confirm',\n confirmation: 'Confirmation',\n myViews: 'My views',\n systemViews: 'System views',\n saveAsNew: 'Save as new view',\n saveExisting: 'Save changes to current view',\n manageViews: 'Manage views',\n deleteView: \"Are you sure you want to delete this view? You can't undo this action.\",\n cancel: 'Cancel',\n save: 'Save',\n loading: 'Loading...',\n reordering: 'Reordering',\n search: 'Search',\n editColumns: 'Edit columns',\n allTasks: 'All Tasks',\n new: 'New',\n bulkEdit: 'Edit',\n settings: 'Settings',\n 'reorderingTaskDialog.text.children': 'Do you want to make \"{{ baseRecord }}\" children of \"{{ overBaseRecord }}\"?',\n 'reorderingTaskDialog.text.above': 'Do you want to move \"{{ baseRecord }}\" above \"{{ overBaseRecord }}\"?',\n 'reorderingTaskDialog.text.below': 'Do you want to move \"{{ baseRecord }}\" below \"{{ overBaseRecord }}\"?',\n 'reorderingTaskTemplateDialog.text.children': 'Do you want to make \"{{ baseRecord }}\" children of \"{{ overBaseRecord }}\"?',\n 'reorderingTaskTemplateDialog.text.topLevel': 'Do you want to make \"{{ baseRecord }}\" top-level template?',\n 'reorderingTaskDialog.manyChildrenWarning': 'You are about to move {{ numberOfRecords }} records. Do you wish to continue?',\n creatingTemplateFromTasks: 'Creating template from task...',\n creatingTasksFromTemplate: 'Creating tasks from template...',\n templateCreatedSuccessfully: 'Template was created successfully.',\n description: 'Description',\n noTaskTemplates: 'No task templates',\n addChild: 'Add Child',\n addCustomColumn: 'Create Custom Column',\n confirmColumnDelete: 'Do you want to delete the selected column?',\n confirmColumnEdit: 'To edit the column, all data needs to be reloaded. Do you want to continue?',\n loadingTemplates: 'Loading templates...',\n taskFromTemplate: 'Task From Template',\n templateFromTask: 'Template From Task',\n loadingMilestones: 'Loading milestones...',\n chooseExisting: 'Choose existing',\n noMilestones: 'No milestones',\n loadingContracts: 'Loading contracts...',\n createFromContract: 'Create from contract',\n noContracts: 'No contracts',\n createManually: 'Create manually',\n newRecord: 'New Record',\n filterByKeyword: 'Filter by keyword',\n deleteSelected: 'Delete',\n showHierarchy: 'Show hierarchy',\n 'confirmDialog.deleteSelectedRows.text': 'Are you sure you want to delete selected rows?',\n topLevel: 'Top-level',\n canNotDeleteCompleted: \"You can't delete completed one.\",\n canNotDeletedRecordsWithChild: \"You can't delete records with children.\",\n canNotEditCompletedTask: \"You can't edit completed task.\",\n selectMaximumOneTask: 'Select maximum one task.',\n hideInactiveTasks: 'Hide inactive tasks',\n successfulOperationDialogTitle: 'Success',\n warningDialogTitle: 'Warning',\n informationDialogTitle: 'Information',\n couldNotFindRecord: 'Could not find base record from the fetch xml!',\n wrongBaseRecord: 'Base record has to be task or task template entity!',\n fillRecordId: 'Fill record id to retrieve base records!',\n fillEntityName: 'Fill entity name to retrieve base records!',\n fillFetchXml: 'Fill fetch xml to retrieve base records!',\n myTemplates: 'My Templates',\n publicTemplates: 'Public Templates',\n updatingTasks: 'Updating task...',\n deletingTasks: 'Deleting task...',\n deletingTasksError: 'Some tasks could not be deleted due to following reasons:',\n deletingUserQueriesError: 'Some views could not be deleted due to following reasons:',\n noRecordsFound: 'No records found.',\n unexpectedErrorOccurred: 'Unexpected error occurred.',\n}"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { IColumn, IEventEmitter } from "@talxis/client-libraries";
1
+ import { IColumn, IEventEmitter, IRawRecord } from "@talxis/client-libraries";
2
2
  /** Strategy interface for managing user-defined (dynamic) column definitions. */
3
3
  export interface ICustomColumnsStrategy {
4
4
  /** @returns The created column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */
@@ -11,6 +11,10 @@ export interface ICustomColumnsStrategy {
11
11
  onRefresh: () => Promise<IColumn[]>;
12
12
  /** Returns the currently loaded custom columns synchronously without a network fetch. */
13
13
  onGetColumns: () => IColumn[];
14
+ /** Fetches the raw records for custom columns. */
15
+ onGetRawRecords: () => Promise<IRawRecord[]>;
16
+ /** Fetches a single raw record by its ID. */
17
+ onGetRawRecord: (recordId: string) => Promise<IRawRecord>;
14
18
  }
15
19
  /** Manages the lifecycle of dynamic (user-defined) columns and wraps the strategy with error handling. */
16
20
  export interface ICustomColumnsDataProvider {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomColumnsDataProvider.js","sources":["../../../../../src/components/TaskGrid/providers/custom-columns/CustomColumnsDataProvider.ts"],"sourcesContent":["import { DatasetConstants, IColumn, IEventEmitter, EventEmitter, IRawRecord } from \"@talxis/client-libraries\";\nimport { ErrorHelper } from \"../../../../utils\";\n\n\n/** Strategy interface for managing user-defined (dynamic) column definitions. */\nexport interface ICustomColumnsStrategy {\n /** @returns The created column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onCreateColumn: () => Promise<string | null>;\n /** @returns The deleted column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onDeleteColumn: (columnName: string) => Promise<string | null>;\n /** @returns The updated column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onUpdateColumn: (columnName: string) => Promise<string | null>;\n /** Fetches/reloads all custom column definitions and returns the resolved `IColumn[]`. */\n onRefresh: () => Promise<IColumn[]>;\n /** Returns the currently loaded custom columns synchronously without a network fetch. */\n onGetColumns: () => IColumn[];\n /** Fetches the raw records for custom columns. */\n onGetRawRecords: () => Promise<IRawRecord[]>;\n /** Fetches a single raw record by its ID. */\n onGetRawRecord: (recordId: string) => Promise<IRawRecord>;\n}\n\n/** Manages the lifecycle of dynamic (user-defined) columns and wraps the strategy with error handling. */\nexport interface ICustomColumnsDataProvider {\n /** EventEmitter for error events raised by column operations. */\n events: IEventEmitter<ICustomColumnsDataProviderEvents>;\n /** @returns The created column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n createColumn: () => Promise<string | null>;\n /** @returns The deleted column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n deleteColumn: (columnName: string) => Promise<string | null>;\n /** @returns The updated column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n updateColumn: (columnName: string) => Promise<string | null>;\n /** Refreshes the list of custom columns from the underlying strategy. */\n refresh: () => Promise<IColumn[]>;\n /** Returns the currently cached list of custom columns. */\n getColumns: () => IColumn[];\n /** Returns the underlying strategy cast to the given type for strategy-specific operations. */\n getStrategy<T extends ICustomColumnsStrategy>(): T;\n /** Returns `true` when the given column name is a custom (dynamic) column. */\n isCustomColumn: (columnName: string) => boolean;\n destroy: () => void;\n}\n\nexport interface ICustomColumnsDataProviderEvents {\n onError: (error: any, message: string) => void;\n}\n\nexport class CustomColumnsDataProvider implements ICustomColumnsDataProvider {\n private _strategy: ICustomColumnsStrategy;\n public events: IEventEmitter<ICustomColumnsDataProviderEvents> = new EventEmitter();\n\n constructor(strategy: ICustomColumnsStrategy) {\n this._strategy = strategy;\n }\n public getStrategy<T extends ICustomColumnsStrategy>(): T {\n return this._strategy as T;\n }\n public async createColumn(): Promise<string | null> {\n return ErrorHelper.executeWithErrorHandling({\n operation: () => this._strategy.onCreateColumn(),\n onError: (error, message) => this.events.dispatchEvent('onError', error, message)\n })\n }\n public async deleteColumn(columnName: string): Promise<string | null> {\n return ErrorHelper.executeWithErrorHandling({\n operation: () => this._strategy.onDeleteColumn(columnName),\n onError: (error, message) => this.events.dispatchEvent('onError', error, message)\n })\n }\n public async updateColumn(columnName: string): Promise<string | null> {\n return ErrorHelper.executeWithErrorHandling({\n operation: () => this._strategy.onUpdateColumn(columnName),\n onError: (error, message) => this.events.dispatchEvent('onError', error, message)\n })\n }\n public destroy(): void {\n this.events.clearEventListeners();\n }\n public getColumns(): IColumn[] {\n return this._strategy.onGetColumns();\n }\n public async refresh(): Promise<IColumn[]> {\n return await this._strategy.onRefresh();\n }\n public isCustomColumn(columnName: string): boolean {\n return columnName.endsWith(DatasetConstants.CUSTOM_COLUMN_NAME_SUFFIX);\n }\n}"],"names":[],"mappings":";;;MA+Ca,yBAAyB,CAAA;AAIlC,IAAA,WAAA,CAAY,QAAgC,EAAA;AAFrC,QAAA,IAAA,CAAA,MAAM,GAAoD,IAAI,YAAY,EAAE,CAAC;AAGhF,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC7B;IACM,WAAW,GAAA;QACd,OAAO,IAAI,CAAC,SAAc,CAAC;KAC9B;AACM,IAAA,MAAM,YAAY,GAAA;QACrB,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AAChD,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACpF,SAAA,CAAC,CAAA;KACL;IACM,MAAM,YAAY,CAAC,UAAkB,EAAA;QACxC,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;AAC1D,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACpF,SAAA,CAAC,CAAA;KACL;IACM,MAAM,YAAY,CAAC,UAAkB,EAAA;QACxC,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;AAC1D,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACpF,SAAA,CAAC,CAAA;KACL;IACM,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;KACrC;IACM,UAAU,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACxC;AACM,IAAA,MAAM,OAAO,GAAA;AAChB,QAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;KAC3C;AACM,IAAA,cAAc,CAAC,UAAkB,EAAA;QACpC,OAAO,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;KAC1E;AACJ;;;;"}
@@ -0,0 +1 @@
1
+ export * from './CustomColumnsDataProvider';
@@ -0,0 +1,2 @@
1
+ export { CustomColumnsDataProvider } from './CustomColumnsDataProvider.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './task';
2
+ export * from './saved-query';
3
+ export * from './custom-columns';
@@ -0,0 +1,4 @@
1
+ export { TaskDataProvider } from './task/TaskDataProvider.js';
2
+ export { PATH_COLUMN_NAME, SavedQueryDataProvider } from './saved-query/SavedQueryDataProvider.js';
3
+ export { CustomColumnsDataProvider } from './custom-columns/CustomColumnsDataProvider.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,8 +1,10 @@
1
1
  /// <reference types="@types/powerapps-component-framework" />
2
2
  import { EventEmitter, IColumn, IEventEmitter } from "@talxis/client-libraries";
3
- import { ITaskDataProvider } from "../task-data-provider";
4
- import { ICustomColumnsDataProvider } from "../custom-columns-data-provider/CustomColumnsDataProvider";
3
+ import { ITaskDataProvider } from "../task";
4
+ import { ICustomColumnsDataProvider } from "../custom-columns/CustomColumnsDataProvider";
5
5
  import { INativeColumns } from "../../interfaces";
6
+ import { ILocalizationService } from "../../../../utils";
7
+ import { ITaskGridLabels } from "../../labels";
6
8
  export interface ICreateUserQueryParams {
7
9
  name: string;
8
10
  provider: ITaskDataProvider;
@@ -43,7 +45,9 @@ export interface ISavedQueryMetadata {
43
45
  linking?: ComponentFramework.PropertyHelper.DataSetApi.LinkEntityExposedExpression[];
44
46
  isFlatListEnabled?: boolean;
45
47
  searchQuery?: string | undefined;
48
+ quickFindColumns?: string[];
46
49
  }
50
+ export declare const PATH_COLUMN_NAME = "path__virtual";
47
51
  /** Strategy interface for loading and persisting system and user-defined saved views (queries). */
48
52
  export interface ISavedQueryStrategy {
49
53
  /** Returns the built-in (non-deletable) views. At least one system query must be returned. */
@@ -82,14 +86,11 @@ export interface ISavedQueryDataProvider {
82
86
  deleteUserQueries: (queryIds: string[]) => Promise<IDeletedUserQueriesResult>;
83
87
  /** Fetches system and user queries from the strategy and sets the initial active query. */
84
88
  refresh: () => Promise<void>;
85
- /** Ensures all required native columns (subject, parentId, stackRank, path, stateCode) are present in the provided columns array. */
86
- includeRequiredColumns: (columns: IColumn[]) => void;
87
- /** Enforces column constraints: subject is never hidden; path column is always read-only. */
88
- harmonizeColumns: (columns: IColumn[]) => void;
89
89
  destroy: () => void;
90
90
  }
91
91
  interface ISavedQueryDataProviderParameters {
92
92
  nativeColumns: INativeColumns;
93
+ localizationService: ILocalizationService<ITaskGridLabels>;
93
94
  customColumnsDataProvider?: ICustomColumnsDataProvider;
94
95
  preferredQuery?: Partial<ISavedQuery> & {
95
96
  id: string;
@@ -102,6 +103,8 @@ export declare class SavedQueryDataProvider implements ISavedQueryDataProvider {
102
103
  private _userQueries;
103
104
  private _customColumnsDataProvider?;
104
105
  private _nativeColumns;
106
+ private _localizationService;
107
+ private _systemQueriesColumnsMap;
105
108
  private _preferredQuery?;
106
109
  queryEvents: EventEmitter<ISavedQueryDataProviderEvents>;
107
110
  constructor(strategy: ISavedQueryStrategy, parameters: ISavedQueryDataProviderParameters);
@@ -115,11 +118,13 @@ export declare class SavedQueryDataProvider implements ISavedQueryDataProvider {
115
118
  deleteUserQueries(queryIds: string[]): Promise<IDeletedUserQueriesResult>;
116
119
  destroy(): Promise<void>;
117
120
  refresh(): Promise<void>;
121
+ private _processQueries;
122
+ private _includeRequiredColumns;
123
+ private _harmonizeColumns;
124
+ private _includePathColumn;
118
125
  private _getMetadataForSavedQuery;
119
126
  private _addPropToMetadataQueryCol;
120
127
  private _isCustomColumnResolvable;
121
128
  private _parseSavedQueryMetadata;
122
- includeRequiredColumns(columns: IColumn[]): void;
123
- harmonizeColumns(columns: IColumn[]): void;
124
129
  }
125
130
  export {};
@@ -1,16 +1,19 @@
1
- import { EventEmitter } from '@talxis/client-libraries';
1
+ import { EventEmitter, DataTypes } from '@talxis/client-libraries';
2
2
  import { ErrorHelper } from '../../../../utils/error-handling/ErrorHelper.js';
3
3
 
4
- const REQUIRED_COLUMNS = ['subject', 'parentId', 'stackRank', 'path', 'stateCode'];
4
+ const PATH_COLUMN_NAME = 'path__virtual';
5
+ const REQUIRED_COLUMNS = ['subject', 'parentId', 'stackRank', 'stateCode'];
5
6
  class SavedQueryDataProvider {
6
7
  constructor(strategy, parameters) {
7
8
  this._systemQueries = [];
8
9
  this._userQueries = [];
10
+ this._systemQueriesColumnsMap = new Map();
9
11
  this.queryEvents = new EventEmitter();
10
12
  this._strategy = strategy;
11
13
  this._preferredQuery = parameters.preferredQuery;
12
14
  this._nativeColumns = parameters.nativeColumns;
13
15
  this._customColumnsDataProvider = parameters.customColumnsDataProvider;
16
+ this._localizationService = parameters.localizationService;
14
17
  }
15
18
  getSystemQueries() {
16
19
  return this._systemQueries;
@@ -32,10 +35,7 @@ class SavedQueryDataProvider {
32
35
  if (!query) {
33
36
  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.`);
34
37
  }
35
- return {
36
- ...query,
37
- ...this._parseSavedQueryMetadata(query)
38
- };
38
+ return query;
39
39
  }
40
40
  async updateUserQuery(provider) {
41
41
  this.queryEvents.dispatchEvent('onBeforeUserQueryUpdated', this.getCurrentQuery().id);
@@ -86,20 +86,79 @@ class SavedQueryDataProvider {
86
86
  async refresh() {
87
87
  const systemQueries = await this._strategy.onGetSystemQueries();
88
88
  const userQueries = await this._strategy.onGetUserQueries();
89
+ if (systemQueries.length === 0) {
90
+ throw new Error('At least one system query is required');
91
+ }
92
+ this._includePathColumn(systemQueries[0].columns);
89
93
  const allQueries = [...systemQueries, ...userQueries];
90
94
  this._systemQueries = systemQueries;
91
95
  this._userQueries = userQueries;
92
- if (this._systemQueries.length === 0) {
93
- throw new Error('At least one system query is required');
96
+ this._systemQueriesColumnsMap = new Map(systemQueries.flatMap(query => query.columns.map(col => [col.name, col])));
97
+ const preferredQueryInAllQueries = allQueries.find(q => q.id === this._preferredQuery?.id);
98
+ this._currentQuery = preferredQueryInAllQueries ?? userQueries[0] ?? systemQueries[0];
99
+ //preferred query might have some required columns missing
100
+ this._currentQuery = this._processQueries([{
101
+ ...this._currentQuery,
102
+ ...(preferredQueryInAllQueries ? this._preferredQuery : {}),
103
+ }])[0];
104
+ }
105
+ _processQueries(queries) {
106
+ return queries.map(query => {
107
+ this._includeRequiredColumns(query.columns);
108
+ this._harmonizeColumns(query.columns);
109
+ return {
110
+ ...query,
111
+ ...this._parseSavedQueryMetadata(query)
112
+ };
113
+ });
114
+ }
115
+ _includeRequiredColumns(columns) {
116
+ const allQueries = [...this.getSystemQueries(), ...this.getUserQueries()];
117
+ const allQueryColumns = [...new Map(allQueries.flatMap(query => query.columns.map(col => [col.name, col]))).values()];
118
+ for (const requiredColumnName of REQUIRED_COLUMNS) {
119
+ const mappedRequiredColumnName = this._nativeColumns[requiredColumnName];
120
+ if (!columns.find(col => col.name === mappedRequiredColumnName)) {
121
+ const columnFromQueries = allQueryColumns.find(col => col.name === mappedRequiredColumnName);
122
+ if (!columnFromQueries) {
123
+ throw new Error(`Required column ${mappedRequiredColumnName} is missing from both current query and all available queries`);
124
+ }
125
+ columns.push({
126
+ ...columnFromQueries,
127
+ isHidden: true
128
+ });
129
+ }
94
130
  }
95
- this._currentQuery = allQueries.find(q => q.id === this._preferredQuery?.id) ?? userQueries[0] ?? systemQueries[0];
96
- this._currentQuery = {
97
- ...this._currentQuery,
98
- //makes sure custom columns from the current query are properly merged with the columns from the custom columns data provider strategy
99
- ...this._parseSavedQueryMetadata(this._currentQuery)
100
- };
101
- this.includeRequiredColumns(this._currentQuery.columns);
102
- this.harmonizeColumns(this._currentQuery.columns);
131
+ this._includePathColumn(columns);
132
+ }
133
+ _harmonizeColumns(columns) {
134
+ for (const column of columns) {
135
+ switch (column.name) {
136
+ case this._nativeColumns.subject: {
137
+ column.isHidden = false;
138
+ break;
139
+ }
140
+ case this._nativeColumns.path: {
141
+ column.metadata = {
142
+ ...column.metadata,
143
+ IsValidForUpdate: false
144
+ };
145
+ break;
146
+ }
147
+ }
148
+ }
149
+ }
150
+ _includePathColumn(columns) {
151
+ if (!columns.find(col => col.name === PATH_COLUMN_NAME)) {
152
+ columns.push({
153
+ name: PATH_COLUMN_NAME,
154
+ dataType: DataTypes.Multiple,
155
+ displayName: this._localizationService.getLocalizedString('path'),
156
+ isVirtual: true,
157
+ visualSizeFactor: 300,
158
+ isHidden: true
159
+ });
160
+ }
161
+ return columns;
103
162
  }
104
163
  _getMetadataForSavedQuery(provider) {
105
164
  return {
@@ -108,6 +167,7 @@ class SavedQueryDataProvider {
108
167
  linking: provider.getLinking(),
109
168
  searchQuery: provider.getSearchQuery(),
110
169
  isFlatListEnabled: provider.isFlatListEnabled(),
170
+ quickFindColumns: provider.getQuickFindColumns().map(col => col.name),
111
171
  columns: [
112
172
  ...provider.getColumns().map((col) => {
113
173
  const newCol = {
@@ -136,11 +196,19 @@ class SavedQueryDataProvider {
136
196
  }
137
197
  _parseSavedQueryMetadata(metadata) {
138
198
  const parsed = metadata;
199
+ // Enrich partial column definitions with full definitions from system queries
200
+ let columns = parsed.columns.map(col => {
201
+ const systemCol = this._systemQueriesColumnsMap.get(col.name);
202
+ if (!systemCol && col.isVirtual) {
203
+ throw new Error(`Virtual column ${col.name} is missing from system queries. Make sure all virtual columns are included in the system queries returned by the strategy's onGetSystemQueries method.`);
204
+ }
205
+ return systemCol ? { ...systemCol, ...col, metadata: { ...systemCol.metadata, ...col.metadata } } : col;
206
+ });
139
207
  if (!this._customColumnsDataProvider) {
140
- return parsed;
208
+ return { ...parsed, columns };
141
209
  }
142
210
  const customColumnsMap = new Map(this._customColumnsDataProvider.getColumns().map(col => [col.name, col]));
143
- let columns = parsed.columns.filter(col => this._isCustomColumnResolvable(col.name, customColumnsMap));
211
+ columns = columns.filter(col => this._isCustomColumnResolvable(col.name, customColumnsMap));
144
212
  columns = columns.map(col => {
145
213
  const customCol = customColumnsMap.get(col.name);
146
214
  return customCol ? { ...customCol, ...col, metadata: { ...customCol.metadata, ...col.metadata } } : col;
@@ -155,38 +223,7 @@ class SavedQueryDataProvider {
155
223
  } : undefined
156
224
  };
157
225
  }
158
- includeRequiredColumns(columns) {
159
- const allQueries = [...this.getSystemQueries(), ...this.getUserQueries()];
160
- const allQueryColumns = [...new Map(allQueries.flatMap(query => query.columns.map(col => [col.name, col]))).values()];
161
- for (const requiredColumnName of REQUIRED_COLUMNS) {
162
- const mappedRequiredColumnName = this._nativeColumns[requiredColumnName];
163
- if (!columns.find(col => col.name === mappedRequiredColumnName)) {
164
- const columnFromQueries = allQueryColumns.find(col => col.name === mappedRequiredColumnName);
165
- if (!columnFromQueries) {
166
- throw new Error(`Required column ${mappedRequiredColumnName} is missing from both current query and all available queries`);
167
- }
168
- columns.push(columnFromQueries);
169
- }
170
- }
171
- }
172
- harmonizeColumns(columns) {
173
- for (const column of columns) {
174
- switch (column.name) {
175
- case this._nativeColumns.subject: {
176
- column.isHidden = false;
177
- break;
178
- }
179
- case this._nativeColumns.path: {
180
- column.metadata = {
181
- ...column.metadata,
182
- IsValidForUpdate: false
183
- };
184
- break;
185
- }
186
- }
187
- }
188
- }
189
226
  }
190
227
 
191
- export { SavedQueryDataProvider };
228
+ export { PATH_COLUMN_NAME, SavedQueryDataProvider };
192
229
  //# sourceMappingURL=SavedQueryDataProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedQueryDataProvider.js","sources":["../../../../../src/components/TaskGrid/providers/saved-query/SavedQueryDataProvider.ts"],"sourcesContent":["import { DataTypes, EventEmitter, IColumn, IEventEmitter, IFetchXmlDataProviderColumn } from \"@talxis/client-libraries\";\nimport { ITaskDataProvider } from \"../task\";\nimport { ICustomColumnsDataProvider } from \"../custom-columns/CustomColumnsDataProvider\";\nimport { INativeColumns } from \"../../interfaces\";\nimport { ErrorHelper, ILocalizationService } from \"../../../../utils\";\nimport { ITaskGridLabels } from \"../../labels\";\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 quickFindColumns?: string[];\n}\n\nexport const PATH_COLUMN_NAME = 'path__virtual';\nconst REQUIRED_COLUMNS = ['subject', 'parentId', 'stackRank', '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\n destroy: () => void;\n}\n\ninterface ISavedQueryDataProviderParameters {\n nativeColumns: INativeColumns;\n localizationService: ILocalizationService<ITaskGridLabels>;\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 _localizationService: ILocalizationService<ITaskGridLabels>;\n private _systemQueriesColumnsMap: Map<string, IColumn> = new Map();\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 this._localizationService = parameters.localizationService;\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 query;\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 if (systemQueries.length === 0) {\n throw new Error('At least one system query is required');\n }\n this._includePathColumn(systemQueries[0].columns);\n const allQueries = [...systemQueries, ...userQueries];\n this._systemQueries = systemQueries\n this._userQueries = userQueries;\n this._systemQueriesColumnsMap = new Map(systemQueries.flatMap(query => query.columns.map(col => [col.name, col])));\n\n const preferredQueryInAllQueries = allQueries.find(q => q.id === this._preferredQuery?.id);\n this._currentQuery = preferredQueryInAllQueries ?? userQueries[0] ?? systemQueries[0];\n //preferred query might have some required columns missing\n this._currentQuery = this._processQueries([{\n ...this._currentQuery,\n ...(preferredQueryInAllQueries ? this._preferredQuery : {}),\n }])[0];\n }\n\n private _processQueries(queries: ISavedQuery[]) {\n return queries.map(query => {\n this._includeRequiredColumns(query.columns);\n this._harmonizeColumns(query.columns);\n return {\n ...query,\n ...this._parseSavedQueryMetadata(query)\n }\n })\n }\n\n private _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({\n ...columnFromQueries,\n isHidden: true\n });\n }\n }\n this._includePathColumn(columns);\n }\n\n private _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\n private _includePathColumn(columns: IColumn[]) {\n if (!columns.find(col => col.name === PATH_COLUMN_NAME)) {\n columns.push({\n name: PATH_COLUMN_NAME,\n dataType: DataTypes.Multiple,\n displayName: this._localizationService.getLocalizedString('path'),\n isVirtual: true,\n visualSizeFactor: 300,\n isHidden: true\n })\n }\n return 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 quickFindColumns: provider.getQuickFindColumns().map(col => col.name),\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\n private _parseSavedQueryMetadata(metadata: ISavedQueryMetadata): ISavedQueryMetadata {\n const parsed = metadata;\n\n // Enrich partial column definitions with full definitions from system queries\n let columns = parsed.columns.map(col => {\n const systemCol = this._systemQueriesColumnsMap.get(col.name);\n if (!systemCol && col.isVirtual) {\n throw new Error(`Virtual column ${col.name} is missing from system queries. Make sure all virtual columns are included in the system queries returned by the strategy's onGetSystemQueries method.`);\n }\n return systemCol ? { ...systemCol, ...col, metadata: { ...systemCol.metadata, ...col.metadata } } : col;\n });\n\n if (!this._customColumnsDataProvider) {\n return { ...parsed, columns };\n }\n\n const customColumnsMap = new Map(this._customColumnsDataProvider.getColumns().map(col => [col.name, col]));\n columns = 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\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}"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './SavedQueryDataProvider';
@@ -0,0 +1,2 @@
1
+ export { PATH_COLUMN_NAME, SavedQueryDataProvider } from './SavedQueryDataProvider.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,8 +1,10 @@
1
1
  /// <reference types="@types/powerapps-component-framework" />
2
2
  import { EventEmitter, GetDataEvent, IAvailableColumnOptions, IAvailableRelatedColumn, IColumn, ICommand, IDataProvider, IDataProviderEventListeners, IEventBubbleOptions, IEventEmitter, IRawRecord, IRecord, IRecordSaveOperationResult, IRetrievedData, IRetrieveRecordCommandOptions, MemoryDataProvider } from "@talxis/client-libraries";
3
3
  import { IRecordTree } from "./record-tree/RecordTree";
4
- import { ILocalizationService, ITaskGridLabels } from "../../labels";
4
+ import { ILocalizationService } from "../../../../utils";
5
+ import { ITaskGridLabels } from "../../labels";
5
6
  import { INativeColumns } from "../../interfaces";
7
+ import { ISavedQueryDataProvider } from "../saved-query";
6
8
  export interface IFailedRecord {
7
9
  id: string;
8
10
  error: any;
@@ -27,13 +29,13 @@ export interface ITaskDataProviderParameters {
27
29
  nativeColumns: INativeColumns;
28
30
  localizationService: ILocalizationService<ITaskGridLabels>;
29
31
  strategy: ITaskDataProviderStrategy;
32
+ savedQueryDataProvider: ISavedQueryDataProvider;
30
33
  onIsFlatListEnabled: () => boolean;
31
34
  }
32
35
  /** Strategy interface that handles all data access and mutation operations for tasks. */
33
36
  export interface ITaskDataProviderStrategy {
34
37
  /**
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.
38
+ * Called when the provider needs to retrieve latest data for specific tasks to synchronize the grid with the server.
37
39
  */
38
40
  onGetRawRecords: (ids: string[]) => Promise<IRawRecord[]>;
39
41
  /** Called once on first load. Must return the initial columns, raw task records, and entity metadata. */
@@ -75,13 +77,7 @@ export interface ITaskDataProviderStrategy {
75
77
  /** Opens the record detail view. Called when a user clicks a non-subject cell. */
76
78
  onOpenDatasetItem(entityReference: ComponentFramework.EntityReference, context?: {
77
79
  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;
80
+ }): Promise<void>;
85
81
  /** When provided, the task tree is scoped to the subtree of the returned task id. */
86
82
  onGetRootTaskId?: () => string | undefined;
87
83
  }
@@ -98,6 +94,8 @@ export interface ITaskDataProviderEventListener {
98
94
  onTaskDataUpdated: (data: IRawRecord[]) => void;
99
95
  onAfterTasksEdited: (result: IEditTasksResult | null) => void;
100
96
  onRecordTreeUpdated: (updatedParentIds: (string | undefined)[]) => void;
97
+ onBeforeDatasetItemOpened: (entityReference: ComponentFramework.EntityReference) => void;
98
+ onAfterDatasetItemOpened: (entityReference: ComponentFramework.EntityReference) => void;
101
99
  onError: (error: any, message: string) => void;
102
100
  }
103
101
  /** Extended data provider interface for task records. Adds task-specific operations on top of `IDataProvider`. */
@@ -137,11 +135,6 @@ export interface ITaskDataProvider extends IDataProvider {
137
135
  /** Returns `true` when the grid is displaying a flat list instead of a tree hierarchy. */
138
136
  isFlatListEnabled(): boolean;
139
137
  /** 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
138
  /** Returns the root task id when the tree is scoped to a subtree, or `null` for a full tree. */
146
139
  getRootTaskId: () => string | null;
147
140
  /** Moves a task to a position relative to another task. Returns the updated raw records, or `null` on cancellation. */
@@ -153,19 +146,20 @@ export declare class TaskDataProvider extends MemoryDataProvider implements ITas
153
146
  private _hasDataBeenLoaded;
154
147
  private _taskTree;
155
148
  private _strategy;
149
+ private _savedQueryDataProvider;
156
150
  private _onFlatListEnabled;
157
151
  readonly taskEvents: EventEmitter<ITaskDataProviderEventListener>;
158
152
  constructor(parameters: ITaskDataProviderParameters);
159
153
  getStrategy<T extends ITaskDataProviderStrategy>(): T;
160
154
  getRootTaskId(): string | null;
161
- isTaskAddingEnabled(): boolean;
162
- isTaskEditingEnabled(): boolean;
163
- isTaskDeletingEnabled(): boolean;
164
155
  getRecordTree(): IRecordTree;
165
156
  isFlatListEnabled(): boolean;
166
157
  getNativeColumns(): INativeColumns;
167
158
  fetchRawRecords(ids: string[]): Promise<IRawRecord[]>;
168
- onGetAvailableColumns(): Promise<IColumn[]>;
159
+ onGetAvailableColumns(options?: {
160
+ entityName?: string;
161
+ }): Promise<IColumn[]>;
162
+ private _getColumnsWithUnusedVirtualColumns;
169
163
  onGetAvailableRelatedColumns(): Promise<IAvailableRelatedColumn[]>;
170
164
  retrieveRecordCommand(options?: IRetrieveRecordCommandOptions): Promise<ICommand[]>;
171
165
  onRecordSave(record: IRecord): Promise<IRecordSaveOperationResult>;
@@ -175,15 +169,14 @@ export declare class TaskDataProvider extends MemoryDataProvider implements ITas
175
169
  createTask(parentId?: string): Promise<IRawRecord | null>;
176
170
  createTasksFromTemplate(templateId: string, parentId?: string): Promise<IRawRecord[] | null>;
177
171
  createTemplateFromTask(taskId: string): Promise<IRawRecord | null>;
178
- openDatasetItem(entityReference: ComponentFramework.EntityReference, context?: {
172
+ onOpenDatasetItem(entityReference: ComponentFramework.EntityReference, context?: {
179
173
  columnName?: string;
180
- }): void;
174
+ }): Promise<void>;
181
175
  getSorting(): ComponentFramework.PropertyHelper.DataSetApi.SortStatus[];
182
176
  getSortedRecordIds(): string[];
183
177
  deleteTasks(taskIds: string[]): Promise<IDeleteTasksResult | null>;
184
178
  editTasks(taskIds: string[]): Promise<IEditTasksResult | null>;
185
179
  isRecordActive(recordId: string): boolean;
186
- onOpenDatasetItem(entityReference: ComponentFramework.EntityReference): void;
187
180
  destroy(): Promise<void>;
188
181
  getQuickFindColumns(): IColumn[];
189
182
  createGroupedRecordDataProvider(group: IRecord): IDataProvider;