@talxis/base-controls 1.2605.1 → 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 (249) 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/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
  214. package/dist/utils/index.d.ts +1 -0
  215. package/dist/utils/index.js +1 -0
  216. package/dist/utils/index.js.map +1 -1
  217. package/dist/utils/localization/LocalizationService.d.ts +15 -0
  218. package/dist/utils/localization/LocalizationService.js +17 -0
  219. package/dist/utils/localization/LocalizationService.js.map +1 -0
  220. package/dist/utils/localization/index.d.ts +1 -0
  221. package/dist/utils/localization/index.js +2 -0
  222. package/dist/utils/localization/index.js.map +1 -0
  223. package/package.json +5 -4
  224. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/CustomColumnsDataProvider.js.map +0 -1
  225. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.d.ts +0 -33
  226. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js.map +0 -1
  227. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.d.ts +0 -2
  228. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.js +0 -3
  229. package/dist/components/TaskGrid/data-providers/index.d.ts +0 -3
  230. package/dist/components/TaskGrid/data-providers/index.js +0 -6
  231. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/SavedQueryDataProvider.js.map +0 -1
  232. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.d.ts +0 -21
  233. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.js.map +0 -1
  234. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.d.ts +0 -2
  235. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.js +0 -3
  236. package/dist/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.js.map +0 -1
  237. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.js.map +0 -1
  238. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/patchDataBuilderPrepare.js.map +0 -1
  239. /package/dist/components/TaskGrid/{data-providers/task-data-provider → components/grid/cell-renderers/lookup-many}/index.js.map +0 -0
  240. /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
  241. /package/dist/components/TaskGrid/{data-providers → extensions/dataverse}/index.js.map +0 -0
  242. /package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider → providers/custom-columns}/CustomColumnsDataProvider.js +0 -0
  243. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/index.d.ts +0 -0
  244. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/index.js +0 -0
  245. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/RecordTree.d.ts +0 -0
  246. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/index.d.ts +0 -0
  247. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/index.js +0 -0
  248. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/patchDataBuilderPrepare.d.ts +0 -0
  249. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/patchDataBuilderPrepare.js +0 -0
@@ -0,0 +1,15 @@
1
+ export interface ILocalizationService<T> {
2
+ getLocalizedString: (key: keyof T, variables?: {
3
+ [key: string]: string;
4
+ }) => string;
5
+ }
6
+ export declare class LocalizationService<T extends {
7
+ [K in keyof T]: string;
8
+ }> implements ILocalizationService<T> {
9
+ private _labels;
10
+ private _liquidEngine;
11
+ constructor(labels: T);
12
+ getLocalizedString(key: keyof T, variables?: {
13
+ [key: string]: string;
14
+ }): string;
15
+ }
@@ -0,0 +1,17 @@
1
+ import { Liquid } from 'liquidjs';
2
+
3
+ class LocalizationService {
4
+ constructor(labels) {
5
+ this._labels = labels;
6
+ this._liquidEngine = new Liquid();
7
+ }
8
+ getLocalizedString(key, variables) {
9
+ if (variables) {
10
+ return this._liquidEngine.parseAndRenderSync(this._labels[key], variables);
11
+ }
12
+ return this._labels[key];
13
+ }
14
+ }
15
+
16
+ export { LocalizationService };
17
+ //# sourceMappingURL=LocalizationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalizationService.js","sources":["../../../src/utils/localization/LocalizationService.ts"],"sourcesContent":["import { Liquid } from \"liquidjs\";\n\nexport interface ILocalizationService<T> {\n getLocalizedString: (key: keyof T, variables?: {[key: string]: string}) => string;\n}\n\nexport class LocalizationService<T extends { [K in keyof T]: string }> implements ILocalizationService<T> {\n private _labels: T;\n private _liquidEngine: Liquid;\n\n constructor(labels: T) {\n this._labels = labels;\n this._liquidEngine = new Liquid();\n }\n\n public getLocalizedString(key: keyof T, variables?: {[key: string]: string}): string {\n if(variables) {\n return this._liquidEngine.parseAndRenderSync(this._labels[key] as unknown as string, variables);\n }\n return this._labels[key];\n }\n}"],"names":[],"mappings":";;MAMa,mBAAmB,CAAA;AAI5B,IAAA,WAAA,CAAY,MAAS,EAAA;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,EAAE,CAAC;KACrC;IAEM,kBAAkB,CAAC,GAAY,EAAE,SAAmC,EAAA;AACvE,QAAA,IAAG,SAAS,EAAE;AACV,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,EAAE,SAAS,CAAC,CAAC;AACnG,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC5B;AACJ;;;;"}
@@ -0,0 +1 @@
1
+ export * from './LocalizationService';
@@ -0,0 +1,2 @@
1
+ export { LocalizationService } from './LocalizationService.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talxis/base-controls",
3
- "version": "1.2605.1",
3
+ "version": "1.2605.2-alpha",
4
4
  "description": "Set of React components that natively work with Power Apps Component Framework APIs.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,12 +33,12 @@
33
33
  "@types/powerapps-component-framework": "^1.3.14",
34
34
  "@types/react": "17.0.90",
35
35
  "@types/react-dom": "^17.0.21",
36
+ "@types/react-window": "1.8.8",
36
37
  "@types/validator": "^13.11.9",
37
38
  "@types/xrm": "^9.0.81",
38
39
  "babel-loader": "^8.2.3",
39
40
  "esbuild": "^0.13.9",
40
41
  "glob": "^11.0.0",
41
- "@types/react-window": "1.8.8",
42
42
  "postcss": "^8.3.11",
43
43
  "rollup": "^2.58.1",
44
44
  "rollup-plugin-delete": "^2.0.0",
@@ -84,7 +84,7 @@
84
84
  "@dnd-kit/sortable": "^10.0.0",
85
85
  "@dnd-kit/utilities": "^3.2.2",
86
86
  "@fluentui/react-migration-v8-v9": "^9.6.20",
87
- "@talxis/client-libraries": "1.2605.1",
87
+ "@talxis/client-libraries": "1.2605.2-alpha",
88
88
  "@talxis/client-metadata": "^0.0.3",
89
89
  "color": "^4.2.3",
90
90
  "dayjs": "^1.11.10",
@@ -93,6 +93,7 @@
93
93
  "fast-deep-equal": "^3.1.3",
94
94
  "hotkeys-js": "^3.13.15",
95
95
  "humanize-duration": "^3.32.0",
96
+ "lexorank": "^1.0.5",
96
97
  "liquidjs": "^9.43.0",
97
98
  "merge-anything": "^5.1.7",
98
99
  "numeral": "^2.0.6",
@@ -103,7 +104,7 @@
103
104
  },
104
105
  "peerDependencies": {
105
106
  "@fluentui/react": "<=8.121.5",
106
- "@talxis/react-components": "1.2505.2",
107
+ "@talxis/react-components": "1.2605.1-alpha",
107
108
  "react": "^16.8.6 || ^17.0.2",
108
109
  "react-dom": "^16.8.6 || ^17.0.2"
109
110
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomColumnsDataProvider.js","sources":["../../../../../src/components/TaskGrid/data-providers/custom-columns-data-provider/CustomColumnsDataProvider.ts"],"sourcesContent":["import { DatasetConstants, IColumn, IEventEmitter, EventEmitter } 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}\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":";;;MA2Ca,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;;;;"}
@@ -1,33 +0,0 @@
1
- import { IColumn, IRawRecord, IRecord, IRecordSaveOperationResult } from "@talxis/client-libraries";
2
- import { ICustomColumnsStrategy } from "./CustomColumnsDataProvider";
3
- export declare const ATTRIBUTE_DEFINITION_ENTITY_NAME = "talxis_attributedefinition";
4
- export declare const ATTRIBUTE_VALUE_ENTITY_NAME = "talxis_attributevalue";
5
- export declare const CUSTOM_COLUMNS_REFERENED_ENTITY_NAVIGATION_NAME = "talxis_task_talxis_attributevalue_regardingobjectid";
6
- interface ITalxisCustomColumnsStrategyParameters {
7
- entityName: string;
8
- recordId?: string;
9
- }
10
- export interface ITalxisCustomColumnsStrategy extends ICustomColumnsStrategy {
11
- saveValueToCustomColumn: (record: IRecord) => Promise<IRecordSaveOperationResult>;
12
- getValueFromRawRecord: (recordId: string, rawRecord: IRawRecord, column: IColumn) => any;
13
- }
14
- export declare class TalxisCustomColumnsStrategy implements ITalxisCustomColumnsStrategy {
15
- private _entityName;
16
- private _recordId?;
17
- private _attributes;
18
- private _attributeIdsMap;
19
- constructor(parameters: ITalxisCustomColumnsStrategyParameters);
20
- onRefresh(): Promise<IColumn[]>;
21
- onGetColumns(): IColumn[];
22
- onDeleteColumn(columnName: string): Promise<string | null>;
23
- onCreateColumn(): Promise<string | null>;
24
- onUpdateColumn(columnName: string): Promise<string | null>;
25
- saveValueToCustomColumn(record: IRecord): Promise<IRecordSaveOperationResult>;
26
- getValueFromRawRecord(recordId: string, rawRecord: IRawRecord, column: IColumn): any;
27
- private _getAttributeFromRawRecord;
28
- private _getFieldNameForColumn;
29
- private _getValueForPayload;
30
- private _getSerializedValue;
31
- private _getMetadataForDataType;
32
- }
33
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"TalxisCustomColumnsDataProviderStrategy.js","sources":["../../../../../src/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.ts"],"sourcesContent":["import { Attribute, DatasetConstants, DataType, DataTypes, FieldValue, IColumn, IEventEmitter, IRawRecord, IRecord, IRecordSaveOperationResult, Sanitizer } from \"@talxis/client-libraries\";\nimport { DynamicEntityDefinition } from \"@talxis/client-metadata\";\nimport { Attribute as IAttribute } from '@talxis/client-metadata/dist/interfaces/entity/IEntityDefinition';\nimport { ICustomColumnsStrategy } from \"./CustomColumnsDataProvider\";\n\nexport const ATTRIBUTE_DEFINITION_ENTITY_NAME = 'talxis_attributedefinition';\nexport const ATTRIBUTE_VALUE_ENTITY_NAME = 'talxis_attributevalue';\nexport const CUSTOM_COLUMNS_REFERENED_ENTITY_NAVIGATION_NAME = 'talxis_task_talxis_attributevalue_regardingobjectid';\n\ninterface ITalxisCustomColumnsStrategyParameters {\n //entity name to fetch attributes for\n entityName: string;\n //record id to fetch attributes for\n recordId?: string;\n}\n\nexport interface ITalxisCustomColumnsStrategy extends ICustomColumnsStrategy {\n saveValueToCustomColumn: (record: IRecord) => Promise<IRecordSaveOperationResult>;\n getValueFromRawRecord: (recordId: string, rawRecord: IRawRecord, column: IColumn) => any;\n}\n\nexport class TalxisCustomColumnsStrategy implements ITalxisCustomColumnsStrategy {\n private _entityName: string;\n private _recordId?: string;\n private _attributes: IAttribute[] = [];\n private _attributeIdsMap: Map<string, string> = new Map();\n\n constructor(parameters: ITalxisCustomColumnsStrategyParameters) {\n this._entityName = parameters.entityName;\n this._recordId = parameters.recordId;\n }\n\n public async onRefresh(): Promise<IColumn[]> {\n const entityDefinition = await DynamicEntityDefinition.fetchForRecord(this._entityName, this._recordId);\n this._attributes = entityDefinition.Attributes;\n return this.onGetColumns();\n }\n\n public onGetColumns(): IColumn[] {\n return this._attributes.map(attr => {\n const dataType = Attribute.GetDataTypeFromMetadata({ ...attr as any, attributeDescriptor: attr });\n return {\n name: `${attr.LogicalName}${DatasetConstants.CUSTOM_COLUMN_NAME_SUFFIX}`,\n isVirtual: true,\n displayName: attr.DisplayName,\n dataType: dataType,\n visualSizeFactor: 200,\n metadata: this._getMetadataForDataType(dataType, attr) as any\n }\n })\n }\n\n public async onDeleteColumn(columnName: string): Promise<string | null> {\n const id = columnName.split(`${DatasetConstants.CUSTOM_COLUMN_NAME_SUFFIX}`)[0];\n await window.Xrm.WebApi.deleteRecord(ATTRIBUTE_DEFINITION_ENTITY_NAME, id);\n await this.onRefresh();\n return columnName\n }\n\n public async onCreateColumn(): Promise<string | null> {\n const { savedEntityReference } = await window.Xrm.Navigation.navigateTo({\n entityName: ATTRIBUTE_DEFINITION_ENTITY_NAME,\n pageType: 'entityrecord',\n data: {\n 'talxis_entityname': this._entityName,\n 'talxis_recordid': this._recordId,\n }\n }, {\n target: 2,\n });\n if (savedEntityReference && savedEntityReference.length > 0) {\n const entityReference = savedEntityReference[0];\n const id = Sanitizer.Guid.removeGuidBrackets(entityReference.id);\n await this.onRefresh();\n return `${id}${DatasetConstants.CUSTOM_COLUMN_NAME_SUFFIX}`;\n }\n else return null\n }\n\n public async onUpdateColumn(columnName: string): Promise<string | null> {\n const attributeDefinitionId = columnName.split(`${DatasetConstants.CUSTOM_COLUMN_NAME_SUFFIX}`)[0];\n await window.Xrm.Navigation.navigateTo({\n entityName: ATTRIBUTE_DEFINITION_ENTITY_NAME,\n pageType: 'entityrecord',\n entityId: attributeDefinitionId\n }, {\n target: 2,\n });\n await this.onRefresh();\n return columnName;\n }\n\n public async saveValueToCustomColumn(record: IRecord): Promise<IRecordSaveOperationResult> {\n const dirtyField = record.getFields().find(field => field.isDirty());\n const column = dirtyField?.getColumn();\n\n if (!column?.name.endsWith(DatasetConstants.CUSTOM_COLUMN_NAME_SUFFIX)) {\n return {\n success: true,\n fields: [],\n recordId: record.getRecordId(),\n }\n }\n const attributeDefinitionId = column.name.split(`${DatasetConstants.CUSTOM_COLUMN_NAME_SUFFIX}`)[0];\n const regardingObjectId = record.getRecordId();\n const attributeValueId = this._attributeIdsMap.get(`${regardingObjectId}_${attributeDefinitionId}`);\n const payload = {\n [this._getFieldNameForColumn(column)]: this._getValueForPayload(record.getValue(column.name), column),\n 'talxis_serialized_value': this._getSerializedValue(record.getValue(column.name)),\n }\n\n try {\n\n if (!attributeValueId) {\n const result = await window.Xrm.WebApi.createRecord(ATTRIBUTE_VALUE_ENTITY_NAME, {\n ...payload,\n 'talxis_attributedefinitionid@odata.bind': `/talxis_attributedefinitions(${attributeDefinitionId})`,\n 'talxis_regardingobjectid_task@odata.bind': `/tasks(${regardingObjectId})`,\n });\n this._attributeIdsMap.set(`${regardingObjectId}_${attributeDefinitionId}`, result.id);\n return {\n success: true,\n recordId: result.id,\n fields: [column.name]\n }\n }\n\n else {\n await window.Xrm.WebApi.updateRecord(ATTRIBUTE_VALUE_ENTITY_NAME, attributeValueId, {\n ...payload\n });\n return {\n success: true,\n recordId: attributeValueId,\n fields: [column.name]\n }\n }\n }\n catch (err: any) {\n return {\n success: false,\n recordId: attributeValueId ?? '',\n fields: [column.name],\n errors: [{\n message: err.message,\n fieldName: column.name\n }]\n }\n }\n }\n\n public getValueFromRawRecord(recordId: string, rawRecord: IRawRecord, column: IColumn) {\n const attribute = this._getAttributeFromRawRecord(recordId, rawRecord, column);\n if (attribute == null) {\n return null;\n }\n const fieldName = this._getFieldNameForColumn(column);\n\n if (column.dataType === DataTypes.OptionSet) {\n const metadata = column.metadata as any;\n const optionSet = metadata.OptionSet as any;\n const option = optionSet.find((option: any) => option.OptionId == attribute['_talxis_choice_value_value']);\n return option ? option.Value : null;\n }\n return new FieldValue(attribute[fieldName], column.dataType).getValue();\n }\n\n private _getAttributeFromRawRecord(recordId: string, rawRecord: IRawRecord, column: IColumn) {\n const attributes: any[] = rawRecord[CUSTOM_COLUMNS_REFERENED_ENTITY_NAVIGATION_NAME] ?? [];\n if (attributes.length === 0) {\n return null;\n }\n const attributeDefinitionId = column.name.split(`${DatasetConstants.CUSTOM_COLUMN_NAME_SUFFIX}`)[0];\n const attribute = attributes.find(attr => attr['_talxis_attributedefinitionid_value'] === attributeDefinitionId);\n if (attribute) {\n this._attributeIdsMap.set(`${recordId}_${attributeDefinitionId}`, attribute['talxis_attributevalueid']);\n }\n return attribute;\n }\n\n private _getFieldNameForColumn(column: IColumn): string {\n switch (column.dataType) {\n case DataTypes.WholeNone:\n case DataTypes.WholeDuration:\n case DataTypes.WholeLanguage:\n case DataTypes.WholeTimeZone:\n return 'talxis_int_value';\n case DataTypes.Decimal:\n return 'talxis_decimal_value';\n case DataTypes.OptionSet:\n return 'talxis_choice_value@odata.bind';\n case DataTypes.TwoOptions:\n return 'talxis_bit_value';\n case DataTypes.DateAndTimeDateOnly:\n return 'talxis_date_value';\n case DataTypes.DateAndTimeDateAndTime: {\n return column.metadata?.Behavior === 3 ? 'talxis_datetime_tzi_value' : 'talxis_datetime_userlocal_value';\n }\n default:\n return 'talxis_text_value';\n }\n }\n\n private _getValueForPayload(value: any, column: IColumn): any {\n switch (column.dataType) {\n case 'TwoOptions': {\n return value == '1' ? true : false;\n }\n case 'OptionSet': {\n const attribute: IAttribute = column.metadata as any;\n const optionSet = attribute.OptionSet as any;\n const optionId = optionSet.find((option: any) => option.Value == value)?.OptionId;\n if (optionId) {\n return `/talxis_attributeoptions(${optionId})`;\n }\n return null;\n }\n case 'DateAndTime.DateAndTime':\n case 'DateAndTime.DateOnly': {\n return value;\n }\n default: {\n return value;\n }\n }\n }\n\n //this is wrong, but it has been developed as part of dynamic attributes like this\n private _getSerializedValue(value: any) {\n return JSON.stringify({\n raw: value,\n error: false,\n errorMessage: ''\n })\n }\n\n private _getMetadataForDataType(dataType: DataType, attr: IAttribute) {\n switch (dataType) {\n case DataTypes.OptionSet:\n case DataTypes.TwoOptions: {\n return {\n ...attr,\n OptionSet: attr.OptionSet?.Options.map(option => {\n return {\n Label: option.Label,\n Value: option.Value,\n Color: option.Color,\n OptionId: option.talxis_OptionId\n }\n })\n }\n }\n default: {\n return attr;\n }\n }\n }\n}"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './CustomColumnsDataProvider';
2
- export * from './TalxisCustomColumnsDataProviderStrategy';
@@ -1,3 +0,0 @@
1
- export { CustomColumnsDataProvider } from './CustomColumnsDataProvider.js';
2
- export { ATTRIBUTE_DEFINITION_ENTITY_NAME, ATTRIBUTE_VALUE_ENTITY_NAME, CUSTOM_COLUMNS_REFERENED_ENTITY_NAVIGATION_NAME, TalxisCustomColumnsStrategy } from './TalxisCustomColumnsDataProviderStrategy.js';
3
- //# sourceMappingURL=index.js.map
@@ -1,3 +0,0 @@
1
- export * from './task-data-provider';
2
- export * from './saved-query-data-provider';
3
- export * from './custom-columns-data-provider';
@@ -1,6 +0,0 @@
1
- export { TaskDataProvider } from './task-data-provider/TaskDataProvider.js';
2
- export { SavedQueryDataProvider } from './saved-query-data-provider/SavedQueryDataProvider.js';
3
- export { TalxisSavedQueryStrategy } from './saved-query-data-provider/TalxisSavedQueryDataProvider.js';
4
- export { CustomColumnsDataProvider } from './custom-columns-data-provider/CustomColumnsDataProvider.js';
5
- export { ATTRIBUTE_DEFINITION_ENTITY_NAME, ATTRIBUTE_VALUE_ENTITY_NAME, CUSTOM_COLUMNS_REFERENED_ENTITY_NAVIGATION_NAME, TalxisCustomColumnsStrategy } from './custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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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"}
@@ -1,21 +0,0 @@
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 {};
@@ -1 +0,0 @@
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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"}
@@ -1,2 +0,0 @@
1
- export * from './SavedQueryDataProvider';
2
- export * from './TalxisSavedQueryDataProvider';
@@ -1,3 +0,0 @@
1
- export { SavedQueryDataProvider } from './SavedQueryDataProvider.js';
2
- export { TalxisSavedQueryStrategy } from './TalxisSavedQueryDataProvider.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TaskDataProvider.js","sources":["../../../../../src/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.ts"],"sourcesContent":["import { EventEmitter, GetDataEvent, IAvailableColumnOptions, IAvailableRelatedColumn, IColumn, ICommand, IDataProvider, IDataProviderEventListeners, IEventBubbleOptions, IEventEmitter, IRawRecord, IRecord, IRecordSaveOperationResult, IRetrievedData, IRetrieveRecordCommandOptions, MemoryDataProvider, Operators, Type } from \"@talxis/client-libraries\";\nimport { IRecordTree, RecordTree } from \"./record-tree/RecordTree\";\nimport { ErrorHelper } from \"../../../../utils/error-handling\";\nimport { ILocalizationService, ITaskGridLabels } from \"../../labels\";\nimport { INativeColumns } from \"../../interfaces\";\n\nexport interface IFailedRecord {\n id: string;\n error: any;\n}\n\nexport type IDeleteTasksResult =\n | { success: true; deletedTaskIds: string[] }\n | { success: false; deletedTaskIds: string[]; errors: IFailedRecord[] };\n\nexport type IEditTasksResult =\n | { success: true; updatedRecords: IRawRecord[] }\n | { success: false; updatedRecords: IRawRecord[]; errors: IFailedRecord[] };\n\n\nexport interface ITaskDataProviderParameters {\n nativeColumns: INativeColumns;\n localizationService: ILocalizationService<ITaskGridLabels>;\n strategy: ITaskDataProviderStrategy;\n onIsFlatListEnabled: () => boolean;\n}\n\n/** Strategy interface that handles all data access and mutation operations for tasks. */\nexport interface ITaskDataProviderStrategy {\n /**\n * Called once on first load. Must return the initial columns, raw task records, and provider metadata.\n * An empty `ids` array instructs the strategy to fetch all records.\n */\n onGetRawRecords: (ids: string[]) => Promise<IRawRecord[]>;\n /** Called once on first load. Must return the initial columns, raw task records, and entity metadata. */\n onInitialize: (provider: ITaskDataProvider) => Promise<{ columns: IColumn[]; rawData: IRawRecord[]; metadata: any }>\n /** Returns all columns available for display in the grid (both native and custom). */\n onGetAvailableColumns: (options?: IAvailableColumnOptions) => Promise<IColumn[]>;\n /** Returns linked-entity columns that can be used for filtering and sorting. */\n onGetAvailableRelatedColumns: () => Promise<IAvailableRelatedColumn[]>;\n /** Returns the attribute names that are searched when the user types in the quick-find input. */\n onGetQuickFindColumns: () => string[];\n /** @returns The created task raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onCreateTask(parentTaskId?: string): Promise<IRawRecord | null>;\n /**\n * @returns Result indicating which tasks were deleted and which failed.\n * `success: true` means all tasks were deleted. `success: false` means some or all failed.\n * Throws on unexpected failure.\n */\n onDeleteTasks(taskIds: string[]): Promise<IDeleteTasksResult | null>;\n /** @returns The created template raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onCreateTemplateFromTask(taskId: string): Promise<IRawRecord | null>;\n /** @returns The created task raw records, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onCreateTasksFromTemplate(templateId: string, parentTaskId?: string): Promise<IRawRecord[] | null>;\n /**\n * @returns Result indicating which tasks were updated and which failed, or `null` if the operation was cancelled by the user.\n * `success: true` means all tasks were updated. `success: false` means some or all failed.\n * Throws on unexpected failure.\n */\n onEditTasks(taskIds: string[]): Promise<IEditTasksResult | null>;\n /** Moves a task to a new position relative to another task. Returns the updated raw records, or `null` on cancellation. */\n onMoveTask(movingTaskId: string, movingToTaskId: string, position: 'above' | 'below' | 'child'): Promise<IRawRecord[] | null>;\n /** Persists inline cell edits for the given record. */\n onRecordSave(record: IRecord): Promise<IRecordSaveOperationResult>;\n /** Returns whether the given task record is currently active (non-completed). */\n onIsRecordActive(recordId: string): boolean;\n /** Opens the record detail view. Called when a user clicks a non-subject cell. */\n onOpenDatasetItem(entityReference: ComponentFramework.EntityReference, context?: { columnName?: string }): void;\n /** Return `false` to disable task creation (hide the *New* button). Defaults to `true`. */\n onIsTaskAddingEnabled?(): boolean;\n /** Return `false` to disable inline cell editing. Defaults to `true`. */\n onIsTaskEditingEnabled?(): boolean;\n /** Return `false` to disable task deletion (hide the *Delete* button). Defaults to `true`. */\n onIsTaskDeletingEnabled?(): boolean;\n /** When provided, the task tree is scoped to the subtree of the returned task id. */\n onGetRootTaskId?: () => string | undefined\n}\n\nexport interface ITaskDataProviderEventListener {\n onBeforeTemplateCreated: (taskId: string) => void;\n onAfterTemplateCreated: (record: IRawRecord | null) => void;\n onBeforeTasksDeleted: (taskIds: string[]) => void;\n onAfterTasksDeleted: (result: IDeleteTasksResult | null) => void;\n onBeforeTasksCreated: (parentId?: string) => void;\n onAfterTasksCreated: (records: IRawRecord[] | null, parentId?: string) => void;\n onBeforeTaskMoved: () => void;\n onAfterTaskMoved: (movingFromTaskId: string, movingToTaskId: string, position: 'above' | 'below' | 'child') => void;\n onBeforeTasksEdited: (taskIds: string[]) => void;\n onTaskDataUpdated: (data: IRawRecord[]) => void;\n onAfterTasksEdited: (result: IEditTasksResult | null) => void;\n onRecordTreeUpdated: (updatedParentIds: (string | undefined)[]) => void;\n onError: (error: any, message: string) => void;\n}\n\n/** Extended data provider interface for task records. Adds task-specific operations on top of `IDataProvider`. */\nexport interface ITaskDataProvider extends IDataProvider {\n /** EventEmitter for task lifecycle events (create, delete, edit, move, template, error). */\n taskEvents: IEventEmitter<ITaskDataProviderEventListener>;\n /** Returns the native column name mapping. */\n getNativeColumns(): INativeColumns;\n /** Returns all records regardless of current tree filtering or paging. */\n getAllRecords(): IRecord[];\n /** Returns the underlying strategy cast to the given type. */\n getStrategy<T extends ITaskDataProviderStrategy>(): T;\n /** Fetches raw task records by id via the strategy. Pass an empty array to fetch all. */\n fetchRawRecords(ids: string[]): Promise<IRawRecord[]>;\n /** Returns the current hierarchical record tree built from loaded task data. */\n getRecordTree(): IRecordTree;\n /** Applies updated raw record data in-place and rebuilds the tree if hierarchy changed. */\n updateTaskData(newData: IRawRecord[]): void;\n /**\n * @returns Result indicating which tasks were updated and which failed, or `null` if the operation was cancelled by the user.\n * `success: true` means all tasks were updated. `success: false` means some or all failed — `updatedRecords` still contains the records that succeeded.\n * Throws on unexpected failure.\n */\n editTasks(taskIds: string[]): Promise<IEditTasksResult | null>;\n /** @returns The created task raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n createTask(parentTaskId?: string): Promise<IRawRecord | null>;\n /**\n * @returns Result indicating which tasks were deleted and which failed.\n * `success: true` means all tasks were deleted. `success: false` means some or all failed — `deletedTaskIds` still contains the ids that succeeded.\n * Throws on unexpected failure before any deletes could be attempted.\n */\n deleteTasks(taskIds: string[]): Promise<IDeleteTasksResult | null>;\n /** @returns The created template raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n createTemplateFromTask(taskId: string): Promise<IRawRecord | null>;\n /** @returns The created task raw records, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n createTasksFromTemplate(templateId: string, parentId?: string): Promise<IRawRecord[] | null>;\n /** Returns `true` when the grid is displaying a flat list instead of a tree hierarchy. */\n isFlatListEnabled(): boolean;\n /** Returns `true` when task creation is allowed (from `ITaskDataProviderStrategy.onIsTaskAddingEnabled`). */\n isTaskAddingEnabled(): boolean;\n /** Returns `true` when inline cell editing is allowed (from `ITaskDataProviderStrategy.onIsTaskEditingEnabled`). */\n isTaskEditingEnabled(): boolean;\n /** Returns `true` when task deletion is allowed (from `ITaskDataProviderStrategy.onIsTaskDeletingEnabled`). */\n isTaskDeletingEnabled(): boolean;\n /** Returns the root task id when the tree is scoped to a subtree, or `null` for a full tree. */\n getRootTaskId: () => string | null;\n /** Moves a task to a position relative to another task. Returns the updated raw records, or `null` on cancellation. */\n moveTask(movingTaskId: string, movingToTaskId: string, position: 'above' | 'below' | 'child'): Promise<IRawRecord[] | null>;\n}\n\nexport class TaskDataProvider extends MemoryDataProvider implements ITaskDataProvider {\n private _nativeColumns: INativeColumns;\n private _localizationService: ILocalizationService<ITaskGridLabels>;\n private _hasDataBeenLoaded: boolean = false;\n private _taskTree: IRecordTree;\n private _strategy: ITaskDataProviderStrategy;\n private _onFlatListEnabled: () => boolean;\n public readonly taskEvents: EventEmitter<ITaskDataProviderEventListener> = new EventEmitter<ITaskDataProviderEventListener>();\n\n constructor(parameters: ITaskDataProviderParameters) {\n super({\n dataSource: [],\n metadata: { PrimaryIdAttribute: 'id' }\n })\n this._nativeColumns = parameters.nativeColumns;\n this._taskTree = new RecordTree({\n taskDataProvider: this\n })\n this._localizationService = parameters.localizationService;\n this._strategy = parameters.strategy;\n this._onFlatListEnabled = parameters.onIsFlatListEnabled;\n }\n\n public getStrategy<T extends ITaskDataProviderStrategy>(): T {\n return this._strategy as T;\n }\n\n public getRootTaskId(): string | null {\n return this._strategy.onGetRootTaskId?.() ?? null;\n }\n\n public isTaskAddingEnabled(): boolean {\n return this._strategy.onIsTaskAddingEnabled?.() ?? true;\n }\n\n public isTaskEditingEnabled(): boolean {\n return this._strategy.onIsTaskEditingEnabled?.() ?? true;\n }\n\n public isTaskDeletingEnabled(): boolean {\n return this._strategy.onIsTaskDeletingEnabled?.() ?? true;\n }\n\n public getRecordTree(): IRecordTree {\n return this._taskTree;\n }\n\n public isFlatListEnabled(): boolean {\n return this._onFlatListEnabled();\n }\n\n public getNativeColumns(): INativeColumns {\n return this._nativeColumns;\n }\n\n public async fetchRawRecords(ids: string[]) {\n return this._strategy.onGetRawRecords(ids);\n }\n\n public onGetAvailableColumns(): Promise<IColumn[]> {\n return this._strategy.onGetAvailableColumns();\n }\n\n public onGetAvailableRelatedColumns(): Promise<IAvailableRelatedColumn[]> {\n return this._strategy.onGetAvailableRelatedColumns();\n }\n\n public async retrieveRecordCommand(options?: IRetrieveRecordCommandOptions): Promise<ICommand[]> {\n return [];\n }\n\n public onRecordSave(record: IRecord): Promise<IRecordSaveOperationResult> {\n return this._strategy.onRecordSave(record);\n }\n\n public updateTaskData(newData: IRawRecord[]) {\n const affectedParentIds: (string | undefined)[] = [];\n let recordTreeChanged = false;\n\n for (const updatedData of newData) {\n const recordId = updatedData[this.getMetadata().PrimaryIdAttribute];\n if (!recordId) {\n throw new Error(`Updated data is missing record id. Data: ${JSON.stringify(updatedData)}`);\n }\n const record = this.getRecordsMap()[recordId];\n const originalParentId = record.getValue(this.getNativeColumns().parentId)?.[0]?.id?.guid;\n const originalStackRank = record.getValue(this.getNativeColumns().stackRank);\n record.setRawData(updatedData);\n const newParentId = record.getValue(this.getNativeColumns().parentId)?.[0]?.id?.guid;\n const newStackRank = record.getValue(this.getNativeColumns().stackRank);\n if (originalParentId !== newParentId) {\n recordTreeChanged = true;\n affectedParentIds.push(recordId, originalParentId, newParentId);\n } else if (originalStackRank !== newStackRank) {\n recordTreeChanged = true;\n }\n }\n if (recordTreeChanged) {\n this._taskTree.build();\n this.taskEvents.dispatchEvent('onRecordTreeUpdated', affectedParentIds);\n }\n this.taskEvents.dispatchEvent('onTaskDataUpdated', newData);\n }\n\n\n public getGroupedRecordDataProvider(groupedRecordId: string): IDataProvider | null {\n const provider = new MemoryDataProvider({\n dataSource: [],\n metadata: { PrimaryIdAttribute: 'id' }\n })\n provider.getErrorMessage = () => this.getErrorMessage();\n return provider;\n }\n\n public async moveTask(movingFromTaskId: string, movingToTaskId: string, position: \"above\" | \"below\" | \"child\"): Promise<IRawRecord[] | null> {\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n this.taskEvents.dispatchEvent('onBeforeTaskMoved');\n const result = await this._strategy.onMoveTask(movingFromTaskId, movingToTaskId, position);\n if (result !== null) this.updateTaskData(result);\n this.taskEvents.dispatchEvent('onAfterTaskMoved', movingFromTaskId, movingToTaskId, position);\n return result;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async createTask(parentId?: string): Promise<IRawRecord | null> {\n this.taskEvents.dispatchEvent('onBeforeTasksCreated', parentId);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const rawRecord = await this._strategy.onCreateTask(parentId);\n if (rawRecord) this._createTasks([rawRecord], parentId);\n this.taskEvents.dispatchEvent('onAfterTasksCreated', rawRecord ? [rawRecord] : null, parentId);\n return rawRecord;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n });\n }\n\n public async createTasksFromTemplate(templateId: string, parentId?: string): Promise<IRawRecord[] | null> {\n this.taskEvents.dispatchEvent('onBeforeTasksCreated', parentId);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const rawRecords = await this._strategy.onCreateTasksFromTemplate(templateId, parentId);\n if (rawRecords) this._createTasks(rawRecords, parentId);\n this.taskEvents.dispatchEvent('onAfterTasksCreated', rawRecords, parentId);\n return rawRecords;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async createTemplateFromTask(taskId: string): Promise<IRawRecord | null> {\n this.taskEvents.dispatchEvent('onBeforeTemplateCreated', taskId);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const rawRecord = await this._strategy.onCreateTemplateFromTask(taskId);\n this.taskEvents.dispatchEvent('onAfterTemplateCreated', rawRecord);\n return rawRecord;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n });\n }\n\n public openDatasetItem(entityReference: ComponentFramework.EntityReference, context?: { columnName?: string }): void {\n if (!context || context?.columnName === this.getNativeColumns().subject) {\n this.editTasks([entityReference.id.guid]);\n }\n else {\n this._strategy.onOpenDatasetItem(entityReference);\n }\n }\n\n public getSorting(): ComponentFramework.PropertyHelper.DataSetApi.SortStatus[] {\n const sorting = super.getSorting();\n if (sorting.length === 0) {\n return [{\n name: this._nativeColumns.stackRank,\n sortDirection: 0\n }];\n }\n else {\n return sorting;\n }\n }\n\n public getSortedRecordIds(): string[] {\n return this._taskTree.getSortedIds();\n }\n\n public async deleteTasks(taskIds: string[]): Promise<IDeleteTasksResult | null> {\n this.taskEvents.dispatchEvent('onBeforeTasksDeleted', taskIds);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const result = await this._strategy.onDeleteTasks(taskIds);\n if (result !== null) {\n const deletedTaskIds = result.deletedTaskIds;\n await this.deleteRecords(deletedTaskIds);\n this.setSelectedRecordIds(this.getSelectedRecordIds().filter(id => !deletedTaskIds.includes(id)));\n this._taskTree.build();\n this.taskEvents.dispatchEvent('onRecordTreeUpdated', deletedTaskIds);\n }\n this.taskEvents.dispatchEvent('onAfterTasksDeleted', result);\n return result;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async editTasks(taskIds: string[]): Promise<IEditTasksResult | null> {\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n this.taskEvents.dispatchEvent('onBeforeTasksEdited', taskIds);\n const result = await this._strategy.onEditTasks(taskIds);\n if (result !== null) this.updateTaskData(result.updatedRecords);\n this.taskEvents.dispatchEvent('onAfterTasksEdited', result);\n return result;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public isRecordActive(recordId: string): boolean {\n return this._strategy.onIsRecordActive(recordId);\n }\n\n public onOpenDatasetItem(entityReference: ComponentFramework.EntityReference): void {\n if (entityReference.etn === this.getEntityName()) {\n this.editTasks([entityReference.id.guid]);\n }\n else {\n //@ts-ignore - typings\n this._sourceDataProvider.onOpenDatasetItem(entityReference);\n }\n }\n\n public async destroy(): Promise<void> {\n super.destroy();\n this.taskEvents.clearEventListeners();\n }\n\n public getQuickFindColumns(): IColumn[] {\n return this._strategy.onGetQuickFindColumns().map(columnName => {\n return this.getColumnsMap()[columnName];\n }).filter(col => col) as IColumn[];\n }\n\n public createGroupedRecordDataProvider(group: IRecord): IDataProvider {\n const children = this._taskTree.getNodeMap().get(group.getRecordId())?.directChildren ?? [];\n return {\n ...this,\n getRecords: () => children,\n isError: () => this.isError(),\n refresh: () => children\n } as IDataProvider;\n }\n\n public getPaging() {\n const paging = super.getPaging();\n paging.totalResultCount = this._taskTree.getTotalCount()\n paging.pageSize = this._taskTree.getTotalCount();\n return paging;\n }\n\n public getRecords(): IRecord[] {\n const records = super.getRecords();\n if (records.length === 0 || this._taskTree.getNodeMap().size === 0) {\n return [];\n }\n return this._taskTree.getNodeMap().get(null as any)?.directChildren ?? [];\n }\n\n public getAllRecords(): IRecord[] {\n return super.getRecords();\n }\n\n public createNewDataProvider(eventBubbleOptions?: IEventBubbleOptions): IDataProvider {\n return new TaskDataProvider({\n localizationService: this._localizationService,\n nativeColumns: this._nativeColumns,\n strategy: this._strategy,\n onIsFlatListEnabled: () => this._onFlatListEnabled(),\n });\n }\n public async refresh(): Promise<IRecord[]> {\n if (!this._hasDataBeenLoaded) {\n await this._loadDataFromStrategy();\n this._hasDataBeenLoaded = true;\n }\n await super.refresh();\n return this.getAllRecords();\n }\n\n public dispatchEvent<K extends keyof IDataProviderEventListeners>(event: K, ...args: Parameters<IDataProviderEventListeners[K]>): boolean {\n if(event === 'onNewDataLoaded') {\n this._taskTree.build();\n }\n return super.dispatchEvent(event, ...args);\n }\n\n public getDataSync(pageNumber: number, pageSize: number, previousPageNumber: number, event: GetDataEvent): IRetrievedData {\n return {\n data: this.getDataSource(),\n hasNextPage: false,\n totalRecordCount: this.getDataSource().length\n }\n }\n\n private async _loadDataFromStrategy() {\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const { columns, rawData, metadata } = await this._strategy.onInitialize(this);\n this.setDataSource(rawData);\n this.setMetadata(metadata);\n this.setColumns(columns);\n this.getPaging().setPageSize(rawData.length);\n this.setEntityName(metadata.LogicalName);\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n })\n }\n\n private _createTasks(rawRecords: IRawRecord[], parentId?: string) {\n const records: IRecord[] = [];\n for (const rawRecord of rawRecords) {\n const record = this.newRecord({\n rawData: rawRecord,\n recordId: rawRecord[this.getMetadata().PrimaryIdAttribute],\n position: 'start',\n },);\n const stackRankAttributeName = this.getNativeColumns().stackRank;\n if (record.getValue(stackRankAttributeName) == null) {\n console.warn(`Record with id ${record.getRecordId()} is missing stack rank value. Setting it to 0.`, record);\n record.setValue(stackRankAttributeName, 0);\n const newRawData = record.toRawData()\n record.setRawData(newRawData);\n }\n records.push(record);\n }\n if (records.length > 0) {\n this._taskTree.build();\n this.taskEvents.dispatchEvent('onRecordTreeUpdated', [parentId]);\n }\n }\n}"],"names":[],"mappings":";;;;AA8IM,MAAO,gBAAiB,SAAQ,kBAAkB,CAAA;AASpD,IAAA,WAAA,CAAY,UAAuC,EAAA;AAC/C,QAAA,KAAK,CAAC;AACF,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,QAAQ,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE;AACzC,SAAA,CAAC,CAAA;QAVE,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AAI5B,QAAA,IAAA,CAAA,UAAU,GAAiD,IAAI,YAAY,EAAkC,CAAC;AAO1H,QAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC;AAC/C,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,CAAC;AAC5B,YAAA,gBAAgB,EAAE,IAAI;AACzB,SAAA,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,mBAAmB,CAAC;AAC3D,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,mBAAmB,CAAC;KAC5D;IAEM,WAAW,GAAA;QACd,OAAO,IAAI,CAAC,SAAc,CAAC;KAC9B;IAEM,aAAa,GAAA;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI,IAAI,CAAC;KACrD;IAEM,mBAAmB,GAAA;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,IAAI,IAAI,IAAI,CAAC;KAC3D;IAEM,oBAAoB,GAAA;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,IAAI,IAAI,IAAI,CAAC;KAC5D;IAEM,qBAAqB,GAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,IAAI,IAAI,IAAI,CAAC;KAC7D;IAEM,aAAa,GAAA;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAEM,iBAAiB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;KACpC;IAEM,gBAAgB,GAAA;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IAEM,MAAM,eAAe,CAAC,GAAa,EAAA;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;KAC9C;IAEM,qBAAqB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;KACjD;IAEM,4BAA4B,GAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,4BAA4B,EAAE,CAAC;KACxD;IAEM,MAAM,qBAAqB,CAAC,OAAuC,EAAA;AACtE,QAAA,OAAO,EAAE,CAAC;KACb;AAEM,IAAA,YAAY,CAAC,MAAe,EAAA;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;KAC9C;AAEM,IAAA,cAAc,CAAC,OAAqB,EAAA;QACvC,MAAM,iBAAiB,GAA2B,EAAE,CAAC;QACrD,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B,QAAA,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE;YAC/B,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,EAAE;AACX,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,yCAAA,EAA4C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAE,CAAA,CAAC,CAAC;AAC9F,aAAA;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;AAC1F,YAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC;AAC7E,YAAA,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;AACrF,YAAA,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC;YACxE,IAAI,gBAAgB,KAAK,WAAW,EAAE;gBAClC,iBAAiB,GAAG,IAAI,CAAC;gBACzB,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;AACnE,aAAA;iBAAM,IAAI,iBAAiB,KAAK,YAAY,EAAE;gBAC3C,iBAAiB,GAAG,IAAI,CAAC;AAC5B,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,iBAAiB,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAC;AAC3E,SAAA;QACD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;KAC/D;AAGM,IAAA,4BAA4B,CAAC,eAAuB,EAAA;AACvD,QAAA,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC;AACpC,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,QAAQ,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE;AACzC,SAAA,CAAC,CAAA;QACF,QAAQ,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AACxD,QAAA,OAAO,QAAQ,CAAC;KACnB;AAEM,IAAA,MAAM,QAAQ,CAAC,gBAAwB,EAAE,cAAsB,EAAE,QAAqC,EAAA;QACzG,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,YAAW;AAClB,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;AACnD,gBAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAC3F,IAAI,MAAM,KAAK,IAAI;AAAE,oBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACjD,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;AAC9F,gBAAA,OAAO,MAAM,CAAC;aACjB;AACD,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACxF,SAAA,CAAC,CAAA;KACL;IAEM,MAAM,UAAU,CAAC,QAAiB,EAAA;QACrC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;QAChE,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,YAAW;gBAClB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC9D,gBAAA,IAAI,SAAS;oBAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACxD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,SAAS,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/F,gBAAA,OAAO,SAAS,CAAC;aACpB;AACD,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACxF,SAAA,CAAC,CAAC;KACN;AAEM,IAAA,MAAM,uBAAuB,CAAC,UAAkB,EAAE,QAAiB,EAAA;QACtE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;QAChE,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,YAAW;AAClB,gBAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACxF,gBAAA,IAAI,UAAU;AAAE,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACxD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC3E,gBAAA,OAAO,UAAU,CAAC;aACrB;AACD,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACxF,SAAA,CAAC,CAAA;KACL;IAEM,MAAM,sBAAsB,CAAC,MAAc,EAAA;QAC9C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;QACjE,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,YAAW;gBAClB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;gBACxE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;AACnE,gBAAA,OAAO,SAAS,CAAC;aACpB;AACD,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACxF,SAAA,CAAC,CAAC;KACN;IAEM,eAAe,CAAC,eAAmD,EAAE,OAAiC,EAAA;AACzG,QAAA,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE;YACrE,IAAI,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,SAAA;AACI,aAAA;AACD,YAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;AACrD,SAAA;KACJ;IAEM,UAAU,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;AACnC,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,YAAA,OAAO,CAAC;AACJ,oBAAA,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS;AACnC,oBAAA,aAAa,EAAE,CAAC;AACnB,iBAAA,CAAC,CAAC;AACN,SAAA;AACI,aAAA;AACD,YAAA,OAAO,OAAO,CAAC;AAClB,SAAA;KACJ;IAEM,kBAAkB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACxC;IAEM,MAAM,WAAW,CAAC,OAAiB,EAAA;QACtC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,YAAW;gBAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3D,IAAI,MAAM,KAAK,IAAI,EAAE;AACjB,oBAAA,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC7C,oBAAA,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBACzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClG,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBACvB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;AACxE,iBAAA;gBACD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAC7D,gBAAA,OAAO,MAAM,CAAC;aACjB;AACD,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACxF,SAAA,CAAC,CAAA;KACL;IAEM,MAAM,SAAS,CAAC,OAAiB,EAAA;QACpC,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,YAAW;gBAClB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;gBAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACzD,IAAI,MAAM,KAAK,IAAI;AAAE,oBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAChE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AAC5D,gBAAA,OAAO,MAAM,CAAC;aACjB;AACD,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACxF,SAAA,CAAC,CAAA;KACL;AAEM,IAAA,cAAc,CAAC,QAAgB,EAAA;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;KACpD;AAEM,IAAA,iBAAiB,CAAC,eAAmD,EAAA;QACxE,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,EAAE,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,SAAA;AACI,aAAA;;AAED,YAAA,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAC/D,SAAA;KACJ;AAEM,IAAA,MAAM,OAAO,GAAA;QAChB,KAAK,CAAC,OAAO,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;KACzC;IAEM,mBAAmB,GAAA;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,UAAU,IAAG;AAC3D,YAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,CAAC;SAC3C,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAc,CAAC;KACtC;AAEM,IAAA,+BAA+B,CAAC,KAAc,EAAA;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,cAAc,IAAI,EAAE,CAAC;QAC5F,OAAO;AACH,YAAA,GAAG,IAAI;AACP,YAAA,UAAU,EAAE,MAAM,QAAQ;AAC1B,YAAA,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE;AAC7B,YAAA,OAAO,EAAE,MAAM,QAAQ;SACT,CAAC;KACtB;IAEM,SAAS,GAAA;AACZ,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAA;QACxD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;AACjD,QAAA,OAAO,MAAM,CAAC;KACjB;IAEM,UAAU,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;AACnC,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE;AAChE,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,IAAW,CAAC,EAAE,cAAc,IAAI,EAAE,CAAC;KAC7E;IAEM,aAAa,GAAA;AAChB,QAAA,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;KAC7B;AAEM,IAAA,qBAAqB,CAAC,kBAAwC,EAAA;QACjE,OAAO,IAAI,gBAAgB,CAAC;YACxB,mBAAmB,EAAE,IAAI,CAAC,oBAAoB;YAC9C,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,QAAQ,EAAE,IAAI,CAAC,SAAS;AACxB,YAAA,mBAAmB,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE;AACvD,SAAA,CAAC,CAAC;KACN;AACM,IAAA,MAAM,OAAO,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,YAAA,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACnC,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAClC,SAAA;AACD,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;AACtB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;KAC/B;AAEM,IAAA,aAAa,CAA8C,KAAQ,EAAE,GAAG,IAAgD,EAAA;QAC3H,IAAG,KAAK,KAAK,iBAAiB,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AAC1B,SAAA;QACD,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;KAC9C;AAEM,IAAA,WAAW,CAAC,UAAkB,EAAE,QAAgB,EAAE,kBAA0B,EAAE,KAAmB,EAAA;QACpG,OAAO;AACH,YAAA,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE;AAC1B,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM;SAChD,CAAA;KACJ;AAEO,IAAA,MAAM,qBAAqB,GAAA;QAC/B,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,YAAW;AAClB,gBAAA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/E,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5B,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACzB,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7C,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;aAC5C;AACD,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACxF,SAAA,CAAC,CAAA;KACL;IAEO,YAAY,CAAC,UAAwB,EAAE,QAAiB,EAAA;QAC5D,MAAM,OAAO,GAAc,EAAE,CAAC;AAC9B,QAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAChC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;AAC1B,gBAAA,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC;AAC1D,gBAAA,QAAQ,EAAE,OAAO;AACpB,aAAA,CAAE,CAAC;YACJ,MAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC;YACjE,IAAI,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,IAAI,EAAE;AACjD,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAA,eAAA,EAAkB,MAAM,CAAC,WAAW,EAAE,CAAgD,8CAAA,CAAA,EAAE,MAAM,CAAC,CAAC;AAC7G,gBAAA,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;AAC3C,gBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;AACrC,gBAAA,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACjC,aAAA;AACD,YAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpE,SAAA;KACJ;AACJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecordTree.js","sources":["../../../../../../src/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.ts"],"sourcesContent":["import { IRecord, MemoryDataProvider } from \"@talxis/client-libraries\";\nimport { ITaskDataProvider } from \"../TaskDataProvider\";\nimport { patchDataBuilderPrepare } from \"./patchDataBuilderPrepare\";\n\ninterface ITreeNode {\n directChildren: IRecord[];\n allChildren: IRecord[];\n pathIds: string[];\n pathStrings: string[];\n index: number;\n parent?: IRecord;\n}\n\ninterface IRecordTreeParameters {\n taskDataProvider: ITaskDataProvider;\n}\n\nexport interface IRecordTree {\n build(): Map<string, ITreeNode>\n getNodeMap(): Map<string, ITreeNode>;\n getNode(recordId: string | null): ITreeNode;\n getTotalCount(): number;\n isFlat(): boolean;\n hasChildren(recordId: string): boolean;\n getMatchingRecords(): { [recordId: string]: IRecord };\n getSortedIds(): string[];\n}\n\nexport class RecordTree implements IRecordTree {\n private _nodeMap: Map<string, ITreeNode> = new Map();\n private _sortingMap: { [recordId: string]: number } = {};\n private _matchingRecordsMap: { [recordId: string]: IRecord } = {};\n private _isFlat: boolean = false;\n private _totalUniqueRecords: number = 0;\n private _sortedRecordIds: string[] = [];\n private _records: IRecord[] = [];\n private _recordsMap: { [recordId: string]: IRecord } = {};\n private _taskDataProvider: ITaskDataProvider;\n\n constructor(parameters: IRecordTreeParameters) {\n this._taskDataProvider = parameters.taskDataProvider;\n }\n\n public getNodeMap(): Map<string, ITreeNode> {\n return this._nodeMap;\n }\n public getTotalCount(): number {\n return this._totalUniqueRecords;\n }\n public isFlat(): boolean {\n return this._isFlat;\n }\n public getMatchingRecords(): { [recordId: string]: IRecord } {\n return this._matchingRecordsMap;\n }\n public getNode(recordId: string | null): ITreeNode {\n return this._nodeMap.get(recordId as any)!;\n }\n\n public hasChildren(recordId: string): boolean {\n const children = this._nodeMap.get(recordId)?.directChildren;\n if (children && children.length > 0) {\n return true;\n }\n return false;\n }\n\n public getSortedIds(): string[] {\n return this._sortedRecordIds;\n }\n\n public build(): Map<string, ITreeNode> {\n this._records = this._taskDataProvider.getAllRecords();\n this._recordsMap = this._taskDataProvider.getRecordsMap();\n // Clear existing record tree map and flat sorted array\n this._nodeMap.clear();\n this._patchRecordPaths();\n this._buildSortingMap();\n this._buildMatchingRecords();\n\n // Create reusable sort function\n const sortByIndex = (a: IRecord, b: IRecord): number => {\n const indexA = this._sortingMap[a.getRecordId()] ?? Number.MAX_SAFE_INTEGER;\n const indexB = this._sortingMap[b.getRecordId()] ?? Number.MAX_SAFE_INTEGER;\n return indexA - indexB;\n };\n\n const records = this._records;\n const recordsMap = this._recordsMap;\n\n const parentToDirectChildren = new Map<string, IRecord[]>();\n const topLevelRecords: IRecord[] = [];\n\n for (const record of records) {\n const parentRef = record.getValue(this._getNativeColumns().parentId);\n const parentId = parentRef?.[0]?.id?.guid;\n\n if (parentId && recordsMap[parentId]) {\n if (!parentToDirectChildren.has(parentId)) {\n parentToDirectChildren.set(parentId, []);\n }\n parentToDirectChildren.get(parentId)!.push(record);\n }\n else {\n topLevelRecords.push(record);\n }\n }\n\n topLevelRecords.sort(sortByIndex);\n for (const [, children] of parentToDirectChildren) {\n children.sort(sortByIndex);\n }\n\n const hasMatchingDescendantCache = new Map<string, boolean>();\n const calculateHasMatchingDescendant = (recordId: string): boolean => {\n if (hasMatchingDescendantCache.has(recordId)) {\n return hasMatchingDescendantCache.get(recordId)!;\n }\n\n if (this._matchingRecordsMap[recordId]) {\n hasMatchingDescendantCache.set(recordId, true);\n return true;\n }\n\n // Set false sentinel before recursing to break circular reference cycles\n hasMatchingDescendantCache.set(recordId, false);\n const directChildren = parentToDirectChildren.get(recordId) || [];\n const hasMatching = directChildren.some(child =>\n calculateHasMatchingDescendant(child.getRecordId())\n );\n\n hasMatchingDescendantCache.set(recordId, hasMatching);\n return hasMatching;\n };\n\n for (const record of records) {\n calculateHasMatchingDescendant(record.getRecordId());\n }\n\n const recordToAllChildren = new Map<string, IRecord[]>();\n const recordToFilteredDirectChildren = new Map<string, IRecord[]>();\n const inProgressChildren = new Set<string>();\n\n const getAllChildren = (recordId: string): IRecord[] => {\n if (recordToAllChildren.has(recordId)) {\n return recordToAllChildren.get(recordId)!;\n }\n\n // Break circular reference cycles\n if (inProgressChildren.has(recordId)) {\n console.warn(`Circular reference detected: record \"${recordsMap[recordId]?.getNamedReference().name}\" (${recordId}) was encountered twice during tree traversal. All records involved in this cycle and their descendants will be missing from the tree.`);\n return [];\n }\n inProgressChildren.add(recordId);\n\n const directChildren = parentToDirectChildren.get(recordId) || [];\n const allChildren: IRecord[] = [];\n\n const filteredDirectChildren: IRecord[] = [];\n\n for (const child of directChildren) {\n if (hasMatchingDescendantCache.get(child.getRecordId())) {\n filteredDirectChildren.push(child);\n allChildren.push(child);\n allChildren.push(...getAllChildren(child.getRecordId()));\n }\n }\n\n recordToFilteredDirectChildren.set(recordId, filteredDirectChildren);\n recordToAllChildren.set(recordId, allChildren);\n inProgressChildren.delete(recordId);\n return allChildren;\n };\n\n const filteredTopLevelRecords: IRecord[] = [];\n const allRecordsWithMatching: IRecord[] = [];\n\n for (const record of topLevelRecords) {\n if (hasMatchingDescendantCache.get(record.getRecordId())) {\n filteredTopLevelRecords.push(record);\n }\n }\n\n for (const record of records) {\n if (hasMatchingDescendantCache.get(record.getRecordId())) {\n allRecordsWithMatching.push(record);\n }\n getAllChildren(record.getRecordId());\n }\n\n allRecordsWithMatching.sort(sortByIndex);\n \n for (const record of records) {\n const recordId = record.getRecordId();\n const isTopLevel = !record.getValue(this._getNativeColumns().parentId);\n\n const allChildren = getAllChildren(recordId);\n const filteredDirectChildren = recordToFilteredDirectChildren.get(recordId) || [];\n\n let parentRecord: IRecord | undefined = undefined;\n\n let index = -1;\n\n if (!isTopLevel) {\n const parentRef = record.getValue(this._getNativeColumns().parentId);\n const parentId = parentRef?.[0]?.id?.guid;\n if (parentId) {\n parentRecord = recordsMap[parentId];\n const parentFilteredChildren = recordToFilteredDirectChildren.get(parentId) || [];\n index = parentFilteredChildren.findIndex(sibling => sibling.getRecordId() === recordId);\n }\n } else {\n index = filteredTopLevelRecords.findIndex(topRecord => topRecord.getRecordId() === recordId);\n }\n\n let pathIds: string[] = [];\n let pathStrings: string[] = [];\n const pathCache = new Map<string, { pathIds: string[], pathStrings: string[] }>();\n if (pathCache.has(recordId)) {\n const cached = pathCache.get(recordId)!;\n pathIds = cached.pathIds;\n pathStrings = cached.pathStrings;\n }\n else {\n const pathIdParts: string[] = [];\n const pathStringParts: string[] = [];\n let currentRecord: IRecord | null = record;\n const visited = new Set<string>();\n\n while (currentRecord) {\n const currentId = currentRecord.getRecordId();\n if (visited.has(currentId)) break;\n visited.add(currentId);\n\n pathIdParts.unshift(currentRecord.getRecordId());\n pathStringParts.unshift(currentRecord.getNamedReference().name);\n const parentRef: ComponentFramework.EntityReference[] = currentRecord.getValue(this._getNativeColumns().parentId);\n const parentId = parentRef?.[0]?.id?.guid;\n currentRecord = parentId ? recordsMap[parentId] : null;\n }\n\n pathIds = pathIdParts;\n pathStrings = pathStringParts;\n pathCache.set(recordId, { pathIds, pathStrings });\n }\n\n this._nodeMap.set(recordId, {\n directChildren: filteredDirectChildren,\n allChildren: allChildren,\n pathIds,\n pathStrings,\n parent: parentRecord,\n index\n });\n }\n this._isFlat = filteredTopLevelRecords.every(record => this._nodeMap.get(record.getRecordId())!.directChildren.length === 0);\n const rootTaskId = this._getTaskDataProvider().getRootTaskId();\n if (!rootTaskId) {\n if (this._getTaskDataProvider().isFlatListEnabled()) {\n const directlyMatchingRecords: IRecord[] = allRecordsWithMatching.filter(r => this._matchingRecordsMap[r.getRecordId()]);\n this._nodeMap.set(null as any, {\n directChildren: directlyMatchingRecords,\n allChildren: directlyMatchingRecords,\n pathIds: [],\n pathStrings: [],\n index: -1\n });\n this._totalUniqueRecords = directlyMatchingRecords.length;\n this._sortedRecordIds = directlyMatchingRecords.map(r => r.getRecordId());\n }\n else {\n this._nodeMap.set(null as any, {\n directChildren: filteredTopLevelRecords,\n allChildren: allRecordsWithMatching,\n pathIds: [],\n pathStrings: [],\n index: -1\n });\n this._totalUniqueRecords = allRecordsWithMatching.length;\n this._sortedRecordIds = allRecordsWithMatching.map(r => r.getRecordId());\n }\n }\n else {\n const topLevelNode = this._nodeMap.get(rootTaskId);\n if (this._getTaskDataProvider().isFlatListEnabled()) {\n const directlyMatchingRecords: IRecord[] = topLevelNode?.allChildren.filter(r => this._matchingRecordsMap[r.getRecordId()]) || [];\n topLevelNode!.directChildren = directlyMatchingRecords;\n topLevelNode!.allChildren = directlyMatchingRecords;\n }\n this._nodeMap.set(null as any, topLevelNode!);\n this._totalUniqueRecords = topLevelNode!.allChildren.length;\n this._sortedRecordIds = topLevelNode!.allChildren.map(r => r.getRecordId());\n }\n return this._nodeMap;\n }\n\n\n private _buildMatchingRecords() {\n this._matchingRecordsMap = {};\n const provider = this._createBaseProvider();\n provider.onGetQuickFindColumns = () => this._getTaskDataProvider().getQuickFindColumns();\n provider.setFiltering(this._getTaskDataProvider().getFiltering());\n provider.setSearchQuery(this._getTaskDataProvider().getSearchQuery());\n provider.refreshSync();\n this._matchingRecordsMap = provider.getRecordsMap();\n }\n\n private _buildSortingMap() {\n this._sortingMap = {};\n let index = -1;\n const provider = this._createBaseProvider();\n provider.addEventListener('onRecordLoaded', (record) => {\n this._sortingMap[record.getRecordId()] = ++index;\n });\n provider.refreshSync();\n }\n\n private _createBaseProvider(): MemoryDataProvider {\n const taskDataProvider = this._getTaskDataProvider();\n const provider = new MemoryDataProvider({\n dataSource: taskDataProvider.getDataSource(),\n metadata: taskDataProvider.getMetadata()\n });\n patchDataBuilderPrepare({ provider, records: this._records });\n provider.getPaging().setPageSize(taskDataProvider.getDataSource().length);\n provider.setSorting(taskDataProvider.getSorting());\n provider.setColumns(taskDataProvider.getColumns());\n return provider;\n }\n\n private _buildPathForRecord(recordId: string): string[] {\n const path: string[] = [];\n const recordsMap = this._recordsMap;\n const parentIdName = this._getNativeColumns().parentId;\n let record: IRecord | undefined = recordsMap[recordId];\n const visited = new Set<string>();\n while (record) {\n const currentId = record.getRecordId();\n if (visited.has(currentId)) break;\n visited.add(currentId);\n path.unshift(record.getNamedReference().name);\n const parentId: string = record?.getValue(parentIdName)?.[0]?.id?.guid;\n record = recordsMap[parentId];\n }\n return path;\n }\n\n private _patchRecordPaths() {\n for (const record of this._records) {\n const path = this._buildPathForRecord(record.getRecordId());\n const field = record.getField(this._getNativeColumns().path);\n const pathString = path.join('/');\n //@ts-ignore\n field._originalValue = pathString;\n //@ts-ignore\n field._currentValue = pathString;\n }\n }\n\n private _getNativeColumns(): ReturnType<ITaskDataProvider['getNativeColumns']> {\n return this._getTaskDataProvider().getNativeColumns();\n }\n\n private _getTaskDataProvider(): ITaskDataProvider {\n const provider = this._taskDataProvider;\n if (!provider) {\n throw new Error('TaskDataProvider dependency not provided!');\n }\n return provider;\n }\n}"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"patchDataBuilderPrepare.js","sources":["../../../../../../src/components/TaskGrid/data-providers/task-data-provider/record-tree/patchDataBuilderPrepare.ts"],"sourcesContent":["import { IMemoryProvider, IRecord } from \"@talxis/client-libraries\";\nimport { DataBuilder } from \"@talxis/client-libraries/dist/utils/dataset/data-providers/memory-provider/DataBuilder\";\n\nexport const patchDataBuilderPrepare = (options: { provider: IMemoryProvider; records: IRecord[] }) => {\n const { provider, records } = options;\n //@ts-ignore - typings\n const dataBuilder: any = provider._dataBuilder;\n\n dataBuilder.prepare = function () {\n const topLevelDataProvider = this._dataProvider.getTopLevelDataProvider() as IMemoryProvider;\n topLevelDataProvider.setCustomProperty('blockInternalOnRecordLoaded', true);\n this._allRecords = records;\n this._finalRecords = this._allRecords;\n topLevelDataProvider.setCustomProperty('blockInternalOnRecordLoaded', false);\n return this;\n };\n\n}"],"names":[],"mappings":"AAGa,MAAA,uBAAuB,GAAG,CAAC,OAA0D,KAAI;AAClG,IAAA,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;;AAEtC,IAAA,MAAM,WAAW,GAAQ,QAAQ,CAAC,YAAY,CAAC;IAE/C,WAAW,CAAC,OAAO,GAAG,YAAA;QAClB,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAqB,CAAC;AAC7F,QAAA,oBAAoB,CAAC,iBAAiB,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;AACtC,QAAA,oBAAoB,CAAC,iBAAiB,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;AAC7E,QAAA,OAAO,IAAI,CAAC;AAChB,KAAC,CAAC;AAEN;;;;"}